@ngxsmk/cdk 1.0.0 → 1.2.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.
Files changed (121) hide show
  1. package/autofocus/autofocus.d.ts +19 -0
  2. package/autofocus/autofocus.d.ts.map +1 -0
  3. package/autofocus/index.d.ts +2 -0
  4. package/autofocus/index.d.ts.map +1 -0
  5. package/autofocus/ngxsmk-cdk-autofocus.d.ts.map +1 -0
  6. package/{types/ngxsmk-cdk-click-outside.d.ts → click-outside/click-outside.d.ts} +4 -6
  7. package/click-outside/click-outside.d.ts.map +1 -0
  8. package/click-outside/index.d.ts +2 -0
  9. package/click-outside/index.d.ts.map +1 -0
  10. package/click-outside/ngxsmk-cdk-click-outside.d.ts.map +1 -0
  11. package/esm2022/autofocus/autofocus.mjs +44 -0
  12. package/esm2022/autofocus/index.mjs +2 -0
  13. package/esm2022/autofocus/ngxsmk-cdk-autofocus.mjs +5 -0
  14. package/esm2022/click-outside/click-outside.mjs +38 -0
  15. package/esm2022/click-outside/index.mjs +2 -0
  16. package/esm2022/click-outside/ngxsmk-cdk-click-outside.mjs +5 -0
  17. package/esm2022/focus-trap/focus-trap.mjs +69 -0
  18. package/esm2022/focus-trap/index.mjs +2 -0
  19. package/esm2022/focus-trap/ngxsmk-cdk-focus-trap.mjs +5 -0
  20. package/esm2022/focusable/focusable.mjs +15 -0
  21. package/esm2022/focusable/index.mjs +2 -0
  22. package/esm2022/focusable/ngxsmk-cdk-focusable.mjs +5 -0
  23. package/esm2022/intersection-observer/index.mjs +2 -0
  24. package/esm2022/intersection-observer/intersection-observer.mjs +56 -0
  25. package/esm2022/intersection-observer/ngxsmk-cdk-intersection-observer.mjs +5 -0
  26. package/esm2022/live-announcer/index.mjs +2 -0
  27. package/esm2022/live-announcer/live-announcer.mjs +59 -0
  28. package/esm2022/live-announcer/ngxsmk-cdk-live-announcer.mjs +5 -0
  29. package/esm2022/media-query/index.mjs +2 -0
  30. package/esm2022/media-query/media-query.mjs +22 -0
  31. package/esm2022/media-query/ngxsmk-cdk-media-query.mjs +5 -0
  32. package/esm2022/ngxsmk-cdk.mjs +5 -0
  33. package/esm2022/public-api.mjs +15 -0
  34. package/esm2022/resize-observer/index.mjs +2 -0
  35. package/esm2022/resize-observer/ngxsmk-cdk-resize-observer.mjs +5 -0
  36. package/esm2022/resize-observer/resize-observer.mjs +59 -0
  37. package/esm2022/scroll-lock/index.mjs +2 -0
  38. package/esm2022/scroll-lock/ngxsmk-cdk-scroll-lock.mjs +5 -0
  39. package/esm2022/scroll-lock/scroll-lock.mjs +45 -0
  40. package/esm2022/testing/a11y.mjs +17 -0
  41. package/esm2022/testing/index.mjs +2 -0
  42. package/esm2022/testing/ngxsmk-cdk-testing.mjs +5 -0
  43. package/esm2022/visually-hidden/index.mjs +2 -0
  44. package/esm2022/visually-hidden/ngxsmk-cdk-visually-hidden.mjs +5 -0
  45. package/esm2022/visually-hidden/visually-hidden.mjs +34 -0
  46. package/fesm2022/ngxsmk-cdk-autofocus.mjs +51 -0
  47. package/fesm2022/ngxsmk-cdk-autofocus.mjs.map +1 -0
  48. package/fesm2022/ngxsmk-cdk-click-outside.mjs +6 -6
  49. package/fesm2022/ngxsmk-cdk-click-outside.mjs.map +1 -1
  50. package/fesm2022/ngxsmk-cdk-focus-trap.mjs +14 -10
  51. package/fesm2022/ngxsmk-cdk-focus-trap.mjs.map +1 -1
  52. package/fesm2022/ngxsmk-cdk-focusable.mjs.map +1 -1
  53. package/fesm2022/ngxsmk-cdk-intersection-observer.mjs +63 -0
  54. package/fesm2022/ngxsmk-cdk-intersection-observer.mjs.map +1 -0
  55. package/fesm2022/ngxsmk-cdk-live-announcer.mjs +8 -6
  56. package/fesm2022/ngxsmk-cdk-live-announcer.mjs.map +1 -1
  57. package/fesm2022/ngxsmk-cdk-media-query.mjs +1 -2
  58. package/fesm2022/ngxsmk-cdk-media-query.mjs.map +1 -1
  59. package/fesm2022/ngxsmk-cdk-resize-observer.mjs +66 -0
  60. package/fesm2022/ngxsmk-cdk-resize-observer.mjs.map +1 -0
  61. package/fesm2022/ngxsmk-cdk-scroll-lock.mjs +10 -10
  62. package/fesm2022/ngxsmk-cdk-scroll-lock.mjs.map +1 -1
  63. package/fesm2022/ngxsmk-cdk-testing.mjs +24 -0
  64. package/fesm2022/ngxsmk-cdk-testing.mjs.map +1 -0
  65. package/fesm2022/ngxsmk-cdk-visually-hidden.mjs +3 -3
  66. package/fesm2022/ngxsmk-cdk-visually-hidden.mjs.map +1 -1
  67. package/fesm2022/ngxsmk-cdk.mjs +11 -266
  68. package/fesm2022/ngxsmk-cdk.mjs.map +1 -1
  69. package/focus-trap/focus-trap.d.ts +19 -0
  70. package/focus-trap/focus-trap.d.ts.map +1 -0
  71. package/focus-trap/index.d.ts +2 -0
  72. package/focus-trap/index.d.ts.map +1 -0
  73. package/focus-trap/ngxsmk-cdk-focus-trap.d.ts.map +1 -0
  74. package/focusable/focusable.d.ts +5 -0
  75. package/focusable/focusable.d.ts.map +1 -0
  76. package/focusable/index.d.ts +2 -0
  77. package/focusable/index.d.ts.map +1 -0
  78. package/focusable/ngxsmk-cdk-focusable.d.ts.map +1 -0
  79. package/index.d.ts +6 -0
  80. package/intersection-observer/index.d.ts +2 -0
  81. package/intersection-observer/index.d.ts.map +1 -0
  82. package/intersection-observer/intersection-observer.d.ts +22 -0
  83. package/intersection-observer/intersection-observer.d.ts.map +1 -0
  84. package/intersection-observer/ngxsmk-cdk-intersection-observer.d.ts.map +1 -0
  85. package/live-announcer/index.d.ts +2 -0
  86. package/live-announcer/index.d.ts.map +1 -0
  87. package/{types/ngxsmk-cdk-live-announcer.d.ts → live-announcer/live-announcer.d.ts} +4 -7
  88. package/live-announcer/live-announcer.d.ts.map +1 -0
  89. package/live-announcer/ngxsmk-cdk-live-announcer.d.ts.map +1 -0
  90. package/media-query/index.d.ts +2 -0
  91. package/media-query/index.d.ts.map +1 -0
  92. package/{types/ngxsmk-cdk-media-query.d.ts → media-query/media-query.d.ts} +2 -4
  93. package/media-query/media-query.d.ts.map +1 -0
  94. package/media-query/ngxsmk-cdk-media-query.d.ts.map +1 -0
  95. package/ngxsmk-cdk.d.ts.map +1 -0
  96. package/package.json +51 -12
  97. package/public-api.d.ts +12 -0
  98. package/public-api.d.ts.map +1 -0
  99. package/resize-observer/index.d.ts +2 -0
  100. package/resize-observer/index.d.ts.map +1 -0
  101. package/resize-observer/ngxsmk-cdk-resize-observer.d.ts.map +1 -0
  102. package/resize-observer/resize-observer.d.ts +20 -0
  103. package/resize-observer/resize-observer.d.ts.map +1 -0
  104. package/scroll-lock/index.d.ts +2 -0
  105. package/scroll-lock/index.d.ts.map +1 -0
  106. package/scroll-lock/ngxsmk-cdk-scroll-lock.d.ts.map +1 -0
  107. package/{types/ngxsmk-cdk-scroll-lock.d.ts → scroll-lock/scroll-lock.d.ts} +3 -5
  108. package/scroll-lock/scroll-lock.d.ts.map +1 -0
  109. package/testing/a11y.d.ts +6 -0
  110. package/testing/a11y.d.ts.map +1 -0
  111. package/testing/index.d.ts +2 -0
  112. package/testing/index.d.ts.map +1 -0
  113. package/testing/ngxsmk-cdk-testing.d.ts.map +1 -0
  114. package/visually-hidden/index.d.ts +2 -0
  115. package/visually-hidden/index.d.ts.map +1 -0
  116. package/visually-hidden/ngxsmk-cdk-visually-hidden.d.ts.map +1 -0
  117. package/{types/ngxsmk-cdk-visually-hidden.d.ts → visually-hidden/visually-hidden.d.ts} +3 -5
  118. package/visually-hidden/visually-hidden.d.ts.map +1 -0
  119. package/types/ngxsmk-cdk-focus-trap.d.ts +0 -21
  120. package/types/ngxsmk-cdk-focusable.d.ts +0 -6
  121. package/types/ngxsmk-cdk.d.ts +0 -96
@@ -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,2 @@
1
+ export * from './autofocus';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,5 +1,4 @@
1
- import * as i0 from '@angular/core';
2
-
1
+ import * as i0 from "@angular/core";
3
2
  /**
4
3
  * Emits when a pointer press lands outside the host element.
5
4
  *
@@ -7,12 +6,11 @@ import * as i0 from '@angular/core';
7
6
  * <div class="menu" (ngxsmkClickOutside)="close()">…</div>
8
7
  * ```
9
8
  */
10
- declare class NgxsmkClickOutside {
9
+ export declare class NgxsmkClickOutside {
11
10
  private readonly host;
12
- readonly ngxsmkClickOutside: i0.OutputEmitterRef<Event>;
11
+ readonly ngxsmkClickOutside: import("@angular/core").OutputEmitterRef<Event>;
13
12
  constructor();
14
13
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxsmkClickOutside, never>;
15
14
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgxsmkClickOutside, "[ngxsmkClickOutside]", never, {}, { "ngxsmkClickOutside": "ngxsmkClickOutside"; }, never, never, true, never>;
16
15
  }
17
-
18
- export { NgxsmkClickOutside };
16
+ //# sourceMappingURL=click-outside.d.ts.map
@@ -0,0 +1 @@
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,2 @@
1
+ export * from './click-outside';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/cdk/click-outside/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngxsmk-cdk-click-outside.d.ts","sourceRoot":"","sources":["../../../../packages/cdk/click-outside/ngxsmk-cdk-click-outside.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,SAAS,CAAC"}
@@ -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
@@ -0,0 +1,38 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { DestroyRef, Directive, ElementRef, inject, output } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Emits when a pointer press lands outside the host element.
6
+ *
7
+ * ```html
8
+ * <div class="menu" (ngxsmkClickOutside)="close()">…</div>
9
+ * ```
10
+ */
11
+ export class NgxsmkClickOutside {
12
+ constructor() {
13
+ this.host = inject(ElementRef);
14
+ this.ngxsmkClickOutside = output();
15
+ const document = inject(DOCUMENT);
16
+ const destroyRef = inject(DestroyRef);
17
+ const onPointerDown = (event) => {
18
+ const target = event.target;
19
+ if (target && !this.host.nativeElement.contains(target)) {
20
+ this.ngxsmkClickOutside.emit(event);
21
+ }
22
+ };
23
+ // Capture phase so stopped propagation inside other widgets can't
24
+ // swallow the outside press.
25
+ document.addEventListener('pointerdown', onPointerDown, true);
26
+ destroyRef.onDestroy(() => document.removeEventListener('pointerdown', onPointerDown, true));
27
+ }
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
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkClickOutside, decorators: [{
32
+ type: Directive,
33
+ args: [{
34
+ standalone: true,
35
+ selector: '[ngxsmkClickOutside]',
36
+ }]
37
+ }], ctorParameters: () => [] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9jbGljay1vdXRzaWRlL2NsaWNrLW91dHNpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVsRjs7Ozs7O0dBTUc7QUFLSCxNQUFNLE9BQU8sa0JBQWtCO0lBSzdCO1FBSmlCLFNBQUksR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRTNELHVCQUFrQixHQUFHLE1BQU0sRUFBUyxDQUFDO1FBRzVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdEMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUNyQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztZQUMzQyxJQUFJLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixrRUFBa0U7UUFDbEUsNkJBQTZCO1FBQzdCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlELFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDOzhHQXBCVSxrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRW1pdHMgd2hlbiBhIHBvaW50ZXIgcHJlc3MgbGFuZHMgb3V0c2lkZSB0aGUgaG9zdCBlbGVtZW50LlxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgY2xhc3M9XCJtZW51XCIgKG5neHNta0NsaWNrT3V0c2lkZSk9XCJjbG9zZSgpXCI+4oCmPC9kaXY+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW25neHNta0NsaWNrT3V0c2lkZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hzbWtDbGlja091dHNpZGUge1xuICBwcml2YXRlIHJlYWRvbmx5IGhvc3QgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gIHJlYWRvbmx5IG5neHNta0NsaWNrT3V0c2lkZSA9IG91dHB1dDxFdmVudD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0IG9uUG9pbnRlckRvd24gPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgICBpZiAodGFyZ2V0ICYmICF0aGlzLmhvc3QubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgIHRoaXMubmd4c21rQ2xpY2tPdXRzaWRlLmVtaXQoZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBDYXB0dXJlIHBoYXNlIHNvIHN0b3BwZWQgcHJvcGFnYXRpb24gaW5zaWRlIG90aGVyIHdpZGdldHMgY2FuJ3RcbiAgICAvLyBzd2FsbG93IHRoZSBvdXRzaWRlIHByZXNzLlxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgb25Qb2ludGVyRG93biwgdHJ1ZSk7XG4gICAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBvblBvaW50ZXJEb3duLCB0cnVlKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './click-outside';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvY2xpY2stb3V0c2lkZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbGljay1vdXRzaWRlJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4c21rLWNkay1jbGljay1vdXRzaWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2NsaWNrLW91dHNpZGUvbmd4c21rLWNkay1jbGljay1vdXRzaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,69 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { DestroyRef, Directive, ElementRef, afterNextRender, booleanAttribute, inject, input, } from '@angular/core';
3
+ import { getFocusable } from '@ngxsmk/cdk/focusable';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Traps Tab/Shift+Tab focus cycling inside the host element while active.
7
+ * With `ngxsmkFocusTrapAutoCapture`, moves focus into the trap on init and
8
+ * restores the previously focused element on destroy.
9
+ */
10
+ export class NgxsmkFocusTrap {
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
+ const previouslyFocused = this.document.activeElement;
23
+ afterNextRender(() => {
24
+ if (this.ngxsmkFocusTrapAutoCapture()) {
25
+ const focusable = getFocusable(this.host.nativeElement);
26
+ (focusable[0] ?? this.host.nativeElement).focus();
27
+ }
28
+ });
29
+ inject(DestroyRef).onDestroy(() => {
30
+ if (this.ngxsmkFocusTrapAutoCapture()) {
31
+ previouslyFocused?.focus?.();
32
+ }
33
+ });
34
+ }
35
+ onKeydown(event) {
36
+ if (event.key !== 'Tab' || !this.ngxsmkFocusTrap()) {
37
+ return;
38
+ }
39
+ const focusable = getFocusable(this.host.nativeElement);
40
+ if (focusable.length === 0) {
41
+ event.preventDefault();
42
+ return;
43
+ }
44
+ const first = focusable[0];
45
+ const last = focusable[focusable.length - 1];
46
+ const active = this.document.activeElement;
47
+ if (event.shiftKey && (active === first || active === this.host.nativeElement)) {
48
+ event.preventDefault();
49
+ last.focus();
50
+ }
51
+ else if (!event.shiftKey && active === last) {
52
+ event.preventDefault();
53
+ first.focus();
54
+ }
55
+ }
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
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkFocusTrap, decorators: [{
60
+ type: Directive,
61
+ args: [{
62
+ standalone: true,
63
+ selector: '[ngxsmkFocusTrap]',
64
+ host: {
65
+ '(keydown)': 'onKeydown($event)',
66
+ },
67
+ }]
68
+ }], ctorParameters: () => [] });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9mb2N1cy10cmFwL2ZvY3VzLXRyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUVyRDs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLGVBQWU7SUFjMUI7UUFiaUIsU0FBSSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDbkQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3Qyx5RUFBeUU7UUFDaEUsb0JBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ3JDLFNBQVMsRUFBRSxDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxNQUFNO1NBQ2xFLENBQUMsQ0FBQztRQUVILHlFQUF5RTtRQUNoRSwrQkFBMEIsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ2pELFNBQVMsRUFBRSxnQkFBZ0I7U0FDNUIsQ0FBQyxDQUFDO1FBR0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQW1DLENBQUM7UUFFNUUsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRSxFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN4RCxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLEVBQUUsQ0FBQztnQkFDdEMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsU0FBUyxDQUFDLEtBQW9CO1FBQ3RDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUNuRCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFFM0MsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQy9FLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDO2FBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzlDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7OEdBcERVLGVBQWU7a0dBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFQM0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNKLFdBQVcsRUFBRSxtQkFBbUI7cUJBQ2pDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgRGVzdHJveVJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBhZnRlck5leHRSZW5kZXIsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbiAgaW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0Rm9jdXNhYmxlIH0gZnJvbSAnQG5neHNtay9jZGsvZm9jdXNhYmxlJztcblxuLyoqXG4gKiBUcmFwcyBUYWIvU2hpZnQrVGFiIGZvY3VzIGN5Y2xpbmcgaW5zaWRlIHRoZSBob3N0IGVsZW1lbnQgd2hpbGUgYWN0aXZlLlxuICogV2l0aCBgbmd4c21rRm9jdXNUcmFwQXV0b0NhcHR1cmVgLCBtb3ZlcyBmb2N1cyBpbnRvIHRoZSB0cmFwIG9uIGluaXQgYW5kXG4gKiByZXN0b3JlcyB0aGUgcHJldmlvdXNseSBmb2N1c2VkIGVsZW1lbnQgb24gZGVzdHJveS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW25neHNta0ZvY3VzVHJhcF0nLFxuICBob3N0OiB7XG4gICAgJyhrZXlkb3duKSc6ICdvbktleWRvd24oJGV2ZW50KScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5neHNta0ZvY3VzVHJhcCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaG9zdCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gIC8qKiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIHRoZSB0cmFwIHdpdGhvdXQgcmVtb3ZpbmcgdGhlIGRpcmVjdGl2ZS4gKi9cbiAgcmVhZG9ubHkgbmd4c21rRm9jdXNUcmFwID0gaW5wdXQodHJ1ZSwge1xuICAgIHRyYW5zZm9ybTogKHY6IHVua25vd24pID0+IHYgPT09ICcnIHx8IHYgPT09IHRydWUgfHwgdiA9PT0gJ3RydWUnLFxuICB9KTtcblxuICAvKiogRm9jdXMgdGhlIGZpcnN0IGZvY3VzYWJsZSBjaGlsZCBvbiBpbml0OyByZXN0b3JlIGZvY3VzIG9uIGRlc3Ryb3kuICovXG4gIHJlYWRvbmx5IG5neHNta0ZvY3VzVHJhcEF1dG9DYXB0dXJlID0gaW5wdXQoZmFsc2UsIHtcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkID0gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5uZ3hzbWtGb2N1c1RyYXBBdXRvQ2FwdHVyZSgpKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZSA9IGdldEZvY3VzYWJsZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIChmb2N1c2FibGVbMF0gPz8gdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm5neHNta0ZvY3VzVHJhcEF1dG9DYXB0dXJlKCkpIHtcbiAgICAgICAgcHJldmlvdXNseUZvY3VzZWQ/LmZvY3VzPy4oKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ICE9PSAnVGFiJyB8fCAhdGhpcy5uZ3hzbWtGb2N1c1RyYXAoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb2N1c2FibGUgPSBnZXRGb2N1c2FibGUodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIGlmIChmb2N1c2FibGUubGVuZ3RoID09PSAwKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0ID0gZm9jdXNhYmxlWzBdO1xuICAgIGNvbnN0IGxhc3QgPSBmb2N1c2FibGVbZm9jdXNhYmxlLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuICAgIGlmIChldmVudC5zaGlmdEtleSAmJiAoYWN0aXZlID09PSBmaXJzdCB8fCBhY3RpdmUgPT09IHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGxhc3QuZm9jdXMoKTtcbiAgICB9IGVsc2UgaWYgKCFldmVudC5zaGlmdEtleSAmJiBhY3RpdmUgPT09IGxhc3QpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBmaXJzdC5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './focus-trap';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvZm9jdXMtdHJhcC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9jdXMtdHJhcCc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4c21rLWNkay1mb2N1cy10cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2ZvY3VzLXRyYXAvbmd4c21rLWNkay1mb2N1cy10cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,15 @@
1
+ /** Selector matching elements that can receive keyboard focus. */
2
+ export const FOCUSABLE_SELECTOR = [
3
+ 'a[href]',
4
+ 'button:not([disabled])',
5
+ 'input:not([disabled]):not([type="hidden"])',
6
+ 'select:not([disabled])',
7
+ 'textarea:not([disabled])',
8
+ '[tabindex]:not([tabindex="-1"])',
9
+ '[contenteditable="true"]',
10
+ ].join(', ');
11
+ /** All keyboard-focusable elements inside `container`, in DOM order. */
12
+ export function getFocusable(container) {
13
+ return Array.from(container.querySelectorAll(FOCUSABLE_SELECTOR)).filter((el) => el.offsetParent !== null || el === el.ownerDocument.activeElement);
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2ZvY3VzYWJsZS9mb2N1c2FibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0VBQWtFO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLFNBQVM7SUFDVCx3QkFBd0I7SUFDeEIsNENBQTRDO0lBQzVDLHdCQUF3QjtJQUN4QiwwQkFBMEI7SUFDMUIsaUNBQWlDO0lBQ2pDLDBCQUEwQjtDQUMzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUViLHdFQUF3RTtBQUN4RSxNQUFNLFVBQVUsWUFBWSxDQUFDLFNBQXNCO0lBQ2pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQWMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDbkYsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FDMUUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogU2VsZWN0b3IgbWF0Y2hpbmcgZWxlbWVudHMgdGhhdCBjYW4gcmVjZWl2ZSBrZXlib2FyZCBmb2N1cy4gKi9cbmV4cG9ydCBjb25zdCBGT0NVU0FCTEVfU0VMRUNUT1IgPSBbXG4gICdhW2hyZWZdJyxcbiAgJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSknLFxuICAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdHlwZT1cImhpZGRlblwiXSknLFxuICAnc2VsZWN0Om5vdChbZGlzYWJsZWRdKScsXG4gICd0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSknLFxuICAnW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PVwiLTFcIl0pJyxcbiAgJ1tjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJdJyxcbl0uam9pbignLCAnKTtcblxuLyoqIEFsbCBrZXlib2FyZC1mb2N1c2FibGUgZWxlbWVudHMgaW5zaWRlIGBjb250YWluZXJgLCBpbiBET00gb3JkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9jdXNhYmxlKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KEZPQ1VTQUJMRV9TRUxFQ1RPUikpLmZpbHRlcihcbiAgICAoZWwpID0+IGVsLm9mZnNldFBhcmVudCAhPT0gbnVsbCB8fCBlbCA9PT0gZWwub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50LFxuICApO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './focusable';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvZm9jdXNhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4c21rLWNkay1mb2N1c2FibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvZm9jdXNhYmxlL25neHNtay1jZGstZm9jdXNhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -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
@@ -0,0 +1,2 @@
1
+ export * from './live-announcer';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvbGl2ZS1hbm5vdW5jZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGl2ZS1hbm5vdW5jZXInO1xuIl19
@@ -0,0 +1,59 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Announces messages to screen readers through a visually hidden
6
+ * `aria-live` region appended to the document body.
7
+ */
8
+ export class NgxsmkLiveAnnouncer {
9
+ constructor() {
10
+ this.document = inject(DOCUMENT);
11
+ this.region = null;
12
+ this.clearTimer = null;
13
+ }
14
+ announce(message, politeness = 'polite') {
15
+ const region = this.ensureRegion();
16
+ region.setAttribute('aria-live', politeness);
17
+ // Clear first so repeating the same message is re-announced.
18
+ region.textContent = '';
19
+ setTimeout(() => (region.textContent = message));
20
+ if (this.clearTimer) {
21
+ clearTimeout(this.clearTimer);
22
+ }
23
+ this.clearTimer = setTimeout(() => (region.textContent = ''), 10_000);
24
+ }
25
+ ngOnDestroy() {
26
+ if (this.clearTimer) {
27
+ clearTimeout(this.clearTimer);
28
+ }
29
+ this.region?.remove();
30
+ }
31
+ ensureRegion() {
32
+ if (!this.region) {
33
+ const region = this.document.createElement('div');
34
+ region.setAttribute('aria-atomic', 'true');
35
+ region.className = 'ngxsmk-live-announcer';
36
+ Object.assign(region.style, {
37
+ position: 'absolute',
38
+ width: '1px',
39
+ height: '1px',
40
+ margin: '-1px',
41
+ padding: '0',
42
+ border: '0',
43
+ overflow: 'hidden',
44
+ clipPath: 'inset(100%)',
45
+ whiteSpace: 'nowrap',
46
+ });
47
+ this.document.body.appendChild(region);
48
+ this.region = region;
49
+ }
50
+ return this.region;
51
+ }
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' }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NgxsmkLiveAnnouncer, decorators: [{
56
+ type: Injectable,
57
+ args: [{ providedIn: 'root' }]
58
+ }] });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS1hbm5vdW5jZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvbGl2ZS1hbm5vdW5jZXIvbGl2ZS1hbm5vdW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUkzQzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRW1CLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsV0FBTSxHQUF1QixJQUFJLENBQUM7UUFDbEMsZUFBVSxHQUF5QyxJQUFJLENBQUM7S0E0Q2pFO0lBMUNDLFFBQVEsQ0FBQyxPQUFlLEVBQUUsYUFBa0MsUUFBUTtRQUNsRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFN0MsNkRBQTZEO1FBQzdELE1BQU0sQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUVqRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQztZQUMzQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQzFCLFFBQVEsRUFBRSxVQUFVO2dCQUNwQixLQUFLLEVBQUUsS0FBSztnQkFDWixNQUFNLEVBQUUsS0FBSztnQkFDYixNQUFNLEVBQUUsTUFBTTtnQkFDZCxPQUFPLEVBQUUsR0FBRztnQkFDWixNQUFNLEVBQUUsR0FBRztnQkFDWCxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLFVBQVUsRUFBRSxRQUFRO2FBQ3JCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7OEdBOUNVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRE4sTUFBTTs7MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgdHlwZSBBbm5vdW5jZXJQb2xpdGVuZXNzID0gJ3BvbGl0ZScgfCAnYXNzZXJ0aXZlJztcblxuLyoqXG4gKiBBbm5vdW5jZXMgbWVzc2FnZXMgdG8gc2NyZWVuIHJlYWRlcnMgdGhyb3VnaCBhIHZpc3VhbGx5IGhpZGRlblxuICogYGFyaWEtbGl2ZWAgcmVnaW9uIGFwcGVuZGVkIHRvIHRoZSBkb2N1bWVudCBib2R5LlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neHNta0xpdmVBbm5vdW5jZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSByZWdpb246IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2xlYXJUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcblxuICBhbm5vdW5jZShtZXNzYWdlOiBzdHJpbmcsIHBvbGl0ZW5lc3M6IEFubm91bmNlclBvbGl0ZW5lc3MgPSAncG9saXRlJyk6IHZvaWQge1xuICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMuZW5zdXJlUmVnaW9uKCk7XG4gICAgcmVnaW9uLnNldEF0dHJpYnV0ZSgnYXJpYS1saXZlJywgcG9saXRlbmVzcyk7XG5cbiAgICAvLyBDbGVhciBmaXJzdCBzbyByZXBlYXRpbmcgdGhlIHNhbWUgbWVzc2FnZSBpcyByZS1hbm5vdW5jZWQuXG4gICAgcmVnaW9uLnRleHRDb250ZW50ID0gJyc7XG4gICAgc2V0VGltZW91dCgoKSA9PiAocmVnaW9uLnRleHRDb250ZW50ID0gbWVzc2FnZSkpO1xuXG4gICAgaWYgKHRoaXMuY2xlYXJUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xlYXJUaW1lcik7XG4gICAgfVxuICAgIHRoaXMuY2xlYXJUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gKHJlZ2lvbi50ZXh0Q29udGVudCA9ICcnKSwgMTBfMDAwKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNsZWFyVGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsZWFyVGltZXIpO1xuICAgIH1cbiAgICB0aGlzLnJlZ2lvbj8ucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZVJlZ2lvbigpOiBIVE1MRWxlbWVudCB7XG4gICAgaWYgKCF0aGlzLnJlZ2lvbikge1xuICAgICAgY29uc3QgcmVnaW9uID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHJlZ2lvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtYXRvbWljJywgJ3RydWUnKTtcbiAgICAgIHJlZ2lvbi5jbGFzc05hbWUgPSAnbmd4c21rLWxpdmUtYW5ub3VuY2VyJztcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVnaW9uLnN0eWxlLCB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICB3aWR0aDogJzFweCcsXG4gICAgICAgIGhlaWdodDogJzFweCcsXG4gICAgICAgIG1hcmdpbjogJy0xcHgnLFxuICAgICAgICBwYWRkaW5nOiAnMCcsXG4gICAgICAgIGJvcmRlcjogJzAnLFxuICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgIGNsaXBQYXRoOiAnaW5zZXQoMTAwJSknLFxuICAgICAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlZ2lvbik7XG4gICAgICB0aGlzLnJlZ2lvbiA9IHJlZ2lvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVnaW9uO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4c21rLWNkay1saXZlLWFubm91bmNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9saXZlLWFubm91bmNlci9uZ3hzbWstY2RrLWxpdmUtYW5ub3VuY2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './media-query';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvbWVkaWEtcXVlcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21lZGlhLXF1ZXJ5JztcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { DestroyRef, inject, signal } from '@angular/core';
3
+ /**
4
+ * Reactive media query. Must be called in an injection context.
5
+ *
6
+ * ```ts
7
+ * private readonly isMobile = injectMediaQuery('(max-width: 767px)');
8
+ * ```
9
+ */
10
+ export function injectMediaQuery(query) {
11
+ const window = inject(DOCUMENT).defaultView;
12
+ const matches = signal(false);
13
+ const media = window?.matchMedia?.(query);
14
+ if (media) {
15
+ matches.set(media.matches);
16
+ const listener = (event) => matches.set(event.matches);
17
+ media.addEventListener('change', listener);
18
+ inject(DestroyRef).onDestroy(() => media.removeEventListener('change', listener));
19
+ }
20
+ return matches.asReadonly();
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtcXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvbWVkaWEtcXVlcnkvbWVkaWEtcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBYTtJQUM1QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQzVDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QixNQUFNLEtBQUssR0FBRyxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBMEIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERlc3Ryb3lSZWYsIFNpZ25hbCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZWFjdGl2ZSBtZWRpYSBxdWVyeS4gTXVzdCBiZSBjYWxsZWQgaW4gYW4gaW5qZWN0aW9uIGNvbnRleHQuXG4gKlxuICogYGBgdHNcbiAqIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbmplY3RNZWRpYVF1ZXJ5KCcobWF4LXdpZHRoOiA3NjdweCknKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0TWVkaWFRdWVyeShxdWVyeTogc3RyaW5nKTogU2lnbmFsPGJvb2xlYW4+IHtcbiAgY29uc3Qgd2luZG93ID0gaW5qZWN0KERPQ1VNRU5UKS5kZWZhdWx0VmlldztcbiAgY29uc3QgbWF0Y2hlcyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgY29uc3QgbWVkaWEgPSB3aW5kb3c/Lm1hdGNoTWVkaWE/LihxdWVyeSk7XG4gIGlmIChtZWRpYSkge1xuICAgIG1hdGNoZXMuc2V0KG1lZGlhLm1hdGNoZXMpO1xuICAgIGNvbnN0IGxpc3RlbmVyID0gKGV2ZW50OiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiBtYXRjaGVzLnNldChldmVudC5tYXRjaGVzKTtcbiAgICBtZWRpYS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBsaXN0ZW5lcik7XG4gICAgaW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiBtZWRpYS5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBsaXN0ZW5lcikpO1xuICB9XG5cbiAgcmV0dXJuIG1hdGNoZXMuYXNSZWFkb25seSgpO1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4c21rLWNkay1tZWRpYS1xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9tZWRpYS1xdWVyeS9uZ3hzbWstY2RrLW1lZGlhLXF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4c21rLWNkay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9uZ3hzbWstY2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,15 @@
1
+ /*
2
+ * Public API Surface of @ngxsmk/cdk
3
+ */
4
+ export * from '@ngxsmk/cdk/click-outside';
5
+ export * from '@ngxsmk/cdk/focusable';
6
+ export * from '@ngxsmk/cdk/focus-trap';
7
+ export * from '@ngxsmk/cdk/live-announcer';
8
+ export * from '@ngxsmk/cdk/media-query';
9
+ export * from '@ngxsmk/cdk/scroll-lock';
10
+ export * from '@ngxsmk/cdk/visually-hidden';
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