@radix-ng/primitives 0.15.0 → 0.17.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 (181) hide show
  1. package/aspect-ratio/src/aspect-ratio.directive.d.ts +2 -0
  2. package/checkbox/src/checkbox-input.directive.d.ts +2 -1
  3. package/compodoc/documentation.json +2755 -1148
  4. package/core/index.d.ts +1 -0
  5. package/core/src/is-inside-form.d.ts +2 -0
  6. package/dialog/src/dialog.config.d.ts +1 -1
  7. package/esm2022/accordion/index.mjs +5 -5
  8. package/esm2022/accordion/src/accordion-content.directive.mjs +4 -4
  9. package/esm2022/accordion/src/accordion-header.directive.mjs +4 -4
  10. package/esm2022/accordion/src/accordion-item.directive.mjs +4 -4
  11. package/esm2022/accordion/src/accordion-root.directive.mjs +4 -4
  12. package/esm2022/accordion/src/accordion-trigger.directive.mjs +4 -4
  13. package/esm2022/alert-dialog/index.mjs +5 -5
  14. package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +4 -4
  15. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +4 -4
  16. package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +4 -4
  17. package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +4 -4
  18. package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +4 -4
  19. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +4 -4
  20. package/esm2022/aspect-ratio/src/aspect-ratio.directive.mjs +6 -4
  21. package/esm2022/avatar/src/avatar-fallback.directive.mjs +4 -4
  22. package/esm2022/avatar/src/avatar-image.directive.mjs +5 -4
  23. package/esm2022/avatar/src/avatar-root.directive.mjs +4 -4
  24. package/esm2022/checkbox/src/checkbox-button.directive.mjs +4 -4
  25. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +4 -4
  26. package/esm2022/checkbox/src/checkbox-input.directive.mjs +7 -4
  27. package/esm2022/checkbox/src/checkbox.directive.mjs +4 -4
  28. package/esm2022/collapsible/src/collapsible-content.directive.mjs +4 -4
  29. package/esm2022/collapsible/src/collapsible-root.directive.mjs +4 -4
  30. package/esm2022/collapsible/src/collapsible-trigger.directive.mjs +4 -4
  31. package/esm2022/context-menu/index.mjs +5 -5
  32. package/esm2022/context-menu/src/context-menu-content.directive.mjs +4 -4
  33. package/esm2022/context-menu/src/context-menu-item-checkbox.directive.mjs +4 -4
  34. package/esm2022/context-menu/src/context-menu-item-indicator.directive.mjs +4 -4
  35. package/esm2022/context-menu/src/context-menu-item-radio-group.directive.mjs +4 -4
  36. package/esm2022/context-menu/src/context-menu-item-radio.directive.mjs +4 -4
  37. package/esm2022/context-menu/src/context-menu-item-selectable.mjs +4 -4
  38. package/esm2022/context-menu/src/context-menu-item.directive.mjs +4 -4
  39. package/esm2022/context-menu/src/context-menu-label.directive.mjs +4 -4
  40. package/esm2022/context-menu/src/context-menu-separator.directive.mjs +4 -4
  41. package/esm2022/context-menu/src/context-menu-trigger.directive.mjs +4 -4
  42. package/esm2022/core/index.mjs +2 -1
  43. package/esm2022/core/src/auto-focus.directive.mjs +4 -4
  44. package/esm2022/core/src/is-inside-form.mjs +7 -0
  45. package/esm2022/dialog/index.mjs +5 -5
  46. package/esm2022/dialog/src/dialog-close.directive.mjs +4 -4
  47. package/esm2022/dialog/src/dialog-content.directive.mjs +4 -4
  48. package/esm2022/dialog/src/dialog-description.directive.mjs +4 -4
  49. package/esm2022/dialog/src/dialog-dismiss.directive.mjs +4 -4
  50. package/esm2022/dialog/src/dialog-title.directive.mjs +4 -4
  51. package/esm2022/dialog/src/dialog-trigger.directive.mjs +4 -4
  52. package/esm2022/dialog/src/dialog.config.mjs +1 -1
  53. package/esm2022/dialog/src/dialog.service.mjs +4 -4
  54. package/esm2022/dropdown-menu/index.mjs +5 -5
  55. package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +4 -4
  56. package/esm2022/dropdown-menu/src/dropdown-menu-item-checkbox.directive.mjs +4 -4
  57. package/esm2022/dropdown-menu/src/dropdown-menu-item-indicator.directive.mjs +4 -4
  58. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio-group.directive.mjs +4 -4
  59. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio.directive.mjs +4 -4
  60. package/esm2022/dropdown-menu/src/dropdown-menu-item-selectable.mjs +4 -4
  61. package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +4 -4
  62. package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +4 -4
  63. package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +4 -4
  64. package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +4 -4
  65. package/esm2022/label/src/label.directive.mjs +4 -4
  66. package/esm2022/menu/index.mjs +5 -5
  67. package/esm2022/menu/src/menu-content.directive.mjs +4 -4
  68. package/esm2022/menu/src/menu-directive.mjs +4 -4
  69. package/esm2022/menu/src/menu-group.directive.mjs +4 -4
  70. package/esm2022/menu/src/menu-item.directive.mjs +4 -4
  71. package/esm2022/menu/src/menu-label.directive.mjs +4 -4
  72. package/esm2022/menu/src/menu-separator.directive.mjs +4 -4
  73. package/esm2022/menubar/index.mjs +5 -5
  74. package/esm2022/menubar/src/menubar-content.directive.mjs +4 -4
  75. package/esm2022/menubar/src/menubar-item-checkbox.directive.mjs +4 -4
  76. package/esm2022/menubar/src/menubar-item-indicator.directive.mjs +4 -4
  77. package/esm2022/menubar/src/menubar-item-radio.directive.mjs +4 -4
  78. package/esm2022/menubar/src/menubar-item.directive.mjs +4 -4
  79. package/esm2022/menubar/src/menubar-radio-group.directive.mjs +4 -4
  80. package/esm2022/menubar/src/menubar-root.directive.mjs +4 -4
  81. package/esm2022/menubar/src/menubar-separator.directive.mjs +4 -4
  82. package/esm2022/menubar/src/menubar-trigger.directive.mjs +4 -4
  83. package/esm2022/progress/index.mjs +5 -5
  84. package/esm2022/progress/src/progress-indicator.directive.mjs +4 -4
  85. package/esm2022/progress/src/progress-root.directive.mjs +4 -4
  86. package/esm2022/radio/src/radio-indicator.directive.mjs +4 -4
  87. package/esm2022/radio/src/radio-item.directive.mjs +4 -4
  88. package/esm2022/radio/src/radio-root.directive.mjs +4 -4
  89. package/esm2022/select/index.mjs +65 -0
  90. package/esm2022/select/radix-ng-primitives-select.mjs +5 -0
  91. package/esm2022/select/src/select-content.directive.mjs +53 -0
  92. package/esm2022/select/src/select-group.directive.mjs +18 -0
  93. package/esm2022/select/src/select-icon.directive.mjs +18 -0
  94. package/esm2022/select/src/select-item-indicator.directive.mjs +23 -0
  95. package/esm2022/select/src/select-item.directive.mjs +116 -0
  96. package/esm2022/select/src/select-label.directive.mjs +15 -0
  97. package/esm2022/select/src/select-separator.directive.mjs +18 -0
  98. package/esm2022/select/src/select-trigger.directive.mjs +38 -0
  99. package/esm2022/select/src/select-value.directive.mjs +26 -0
  100. package/esm2022/select/src/select.component.mjs +233 -0
  101. package/esm2022/separator/src/separator.directive.mjs +8 -4
  102. package/esm2022/switch/index.mjs +5 -5
  103. package/esm2022/switch/src/switch-input.directive.mjs +4 -4
  104. package/esm2022/switch/src/switch-root.directive.mjs +4 -4
  105. package/esm2022/switch/src/switch-thumb.directive.mjs +4 -4
  106. package/esm2022/tabs/index.mjs +5 -5
  107. package/esm2022/tabs/src/tabs-content.directive.mjs +4 -4
  108. package/esm2022/tabs/src/tabs-context.service.mjs +4 -4
  109. package/esm2022/tabs/src/tabs-list.directive.mjs +4 -4
  110. package/esm2022/tabs/src/tabs-root.directive.mjs +4 -4
  111. package/esm2022/tabs/src/tabs-trigger.directive.mjs +4 -4
  112. package/esm2022/toggle/index.mjs +2 -1
  113. package/esm2022/toggle/src/toggle-input.directive.mjs +29 -0
  114. package/esm2022/toggle/src/toggle.directive.mjs +4 -5
  115. package/esm2022/toggle-group/src/toggle-group-item.directive.mjs +4 -4
  116. package/esm2022/toggle-group/src/toggle-group-multiple.directive.mjs +4 -4
  117. package/esm2022/toggle-group/src/toggle-group.directive.mjs +4 -4
  118. package/esm2022/visually-hidden/src/visually-hidden-input-bubble.directive.mjs +4 -4
  119. package/esm2022/visually-hidden/src/visually-hidden-input.directive.mjs +5 -5
  120. package/esm2022/visually-hidden/src/visually-hidden.directive.mjs +4 -4
  121. package/fesm2022/radix-ng-primitives-accordion.mjs +19 -19
  122. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  123. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +22 -22
  124. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  125. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +5 -3
  126. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  127. package/fesm2022/radix-ng-primitives-avatar.mjs +10 -9
  128. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  129. package/fesm2022/radix-ng-primitives-checkbox.mjs +15 -12
  130. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  131. package/fesm2022/radix-ng-primitives-collapsible.mjs +9 -9
  132. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  133. package/fesm2022/radix-ng-primitives-context-menu.mjs +34 -34
  134. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  135. package/fesm2022/radix-ng-primitives-core.mjs +11 -4
  136. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  137. package/fesm2022/radix-ng-primitives-dialog.mjs +25 -25
  138. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  139. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +34 -34
  140. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
  141. package/fesm2022/radix-ng-primitives-label.mjs +3 -3
  142. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  143. package/fesm2022/radix-ng-primitives-menu.mjs +22 -22
  144. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  145. package/fesm2022/radix-ng-primitives-menubar.mjs +31 -31
  146. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  147. package/fesm2022/radix-ng-primitives-progress.mjs +10 -10
  148. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  149. package/fesm2022/radix-ng-primitives-radio.mjs +9 -9
  150. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  151. package/fesm2022/radix-ng-primitives-select.mjs +576 -0
  152. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -0
  153. package/fesm2022/radix-ng-primitives-separator.mjs +7 -3
  154. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  155. package/fesm2022/radix-ng-primitives-switch.mjs +13 -13
  156. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  157. package/fesm2022/radix-ng-primitives-tabs.mjs +19 -19
  158. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  159. package/fesm2022/radix-ng-primitives-toggle-group.mjs +9 -9
  160. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  161. package/fesm2022/radix-ng-primitives-toggle.mjs +32 -6
  162. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  163. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +10 -10
  164. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  165. package/package.json +7 -1
  166. package/select/README.md +1 -0
  167. package/select/index.d.ts +26 -0
  168. package/select/src/select-content.directive.d.ts +20 -0
  169. package/select/src/select-group.directive.d.ts +5 -0
  170. package/select/src/select-icon.directive.d.ts +5 -0
  171. package/select/src/select-item-indicator.directive.d.ts +7 -0
  172. package/select/src/select-item.directive.d.ts +47 -0
  173. package/select/src/select-label.directive.d.ts +5 -0
  174. package/select/src/select-separator.directive.d.ts +5 -0
  175. package/select/src/select-trigger.directive.d.ts +11 -0
  176. package/select/src/select-value.directive.d.ts +8 -0
  177. package/select/src/select.component.d.ts +81 -0
  178. package/separator/src/separator.directive.d.ts +4 -0
  179. package/toggle/index.d.ts +1 -0
  180. package/toggle/src/toggle-input.directive.d.ts +6 -0
  181. package/visually-hidden/src/visually-hidden-input.directive.d.ts +1 -1
@@ -0,0 +1,18 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class RdxSelectIconDirective {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxSelectIconDirective, isStandalone: true, selector: "[rdxSelectIcon]", host: { properties: { "attr.aria-hidden": "true" } }, exportAs: ["rdxSelectIcon"], ngImport: i0 }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectIconDirective, decorators: [{
8
+ type: Directive,
9
+ args: [{
10
+ selector: '[rdxSelectIcon]',
11
+ standalone: true,
12
+ exportAs: 'rdxSelectIcon',
13
+ host: {
14
+ '[attr.aria-hidden]': 'true'
15
+ }
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWljb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9zZWxlY3Qvc3JjL3NlbGVjdC1pY29uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVUxQyxNQUFNLE9BQU8sc0JBQXNCOytHQUF0QixzQkFBc0I7bUdBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFSbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRTt3QkFDRixvQkFBb0IsRUFBRSxNQUFNO3FCQUMvQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhTZWxlY3RJY29uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBleHBvcnRBczogJ3JkeFNlbGVjdEljb24nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmFyaWEtaGlkZGVuXSc6ICd0cnVlJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4U2VsZWN0SWNvbkRpcmVjdGl2ZSB7fVxuIl19
@@ -0,0 +1,23 @@
1
+ import { Directive, inject } from '@angular/core';
2
+ import { RdxSelectItemDirective } from './select-item.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class RdxSelectItemIndicatorDirective {
5
+ constructor() {
6
+ this.item = inject(RdxSelectItemDirective);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectItemIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxSelectItemIndicatorDirective, isStandalone: true, selector: "[rdxSelectItemIndicator]", host: { properties: { "attr.aria-hidden": "true", "style.display": "item.selected ? \"\" : \"none\"" } }, exportAs: ["rdxSelectItemIndicator"], ngImport: i0 }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectItemIndicatorDirective, decorators: [{
12
+ type: Directive,
13
+ args: [{
14
+ selector: '[rdxSelectItemIndicator]',
15
+ standalone: true,
16
+ exportAs: 'rdxSelectItemIndicator',
17
+ host: {
18
+ '[attr.aria-hidden]': 'true',
19
+ '[style.display]': 'item.selected ? "" : "none"'
20
+ }
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWl0ZW0taW5kaWNhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc2VsZWN0L3NyYy9zZWxlY3QtaXRlbS1pbmRpY2F0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQVdqRSxNQUFNLE9BQU8sK0JBQStCO0lBVDVDO1FBVWMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0tBQ25EOytHQUZZLCtCQUErQjttR0FBL0IsK0JBQStCOzs0RkFBL0IsK0JBQStCO2tCQVQzQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxJQUFJLEVBQUU7d0JBQ0Ysb0JBQW9CLEVBQUUsTUFBTTt3QkFDNUIsaUJBQWlCLEVBQUUsNkJBQTZCO3FCQUNuRDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHhTZWxlY3RJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWxlY3QtaXRlbS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhTZWxlY3RJdGVtSW5kaWNhdG9yXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBleHBvcnRBczogJ3JkeFNlbGVjdEl0ZW1JbmRpY2F0b3InLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmFyaWEtaGlkZGVuXSc6ICd0cnVlJyxcbiAgICAgICAgJ1tzdHlsZS5kaXNwbGF5XSc6ICdpdGVtLnNlbGVjdGVkID8gXCJcIiA6IFwibm9uZVwiJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4U2VsZWN0SXRlbUluZGljYXRvckRpcmVjdGl2ZSB7XG4gICAgcHJvdGVjdGVkIGl0ZW0gPSBpbmplY3QoUmR4U2VsZWN0SXRlbURpcmVjdGl2ZSk7XG59XG4iXX0=
@@ -0,0 +1,116 @@
1
+ import { ENTER, SPACE } from '@angular/cdk/keycodes';
2
+ import { booleanAttribute, Directive, ElementRef, EventEmitter, inject, Input } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { RdxSelectContentDirective } from './select-content.directive';
5
+ import { RdxSelectComponent } from './select.component';
6
+ import * as i0 from "@angular/core";
7
+ let nextId = 0;
8
+ export class RdxSelectItemChange {
9
+ constructor(source) {
10
+ this.source = source;
11
+ }
12
+ }
13
+ export class RdxSelectItemDirective {
14
+ get dataState() {
15
+ return this.selected ? 'checked' : 'unchecked';
16
+ }
17
+ set value(value) {
18
+ this._value = value;
19
+ }
20
+ get value() {
21
+ return this._value || this.id;
22
+ }
23
+ /** Whether the SelectItem is disabled. */
24
+ set disabled(value) {
25
+ this._disabled = value;
26
+ }
27
+ get disabled() {
28
+ return this._disabled;
29
+ }
30
+ get viewValue() {
31
+ return this.textValue ?? this.nativeElement.textContent;
32
+ }
33
+ constructor() {
34
+ this.select = inject(RdxSelectComponent);
35
+ this.content = inject(RdxSelectContentDirective);
36
+ this.onSelectionChange = new EventEmitter();
37
+ this.nativeElement = inject(ElementRef).nativeElement;
38
+ this.highlighted = false;
39
+ /**
40
+ * The unique SelectItem id.
41
+ * @ignore
42
+ */
43
+ this.id = `rdx-select-item-${nextId++}`;
44
+ this.textValue = null;
45
+ this.content.highlighted.pipe(takeUntilDestroyed()).subscribe((value) => {
46
+ if (value !== this) {
47
+ this.highlighted = false;
48
+ }
49
+ });
50
+ }
51
+ /** Gets the label to be used when determining whether the option should be focused. */
52
+ getLabel() {
53
+ return this.viewValue;
54
+ }
55
+ /**
56
+ * `Selects the option while indicating the selection came from the user. Used to
57
+ * determine if the select's view -> model callback should be invoked.`
58
+ */
59
+ selectViaInteraction() {
60
+ if (!this.disabled) {
61
+ this.selected = true;
62
+ this.onSelectionChange.emit(new RdxSelectItemChange(this));
63
+ }
64
+ }
65
+ handleKeydown(event) {
66
+ if (event.keyCode === ENTER || event.keyCode === SPACE) {
67
+ this.selectViaInteraction();
68
+ // Prevent the page from scrolling down and form submits.
69
+ event.preventDefault();
70
+ event.stopPropagation();
71
+ }
72
+ }
73
+ setActiveStyles() {
74
+ this.highlighted = true;
75
+ this.nativeElement.focus({ preventScroll: true });
76
+ }
77
+ setInactiveStyles() {
78
+ this.highlighted = false;
79
+ }
80
+ onPointerMove() {
81
+ if (!this.highlighted) {
82
+ this.nativeElement.focus({ preventScroll: true });
83
+ this.select.updateActiveItem(this);
84
+ }
85
+ }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
87
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.11", type: RdxSelectItemDirective, isStandalone: true, selector: "[rdxSelectItem]", inputs: { value: "value", textValue: "textValue", disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "focus": "content.highlighted.next(this)", "click": "selectViaInteraction()", "keydown": "handleKeydown($event)", "pointermove": "onPointerMove()" }, properties: { "attr.role": "\"option\"", "attr.data-state": "dataState", "attr.aria-selected": "selected", "attr.data-disabled": "disabled || null", "attr.data-highlighted": "highlighted || null", "attr.tabindex": "-1" } }, exportAs: ["rdxSelectItem"], ngImport: i0 }); }
88
+ }
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectItemDirective, decorators: [{
90
+ type: Directive,
91
+ args: [{
92
+ selector: '[rdxSelectItem]',
93
+ standalone: true,
94
+ exportAs: 'rdxSelectItem',
95
+ host: {
96
+ '[attr.role]': '"option"',
97
+ '[attr.data-state]': 'dataState',
98
+ '[attr.aria-selected]': 'selected',
99
+ '[attr.data-disabled]': 'disabled || null',
100
+ '[attr.data-highlighted]': 'highlighted || null',
101
+ '[attr.tabindex]': '-1',
102
+ '(focus)': 'content.highlighted.next(this)',
103
+ '(click)': 'selectViaInteraction()',
104
+ '(keydown)': 'handleKeydown($event)',
105
+ '(pointermove)': 'onPointerMove()'
106
+ }
107
+ }]
108
+ }], ctorParameters: () => [], propDecorators: { value: [{
109
+ type: Input
110
+ }], textValue: [{
111
+ type: Input
112
+ }], disabled: [{
113
+ type: Input,
114
+ args: [{ transform: booleanAttribute }]
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9zZWxlY3Qvc3JjL3NlbGVjdC1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV4RCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFFZixNQUFNLE9BQU8sbUJBQW1CO0lBQzVCLFlBQW1CLE1BQVM7UUFBVCxXQUFNLEdBQU4sTUFBTSxDQUFHO0lBQUcsQ0FBQztDQUNuQztBQW1CRCxNQUFNLE9BQU8sc0JBQXNCO0lBVS9CLElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDbkQsQ0FBQztJQVFELElBQ0ksS0FBSyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFNRCwwQ0FBMEM7SUFDMUMsSUFDSSxRQUFRLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUss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LEVBQUUscUJBQXFCO3dCQUNoRCxpQkFBaUIsRUFBRSxJQUFJO3dCQUN2QixTQUFTLEVBQUUsZ0NBQWdDO3dCQUMzQyxTQUFTLEVBQUUsd0JBQXdCO3dCQUNuQyxXQUFXLEVBQUUsdUJBQXVCO3dCQUNwQyxlQUFlLEVBQUUsaUJBQWlCO3FCQUNyQztpQkFDSjt3REFzQk8sS0FBSztzQkFEUixLQUFLO2dCQVdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUYsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGlnaGxpZ2h0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEVOVEVSLCBTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUmR4U2VsZWN0Q29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4vc2VsZWN0LWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5leHBvcnQgY2xhc3MgUmR4U2VsZWN0SXRlbUNoYW5nZTxUID0gUmR4U2VsZWN0SXRlbURpcmVjdGl2ZT4ge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBzb3VyY2U6IFQpIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFNlbGVjdEl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGV4cG9ydEFzOiAncmR4U2VsZWN0SXRlbScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIucm9sZV0nOiAnXCJvcHRpb25cIicsXG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdkYXRhU3RhdGUnLFxuICAgICAgICAnW2F0dHIuYXJpYS1zZWxlY3RlZF0nOiAnc2VsZWN0ZWQnLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbnVsbCcsXG4gICAgICAgICdbYXR0ci5kYXRhLWhpZ2hsaWdodGVkXSc6ICdoaWdobGlnaHRlZCB8fCBudWxsJyxcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICctMScsXG4gICAgICAgICcoZm9jdXMpJzogJ2NvbnRlbnQuaGlnaGxpZ2h0ZWQubmV4dCh0aGlzKScsXG4gICAgICAgICcoY2xpY2spJzogJ3NlbGVjdFZpYUludGVyYWN0aW9uKCknLFxuICAgICAgICAnKGtleWRvd24pJzogJ2hhbmRsZUtleWRvd24oJGV2ZW50KScsXG4gICAgICAgICcocG9pbnRlcm1vdmUpJzogJ29uUG9pbnRlck1vdmUoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeFNlbGVjdEl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBIaWdobGlnaHRhYmxlIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ID0gaW5qZWN0KFJkeFNlbGVjdENvbXBvbmVudCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRlbnQgPSBpbmplY3QoUmR4U2VsZWN0Q29udGVudERpcmVjdGl2ZSk7XG4gICAgcmVhZG9ubHkgb25TZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJkeFNlbGVjdEl0ZW1DaGFuZ2U+KCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcblxuICAgIGhpZ2hsaWdodGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcblxuICAgIGdldCBkYXRhU3RhdGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQgPyAnY2hlY2tlZCcgOiAndW5jaGVja2VkJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdW5pcXVlIFNlbGVjdEl0ZW0gaWQuXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlkOiBzdHJpbmcgPSBgcmR4LXNlbGVjdC1pdGVtLSR7bmV4dElkKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlIHx8IHRoaXMuaWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdmFsdWU/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSB0ZXh0VmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIFNlbGVjdEl0ZW0gaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBnZXQgdmlld1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRWYWx1ZSA/PyB0aGlzLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY29udGVudC5oaWdobGlnaHRlZC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBHZXRzIHRoZSBsYWJlbCB0byBiZSB1c2VkIHdoZW4gZGV0ZXJtaW5pbmcgd2hldGhlciB0aGUgb3B0aW9uIHNob3VsZCBiZSBmb2N1c2VkLiAqL1xuICAgIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdWYWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBgU2VsZWN0cyB0aGUgb3B0aW9uIHdoaWxlIGluZGljYXRpbmcgdGhlIHNlbGVjdGlvbiBjYW1lIGZyb20gdGhlIHVzZXIuIFVzZWQgdG9cbiAgICAgKiBkZXRlcm1pbmUgaWYgdGhlIHNlbGVjdCdzIHZpZXcgLT4gbW9kZWwgY2FsbGJhY2sgc2hvdWxkIGJlIGludm9rZWQuYFxuICAgICAqL1xuICAgIHNlbGVjdFZpYUludGVyYWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlLmVtaXQobmV3IFJkeFNlbGVjdEl0ZW1DaGFuZ2UodGhpcykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gRU5URVIgfHwgZXZlbnQua2V5Q29kZSA9PT0gU1BBQ0UpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0VmlhSW50ZXJhY3Rpb24oKTtcblxuICAgICAgICAgICAgLy8gUHJldmVudCB0aGUgcGFnZSBmcm9tIHNjcm9sbGluZyBkb3duIGFuZCBmb3JtIHN1Ym1pdHMuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRBY3RpdmVTdHlsZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHNldEluYWN0aXZlU3R5bGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uUG9pbnRlck1vdmUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5oaWdobGlnaHRlZCkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0LnVwZGF0ZUFjdGl2ZUl0ZW0odGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class RdxSelectLabelDirective {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxSelectLabelDirective, isStandalone: true, selector: "[rdxSelectLabel]", exportAs: ["rdxSelectLabel"], ngImport: i0 }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectLabelDirective, decorators: [{
8
+ type: Directive,
9
+ args: [{
10
+ selector: '[rdxSelectLabel]',
11
+ standalone: true,
12
+ exportAs: 'rdxSelectLabel'
13
+ }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWxhYmVsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc2VsZWN0L3NyYy9zZWxlY3QtbGFiZWwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzFDLE1BQU0sT0FBTyx1QkFBdUI7K0dBQXZCLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZ0JBQWdCO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhTZWxlY3RMYWJlbF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgZXhwb3J0QXM6ICdyZHhTZWxlY3RMYWJlbCdcbn0pXG5leHBvcnQgY2xhc3MgUmR4U2VsZWN0TGFiZWxEaXJlY3RpdmUge31cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class RdxSelectSeparatorDirective {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectSeparatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxSelectSeparatorDirective, isStandalone: true, selector: "[rdxSelectSeparator]", host: { properties: { "attr.aria-hidden": "true" } }, exportAs: ["rdxSelectSeparator"], ngImport: i0 }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectSeparatorDirective, decorators: [{
8
+ type: Directive,
9
+ args: [{
10
+ selector: '[rdxSelectSeparator]',
11
+ standalone: true,
12
+ exportAs: 'rdxSelectSeparator',
13
+ host: {
14
+ '[attr.aria-hidden]': 'true'
15
+ }
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlcGFyYXRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3NlbGVjdC9zcmMvc2VsZWN0LXNlcGFyYXRvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVMUMsTUFBTSxPQUFPLDJCQUEyQjsrR0FBM0IsMkJBQTJCO21HQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBUnZDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLElBQUksRUFBRTt3QkFDRixvQkFBb0IsRUFBRSxNQUFNO3FCQUMvQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhTZWxlY3RTZXBhcmF0b3JdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGV4cG9ydEFzOiAncmR4U2VsZWN0U2VwYXJhdG9yJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5hcmlhLWhpZGRlbl0nOiAndHJ1ZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeFNlbGVjdFNlcGFyYXRvckRpcmVjdGl2ZSB7fVxuIl19
@@ -0,0 +1,38 @@
1
+ import { ContentChild, Directive, ElementRef, inject } from '@angular/core';
2
+ import { RdxSelectValueDirective } from './select-value.directive';
3
+ import { RdxSelectComponent } from './select.component';
4
+ import * as i0 from "@angular/core";
5
+ export class RdxSelectTriggerDirective {
6
+ constructor() {
7
+ this.nativeElement = inject(ElementRef).nativeElement;
8
+ this.select = inject(RdxSelectComponent);
9
+ }
10
+ focus() {
11
+ this.nativeElement.focus();
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxSelectTriggerDirective, isStandalone: true, selector: "[rdxSelectTrigger]", host: { properties: { "attr.type": "\"button\"", "attr.role": "\"combobox\"", "attr.aria-autocomplete": "\"none\"", "attr.dir": "select.dir", "attr.aria-expanded": "select.open", "attr.aria-required": "select.required", "attr.disabled": "select.disabled ? \"\" : null", "attr.data-disabled": "select.disabled ? \"\" : null", "attr.data-state": "select.open ? 'open': 'closed'", "attr.data-placeholder": "value.placeholder || null" } }, queries: [{ propertyName: "value", first: true, predicate: RdxSelectValueDirective, descendants: true }], ngImport: i0 }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectTriggerDirective, decorators: [{
17
+ type: Directive,
18
+ args: [{
19
+ selector: '[rdxSelectTrigger]',
20
+ standalone: true,
21
+ host: {
22
+ '[attr.type]': '"button"',
23
+ '[attr.role]': '"combobox"',
24
+ '[attr.aria-autocomplete]': '"none"',
25
+ '[attr.dir]': 'select.dir',
26
+ '[attr.aria-expanded]': 'select.open',
27
+ '[attr.aria-required]': 'select.required',
28
+ '[attr.disabled]': 'select.disabled ? "" : null',
29
+ '[attr.data-disabled]': 'select.disabled ? "" : null',
30
+ '[attr.data-state]': "select.open ? 'open': 'closed'",
31
+ '[attr.data-placeholder]': 'value.placeholder || null'
32
+ }
33
+ }]
34
+ }], propDecorators: { value: [{
35
+ type: ContentChild,
36
+ args: [RdxSelectValueDirective]
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9zZWxlY3Qvc3JjL3NlbGVjdC10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW1CeEQsTUFBTSxPQUFPLHlCQUF5QjtJQWpCdEM7UUFrQmMsa0JBQWEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQ2pELFdBQU0sR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQU9qRDtJQUhHLEtBQUs7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9CLENBQUM7K0dBUlEseUJBQXlCO21HQUF6Qix5QkFBeUIscWlCQUlwQix1QkFBdUI7OzRGQUo1Qix5QkFBeUI7a0JBakJyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsYUFBYSxFQUFFLFVBQVU7d0JBQ3pCLGFBQWEsRUFBRSxZQUFZO3dCQUMzQiwwQkFBMEIsRUFBRSxRQUFRO3dCQUNwQyxZQUFZLEVBQUUsWUFBWTt3QkFDMUIsc0JBQXNCLEVBQUUsYUFBYTt3QkFDckMsc0JBQXNCLEVBQUUsaUJBQWlCO3dCQUV6QyxpQkFBaUIsRUFBRSw2QkFBNkI7d0JBQ2hELHNCQUFzQixFQUFFLDZCQUE2Qjt3QkFDckQsbUJBQW1CLEVBQUUsZ0NBQWdDO3dCQUNyRCx5QkFBeUIsRUFBRSwyQkFBMkI7cUJBQ3pEO2lCQUNKOzhCQUtvRCxLQUFLO3NCQUFyRCxZQUFZO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeFNlbGVjdFZhbHVlRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWxlY3QtdmFsdWUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFNlbGVjdFRyaWdnZXJdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnR5cGVdJzogJ1wiYnV0dG9uXCInLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAnXCJjb21ib2JveFwiJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtYXV0b2NvbXBsZXRlXSc6ICdcIm5vbmVcIicsXG4gICAgICAgICdbYXR0ci5kaXJdJzogJ3NlbGVjdC5kaXInLFxuICAgICAgICAnW2F0dHIuYXJpYS1leHBhbmRlZF0nOiAnc2VsZWN0Lm9wZW4nLFxuICAgICAgICAnW2F0dHIuYXJpYS1yZXF1aXJlZF0nOiAnc2VsZWN0LnJlcXVpcmVkJyxcblxuICAgICAgICAnW2F0dHIuZGlzYWJsZWRdJzogJ3NlbGVjdC5kaXNhYmxlZCA/IFwiXCIgOiBudWxsJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ3NlbGVjdC5kaXNhYmxlZCA/IFwiXCIgOiBudWxsJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc3RhdGVdJzogXCJzZWxlY3Qub3BlbiA/ICdvcGVuJzogJ2Nsb3NlZCdcIixcbiAgICAgICAgJ1thdHRyLmRhdGEtcGxhY2Vob2xkZXJdJzogJ3ZhbHVlLnBsYWNlaG9sZGVyIHx8IG51bGwnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhTZWxlY3RUcmlnZ2VyRGlyZWN0aXZlIHtcbiAgICBwcm90ZWN0ZWQgbmF0aXZlRWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50O1xuICAgIHByb3RlY3RlZCBzZWxlY3QgPSBpbmplY3QoUmR4U2VsZWN0Q29tcG9uZW50KTtcblxuICAgIEBDb250ZW50Q2hpbGQoUmR4U2VsZWN0VmFsdWVEaXJlY3RpdmUpIHByb3RlY3RlZCB2YWx1ZTogUmR4U2VsZWN0VmFsdWVEaXJlY3RpdmU7XG5cbiAgICBmb2N1cygpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,26 @@
1
+ import { Component, inject, Input } from '@angular/core';
2
+ import { RdxSelectComponent } from './select.component';
3
+ import * as i0 from "@angular/core";
4
+ export class RdxSelectValueDirective {
5
+ constructor() {
6
+ this.select = inject(RdxSelectComponent);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectValueDirective, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: RdxSelectValueDirective, isStandalone: true, selector: "[rdxSelectValue]", inputs: { placeholder: "placeholder" }, exportAs: ["rdxSelectValue"], ngImport: i0, template: `
10
+ {{ select.selectionModel.isEmpty() ? placeholder : select.selected }}
11
+ `, isInline: true }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectValueDirective, decorators: [{
14
+ type: Component,
15
+ args: [{
16
+ selector: '[rdxSelectValue]',
17
+ standalone: true,
18
+ exportAs: 'rdxSelectValue',
19
+ template: `
20
+ {{ select.selectionModel.isEmpty() ? placeholder : select.selected }}
21
+ `
22
+ }]
23
+ }], propDecorators: { placeholder: [{
24
+ type: Input
25
+ }] } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXZhbHVlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc2VsZWN0L3NyYy9zZWxlY3QtdmFsdWUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFVeEQsTUFBTSxPQUFPLHVCQUF1QjtJQVJwQztRQVNJLFdBQU0sR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUd2QzsrR0FKWSx1QkFBdUI7bUdBQXZCLHVCQUF1QixrSkFKdEI7O0tBRVQ7OzRGQUVRLHVCQUF1QjtrQkFSbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFOztLQUVUO2lCQUNKOzhCQUlZLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFNlbGVjdFZhbHVlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBleHBvcnRBczogJ3JkeFNlbGVjdFZhbHVlJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICB7eyBzZWxlY3Quc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpID8gcGxhY2Vob2xkZXIgOiBzZWxlY3Quc2VsZWN0ZWQgfX1cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIFJkeFNlbGVjdFZhbHVlRGlyZWN0aXZlIHtcbiAgICBzZWxlY3QgPSBpbmplY3QoUmR4U2VsZWN0Q29tcG9uZW50KTtcblxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,233 @@
1
+ import { Directionality } from '@angular/cdk/bidi';
2
+ import { SelectionModel } from '@angular/cdk/collections';
3
+ import { CdkConnectedOverlay, Overlay, OverlayModule } from '@angular/cdk/overlay';
4
+ import { booleanAttribute, ChangeDetectorRef, Component, ContentChild, ContentChildren, DestroyRef, ElementRef, EventEmitter, inject, Input, NgZone, Output, QueryList, ViewChild } from '@angular/core';
5
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
+ import { defer, delay, merge, Subscription, switchMap, take } from 'rxjs';
7
+ import { RdxSelectContentDirective } from './select-content.directive';
8
+ import { RdxSelectItemDirective } from './select-item.directive';
9
+ import { RdxSelectTriggerDirective } from './select-trigger.directive';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/cdk/overlay";
12
+ let nextId = 0;
13
+ export class RdxSelectComponent {
14
+ constructor() {
15
+ this.overlay = inject(Overlay);
16
+ this.elementRef = inject(ElementRef);
17
+ this.changeDetectorRef = inject(ChangeDetectorRef);
18
+ this.destroyRef = inject(DestroyRef);
19
+ this.ngZone = inject(NgZone);
20
+ /**
21
+ * This position config ensures that the top "start" corner of the overlay
22
+ * is aligned with the top "start" of the origin by default (overlapping
23
+ * the trigger completely). If the panel cannot fit below the trigger, it
24
+ * will fall back to a position above the trigger.
25
+ */
26
+ this.positions = [
27
+ {
28
+ originX: 'start',
29
+ originY: 'bottom',
30
+ overlayX: 'start',
31
+ overlayY: 'top'
32
+ },
33
+ {
34
+ originX: 'start',
35
+ originY: 'top',
36
+ overlayX: 'start',
37
+ overlayY: 'bottom'
38
+ }
39
+ ];
40
+ this.closeSubscription = Subscription.EMPTY;
41
+ /**
42
+ * @ignore
43
+ */
44
+ this.dir = inject(Directionality, { optional: true });
45
+ /**
46
+ * @ignore
47
+ */
48
+ this.id = `rdx-select-${nextId++}`;
49
+ this.onValueChange = new EventEmitter();
50
+ this.onOpenChange = new EventEmitter();
51
+ this.optionSelectionChanges = defer(() => {
52
+ if (this.content.options) {
53
+ return merge(...this.content.options.map((option) => option.onSelectionChange));
54
+ }
55
+ return this.ngZone.onStable.asObservable().pipe(take(1), switchMap(() => this.optionSelectionChanges));
56
+ });
57
+ }
58
+ /**
59
+ * The controlled value of the item to expand
60
+ */
61
+ set value(value) {
62
+ if (this._value !== value) {
63
+ this._value = value;
64
+ this.selectValue(value);
65
+ this.changeDetectorRef.markForCheck();
66
+ }
67
+ }
68
+ get value() {
69
+ return this._value ?? this.defaultValue;
70
+ }
71
+ get selected() {
72
+ return this.selectionModel.selected[0].viewValue || null;
73
+ }
74
+ ngOnInit() {
75
+ this.selectionModel = new SelectionModel();
76
+ this.selectionModel.changed.subscribe((changes) => {
77
+ if (changes.added.length) {
78
+ this.onValueChange.emit(this.selectionModel.selected[0].value);
79
+ }
80
+ if (changes.removed.length) {
81
+ changes.removed.forEach((item) => (item.selected = false));
82
+ }
83
+ });
84
+ }
85
+ ngAfterContentInit() {
86
+ this.selectDefaultValue();
87
+ this.optionSelectionChanges.subscribe((event) => {
88
+ this.selectionModel.clear();
89
+ this.selectionModel.select(event.source);
90
+ this.close();
91
+ this.trigger.focus();
92
+ });
93
+ this.content.keyManager.tabOut.subscribe(() => {
94
+ if (this.open)
95
+ this.close();
96
+ });
97
+ if (this.defaultOpen) {
98
+ this.openPanel();
99
+ }
100
+ }
101
+ /**
102
+ * Callback that is invoked when the overlay panel has been attached.
103
+ */
104
+ onAttached() {
105
+ this.closeSubscription = this.closingActions()
106
+ .pipe(takeUntilDestroyed(this.destroyRef))
107
+ .pipe(delay(0))
108
+ .subscribe(() => this.close());
109
+ }
110
+ onDetach() {
111
+ this.close();
112
+ this.closeSubscription.unsubscribe();
113
+ }
114
+ /** Toggles the overlay panel open or closed. */
115
+ toggle() {
116
+ if (this.open) {
117
+ this.close();
118
+ }
119
+ else {
120
+ this.openPanel();
121
+ }
122
+ }
123
+ openPanel() {
124
+ this.open = true;
125
+ this.onOpenChange.emit(this.open);
126
+ }
127
+ close() {
128
+ this.open = false;
129
+ this.onOpenChange.emit(this.open);
130
+ }
131
+ updateActiveItem(item) {
132
+ this.content.keyManager.updateActiveItem(item);
133
+ }
134
+ selectDefaultValue() {
135
+ if (!this.defaultValue)
136
+ return;
137
+ this.selectValue(this.defaultValue);
138
+ }
139
+ selectValue(value) {
140
+ const option = this.content?.options.find((option) => option.value === value);
141
+ if (option) {
142
+ option.selected = true;
143
+ option.highlighted = true;
144
+ this.selectionModel.select(option);
145
+ this.updateActiveItem(option);
146
+ }
147
+ }
148
+ closingActions() {
149
+ return merge(this.overlayDir.overlayRef.outsidePointerEvents(), this.overlayDir.overlayRef.detachments());
150
+ }
151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.11", type: RdxSelectComponent, isStandalone: true, selector: "[rdxSelect]", inputs: { defaultValue: "defaultValue", name: "name", defaultOpen: ["defaultOpen", "defaultOpen", booleanAttribute], open: ["open", "open", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], required: ["required", "required", booleanAttribute], value: "value" }, outputs: { onValueChange: "onValueChange", onOpenChange: "onOpenChange" }, host: { listeners: { "click": "toggle()", "keydown": "content.keyManager.onKeydown($event)" } }, queries: [{ propertyName: "trigger", first: true, predicate: RdxSelectTriggerDirective, descendants: true }, { propertyName: "content", first: true, predicate: RdxSelectContentDirective, descendants: true }, { propertyName: "items", predicate: RdxSelectItemDirective, descendants: true }], viewQueries: [{ propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }], ngImport: i0, template: `
153
+ <ng-content select="[rdxSelectTrigger]" />
154
+
155
+ <ng-template
156
+ [cdkConnectedOverlayOpen]="open"
157
+ [cdkConnectedOverlayOrigin]="elementRef"
158
+ [cdkConnectedOverlayPositions]="positions"
159
+ [cdkConnectedOverlayScrollStrategy]="overlay.scrollStrategies.reposition()"
160
+ (attach)="onAttached()"
161
+ (backdropClick)="close()"
162
+ (detach)="onDetach()"
163
+ cdkConnectedOverlay
164
+ >
165
+ <ng-content select="[rdxSelectContent]" />
166
+ </ng-template>
167
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }] }); }
168
+ }
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSelectComponent, decorators: [{
170
+ type: Component,
171
+ args: [{
172
+ standalone: true,
173
+ selector: '[rdxSelect]',
174
+ template: `
175
+ <ng-content select="[rdxSelectTrigger]" />
176
+
177
+ <ng-template
178
+ [cdkConnectedOverlayOpen]="open"
179
+ [cdkConnectedOverlayOrigin]="elementRef"
180
+ [cdkConnectedOverlayPositions]="positions"
181
+ [cdkConnectedOverlayScrollStrategy]="overlay.scrollStrategies.reposition()"
182
+ (attach)="onAttached()"
183
+ (backdropClick)="close()"
184
+ (detach)="onDetach()"
185
+ cdkConnectedOverlay
186
+ >
187
+ <ng-content select="[rdxSelectContent]" />
188
+ </ng-template>
189
+ `,
190
+ host: {
191
+ '(click)': 'toggle()',
192
+ '(keydown)': 'content.keyManager.onKeydown($event)'
193
+ },
194
+ imports: [
195
+ OverlayModule
196
+ ]
197
+ }]
198
+ }], propDecorators: { trigger: [{
199
+ type: ContentChild,
200
+ args: [RdxSelectTriggerDirective]
201
+ }], content: [{
202
+ type: ContentChild,
203
+ args: [RdxSelectContentDirective]
204
+ }], items: [{
205
+ type: ContentChildren,
206
+ args: [RdxSelectItemDirective, { descendants: true }]
207
+ }], overlayDir: [{
208
+ type: ViewChild,
209
+ args: [CdkConnectedOverlay, { static: false }]
210
+ }], defaultValue: [{
211
+ type: Input
212
+ }], name: [{
213
+ type: Input
214
+ }], defaultOpen: [{
215
+ type: Input,
216
+ args: [{ transform: booleanAttribute }]
217
+ }], open: [{
218
+ type: Input,
219
+ args: [{ transform: booleanAttribute }]
220
+ }], disabled: [{
221
+ type: Input,
222
+ args: [{ transform: booleanAttribute }]
223
+ }], required: [{
224
+ type: Input,
225
+ args: [{ transform: booleanAttribute }]
226
+ }], value: [{
227
+ type: Input
228
+ }], onValueChange: [{
229
+ type: Output
230
+ }], onOpenChange: [{
231
+ type: Output
232
+ }] } });
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc2VsZWN0L3NyYy9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEcsT0FBTyxFQUVILGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFjLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sRUFBdUIsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBRXZFLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQTZCZixNQUFNLE9BQU8sa0JBQWtCO0lBM0IvQjtRQTRCYyxZQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFD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c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRUUsSUFBSTtzQkFBM0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFHRSxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVFLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTWxDLEtBQUs7c0JBRFIsS0FBSztnQkFpQmEsYUFBYTtzQkFBL0IsTUFBTTtnQkFFWSxZQUFZO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENvbm5lY3RlZFBvc2l0aW9uLCBPdmVybGF5LCBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGRlZmVyLCBkZWxheSwgbWVyZ2UsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZHhTZWxlY3RDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9zZWxlY3QtY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4U2VsZWN0SXRlbUNoYW5nZSwgUmR4U2VsZWN0SXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vc2VsZWN0LWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeFNlbGVjdFRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdC10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3JkeFNlbGVjdF0nLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltyZHhTZWxlY3RUcmlnZ2VyXVwiIC8+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwib3BlblwiXG4gICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJlbGVtZW50UmVmXCJcbiAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zXT1cInBvc2l0aW9uc1wiXG4gICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVNjcm9sbFN0cmF0ZWd5XT1cIm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcIlxuICAgICAgICAgICAgKGF0dGFjaCk9XCJvbkF0dGFjaGVkKClcIlxuICAgICAgICAgICAgKGJhY2tkcm9wQ2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgICAoZGV0YWNoKT1cIm9uRGV0YWNoKClcIlxuICAgICAgICAgICAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcmR4U2VsZWN0Q29udGVudF1cIiAvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIGAsXG4gICAgaG9zdDoge1xuICAgICAgICAnKGNsaWNrKSc6ICd0b2dnbGUoKScsXG4gICAgICAgICcoa2V5ZG93biknOiAnY29udGVudC5rZXlNYW5hZ2VyLm9uS2V5ZG93bigkZXZlbnQpJ1xuICAgIH0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBPdmVybGF5TW9kdWxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZHhTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICAgIHByb3RlY3RlZCBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICAgIHByb3RlY3RlZCBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICBAQ29udGVudENoaWxkKFJkeFNlbGVjdFRyaWdnZXJEaXJlY3RpdmUpIHByb3RlY3RlZCB0cmlnZ2VyOiBSZHhTZWxlY3RUcmlnZ2VyRGlyZWN0aXZlO1xuXG4gICAgQENvbnRlbnRDaGlsZChSZHhTZWxlY3RDb250ZW50RGlyZWN0aXZlKSBwcm90ZWN0ZWQgY29udGVudDogUmR4U2VsZWN0Q29udGVudERpcmVjdGl2ZTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUmR4U2VsZWN0SXRlbURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBpdGVtczogUXVlcnlMaXN0PFJkeFNlbGVjdEl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgQFZpZXdDaGlsZChDZGtDb25uZWN0ZWRPdmVybGF5LCB7IHN0YXRpYzogZmFsc2UgfSkgb3ZlcmxheURpcjogQ2RrQ29ubmVjdGVkT3ZlcmxheTtcblxuICAgIC8qKiBEZWFscyB3aXRoIHRoZSBzZWxlY3Rpb24gbG9naWMuICovXG4gICAgc2VsZWN0aW9uTW9kZWw6IFNlbGVjdGlvbk1vZGVsPFJkeFNlbGVjdEl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBwb3NpdGlvbiBjb25maWcgZW5zdXJlcyB0aGF0IHRoZSB0b3AgXCJzdGFydFwiIGNvcm5lciBvZiB0aGUgb3ZlcmxheVxuICAgICAqIGlzIGFsaWduZWQgd2l0aCB0aGUgdG9wIFwic3RhcnRcIiBvZiB0aGUgb3JpZ2luIGJ5IGRlZmF1bHQgKG92ZXJsYXBwaW5nXG4gICAgICogdGhlIHRyaWdnZXIgY29tcGxldGVseSkuIElmIHRoZSBwYW5lbCBjYW5ub3QgZml0IGJlbG93IHRoZSB0cmlnZ2VyLCBpdFxuICAgICAqIHdpbGwgZmFsbCBiYWNrIHRvIGEgcG9zaXRpb24gYWJvdmUgdGhlIHRyaWdnZXIuXG4gICAgICovXG4gICAgcG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJ1xuICAgICAgICB9XG4gICAgXTtcblxuICAgIHByaXZhdGUgY2xvc2VTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGlyID0gaW5qZWN0KERpcmVjdGlvbmFsaXR5LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBrZXlNYW5hZ2VyOiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxSZHhTZWxlY3RJdGVtRGlyZWN0aXZlPjtcblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICByZWFkb25seSBpZDogc3RyaW5nID0gYHJkeC1zZWxlY3QtJHtuZXh0SWQrK31gO1xuXG4gICAgQElucHV0KCkgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRlZmF1bHRPcGVuOiBib29sZWFuO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIG9wZW46IGJvb2xlYW47XG5cbiAgICAvKiogV2hldGhlciB0aGUgU2VsZWN0IGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByZXF1aXJlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjb250cm9sbGVkIHZhbHVlIG9mIHRoZSBpdGVtIHRvIGV4cGFuZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdmFsdWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZSA/PyB0aGlzLmRlZmF1bHRWYWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWx1ZT86IHN0cmluZztcblxuICAgIEBPdXRwdXQoKSByZWFkb25seSBvblZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG9uT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcmVhZG9ubHkgb3B0aW9uU2VsZWN0aW9uQ2hhbmdlczogT2JzZXJ2YWJsZTxSZHhTZWxlY3RJdGVtQ2hhbmdlPiA9IGRlZmVyKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudC5vcHRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2UoLi4udGhpcy5jb250ZW50Lm9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi5vblNlbGVjdGlvbkNoYW5nZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubmdab25lLm9uU3RhYmxlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMub3B0aW9uU2VsZWN0aW9uQ2hhbmdlcylcbiAgICAgICAgKTtcbiAgICB9KSBhcyBPYnNlcnZhYmxlPFJkeFNlbGVjdEl0ZW1DaGFuZ2U+O1xuXG4gICAgZ2V0IHNlbGVjdGVkKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXS52aWV3VmFsdWUgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxSZHhTZWxlY3RJdGVtRGlyZWN0aXZlPigpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuY2hhbmdlZC5zdWJzY3JpYmUoKGNoYW5nZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLmFkZGVkLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRbMF0udmFsdWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY2hhbmdlcy5yZW1vdmVkLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNoYW5nZXMucmVtb3ZlZC5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5zZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3REZWZhdWx0VmFsdWUoKTtcblxuICAgICAgICB0aGlzLm9wdGlvblNlbGVjdGlvbkNoYW5nZXMuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdChldmVudC5zb3VyY2UpO1xuXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXIuZm9jdXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jb250ZW50LmtleU1hbmFnZXIudGFiT3V0LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcGVuKSB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5QYW5lbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdGhhdCBpcyBpbnZva2VkIHdoZW4gdGhlIG92ZXJsYXkgcGFuZWwgaGFzIGJlZW4gYXR0YWNoZWQuXG4gICAgICovXG4gICAgb25BdHRhY2hlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZVN1YnNjcmlwdGlvbiA9IHRoaXMuY2xvc2luZ0FjdGlvbnMoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAucGlwZShkZWxheSgwKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcbiAgICB9XG5cbiAgICBvbkRldGFjaCgpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB0aGlzLmNsb3NlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIFRvZ2dsZXMgdGhlIG92ZXJsYXkgcGFuZWwgb3BlbiBvciBjbG9zZWQuICovXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5QYW5lbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3BlblBhbmVsKCkge1xuICAgICAgICB0aGlzLm9wZW4gPSB0cnVlO1xuXG4gICAgICAgIHRoaXMub25PcGVuQ2hhbmdlLmVtaXQodGhpcy5vcGVuKTtcbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5vbk9wZW5DaGFuZ2UuZW1pdCh0aGlzLm9wZW4pO1xuICAgIH1cblxuICAgIHVwZGF0ZUFjdGl2ZUl0ZW0oaXRlbTogUmR4U2VsZWN0SXRlbURpcmVjdGl2ZSkge1xuICAgICAgICB0aGlzLmNvbnRlbnQua2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKGl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0RGVmYXVsdFZhbHVlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGVmYXVsdFZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5zZWxlY3RWYWx1ZSh0aGlzLmRlZmF1bHRWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMuY29udGVudD8ub3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpO1xuXG4gICAgICAgIGlmIChvcHRpb24pIHtcbiAgICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICBvcHRpb24uaGlnaGxpZ2h0ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdChvcHRpb24pO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVJdGVtKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NpbmdBY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gbWVyZ2UodGhpcy5vdmVybGF5RGlyLm92ZXJsYXlSZWYhLm91dHNpZGVQb2ludGVyRXZlbnRzKCksIHRoaXMub3ZlcmxheURpci5vdmVybGF5UmVmIS5kZXRhY2htZW50cygpKTtcbiAgICB9XG59XG4iXX0=
@@ -23,19 +23,23 @@ export class RdxSeparatorRootDirective {
23
23
  /**
24
24
  * Computes the `role` attribute for the separator. If `decorative` is true,
25
25
  * the role is set to "none", otherwise it is "separator".
26
+ *
27
+ * @ignore
26
28
  */
27
29
  this.computedRole = computed(() => (this.decorative() ? 'none' : 'separator'));
28
30
  /**
29
31
  * Computes the `aria-orientation` attribute. It is set to "vertical" only if
30
32
  * the separator is not decorative and the orientation is set to "vertical".
31
33
  * For horizontal orientation, the attribute is omitted.
34
+ *
35
+ * @ignore
32
36
  */
33
37
  this.computedAriaOrientation = computed(() => !this.decorative() && this.orientation() === 'vertical' ? 'vertical' : null);
34
38
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxSeparatorRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.1", type: RdxSeparatorRootDirective, isStandalone: true, selector: "div[rdxSeparatorRoot]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, decorative: { classPropertyName: "decorative", publicName: "decorative", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "computedRole()", "attr.aria-orientation": "computedAriaOrientation()", "attr.data-orientation": "orientation()" } }, ngImport: i0 }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSeparatorRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
40
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: RdxSeparatorRootDirective, isStandalone: true, selector: "div[rdxSeparatorRoot]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, decorative: { classPropertyName: "decorative", publicName: "decorative", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "computedRole()", "attr.aria-orientation": "computedAriaOrientation()", "attr.data-orientation": "orientation()" } }, ngImport: i0 }); }
37
41
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxSeparatorRootDirective, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxSeparatorRootDirective, decorators: [{
39
43
  type: Directive,
40
44
  args: [{
41
45
  selector: 'div[rdxSeparatorRoot]',
@@ -47,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
47
51
  }
48
52
  }]
49
53
  }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc2VwYXJhdG9yL3NyYy9zZXBhcmF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFN0UsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUM7QUFFekMsNkRBQTZEO0FBQzdELE1BQU0sWUFBWSxHQUFHLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBZ0J6RDs7OztHQUlHO0FBV0gsTUFBTSxPQUFPLHlCQUF5QjtJQVZ0QztRQVdJOzs7V0FHRztRQUNNLGdCQUFXLEdBQUcsS0FBSyxDQUFjLG1CQUFtQixDQUFDLENBQUM7UUFFL0Q7OztXQUdHO1FBQ00sZUFBVSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUUzRjs7O1dBR0c7UUFDZ0IsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUU3Rjs7OztXQUlHO1FBQ2dCLDRCQUF1QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDdkQsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlFLENBQUM7S0FDTDs4R0EzQlkseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBVnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDRixhQUFhLEVBQUUsZ0JBQWdCO3dCQUMvQix5QkFBeUIsRUFBRSwyQkFBMkI7d0JBRXRELHlCQUF5QixFQUFFLGVBQWU7cUJBQzdDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIGNvbXB1dGVkLCBEaXJlY3RpdmUsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IERFRkFVTFRfT1JJRU5UQVRJT04gPSAnaG9yaXpvbnRhbCc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmNvbnN0IE9SSUVOVEFUSU9OUyA9IFsnaG9yaXpvbnRhbCcsICd2ZXJ0aWNhbCddIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBPcmllbnRhdGlvbiA9ICh0eXBlb2YgT1JJRU5UQVRJT05TKVtudW1iZXJdO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcGFyYXRvclByb3BzIHtcbiAgICAvKipcbiAgICAgKiBFaXRoZXIgYHZlcnRpY2FsYCBvciBgaG9yaXpvbnRhbGAuIERlZmF1bHRzIHRvIGBob3Jpem9udGFsYC5cbiAgICAgKi9cbiAgICBvcmllbnRhdGlvbj86IE9yaWVudGF0aW9uO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBwdXJlbHkgZGVjb3JhdGl2ZS4gV2hlbiB0cnVlLCBhY2Nlc3NpYmlsaXR5LXJlbGF0ZWQgYXR0cmlidXRlc1xuICAgICAqIGFyZSB1cGRhdGVkIHNvIHRoYXQgdGhlIHJlbmRlcmVkIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUuXG4gICAgICovXG4gICAgZGVjb3JhdGl2ZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgYWRkcyBhY2Nlc3NpYmxlIGFuZCBjb25maWd1cmFibGUgc2VwYXJhdG9yIGVsZW1lbnQgdG8gdGhlIERPTS5cbiAqIFRoaXMgY2FuIGJlIGVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGFuZCBvcHRpb25hbGx5IGRlY29yYXRpdmUgKHdoaWNoIHJlbW92ZXNcbiAqIGl0IGZyb20gdGhlIGFjY2Vzc2liaWxpdHkgdHJlZSkuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZGl2W3JkeFNlcGFyYXRvclJvb3RdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnJvbGVdJzogJ2NvbXB1dGVkUm9sZSgpJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtb3JpZW50YXRpb25dJzogJ2NvbXB1dGVkQXJpYU9yaWVudGF0aW9uKCknLFxuXG4gICAgICAgICdbYXR0ci5kYXRhLW9yaWVudGF0aW9uXSc6ICdvcmllbnRhdGlvbigpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4U2VwYXJhdG9yUm9vdERpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogT3JpZW50YXRpb24gb2YgdGhlIHNlcGFyYXRvciwgY2FuIGJlIGVpdGhlciAnaG9yaXpvbnRhbCcgb3IgJ3ZlcnRpY2FsJy5cbiAgICAgKiBEZWZhdWx0cyB0byAnaG9yaXpvbnRhbCcuXG4gICAgICovXG4gICAgcmVhZG9ubHkgb3JpZW50YXRpb24gPSBpbnB1dDxPcmllbnRhdGlvbj4oREVGQVVMVF9PUklFTlRBVElPTik7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGUgc2VwYXJhdG9yIHdpbGwgYmUgY29uc2lkZXJlZCBkZWNvcmF0aXZlIGFuZCByZW1vdmVkIGZyb21cbiAgICAgKiB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlLiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZWNvcmF0aXZlID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgYHJvbGVgIGF0dHJpYnV0ZSBmb3IgdGhlIHNlcGFyYXRvci4gSWYgYGRlY29yYXRpdmVgIGlzIHRydWUsXG4gICAgICogdGhlIHJvbGUgaXMgc2V0IHRvIFwibm9uZVwiLCBvdGhlcndpc2UgaXQgaXMgXCJzZXBhcmF0b3JcIi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcHV0ZWRSb2xlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuZGVjb3JhdGl2ZSgpID8gJ25vbmUnIDogJ3NlcGFyYXRvcicpKTtcblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIHRoZSBgYXJpYS1vcmllbnRhdGlvbmAgYXR0cmlidXRlLiBJdCBpcyBzZXQgdG8gXCJ2ZXJ0aWNhbFwiIG9ubHkgaWZcbiAgICAgKiB0aGUgc2VwYXJhdG9yIGlzIG5vdCBkZWNvcmF0aXZlIGFuZCB0aGUgb3JpZW50YXRpb24gaXMgc2V0IHRvIFwidmVydGljYWxcIi5cbiAgICAgKiBGb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvbiwgdGhlIGF0dHJpYnV0ZSBpcyBvbWl0dGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb21wdXRlZEFyaWFPcmllbnRhdGlvbiA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgICF0aGlzLmRlY29yYXRpdmUoKSAmJiB0aGlzLm9yaWVudGF0aW9uKCkgPT09ICd2ZXJ0aWNhbCcgPyAndmVydGljYWwnIDogbnVsbFxuICAgICk7XG59XG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc2VwYXJhdG9yL3NyYy9zZXBhcmF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFN0UsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUM7QUFFekMsNkRBQTZEO0FBQzdELE1BQU0sWUFBWSxHQUFHLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBZ0J6RDs7OztHQUlHO0FBV0gsTUFBTSxPQUFPLHlCQUF5QjtJQVZ0QztRQVdJOzs7V0FHRztRQUNNLGdCQUFXLEdBQUcsS0FBSyxDQUFjLG1CQUFtQixDQUFDLENBQUM7UUFFL0Q7OztXQUdHO1FBQ00sZUFBVSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUUzRjs7Ozs7V0FLRztRQUNnQixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRTdGOzs7Ozs7V0FNRztRQUNnQiw0QkFBdUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ3ZELENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM5RSxDQUFDO0tBQ0w7K0dBL0JZLHlCQUF5QjttR0FBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQVZyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsYUFBYSxFQUFFLGdCQUFnQjt3QkFDL0IseUJBQXlCLEVBQUUsMkJBQTJCO3dCQUV0RCx5QkFBeUIsRUFBRSxlQUFlO3FCQUM3QztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBjb21wdXRlZCwgRGlyZWN0aXZlLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBERUZBVUxUX09SSUVOVEFUSU9OID0gJ2hvcml6b250YWwnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5jb25zdCBPUklFTlRBVElPTlMgPSBbJ2hvcml6b250YWwnLCAndmVydGljYWwnXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgT3JpZW50YXRpb24gPSAodHlwZW9mIE9SSUVOVEFUSU9OUylbbnVtYmVyXTtcblxuZXhwb3J0IGludGVyZmFjZSBTZXBhcmF0b3JQcm9wcyB7XG4gICAgLyoqXG4gICAgICogRWl0aGVyIGB2ZXJ0aWNhbGAgb3IgYGhvcml6b250YWxgLiBEZWZhdWx0cyB0byBgaG9yaXpvbnRhbGAuXG4gICAgICovXG4gICAgb3JpZW50YXRpb24/OiBPcmllbnRhdGlvbjtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgcHVyZWx5IGRlY29yYXRpdmUuIFdoZW4gdHJ1ZSwgYWNjZXNzaWJpbGl0eS1yZWxhdGVkIGF0dHJpYnV0ZXNcbiAgICAgKiBhcmUgdXBkYXRlZCBzbyB0aGF0IHRoZSByZW5kZXJlZCBlbGVtZW50IGlzIHJlbW92ZWQgZnJvbSB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlLlxuICAgICAqL1xuICAgIGRlY29yYXRpdmU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIERpcmVjdGl2ZSB0aGF0IGFkZHMgYWNjZXNzaWJsZSBhbmQgY29uZmlndXJhYmxlIHNlcGFyYXRvciBlbGVtZW50IHRvIHRoZSBET00uXG4gKiBUaGlzIGNhbiBiZSBlaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBhbmQgb3B0aW9uYWxseSBkZWNvcmF0aXZlICh3aGljaCByZW1vdmVzXG4gKiBpdCBmcm9tIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUpLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2RpdltyZHhTZXBhcmF0b3JSb290XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5yb2xlXSc6ICdjb21wdXRlZFJvbGUoKScsXG4gICAgICAgICdbYXR0ci5hcmlhLW9yaWVudGF0aW9uXSc6ICdjb21wdXRlZEFyaWFPcmllbnRhdGlvbigpJyxcblxuICAgICAgICAnW2F0dHIuZGF0YS1vcmllbnRhdGlvbl0nOiAnb3JpZW50YXRpb24oKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeFNlcGFyYXRvclJvb3REaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIE9yaWVudGF0aW9uIG9mIHRoZSBzZXBhcmF0b3IsIGNhbiBiZSBlaXRoZXIgJ2hvcml6b250YWwnIG9yICd2ZXJ0aWNhbCcuXG4gICAgICogRGVmYXVsdHMgdG8gJ2hvcml6b250YWwnLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG9yaWVudGF0aW9uID0gaW5wdXQ8T3JpZW50YXRpb24+KERFRkFVTFRfT1JJRU5UQVRJT04pO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIHNlcGFyYXRvciB3aWxsIGJlIGNvbnNpZGVyZWQgZGVjb3JhdGl2ZSBhbmQgcmVtb3ZlZCBmcm9tXG4gICAgICogdGhlIGFjY2Vzc2liaWxpdHkgdHJlZS4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVjb3JhdGl2ZSA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4oZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgdGhlIGByb2xlYCBhdHRyaWJ1dGUgZm9yIHRoZSBzZXBhcmF0b3IuIElmIGBkZWNvcmF0aXZlYCBpcyB0cnVlLFxuICAgICAqIHRoZSByb2xlIGlzIHNldCB0byBcIm5vbmVcIiwgb3RoZXJ3aXNlIGl0IGlzIFwic2VwYXJhdG9yXCIuXG4gICAgICpcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbXB1dGVkUm9sZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmRlY29yYXRpdmUoKSA/ICdub25lJyA6ICdzZXBhcmF0b3InKSk7XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgYGFyaWEtb3JpZW50YXRpb25gIGF0dHJpYnV0ZS4gSXQgaXMgc2V0IHRvIFwidmVydGljYWxcIiBvbmx5IGlmXG4gICAgICogdGhlIHNlcGFyYXRvciBpcyBub3QgZGVjb3JhdGl2ZSBhbmQgdGhlIG9yaWVudGF0aW9uIGlzIHNldCB0byBcInZlcnRpY2FsXCIuXG4gICAgICogRm9yIGhvcml6b250YWwgb3JpZW50YXRpb24sIHRoZSBhdHRyaWJ1dGUgaXMgb21pdHRlZC5cbiAgICAgKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcHV0ZWRBcmlhT3JpZW50YXRpb24gPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICAhdGhpcy5kZWNvcmF0aXZlKCkgJiYgdGhpcy5vcmllbnRhdGlvbigpID09PSAndmVydGljYWwnID8gJ3ZlcnRpY2FsJyA6IG51bGxcbiAgICApO1xufVxuIl19