@frame-ui-ng/components 0.4.0-beta.0 → 0.4.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/calendar/src/styles/_vars.css +4 -0
- package/calendar/src/styles/calendar.css +29 -5
- package/confirm-popover/src/styles/confirm-popover.css +20 -0
- package/date-picker/src/styles/date-picker.css +27 -1
- package/drag-drop/src/styles/_vars.css +28 -0
- package/drag-drop/src/styles/drag-drop.css +132 -0
- package/fesm2022/frame-ui-ng-components-accordion.mjs +26 -21
- package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-alert.mjs +4 -0
- package/fesm2022/frame-ui-ng-components-alert.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-avatar.mjs +7 -0
- package/fesm2022/frame-ui-ng-components-avatar.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-badge.mjs +4 -0
- package/fesm2022/frame-ui-ng-components-badge.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-breadcrumb.mjs +13 -6
- package/fesm2022/frame-ui-ng-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-button-group.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-button-group.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-button.mjs +5 -0
- package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-calendar.mjs +24 -1
- package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-card.mjs +15 -15
- package/fesm2022/frame-ui-ng-components-card.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-carousel.mjs +33 -16
- package/fesm2022/frame-ui-ng-components-carousel.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-checkbox.mjs +7 -9
- package/fesm2022/frame-ui-ng-components-checkbox.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-collapsible.mjs +24 -23
- package/fesm2022/frame-ui-ng-components-collapsible.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-combobox.mjs +66 -18
- package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-command.mjs +47 -16
- package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-confirm-modal.mjs +3 -0
- package/fesm2022/frame-ui-ng-components-confirm-modal.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-confirm-popover.mjs +423 -0
- package/fesm2022/frame-ui-ng-components-confirm-popover.mjs.map +1 -0
- package/fesm2022/frame-ui-ng-components-context-menu.mjs +71 -45
- package/fesm2022/frame-ui-ng-components-context-menu.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-date-picker.mjs +3 -0
- package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-drag-drop.mjs +293 -0
- package/fesm2022/frame-ui-ng-components-drag-drop.mjs.map +1 -0
- package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +73 -36
- package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-empty.mjs +6 -0
- package/fesm2022/frame-ui-ng-components-empty.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-field.mjs +21 -12
- package/fesm2022/frame-ui-ng-components-field.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-forms.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-forms.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-hover-card.mjs +49 -43
- package/fesm2022/frame-ui-ng-components-hover-card.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-input-otp.mjs +5 -0
- package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-input.mjs +13 -0
- package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-item.mjs +10 -0
- package/fesm2022/frame-ui-ng-components-item.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-menubar.mjs +15 -0
- package/fesm2022/frame-ui-ng-components-menubar.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-modal.mjs +167 -128
- package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-navigation-menu.mjs +14 -0
- package/fesm2022/frame-ui-ng-components-navigation-menu.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-pagination.mjs +8 -0
- package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-popover.mjs +63 -51
- package/fesm2022/frame-ui-ng-components-popover.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-progress.mjs +2 -0
- package/fesm2022/frame-ui-ng-components-progress.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-radio-group.mjs +5 -0
- package/fesm2022/frame-ui-ng-components-radio-group.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-resizable.mjs +6 -0
- package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-select.mjs +62 -14
- package/fesm2022/frame-ui-ng-components-select.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-separator.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-separator.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-sheet.mjs +99 -88
- package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-sidebar.mjs +27 -12
- package/fesm2022/frame-ui-ng-components-sidebar.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-skeleton.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-skeleton.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-slider.mjs +29 -16
- package/fesm2022/frame-ui-ng-components-slider.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-spinner.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-spinner.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-switch.mjs +6 -0
- package/fesm2022/frame-ui-ng-components-switch.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-table.mjs +76 -50
- package/fesm2022/frame-ui-ng-components-table.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-tabs.mjs +4 -0
- package/fesm2022/frame-ui-ng-components-tabs.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-textarea.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-textarea.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-toast.mjs +2 -0
- package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-toggle.mjs +23 -16
- package/fesm2022/frame-ui-ng-components-toggle.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-tooltip.mjs +30 -25
- package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-utils.mjs +5 -1
- package/fesm2022/frame-ui-ng-components-utils.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +26 -8
- package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components.mjs +1449 -571
- package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
- package/package.json +10 -2
- package/popover/src/styles/popover.css +106 -101
- package/select/src/styles/select-content.css +27 -19
- package/src/styles/components.css +6 -4
- package/styles/components.css +6 -4
- package/styles.css +6 -4
- package/types/frame-ui-ng-components-accordion.d.ts +11 -4
- package/types/frame-ui-ng-components-alert.d.ts +4 -0
- package/types/frame-ui-ng-components-avatar.d.ts +7 -0
- package/types/frame-ui-ng-components-badge.d.ts +4 -0
- package/types/frame-ui-ng-components-breadcrumb.d.ts +7 -0
- package/types/frame-ui-ng-components-button-group.d.ts +1 -0
- package/types/frame-ui-ng-components-button.d.ts +5 -0
- package/types/frame-ui-ng-components-calendar.d.ts +2 -0
- package/types/frame-ui-ng-components-card.d.ts +8 -3
- package/types/frame-ui-ng-components-carousel.d.ts +11 -2
- package/types/frame-ui-ng-components-checkbox.d.ts +3 -2
- package/types/frame-ui-ng-components-collapsible.d.ts +9 -4
- package/types/frame-ui-ng-components-combobox.d.ts +32 -3
- package/types/frame-ui-ng-components-command.d.ts +26 -4
- package/types/frame-ui-ng-components-confirm-modal.d.ts +2 -0
- package/types/frame-ui-ng-components-confirm-popover.d.ts +87 -0
- package/types/frame-ui-ng-components-context-menu.d.ts +29 -10
- package/types/frame-ui-ng-components-date-picker.d.ts +1 -0
- package/types/frame-ui-ng-components-drag-drop.d.ts +103 -0
- package/types/frame-ui-ng-components-dropdown-menu.d.ts +32 -9
- package/types/frame-ui-ng-components-empty.d.ts +6 -0
- package/types/frame-ui-ng-components-field.d.ts +9 -0
- package/types/frame-ui-ng-components-forms.d.ts +1 -0
- package/types/frame-ui-ng-components-hover-card.d.ts +8 -2
- package/types/frame-ui-ng-components-input-otp.d.ts +4 -0
- package/types/frame-ui-ng-components-input.d.ts +13 -0
- package/types/frame-ui-ng-components-item.d.ts +10 -0
- package/types/frame-ui-ng-components-menubar.d.ts +15 -0
- package/types/frame-ui-ng-components-modal.d.ts +27 -4
- package/types/frame-ui-ng-components-navigation-menu.d.ts +14 -0
- package/types/frame-ui-ng-components-pagination.d.ts +8 -0
- package/types/frame-ui-ng-components-popover.d.ts +14 -2
- package/types/frame-ui-ng-components-progress.d.ts +2 -0
- package/types/frame-ui-ng-components-radio-group.d.ts +5 -0
- package/types/frame-ui-ng-components-resizable.d.ts +3 -0
- package/types/frame-ui-ng-components-select.d.ts +23 -2
- package/types/frame-ui-ng-components-separator.d.ts +1 -0
- package/types/frame-ui-ng-components-sheet.d.ts +11 -0
- package/types/frame-ui-ng-components-sidebar.d.ts +21 -0
- package/types/frame-ui-ng-components-skeleton.d.ts +1 -0
- package/types/frame-ui-ng-components-slider.d.ts +5 -2
- package/types/frame-ui-ng-components-spinner.d.ts +1 -0
- package/types/frame-ui-ng-components-switch.d.ts +6 -0
- package/types/frame-ui-ng-components-table.d.ts +26 -0
- package/types/frame-ui-ng-components-tabs.d.ts +4 -0
- package/types/frame-ui-ng-components-textarea.d.ts +1 -0
- package/types/frame-ui-ng-components-toast.d.ts +2 -0
- package/types/frame-ui-ng-components-toggle.d.ts +8 -2
- package/types/frame-ui-ng-components-tooltip.d.ts +6 -2
- package/types/frame-ui-ng-components-utils.d.ts +3 -1
- package/types/frame-ui-ng-components-virtual-scroll.d.ts +11 -2
- package/types/frame-ui-ng-components.d.ts +507 -80
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, numberAttribute, inject, ElementRef, signal, input, booleanAttribute, output, computed,
|
|
2
|
+
import { InjectionToken, numberAttribute, inject, ElementRef, linkedSignal, signal, input, booleanAttribute, output, computed, Directive, NgModule } from '@angular/core';
|
|
3
3
|
import { DOCUMENT } from '@angular/common';
|
|
4
4
|
import { clampNumber } from '@frame-ui-ng/components/utils';
|
|
5
5
|
|
|
@@ -31,10 +31,11 @@ function coerceOptionalNumber(value) {
|
|
|
31
31
|
const coerced = numberAttribute(value, Number.NaN);
|
|
32
32
|
return Number.isFinite(coerced) ? coerced : null;
|
|
33
33
|
}
|
|
34
|
+
/** Shared state provider for sidebar. */
|
|
34
35
|
class FrSidebarProvider {
|
|
35
36
|
document = inject(DOCUMENT);
|
|
36
37
|
elementRef = inject(ElementRef);
|
|
37
|
-
internalOpen =
|
|
38
|
+
internalOpen = linkedSignal(() => this.defaultOpen(), ...(ngDevMode ? [{ debugName: "internalOpen" }] : /* istanbul ignore next */ []));
|
|
38
39
|
internalOpenMobile = signal(false, ...(ngDevMode ? [{ debugName: "internalOpenMobile" }] : /* istanbul ignore next */ []));
|
|
39
40
|
resizing = signal(false, ...(ngDevMode ? [{ debugName: "resizing" }] : /* istanbul ignore next */ []));
|
|
40
41
|
defaultOpen = input(true, { ...(ngDevMode ? { debugName: "defaultOpen" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
@@ -48,15 +49,6 @@ class FrSidebarProvider {
|
|
|
48
49
|
openMobile = computed(() => this.internalOpenMobile(), ...(ngDevMode ? [{ debugName: "openMobile" }] : /* istanbul ignore next */ []));
|
|
49
50
|
state = computed(() => (this.open() ? 'expanded' : 'collapsed'), ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
|
|
50
51
|
constructor() {
|
|
51
|
-
this.internalOpen.set(this.defaultOpen());
|
|
52
|
-
effect(() => {
|
|
53
|
-
if (this.openInput() === null) {
|
|
54
|
-
this.internalOpen.set(this.defaultOpen());
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
effect(() => {
|
|
58
|
-
this.elementRef.nativeElement.style.setProperty('--frame-sidebar-state', this.state());
|
|
59
|
-
});
|
|
60
52
|
const defaultView = this.document.defaultView;
|
|
61
53
|
if (!defaultView?.matchMedia) {
|
|
62
54
|
return;
|
|
@@ -101,7 +93,7 @@ class FrSidebarProvider {
|
|
|
101
93
|
this.toggleSidebar();
|
|
102
94
|
}
|
|
103
95
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarProvider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
104
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrSidebarProvider, isStandalone: true, selector: "[frSidebarProvider], frame-sidebar-provider", inputs: { defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, openInput: { classPropertyName: "openInput", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, shortcut: { classPropertyName: "shortcut", publicName: "shortcut", isSignal: true, isRequired: false, transformFunction: null }, keyboardShortcut: { classPropertyName: "keyboardShortcut", publicName: "keyboardShortcut", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange", openMobileChange: "openMobileChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)" }, properties: { "attr.data-state": "state()", "attr.data-open": "open()", "attr.data-mobile-open": "openMobile()", "attr.data-mobile": "isMobile() ? \"\" : null", "attr.data-resizing": "resizing() ? \"\" : null" }, classAttribute: "frame-sidebar-provider" }, providers: [
|
|
96
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrSidebarProvider, isStandalone: true, selector: "[frSidebarProvider], frame-sidebar-provider", inputs: { defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, openInput: { classPropertyName: "openInput", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, shortcut: { classPropertyName: "shortcut", publicName: "shortcut", isSignal: true, isRequired: false, transformFunction: null }, keyboardShortcut: { classPropertyName: "keyboardShortcut", publicName: "keyboardShortcut", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange", openMobileChange: "openMobileChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)" }, properties: { "attr.data-state": "state()", "attr.data-open": "open()", "attr.data-mobile-open": "openMobile()", "attr.data-mobile": "isMobile() ? \"\" : null", "attr.data-resizing": "resizing() ? \"\" : null", "style.--frame-sidebar-state": "state()" }, classAttribute: "frame-sidebar-provider" }, providers: [
|
|
105
97
|
{
|
|
106
98
|
provide: FR_SIDEBAR_PROVIDER,
|
|
107
99
|
useExisting: FrSidebarProvider,
|
|
@@ -126,10 +118,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
126
118
|
'[attr.data-mobile-open]': 'openMobile()',
|
|
127
119
|
'[attr.data-mobile]': 'isMobile() ? "" : null',
|
|
128
120
|
'[attr.data-resizing]': 'resizing() ? "" : null',
|
|
121
|
+
'[style.--frame-sidebar-state]': 'state()',
|
|
129
122
|
'(document:keydown)': 'handleKeydown($event)',
|
|
130
123
|
},
|
|
131
124
|
}]
|
|
132
125
|
}], ctorParameters: () => [], propDecorators: { defaultOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultOpen", required: false }] }], openInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], openChange: [{ type: i0.Output, args: ["openChange"] }], openMobileChange: [{ type: i0.Output, args: ["openMobileChange"] }], shortcut: [{ type: i0.Input, args: [{ isSignal: true, alias: "shortcut", required: false }] }], keyboardShortcut: [{ type: i0.Input, args: [{ isSignal: true, alias: "keyboardShortcut", required: false }] }] } });
|
|
126
|
+
/** Sidebar root driven by provider state. */
|
|
133
127
|
class FrSidebar {
|
|
134
128
|
elementRef = inject(ElementRef);
|
|
135
129
|
provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });
|
|
@@ -157,6 +151,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
157
151
|
},
|
|
158
152
|
}]
|
|
159
153
|
}], propDecorators: { side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], minSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "minSize", required: false }] }], maxSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSize", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }] } });
|
|
154
|
+
/** Trigger control for sidebar. */
|
|
160
155
|
class FrSidebarTrigger {
|
|
161
156
|
provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });
|
|
162
157
|
ariaLabel = input('Toggle sidebar', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
|
|
@@ -179,6 +174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
179
174
|
},
|
|
180
175
|
}]
|
|
181
176
|
}], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }] } });
|
|
177
|
+
/** Rail slot for sidebar. */
|
|
182
178
|
class FrSidebarRail {
|
|
183
179
|
document = inject(DOCUMENT);
|
|
184
180
|
sidebar = inject(FrSidebar, { optional: true });
|
|
@@ -248,6 +244,7 @@ class FrSidebarRail {
|
|
|
248
244
|
if (this.frameId !== -1) {
|
|
249
245
|
return;
|
|
250
246
|
}
|
|
247
|
+
// Batch rapid pointer moves into one width write per animation frame.
|
|
251
248
|
this.frameId = requestAnimationFrame(() => {
|
|
252
249
|
this.provider?.setSidebarWidth(this.pendingWidth);
|
|
253
250
|
this.frameId = -1;
|
|
@@ -275,6 +272,7 @@ class FrSidebarRail {
|
|
|
275
272
|
if (!this.sidebar) {
|
|
276
273
|
return 192;
|
|
277
274
|
}
|
|
275
|
+
// Use rendered child width as a fallback min-size when consumers do not provide one.
|
|
278
276
|
const sidebarElement = this.sidebar.elementRef.nativeElement;
|
|
279
277
|
const sidebarRect = sidebarElement.getBoundingClientRect();
|
|
280
278
|
let measuredWidth = 0;
|
|
@@ -308,6 +306,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
308
306
|
},
|
|
309
307
|
}]
|
|
310
308
|
}] });
|
|
309
|
+
/** Inset slot for sidebar. */
|
|
311
310
|
class FrSidebarInset {
|
|
312
311
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarInset, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
313
312
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarInset, isStandalone: true, selector: "[frSidebarInset], frame-sidebar-inset", host: { classAttribute: "frame-sidebar-inset" }, ngImport: i0 });
|
|
@@ -321,6 +320,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
321
320
|
},
|
|
322
321
|
}]
|
|
323
322
|
}] });
|
|
323
|
+
/** Header slot for sidebar. */
|
|
324
324
|
class FrSidebarHeader {
|
|
325
325
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
326
326
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarHeader, isStandalone: true, selector: "[frSidebarHeader], frame-sidebar-header", host: { classAttribute: "frame-sidebar__header" }, ngImport: i0 });
|
|
@@ -334,6 +334,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
334
334
|
},
|
|
335
335
|
}]
|
|
336
336
|
}] });
|
|
337
|
+
/** Footer slot for sidebar. */
|
|
337
338
|
class FrSidebarFooter {
|
|
338
339
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
339
340
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarFooter, isStandalone: true, selector: "[frSidebarFooter], frame-sidebar-footer", host: { classAttribute: "frame-sidebar__footer" }, ngImport: i0 });
|
|
@@ -347,6 +348,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
347
348
|
},
|
|
348
349
|
}]
|
|
349
350
|
}] });
|
|
351
|
+
/** Content slot for sidebar. */
|
|
350
352
|
class FrSidebarContent {
|
|
351
353
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
352
354
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarContent, isStandalone: true, selector: "[frSidebarContent], frame-sidebar-content", host: { classAttribute: "frame-sidebar__content" }, ngImport: i0 });
|
|
@@ -360,6 +362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
360
362
|
},
|
|
361
363
|
}]
|
|
362
364
|
}] });
|
|
365
|
+
/** Group slot for sidebar. */
|
|
363
366
|
class FrSidebarGroup {
|
|
364
367
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
365
368
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarGroup, isStandalone: true, selector: "[frSidebarGroup], frame-sidebar-group", host: { classAttribute: "frame-sidebar__group" }, ngImport: i0 });
|
|
@@ -373,6 +376,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
373
376
|
},
|
|
374
377
|
}]
|
|
375
378
|
}] });
|
|
379
|
+
/** Label slot for sidebar group. */
|
|
376
380
|
class FrSidebarGroupLabel {
|
|
377
381
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarGroupLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
378
382
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarGroupLabel, isStandalone: true, selector: "[frSidebarGroupLabel], frame-sidebar-group-label", host: { classAttribute: "frame-sidebar__group-label" }, ngImport: i0 });
|
|
@@ -386,6 +390,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
386
390
|
},
|
|
387
391
|
}]
|
|
388
392
|
}] });
|
|
393
|
+
/** Action slot for sidebar group. */
|
|
389
394
|
class FrSidebarGroupAction {
|
|
390
395
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarGroupAction, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
391
396
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarGroupAction, isStandalone: true, selector: "[frSidebarGroupAction], frame-sidebar-group-action", host: { attributes: { "type": "button" }, classAttribute: "frame-sidebar__group-action" }, ngImport: i0 });
|
|
@@ -400,6 +405,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
400
405
|
},
|
|
401
406
|
}]
|
|
402
407
|
}] });
|
|
408
|
+
/** Content slot for sidebar group. */
|
|
403
409
|
class FrSidebarGroupContent {
|
|
404
410
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarGroupContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
405
411
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarGroupContent, isStandalone: true, selector: "[frSidebarGroupContent], frame-sidebar-group-content", host: { classAttribute: "frame-sidebar__group-content" }, ngImport: i0 });
|
|
@@ -413,6 +419,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
413
419
|
},
|
|
414
420
|
}]
|
|
415
421
|
}] });
|
|
422
|
+
/** Menu list inside sidebar navigation. */
|
|
416
423
|
class FrSidebarMenu {
|
|
417
424
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
418
425
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarMenu, isStandalone: true, selector: "[frSidebarMenu], frame-sidebar-menu", host: { attributes: { "role": "list" }, classAttribute: "frame-sidebar__menu" }, ngImport: i0 });
|
|
@@ -427,6 +434,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
427
434
|
},
|
|
428
435
|
}]
|
|
429
436
|
}] });
|
|
437
|
+
/** Item slot for sidebar menu. */
|
|
430
438
|
class FrSidebarMenuItem {
|
|
431
439
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
432
440
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarMenuItem, isStandalone: true, selector: "[frSidebarMenuItem], frame-sidebar-menu-item", host: { attributes: { "role": "listitem" }, classAttribute: "frame-sidebar__menu-item" }, ngImport: i0 });
|
|
@@ -441,6 +449,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
441
449
|
},
|
|
442
450
|
}]
|
|
443
451
|
}] });
|
|
452
|
+
/** Interactive button or link inside a sidebar menu item. */
|
|
444
453
|
class FrSidebarMenuButton {
|
|
445
454
|
active = input(false, { ...(ngDevMode ? { debugName: "active" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
446
455
|
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
@@ -472,6 +481,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
472
481
|
},
|
|
473
482
|
}]
|
|
474
483
|
}], propDecorators: { active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }] } });
|
|
484
|
+
/** Action slot for sidebar menu. */
|
|
475
485
|
class FrSidebarMenuAction {
|
|
476
486
|
showOnHover = input(false, { ...(ngDevMode ? { debugName: "showOnHover" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
477
487
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuAction, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -488,6 +498,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
488
498
|
},
|
|
489
499
|
}]
|
|
490
500
|
}], propDecorators: { showOnHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "showOnHover", required: false }] }] } });
|
|
501
|
+
/** Badge slot for sidebar menu. */
|
|
491
502
|
class FrSidebarMenuBadge {
|
|
492
503
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuBadge, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
493
504
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarMenuBadge, isStandalone: true, selector: "[frSidebarMenuBadge], frame-sidebar-menu-badge", host: { classAttribute: "frame-sidebar__menu-badge" }, ngImport: i0 });
|
|
@@ -501,6 +512,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
501
512
|
},
|
|
502
513
|
}]
|
|
503
514
|
}] });
|
|
515
|
+
/** Nested menu list inside sidebar navigation. */
|
|
504
516
|
class FrSidebarMenuSub {
|
|
505
517
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuSub, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
506
518
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarMenuSub, isStandalone: true, selector: "[frSidebarMenuSub], frame-sidebar-menu-sub", host: { attributes: { "role": "list" }, classAttribute: "frame-sidebar__menu-sub" }, ngImport: i0 });
|
|
@@ -515,6 +527,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
515
527
|
},
|
|
516
528
|
}]
|
|
517
529
|
}] });
|
|
530
|
+
/** Item slot for sidebar menu sub. */
|
|
518
531
|
class FrSidebarMenuSubItem {
|
|
519
532
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSidebarMenuSubItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
520
533
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrSidebarMenuSubItem, isStandalone: true, selector: "[frSidebarMenuSubItem], frame-sidebar-menu-sub-item", host: { attributes: { "role": "listitem" }, classAttribute: "frame-sidebar__menu-sub-item" }, ngImport: i0 });
|
|
@@ -529,6 +542,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
529
542
|
},
|
|
530
543
|
}]
|
|
531
544
|
}] });
|
|
545
|
+
/** Interactive button or link inside a sidebar submenu. */
|
|
532
546
|
class FrSidebarMenuSubButton {
|
|
533
547
|
active = input(false, { ...(ngDevMode ? { debugName: "active" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
534
548
|
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
@@ -554,6 +568,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
554
568
|
},
|
|
555
569
|
}]
|
|
556
570
|
}], propDecorators: { active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
571
|
+
/** Skeleton slot for sidebar menu. */
|
|
557
572
|
class FrSidebarMenuSkeleton {
|
|
558
573
|
showIcon = input(false, { ...(ngDevMode ? { debugName: "showIcon" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
559
574
|
width = input('72%', ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame-ui-ng-components-sidebar.mjs","sources":["../../../projects/components/sidebar/src/sidebar.ts","../../../projects/components/sidebar/sidebar.module.ts","../../../projects/components/sidebar/frame-ui-ng-components-sidebar.ts"],"sourcesContent":["import {\r\n Directive,\r\n ElementRef,\r\n InjectionToken,\r\n booleanAttribute,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n numberAttribute,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { clampNumber } from '@frame-ui-ng/components/utils';\r\n\r\nexport const FR_SIDEBAR_SIDES = ['left', 'right'] as const;\r\nexport const FR_SIDEBAR_VARIANTS = ['sidebar', 'floating', 'inset'] as const;\r\nexport const FR_SIDEBAR_COLLAPSIBLES = ['offcanvas', 'icon', 'none'] as const;\r\nexport const FR_SIDEBAR_MENU_BUTTON_SIZES = ['default', 'sm', 'lg'] as const;\r\nexport const FR_SIDEBAR_MENU_BUTTON_VARIANTS = ['default', 'outline'] as const;\r\n\r\nexport type FrSidebarSide = (typeof FR_SIDEBAR_SIDES)[number];\r\nexport type FrSidebarVariant = (typeof FR_SIDEBAR_VARIANTS)[number];\r\nexport type FrSidebarCollapsible = (typeof FR_SIDEBAR_COLLAPSIBLES)[number];\r\nexport type FrSidebarState = 'expanded' | 'collapsed';\r\nexport type FrSidebarMenuButtonSize = (typeof FR_SIDEBAR_MENU_BUTTON_SIZES)[number];\r\nexport type FrSidebarMenuButtonVariant = (typeof FR_SIDEBAR_MENU_BUTTON_VARIANTS)[number];\r\n\r\nexport const FR_SIDEBAR_PROVIDER = new InjectionToken<FrSidebarProvider>('FR_SIDEBAR_PROVIDER');\r\n\r\nfunction coerceSide(value: unknown): FrSidebarSide {\r\n return value === 'right' ? 'right' : 'left';\r\n}\r\n\r\nfunction coerceVariant(value: unknown): FrSidebarVariant {\r\n return value === 'floating' || value === 'inset' ? value : 'sidebar';\r\n}\r\n\r\nfunction coerceCollapsible(value: unknown): FrSidebarCollapsible {\r\n return value === 'icon' || value === 'none' ? value : 'offcanvas';\r\n}\r\n\r\nfunction coerceMenuButtonSize(value: unknown): FrSidebarMenuButtonSize {\r\n return value === 'sm' || value === 'lg' ? value : 'default';\r\n}\r\n\r\nfunction coerceMenuButtonVariant(value: unknown): FrSidebarMenuButtonVariant {\r\n return value === 'outline' ? 'outline' : 'default';\r\n}\r\n\r\nfunction coerceOptionalNumber(value: unknown): number | null {\r\n if (value === null || value === undefined || value === '') {\r\n return null;\r\n }\r\n\r\n const coerced = numberAttribute(value, Number.NaN);\r\n return Number.isFinite(coerced) ? coerced : null;\r\n}\r\n\r\n@Directive({\r\n selector: '[frSidebarProvider], frame-sidebar-provider',\r\n exportAs: 'frSidebarProvider',\r\n providers: [\r\n {\r\n provide: FR_SIDEBAR_PROVIDER,\r\n useExisting: FrSidebarProvider,\r\n },\r\n ],\r\n host: {\r\n class: 'frame-sidebar-provider',\r\n '[attr.data-state]': 'state()',\r\n '[attr.data-open]': 'open()',\r\n '[attr.data-mobile-open]': 'openMobile()',\r\n '[attr.data-mobile]': 'isMobile() ? \"\" : null',\r\n '[attr.data-resizing]': 'resizing() ? \"\" : null',\r\n '(document:keydown)': 'handleKeydown($event)',\r\n },\r\n})\r\nexport class FrSidebarProvider {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly internalOpen = signal(true);\r\n private readonly internalOpenMobile = signal(false);\r\n protected readonly resizing = signal(false);\r\n\r\n readonly defaultOpen = input(true, { transform: booleanAttribute });\r\n readonly openInput = input<boolean | null>(null, { alias: 'open' });\r\n readonly openChange = output<boolean>();\r\n readonly openMobileChange = output<boolean>();\r\n readonly shortcut = input('b');\r\n readonly keyboardShortcut = input(true, { transform: booleanAttribute });\r\n readonly isMobile = signal(false);\r\n\r\n readonly open = computed(() => this.openInput() ?? this.internalOpen());\r\n readonly openMobile = computed(() => this.internalOpenMobile());\r\n readonly state = computed<FrSidebarState>(() => (this.open() ? 'expanded' : 'collapsed'));\r\n\r\n constructor() {\r\n this.internalOpen.set(this.defaultOpen());\r\n\r\n effect(() => {\r\n if (this.openInput() === null) {\r\n this.internalOpen.set(this.defaultOpen());\r\n }\r\n });\r\n\r\n effect(() => {\r\n this.elementRef.nativeElement.style.setProperty('--frame-sidebar-state', this.state());\r\n });\r\n\r\n const defaultView = this.document.defaultView;\r\n if (!defaultView?.matchMedia) {\r\n return;\r\n }\r\n\r\n const mediaQuery = defaultView.matchMedia('(max-width: 768px)');\r\n const updateMobile = () => this.isMobile.set(mediaQuery.matches);\r\n updateMobile();\r\n mediaQuery.addEventListener?.('change', updateMobile);\r\n }\r\n\r\n setOpen(open: boolean): void {\r\n if (this.openInput() === null) {\r\n this.internalOpen.set(open);\r\n }\r\n\r\n this.openChange.emit(open);\r\n }\r\n\r\n setOpenMobile(open: boolean): void {\r\n this.internalOpenMobile.set(open);\r\n this.openMobileChange.emit(open);\r\n }\r\n\r\n setSidebarWidth(width: number): void {\r\n this.elementRef.nativeElement.style.setProperty('--frame-sidebar-width', `${width}px`);\r\n }\r\n\r\n setResizing(resizing: boolean): void {\r\n this.resizing.set(resizing);\r\n }\r\n\r\n toggleSidebar(): void {\r\n if (this.isMobile()) {\r\n this.setOpenMobile(!this.openMobile());\r\n return;\r\n }\r\n\r\n this.setOpen(!this.open());\r\n }\r\n\r\n handleKeydown(event: KeyboardEvent): void {\r\n if (!this.keyboardShortcut()) {\r\n return;\r\n }\r\n\r\n const key = this.shortcut().toLowerCase();\r\n if (event.key.toLowerCase() !== key || (!event.metaKey && !event.ctrlKey)) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n this.toggleSidebar();\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[frSidebar], frame-sidebar',\r\n host: {\r\n class: 'frame-sidebar',\r\n '[attr.data-side]': 'side()',\r\n '[attr.data-variant]': 'variant()',\r\n '[attr.data-collapsible]': 'collapsible()',\r\n '[attr.data-resizable]': 'resizable() ? \"\" : null',\r\n '[attr.data-state]': 'provider?.state() ?? \"expanded\"',\r\n '[attr.data-mobile-open]': 'provider?.openMobile() ?? false',\r\n },\r\n})\r\nexport class FrSidebar {\r\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n readonly provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });\r\n readonly side = input<FrSidebarSide, unknown>('left', { transform: coerceSide });\r\n readonly variant = input<FrSidebarVariant, unknown>('sidebar', { transform: coerceVariant });\r\n readonly collapsible = input<FrSidebarCollapsible, unknown>('offcanvas', {\r\n transform: coerceCollapsible,\r\n });\r\n readonly minSize = input<number | null, unknown>(null, { transform: coerceOptionalNumber });\r\n readonly maxSize = input<number | null, unknown>(384, { transform: coerceOptionalNumber });\r\n readonly resizable = input(true, { transform: booleanAttribute });\r\n}\r\n\r\n@Directive({\r\n selector: '[frSidebarTrigger]',\r\n host: {\r\n class: 'frame-sidebar__trigger',\r\n type: 'button',\r\n '[attr.aria-expanded]': 'provider?.open() ?? true',\r\n '[attr.aria-label]': 'ariaLabel()',\r\n '(click)': 'toggle()',\r\n },\r\n})\r\nexport class FrSidebarTrigger {\r\n readonly provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });\r\n readonly ariaLabel = input('Toggle sidebar', { alias: 'aria-label' });\r\n\r\n toggle(): void {\r\n this.provider?.toggleSidebar();\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[frSidebarRail], frame-sidebar-rail',\r\n host: {\r\n class: 'frame-sidebar__rail',\r\n role: 'separator',\r\n tabindex: '0',\r\n 'aria-label': 'Resize sidebar',\r\n 'aria-orientation': 'vertical',\r\n '(click)': 'toggle()',\r\n '(pointerdown)': 'startResize($event)',\r\n '(keydown.enter)': 'toggle()',\r\n '(keydown.space)': 'toggle(); $event.preventDefault()',\r\n },\r\n})\r\nexport class FrSidebarRail {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly sidebar = inject(FrSidebar, { optional: true });\r\n private startX = 0;\r\n private startWidth = 0;\r\n private dragging = false;\r\n private suppressClick = false;\r\n private frameId = -1;\r\n private pendingWidth = 0;\r\n private resizeMinSize = 192;\r\n private resizeMaxSize = 384;\r\n\r\n readonly provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });\r\n\r\n toggle(): void {\r\n if (this.suppressClick) {\r\n return;\r\n }\r\n\r\n if (this.sidebar?.collapsible() === 'icon') {\r\n return;\r\n }\r\n\r\n this.provider?.toggleSidebar();\r\n }\r\n\r\n startResize(event: PointerEvent): void {\r\n if (!this.sidebar || !this.provider || this.provider.isMobile() || !this.sidebar.resizable()) {\r\n return;\r\n }\r\n\r\n this.startX = event.clientX;\r\n this.startWidth = this.sidebar.elementRef.nativeElement.getBoundingClientRect().width;\r\n this.dragging = false;\r\n this.pendingWidth = this.startWidth;\r\n this.captureResizeBounds();\r\n this.provider.setResizing(true);\r\n event.preventDefault();\r\n\r\n const move = (moveEvent: PointerEvent) => this.resize(moveEvent);\r\n const up = () => {\r\n this.document.removeEventListener('pointermove', move);\r\n this.document.removeEventListener('pointerup', up);\r\n if (this.dragging) {\r\n this.flushResize();\r\n }\r\n this.provider?.setResizing(false);\r\n this.suppressClick = this.dragging;\r\n this.dragging = false;\r\n this.pendingWidth = 0;\r\n this.resizeMinSize = 192;\r\n this.resizeMaxSize = 384;\r\n setTimeout(() => {\r\n this.suppressClick = false;\r\n });\r\n };\r\n\r\n this.document.addEventListener('pointermove', move);\r\n this.document.addEventListener('pointerup', up, { once: true });\r\n }\r\n\r\n private resize(event: PointerEvent): void {\r\n if (!this.sidebar || !this.provider) {\r\n return;\r\n }\r\n\r\n const delta = event.clientX - this.startX;\r\n const direction = this.sidebar.side() === 'right' ? -1 : 1;\r\n const nextWidth = clampNumber(this.startWidth + delta * direction, this.resizeMinSize, this.resizeMaxSize);\r\n\r\n if (Math.abs(delta) > 3) {\r\n this.dragging = true;\r\n\r\n if (this.sidebar.collapsible() === 'icon' && !this.provider.open()) {\r\n this.provider.setOpen(true);\r\n }\r\n }\r\n\r\n this.pendingWidth = nextWidth;\r\n\r\n if (this.frameId !== -1) {\r\n return;\r\n }\r\n\r\n this.frameId = requestAnimationFrame(() => {\r\n this.provider?.setSidebarWidth(this.pendingWidth);\r\n this.frameId = -1;\r\n });\r\n }\r\n\r\n private flushResize(): void {\r\n if (this.frameId !== -1) {\r\n cancelAnimationFrame(this.frameId);\r\n this.frameId = -1;\r\n }\r\n\r\n if (this.pendingWidth) {\r\n this.provider?.setSidebarWidth(this.pendingWidth);\r\n }\r\n }\r\n\r\n private captureResizeBounds(): void {\r\n if (!this.sidebar) {\r\n return;\r\n }\r\n\r\n const minSize = this.sidebar.minSize() ?? this.measureContentMinSize();\r\n const maxSize = this.sidebar.maxSize() ?? Number.POSITIVE_INFINITY;\r\n\r\n this.resizeMinSize = minSize;\r\n this.resizeMaxSize = Math.max(minSize, maxSize);\r\n }\r\n\r\n private measureContentMinSize(): number {\r\n if (!this.sidebar) {\r\n return 192;\r\n }\r\n\r\n const sidebarElement = this.sidebar.elementRef.nativeElement;\r\n const sidebarRect = sidebarElement.getBoundingClientRect();\r\n let measuredWidth = 0;\r\n\r\n for (const element of Array.from(sidebarElement.querySelectorAll<HTMLElement>('*'))) {\r\n if (element.hasAttribute('frSidebarRail') || element.tagName.toLowerCase() === 'frame-sidebar-rail') {\r\n continue;\r\n }\r\n\r\n const rect = element.getBoundingClientRect();\r\n const inlineStart = Math.max(0, rect.left - sidebarRect.left);\r\n measuredWidth = Math.max(measuredWidth, inlineStart + element.scrollWidth);\r\n }\r\n\r\n return Math.max(Math.ceil(measuredWidth), 192);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[frSidebarInset], frame-sidebar-inset',\r\n host: {\r\n class: 'frame-sidebar-inset',\r\n },\r\n})\r\nexport class FrSidebarInset {}\r\n\r\n@Directive({\r\n selector: '[frSidebarHeader], frame-sidebar-header',\r\n host: {\r\n class: 'frame-sidebar__header',\r\n },\r\n})\r\nexport class FrSidebarHeader {}\r\n\r\n@Directive({\r\n selector: '[frSidebarFooter], frame-sidebar-footer',\r\n host: {\r\n class: 'frame-sidebar__footer',\r\n },\r\n})\r\nexport class FrSidebarFooter {}\r\n\r\n@Directive({\r\n selector: '[frSidebarContent], frame-sidebar-content',\r\n host: {\r\n class: 'frame-sidebar__content',\r\n },\r\n})\r\nexport class FrSidebarContent {}\r\n\r\n@Directive({\r\n selector: '[frSidebarGroup], frame-sidebar-group',\r\n host: {\r\n class: 'frame-sidebar__group',\r\n },\r\n})\r\nexport class FrSidebarGroup {}\r\n\r\n@Directive({\r\n selector: '[frSidebarGroupLabel], frame-sidebar-group-label',\r\n host: {\r\n class: 'frame-sidebar__group-label',\r\n },\r\n})\r\nexport class FrSidebarGroupLabel {}\r\n\r\n@Directive({\r\n selector: '[frSidebarGroupAction], frame-sidebar-group-action',\r\n host: {\r\n class: 'frame-sidebar__group-action',\r\n type: 'button',\r\n },\r\n})\r\nexport class FrSidebarGroupAction {}\r\n\r\n@Directive({\r\n selector: '[frSidebarGroupContent], frame-sidebar-group-content',\r\n host: {\r\n class: 'frame-sidebar__group-content',\r\n },\r\n})\r\nexport class FrSidebarGroupContent {}\r\n\r\n@Directive({\r\n selector: '[frSidebarMenu], frame-sidebar-menu',\r\n host: {\r\n class: 'frame-sidebar__menu',\r\n role: 'list',\r\n },\r\n})\r\nexport class FrSidebarMenu {}\r\n\r\n@Directive({\r\n selector: '[frSidebarMenuItem], frame-sidebar-menu-item',\r\n host: {\r\n class: 'frame-sidebar__menu-item',\r\n role: 'listitem',\r\n },\r\n})\r\nexport class FrSidebarMenuItem {}\r\n\r\n@Directive({\r\n selector: '[frSidebarMenuButton], a[frSidebarMenuButton], button[frSidebarMenuButton]',\r\n host: {\r\n class: 'frame-sidebar__menu-button',\r\n '[attr.data-active]': 'active() ? \"\" : null',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-size]': 'size()',\r\n '[attr.data-variant]': 'variant()',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '[attr.tabindex]': 'disabled() ? -1 : null',\r\n '(click)': 'handleClick($event)',\r\n },\r\n})\r\nexport class FrSidebarMenuButton {\r\n readonly active = input(false, { transform: booleanAttribute });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly size = input<FrSidebarMenuButtonSize, unknown>('default', {\r\n transform: coerceMenuButtonSize,\r\n });\r\n readonly variant = input<FrSidebarMenuButtonVariant, unknown>('default', {\r\n transform: coerceMenuButtonVariant,\r\n });\r\n readonly tooltip = input<string | null>(null);\r\n\r\n handleClick(event: Event): void {\r\n if (this.disabled()) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[frSidebarMenuAction], frame-sidebar-menu-action',\r\n host: {\r\n class: 'frame-sidebar__menu-action',\r\n type: 'button',\r\n '[attr.data-show-on-hover]': 'showOnHover() ? \"\" : null',\r\n },\r\n})\r\nexport class FrSidebarMenuAction {\r\n readonly showOnHover = input(false, { transform: booleanAttribute });\r\n}\r\n\r\n@Directive({\r\n selector: '[frSidebarMenuBadge], frame-sidebar-menu-badge',\r\n host: {\r\n class: 'frame-sidebar__menu-badge',\r\n },\r\n})\r\nexport class FrSidebarMenuBadge {}\r\n\r\n@Directive({\r\n selector: '[frSidebarMenuSub], frame-sidebar-menu-sub',\r\n host: {\r\n class: 'frame-sidebar__menu-sub',\r\n role: 'list',\r\n },\r\n})\r\nexport class FrSidebarMenuSub {}\r\n\r\n@Directive({\r\n selector: '[frSidebarMenuSubItem], frame-sidebar-menu-sub-item',\r\n host: {\r\n class: 'frame-sidebar__menu-sub-item',\r\n role: 'listitem',\r\n },\r\n})\r\nexport class FrSidebarMenuSubItem {}\r\n\r\n@Directive({\r\n selector: '[frSidebarMenuSubButton], a[frSidebarMenuSubButton], button[frSidebarMenuSubButton]',\r\n host: {\r\n class: 'frame-sidebar__menu-sub-button',\r\n '[attr.data-active]': 'active() ? \"\" : null',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '(click)': 'handleClick($event)',\r\n },\r\n})\r\nexport class FrSidebarMenuSubButton {\r\n readonly active = input(false, { transform: booleanAttribute });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n\r\n handleClick(event: Event): void {\r\n if (this.disabled()) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[frSidebarMenuSkeleton], frame-sidebar-menu-skeleton',\r\n host: {\r\n class: 'frame-sidebar__menu-skeleton',\r\n '[attr.data-show-icon]': 'showIcon() ? \"\" : null',\r\n '[style.--frame-sidebar-skeleton-width]': 'width()',\r\n },\r\n})\r\nexport class FrSidebarMenuSkeleton {\r\n readonly showIcon = input(false, { transform: booleanAttribute });\r\n readonly width = input('72%');\r\n}\r\n","import { NgModule } from '@angular/core';\nimport {\n FrSidebar,\n FrSidebarContent,\n FrSidebarFooter,\n FrSidebarGroup,\n FrSidebarGroupAction,\n FrSidebarGroupContent,\n FrSidebarGroupLabel,\n FrSidebarHeader,\n FrSidebarInset,\n FrSidebarMenu,\n FrSidebarMenuAction,\n FrSidebarMenuBadge,\n FrSidebarMenuButton,\n FrSidebarMenuItem,\n FrSidebarMenuSkeleton,\n FrSidebarMenuSub,\n FrSidebarMenuSubButton,\n FrSidebarMenuSubItem,\n FrSidebarProvider,\n FrSidebarRail,\n FrSidebarTrigger,\n} from './src/sidebar';\n\n@NgModule({\n imports: [\n FrSidebar,\n FrSidebarContent,\n FrSidebarFooter,\n FrSidebarGroup,\n FrSidebarGroupAction,\n FrSidebarGroupContent,\n FrSidebarGroupLabel,\n FrSidebarHeader,\n FrSidebarInset,\n FrSidebarMenu,\n FrSidebarMenuAction,\n FrSidebarMenuBadge,\n FrSidebarMenuButton,\n FrSidebarMenuItem,\n FrSidebarMenuSkeleton,\n FrSidebarMenuSub,\n FrSidebarMenuSubButton,\n FrSidebarMenuSubItem,\n FrSidebarProvider,\n FrSidebarRail,\n FrSidebarTrigger,\n ],\n exports: [\n FrSidebar,\n FrSidebarContent,\n FrSidebarFooter,\n FrSidebarGroup,\n FrSidebarGroupAction,\n FrSidebarGroupContent,\n FrSidebarGroupLabel,\n FrSidebarHeader,\n FrSidebarInset,\n FrSidebarMenu,\n FrSidebarMenuAction,\n FrSidebarMenuBadge,\n FrSidebarMenuButton,\n FrSidebarMenuItem,\n FrSidebarMenuSkeleton,\n FrSidebarMenuSub,\n FrSidebarMenuSubButton,\n FrSidebarMenuSubItem,\n FrSidebarProvider,\n FrSidebarRail,\n FrSidebarTrigger,\n ],\n})\nexport class FrSidebarModule {}\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":"frame-ui-ng-components-sidebar.mjs","sources":["../../../projects/components/sidebar/src/sidebar.ts","../../../projects/components/sidebar/sidebar.module.ts","../../../projects/components/sidebar/frame-ui-ng-components-sidebar.ts"],"sourcesContent":["import {\r\n Directive,\r\n ElementRef,\r\n InjectionToken,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n linkedSignal,\r\n numberAttribute,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { clampNumber } from '@frame-ui-ng/components/utils';\r\n\r\nexport const FR_SIDEBAR_SIDES = ['left', 'right'] as const;\r\nexport const FR_SIDEBAR_VARIANTS = ['sidebar', 'floating', 'inset'] as const;\r\nexport const FR_SIDEBAR_COLLAPSIBLES = ['offcanvas', 'icon', 'none'] as const;\r\nexport const FR_SIDEBAR_MENU_BUTTON_SIZES = ['default', 'sm', 'lg'] as const;\r\nexport const FR_SIDEBAR_MENU_BUTTON_VARIANTS = ['default', 'outline'] as const;\r\n\r\nexport type FrSidebarSide = (typeof FR_SIDEBAR_SIDES)[number];\r\nexport type FrSidebarVariant = (typeof FR_SIDEBAR_VARIANTS)[number];\r\nexport type FrSidebarCollapsible = (typeof FR_SIDEBAR_COLLAPSIBLES)[number];\r\nexport type FrSidebarState = 'expanded' | 'collapsed';\r\nexport type FrSidebarMenuButtonSize = (typeof FR_SIDEBAR_MENU_BUTTON_SIZES)[number];\r\nexport type FrSidebarMenuButtonVariant = (typeof FR_SIDEBAR_MENU_BUTTON_VARIANTS)[number];\r\n\r\nexport const FR_SIDEBAR_PROVIDER = new InjectionToken<FrSidebarProvider>('FR_SIDEBAR_PROVIDER');\r\n\r\nfunction coerceSide(value: unknown): FrSidebarSide {\r\n return value === 'right' ? 'right' : 'left';\r\n}\r\n\r\nfunction coerceVariant(value: unknown): FrSidebarVariant {\r\n return value === 'floating' || value === 'inset' ? value : 'sidebar';\r\n}\r\n\r\nfunction coerceCollapsible(value: unknown): FrSidebarCollapsible {\r\n return value === 'icon' || value === 'none' ? value : 'offcanvas';\r\n}\r\n\r\nfunction coerceMenuButtonSize(value: unknown): FrSidebarMenuButtonSize {\r\n return value === 'sm' || value === 'lg' ? value : 'default';\r\n}\r\n\r\nfunction coerceMenuButtonVariant(value: unknown): FrSidebarMenuButtonVariant {\r\n return value === 'outline' ? 'outline' : 'default';\r\n}\r\n\r\nfunction coerceOptionalNumber(value: unknown): number | null {\r\n if (value === null || value === undefined || value === '') {\r\n return null;\r\n }\r\n\r\n const coerced = numberAttribute(value, Number.NaN);\r\n return Number.isFinite(coerced) ? coerced : null;\r\n}\r\n\r\n/** Shared state provider for sidebar. */\r\n@Directive({\r\n selector: '[frSidebarProvider], frame-sidebar-provider',\r\n exportAs: 'frSidebarProvider',\r\n providers: [\r\n {\r\n provide: FR_SIDEBAR_PROVIDER,\r\n useExisting: FrSidebarProvider,\r\n },\r\n ],\r\n host: {\r\n class: 'frame-sidebar-provider',\r\n '[attr.data-state]': 'state()',\r\n '[attr.data-open]': 'open()',\r\n '[attr.data-mobile-open]': 'openMobile()',\r\n '[attr.data-mobile]': 'isMobile() ? \"\" : null',\r\n '[attr.data-resizing]': 'resizing() ? \"\" : null',\r\n '[style.--frame-sidebar-state]': 'state()',\r\n '(document:keydown)': 'handleKeydown($event)',\r\n },\r\n})\r\nexport class FrSidebarProvider {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly internalOpen = linkedSignal(() => this.defaultOpen());\r\n private readonly internalOpenMobile = signal(false);\r\n protected readonly resizing = signal(false);\r\n\r\n readonly defaultOpen = input(true, { transform: booleanAttribute });\r\n readonly openInput = input<boolean | null>(null, { alias: 'open' });\r\n readonly openChange = output<boolean>();\r\n readonly openMobileChange = output<boolean>();\r\n readonly shortcut = input('b');\r\n readonly keyboardShortcut = input(true, { transform: booleanAttribute });\r\n readonly isMobile = signal(false);\r\n\r\n readonly open = computed(() => this.openInput() ?? this.internalOpen());\r\n readonly openMobile = computed(() => this.internalOpenMobile());\r\n readonly state = computed<FrSidebarState>(() => (this.open() ? 'expanded' : 'collapsed'));\r\n\r\n constructor() {\r\n const defaultView = this.document.defaultView;\r\n if (!defaultView?.matchMedia) {\r\n return;\r\n }\r\n\r\n const mediaQuery = defaultView.matchMedia('(max-width: 768px)');\r\n const updateMobile = () => this.isMobile.set(mediaQuery.matches);\r\n updateMobile();\r\n mediaQuery.addEventListener?.('change', updateMobile);\r\n }\r\n\r\n setOpen(open: boolean): void {\r\n if (this.openInput() === null) {\r\n this.internalOpen.set(open);\r\n }\r\n\r\n this.openChange.emit(open);\r\n }\r\n\r\n setOpenMobile(open: boolean): void {\r\n this.internalOpenMobile.set(open);\r\n this.openMobileChange.emit(open);\r\n }\r\n\r\n setSidebarWidth(width: number): void {\r\n this.elementRef.nativeElement.style.setProperty('--frame-sidebar-width', `${width}px`);\r\n }\r\n\r\n setResizing(resizing: boolean): void {\r\n this.resizing.set(resizing);\r\n }\r\n\r\n toggleSidebar(): void {\r\n if (this.isMobile()) {\r\n this.setOpenMobile(!this.openMobile());\r\n return;\r\n }\r\n\r\n this.setOpen(!this.open());\r\n }\r\n\r\n handleKeydown(event: KeyboardEvent): void {\r\n if (!this.keyboardShortcut()) {\r\n return;\r\n }\r\n\r\n const key = this.shortcut().toLowerCase();\r\n if (event.key.toLowerCase() !== key || (!event.metaKey && !event.ctrlKey)) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n this.toggleSidebar();\r\n }\r\n}\r\n\r\n/** Sidebar root driven by provider state. */\r\n@Directive({\r\n selector: '[frSidebar], frame-sidebar',\r\n host: {\r\n class: 'frame-sidebar',\r\n '[attr.data-side]': 'side()',\r\n '[attr.data-variant]': 'variant()',\r\n '[attr.data-collapsible]': 'collapsible()',\r\n '[attr.data-resizable]': 'resizable() ? \"\" : null',\r\n '[attr.data-state]': 'provider?.state() ?? \"expanded\"',\r\n '[attr.data-mobile-open]': 'provider?.openMobile() ?? false',\r\n },\r\n})\r\nexport class FrSidebar {\r\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n readonly provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });\r\n readonly side = input<FrSidebarSide, unknown>('left', { transform: coerceSide });\r\n readonly variant = input<FrSidebarVariant, unknown>('sidebar', { transform: coerceVariant });\r\n readonly collapsible = input<FrSidebarCollapsible, unknown>('offcanvas', {\r\n transform: coerceCollapsible,\r\n });\r\n readonly minSize = input<number | null, unknown>(null, { transform: coerceOptionalNumber });\r\n readonly maxSize = input<number | null, unknown>(384, { transform: coerceOptionalNumber });\r\n readonly resizable = input(true, { transform: booleanAttribute });\r\n}\r\n\r\n/** Trigger control for sidebar. */\r\n@Directive({\r\n selector: '[frSidebarTrigger]',\r\n host: {\r\n class: 'frame-sidebar__trigger',\r\n type: 'button',\r\n '[attr.aria-expanded]': 'provider?.open() ?? true',\r\n '[attr.aria-label]': 'ariaLabel()',\r\n '(click)': 'toggle()',\r\n },\r\n})\r\nexport class FrSidebarTrigger {\r\n readonly provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });\r\n readonly ariaLabel = input('Toggle sidebar', { alias: 'aria-label' });\r\n\r\n toggle(): void {\r\n this.provider?.toggleSidebar();\r\n }\r\n}\r\n\r\n/** Rail slot for sidebar. */\r\n@Directive({\r\n selector: '[frSidebarRail], frame-sidebar-rail',\r\n host: {\r\n class: 'frame-sidebar__rail',\r\n role: 'separator',\r\n tabindex: '0',\r\n 'aria-label': 'Resize sidebar',\r\n 'aria-orientation': 'vertical',\r\n '(click)': 'toggle()',\r\n '(pointerdown)': 'startResize($event)',\r\n '(keydown.enter)': 'toggle()',\r\n '(keydown.space)': 'toggle(); $event.preventDefault()',\r\n },\r\n})\r\nexport class FrSidebarRail {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly sidebar = inject(FrSidebar, { optional: true });\r\n private startX = 0;\r\n private startWidth = 0;\r\n private dragging = false;\r\n private suppressClick = false;\r\n private frameId = -1;\r\n private pendingWidth = 0;\r\n private resizeMinSize = 192;\r\n private resizeMaxSize = 384;\r\n\r\n readonly provider = inject(FR_SIDEBAR_PROVIDER, { optional: true });\r\n\r\n toggle(): void {\r\n if (this.suppressClick) {\r\n return;\r\n }\r\n\r\n if (this.sidebar?.collapsible() === 'icon') {\r\n return;\r\n }\r\n\r\n this.provider?.toggleSidebar();\r\n }\r\n\r\n startResize(event: PointerEvent): void {\r\n if (!this.sidebar || !this.provider || this.provider.isMobile() || !this.sidebar.resizable()) {\r\n return;\r\n }\r\n\r\n this.startX = event.clientX;\r\n this.startWidth = this.sidebar.elementRef.nativeElement.getBoundingClientRect().width;\r\n this.dragging = false;\r\n this.pendingWidth = this.startWidth;\r\n this.captureResizeBounds();\r\n this.provider.setResizing(true);\r\n event.preventDefault();\r\n\r\n const move = (moveEvent: PointerEvent) => this.resize(moveEvent);\r\n const up = () => {\r\n this.document.removeEventListener('pointermove', move);\r\n this.document.removeEventListener('pointerup', up);\r\n if (this.dragging) {\r\n this.flushResize();\r\n }\r\n this.provider?.setResizing(false);\r\n this.suppressClick = this.dragging;\r\n this.dragging = false;\r\n this.pendingWidth = 0;\r\n this.resizeMinSize = 192;\r\n this.resizeMaxSize = 384;\r\n setTimeout(() => {\r\n this.suppressClick = false;\r\n });\r\n };\r\n\r\n this.document.addEventListener('pointermove', move);\r\n this.document.addEventListener('pointerup', up, { once: true });\r\n }\r\n\r\n private resize(event: PointerEvent): void {\r\n if (!this.sidebar || !this.provider) {\r\n return;\r\n }\r\n\r\n const delta = event.clientX - this.startX;\r\n const direction = this.sidebar.side() === 'right' ? -1 : 1;\r\n const nextWidth = clampNumber(this.startWidth + delta * direction, this.resizeMinSize, this.resizeMaxSize);\r\n\r\n if (Math.abs(delta) > 3) {\r\n this.dragging = true;\r\n\r\n if (this.sidebar.collapsible() === 'icon' && !this.provider.open()) {\r\n this.provider.setOpen(true);\r\n }\r\n }\r\n\r\n this.pendingWidth = nextWidth;\r\n\r\n if (this.frameId !== -1) {\r\n return;\r\n }\r\n\r\n // Batch rapid pointer moves into one width write per animation frame.\r\n this.frameId = requestAnimationFrame(() => {\r\n this.provider?.setSidebarWidth(this.pendingWidth);\r\n this.frameId = -1;\r\n });\r\n }\r\n\r\n private flushResize(): void {\r\n if (this.frameId !== -1) {\r\n cancelAnimationFrame(this.frameId);\r\n this.frameId = -1;\r\n }\r\n\r\n if (this.pendingWidth) {\r\n this.provider?.setSidebarWidth(this.pendingWidth);\r\n }\r\n }\r\n\r\n private captureResizeBounds(): void {\r\n if (!this.sidebar) {\r\n return;\r\n }\r\n\r\n const minSize = this.sidebar.minSize() ?? this.measureContentMinSize();\r\n const maxSize = this.sidebar.maxSize() ?? Number.POSITIVE_INFINITY;\r\n\r\n this.resizeMinSize = minSize;\r\n this.resizeMaxSize = Math.max(minSize, maxSize);\r\n }\r\n\r\n private measureContentMinSize(): number {\r\n if (!this.sidebar) {\r\n return 192;\r\n }\r\n\r\n // Use rendered child width as a fallback min-size when consumers do not provide one.\r\n const sidebarElement = this.sidebar.elementRef.nativeElement;\r\n const sidebarRect = sidebarElement.getBoundingClientRect();\r\n let measuredWidth = 0;\r\n\r\n for (const element of Array.from(sidebarElement.querySelectorAll<HTMLElement>('*'))) {\r\n if (element.hasAttribute('frSidebarRail') || element.tagName.toLowerCase() === 'frame-sidebar-rail') {\r\n continue;\r\n }\r\n\r\n const rect = element.getBoundingClientRect();\r\n const inlineStart = Math.max(0, rect.left - sidebarRect.left);\r\n measuredWidth = Math.max(measuredWidth, inlineStart + element.scrollWidth);\r\n }\r\n\r\n return Math.max(Math.ceil(measuredWidth), 192);\r\n }\r\n}\r\n\r\n/** Inset slot for sidebar. */\r\n@Directive({\r\n selector: '[frSidebarInset], frame-sidebar-inset',\r\n host: {\r\n class: 'frame-sidebar-inset',\r\n },\r\n})\r\nexport class FrSidebarInset {}\r\n\r\n/** Header slot for sidebar. */\r\n@Directive({\r\n selector: '[frSidebarHeader], frame-sidebar-header',\r\n host: {\r\n class: 'frame-sidebar__header',\r\n },\r\n})\r\nexport class FrSidebarHeader {}\r\n\r\n/** Footer slot for sidebar. */\r\n@Directive({\r\n selector: '[frSidebarFooter], frame-sidebar-footer',\r\n host: {\r\n class: 'frame-sidebar__footer',\r\n },\r\n})\r\nexport class FrSidebarFooter {}\r\n\r\n/** Content slot for sidebar. */\r\n@Directive({\r\n selector: '[frSidebarContent], frame-sidebar-content',\r\n host: {\r\n class: 'frame-sidebar__content',\r\n },\r\n})\r\nexport class FrSidebarContent {}\r\n\r\n/** Group slot for sidebar. */\r\n@Directive({\r\n selector: '[frSidebarGroup], frame-sidebar-group',\r\n host: {\r\n class: 'frame-sidebar__group',\r\n },\r\n})\r\nexport class FrSidebarGroup {}\r\n\r\n/** Label slot for sidebar group. */\r\n@Directive({\r\n selector: '[frSidebarGroupLabel], frame-sidebar-group-label',\r\n host: {\r\n class: 'frame-sidebar__group-label',\r\n },\r\n})\r\nexport class FrSidebarGroupLabel {}\r\n\r\n/** Action slot for sidebar group. */\r\n@Directive({\r\n selector: '[frSidebarGroupAction], frame-sidebar-group-action',\r\n host: {\r\n class: 'frame-sidebar__group-action',\r\n type: 'button',\r\n },\r\n})\r\nexport class FrSidebarGroupAction {}\r\n\r\n/** Content slot for sidebar group. */\r\n@Directive({\r\n selector: '[frSidebarGroupContent], frame-sidebar-group-content',\r\n host: {\r\n class: 'frame-sidebar__group-content',\r\n },\r\n})\r\nexport class FrSidebarGroupContent {}\r\n\r\n/** Menu list inside sidebar navigation. */\r\n@Directive({\r\n selector: '[frSidebarMenu], frame-sidebar-menu',\r\n host: {\r\n class: 'frame-sidebar__menu',\r\n role: 'list',\r\n },\r\n})\r\nexport class FrSidebarMenu {}\r\n\r\n/** Item slot for sidebar menu. */\r\n@Directive({\r\n selector: '[frSidebarMenuItem], frame-sidebar-menu-item',\r\n host: {\r\n class: 'frame-sidebar__menu-item',\r\n role: 'listitem',\r\n },\r\n})\r\nexport class FrSidebarMenuItem {}\r\n\r\n/** Interactive button or link inside a sidebar menu item. */\r\n@Directive({\r\n selector: '[frSidebarMenuButton], a[frSidebarMenuButton], button[frSidebarMenuButton]',\r\n host: {\r\n class: 'frame-sidebar__menu-button',\r\n '[attr.data-active]': 'active() ? \"\" : null',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-size]': 'size()',\r\n '[attr.data-variant]': 'variant()',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '[attr.tabindex]': 'disabled() ? -1 : null',\r\n '(click)': 'handleClick($event)',\r\n },\r\n})\r\nexport class FrSidebarMenuButton {\r\n readonly active = input(false, { transform: booleanAttribute });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly size = input<FrSidebarMenuButtonSize, unknown>('default', {\r\n transform: coerceMenuButtonSize,\r\n });\r\n readonly variant = input<FrSidebarMenuButtonVariant, unknown>('default', {\r\n transform: coerceMenuButtonVariant,\r\n });\r\n readonly tooltip = input<string | null>(null);\r\n\r\n handleClick(event: Event): void {\r\n if (this.disabled()) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n\r\n/** Action slot for sidebar menu. */\r\n@Directive({\r\n selector: '[frSidebarMenuAction], frame-sidebar-menu-action',\r\n host: {\r\n class: 'frame-sidebar__menu-action',\r\n type: 'button',\r\n '[attr.data-show-on-hover]': 'showOnHover() ? \"\" : null',\r\n },\r\n})\r\nexport class FrSidebarMenuAction {\r\n readonly showOnHover = input(false, { transform: booleanAttribute });\r\n}\r\n\r\n/** Badge slot for sidebar menu. */\r\n@Directive({\r\n selector: '[frSidebarMenuBadge], frame-sidebar-menu-badge',\r\n host: {\r\n class: 'frame-sidebar__menu-badge',\r\n },\r\n})\r\nexport class FrSidebarMenuBadge {}\r\n\r\n/** Nested menu list inside sidebar navigation. */\r\n@Directive({\r\n selector: '[frSidebarMenuSub], frame-sidebar-menu-sub',\r\n host: {\r\n class: 'frame-sidebar__menu-sub',\r\n role: 'list',\r\n },\r\n})\r\nexport class FrSidebarMenuSub {}\r\n\r\n/** Item slot for sidebar menu sub. */\r\n@Directive({\r\n selector: '[frSidebarMenuSubItem], frame-sidebar-menu-sub-item',\r\n host: {\r\n class: 'frame-sidebar__menu-sub-item',\r\n role: 'listitem',\r\n },\r\n})\r\nexport class FrSidebarMenuSubItem {}\r\n\r\n/** Interactive button or link inside a sidebar submenu. */\r\n@Directive({\r\n selector: '[frSidebarMenuSubButton], a[frSidebarMenuSubButton], button[frSidebarMenuSubButton]',\r\n host: {\r\n class: 'frame-sidebar__menu-sub-button',\r\n '[attr.data-active]': 'active() ? \"\" : null',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '(click)': 'handleClick($event)',\r\n },\r\n})\r\nexport class FrSidebarMenuSubButton {\r\n readonly active = input(false, { transform: booleanAttribute });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n\r\n handleClick(event: Event): void {\r\n if (this.disabled()) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n\r\n/** Skeleton slot for sidebar menu. */\r\n@Directive({\r\n selector: '[frSidebarMenuSkeleton], frame-sidebar-menu-skeleton',\r\n host: {\r\n class: 'frame-sidebar__menu-skeleton',\r\n '[attr.data-show-icon]': 'showIcon() ? \"\" : null',\r\n '[style.--frame-sidebar-skeleton-width]': 'width()',\r\n },\r\n})\r\nexport class FrSidebarMenuSkeleton {\r\n readonly showIcon = input(false, { transform: booleanAttribute });\r\n readonly width = input('72%');\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\nimport {\n FrSidebar,\n FrSidebarContent,\n FrSidebarFooter,\n FrSidebarGroup,\n FrSidebarGroupAction,\n FrSidebarGroupContent,\n FrSidebarGroupLabel,\n FrSidebarHeader,\n FrSidebarInset,\n FrSidebarMenu,\n FrSidebarMenuAction,\n FrSidebarMenuBadge,\n FrSidebarMenuButton,\n FrSidebarMenuItem,\n FrSidebarMenuSkeleton,\n FrSidebarMenuSub,\n FrSidebarMenuSubButton,\n FrSidebarMenuSubItem,\n FrSidebarProvider,\n FrSidebarRail,\n FrSidebarTrigger,\n} from './src/sidebar';\n\n@NgModule({\n imports: [\n FrSidebar,\n FrSidebarContent,\n FrSidebarFooter,\n FrSidebarGroup,\n FrSidebarGroupAction,\n FrSidebarGroupContent,\n FrSidebarGroupLabel,\n FrSidebarHeader,\n FrSidebarInset,\n FrSidebarMenu,\n FrSidebarMenuAction,\n FrSidebarMenuBadge,\n FrSidebarMenuButton,\n FrSidebarMenuItem,\n FrSidebarMenuSkeleton,\n FrSidebarMenuSub,\n FrSidebarMenuSubButton,\n FrSidebarMenuSubItem,\n FrSidebarProvider,\n FrSidebarRail,\n FrSidebarTrigger,\n ],\n exports: [\n FrSidebar,\n FrSidebarContent,\n FrSidebarFooter,\n FrSidebarGroup,\n FrSidebarGroupAction,\n FrSidebarGroupContent,\n FrSidebarGroupLabel,\n FrSidebarHeader,\n FrSidebarInset,\n FrSidebarMenu,\n FrSidebarMenuAction,\n FrSidebarMenuBadge,\n FrSidebarMenuButton,\n FrSidebarMenuItem,\n FrSidebarMenuSkeleton,\n FrSidebarMenuSub,\n FrSidebarMenuSubButton,\n FrSidebarMenuSubItem,\n FrSidebarProvider,\n FrSidebarRail,\n FrSidebarTrigger,\n ],\n})\nexport class FrSidebarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAgBa,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO;AACzC,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO;AAC3D,MAAM,uBAAuB,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM;AAC5D,MAAM,4BAA4B,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI;MACrD,+BAA+B,GAAG,CAAC,SAAS,EAAE,SAAS;MASvD,mBAAmB,GAAG,IAAI,cAAc,CAAoB,qBAAqB;AAE9F,SAAS,UAAU,CAAC,KAAc,EAAA;IAChC,OAAO,KAAK,KAAK,OAAO,GAAG,OAAO,GAAG,MAAM;AAC7C;AAEA,SAAS,aAAa,CAAC,KAAc,EAAA;AACnC,IAAA,OAAO,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,OAAO,GAAG,KAAK,GAAG,SAAS;AACtE;AAEA,SAAS,iBAAiB,CAAC,KAAc,EAAA;AACvC,IAAA,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,GAAG,KAAK,GAAG,WAAW;AACnE;AAEA,SAAS,oBAAoB,CAAC,KAAc,EAAA;AAC1C,IAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,SAAS;AAC7D;AAEA,SAAS,uBAAuB,CAAC,KAAc,EAAA;IAC7C,OAAO,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS;AACpD;AAEA,SAAS,oBAAoB,CAAC,KAAc,EAAA;AAC1C,IAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE;AACzD,QAAA,OAAO,IAAI;IACb;IAEA,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;AAClD,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,IAAI;AAClD;AAEA;MAqBa,iBAAiB,CAAA;AACX,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;IACxD,YAAY,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AACrD,IAAA,kBAAkB,GAAG,MAAM,CAAC,KAAK,yFAAC;AAChC,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,+EAAC;IAElC,WAAW,GAAG,KAAK,CAAC,IAAI,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAC1D,SAAS,GAAG,KAAK,CAAiB,IAAI,iFAAI,KAAK,EAAE,MAAM,EAAA,CAAG;IAC1D,UAAU,GAAG,MAAM,EAAW;IAC9B,gBAAgB,GAAG,MAAM,EAAW;AACpC,IAAA,QAAQ,GAAG,KAAK,CAAC,GAAG,+EAAC;IACrB,gBAAgB,GAAG,KAAK,CAAC,IAAI,wFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC/D,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,+EAAC;AAExB,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,2EAAC;IAC9D,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;IACtD,KAAK,GAAG,QAAQ,CAAiB,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,GAAG,WAAW,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AAEzF,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW;AAC7C,QAAA,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE;YAC5B;QACF;QAEA,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,oBAAoB,CAAC;AAC/D,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;AAChE,QAAA,YAAY,EAAE;QACd,UAAU,CAAC,gBAAgB,GAAG,QAAQ,EAAE,YAAY,CAAC;IACvD;AAEA,IAAA,OAAO,CAAC,IAAa,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;AAC7B,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;QAC7B;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;AAEA,IAAA,aAAa,CAAC,IAAa,EAAA;AACzB,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;IAClC;AAEA,IAAA,eAAe,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAA,EAAG,KAAK,CAAA,EAAA,CAAI,CAAC;IACxF;AAEA,IAAA,WAAW,CAAC,QAAiB,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC7B;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC;QACF;QAEA,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B;AAEA,IAAA,aAAa,CAAC,KAAoB,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC5B;QACF;QAEA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;QACzC,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACzE;QACF;QAEA,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,aAAa,EAAE;IACtB;wGAzEW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,6BAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,EAAA,SAAA,EAjBjB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,iBAAiB;AAC/B,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAYU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBApB7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6CAA6C;AACvD,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAA,iBAAmB;AAC/B,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,wBAAwB;AAC/B,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,yBAAyB,EAAE,cAAc;AACzC,wBAAA,oBAAoB,EAAE,wBAAwB;AAC9C,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,+BAA+B,EAAE,SAAS;AAC1C,wBAAA,oBAAoB,EAAE,uBAAuB;AAC9C,qBAAA;AACF,iBAAA;;AA6ED;MAaa,SAAS,CAAA;AACX,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;IACxD,QAAQ,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,GAAG,KAAK,CAAyB,MAAM,4EAAI,SAAS,EAAE,UAAU,EAAA,CAAG;IACvE,OAAO,GAAG,KAAK,CAA4B,SAAS,+EAAI,SAAS,EAAE,aAAa,EAAA,CAAG;IACnF,WAAW,GAAG,KAAK,CAAgC,WAAW,mFACrE,SAAS,EAAE,iBAAiB,EAAA,CAC5B;IACO,OAAO,GAAG,KAAK,CAAyB,IAAI,+EAAI,SAAS,EAAE,oBAAoB,EAAA,CAAG;IAClF,OAAO,GAAG,KAAK,CAAyB,GAAG,+EAAI,SAAS,EAAE,oBAAoB,EAAA,CAAG;IACjF,SAAS,GAAG,KAAK,CAAC,IAAI,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;wGAVtD,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,mCAAA,EAAA,uBAAA,EAAA,iCAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAZrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,qBAAqB,EAAE,WAAW;AAClC,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,uBAAuB,EAAE,yBAAyB;AAClD,wBAAA,mBAAmB,EAAE,iCAAiC;AACtD,wBAAA,yBAAyB,EAAE,iCAAiC;AAC7D,qBAAA;AACF,iBAAA;;AAcD;MAWa,gBAAgB,CAAA;IAClB,QAAQ,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1D,SAAS,GAAG,KAAK,CAAC,gBAAgB,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;IAErE,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE;IAChC;wGANW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,wBAAwB;AAC/B,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,sBAAsB,EAAE,0BAA0B;AAClD,wBAAA,mBAAmB,EAAE,aAAa;AAClC,wBAAA,SAAS,EAAE,UAAU;AACtB,qBAAA;AACF,iBAAA;;AAUD;MAea,aAAa,CAAA;AACP,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC3B,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxD,MAAM,GAAG,CAAC;IACV,UAAU,GAAG,CAAC;IACd,QAAQ,GAAG,KAAK;IAChB,aAAa,GAAG,KAAK;IACrB,OAAO,GAAG,CAAC,CAAC;IACZ,YAAY,GAAG,CAAC;IAChB,aAAa,GAAG,GAAG;IACnB,aAAa,GAAG,GAAG;IAElB,QAAQ,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAEnE,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB;QACF;QAEA,IAAI,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,EAAE;YAC1C;QACF;AAEA,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE;IAChC;AAEA,IAAA,WAAW,CAAC,KAAmB,EAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;YAC5F;QACF;AAEA,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK;AACrF,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU;QACnC,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;QAC/B,KAAK,CAAC,cAAc,EAAE;AAEtB,QAAA,MAAM,IAAI,GAAG,CAAC,SAAuB,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAChE,MAAM,EAAE,GAAG,MAAK;YACd,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;YACtD,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC;AAClD,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,WAAW,EAAE;YACpB;AACA,YAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC;AACrB,YAAA,IAAI,CAAC,aAAa,GAAG,GAAG;AACxB,YAAA,IAAI,CAAC,aAAa,GAAG,GAAG;YACxB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC5B,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC;AACnD,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACjE;AAEQ,IAAA,MAAM,CAAC,KAAmB,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnC;QACF;QAEA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM;AACzC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC;QAC1D,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC;QAE1G,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AAEpB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;AAClE,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;YAC7B;QACF;AAEA,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS;AAE7B,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE;YACvB;QACF;;AAGA,QAAA,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,MAAK;YACxC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;AACjD,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACnB,QAAA,CAAC,CAAC;IACJ;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE;AACvB,YAAA,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAClC,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACnB;AAEA,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;QACnD;IACF;IAEQ,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB;QACF;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACtE,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,iBAAiB;AAElE,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;IACjD;IAEQ,qBAAqB,GAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,GAAG;QACZ;;QAGA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa;AAC5D,QAAA,MAAM,WAAW,GAAG,cAAc,CAAC,qBAAqB,EAAE;QAC1D,IAAI,aAAa,GAAG,CAAC;AAErB,QAAA,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAc,GAAG,CAAC,CAAC,EAAE;AACnF,YAAA,IAAI,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,oBAAoB,EAAE;gBACnG;YACF;AAEA,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE;AAC5C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;AAC7D,YAAA,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC5E;AAEA,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC;IAChD;wGAvIW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,GAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,mCAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAdzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qCAAqC;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,qBAAqB;AAC5B,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,QAAQ,EAAE,GAAG;AACb,wBAAA,YAAY,EAAE,gBAAgB;AAC9B,wBAAA,kBAAkB,EAAE,UAAU;AAC9B,wBAAA,SAAS,EAAE,UAAU;AACrB,wBAAA,eAAe,EAAE,qBAAqB;AACtC,wBAAA,iBAAiB,EAAE,UAAU;AAC7B,wBAAA,iBAAiB,EAAE,mCAAmC;AACvD,qBAAA;AACF,iBAAA;;AA2ID;MAOa,cAAc,CAAA;wGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,qBAAqB;AAC7B,qBAAA;AACF,iBAAA;;AAGD;MAOa,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC/B,qBAAA;AACF,iBAAA;;AAGD;MAOa,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC/B,qBAAA;AACF,iBAAA;;AAGD;MAOa,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2CAA2C;AACrD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,wBAAwB;AAChC,qBAAA;AACF,iBAAA;;AAGD;MAOa,cAAc,CAAA;wGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,sBAAsB;AAC9B,qBAAA;AACF,iBAAA;;AAGD;MAOa,mBAAmB,CAAA;wGAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kDAAkD;AAC5D,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,4BAA4B;AACpC,qBAAA;AACF,iBAAA;;AAGD;MAQa,oBAAoB,CAAA;wGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oDAAoD;AAC9D,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,6BAA6B;AACpC,wBAAA,IAAI,EAAE,QAAQ;AACf,qBAAA;AACF,iBAAA;;AAGD;MAOa,qBAAqB,CAAA;wGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sDAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,8BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sDAAsD;AAChE,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,8BAA8B;AACtC,qBAAA;AACF,iBAAA;;AAGD;MAQa,aAAa,CAAA;wGAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qCAAqC;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,qBAAqB;AAC5B,wBAAA,IAAI,EAAE,MAAM;AACb,qBAAA;AACF,iBAAA;;AAGD;MAQa,iBAAiB,CAAA;wGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8CAA8C;AACxD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,0BAA0B;AACjC,wBAAA,IAAI,EAAE,UAAU;AACjB,qBAAA;AACF,iBAAA;;AAGD;MAca,mBAAmB,CAAA;IACrB,MAAM,GAAG,KAAK,CAAC,KAAK,8EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACtD,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,IAAI,GAAG,KAAK,CAAmC,SAAS,4EAC/D,SAAS,EAAE,oBAAoB,EAAA,CAC/B;IACO,OAAO,GAAG,KAAK,CAAsC,SAAS,+EACrE,SAAS,EAAE,uBAAuB,EAAA,CAClC;AACO,IAAA,OAAO,GAAG,KAAK,CAAgB,IAAI,8EAAC;AAE7C,IAAA,WAAW,CAAC,KAAY,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,KAAK,CAAC,cAAc,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE;QACzB;IACF;wGAhBW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAb/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4EAA4E;AACtF,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,4BAA4B;AACnC,wBAAA,oBAAoB,EAAE,sBAAsB;AAC5C,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,qBAAqB,EAAE,WAAW;AAClC,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,iBAAiB,EAAE,wBAAwB;AAC3C,wBAAA,SAAS,EAAE,qBAAqB;AACjC,qBAAA;AACF,iBAAA;;AAoBD;MASa,mBAAmB,CAAA;IACrB,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;wGADzD,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,6BAAA,EAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kDAAkD;AAC5D,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,4BAA4B;AACnC,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,2BAA2B,EAAE,2BAA2B;AACzD,qBAAA;AACF,iBAAA;;AAKD;MAOa,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gDAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gDAAgD;AAC1D,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,2BAA2B;AACnC,qBAAA;AACF,iBAAA;;AAGD;MAQa,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4CAA4C;AACtD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,yBAAyB;AAChC,wBAAA,IAAI,EAAE,MAAM;AACb,qBAAA;AACF,iBAAA;;AAGD;MAQa,oBAAoB,CAAA;wGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,8BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qDAAqD;AAC/D,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,8BAA8B;AACrC,wBAAA,IAAI,EAAE,UAAU;AACjB,qBAAA;AACF,iBAAA;;AAGD;MAWa,sBAAsB,CAAA;IACxB,MAAM,GAAG,KAAK,CAAC,KAAK,8EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACtD,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEjE,IAAA,WAAW,CAAC,KAAY,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,KAAK,CAAC,cAAc,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE;QACzB;IACF;wGATW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qFAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,EAAA,cAAA,EAAA,gCAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qFAAqF;AAC/F,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,gCAAgC;AACvC,wBAAA,oBAAoB,EAAE,sBAAsB;AAC5C,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,SAAS,EAAE,qBAAqB;AACjC,qBAAA;AACF,iBAAA;;AAaD;MASa,qBAAqB,CAAA;IACvB,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACxD,IAAA,KAAK,GAAG,KAAK,CAAC,KAAK,4EAAC;wGAFlB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sDAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,sCAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,8BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sDAAsD;AAChE,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,8BAA8B;AACrC,wBAAA,uBAAuB,EAAE,wBAAwB;AACjD,wBAAA,wCAAwC,EAAE,SAAS;AACpD,qBAAA;AACF,iBAAA;;;MCleY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YA9CxB,SAAS;YACT,gBAAgB;YAChB,eAAe;YACf,cAAc;YACd,oBAAoB;YACpB,qBAAqB;YACrB,mBAAmB;YACnB,eAAe;YACf,cAAc;YACd,aAAa;YACb,mBAAmB;YACnB,kBAAkB;YAClB,mBAAmB;YACnB,iBAAiB;YACjB,qBAAqB;YACrB,gBAAgB;YAChB,sBAAsB;YACtB,oBAAoB;YACpB,iBAAiB;YACjB,aAAa;AACb,YAAA,gBAAgB,aAGhB,SAAS;YACT,gBAAgB;YAChB,eAAe;YACf,cAAc;YACd,oBAAoB;YACpB,qBAAqB;YACrB,mBAAmB;YACnB,eAAe;YACf,cAAc;YACd,aAAa;YACb,mBAAmB;YACnB,kBAAkB;YAClB,mBAAmB;YACnB,iBAAiB;YACjB,qBAAqB;YACrB,gBAAgB;YAChB,sBAAsB;YACtB,oBAAoB;YACpB,iBAAiB;YACjB,aAAa;YACb,gBAAgB,CAAA,EAAA,CAAA;yGAGP,eAAe,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAhD3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,SAAS;wBACT,gBAAgB;wBAChB,eAAe;wBACf,cAAc;wBACd,oBAAoB;wBACpB,qBAAqB;wBACrB,mBAAmB;wBACnB,eAAe;wBACf,cAAc;wBACd,aAAa;wBACb,mBAAmB;wBACnB,kBAAkB;wBAClB,mBAAmB;wBACnB,iBAAiB;wBACjB,qBAAqB;wBACrB,gBAAgB;wBAChB,sBAAsB;wBACtB,oBAAoB;wBACpB,iBAAiB;wBACjB,aAAa;wBACb,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,SAAS;wBACT,gBAAgB;wBAChB,eAAe;wBACf,cAAc;wBACd,oBAAoB;wBACpB,qBAAqB;wBACrB,mBAAmB;wBACnB,eAAe;wBACf,cAAc;wBACd,aAAa;wBACb,mBAAmB;wBACnB,kBAAkB;wBAClB,mBAAmB;wBACnB,iBAAiB;wBACjB,qBAAqB;wBACrB,gBAAgB;wBAChB,sBAAsB;wBACtB,oBAAoB;wBACpB,iBAAiB;wBACjB,aAAa;wBACb,gBAAgB;AACjB,qBAAA;AACF,iBAAA;;;ACxED;;AAEG;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { input, booleanAttribute, Directive, NgModule } from '@angular/core';
|
|
3
3
|
|
|
4
|
+
/** Skeleton placeholder for loading content. */
|
|
4
5
|
class FrSkeleton {
|
|
5
6
|
animated = input(true, { ...(ngDevMode ? { debugName: "animated" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
6
7
|
width = input(null, ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame-ui-ng-components-skeleton.mjs","sources":["../../../projects/components/skeleton/src/skeleton.ts","../../../projects/components/skeleton/skeleton.module.ts","../../../projects/components/skeleton/frame-ui-ng-components-skeleton.ts"],"sourcesContent":["import { booleanAttribute, Directive, input } from '@angular/core';\n\n@Directive({\n selector: '[frSkeleton], frame-skeleton',\n exportAs: 'frSkeleton',\n host: {\n class: 'frame-skeleton',\n 'aria-hidden': 'true',\n '[attr.data-animated]': 'animated()',\n '[style.--frame-skeleton-width]': 'width()',\n '[style.--frame-skeleton-height]': 'height()',\n '[style.--frame-skeleton-radius]': 'radius()',\n },\n})\nexport class FrSkeleton {\n readonly animated = input(true, { transform: booleanAttribute });\n readonly width = input<string | null>(null);\n readonly height = input<string | null>(null);\n readonly radius = input<string | null>(null);\n}\n","import { NgModule } from '@angular/core';\n\nimport { FrSkeleton } from './src/skeleton';\n\n@NgModule({\n imports: [FrSkeleton],\n exports: [FrSkeleton],\n})\nexport class FrSkeletonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"frame-ui-ng-components-skeleton.mjs","sources":["../../../projects/components/skeleton/src/skeleton.ts","../../../projects/components/skeleton/skeleton.module.ts","../../../projects/components/skeleton/frame-ui-ng-components-skeleton.ts"],"sourcesContent":["import { booleanAttribute, Directive, input } from '@angular/core';\r\n\r\n/** Skeleton placeholder for loading content. */\r\n@Directive({\r\n selector: '[frSkeleton], frame-skeleton',\r\n exportAs: 'frSkeleton',\r\n host: {\r\n class: 'frame-skeleton',\r\n 'aria-hidden': 'true',\r\n '[attr.data-animated]': 'animated()',\r\n '[style.--frame-skeleton-width]': 'width()',\r\n '[style.--frame-skeleton-height]': 'height()',\r\n '[style.--frame-skeleton-radius]': 'radius()',\r\n },\r\n})\r\nexport class FrSkeleton {\r\n readonly animated = input(true, { transform: booleanAttribute });\r\n readonly width = input<string | null>(null);\r\n readonly height = input<string | null>(null);\r\n readonly radius = input<string | null>(null);\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\n\nimport { FrSkeleton } from './src/skeleton';\n\n@NgModule({\n imports: [FrSkeleton],\n exports: [FrSkeleton],\n})\nexport class FrSkeletonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAEA;MAaa,UAAU,CAAA;IACZ,QAAQ,GAAG,KAAK,CAAC,IAAI,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACvD,IAAA,KAAK,GAAG,KAAK,CAAgB,IAAI,4EAAC;AAClC,IAAA,MAAM,GAAG,KAAK,CAAgB,IAAI,6EAAC;AACnC,IAAA,MAAM,GAAG,KAAK,CAAgB,IAAI,6EAAC;wGAJjC,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,SAAA,EAAA,+BAAA,EAAA,UAAA,EAAA,+BAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAZtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,gBAAgB;AACvB,wBAAA,aAAa,EAAE,MAAM;AACrB,wBAAA,sBAAsB,EAAE,YAAY;AACpC,wBAAA,gCAAgC,EAAE,SAAS;AAC3C,wBAAA,iCAAiC,EAAE,UAAU;AAC7C,wBAAA,iCAAiC,EAAE,UAAU;AAC9C,qBAAA;AACF,iBAAA;;;MCNY,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAhB,gBAAgB,EAAA,OAAA,EAAA,CAHjB,UAAU,CAAA,EAAA,OAAA,EAAA,CACV,UAAU,CAAA,EAAA,CAAA;yGAET,gBAAgB,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,UAAU,CAAC;oBACrB,OAAO,EAAE,CAAC,UAAU,CAAC;AACtB,iBAAA;;;ACPD;;AAEG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, input, numberAttribute, booleanAttribute, output, signal, computed,
|
|
2
|
+
import { inject, ElementRef, input, numberAttribute, booleanAttribute, output, signal, computed, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
3
|
import { DOCUMENT } from '@angular/common';
|
|
4
4
|
import { FrControlValueAccessor, provideDsValueAccessor } from '@frame-ui-ng/components/forms';
|
|
5
5
|
import { coerceNumber, clampNumber } from '@frame-ui-ng/components/utils';
|
|
@@ -17,10 +17,12 @@ function coerceValue(value) {
|
|
|
17
17
|
}
|
|
18
18
|
return [coerceNumber(value, 0)];
|
|
19
19
|
}
|
|
20
|
+
/** Slider control with single and range value support. */
|
|
20
21
|
class FrSlider extends FrControlValueAccessor {
|
|
21
22
|
elementRef = inject(ElementRef);
|
|
22
23
|
document = inject(DOCUMENT);
|
|
23
24
|
controlledByInput = false;
|
|
25
|
+
lastInputKey = '';
|
|
24
26
|
min = input(0, { ...(ngDevMode ? { debugName: "min" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
25
27
|
max = input(100, { ...(ngDevMode ? { debugName: "max" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
26
28
|
step = input(1, { ...(ngDevMode ? { debugName: "step" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
@@ -46,19 +48,28 @@ class FrSlider extends FrControlValueAccessor {
|
|
|
46
48
|
const values = this.values();
|
|
47
49
|
return this.percentForValue(values.at(-1) ?? this.min());
|
|
48
50
|
}, ...(ngDevMode ? [{ debugName: "rangeEndPercent" }] : /* istanbul ignore next */ []));
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
ngDoCheck() {
|
|
52
|
+
const inputKey = [
|
|
53
|
+
this.valueInput(),
|
|
54
|
+
this.defaultValue(),
|
|
55
|
+
this.min(),
|
|
56
|
+
this.max(),
|
|
57
|
+
this.step(),
|
|
58
|
+
this.minStepsBetweenThumbs(),
|
|
59
|
+
].map((value) => (Array.isArray(value) ? value.join(',') : String(value))).join('|');
|
|
60
|
+
if (inputKey === this.lastInputKey) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
this.lastInputKey = inputKey;
|
|
64
|
+
const controlledValue = this.valueInput();
|
|
65
|
+
if (controlledValue !== null) {
|
|
66
|
+
this.controlledByInput = true;
|
|
67
|
+
this.values.set(this.normalizeValues(coerceValue(controlledValue)));
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (!this.controlledByInput) {
|
|
71
|
+
this.values.set(this.normalizeValues(coerceValue(this.defaultValue())));
|
|
72
|
+
}
|
|
62
73
|
}
|
|
63
74
|
setViewValue(value) {
|
|
64
75
|
if (value === null || value === undefined) {
|
|
@@ -138,6 +149,7 @@ class FrSlider extends FrControlValueAccessor {
|
|
|
138
149
|
const step = Math.max(this.step(), 0.000001);
|
|
139
150
|
const minDistance = Math.max(this.minStepsBetweenThumbs(), 0) * step;
|
|
140
151
|
const normalized = values.length ? values : [min];
|
|
152
|
+
// Only the active thumb is bounded by neighbors; passive thumbs keep their full range.
|
|
141
153
|
return normalized.map((value, index) => {
|
|
142
154
|
const previous = index > 0 ? normalized[index - 1] + minDistance : min;
|
|
143
155
|
const next = index < normalized.length - 1 ? normalized[index + 1] - minDistance : max;
|
|
@@ -160,6 +172,7 @@ class FrSlider extends FrControlValueAccessor {
|
|
|
160
172
|
const offset = horizontal ? event.clientX - rect.left : rect.bottom - event.clientY;
|
|
161
173
|
const direction = horizontal && this.isRtl() ? -1 : 1;
|
|
162
174
|
let percent = size > 0 ? offset / size : 0;
|
|
175
|
+
// Convert visual position into logical value direction for RTL and inverted sliders.
|
|
163
176
|
if (direction === -1) {
|
|
164
177
|
percent = 1 - percent;
|
|
165
178
|
}
|
|
@@ -178,7 +191,7 @@ class FrSlider extends FrControlValueAccessor {
|
|
|
178
191
|
isRtl() {
|
|
179
192
|
return getComputedStyle(this.elementRef.nativeElement).direction === 'rtl';
|
|
180
193
|
}
|
|
181
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSlider, deps:
|
|
194
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSlider, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
182
195
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: FrSlider, isStandalone: true, selector: "frame-slider", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, minStepsBetweenThumbs: { classPropertyName: "minStepsBetweenThumbs", publicName: "minStepsBetweenThumbs", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalidInput: { classPropertyName: "invalidInput", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, inverted: { classPropertyName: "inverted", publicName: "inverted", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, valueInput: { classPropertyName: "valueInput", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, formatValue: { classPropertyName: "formatValue", publicName: "formatValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { listeners: { "pointerdown": "handlePointerDown($event)" }, properties: { "attr.data-orientation": "orientation()", "attr.data-disabled": "disabled() ? \"\" : null", "attr.data-invalid": "invalid() ? \"\" : null", "attr.data-inverted": "inverted() ? \"\" : null", "style.--frame-slider-start-percent": "rangeStartPercent() + \"%\"", "style.--frame-slider-end-percent": "rangeEndPercent() + \"%\"" }, classAttribute: "frame-slider" }, providers: [provideDsValueAccessor(FrSlider)], exportAs: ["frSlider"], usesInheritance: true, ngImport: i0, template: `
|
|
183
196
|
<span class="frame-slider__track">
|
|
184
197
|
<span class="frame-slider__range"></span>
|
|
@@ -250,7 +263,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
250
263
|
}
|
|
251
264
|
`,
|
|
252
265
|
}]
|
|
253
|
-
}],
|
|
266
|
+
}], propDecorators: { min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], minStepsBetweenThumbs: [{ type: i0.Input, args: [{ isSignal: true, alias: "minStepsBetweenThumbs", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalidInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], inverted: [{ type: i0.Input, args: [{ isSignal: true, alias: "inverted", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], valueInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], formatValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatValue", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
|
|
254
267
|
|
|
255
268
|
class FrSliderModule {
|
|
256
269
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|