@radix-ng/primitives 0.23.0 → 0.25.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 (293) hide show
  1. package/avatar/src/avatar-fallback.directive.d.ts +1 -1
  2. package/compodoc/documentation.json +14309 -15232
  3. package/core/index.d.ts +3 -2
  4. package/core/src/positioning/constants.d.ts +2 -0
  5. package/core/src/positioning/types.d.ts +31 -0
  6. package/{popover/src/popover.utils.d.ts → core/src/positioning/utils.d.ts} +4 -4
  7. package/dialog/src/dialog-trigger.directive.d.ts +12 -0
  8. package/fesm2022/radix-ng-primitives-accordion.mjs +19 -19
  9. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +22 -22
  11. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  12. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +3 -3
  13. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  14. package/fesm2022/radix-ng-primitives-avatar.mjs +17 -17
  15. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-checkbox.mjs +16 -16
  17. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-collapsible.mjs +9 -9
  19. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-context-menu.mjs +34 -34
  21. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-core.mjs +211 -236
  23. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-dialog.mjs +31 -26
  25. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +34 -34
  27. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-label.mjs +3 -3
  29. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-menu.mjs +22 -22
  31. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-menubar.mjs +31 -31
  33. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-popover.mjs +246 -266
  35. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-progress.mjs +10 -10
  37. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  38. package/fesm2022/radix-ng-primitives-radio.mjs +12 -12
  39. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-roving-focus.mjs +6 -6
  41. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  42. package/fesm2022/radix-ng-primitives-select.mjs +34 -35
  43. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  44. package/fesm2022/radix-ng-primitives-separator.mjs +3 -3
  45. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-slider.mjs +31 -34
  47. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-switch.mjs +18 -15
  49. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  50. package/fesm2022/radix-ng-primitives-tabs.mjs +16 -16
  51. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-toggle-group.mjs +9 -9
  53. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-toggle.mjs +6 -6
  55. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-tooltip.mjs +143 -242
  57. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +9 -9
  59. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  60. package/package.json +3 -57
  61. package/popover/index.d.ts +0 -1
  62. package/popover/src/popover-arrow.directive.d.ts +3 -4
  63. package/popover/src/popover-content.directive.d.ts +17 -9
  64. package/popover/src/popover-root.directive.d.ts +25 -1
  65. package/popover/src/popover.constants.d.ts +0 -2
  66. package/popover/src/popover.types.d.ts +0 -31
  67. package/popover/src/utils/cdk-event.service.d.ts +30 -0
  68. package/popover/src/utils/constants.d.ts +1 -0
  69. package/popover/src/utils/types.d.ts +7 -0
  70. package/switch/src/switch-root.directive.d.ts +4 -1
  71. package/tooltip/src/tooltip-arrow.directive.d.ts +14 -1
  72. package/tooltip/src/tooltip-content.directive.d.ts +4 -5
  73. package/tooltip/src/tooltip-root.directive.d.ts +6 -3
  74. package/tooltip/src/tooltip.types.d.ts +0 -11
  75. package/core/src/control-value-accessor/index.d.ts +0 -75
  76. package/core/src/create-inject-context/assert-injector.d.ts +0 -51
  77. package/core/src/create-inject-context/index.d.ts +0 -68
  78. package/core/src/types.d.ts +0 -23
  79. package/esm2022/accordion/index.mjs +0 -40
  80. package/esm2022/accordion/radix-ng-primitives-accordion.mjs +0 -5
  81. package/esm2022/accordion/src/accordion-content.directive.mjs +0 -42
  82. package/esm2022/accordion/src/accordion-header.directive.mjs +0 -23
  83. package/esm2022/accordion/src/accordion-item.directive.mjs +0 -196
  84. package/esm2022/accordion/src/accordion-root.directive.mjs +0 -200
  85. package/esm2022/accordion/src/accordion-trigger.directive.mjs +0 -42
  86. package/esm2022/alert-dialog/index.mjs +0 -41
  87. package/esm2022/alert-dialog/radix-ng-primitives-alert-dialog.mjs +0 -5
  88. package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +0 -24
  89. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +0 -34
  90. package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +0 -24
  91. package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +0 -14
  92. package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +0 -24
  93. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +0 -46
  94. package/esm2022/aspect-ratio/index.mjs +0 -2
  95. package/esm2022/aspect-ratio/radix-ng-primitives-aspect-ratio.mjs +0 -5
  96. package/esm2022/aspect-ratio/src/aspect-ratio.directive.mjs +0 -57
  97. package/esm2022/avatar/index.mjs +0 -31
  98. package/esm2022/avatar/radix-ng-primitives-avatar.mjs +0 -5
  99. package/esm2022/avatar/src/avatar-fallback.directive.mjs +0 -67
  100. package/esm2022/avatar/src/avatar-image.directive.mjs +0 -65
  101. package/esm2022/avatar/src/avatar-root.directive.mjs +0 -26
  102. package/esm2022/avatar/src/avatar.config.mjs +0 -17
  103. package/esm2022/checkbox/index.mjs +0 -36
  104. package/esm2022/checkbox/radix-ng-primitives-checkbox.mjs +0 -5
  105. package/esm2022/checkbox/src/checkbox-button.directive.mjs +0 -33
  106. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +0 -24
  107. package/esm2022/checkbox/src/checkbox-input.directive.mjs +0 -44
  108. package/esm2022/checkbox/src/checkbox.directive.mjs +0 -141
  109. package/esm2022/checkbox/src/checkbox.token.mjs +0 -6
  110. package/esm2022/collapsible/index.mjs +0 -4
  111. package/esm2022/collapsible/radix-ng-primitives-collapsible.mjs +0 -5
  112. package/esm2022/collapsible/src/collapsible-content.directive.mjs +0 -42
  113. package/esm2022/collapsible/src/collapsible-content.token.mjs +0 -3
  114. package/esm2022/collapsible/src/collapsible-root.directive.mjs +0 -127
  115. package/esm2022/collapsible/src/collapsible-trigger.directive.mjs +0 -49
  116. package/esm2022/context-menu/index.mjs +0 -65
  117. package/esm2022/context-menu/radix-ng-primitives-context-menu.mjs +0 -5
  118. package/esm2022/context-menu/src/context-menu-content.directive.mjs +0 -56
  119. package/esm2022/context-menu/src/context-menu-item-checkbox.directive.mjs +0 -39
  120. package/esm2022/context-menu/src/context-menu-item-indicator.directive.mjs +0 -22
  121. package/esm2022/context-menu/src/context-menu-item-radio-group.directive.mjs +0 -37
  122. package/esm2022/context-menu/src/context-menu-item-radio.directive.mjs +0 -67
  123. package/esm2022/context-menu/src/context-menu-item-selectable.mjs +0 -31
  124. package/esm2022/context-menu/src/context-menu-item.directive.mjs +0 -70
  125. package/esm2022/context-menu/src/context-menu-label.directive.mjs +0 -14
  126. package/esm2022/context-menu/src/context-menu-separator.directive.mjs +0 -21
  127. package/esm2022/context-menu/src/context-menu-trigger.directive.mjs +0 -92
  128. package/esm2022/core/index.mjs +0 -11
  129. package/esm2022/core/radix-ng-primitives-core.mjs +0 -5
  130. package/esm2022/core/src/accessor/provide-value-accessor.mjs +0 -19
  131. package/esm2022/core/src/auto-focus.directive.mjs +0 -80
  132. package/esm2022/core/src/control-value-accessor/index.mjs +0 -103
  133. package/esm2022/core/src/create-inject-context/assert-injector.mjs +0 -15
  134. package/esm2022/core/src/create-inject-context/index.mjs +0 -116
  135. package/esm2022/core/src/document.mjs +0 -6
  136. package/esm2022/core/src/id-generator.mjs +0 -43
  137. package/esm2022/core/src/inject-ng-control.mjs +0 -17
  138. package/esm2022/core/src/is-client.mjs +0 -6
  139. package/esm2022/core/src/is-inside-form.mjs +0 -7
  140. package/esm2022/core/src/types.mjs +0 -2
  141. package/esm2022/core/src/window.mjs +0 -15
  142. package/esm2022/dialog/index.mjs +0 -50
  143. package/esm2022/dialog/radix-ng-primitives-dialog.mjs +0 -5
  144. package/esm2022/dialog/src/dialog-close.directive.mjs +0 -25
  145. package/esm2022/dialog/src/dialog-content.directive.mjs +0 -46
  146. package/esm2022/dialog/src/dialog-description.directive.mjs +0 -14
  147. package/esm2022/dialog/src/dialog-dismiss.directive.mjs +0 -25
  148. package/esm2022/dialog/src/dialog-ref.mjs +0 -46
  149. package/esm2022/dialog/src/dialog-title.directive.mjs +0 -14
  150. package/esm2022/dialog/src/dialog-trigger.directive.mjs +0 -54
  151. package/esm2022/dialog/src/dialog.config.mjs +0 -6
  152. package/esm2022/dialog/src/dialog.injectors.mjs +0 -10
  153. package/esm2022/dialog/src/dialog.providers.mjs +0 -26
  154. package/esm2022/dialog/src/dialog.service.mjs +0 -96
  155. package/esm2022/dropdown-menu/index.mjs +0 -68
  156. package/esm2022/dropdown-menu/radix-ng-primitives-dropdown-menu.mjs +0 -5
  157. package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +0 -56
  158. package/esm2022/dropdown-menu/src/dropdown-menu-item-checkbox.directive.mjs +0 -39
  159. package/esm2022/dropdown-menu/src/dropdown-menu-item-indicator.directive.mjs +0 -22
  160. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio-group.directive.mjs +0 -37
  161. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio.directive.mjs +0 -67
  162. package/esm2022/dropdown-menu/src/dropdown-menu-item-selectable.mjs +0 -31
  163. package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +0 -73
  164. package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +0 -14
  165. package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +0 -21
  166. package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +0 -210
  167. package/esm2022/index.mjs +0 -2
  168. package/esm2022/label/index.mjs +0 -2
  169. package/esm2022/label/radix-ng-primitives-label.mjs +0 -5
  170. package/esm2022/label/src/label.directive.mjs +0 -57
  171. package/esm2022/menu/index.mjs +0 -45
  172. package/esm2022/menu/radix-ng-primitives-menu.mjs +0 -5
  173. package/esm2022/menu/src/menu-content.directive.mjs +0 -17
  174. package/esm2022/menu/src/menu-directive.mjs +0 -18
  175. package/esm2022/menu/src/menu-group.directive.mjs +0 -20
  176. package/esm2022/menu/src/menu-item.directive.mjs +0 -46
  177. package/esm2022/menu/src/menu-label.directive.mjs +0 -14
  178. package/esm2022/menu/src/menu-separator.directive.mjs +0 -21
  179. package/esm2022/menubar/index.mjs +0 -60
  180. package/esm2022/menubar/radix-ng-primitives-menubar.mjs +0 -5
  181. package/esm2022/menubar/src/menubar-content.directive.mjs +0 -17
  182. package/esm2022/menubar/src/menubar-item-checkbox.directive.mjs +0 -34
  183. package/esm2022/menubar/src/menubar-item-indicator.directive.mjs +0 -17
  184. package/esm2022/menubar/src/menubar-item-radio.directive.mjs +0 -35
  185. package/esm2022/menubar/src/menubar-item.directive.mjs +0 -20
  186. package/esm2022/menubar/src/menubar-radio-group.directive.mjs +0 -17
  187. package/esm2022/menubar/src/menubar-root.directive.mjs +0 -24
  188. package/esm2022/menubar/src/menubar-separator.directive.mjs +0 -17
  189. package/esm2022/menubar/src/menubar-trigger.directive.mjs +0 -45
  190. package/esm2022/popover/index.mjs +0 -51
  191. package/esm2022/popover/radix-ng-primitives-popover.mjs +0 -5
  192. package/esm2022/popover/src/popover-anchor.directive.mjs +0 -70
  193. package/esm2022/popover/src/popover-anchor.token.mjs +0 -3
  194. package/esm2022/popover/src/popover-arrow.directive.mjs +0 -117
  195. package/esm2022/popover/src/popover-arrow.token.mjs +0 -3
  196. package/esm2022/popover/src/popover-close.directive.mjs +0 -49
  197. package/esm2022/popover/src/popover-close.token.mjs +0 -3
  198. package/esm2022/popover/src/popover-content-attributes.component.mjs +0 -70
  199. package/esm2022/popover/src/popover-content-attributes.token.mjs +0 -3
  200. package/esm2022/popover/src/popover-content.directive.mjs +0 -255
  201. package/esm2022/popover/src/popover-root.directive.mjs +0 -315
  202. package/esm2022/popover/src/popover-root.inject.mjs +0 -7
  203. package/esm2022/popover/src/popover-trigger.directive.mjs +0 -41
  204. package/esm2022/popover/src/popover.constants.mjs +0 -90
  205. package/esm2022/popover/src/popover.types.mjs +0 -31
  206. package/esm2022/popover/src/popover.utils.mjs +0 -107
  207. package/esm2022/progress/index.mjs +0 -25
  208. package/esm2022/progress/radix-ng-primitives-progress.mjs +0 -5
  209. package/esm2022/progress/src/progress-indicator.directive.mjs +0 -33
  210. package/esm2022/progress/src/progress-root.directive.mjs +0 -132
  211. package/esm2022/radio/index.mjs +0 -5
  212. package/esm2022/radio/radix-ng-primitives-radio.mjs +0 -5
  213. package/esm2022/radio/src/radio-indicator.directive.mjs +0 -25
  214. package/esm2022/radio/src/radio-item-input.directive.mjs +0 -37
  215. package/esm2022/radio/src/radio-item.directive.mjs +0 -86
  216. package/esm2022/radio/src/radio-root.directive.mjs +0 -104
  217. package/esm2022/radio/src/radio-tokens.mjs +0 -3
  218. package/esm2022/radix-ng-primitives.mjs +0 -5
  219. package/esm2022/roving-focus/index.mjs +0 -3
  220. package/esm2022/roving-focus/radix-ng-primitives-roving-focus.mjs +0 -5
  221. package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +0 -138
  222. package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +0 -133
  223. package/esm2022/roving-focus/src/utils.mjs +0 -47
  224. package/esm2022/select/index.mjs +0 -65
  225. package/esm2022/select/radix-ng-primitives-select.mjs +0 -5
  226. package/esm2022/select/src/select-content.directive.mjs +0 -53
  227. package/esm2022/select/src/select-group.directive.mjs +0 -18
  228. package/esm2022/select/src/select-icon.directive.mjs +0 -18
  229. package/esm2022/select/src/select-item-indicator.directive.mjs +0 -23
  230. package/esm2022/select/src/select-item.directive.mjs +0 -122
  231. package/esm2022/select/src/select-label.directive.mjs +0 -15
  232. package/esm2022/select/src/select-separator.directive.mjs +0 -18
  233. package/esm2022/select/src/select-trigger.directive.mjs +0 -38
  234. package/esm2022/select/src/select-value.directive.mjs +0 -21
  235. package/esm2022/select/src/select.component.mjs +0 -234
  236. package/esm2022/separator/index.mjs +0 -2
  237. package/esm2022/separator/radix-ng-primitives-separator.mjs +0 -5
  238. package/esm2022/separator/src/separator.directive.mjs +0 -61
  239. package/esm2022/slider/index.mjs +0 -28
  240. package/esm2022/slider/radix-ng-primitives-slider.mjs +0 -5
  241. package/esm2022/slider/src/slider-horizontal.component.mjs +0 -117
  242. package/esm2022/slider/src/slider-impl.directive.mjs +0 -89
  243. package/esm2022/slider/src/slider-orientation-context.service.mjs +0 -27
  244. package/esm2022/slider/src/slider-range.component.mjs +0 -41
  245. package/esm2022/slider/src/slider-root.component.mjs +0 -210
  246. package/esm2022/slider/src/slider-thumb-impl.directive.mjs +0 -106
  247. package/esm2022/slider/src/slider-thumb.component.mjs +0 -22
  248. package/esm2022/slider/src/slider-track.component.mjs +0 -27
  249. package/esm2022/slider/src/slider-vertical.component.mjs +0 -117
  250. package/esm2022/slider/src/utils.mjs +0 -94
  251. package/esm2022/switch/index.mjs +0 -30
  252. package/esm2022/switch/radix-ng-primitives-switch.mjs +0 -5
  253. package/esm2022/switch/src/switch-input.directive.mjs +0 -44
  254. package/esm2022/switch/src/switch-root.directive.mjs +0 -145
  255. package/esm2022/switch/src/switch-thumb.directive.mjs +0 -26
  256. package/esm2022/tabs/index.mjs +0 -35
  257. package/esm2022/tabs/radix-ng-primitives-tabs.mjs +0 -5
  258. package/esm2022/tabs/src/tabs-content.directive.mjs +0 -35
  259. package/esm2022/tabs/src/tabs-list.directive.mjs +0 -26
  260. package/esm2022/tabs/src/tabs-root.directive.mjs +0 -57
  261. package/esm2022/tabs/src/tabs-trigger.directive.mjs +0 -78
  262. package/esm2022/tabs/src/utils.mjs +0 -7
  263. package/esm2022/toggle/index.mjs +0 -3
  264. package/esm2022/toggle/radix-ng-primitives-toggle.mjs +0 -5
  265. package/esm2022/toggle/src/toggle-visually-hidden-input.directive.mjs +0 -31
  266. package/esm2022/toggle/src/toggle.directive.mjs +0 -79
  267. package/esm2022/toggle-group/index.mjs +0 -6
  268. package/esm2022/toggle-group/radix-ng-primitives-toggle-group.mjs +0 -5
  269. package/esm2022/toggle-group/src/toggle-group-item.directive.mjs +0 -85
  270. package/esm2022/toggle-group/src/toggle-group-item.token.mjs +0 -3
  271. package/esm2022/toggle-group/src/toggle-group-multiple.directive.mjs +0 -185
  272. package/esm2022/toggle-group/src/toggle-group.directive.mjs +0 -179
  273. package/esm2022/toggle-group/src/toggle-group.token.mjs +0 -6
  274. package/esm2022/tooltip/index.mjs +0 -41
  275. package/esm2022/tooltip/radix-ng-primitives-tooltip.mjs +0 -5
  276. package/esm2022/tooltip/src/get-content-position.mjs +0 -31
  277. package/esm2022/tooltip/src/tooltip-arrow.directive.mjs +0 -92
  278. package/esm2022/tooltip/src/tooltip-arrow.token.mjs +0 -3
  279. package/esm2022/tooltip/src/tooltip-content-attributes.directive.mjs +0 -24
  280. package/esm2022/tooltip/src/tooltip-content.directive.mjs +0 -48
  281. package/esm2022/tooltip/src/tooltip-content.token.mjs +0 -3
  282. package/esm2022/tooltip/src/tooltip-root.directive.mjs +0 -288
  283. package/esm2022/tooltip/src/tooltip-trigger.directive.mjs +0 -70
  284. package/esm2022/tooltip/src/tooltip.config.mjs +0 -18
  285. package/esm2022/tooltip/src/tooltip.constants.mjs +0 -84
  286. package/esm2022/tooltip/src/tooltip.types.mjs +0 -14
  287. package/esm2022/visually-hidden/index.mjs +0 -4
  288. package/esm2022/visually-hidden/radix-ng-primitives-visually-hidden.mjs +0 -5
  289. package/esm2022/visually-hidden/src/visually-hidden-input-bubble.directive.mjs +0 -74
  290. package/esm2022/visually-hidden/src/visually-hidden-input.directive.mjs +0 -74
  291. package/esm2022/visually-hidden/src/visually-hidden.directive.mjs +0 -42
  292. package/tooltip/src/get-content-position.d.ts +0 -3
  293. package/tooltip/src/tooltip.constants.d.ts +0 -9
@@ -1,315 +0,0 @@
1
- import { afterNextRender, booleanAttribute, computed, contentChild, DestroyRef, Directive, effect, inject, input, signal, untracked, ViewContainerRef } from '@angular/core';
2
- import { RdxPopoverAnchorToken } from './popover-anchor.token';
3
- import { RdxPopoverArrowToken } from './popover-arrow.token';
4
- import { RdxPopoverCloseToken } from './popover-close.token';
5
- import { RdxPopoverContentAttributesToken } from './popover-content-attributes.token';
6
- import { RdxPopoverContentDirective } from './popover-content.directive';
7
- import { RdxPopoverTriggerDirective } from './popover-trigger.directive';
8
- import { RdxPopoverAnimationStatus, RdxPopoverAttachDetachEvent, RdxPopoverState } from './popover.types';
9
- import * as i0 from "@angular/core";
10
- let nextId = 0;
11
- export class RdxPopoverRootDirective {
12
- constructor() {
13
- /** @ignore */
14
- this.uniqueId = signal(++nextId);
15
- /** @ignore */
16
- this.name = computed(() => `rdx-popover-root-${this.uniqueId()}`);
17
- /**
18
- * @description The anchor directive that comes form outside the popover root
19
- * @default undefined
20
- */
21
- this.anchor = input(void 0);
22
- /**
23
- * @description The open state of the popover when it is initially rendered. Use when you do not need to control its open state.
24
- * @default false
25
- */
26
- this.defaultOpen = input(false);
27
- /**
28
- * @description The controlled state of the popover. `open` input take precedence of `defaultOpen` input.
29
- * @default undefined
30
- */
31
- this.open = input(void 0);
32
- /**
33
- * @description Whether to control the state of the popover from external. Use in conjunction with `open` input.
34
- * @default undefined
35
- */
36
- this.externalControl = input(void 0);
37
- /**
38
- * @description Whether to take into account CSS opening/closing animations.
39
- * @default false
40
- */
41
- this.cssAnimation = input(false, { transform: booleanAttribute });
42
- /**
43
- * @description Whether to take into account CSS opening animations. `cssAnimation` input must be set to 'true'
44
- * @default false
45
- */
46
- this.cssOpeningAnimation = input(false, { transform: booleanAttribute });
47
- /**
48
- * @description Whether to take into account CSS closing animations. `cssAnimation` input must be set to 'true'
49
- * @default false
50
- */
51
- this.cssClosingAnimation = input(false, { transform: booleanAttribute });
52
- /** @ignore */
53
- this.cssAnimationStatus = signal(null);
54
- /** @ignore */
55
- this.popoverContentDirective = contentChild.required(RdxPopoverContentDirective);
56
- /** @ignore */
57
- this.popoverTriggerDirective = contentChild.required(RdxPopoverTriggerDirective);
58
- /** @ignore */
59
- this.popoverArrowDirective = contentChild(RdxPopoverArrowToken);
60
- /** @ignore */
61
- this.popoverCloseDirective = contentChild(RdxPopoverCloseToken);
62
- /** @ignore */
63
- this.popoverContentAttributesComponent = contentChild(RdxPopoverContentAttributesToken);
64
- /** @ignore */
65
- this.internalPopoverAnchorDirective = contentChild(RdxPopoverAnchorToken);
66
- /** @ignore */
67
- this.viewContainerRef = inject(ViewContainerRef);
68
- /** @ignore */
69
- this.destroyRef = inject(DestroyRef);
70
- /** @ignore */
71
- this.state = signal(RdxPopoverState.CLOSED);
72
- /** @ignore */
73
- this.attachDetachEvent = signal(RdxPopoverAttachDetachEvent.DETACH);
74
- /** @ignore */
75
- this.isFirstDefaultOpen = signal(false);
76
- /** @ignore */
77
- this.popoverAnchorDirective = computed(() => this.internalPopoverAnchorDirective() ?? this.anchor());
78
- /** @ignore */
79
- this.onAnchorChangeEffect = () => {
80
- effect(() => {
81
- const anchor = this.anchor();
82
- untracked(() => {
83
- if (anchor) {
84
- anchor.setPopoverRoot(this);
85
- }
86
- });
87
- });
88
- };
89
- this.onStateChangeEffect();
90
- this.onCssAnimationStatusChangeChangeEffect();
91
- this.onOpenChangeEffect();
92
- this.onIsFirstDefaultOpenChangeEffect();
93
- this.onAnchorChangeEffect();
94
- this.emitOpenOrClosedEventEffect();
95
- afterNextRender({
96
- write: () => {
97
- if (this.defaultOpen() && !this.open()) {
98
- this.isFirstDefaultOpen.set(true);
99
- }
100
- }
101
- });
102
- }
103
- /** @ignore */
104
- getAnimationParamsSnapshot() {
105
- return {
106
- cssAnimation: this.cssAnimation(),
107
- cssOpeningAnimation: this.cssOpeningAnimation(),
108
- cssClosingAnimation: this.cssClosingAnimation(),
109
- cssAnimationStatus: this.cssAnimationStatus(),
110
- attachDetachEvent: this.attachDetachEvent(),
111
- state: this.state(),
112
- canEmitOnOpenOrOnClosed: this.canEmitOnOpenOrOnClosed()
113
- };
114
- }
115
- /** @ignore */
116
- controlledExternally() {
117
- return this.externalControl;
118
- }
119
- /** @ignore */
120
- firstDefaultOpen() {
121
- return this.isFirstDefaultOpen();
122
- }
123
- /** @ignore */
124
- handleOpen() {
125
- if (this.externalControl()) {
126
- return;
127
- }
128
- this.setState(RdxPopoverState.OPEN);
129
- }
130
- /** @ignore */
131
- handleClose() {
132
- if (this.isFirstDefaultOpen()) {
133
- this.isFirstDefaultOpen.set(false);
134
- }
135
- if (this.externalControl()) {
136
- return;
137
- }
138
- this.setState(RdxPopoverState.CLOSED);
139
- }
140
- /** @ignore */
141
- handleToggle() {
142
- if (this.externalControl()) {
143
- return;
144
- }
145
- this.isOpen() ? this.handleClose() : this.handleOpen();
146
- }
147
- /** @ignore */
148
- isOpen(state) {
149
- return (state ?? this.state()) === RdxPopoverState.OPEN;
150
- }
151
- /** @ignore */
152
- setState(state = RdxPopoverState.CLOSED) {
153
- if (state === this.state()) {
154
- return;
155
- }
156
- this.state.set(state);
157
- }
158
- /** @ignore */
159
- openContent() {
160
- this.popoverContentDirective().open();
161
- if (!this.cssAnimation() || !this.cssOpeningAnimation()) {
162
- this.cssAnimationStatus.set(null);
163
- }
164
- }
165
- /** @ignore */
166
- closeContent() {
167
- this.popoverContentDirective().close();
168
- if (!this.cssAnimation() || !this.cssClosingAnimation()) {
169
- this.cssAnimationStatus.set(null);
170
- }
171
- }
172
- /** @ignore */
173
- emitOnOpen() {
174
- this.popoverContentDirective().onOpen.emit();
175
- }
176
- /** @ignore */
177
- emitOnClosed() {
178
- this.popoverContentDirective().onClosed.emit();
179
- }
180
- /** @ignore */
181
- ifOpenOrCloseWithoutAnimations(state) {
182
- return (!this.popoverContentAttributesComponent() ||
183
- !this.cssAnimation() ||
184
- (this.cssAnimation() && !this.cssClosingAnimation() && state === RdxPopoverState.CLOSED) ||
185
- (this.cssAnimation() && !this.cssOpeningAnimation() && state === RdxPopoverState.OPEN) ||
186
- // !this.cssAnimationStatus() ||
187
- (this.cssOpeningAnimation() &&
188
- state === RdxPopoverState.OPEN &&
189
- [RdxPopoverAnimationStatus.OPEN_STARTED].includes(this.cssAnimationStatus())) ||
190
- (this.cssClosingAnimation() &&
191
- state === RdxPopoverState.CLOSED &&
192
- [RdxPopoverAnimationStatus.CLOSED_STARTED].includes(this.cssAnimationStatus())));
193
- }
194
- /** @ignore */
195
- ifOpenOrCloseWithAnimations(cssAnimationStatus) {
196
- return (this.popoverContentAttributesComponent() &&
197
- this.cssAnimation() &&
198
- cssAnimationStatus &&
199
- ((this.cssOpeningAnimation() &&
200
- this.state() === RdxPopoverState.OPEN &&
201
- [RdxPopoverAnimationStatus.OPEN_ENDED].includes(cssAnimationStatus)) ||
202
- (this.cssClosingAnimation() &&
203
- this.state() === RdxPopoverState.CLOSED &&
204
- [RdxPopoverAnimationStatus.CLOSED_ENDED].includes(cssAnimationStatus))));
205
- }
206
- /** @ignore */
207
- openOrClose(state) {
208
- const isOpen = this.isOpen(state);
209
- isOpen ? this.openContent() : this.closeContent();
210
- }
211
- /** @ignore */
212
- emitOnOpenOrOnClosed(state) {
213
- this.isOpen(state)
214
- ? this.attachDetachEvent() === RdxPopoverAttachDetachEvent.ATTACH && this.emitOnOpen()
215
- : this.attachDetachEvent() === RdxPopoverAttachDetachEvent.DETACH && this.emitOnClosed();
216
- }
217
- /** @ignore */
218
- canEmitOnOpenOrOnClosed() {
219
- return (!this.cssAnimation() ||
220
- (!this.cssOpeningAnimation() && this.state() === RdxPopoverState.OPEN) ||
221
- (this.cssOpeningAnimation() &&
222
- this.state() === RdxPopoverState.OPEN &&
223
- this.cssAnimationStatus() === RdxPopoverAnimationStatus.OPEN_ENDED) ||
224
- (!this.cssClosingAnimation() && this.state() === RdxPopoverState.CLOSED) ||
225
- (this.cssClosingAnimation() &&
226
- this.state() === RdxPopoverState.CLOSED &&
227
- this.cssAnimationStatus() === RdxPopoverAnimationStatus.CLOSED_ENDED));
228
- }
229
- /** @ignore */
230
- onStateChangeEffect() {
231
- let isFirst = true;
232
- effect(() => {
233
- const state = this.state();
234
- untracked(() => {
235
- if (isFirst) {
236
- isFirst = false;
237
- return;
238
- }
239
- if (!this.ifOpenOrCloseWithoutAnimations(state)) {
240
- return;
241
- }
242
- this.openOrClose(state);
243
- });
244
- }, {});
245
- }
246
- /** @ignore */
247
- onCssAnimationStatusChangeChangeEffect() {
248
- let isFirst = true;
249
- effect(() => {
250
- const cssAnimationStatus = this.cssAnimationStatus();
251
- untracked(() => {
252
- if (isFirst) {
253
- isFirst = false;
254
- return;
255
- }
256
- if (!this.ifOpenOrCloseWithAnimations(cssAnimationStatus)) {
257
- return;
258
- }
259
- this.openOrClose(this.state());
260
- });
261
- });
262
- }
263
- /** @ignore */
264
- emitOpenOrClosedEventEffect() {
265
- let isFirst = true;
266
- effect(() => {
267
- this.attachDetachEvent();
268
- this.cssAnimationStatus();
269
- untracked(() => {
270
- if (isFirst) {
271
- isFirst = false;
272
- return;
273
- }
274
- const canEmitOpenClose = untracked(() => this.canEmitOnOpenOrOnClosed());
275
- if (!canEmitOpenClose) {
276
- return;
277
- }
278
- this.emitOnOpenOrOnClosed(this.state());
279
- });
280
- });
281
- }
282
- /** @ignore */
283
- onOpenChangeEffect() {
284
- effect(() => {
285
- const open = this.open();
286
- untracked(() => {
287
- this.setState(open ? RdxPopoverState.OPEN : RdxPopoverState.CLOSED);
288
- });
289
- });
290
- }
291
- /** @ignore */
292
- onIsFirstDefaultOpenChangeEffect() {
293
- const effectRef = effect(() => {
294
- const defaultOpen = this.defaultOpen();
295
- untracked(() => {
296
- if (!defaultOpen || this.open()) {
297
- effectRef.destroy();
298
- return;
299
- }
300
- this.handleOpen();
301
- });
302
- });
303
- }
304
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxPopoverRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
305
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.11", type: RdxPopoverRootDirective, isStandalone: true, selector: "[rdxPopoverRoot]", inputs: { anchor: { classPropertyName: "anchor", publicName: "anchor", isSignal: true, isRequired: false, transformFunction: null }, defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, externalControl: { classPropertyName: "externalControl", publicName: "externalControl", isSignal: true, isRequired: false, transformFunction: null }, cssAnimation: { classPropertyName: "cssAnimation", publicName: "cssAnimation", isSignal: true, isRequired: false, transformFunction: null }, cssOpeningAnimation: { classPropertyName: "cssOpeningAnimation", publicName: "cssOpeningAnimation", isSignal: true, isRequired: false, transformFunction: null }, cssClosingAnimation: { classPropertyName: "cssClosingAnimation", publicName: "cssClosingAnimation", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "popoverContentDirective", first: true, predicate: RdxPopoverContentDirective, descendants: true, isSignal: true }, { propertyName: "popoverTriggerDirective", first: true, predicate: RdxPopoverTriggerDirective, descendants: true, isSignal: true }, { propertyName: "popoverArrowDirective", first: true, predicate: RdxPopoverArrowToken, descendants: true, isSignal: true }, { propertyName: "popoverCloseDirective", first: true, predicate: RdxPopoverCloseToken, descendants: true, isSignal: true }, { propertyName: "popoverContentAttributesComponent", first: true, predicate: RdxPopoverContentAttributesToken, descendants: true, isSignal: true }, { propertyName: "internalPopoverAnchorDirective", first: true, predicate: RdxPopoverAnchorToken, descendants: true, isSignal: true }], exportAs: ["rdxPopoverRoot"], ngImport: i0 }); }
306
- }
307
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxPopoverRootDirective, decorators: [{
308
- type: Directive,
309
- args: [{
310
- selector: '[rdxPopoverRoot]',
311
- standalone: true,
312
- exportAs: 'rdxPopoverRoot'
313
- }]
314
- }], ctorParameters: () => [] });
315
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1yb290LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvcG9wb3Zlci9zcmMvcG9wb3Zlci1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDJCQUEyQixFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUxRyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFPZixNQUFNLE9BQU8sdUJBQXVCO0lBMkVoQztRQTFFQSxjQUFjO1FBQ0wsYUFBUSxHQUFHLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLGNBQWM7UUFDTCxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXRFOzs7V0FHRztRQUNNLFdBQU0s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ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIGFmdGVyTmV4dFJlbmRlcixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGNvbXB1dGVkLFxuICAgIGNvbnRlbnRDaGlsZCxcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBlZmZlY3QsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIHNpZ25hbCxcbiAgICB1bnRyYWNrZWQsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeFBvcG92ZXJBbmNob3JEaXJlY3RpdmUgfSBmcm9tICcuL3BvcG92ZXItYW5jaG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhQb3BvdmVyQW5jaG9yVG9rZW4gfSBmcm9tICcuL3BvcG92ZXItYW5jaG9yLnRva2VuJztcbmltcG9ydCB7IFJkeFBvcG92ZXJBcnJvd1Rva2VuIH0gZnJvbSAnLi9wb3BvdmVyLWFycm93LnRva2VuJztcbmltcG9ydCB7IFJkeFBvcG92ZXJDbG9zZVRva2VuIH0gZnJvbSAnLi9wb3BvdmVyLWNsb3NlLnRva2VuJztcbmltcG9ydCB7IFJkeFBvcG92ZXJDb250ZW50QXR0cmlidXRlc1Rva2VuIH0gZnJvbSAnLi9wb3BvdmVyLWNvbnRlbnQtYXR0cmlidXRlcy50b2tlbic7XG5pbXBvcnQgeyBSZHhQb3BvdmVyQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4vcG9wb3Zlci1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4vcG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhQb3BvdmVyQW5pbWF0aW9uU3RhdHVzLCBSZHhQb3BvdmVyQXR0YWNoRGV0YWNoRXZlbnQsIFJkeFBvcG92ZXJTdGF0ZSB9IGZyb20gJy4vcG9wb3Zlci50eXBlcyc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhQb3BvdmVyUm9vdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgZXhwb3J0QXM6ICdyZHhQb3BvdmVyUm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmR4UG9wb3ZlclJvb3REaXJlY3RpdmUge1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgdW5pcXVlSWQgPSBzaWduYWwoKytuZXh0SWQpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgbmFtZSA9IGNvbXB1dGVkKCgpID0+IGByZHgtcG9wb3Zlci1yb290LSR7dGhpcy51bmlxdWVJZCgpfWApO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBhbmNob3IgZGlyZWN0aXZlIHRoYXQgY29tZXMgZm9ybSBvdXRzaWRlIHRoZSBwb3BvdmVyIHJvb3RcbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBhbmNob3IgPSBpbnB1dDxSZHhQb3BvdmVyQW5jaG9yRGlyZWN0aXZlIHwgdW5kZWZpbmVkPih2b2lkIDApO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3BlbiBzdGF0ZSBvZiB0aGUgcG9wb3ZlciB3aGVuIGl0IGlzIGluaXRpYWxseSByZW5kZXJlZC4gVXNlIHdoZW4geW91IGRvIG5vdCBuZWVkIHRvIGNvbnRyb2wgaXRzIG9wZW4gc3RhdGUuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBkZWZhdWx0T3BlbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNvbnRyb2xsZWQgc3RhdGUgb2YgdGhlIHBvcG92ZXIuIGBvcGVuYCBpbnB1dCB0YWtlIHByZWNlZGVuY2Ugb2YgYGRlZmF1bHRPcGVuYCBpbnB1dC5cbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBvcGVuID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odm9pZCAwKTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byBjb250cm9sIHRoZSBzdGF0ZSBvZiB0aGUgcG9wb3ZlciBmcm9tIGV4dGVybmFsLiBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCBgb3BlbmAgaW5wdXQuXG4gICAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAgICovXG4gICAgcmVhZG9ubHkgZXh0ZXJuYWxDb250cm9sID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odm9pZCAwKTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byB0YWtlIGludG8gYWNjb3VudCBDU1Mgb3BlbmluZy9jbG9zaW5nIGFuaW1hdGlvbnMuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBjc3NBbmltYXRpb24gPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byB0YWtlIGludG8gYWNjb3VudCBDU1Mgb3BlbmluZyBhbmltYXRpb25zLiBgY3NzQW5pbWF0aW9uYCBpbnB1dCBtdXN0IGJlIHNldCB0byAndHJ1ZSdcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNzc09wZW5pbmdBbmltYXRpb24gPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byB0YWtlIGludG8gYWNjb3VudCBDU1MgY2xvc2luZyBhbmltYXRpb25zLiBgY3NzQW5pbWF0aW9uYCBpbnB1dCBtdXN0IGJlIHNldCB0byAndHJ1ZSdcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNzc0Nsb3NpbmdBbmltYXRpb24gPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgY3NzQW5pbWF0aW9uU3RhdHVzID0gc2lnbmFsPFJkeFBvcG92ZXJBbmltYXRpb25TdGF0dXMgfCBudWxsPihudWxsKTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgcG9wb3ZlckNvbnRlbnREaXJlY3RpdmUgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoUmR4UG9wb3ZlckNvbnRlbnREaXJlY3RpdmUpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgcG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoUmR4UG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgcG9wb3ZlckFycm93RGlyZWN0aXZlID0gY29udGVudENoaWxkKFJkeFBvcG92ZXJBcnJvd1Rva2VuKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IHBvcG92ZXJDbG9zZURpcmVjdGl2ZSA9IGNvbnRlbnRDaGlsZChSZHhQb3BvdmVyQ2xvc2VUb2tlbik7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBwb3BvdmVyQ29udGVudEF0dHJpYnV0ZXNDb21wb25lbnQgPSBjb250ZW50Q2hpbGQoUmR4UG9wb3ZlckNvbnRlbnRBdHRyaWJ1dGVzVG9rZW4pO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnRlcm5hbFBvcG92ZXJBbmNob3JEaXJlY3RpdmUgPSBjb250ZW50Q2hpbGQoUmR4UG9wb3ZlckFuY2hvclRva2VuKTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IHN0YXRlID0gc2lnbmFsKFJkeFBvcG92ZXJTdGF0ZS5DTE9TRUQpO1xuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBhdHRhY2hEZXRhY2hFdmVudCA9IHNpZ25hbChSZHhQb3BvdmVyQXR0YWNoRGV0YWNoRXZlbnQuREVUQUNIKTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBpc0ZpcnN0RGVmYXVsdE9wZW4gPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBwb3BvdmVyQW5jaG9yRGlyZWN0aXZlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbnRlcm5hbFBvcG92ZXJBbmNob3JEaXJlY3RpdmUoKSA/PyB0aGlzLmFuY2hvcigpKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm9uU3RhdGVDaGFuZ2VFZmZlY3QoKTtcbiAgICAgICAgdGhpcy5vbkNzc0FuaW1hdGlvblN0YXR1c0NoYW5nZUNoYW5nZUVmZmVjdCgpO1xuICAgICAgICB0aGlzLm9uT3BlbkNoYW5nZUVmZmVjdCgpO1xuICAgICAgICB0aGlzLm9uSXNGaXJzdERlZmF1bHRPcGVuQ2hhbmdlRWZmZWN0KCk7XG4gICAgICAgIHRoaXMub25BbmNob3JDaGFuZ2VFZmZlY3QoKTtcbiAgICAgICAgdGhpcy5lbWl0T3Blbk9yQ2xvc2VkRXZlbnRFZmZlY3QoKTtcbiAgICAgICAgYWZ0ZXJOZXh0UmVuZGVyKHtcbiAgICAgICAgICAgIHdyaXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGVmYXVsdE9wZW4oKSAmJiAhdGhpcy5vcGVuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZpcnN0RGVmYXVsdE9wZW4uc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBnZXRBbmltYXRpb25QYXJhbXNTbmFwc2hvdCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNzc0FuaW1hdGlvbjogdGhpcy5jc3NBbmltYXRpb24oKSxcbiAgICAgICAgICAgIGNzc09wZW5pbmdBbmltYXRpb246IHRoaXMuY3NzT3BlbmluZ0FuaW1hdGlvbigpLFxuICAgICAgICAgICAgY3NzQ2xvc2luZ0FuaW1hdGlvbjogdGhpcy5jc3NDbG9zaW5nQW5pbWF0aW9uKCksXG4gICAgICAgICAgICBjc3NBbmltYXRpb25TdGF0dXM6IHRoaXMuY3NzQW5pbWF0aW9uU3RhdHVzKCksXG4gICAgICAgICAgICBhdHRhY2hEZXRhY2hFdmVudDogdGhpcy5hdHRhY2hEZXRhY2hFdmVudCgpLFxuICAgICAgICAgICAgc3RhdGU6IHRoaXMuc3RhdGUoKSxcbiAgICAgICAgICAgIGNhbkVtaXRPbk9wZW5Pck9uQ2xvc2VkOiB0aGlzLmNhbkVtaXRPbk9wZW5Pck9uQ2xvc2VkKClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGNvbnRyb2xsZWRFeHRlcm5hbGx5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5leHRlcm5hbENvbnRyb2w7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBmaXJzdERlZmF1bHRPcGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0ZpcnN0RGVmYXVsdE9wZW4oKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGhhbmRsZU9wZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmV4dGVybmFsQ29udHJvbCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdGF0ZShSZHhQb3BvdmVyU3RhdGUuT1BFTik7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBoYW5kbGVDbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGaXJzdERlZmF1bHRPcGVuKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGaXJzdERlZmF1bHRPcGVuLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZXh0ZXJuYWxDb250cm9sKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKFJkeFBvcG92ZXJTdGF0ZS5DTE9TRUQpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgaGFuZGxlVG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5leHRlcm5hbENvbnRyb2woKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNPcGVuKCkgPyB0aGlzLmhhbmRsZUNsb3NlKCkgOiB0aGlzLmhhbmRsZU9wZW4oKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGlzT3BlbihzdGF0ZT86IFJkeFBvcG92ZXJTdGF0ZSkge1xuICAgICAgICByZXR1cm4gKHN0YXRlID8/IHRoaXMuc3RhdGUoKSkgPT09IFJkeFBvcG92ZXJTdGF0ZS5PUEVOO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBzZXRTdGF0ZShzdGF0ZSA9IFJkeFBvcG92ZXJTdGF0ZS5DTE9TRUQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHN0YXRlID09PSB0aGlzLnN0YXRlKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YXRlLnNldChzdGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9wZW5Db250ZW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBvcG92ZXJDb250ZW50RGlyZWN0aXZlKCkub3BlbigpO1xuICAgICAgICBpZiAoIXRoaXMuY3NzQW5pbWF0aW9uKCkgfHwgIXRoaXMuY3NzT3BlbmluZ0FuaW1hdGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLmNzc0FuaW1hdGlvblN0YXR1cy5zZXQobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgY2xvc2VDb250ZW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBvcG92ZXJDb250ZW50RGlyZWN0aXZlKCkuY2xvc2UoKTtcbiAgICAgICAgaWYgKCF0aGlzLmNzc0FuaW1hdGlvbigpIHx8ICF0aGlzLmNzc0Nsb3NpbmdBbmltYXRpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5jc3NBbmltYXRpb25TdGF0dXMuc2V0KG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIGVtaXRPbk9wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9wb3ZlckNvbnRlbnREaXJlY3RpdmUoKS5vbk9wZW4uZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBlbWl0T25DbG9zZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9wb3ZlckNvbnRlbnREaXJlY3RpdmUoKS5vbkNsb3NlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIGlmT3Blbk9yQ2xvc2VXaXRob3V0QW5pbWF0aW9ucyhzdGF0ZTogUmR4UG9wb3ZlclN0YXRlKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5wb3BvdmVyQ29udGVudEF0dHJpYnV0ZXNDb21wb25lbnQoKSB8fFxuICAgICAgICAgICAgIXRoaXMuY3NzQW5pbWF0aW9uKCkgfHxcbiAgICAgICAgICAgICh0aGlzLmNzc0FuaW1hdGlvbigpICYmICF0aGlzLmNzc0Nsb3NpbmdBbmltYXRpb24oKSAmJiBzdGF0ZSA9PT0gUmR4UG9wb3ZlclN0YXRlLkNMT1NFRCkgfHxcbiAgICAgICAgICAgICh0aGlzLmNzc0FuaW1hdGlvbigpICYmICF0aGlzLmNzc09wZW5pbmdBbmltYXRpb24oKSAmJiBzdGF0ZSA9PT0gUmR4UG9wb3ZlclN0YXRlLk9QRU4pIHx8XG4gICAgICAgICAgICAvLyAhdGhpcy5jc3NBbmltYXRpb25TdGF0dXMoKSB8fFxuICAgICAgICAgICAgKHRoaXMuY3NzT3BlbmluZ0FuaW1hdGlvbigpICYmXG4gICAgICAgICAgICAgICAgc3RhdGUgPT09IFJkeFBvcG92ZXJTdGF0ZS5PUEVOICYmXG4gICAgICAgICAgICAgICAgW1JkeFBvcG92ZXJBbmltYXRpb25TdGF0dXMuT1BFTl9TVEFSVEVEXS5pbmNsdWRlcyh0aGlzLmNzc0FuaW1hdGlvblN0YXR1cygpISkpIHx8XG4gICAgICAgICAgICAodGhpcy5jc3NDbG9zaW5nQW5pbWF0aW9uKCkgJiZcbiAgICAgICAgICAgICAgICBzdGF0ZSA9PT0gUmR4UG9wb3ZlclN0YXRlLkNMT1NFRCAmJlxuICAgICAgICAgICAgICAgIFtSZHhQb3BvdmVyQW5pbWF0aW9uU3RhdHVzLkNMT1NFRF9TVEFSVEVEXS5pbmNsdWRlcyh0aGlzLmNzc0FuaW1hdGlvblN0YXR1cygpISkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIGlmT3Blbk9yQ2xvc2VXaXRoQW5pbWF0aW9ucyhjc3NBbmltYXRpb25TdGF0dXM6IFJkeFBvcG92ZXJBbmltYXRpb25TdGF0dXMgfCBudWxsKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJDb250ZW50QXR0cmlidXRlc0NvbXBvbmVudCgpICYmXG4gICAgICAgICAgICB0aGlzLmNzc0FuaW1hdGlvbigpICYmXG4gICAgICAgICAgICBjc3NBbmltYXRpb25TdGF0dXMgJiZcbiAgICAgICAgICAgICgodGhpcy5jc3NPcGVuaW5nQW5pbWF0aW9uKCkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlKCkgPT09IFJkeFBvcG92ZXJTdGF0ZS5PUEVOICYmXG4gICAgICAgICAgICAgICAgW1JkeFBvcG92ZXJBbmltYXRpb25TdGF0dXMuT1BFTl9FTkRFRF0uaW5jbHVkZXMoY3NzQW5pbWF0aW9uU3RhdHVzKSkgfHxcbiAgICAgICAgICAgICAgICAodGhpcy5jc3NDbG9zaW5nQW5pbWF0aW9uKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSgpID09PSBSZHhQb3BvdmVyU3RhdGUuQ0xPU0VEICYmXG4gICAgICAgICAgICAgICAgICAgIFtSZHhQb3BvdmVyQW5pbWF0aW9uU3RhdHVzLkNMT1NFRF9FTkRFRF0uaW5jbHVkZXMoY3NzQW5pbWF0aW9uU3RhdHVzKSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9wZW5PckNsb3NlKHN0YXRlOiBSZHhQb3BvdmVyU3RhdGUpIHtcbiAgICAgICAgY29uc3QgaXNPcGVuID0gdGhpcy5pc09wZW4oc3RhdGUpO1xuICAgICAgICBpc09wZW4gPyB0aGlzLm9wZW5Db250ZW50KCkgOiB0aGlzLmNsb3NlQ29udGVudCgpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBlbWl0T25PcGVuT3JPbkNsb3NlZChzdGF0ZTogUmR4UG9wb3ZlclN0YXRlKSB7XG4gICAgICAgIHRoaXMuaXNPcGVuKHN0YXRlKVxuICAgICAgICAgICAgPyB0aGlzLmF0dGFjaERldGFjaEV2ZW50KCkgPT09IFJkeFBvcG92ZXJBdHRhY2hEZXRhY2hFdmVudC5BVFRBQ0ggJiYgdGhpcy5lbWl0T25PcGVuKClcbiAgICAgICAgICAgIDogdGhpcy5hdHRhY2hEZXRhY2hFdmVudCgpID09PSBSZHhQb3BvdmVyQXR0YWNoRGV0YWNoRXZlbnQuREVUQUNIICYmIHRoaXMuZW1pdE9uQ2xvc2VkKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIGNhbkVtaXRPbk9wZW5Pck9uQ2xvc2VkKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMuY3NzQW5pbWF0aW9uKCkgfHxcbiAgICAgICAgICAgICghdGhpcy5jc3NPcGVuaW5nQW5pbWF0aW9uKCkgJiYgdGhpcy5zdGF0ZSgpID09PSBSZHhQb3BvdmVyU3RhdGUuT1BFTikgfHxcbiAgICAgICAgICAgICh0aGlzLmNzc09wZW5pbmdBbmltYXRpb24oKSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUoKSA9PT0gUmR4UG9wb3ZlclN0YXRlLk9QRU4gJiZcbiAgICAgICAgICAgICAgICB0aGlzLmNzc0FuaW1hdGlvblN0YXR1cygpID09PSBSZHhQb3BvdmVyQW5pbWF0aW9uU3RhdHVzLk9QRU5fRU5ERUQpIHx8XG4gICAgICAgICAgICAoIXRoaXMuY3NzQ2xvc2luZ0FuaW1hdGlvbigpICYmIHRoaXMuc3RhdGUoKSA9PT0gUmR4UG9wb3ZlclN0YXRlLkNMT1NFRCkgfHxcbiAgICAgICAgICAgICh0aGlzLmNzc0Nsb3NpbmdBbmltYXRpb24oKSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUoKSA9PT0gUmR4UG9wb3ZlclN0YXRlLkNMT1NFRCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuY3NzQW5pbWF0aW9uU3RhdHVzKCkgPT09IFJkeFBvcG92ZXJBbmltYXRpb25TdGF0dXMuQ0xPU0VEX0VOREVEKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBvblN0YXRlQ2hhbmdlRWZmZWN0KCkge1xuICAgICAgICBsZXQgaXNGaXJzdCA9IHRydWU7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGUoKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pZk9wZW5PckNsb3NlV2l0aG91dEFuaW1hdGlvbnMoc3RhdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuT3JDbG9zZShzdGF0ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBvbkNzc0FuaW1hdGlvblN0YXR1c0NoYW5nZUNoYW5nZUVmZmVjdCgpIHtcbiAgICAgICAgbGV0IGlzRmlyc3QgPSB0cnVlO1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3NzQW5pbWF0aW9uU3RhdHVzID0gdGhpcy5jc3NBbmltYXRpb25TdGF0dXMoKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pZk9wZW5PckNsb3NlV2l0aEFuaW1hdGlvbnMoY3NzQW5pbWF0aW9uU3RhdHVzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk9yQ2xvc2UodGhpcy5zdGF0ZSgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgZW1pdE9wZW5PckNsb3NlZEV2ZW50RWZmZWN0KCkge1xuICAgICAgICBsZXQgaXNGaXJzdCA9IHRydWU7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmF0dGFjaERldGFjaEV2ZW50KCk7XG4gICAgICAgICAgICB0aGlzLmNzc0FuaW1hdGlvblN0YXR1cygpO1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNGaXJzdCkge1xuICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgY2FuRW1pdE9wZW5DbG9zZSA9IHVudHJhY2tlZCgoKSA9PiB0aGlzLmNhbkVtaXRPbk9wZW5Pck9uQ2xvc2VkKCkpO1xuICAgICAgICAgICAgICAgIGlmICghY2FuRW1pdE9wZW5DbG9zZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZW1pdE9uT3Blbk9yT25DbG9zZWQodGhpcy5zdGF0ZSgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgb25PcGVuQ2hhbmdlRWZmZWN0KCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb3BlbiA9IHRoaXMub3BlbigpO1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKG9wZW4gPyBSZHhQb3BvdmVyU3RhdGUuT1BFTiA6IFJkeFBvcG92ZXJTdGF0ZS5DTE9TRUQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBvbklzRmlyc3REZWZhdWx0T3BlbkNoYW5nZUVmZmVjdCgpIHtcbiAgICAgICAgY29uc3QgZWZmZWN0UmVmID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRPcGVuID0gdGhpcy5kZWZhdWx0T3BlbigpO1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWRlZmF1bHRPcGVuIHx8IHRoaXMub3BlbigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGVmZmVjdFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVPcGVuKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9uQW5jaG9yQ2hhbmdlRWZmZWN0ID0gKCkgPT4ge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYW5jaG9yID0gdGhpcy5hbmNob3IoKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFuY2hvcikge1xuICAgICAgICAgICAgICAgICAgICBhbmNob3Iuc2V0UG9wb3ZlclJvb3QodGhpcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG4iXX0=
@@ -1,7 +0,0 @@
1
- import { assertInInjectionContext, inject, isDevMode } from '@angular/core';
2
- import { RdxPopoverRootDirective } from './popover-root.directive';
3
- export function injectPopoverRoot(optional = false) {
4
- isDevMode() && assertInInjectionContext(injectPopoverRoot);
5
- return inject(RdxPopoverRootDirective, { optional });
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1yb290LmluamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvcG9wb3Zlci9zcmMvcG9wb3Zlci1yb290LmluamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUluRSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBUSxHQUFHLEtBQUs7SUFDOUMsU0FBUyxFQUFFLElBQUksd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzRCxPQUFPLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzc2VydEluSW5qZWN0aW9uQ29udGV4dCwgaW5qZWN0LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeFBvcG92ZXJSb290RGlyZWN0aXZlIH0gZnJvbSAnLi9wb3BvdmVyLXJvb3QuZGlyZWN0aXZlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBvcG92ZXJSb290KG9wdGlvbmFsPzogZmFsc2UpOiBSZHhQb3BvdmVyUm9vdERpcmVjdGl2ZTtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RQb3BvdmVyUm9vdChvcHRpb25hbDogdHJ1ZSk6IFJkeFBvcG92ZXJSb290RGlyZWN0aXZlIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RQb3BvdmVyUm9vdChvcHRpb25hbCA9IGZhbHNlKTogUmR4UG9wb3ZlclJvb3REaXJlY3RpdmUgfCBudWxsIHtcbiAgICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoaW5qZWN0UG9wb3ZlclJvb3QpO1xuICAgIHJldHVybiBpbmplY3QoUmR4UG9wb3ZlclJvb3REaXJlY3RpdmUsIHsgb3B0aW9uYWwgfSk7XG59XG4iXX0=
@@ -1,41 +0,0 @@
1
- import { CdkOverlayOrigin } from '@angular/cdk/overlay';
2
- import { computed, Directive, ElementRef, inject } from '@angular/core';
3
- import { injectPopoverRoot } from './popover-root.inject';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/cdk/overlay";
6
- export class RdxPopoverTriggerDirective {
7
- constructor() {
8
- /** @ignore */
9
- this.popoverRoot = injectPopoverRoot();
10
- /** @ignore */
11
- this.elementRef = inject(ElementRef);
12
- /** @ignore */
13
- this.overlayOrigin = inject(CdkOverlayOrigin);
14
- /** @ignore */
15
- this.name = computed(() => `rdx-popover-trigger-${this.popoverRoot.uniqueId()}`);
16
- }
17
- /** @ignore */
18
- click() {
19
- this.popoverRoot.handleToggle();
20
- }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxPopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
22
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxPopoverTriggerDirective, isStandalone: true, selector: "[rdxPopoverTrigger]", host: { attributes: { "type": "button" }, listeners: { "click": "click()" }, properties: { "attr.id": "name()", "attr.aria-haspopup": "\"dialog\"", "attr.aria-expanded": "popoverRoot.isOpen()", "attr.aria-controls": "popoverRoot.popoverContentDirective().name()", "attr.data-state": "popoverRoot.state()" } }, hostDirectives: [{ directive: i1.CdkOverlayOrigin }], ngImport: i0 }); }
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxPopoverTriggerDirective, decorators: [{
25
- type: Directive,
26
- args: [{
27
- selector: '[rdxPopoverTrigger]',
28
- standalone: true,
29
- hostDirectives: [CdkOverlayOrigin],
30
- host: {
31
- type: 'button',
32
- '[attr.id]': 'name()',
33
- '[attr.aria-haspopup]': '"dialog"',
34
- '[attr.aria-expanded]': 'popoverRoot.isOpen()',
35
- '[attr.aria-controls]': 'popoverRoot.popoverContentDirective().name()',
36
- '[attr.data-state]': 'popoverRoot.state()',
37
- '(click)': 'click()'
38
- }
39
- }]
40
- }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvcG9wb3Zlci9zcmMvcG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFnQjFELE1BQU0sT0FBTywwQkFBMEI7SUFkdkM7UUFlSSxjQUFjO1FBQ0ssZ0JBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3JELGNBQWM7UUFDTCxlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUNsRSxjQUFjO1FBQ0wsa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVsRCxjQUFjO1FBQ0wsU0FBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FNeEY7SUFKRyxjQUFjO0lBQ2QsS0FBSztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEMsQ0FBQzsrR0FkUSwwQkFBMEI7bUdBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFkdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsY0FBYyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2xDLElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsUUFBUTt3QkFDZCxXQUFXLEVBQUUsUUFBUTt3QkFDckIsc0JBQXNCLEVBQUUsVUFBVTt3QkFDbEMsc0JBQXNCLEVBQUUsc0JBQXNCO3dCQUM5QyxzQkFBc0IsRUFBRSw4Q0FBOEM7d0JBQ3RFLG1CQUFtQixFQUFFLHFCQUFxQjt3QkFDMUMsU0FBUyxFQUFFLFNBQVM7cUJBQ3ZCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrT3ZlcmxheU9yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0UG9wb3ZlclJvb3QgfSBmcm9tICcuL3BvcG92ZXItcm9vdC5pbmplY3QnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhQb3BvdmVyVHJpZ2dlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtDZGtPdmVybGF5T3JpZ2luXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ25hbWUoKScsXG4gICAgICAgICdbYXR0ci5hcmlhLWhhc3BvcHVwXSc6ICdcImRpYWxvZ1wiJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZXhwYW5kZWRdJzogJ3BvcG92ZXJSb290LmlzT3BlbigpJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtY29udHJvbHNdJzogJ3BvcG92ZXJSb290LnBvcG92ZXJDb250ZW50RGlyZWN0aXZlKCkubmFtZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc3RhdGVdJzogJ3BvcG92ZXJSb290LnN0YXRlKCknLFxuICAgICAgICAnKGNsaWNrKSc6ICdjbGljaygpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4UG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUge1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBvcG92ZXJSb290ID0gaW5qZWN0UG9wb3ZlclJvb3QoKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgb3ZlcmxheU9yaWdpbiA9IGluamVjdChDZGtPdmVybGF5T3JpZ2luKTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgbmFtZSA9IGNvbXB1dGVkKCgpID0+IGByZHgtcG9wb3Zlci10cmlnZ2VyLSR7dGhpcy5wb3BvdmVyUm9vdC51bmlxdWVJZCgpfWApO1xuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBjbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wb3BvdmVyUm9vdC5oYW5kbGVUb2dnbGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,90 +0,0 @@
1
- import { RdxPopoverAlign, RdxPopoverSide } from './popover.types';
2
- export const POPOVER_POSITIONS = {
3
- [RdxPopoverSide.Top]: {
4
- [RdxPopoverAlign.Center]: {
5
- originX: 'center',
6
- originY: 'top',
7
- overlayX: 'center',
8
- overlayY: 'bottom'
9
- },
10
- [RdxPopoverAlign.Start]: {
11
- originX: 'start',
12
- originY: 'top',
13
- overlayX: 'start',
14
- overlayY: 'bottom'
15
- },
16
- [RdxPopoverAlign.End]: {
17
- originX: 'end',
18
- originY: 'top',
19
- overlayX: 'end',
20
- overlayY: 'bottom'
21
- }
22
- },
23
- [RdxPopoverSide.Right]: {
24
- [RdxPopoverAlign.Center]: {
25
- originX: 'end',
26
- originY: 'center',
27
- overlayX: 'start',
28
- overlayY: 'center'
29
- },
30
- [RdxPopoverAlign.Start]: {
31
- originX: 'end',
32
- originY: 'top',
33
- overlayX: 'start',
34
- overlayY: 'top'
35
- },
36
- [RdxPopoverAlign.End]: {
37
- originX: 'end',
38
- originY: 'bottom',
39
- overlayX: 'start',
40
- overlayY: 'bottom'
41
- }
42
- },
43
- [RdxPopoverSide.Bottom]: {
44
- [RdxPopoverAlign.Center]: {
45
- originX: 'center',
46
- originY: 'bottom',
47
- overlayX: 'center',
48
- overlayY: 'top'
49
- },
50
- [RdxPopoverAlign.Start]: {
51
- originX: 'start',
52
- originY: 'bottom',
53
- overlayX: 'start',
54
- overlayY: 'top'
55
- },
56
- [RdxPopoverAlign.End]: {
57
- originX: 'end',
58
- originY: 'bottom',
59
- overlayX: 'end',
60
- overlayY: 'top'
61
- }
62
- },
63
- [RdxPopoverSide.Left]: {
64
- [RdxPopoverAlign.Center]: {
65
- originX: 'start',
66
- originY: 'center',
67
- overlayX: 'end',
68
- overlayY: 'center'
69
- },
70
- [RdxPopoverAlign.Start]: {
71
- originX: 'start',
72
- originY: 'top',
73
- overlayX: 'end',
74
- overlayY: 'top'
75
- },
76
- [RdxPopoverAlign.End]: {
77
- originX: 'start',
78
- originY: 'bottom',
79
- overlayX: 'end',
80
- overlayY: 'bottom'
81
- }
82
- }
83
- };
84
- export const DEFAULTS = {
85
- offsets: {
86
- side: 10,
87
- align: 0
88
- }
89
- };
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3BvcG92ZXIvc3JjL3BvcG92ZXIuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQXVCLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUF3QjtJQUNsRCxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNsQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QixPQUFPLEVBQUUsUUFBUTtZQUNqQixPQUFPLEVBQUUsS0FBSztZQUNkLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFFBQVEsRUFBRSxRQUFRO1NBQ3JCO1FBQ0QsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckIsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsT0FBTztZQUNqQixRQUFRLEVBQUUsUUFBUTtTQUNyQjtRQUNELENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLE9BQU8sRUFBRSxLQUFLO1lBQ2QsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxRQUFRO1NBQ3JCO0tBQ0o7SUFDRCxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNwQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QixPQUFPLEVBQUUsS0FBSztZQUNkLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFFBQVEsRUFBRSxRQUFRO1NBQ3JCO1FBQ0QsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckIsT0FBTyxFQUFFLEtBQUs7WUFDZCxPQUFPLEVBQUUsS0FBSztZQUNkLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFFBQVEsRUFBRSxLQUFLO1NBQ2xCO1FBQ0QsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkIsT0FBTyxFQUFFLEtBQUs7WUFDZCxPQUFPLEVBQUUsUUFBUTtZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixRQUFRLEVBQUUsUUFBUTtTQUNyQjtLQUNKO0lBQ0QsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDckIsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEIsT0FBTyxFQUFFLFFBQVE7WUFDakIsT0FBTyxFQUFFLFFBQVE7WUFDakIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsUUFBUSxFQUFFLEtBQUs7U0FDbEI7UUFDRCxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNyQixPQUFPLEVBQUUsT0FBTztZQUNoQixPQUFPLEVBQUUsUUFBUTtZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixRQUFRLEVBQUUsS0FBSztTQUNsQjtRQUNELENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLE9BQU8sRUFBRSxLQUFLO1lBQ2QsT0FBTyxFQUFFLFFBQVE7WUFDakIsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsS0FBSztTQUNsQjtLQUNKO0lBQ0QsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDbkIsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLFFBQVE7WUFDakIsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsUUFBUTtTQUNyQjtRQUNELENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsS0FBSztTQUNsQjtRQUNELENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsUUFBUSxFQUFFLFFBQVE7U0FDckI7S0FDSjtDQUNLLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7SUFDcEIsT0FBTyxFQUFFO1FBQ0wsSUFBSSxFQUFFLEVBQUU7UUFDUixLQUFLLEVBQUUsQ0FBQztLQUNYO0NBQ0ssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJkeFBvcG92ZXJBbGlnbiwgUmR4UG9wb3ZlclBvc2l0aW9ucywgUmR4UG9wb3ZlclNpZGUgfSBmcm9tICcuL3BvcG92ZXIudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgUE9QT1ZFUl9QT1NJVElPTlM6IFJkeFBvcG92ZXJQb3NpdGlvbnMgPSB7XG4gICAgW1JkeFBvcG92ZXJTaWRlLlRvcF06IHtcbiAgICAgICAgW1JkeFBvcG92ZXJBbGlnbi5DZW50ZXJdOiB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nXG4gICAgICAgIH0sXG4gICAgICAgIFtSZHhQb3BvdmVyQWxpZ24uU3RhcnRdOiB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJ1xuICAgICAgICB9LFxuICAgICAgICBbUmR4UG9wb3ZlckFsaWduLkVuZF06IHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbSdcbiAgICAgICAgfVxuICAgIH0sXG4gICAgW1JkeFBvcG92ZXJTaWRlLlJpZ2h0XToge1xuICAgICAgICBbUmR4UG9wb3ZlckFsaWduLkNlbnRlcl06IHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnY2VudGVyJ1xuICAgICAgICB9LFxuICAgICAgICBbUmR4UG9wb3ZlckFsaWduLlN0YXJ0XToge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnXG4gICAgICAgIH0sXG4gICAgICAgIFtSZHhQb3BvdmVyQWxpZ24uRW5kXToge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFtSZHhQb3BvdmVyU2lkZS5Cb3R0b21dOiB7XG4gICAgICAgIFtSZHhQb3BvdmVyQWxpZ24uQ2VudGVyXToge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJ1xuICAgICAgICB9LFxuICAgICAgICBbUmR4UG9wb3ZlckFsaWduLlN0YXJ0XToge1xuICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICAgICAgfSxcbiAgICAgICAgW1JkeFBvcG92ZXJBbGlnbi5FbmRdOiB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFtSZHhQb3BvdmVyU2lkZS5MZWZ0XToge1xuICAgICAgICBbUmR4UG9wb3ZlckFsaWduLkNlbnRlcl06IHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnY2VudGVyJ1xuICAgICAgICB9LFxuICAgICAgICBbUmR4UG9wb3ZlckFsaWduLlN0YXJ0XToge1xuICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnXG4gICAgICAgIH0sXG4gICAgICAgIFtSZHhQb3BvdmVyQWxpZ24uRW5kXToge1xuICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nXG4gICAgICAgIH1cbiAgICB9XG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVFMgPSB7XG4gICAgb2Zmc2V0czoge1xuICAgICAgICBzaWRlOiAxMCxcbiAgICAgICAgYWxpZ246IDBcbiAgICB9XG59IGFzIGNvbnN0O1xuIl19
@@ -1,31 +0,0 @@
1
- export var RdxPopoverSide;
2
- (function (RdxPopoverSide) {
3
- RdxPopoverSide["Top"] = "top";
4
- RdxPopoverSide["Right"] = "right";
5
- RdxPopoverSide["Bottom"] = "bottom";
6
- RdxPopoverSide["Left"] = "left";
7
- })(RdxPopoverSide || (RdxPopoverSide = {}));
8
- export var RdxPopoverAlign;
9
- (function (RdxPopoverAlign) {
10
- RdxPopoverAlign["Start"] = "start";
11
- RdxPopoverAlign["Center"] = "center";
12
- RdxPopoverAlign["End"] = "end";
13
- })(RdxPopoverAlign || (RdxPopoverAlign = {}));
14
- export var RdxPopoverState;
15
- (function (RdxPopoverState) {
16
- RdxPopoverState["OPEN"] = "open";
17
- RdxPopoverState["CLOSED"] = "closed";
18
- })(RdxPopoverState || (RdxPopoverState = {}));
19
- export var RdxPopoverAttachDetachEvent;
20
- (function (RdxPopoverAttachDetachEvent) {
21
- RdxPopoverAttachDetachEvent["ATTACH"] = "attach";
22
- RdxPopoverAttachDetachEvent["DETACH"] = "detach";
23
- })(RdxPopoverAttachDetachEvent || (RdxPopoverAttachDetachEvent = {}));
24
- export var RdxPopoverAnimationStatus;
25
- (function (RdxPopoverAnimationStatus) {
26
- RdxPopoverAnimationStatus["OPEN_STARTED"] = "open_started";
27
- RdxPopoverAnimationStatus["OPEN_ENDED"] = "open_ended";
28
- RdxPopoverAnimationStatus["CLOSED_STARTED"] = "closed_started";
29
- RdxPopoverAnimationStatus["CLOSED_ENDED"] = "closed_ended";
30
- })(RdxPopoverAnimationStatus || (RdxPopoverAnimationStatus = {}));
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvcG9wb3Zlci9zcmMvcG9wb3Zlci50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3RCLDZCQUFXLENBQUE7SUFDWCxpQ0FBZSxDQUFBO0lBQ2YsbUNBQWlCLENBQUE7SUFDakIsK0JBQWEsQ0FBQTtBQUNqQixDQUFDLEVBTFcsY0FBYyxLQUFkLGNBQWMsUUFLekI7QUFFRCxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3ZCLGtDQUFlLENBQUE7SUFDZixvQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBVyxDQUFBO0FBQ2YsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN2QixnQ0FBYSxDQUFBO0lBQ2Isb0NBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCO0FBRUQsTUFBTSxDQUFOLElBQVksMkJBR1g7QUFIRCxXQUFZLDJCQUEyQjtJQUNuQyxnREFBaUIsQ0FBQTtJQUNqQixnREFBaUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQUd0QztBQUVELE1BQU0sQ0FBTixJQUFZLHlCQUtYO0FBTEQsV0FBWSx5QkFBeUI7SUFDakMsMERBQTZCLENBQUE7SUFDN0Isc0RBQXlCLENBQUE7SUFDekIsOERBQWlDLENBQUE7SUFDakMsMERBQTZCLENBQUE7QUFDakMsQ0FBQyxFQUxXLHlCQUF5QixLQUF6Qix5QkFBeUIsUUFLcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0aW9uUG9zaXRpb25QYWlyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5leHBvcnQgZW51bSBSZHhQb3BvdmVyU2lkZSB7XG4gICAgVG9wID0gJ3RvcCcsXG4gICAgUmlnaHQgPSAncmlnaHQnLFxuICAgIEJvdHRvbSA9ICdib3R0b20nLFxuICAgIExlZnQgPSAnbGVmdCdcbn1cblxuZXhwb3J0IGVudW0gUmR4UG9wb3ZlckFsaWduIHtcbiAgICBTdGFydCA9ICdzdGFydCcsXG4gICAgQ2VudGVyID0gJ2NlbnRlcicsXG4gICAgRW5kID0gJ2VuZCdcbn1cblxuZXhwb3J0IGVudW0gUmR4UG9wb3ZlclN0YXRlIHtcbiAgICBPUEVOID0gJ29wZW4nLFxuICAgIENMT1NFRCA9ICdjbG9zZWQnXG59XG5cbmV4cG9ydCBlbnVtIFJkeFBvcG92ZXJBdHRhY2hEZXRhY2hFdmVudCB7XG4gICAgQVRUQUNIID0gJ2F0dGFjaCcsXG4gICAgREVUQUNIID0gJ2RldGFjaCdcbn1cblxuZXhwb3J0IGVudW0gUmR4UG9wb3ZlckFuaW1hdGlvblN0YXR1cyB7XG4gICAgT1BFTl9TVEFSVEVEID0gJ29wZW5fc3RhcnRlZCcsXG4gICAgT1BFTl9FTkRFRCA9ICdvcGVuX2VuZGVkJyxcbiAgICBDTE9TRURfU1RBUlRFRCA9ICdjbG9zZWRfc3RhcnRlZCcsXG4gICAgQ0xPU0VEX0VOREVEID0gJ2Nsb3NlZF9lbmRlZCdcbn1cblxuZXhwb3J0IHR5cGUgUmR4U2lkZUFuZEFsaWduID0geyBzaWRlOiBSZHhQb3BvdmVyU2lkZTsgYWxpZ246IFJkeFBvcG92ZXJBbGlnbiB9O1xuZXhwb3J0IHR5cGUgUmR4U2lkZUFuZEFsaWduT2Zmc2V0cyA9IHsgc2lkZU9mZnNldDogbnVtYmVyOyBhbGlnbk9mZnNldDogbnVtYmVyIH07XG5cbmV4cG9ydCB0eXBlIFJkeFBvcG92ZXJQb3NpdGlvbnMgPSB7XG4gICAgW2tleSBpbiBSZHhQb3BvdmVyU2lkZV06IHtcbiAgICAgICAgW2tleSBpbiBSZHhQb3BvdmVyQWxpZ25dOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyO1xuICAgIH07XG59O1xuXG5leHBvcnQgdHlwZSBSZHhBbGxQb3NzaWJsZUNvbm5lY3RlZFBvc2l0aW9ucyA9IFJlYWRvbmx5TWFwPFxuICAgIGAke1JkeFBvcG92ZXJTaWRlfXwke1JkeFBvcG92ZXJBbGlnbn1gLFxuICAgIENvbm5lY3Rpb25Qb3NpdGlvblBhaXJcbj47XG5cbmV4cG9ydCB0eXBlIFJkeEFycm93UG9zaXRpb25QYXJhbXMgPSB7XG4gICAgdG9wOiBzdHJpbmc7XG4gICAgbGVmdDogc3RyaW5nO1xuICAgIHRyYW5zZm9ybTogc3RyaW5nO1xufTtcbiJdfQ==