@radix-ng/primitives 0.13.0 → 0.15.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 (99) hide show
  1. package/alert-dialog/index.d.ts +11 -0
  2. package/alert-dialog/src/alert-dialog-cancel.directive.d.ts +3 -3
  3. package/alert-dialog/src/alert-dialog-content.directive.d.ts +3 -3
  4. package/alert-dialog/src/alert-dialog-root.directive.d.ts +3 -3
  5. package/alert-dialog/src/alert-dialog-title.directive.d.ts +3 -3
  6. package/alert-dialog/src/alert-dialog-trigger.directive.d.ts +3 -3
  7. package/alert-dialog/src/alert-dialog.service.d.ts +3 -3
  8. package/aspect-ratio/README.md +1 -0
  9. package/aspect-ratio/index.d.ts +1 -0
  10. package/aspect-ratio/src/aspect-ratio.directive.d.ts +28 -0
  11. package/avatar/src/avatar-fallback.directive.d.ts +2 -1
  12. package/compodoc/documentation.json +1306 -805
  13. package/core/index.d.ts +6 -0
  14. package/core/src/accessor/provide-value-accessor.d.ts +12 -0
  15. package/core/src/auto-focus.directive.d.ts +14 -0
  16. package/core/src/document.d.ts +1 -0
  17. package/core/src/inject-ng-control.d.ts +8 -0
  18. package/core/src/is-client.d.ts +1 -0
  19. package/core/src/window.d.ts +3 -0
  20. package/esm2022/accordion/src/accordion-root.directive.mjs +14 -2
  21. package/esm2022/alert-dialog/index.mjs +35 -1
  22. package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +7 -7
  23. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +7 -7
  24. package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +7 -7
  25. package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +5 -5
  26. package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +7 -7
  27. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +5 -5
  28. package/esm2022/aspect-ratio/index.mjs +2 -0
  29. package/esm2022/aspect-ratio/radix-ng-primitives-aspect-ratio.mjs +5 -0
  30. package/esm2022/aspect-ratio/src/aspect-ratio.directive.mjs +53 -0
  31. package/esm2022/avatar/src/avatar-fallback.directive.mjs +9 -7
  32. package/esm2022/core/index.mjs +7 -0
  33. package/esm2022/core/radix-ng-primitives-core.mjs +5 -0
  34. package/esm2022/core/src/accessor/provide-value-accessor.mjs +19 -0
  35. package/esm2022/core/src/auto-focus.directive.mjs +80 -0
  36. package/esm2022/core/src/document.mjs +6 -0
  37. package/esm2022/core/src/inject-ng-control.mjs +17 -0
  38. package/esm2022/core/src/is-client.mjs +6 -0
  39. package/esm2022/core/src/window.mjs +15 -0
  40. package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +5 -3
  41. package/esm2022/radio/src/radio-root.directive.mjs +6 -6
  42. package/esm2022/separator/src/separator.directive.mjs +33 -15
  43. package/esm2022/switch/src/switch-root.directive.mjs +19 -39
  44. package/esm2022/toggle/src/toggle.directive.mjs +21 -11
  45. package/esm2022/toggle-group/index.mjs +4 -4
  46. package/esm2022/toggle-group/src/toggle-group-item.directive.mjs +84 -0
  47. package/esm2022/toggle-group/src/toggle-group-item.token.mjs +3 -0
  48. package/esm2022/toggle-group/src/toggle-group-multiple.directive.mjs +185 -0
  49. package/esm2022/toggle-group/src/toggle-group.directive.mjs +51 -6
  50. package/esm2022/toggle-group/src/toggle-group.token.mjs +1 -1
  51. package/esm2022/visually-hidden/index.mjs +4 -0
  52. package/esm2022/visually-hidden/radix-ng-primitives-visually-hidden.mjs +5 -0
  53. package/esm2022/visually-hidden/src/visually-hidden-input-bubble.directive.mjs +74 -0
  54. package/esm2022/visually-hidden/src/visually-hidden-input.directive.mjs +74 -0
  55. package/esm2022/visually-hidden/src/visually-hidden.directive.mjs +42 -0
  56. package/fesm2022/radix-ng-primitives-accordion.mjs +13 -1
  57. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +59 -31
  59. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +60 -0
  61. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -0
  62. package/fesm2022/radix-ng-primitives-avatar.mjs +7 -5
  63. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-core.mjs +144 -0
  65. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -0
  66. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +4 -2
  67. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-radio.mjs +5 -5
  69. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-separator.mjs +32 -14
  71. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-switch.mjs +18 -38
  73. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-toggle-group.mjs +127 -35
  75. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-toggle.mjs +20 -10
  77. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +189 -0
  79. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -0
  80. package/package.json +19 -1
  81. package/radio/src/radio-root.directive.d.ts +2 -2
  82. package/separator/src/separator.directive.d.ts +29 -5
  83. package/switch/src/switch-root.directive.d.ts +12 -24
  84. package/toggle/src/toggle.directive.d.ts +24 -7
  85. package/toggle-group/index.d.ts +3 -3
  86. package/toggle-group/src/{toggle-group-button.directive.d.ts → toggle-group-item.directive.d.ts} +10 -4
  87. package/toggle-group/src/toggle-group-item.token.d.ts +3 -0
  88. package/toggle-group/src/{toggle-group-multi.directive.d.ts → toggle-group-multiple.directive.d.ts} +11 -5
  89. package/toggle-group/src/toggle-group.directive.d.ts +9 -3
  90. package/toggle-group/src/toggle-group.token.d.ts +3 -3
  91. package/visually-hidden/README.md +3 -0
  92. package/visually-hidden/index.d.ts +3 -0
  93. package/visually-hidden/src/visually-hidden-input-bubble.directive.d.ts +21 -0
  94. package/visually-hidden/src/visually-hidden-input.directive.d.ts +19 -0
  95. package/visually-hidden/src/visually-hidden.directive.d.ts +15 -0
  96. package/esm2022/toggle-group/src/toggle-group-button.directive.mjs +0 -75
  97. package/esm2022/toggle-group/src/toggle-group-button.token.mjs +0 -6
  98. package/esm2022/toggle-group/src/toggle-group-multi.directive.mjs +0 -143
  99. package/toggle-group/src/toggle-group-button.token.d.ts +0 -4
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy1jb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9jb3JlL3JhZGl4LW5nLXByaW1pdGl2ZXMtY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
2
+ /**
3
+ * Include in the providers section of a component which utilizes ControlValueAccessor to redundant code.
4
+ *
5
+ * ```ts
6
+ * @Directive({
7
+ * providers: [provideValueAccessor(ExampleDirective)]
8
+ *}
9
+ * export class ExampleDirective{}
10
+ * ```
11
+ */
12
+ export function provideValueAccessor(type) {
13
+ return {
14
+ provide: NG_VALUE_ACCESSOR,
15
+ useExisting: type,
16
+ multi: true
17
+ };
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvY29yZS9zcmMvYWNjZXNzb3IvcHJvdmlkZS12YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBaUI7SUFDbEQsT0FBTztRQUNILE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsV0FBVyxFQUFFLElBQUk7UUFDakIsS0FBSyxFQUFFLElBQUk7S0FDZCxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyoqXG4gKiBJbmNsdWRlIGluIHRoZSBwcm92aWRlcnMgc2VjdGlvbiBvZiBhIGNvbXBvbmVudCB3aGljaCB1dGlsaXplcyBDb250cm9sVmFsdWVBY2Nlc3NvciB0byByZWR1bmRhbnQgY29kZS5cbiAqXG4gKiBgYGB0c1xuICogQERpcmVjdGl2ZSh7XG4gKiAgIHByb3ZpZGVyczogW3Byb3ZpZGVWYWx1ZUFjY2Vzc29yKEV4YW1wbGVEaXJlY3RpdmUpXVxuICp9XG4gKiBleHBvcnQgY2xhc3MgRXhhbXBsZURpcmVjdGl2ZXt9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVWYWx1ZUFjY2Vzc29yKHR5cGU6IFR5cGU8bmV2ZXI+KTogUHJvdmlkZXIge1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICB1c2VFeGlzdGluZzogdHlwZSxcbiAgICAgICAgbXVsdGk6IHRydWVcbiAgICB9O1xufVxuIl19
@@ -0,0 +1,80 @@
1
+ import { booleanAttribute, Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /*
4
+ * <div [rdxAutoFocus]="true"></div>
5
+ */
6
+ export class RdxAutoFocusDirective {
7
+ constructor() {
8
+ this.#elementRef = inject(ElementRef);
9
+ this.#ngZone = inject(NgZone);
10
+ this._autoSelect = false;
11
+ }
12
+ #elementRef;
13
+ #ngZone;
14
+ /**
15
+ * @default false
16
+ */
17
+ set autoFocus(value) {
18
+ if (value) {
19
+ // Note: Running this outside Angular's zone because `element.focus()` does not trigger change detection.
20
+ this.#ngZone.runOutsideAngular(() =>
21
+ // Note: `element.focus()` causes re-layout which might lead to frame drops on slower devices.
22
+ // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#setting-focus
23
+ // `setTimeout` is a macrotask executed within the current rendering frame.
24
+ // Animation tasks are executed in the next rendering frame.
25
+ reqAnimationFrame(() => {
26
+ this.#elementRef.nativeElement.focus();
27
+ if (this._autoSelect && this.#elementRef.nativeElement.select) {
28
+ this.#elementRef.nativeElement.select();
29
+ }
30
+ }));
31
+ }
32
+ }
33
+ // Setter for autoSelect attribute to enable text selection when autoFocus is true.
34
+ set autoSelect(value) {
35
+ this._autoSelect = value;
36
+ }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxAutoFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
38
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.1", type: RdxAutoFocusDirective, isStandalone: true, selector: "[rdxAutoFocus]", inputs: { autoFocus: ["rdxAutoFocus", "autoFocus", booleanAttribute], autoSelect: ["autoSelect", "autoSelect", booleanAttribute] }, ngImport: i0 }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxAutoFocusDirective, decorators: [{
41
+ type: Directive,
42
+ args: [{
43
+ selector: '[rdxAutoFocus]',
44
+ standalone: true
45
+ }]
46
+ }], propDecorators: { autoFocus: [{
47
+ type: Input,
48
+ args: [{ alias: 'rdxAutoFocus', transform: booleanAttribute }]
49
+ }], autoSelect: [{
50
+ type: Input,
51
+ args: [{ transform: booleanAttribute }]
52
+ }] } });
53
+ const availablePrefixes = ['moz', 'ms', 'webkit'];
54
+ function requestAnimationFramePolyfill() {
55
+ let lastTime = 0;
56
+ return function (callback) {
57
+ const currTime = new Date().getTime();
58
+ const timeToCall = Math.max(0, 16 - (currTime - lastTime));
59
+ const id = setTimeout(() => {
60
+ callback(currTime + timeToCall);
61
+ }, timeToCall);
62
+ lastTime = currTime + timeToCall;
63
+ return id;
64
+ };
65
+ }
66
+ // Function to get the appropriate requestAnimationFrame method with fallback to polyfill.
67
+ function getRequestAnimationFrame() {
68
+ if (typeof window === 'undefined') {
69
+ return () => 0;
70
+ }
71
+ if (window.requestAnimationFrame) {
72
+ // https://github.com/vuejs/vue/issues/4465
73
+ return window.requestAnimationFrame.bind(window);
74
+ }
75
+ const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];
76
+ return prefix ? window[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();
77
+ }
78
+ // Get the requestAnimationFrame function or its polyfill.
79
+ const reqAnimationFrame = getRequestAnimationFrame();
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1mb2N1cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NvcmUvc3JjL2F1dG8tZm9jdXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUvRjs7R0FFRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUFKbEM7UUFLSSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxZQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0tBNkIvQjtJQWhDRyxXQUFXLENBQXNCO0lBQ2pDLE9BQU8sQ0FBa0I7SUFJekI7O09BRUc7SUFDSCxJQUNJLFNBQVMsQ0FBQyxLQUFjO1FBQ3hCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUix5R0FBeUc7WUFDekcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsOEZBQThGO1lBQzlGLHVFQUF1RTtZQUN2RSwyRUFBMkU7WUFDM0UsNERBQTREO1lBQzVELGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDNUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzVDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7SUFFRCxtRkFBbUY7SUFDbkYsSUFDSSxVQUFVLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDOzhHQWhDUSxxQkFBcUI7a0dBQXJCLHFCQUFxQixxR0FTYSxnQkFBZ0IsNENBb0J2QyxnQkFBZ0I7OzJGQTdCM0IscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFXTyxTQUFTO3NCQURaLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFxQnpELFVBQVU7c0JBRGIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs7QUFNMUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFbEQsU0FBUyw2QkFBNkI7SUFDbEMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRWpCLE9BQU8sVUFBVSxRQUE4QjtRQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTNELE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsUUFBUSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBQztRQUNwQyxDQUFDLEVBQUUsVUFBVSxDQUFRLENBQUM7UUFFdEIsUUFBUSxHQUFHLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFFakMsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsMEZBQTBGO0FBQzFGLFNBQVMsd0JBQXdCO0lBQzdCLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDaEMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDL0IsMkNBQTJDO1FBQzNDLE9BQU8sTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsdUJBQXVCLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFN0YsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFFLE1BQWMsQ0FBQyxHQUFHLE1BQU0sdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztBQUN4RyxDQUFDO0FBRUQsMERBQTBEO0FBQzFELE1BQU0saUJBQWlCLEdBQUcsd0JBQXdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qXG4gKiA8ZGl2IFtyZHhBdXRvRm9jdXNdPVwidHJ1ZVwiPjwvZGl2PlxuICovXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeEF1dG9Gb2N1c10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUmR4QXV0b0ZvY3VzRGlyZWN0aXZlIHtcbiAgICAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICAjbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICBwcml2YXRlIF9hdXRvU2VsZWN0ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAncmR4QXV0b0ZvY3VzJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IGF1dG9Gb2N1cyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIC8vIE5vdGU6IFJ1bm5pbmcgdGhpcyBvdXRzaWRlIEFuZ3VsYXIncyB6b25lIGJlY2F1c2UgYGVsZW1lbnQuZm9jdXMoKWAgZG9lcyBub3QgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgICAgICAgdGhpcy4jbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICAgICAgLy8gTm90ZTogYGVsZW1lbnQuZm9jdXMoKWAgY2F1c2VzIHJlLWxheW91dCB3aGljaCBtaWdodCBsZWFkIHRvIGZyYW1lIGRyb3BzIG9uIHNsb3dlciBkZXZpY2VzLlxuICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3BhdWxpcmlzaC81ZDUyZmIwODFiMzU3MGM4MWUzYSNzZXR0aW5nLWZvY3VzXG4gICAgICAgICAgICAgICAgLy8gYHNldFRpbWVvdXRgIGlzIGEgbWFjcm90YXNrIGV4ZWN1dGVkIHdpdGhpbiB0aGUgY3VycmVudCByZW5kZXJpbmcgZnJhbWUuXG4gICAgICAgICAgICAgICAgLy8gQW5pbWF0aW9uIHRhc2tzIGFyZSBleGVjdXRlZCBpbiB0aGUgbmV4dCByZW5kZXJpbmcgZnJhbWUuXG4gICAgICAgICAgICAgICAgcmVxQW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2F1dG9TZWxlY3QgJiYgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNlbGVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXR0ZXIgZm9yIGF1dG9TZWxlY3QgYXR0cmlidXRlIHRvIGVuYWJsZSB0ZXh0IHNlbGVjdGlvbiB3aGVuIGF1dG9Gb2N1cyBpcyB0cnVlLlxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCBhdXRvU2VsZWN0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2F1dG9TZWxlY3QgPSB2YWx1ZTtcbiAgICB9XG59XG5cbmNvbnN0IGF2YWlsYWJsZVByZWZpeGVzID0gWydtb3onLCAnbXMnLCAnd2Via2l0J107XG5cbmZ1bmN0aW9uIHJlcXVlc3RBbmltYXRpb25GcmFtZVBvbHlmaWxsKCk6IHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUge1xuICAgIGxldCBsYXN0VGltZSA9IDA7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gKGNhbGxiYWNrOiBGcmFtZVJlcXVlc3RDYWxsYmFjayk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGN1cnJUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgIGNvbnN0IHRpbWVUb0NhbGwgPSBNYXRoLm1heCgwLCAxNiAtIChjdXJyVGltZSAtIGxhc3RUaW1lKSk7XG5cbiAgICAgICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNhbGxiYWNrKGN1cnJUaW1lICsgdGltZVRvQ2FsbCk7XG4gICAgICAgIH0sIHRpbWVUb0NhbGwpIGFzIGFueTtcblxuICAgICAgICBsYXN0VGltZSA9IGN1cnJUaW1lICsgdGltZVRvQ2FsbDtcblxuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfTtcbn1cblxuLy8gRnVuY3Rpb24gdG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgbWV0aG9kIHdpdGggZmFsbGJhY2sgdG8gcG9seWZpbGwuXG5mdW5jdGlvbiBnZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKTogdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiAoKSA9PiAwO1xuICAgIH1cbiAgICBpZiAod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSkge1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdnVlanMvdnVlL2lzc3Vlcy80NDY1XG4gICAgICAgIHJldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmVmaXggPSBhdmFpbGFibGVQcmVmaXhlcy5maWx0ZXIoKGtleSkgPT4gYCR7a2V5fVJlcXVlc3RBbmltYXRpb25GcmFtZWAgaW4gd2luZG93KVswXTtcblxuICAgIHJldHVybiBwcmVmaXggPyAod2luZG93IGFzIGFueSlbYCR7cHJlZml4fVJlcXVlc3RBbmltYXRpb25GcmFtZWBdIDogcmVxdWVzdEFuaW1hdGlvbkZyYW1lUG9seWZpbGwoKTtcbn1cblxuLy8gR2V0IHRoZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgZnVuY3Rpb24gb3IgaXRzIHBvbHlmaWxsLlxuY29uc3QgcmVxQW5pbWF0aW9uRnJhbWUgPSBnZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKTtcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { inject } from '@angular/core';
3
+ export function injectDocument() {
4
+ return inject(DOCUMENT);
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NvcmUvc3JjL2RvY3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE1BQU0sVUFBVSxjQUFjO0lBQzFCLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdERvY3VtZW50KCk6IERvY3VtZW50IHtcbiAgICByZXR1cm4gaW5qZWN0KERPQ1VNRU5UKTtcbn1cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { inject } from '@angular/core';
2
+ import { FormControlDirective, FormControlName, NgControl, NgModel } from '@angular/forms';
3
+ export function injectNgControl(params) {
4
+ const ngControl = inject(NgControl, { self: true, optional: true });
5
+ if (!params?.optional && !ngControl)
6
+ throw new Error('NgControl not found');
7
+ if (ngControl instanceof FormControlDirective ||
8
+ ngControl instanceof FormControlName ||
9
+ ngControl instanceof NgModel) {
10
+ return ngControl;
11
+ }
12
+ if (params?.optional) {
13
+ return undefined;
14
+ }
15
+ throw new Error('NgControl is not an instance of FormControlDirective, FormControlName or NgModel');
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LW5nLWNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NvcmUvc3JjL2luamVjdC1uZy1jb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRM0YsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFpRDtJQUM3RSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVwRSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsSUFBSSxDQUFDLFNBQVM7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFNUUsSUFDSSxTQUFTLFlBQVksb0JBQW9CO1FBQ3pDLFNBQVMsWUFBWSxlQUFlO1FBQ3BDLFNBQVMsWUFBWSxPQUFPLEVBQzlCLENBQUM7UUFDQyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDbkIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsa0ZBQWtGLENBQUMsQ0FBQztBQUN4RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbERpcmVjdGl2ZSwgRm9ybUNvbnRyb2xOYW1lLCBOZ0NvbnRyb2wsIE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ0NvbnRyb2wocGFyYW1zOiB7XG4gICAgb3B0aW9uYWw6IHRydWU7XG59KTogRm9ybUNvbnRyb2xEaXJlY3RpdmUgfCBGb3JtQ29udHJvbE5hbWUgfCBOZ01vZGVsIHwgdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5nQ29udHJvbChwYXJhbXM6IHsgb3B0aW9uYWw6IGZhbHNlIH0pOiBGb3JtQ29udHJvbERpcmVjdGl2ZSB8IEZvcm1Db250cm9sTmFtZSB8IE5nTW9kZWw7XG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0TmdDb250cm9sKCk6IEZvcm1Db250cm9sRGlyZWN0aXZlIHwgRm9ybUNvbnRyb2xOYW1lIHwgTmdNb2RlbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5nQ29udHJvbChwYXJhbXM/OiB7IG9wdGlvbmFsOiB0cnVlIH0gfCB7IG9wdGlvbmFsOiBmYWxzZSB9KSB7XG4gICAgY29uc3QgbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwgeyBzZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIGlmICghcGFyYW1zPy5vcHRpb25hbCAmJiAhbmdDb250cm9sKSB0aHJvdyBuZXcgRXJyb3IoJ05nQ29udHJvbCBub3QgZm91bmQnKTtcblxuICAgIGlmIChcbiAgICAgICAgbmdDb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xEaXJlY3RpdmUgfHxcbiAgICAgICAgbmdDb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xOYW1lIHx8XG4gICAgICAgIG5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWxcbiAgICApIHtcbiAgICAgICAgcmV0dXJuIG5nQ29udHJvbDtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zPy5vcHRpb25hbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignTmdDb250cm9sIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBGb3JtQ29udHJvbERpcmVjdGl2ZSwgRm9ybUNvbnRyb2xOYW1lIG9yIE5nTW9kZWwnKTtcbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { Platform } from '@angular/cdk/platform';
2
+ import { inject } from '@angular/core';
3
+ export function injectIsClient() {
4
+ return inject(Platform).isBrowser;
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9jb3JlL3NyYy9pcy1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsTUFBTSxVQUFVLGNBQWM7SUFDMUIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdElzQ2xpZW50KCkge1xuICAgIHJldHVybiBpbmplY3QoUGxhdGZvcm0pLmlzQnJvd3Nlcjtcbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { inject, InjectionToken } from '@angular/core';
2
+ import { injectDocument } from './document';
3
+ export const WINDOW = new InjectionToken('An abstraction over global window object', {
4
+ factory: () => {
5
+ const { defaultView } = injectDocument();
6
+ if (!defaultView) {
7
+ throw new Error('Window is not available');
8
+ }
9
+ return defaultView;
10
+ }
11
+ });
12
+ export function injectWindow() {
13
+ return inject(WINDOW);
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9jb3JlL3NyYy93aW5kb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQTZCLDBDQUEwQyxFQUFFO0lBQzdHLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDVixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBRUgsTUFBTSxVQUFVLFlBQVk7SUFDeEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdERvY3VtZW50IH0gZnJvbSAnLi9kb2N1bWVudCc7XG5cbmV4cG9ydCBjb25zdCBXSU5ET1cgPSBuZXcgSW5qZWN0aW9uVG9rZW48V2luZG93ICYgdHlwZW9mIGdsb2JhbFRoaXM+KCdBbiBhYnN0cmFjdGlvbiBvdmVyIGdsb2JhbCB3aW5kb3cgb2JqZWN0Jywge1xuICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgeyBkZWZhdWx0VmlldyB9ID0gaW5qZWN0RG9jdW1lbnQoKTtcbiAgICAgICAgaWYgKCFkZWZhdWx0Vmlldykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdXaW5kb3cgaXMgbm90IGF2YWlsYWJsZScpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWZhdWx0VmlldztcbiAgICB9XG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFdpbmRvdygpOiBXaW5kb3cgJiB0eXBlb2YgZ2xvYmFsVGhpcyB7XG4gICAgcmV0dXJuIGluamVjdChXSU5ET1cpO1xufVxuIl19
@@ -19,8 +19,10 @@ export class RdxDropdownMenuItemDirective extends CdkMenuItem {
19
19
  this.triggered.subscribe(this.onSelect);
20
20
  }
21
21
  onPointerMove() {
22
- this.nativeElement.focus({ preventScroll: true });
23
- this.menu.updateActiveItem(this);
22
+ if (!this.highlighted) {
23
+ this.nativeElement.focus({ preventScroll: true });
24
+ this.menu.updateActiveItem(this);
25
+ }
24
26
  }
25
27
  onKeydown(event) {
26
28
  if (this.nativeElement.tagName !== 'BUTTON' && ['Enter', ' '].includes(event.key)) {
@@ -68,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
68
70
  }], onSelect: [{
69
71
  type: Output
70
72
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvZHJvcGRvd24tbWVudS9zcmMvZHJvcGRvd24tbWVudS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFxQnBGLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxXQUFXO0lBVXpEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFWTyxTQUFJLEdBQUcsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDL0Msa0JBQWEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBRXBFLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRTZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFeEQsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFLbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqRSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDN0IsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFUyxhQUFhO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRVMsU0FBUyxDQUFDLEtBQW9CO1FBQ3BDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoRixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDM0IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzVCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7OEdBdkNRLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHNHQU1qQixnQkFBZ0Isa2FBWHpCO1lBQ1AsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSw0QkFBNEIsRUFBRTtZQUNuRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFO1NBQ3RFOzsyRkFFUSw0QkFBNEI7a0JBbkJ4QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLFFBQVE7d0JBQ2Qsb0JBQW9CO3dCQUNwQix5QkFBeUIsRUFBRSxZQUFZO3dCQUN2Qyx5QkFBeUIsRUFBRSx5QkFBeUI7d0JBQ3BELHNCQUFzQixFQUFFLHNCQUFzQjt3QkFDOUMsaUJBQWlCLEVBQUUsc0JBQXNCO3dCQUN6QyxlQUFlLEVBQUUsaUJBQWlCO3dCQUNsQyxTQUFTLEVBQUUsNkJBQTZCO3dCQUN4QyxXQUFXLEVBQUUsbUJBQW1CO3FCQUNuQztvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsOEJBQThCLEVBQUU7d0JBQ25FLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUU7cUJBQ3RFO2lCQUNKO3dEQU9vRCxRQUFRO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVuQixRQUFRO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0RLX01FTlUsIENka01lbnVJdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL21lbnUnO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBSZHhEcm9wZG93bk1lbnVDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wZG93bi1tZW51LWNvbnRlbnQuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4RHJvcGRvd25NZW51SXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgLy8gdG9kbyBob3Jpem9udGFsID9cbiAgICAgICAgJ1thdHRyLmRhdGEtb3JpZW50YXRpb25dJzogJ1widmVydGljYWxcIicsXG4gICAgICAgICdbYXR0ci5kYXRhLWhpZ2hsaWdodGVkXSc6ICdoaWdobGlnaHRlZCA/IFwiXCIgOiBudWxsJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkID8gXCJcIiA6IG51bGwnLFxuICAgICAgICAnW2F0dHIuZGlzYWJsZWRdJzogJ2Rpc2FibGVkID8gXCJcIiA6IG51bGwnLFxuICAgICAgICAnKHBvaW50ZXJtb3ZlKSc6ICdvblBvaW50ZXJNb3ZlKCknLFxuICAgICAgICAnKGZvY3VzKSc6ICdtZW51LmhpZ2hsaWdodGVkLm5leHQodGhpcyknLFxuICAgICAgICAnKGtleWRvd24pJzogJ29uS2V5ZG93bigkZXZlbnQpJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQ2RrTWVudUl0ZW0sIHVzZUV4aXN0aW5nOiBSZHhEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogQ0RLX01FTlUsIHVzZUV4aXN0aW5nOiBSZHhEcm9wZG93bk1lbnVDb250ZW50RGlyZWN0aXZlIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFJkeERyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUgZXh0ZW5kcyBDZGtNZW51SXRlbSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1lbnUgPSBpbmplY3QoUmR4RHJvcGRvd25NZW51Q29udGVudERpcmVjdGl2ZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcblxuICAgIGhpZ2hsaWdodGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSByZWFkb25seSBvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMubWVudS5oaWdobGlnaHRlZC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudHJpZ2dlcmVkLnN1YnNjcmliZSh0aGlzLm9uU2VsZWN0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Qb2ludGVyTW92ZSgpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5tZW51LnVwZGF0ZUFjdGl2ZUl0ZW0odGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVFbGVtZW50LnRhZ05hbWUgIT09ICdCVVRUT04nICYmIFsnRW50ZXInLCAnICddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLm1lbnUuY2xvc2VPbkVzY2FwZSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnUub25Fc2NhcGVLZXlEb3duKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvZHJvcGRvd24tbWVudS9zcmMvZHJvcGRvd24tbWVudS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFxQnBGLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxXQUFXO0lBVXpEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFWTyxTQUFJLEdBQUcsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDL0Msa0JBQWEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBRXBFLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRTZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFeEQsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFLbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqRSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDN0IsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFUyxhQUFhO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDO0lBRVMsU0FBUyxDQUFDLEtBQW9CO1FBQ3BDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoRixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDM0IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzVCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7OEdBekNRLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHNHQU1qQixnQkFBZ0Isa2FBWHpCO1lBQ1AsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSw0QkFBNEIsRUFBRTtZQUNuRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFO1NBQ3RFOzsyRkFFUSw0QkFBNEI7a0JBbkJ4QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLFFBQVE7d0JBQ2Qsb0JBQW9CO3dCQUNwQix5QkFBeUIsRUFBRSxZQUFZO3dCQUN2Qyx5QkFBeUIsRUFBRSx5QkFBeUI7d0JBQ3BELHNCQUFzQixFQUFFLHNCQUFzQjt3QkFDOUMsaUJBQWlCLEVBQUUsc0JBQXNCO3dCQUN6QyxlQUFlLEVBQUUsaUJBQWlCO3dCQUNsQyxTQUFTLEVBQUUsNkJBQTZCO3dCQUN4QyxXQUFXLEVBQUUsbUJBQW1CO3FCQUNuQztvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsOEJBQThCLEVBQUU7d0JBQ25FLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUU7cUJBQ3RFO2lCQUNKO3dEQU9vRCxRQUFRO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVuQixRQUFRO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0RLX01FTlUsIENka01lbnVJdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL21lbnUnO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBSZHhEcm9wZG93bk1lbnVDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wZG93bi1tZW51LWNvbnRlbnQuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4RHJvcGRvd25NZW51SXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgLy8gdG9kbyBob3Jpem9udGFsID9cbiAgICAgICAgJ1thdHRyLmRhdGEtb3JpZW50YXRpb25dJzogJ1widmVydGljYWxcIicsXG4gICAgICAgICdbYXR0ci5kYXRhLWhpZ2hsaWdodGVkXSc6ICdoaWdobGlnaHRlZCA/IFwiXCIgOiBudWxsJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkID8gXCJcIiA6IG51bGwnLFxuICAgICAgICAnW2F0dHIuZGlzYWJsZWRdJzogJ2Rpc2FibGVkID8gXCJcIiA6IG51bGwnLFxuICAgICAgICAnKHBvaW50ZXJtb3ZlKSc6ICdvblBvaW50ZXJNb3ZlKCknLFxuICAgICAgICAnKGZvY3VzKSc6ICdtZW51LmhpZ2hsaWdodGVkLm5leHQodGhpcyknLFxuICAgICAgICAnKGtleWRvd24pJzogJ29uS2V5ZG93bigkZXZlbnQpJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQ2RrTWVudUl0ZW0sIHVzZUV4aXN0aW5nOiBSZHhEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogQ0RLX01FTlUsIHVzZUV4aXN0aW5nOiBSZHhEcm9wZG93bk1lbnVDb250ZW50RGlyZWN0aXZlIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFJkeERyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUgZXh0ZW5kcyBDZGtNZW51SXRlbSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1lbnUgPSBpbmplY3QoUmR4RHJvcGRvd25NZW51Q29udGVudERpcmVjdGl2ZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcblxuICAgIGhpZ2hsaWdodGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSByZWFkb25seSBvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMubWVudS5oaWdobGlnaHRlZC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudHJpZ2dlcmVkLnN1YnNjcmliZSh0aGlzLm9uU2VsZWN0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Qb2ludGVyTW92ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhpZ2hsaWdodGVkKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgdGhpcy5tZW51LnVwZGF0ZUFjdGl2ZUl0ZW0odGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUVsZW1lbnQudGFnTmFtZSAhPT0gJ0JVVFRPTicgJiYgWydFbnRlcicsICcgJ10uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMubWVudS5jbG9zZU9uRXNjYXBlKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubWVudS5vbkVzY2FwZUtleURvd24oZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -90,14 +90,14 @@ export class RdxRadioGroupDirective {
90
90
  /**
91
91
  * When focus leaves the radio group.
92
92
  */
93
- _onFocusin(event) {
93
+ onFocusin(event) {
94
94
  const target = event.target;
95
95
  const radioItem = this.radioItems.find((item) => item.element.nativeElement === target);
96
96
  if (radioItem) {
97
97
  this.focusKeyManager.setActiveItem(radioItem);
98
98
  }
99
99
  }
100
- _onKeydown(event) {
100
+ onKeydown(event) {
101
101
  if (this.disabled)
102
102
  return;
103
103
  switch (event.keyCode) {
@@ -151,7 +151,7 @@ export class RdxRadioGroupDirective {
151
151
  }
152
152
  }
153
153
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxRadioGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
154
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.1", type: RdxRadioGroupDirective, isStandalone: true, selector: "[rdxRadioRoot]", inputs: { value: "value", disabled: ["disabled", "disabled", booleanAttribute], dir: "dir", defaultValue: "defaultValue" }, outputs: { onValueChange: "onValueChange" }, host: { attributes: { "role": "radiogroup" }, listeners: { "keydown": "_onKeydown($event)", "focusin": "_onFocusin($event)" }, properties: { "attr.aria-orientation": "_orientation", "attr.data-disabled": "disabled ? \"\" : null", "attr.tabindex": "-1", "attr.dir": "dir" } }, providers: [
154
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.1", type: RdxRadioGroupDirective, isStandalone: true, selector: "[rdxRadioRoot]", inputs: { value: "value", disabled: ["disabled", "disabled", booleanAttribute], dir: "dir", defaultValue: "defaultValue" }, outputs: { onValueChange: "onValueChange" }, host: { attributes: { "role": "radiogroup" }, listeners: { "keydown": "onKeydown($event)", "focusin": "onFocusin($event)" }, properties: { "attr.aria-orientation": "_orientation", "attr.data-disabled": "disabled ? \"\" : null", "attr.tabindex": "-1", "attr.dir": "dir" } }, providers: [
155
155
  { provide: RDX_RADIO_GROUP, useExisting: RdxRadioGroupDirective },
156
156
  { provide: NG_VALUE_ACCESSOR, useExisting: RdxRadioGroupDirective, multi: true }
157
157
  ], queries: [{ propertyName: "radioItems", predicate: RdxRadioItemDirective, descendants: true }], exportAs: ["rdxRadioRoot"], ngImport: i0 }); }
@@ -172,8 +172,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
172
172
  '[attr.data-disabled]': 'disabled ? "" : null',
173
173
  '[attr.tabindex]': '-1',
174
174
  '[attr.dir]': 'dir',
175
- '(keydown)': '_onKeydown($event)',
176
- '(focusin)': '_onFocusin($event)'
175
+ '(keydown)': 'onKeydown($event)',
176
+ '(focusin)': 'onFocusin($event)'
177
177
  }
178
178
  }]
179
179
  }], propDecorators: { radioItems: [{
@@ -191,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
191
191
  }], onValueChange: [{
192
192
  type: Output
193
193
  }] } });
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tcm9vdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3JhZGlvL3NyYy9yYWRpby1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pHLE9BQU8sRUFFSCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBd0MsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBb0J2RixNQUFNLE9BQU8sc0JBQXNCO0lBbEJuQztRQXVCWSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUtDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNekQ7Ozs7OztXQU1HO1FBQ00saUJBQVksR0FBRyxVQUFVLENBQUM7UUFFbkM7O1dBRUc7UUFDZ0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTlEOztXQUVHO1FBQ0ssYUFBUSxHQUE0QixHQUFHLEVBQUU7WUFDN0MsV0FBVztRQUNmLENBQUMsQ0FBQztRQUVGOztXQUVHO1FBQ0gsY0FBUyxHQUFlLEdBQUcsRUFBRTtZQUN6QixXQUFXO1FB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LElBQUksRUFBRTtnQkFLcEQsS0FBSztzQkFBYixLQUFLO2dCQUVrQyxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU3QixHQUFHO3NCQUFYLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFjYSxhQUFhO3NCQUEvQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5URVIsIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBTUEFDRSwgVEFCLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmR4UmFkaW9JdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9yYWRpby1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSYWRpb0dyb3VwRGlyZWN0aXZlLCBSYWRpb0dyb3VwUHJvcHMsIFJEWF9SQURJT19HUk9VUCB9IGZyb20gJy4vcmFkaW8tdG9rZW5zJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4UmFkaW9Sb290XScsXG4gICAgZXhwb3J0QXM6ICdyZHhSYWRpb1Jvb3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogUkRYX1JBRElPX0dST1VQLCB1c2VFeGlzdGluZzogUmR4UmFkaW9Hcm91cERpcmVjdGl2ZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogUmR4UmFkaW9Hcm91cERpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAncmFkaW9ncm91cCcsXG4gICAgICAgICdbYXR0ci5hcmlhLW9yaWVudGF0aW9uXSc6ICdfb3JpZW50YXRpb24nLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQgPyBcIlwiIDogbnVsbCcsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnLTEnLFxuICAgICAgICAnW2F0dHIuZGlyXSc6ICdkaXInLFxuICAgICAgICAnKGtleWRvd24pJzogJ19vbktleWRvd24oJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNpbiknOiAnX29uRm9jdXNpbigkZXZlbnQpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4UmFkaW9Hcm91cERpcmVjdGl2ZVxuICAgIGltcGxlbWVudHMgUmFkaW9Hcm91cFByb3BzLCBSYWRpb0dyb3VwRGlyZWN0aXZlLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XG57XG4gICAgQENvbnRlbnRDaGlsZHJlbihSZHhSYWRpb0l0ZW1EaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgcmFkaW9JdGVtcyE6IFF1ZXJ5TGlzdDxSZHhSYWRpb0l0ZW1EaXJlY3RpdmU+O1xuICAgIHByaXZhdGUgZm9jdXNLZXlNYW5hZ2VyITogRm9jdXNLZXlNYW5hZ2VyPFJkeFJhZGlvSXRlbURpcmVjdGl2ZT47XG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHZhbHVlPzogc3RyaW5nO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBkaXI/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3JpZW50YXRpb24gb2YgdGhlIHJhZGlvIGdyb3VwIG9ubHkgdmVydGljYWwuXG4gICAgICogSG9yaXpvbnRhbCByYWRpbyBidXR0b25zIGNhbiBzb21ldGltZXMgYmUgY2hhbGxlbmdpbmcgdG8gc2NhbiBhbmQgbG9jYWxpemUuXG4gICAgICogVGhlIGhvcml6b250YWwgYXJyYW5nZW1lbnQgb2YgcmFkaW8gYnV0dG9ucyBtYXkgYWxzbyBsZWFkIHRvIGRpZmZpY3VsdGllcyBpbiBkZXRlcm1pbmluZyB3aGljaFxuICAgICAqIGxhYmVsIGNvcnJlc3BvbmRzIHRvIHdoaWNoIGJ1dHRvbjogd2hldGhlciB0aGUgbGFiZWwgaXMgYWJvdmUgb3IgYmVsb3cgdGhlIGJ1dHRvbi5cbiAgICAgKiBAZGVmYXVsdCAndmVydGljYWwnXG4gICAgICovXG4gICAgcmVhZG9ubHkgX29yaWVudGF0aW9uID0gJ3ZlcnRpY2FsJztcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG9uVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBjYWxsIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSByYWRpbyBncm91cCBjaGFuZ2VzLlxuICAgICAqL1xuICAgIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4ge1xuICAgICAgICAvKiBFbXB0eSAqL1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSByYWRpbyBncm91cCBpcyB0b3VjaGVkLlxuICAgICAqL1xuICAgIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICAgICAgLyogRW1wdHkgKi9cbiAgICB9O1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5yYWRpb0l0ZW1zKS53aXRoV3JhcCgpLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5yYWRpb0l0ZW1zLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVJdGVtKGZhbHNlKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3QgYSByYWRpbyBpdGVtLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIHJhZGlvIGl0ZW0gdG8gc2VsZWN0LlxuICAgICAqL1xuICAgIHNlbGVjdCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlPy4odmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgdGhlIHZhbHVlIG9mIHRoZSByYWRpbyBncm91cC5cbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZSBvZiB0aGUgcmFkaW8gZ3JvdXAuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMucmFkaW9JdGVtcykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVJdGVtKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVyIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gZ3JvdXAgY2hhbmdlcy5cbiAgICAgKiBAcGFyYW0gZm4gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgdmFsdWUgb2YgdGhlIHJhZGlvIGdyb3VwIGNoYW5nZXMuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgcmFkaW8gZ3JvdXAuXG4gICAgICogQHBhcmFtIGlzRGlzYWJsZWQgV2hldGhlciB0aGUgcmFkaW8gZ3JvdXAgaXMgZGlzYWJsZWQuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZW4gZm9jdXMgbGVhdmVzIHRoZSByYWRpbyBncm91cC5cbiAgICAgKi9cbiAgICBfb25Gb2N1c2luKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgcmFkaW9JdGVtID0gdGhpcy5yYWRpb0l0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uZWxlbWVudC5uYXRpdmVFbGVtZW50ID09PSB0YXJnZXQpO1xuICAgICAgICBpZiAocmFkaW9JdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHJhZGlvSXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICAgICAgc3dpdGNoIChldmVudC5rZXlDb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEVOVEVSOlxuICAgICAgICAgICAgY2FzZSBTUEFDRTpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0Rm9jdXNlZEl0ZW0oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRE9XTl9BUlJPVzpcbiAgICAgICAgICAgIGNhc2UgUklHSFRfQVJST1c6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5zZXROZXh0SXRlbUFjdGl2ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0Rm9jdXNlZEl0ZW0oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgVVBfQVJST1c6XG4gICAgICAgICAgICBjYXNlIExFRlRfQVJST1c6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEZvY3VzZWRJdGVtKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFRBQjpcbiAgICAgICAgICAgICAgICB0aGlzLnRhYk5hdmlnYXRpb24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RGb2N1c2VkSXRlbSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtO1xuICAgICAgICBpZiAoZm9jdXNlZEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KGZvY3VzZWRJdGVtLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQWN0aXZlSXRlbShzZXRGb2N1cyA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWN0aXZlSXRlbSA9IHRoaXMucmFkaW9JdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcbiAgICAgICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oYWN0aXZlSXRlbSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5yYWRpb0l0ZW1zLmxlbmd0aCA+IDAgJiYgc2V0Rm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0YWJOYXZpZ2F0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGNoZWNrZWRJdGVtID0gdGhpcy5yYWRpb0l0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCk7XG4gICAgICAgIGlmIChjaGVja2VkSXRlbSkge1xuICAgICAgICAgICAgY2hlY2tlZEl0ZW0uZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJhZGlvSXRlbXMuZmlyc3QpIHtcbiAgICAgICAgICAgIHRoaXMucmFkaW9JdGVtcy5maXJzdC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tcm9vdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3JhZGlvL3NyYy9yYWRpby1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pHLE9BQU8sRUFFSCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBd0MsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBb0J2RixNQUFNLE9BQU8sc0JBQXNCO0lBbEJuQztRQXVCWSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUtDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNekQ7Ozs7OztXQU1HO1FBQ00saUJBQVksR0FBRyxVQUFVLENBQUM7UUFFbkM7O1dBRUc7UUFDZ0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTlEOztXQUVHO1FBQ0ssYUFBUSxHQUE0QixHQUFHLEVBQUU7WUFDN0MsV0FBVztRQUNmLENBQUMsQ0FBQztRQUVGOztXQUVHO1FBQ0gsY0FBUyxHQUFlLEdBQUcsRUFBRTtZQUN6QixXQUFXO1FB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LElBQUksRUFBRTtnQkFLcEQsS0FBSztzQkFBYixLQUFLO2dCQUVrQyxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU3QixHQUFHO3NCQUFYLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFjYSxhQUFhO3NCQUEvQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5URVIsIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBTUEFDRSwgVEFCLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmR4UmFkaW9JdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9yYWRpby1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSYWRpb0dyb3VwRGlyZWN0aXZlLCBSYWRpb0dyb3VwUHJvcHMsIFJEWF9SQURJT19HUk9VUCB9IGZyb20gJy4vcmFkaW8tdG9rZW5zJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4UmFkaW9Sb290XScsXG4gICAgZXhwb3J0QXM6ICdyZHhSYWRpb1Jvb3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogUkRYX1JBRElPX0dST1VQLCB1c2VFeGlzdGluZzogUmR4UmFkaW9Hcm91cERpcmVjdGl2ZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogUmR4UmFkaW9Hcm91cERpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAncmFkaW9ncm91cCcsXG4gICAgICAgICdbYXR0ci5hcmlhLW9yaWVudGF0aW9uXSc6ICdfb3JpZW50YXRpb24nLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQgPyBcIlwiIDogbnVsbCcsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnLTEnLFxuICAgICAgICAnW2F0dHIuZGlyXSc6ICdkaXInLFxuICAgICAgICAnKGtleWRvd24pJzogJ29uS2V5ZG93bigkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1c2luKSc6ICdvbkZvY3VzaW4oJGV2ZW50KSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeFJhZGlvR3JvdXBEaXJlY3RpdmVcbiAgICBpbXBsZW1lbnRzIFJhZGlvR3JvdXBQcm9wcywgUmFkaW9Hcm91cERpcmVjdGl2ZSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveVxue1xuICAgIEBDb250ZW50Q2hpbGRyZW4oUmR4UmFkaW9JdGVtRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHJhZGlvSXRlbXMhOiBRdWVyeUxpc3Q8UmR4UmFkaW9JdGVtRGlyZWN0aXZlPjtcbiAgICBwcml2YXRlIGZvY3VzS2V5TWFuYWdlciE6IEZvY3VzS2V5TWFuYWdlcjxSZHhSYWRpb0l0ZW1EaXJlY3RpdmU+O1xuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSB2YWx1ZT86IHN0cmluZztcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgZGlyPzogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9yaWVudGF0aW9uIG9mIHRoZSByYWRpbyBncm91cCBvbmx5IHZlcnRpY2FsLlxuICAgICAqIEhvcml6b250YWwgcmFkaW8gYnV0dG9ucyBjYW4gc29tZXRpbWVzIGJlIGNoYWxsZW5naW5nIHRvIHNjYW4gYW5kIGxvY2FsaXplLlxuICAgICAqIFRoZSBob3Jpem9udGFsIGFycmFuZ2VtZW50IG9mIHJhZGlvIGJ1dHRvbnMgbWF5IGFsc28gbGVhZCB0byBkaWZmaWN1bHRpZXMgaW4gZGV0ZXJtaW5pbmcgd2hpY2hcbiAgICAgKiBsYWJlbCBjb3JyZXNwb25kcyB0byB3aGljaCBidXR0b246IHdoZXRoZXIgdGhlIGxhYmVsIGlzIGFib3ZlIG9yIGJlbG93IHRoZSBidXR0b24uXG4gICAgICogQGRlZmF1bHQgJ3ZlcnRpY2FsJ1xuICAgICAqL1xuICAgIHJlYWRvbmx5IF9vcmllbnRhdGlvbiA9ICd2ZXJ0aWNhbCc7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBvblZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gZ3JvdXAgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHtcbiAgICAgICAgLyogRW1wdHkgKi9cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgcmFkaW8gZ3JvdXAgaXMgdG91Y2hlZC5cbiAgICAgKi9cbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgICAgIC8qIEVtcHR5ICovXG4gICAgfTtcblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKHRoaXMucmFkaW9JdGVtcykud2l0aFdyYXAoKS53aXRoVmVydGljYWxPcmllbnRhdGlvbigpO1xuXG4gICAgICAgIHRoaXMucmFkaW9JdGVtcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVJdGVtKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudXBkYXRlQWN0aXZlSXRlbShmYWxzZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VsZWN0IGEgcmFkaW8gaXRlbS5cbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSByYWRpbyBpdGVtIHRvIHNlbGVjdC5cbiAgICAgKi9cbiAgICBzZWxlY3QodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZT8uKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVJdGVtKCk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gZ3JvdXAuXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSBuZXcgdmFsdWUgb2YgdGhlIHJhZGlvIGdyb3VwLlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLnJhZGlvSXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQWN0aXZlSXRlbShmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgdmFsdWUgb2YgdGhlIHJhZGlvIGdyb3VwIGNoYW5nZXMuXG4gICAgICogQHBhcmFtIGZuIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBjYWxsIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSByYWRpbyBncm91cCBjaGFuZ2VzLlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIHJhZGlvIGdyb3VwLlxuICAgICAqIEBwYXJhbSBpc0Rpc2FibGVkIFdoZXRoZXIgdGhlIHJhZGlvIGdyb3VwIGlzIGRpc2FibGVkLlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIGZvY3VzIGxlYXZlcyB0aGUgcmFkaW8gZ3JvdXAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG9uRm9jdXNpbihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHJhZGlvSXRlbSA9IHRoaXMucmFkaW9JdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmVsZW1lbnQubmF0aXZlRWxlbWVudCA9PT0gdGFyZ2V0KTtcbiAgICAgICAgaWYgKHJhZGlvSXRlbSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShyYWRpb0l0ZW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgICAgICAgY2FzZSBFTlRFUjpcbiAgICAgICAgICAgIGNhc2UgU1BBQ0U6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEZvY3VzZWRJdGVtKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIERPV05fQVJST1c6XG4gICAgICAgICAgICBjYXNlIFJJR0hUX0FSUk9XOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuc2V0TmV4dEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEZvY3VzZWRJdGVtKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFVQX0FSUk9XOlxuICAgICAgICAgICAgY2FzZSBMRUZUX0FSUk9XOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuc2V0UHJldmlvdXNJdGVtQWN0aXZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RGb2N1c2VkSXRlbSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBUQUI6XG4gICAgICAgICAgICAgICAgdGhpcy50YWJOYXZpZ2F0aW9uKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0Rm9jdXNlZEl0ZW0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvY3VzZWRJdGVtID0gdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbTtcbiAgICAgICAgaWYgKGZvY3VzZWRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdChmb2N1c2VkSXRlbS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUFjdGl2ZUl0ZW0oc2V0Rm9jdXMgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLnJhZGlvSXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gdGhpcy52YWx1ZSk7XG4gICAgICAgIGlmIChhY3RpdmVJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGFjdGl2ZUl0ZW0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmFkaW9JdGVtcy5sZW5ndGggPiAwICYmIHNldEZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdGFiTmF2aWdhdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBjaGVja2VkSXRlbSA9IHRoaXMucmFkaW9JdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmNoZWNrZWQpO1xuICAgICAgICBpZiAoY2hlY2tlZEl0ZW0pIHtcbiAgICAgICAgICAgIGNoZWNrZWRJdGVtLmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5yYWRpb0l0ZW1zLmZpcnN0KSB7XG4gICAgICAgICAgICB0aGlzLnJhZGlvSXRlbXMuZmlyc3QuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,15 +1,39 @@
1
- import { booleanAttribute, Directive, Input } from '@angular/core';
1
+ import { booleanAttribute, computed, Directive, input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  const DEFAULT_ORIENTATION = 'horizontal';
4
4
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
5
  const ORIENTATIONS = ['horizontal', 'vertical'];
6
+ /**
7
+ * Directive that adds accessible and configurable separator element to the DOM.
8
+ * This can be either horizontal or vertical and optionally decorative (which removes
9
+ * it from the accessibility tree).
10
+ */
6
11
  export class RdxSeparatorRootDirective {
7
12
  constructor() {
8
- this.orientation = DEFAULT_ORIENTATION;
9
- this.decorative = false;
13
+ /**
14
+ * Orientation of the separator, can be either 'horizontal' or 'vertical'.
15
+ * Defaults to 'horizontal'.
16
+ */
17
+ this.orientation = input(DEFAULT_ORIENTATION);
18
+ /**
19
+ * If true, the separator will be considered decorative and removed from
20
+ * the accessibility tree. Defaults to false.
21
+ */
22
+ this.decorative = input(false, { transform: booleanAttribute });
23
+ /**
24
+ * Computes the `role` attribute for the separator. If `decorative` is true,
25
+ * the role is set to "none", otherwise it is "separator".
26
+ */
27
+ this.computedRole = computed(() => (this.decorative() ? 'none' : 'separator'));
28
+ /**
29
+ * Computes the `aria-orientation` attribute. It is set to "vertical" only if
30
+ * the separator is not decorative and the orientation is set to "vertical".
31
+ * For horizontal orientation, the attribute is omitted.
32
+ */
33
+ this.computedAriaOrientation = computed(() => !this.decorative() && this.orientation() === 'vertical' ? 'vertical' : null);
10
34
  }
11
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxSeparatorRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.1", type: RdxSeparatorRootDirective, isStandalone: true, selector: "div[rdxSeparatorRoot]", inputs: { orientation: "orientation", decorative: ["decorative", "decorative", booleanAttribute] }, host: { properties: { "attr.role": "decorative ? \"none\" : \"separator\"", "attr.aria-orientation": "!decorative && orientation === \"vertical\" ? \"vertical\" : null", "attr.data-orientation": "orientation" } }, ngImport: i0 }); }
36
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.1", type: RdxSeparatorRootDirective, isStandalone: true, selector: "div[rdxSeparatorRoot]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, decorative: { classPropertyName: "decorative", publicName: "decorative", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "computedRole()", "attr.aria-orientation": "computedAriaOrientation()", "attr.data-orientation": "orientation()" } }, ngImport: i0 }); }
13
37
  }
14
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxSeparatorRootDirective, decorators: [{
15
39
  type: Directive,
@@ -17,16 +41,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
17
41
  selector: 'div[rdxSeparatorRoot]',
18
42
  standalone: true,
19
43
  host: {
20
- '[attr.role]': 'decorative ? "none" : "separator"',
21
- // `aria-orientation` defaults to `horizontal` so we only need it if `orientation` is vertical
22
- '[attr.aria-orientation]': '!decorative && orientation === "vertical" ? "vertical" : null',
23
- '[attr.data-orientation]': 'orientation'
44
+ '[attr.role]': 'computedRole()',
45
+ '[attr.aria-orientation]': 'computedAriaOrientation()',
46
+ '[attr.data-orientation]': 'orientation()'
24
47
  }
25
48
  }]
26
- }], propDecorators: { orientation: [{
27
- type: Input
28
- }], decorative: [{
29
- type: Input,
30
- args: [{ transform: booleanAttribute }]
31
- }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc2VwYXJhdG9yL3NyYy9zZXBhcmF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVuRSxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQztBQUN6Qyw2REFBNkQ7QUFDN0QsTUFBTSxZQUFZLEdBQUcsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFVLENBQUM7QUEwQnpELE1BQU0sT0FBTyx5QkFBeUI7SUFWdEM7UUFXYSxnQkFBVyxHQUFnQixtQkFBbUIsQ0FBQztRQUVoQixlQUFVLEdBQUcsS0FBSyxDQUFDO0tBQzlEOzhHQUpZLHlCQUF5QjtrR0FBekIseUJBQXlCLHdJQUdkLGdCQUFnQjs7MkZBSDNCLHlCQUF5QjtrQkFWckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLGFBQWEsRUFBRSxtQ0FBbUM7d0JBQ2xELDhGQUE4Rjt3QkFDOUYseUJBQXlCLEVBQUUsK0RBQStEO3dCQUMxRix5QkFBeUIsRUFBRSxhQUFhO3FCQUMzQztpQkFDSjs4QkFFWSxXQUFXO3NCQUFuQixLQUFLO2dCQUVrQyxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBERUZBVUxUX09SSUVOVEFUSU9OID0gJ2hvcml6b250YWwnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuY29uc3QgT1JJRU5UQVRJT05TID0gWydob3Jpem9udGFsJywgJ3ZlcnRpY2FsJ10gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE9yaWVudGF0aW9uID0gKHR5cGVvZiBPUklFTlRBVElPTlMpW251bWJlcl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VwYXJhdG9yUHJvcHMge1xuICAgIC8qKlxuICAgICAqIEVpdGhlciBgdmVydGljYWxgIG9yIGBob3Jpem9udGFsYC4gRGVmYXVsdHMgdG8gYGhvcml6b250YWxgLlxuICAgICAqL1xuICAgIG9yaWVudGF0aW9uPzogT3JpZW50YXRpb247XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIHB1cmVseSBkZWNvcmF0aXZlLiBXaGVuIHRydWUsIGFjY2Vzc2liaWxpdHktcmVsYXRlZCBhdHRyaWJ1dGVzXG4gICAgICogYXJlIHVwZGF0ZWQgc28gdGhhdCB0aGUgcmVuZGVyZWQgZWxlbWVudCBpcyByZW1vdmVkIGZyb20gdGhlIGFjY2Vzc2liaWxpdHkgdHJlZS5cbiAgICAgKi9cbiAgICBkZWNvcmF0aXZlPzogYm9vbGVhbjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdkaXZbcmR4U2VwYXJhdG9yUm9vdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIucm9sZV0nOiAnZGVjb3JhdGl2ZSA/IFwibm9uZVwiIDogXCJzZXBhcmF0b3JcIicsXG4gICAgICAgIC8vIGBhcmlhLW9yaWVudGF0aW9uYCBkZWZhdWx0cyB0byBgaG9yaXpvbnRhbGAgc28gd2Ugb25seSBuZWVkIGl0IGlmIGBvcmllbnRhdGlvbmAgaXMgdmVydGljYWxcbiAgICAgICAgJ1thdHRyLmFyaWEtb3JpZW50YXRpb25dJzogJyFkZWNvcmF0aXZlICYmIG9yaWVudGF0aW9uID09PSBcInZlcnRpY2FsXCIgPyBcInZlcnRpY2FsXCIgOiBudWxsJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtb3JpZW50YXRpb25dJzogJ29yaWVudGF0aW9uJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4U2VwYXJhdG9yUm9vdERpcmVjdGl2ZSBpbXBsZW1lbnRzIFNlcGFyYXRvclByb3BzIHtcbiAgICBASW5wdXQoKSBvcmllbnRhdGlvbjogT3JpZW50YXRpb24gPSBERUZBVUxUX09SSUVOVEFUSU9OO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRlY29yYXRpdmUgPSBmYWxzZTtcbn1cbiJdfQ==
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc2VwYXJhdG9yL3NyYy9zZXBhcmF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFN0UsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUM7QUFFekMsNkRBQTZEO0FBQzdELE1BQU0sWUFBWSxHQUFHLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBZ0J6RDs7OztHQUlHO0FBV0gsTUFBTSxPQUFPLHlCQUF5QjtJQVZ0QztRQVdJOzs7V0FHRztRQUNNLGdCQUFXLEdBQUcsS0FBSyxDQUFjLG1CQUFtQixDQUFDLENBQUM7UUFFL0Q7OztXQUdHO1FBQ00sZUFBVSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUUzRjs7O1dBR0c7UUFDZ0IsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUU3Rjs7OztXQUlHO1FBQ2dCLDRCQUF1QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDdkQsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlFLENBQUM7S0FDTDs4R0EzQlkseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBVnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDRixhQUFhLEVBQUUsZ0JBQWdCO3dCQUMvQix5QkFBeUIsRUFBRSwyQkFBMkI7d0JBRXRELHlCQUF5QixFQUFFLGVBQWU7cUJBQzdDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIGNvbXB1dGVkLCBEaXJlY3RpdmUsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IERFRkFVTFRfT1JJRU5UQVRJT04gPSAnaG9yaXpvbnRhbCc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmNvbnN0IE9SSUVOVEFUSU9OUyA9IFsnaG9yaXpvbnRhbCcsICd2ZXJ0aWNhbCddIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBPcmllbnRhdGlvbiA9ICh0eXBlb2YgT1JJRU5UQVRJT05TKVtudW1iZXJdO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcGFyYXRvclByb3BzIHtcbiAgICAvKipcbiAgICAgKiBFaXRoZXIgYHZlcnRpY2FsYCBvciBgaG9yaXpvbnRhbGAuIERlZmF1bHRzIHRvIGBob3Jpem9udGFsYC5cbiAgICAgKi9cbiAgICBvcmllbnRhdGlvbj86IE9yaWVudGF0aW9uO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBwdXJlbHkgZGVjb3JhdGl2ZS4gV2hlbiB0cnVlLCBhY2Nlc3NpYmlsaXR5LXJlbGF0ZWQgYXR0cmlidXRlc1xuICAgICAqIGFyZSB1cGRhdGVkIHNvIHRoYXQgdGhlIHJlbmRlcmVkIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUuXG4gICAgICovXG4gICAgZGVjb3JhdGl2ZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgYWRkcyBhY2Nlc3NpYmxlIGFuZCBjb25maWd1cmFibGUgc2VwYXJhdG9yIGVsZW1lbnQgdG8gdGhlIERPTS5cbiAqIFRoaXMgY2FuIGJlIGVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGFuZCBvcHRpb25hbGx5IGRlY29yYXRpdmUgKHdoaWNoIHJlbW92ZXNcbiAqIGl0IGZyb20gdGhlIGFjY2Vzc2liaWxpdHkgdHJlZSkuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZGl2W3JkeFNlcGFyYXRvclJvb3RdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnJvbGVdJzogJ2NvbXB1dGVkUm9sZSgpJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtb3JpZW50YXRpb25dJzogJ2NvbXB1dGVkQXJpYU9yaWVudGF0aW9uKCknLFxuXG4gICAgICAgICdbYXR0ci5kYXRhLW9yaWVudGF0aW9uXSc6ICdvcmllbnRhdGlvbigpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4U2VwYXJhdG9yUm9vdERpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogT3JpZW50YXRpb24gb2YgdGhlIHNlcGFyYXRvciwgY2FuIGJlIGVpdGhlciAnaG9yaXpvbnRhbCcgb3IgJ3ZlcnRpY2FsJy5cbiAgICAgKiBEZWZhdWx0cyB0byAnaG9yaXpvbnRhbCcuXG4gICAgICovXG4gICAgcmVhZG9ubHkgb3JpZW50YXRpb24gPSBpbnB1dDxPcmllbnRhdGlvbj4oREVGQVVMVF9PUklFTlRBVElPTik7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGUgc2VwYXJhdG9yIHdpbGwgYmUgY29uc2lkZXJlZCBkZWNvcmF0aXZlIGFuZCByZW1vdmVkIGZyb21cbiAgICAgKiB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlLiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZWNvcmF0aXZlID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgYHJvbGVgIGF0dHJpYnV0ZSBmb3IgdGhlIHNlcGFyYXRvci4gSWYgYGRlY29yYXRpdmVgIGlzIHRydWUsXG4gICAgICogdGhlIHJvbGUgaXMgc2V0IHRvIFwibm9uZVwiLCBvdGhlcndpc2UgaXQgaXMgXCJzZXBhcmF0b3JcIi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcHV0ZWRSb2xlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuZGVjb3JhdGl2ZSgpID8gJ25vbmUnIDogJ3NlcGFyYXRvcicpKTtcblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIHRoZSBgYXJpYS1vcmllbnRhdGlvbmAgYXR0cmlidXRlLiBJdCBpcyBzZXQgdG8gXCJ2ZXJ0aWNhbFwiIG9ubHkgaWZcbiAgICAgKiB0aGUgc2VwYXJhdG9yIGlzIG5vdCBkZWNvcmF0aXZlIGFuZCB0aGUgb3JpZW50YXRpb24gaXMgc2V0IHRvIFwidmVydGljYWxcIi5cbiAgICAgKiBGb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvbiwgdGhlIGF0dHJpYnV0ZSBpcyBvbWl0dGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb21wdXRlZEFyaWFPcmllbnRhdGlvbiA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgICF0aGlzLmRlY29yYXRpdmUoKSAmJiB0aGlzLm9yaWVudGF0aW9uKCkgPT09ICd2ZXJ0aWNhbCcgPyAndmVydGljYWwnIDogbnVsbFxuICAgICk7XG59XG4iXX0=
@@ -1,5 +1,4 @@
1
- import { booleanAttribute, computed, Directive, EventEmitter, inject, InjectionToken, input, model, Output } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
1
+ import { booleanAttribute, computed, Directive, inject, InjectionToken, input, model, output } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
4
3
  export const RdxSwitchToken = new InjectionToken('RdxSwitchToken');
5
4
  export function injectSwitch() {
@@ -10,14 +9,19 @@ export class RdxSwitchRootDirective {
10
9
  constructor() {
11
10
  this.id = input(`rdx-switch-${idIterator++}`);
12
11
  this.elementId = computed(() => (this.id() ? this.id() : null));
13
- // When true, indicates that the user must check
14
- // the switch before the owning form can be submitted.
12
+ /**
13
+ * When true, indicates that the user must check the switch before the owning form can be submitted.
14
+ */
15
15
  this.required = input(false, {
16
16
  transform: booleanAttribute
17
17
  });
18
- // The controlled state of the switch
18
+ /**
19
+ * The controlled state of the switch. Must be used in conjunction with onCheckedChange.
20
+ */
19
21
  this.checked = model(false);
20
- // When true, prevents the user from interacting with the switch.
22
+ /**
23
+ * When true, prevents the user from interacting with the switch.
24
+ */
21
25
  this.disabled = input(false, {
22
26
  transform: booleanAttribute
23
27
  });
@@ -25,28 +29,10 @@ export class RdxSwitchRootDirective {
25
29
  * @ignore
26
30
  */
27
31
  this.disabledState = computed(() => this.disabled());
28
- this.onCheckedChange = new EventEmitter();
29
- }
30
- /**
31
- * Registers a function to call when the checked state changes.
32
- * @param fn Function to call on change.
33
- */
34
- registerOnChange(fn) {
35
- this._onChange = fn;
36
- }
37
- /**
38
- * Registers a function to call when the component is touched.
39
- * @param fn Function to call on touch.
40
- */
41
- registerOnTouched(fn) {
42
- this._onTouched = fn;
43
- }
44
- /**
45
- * Writes a new value to the model.
46
- * @param checked The new checked value.
47
- */
48
- writeValue(checked) {
49
- this.checked.set(checked);
32
+ /**
33
+ * Event handler called when the state of the switch changes.
34
+ */
35
+ this.onCheckedChange = output();
50
36
  }
51
37
  /**
52
38
  * Toggles the checked state of the switch.
@@ -57,13 +43,11 @@ export class RdxSwitchRootDirective {
57
43
  return;
58
44
  }
59
45
  this.checked.set(!this.checked());
60
- this._onChange?.(this.checked());
61
46
  this.onCheckedChange.emit(this.checked());
62
47
  }
63
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxSwitchRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
64
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.1", type: RdxSwitchRootDirective, isStandalone: true, selector: "button[rdxSwitchRoot]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", onCheckedChange: "onCheckedChange" }, host: { attributes: { "role": "switch", "type": "button" }, listeners: { "focus": "_onTouched?.()", "click": "toggle()" }, properties: { "id": "elementId()", "attr.aria-checked": "checked()", "attr.aria-required": "required", "attr.data-state": "checked() ? \"checked\" : \"unchecked\"", "attr.data-disabled": "disabledState() ? \"true\" : null", "attr.disabled": "disabledState() ? disabledState() : null" } }, providers: [
65
- { provide: RdxSwitchToken, useExisting: RdxSwitchRootDirective },
66
- { provide: NG_VALUE_ACCESSOR, useExisting: RdxSwitchRootDirective, multi: true }
49
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.1", type: RdxSwitchRootDirective, isStandalone: true, selector: "button[rdxSwitchRoot]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", onCheckedChange: "onCheckedChange" }, host: { attributes: { "role": "switch", "type": "button" }, listeners: { "click": "toggle()" }, properties: { "id": "elementId()", "attr.aria-checked": "checked()", "attr.aria-required": "required", "attr.data-state": "checked() ? \"checked\" : \"unchecked\"", "attr.data-disabled": "disabledState() ? \"true\" : null", "attr.disabled": "disabledState() ? disabledState() : null" } }, providers: [
50
+ { provide: RdxSwitchToken, useExisting: RdxSwitchRootDirective }
67
51
  ], exportAs: ["rdxSwitchRoot"], ngImport: i0 }); }
68
52
  }
69
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxSwitchRootDirective, decorators: [{
@@ -73,8 +57,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
73
57
  exportAs: 'rdxSwitchRoot',
74
58
  standalone: true,
75
59
  providers: [
76
- { provide: RdxSwitchToken, useExisting: RdxSwitchRootDirective },
77
- { provide: NG_VALUE_ACCESSOR, useExisting: RdxSwitchRootDirective, multi: true }
60
+ { provide: RdxSwitchToken, useExisting: RdxSwitchRootDirective }
78
61
  ],
79
62
  host: {
80
63
  role: 'switch',
@@ -85,11 +68,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
85
68
  '[attr.data-state]': 'checked() ? "checked" : "unchecked"',
86
69
  '[attr.data-disabled]': 'disabledState() ? "true" : null',
87
70
  '[attr.disabled]': 'disabledState() ? disabledState() : null',
88
- '(focus)': '_onTouched?.()',
89
71
  '(click)': 'toggle()'
90
72
  }
91
73
  }]
92
- }], propDecorators: { onCheckedChange: [{
93
- type: Output
94
- }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLXJvb3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9zd2l0Y2gvc3JjL3N3aXRjaC1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUVMLEtBQUssRUFFTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUV6RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQXlCLGdCQUFnQixDQUFDLENBQUM7QUFFM0YsTUFBTSxVQUFVLFlBQVk7SUFDeEIsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQVNELElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztBQXdCbkIsTUFBTSxPQUFPLHNCQUFzQjtJQXRCbkM7UUF1QmEsT0FBRSxHQUFHLEtBQUssQ0FBUyxjQUFjLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2QyxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFOUUsZ0RBQWdEO1FBQ2hELHNEQUFzRDtRQUM3QyxhQUFRLEdBQUcsS0FBSyxDQUF3QixLQUFLLEVBQUU7WUFDcEQsU0FBUyxFQUFFLGdCQUFnQjtTQUM5QixDQUFDLENBQUM7UUFFSCxxQ0FBcUM7UUFDNUIsWUFBTyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUV6QyxpRUFBaUU7UUFDeEQsYUFBUSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFO1lBQ3BELFNBQVMsRUFBRSxnQkFBZ0I7U0FDOUIsQ0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDTSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUUvQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0FrRDNEO0lBdENHOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLEVBQThCO1FBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsT0FBZ0I7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLE1BQU07UUFDWixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQzs4R0F4RVEsc0JBQXNCO2tHQUF0QixzQkFBc0Isc2lDQWxCcEI7WUFDUCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFO1lBQ2hFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1NBQ25GOzsyRkFlUSxzQkFBc0I7a0JBdEJsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLHdCQUF3QixFQUFFO3dCQUNoRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLHdCQUF3QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7cUJBQ25GO29CQUNELElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxNQUFNLEVBQUUsYUFBYTt3QkFDckIscUJBQXFCLEVBQUUsV0FBVzt3QkFDbEMsc0JBQXNCLEVBQUUsVUFBVTt3QkFDbEMsbUJBQW1CLEVBQUUscUNBQXFDO3dCQUMxRCxzQkFBc0IsRUFBRSxpQ0FBaUM7d0JBQ3pELGlCQUFpQixFQUFFLDBDQUEwQzt3QkFFN0QsU0FBUyxFQUFFLGdCQUFnQjt3QkFDM0IsU0FBUyxFQUFFLFVBQVU7cUJBQ3hCO2lCQUNKOzhCQXdCYSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBjb21wdXRlZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBpbnB1dCxcbiAgICBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm0sXG4gICAgbW9kZWwsXG4gICAgTW9kZWxTaWduYWwsXG4gICAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY29uc3QgUmR4U3dpdGNoVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UmR4U3dpdGNoUm9vdERpcmVjdGl2ZT4oJ1JkeFN3aXRjaFRva2VuJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RTd2l0Y2goKTogUmR4U3dpdGNoUm9vdERpcmVjdGl2ZSB7XG4gICAgcmV0dXJuIGluamVjdChSZHhTd2l0Y2hUb2tlbik7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3dpdGNoUHJvcHMge1xuICAgIGNoZWNrZWQ/OiBNb2RlbFNpZ25hbDxib29sZWFuPjtcbiAgICBkZWZhdWx0Q2hlY2tlZD86IGJvb2xlYW47XG4gICAgcmVxdWlyZWQ/OiBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm08Ym9vbGVhbiwgQm9vbGVhbklucHV0PjtcbiAgICBvbkNoZWNrZWRDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG59XG5cbmxldCBpZEl0ZXJhdG9yID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdidXR0b25bcmR4U3dpdGNoUm9vdF0nLFxuICAgIGV4cG9ydEFzOiAncmR4U3dpdGNoUm9vdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBSZHhTd2l0Y2hUb2tlbiwgdXNlRXhpc3Rpbmc6IFJkeFN3aXRjaFJvb3REaXJlY3RpdmUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IFJkeFN3aXRjaFJvb3REaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ3N3aXRjaCcsXG4gICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAnW2lkXSc6ICdlbGVtZW50SWQoKScsXG4gICAgICAgICdbYXR0ci5hcmlhLWNoZWNrZWRdJzogJ2NoZWNrZWQoKScsXG4gICAgICAgICdbYXR0ci5hcmlhLXJlcXVpcmVkXSc6ICdyZXF1aXJlZCcsXG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdjaGVja2VkKCkgPyBcImNoZWNrZWRcIiA6IFwidW5jaGVja2VkXCInLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnZGlzYWJsZWRTdGF0ZSgpID8gXCJ0cnVlXCIgOiBudWxsJyxcbiAgICAgICAgJ1thdHRyLmRpc2FibGVkXSc6ICdkaXNhYmxlZFN0YXRlKCkgPyBkaXNhYmxlZFN0YXRlKCkgOiBudWxsJyxcblxuICAgICAgICAnKGZvY3VzKSc6ICdfb25Ub3VjaGVkPy4oKScsXG4gICAgICAgICcoY2xpY2spJzogJ3RvZ2dsZSgpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4U3dpdGNoUm9vdERpcmVjdGl2ZSBpbXBsZW1lbnRzIFN3aXRjaFByb3BzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgcmVhZG9ubHkgaWQgPSBpbnB1dDxzdHJpbmc+KGByZHgtc3dpdGNoLSR7aWRJdGVyYXRvcisrfWApO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBlbGVtZW50SWQgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5pZCgpID8gdGhpcy5pZCgpIDogbnVsbCkpO1xuXG4gICAgLy8gV2hlbiB0cnVlLCBpbmRpY2F0ZXMgdGhhdCB0aGUgdXNlciBtdXN0IGNoZWNrXG4gICAgLy8gdGhlIHN3aXRjaCBiZWZvcmUgdGhlIG93bmluZyBmb3JtIGNhbiBiZSBzdWJtaXR0ZWQuXG4gICAgcmVhZG9ubHkgcmVxdWlyZWQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7XG4gICAgICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZVxuICAgIH0pO1xuXG4gICAgLy8gVGhlIGNvbnRyb2xsZWQgc3RhdGUgb2YgdGhlIHN3aXRjaFxuICAgIHJlYWRvbmx5IGNoZWNrZWQgPSBtb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvLyBXaGVuIHRydWUsIHByZXZlbnRzIHRoZSB1c2VyIGZyb20gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgc3dpdGNoLlxuICAgIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwge1xuICAgICAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGVcbiAgICB9KTtcblxuICAgIC8qXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRpc2FibGVkU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRpc2FibGVkKCkpO1xuXG4gICAgQE91dHB1dCgpIG9uQ2hlY2tlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBtZXRob2QgdG8gYmUgY2FsbGVkIGluIG9yZGVyIHRvIHVwZGF0ZSBuZ01vZGVsLlxuICAgICAqL1xuICAgIF9vbkNoYW5nZT86IChjaGVja2VkOiBib29sZWFuKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogb25Ub3VjaCBmdW5jdGlvbiByZWdpc3RlcmVkIHZpYSByZWdpc3Rlck9uVG91Y2ggKENvbnRyb2xWYWx1ZUFjY2Vzc29yKS5cbiAgICAgKi9cbiAgICBfb25Ub3VjaGVkPzogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgY2hlY2tlZCBzdGF0ZSBjaGFuZ2VzLlxuICAgICAqIEBwYXJhbSBmbiBGdW5jdGlvbiB0byBjYWxsIG9uIGNoYW5nZS5cbiAgICAgKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoY2hlY2tlZDogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgY29tcG9uZW50IGlzIHRvdWNoZWQuXG4gICAgICogQHBhcmFtIGZuIEZ1bmN0aW9uIHRvIGNhbGwgb24gdG91Y2guXG4gICAgICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBtb2RlbC5cbiAgICAgKiBAcGFyYW0gY2hlY2tlZCBUaGUgbmV3IGNoZWNrZWQgdmFsdWUuXG4gICAgICovXG4gICAgd3JpdGVWYWx1ZShjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tlZC5zZXQoY2hlY2tlZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlcyB0aGUgY2hlY2tlZCBzdGF0ZSBvZiB0aGUgc3dpdGNoLlxuICAgICAqIElmIHRoZSBzd2l0Y2ggaXMgZGlzYWJsZWQsIHRoZSBmdW5jdGlvbiByZXR1cm5zIGVhcmx5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkU3RhdGUoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGVja2VkLnNldCghdGhpcy5jaGVja2VkKCkpO1xuICAgICAgICB0aGlzLl9vbkNoYW5nZT8uKHRoaXMuY2hlY2tlZCgpKTtcblxuICAgICAgICB0aGlzLm9uQ2hlY2tlZENoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZCgpKTtcbiAgICB9XG59XG4iXX0=
74
+ }] });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLXJvb3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9zd2l0Y2gvc3JjL3N3aXRjaC1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBRUwsS0FBSyxFQUVMLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQzs7QUFFdkIsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUF5QixnQkFBZ0IsQ0FBQyxDQUFDO0FBRTNGLE1BQU0sVUFBVSxZQUFZO0lBQ3hCLE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFTRCxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFxQm5CLE1BQU0sT0FBTyxzQkFBc0I7SUFuQm5DO1FBb0JhLE9BQUUsR0FBRyxLQUFLLENBQVMsY0FBYyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkMsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTlFOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFO1lBQ3BELFNBQVMsRUFBRSxnQkFBZ0I7U0FDOUIsQ0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXpDOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFO1lBQ3BELFNBQVMsRUFBRSxnQkFBZ0I7U0FDOUIsQ0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDTSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUV6RDs7V0FFRztRQUNNLG9CQUFlLEdBQUcsTUFBTSxFQUFXLENBQUM7S0FlaEQ7SUFiRzs7O09BR0c7SUFDTyxNQUFNO1FBQ1osSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN2QixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQzs4R0E3Q1Esc0JBQXNCO2tHQUF0QixzQkFBc0IsMmdDQWZwQjtZQUNQLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUU7U0FBQzs7MkZBYzVELHNCQUFzQjtrQkFuQmxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsd0JBQXdCLEVBQUU7cUJBQUM7b0JBQ3JFLElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxNQUFNLEVBQUUsYUFBYTt3QkFDckIscUJBQXFCLEVBQUUsV0FBVzt3QkFDbEMsc0JBQXNCLEVBQUUsVUFBVTt3QkFDbEMsbUJBQW1CLEVBQUUscUNBQXFDO3dCQUMxRCxzQkFBc0IsRUFBRSxpQ0FBaUM7d0JBQ3pELGlCQUFpQixFQUFFLDBDQUEwQzt3QkFFN0QsU0FBUyxFQUFFLFVBQVU7cUJBQ3hCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBjb21wdXRlZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIGlucHV0LFxuICAgIElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybSxcbiAgICBtb2RlbCxcbiAgICBNb2RlbFNpZ25hbCxcbiAgICBvdXRwdXQsXG4gICAgT3V0cHV0RW1pdHRlclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFJkeFN3aXRjaFRva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJkeFN3aXRjaFJvb3REaXJlY3RpdmU+KCdSZHhTd2l0Y2hUb2tlbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0U3dpdGNoKCk6IFJkeFN3aXRjaFJvb3REaXJlY3RpdmUge1xuICAgIHJldHVybiBpbmplY3QoUmR4U3dpdGNoVG9rZW4pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN3aXRjaFByb3BzIHtcbiAgICBjaGVja2VkPzogTW9kZWxTaWduYWw8Ym9vbGVhbj47XG4gICAgZGVmYXVsdENoZWNrZWQ/OiBib29sZWFuO1xuICAgIHJlcXVpcmVkPzogSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtPGJvb2xlYW4sIEJvb2xlYW5JbnB1dD47XG4gICAgb25DaGVja2VkQ2hhbmdlPzogT3V0cHV0RW1pdHRlclJlZjxib29sZWFuPjtcbn1cblxubGV0IGlkSXRlcmF0b3IgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2J1dHRvbltyZHhTd2l0Y2hSb290XScsXG4gICAgZXhwb3J0QXM6ICdyZHhTd2l0Y2hSb290JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IFJkeFN3aXRjaFRva2VuLCB1c2VFeGlzdGluZzogUmR4U3dpdGNoUm9vdERpcmVjdGl2ZSB9XSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdzd2l0Y2gnLFxuICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgJ1tpZF0nOiAnZWxlbWVudElkKCknLFxuICAgICAgICAnW2F0dHIuYXJpYS1jaGVja2VkXSc6ICdjaGVja2VkKCknLFxuICAgICAgICAnW2F0dHIuYXJpYS1yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnY2hlY2tlZCgpID8gXCJjaGVja2VkXCIgOiBcInVuY2hlY2tlZFwiJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkU3RhdGUoKSA/IFwidHJ1ZVwiIDogbnVsbCcsXG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWRTdGF0ZSgpID8gZGlzYWJsZWRTdGF0ZSgpIDogbnVsbCcsXG5cbiAgICAgICAgJyhjbGljayknOiAndG9nZ2xlKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhTd2l0Y2hSb290RGlyZWN0aXZlIGltcGxlbWVudHMgU3dpdGNoUHJvcHMge1xuICAgIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nPihgcmR4LXN3aXRjaC0ke2lkSXRlcmF0b3IrK31gKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWxlbWVudElkID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaWQoKSA/IHRoaXMuaWQoKSA6IG51bGwpKTtcblxuICAgIC8qKlxuICAgICAqIFdoZW4gdHJ1ZSwgaW5kaWNhdGVzIHRoYXQgdGhlIHVzZXIgbXVzdCBjaGVjayB0aGUgc3dpdGNoIGJlZm9yZSB0aGUgb3duaW5nIGZvcm0gY2FuIGJlIHN1Ym1pdHRlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSByZXF1aXJlZCA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4oZmFsc2UsIHtcbiAgICAgICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY29udHJvbGxlZCBzdGF0ZSBvZiB0aGUgc3dpdGNoLiBNdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBvbkNoZWNrZWRDaGFuZ2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2hlY2tlZCA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIFdoZW4gdHJ1ZSwgcHJldmVudHMgdGhlIHVzZXIgZnJvbSBpbnRlcmFjdGluZyB3aXRoIHRoZSBzd2l0Y2guXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7XG4gICAgICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZVxuICAgIH0pO1xuXG4gICAgLypcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGlzYWJsZWRTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGlzYWJsZWQoKSk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBzdGF0ZSBvZiB0aGUgc3dpdGNoIGNoYW5nZXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgb25DaGVja2VkQ2hhbmdlID0gb3V0cHV0PGJvb2xlYW4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIHRoZSBjaGVja2VkIHN0YXRlIG9mIHRoZSBzd2l0Y2guXG4gICAgICogSWYgdGhlIHN3aXRjaCBpcyBkaXNhYmxlZCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgZWFybHkuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWRTdGF0ZSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoZWNrZWQuc2V0KCF0aGlzLmNoZWNrZWQoKSk7XG5cbiAgICAgICAgdGhpcy5vbkNoZWNrZWRDaGFuZ2UuZW1pdCh0aGlzLmNoZWNrZWQoKSk7XG4gICAgfVxufVxuIl19