@radix-ng/primitives 0.50.0 → 1.0.0-beta.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 (207) hide show
  1. package/collection/README.md +1 -0
  2. package/fesm2022/radix-ng-primitives-accordion.mjs +134 -66
  3. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +224 -132
  5. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  6. package/fesm2022/radix-ng-primitives-arrow.mjs +26 -10
  7. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +6 -6
  9. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-avatar.mjs +68 -75
  11. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  12. package/fesm2022/radix-ng-primitives-button.mjs +123 -0
  13. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -0
  14. package/fesm2022/radix-ng-primitives-calendar.mjs +104 -103
  15. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-checkbox.mjs +414 -80
  17. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-collapsible.mjs +193 -92
  19. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-collection.mjs +72 -0
  21. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -0
  22. package/fesm2022/radix-ng-primitives-config.mjs +5 -5
  23. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-context-menu.mjs +143 -427
  25. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-core.mjs +757 -757
  27. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-cropper.mjs +55 -53
  29. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-date-field.mjs +93 -86
  31. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-dialog.mjs +658 -330
  33. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +98 -76
  35. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-drawer.mjs +1059 -0
  37. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
  38. package/fesm2022/radix-ng-primitives-editable.mjs +20 -20
  39. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-field.mjs +363 -0
  41. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
  42. package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
  43. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
  44. package/fesm2022/radix-ng-primitives-focus-guards.mjs +3 -3
  45. package/fesm2022/radix-ng-primitives-focus-guards.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-focus-scope.mjs +29 -14
  47. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-input.mjs +172 -0
  49. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
  50. package/fesm2022/radix-ng-primitives-label.mjs +11 -11
  51. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-menu.mjs +1484 -353
  53. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
  55. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
  57. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
  58. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1060 -1553
  59. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -366
  61. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-pagination.mjs +51 -51
  63. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-popover.mjs +980 -995
  65. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-popper.mjs +137 -82
  67. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-portal.mjs +40 -16
  69. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
  71. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
  73. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
  74. package/fesm2022/radix-ng-primitives-progress.mjs +231 -92
  75. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-radio.mjs +211 -70
  77. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-roving-focus.mjs +127 -77
  79. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-select.mjs +791 -511
  81. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-separator.mjs +16 -45
  83. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-slider.mjs +976 -720
  85. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-stepper.mjs +69 -71
  87. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-switch.mjs +128 -124
  89. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-tabs.mjs +388 -115
  91. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-time-field.mjs +111 -117
  93. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-toggle-group.mjs +122 -248
  95. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  96. package/fesm2022/radix-ng-primitives-toggle.mjs +99 -62
  97. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  98. package/fesm2022/radix-ng-primitives-toolbar.mjs +307 -94
  99. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  100. package/fesm2022/radix-ng-primitives-tooltip.mjs +690 -1079
  101. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  102. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +46 -87
  103. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  104. package/fesm2022/radix-ng-primitives.mjs.map +1 -1
  105. package/meter/README.md +3 -0
  106. package/navigation-menu/README.md +2 -1
  107. package/package.json +85 -63
  108. package/portal/README.md +2 -0
  109. package/preview-card/README.md +3 -0
  110. package/schematics/collection.json +1 -0
  111. package/schematics/ng-add/index.d.ts +3 -2
  112. package/schematics/ng-add/index.js +62 -31
  113. package/schematics/ng-add/index.js.map +1 -1
  114. package/schematics/ng-add/package-config.d.ts +4 -2
  115. package/schematics/ng-add/package-config.js +10 -2
  116. package/schematics/ng-add/package-config.js.map +1 -1
  117. package/schematics/ng-add/schema.d.ts +3 -0
  118. package/schematics/ng-add/schema.js +3 -0
  119. package/schematics/ng-add/schema.js.map +1 -0
  120. package/schematics/ng-add/schema.json +14 -0
  121. package/select/README.md +2 -0
  122. package/{accordion/index.d.ts → types/radix-ng-primitives-accordion.d.ts} +102 -67
  123. package/types/radix-ng-primitives-alert-dialog.d.ts +114 -0
  124. package/{arrow/index.d.ts → types/radix-ng-primitives-arrow.d.ts} +1 -1
  125. package/{aspect-ratio/index.d.ts → types/radix-ng-primitives-aspect-ratio.d.ts} +1 -1
  126. package/{avatar/index.d.ts → types/radix-ng-primitives-avatar.d.ts} +7 -11
  127. package/types/radix-ng-primitives-button.d.ts +73 -0
  128. package/{calendar/index.d.ts → types/radix-ng-primitives-calendar.d.ts} +2 -3
  129. package/types/radix-ng-primitives-checkbox.d.ts +337 -0
  130. package/types/radix-ng-primitives-collapsible.d.ts +159 -0
  131. package/types/radix-ng-primitives-collection.d.ts +44 -0
  132. package/{config/index.d.ts → types/radix-ng-primitives-config.d.ts} +1 -1
  133. package/types/radix-ng-primitives-context-menu.d.ts +73 -0
  134. package/{core/index.d.ts → types/radix-ng-primitives-core.d.ts} +311 -236
  135. package/{cropper/index.d.ts → types/radix-ng-primitives-cropper.d.ts} +6 -5
  136. package/{date-field/index.d.ts → types/radix-ng-primitives-date-field.d.ts} +42 -27
  137. package/types/radix-ng-primitives-dialog.d.ts +323 -0
  138. package/{dismissable-layer/index.d.ts → types/radix-ng-primitives-dismissable-layer.d.ts} +15 -7
  139. package/types/radix-ng-primitives-drawer.d.ts +448 -0
  140. package/{editable/index.d.ts → types/radix-ng-primitives-editable.d.ts} +1 -1
  141. package/types/radix-ng-primitives-field.d.ts +373 -0
  142. package/types/radix-ng-primitives-fieldset.d.ts +48 -0
  143. package/{focus-scope/index.d.ts → types/radix-ng-primitives-focus-scope.d.ts} +13 -5
  144. package/types/radix-ng-primitives-input.d.ts +87 -0
  145. package/{label/index.d.ts → types/radix-ng-primitives-label.d.ts} +0 -1
  146. package/types/radix-ng-primitives-menu.d.ts +612 -0
  147. package/types/radix-ng-primitives-menubar.d.ts +66 -0
  148. package/types/radix-ng-primitives-meter.d.ts +193 -0
  149. package/types/radix-ng-primitives-navigation-menu.d.ts +488 -0
  150. package/types/radix-ng-primitives-number-field.d.ts +464 -0
  151. package/{pagination/index.d.ts → types/radix-ng-primitives-pagination.d.ts} +2 -2
  152. package/types/radix-ng-primitives-popover.d.ts +416 -0
  153. package/{popper/index.d.ts → types/radix-ng-primitives-popper.d.ts} +50 -9
  154. package/types/radix-ng-primitives-portal.d.ts +30 -0
  155. package/types/radix-ng-primitives-presence.d.ts +55 -0
  156. package/types/radix-ng-primitives-preview-card.d.ts +359 -0
  157. package/types/radix-ng-primitives-progress.d.ts +206 -0
  158. package/{radio/index.d.ts → types/radix-ng-primitives-radio.d.ts} +56 -26
  159. package/{roving-focus/index.d.ts → types/radix-ng-primitives-roving-focus.d.ts} +38 -27
  160. package/types/radix-ng-primitives-select.d.ts +512 -0
  161. package/types/radix-ng-primitives-separator.d.ts +38 -0
  162. package/types/radix-ng-primitives-slider.d.ts +377 -0
  163. package/{stepper/index.d.ts → types/radix-ng-primitives-stepper.d.ts} +21 -22
  164. package/types/radix-ng-primitives-switch.d.ts +121 -0
  165. package/types/radix-ng-primitives-tabs.d.ts +247 -0
  166. package/{time-field/index.d.ts → types/radix-ng-primitives-time-field.d.ts} +46 -31
  167. package/types/radix-ng-primitives-toggle-group.d.ts +116 -0
  168. package/types/radix-ng-primitives-toggle.d.ts +65 -0
  169. package/types/radix-ng-primitives-toolbar.d.ts +180 -0
  170. package/types/radix-ng-primitives-tooltip.d.ts +395 -0
  171. package/{visually-hidden/index.d.ts → types/radix-ng-primitives-visually-hidden.d.ts} +19 -19
  172. package/alert-dialog/index.d.ts +0 -57
  173. package/checkbox/index.d.ts +0 -164
  174. package/collapsible/index.d.ts +0 -85
  175. package/context-menu/index.d.ts +0 -129
  176. package/dialog/index.d.ts +0 -205
  177. package/dropdown-menu/README.md +0 -1
  178. package/dropdown-menu/index.d.ts +0 -171
  179. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -583
  180. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
  181. package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1246
  182. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
  183. package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -740
  184. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
  185. package/hover-card/README.md +0 -3
  186. package/hover-card/index.d.ts +0 -472
  187. package/menu/index.d.ts +0 -139
  188. package/menubar/index.d.ts +0 -56
  189. package/navigation-menu/index.d.ts +0 -405
  190. package/number-field/index.d.ts +0 -203
  191. package/popover/index.d.ts +0 -403
  192. package/portal/index.d.ts +0 -22
  193. package/presence/index.d.ts +0 -103
  194. package/progress/index.d.ts +0 -79
  195. package/select/index.d.ts +0 -214
  196. package/separator/index.d.ts +0 -63
  197. package/slider/index.d.ts +0 -263
  198. package/switch/index.d.ts +0 -105
  199. package/tabs/index.d.ts +0 -112
  200. package/toggle/index.d.ts +0 -75
  201. package/toggle-group/index.d.ts +0 -194
  202. package/toolbar/index.d.ts +0 -55
  203. package/tooltip/index.d.ts +0 -433
  204. package/tooltip2/README.md +0 -3
  205. package/tooltip2/index.d.ts +0 -325
  206. /package/{focus-guards/index.d.ts → types/radix-ng-primitives-focus-guards.d.ts} +0 -0
  207. /package/{index.d.ts → types/radix-ng-primitives.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-popper.mjs","sources":["../tmp-esm2022/popper/src/popper-anchor.js","../tmp-esm2022/popper/src/popper.js","../tmp-esm2022/popper/src/popper-content.js","../tmp-esm2022/popper/src/utils.js","../tmp-esm2022/popper/src/popper-content-wrapper.js","../tmp-esm2022/popper/src/popper-arrow.js","../tmp-esm2022/popper/index.js","../tmp-esm2022/popper/radix-ng-primitives-popper.js"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class RdxPopperAnchor {\n constructor() {\n this.elementRef = inject(ElementRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPopperAnchor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxPopperAnchor, isStandalone: true, selector: \"[rdxPopperAnchor]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPopperAnchor, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxPopperAnchor]'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wcGVyLWFuY2hvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvcG9wcGVyL3NyYy9wb3BwZXItYW5jaG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLOUQsTUFBTSxPQUFPLGVBQWU7SUFINUI7UUFJYSxlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztLQUNyRTs4R0FGWSxlQUFlO2tHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBSDNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhQb3BwZXJBbmNob3JdJ1xufSlcbmV4cG9ydCBjbGFzcyBSZHhQb3BwZXJBbmNob3Ige1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xufVxuIl19","import { contentChild, Directive } from '@angular/core';\nimport { RdxPopperAnchor } from './popper-anchor';\nimport * as i0 from \"@angular/core\";\nexport class RdxPopper {\n constructor() {\n this.anchor = contentChild.required(RdxPopperAnchor);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPopper, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.3\", type: RdxPopper, isStandalone: true, selector: \"[rdxPopperRoot]\", queries: [{ propertyName: \"anchor\", first: true, predicate: RdxPopperAnchor, descendants: true, isSignal: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPopper, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxPopperRoot]'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9wb3BwZXIvc3JjL3BvcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBS2xELE1BQU0sT0FBTyxTQUFTO0lBSHRCO1FBSWEsV0FBTSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDNUQ7OEdBRlksU0FBUztrR0FBVCxTQUFTLCtHQUNzQixlQUFlOzsyRkFEOUMsU0FBUztrQkFIckIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnRlbnRDaGlsZCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHhQb3BwZXJBbmNob3IgfSBmcm9tICcuL3BvcHBlci1hbmNob3InO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhQb3BwZXJSb290XSdcbn0pXG5leHBvcnQgY2xhc3MgUmR4UG9wcGVyIHtcbiAgICByZWFkb25seSBhbmNob3IgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoUmR4UG9wcGVyQW5jaG9yKTtcbn1cbiJdfQ==","import { computed, Directive } from '@angular/core';\nimport { injectPopperContentWrapperContext } from './popper-content-wrapper';\nimport * as i0 from \"@angular/core\";\nexport class RdxPopperContent {\n constructor() {\n this.popperContentWrapper = injectPopperContentWrapperContext();\n /**\n * if the PopperContent hasn't been placed yet (not all measurements done)\n * we prevent animations so that users's animation don't kick in too early referring wrong sides\n */\n this.style = computed(() => ({\n animation: !this.popperContentWrapper.isPositioned() ? 'none' : undefined\n }), ...(ngDevMode ? [{ debugName: \"style\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPopperContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxPopperContent, isStandalone: true, selector: \"[rdxPopperContent]\", host: { properties: { \"attr.data-side\": \"popperContentWrapper.placedSide()\", \"attr.data-align\": \"popperContentWrapper.placedAlign()\", \"style\": \"style()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPopperContent, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxPopperContent]',\n host: {\n '[attr.data-side]': 'popperContentWrapper.placedSide()',\n '[attr.data-align]': 'popperContentWrapper.placedAlign()',\n '[style]': 'style()'\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wcGVyLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3BvcHBlci9zcmMvcG9wcGVyLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBVTdFLE1BQU0sT0FBTyxnQkFBZ0I7SUFSN0I7UUFTdUIseUJBQW9CLEdBQUcsaUNBQWlDLEVBQUcsQ0FBQztRQUUvRTs7O1dBR0c7UUFDZ0IsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzVFLENBQUMsaURBQUMsQ0FBQztLQUNQOzhHQVZZLGdCQUFnQjtrR0FBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQVI1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLElBQUksRUFBRTt3QkFDRixrQkFBa0IsRUFBRSxtQ0FBbUM7d0JBQ3ZELG1CQUFtQixFQUFFLG9DQUFvQzt3QkFDekQsU0FBUyxFQUFFLFNBQVM7cUJBQ3ZCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0UG9wcGVyQ29udGVudFdyYXBwZXJDb250ZXh0IH0gZnJvbSAnLi9wb3BwZXItY29udGVudC13cmFwcGVyJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4UG9wcGVyQ29udGVudF0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2lkZV0nOiAncG9wcGVyQ29udGVudFdyYXBwZXIucGxhY2VkU2lkZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtYWxpZ25dJzogJ3BvcHBlckNvbnRlbnRXcmFwcGVyLnBsYWNlZEFsaWduKCknLFxuICAgICAgICAnW3N0eWxlXSc6ICdzdHlsZSgpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4UG9wcGVyQ29udGVudCB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBvcHBlckNvbnRlbnRXcmFwcGVyID0gaW5qZWN0UG9wcGVyQ29udGVudFdyYXBwZXJDb250ZXh0KCkhO1xuXG4gICAgLyoqXG4gICAgICogaWYgdGhlIFBvcHBlckNvbnRlbnQgaGFzbid0IGJlZW4gcGxhY2VkIHlldCAobm90IGFsbCBtZWFzdXJlbWVudHMgZG9uZSlcbiAgICAgKiB3ZSBwcmV2ZW50IGFuaW1hdGlvbnMgc28gdGhhdCB1c2VycydzIGFuaW1hdGlvbiBkb24ndCBraWNrIGluIHRvbyBlYXJseSByZWZlcnJpbmcgd3Jvbmcgc2lkZXNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3R5bGUgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgICAgICBhbmltYXRpb246ICF0aGlzLnBvcHBlckNvbnRlbnRXcmFwcGVyLmlzUG9zaXRpb25lZCgpID8gJ25vbmUnIDogdW5kZWZpbmVkXG4gICAgfSkpO1xufVxuIl19","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst SIDE_OPTIONS = ['top', 'right', 'bottom', 'left'];\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst ALIGN_OPTIONS = ['start', 'center', 'end'];\nexport function isNotNull(value) {\n return value !== null;\n}\nexport function transformOrigin(options) {\n return {\n name: 'transformOrigin',\n options,\n fn(data) {\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = { start: '0%', center: '50%', end: '100%' }[placedAlign];\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n let x = '';\n let y = '';\n if (placedSide === 'bottom') {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n }\n else if (placedSide === 'top') {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n }\n else if (placedSide === 'right') {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n else if (placedSide === 'left') {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return { data: { x, y } };\n }\n };\n}\nexport function getSideAndAlignFromPlacement(placement) {\n const [side, align = 'center'] = placement.split('-');\n return [side, align];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3BvcHBlci9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsNkRBQTZEO0FBQzdELE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFVLENBQUM7QUFDakUsNkRBQTZEO0FBQzdELE1BQU0sYUFBYSxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQVUsQ0FBQztBQUsxRCxNQUFNLFVBQVUsU0FBUyxDQUFJLEtBQWU7SUFDeEMsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDO0FBQzFCLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQW9EO0lBQ2hGLE9BQU87UUFDSCxJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLE9BQU87UUFDUCxFQUFFLENBQUMsSUFBSTtZQUNILE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQztZQUVsRCxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxLQUFLLENBQUMsQ0FBQztZQUNuRSxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQztZQUN4QyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUMxRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUU1RCxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxHQUFHLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzFFLE1BQU0sWUFBWSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUU5RSxNQUFNLFlBQVksR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDckUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBRXRFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVYLElBQUksVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxJQUFJLENBQUM7Z0JBQ3ZELENBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUM7WUFDNUIsQ0FBQztpQkFBTSxJQUFJLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDOUIsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksSUFBSSxDQUFDO2dCQUN2RCxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxXQUFXLElBQUksQ0FBQztZQUNuRCxDQUFDO2lCQUFNLElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNoQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDO2dCQUN4QixDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxJQUFJLENBQUM7WUFDM0QsQ0FBQztpQkFBTSxJQUFJLFVBQVUsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsV0FBVyxJQUFJLENBQUM7Z0JBQzlDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLElBQUksQ0FBQztZQUMzRCxDQUFDO1lBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzlCLENBQUM7S0FDSixDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxTQUFvQjtJQUM3RCxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELE9BQU8sQ0FBQyxJQUFZLEVBQUUsS0FBYyxDQUFVLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWlkZGxld2FyZSwgUGxhY2VtZW50IH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmNvbnN0IFNJREVfT1BUSU9OUyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J10gYXMgY29uc3Q7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5jb25zdCBBTElHTl9PUFRJT05TID0gWydzdGFydCcsICdjZW50ZXInLCAnZW5kJ10gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFNpZGUgPSAodHlwZW9mIFNJREVfT1BUSU9OUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEFsaWduID0gKHR5cGVvZiBBTElHTl9PUFRJT05TKVtudW1iZXJdO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNOb3ROdWxsPFQ+KHZhbHVlOiBUIHwgbnVsbCk6IHZhbHVlIGlzIFQge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU9yaWdpbihvcHRpb25zOiB7IGFycm93V2lkdGg6IG51bWJlcjsgYXJyb3dIZWlnaHQ6IG51bWJlciB9KTogTWlkZGxld2FyZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogJ3RyYW5zZm9ybU9yaWdpbicsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIGZuKGRhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcGxhY2VtZW50LCByZWN0cywgbWlkZGxld2FyZURhdGEgfSA9IGRhdGE7XG5cbiAgICAgICAgICAgIGNvbnN0IGNhbm5vdENlbnRlckFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3c/LmNlbnRlck9mZnNldCAhPT0gMDtcbiAgICAgICAgICAgIGNvbnN0IGlzQXJyb3dIaWRkZW4gPSBjYW5ub3RDZW50ZXJBcnJvdztcbiAgICAgICAgICAgIGNvbnN0IGFycm93V2lkdGggPSBpc0Fycm93SGlkZGVuID8gMCA6IG9wdGlvbnMuYXJyb3dXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGFycm93SGVpZ2h0ID0gaXNBcnJvd0hpZGRlbiA/IDAgOiBvcHRpb25zLmFycm93SGVpZ2h0O1xuXG4gICAgICAgICAgICBjb25zdCBbcGxhY2VkU2lkZSwgcGxhY2VkQWxpZ25dID0gZ2V0U2lkZUFuZEFsaWduRnJvbVBsYWNlbWVudChwbGFjZW1lbnQpO1xuICAgICAgICAgICAgY29uc3Qgbm9BcnJvd0FsaWduID0geyBzdGFydDogJzAlJywgY2VudGVyOiAnNTAlJywgZW5kOiAnMTAwJScgfVtwbGFjZWRBbGlnbl07XG5cbiAgICAgICAgICAgIGNvbnN0IGFycm93WENlbnRlciA9IChtaWRkbGV3YXJlRGF0YS5hcnJvdz8ueCA/PyAwKSArIGFycm93V2lkdGggLyAyO1xuICAgICAgICAgICAgY29uc3QgYXJyb3dZQ2VudGVyID0gKG1pZGRsZXdhcmVEYXRhLmFycm93Py55ID8/IDApICsgYXJyb3dIZWlnaHQgLyAyO1xuXG4gICAgICAgICAgICBsZXQgeCA9ICcnO1xuICAgICAgICAgICAgbGV0IHkgPSAnJztcblxuICAgICAgICAgICAgaWYgKHBsYWNlZFNpZGUgPT09ICdib3R0b20nKSB7XG4gICAgICAgICAgICAgICAgeCA9IGlzQXJyb3dIaWRkZW4gPyBub0Fycm93QWxpZ24gOiBgJHthcnJvd1hDZW50ZXJ9cHhgO1xuICAgICAgICAgICAgICAgIHkgPSBgJHstYXJyb3dIZWlnaHR9cHhgO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwbGFjZWRTaWRlID09PSAndG9wJykge1xuICAgICAgICAgICAgICAgIHggPSBpc0Fycm93SGlkZGVuID8gbm9BcnJvd0FsaWduIDogYCR7YXJyb3dYQ2VudGVyfXB4YDtcbiAgICAgICAgICAgICAgICB5ID0gYCR7cmVjdHMuZmxvYXRpbmcuaGVpZ2h0ICsgYXJyb3dIZWlnaHR9cHhgO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwbGFjZWRTaWRlID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgeCA9IGAkey1hcnJvd0hlaWdodH1weGA7XG4gICAgICAgICAgICAgICAgeSA9IGlzQXJyb3dIaWRkZW4gPyBub0Fycm93QWxpZ24gOiBgJHthcnJvd1lDZW50ZXJ9cHhgO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwbGFjZWRTaWRlID09PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICB4ID0gYCR7cmVjdHMuZmxvYXRpbmcud2lkdGggKyBhcnJvd0hlaWdodH1weGA7XG4gICAgICAgICAgICAgICAgeSA9IGlzQXJyb3dIaWRkZW4gPyBub0Fycm93QWxpZ24gOiBgJHthcnJvd1lDZW50ZXJ9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgZGF0YTogeyB4LCB5IH0gfTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaWRlQW5kQWxpZ25Gcm9tUGxhY2VtZW50KHBsYWNlbWVudDogUGxhY2VtZW50KSB7XG4gICAgY29uc3QgW3NpZGUsIGFsaWduID0gJ2NlbnRlciddID0gcGxhY2VtZW50LnNwbGl0KCctJyk7XG4gICAgcmV0dXJuIFtzaWRlIGFzIFNpZGUsIGFsaWduIGFzIEFsaWduXSBhcyBjb25zdDtcbn1cbiJdfQ==","import { isPlatformBrowser } from '@angular/common';\nimport { afterNextRender, booleanAttribute, computed, contentChild, DestroyRef, Directive, ElementRef, forwardRef, inject, Injector, input, numberAttribute, output, PLATFORM_ID, resource } from '@angular/core';\nimport { autoUpdate, computePosition, flip, arrow as floatingUIArrow, hide, limitShift, offset, shift, size } from '@floating-ui/dom';\nimport { createContext, elementSize } from '@radix-ng/primitives/core';\nimport { RdxPopper } from './popper';\nimport { RdxPopperArrow } from './popper-arrow';\nimport { RdxPopperContent } from './popper-content';\nimport { isNotNull, transformOrigin } from './utils';\nimport * as i0 from \"@angular/core\";\nconst context = () => {\n const popperContentWrapper = inject(RdxPopperContentWrapper);\n return {\n placedSide: popperContentWrapper.placedSide,\n placedAlign: popperContentWrapper.placedAlign,\n arrowX: popperContentWrapper.arrowX,\n arrowY: popperContentWrapper.arrowY,\n shouldHideArrow: popperContentWrapper.shouldHideArrow,\n isPositioned: popperContentWrapper.isPositioned\n };\n};\nexport const [injectPopperContentWrapperContext, providePopperContentWrapperContext] = createContext('PopperContentWrapperContext');\nexport class RdxPopperContentWrapper {\n constructor() {\n this.elementRef = inject(ElementRef);\n this.destroyRef = inject(DestroyRef);\n this.injector = inject(Injector);\n this.context = inject(RdxPopper);\n this.isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n /**\n * The preferred side of the anchor to render against when open.\n * Will be reversed when collisions occur and avoidCollisions is enabled.\n */\n this.side = input('bottom', ...(ngDevMode ? [{ debugName: \"side\" }] : []));\n /**\n * Distance between the anchor and the popup in pixels.\n */\n this.sideOffset = input(0, ...(ngDevMode ? [{ debugName: \"sideOffset\", transform: numberAttribute }] : [{ transform: numberAttribute }]));\n /**\n * How to align the popup relative to the specified side. May change when collisions occur.\n */\n this.align = input('center', ...(ngDevMode ? [{ debugName: \"align\" }] : []));\n /** An offset in pixels from the `start` or `end` alignment options. */\n this.alignOffset = input(0, ...(ngDevMode ? [{ debugName: \"alignOffset\", transform: numberAttribute }] : [{ transform: numberAttribute }]));\n /**\n * Minimum distance to maintain between the arrow and the edges of the popup.\n * If your content has border-radius, this will prevent it from overflowing the corners.\n */\n this.arrowPadding = input(0, ...(ngDevMode ? [{ debugName: \"arrowPadding\", transform: numberAttribute }] : [{ transform: numberAttribute }]));\n /** When `true`, overrides the `side` and `align` preferences to prevent collisions with boundary edges. */\n this.avoidCollisions = input(true, ...(ngDevMode ? [{ debugName: \"avoidCollisions\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * The element used as the collision boundary.\n * By default this is the viewport, though you can provide additional element(s) to be included in this check.\n */\n this.collisionBoundary = input(...(ngDevMode ? [undefined, { debugName: \"collisionBoundary\" }] : []));\n /**\n * The distance in pixels from the boundary edges where collision detection should occur.\n * Accepts a number (same for all sides), or a partial padding object, for example: `{ top: 20, left: 20 }`.\n */\n this.collisionPadding = input(0, ...(ngDevMode ? [{ debugName: \"collisionPadding\" }] : []));\n /**\n * The sticky behavior on the align axis. `partial` will keep the\n * content in the boundary as long as the trigger is at least partially\n * in the boundary whilst \"always\" will keep the content in the boundary\n * regardless.\n */\n this.sticky = input('partial', ...(ngDevMode ? [{ debugName: \"sticky\" }] : []));\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n this.hideWhenDetached = input(false, ...(ngDevMode ? [{ debugName: \"hideWhenDetached\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * The type of CSS position property to use.\n */\n this.positionStrategy = input('fixed', ...(ngDevMode ? [{ debugName: \"positionStrategy\" }] : []));\n /**\n * Strategy to update the position of the floating element on every animation frame.\n */\n this.updatePositionStrategy = input('always', ...(ngDevMode ? [{ debugName: \"updatePositionStrategy\" }] : []));\n /**\n * Emits when the element is placed.\n */\n this.placed = output();\n this.arrow = contentChild(forwardRef(() => RdxPopperArrow), ...(ngDevMode ? [{ debugName: \"arrow\" }] : []));\n this.shouldHideArrow = computed(() => this.position.value()?.middlewareData['arrow']?.centerOffset !== 0, ...(ngDevMode ? [{ debugName: \"shouldHideArrow\" }] : []));\n this.arrowX = computed(() => this.position.value()?.middlewareData['arrow']?.x, ...(ngDevMode ? [{ debugName: \"arrowX\" }] : []));\n this.arrowY = computed(() => this.position.value()?.middlewareData['arrow']?.y, ...(ngDevMode ? [{ debugName: \"arrowY\" }] : []));\n this.desiredPlacement = computed(() => (this.side() + (this.align() !== 'center' ? '-' + this.align() : '')), ...(ngDevMode ? [{ debugName: \"desiredPlacement\" }] : []));\n this.arrowSize = computed(() => {\n const arrowElementRef = this.arrow()?.elementRef;\n if (!arrowElementRef) {\n return computed(() => ({\n height: 0,\n width: 0\n }));\n }\n return elementSize({\n elementRef: arrowElementRef,\n injector: this.injector\n });\n }, ...(ngDevMode ? [{ debugName: \"arrowSize\" }] : []));\n this.boundary = computed(() => {\n const boundary = this.collisionBoundary();\n if (Array.isArray(boundary)) {\n return boundary.map((e) => e.nativeElement);\n }\n if (!boundary) {\n return [];\n }\n return [boundary.nativeElement];\n }, ...(ngDevMode ? [{ debugName: \"boundary\" }] : []));\n this.hasExplicitBoundaries = computed(() => this.boundary().length > 0, ...(ngDevMode ? [{ debugName: \"hasExplicitBoundaries\" }] : []));\n this.detectOverflowOptions = computed(() => ({\n padding: this.collisionPadding(),\n boundary: this.boundary().filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: this.hasExplicitBoundaries()\n }), ...(ngDevMode ? [{ debugName: \"detectOverflowOptions\" }] : []));\n this.position = resource({\n loader: () => computePosition(this.context.anchor().elementRef.nativeElement, this.elementRef.nativeElement, {\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: this.positionStrategy(),\n placement: this.desiredPlacement(),\n middleware: [\n offset({\n mainAxis: this.sideOffset() + this.arrowSize()().height || 0,\n alignmentAxis: this.alignOffset()\n }),\n this.avoidCollisions() &&\n shift({\n mainAxis: true,\n crossAxis: false,\n limiter: this.sticky() === 'partial' ? limitShift() : undefined,\n ...this.detectOverflowOptions()\n }),\n this.avoidCollisions() && flip({ ...this.detectOverflowOptions() }),\n size({\n ...this.detectOverflowOptions(),\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty('--radix-popper-available-width', `${availableWidth}px`);\n contentStyle.setProperty('--radix-popper-available-height', `${availableHeight}px`);\n contentStyle.setProperty('--radix-popper-anchor-width', `${anchorWidth}px`);\n contentStyle.setProperty('--radix-popper-anchor-height', `${anchorHeight}px`);\n }\n }),\n this.arrow() &&\n floatingUIArrow({\n element: this.arrow().elementRef.nativeElement,\n padding: this.arrowPadding()\n }),\n transformOrigin({\n arrowWidth: this.arrowSize()().width,\n arrowHeight: this.arrowSize()().height\n }),\n this.hideWhenDetached() &&\n hide({\n strategy: 'referenceHidden',\n ...this.detectOverflowOptions()\n })\n ]\n })\n });\n /**\n * Whether the panel is positioned.\n */\n this.isPositioned = computed(() => this.position.hasValue(), ...(ngDevMode ? [{ debugName: \"isPositioned\" }] : []));\n /**\n * The current placement of the panel.\n */\n this.placement = computed(() => {\n const placement = this.position.value()?.placement;\n if (!placement) {\n return;\n }\n const [side, align = 'center'] = placement.split('-');\n return {\n side: side,\n align: align\n };\n }, ...(ngDevMode ? [{ debugName: \"placement\" }] : []));\n /**\n * The side the panel is currently placed against.\n */\n this.placedSide = computed(() => this.placement()?.side, ...(ngDevMode ? [{ debugName: \"placedSide\" }] : []));\n /**\n * The current alignment of the panel.\n */\n this.placedAlign = computed(() => this.placement()?.align, ...(ngDevMode ? [{ debugName: \"placedAlign\" }] : []));\n this.contentElementRef = contentChild.required(RdxPopperContent, {\n read: ElementRef\n });\n this.contentZIndex = computed(() => {\n if (!this.isBrowser) {\n return 0;\n }\n return getComputedStyle(this.contentElementRef().nativeElement).zIndex;\n }, ...(ngDevMode ? [{ debugName: \"contentZIndex\" }] : []));\n this.style = computed(() => {\n const pos = this.position.value();\n const x = pos?.x;\n const y = pos?.y;\n const ready = Number.isFinite(x) && Number.isFinite(y);\n return {\n position: this.positionStrategy(),\n transform: this.isPositioned() ? '' : 'translate(0, -200%)', // keep off the page when measuring\n minWidth: 'max-content',\n zIndex: this.contentZIndex(),\n top: Number.isFinite(y) ? `${y}px` : '',\n left: Number.isFinite(x) ? `${x}px` : '',\n '--radix-popper-transform-origin': [\n pos?.middlewareData['transformOrigin']?.x,\n pos?.middlewareData['transformOrigin']?.y\n ].join(' '),\n visibility: ready ? 'visible' : 'hidden',\n pointerEvents: ready ? 'auto' : 'none',\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...(pos?.middlewareData.hide?.referenceHidden && {\n visibility: 'hidden',\n pointerEvents: 'none'\n })\n };\n }, ...(ngDevMode ? [{ debugName: \"style\" }] : []));\n this.afterNextRender = afterNextRender(() => {\n this.position.reload();\n const cleanup = autoUpdate(this.context.anchor().elementRef.nativeElement, this.elementRef.nativeElement, () => this.position.reload(), {\n animationFrame: this.updatePositionStrategy() === 'always'\n });\n this.destroyRef.onDestroy(() => {\n cleanup();\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPopperContentWrapper, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.3\", type: RdxPopperContentWrapper, isStandalone: true, selector: \"[rdxPopperContentWrapper]\", inputs: { side: { classPropertyName: \"side\", publicName: \"side\", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: \"sideOffset\", publicName: \"sideOffset\", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: \"align\", publicName: \"align\", isSignal: true, isRequired: false, transformFunction: null }, alignOffset: { classPropertyName: \"alignOffset\", publicName: \"alignOffset\", isSignal: true, isRequired: false, transformFunction: null }, arrowPadding: { classPropertyName: \"arrowPadding\", publicName: \"arrowPadding\", isSignal: true, isRequired: false, transformFunction: null }, avoidCollisions: { classPropertyName: \"avoidCollisions\", publicName: \"avoidCollisions\", isSignal: true, isRequired: false, transformFunction: null }, collisionBoundary: { classPropertyName: \"collisionBoundary\", publicName: \"collisionBoundary\", isSignal: true, isRequired: false, transformFunction: null }, collisionPadding: { classPropertyName: \"collisionPadding\", publicName: \"collisionPadding\", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: \"sticky\", publicName: \"sticky\", isSignal: true, isRequired: false, transformFunction: null }, hideWhenDetached: { classPropertyName: \"hideWhenDetached\", publicName: \"hideWhenDetached\", isSignal: true, isRequired: false, transformFunction: null }, positionStrategy: { classPropertyName: \"positionStrategy\", publicName: \"positionStrategy\", isSignal: true, isRequired: false, transformFunction: null }, updatePositionStrategy: { classPropertyName: \"updatePositionStrategy\", publicName: \"updatePositionStrategy\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { placed: \"placed\" }, host: { attributes: { \"data-radix-popper-content-wrapper\": \"\" }, properties: { \"style\": \"style()\" } }, providers: [providePopperContentWrapperContext(context)], queries: [{ propertyName: \"arrow\", first: true, predicate: i0.forwardRef(() => RdxPopperArrow), descendants: true, isSignal: true }, { propertyName: \"contentElementRef\", first: true, predicate: RdxPopperContent, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPopperContentWrapper, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxPopperContentWrapper]',\n providers: [providePopperContentWrapperContext(context)],\n host: {\n 'data-radix-popper-content-wrapper': '',\n '[style]': 'style()'\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wcGVyLWNvbnRlbnQtd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvcG9wcGVyL3NyYy9wb3BwZXItY29udGVudC13cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDSCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sV0FBVyxFQUNYLFFBQVEsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLGVBQWUsRUFDZixJQUFJLEVBQ0osS0FBSyxJQUFJLGVBQWUsRUFDeEIsSUFBSSxFQUNKLFVBQVUsRUFDVixNQUFNLEVBRU4sS0FBSyxFQUNMLElBQUksRUFDUCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFTLFNBQVMsRUFBUSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRWxFLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRTtJQUNqQixNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRTdELE9BQU87UUFDSCxVQUFVLEVBQUUsb0JBQW9CLENBQUMsVUFBVTtRQUMzQyxX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RSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztLQUNOOzhHQTVRWSx1QkFBdUI7a0dBQXZCLHVCQUF1Qix3NERBTnJCLENBQUMsa0NBQWtDLENBQUMsT0FBTyxDQUFDLENBQUMsaUZBaUZULGNBQWMscUdBbUl6RCxnQkFBZ0IsMkJBRU4sVUFBVTs7MkZBaE5mLHVCQUF1QjtrQkFSbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxFQUFFO3dCQUNGLG1DQUFtQyxFQUFFLEVBQUU7d0JBQ3ZDLFNBQVMsRUFBRSxTQUFTO3FCQUN2QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBhZnRlck5leHRSZW5kZXIsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBjb21wdXRlZCxcbiAgICBjb250ZW50Q2hpbGQsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBpbnB1dCxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgb3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIHJlc291cmNlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBhdXRvVXBkYXRlLFxuICAgIGNvbXB1dGVQb3NpdGlvbixcbiAgICBmbGlwLFxuICAgIGFycm93IGFzIGZsb2F0aW5nVUlBcnJvdyxcbiAgICBoaWRlLFxuICAgIGxpbWl0U2hpZnQsXG4gICAgb2Zmc2V0LFxuICAgIFBsYWNlbWVudCxcbiAgICBzaGlmdCxcbiAgICBzaXplXG59IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgZWxlbWVudFNpemUgfSBmcm9tICdAcmFkaXgtbmcvcHJpbWl0aXZlcy9jb3JlJztcbmltcG9ydCB7IFJkeFBvcHBlciB9IGZyb20gJy4vcG9wcGVyJztcbmltcG9ydCB7IFJkeFBvcHBlckFycm93IH0gZnJvbSAnLi9wb3BwZXItYXJyb3cnO1xuaW1wb3J0IHsgUmR4UG9wcGVyQ29udGVudCB9IGZyb20gJy4vcG9wcGVyLWNvbnRlbnQnO1xuaW1wb3J0IHsgQWxpZ24sIGlzTm90TnVsbCwgU2lkZSwgdHJhbnNmb3JtT3JpZ2luIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGNvbnRleHQgPSAoKSA9PiB7XG4gICAgY29uc3QgcG9wcGVyQ29udGVudFdyYXBwZXIgPSBpbmplY3QoUmR4UG9wcGVyQ29udGVudFdyYXBwZXIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGxhY2VkU2lkZTogcG9wcGVyQ29udGVudFdyYXBwZXIucGxhY2VkU2lkZSxcbiAgICAgICAgcGxhY2VkQWxpZ246IHBvcHBlckNvbnRlbnRXcmFwcGVyLnBsYWNlZEFsaWduLFxuICAgICAgICBhcnJvd1g6IHBvcHBlckNvbnRlbnRXcmFwcGVyLmFycm93WCxcbiAgICAgICAgYXJyb3dZOiBwb3BwZXJDb250ZW50V3JhcHBlci5hcnJvd1ksXG4gICAgICAgIHNob3VsZEhpZGVBcnJvdzogcG9wcGVyQ29udGVudFdyYXBwZXIuc2hvdWxkSGlkZUFycm93LFxuICAgICAgICBpc1Bvc2l0aW9uZWQ6IHBvcHBlckNvbnRlbnRXcmFwcGVyLmlzUG9zaXRpb25lZFxuICAgIH07XG59O1xuXG5leHBvcnQgdHlwZSBQb3BwZXJDb250ZW50V3JhcHBlckNvbnRleHQgPSBSZXR1cm5UeXBlPHR5cGVvZiBjb250ZXh0PjtcblxuZXhwb3J0IGNvbnN0IFtpbmplY3RQb3BwZXJDb250ZW50V3JhcHBlckNvbnRleHQsIHByb3ZpZGVQb3BwZXJDb250ZW50V3JhcHBlckNvbnRleHRdID1cbiAgICBjcmVhdGVDb250ZXh0PFBvcHBlckNvbnRlbnRXcmFwcGVyQ29udGV4dD4oJ1BvcHBlckNvbnRlbnRXcmFwcGVyQ29udGV4dCcpO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhQb3BwZXJDb250ZW50V3JhcHBlcl0nLFxuICAgIHByb3ZpZGVyczogW3Byb3ZpZGVQb3BwZXJDb250ZW50V3JhcHBlckNvbnRleHQoY29udGV4dCldLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2RhdGEtcmFkaXgtcG9wcGVyLWNvbnRlbnQtd3JhcHBlcic6ICcnLFxuICAgICAgICAnW3N0eWxlXSc6ICdzdHlsZSgpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4UG9wcGVyQ29udGVudFdyYXBwZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQgPSBpbmplY3QoUmR4UG9wcGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKGluamVjdChQTEFURk9STV9JRCkpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHByZWZlcnJlZCBzaWRlIG9mIHRoZSBhbmNob3IgdG8gcmVuZGVyIGFnYWluc3Qgd2hlbiBvcGVuLlxuICAgICAqIFdpbGwgYmUgcmV2ZXJzZWQgd2hlbiBjb2xsaXNpb25zIG9jY3VyIGFuZCBhdm9pZENvbGxpc2lvbnMgaXMgZW5hYmxlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzaWRlID0gaW5wdXQ8U2lkZT4oJ2JvdHRvbScpO1xuXG4gICAgLyoqXG4gICAgICogRGlzdGFuY2UgYmV0d2VlbiB0aGUgYW5jaG9yIGFuZCB0aGUgcG9wdXAgaW4gcGl4ZWxzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNpZGVPZmZzZXQgPSBpbnB1dDxudW1iZXIsIE51bWJlcklucHV0PigwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogSG93IHRvIGFsaWduIHRoZSBwb3B1cCByZWxhdGl2ZSB0byB0aGUgc3BlY2lmaWVkIHNpZGUuIE1heSBjaGFuZ2Ugd2hlbiBjb2xsaXNpb25zIG9jY3VyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFsaWduID0gaW5wdXQ8QWxpZ24+KCdjZW50ZXInKTtcblxuICAgIC8qKiBBbiBvZmZzZXQgaW4gcGl4ZWxzIGZyb20gdGhlIGBzdGFydGAgb3IgYGVuZGAgYWxpZ25tZW50IG9wdGlvbnMuICovXG4gICAgcmVhZG9ubHkgYWxpZ25PZmZzZXQgPSBpbnB1dDxudW1iZXIsIE51bWJlcklucHV0PigwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogTWluaW11bSBkaXN0YW5jZSB0byBtYWludGFpbiBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIGVkZ2VzIG9mIHRoZSBwb3B1cC5cbiAgICAgKiBJZiB5b3VyIGNvbnRlbnQgaGFzIGJvcmRlci1yYWRpdXMsIHRoaXMgd2lsbCBwcmV2ZW50IGl0IGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNvcm5lcnMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXJyb3dQYWRkaW5nID0gaW5wdXQ8bnVtYmVyLCBOdW1iZXJJbnB1dD4oMCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuICAgIC8qKiBXaGVuIGB0cnVlYCwgb3ZlcnJpZGVzIHRoZSBgc2lkZWAgYW5kIGBhbGlnbmAgcHJlZmVyZW5jZXMgdG8gcHJldmVudCBjb2xsaXNpb25zIHdpdGggYm91bmRhcnkgZWRnZXMuICovXG4gICAgcmVhZG9ubHkgYXZvaWRDb2xsaXNpb25zID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0Pih0cnVlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBlbGVtZW50IHVzZWQgYXMgdGhlIGNvbGxpc2lvbiBib3VuZGFyeS5cbiAgICAgKiBCeSBkZWZhdWx0IHRoaXMgaXMgdGhlIHZpZXdwb3J0LCB0aG91Z2ggeW91IGNhbiBwcm92aWRlIGFkZGl0aW9uYWwgZWxlbWVudChzKSB0byBiZSBpbmNsdWRlZCBpbiB0aGlzIGNoZWNrLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvbGxpc2lvbkJvdW5kYXJ5ID0gaW5wdXQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PltdPigpO1xuICAgIC8qKlxuICAgICAqIFRoZSBkaXN0YW5jZSBpbiBwaXhlbHMgZnJvbSB0aGUgYm91bmRhcnkgZWRnZXMgd2hlcmUgY29sbGlzaW9uIGRldGVjdGlvbiBzaG91bGQgb2NjdXIuXG4gICAgICogQWNjZXB0cyBhIG51bWJlciAoc2FtZSBmb3IgYWxsIHNpZGVzKSwgb3IgYSBwYXJ0aWFsIHBhZGRpbmcgb2JqZWN0LCBmb3IgZXhhbXBsZTogYHsgdG9wOiAyMCwgbGVmdDogMjAgfWAuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY29sbGlzaW9uUGFkZGluZyA9IGlucHV0PG51bWJlciB8IFBhcnRpYWw8UmVjb3JkPFNpZGUsIG51bWJlcj4+PigwKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzdGlja3kgYmVoYXZpb3Igb24gdGhlIGFsaWduIGF4aXMuIGBwYXJ0aWFsYCB3aWxsIGtlZXAgdGhlXG4gICAgICogY29udGVudCBpbiB0aGUgYm91bmRhcnkgYXMgbG9uZyBhcyB0aGUgdHJpZ2dlciBpcyBhdCBsZWFzdCBwYXJ0aWFsbHlcbiAgICAgKiBpbiB0aGUgYm91bmRhcnkgd2hpbHN0IFwiYWx3YXlzXCIgd2lsbCBrZWVwIHRoZSBjb250ZW50IGluIHRoZSBib3VuZGFyeVxuICAgICAqIHJlZ2FyZGxlc3MuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3RpY2t5ID0gaW5wdXQ8J3BhcnRpYWwnIHwgJ2Fsd2F5cyc+KCdwYXJ0aWFsJyk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGhpZGUgdGhlIGNvbnRlbnQgd2hlbiB0aGUgdHJpZ2dlciBiZWNvbWVzIGZ1bGx5IG9jY2x1ZGVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGhpZGVXaGVuRGV0YWNoZWQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAgIC8qKlxuICAgICAqICBUaGUgdHlwZSBvZiBDU1MgcG9zaXRpb24gcHJvcGVydHkgdG8gdXNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBvc2l0aW9uU3RyYXRlZ3kgPSBpbnB1dDwnZml4ZWQnIHwgJ2Fic29sdXRlJz4oJ2ZpeGVkJyk7XG5cbiAgICAvKipcbiAgICAgKiBTdHJhdGVneSB0byB1cGRhdGUgdGhlIHBvc2l0aW9uIG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IG9uIGV2ZXJ5IGFuaW1hdGlvbiBmcmFtZS5cbiAgICAgKi9cbiAgICByZWFkb25seSB1cGRhdGVQb3NpdGlvblN0cmF0ZWd5ID0gaW5wdXQ8J29wdGltaXplZCcgfCAnYWx3YXlzJz4oJ2Fsd2F5cycpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiB0aGUgZWxlbWVudCBpcyBwbGFjZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGxhY2VkID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgICByZWFkb25seSBhcnJvdyA9IGNvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IFJkeFBvcHBlckFycm93KSk7XG5cbiAgICByZWFkb25seSBzaG91bGRIaWRlQXJyb3cgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBvc2l0aW9uLnZhbHVlKCk/Lm1pZGRsZXdhcmVEYXRhWydhcnJvdyddPy5jZW50ZXJPZmZzZXQgIT09IDApO1xuICAgIHJlYWRvbmx5IGFycm93WCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucG9zaXRpb24udmFsdWUoKT8ubWlkZGxld2FyZURhdGFbJ2Fycm93J10/LngpO1xuICAgIHJlYWRvbmx5IGFycm93WSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucG9zaXRpb24udmFsdWUoKT8ubWlkZGxld2FyZURhdGFbJ2Fycm93J10/LnkpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXNpcmVkUGxhY2VtZW50ID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+ICh0aGlzLnNpZGUoKSArICh0aGlzLmFsaWduKCkgIT09ICdjZW50ZXInID8gJy0nICsgdGhpcy5hbGlnbigpIDogJycpKSBhcyBQbGFjZW1lbnRcbiAgICApO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcnJvd1NpemUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFycm93RWxlbWVudFJlZiA9IHRoaXMuYXJyb3coKT8uZWxlbWVudFJlZjtcblxuICAgICAgICBpZiAoIWFycm93RWxlbWVudFJlZikge1xuICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICh7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAwXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZWxlbWVudFNpemUoe1xuICAgICAgICAgICAgZWxlbWVudFJlZjogYXJyb3dFbGVtZW50UmVmLFxuICAgICAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3JcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kYXJ5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBib3VuZGFyeSA9IHRoaXMuY29sbGlzaW9uQm91bmRhcnkoKTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShib3VuZGFyeSkpIHtcbiAgICAgICAgICAgIHJldHVybiBib3VuZGFyeS5tYXAoKGUpID0+IGUubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWJvdW5kYXJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW2JvdW5kYXJ5Lm5hdGl2ZUVsZW1lbnRdO1xuICAgIH0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBoYXNFeHBsaWNpdEJvdW5kYXJpZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmJvdW5kYXJ5KCkubGVuZ3RoID4gMCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRldGVjdE92ZXJmbG93T3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgICAgIHBhZGRpbmc6IHRoaXMuY29sbGlzaW9uUGFkZGluZygpLFxuICAgICAgICBib3VuZGFyeTogdGhpcy5ib3VuZGFyeSgpLmZpbHRlcihpc05vdE51bGwpLFxuICAgICAgICAvLyB3aXRoIGBzdHJhdGVneTogJ2ZpeGVkJ2AsIHRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGdldCBpdCB0byByZXNwZWN0IGJvdW5kYXJpZXNcbiAgICAgICAgYWx0Qm91bmRhcnk6IHRoaXMuaGFzRXhwbGljaXRCb3VuZGFyaWVzKClcbiAgICB9KSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvc2l0aW9uID0gcmVzb3VyY2Uoe1xuICAgICAgICBsb2FkZXI6ICgpID0+XG4gICAgICAgICAgICBjb21wdXRlUG9zaXRpb24odGhpcy5jb250ZXh0LmFuY2hvcigpLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IHRvIGBmaXhlZGAgc3RyYXRlZ3kgc28gdXNlcnMgZG9uJ3QgaGF2ZSB0byBwaWNrIGFuZCB3ZSBhbHNvIGF2b2lkIGZvY3VzIHNjcm9sbCBpc3N1ZXNcbiAgICAgICAgICAgICAgICBzdHJhdGVneTogdGhpcy5wb3NpdGlvblN0cmF0ZWd5KCksXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50OiB0aGlzLmRlc2lyZWRQbGFjZW1lbnQoKSxcbiAgICAgICAgICAgICAgICBtaWRkbGV3YXJlOiBbXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYWluQXhpczogdGhpcy5zaWRlT2Zmc2V0KCkgKyB0aGlzLmFycm93U2l6ZSgpKCkuaGVpZ2h0IHx8IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnRBeGlzOiB0aGlzLmFsaWduT2Zmc2V0KClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXZvaWRDb2xsaXNpb25zKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWluQXhpczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcm9zc0F4aXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZXI6IHRoaXMuc3RpY2t5KCkgPT09ICdwYXJ0aWFsJyA/IGxpbWl0U2hpZnQoKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmRldGVjdE92ZXJmbG93T3B0aW9ucygpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdm9pZENvbGxpc2lvbnMoKSAmJiBmbGlwKHsgLi4udGhpcy5kZXRlY3RPdmVyZmxvd09wdGlvbnMoKSB9KSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmRldGVjdE92ZXJmbG93T3B0aW9ucygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHk6ICh7IGVsZW1lbnRzLCByZWN0cywgYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3aWR0aDogYW5jaG9yV2lkdGgsIGhlaWdodDogYW5jaG9ySGVpZ2h0IH0gPSByZWN0cy5yZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudFN0eWxlID0gZWxlbWVudHMuZmxvYXRpbmcuc3R5bGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFN0eWxlLnNldFByb3BlcnR5KCctLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtd2lkdGgnLCBgJHthdmFpbGFibGVXaWR0aH1weGApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRTdHlsZS5zZXRQcm9wZXJ0eSgnLS1yYWRpeC1wb3BwZXItYXZhaWxhYmxlLWhlaWdodCcsIGAke2F2YWlsYWJsZUhlaWdodH1weGApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRTdHlsZS5zZXRQcm9wZXJ0eSgnLS1yYWRpeC1wb3BwZXItYW5jaG9yLXdpZHRoJywgYCR7YW5jaG9yV2lkdGh9cHhgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50U3R5bGUuc2V0UHJvcGVydHkoJy0tcmFkaXgtcG9wcGVyLWFuY2hvci1oZWlnaHQnLCBgJHthbmNob3JIZWlnaHR9cHhgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXJyb3coKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXRpbmdVSUFycm93KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiB0aGlzLmFycm93KCkhLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiB0aGlzLmFycm93UGFkZGluZygpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFycm93V2lkdGg6IHRoaXMuYXJyb3dTaXplKCkoKS53aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFycm93SGVpZ2h0OiB0aGlzLmFycm93U2l6ZSgpKCkuaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVXaGVuRGV0YWNoZWQoKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaGlkZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyYXRlZ3k6ICdyZWZlcmVuY2VIaWRkZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHBhbmVsIGlzIHBvc2l0aW9uZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaXNQb3NpdGlvbmVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wb3NpdGlvbi5oYXNWYWx1ZSgpKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjdXJyZW50IHBsYWNlbWVudCBvZiB0aGUgcGFuZWwuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGxhY2VtZW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBwbGFjZW1lbnQgPSB0aGlzLnBvc2l0aW9uLnZhbHVlKCk/LnBsYWNlbWVudDtcblxuICAgICAgICBpZiAoIXBsYWNlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW3NpZGUsIGFsaWduID0gJ2NlbnRlciddID0gcGxhY2VtZW50LnNwbGl0KCctJyk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNpZGU6IHNpZGUgYXMgU2lkZSxcbiAgICAgICAgICAgIGFsaWduOiBhbGlnbiBhcyBBbGlnblxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHNpZGUgdGhlIHBhbmVsIGlzIGN1cnJlbnRseSBwbGFjZWQgYWdhaW5zdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBwbGFjZWRTaWRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wbGFjZW1lbnQoKT8uc2lkZSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudCBhbGlnbm1lbnQgb2YgdGhlIHBhbmVsLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBsYWNlZEFsaWduID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wbGFjZW1lbnQoKT8uYWxpZ24pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250ZW50RWxlbWVudFJlZiA9IGNvbnRlbnRDaGlsZC5yZXF1aXJlZDxSZHhQb3BwZXJDb250ZW50LCBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oXG4gICAgICAgIFJkeFBvcHBlckNvbnRlbnQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHJlYWQ6IEVsZW1lbnRSZWZcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGVudFpJbmRleCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmNvbnRlbnRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudCkuekluZGV4O1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0eWxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBwb3MgPSB0aGlzLnBvc2l0aW9uLnZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHggPSBwb3M/Lng7XG4gICAgICAgIGNvbnN0IHkgPSBwb3M/Lnk7XG5cbiAgICAgICAgY29uc3QgcmVhZHkgPSBOdW1iZXIuaXNGaW5pdGUoeCkgJiYgTnVtYmVyLmlzRmluaXRlKHkpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvblN0cmF0ZWd5KCksXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRoaXMuaXNQb3NpdGlvbmVkKCkgPyAnJyA6ICd0cmFuc2xhdGUoMCwgLTIwMCUpJywgLy8ga2VlcCBvZmYgdGhlIHBhZ2Ugd2hlbiBtZWFzdXJpbmdcbiAgICAgICAgICAgIG1pbldpZHRoOiAnbWF4LWNvbnRlbnQnLFxuICAgICAgICAgICAgekluZGV4OiB0aGlzLmNvbnRlbnRaSW5kZXgoKSxcbiAgICAgICAgICAgIHRvcDogTnVtYmVyLmlzRmluaXRlKHkgYXMgbnVtYmVyKSA/IGAke3l9cHhgIDogJycsXG4gICAgICAgICAgICBsZWZ0OiBOdW1iZXIuaXNGaW5pdGUoeCBhcyBudW1iZXIpID8gYCR7eH1weGAgOiAnJyxcbiAgICAgICAgICAgICctLXJhZGl4LXBvcHBlci10cmFuc2Zvcm0tb3JpZ2luJzogW1xuICAgICAgICAgICAgICAgIHBvcz8ubWlkZGxld2FyZURhdGFbJ3RyYW5zZm9ybU9yaWdpbiddPy54LFxuICAgICAgICAgICAgICAgIHBvcz8ubWlkZGxld2FyZURhdGFbJ3RyYW5zZm9ybU9yaWdpbiddPy55XG4gICAgICAgICAgICBdLmpvaW4oJyAnKSxcblxuICAgICAgICAgICAgdmlzaWJpbGl0eTogcmVhZHkgPyAndmlzaWJsZScgOiAnaGlkZGVuJyxcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6IHJlYWR5ID8gJ2F1dG8nIDogJ25vbmUnLFxuXG4gICAgICAgICAgICAvLyBoaWRlIHRoZSBjb250ZW50IGlmIHVzaW5nIHRoZSBoaWRlIG1pZGRsZXdhcmUgYW5kIHNob3VsZCBiZSBoaWRkZW5cbiAgICAgICAgICAgIC8vIHNldCB2aXNpYmlsaXR5IHRvIGhpZGRlbiBhbmQgZGlzYWJsZSBwb2ludGVyIGV2ZW50cyBzbyB0aGUgVUkgYmVoYXZlc1xuICAgICAgICAgICAgLy8gYXMgaWYgdGhlIFBvcHBlckNvbnRlbnQgaXNuJ3QgdGhlcmUgYXQgYWxsXG4gICAgICAgICAgICAuLi4ocG9zPy5taWRkbGV3YXJlRGF0YS5oaWRlPy5yZWZlcmVuY2VIaWRkZW4gJiYge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWZ0ZXJOZXh0UmVuZGVyID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgICAgdGhpcy5wb3NpdGlvbi5yZWxvYWQoKTtcblxuICAgICAgICBjb25zdCBjbGVhbnVwID0gYXV0b1VwZGF0ZShcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5hbmNob3IoKS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICgpID0+IHRoaXMucG9zaXRpb24ucmVsb2FkKCksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRnJhbWU6IHRoaXMudXBkYXRlUG9zaXRpb25TdHJhdGVneSgpID09PSAnYWx3YXlzJ1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgICAgICAgY2xlYW51cCgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbiJdfQ==","import { computed, createComponent, Directive, effect, ElementRef, EnvironmentInjector, inject, input, inputBinding, numberAttribute } from '@angular/core';\nimport { RdxArrow } from '@radix-ng/primitives/arrow';\nimport { injectPopperContentWrapperContext } from './popper-content-wrapper';\nimport * as i0 from \"@angular/core\";\nconst OPPOSITE_SIDE = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right'\n};\nexport class RdxPopperArrow {\n constructor() {\n this.popperContentContext = injectPopperContentWrapperContext();\n this.environmentInjector = inject(EnvironmentInjector);\n this.elementRef = inject(ElementRef);\n this.width = input(10, ...(ngDevMode ? [{ debugName: \"width\", transform: numberAttribute }] : [{ transform: numberAttribute }]));\n this.height = input(5, ...(ngDevMode ? [{ debugName: \"height\", transform: numberAttribute }] : [{ transform: numberAttribute }]));\n this.baseSide = computed(() => OPPOSITE_SIDE[this.popperContentContext.placedSide()], ...(ngDevMode ? [{ debugName: \"baseSide\" }] : []));\n this.style = computed(() => {\n return {\n position: 'absolute',\n left: this.popperContentContext.arrowX() ? `${this.popperContentContext.arrowX()}px` : undefined,\n top: this.popperContentContext.arrowY() ? `${this.popperContentContext.arrowY()}px` : undefined,\n [this.baseSide()]: 0,\n transformOrigin: {\n top: '',\n right: '0 0',\n bottom: 'center 0',\n left: '100% 0'\n }[this.popperContentContext.placedSide()],\n transform: {\n top: 'translateY(100%)',\n right: 'translateY(50%) rotate(90deg) translateX(-50%)',\n bottom: `rotate(180deg)`,\n left: 'translateY(50%) rotate(-90deg) translateX(50%)'\n }[this.popperContentContext.placedSide()],\n visibility: this.popperContentContext.shouldHideArrow() ? 'hidden' : undefined\n };\n }, ...(ngDevMode ? [{ debugName: \"style\" }] : []));\n this.onCleanup = effect((onCleanup) => {\n const component = createComponent(RdxArrow, {\n environmentInjector: this.environmentInjector,\n hostElement: this.elementRef.nativeElement,\n projectableNodes: [Array.from(this.elementRef.nativeElement.childNodes)],\n bindings: [inputBinding('width', () => this.width()), inputBinding('height', () => this.height())]\n });\n component.changeDetectorRef.detectChanges();\n onCleanup(() => component.destroy());\n }, ...(ngDevMode ? [{ debugName: \"onCleanup\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPopperArrow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: RdxPopperArrow, isStandalone: true, selector: \"[rdxPopperArrow]\", inputs: { width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: \"height\", publicName: \"height\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"style\": \"style()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPopperArrow, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxPopperArrow]',\n host: {\n '[style]': 'style()'\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wcGVyLWFycm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9wb3BwZXIvc3JjL3BvcHBlci1hcnJvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsUUFBUSxFQUNSLGVBQWUsRUFDZixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsTUFBTSxFQUNOLEtBQUssRUFDTCxZQUFZLEVBQ1osZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRzdFLE1BQU0sYUFBYSxHQUF1QjtJQUN0QyxHQUFHLEVBQUUsUUFBUTtJQUNiLEtBQUssRUFBRSxNQUFNO0lBQ2IsTUFBTSxFQUFFLEtBQUs7SUFDYixJQUFJLEVBQUUsT0FBTztDQUNoQixDQUFDO0FBUUYsTUFBTSxPQUFPLGNBQWM7SUFOM0I7UUFPcUIseUJBQW9CLEdBQUcsaUNBQWlDLEVBQUcsQ0FBQztRQUU1RCx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUxRCxlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUV6RCxVQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUseUNBQUksU0FBUyxFQUFFLGVBQWUsT0FBNUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEdBQUMsQ0FBQztRQUVsRCxXQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsMENBQUksU0FBUyxFQUFFLGVBQWUsT0FBNUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEdBQUMsQ0FBQztRQUUzRCxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFHLENBQUMsb0RBQUMsQ0FBQztRQUUvRCxVQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNyQyxPQUFPO2dCQUNILFFBQVEsRUFBRSxVQUFVO2dCQUNwQixJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUNoRyxHQUFHLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUMvRixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BCLGVBQWUsRUFBRTtvQkFDYixHQUFHLEVBQUUsRUFBRTtvQkFDUCxLQUFLLEVBQUUsS0FBSztvQkFDWixNQUFNLEVBQUUsVUFBVTtvQkFDbEIsSUFBSSxFQUFFLFFBQVE7aUJBQ2pCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsRUFBRyxDQUFDO2dCQUMxQyxTQUFTLEVBQUU7b0JBQ1AsR0FBRyxFQUFFLGtCQUFrQjtvQkFDdkIsS0FBSyxFQUFFLGdEQUFnRDtvQkFDdkQsTUFBTSxFQUFFLGdCQUFnQjtvQkFDeEIsSUFBSSxFQUFFLGdEQUFnRDtpQkFDekQsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFHLENBQUM7Z0JBQzFDLFVBQVUsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUNqRixDQUFDO1FBQ04sQ0FBQyxpREFBQyxDQUFDO1FBRUssY0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3hDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7Z0JBQzdDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWE7Z0JBQzFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDeEUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3JHLENBQUMsQ0FBQztZQUVILFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUU1QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDekMsQ0FBQyxxREFBQyxDQUFDO0tBQ047OEdBL0NZLGNBQWM7a0dBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFOMUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixJQUFJLEVBQUU7d0JBQ0YsU0FBUyxFQUFFLFNBQVM7cUJBQ3ZCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBjb21wdXRlZCxcbiAgICBjcmVhdGVDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIGVmZmVjdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIGlucHV0QmluZGluZyxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHhBcnJvdyB9IGZyb20gJ0ByYWRpeC1uZy9wcmltaXRpdmVzL2Fycm93JztcbmltcG9ydCB7IGluamVjdFBvcHBlckNvbnRlbnRXcmFwcGVyQ29udGV4dCB9IGZyb20gJy4vcG9wcGVyLWNvbnRlbnQtd3JhcHBlcic7XG5pbXBvcnQgeyBTaWRlIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IE9QUE9TSVRFX1NJREU6IFJlY29yZDxTaWRlLCBTaWRlPiA9IHtcbiAgICB0b3A6ICdib3R0b20nLFxuICAgIHJpZ2h0OiAnbGVmdCcsXG4gICAgYm90dG9tOiAndG9wJyxcbiAgICBsZWZ0OiAncmlnaHQnXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhQb3BwZXJBcnJvd10nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tzdHlsZV0nOiAnc3R5bGUoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeFBvcHBlckFycm93IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHBlckNvbnRlbnRDb250ZXh0ID0gaW5qZWN0UG9wcGVyQ29udGVudFdyYXBwZXJDb250ZXh0KCkhO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gICAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgICByZWFkb25seSB3aWR0aCA9IGlucHV0KDEwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gICAgcmVhZG9ubHkgaGVpZ2h0ID0gaW5wdXQoNSwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuICAgIGJhc2VTaWRlID0gY29tcHV0ZWQoKCkgPT4gT1BQT1NJVEVfU0lERVt0aGlzLnBvcHBlckNvbnRlbnRDb250ZXh0LnBsYWNlZFNpZGUoKSFdKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzdHlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgbGVmdDogdGhpcy5wb3BwZXJDb250ZW50Q29udGV4dC5hcnJvd1goKSA/IGAke3RoaXMucG9wcGVyQ29udGVudENvbnRleHQuYXJyb3dYKCl9cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdG9wOiB0aGlzLnBvcHBlckNvbnRlbnRDb250ZXh0LmFycm93WSgpID8gYCR7dGhpcy5wb3BwZXJDb250ZW50Q29udGV4dC5hcnJvd1koKX1weGAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBbdGhpcy5iYXNlU2lkZSgpXTogMCxcbiAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbjoge1xuICAgICAgICAgICAgICAgIHRvcDogJycsXG4gICAgICAgICAgICAgICAgcmlnaHQ6ICcwIDAnLFxuICAgICAgICAgICAgICAgIGJvdHRvbTogJ2NlbnRlciAwJyxcbiAgICAgICAgICAgICAgICBsZWZ0OiAnMTAwJSAwJ1xuICAgICAgICAgICAgfVt0aGlzLnBvcHBlckNvbnRlbnRDb250ZXh0LnBsYWNlZFNpZGUoKSFdLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB7XG4gICAgICAgICAgICAgICAgdG9wOiAndHJhbnNsYXRlWSgxMDAlKScsXG4gICAgICAgICAgICAgICAgcmlnaHQ6ICd0cmFuc2xhdGVZKDUwJSkgcm90YXRlKDkwZGVnKSB0cmFuc2xhdGVYKC01MCUpJyxcbiAgICAgICAgICAgICAgICBib3R0b206IGByb3RhdGUoMTgwZGVnKWAsXG4gICAgICAgICAgICAgICAgbGVmdDogJ3RyYW5zbGF0ZVkoNTAlKSByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKDUwJSknXG4gICAgICAgICAgICB9W3RoaXMucG9wcGVyQ29udGVudENvbnRleHQucGxhY2VkU2lkZSgpIV0sXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0aGlzLnBvcHBlckNvbnRlbnRDb250ZXh0LnNob3VsZEhpZGVBcnJvdygpID8gJ2hpZGRlbicgOiB1bmRlZmluZWRcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIHByaXZhdGUgb25DbGVhbnVwID0gZWZmZWN0KChvbkNsZWFudXApID0+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gY3JlYXRlQ29tcG9uZW50KFJkeEFycm93LCB7XG4gICAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgICAgICBob3N0RWxlbWVudDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBwcm9qZWN0YWJsZU5vZGVzOiBbQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzKV0sXG4gICAgICAgICAgICBiaW5kaW5nczogW2lucHV0QmluZGluZygnd2lkdGgnLCAoKSA9PiB0aGlzLndpZHRoKCkpLCBpbnB1dEJpbmRpbmcoJ2hlaWdodCcsICgpID0+IHRoaXMuaGVpZ2h0KCkpXVxuICAgICAgICB9KTtcblxuICAgICAgICBjb21wb25lbnQuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIG9uQ2xlYW51cCgoKSA9PiBjb21wb25lbnQuZGVzdHJveSgpKTtcbiAgICB9KTtcbn1cbiJdfQ==","import { RdxPopper } from './src/popper';\nimport { RdxPopperAnchor } from './src/popper-anchor';\nimport { RdxPopperArrow } from './src/popper-arrow';\nimport { RdxPopperContent } from './src/popper-content';\nimport { RdxPopperContentWrapper } from './src/popper-content-wrapper';\nexport * from './src/popper';\nexport * from './src/popper-anchor';\nexport * from './src/popper-arrow';\nexport * from './src/popper-content';\nexport * from './src/popper-content-wrapper';\nexport * from './src/utils';\nexport const popperImports = [RdxPopper, RdxPopperArrow, RdxPopperContentWrapper, RdxPopperContent, RdxPopperAnchor];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3BvcHBlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdkUsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGFBQWEsQ0FBQztBQUU1QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmR4UG9wcGVyIH0gZnJvbSAnLi9zcmMvcG9wcGVyJztcbmltcG9ydCB7IFJkeFBvcHBlckFuY2hvciB9IGZyb20gJy4vc3JjL3BvcHBlci1hbmNob3InO1xuaW1wb3J0IHsgUmR4UG9wcGVyQXJyb3cgfSBmcm9tICcuL3NyYy9wb3BwZXItYXJyb3cnO1xuaW1wb3J0IHsgUmR4UG9wcGVyQ29udGVudCB9IGZyb20gJy4vc3JjL3BvcHBlci1jb250ZW50JztcbmltcG9ydCB7IFJkeFBvcHBlckNvbnRlbnRXcmFwcGVyIH0gZnJvbSAnLi9zcmMvcG9wcGVyLWNvbnRlbnQtd3JhcHBlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL3BvcHBlcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9wb3BwZXItYW5jaG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3BvcHBlci1hcnJvdyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9wb3BwZXItY29udGVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9wb3BwZXItY29udGVudC13cmFwcGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IHBvcHBlckltcG9ydHMgPSBbUmR4UG9wcGVyLCBSZHhQb3BwZXJBcnJvdywgUmR4UG9wcGVyQ29udGVudFdyYXBwZXIsIFJkeFBvcHBlckNvbnRlbnQsIFJkeFBvcHBlckFuY2hvcl07XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy1wb3BwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3BvcHBlci9yYWRpeC1uZy1wcmltaXRpdmVzLXBvcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["floatingUIArrow"],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-popper.mjs","sources":["../../../packages/primitives/popper/src/popper-anchor.ts","../../../packages/primitives/popper/src/popper.ts","../../../packages/primitives/popper/src/popper-content.ts","../../../packages/primitives/popper/src/popper-content.config.ts","../../../packages/primitives/popper/src/utils.ts","../../../packages/primitives/popper/src/popper-content-wrapper.ts","../../../packages/primitives/popper/src/popper-arrow.ts","../../../packages/primitives/popper/index.ts","../../../packages/primitives/popper/radix-ng-primitives-popper.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[rdxPopperAnchor]'\n})\nexport class RdxPopperAnchor {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n}\n","import { contentChild, Directive, signal } from '@angular/core';\nimport type { ReferenceElement } from '@floating-ui/dom';\nimport { RdxPopperAnchor } from './popper-anchor';\n\n@Directive({\n selector: '[rdxPopperRoot]'\n})\nexport class RdxPopper {\n readonly anchor = contentChild(RdxPopperAnchor);\n readonly anchorOverride = signal<ReferenceElement | undefined>(undefined);\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectPopperContentWrapperContext } from './popper-content-wrapper';\n\n@Directive({\n selector: '[rdxPopperContent]',\n host: {\n '[attr.data-side]': 'popperContentWrapper.placedSide()',\n '[attr.data-align]': 'popperContentWrapper.placedAlign()',\n '[style]': 'style()'\n }\n})\nexport class RdxPopperContent {\n protected readonly popperContentWrapper = injectPopperContentWrapperContext()!;\n\n /**\n * if the PopperContent hasn't been placed yet (not all measurements done)\n * we prevent animations so that users's animation don't kick in too early referring wrong sides\n */\n protected readonly style = computed(() => ({\n animation: !this.popperContentWrapper.isPositioned() ? 'none' : undefined\n }));\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { Align, Side } from './utils';\n\n/**\n * Default positioning values for `RdxPopperContentWrapper`.\n *\n * Lets a composing primitive (e.g. tooltip) provide its own Base UI-aligned defaults without\n * changing the shared popper defaults that other consumers (e.g. popover) rely on. Any value left\n * `undefined` falls back to the wrapper's built-in default. Consumer template bindings always win.\n */\nexport interface RdxPopperContentConfig {\n side?: Side;\n align?: Align;\n sideOffset?: number;\n alignOffset?: number;\n arrowPadding?: number;\n avoidCollisions?: boolean;\n collisionPadding?: number | Partial<Record<Side, number>>;\n sticky?: 'partial' | 'always';\n hideWhenDetached?: boolean;\n positionStrategy?: 'fixed' | 'absolute';\n updatePositionStrategy?: 'optimized' | 'always';\n}\n\nexport const RdxPopperContentConfigToken = new InjectionToken<RdxPopperContentConfig>('RdxPopperContentConfig', {\n factory: () => ({})\n});\n\nexport function provideRdxPopperContentConfig(config: RdxPopperContentConfig): Provider {\n return { provide: RdxPopperContentConfigToken, useValue: config };\n}\n","import type { Middleware, Placement } from '@floating-ui/dom';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst SIDE_OPTIONS = ['top', 'right', 'bottom', 'left'] as const;\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst ALIGN_OPTIONS = ['start', 'center', 'end'] as const;\n\nexport type Side = (typeof SIDE_OPTIONS)[number];\nexport type Align = (typeof ALIGN_OPTIONS)[number];\n\nexport function isNotNull<T>(value: T | null): value is T {\n return value !== null;\n}\n\nexport function transformOrigin(options: { arrowWidth: number; arrowHeight: number }): Middleware {\n return {\n name: 'transformOrigin',\n options,\n fn(data) {\n const { placement, rects, middlewareData } = data;\n\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = { start: '0%', center: '50%', end: '100%' }[placedAlign];\n\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n\n let x = '';\n let y = '';\n\n if (placedSide === 'bottom') {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n } else if (placedSide === 'top') {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === 'right') {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === 'left') {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return { data: { x, y } };\n }\n };\n}\n\nexport function getSideAndAlignFromPlacement(placement: Placement) {\n const [side, align = 'center'] = placement.split('-');\n return [side as Side, align as Align] as const;\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n input,\n numberAttribute,\n output,\n PLATFORM_ID,\n resource\n} from '@angular/core';\nimport type { ReferenceElement, VirtualElement } from '@floating-ui/dom';\nimport {\n autoUpdate,\n computePosition,\n flip,\n arrow as floatingUIArrow,\n hide,\n limitShift,\n offset,\n Placement,\n shift,\n size\n} from '@floating-ui/dom';\nimport { BooleanInput, createContext, elementSize, NumberInput, watch } from '@radix-ng/primitives/core';\nimport { RdxPopper } from './popper';\nimport { RdxPopperArrow } from './popper-arrow';\nimport { RdxPopperContent } from './popper-content';\nimport { RdxPopperContentConfigToken } from './popper-content.config';\nimport { Align, isNotNull, Side, transformOrigin } from './utils';\n\nexport type RdxPopperAnchorElement =\n | Element\n | ElementRef<Element>\n | VirtualElement\n | (() => Element | VirtualElement | null)\n | null\n | undefined;\n\nconst context = () => {\n const popperContentWrapper = inject(RdxPopperContentWrapper);\n\n return {\n placedSide: popperContentWrapper.placedSide,\n placedAlign: popperContentWrapper.placedAlign,\n arrowX: popperContentWrapper.arrowX,\n arrowY: popperContentWrapper.arrowY,\n shouldHideArrow: popperContentWrapper.shouldHideArrow,\n isPositioned: popperContentWrapper.isPositioned,\n anchorHidden: popperContentWrapper.anchorHidden\n };\n};\n\nexport type PopperContentWrapperContext = ReturnType<typeof context>;\n\nexport const [injectPopperContentWrapperContext, providePopperContentWrapperContext] =\n createContext<PopperContentWrapperContext>('PopperContentWrapperContext');\n\n@Directive({\n selector: '[rdxPopperContentWrapper]',\n providers: [providePopperContentWrapperContext(context)],\n host: {\n 'data-radix-popper-content-wrapper': '',\n '[style]': 'style()'\n }\n})\nexport class RdxPopperContentWrapper {\n private readonly elementRef = inject(ElementRef);\n private readonly injector = inject(Injector);\n\n private readonly context = inject(RdxPopper);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n /** Optional positioning defaults provided by a composing primitive (e.g. tooltip). */\n private readonly config = inject(RdxPopperContentConfigToken);\n\n /**\n * An element to position the popup against. Defaults to the popper anchor.\n */\n readonly anchor = input<RdxPopperAnchorElement>();\n\n /**\n * The preferred side of the anchor to render against when open.\n * Will be reversed when collisions occur and avoidCollisions is enabled.\n */\n readonly side = input<Side>(this.config.side ?? 'bottom');\n\n /**\n * Distance between the anchor and the popup in pixels.\n */\n readonly sideOffset = input<number, NumberInput>(this.config.sideOffset ?? 0, { transform: numberAttribute });\n\n /**\n * How to align the popup relative to the specified side. May change when collisions occur.\n */\n readonly align = input<Align>(this.config.align ?? 'center');\n\n /** An offset in pixels from the `start` or `end` alignment options. */\n readonly alignOffset = input<number, NumberInput>(this.config.alignOffset ?? 0, { transform: numberAttribute });\n\n /**\n * Minimum distance to maintain between the arrow and the edges of the popup.\n * If your content has border-radius, this will prevent it from overflowing the corners.\n */\n readonly arrowPadding = input<number, NumberInput>(this.config.arrowPadding ?? 0, { transform: numberAttribute });\n\n /** When `true`, overrides the `side` and `align` preferences to prevent collisions with boundary edges. */\n readonly avoidCollisions = input<boolean, BooleanInput>(this.config.avoidCollisions ?? true, {\n transform: booleanAttribute\n });\n\n /**\n * The element used as the collision boundary.\n * By default this is the viewport, though you can provide additional element(s) to be included in this check.\n */\n readonly collisionBoundary = input<ElementRef<HTMLElement> | ElementRef<HTMLElement>[]>();\n /**\n * The distance in pixels from the boundary edges where collision detection should occur.\n * Accepts a number (same for all sides), or a partial padding object, for example: `{ top: 20, left: 20 }`.\n */\n readonly collisionPadding = input<number | Partial<Record<Side, number>>>(this.config.collisionPadding ?? 0);\n\n /**\n * The sticky behavior on the align axis. `partial` will keep the\n * content in the boundary as long as the trigger is at least partially\n * in the boundary whilst \"always\" will keep the content in the boundary\n * regardless.\n */\n readonly sticky = input<'partial' | 'always'>(this.config.sticky ?? 'partial');\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n readonly hideWhenDetached = input<boolean, BooleanInput>(this.config.hideWhenDetached ?? false, {\n transform: booleanAttribute\n });\n\n /**\n * The type of CSS position property to use.\n */\n readonly positionStrategy = input<'fixed' | 'absolute'>(this.config.positionStrategy ?? 'fixed');\n\n /**\n * Strategy to update the position of the floating element on every animation frame.\n */\n readonly updatePositionStrategy = input<'optimized' | 'always'>(this.config.updatePositionStrategy ?? 'optimized');\n\n /**\n * Emits when the element is placed.\n */\n readonly placed = output<void>();\n\n readonly arrow = contentChild(forwardRef(() => RdxPopperArrow));\n\n readonly shouldHideArrow = computed(() => this.position.value()?.middlewareData['arrow']?.centerOffset !== 0);\n /** Whether the arrow could not be centered on the anchor because the popup was shifted. */\n readonly arrowUncentered = computed(\n () => (this.position.value()?.middlewareData['arrow']?.centerOffset ?? 0) !== 0\n );\n readonly arrowX = computed(() => this.position.value()?.middlewareData['arrow']?.x);\n readonly arrowY = computed(() => this.position.value()?.middlewareData['arrow']?.y);\n readonly anchorHidden = computed(() => this.position.value()?.middlewareData.hide?.referenceHidden === true);\n\n private readonly desiredPlacement = computed(\n () => (this.side() + (this.align() !== 'center' ? '-' + this.align() : '')) as Placement\n );\n\n private readonly arrowSize = computed(() => {\n const arrowElementRef = this.arrow()?.elementRef;\n\n if (!arrowElementRef) {\n return computed(() => ({\n height: 0,\n width: 0\n }));\n }\n\n return elementSize({\n elementRef: arrowElementRef,\n injector: this.injector\n });\n });\n\n private readonly boundary = computed(() => {\n const boundary = this.collisionBoundary();\n\n if (Array.isArray(boundary)) {\n return boundary.map((e) => e.nativeElement);\n }\n\n if (!boundary) {\n return [];\n }\n\n return [boundary.nativeElement];\n });\n\n private readonly hasExplicitBoundaries = computed(() => this.boundary().length > 0);\n\n private readonly detectOverflowOptions = computed(() => ({\n padding: this.collisionPadding(),\n boundary: this.boundary().filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: this.hasExplicitBoundaries()\n }));\n\n private readonly resolvedAnchor = computed<ReferenceElement>(() => {\n const anchor = this.anchor();\n const resolvedAnchor = typeof anchor === 'function' ? anchor() : anchor;\n\n if (resolvedAnchor instanceof ElementRef) {\n return resolvedAnchor.nativeElement;\n }\n\n if (resolvedAnchor) {\n return resolvedAnchor;\n }\n\n const fallbackAnchor = this.context.anchorOverride() ?? this.context.anchor()?.elementRef.nativeElement;\n\n if (!fallbackAnchor) {\n throw new Error('RdxPopperContentWrapper requires an anchor.');\n }\n\n return fallbackAnchor;\n });\n\n private readonly position = resource({\n params: () => ({\n anchor: this.resolvedAnchor(),\n strategy: this.positionStrategy(),\n placement: this.desiredPlacement(),\n sideOffset: this.sideOffset(),\n alignOffset: this.alignOffset(),\n arrowHeight: this.arrowSize()().height,\n arrowWidth: this.arrowSize()().width,\n avoidCollisions: this.avoidCollisions(),\n sticky: this.sticky(),\n detectOverflowOptions: this.detectOverflowOptions(),\n arrow: this.arrow(),\n arrowPadding: this.arrowPadding(),\n hideWhenDetached: this.hideWhenDetached()\n }),\n loader: ({ params }) =>\n computePosition(params.anchor, this.elementRef.nativeElement, {\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: params.strategy,\n placement: params.placement,\n middleware: [\n offset({\n mainAxis: params.sideOffset + params.arrowHeight || 0,\n alignmentAxis: params.alignOffset\n }),\n params.avoidCollisions &&\n shift({\n mainAxis: true,\n crossAxis: false,\n limiter: params.sticky === 'partial' ? limitShift() : undefined,\n ...params.detectOverflowOptions\n }),\n params.avoidCollisions && flip({ ...params.detectOverflowOptions }),\n size({\n ...params.detectOverflowOptions,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty('--radix-popper-available-width', `${availableWidth}px`);\n contentStyle.setProperty('--radix-popper-available-height', `${availableHeight}px`);\n contentStyle.setProperty('--radix-popper-anchor-width', `${anchorWidth}px`);\n contentStyle.setProperty('--radix-popper-anchor-height', `${anchorHeight}px`);\n }\n }),\n params.arrow &&\n floatingUIArrow({\n element: params.arrow.elementRef.nativeElement,\n padding: params.arrowPadding\n }),\n transformOrigin({\n arrowWidth: params.arrowWidth,\n arrowHeight: params.arrowHeight\n }),\n params.hideWhenDetached &&\n hide({\n strategy: 'referenceHidden',\n ...params.detectOverflowOptions\n })\n ]\n })\n });\n\n /**\n * Whether the panel is positioned.\n */\n readonly isPositioned = computed(() => this.position.hasValue());\n\n /**\n * The current placement of the panel.\n */\n readonly placement = computed(() => {\n const placement = this.position.value()?.placement;\n\n if (!placement) {\n return;\n }\n\n const [side, align = 'center'] = placement.split('-');\n\n return {\n side: side as Side,\n align: align as Align\n };\n });\n\n /**\n * The side the panel is currently placed against.\n */\n readonly placedSide = computed(() => this.placement()?.side);\n\n /**\n * The current alignment of the panel.\n */\n readonly placedAlign = computed(() => this.placement()?.align);\n\n private readonly contentElementRef = contentChild.required<RdxPopperContent, ElementRef<HTMLElement>>(\n RdxPopperContent,\n {\n read: ElementRef\n }\n );\n\n protected readonly contentZIndex = computed(() => {\n if (!this.isBrowser) {\n return 0;\n }\n\n return getComputedStyle(this.contentElementRef().nativeElement).zIndex;\n });\n\n protected readonly style = computed(() => {\n const pos = this.position.value();\n const x = pos?.x;\n const y = pos?.y;\n\n const ready = Number.isFinite(x) && Number.isFinite(y);\n\n return {\n position: this.positionStrategy(),\n transform: this.isPositioned() ? '' : 'translate(0, -200%)', // keep off the page when measuring\n minWidth: 'max-content',\n zIndex: this.contentZIndex(),\n top: Number.isFinite(y as number) ? `${y}px` : '',\n left: Number.isFinite(x as number) ? `${x}px` : '',\n '--radix-popper-transform-origin': [\n pos?.middlewareData['transformOrigin']?.x,\n pos?.middlewareData['transformOrigin']?.y\n ].join(' '),\n '--radix-popper-content-wrapper-width': `${this.elementRef.nativeElement.offsetWidth}px`,\n '--radix-popper-content-wrapper-height': `${this.elementRef.nativeElement.offsetHeight}px`,\n\n visibility: ready ? 'visible' : 'hidden',\n pointerEvents: ready ? 'auto' : 'none',\n\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...(pos?.middlewareData.hide?.referenceHidden && {\n visibility: 'hidden',\n pointerEvents: 'none'\n })\n };\n });\n\n private readonly afterRenderEffect = afterRenderEffect((onCleanup) => {\n this.position.reload();\n\n const cleanup = autoUpdate(this.resolvedAnchor(), this.elementRef.nativeElement, () => this.position.reload(), {\n animationFrame: this.updatePositionStrategy() === 'always'\n });\n\n onCleanup(cleanup);\n });\n\n constructor() {\n watch([this.isPositioned], ([isPositioned]) => {\n if (!isPositioned) {\n return;\n }\n\n afterNextRender(\n () => {\n this.placed.emit();\n },\n { injector: this.injector }\n );\n });\n }\n}\n","import {\n computed,\n createComponent,\n Directive,\n effect,\n ElementRef,\n EnvironmentInjector,\n inject,\n input,\n inputBinding,\n numberAttribute\n} from '@angular/core';\nimport { RdxArrow } from '@radix-ng/primitives/arrow';\nimport { injectPopperContentWrapperContext } from './popper-content-wrapper';\nimport { Side } from './utils';\n\nconst OPPOSITE_SIDE: Record<Side, Side> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right'\n};\n\n@Directive({\n selector: '[rdxPopperArrow]',\n host: {\n '[style]': 'style()'\n }\n})\nexport class RdxPopperArrow {\n private readonly popperContentContext = injectPopperContentWrapperContext()!;\n\n private readonly environmentInjector = inject(EnvironmentInjector);\n\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly width = input(10, { transform: numberAttribute });\n\n readonly height = input(5, { transform: numberAttribute });\n\n baseSide = computed(() => OPPOSITE_SIDE[this.popperContentContext.placedSide()!]);\n\n protected readonly style = computed(() => {\n return {\n position: 'absolute',\n left: this.popperContentContext.arrowX() ? `${this.popperContentContext.arrowX()}px` : undefined,\n top: this.popperContentContext.arrowY() ? `${this.popperContentContext.arrowY()}px` : undefined,\n [this.baseSide()]: 0,\n transformOrigin: {\n top: '',\n right: '0 0',\n bottom: 'center 0',\n left: '100% 0'\n }[this.popperContentContext.placedSide()!],\n transform: {\n top: 'translateY(100%)',\n right: 'translateY(50%) rotate(90deg) translateX(-50%)',\n bottom: `rotate(180deg)`,\n left: 'translateY(50%) rotate(-90deg) translateX(50%)'\n }[this.popperContentContext.placedSide()!],\n visibility: this.popperContentContext.shouldHideArrow() ? 'hidden' : undefined\n };\n });\n\n private onCleanup = effect((onCleanup) => {\n const component = createComponent(RdxArrow, {\n environmentInjector: this.environmentInjector,\n hostElement: this.elementRef.nativeElement,\n projectableNodes: [Array.from(this.elementRef.nativeElement.childNodes)],\n bindings: [inputBinding('width', () => this.width()), inputBinding('height', () => this.height())]\n });\n\n component.changeDetectorRef.detectChanges();\n\n onCleanup(() => component.destroy());\n });\n}\n","import { RdxPopper } from './src/popper';\nimport { RdxPopperAnchor } from './src/popper-anchor';\nimport { RdxPopperArrow } from './src/popper-arrow';\nimport { RdxPopperContent } from './src/popper-content';\nimport { RdxPopperContentWrapper } from './src/popper-content-wrapper';\n\nexport * from './src/popper';\nexport * from './src/popper-anchor';\nexport * from './src/popper-arrow';\nexport * from './src/popper-content';\nexport * from './src/popper-content-wrapper';\nexport * from './src/popper-content.config';\nexport * from './src/utils';\n\nexport const popperImports = [RdxPopper, RdxPopperArrow, RdxPopperContentWrapper, RdxPopperContent, RdxPopperAnchor];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["floatingUIArrow"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { DOCUMENT, isPlatformBrowser } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, ElementRef, PLATFORM_ID, DestroyRef, input, linkedSignal, computed, Directive } from '@angular/core';
3
+ import { inject, ElementRef, PLATFORM_ID, DestroyRef, input, linkedSignal, computed, effect, Directive } from '@angular/core';
4
4
 
5
5
  class RdxPortal {
6
6
  constructor() {
@@ -9,39 +9,63 @@ class RdxPortal {
9
9
  this.document = inject(DOCUMENT, { optional: true });
10
10
  this.destroyRef = inject(DestroyRef);
11
11
  /**
12
- * Specify a container element to portal the content into.
12
+ * Specify a container to portal the content into. Can be an `ElementRef`, a native element, or a
13
+ * CSS selector. Defaults to `document.body` when not set (or when a selector matches nothing).
13
14
  */
14
- this.container = input(...(ngDevMode ? [undefined, { debugName: "container" }] : []));
15
- this._computedContainer = linkedSignal(this.container, ...(ngDevMode ? [{ debugName: "_computedContainer" }] : []));
16
- this.computedContainer = this._computedContainer;
15
+ this.container = input(...(ngDevMode ? [undefined, { debugName: "container" }] : /* istanbul ignore next */ []));
16
+ this._computedContainer = linkedSignal(this.container, ...(ngDevMode ? [{ debugName: "_computedContainer" }] : /* istanbul ignore next */ []));
17
+ this.computedContainer = this._computedContainer.asReadonly();
17
18
  this.elementContainer = computed(() => {
18
- const provided = this.computedContainer()?.nativeElement ?? null;
19
+ const provided = this.resolveContainer(this.computedContainer());
19
20
  const body = this.document?.body ?? null;
20
21
  return provided ?? body;
21
- }, ...(ngDevMode ? [{ debugName: "elementContainer" }] : []));
22
+ }, ...(ngDevMode ? [{ debugName: "elementContainer" }] : /* istanbul ignore next */ []));
22
23
  const isBrowser = isPlatformBrowser(this.platformId);
23
24
  if (!isBrowser || !this.document) {
24
25
  return;
25
26
  }
26
- const node = this.document.createComment('rdx-portal');
27
- this.elementRef.nativeElement.parentNode?.insertBefore(node, this.elementRef.nativeElement);
28
- this.elementContainer()?.appendChild(this.elementRef.nativeElement);
27
+ const element = this.elementRef.nativeElement;
28
+ // Anchor the original DOM position with a comment node, so the element can be restored
29
+ // exactly where it was when the directive is destroyed.
30
+ const anchor = this.document.createComment('rdx-portal');
31
+ element.parentNode?.insertBefore(anchor, element);
32
+ // Move reactively: the effect runs after inputs are bound (so `container` is respected on
33
+ // first render) and re-runs whenever the target container changes. `appendChild` relocates
34
+ // the element, it does not clone it.
35
+ effect(() => {
36
+ this.elementContainer()?.appendChild(element);
37
+ });
29
38
  this.destroyRef.onDestroy(() => {
30
- node.parentNode?.replaceChild(this.elementRef.nativeElement, node);
39
+ anchor.parentNode?.replaceChild(element, anchor);
31
40
  });
32
41
  }
33
42
  setContainer(container) {
34
43
  this._computedContainer.set(container);
35
44
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPortal, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
37
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.3", type: RdxPortal, isStandalone: true, selector: "[rdxPortal]", inputs: { container: { classPropertyName: "container", publicName: "container", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
45
+ resolveContainer(container) {
46
+ if (!container) {
47
+ return null;
48
+ }
49
+ if (typeof container === 'string') {
50
+ return this.document?.querySelector(container) ?? null;
51
+ }
52
+ if (container instanceof ElementRef) {
53
+ return container.nativeElement ?? null;
54
+ }
55
+ // Anything that isn't a real element (e.g. a TemplateRef passed by mistake) falls back to
56
+ // the default container so the element still leaves the flow instead of staying in place.
57
+ return container instanceof HTMLElement ? container : null;
58
+ }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPortal, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxPortal, isStandalone: true, selector: "[rdxPortal]", inputs: { container: { classPropertyName: "container", publicName: "container", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["rdxPortal"], ngImport: i0 }); }
38
61
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPortal, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPortal, decorators: [{
40
63
  type: Directive,
41
64
  args: [{
42
- selector: '[rdxPortal]'
65
+ selector: '[rdxPortal]',
66
+ exportAs: 'rdxPortal'
43
67
  }]
44
- }], ctorParameters: () => [] });
68
+ }], ctorParameters: () => [], propDecorators: { container: [{ type: i0.Input, args: [{ isSignal: true, alias: "container", required: false }] }] } });
45
69
 
46
70
  /**
47
71
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-portal.mjs","sources":["../tmp-esm2022/portal/src/portal.js","../tmp-esm2022/portal/radix-ng-primitives-portal.js"],"sourcesContent":["import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { computed, DestroyRef, Directive, ElementRef, inject, input, linkedSignal, PLATFORM_ID } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class RdxPortal {\n constructor() {\n this.elementRef = inject(ElementRef);\n this.platformId = inject(PLATFORM_ID);\n this.document = inject(DOCUMENT, { optional: true });\n this.destroyRef = inject(DestroyRef);\n /**\n * Specify a container element to portal the content into.\n */\n this.container = input(...(ngDevMode ? [undefined, { debugName: \"container\" }] : []));\n this._computedContainer = linkedSignal(this.container, ...(ngDevMode ? [{ debugName: \"_computedContainer\" }] : []));\n this.computedContainer = this._computedContainer;\n this.elementContainer = computed(() => {\n const provided = this.computedContainer()?.nativeElement ?? null;\n const body = this.document?.body ?? null;\n return provided ?? body;\n }, ...(ngDevMode ? [{ debugName: \"elementContainer\" }] : []));\n const isBrowser = isPlatformBrowser(this.platformId);\n if (!isBrowser || !this.document) {\n return;\n }\n const node = this.document.createComment('rdx-portal');\n this.elementRef.nativeElement.parentNode?.insertBefore(node, this.elementRef.nativeElement);\n this.elementContainer()?.appendChild(this.elementRef.nativeElement);\n this.destroyRef.onDestroy(() => {\n node.parentNode?.replaceChild(this.elementRef.nativeElement, node);\n });\n }\n setContainer(container) {\n this._computedContainer.set(container);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPortal, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: RdxPortal, isStandalone: true, selector: \"[rdxPortal]\", inputs: { container: { classPropertyName: \"container\", publicName: \"container\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPortal, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxPortal]'\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9wb3J0YWwvc3JjL3BvcnRhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS3RILE1BQU0sT0FBTyxTQUFTO0lBb0JsQjtRQW5CaUIsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDekQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBb0IsQ0FBQztRQUNuRSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ00sY0FBUyxHQUFHLEtBQUssK0RBQTJCLENBQUM7UUFFOUMsdUJBQWtCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLDhEQUFDLENBQUM7UUFDakQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBRXBDLHFCQUFnQixHQUFHLFFBQVEsQ0FBcUIsR0FBRyxFQUFFO1lBQ2xFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQUM7WUFDakUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDO1lBQ3pDLE9BQU8sUUFBUSxJQUFJLElBQUksQ0FBQztRQUM1QixDQUFDLDREQUFDLENBQUM7UUFHQyxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvQixPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzNCLElBQUksQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFrQztRQUMzQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBdENRLFNBQVM7a0dBQVQsU0FBUzs7MkZBQVQsU0FBUztrQkFIckIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29tcHV0ZWQsIERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgbGlua2VkU2lnbmFsLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhQb3J0YWxdJ1xufSlcbmV4cG9ydCBjbGFzcyBSZHhQb3J0YWwge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5ULCB7IG9wdGlvbmFsOiB0cnVlIH0pIGFzIERvY3VtZW50IHwgbnVsbDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IGEgY29udGFpbmVyIGVsZW1lbnQgdG8gcG9ydGFsIHRoZSBjb250ZW50IGludG8uXG4gICAgICovXG4gICAgcmVhZG9ubHkgY29udGFpbmVyID0gaW5wdXQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCk7XG5cbiAgICBwcml2YXRlIF9jb21wdXRlZENvbnRhaW5lciA9IGxpbmtlZFNpZ25hbCh0aGlzLmNvbnRhaW5lcik7XG4gICAgcmVhZG9ubHkgY29tcHV0ZWRDb250YWluZXIgPSB0aGlzLl9jb21wdXRlZENvbnRhaW5lcjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudENvbnRhaW5lciA9IGNvbXB1dGVkPEhUTUxFbGVtZW50IHwgbnVsbD4oKCkgPT4ge1xuICAgICAgICBjb25zdCBwcm92aWRlZCA9IHRoaXMuY29tcHV0ZWRDb250YWluZXIoKT8ubmF0aXZlRWxlbWVudCA/PyBudWxsO1xuICAgICAgICBjb25zdCBib2R5ID0gdGhpcy5kb2N1bWVudD8uYm9keSA/PyBudWxsO1xuICAgICAgICByZXR1cm4gcHJvdmlkZWQgPz8gYm9keTtcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBpc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xuICAgICAgICBpZiAoIWlzQnJvd3NlciB8fCAhdGhpcy5kb2N1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgncmR4LXBvcnRhbCcpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU/Lmluc2VydEJlZm9yZShub2RlLCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRoaXMuZWxlbWVudENvbnRhaW5lcigpPy5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICAgICAgICBub2RlLnBhcmVudE5vZGU/LnJlcGxhY2VDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgbm9kZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldENvbnRhaW5lcihjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgICAgIHRoaXMuX2NvbXB1dGVkQ29udGFpbmVyLnNldChjb250YWluZXIpO1xuICAgIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy1wb3J0YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3BvcnRhbC9yYWRpeC1uZy1wcmltaXRpdmVzLXBvcnRhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;AAGO,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAC7C,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5D,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5C;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7F,QAAQ,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3H,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB;AACxD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC/C,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,aAAa,IAAI,IAAI;AAC5E,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI;AACpD,YAAY,OAAO,QAAQ,IAAI,IAAI;AACnC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE,QAAQ,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5D,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC1C,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC;AAC9D,QAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AACnG,QAAQ,IAAI,CAAC,gBAAgB,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC3E,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM;AACxC,YAAY,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC;AAC9E,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,YAAY,CAAC,SAAS,EAAE;AAC5B,QAAQ,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;AAC9C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1T;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE;AAC9B,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC1CvC;AACA;AACA;;;;"}
1
+ {"version":3,"file":"radix-ng-primitives-portal.mjs","sources":["../../../packages/primitives/portal/src/portal.ts","../../../packages/primitives/portal/radix-ng-primitives-portal.ts"],"sourcesContent":["import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n linkedSignal,\n PLATFORM_ID\n} from '@angular/core';\n\n/**\n * A target container for the portal. Accepts an `ElementRef`, a native element, or a CSS selector\n * resolved against the document.\n */\nexport type RdxPortalContainer = ElementRef<HTMLElement> | HTMLElement | string;\n\n@Directive({\n selector: '[rdxPortal]',\n exportAs: 'rdxPortal'\n})\nexport class RdxPortal {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly document = inject(DOCUMENT, { optional: true }) as Document | null;\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * Specify a container to portal the content into. Can be an `ElementRef`, a native element, or a\n * CSS selector. Defaults to `document.body` when not set (or when a selector matches nothing).\n */\n readonly container = input<RdxPortalContainer>();\n\n private readonly _computedContainer = linkedSignal(this.container);\n readonly computedContainer = this._computedContainer.asReadonly();\n\n private readonly elementContainer = computed<HTMLElement | null>(() => {\n const provided = this.resolveContainer(this.computedContainer());\n const body = this.document?.body ?? null;\n return provided ?? body;\n });\n\n constructor() {\n const isBrowser = isPlatformBrowser(this.platformId);\n if (!isBrowser || !this.document) {\n return;\n }\n\n const element = this.elementRef.nativeElement;\n // Anchor the original DOM position with a comment node, so the element can be restored\n // exactly where it was when the directive is destroyed.\n const anchor = this.document.createComment('rdx-portal');\n element.parentNode?.insertBefore(anchor, element);\n\n // Move reactively: the effect runs after inputs are bound (so `container` is respected on\n // first render) and re-runs whenever the target container changes. `appendChild` relocates\n // the element, it does not clone it.\n effect(() => {\n this.elementContainer()?.appendChild(element);\n });\n\n this.destroyRef.onDestroy(() => {\n anchor.parentNode?.replaceChild(element, anchor);\n });\n }\n\n setContainer(container: RdxPortalContainer) {\n this._computedContainer.set(container);\n }\n\n private resolveContainer(container: RdxPortalContainer | undefined): HTMLElement | null {\n if (!container) {\n return null;\n }\n if (typeof container === 'string') {\n return this.document?.querySelector<HTMLElement>(container) ?? null;\n }\n if (container instanceof ElementRef) {\n return container.nativeElement ?? null;\n }\n // Anything that isn't a real element (e.g. a TemplateRef passed by mistake) falls back to\n // the default container so the element still leaves the flow instead of staying in place.\n return container instanceof HTMLElement ? container : null;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}