@ngxsmk/cdk 1.1.0 → 1.3.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/README.md +59 -16
- package/autofocus/autofocus.d.ts +19 -0
- package/autofocus/autofocus.d.ts.map +1 -0
- package/autofocus/index.d.ts +2 -0
- package/autofocus/index.d.ts.map +1 -0
- package/autofocus/ngxsmk-cdk-autofocus.d.ts.map +1 -0
- package/click-outside/click-outside.d.ts.map +1 -1
- package/esm2022/autofocus/autofocus.mjs +44 -0
- package/esm2022/autofocus/index.mjs +2 -0
- package/esm2022/autofocus/ngxsmk-cdk-autofocus.mjs +5 -0
- package/esm2022/click-outside/click-outside.mjs +6 -6
- package/esm2022/focus-trap/focus-trap.mjs +13 -13
- package/esm2022/focusable/focusable.mjs +1 -1
- package/esm2022/intersection-observer/index.mjs +2 -0
- package/esm2022/intersection-observer/intersection-observer.mjs +56 -0
- package/esm2022/intersection-observer/ngxsmk-cdk-intersection-observer.mjs +5 -0
- package/esm2022/live-announcer/live-announcer.mjs +8 -6
- package/esm2022/media-query/media-query.mjs +2 -2
- package/esm2022/public-api.mjs +5 -1
- package/esm2022/resize-observer/index.mjs +2 -0
- package/esm2022/resize-observer/ngxsmk-cdk-resize-observer.mjs +5 -0
- package/esm2022/resize-observer/resize-observer.mjs +59 -0
- package/esm2022/scroll-lock/scroll-lock.mjs +10 -10
- package/esm2022/testing/a11y.mjs +17 -0
- package/esm2022/testing/index.mjs +2 -0
- package/esm2022/testing/ngxsmk-cdk-testing.mjs +5 -0
- package/esm2022/visually-hidden/visually-hidden.mjs +3 -3
- package/fesm2022/ngxsmk-cdk-autofocus.mjs +51 -0
- package/fesm2022/ngxsmk-cdk-autofocus.mjs.map +1 -0
- package/fesm2022/ngxsmk-cdk-click-outside.mjs +4 -4
- package/fesm2022/ngxsmk-cdk-click-outside.mjs.map +1 -1
- package/fesm2022/ngxsmk-cdk-focus-trap.mjs +12 -12
- package/fesm2022/ngxsmk-cdk-focus-trap.mjs.map +1 -1
- package/fesm2022/ngxsmk-cdk-focusable.mjs.map +1 -1
- package/fesm2022/ngxsmk-cdk-intersection-observer.mjs +63 -0
- package/fesm2022/ngxsmk-cdk-intersection-observer.mjs.map +1 -0
- package/fesm2022/ngxsmk-cdk-live-announcer.mjs +7 -5
- package/fesm2022/ngxsmk-cdk-live-announcer.mjs.map +1 -1
- package/fesm2022/ngxsmk-cdk-media-query.mjs.map +1 -1
- package/fesm2022/ngxsmk-cdk-resize-observer.mjs +66 -0
- package/fesm2022/ngxsmk-cdk-resize-observer.mjs.map +1 -0
- package/fesm2022/ngxsmk-cdk-scroll-lock.mjs +9 -9
- package/fesm2022/ngxsmk-cdk-scroll-lock.mjs.map +1 -1
- package/fesm2022/ngxsmk-cdk-testing.mjs +24 -0
- package/fesm2022/ngxsmk-cdk-testing.mjs.map +1 -0
- package/fesm2022/ngxsmk-cdk-visually-hidden.mjs +2 -2
- package/fesm2022/ngxsmk-cdk-visually-hidden.mjs.map +1 -1
- package/fesm2022/ngxsmk-cdk.mjs +4 -0
- package/fesm2022/ngxsmk-cdk.mjs.map +1 -1
- package/focusable/focusable.d.ts.map +1 -1
- package/intersection-observer/index.d.ts +2 -0
- package/intersection-observer/index.d.ts.map +1 -0
- package/intersection-observer/intersection-observer.d.ts +22 -0
- package/intersection-observer/intersection-observer.d.ts.map +1 -0
- package/intersection-observer/ngxsmk-cdk-intersection-observer.d.ts.map +1 -0
- package/media-query/media-query.d.ts.map +1 -1
- package/package.json +46 -12
- package/public-api.d.ts +4 -0
- package/public-api.d.ts.map +1 -1
- package/resize-observer/index.d.ts +2 -0
- package/resize-observer/index.d.ts.map +1 -0
- package/resize-observer/ngxsmk-cdk-resize-observer.d.ts.map +1 -0
- package/resize-observer/resize-observer.d.ts +20 -0
- package/resize-observer/resize-observer.d.ts.map +1 -0
- package/scroll-lock/scroll-lock.d.ts.map +1 -1
- package/testing/a11y.d.ts +6 -0
- package/testing/a11y.d.ts.map +1 -0
- package/testing/index.d.ts +2 -0
- package/testing/index.d.ts.map +1 -0
- package/testing/ngxsmk-cdk-testing.d.ts.map +1 -0
package/README.md
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
# @ngxsmk/cdk
|
|
2
2
|
|
|
3
|
-
Low-level,
|
|
4
|
-
|
|
5
|
-
- `ClickOutside` — detect clicks outside an element
|
|
6
|
-
- `FocusTrap` — trap focus within a container
|
|
7
|
-
- `ScrollLock` — lock/unlock page scroll
|
|
8
|
-
- `LiveAnnouncer` — announce messages to assistive tech
|
|
9
|
-
- `MediaQuery` — reactive media-query signals
|
|
10
|
-
- `VisuallyHidden` — visually hide content while keeping it accessible
|
|
3
|
+
Low-level, zoneless-friendly Angular behaviors that power NGXSMK components. Each behavior is its own secondary entry point, so you only bundle what you import.
|
|
11
4
|
|
|
12
5
|
Part of the [NGXSMK UI kit](https://github.com/NGXSMK/ngxsmk-ui-kit).
|
|
13
6
|
|
|
@@ -26,18 +19,68 @@ npm install @ngxsmk/cdk
|
|
|
26
19
|
|
|
27
20
|
## Usage
|
|
28
21
|
|
|
22
|
+
### Click outside
|
|
23
|
+
|
|
24
|
+
Emits when a pointer press lands outside the host element.
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<div class="menu" (ngxsmkClickOutside)="close()">…</div>
|
|
28
|
+
```
|
|
29
|
+
|
|
29
30
|
```ts
|
|
30
|
-
import {
|
|
31
|
+
import { NgxsmkClickOutside } from '@ngxsmk/cdk/click-outside';
|
|
31
32
|
```
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
### Focus trap
|
|
35
|
+
|
|
36
|
+
Traps Tab focus inside a container. `ngxsmkFocusTrapAutoCapture` moves focus in on init and restores the previously focused element on destroy.
|
|
35
37
|
|
|
36
|
-
|
|
38
|
+
```html
|
|
39
|
+
<div ngxsmkFocusTrap ngxsmkFocusTrapAutoCapture>…</div>
|
|
40
|
+
```
|
|
37
41
|
|
|
38
|
-
|
|
39
|
-
artifact lives in `dist/ngxsmk/cdk`. To publish all packages:
|
|
42
|
+
### Scroll lock
|
|
40
43
|
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
Reference-counted body scroll lock for dialogs, drawers, and sheets. Compensates for scrollbar width to avoid layout shift.
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
import { NgxsmkScrollLock } from '@ngxsmk/cdk/scroll-lock';
|
|
48
|
+
|
|
49
|
+
constructor(private lock: NgxsmkScrollLock) {}
|
|
50
|
+
open() { this.lock.lock(); }
|
|
51
|
+
close() { this.lock.unlock(); }
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Live announcer
|
|
55
|
+
|
|
56
|
+
Announces messages to assistive technology via a visually hidden `aria-live` region.
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
import { NgxsmkLiveAnnouncer } from '@ngxsmk/cdk/live-announcer';
|
|
60
|
+
|
|
61
|
+
this.announcer.announce('Item deleted', 'polite');
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Media query
|
|
65
|
+
|
|
66
|
+
Reactive, signal-based media-query helper (call in an injection context).
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
import { injectMediaQuery } from '@ngxsmk/cdk/media-query';
|
|
70
|
+
|
|
71
|
+
private readonly isMobile = injectMediaQuery('(max-width: 767px)');
|
|
43
72
|
```
|
|
73
|
+
|
|
74
|
+
### Visually hidden
|
|
75
|
+
|
|
76
|
+
Hides content visually while keeping it available to screen readers.
|
|
77
|
+
|
|
78
|
+
```html
|
|
79
|
+
<span ngxsmkVisuallyHidden>Opens in a new window</span>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Entry points
|
|
83
|
+
|
|
84
|
+
`click-outside`, `focusable`, `focus-trap`, `live-announcer`, `media-query`, `scroll-lock`, `visually-hidden`, `intersection-observer`, `resize-observer`, `autofocus`, `testing`.
|
|
85
|
+
|
|
86
|
+
Prefer deep imports (e.g. `@ngxsmk/cdk/click-outside`) so the bundler tree-shakes unused behaviors.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* Automatically focuses the host element on render.
|
|
4
|
+
*
|
|
5
|
+
* ```html
|
|
6
|
+
* <input ngxsmkAutofocus />
|
|
7
|
+
* <button [ngxsmkAutofocus]="shouldFocus" [autofocusDelay]="150">Confirm</button>
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export declare class NgxsmkAutofocus {
|
|
11
|
+
private readonly elementRef;
|
|
12
|
+
readonly ngxsmkAutofocus: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
13
|
+
readonly autofocusDelay: import("@angular/core").InputSignal<number>;
|
|
14
|
+
constructor();
|
|
15
|
+
private focusElement;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxsmkAutofocus, never>;
|
|
17
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgxsmkAutofocus, "[ngxsmkAutofocus]", never, { "ngxsmkAutofocus": { "alias": "ngxsmkAutofocus"; "required": false; "isSignal": true; }; "autofocusDelay": { "alias": "autofocusDelay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=autofocus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autofocus.d.ts","sourceRoot":"","sources":["../../../../packages/cdk/autofocus/autofocus.ts"],"names":[],"mappings":";AASA;;;;;;;GAOG;AACH,qBAIa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+C;IAE1E,QAAQ,CAAC,eAAe,qEAAgD;IACxE,QAAQ,CAAC,cAAc,8CAAoB;;IAe3C,OAAO,CAAC,YAAY;yCAnBT,eAAe;2CAAf,eAAe;CAyB3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/cdk/autofocus/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngxsmk-cdk-autofocus.d.ts","sourceRoot":"","sources":["../../../../packages/cdk/autofocus/ngxsmk-cdk-autofocus.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"click-outside.d.ts","sourceRoot":"","sources":["../../../../packages/cdk/click-outside/click-outside.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"click-outside.d.ts","sourceRoot":"","sources":["../../../../packages/cdk/click-outside/click-outside.ts"],"names":[],"mappings":";AAGA;;;;;;GAMG;AACH,qBAIa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+C;IAEpE,QAAQ,CAAC,kBAAkB,kDAAmB;;yCAHnC,kBAAkB;2CAAlB,kBAAkB;CAqB9B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { afterNextRender, booleanAttribute, Directive, ElementRef, inject, input, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Automatically focuses the host element on render.
|
|
5
|
+
*
|
|
6
|
+
* ```html
|
|
7
|
+
* <input ngxsmkAutofocus />
|
|
8
|
+
* <button [ngxsmkAutofocus]="shouldFocus" [autofocusDelay]="150">Confirm</button>
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
export class NgxsmkAutofocus {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.elementRef = inject(ElementRef);
|
|
14
|
+
this.ngxsmkAutofocus = input(true, { transform: booleanAttribute });
|
|
15
|
+
this.autofocusDelay = input(0);
|
|
16
|
+
afterNextRender(() => {
|
|
17
|
+
if (this.ngxsmkAutofocus()) {
|
|
18
|
+
const delay = this.autofocusDelay();
|
|
19
|
+
if (delay > 0) {
|
|
20
|
+
setTimeout(() => this.focusElement(), delay);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
this.focusElement();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
focusElement() {
|
|
29
|
+
const el = this.elementRef.nativeElement;
|
|
30
|
+
if (el && typeof el.focus === 'function') {
|
|
31
|
+
el.focus();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkAutofocus, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.0", type: NgxsmkAutofocus, isStandalone: true, selector: "[ngxsmkAutofocus]", inputs: { ngxsmkAutofocus: { classPropertyName: "ngxsmkAutofocus", publicName: "ngxsmkAutofocus", isSignal: true, isRequired: false, transformFunction: null }, autofocusDelay: { classPropertyName: "autofocusDelay", publicName: "autofocusDelay", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkAutofocus, decorators: [{
|
|
38
|
+
type: Directive,
|
|
39
|
+
args: [{
|
|
40
|
+
standalone: true,
|
|
41
|
+
selector: '[ngxsmkAutofocus]',
|
|
42
|
+
}]
|
|
43
|
+
}], ctorParameters: () => [] });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2F1dG9mb2N1cy9hdXRvZm9jdXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDOztBQUV2Qjs7Ozs7OztHQU9HO0FBS0gsTUFBTSxPQUFPLGVBQWU7SUFNMUI7UUFMaUIsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFFakUsb0JBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUMvRCxtQkFBYyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUd6QyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ2QsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksRUFBRSxJQUFJLE9BQU8sRUFBRSxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN6QyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixDQUFDO0lBQ0gsQ0FBQzs4R0F4QlUsZUFBZTtrR0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQUozQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsbUJBQW1CO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBBdXRvbWF0aWNhbGx5IGZvY3VzZXMgdGhlIGhvc3QgZWxlbWVudCBvbiByZW5kZXIuXG4gKlxuICogYGBgaHRtbFxuICogPGlucHV0IG5neHNta0F1dG9mb2N1cyAvPlxuICogPGJ1dHRvbiBbbmd4c21rQXV0b2ZvY3VzXT1cInNob3VsZEZvY3VzXCIgW2F1dG9mb2N1c0RlbGF5XT1cIjE1MFwiPkNvbmZpcm08L2J1dHRvbj5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbbmd4c21rQXV0b2ZvY3VzXScsXG59KVxuZXhwb3J0IGNsYXNzIE5neHNta0F1dG9mb2N1cyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgcmVhZG9ubHkgbmd4c21rQXV0b2ZvY3VzID0gaW5wdXQodHJ1ZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gIHJlYWRvbmx5IGF1dG9mb2N1c0RlbGF5ID0gaW5wdXQ8bnVtYmVyPigwKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubmd4c21rQXV0b2ZvY3VzKCkpIHtcbiAgICAgICAgY29uc3QgZGVsYXkgPSB0aGlzLmF1dG9mb2N1c0RlbGF5KCk7XG4gICAgICAgIGlmIChkZWxheSA+IDApIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9jdXNFbGVtZW50KCksIGRlbGF5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZvY3VzRWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzRWxlbWVudCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChlbCAmJiB0eXBlb2YgZWwuZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVsLmZvY3VzKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './autofocus';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvYXV0b2ZvY3VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRvZm9jdXMnO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4c21rLWNkay1hdXRvZm9jdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvYXV0b2ZvY3VzL25neHNtay1jZGstYXV0b2ZvY3VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { DestroyRef, Directive, ElementRef, inject, output
|
|
2
|
+
import { DestroyRef, Directive, ElementRef, inject, output } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
5
|
* Emits when a pointer press lands outside the host element.
|
|
@@ -9,9 +9,9 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
* ```
|
|
10
10
|
*/
|
|
11
11
|
export class NgxsmkClickOutside {
|
|
12
|
-
host = inject(ElementRef);
|
|
13
|
-
ngxsmkClickOutside = output();
|
|
14
12
|
constructor() {
|
|
13
|
+
this.host = inject(ElementRef);
|
|
14
|
+
this.ngxsmkClickOutside = output();
|
|
15
15
|
const document = inject(DOCUMENT);
|
|
16
16
|
const destroyRef = inject(DestroyRef);
|
|
17
17
|
const onPointerDown = (event) => {
|
|
@@ -25,8 +25,8 @@ export class NgxsmkClickOutside {
|
|
|
25
25
|
document.addEventListener('pointerdown', onPointerDown, true);
|
|
26
26
|
destroyRef.onDestroy(() => document.removeEventListener('pointerdown', onPointerDown, true));
|
|
27
27
|
}
|
|
28
|
-
static
|
|
29
|
-
static
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkClickOutside, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: NgxsmkClickOutside, isStandalone: true, selector: "[ngxsmkClickOutside]", outputs: { ngxsmkClickOutside: "ngxsmkClickOutside" }, ngImport: i0 }); }
|
|
30
30
|
}
|
|
31
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkClickOutside, decorators: [{
|
|
32
32
|
type: Directive,
|
|
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
35
35
|
selector: '[ngxsmkClickOutside]',
|
|
36
36
|
}]
|
|
37
37
|
}], ctorParameters: () => [] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9jbGljay1vdXRzaWRlL2NsaWNrLW91dHNpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVsRjs7Ozs7O0dBTUc7QUFLSCxNQUFNLE9BQU8sa0JBQWtCO0lBSzdCO1FBSmlCLFNBQUksR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRTNELHVCQUFrQixHQUFHLE1BQU0sRUFBUyxDQUFDO1FBRzVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdEMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUNyQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztZQUMzQyxJQUFJLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixrRUFBa0U7UUFDbEUsNkJBQTZCO1FBQzdCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlELFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDOzhHQXBCVSxrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRW1pdHMgd2hlbiBhIHBvaW50ZXIgcHJlc3MgbGFuZHMgb3V0c2lkZSB0aGUgaG9zdCBlbGVtZW50LlxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgY2xhc3M9XCJtZW51XCIgKG5neHNta0NsaWNrT3V0c2lkZSk9XCJjbG9zZSgpXCI+4oCmPC9kaXY+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW25neHNta0NsaWNrT3V0c2lkZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hzbWtDbGlja091dHNpZGUge1xuICBwcml2YXRlIHJlYWRvbmx5IGhvc3QgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gIHJlYWRvbmx5IG5neHNta0NsaWNrT3V0c2lkZSA9IG91dHB1dDxFdmVudD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0IG9uUG9pbnRlckRvd24gPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgICBpZiAodGFyZ2V0ICYmICF0aGlzLmhvc3QubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgIHRoaXMubmd4c21rQ2xpY2tPdXRzaWRlLmVtaXQoZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBDYXB0dXJlIHBoYXNlIHNvIHN0b3BwZWQgcHJvcGFnYXRpb24gaW5zaWRlIG90aGVyIHdpZGdldHMgY2FuJ3RcbiAgICAvLyBzd2FsbG93IHRoZSBvdXRzaWRlIHByZXNzLlxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgb25Qb2ludGVyRG93biwgdHJ1ZSk7XG4gICAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBvblBvaW50ZXJEb3duLCB0cnVlKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -8,17 +8,17 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
* restores the previously focused element on destroy.
|
|
9
9
|
*/
|
|
10
10
|
export class NgxsmkFocusTrap {
|
|
11
|
-
host = inject(ElementRef);
|
|
12
|
-
document = inject(DOCUMENT);
|
|
13
|
-
/** Set to `false` to disable the trap without removing the directive. */
|
|
14
|
-
ngxsmkFocusTrap = input(true, {
|
|
15
|
-
transform: (v) => v === '' || v === true || v === 'true',
|
|
16
|
-
});
|
|
17
|
-
/** Focus the first focusable child on init; restore focus on destroy. */
|
|
18
|
-
ngxsmkFocusTrapAutoCapture = input(false, {
|
|
19
|
-
transform: booleanAttribute,
|
|
20
|
-
});
|
|
21
11
|
constructor() {
|
|
12
|
+
this.host = inject(ElementRef);
|
|
13
|
+
this.document = inject(DOCUMENT);
|
|
14
|
+
/** Set to `false` to disable the trap without removing the directive. */
|
|
15
|
+
this.ngxsmkFocusTrap = input(true, {
|
|
16
|
+
transform: (v) => v === '' || v === true || v === 'true',
|
|
17
|
+
});
|
|
18
|
+
/** Focus the first focusable child on init; restore focus on destroy. */
|
|
19
|
+
this.ngxsmkFocusTrapAutoCapture = input(false, {
|
|
20
|
+
transform: booleanAttribute,
|
|
21
|
+
});
|
|
22
22
|
const previouslyFocused = this.document.activeElement;
|
|
23
23
|
afterNextRender(() => {
|
|
24
24
|
if (this.ngxsmkFocusTrapAutoCapture()) {
|
|
@@ -53,8 +53,8 @@ export class NgxsmkFocusTrap {
|
|
|
53
53
|
first.focus();
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
static
|
|
57
|
-
static
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkFocusTrap, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
57
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.0", type: NgxsmkFocusTrap, isStandalone: true, selector: "[ngxsmkFocusTrap]", inputs: { ngxsmkFocusTrap: { classPropertyName: "ngxsmkFocusTrap", publicName: "ngxsmkFocusTrap", isSignal: true, isRequired: false, transformFunction: null }, ngxsmkFocusTrapAutoCapture: { classPropertyName: "ngxsmkFocusTrapAutoCapture", publicName: "ngxsmkFocusTrapAutoCapture", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "onKeydown($event)" } }, ngImport: i0 }); }
|
|
58
58
|
}
|
|
59
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkFocusTrap, decorators: [{
|
|
60
60
|
type: Directive,
|
|
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
66
66
|
},
|
|
67
67
|
}]
|
|
68
68
|
}], ctorParameters: () => [] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9mb2N1cy10cmFwL2ZvY3VzLXRyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUVyRDs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLGVBQWU7SUFjMUI7UUFiaUIsU0FBSSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDbkQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3Qyx5RUFBeUU7UUFDaEUsb0JBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ3JDLFNBQVMsRUFBRSxDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxNQUFNO1NBQ2xFLENBQUMsQ0FBQztRQUVILHlFQUF5RTtRQUNoRSwrQkFBMEIsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ2pELFNBQVMsRUFBRSxnQkFBZ0I7U0FDNUIsQ0FBQyxDQUFDO1FBR0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQW1DLENBQUM7UUFFNUUsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRSxFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN4RCxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLEVBQUUsQ0FBQztnQkFDdEMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsU0FBUyxDQUFDLEtBQW9CO1FBQ3RDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUNuRCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFFM0MsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQy9FLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDO2FBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzlDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7OEdBcERVLGVBQWU7a0dBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFQM0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNKLFdBQVcsRUFBRSxtQkFBbUI7cUJBQ2pDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgRGVzdHJveVJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBhZnRlck5leHRSZW5kZXIsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbiAgaW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0Rm9jdXNhYmxlIH0gZnJvbSAnQG5neHNtay9jZGsvZm9jdXNhYmxlJztcblxuLyoqXG4gKiBUcmFwcyBUYWIvU2hpZnQrVGFiIGZvY3VzIGN5Y2xpbmcgaW5zaWRlIHRoZSBob3N0IGVsZW1lbnQgd2hpbGUgYWN0aXZlLlxuICogV2l0aCBgbmd4c21rRm9jdXNUcmFwQXV0b0NhcHR1cmVgLCBtb3ZlcyBmb2N1cyBpbnRvIHRoZSB0cmFwIG9uIGluaXQgYW5kXG4gKiByZXN0b3JlcyB0aGUgcHJldmlvdXNseSBmb2N1c2VkIGVsZW1lbnQgb24gZGVzdHJveS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW25neHNta0ZvY3VzVHJhcF0nLFxuICBob3N0OiB7XG4gICAgJyhrZXlkb3duKSc6ICdvbktleWRvd24oJGV2ZW50KScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5neHNta0ZvY3VzVHJhcCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaG9zdCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gIC8qKiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIHRoZSB0cmFwIHdpdGhvdXQgcmVtb3ZpbmcgdGhlIGRpcmVjdGl2ZS4gKi9cbiAgcmVhZG9ubHkgbmd4c21rRm9jdXNUcmFwID0gaW5wdXQodHJ1ZSwge1xuICAgIHRyYW5zZm9ybTogKHY6IHVua25vd24pID0+IHYgPT09ICcnIHx8IHYgPT09IHRydWUgfHwgdiA9PT0gJ3RydWUnLFxuICB9KTtcblxuICAvKiogRm9jdXMgdGhlIGZpcnN0IGZvY3VzYWJsZSBjaGlsZCBvbiBpbml0OyByZXN0b3JlIGZvY3VzIG9uIGRlc3Ryb3kuICovXG4gIHJlYWRvbmx5IG5neHNta0ZvY3VzVHJhcEF1dG9DYXB0dXJlID0gaW5wdXQoZmFsc2UsIHtcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkID0gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5uZ3hzbWtGb2N1c1RyYXBBdXRvQ2FwdHVyZSgpKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZSA9IGdldEZvY3VzYWJsZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIChmb2N1c2FibGVbMF0gPz8gdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm5neHNta0ZvY3VzVHJhcEF1dG9DYXB0dXJlKCkpIHtcbiAgICAgICAgcHJldmlvdXNseUZvY3VzZWQ/LmZvY3VzPy4oKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ICE9PSAnVGFiJyB8fCAhdGhpcy5uZ3hzbWtGb2N1c1RyYXAoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb2N1c2FibGUgPSBnZXRGb2N1c2FibGUodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIGlmIChmb2N1c2FibGUubGVuZ3RoID09PSAwKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0ID0gZm9jdXNhYmxlWzBdO1xuICAgIGNvbnN0IGxhc3QgPSBmb2N1c2FibGVbZm9jdXNhYmxlLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuICAgIGlmIChldmVudC5zaGlmdEtleSAmJiAoYWN0aXZlID09PSBmaXJzdCB8fCBhY3RpdmUgPT09IHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGxhc3QuZm9jdXMoKTtcbiAgICB9IGVsc2UgaWYgKCFldmVudC5zaGlmdEtleSAmJiBhY3RpdmUgPT09IGxhc3QpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBmaXJzdC5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -12,4 +12,4 @@ export const FOCUSABLE_SELECTOR = [
|
|
|
12
12
|
export function getFocusable(container) {
|
|
13
13
|
return Array.from(container.querySelectorAll(FOCUSABLE_SELECTOR)).filter((el) => el.offsetParent !== null || el === el.ownerDocument.activeElement);
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2ZvY3VzYWJsZS9mb2N1c2FibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0VBQWtFO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLFNBQVM7SUFDVCx3QkFBd0I7SUFDeEIsNENBQTRDO0lBQzVDLHdCQUF3QjtJQUN4QiwwQkFBMEI7SUFDMUIsaUNBQWlDO0lBQ2pDLDBCQUEwQjtDQUMzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUViLHdFQUF3RTtBQUN4RSxNQUFNLFVBQVUsWUFBWSxDQUFDLFNBQXNCO0lBQ2pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQWMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDbkYsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FDMUUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogU2VsZWN0b3IgbWF0Y2hpbmcgZWxlbWVudHMgdGhhdCBjYW4gcmVjZWl2ZSBrZXlib2FyZCBmb2N1cy4gKi9cbmV4cG9ydCBjb25zdCBGT0NVU0FCTEVfU0VMRUNUT1IgPSBbXG4gICdhW2hyZWZdJyxcbiAgJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSknLFxuICAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdHlwZT1cImhpZGRlblwiXSknLFxuICAnc2VsZWN0Om5vdChbZGlzYWJsZWRdKScsXG4gICd0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSknLFxuICAnW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PVwiLTFcIl0pJyxcbiAgJ1tjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJdJyxcbl0uam9pbignLCAnKTtcblxuLyoqIEFsbCBrZXlib2FyZC1mb2N1c2FibGUgZWxlbWVudHMgaW5zaWRlIGBjb250YWluZXJgLCBpbiBET00gb3JkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9jdXNhYmxlKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KEZPQ1VTQUJMRV9TRUxFQ1RPUikpLmZpbHRlcihcbiAgICAoZWwpID0+IGVsLm9mZnNldFBhcmVudCAhPT0gbnVsbCB8fCBlbCA9PT0gZWwub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50LFxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './intersection-observer';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ludGVyc2VjdGlvbi1vYnNlcnZlcic7XG4iXX0=
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { DestroyRef, Directive, ElementRef, inject, input, output, effect } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Monitors the visibility of an element relative to the viewport or a parent container.
|
|
5
|
+
*
|
|
6
|
+
* ```html
|
|
7
|
+
* <div [ngxsmkIntersectionObserver] (intersecting)="onIntersect($event)">…</div>
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export class NgxsmkIntersectionObserver {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.elementRef = inject(ElementRef);
|
|
13
|
+
this.destroyRef = inject(DestroyRef);
|
|
14
|
+
this.rootMargin = input('0px');
|
|
15
|
+
this.threshold = input(0);
|
|
16
|
+
this.intersecting = output();
|
|
17
|
+
this.intersection = output();
|
|
18
|
+
this.observer = null;
|
|
19
|
+
if (typeof window === 'undefined' || !('IntersectionObserver' in window)) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
effect(() => {
|
|
23
|
+
this.cleanup();
|
|
24
|
+
const options = {
|
|
25
|
+
rootMargin: this.rootMargin(),
|
|
26
|
+
threshold: this.threshold(),
|
|
27
|
+
};
|
|
28
|
+
this.observer = new IntersectionObserver((entries) => {
|
|
29
|
+
for (const entry of entries) {
|
|
30
|
+
this.intersecting.emit(entry.isIntersecting);
|
|
31
|
+
this.intersection.emit(entry);
|
|
32
|
+
}
|
|
33
|
+
}, options);
|
|
34
|
+
this.observer.observe(this.elementRef.nativeElement);
|
|
35
|
+
});
|
|
36
|
+
this.destroyRef.onDestroy(() => {
|
|
37
|
+
this.cleanup();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
cleanup() {
|
|
41
|
+
if (this.observer) {
|
|
42
|
+
this.observer.disconnect();
|
|
43
|
+
this.observer = null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkIntersectionObserver, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
47
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.0", type: NgxsmkIntersectionObserver, isStandalone: true, selector: "[ngxsmkIntersectionObserver]", inputs: { rootMargin: { classPropertyName: "rootMargin", publicName: "rootMargin", isSignal: true, isRequired: false, transformFunction: null }, threshold: { classPropertyName: "threshold", publicName: "threshold", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { intersecting: "intersecting", intersection: "intersection" }, ngImport: i0 }); }
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkIntersectionObserver, decorators: [{
|
|
50
|
+
type: Directive,
|
|
51
|
+
args: [{
|
|
52
|
+
standalone: true,
|
|
53
|
+
selector: '[ngxsmkIntersectionObserver]',
|
|
54
|
+
}]
|
|
55
|
+
}], ctorParameters: () => [] });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJzZWN0aW9uLW9ic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFakc7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjtJQVlyQztRQVhpQixlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUN6RCxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXhDLGVBQVUsR0FBRyxLQUFLLENBQVMsS0FBSyxDQUFDLENBQUM7UUFDbEMsY0FBUyxHQUFHLEtBQUssQ0FBb0IsQ0FBQyxDQUFDLENBQUM7UUFFeEMsaUJBQVksR0FBRyxNQUFNLEVBQVcsQ0FBQztRQUNqQyxpQkFBWSxHQUFHLE1BQU0sRUFBNkIsQ0FBQztRQUVwRCxhQUFRLEdBQWdDLElBQUksQ0FBQztRQUduRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxDQUFDLENBQUMsc0JBQXNCLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN6RSxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFZixNQUFNLE9BQU8sR0FBRztnQkFDZCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7YUFDNUIsQ0FBQztZQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNuRCxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQyxDQUFDO1lBQ0gsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRVosSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7OEdBN0NVLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsOEJBQThCO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBNb25pdG9ycyB0aGUgdmlzaWJpbGl0eSBvZiBhbiBlbGVtZW50IHJlbGF0aXZlIHRvIHRoZSB2aWV3cG9ydCBvciBhIHBhcmVudCBjb250YWluZXIuXG4gKlxuICogYGBgaHRtbFxuICogPGRpdiBbbmd4c21rSW50ZXJzZWN0aW9uT2JzZXJ2ZXJdIChpbnRlcnNlY3RpbmcpPVwib25JbnRlcnNlY3QoJGV2ZW50KVwiPuKApjwvZGl2PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3hzbWtJbnRlcnNlY3Rpb25PYnNlcnZlcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hzbWtJbnRlcnNlY3Rpb25PYnNlcnZlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICByZWFkb25seSByb290TWFyZ2luID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XG4gIHJlYWRvbmx5IHRocmVzaG9sZCA9IGlucHV0PG51bWJlciB8IG51bWJlcltdPigwKTtcblxuICByZWFkb25seSBpbnRlcnNlY3RpbmcgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaW50ZXJzZWN0aW9uID0gb3V0cHV0PEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+KCk7XG5cbiAgcHJpdmF0ZSBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgISgnSW50ZXJzZWN0aW9uT2JzZXJ2ZXInIGluIHdpbmRvdykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5jbGVhbnVwKCk7XG5cbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIHJvb3RNYXJnaW46IHRoaXMucm9vdE1hcmdpbigpLFxuICAgICAgICB0aHJlc2hvbGQ6IHRoaXMudGhyZXNob2xkKCksXG4gICAgICB9O1xuXG4gICAgICB0aGlzLm9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgIHRoaXMuaW50ZXJzZWN0aW5nLmVtaXQoZW50cnkuaXNJbnRlcnNlY3RpbmcpO1xuICAgICAgICAgIHRoaXMuaW50ZXJzZWN0aW9uLmVtaXQoZW50cnkpO1xuICAgICAgICB9XG4gICAgICB9LCBvcHRpb25zKTtcblxuICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9KTtcblxuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy5vYnNlcnZlciA9IG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4c21rLWNkay1pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvaW50ZXJzZWN0aW9uLW9ic2VydmVyL25neHNtay1jZGstaW50ZXJzZWN0aW9uLW9ic2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -6,9 +6,11 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
* `aria-live` region appended to the document body.
|
|
7
7
|
*/
|
|
8
8
|
export class NgxsmkLiveAnnouncer {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
constructor() {
|
|
10
|
+
this.document = inject(DOCUMENT);
|
|
11
|
+
this.region = null;
|
|
12
|
+
this.clearTimer = null;
|
|
13
|
+
}
|
|
12
14
|
announce(message, politeness = 'polite') {
|
|
13
15
|
const region = this.ensureRegion();
|
|
14
16
|
region.setAttribute('aria-live', politeness);
|
|
@@ -47,11 +49,11 @@ export class NgxsmkLiveAnnouncer {
|
|
|
47
49
|
}
|
|
48
50
|
return this.region;
|
|
49
51
|
}
|
|
50
|
-
static
|
|
51
|
-
static
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkLiveAnnouncer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
53
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkLiveAnnouncer, providedIn: 'root' }); }
|
|
52
54
|
}
|
|
53
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkLiveAnnouncer, decorators: [{
|
|
54
56
|
type: Injectable,
|
|
55
57
|
args: [{ providedIn: 'root' }]
|
|
56
58
|
}] });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS1hbm5vdW5jZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvbGl2ZS1hbm5vdW5jZXIvbGl2ZS1hbm5vdW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUkzQzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRW1CLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsV0FBTSxHQUF1QixJQUFJLENBQUM7UUFDbEMsZUFBVSxHQUF5QyxJQUFJLENBQUM7S0E0Q2pFO0lBMUNDLFFBQVEsQ0FBQyxPQUFlLEVBQUUsYUFBa0MsUUFBUTtRQUNsRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFN0MsNkRBQTZEO1FBQzdELE1BQU0sQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUVqRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQztZQUMzQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQzFCLFFBQVEsRUFBRSxVQUFVO2dCQUNwQixLQUFLLEVBQUUsS0FBSztnQkFDWixNQUFNLEVBQUUsS0FBSztnQkFDYixNQUFNLEVBQUUsTUFBTTtnQkFDZCxPQUFPLEVBQUUsR0FBRztnQkFDWixNQUFNLEVBQUUsR0FBRztnQkFDWCxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLFVBQVUsRUFBRSxRQUFRO2FBQ3JCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7OEdBOUNVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRE4sTUFBTTs7MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgdHlwZSBBbm5vdW5jZXJQb2xpdGVuZXNzID0gJ3BvbGl0ZScgfCAnYXNzZXJ0aXZlJztcblxuLyoqXG4gKiBBbm5vdW5jZXMgbWVzc2FnZXMgdG8gc2NyZWVuIHJlYWRlcnMgdGhyb3VnaCBhIHZpc3VhbGx5IGhpZGRlblxuICogYGFyaWEtbGl2ZWAgcmVnaW9uIGFwcGVuZGVkIHRvIHRoZSBkb2N1bWVudCBib2R5LlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neHNta0xpdmVBbm5vdW5jZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSByZWdpb246IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2xlYXJUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcblxuICBhbm5vdW5jZShtZXNzYWdlOiBzdHJpbmcsIHBvbGl0ZW5lc3M6IEFubm91bmNlclBvbGl0ZW5lc3MgPSAncG9saXRlJyk6IHZvaWQge1xuICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMuZW5zdXJlUmVnaW9uKCk7XG4gICAgcmVnaW9uLnNldEF0dHJpYnV0ZSgnYXJpYS1saXZlJywgcG9saXRlbmVzcyk7XG5cbiAgICAvLyBDbGVhciBmaXJzdCBzbyByZXBlYXRpbmcgdGhlIHNhbWUgbWVzc2FnZSBpcyByZS1hbm5vdW5jZWQuXG4gICAgcmVnaW9uLnRleHRDb250ZW50ID0gJyc7XG4gICAgc2V0VGltZW91dCgoKSA9PiAocmVnaW9uLnRleHRDb250ZW50ID0gbWVzc2FnZSkpO1xuXG4gICAgaWYgKHRoaXMuY2xlYXJUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xlYXJUaW1lcik7XG4gICAgfVxuICAgIHRoaXMuY2xlYXJUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gKHJlZ2lvbi50ZXh0Q29udGVudCA9ICcnKSwgMTBfMDAwKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNsZWFyVGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsZWFyVGltZXIpO1xuICAgIH1cbiAgICB0aGlzLnJlZ2lvbj8ucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZVJlZ2lvbigpOiBIVE1MRWxlbWVudCB7XG4gICAgaWYgKCF0aGlzLnJlZ2lvbikge1xuICAgICAgY29uc3QgcmVnaW9uID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHJlZ2lvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtYXRvbWljJywgJ3RydWUnKTtcbiAgICAgIHJlZ2lvbi5jbGFzc05hbWUgPSAnbmd4c21rLWxpdmUtYW5ub3VuY2VyJztcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVnaW9uLnN0eWxlLCB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICB3aWR0aDogJzFweCcsXG4gICAgICAgIGhlaWdodDogJzFweCcsXG4gICAgICAgIG1hcmdpbjogJy0xcHgnLFxuICAgICAgICBwYWRkaW5nOiAnMCcsXG4gICAgICAgIGJvcmRlcjogJzAnLFxuICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgIGNsaXBQYXRoOiAnaW5zZXQoMTAwJSknLFxuICAgICAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlZ2lvbik7XG4gICAgICB0aGlzLnJlZ2lvbiA9IHJlZ2lvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVnaW9uO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { DestroyRef, inject, signal
|
|
2
|
+
import { DestroyRef, inject, signal } from '@angular/core';
|
|
3
3
|
/**
|
|
4
4
|
* Reactive media query. Must be called in an injection context.
|
|
5
5
|
*
|
|
@@ -19,4 +19,4 @@ export function injectMediaQuery(query) {
|
|
|
19
19
|
}
|
|
20
20
|
return matches.asReadonly();
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtcXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvbWVkaWEtcXVlcnkvbWVkaWEtcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBYTtJQUM1QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQzVDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QixNQUFNLEtBQUssR0FBRyxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBMEIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERlc3Ryb3lSZWYsIFNpZ25hbCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZWFjdGl2ZSBtZWRpYSBxdWVyeS4gTXVzdCBiZSBjYWxsZWQgaW4gYW4gaW5qZWN0aW9uIGNvbnRleHQuXG4gKlxuICogYGBgdHNcbiAqIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbmplY3RNZWRpYVF1ZXJ5KCcobWF4LXdpZHRoOiA3NjdweCknKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0TWVkaWFRdWVyeShxdWVyeTogc3RyaW5nKTogU2lnbmFsPGJvb2xlYW4+IHtcbiAgY29uc3Qgd2luZG93ID0gaW5qZWN0KERPQ1VNRU5UKS5kZWZhdWx0VmlldztcbiAgY29uc3QgbWF0Y2hlcyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgY29uc3QgbWVkaWEgPSB3aW5kb3c/Lm1hdGNoTWVkaWE/LihxdWVyeSk7XG4gIGlmIChtZWRpYSkge1xuICAgIG1hdGNoZXMuc2V0KG1lZGlhLm1hdGNoZXMpO1xuICAgIGNvbnN0IGxpc3RlbmVyID0gKGV2ZW50OiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiBtYXRjaGVzLnNldChldmVudC5tYXRjaGVzKTtcbiAgICBtZWRpYS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBsaXN0ZW5lcik7XG4gICAgaW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiBtZWRpYS5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBsaXN0ZW5lcikpO1xuICB9XG5cbiAgcmV0dXJuIG1hdGNoZXMuYXNSZWFkb25seSgpO1xufVxuIl19
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -8,4 +8,8 @@ export * from '@ngxsmk/cdk/live-announcer';
|
|
|
8
8
|
export * from '@ngxsmk/cdk/media-query';
|
|
9
9
|
export * from '@ngxsmk/cdk/scroll-lock';
|
|
10
10
|
export * from '@ngxsmk/cdk/visually-hidden';
|
|
11
|
-
|
|
11
|
+
export * from '@ngxsmk/cdk/intersection-observer';
|
|
12
|
+
export * from '@ngxsmk/cdk/resize-observer';
|
|
13
|
+
export * from '@ngxsmk/cdk/autofocus';
|
|
14
|
+
export * from '@ngxsmk/cdk/testing';
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAbmd4c21rL2Nka1xuICovXG5cbmV4cG9ydCAqIGZyb20gJ0BuZ3hzbWsvY2RrL2NsaWNrLW91dHNpZGUnO1xuZXhwb3J0ICogZnJvbSAnQG5neHNtay9jZGsvZm9jdXNhYmxlJztcbmV4cG9ydCAqIGZyb20gJ0BuZ3hzbWsvY2RrL2ZvY3VzLXRyYXAnO1xuZXhwb3J0ICogZnJvbSAnQG5neHNtay9jZGsvbGl2ZS1hbm5vdW5jZXInO1xuZXhwb3J0ICogZnJvbSAnQG5neHNtay9jZGsvbWVkaWEtcXVlcnknO1xuZXhwb3J0ICogZnJvbSAnQG5neHNtay9jZGsvc2Nyb2xsLWxvY2snO1xuZXhwb3J0ICogZnJvbSAnQG5neHNtay9jZGsvdmlzdWFsbHktaGlkZGVuJztcbmV4cG9ydCAqIGZyb20gJ0BuZ3hzbWsvY2RrL2ludGVyc2VjdGlvbi1vYnNlcnZlcic7XG5leHBvcnQgKiBmcm9tICdAbmd4c21rL2Nkay9yZXNpemUtb2JzZXJ2ZXInO1xuZXhwb3J0ICogZnJvbSAnQG5neHNtay9jZGsvYXV0b2ZvY3VzJztcbmV4cG9ydCAqIGZyb20gJ0BuZ3hzbWsvY2RrL3Rlc3RpbmcnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './resize-observer';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvcmVzaXplLW9ic2VydmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Jlc2l6ZS1vYnNlcnZlcic7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4c21rLWNkay1yZXNpemUtb2JzZXJ2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvcmVzaXplLW9ic2VydmVyL25neHNtay1jZGstcmVzaXplLW9ic2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { DestroyRef, Directive, ElementRef, inject, input, output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Emits when the host element's dimensions change.
|
|
5
|
+
*
|
|
6
|
+
* ```html
|
|
7
|
+
* <div [ngxsmkResizeObserver] (resized)="onResize($event)">…</div>
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export class NgxsmkResizeObserver {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.elementRef = inject(ElementRef);
|
|
13
|
+
this.destroyRef = inject(DestroyRef);
|
|
14
|
+
this.debounceMs = input(0);
|
|
15
|
+
this.resized = output();
|
|
16
|
+
this.observer = null;
|
|
17
|
+
this.timeoutId = null;
|
|
18
|
+
if (typeof window === 'undefined' || !('ResizeObserver' in window)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
this.observer = new ResizeObserver((entries) => {
|
|
22
|
+
const entry = entries[0];
|
|
23
|
+
if (!entry) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const debounce = this.debounceMs();
|
|
27
|
+
if (debounce > 0) {
|
|
28
|
+
if (this.timeoutId) {
|
|
29
|
+
clearTimeout(this.timeoutId);
|
|
30
|
+
}
|
|
31
|
+
this.timeoutId = setTimeout(() => {
|
|
32
|
+
this.resized.emit(entry);
|
|
33
|
+
}, debounce);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.resized.emit(entry);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
this.observer.observe(this.elementRef.nativeElement);
|
|
40
|
+
this.destroyRef.onDestroy(() => {
|
|
41
|
+
if (this.timeoutId) {
|
|
42
|
+
clearTimeout(this.timeoutId);
|
|
43
|
+
}
|
|
44
|
+
if (this.observer) {
|
|
45
|
+
this.observer.disconnect();
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkResizeObserver, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
50
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.0", type: NgxsmkResizeObserver, isStandalone: true, selector: "[ngxsmkResizeObserver]", inputs: { debounceMs: { classPropertyName: "debounceMs", publicName: "debounceMs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { resized: "resized" }, ngImport: i0 }); }
|
|
51
|
+
}
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkResizeObserver, decorators: [{
|
|
53
|
+
type: Directive,
|
|
54
|
+
args: [{
|
|
55
|
+
standalone: true,
|
|
56
|
+
selector: '[ngxsmkResizeObserver]',
|
|
57
|
+
}]
|
|
58
|
+
}], ctorParameters: () => [] });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL3Jlc2l6ZS1vYnNlcnZlci9yZXNpemUtb2JzZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6Rjs7Ozs7O0dBTUc7QUFLSCxNQUFNLE9BQU8sb0JBQW9CO0lBVS9CO1FBVGlCLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEMsZUFBVSxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUM5QixZQUFPLEdBQUcsTUFBTSxFQUF1QixDQUFDO1FBRXpDLGFBQVEsR0FBMEIsSUFBSSxDQUFDO1FBQ3ZDLGNBQVMsR0FBeUMsSUFBSSxDQUFDO1FBRzdELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25FLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzdDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbkMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNuQixZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMvQixDQUFDO2dCQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNmLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E1Q1Usb0JBQW9CO2tHQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSx3QkFBd0I7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBFbWl0cyB3aGVuIHRoZSBob3N0IGVsZW1lbnQncyBkaW1lbnNpb25zIGNoYW5nZS5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZGl2IFtuZ3hzbWtSZXNpemVPYnNlcnZlcl0gKHJlc2l6ZWQpPVwib25SZXNpemUoJGV2ZW50KVwiPuKApjwvZGl2PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3hzbWtSZXNpemVPYnNlcnZlcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hzbWtSZXNpemVPYnNlcnZlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICByZWFkb25seSBkZWJvdW5jZU1zID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgcmVhZG9ubHkgcmVzaXplZCA9IG91dHB1dDxSZXNpemVPYnNlcnZlckVudHJ5PigpO1xuXG4gIHByaXZhdGUgb2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgdGltZW91dElkOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAhKCdSZXNpemVPYnNlcnZlcicgaW4gd2luZG93KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgIGlmICghZW50cnkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkZWJvdW5jZSA9IHRoaXMuZGVib3VuY2VNcygpO1xuICAgICAgaWYgKGRlYm91bmNlID4gMCkge1xuICAgICAgICBpZiAodGhpcy50aW1lb3V0SWQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXNpemVkLmVtaXQoZW50cnkpO1xuICAgICAgICB9LCBkZWJvdW5jZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlc2l6ZWQuZW1pdChlbnRyeSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy50aW1lb3V0SWQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElkKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm9ic2VydmVyKSB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|