ng-primitives 0.0.7 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/README.md +14 -4
  2. package/accordion/accordion-trigger/accordion-trigger.directive.d.ts +2 -1
  3. package/autofill/README.md +3 -0
  4. package/autofill/autofill/autofill.directive.d.ts +19 -0
  5. package/{select/select-button/select-button.token.d.ts → autofill/autofill/autofill.token.d.ts} +4 -4
  6. package/autofill/index.d.ts +9 -0
  7. package/avatar/avatar/avatar.directive.d.ts +2 -1
  8. package/button/README.md +3 -0
  9. package/button/button/button.directive.d.ts +27 -0
  10. package/{select/select-option/select-option.token.d.ts → button/button/button.token.d.ts} +4 -4
  11. package/button/index.d.ts +9 -0
  12. package/checkbox/checkbox/checkbox.directive.d.ts +11 -61
  13. package/checkbox/index.d.ts +0 -4
  14. package/esm2022/a11y/visually-hidden/visually-hidden.directive.mjs +3 -3
  15. package/esm2022/accordion/accordion/accordion.directive.mjs +5 -4
  16. package/esm2022/accordion/accordion-content/accordion-content.directive.mjs +5 -6
  17. package/esm2022/accordion/accordion-item/accordion-item.directive.mjs +5 -5
  18. package/esm2022/accordion/accordion-trigger/accordion-trigger.directive.mjs +8 -5
  19. package/esm2022/autofill/autofill/autofill.directive.mjs +71 -0
  20. package/esm2022/autofill/autofill/autofill.token.mjs +16 -0
  21. package/esm2022/autofill/index.mjs +10 -0
  22. package/esm2022/autofill/ng-primitives-autofill.mjs +5 -0
  23. package/esm2022/avatar/avatar/avatar.directive.mjs +7 -4
  24. package/esm2022/avatar/avatar-fallback/avatar-fallback.directive.mjs +3 -3
  25. package/esm2022/avatar/avatar-image/avatar-image.directive.mjs +3 -3
  26. package/esm2022/button/button/button.directive.mjs +47 -0
  27. package/esm2022/button/button/button.token.mjs +16 -0
  28. package/esm2022/button/index.mjs +10 -0
  29. package/esm2022/button/ng-primitives-button.mjs +5 -0
  30. package/esm2022/checkbox/checkbox/checkbox.directive.mjs +29 -79
  31. package/esm2022/checkbox/index.mjs +1 -5
  32. package/esm2022/file-upload/file-upload/file-upload.directive.mjs +7 -4
  33. package/esm2022/focus-trap/focus-trap/focus-trap.directive.mjs +262 -0
  34. package/esm2022/focus-trap/focus-trap/focus-trap.token.mjs +16 -0
  35. package/esm2022/focus-trap/index.mjs +10 -0
  36. package/esm2022/focus-trap/ng-primitives-focus-trap.mjs +5 -0
  37. package/esm2022/form-field/description/description.directive.mjs +14 -14
  38. package/esm2022/form-field/error/error.directive.mjs +27 -29
  39. package/esm2022/form-field/form-control/form-control.directive.mjs +22 -16
  40. package/esm2022/form-field/form-field/form-field.directive.mjs +3 -3
  41. package/esm2022/form-field/form-field/form-field.token.mjs +3 -7
  42. package/esm2022/form-field/label/label.directive.mjs +56 -17
  43. package/esm2022/input/index.mjs +10 -0
  44. package/esm2022/input/input/input.directive.mjs +55 -0
  45. package/esm2022/input/input/input.token.mjs +16 -0
  46. package/esm2022/input/ng-primitives-input.mjs +5 -0
  47. package/esm2022/interactions/focus/focus.directive.mjs +15 -10
  48. package/esm2022/interactions/focus-visible/focus-visible.directive.mjs +12 -7
  49. package/esm2022/interactions/hover/hover.directive.mjs +16 -11
  50. package/esm2022/interactions/index.mjs +5 -1
  51. package/esm2022/interactions/move/move.directive.mjs +216 -0
  52. package/esm2022/interactions/move/move.token.mjs +16 -0
  53. package/esm2022/interactions/press/press.directive.mjs +118 -0
  54. package/esm2022/interactions/press/press.token.mjs +16 -0
  55. package/esm2022/internal/disabled/disabled.mjs +19 -0
  56. package/esm2022/internal/index.mjs +11 -0
  57. package/esm2022/internal/ng-primitives-internal.mjs +5 -0
  58. package/esm2022/internal/orientation/orientation.mjs +19 -0
  59. package/esm2022/internal/style-injector/style-injector.mjs +81 -0
  60. package/esm2022/progress/progress/progress.directive.mjs +3 -3
  61. package/esm2022/progress/progress-indicator/progress-indicator.directive.mjs +3 -3
  62. package/esm2022/radio/radio-group/radio-group.directive.mjs +14 -54
  63. package/esm2022/radio/radio-indicator/radio-indicator.directive.mjs +8 -5
  64. package/esm2022/radio/radio-item/radio-item.directive.mjs +8 -6
  65. package/esm2022/resize/resize/resize.directive.mjs +3 -3
  66. package/esm2022/roving-focus/roving-focus-group/roving-focus-group.directive.mjs +14 -9
  67. package/esm2022/roving-focus/roving-focus-item/roving-focus-item.directive.mjs +3 -3
  68. package/esm2022/search/index.mjs +10 -0
  69. package/esm2022/search/ng-primitives-search.mjs +5 -0
  70. package/esm2022/search/search-field/search-field.directive.mjs +47 -0
  71. package/esm2022/search/search-field/search-field.token.mjs +16 -0
  72. package/esm2022/select/index.mjs +1 -7
  73. package/esm2022/select/select/select.directive.mjs +23 -36
  74. package/esm2022/select/select/select.token.mjs +1 -1
  75. package/esm2022/slider/slider/slider.directive.mjs +18 -5
  76. package/esm2022/slider/slider-range/slider-range.directive.mjs +6 -5
  77. package/esm2022/slider/slider-thumb/slider-thumb.directive.mjs +7 -4
  78. package/esm2022/slider/slider-track/slider-track.directive.mjs +8 -4
  79. package/esm2022/switch/switch/switch.directive.mjs +18 -58
  80. package/esm2022/switch/switch-thumb/switch-thumb.directive.mjs +9 -6
  81. package/esm2022/tabs/tab-button/tab-button.directive.mjs +8 -6
  82. package/esm2022/tabs/tab-list/tab-list.directive.mjs +3 -3
  83. package/esm2022/tabs/tab-panel/tab-panel.directive.mjs +5 -6
  84. package/esm2022/tabs/tabset/tabset.directive.mjs +14 -18
  85. package/esm2022/textarea/index.mjs +10 -0
  86. package/esm2022/textarea/ng-primitives-textarea.mjs +5 -0
  87. package/esm2022/textarea/textarea/textarea.directive.mjs +37 -0
  88. package/esm2022/textarea/textarea/textarea.token.mjs +16 -0
  89. package/esm2022/toggle/toggle/toggle.directive.mjs +33 -13
  90. package/esm2022/tooltip/tooltip/tooltip.directive.mjs +3 -3
  91. package/esm2022/tooltip/tooltip-trigger/tooltip-trigger.directive.mjs +7 -7
  92. package/esm2022/utils/helpers/focus-manager.mjs +3 -3
  93. package/esm2022/utils/index.mjs +2 -2
  94. package/esm2022/utils/signals/async.mjs +11 -17
  95. package/fesm2022/ng-primitives-a11y.mjs +3 -3
  96. package/fesm2022/ng-primitives-accordion.mjs +19 -16
  97. package/fesm2022/ng-primitives-accordion.mjs.map +1 -1
  98. package/fesm2022/ng-primitives-autofill.mjs +100 -0
  99. package/fesm2022/ng-primitives-autofill.mjs.map +1 -0
  100. package/fesm2022/ng-primitives-avatar.mjs +13 -10
  101. package/fesm2022/ng-primitives-avatar.mjs.map +1 -1
  102. package/fesm2022/ng-primitives-button.mjs +76 -0
  103. package/fesm2022/ng-primitives-button.mjs.map +1 -0
  104. package/fesm2022/ng-primitives-checkbox.mjs +25 -203
  105. package/fesm2022/ng-primitives-checkbox.mjs.map +1 -1
  106. package/fesm2022/ng-primitives-file-upload.mjs +6 -3
  107. package/fesm2022/ng-primitives-file-upload.mjs.map +1 -1
  108. package/fesm2022/ng-primitives-focus-trap.mjs +291 -0
  109. package/fesm2022/ng-primitives-focus-trap.mjs.map +1 -0
  110. package/fesm2022/ng-primitives-form-field.mjs +119 -80
  111. package/fesm2022/ng-primitives-form-field.mjs.map +1 -1
  112. package/fesm2022/ng-primitives-input.mjs +84 -0
  113. package/fesm2022/ng-primitives-input.mjs.map +1 -0
  114. package/fesm2022/ng-primitives-interactions.mjs +394 -26
  115. package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
  116. package/fesm2022/ng-primitives-internal.mjs +132 -0
  117. package/fesm2022/ng-primitives-internal.mjs.map +1 -0
  118. package/fesm2022/ng-primitives-progress.mjs +6 -6
  119. package/fesm2022/ng-primitives-radio.mjs +25 -62
  120. package/fesm2022/ng-primitives-radio.mjs.map +1 -1
  121. package/fesm2022/ng-primitives-resize.mjs +3 -3
  122. package/fesm2022/ng-primitives-roving-focus.mjs +15 -10
  123. package/fesm2022/ng-primitives-roving-focus.mjs.map +1 -1
  124. package/fesm2022/ng-primitives-search.mjs +76 -0
  125. package/fesm2022/ng-primitives-search.mjs.map +1 -0
  126. package/fesm2022/ng-primitives-select.mjs +23 -395
  127. package/fesm2022/ng-primitives-select.mjs.map +1 -1
  128. package/fesm2022/ng-primitives-slider.mjs +35 -14
  129. package/fesm2022/ng-primitives-slider.mjs.map +1 -1
  130. package/fesm2022/ng-primitives-switch.mjs +23 -62
  131. package/fesm2022/ng-primitives-switch.mjs.map +1 -1
  132. package/fesm2022/ng-primitives-tabs.mjs +27 -30
  133. package/fesm2022/ng-primitives-tabs.mjs.map +1 -1
  134. package/fesm2022/ng-primitives-textarea.mjs +66 -0
  135. package/fesm2022/ng-primitives-textarea.mjs.map +1 -0
  136. package/fesm2022/ng-primitives-toggle.mjs +32 -12
  137. package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
  138. package/fesm2022/ng-primitives-tooltip.mjs +9 -9
  139. package/fesm2022/ng-primitives-tooltip.mjs.map +1 -1
  140. package/fesm2022/ng-primitives-utils.mjs +14 -20
  141. package/fesm2022/ng-primitives-utils.mjs.map +1 -1
  142. package/file-upload/file-upload/file-upload.directive.d.ts +2 -1
  143. package/focus-trap/README.md +3 -0
  144. package/focus-trap/focus-trap/focus-trap.directive.d.ts +64 -0
  145. package/{select/select-options/select-options.token.d.ts → focus-trap/focus-trap/focus-trap.token.d.ts} +4 -4
  146. package/focus-trap/index.d.ts +9 -0
  147. package/form-field/description/description.directive.d.ts +1 -1
  148. package/form-field/error/error.directive.d.ts +9 -5
  149. package/form-field/form-control/form-control.directive.d.ts +7 -3
  150. package/form-field/form-field/form-field.token.d.ts +1 -1
  151. package/form-field/label/label.directive.d.ts +3 -2
  152. package/input/README.md +3 -0
  153. package/input/index.d.ts +9 -0
  154. package/input/input/input.directive.d.ts +33 -0
  155. package/input/input/input.token.d.ts +14 -0
  156. package/interactions/focus/focus.directive.d.ts +6 -2
  157. package/interactions/focus-visible/focus-visible.directive.d.ts +5 -1
  158. package/interactions/hover/hover.directive.d.ts +5 -1
  159. package/interactions/index.d.ts +4 -0
  160. package/interactions/move/move.directive.d.ts +126 -0
  161. package/interactions/move/move.token.d.ts +14 -0
  162. package/interactions/press/press.directive.d.ts +59 -0
  163. package/interactions/press/press.token.d.ts +14 -0
  164. package/internal/README.md +3 -0
  165. package/internal/disabled/disabled.d.ts +21 -0
  166. package/internal/index.d.ts +10 -0
  167. package/internal/orientation/orientation.d.ts +22 -0
  168. package/internal/style-injector/style-injector.d.ts +36 -0
  169. package/package.json +49 -7
  170. package/radio/radio-group/radio-group.directive.d.ts +4 -41
  171. package/radio/radio-indicator/radio-indicator.directive.d.ts +2 -1
  172. package/radio/radio-item/radio-item.directive.d.ts +2 -1
  173. package/roving-focus/roving-focus-group/roving-focus-group.directive.d.ts +7 -2
  174. package/search/README.md +3 -0
  175. package/search/index.d.ts +9 -0
  176. package/search/search-field/search-field.directive.d.ts +15 -0
  177. package/search/search-field/search-field.token.d.ts +14 -0
  178. package/select/index.d.ts +0 -6
  179. package/select/select/select.directive.d.ts +7 -22
  180. package/select/select/select.token.d.ts +2 -2
  181. package/slider/slider/slider.directive.d.ts +4 -2
  182. package/slider/slider-thumb/slider-thumb.directive.d.ts +2 -1
  183. package/slider/slider-track/slider-track.directive.d.ts +1 -1
  184. package/switch/switch/switch.directive.d.ts +5 -45
  185. package/switch/switch-thumb/switch-thumb.directive.d.ts +2 -1
  186. package/tabs/tab-button/tab-button.directive.d.ts +2 -1
  187. package/tabs/tabset/tabset.directive.d.ts +3 -9
  188. package/textarea/README.md +3 -0
  189. package/textarea/index.d.ts +9 -0
  190. package/textarea/textarea/textarea.directive.d.ts +20 -0
  191. package/textarea/textarea/textarea.token.d.ts +14 -0
  192. package/toggle/toggle/toggle.directive.d.ts +16 -4
  193. package/utils/index.d.ts +1 -1
  194. package/utils/signals/async.d.ts +10 -12
  195. package/checkbox/checkbox-indicator/checkbox-indicator.directive.d.ts +0 -19
  196. package/checkbox/checkbox-indicator/checkbox-indicator.token.d.ts +0 -15
  197. package/checkbox/checkbox-input/checkbox-input.directive.d.ts +0 -10
  198. package/checkbox/checkbox-label/checkbox-label.directive.d.ts +0 -9
  199. package/esm2022/checkbox/checkbox-indicator/checkbox-indicator.directive.mjs +0 -51
  200. package/esm2022/checkbox/checkbox-indicator/checkbox-indicator.token.mjs +0 -17
  201. package/esm2022/checkbox/checkbox-input/checkbox-input.directive.mjs +0 -40
  202. package/esm2022/checkbox/checkbox-label/checkbox-label.directive.mjs +0 -32
  203. package/esm2022/select/select-button/select-button.directive.mjs +0 -84
  204. package/esm2022/select/select-button/select-button.token.mjs +0 -16
  205. package/esm2022/select/select-option/select-option.directive.mjs +0 -90
  206. package/esm2022/select/select-option/select-option.token.mjs +0 -16
  207. package/esm2022/select/select-options/select-options.directive.mjs +0 -157
  208. package/esm2022/select/select-options/select-options.token.mjs +0 -16
  209. package/select/select-button/select-button.directive.d.ts +0 -51
  210. package/select/select-option/select-option.directive.d.ts +0 -57
  211. package/select/select-options/select-options.directive.d.ts +0 -65
@@ -6,6 +6,7 @@
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
8
  import { Directive, computed, effect, input } from '@angular/core';
9
+ import { injectDisabled } from 'ng-primitives/internal';
9
10
  import { uniqueId } from 'ng-primitives/utils';
10
11
  import { injectFormField } from '../form-field/form-field.token';
11
12
  import { NgpFormControlToken } from './form-control.token';
@@ -15,7 +16,11 @@ export class NgpFormControl {
15
16
  /**
16
17
  * Access the form field that the form control is associated with.
17
18
  */
18
- this.formField = injectFormField('NgpFormControl');
19
+ this.formField = injectFormField();
20
+ /**
21
+ * Whether the form control is disabled by a parent.
22
+ */
23
+ this.disabled = injectDisabled();
19
24
  /**
20
25
  * The id of the form control. If not provided, a unique id will be generated.
21
26
  */
@@ -23,20 +28,20 @@ export class NgpFormControl {
23
28
  /**
24
29
  * Determine the aria-labelledby attribute value.
25
30
  */
26
- this.ariaLabelledBy = computed(() => this.formField.labels().join(' '));
31
+ this.ariaLabelledBy = computed(() => this.formField?.labels().join(' '));
27
32
  /**
28
33
  * Determine the aria-describedby attribute value.
29
34
  */
30
- this.ariaDescribedBy = computed(() => this.formField.descriptions().join(' '));
35
+ this.ariaDescribedBy = computed(() => this.formField?.descriptions().join(' '));
31
36
  effect(onCleanup => {
32
- this.formField.setFormControl(this.id());
33
- onCleanup(() => this.formField.removeFormControl());
37
+ this.formField?.setFormControl(this.id());
38
+ onCleanup(() => this.formField?.removeFormControl());
34
39
  }, { allowSignalWrites: true });
35
40
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NgpFormControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
37
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.2", type: NgpFormControl, isStandalone: true, selector: "[ngpFormControl]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-labelledby": "ariaLabelledBy()", "attr.aria-describedby": "ariaDescribedBy()", "attr.data-invalid": "formField.invalid()", "attr.data-valid": "formField.valid()", "attr.data-touched": "formField.touched()", "attr.data-pristine": "formField.pristine()", "attr.data-dirty": "formField.dirty()", "attr.data-pending": "formField.pending()", "attr.data-disabled": "formField.disabled()" } }, providers: [{ provide: NgpFormControlToken, useExisting: NgpFormControl }], exportAs: ["ngpFormControl"], ngImport: i0 }); }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpFormControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
42
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpFormControl, isStandalone: true, selector: "[ngpFormControl]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()", "attr.aria-labelledby": "ariaLabelledBy()", "attr.aria-describedby": "ariaDescribedBy()", "attr.data-invalid": "formField?.invalid()", "attr.data-valid": "formField?.valid()", "attr.data-touched": "formField?.touched()", "attr.data-pristine": "formField?.pristine()", "attr.data-dirty": "formField?.dirty()", "attr.data-pending": "formField?.pending()", "attr.data-disabled": "formField?.disabled() || disabled()" } }, providers: [{ provide: NgpFormControlToken, useExisting: NgpFormControl }], exportAs: ["ngpFormControl"], ngImport: i0 }); }
38
43
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NgpFormControl, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpFormControl, decorators: [{
40
45
  type: Directive,
41
46
  args: [{
42
47
  standalone: true,
@@ -44,16 +49,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
44
49
  exportAs: 'ngpFormControl',
45
50
  providers: [{ provide: NgpFormControlToken, useExisting: NgpFormControl }],
46
51
  host: {
52
+ '[id]': 'id()',
47
53
  '[attr.aria-labelledby]': 'ariaLabelledBy()',
48
54
  '[attr.aria-describedby]': 'ariaDescribedBy()',
49
- '[attr.data-invalid]': 'formField.invalid()',
50
- '[attr.data-valid]': 'formField.valid()',
51
- '[attr.data-touched]': 'formField.touched()',
52
- '[attr.data-pristine]': 'formField.pristine()',
53
- '[attr.data-dirty]': 'formField.dirty()',
54
- '[attr.data-pending]': 'formField.pending()',
55
- '[attr.data-disabled]': 'formField.disabled()',
55
+ '[attr.data-invalid]': 'formField?.invalid()',
56
+ '[attr.data-valid]': 'formField?.valid()',
57
+ '[attr.data-touched]': 'formField?.touched()',
58
+ '[attr.data-pristine]': 'formField?.pristine()',
59
+ '[attr.data-dirty]': 'formField?.dirty()',
60
+ '[attr.data-pending]': 'formField?.pending()',
61
+ '[attr.data-disabled]': 'formField?.disabled() || disabled()',
56
62
  },
57
63
  }]
58
64
  }], ctorParameters: () => [] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXByaW1pdGl2ZXMvZm9ybS1maWVsZC9zcmMvZm9ybS1jb250cm9sL2Zvcm0tY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQW1CM0QsTUFBTSxPQUFPLGNBQWM7SUFxQnpCO1FBcEJBOztXQUVHO1FBQ2dCLGNBQVMsR0FBRyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVqRTs7V0FFRztRQUNNLE9BQUUsR0FBRyxLQUFLLENBQVMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUUxRDs7V0FFRztRQUNnQixtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXRGOztXQUVHO1FBQ2dCLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFHM0YsTUFBTSxDQUNKLFNBQVMsQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFDO0lBQ0osQ0FBQzs4R0E3QlUsY0FBYztrR0FBZCxjQUFjLDhsQkFiZCxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsQ0FBQzs7MkZBYS9ELGNBQWM7a0JBakIxQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLGdCQUFnQixFQUFFLENBQUM7b0JBQzFFLElBQUksRUFBRTt3QkFDSix3QkFBd0IsRUFBRSxrQkFBa0I7d0JBQzVDLHlCQUF5QixFQUFFLG1CQUFtQjt3QkFDOUMscUJBQXFCLEVBQUUscUJBQXFCO3dCQUM1QyxtQkFBbUIsRUFBRSxtQkFBbUI7d0JBQ3hDLHFCQUFxQixFQUFFLHFCQUFxQjt3QkFDNUMsc0JBQXNCLEVBQUUsc0JBQXNCO3dCQUM5QyxtQkFBbUIsRUFBRSxtQkFBbUI7d0JBQ3hDLHFCQUFxQixFQUFFLHFCQUFxQjt3QkFDNUMsc0JBQXNCLEVBQUUsc0JBQXNCO3FCQUMvQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIENDIEJZLU5EIDQuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5pbXBvcnQgeyBEaXJlY3RpdmUsIGNvbXB1dGVkLCBlZmZlY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB1bmlxdWVJZCB9IGZyb20gJ25nLXByaW1pdGl2ZXMvdXRpbHMnO1xuaW1wb3J0IHsgaW5qZWN0Rm9ybUZpZWxkIH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLnRva2VuJztcbmltcG9ydCB7IE5ncEZvcm1Db250cm9sVG9rZW4gfSBmcm9tICcuL2Zvcm0tY29udHJvbC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3BGb3JtQ29udHJvbF0nLFxuICBleHBvcnRBczogJ25ncEZvcm1Db250cm9sJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOZ3BGb3JtQ29udHJvbFRva2VuLCB1c2VFeGlzdGluZzogTmdwRm9ybUNvbnRyb2wgfV0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdhcmlhTGFiZWxsZWRCeSgpJyxcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnYXJpYURlc2NyaWJlZEJ5KCknLFxuICAgICdbYXR0ci5kYXRhLWludmFsaWRdJzogJ2Zvcm1GaWVsZC5pbnZhbGlkKCknLFxuICAgICdbYXR0ci5kYXRhLXZhbGlkXSc6ICdmb3JtRmllbGQudmFsaWQoKScsXG4gICAgJ1thdHRyLmRhdGEtdG91Y2hlZF0nOiAnZm9ybUZpZWxkLnRvdWNoZWQoKScsXG4gICAgJ1thdHRyLmRhdGEtcHJpc3RpbmVdJzogJ2Zvcm1GaWVsZC5wcmlzdGluZSgpJyxcbiAgICAnW2F0dHIuZGF0YS1kaXJ0eV0nOiAnZm9ybUZpZWxkLmRpcnR5KCknLFxuICAgICdbYXR0ci5kYXRhLXBlbmRpbmddJzogJ2Zvcm1GaWVsZC5wZW5kaW5nKCknLFxuICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdmb3JtRmllbGQuZGlzYWJsZWQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5ncEZvcm1Db250cm9sIHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZm9ybSBmaWVsZCB0aGF0IHRoZSBmb3JtIGNvbnRyb2wgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1GaWVsZCA9IGluamVjdEZvcm1GaWVsZCgnTmdwRm9ybUNvbnRyb2wnKTtcblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBmb3JtIGNvbnRyb2wuIElmIG5vdCBwcm92aWRlZCwgYSB1bmlxdWUgaWQgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gICAqL1xuICByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZz4odW5pcXVlSWQoJ25ncC1mb3JtLWNvbnRyb2wnKSk7XG5cbiAgLyoqXG4gICAqIERldGVybWluZSB0aGUgYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBhcmlhTGFiZWxsZWRCeSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZm9ybUZpZWxkLmxhYmVscygpLmpvaW4oJyAnKSk7XG5cbiAgLyoqXG4gICAqIERldGVybWluZSB0aGUgYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUgdmFsdWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXJpYURlc2NyaWJlZEJ5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mb3JtRmllbGQuZGVzY3JpcHRpb25zKCkuam9pbignICcpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoXG4gICAgICBvbkNsZWFudXAgPT4ge1xuICAgICAgICB0aGlzLmZvcm1GaWVsZC5zZXRGb3JtQ29udHJvbCh0aGlzLmlkKCkpO1xuICAgICAgICBvbkNsZWFudXAoKCkgPT4gdGhpcy5mb3JtRmllbGQucmVtb3ZlRm9ybUNvbnRyb2woKSk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXByaW1pdGl2ZXMvZm9ybS1maWVsZC9zcmMvZm9ybS1jb250cm9sL2Zvcm0tY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFvQjNELE1BQU0sT0FBTyxjQUFjO0lBMEJ6QjtRQXpCQTs7V0FFRztRQUNnQixjQUFTLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFFakQ7O1dBRUc7UUFDZ0IsYUFBUSxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBRS9DOztXQUVHO1FBQ00sT0FBRSxHQUFHLEtBQUssQ0FBUyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBRTFEOztXQUVHO1FBQ2dCLG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdkY7O1dBRUc7UUFDZ0Isb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUc1RixNQUFNLENBQ0osU0FBUyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7SUFDSixDQUFDOzhHQWxDVSxjQUFjO2tHQUFkLGNBQWMsaW9CQWRkLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxDQUFDOzsyRkFjL0QsY0FBYztrQkFsQjFCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDMUUsSUFBSSxFQUFFO3dCQUNKLE1BQU0sRUFBRSxNQUFNO3dCQUNkLHdCQUF3QixFQUFFLGtCQUFrQjt3QkFDNUMseUJBQXlCLEVBQUUsbUJBQW1CO3dCQUM5QyxxQkFBcUIsRUFBRSxzQkFBc0I7d0JBQzdDLG1CQUFtQixFQUFFLG9CQUFvQjt3QkFDekMscUJBQXFCLEVBQUUsc0JBQXNCO3dCQUM3QyxzQkFBc0IsRUFBRSx1QkFBdUI7d0JBQy9DLG1CQUFtQixFQUFFLG9CQUFvQjt3QkFDekMscUJBQXFCLEVBQUUsc0JBQXNCO3dCQUM3QyxzQkFBc0IsRUFBRSxxQ0FBcUM7cUJBQzlEO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgwqkgMjAyNCBBbmd1bGFyIFByaW1pdGl2ZXMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmctcHJpbWl0aXZlcy9uZy1wcmltaXRpdmVzXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQ0MgQlktTkQgNC4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbmltcG9ydCB7IERpcmVjdGl2ZSwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdERpc2FibGVkIH0gZnJvbSAnbmctcHJpbWl0aXZlcy9pbnRlcm5hbCc7XG5pbXBvcnQgeyB1bmlxdWVJZCB9IGZyb20gJ25nLXByaW1pdGl2ZXMvdXRpbHMnO1xuaW1wb3J0IHsgaW5qZWN0Rm9ybUZpZWxkIH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLnRva2VuJztcbmltcG9ydCB7IE5ncEZvcm1Db250cm9sVG9rZW4gfSBmcm9tICcuL2Zvcm0tY29udHJvbC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3BGb3JtQ29udHJvbF0nLFxuICBleHBvcnRBczogJ25ncEZvcm1Db250cm9sJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOZ3BGb3JtQ29udHJvbFRva2VuLCB1c2VFeGlzdGluZzogTmdwRm9ybUNvbnRyb2wgfV0sXG4gIGhvc3Q6IHtcbiAgICAnW2lkXSc6ICdpZCgpJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdhcmlhTGFiZWxsZWRCeSgpJyxcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnYXJpYURlc2NyaWJlZEJ5KCknLFxuICAgICdbYXR0ci5kYXRhLWludmFsaWRdJzogJ2Zvcm1GaWVsZD8uaW52YWxpZCgpJyxcbiAgICAnW2F0dHIuZGF0YS12YWxpZF0nOiAnZm9ybUZpZWxkPy52YWxpZCgpJyxcbiAgICAnW2F0dHIuZGF0YS10b3VjaGVkXSc6ICdmb3JtRmllbGQ/LnRvdWNoZWQoKScsXG4gICAgJ1thdHRyLmRhdGEtcHJpc3RpbmVdJzogJ2Zvcm1GaWVsZD8ucHJpc3RpbmUoKScsXG4gICAgJ1thdHRyLmRhdGEtZGlydHldJzogJ2Zvcm1GaWVsZD8uZGlydHkoKScsXG4gICAgJ1thdHRyLmRhdGEtcGVuZGluZ10nOiAnZm9ybUZpZWxkPy5wZW5kaW5nKCknLFxuICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdmb3JtRmllbGQ/LmRpc2FibGVkKCkgfHwgZGlzYWJsZWQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5ncEZvcm1Db250cm9sIHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZm9ybSBmaWVsZCB0aGF0IHRoZSBmb3JtIGNvbnRyb2wgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1GaWVsZCA9IGluamVjdEZvcm1GaWVsZCgpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmb3JtIGNvbnRyb2wgaXMgZGlzYWJsZWQgYnkgYSBwYXJlbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbmplY3REaXNhYmxlZCgpO1xuXG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIGZvcm0gY29udHJvbC4gSWYgbm90IHByb3ZpZGVkLCBhIHVuaXF1ZSBpZCB3aWxsIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nPih1bmlxdWVJZCgnbmdwLWZvcm0tY29udHJvbCcpKTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIHRoZSBhcmlhLWxhYmVsbGVkYnkgYXR0cmlidXRlIHZhbHVlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFyaWFMYWJlbGxlZEJ5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mb3JtRmllbGQ/LmxhYmVscygpLmpvaW4oJyAnKSk7XG5cbiAgLyoqXG4gICAqIERldGVybWluZSB0aGUgYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUgdmFsdWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXJpYURlc2NyaWJlZEJ5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mb3JtRmllbGQ/LmRlc2NyaXB0aW9ucygpLmpvaW4oJyAnKSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KFxuICAgICAgb25DbGVhbnVwID0+IHtcbiAgICAgICAgdGhpcy5mb3JtRmllbGQ/LnNldEZvcm1Db250cm9sKHRoaXMuaWQoKSk7XG4gICAgICAgIG9uQ2xlYW51cCgoKSA9PiB0aGlzLmZvcm1GaWVsZD8ucmVtb3ZlRm9ybUNvbnRyb2woKSk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -150,10 +150,10 @@ export class NgpFormField {
150
150
  removeDescription(description) {
151
151
  this.descriptions.update(descriptions => descriptions.filter(d => d !== description));
152
152
  }
153
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NgpFormField, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
154
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.0.2", type: NgpFormField, isStandalone: true, selector: "[ngpFormField]", host: { properties: { "attr.data-invalid": "invalid()", "attr.data-valid": "valid()", "attr.data-touched": "touched()", "attr.data-pristine": "pristine()", "attr.data-dirty": "dirty()", "attr.data-pending": "pending()", "attr.data-disabled": "disabled()" } }, providers: [{ provide: NgpFormFieldToken, useExisting: NgpFormField }], queries: [{ propertyName: "ngControl", first: true, predicate: NgControl, descendants: true, isSignal: true }], exportAs: ["ngpFormField"], ngImport: i0 }); }
153
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpFormField, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
154
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.1.1", type: NgpFormField, isStandalone: true, selector: "[ngpFormField]", host: { properties: { "attr.data-invalid": "invalid()", "attr.data-valid": "valid()", "attr.data-touched": "touched()", "attr.data-pristine": "pristine()", "attr.data-dirty": "dirty()", "attr.data-pending": "pending()", "attr.data-disabled": "disabled()" } }, providers: [{ provide: NgpFormFieldToken, useExisting: NgpFormField }], queries: [{ propertyName: "ngControl", first: true, predicate: NgControl, descendants: true, isSignal: true }], exportAs: ["ngpFormField"], ngImport: i0 }); }
155
155
  }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NgpFormField, decorators: [{
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpFormField, decorators: [{
157
157
  type: Directive,
158
158
  args: [{
159
159
  standalone: true,
@@ -11,11 +11,7 @@ export const NgpFormFieldToken = new InjectionToken('NgpFormFieldToken');
11
11
  * Inject the FormField directive instance
12
12
  * @param primitive
13
13
  */
14
- export function injectFormField(primitive) {
15
- const formField = inject(NgpFormFieldToken, { optional: true });
16
- if (!formField) {
17
- throw new Error(`The ${primitive} directive must be used within an NgpFormField.`);
18
- }
19
- return formField;
14
+ export function injectFormField() {
15
+ return inject(NgpFormFieldToken, { optional: true });
20
16
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXByaW1pdGl2ZXMvZm9ybS1maWVsZC9zcmMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFlLG1CQUFtQixDQUFDLENBQUM7QUFFdkY7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxTQUFpQjtJQUMvQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVoRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sU0FBUyxpREFBaUQsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgwqkgMjAyNCBBbmd1bGFyIFByaW1pdGl2ZXMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmctcHJpbWl0aXZlcy9uZy1wcmltaXRpdmVzXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQ0MgQlktTkQgNC4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgTmdwRm9ybUZpZWxkIH0gZnJvbSAnLi9mb3JtLWZpZWxkLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBOZ3BGb3JtRmllbGRUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3BGb3JtRmllbGQ+KCdOZ3BGb3JtRmllbGRUb2tlbicpO1xuXG4vKipcbiAqIEluamVjdCB0aGUgRm9ybUZpZWxkIGRpcmVjdGl2ZSBpbnN0YW5jZVxuICogQHBhcmFtIHByaW1pdGl2ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Rm9ybUZpZWxkKHByaW1pdGl2ZTogc3RyaW5nKTogTmdwRm9ybUZpZWxkIHtcbiAgY29uc3QgZm9ybUZpZWxkID0gaW5qZWN0KE5ncEZvcm1GaWVsZFRva2VuLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGlmICghZm9ybUZpZWxkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgJHtwcmltaXRpdmV9IGRpcmVjdGl2ZSBtdXN0IGJlIHVzZWQgd2l0aGluIGFuIE5ncEZvcm1GaWVsZC5gKTtcbiAgfVxuXG4gIHJldHVybiBmb3JtRmllbGQ7XG59XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXByaW1pdGl2ZXMvZm9ybS1maWVsZC9zcmMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFlLG1CQUFtQixDQUFDLENBQUM7QUFFdkY7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGVBQWU7SUFDN0IsT0FBTyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgwqkgMjAyNCBBbmd1bGFyIFByaW1pdGl2ZXMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmctcHJpbWl0aXZlcy9uZy1wcmltaXRpdmVzXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQ0MgQlktTkQgNC4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgTmdwRm9ybUZpZWxkIH0gZnJvbSAnLi9mb3JtLWZpZWxkLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBOZ3BGb3JtRmllbGRUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3BGb3JtRmllbGQ+KCdOZ3BGb3JtRmllbGRUb2tlbicpO1xuXG4vKipcbiAqIEluamVjdCB0aGUgRm9ybUZpZWxkIGRpcmVjdGl2ZSBpbnN0YW5jZVxuICogQHBhcmFtIHByaW1pdGl2ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Rm9ybUZpZWxkKCk6IE5ncEZvcm1GaWVsZCB8IG51bGwge1xuICByZXR1cm4gaW5qZWN0KE5ncEZvcm1GaWVsZFRva2VuLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xufVxuIl19
@@ -5,7 +5,7 @@
5
5
  * This source code is licensed under the CC BY-ND 4.0 license found in the
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
- import { Directive, ElementRef, computed, effect, inject, input } from '@angular/core';
8
+ import { Directive, ElementRef, HostListener, computed, effect, inject, input, } from '@angular/core';
9
9
  import { uniqueId } from 'ng-primitives/utils';
10
10
  import { injectFormField } from '../form-field/form-field.token';
11
11
  import { NgpLabelToken } from './label.token';
@@ -19,7 +19,7 @@ export class NgpLabel {
19
19
  /**
20
20
  * Access the form field that the label is associated with.
21
21
  */
22
- this.formField = injectFormField('NgpLabel');
22
+ this.formField = injectFormField();
23
23
  /**
24
24
  * The id of the label. If not provided, a unique id will be generated.
25
25
  */
@@ -31,16 +31,52 @@ export class NgpLabel {
31
31
  /**
32
32
  * Derive the for attribute value if the label is an HTML label element.
33
33
  */
34
- this.htmlFor = computed(() => (this.isLabel ? this.formField.formControl() : null));
34
+ this.htmlFor = computed(() => this.formField?.formControl());
35
35
  effect(onCleanup => {
36
- this.formField.addLabel(this.id());
37
- onCleanup(() => this.formField.removeLabel(this.id()));
36
+ this.formField?.addLabel(this.id());
37
+ onCleanup(() => this.formField?.removeLabel(this.id()));
38
38
  }, { allowSignalWrites: true });
39
39
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NgpLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
41
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.2", type: NgpLabel, isStandalone: true, selector: "[ngpLabel]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "id()", "attr.for": "htmlFor()", "attr.data-invalid": "formField.invalid()", "attr.data-valid": "formField.valid()", "attr.data-touched": "formField.touched()", "attr.data-pristine": "formField.pristine()", "attr.data-dirty": "formField.dirty()", "attr.data-pending": "formField.pending()", "attr.data-disabled": "formField.disabled()" } }, providers: [{ provide: NgpLabelToken, useExisting: NgpLabel }], exportAs: ["ngpLabel"], ngImport: i0 }); }
40
+ onClick(event) {
41
+ // by default a label will perform a click on the associated form control, however
42
+ // this only works if the associated form control is an input element which may not always
43
+ // be the case, so we prevent the default behavior and handle the click event ourselves.
44
+ // This was inspired by the HeadlessUI approach:
45
+ // https://github.com/tailwindlabs/headlessui/blob/main/packages/%40headlessui-react/src/components/label/label.tsx#L58
46
+ if (this.isLabel) {
47
+ event.preventDefault();
48
+ }
49
+ // to find the associated form control we can lookup via the known id
50
+ const targetId = this.htmlFor();
51
+ if (!targetId) {
52
+ return;
53
+ }
54
+ const target = document.getElementById(targetId);
55
+ if (!target) {
56
+ return;
57
+ }
58
+ // if the target is disabled then do nothing
59
+ const disabled = target.getAttribute('disabled');
60
+ const ariaDisabled = target.getAttribute('aria-disabled');
61
+ if (disabled === '' || disabled === 'true' || ariaDisabled === 'true') {
62
+ return;
63
+ }
64
+ // radio buttons, checkboxes and switches should all be clicked immediately as they require state changes
65
+ if ((target instanceof HTMLInputElement &&
66
+ (target.type === 'radio' || target.type === 'checkbox')) ||
67
+ target.role === 'radio' ||
68
+ target.role === 'checkbox' ||
69
+ target.role === 'switch') {
70
+ target.click();
71
+ }
72
+ // Move focus to the element, this allows you to start using keyboard shortcuts since the
73
+ // bound element is now focused.
74
+ target.focus({ preventScroll: true });
75
+ }
76
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
77
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpLabel, isStandalone: true, selector: "[ngpLabel]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.id": "id()", "attr.for": "htmlFor()", "attr.data-invalid": "formField?.invalid()", "attr.data-valid": "formField?.valid()", "attr.data-touched": "formField?.touched()", "attr.data-pristine": "formField?.pristine()", "attr.data-dirty": "formField?.dirty()", "attr.data-pending": "formField?.pending()", "attr.data-disabled": "formField?.disabled()" } }, providers: [{ provide: NgpLabelToken, useExisting: NgpLabel }], exportAs: ["ngpLabel"], ngImport: i0 }); }
42
78
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NgpLabel, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpLabel, decorators: [{
44
80
  type: Directive,
45
81
  args: [{
46
82
  standalone: true,
@@ -50,14 +86,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
50
86
  host: {
51
87
  '[attr.id]': 'id()',
52
88
  '[attr.for]': 'htmlFor()',
53
- '[attr.data-invalid]': 'formField.invalid()',
54
- '[attr.data-valid]': 'formField.valid()',
55
- '[attr.data-touched]': 'formField.touched()',
56
- '[attr.data-pristine]': 'formField.pristine()',
57
- '[attr.data-dirty]': 'formField.dirty()',
58
- '[attr.data-pending]': 'formField.pending()',
59
- '[attr.data-disabled]': 'formField.disabled()',
89
+ '[attr.data-invalid]': 'formField?.invalid()',
90
+ '[attr.data-valid]': 'formField?.valid()',
91
+ '[attr.data-touched]': 'formField?.touched()',
92
+ '[attr.data-pristine]': 'formField?.pristine()',
93
+ '[attr.data-dirty]': 'formField?.dirty()',
94
+ '[attr.data-pending]': 'formField?.pending()',
95
+ '[attr.data-disabled]': 'formField?.disabled()',
60
96
  },
61
97
  }]
62
- }], ctorParameters: () => [] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9mb3JtLWZpZWxkL3NyYy9sYWJlbC9sYWJlbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFtQjlDLE1BQU0sT0FBTyxRQUFRO0lBMEJuQjtRQXpCQTs7V0FFRztRQUNjLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRTFFOztXQUVHO1FBQ2dCLGNBQVMsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0Q7O1dBRUc7UUFDTSxPQUFFLEdBQUcsS0FBSyxDQUFTLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRW5EOztXQUVHO1FBQ2dCLFlBQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsWUFBWSxnQkFBZ0IsQ0FBQztRQUV2Rjs7V0FFRztRQUNnQixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUdoRyxNQUFNLENBQ0osU0FBUyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RCxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7OEdBbENVLFFBQVE7a0dBQVIsUUFBUSwwaUJBYlIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxDQUFDOzsyRkFhbkQsUUFBUTtrQkFqQnBCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsVUFBVTtvQkFDcEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsVUFBVSxFQUFFLENBQUM7b0JBQzlELElBQUksRUFBRTt3QkFDSixXQUFXLEVBQUUsTUFBTTt3QkFDbkIsWUFBWSxFQUFFLFdBQVc7d0JBQ3pCLHFCQUFxQixFQUFFLHFCQUFxQjt3QkFDNUMsbUJBQW1CLEVBQUUsbUJBQW1CO3dCQUN4QyxxQkFBcUIsRUFBRSxxQkFBcUI7d0JBQzVDLHNCQUFzQixFQUFFLHNCQUFzQjt3QkFDOUMsbUJBQW1CLEVBQUUsbUJBQW1CO3dCQUN4QyxxQkFBcUIsRUFBRSxxQkFBcUI7d0JBQzVDLHNCQUFzQixFQUFFLHNCQUFzQjtxQkFDL0M7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCDCqSAyMDI0IEFuZ3VsYXIgUHJpbWl0aXZlcy5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wcmltaXRpdmVzL25nLXByaW1pdGl2ZXNcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBDQyBCWS1ORCA0LjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB1bmlxdWVJZCB9IGZyb20gJ25nLXByaW1pdGl2ZXMvdXRpbHMnO1xuaW1wb3J0IHsgaW5qZWN0Rm9ybUZpZWxkIH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLnRva2VuJztcbmltcG9ydCB7IE5ncExhYmVsVG9rZW4gfSBmcm9tICcuL2xhYmVsLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW25ncExhYmVsXScsXG4gIGV4cG9ydEFzOiAnbmdwTGFiZWwnLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5ncExhYmVsVG9rZW4sIHVzZUV4aXN0aW5nOiBOZ3BMYWJlbCB9XSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5pZF0nOiAnaWQoKScsXG4gICAgJ1thdHRyLmZvcl0nOiAnaHRtbEZvcigpJyxcbiAgICAnW2F0dHIuZGF0YS1pbnZhbGlkXSc6ICdmb3JtRmllbGQuaW52YWxpZCgpJyxcbiAgICAnW2F0dHIuZGF0YS12YWxpZF0nOiAnZm9ybUZpZWxkLnZhbGlkKCknLFxuICAgICdbYXR0ci5kYXRhLXRvdWNoZWRdJzogJ2Zvcm1GaWVsZC50b3VjaGVkKCknLFxuICAgICdbYXR0ci5kYXRhLXByaXN0aW5lXSc6ICdmb3JtRmllbGQucHJpc3RpbmUoKScsXG4gICAgJ1thdHRyLmRhdGEtZGlydHldJzogJ2Zvcm1GaWVsZC5kaXJ0eSgpJyxcbiAgICAnW2F0dHIuZGF0YS1wZW5kaW5nXSc6ICdmb3JtRmllbGQucGVuZGluZygpJyxcbiAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnZm9ybUZpZWxkLmRpc2FibGVkKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BMYWJlbCB7XG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGVsZW1lbnQgdGhhdCB0aGUgbGFiZWwgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBmb3JtIGZpZWxkIHRoYXQgdGhlIGxhYmVsIGlzIGFzc29jaWF0ZWQgd2l0aC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtRmllbGQgPSBpbmplY3RGb3JtRmllbGQoJ05ncExhYmVsJyk7XG5cbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgbGFiZWwuIElmIG5vdCBwcm92aWRlZCwgYSB1bmlxdWUgaWQgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gICAqL1xuICByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZz4odW5pcXVlSWQoJ25ncC1sYWJlbCcpKTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIGlmIHRoZSBsYWJlbCBpcyBhbiBIVE1MIGxhYmVsIGVsZW1lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNMYWJlbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTExhYmVsRWxlbWVudDtcblxuICAvKipcbiAgICogRGVyaXZlIHRoZSBmb3IgYXR0cmlidXRlIHZhbHVlIGlmIHRoZSBsYWJlbCBpcyBhbiBIVE1MIGxhYmVsIGVsZW1lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHRtbEZvciA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmlzTGFiZWwgPyB0aGlzLmZvcm1GaWVsZC5mb3JtQ29udHJvbCgpIDogbnVsbCkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdChcbiAgICAgIG9uQ2xlYW51cCA9PiB7XG4gICAgICAgIHRoaXMuZm9ybUZpZWxkLmFkZExhYmVsKHRoaXMuaWQoKSk7XG4gICAgICAgIG9uQ2xlYW51cCgoKSA9PiB0aGlzLmZvcm1GaWVsZC5yZW1vdmVMYWJlbCh0aGlzLmlkKCkpKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcbiAgfVxufVxuIl19
98
+ }], ctorParameters: () => [], propDecorators: { onClick: [{
99
+ type: HostListener,
100
+ args: ['click', ['$event']]
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9mb3JtLWZpZWxkL3NyYy9sYWJlbC9sYWJlbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBbUI5QyxNQUFNLE9BQU8sUUFBUTtJQTBCbkI7UUF6QkE7O1dBRUc7UUFDYyxlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUUxRTs7V0FFRztRQUNnQixjQUFTLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFFakQ7O1dBRUc7UUFDTSxPQUFFLEdBQUcsS0FBSyxDQUFTLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRW5EOztXQUVHO1FBQ2dCLFlBQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsWUFBWSxnQkFBZ0IsQ0FBQztRQUV2Rjs7V0FFRztRQUNnQixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUd6RSxNQUFNLENBQ0osU0FBUyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFHUyxPQUFPLENBQUMsS0FBaUI7UUFDakMsa0ZBQWtGO1FBQ2xGLDBGQUEwRjtRQUMxRix3RkFBd0Y7UUFDeEYsZ0RBQWdEO1FBQ2hELHVIQUF1SDtRQUN2SCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUVELHFFQUFxRTtRQUNyRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFaEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU87UUFDVCxDQUFDO1FBRUQsNENBQTRDO1FBQzVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUxRCxJQUFJLFFBQVEsS0FBSyxFQUFFLElBQUksUUFBUSxLQUFLLE1BQU0sSUFBSSxZQUFZLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDdEUsT0FBTztRQUNULENBQUM7UUFFRCx5R0FBeUc7UUFDekcsSUFDRSxDQUFDLE1BQU0sWUFBWSxnQkFBZ0I7WUFDakMsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1lBQzFELE1BQU0sQ0FBQyxJQUFJLEtBQUssT0FBTztZQUN2QixNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVU7WUFDMUIsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQ3hCLENBQUM7WUFDRCxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQztRQUVELHlGQUF5RjtRQUN6RixnQ0FBZ0M7UUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OEdBbEZVLFFBQVE7a0dBQVIsUUFBUSw0bEJBYlIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxDQUFDOzsyRkFhbkQsUUFBUTtrQkFqQnBCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsVUFBVTtvQkFDcEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsVUFBVSxFQUFFLENBQUM7b0JBQzlELElBQUksRUFBRTt3QkFDSixXQUFXLEVBQUUsTUFBTTt3QkFDbkIsWUFBWSxFQUFFLFdBQVc7d0JBQ3pCLHFCQUFxQixFQUFFLHNCQUFzQjt3QkFDN0MsbUJBQW1CLEVBQUUsb0JBQW9CO3dCQUN6QyxxQkFBcUIsRUFBRSxzQkFBc0I7d0JBQzdDLHNCQUFzQixFQUFFLHVCQUF1Qjt3QkFDL0MsbUJBQW1CLEVBQUUsb0JBQW9CO3dCQUN6QyxxQkFBcUIsRUFBRSxzQkFBc0I7d0JBQzdDLHNCQUFzQixFQUFFLHVCQUF1QjtxQkFDaEQ7aUJBQ0Y7d0RBc0NXLE9BQU87c0JBRGhCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgwqkgMjAyNCBBbmd1bGFyIFByaW1pdGl2ZXMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmctcHJpbWl0aXZlcy9uZy1wcmltaXRpdmVzXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQ0MgQlktTkQgNC4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHVuaXF1ZUlkIH0gZnJvbSAnbmctcHJpbWl0aXZlcy91dGlscyc7XG5pbXBvcnQgeyBpbmplY3RGb3JtRmllbGQgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQudG9rZW4nO1xuaW1wb3J0IHsgTmdwTGFiZWxUb2tlbiB9IGZyb20gJy4vbGFiZWwudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbbmdwTGFiZWxdJyxcbiAgZXhwb3J0QXM6ICduZ3BMYWJlbCcsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmdwTGFiZWxUb2tlbiwgdXNlRXhpc3Rpbmc6IE5ncExhYmVsIH1dLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmlkXSc6ICdpZCgpJyxcbiAgICAnW2F0dHIuZm9yXSc6ICdodG1sRm9yKCknLFxuICAgICdbYXR0ci5kYXRhLWludmFsaWRdJzogJ2Zvcm1GaWVsZD8uaW52YWxpZCgpJyxcbiAgICAnW2F0dHIuZGF0YS12YWxpZF0nOiAnZm9ybUZpZWxkPy52YWxpZCgpJyxcbiAgICAnW2F0dHIuZGF0YS10b3VjaGVkXSc6ICdmb3JtRmllbGQ/LnRvdWNoZWQoKScsXG4gICAgJ1thdHRyLmRhdGEtcHJpc3RpbmVdJzogJ2Zvcm1GaWVsZD8ucHJpc3RpbmUoKScsXG4gICAgJ1thdHRyLmRhdGEtZGlydHldJzogJ2Zvcm1GaWVsZD8uZGlydHkoKScsXG4gICAgJ1thdHRyLmRhdGEtcGVuZGluZ10nOiAnZm9ybUZpZWxkPy5wZW5kaW5nKCknLFxuICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdmb3JtRmllbGQ/LmRpc2FibGVkKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BMYWJlbCB7XG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGVsZW1lbnQgdGhhdCB0aGUgbGFiZWwgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBmb3JtIGZpZWxkIHRoYXQgdGhlIGxhYmVsIGlzIGFzc29jaWF0ZWQgd2l0aC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtRmllbGQgPSBpbmplY3RGb3JtRmllbGQoKTtcblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBsYWJlbC4gSWYgbm90IHByb3ZpZGVkLCBhIHVuaXF1ZSBpZCB3aWxsIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nPih1bmlxdWVJZCgnbmdwLWxhYmVsJykpO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgaWYgdGhlIGxhYmVsIGlzIGFuIEhUTUwgbGFiZWwgZWxlbWVudC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBpc0xhYmVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MTGFiZWxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBEZXJpdmUgdGhlIGZvciBhdHRyaWJ1dGUgdmFsdWUgaWYgdGhlIGxhYmVsIGlzIGFuIEhUTUwgbGFiZWwgZWxlbWVudC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBodG1sRm9yID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mb3JtRmllbGQ/LmZvcm1Db250cm9sKCkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdChcbiAgICAgIG9uQ2xlYW51cCA9PiB7XG4gICAgICAgIHRoaXMuZm9ybUZpZWxkPy5hZGRMYWJlbCh0aGlzLmlkKCkpO1xuICAgICAgICBvbkNsZWFudXAoKCkgPT4gdGhpcy5mb3JtRmllbGQ/LnJlbW92ZUxhYmVsKHRoaXMuaWQoKSkpO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIC8vIGJ5IGRlZmF1bHQgYSBsYWJlbCB3aWxsIHBlcmZvcm0gYSBjbGljayBvbiB0aGUgYXNzb2NpYXRlZCBmb3JtIGNvbnRyb2wsIGhvd2V2ZXJcbiAgICAvLyB0aGlzIG9ubHkgd29ya3MgaWYgdGhlIGFzc29jaWF0ZWQgZm9ybSBjb250cm9sIGlzIGFuIGlucHV0IGVsZW1lbnQgd2hpY2ggbWF5IG5vdCBhbHdheXNcbiAgICAvLyBiZSB0aGUgY2FzZSwgc28gd2UgcHJldmVudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBhbmQgaGFuZGxlIHRoZSBjbGljayBldmVudCBvdXJzZWx2ZXMuXG4gICAgLy8gVGhpcyB3YXMgaW5zcGlyZWQgYnkgdGhlIEhlYWRsZXNzVUkgYXBwcm9hY2g6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kbGFicy9oZWFkbGVzc3VpL2Jsb2IvbWFpbi9wYWNrYWdlcy8lNDBoZWFkbGVzc3VpLXJlYWN0L3NyYy9jb21wb25lbnRzL2xhYmVsL2xhYmVsLnRzeCNMNThcbiAgICBpZiAodGhpcy5pc0xhYmVsKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIC8vIHRvIGZpbmQgdGhlIGFzc29jaWF0ZWQgZm9ybSBjb250cm9sIHdlIGNhbiBsb29rdXAgdmlhIHRoZSBrbm93biBpZFxuICAgIGNvbnN0IHRhcmdldElkID0gdGhpcy5odG1sRm9yKCk7XG5cbiAgICBpZiAoIXRhcmdldElkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFyZ2V0SWQpO1xuXG4gICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGUgdGFyZ2V0IGlzIGRpc2FibGVkIHRoZW4gZG8gbm90aGluZ1xuICAgIGNvbnN0IGRpc2FibGVkID0gdGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICBjb25zdCBhcmlhRGlzYWJsZWQgPSB0YXJnZXQuZ2V0QXR0cmlidXRlKCdhcmlhLWRpc2FibGVkJyk7XG5cbiAgICBpZiAoZGlzYWJsZWQgPT09ICcnIHx8IGRpc2FibGVkID09PSAndHJ1ZScgfHwgYXJpYURpc2FibGVkID09PSAndHJ1ZScpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyByYWRpbyBidXR0b25zLCBjaGVja2JveGVzIGFuZCBzd2l0Y2hlcyBzaG91bGQgYWxsIGJlIGNsaWNrZWQgaW1tZWRpYXRlbHkgYXMgdGhleSByZXF1aXJlIHN0YXRlIGNoYW5nZXNcbiAgICBpZiAoXG4gICAgICAodGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCAmJlxuICAgICAgICAodGFyZ2V0LnR5cGUgPT09ICdyYWRpbycgfHwgdGFyZ2V0LnR5cGUgPT09ICdjaGVja2JveCcpKSB8fFxuICAgICAgdGFyZ2V0LnJvbGUgPT09ICdyYWRpbycgfHxcbiAgICAgIHRhcmdldC5yb2xlID09PSAnY2hlY2tib3gnIHx8XG4gICAgICB0YXJnZXQucm9sZSA9PT0gJ3N3aXRjaCdcbiAgICApIHtcbiAgICAgIHRhcmdldC5jbGljaygpO1xuICAgIH1cblxuICAgIC8vIE1vdmUgZm9jdXMgdG8gdGhlIGVsZW1lbnQsIHRoaXMgYWxsb3dzIHlvdSB0byBzdGFydCB1c2luZyBrZXlib2FyZCBzaG9ydGN1dHMgc2luY2UgdGhlXG4gICAgLy8gYm91bmQgZWxlbWVudCBpcyBub3cgZm9jdXNlZC5cbiAgICB0YXJnZXQuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright © 2024 Angular Primitives.
3
+ * https://github.com/ng-primitives/ng-primitives
4
+ *
5
+ * This source code is licensed under the CC BY-ND 4.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ export { NgpInput } from './input/input.directive';
9
+ export { NgpInputToken } from './input/input.token';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2lucHV0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgwqkgMjAyNCBBbmd1bGFyIFByaW1pdGl2ZXMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmctcHJpbWl0aXZlcy9uZy1wcmltaXRpdmVzXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQ0MgQlktTkQgNC4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuZXhwb3J0IHsgTmdwSW5wdXQgfSBmcm9tICcuL2lucHV0L2lucHV0LmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBOZ3BJbnB1dFRva2VuIH0gZnJvbSAnLi9pbnB1dC9pbnB1dC50b2tlbic7XG4iXX0=
@@ -0,0 +1,55 @@
1
+ import { booleanAttribute, Directive, ElementRef, HostListener, inject, input, signal, } from '@angular/core';
2
+ import { NgpAutofill } from 'ng-primitives/autofill';
3
+ import { NgpFormControl } from 'ng-primitives/form-field';
4
+ import { NgpFocus, NgpHover, NgpPress } from 'ng-primitives/interactions';
5
+ import { NgpDisabledToken } from 'ng-primitives/internal';
6
+ import { NgpInputToken } from './input.token';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "ng-primitives/form-field";
9
+ import * as i2 from "ng-primitives/interactions";
10
+ import * as i3 from "ng-primitives/autofill";
11
+ export class NgpInput {
12
+ constructor() {
13
+ /**
14
+ * Access the underlying input element.
15
+ * @internal
16
+ */
17
+ this.element = inject(ElementRef);
18
+ /**
19
+ * Whether the element is disabled.
20
+ */
21
+ this.disabled = input(false, {
22
+ transform: booleanAttribute,
23
+ });
24
+ /**
25
+ * Sync the input value.
26
+ * @internal
27
+ */
28
+ this.value = signal(this.element.nativeElement.value);
29
+ }
30
+ valueDidChange() {
31
+ this.value.set(this.element.nativeElement.value);
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpInput, isStandalone: true, selector: "input[ngpInput]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "valueDidChange()" } }, providers: [
35
+ { provide: NgpInputToken, useExisting: NgpInput },
36
+ { provide: NgpDisabledToken, useExisting: NgpInput },
37
+ ], exportAs: ["ngpInput"], hostDirectives: [{ directive: i1.NgpFormControl }, { directive: i2.NgpHover }, { directive: i2.NgpFocus }, { directive: i2.NgpPress }, { directive: i3.NgpAutofill }], ngImport: i0 }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpInput, decorators: [{
40
+ type: Directive,
41
+ args: [{
42
+ standalone: true,
43
+ selector: 'input[ngpInput]',
44
+ exportAs: 'ngpInput',
45
+ providers: [
46
+ { provide: NgpInputToken, useExisting: NgpInput },
47
+ { provide: NgpDisabledToken, useExisting: NgpInput },
48
+ ],
49
+ hostDirectives: [NgpFormControl, NgpHover, NgpFocus, NgpPress, NgpAutofill],
50
+ }]
51
+ }], propDecorators: { valueDidChange: [{
52
+ type: HostListener,
53
+ args: ['input']
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9pbnB1dC9zcmMvaW5wdXQvaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRSxPQUFPLEVBQWlCLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFZOUMsTUFBTSxPQUFPLFFBQVE7SUFWckI7UUFXRTs7O1dBR0c7UUFDTSxZQUFPLEdBQUcsTUFBTSxDQUErQixVQUFVLENBQUMsQ0FBQztRQUVwRTs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQXdCLEtBQUssRUFBRTtZQUN0RCxTQUFTLEVBQUUsZ0JBQWdCO1NBQzVCLENBQUMsQ0FBQztRQUVIOzs7V0FHRztRQUNNLFVBQUssR0FBRyxNQUFNLENBQVMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7S0FNbkU7SUFIVyxjQUFjO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7OEdBdkJVLFFBQVE7a0dBQVIsUUFBUSxpUUFOUjtZQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFO1lBQ2pELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7U0FDckQ7OzJGQUdVLFFBQVE7a0JBVnBCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRSxVQUFVO29CQUNwQixTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsVUFBVSxFQUFFO3dCQUNqRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLFVBQVUsRUFBRTtxQkFDckQ7b0JBQ0QsY0FBYyxFQUFFLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQztpQkFDNUU7OEJBc0JXLGNBQWM7c0JBRHZCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIENDIEJZLU5EIDQuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3BBdXRvZmlsbCB9IGZyb20gJ25nLXByaW1pdGl2ZXMvYXV0b2ZpbGwnO1xuaW1wb3J0IHsgTmdwRm9ybUNvbnRyb2wgfSBmcm9tICduZy1wcmltaXRpdmVzL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTmdwRm9jdXMsIE5ncEhvdmVyLCBOZ3BQcmVzcyB9IGZyb20gJ25nLXByaW1pdGl2ZXMvaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IE5ncENhbkRpc2FibGUsIE5ncERpc2FibGVkVG9rZW4gfSBmcm9tICduZy1wcmltaXRpdmVzL2ludGVybmFsJztcbmltcG9ydCB7IE5ncElucHV0VG9rZW4gfSBmcm9tICcuL2lucHV0LnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaW5wdXRbbmdwSW5wdXRdJyxcbiAgZXhwb3J0QXM6ICduZ3BJbnB1dCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTmdwSW5wdXRUb2tlbiwgdXNlRXhpc3Rpbmc6IE5ncElucHV0IH0sXG4gICAgeyBwcm92aWRlOiBOZ3BEaXNhYmxlZFRva2VuLCB1c2VFeGlzdGluZzogTmdwSW5wdXQgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtOZ3BGb3JtQ29udHJvbCwgTmdwSG92ZXIsIE5ncEZvY3VzLCBOZ3BQcmVzcywgTmdwQXV0b2ZpbGxdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BJbnB1dCBpbXBsZW1lbnRzIE5ncENhbkRpc2FibGUge1xuICAvKipcbiAgICogQWNjZXNzIHRoZSB1bmRlcmx5aW5nIGlucHV0IGVsZW1lbnQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwge1xuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFN5bmMgdGhlIGlucHV0IHZhbHVlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlID0gc2lnbmFsPHN0cmluZz4odGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JylcbiAgcHJvdGVjdGVkIHZhbHVlRGlkQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUuc2V0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright © 2024 Angular Primitives.
3
+ * https://github.com/ng-primitives/ng-primitives
4
+ *
5
+ * This source code is licensed under the CC BY-ND 4.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { InjectionToken, inject } from '@angular/core';
9
+ export const NgpInputToken = new InjectionToken('NgpInputToken');
10
+ /**
11
+ * Inject the Input directive instance
12
+ */
13
+ export function injectInput() {
14
+ return inject(NgpInputToken);
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2lucHV0L3NyYy9pbnB1dC9pbnB1dC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQVcsZUFBZSxDQUFDLENBQUM7QUFFM0U7O0dBRUc7QUFDSCxNQUFNLFVBQVUsV0FBVztJQUN6QixPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgwqkgMjAyNCBBbmd1bGFyIFByaW1pdGl2ZXMuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmctcHJpbWl0aXZlcy9uZy1wcmltaXRpdmVzXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQ0MgQlktTkQgNC4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgTmdwSW5wdXQgfSBmcm9tICcuL2lucHV0LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBOZ3BJbnB1dFRva2VuID0gbmV3IEluamVjdGlvblRva2VuPE5ncElucHV0PignTmdwSW5wdXRUb2tlbicpO1xuXG4vKipcbiAqIEluamVjdCB0aGUgSW5wdXQgZGlyZWN0aXZlIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJbnB1dCgpOiBOZ3BJbnB1dCB7XG4gIHJldHVybiBpbmplY3QoTmdwSW5wdXRUb2tlbik7XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcHJpbWl0aXZlcy1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXByaW1pdGl2ZXMvaW5wdXQvc3JjL25nLXByaW1pdGl2ZXMtaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { Directive, HostListener, booleanAttribute, input, output, signal } from '@angular/core';
2
+ import { injectDisabled } from 'ng-primitives/internal';
2
3
  import { NgpFocusToken } from './focus.token';
3
4
  import * as i0 from "@angular/core";
4
5
  /**
@@ -18,23 +19,27 @@ export class NgpFocus {
18
19
  alias: 'ngpFocusDisabled',
19
20
  transform: booleanAttribute,
20
21
  });
22
+ /**
23
+ * Access the disabled state from any parent.
24
+ */
25
+ this.isDisabled = injectDisabled(this.disabled);
21
26
  /**
22
27
  * Emit when the focus state changes.
23
28
  */
24
- this.stateChange = output({ alias: 'ngpFocusChange' });
29
+ this.focus = output({ alias: 'ngpFocus' });
25
30
  }
26
31
  /**
27
32
  * Listen for focus events.
28
33
  * @param event
29
34
  */
30
35
  onFocus(event) {
31
- if (this.disabled()) {
36
+ if (this.isDisabled()) {
32
37
  return;
33
38
  }
34
39
  const ownerDocument = event.target?.ownerDocument ?? document;
35
40
  // ensure this element is still focused
36
41
  if (ownerDocument.activeElement === event.target && event.currentTarget === event.target) {
37
- this.stateChange.emit(true);
42
+ this.focus.emit(true);
38
43
  this.isFocused.set(true);
39
44
  }
40
45
  }
@@ -43,18 +48,18 @@ export class NgpFocus {
43
48
  * @param event
44
49
  */
45
50
  onBlur(event) {
46
- if (this.disabled()) {
51
+ if (this.isDisabled()) {
47
52
  return;
48
53
  }
49
54
  if (event.currentTarget === event.target) {
50
- this.stateChange.emit(false);
55
+ this.focus.emit(false);
51
56
  this.isFocused.set(false);
52
57
  }
53
58
  }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NgpFocus, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
55
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.2", type: NgpFocus, isStandalone: true, selector: "[ngpFocus]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpFocusDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { stateChange: "ngpFocusChange" }, host: { listeners: { "focus": "onFocus($event)", "blur": "onBlur($event)" }, properties: { "attr.data-focused": "isFocused()" } }, providers: [{ provide: NgpFocusToken, useExisting: NgpFocus }], exportAs: ["ngpFocus"], ngImport: i0 }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpFocus, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpFocus, isStandalone: true, selector: "[ngpFocus]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpFocusDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focus: "ngpFocus" }, host: { listeners: { "focus": "onFocus($event)", "blur": "onBlur($event)" }, properties: { "attr.data-focus": "isFocused()" } }, providers: [{ provide: NgpFocusToken, useExisting: NgpFocus }], exportAs: ["ngpFocus"], ngImport: i0 }); }
56
61
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NgpFocus, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpFocus, decorators: [{
58
63
  type: Directive,
59
64
  args: [{
60
65
  standalone: true,
@@ -62,7 +67,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
62
67
  exportAs: 'ngpFocus',
63
68
  providers: [{ provide: NgpFocusToken, useExisting: NgpFocus }],
64
69
  host: {
65
- '[attr.data-focused]': 'isFocused()',
70
+ '[attr.data-focus]': 'isFocused()',
66
71
  },
67
72
  }]
68
73
  }], propDecorators: { onFocus: [{
@@ -72,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
72
77
  type: HostListener,
73
78
  args: ['blur', ['$event']]
74
79
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9pbnRlcmFjdGlvbnMvc3JjL2ZvY3VzL2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU5Qzs7O0dBR0c7QUFVSCxNQUFNLE9BQU8sUUFBUTtJQVRyQjtRQVVFOztXQUVHO1FBQ08sY0FBUyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUU3Qzs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQXdCLEtBQUssRUFBRTtZQUN0RCxLQUFLLEVBQUUsa0JBQWtCO1lBQ3pCLFNBQVMsRUFBRSxnQkFBZ0I7U0FDNUIsQ0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDTSxnQkFBVyxHQUFHLE1BQU0sQ0FBVSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7S0FvQ3JFO0lBbENDOzs7T0FHRztJQUVPLE9BQU8sQ0FBQyxLQUFpQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUksS0FBSyxDQUFDLE1BQXNCLEVBQUUsYUFBYSxJQUFJLFFBQVEsQ0FBQztRQUUvRSx1Q0FBdUM7UUFDdkMsSUFBSSxhQUFhLENBQUMsYUFBYSxLQUFLLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsS0FBSyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFFTyxNQUFNLENBQUMsS0FBaUI7UUFDaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLGFBQWEsS0FBSyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7OEdBcERVLFFBQVE7a0dBQVIsUUFBUSw2WEFMUixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLENBQUM7OzJGQUtuRCxRQUFRO2tCQVRwQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLFVBQVUsRUFBRSxDQUFDO29CQUM5RCxJQUFJLEVBQUU7d0JBQ0oscUJBQXFCLEVBQUUsYUFBYTtxQkFDckM7aUJBQ0Y7OEJBeUJXLE9BQU87c0JBRGhCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW9CdkIsTUFBTTtzQkFEZixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIENDIEJZLU5EIDQuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIGJvb2xlYW5BdHRyaWJ1dGUsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdwRm9jdXNUb2tlbiB9IGZyb20gJy4vZm9jdXMudG9rZW4nO1xuXG4vKipcbiAqIFRoaXMgd2FzIGluc3BpcmVkIGJ5IHRoZSBSZWFjdCBBcmlhIHVzZUZvY3VzIGhvb2suXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYWRvYmUvcmVhY3Qtc3BlY3RydW0vYmxvYi9tYWluL3BhY2thZ2VzLyU0MHJlYWN0LWFyaWEvaW50ZXJhY3Rpb25zL3NyYy91c2VGb2N1cy50cyNMMjBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW25ncEZvY3VzXScsXG4gIGV4cG9ydEFzOiAnbmdwRm9jdXMnLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5ncEZvY3VzVG9rZW4sIHVzZUV4aXN0aW5nOiBOZ3BGb2N1cyB9XSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5kYXRhLWZvY3VzZWRdJzogJ2lzRm9jdXNlZCgpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTmdwRm9jdXMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyBjdXJyZW50bHkgZm9jdXNlZC5cbiAgICovXG4gIHByb3RlY3RlZCBpc0ZvY3VzZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGxpc3RlbmluZyBmb3IgZm9jdXMgZXZlbnRzIGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7XG4gICAgYWxpYXM6ICduZ3BGb2N1c0Rpc2FibGVkJyxcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbWl0IHdoZW4gdGhlIGZvY3VzIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICByZWFkb25seSBzdGF0ZUNoYW5nZSA9IG91dHB1dDxib29sZWFuPih7IGFsaWFzOiAnbmdwRm9jdXNDaGFuZ2UnIH0pO1xuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZm9yIGZvY3VzIGV2ZW50cy5cbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdmb2N1cycsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBvbkZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG93bmVyRG9jdW1lbnQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KT8ub3duZXJEb2N1bWVudCA/PyBkb2N1bWVudDtcblxuICAgIC8vIGVuc3VyZSB0aGlzIGVsZW1lbnQgaXMgc3RpbGwgZm9jdXNlZFxuICAgIGlmIChvd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCAmJiBldmVudC5jdXJyZW50VGFyZ2V0ID09PSBldmVudC50YXJnZXQpIHtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAgIHRoaXMuaXNGb2N1c2VkLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGZvciBibHVyIGV2ZW50cy5cbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIG9uQmx1cihldmVudDogRm9jdXNFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldCA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgdGhpcy5pc0ZvY3VzZWQuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctcHJpbWl0aXZlcy9pbnRlcmFjdGlvbnMvc3JjL2ZvY3VzL2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFOUM7OztHQUdHO0FBVUgsTUFBTSxPQUFPLFFBQVE7SUFUckI7UUFVRTs7V0FFRztRQUNPLGNBQVMsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFN0M7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUF3QixLQUFLLEVBQUU7WUFDdEQsS0FBSyxFQUFFLGtCQUFrQjtZQUN6QixTQUFTLEVBQUUsZ0JBQWdCO1NBQzVCLENBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ2MsZUFBVSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUQ7O1dBRUc7UUFDTSxVQUFLLEdBQUcsTUFBTSxDQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7S0FvQ3pEO0lBbENDOzs7T0FHRztJQUVPLE9BQU8sQ0FBQyxLQUFpQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUksS0FBSyxDQUFDLE1BQXNCLEVBQUUsYUFBYSxJQUFJLFFBQVEsQ0FBQztRQUUvRSx1Q0FBdUM7UUFDdkMsSUFBSSxhQUFhLENBQUMsYUFBYSxLQUFLLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsS0FBSyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekYsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFFTyxNQUFNLENBQUMsS0FBaUI7UUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLGFBQWEsS0FBSyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7OEdBekRVLFFBQVE7a0dBQVIsUUFBUSwrV0FMUixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLENBQUM7OzJGQUtuRCxRQUFRO2tCQVRwQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLFVBQVUsRUFBRSxDQUFDO29CQUM5RCxJQUFJLEVBQUU7d0JBQ0osbUJBQW1CLEVBQUUsYUFBYTtxQkFDbkM7aUJBQ0Y7OEJBOEJXLE9BQU87c0JBRGhCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW9CdkIsTUFBTTtzQkFEZixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIENDIEJZLU5EIDQuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIGJvb2xlYW5BdHRyaWJ1dGUsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0RGlzYWJsZWQgfSBmcm9tICduZy1wcmltaXRpdmVzL2ludGVybmFsJztcbmltcG9ydCB7IE5ncEZvY3VzVG9rZW4gfSBmcm9tICcuL2ZvY3VzLnRva2VuJztcblxuLyoqXG4gKiBUaGlzIHdhcyBpbnNwaXJlZCBieSB0aGUgUmVhY3QgQXJpYSB1c2VGb2N1cyBob29rLlxuICogaHR0cHM6Ly9naXRodWIuY29tL2Fkb2JlL3JlYWN0LXNwZWN0cnVtL2Jsb2IvbWFpbi9wYWNrYWdlcy8lNDByZWFjdC1hcmlhL2ludGVyYWN0aW9ucy9zcmMvdXNlRm9jdXMudHMjTDIwXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3BGb2N1c10nLFxuICBleHBvcnRBczogJ25ncEZvY3VzJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOZ3BGb2N1c1Rva2VuLCB1c2VFeGlzdGluZzogTmdwRm9jdXMgfV0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1mb2N1c10nOiAnaXNGb2N1c2VkKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BGb2N1cyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBlbGVtZW50IGlzIGN1cnJlbnRseSBmb2N1c2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzRm9jdXNlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgbGlzdGVuaW5nIGZvciBmb2N1cyBldmVudHMgaXMgZGlzYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4oZmFsc2UsIHtcbiAgICBhbGlhczogJ25ncEZvY3VzRGlzYWJsZWQnLFxuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZGlzYWJsZWQgc3RhdGUgZnJvbSBhbnkgcGFyZW50LlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBpc0Rpc2FibGVkID0gaW5qZWN0RGlzYWJsZWQodGhpcy5kaXNhYmxlZCk7XG5cbiAgLyoqXG4gICAqIEVtaXQgd2hlbiB0aGUgZm9jdXMgc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gIHJlYWRvbmx5IGZvY3VzID0gb3V0cHV0PGJvb2xlYW4+KHsgYWxpYXM6ICduZ3BGb2N1cycgfSk7XG5cbiAgLyoqXG4gICAqIExpc3RlbiBmb3IgZm9jdXMgZXZlbnRzLlxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIG9uRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvd25lckRvY3VtZW50ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk/Lm93bmVyRG9jdW1lbnQgPz8gZG9jdW1lbnQ7XG5cbiAgICAvLyBlbnN1cmUgdGhpcyBlbGVtZW50IGlzIHN0aWxsIGZvY3VzZWRcbiAgICBpZiAob3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBldmVudC50YXJnZXQgJiYgZXZlbnQuY3VycmVudFRhcmdldCA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICB0aGlzLmZvY3VzLmVtaXQodHJ1ZSk7XG4gICAgICB0aGlzLmlzRm9jdXNlZC5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiBmb3IgYmx1ciBldmVudHMuXG4gICAqIEBwYXJhbSBldmVudFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldCA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICB0aGlzLmZvY3VzLmVtaXQoZmFsc2UpO1xuICAgICAgdGhpcy5pc0ZvY3VzZWQuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -8,6 +8,7 @@
8
8
  import { FocusMonitor } from '@angular/cdk/a11y';
9
9
  import { Directive, ElementRef, HostListener, booleanAttribute, inject, input, output, signal, } from '@angular/core';
10
10
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
11
+ import { injectDisabled } from 'ng-primitives/internal';
11
12
  import { NgpFocusVisibleToken } from './focus-visible.token';
12
13
  import * as i0 from "@angular/core";
13
14
  export class NgpFocusVisible {
@@ -27,11 +28,15 @@ export class NgpFocusVisible {
27
28
  alias: 'ngpFocusVisibleDisabled',
28
29
  transform: booleanAttribute,
29
30
  });
31
+ /**
32
+ * Access the disabled state from any parent.
33
+ */
34
+ this.isDisabled = injectDisabled(this.disabled);
30
35
  /**
31
36
  * Emit when the element is visually focused.
32
37
  */
33
38
  this.focusChange = output({
34
- alias: 'ngpFocusVisibleChange',
39
+ alias: 'ngpFocusVisible',
35
40
  });
36
41
  /**
37
42
  * Whether the element is currently focused.
@@ -43,7 +48,7 @@ export class NgpFocusVisible {
43
48
  .subscribe(origin => this.onFocus(origin));
44
49
  }
45
50
  onFocus(origin) {
46
- if (this.disabled() || this.isFocused()) {
51
+ if (this.isDisabled() || this.isFocused()) {
47
52
  return;
48
53
  }
49
54
  // for some elements the focus visible state should always appear on focus
@@ -63,7 +68,7 @@ export class NgpFocusVisible {
63
68
  * Listen for blur events.
64
69
  */
65
70
  onBlur() {
66
- if (this.disabled() || !this.isFocused()) {
71
+ if (this.isDisabled() || !this.isFocused()) {
67
72
  return;
68
73
  }
69
74
  this.isFocused.set(false);
@@ -97,10 +102,10 @@ export class NgpFocusVisible {
97
102
  }
98
103
  return false;
99
104
  }
100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NgpFocusVisible, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
101
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.2", type: NgpFocusVisible, isStandalone: true, selector: "[ngpFocusVisible]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpFocusVisibleDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusChange: "ngpFocusVisibleChange" }, host: { listeners: { "blur": "onBlur()" }, properties: { "attr.data-focus-visible": "isFocused()" } }, providers: [{ provide: NgpFocusVisibleToken, useExisting: NgpFocusVisible }], exportAs: ["ngpFocusVisible"], ngImport: i0 }); }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpFocusVisible, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
106
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpFocusVisible, isStandalone: true, selector: "[ngpFocusVisible]", inputs: { disabled: { classPropertyName: "disabled", publicName: "ngpFocusVisibleDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusChange: "ngpFocusVisible" }, host: { listeners: { "blur": "onBlur()" }, properties: { "attr.data-focus-visible": "isFocused()" } }, providers: [{ provide: NgpFocusVisibleToken, useExisting: NgpFocusVisible }], exportAs: ["ngpFocusVisible"], ngImport: i0 }); }
102
107
  }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NgpFocusVisible, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpFocusVisible, decorators: [{
104
109
  type: Directive,
105
110
  args: [{
106
111
  standalone: true,
@@ -115,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
115
120
  type: HostListener,
116
121
  args: ['blur']
117
122
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdmlzaWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2ludGVyYWN0aW9ucy9zcmMvZm9jdXMtdmlzaWJsZS9mb2N1cy12aXNpYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBVzdELE1BQU0sT0FBTyxlQUFlO0lBK0IxQjtRQTlCQTs7V0FFRztRQUNjLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRTFFOztXQUVHO1FBQ2MsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFckQ7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUF3QixLQUFLLEVBQUU7WUFDdEQsS0FBSyxFQUFFLHlCQUF5QjtZQUNoQyxTQUFTLEVBQUUsZ0JBQWdCO1NBQzVCLENBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxNQUFNLENBQVU7WUFDckMsS0FBSyxFQUFFLHVCQUF1QjtTQUMvQixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNnQixjQUFTLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBR3BELElBQUksQ0FBQyxZQUFZO2FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFD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Z3VsYXIgUHJpbWl0aXZlcy5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wcmltaXRpdmVzL25nLXByaW1pdGl2ZXNcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBDQyBCWS1ORCA0LjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgRm9jdXNNb25pdG9yLCBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTmdwRm9jdXNWaXNpYmxlVG9rZW4gfSBmcm9tICcuL2ZvY3VzLXZpc2libGUudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbbmdwRm9jdXNWaXNpYmxlXScsXG4gIGV4cG9ydEFzOiAnbmdwRm9jdXNWaXNpYmxlJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOZ3BGb2N1c1Zpc2libGVUb2tlbiwgdXNlRXhpc3Rpbmc6IE5ncEZvY3VzVmlzaWJsZSB9XSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5kYXRhLWZvY3VzLXZpc2libGVdJzogJ2lzRm9jdXNlZCgpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTmdwRm9jdXNWaXNpYmxlIHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZWxlbWVudCB0aGF0IHRoZSBkaXJlY3RpdmUgaXMgYXBwbGllZCB0by5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgZm9jdXMgbW9uaXRvci5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNNb25pdG9yID0gaW5qZWN0KEZvY3VzTW9uaXRvcik7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgZm9jdXMgZXZlbnRzIGFyZSBsaXN0ZW5lZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwge1xuICAgIGFsaWFzOiAnbmdwRm9jdXNWaXNpYmxlRGlzYWJsZWQnLFxuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEVtaXQgd2hlbiB0aGUgZWxlbWVudCBpcyB2aXN1YWxseSBmb2N1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9jdXNDaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oe1xuICAgIGFsaWFzOiAnbmdwRm9jdXNWaXNpYmxlQ2hhbmdlJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgY3VycmVudGx5IGZvY3VzZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNGb2N1c2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmZvY3VzTW9uaXRvclxuICAgICAgLm1vbml0b3IodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUob3JpZ2luID0+IHRoaXMub25Gb2N1cyhvcmlnaW4pKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Gb2N1cyhvcmlnaW46IEZvY3VzT3JpZ2luKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLmlzRm9jdXNlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZm9yIHNvbWUgZWxlbWVudHMgdGhlIGZvY3VzIHZpc2libGUgc3RhdGUgc2hvdWxkIGFsd2F5cyBhcHBlYXIgb24gZm9jdXNcbiAgICBpZiAodGhpcy5hbHdheXNTaG93Rm9jdXMoKSkge1xuICAgICAgdGhpcy5pc0ZvY3VzZWQuc2V0KHRydWUpO1xuICAgICAgdGhpcy5mb2N1c0NoYW5nZS5lbWl0KHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZSBmb2N1cyBvcmlnaW4gaXMga2V5Ym9hcmQsIHRoZW4gdGhlIGZvY3VzIGlzIHZpc2libGVcbiAgICBpZiAob3JpZ2luID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICB0aGlzLmlzRm9jdXNlZC5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLmZvY3VzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiBmb3IgYmx1ciBldmVudHMuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgcHJvdGVjdGVkIG9uQmx1cigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpIHx8ICF0aGlzLmlzRm9jdXNlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0ZvY3VzZWQuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmZvY3VzQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBhbHdheXNTaG93Rm9jdXMoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm9uVGV4dElucHV0VHlwZXMgPSBbXG4gICAgICAnY2hlY2tib3gnLFxuICAgICAgJ3JhZGlvJyxcbiAgICAgICdyYW5nZScsXG4gICAgICAnY29sb3InLFxuICAgICAgJ2ZpbGUnLFxuICAgICAgJ2ltYWdlJyxcbiAgICAgICdidXR0b24nLFxuICAgICAgJ3N1Ym1pdCcsXG4gICAgICAncmVzZXQnLFxuICAgIF07XG5cbiAgICAvLyBpZiB0aGlzIGlzIGFuIGlucHV0IGVsZW1lbnQgYW5kIGl0IGlzIGEgdGV4dCBpbnB1dFxuICAgIGlmIChcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCAmJlxuICAgICAgIW5vblRleHRJbnB1dFR5cGVzLmluY2x1ZGVzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnR5cGUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGlzIGlzIGEgdGV4dGFyZWFcbiAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGlzIGlzIGFuIGVsZW1lbnQgd2l0aCBjb250ZW50ZWRpdGFibGVcbiAgICBpZiAoXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pc0NvbnRlbnRFZGl0YWJsZSB8fFxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdmlzaWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL2ludGVyYWN0aW9ucy9zcmMvZm9jdXMtdmlzaWJsZS9mb2N1cy12aXNpYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVc3RCxNQUFNLE9BQU8sZUFBZTtJQW9DMUI7UUFuQ0E7O1dBRUc7UUFDYyxlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUUxRTs7V0FFRztRQUNjLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXJEOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFO1lBQ3RELEtBQUssRUFBRSx5QkFBeUI7WUFDaEMsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNjLGVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTVEOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxNQUFNLENBQVU7WUFDckMsS0FBSyxFQUFFLGlCQUFpQjtTQUN6QixDQUFDLENBQUM7UUFFSDs7V0FFRztR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RUFBRSxhQUFhO3FCQUMzQztpQkFDRjt3REFvRVcsTUFBTTtzQkFEZixZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCDCqSAyMDI0IEFuZ3VsYXIgUHJpbWl0aXZlcy5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wcmltaXRpdmVzL25nLXByaW1pdGl2ZXNcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBDQyBCWS1ORCA0LjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuaW1wb3J0IHsgRm9jdXNNb25pdG9yLCBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgaW5qZWN0RGlzYWJsZWQgfSBmcm9tICduZy1wcmltaXRpdmVzL2ludGVybmFsJztcbmltcG9ydCB7IE5ncEZvY3VzVmlzaWJsZVRva2VuIH0gZnJvbSAnLi9mb2N1cy12aXNpYmxlLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW25ncEZvY3VzVmlzaWJsZV0nLFxuICBleHBvcnRBczogJ25ncEZvY3VzVmlzaWJsZScsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmdwRm9jdXNWaXNpYmxlVG9rZW4sIHVzZUV4aXN0aW5nOiBOZ3BGb2N1c1Zpc2libGUgfV0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuZGF0YS1mb2N1cy12aXNpYmxlXSc6ICdpc0ZvY3VzZWQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5ncEZvY3VzVmlzaWJsZSB7XG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGVsZW1lbnQgdGhhdCB0aGUgZGlyZWN0aXZlIGlzIGFwcGxpZWQgdG8uXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGZvY3VzIG1vbml0b3IuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGZvY3VzIGV2ZW50cyBhcmUgbGlzdGVuZWQgdG8uXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4oZmFsc2UsIHtcbiAgICBhbGlhczogJ25ncEZvY3VzVmlzaWJsZURpc2FibGVkJyxcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGRpc2FibGVkIHN0YXRlIGZyb20gYW55IHBhcmVudC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNEaXNhYmxlZCA9IGluamVjdERpc2FibGVkKHRoaXMuZGlzYWJsZWQpO1xuXG4gIC8qKlxuICAgKiBFbWl0IHdoZW4gdGhlIGVsZW1lbnQgaXMgdmlzdWFsbHkgZm9jdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGZvY3VzQ2hhbmdlID0gb3V0cHV0PGJvb2xlYW4+KHtcbiAgICBhbGlhczogJ25ncEZvY3VzVmlzaWJsZScsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBlbGVtZW50IGlzIGN1cnJlbnRseSBmb2N1c2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzRm9jdXNlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5mb2N1c01vbml0b3JcbiAgICAgIC5tb25pdG9yKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKG9yaWdpbiA9PiB0aGlzLm9uRm9jdXMob3JpZ2luKSk7XG4gIH1cblxuICBwcml2YXRlIG9uRm9jdXMob3JpZ2luOiBGb2N1c09yaWdpbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSB8fCB0aGlzLmlzRm9jdXNlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZm9yIHNvbWUgZWxlbWVudHMgdGhlIGZvY3VzIHZpc2libGUgc3RhdGUgc2hvdWxkIGFsd2F5cyBhcHBlYXIgb24gZm9jdXNcbiAgICBpZiAodGhpcy5hbHdheXNTaG93Rm9jdXMoKSkge1xuICAgICAgdGhpcy5pc0ZvY3VzZWQuc2V0KHRydWUpO1xuICAgICAgdGhpcy5mb2N1c0NoYW5nZS5lbWl0KHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZSBmb2N1cyBvcmlnaW4gaXMga2V5Ym9hcmQsIHRoZW4gdGhlIGZvY3VzIGlzIHZpc2libGVcbiAgICBpZiAob3JpZ2luID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICB0aGlzLmlzRm9jdXNlZC5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLmZvY3VzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiBmb3IgYmx1ciBldmVudHMuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgcHJvdGVjdGVkIG9uQmx1cigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKCkgfHwgIXRoaXMuaXNGb2N1c2VkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzRm9jdXNlZC5zZXQoZmFsc2UpO1xuICAgIHRoaXMuZm9jdXNDaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGFsd2F5c1Nob3dGb2N1cygpOiBib29sZWFuIHtcbiAgICBjb25zdCBub25UZXh0SW5wdXRUeXBlcyA9IFtcbiAgICAgICdjaGVja2JveCcsXG4gICAgICAncmFkaW8nLFxuICAgICAgJ3JhbmdlJyxcbiAgICAgICdjb2xvcicsXG4gICAgICAnZmlsZScsXG4gICAgICAnaW1hZ2UnLFxuICAgICAgJ2J1dHRvbicsXG4gICAgICAnc3VibWl0JyxcbiAgICAgICdyZXNldCcsXG4gICAgXTtcblxuICAgIC8vIGlmIHRoaXMgaXMgYW4gaW5wdXQgZWxlbWVudCBhbmQgaXQgaXMgYSB0ZXh0IGlucHV0XG4gICAgaWYgKFxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ICYmXG4gICAgICAhbm9uVGV4dElucHV0VHlwZXMuaW5jbHVkZXModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudHlwZSlcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIGlmIHRoaXMgaXMgYSB0ZXh0YXJlYVxuICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIGlmIHRoaXMgaXMgYW4gZWxlbWVudCB3aXRoIGNvbnRlbnRlZGl0YWJsZVxuICAgIGlmIChcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlzQ29udGVudEVkaXRhYmxlIHx8XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==