@letsprogram/ng-oat 0.1.5 → 0.1.6
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.
|
@@ -2405,10 +2405,23 @@ const MOBILE_BREAKPOINT = 768;
|
|
|
2405
2405
|
/**
|
|
2406
2406
|
* Angular component wrapper for Oat's sidebar layout.
|
|
2407
2407
|
*
|
|
2408
|
-
*
|
|
2408
|
+
* Supports two modes:
|
|
2409
|
+
* - `fixed` (default): Permanent sidebar on desktop, slide-out drawer on mobile.
|
|
2410
|
+
* - `overlay`: Slide-out drawer at all screen sizes (ideal for app shells
|
|
2411
|
+
* that already have a toolbar with nav links).
|
|
2412
|
+
*
|
|
2413
|
+
* Usage (fixed — permanent desktop sidebar):
|
|
2414
|
+
* ```html
|
|
2415
|
+
* <ng-oat-sidebar>
|
|
2416
|
+
* <aside data-sidebar>Navigation</aside>
|
|
2417
|
+
* <main>Main content</main>
|
|
2418
|
+
* </ng-oat-sidebar>
|
|
2419
|
+
* ```
|
|
2420
|
+
*
|
|
2421
|
+
* Usage (overlay — mobile-style drawer at all sizes):
|
|
2409
2422
|
* ```html
|
|
2410
|
-
* <ng-oat-sidebar
|
|
2411
|
-
* <aside sidebar>Navigation</aside>
|
|
2423
|
+
* <ng-oat-sidebar mode="overlay">
|
|
2424
|
+
* <aside data-sidebar>Navigation</aside>
|
|
2412
2425
|
* <main>Main content</main>
|
|
2413
2426
|
* </ng-oat-sidebar>
|
|
2414
2427
|
* ```
|
|
@@ -2419,11 +2432,19 @@ class NgOatSidebarComponent {
|
|
|
2419
2432
|
destroyRef = inject(DestroyRef);
|
|
2420
2433
|
platformId = inject(PLATFORM_ID);
|
|
2421
2434
|
doc = inject(DOCUMENT);
|
|
2422
|
-
/**
|
|
2435
|
+
/**
|
|
2436
|
+
* Layout mode:
|
|
2437
|
+
* - `'fixed'` (default) — permanent sidebar on desktop, drawer on mobile.
|
|
2438
|
+
* - `'overlay'` — always a slide-out drawer at any screen size.
|
|
2439
|
+
*/
|
|
2440
|
+
mode = input('fixed', ...(ngDevMode ? [{ debugName: "mode" }] : []));
|
|
2441
|
+
/** Whether scroll lock is applied when sidebar is open */
|
|
2423
2442
|
scrollLock = input(true, ...(ngDevMode ? [{ debugName: "scrollLock" }] : []));
|
|
2424
2443
|
initialOpen = input(false, ...(ngDevMode ? [{ debugName: "initialOpen" }] : []));
|
|
2425
2444
|
isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
|
|
2426
2445
|
openChange = output();
|
|
2446
|
+
/** Whether the sidebar is in overlay mode */
|
|
2447
|
+
isOverlay = computed(() => this.mode() === 'overlay', ...(ngDevMode ? [{ debugName: "isOverlay" }] : []));
|
|
2427
2448
|
cleanupFns = [];
|
|
2428
2449
|
constructor() {
|
|
2429
2450
|
afterNextRender(() => {
|
|
@@ -2433,16 +2454,16 @@ class NgOatSidebarComponent {
|
|
|
2433
2454
|
this.isOpen.set(true);
|
|
2434
2455
|
}
|
|
2435
2456
|
this.listen(this.doc, 'keydown', (e) => {
|
|
2436
|
-
if (e.key === KEYS.ESCAPE && this.isOpen() && this.
|
|
2457
|
+
if (e.key === KEYS.ESCAPE && this.isOpen() && this.shouldAutoClose()) {
|
|
2437
2458
|
this.close();
|
|
2438
2459
|
}
|
|
2439
2460
|
});
|
|
2440
|
-
// Outside click to close
|
|
2461
|
+
// Outside click to close
|
|
2441
2462
|
this.listen(this.doc, 'click', (e) => {
|
|
2442
2463
|
const target = e.target;
|
|
2443
2464
|
if (this.isOpen() &&
|
|
2444
|
-
this.
|
|
2445
|
-
!target.closest('[sidebar]') &&
|
|
2465
|
+
this.shouldAutoClose() &&
|
|
2466
|
+
!target.closest('[data-sidebar]') &&
|
|
2446
2467
|
!target.closest('aside') &&
|
|
2447
2468
|
!target.closest('[data-sidebar-toggle]')) {
|
|
2448
2469
|
this.close();
|
|
@@ -2458,7 +2479,7 @@ class NgOatSidebarComponent {
|
|
|
2458
2479
|
open() {
|
|
2459
2480
|
this.isOpen.set(true);
|
|
2460
2481
|
this.openChange.emit(true);
|
|
2461
|
-
if (this.scrollLock() && this.
|
|
2482
|
+
if (this.scrollLock() && this.shouldAutoClose()) {
|
|
2462
2483
|
this.lockScroll();
|
|
2463
2484
|
}
|
|
2464
2485
|
}
|
|
@@ -2475,6 +2496,15 @@ class NgOatSidebarComponent {
|
|
|
2475
2496
|
this.open();
|
|
2476
2497
|
}
|
|
2477
2498
|
}
|
|
2499
|
+
/**
|
|
2500
|
+
* Whether the sidebar should auto-close on outside click / ESC.
|
|
2501
|
+
* In overlay mode: always. In fixed mode: only on mobile.
|
|
2502
|
+
*/
|
|
2503
|
+
shouldAutoClose() {
|
|
2504
|
+
if (this.mode() === 'overlay')
|
|
2505
|
+
return true;
|
|
2506
|
+
return typeof window !== 'undefined' && window.innerWidth < MOBILE_BREAKPOINT;
|
|
2507
|
+
}
|
|
2478
2508
|
isMobile() {
|
|
2479
2509
|
return typeof window !== 'undefined' && window.innerWidth < MOBILE_BREAKPOINT;
|
|
2480
2510
|
}
|
|
@@ -2489,15 +2519,26 @@ class NgOatSidebarComponent {
|
|
|
2489
2519
|
this.cleanupFns.push(() => el.removeEventListener(event, handler));
|
|
2490
2520
|
}
|
|
2491
2521
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NgOatSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2492
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
2522
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: NgOatSidebarComponent, isStandalone: true, selector: "ng-oat-sidebar", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, scrollLock: { classPropertyName: "scrollLock", publicName: "scrollLock", isSignal: true, isRequired: false, transformFunction: null }, initialOpen: { classPropertyName: "initialOpen", publicName: "initialOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange" }, host: { properties: { "attr.data-sidebar-layout": "\"\"", "attr.data-sidebar-open": "isOpen() ? \"\" : null", "attr.data-sidebar-mode": "mode()" } }, ngImport: i0, template: `
|
|
2523
|
+
@if (isOpen() && isOverlay()) {
|
|
2524
|
+
<div class="ng-oat-sidebar-backdrop" (click)="close()"></div>
|
|
2525
|
+
}
|
|
2526
|
+
<ng-content />
|
|
2527
|
+
`, isInline: true, styles: [":host[data-sidebar-mode=overlay]{grid-template-columns:1fr!important}:host[data-sidebar-mode=overlay]>::ng-deep aside[data-sidebar]{position:fixed!important;left:0;top:var(--topnav-offset, 0px);width:16rem;height:calc(100dvh - var(--topnav-offset, 0px));z-index:20;transform:translate(-100%);transition:transform var(--transition, .3s ease);box-shadow:var(--shadow-large)}:host[data-sidebar-mode=overlay][data-sidebar-open]>::ng-deep aside[data-sidebar]{transform:translate(0)}.ng-oat-sidebar-backdrop{position:fixed;inset:0;z-index:19;background:#0006}\n"] });
|
|
2493
2528
|
}
|
|
2494
2529
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NgOatSidebarComponent, decorators: [{
|
|
2495
2530
|
type: Component,
|
|
2496
2531
|
args: [{ selector: 'ng-oat-sidebar', host: {
|
|
2497
2532
|
'[attr.data-sidebar-layout]': '""',
|
|
2498
2533
|
'[attr.data-sidebar-open]': 'isOpen() ? "" : null',
|
|
2499
|
-
|
|
2500
|
-
|
|
2534
|
+
'[attr.data-sidebar-mode]': 'mode()',
|
|
2535
|
+
}, template: `
|
|
2536
|
+
@if (isOpen() && isOverlay()) {
|
|
2537
|
+
<div class="ng-oat-sidebar-backdrop" (click)="close()"></div>
|
|
2538
|
+
}
|
|
2539
|
+
<ng-content />
|
|
2540
|
+
`, styles: [":host[data-sidebar-mode=overlay]{grid-template-columns:1fr!important}:host[data-sidebar-mode=overlay]>::ng-deep aside[data-sidebar]{position:fixed!important;left:0;top:var(--topnav-offset, 0px);width:16rem;height:calc(100dvh - var(--topnav-offset, 0px));z-index:20;transform:translate(-100%);transition:transform var(--transition, .3s ease);box-shadow:var(--shadow-large)}:host[data-sidebar-mode=overlay][data-sidebar-open]>::ng-deep aside[data-sidebar]{transform:translate(0)}.ng-oat-sidebar-backdrop{position:fixed;inset:0;z-index:19;background:#0006}\n"] }]
|
|
2541
|
+
}], ctorParameters: () => [], propDecorators: { mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], scrollLock: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollLock", required: false }] }], initialOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialOpen", required: false }] }], openChange: [{ type: i0.Output, args: ["openChange"] }] } });
|
|
2501
2542
|
|
|
2502
2543
|
/**
|
|
2503
2544
|
* Angular component wrapper for Oat's tabs.
|
|
@@ -5013,6 +5054,7 @@ class NgOatInput {
|
|
|
5013
5054
|
max = input(undefined, ...(ngDevMode ? [{ debugName: "max" }] : []));
|
|
5014
5055
|
minLength = input(undefined, ...(ngDevMode ? [{ debugName: "minLength" }] : []));
|
|
5015
5056
|
maxLength = input(undefined, ...(ngDevMode ? [{ debugName: "maxLength" }] : []));
|
|
5057
|
+
autocomplete = input(undefined, ...(ngDevMode ? [{ debugName: "autocomplete" }] : []));
|
|
5016
5058
|
// --- Component-specific inputs ---
|
|
5017
5059
|
label = input('', ...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
5018
5060
|
type = input('text', ...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
@@ -5031,7 +5073,7 @@ class NgOatInput {
|
|
|
5031
5073
|
input?.focus(options);
|
|
5032
5074
|
}
|
|
5033
5075
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NgOatInput, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5034
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: NgOatInput, isStandalone: true, selector: "ng-oat-input", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, showErrors: { classPropertyName: "showErrors", publicName: "showErrors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", disabled: "disabledChange", touched: "touchedChange" }, providers: [{ provide: NG_OAT_VALUE_HOST, useExisting: forwardRef(() => NgOatInput) }], ngImport: i0, template: `
|
|
5076
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: NgOatInput, isStandalone: true, selector: "ng-oat-input", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, showErrors: { classPropertyName: "showErrors", publicName: "showErrors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", disabled: "disabledChange", touched: "touchedChange" }, providers: [{ provide: NG_OAT_VALUE_HOST, useExisting: forwardRef(() => NgOatInput) }], ngImport: i0, template: `
|
|
5035
5077
|
@if (label()) {
|
|
5036
5078
|
<label [attr.for]="inputId">{{ label() }}</label>
|
|
5037
5079
|
}
|
|
@@ -5047,6 +5089,7 @@ class NgOatInput {
|
|
|
5047
5089
|
[attr.min]="min() ?? null"
|
|
5048
5090
|
[attr.max]="max() ?? null"
|
|
5049
5091
|
[attr.minlength]="minLength() ?? null"
|
|
5092
|
+
[attr.autocomplete]="autocomplete() ?? null"
|
|
5050
5093
|
[attr.maxlength]="maxLength() ?? null"
|
|
5051
5094
|
(input)="onInput($event)"
|
|
5052
5095
|
(blur)="onBlur()"
|
|
@@ -5076,6 +5119,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5076
5119
|
[attr.min]="min() ?? null"
|
|
5077
5120
|
[attr.max]="max() ?? null"
|
|
5078
5121
|
[attr.minlength]="minLength() ?? null"
|
|
5122
|
+
[attr.autocomplete]="autocomplete() ?? null"
|
|
5079
5123
|
[attr.maxlength]="maxLength() ?? null"
|
|
5080
5124
|
(input)="onInput($event)"
|
|
5081
5125
|
(blur)="onBlur()"
|
|
@@ -5086,7 +5130,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5086
5130
|
}
|
|
5087
5131
|
} -->
|
|
5088
5132
|
`, styles: [":host{display:block}.error{color:var(--danger);display:block;font-size:var(--text-8);margin-block-start:var(--space-1)}\n"] }]
|
|
5089
|
-
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], minLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minLength", required: false }] }], maxLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLength", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], showErrors: [{ type: i0.Input, args: [{ isSignal: true, alias: "showErrors", required: false }] }] } });
|
|
5133
|
+
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], minLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minLength", required: false }] }], maxLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLength", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], showErrors: [{ type: i0.Input, args: [{ isSignal: true, alias: "showErrors", required: false }] }] } });
|
|
5090
5134
|
|
|
5091
5135
|
/**
|
|
5092
5136
|
* Oat-styled textarea implementing `FormValueControl<string>`.
|
package/package.json
CHANGED
|
@@ -918,13 +918,27 @@ declare class NgOatTooltipComponent {
|
|
|
918
918
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatTooltipComponent, "ng-oat-tooltip", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "template": { "alias": "template"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
919
919
|
}
|
|
920
920
|
|
|
921
|
+
type NgOatSidebarMode = 'fixed' | 'overlay';
|
|
921
922
|
/**
|
|
922
923
|
* Angular component wrapper for Oat's sidebar layout.
|
|
923
924
|
*
|
|
924
|
-
*
|
|
925
|
+
* Supports two modes:
|
|
926
|
+
* - `fixed` (default): Permanent sidebar on desktop, slide-out drawer on mobile.
|
|
927
|
+
* - `overlay`: Slide-out drawer at all screen sizes (ideal for app shells
|
|
928
|
+
* that already have a toolbar with nav links).
|
|
929
|
+
*
|
|
930
|
+
* Usage (fixed — permanent desktop sidebar):
|
|
931
|
+
* ```html
|
|
932
|
+
* <ng-oat-sidebar>
|
|
933
|
+
* <aside data-sidebar>Navigation</aside>
|
|
934
|
+
* <main>Main content</main>
|
|
935
|
+
* </ng-oat-sidebar>
|
|
936
|
+
* ```
|
|
937
|
+
*
|
|
938
|
+
* Usage (overlay — mobile-style drawer at all sizes):
|
|
925
939
|
* ```html
|
|
926
|
-
* <ng-oat-sidebar
|
|
927
|
-
* <aside sidebar>Navigation</aside>
|
|
940
|
+
* <ng-oat-sidebar mode="overlay">
|
|
941
|
+
* <aside data-sidebar>Navigation</aside>
|
|
928
942
|
* <main>Main content</main>
|
|
929
943
|
* </ng-oat-sidebar>
|
|
930
944
|
* ```
|
|
@@ -935,22 +949,35 @@ declare class NgOatSidebarComponent {
|
|
|
935
949
|
private destroyRef;
|
|
936
950
|
private platformId;
|
|
937
951
|
private doc;
|
|
938
|
-
/**
|
|
952
|
+
/**
|
|
953
|
+
* Layout mode:
|
|
954
|
+
* - `'fixed'` (default) — permanent sidebar on desktop, drawer on mobile.
|
|
955
|
+
* - `'overlay'` — always a slide-out drawer at any screen size.
|
|
956
|
+
*/
|
|
957
|
+
readonly mode: _angular_core.InputSignal<NgOatSidebarMode>;
|
|
958
|
+
/** Whether scroll lock is applied when sidebar is open */
|
|
939
959
|
readonly scrollLock: _angular_core.InputSignal<boolean>;
|
|
940
960
|
readonly initialOpen: _angular_core.InputSignal<boolean>;
|
|
941
961
|
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
942
962
|
readonly openChange: _angular_core.OutputEmitterRef<boolean>;
|
|
963
|
+
/** Whether the sidebar is in overlay mode */
|
|
964
|
+
readonly isOverlay: _angular_core.Signal<boolean>;
|
|
943
965
|
private cleanupFns;
|
|
944
966
|
constructor();
|
|
945
967
|
open(): void;
|
|
946
968
|
close(): void;
|
|
947
969
|
toggle(): void;
|
|
970
|
+
/**
|
|
971
|
+
* Whether the sidebar should auto-close on outside click / ESC.
|
|
972
|
+
* In overlay mode: always. In fixed mode: only on mobile.
|
|
973
|
+
*/
|
|
974
|
+
private shouldAutoClose;
|
|
948
975
|
private isMobile;
|
|
949
976
|
private lockScroll;
|
|
950
977
|
private restoreScroll;
|
|
951
978
|
private listen;
|
|
952
979
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatSidebarComponent, never>;
|
|
953
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatSidebarComponent, "ng-oat-sidebar", never, { "scrollLock": { "alias": "scrollLock"; "required": false; "isSignal": true; }; "initialOpen": { "alias": "initialOpen"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>;
|
|
980
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatSidebarComponent, "ng-oat-sidebar", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "scrollLock": { "alias": "scrollLock"; "required": false; "isSignal": true; }; "initialOpen": { "alias": "initialOpen"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>;
|
|
954
981
|
}
|
|
955
982
|
|
|
956
983
|
interface NgOatTabItem {
|
|
@@ -1727,6 +1754,7 @@ declare class NgOatInput implements FormValueControl<string> {
|
|
|
1727
1754
|
readonly max: _angular_core.InputSignal<number | undefined>;
|
|
1728
1755
|
readonly minLength: _angular_core.InputSignal<number | undefined>;
|
|
1729
1756
|
readonly maxLength: _angular_core.InputSignal<number | undefined>;
|
|
1757
|
+
readonly autocomplete: _angular_core.InputSignal<string | undefined>;
|
|
1730
1758
|
readonly label: _angular_core.InputSignal<string>;
|
|
1731
1759
|
readonly type: _angular_core.InputSignal<NgOatInputType>;
|
|
1732
1760
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
@@ -1736,7 +1764,7 @@ declare class NgOatInput implements FormValueControl<string> {
|
|
|
1736
1764
|
onBlur(): void;
|
|
1737
1765
|
focus(options?: FocusOptions): void;
|
|
1738
1766
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatInput, never>;
|
|
1739
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatInput, "ng-oat-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "showErrors": { "alias": "showErrors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1767
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatInput, "ng-oat-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "showErrors": { "alias": "showErrors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1740
1768
|
}
|
|
1741
1769
|
|
|
1742
1770
|
/**
|