@taiga-ui/core 4.52.0-canary.216e347 → 4.52.0-canary.24b31eb

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 (447) hide show
  1. package/classes/driver.d.ts +1 -1
  2. package/components/alert/alert.interfaces.d.ts +1 -1
  3. package/components/button/button.directive.d.ts +2 -3
  4. package/components/button/button.options.d.ts +1 -1
  5. package/components/calendar/calendar-sheet.component.d.ts +1 -6
  6. package/components/cell/cell.directive.d.ts +9 -0
  7. package/components/cell/cell.options.d.ts +6 -0
  8. package/components/cell/index.d.ts +2 -0
  9. package/components/dialog/active-zone-adapter.directive.d.ts +11 -0
  10. package/components/dialog/dialog.component.d.ts +6 -11
  11. package/components/dialog/dialog.directive.d.ts +1 -1
  12. package/components/dialog/dialog.factory.d.ts +1 -1
  13. package/components/dialog/dialog.options.d.ts +26 -0
  14. package/components/dialog/{dialog-close.service.d.ts → dialog.providers.d.ts} +4 -1
  15. package/components/dialog/dialog.service.d.ts +1 -1
  16. package/components/dialog/index.d.ts +2 -3
  17. package/components/error/error.component.d.ts +5 -7
  18. package/components/error/error.d.ts +4 -0
  19. package/components/error/error.directive.d.ts +19 -0
  20. package/components/error/error.pipe.d.ts +10 -0
  21. package/components/error/index.d.ts +3 -0
  22. package/components/expand/expand.component.d.ts +9 -28
  23. package/components/expand/index.d.ts +0 -2
  24. package/components/header/header.directive.d.ts +17 -0
  25. package/components/header/index.d.ts +1 -0
  26. package/components/icon/icon.component.d.ts +6 -11
  27. package/components/index.d.ts +2 -1
  28. package/components/notification/notification.options.d.ts +1 -1
  29. package/components/root/root.component.d.ts +3 -5
  30. package/components/scrollbar/scrollbar.options.d.ts +1 -1
  31. package/components/textfield/textfield-content.directive.d.ts +3 -2
  32. package/components/textfield/textfield-icon.d.ts +3 -3
  33. package/components/textfield/textfield.component.d.ts +7 -6
  34. package/components/textfield/textfield.directive.d.ts +1 -1
  35. package/directives/appearance/appearance.directive.d.ts +5 -13
  36. package/directives/hint/hint-options.directive.d.ts +3 -3
  37. package/directives/hint/hint.component.d.ts +6 -8
  38. package/directives/hint/hint.directive.d.ts +1 -1
  39. package/directives/icons/icons.bindings.d.ts +5 -0
  40. package/directives/icons/icons.directive.d.ts +8 -16
  41. package/directives/icons/index.d.ts +1 -0
  42. package/directives/index.d.ts +0 -1
  43. package/directives/title/title.directive.d.ts +2 -3
  44. package/fesm2022/taiga-ui-core-animations.mjs.map +1 -1
  45. package/fesm2022/taiga-ui-core-classes.mjs +3 -3
  46. package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-core-components-alert.mjs +18 -18
  48. package/fesm2022/taiga-ui-core-components-alert.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-core-components-button.mjs +13 -21
  50. package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
  51. package/fesm2022/taiga-ui-core-components-calendar.mjs +21 -24
  52. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  53. package/fesm2022/taiga-ui-core-components-cell.mjs +45 -0
  54. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -0
  55. package/fesm2022/taiga-ui-core-components-data-list.mjs +31 -33
  56. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-core-components-dialog.mjs +103 -84
  58. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-core-components-error.mjs +107 -24
  60. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  61. package/fesm2022/taiga-ui-core-components-expand.mjs +34 -132
  62. package/fesm2022/taiga-ui-core-components-expand.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-core-components-header.mjs +42 -0
  64. package/fesm2022/taiga-ui-core-components-header.mjs.map +1 -0
  65. package/fesm2022/taiga-ui-core-components-icon.mjs +22 -39
  66. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-core-components-label.mjs +10 -13
  68. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-core-components-link.mjs +10 -13
  70. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-core-components-loader.mjs +6 -7
  72. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-core-components-notification.mjs +17 -31
  74. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-core-components-root.mjs +20 -41
  76. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +28 -28
  78. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-core-components-spin-button.mjs +7 -7
  80. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-core-components-textfield.mjs +73 -70
  82. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-core-components.mjs +2 -1
  84. package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-core-directives-appearance.mjs +26 -63
  86. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-core-directives-date-format.mjs +5 -5
  88. package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +71 -71
  90. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-core-directives-group.mjs +10 -13
  92. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-core-directives-hint.mjs +78 -89
  94. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-core-directives-icons.mjs +35 -45
  96. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +11 -11
  98. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-core-directives-number-format.mjs +5 -5
  100. package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-core-directives-popup.mjs +10 -10
  102. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-core-directives-title.mjs +13 -19
  104. package/fesm2022/taiga-ui-core-directives-title.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-core-directives.mjs +0 -1
  106. package/fesm2022/taiga-ui-core-directives.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +3 -3
  108. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +1 -1
  109. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +3 -3
  110. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +1 -1
  111. package/fesm2022/taiga-ui-core-pipes-flag.mjs +3 -3
  112. package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +1 -1
  113. package/fesm2022/taiga-ui-core-pipes-format-date.mjs +3 -3
  114. package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +1 -1
  115. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +3 -3
  116. package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
  117. package/fesm2022/taiga-ui-core-pipes-initials.mjs +3 -3
  118. package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +1 -1
  119. package/fesm2022/taiga-ui-core-pipes-month.mjs +3 -3
  120. package/fesm2022/taiga-ui-core-pipes-month.mjs.map +1 -1
  121. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +3 -3
  122. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +1 -1
  123. package/fesm2022/taiga-ui-core-pipes.mjs +0 -1
  124. package/fesm2022/taiga-ui-core-pipes.mjs.map +1 -1
  125. package/fesm2022/taiga-ui-core-services.mjs +18 -18
  126. package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
  127. package/fesm2022/taiga-ui-core-tokens.mjs +23 -31
  128. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  129. package/fesm2022/taiga-ui-core-utils-dom.mjs.map +1 -1
  130. package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
  131. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +49 -3
  132. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  133. package/package.json +17 -121
  134. package/pipes/index.d.ts +0 -1
  135. package/styles/components/appearance.less +6 -0
  136. package/styles/components/button.less +0 -2
  137. package/styles/components/icon.less +32 -22
  138. package/styles/components/icons.less +16 -12
  139. package/styles/components/link.less +1 -3
  140. package/styles/mixins/mixins.less +1 -2
  141. package/styles/mixins/mixins.scss +1 -2
  142. package/styles/mixins/slider.less +5 -10
  143. package/styles/theme/appearance/outline.less +1 -2
  144. package/styles/theme/appearance/textfield.less +1 -2
  145. package/tokens/icon-resolver.d.ts +1 -5
  146. package/tokens/index.d.ts +1 -0
  147. package/tokens/validation-errors.d.ts +4 -0
  148. package/utils/miscellaneous/index.d.ts +1 -0
  149. package/utils/miscellaneous/provide-taiga.d.ts +13 -0
  150. package/components/dialog/dialog.interfaces.d.ts +0 -34
  151. package/components/dialog/dialog.tokens.d.ts +0 -15
  152. package/components/expand/expand-content.directive.d.ts +0 -8
  153. package/components/expand/expand.d.ts +0 -6
  154. package/components/fullscreen/fullscreen.component.d.ts +0 -14
  155. package/components/fullscreen/index.d.ts +0 -1
  156. package/directives/surface/index.d.ts +0 -1
  157. package/directives/surface/surface.directive.d.ts +0 -8
  158. package/esm2022/animations/animations.mjs +0 -363
  159. package/esm2022/animations/index.mjs +0 -2
  160. package/esm2022/animations/taiga-ui-core-animations.mjs +0 -5
  161. package/esm2022/classes/accessors.mjs +0 -31
  162. package/esm2022/classes/driver.mjs +0 -36
  163. package/esm2022/classes/index.mjs +0 -4
  164. package/esm2022/classes/taiga-ui-core-classes.mjs +0 -5
  165. package/esm2022/classes/vehicle.mjs +0 -7
  166. package/esm2022/components/alert/alert.component.mjs +0 -43
  167. package/esm2022/components/alert/alert.directive.mjs +0 -21
  168. package/esm2022/components/alert/alert.interfaces.mjs +0 -2
  169. package/esm2022/components/alert/alert.service.mjs +0 -18
  170. package/esm2022/components/alert/alert.tokens.mjs +0 -51
  171. package/esm2022/components/alert/alerts.component.mjs +0 -33
  172. package/esm2022/components/alert/index.mjs +0 -6
  173. package/esm2022/components/alert/taiga-ui-core-components-alert.mjs +0 -5
  174. package/esm2022/components/button/button.directive.mjs +0 -43
  175. package/esm2022/components/button/button.options.mjs +0 -7
  176. package/esm2022/components/button/index.mjs +0 -3
  177. package/esm2022/components/button/taiga-ui-core-components-button.mjs +0 -5
  178. package/esm2022/components/calendar/calendar-sheet.component.mjs +0 -168
  179. package/esm2022/components/calendar/calendar-sheet.options.mjs +0 -12
  180. package/esm2022/components/calendar/calendar-spin.component.mjs +0 -53
  181. package/esm2022/components/calendar/calendar-year.component.mjs +0 -128
  182. package/esm2022/components/calendar/calendar.component.mjs +0 -147
  183. package/esm2022/components/calendar/index.mjs +0 -6
  184. package/esm2022/components/calendar/taiga-ui-core-components-calendar.mjs +0 -5
  185. package/esm2022/components/data-list/data-list.component.mjs +0 -139
  186. package/esm2022/components/data-list/data-list.directive.mjs +0 -19
  187. package/esm2022/components/data-list/data-list.mjs +0 -14
  188. package/esm2022/components/data-list/data-list.tokens.mjs +0 -18
  189. package/esm2022/components/data-list/index.mjs +0 -9
  190. package/esm2022/components/data-list/opt-group.directive.mjs +0 -21
  191. package/esm2022/components/data-list/option/option-content.mjs +0 -36
  192. package/esm2022/components/data-list/option/option-legacy.component.mjs +0 -90
  193. package/esm2022/components/data-list/option/option.directive.mjs +0 -109
  194. package/esm2022/components/data-list/taiga-ui-core-components-data-list.mjs +0 -5
  195. package/esm2022/components/dialog/dialog-close.service.mjs +0 -41
  196. package/esm2022/components/dialog/dialog.component.mjs +0 -63
  197. package/esm2022/components/dialog/dialog.directive.mjs +0 -21
  198. package/esm2022/components/dialog/dialog.factory.mjs +0 -15
  199. package/esm2022/components/dialog/dialog.interfaces.mjs +0 -2
  200. package/esm2022/components/dialog/dialog.service.mjs +0 -18
  201. package/esm2022/components/dialog/dialog.tokens.mjs +0 -33
  202. package/esm2022/components/dialog/dialogs.component.mjs +0 -29
  203. package/esm2022/components/dialog/index.mjs +0 -8
  204. package/esm2022/components/dialog/taiga-ui-core-components-dialog.mjs +0 -5
  205. package/esm2022/components/error/error.component.mjs +0 -34
  206. package/esm2022/components/error/index.mjs +0 -2
  207. package/esm2022/components/error/taiga-ui-core-components-error.mjs +0 -5
  208. package/esm2022/components/expand/expand-content.directive.mjs +0 -18
  209. package/esm2022/components/expand/expand.component.mjs +0 -124
  210. package/esm2022/components/expand/expand.mjs +0 -7
  211. package/esm2022/components/expand/index.mjs +0 -4
  212. package/esm2022/components/expand/taiga-ui-core-components-expand.mjs +0 -5
  213. package/esm2022/components/fullscreen/fullscreen.component.mjs +0 -67
  214. package/esm2022/components/fullscreen/index.mjs +0 -2
  215. package/esm2022/components/fullscreen/taiga-ui-core-components-fullscreen.mjs +0 -5
  216. package/esm2022/components/icon/icon.component.mjs +0 -44
  217. package/esm2022/components/icon/icon.pipe.mjs +0 -19
  218. package/esm2022/components/icon/index.mjs +0 -3
  219. package/esm2022/components/icon/taiga-ui-core-components-icon.mjs +0 -5
  220. package/esm2022/components/index.mjs +0 -18
  221. package/esm2022/components/label/index.mjs +0 -2
  222. package/esm2022/components/label/label.directive.mjs +0 -41
  223. package/esm2022/components/label/taiga-ui-core-components-label.mjs +0 -5
  224. package/esm2022/components/link/index.mjs +0 -3
  225. package/esm2022/components/link/link.directive.mjs +0 -47
  226. package/esm2022/components/link/link.options.mjs +0 -13
  227. package/esm2022/components/link/taiga-ui-core-components-link.mjs +0 -5
  228. package/esm2022/components/loader/index.mjs +0 -3
  229. package/esm2022/components/loader/loader.component.mjs +0 -46
  230. package/esm2022/components/loader/loader.options.mjs +0 -18
  231. package/esm2022/components/loader/taiga-ui-core-components-loader.mjs +0 -5
  232. package/esm2022/components/notification/index.mjs +0 -3
  233. package/esm2022/components/notification/notification.directive.mjs +0 -81
  234. package/esm2022/components/notification/notification.options.mjs +0 -23
  235. package/esm2022/components/notification/taiga-ui-core-components-notification.mjs +0 -5
  236. package/esm2022/components/root/index.mjs +0 -2
  237. package/esm2022/components/root/root.component.mjs +0 -85
  238. package/esm2022/components/root/taiga-ui-core-components-root.mjs +0 -5
  239. package/esm2022/components/scrollbar/index.mjs +0 -9
  240. package/esm2022/components/scrollbar/scroll-controls.component.mjs +0 -32
  241. package/esm2022/components/scrollbar/scroll-into-view.directive.mjs +0 -43
  242. package/esm2022/components/scrollbar/scroll-ref.directive.mjs +0 -19
  243. package/esm2022/components/scrollbar/scrollable.directive.mjs +0 -26
  244. package/esm2022/components/scrollbar/scrollbar.component.mjs +0 -72
  245. package/esm2022/components/scrollbar/scrollbar.directive.mjs +0 -93
  246. package/esm2022/components/scrollbar/scrollbar.options.mjs +0 -6
  247. package/esm2022/components/scrollbar/scrollbar.service.mjs +0 -46
  248. package/esm2022/components/scrollbar/taiga-ui-core-components-scrollbar.mjs +0 -5
  249. package/esm2022/components/spin-button/index.mjs +0 -2
  250. package/esm2022/components/spin-button/spin-button.component.mjs +0 -51
  251. package/esm2022/components/spin-button/taiga-ui-core-components-spin-button.mjs +0 -5
  252. package/esm2022/components/taiga-ui-core-components.mjs +0 -5
  253. package/esm2022/components/textfield/index.mjs +0 -16
  254. package/esm2022/components/textfield/select-like.directive.mjs +0 -42
  255. package/esm2022/components/textfield/select.directive.mjs +0 -64
  256. package/esm2022/components/textfield/taiga-ui-core-components-textfield.mjs +0 -5
  257. package/esm2022/components/textfield/textfield-accessor.mjs +0 -7
  258. package/esm2022/components/textfield/textfield-auxiliary.mjs +0 -7
  259. package/esm2022/components/textfield/textfield-content.directive.mjs +0 -22
  260. package/esm2022/components/textfield/textfield-dropdown.directive.mjs +0 -43
  261. package/esm2022/components/textfield/textfield-icon.mjs +0 -10
  262. package/esm2022/components/textfield/textfield-multi/textfield-item.component.mjs +0 -34
  263. package/esm2022/components/textfield/textfield-multi/textfield-multi.component.mjs +0 -137
  264. package/esm2022/components/textfield/textfield.component.mjs +0 -180
  265. package/esm2022/components/textfield/textfield.directive.mjs +0 -134
  266. package/esm2022/components/textfield/textfield.mjs +0 -19
  267. package/esm2022/components/textfield/textfield.options.mjs +0 -63
  268. package/esm2022/components/textfield/with-native-picker.directive.mjs +0 -24
  269. package/esm2022/directives/appearance/appearance.bindings.mjs +0 -15
  270. package/esm2022/directives/appearance/appearance.directive.mjs +0 -79
  271. package/esm2022/directives/appearance/appearance.options.mjs +0 -12
  272. package/esm2022/directives/appearance/index.mjs +0 -5
  273. package/esm2022/directives/appearance/taiga-ui-core-directives-appearance.mjs +0 -5
  274. package/esm2022/directives/appearance/with-appearance.mjs +0 -27
  275. package/esm2022/directives/date-format/date-format.directive.mjs +0 -31
  276. package/esm2022/directives/date-format/index.mjs +0 -2
  277. package/esm2022/directives/date-format/taiga-ui-core-directives-date-format.mjs +0 -5
  278. package/esm2022/directives/dropdown/dropdown-context.directive.mjs +0 -76
  279. package/esm2022/directives/dropdown/dropdown-hover.directive.mjs +0 -70
  280. package/esm2022/directives/dropdown/dropdown-hover.options.mjs +0 -17
  281. package/esm2022/directives/dropdown/dropdown-limit-width.mjs +0 -37
  282. package/esm2022/directives/dropdown/dropdown-manual.directive.mjs +0 -27
  283. package/esm2022/directives/dropdown/dropdown-open-legacy.directive.mjs +0 -33
  284. package/esm2022/directives/dropdown/dropdown-open.directive.mjs +0 -169
  285. package/esm2022/directives/dropdown/dropdown-options.directive.mjs +0 -73
  286. package/esm2022/directives/dropdown/dropdown-portal.directive.mjs +0 -34
  287. package/esm2022/directives/dropdown/dropdown-position-sided.directive.mjs +0 -69
  288. package/esm2022/directives/dropdown/dropdown-position.directive.mjs +0 -88
  289. package/esm2022/directives/dropdown/dropdown-selection.directive.mjs +0 -159
  290. package/esm2022/directives/dropdown/dropdown.bindings.mjs +0 -19
  291. package/esm2022/directives/dropdown/dropdown.component.mjs +0 -92
  292. package/esm2022/directives/dropdown/dropdown.directive.mjs +0 -110
  293. package/esm2022/directives/dropdown/dropdown.driver.mjs +0 -32
  294. package/esm2022/directives/dropdown/dropdown.mjs +0 -29
  295. package/esm2022/directives/dropdown/dropdown.providers.mjs +0 -10
  296. package/esm2022/directives/dropdown/dropdown.service.mjs +0 -15
  297. package/esm2022/directives/dropdown/dropdowns.component.mjs +0 -24
  298. package/esm2022/directives/dropdown/index.mjs +0 -22
  299. package/esm2022/directives/dropdown/taiga-ui-core-directives-dropdown.mjs +0 -5
  300. package/esm2022/directives/dropdown/with-dropdown-open.directive.mjs +0 -23
  301. package/esm2022/directives/group/group.directive.mjs +0 -53
  302. package/esm2022/directives/group/group.options.mjs +0 -15
  303. package/esm2022/directives/group/index.mjs +0 -3
  304. package/esm2022/directives/group/taiga-ui-core-directives-group.mjs +0 -5
  305. package/esm2022/directives/hint/hint-describe.directive.mjs +0 -50
  306. package/esm2022/directives/hint/hint-driver.directive.mjs +0 -19
  307. package/esm2022/directives/hint/hint-host.directive.mjs +0 -27
  308. package/esm2022/directives/hint/hint-hover.directive.mjs +0 -59
  309. package/esm2022/directives/hint/hint-manual.directive.mjs +0 -33
  310. package/esm2022/directives/hint/hint-options.directive.mjs +0 -86
  311. package/esm2022/directives/hint/hint-overflow.directive.mjs +0 -38
  312. package/esm2022/directives/hint/hint-pointer.directive.mjs +0 -33
  313. package/esm2022/directives/hint/hint-position.directive.mjs +0 -112
  314. package/esm2022/directives/hint/hint-unstyled.component.mjs +0 -39
  315. package/esm2022/directives/hint/hint.component.mjs +0 -127
  316. package/esm2022/directives/hint/hint.directive.mjs +0 -99
  317. package/esm2022/directives/hint/hint.mjs +0 -27
  318. package/esm2022/directives/hint/hint.providers.mjs +0 -9
  319. package/esm2022/directives/hint/hint.service.mjs +0 -29
  320. package/esm2022/directives/hint/hints.component.mjs +0 -34
  321. package/esm2022/directives/hint/index.mjs +0 -17
  322. package/esm2022/directives/hint/taiga-ui-core-directives-hint.mjs +0 -5
  323. package/esm2022/directives/icons/icons.directive.mjs +0 -66
  324. package/esm2022/directives/icons/index.mjs +0 -3
  325. package/esm2022/directives/icons/taiga-ui-core-directives-icons.mjs +0 -5
  326. package/esm2022/directives/icons/with-icons.mjs +0 -22
  327. package/esm2022/directives/index.mjs +0 -12
  328. package/esm2022/directives/items-handlers/index.mjs +0 -4
  329. package/esm2022/directives/items-handlers/items-handlers.directive.mjs +0 -63
  330. package/esm2022/directives/items-handlers/items-handlers.tokens.mjs +0 -27
  331. package/esm2022/directives/items-handlers/items-handlers.validator.mjs +0 -32
  332. package/esm2022/directives/items-handlers/taiga-ui-core-directives-items-handlers.mjs +0 -5
  333. package/esm2022/directives/number-format/index.mjs +0 -2
  334. package/esm2022/directives/number-format/number-format.directive.mjs +0 -31
  335. package/esm2022/directives/number-format/taiga-ui-core-directives-number-format.mjs +0 -5
  336. package/esm2022/directives/popup/index.mjs +0 -4
  337. package/esm2022/directives/popup/popup.directive.mjs +0 -31
  338. package/esm2022/directives/popup/popup.service.mjs +0 -15
  339. package/esm2022/directives/popup/popups.component.mjs +0 -20
  340. package/esm2022/directives/popup/taiga-ui-core-directives-popup.mjs +0 -5
  341. package/esm2022/directives/surface/index.mjs +0 -2
  342. package/esm2022/directives/surface/surface.directive.mjs +0 -44
  343. package/esm2022/directives/surface/taiga-ui-core-directives-surface.mjs +0 -5
  344. package/esm2022/directives/taiga-ui-core-directives.mjs +0 -5
  345. package/esm2022/directives/title/index.mjs +0 -2
  346. package/esm2022/directives/title/taiga-ui-core-directives-title.mjs +0 -5
  347. package/esm2022/directives/title/title.directive.mjs +0 -37
  348. package/esm2022/index.mjs +0 -9
  349. package/esm2022/pipes/auto-color/auto-color.pipe.mjs +0 -19
  350. package/esm2022/pipes/auto-color/index.mjs +0 -2
  351. package/esm2022/pipes/auto-color/taiga-ui-core-pipes-auto-color.mjs +0 -5
  352. package/esm2022/pipes/calendar-sheet/calendar-sheet.pipe.mjs +0 -54
  353. package/esm2022/pipes/calendar-sheet/index.mjs +0 -2
  354. package/esm2022/pipes/calendar-sheet/taiga-ui-core-pipes-calendar-sheet.mjs +0 -5
  355. package/esm2022/pipes/calendar-sheet/utils.mjs +0 -36
  356. package/esm2022/pipes/fallback-src/fallback-src.pipe.mjs +0 -23
  357. package/esm2022/pipes/fallback-src/index.mjs +0 -2
  358. package/esm2022/pipes/fallback-src/taiga-ui-core-pipes-fallback-src.mjs +0 -5
  359. package/esm2022/pipes/flag/flag.pipe.mjs +0 -26
  360. package/esm2022/pipes/flag/index.mjs +0 -2
  361. package/esm2022/pipes/flag/taiga-ui-core-pipes-flag.mjs +0 -5
  362. package/esm2022/pipes/format-date/format-date.pipe.mjs +0 -22
  363. package/esm2022/pipes/format-date/index.mjs +0 -2
  364. package/esm2022/pipes/format-date/taiga-ui-core-pipes-format-date.mjs +0 -5
  365. package/esm2022/pipes/format-number/format-number.pipe.mjs +0 -36
  366. package/esm2022/pipes/format-number/index.mjs +0 -2
  367. package/esm2022/pipes/format-number/taiga-ui-core-pipes-format-number.mjs +0 -5
  368. package/esm2022/pipes/index.mjs +0 -10
  369. package/esm2022/pipes/initials/index.mjs +0 -2
  370. package/esm2022/pipes/initials/initials.pipe.mjs +0 -23
  371. package/esm2022/pipes/initials/taiga-ui-core-pipes-initials.mjs +0 -5
  372. package/esm2022/pipes/month/index.mjs +0 -2
  373. package/esm2022/pipes/month/month.pipe.mjs +0 -23
  374. package/esm2022/pipes/month/taiga-ui-core-pipes-month.mjs +0 -5
  375. package/esm2022/pipes/order-week-days/index.mjs +0 -2
  376. package/esm2022/pipes/order-week-days/order-week-days.pipe.mjs +0 -30
  377. package/esm2022/pipes/order-week-days/taiga-ui-core-pipes-order-week-days.mjs +0 -5
  378. package/esm2022/pipes/taiga-ui-core-pipes.mjs +0 -5
  379. package/esm2022/services/breakpoint.service.mjs +0 -31
  380. package/esm2022/services/dark-theme.service.mjs +0 -24
  381. package/esm2022/services/format-date.service.mjs +0 -24
  382. package/esm2022/services/index.mjs +0 -6
  383. package/esm2022/services/position.service.mjs +0 -26
  384. package/esm2022/services/taiga-ui-core-services.mjs +0 -5
  385. package/esm2022/services/visual-viewport.service.mjs +0 -29
  386. package/esm2022/taiga-ui-core.mjs +0 -5
  387. package/esm2022/tokens/animations-speed.mjs +0 -9
  388. package/esm2022/tokens/assets-path.mjs +0 -11
  389. package/esm2022/tokens/auxiliary.mjs +0 -9
  390. package/esm2022/tokens/common-icons.mjs +0 -18
  391. package/esm2022/tokens/dark-mode.mjs +0 -41
  392. package/esm2022/tokens/date-format.mjs +0 -20
  393. package/esm2022/tokens/day-type-handler.mjs +0 -8
  394. package/esm2022/tokens/first-day-of-week.mjs +0 -9
  395. package/esm2022/tokens/i18n.mjs +0 -45
  396. package/esm2022/tokens/icon-resolver.mjs +0 -44
  397. package/esm2022/tokens/icon.mjs +0 -8
  398. package/esm2022/tokens/icons.mjs +0 -21
  399. package/esm2022/tokens/index.mjs +0 -21
  400. package/esm2022/tokens/media.mjs +0 -12
  401. package/esm2022/tokens/number-format.mjs +0 -24
  402. package/esm2022/tokens/reduced-motion.mjs +0 -7
  403. package/esm2022/tokens/scroll-ref.mjs +0 -6
  404. package/esm2022/tokens/selection-stream.mjs +0 -14
  405. package/esm2022/tokens/spin-icons.mjs +0 -8
  406. package/esm2022/tokens/taiga-ui-core-tokens.mjs +0 -5
  407. package/esm2022/tokens/theme.mjs +0 -5
  408. package/esm2022/tokens/viewport.mjs +0 -35
  409. package/esm2022/types/direction.mjs +0 -2
  410. package/esm2022/types/index.mjs +0 -2
  411. package/esm2022/types/interactive-state.mjs +0 -2
  412. package/esm2022/types/orientation.mjs +0 -2
  413. package/esm2022/types/point.mjs +0 -2
  414. package/esm2022/types/portal-item.mjs +0 -2
  415. package/esm2022/types/range-state.mjs +0 -2
  416. package/esm2022/types/size.mjs +0 -13
  417. package/esm2022/types/taiga-ui-core-types.mjs +0 -5
  418. package/esm2022/types/value-content-context.mjs +0 -2
  419. package/esm2022/utils/dom/check-fixed-position.mjs +0 -9
  420. package/esm2022/utils/dom/get-viewport.mjs +0 -24
  421. package/esm2022/utils/dom/get-word-range.mjs +0 -51
  422. package/esm2022/utils/dom/index.mjs +0 -4
  423. package/esm2022/utils/dom/taiga-ui-core-utils-dom.mjs +0 -5
  424. package/esm2022/utils/format/format-number.mjs +0 -47
  425. package/esm2022/utils/format/get-fractional-part-padded.mjs +0 -16
  426. package/esm2022/utils/format/index.mjs +0 -5
  427. package/esm2022/utils/format/number-to-string-without-exp.mjs +0 -18
  428. package/esm2022/utils/format/string-hash-to-hsl.mjs +0 -21
  429. package/esm2022/utils/format/taiga-ui-core-utils-format.mjs +0 -5
  430. package/esm2022/utils/index.mjs +0 -4
  431. package/esm2022/utils/miscellaneous/font-scaling.mjs +0 -11
  432. package/esm2022/utils/miscellaneous/index.mjs +0 -7
  433. package/esm2022/utils/miscellaneous/is-editing-key.mjs +0 -18
  434. package/esm2022/utils/miscellaneous/is-obscured.mjs +0 -8
  435. package/esm2022/utils/miscellaneous/override-options.mjs +0 -11
  436. package/esm2022/utils/miscellaneous/size-bigger.mjs +0 -19
  437. package/esm2022/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.mjs +0 -5
  438. package/esm2022/utils/miscellaneous/to-animation-options.mjs +0 -16
  439. package/esm2022/utils/taiga-ui-core-utils.mjs +0 -5
  440. package/fesm2022/taiga-ui-core-components-fullscreen.mjs +0 -73
  441. package/fesm2022/taiga-ui-core-components-fullscreen.mjs.map +0 -1
  442. package/fesm2022/taiga-ui-core-directives-surface.mjs +0 -50
  443. package/fesm2022/taiga-ui-core-directives-surface.mjs.map +0 -1
  444. package/fesm2022/taiga-ui-core-pipes-fallback-src.mjs +0 -29
  445. package/fesm2022/taiga-ui-core-pipes-fallback-src.mjs.map +0 -1
  446. package/pipes/fallback-src/fallback-src.pipe.d.ts +0 -9
  447. package/pipes/fallback-src/index.d.ts +0 -1
@@ -1,169 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { computed, ContentChild, Directive, ElementRef, EventEmitter, inject, Input, Output, } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
5
- import { TuiObscured } from '@taiga-ui/cdk/directives/obscured';
6
- import { tuiCloseWatcher, tuiIfMap, tuiWatch, tuiZonefull, } from '@taiga-ui/cdk/observables';
7
- import { tuiGetActualTarget, tuiInjectElement, tuiIsElement, tuiIsElementEditable, tuiIsHTMLElement, } from '@taiga-ui/cdk/utils/dom';
8
- import { tuiGetClosestFocusable, tuiIsNativeFocusedIn, tuiIsNativeKeyboardFocusable, } from '@taiga-ui/cdk/utils/focus';
9
- import { tuiAsDriver } from '@taiga-ui/core/classes';
10
- import { tuiIsEditingKey } from '@taiga-ui/core/utils/miscellaneous';
11
- import { shouldCall } from '@taiga-ui/event-plugins';
12
- import { filter, fromEvent, merge } from 'rxjs';
13
- import { TuiDropdownDirective } from './dropdown.directive';
14
- import { TuiDropdownDriver } from './dropdown.driver';
15
- import * as i0 from "@angular/core";
16
- import * as i1 from "@taiga-ui/cdk/directives/obscured";
17
- import * as i2 from "@taiga-ui/cdk/directives/active-zone";
18
- function shouldClose(event) {
19
- return (
20
- // @ts-ignore
21
- typeof CloseWatcher === 'undefined' &&
22
- // ?. for auto fill events
23
- event.key?.toLowerCase() === 'escape' &&
24
- this.tuiDropdownEnabled &&
25
- !!this.tuiDropdownOpen &&
26
- !this['dropdown']()?.nextElementSibling);
27
- }
28
- class TuiDropdownOpen {
29
- constructor() {
30
- this.directive = inject(TuiDropdownDirective);
31
- this.el = tuiInjectElement();
32
- this.obscured = inject(TuiObscured);
33
- this.activeZone = inject(TuiActiveZone);
34
- this.dropdown = computed(() => this.directive.ref()?.location.nativeElement);
35
- this.tuiDropdownEnabled = true;
36
- this.tuiDropdownOpen = false;
37
- this.tuiDropdownOpenChange = new EventEmitter();
38
- // TODO: make it private when all legacy controls will be deleted from @taiga-ui/legacy (5.0)
39
- this.driver = inject(TuiDropdownDriver);
40
- this.sub = this.driver
41
- .pipe(tuiIfMap(() => merge(tuiCloseWatcher(), this.obscured.tuiObscured.pipe(filter(Boolean)), this.activeZone.tuiActiveZoneChange.pipe(filter((a) => !a)), fromEvent(this.el, 'focusin').pipe(filter((event) => !this.host.contains(tuiGetActualTarget(event)) ||
42
- !this.directive.ref())))), tuiZonefull(), tuiWatch(), takeUntilDestroyed())
43
- .subscribe(() => this.toggle(false));
44
- this.sync = this.driver.pipe(takeUntilDestroyed()).subscribe((open) => {
45
- if (open !== this.tuiDropdownOpen) {
46
- this.update(open);
47
- }
48
- });
49
- }
50
- ngOnChanges() {
51
- this.drive(!!this.tuiDropdownOpen);
52
- this.tuiDropdownOpenChange.emit(!!this.tuiDropdownOpen);
53
- }
54
- toggle(open) {
55
- if (this.focused && !open) {
56
- this.host.focus({ preventScroll: true });
57
- }
58
- this.update(open);
59
- }
60
- onEsc(event) {
61
- event.preventDefault();
62
- this.toggle(false);
63
- }
64
- onClick(target) {
65
- if (!this.editable && this.host.contains(target)) {
66
- this.update(!this.tuiDropdownOpen);
67
- }
68
- }
69
- onArrow(event, up) {
70
- if (!tuiIsElement(event.target) ||
71
- !this.host.contains(event.target) ||
72
- !this.tuiDropdownEnabled ||
73
- !this.directive._content()) {
74
- return;
75
- }
76
- event.preventDefault();
77
- this.focusDropdown(up);
78
- }
79
- onKeydown(event) {
80
- const target = tuiGetActualTarget(event);
81
- if (!event.defaultPrevented &&
82
- tuiIsEditingKey(event.key) &&
83
- this.editable &&
84
- this.focused &&
85
- tuiIsHTMLElement(target) &&
86
- !tuiIsElementEditable(target)) {
87
- this.host.focus({ preventScroll: true });
88
- }
89
- }
90
- get host() {
91
- const initial = this.dropdownHost?.nativeElement || this.el;
92
- const focusable = tuiIsNativeKeyboardFocusable(initial)
93
- ? initial
94
- : tuiGetClosestFocusable({ initial, root: this.el });
95
- return this.dropdownHost?.nativeElement || focusable || this.el;
96
- }
97
- get editable() {
98
- return tuiIsElementEditable(this.host);
99
- }
100
- get focused() {
101
- return tuiIsNativeFocusedIn(this.host) || tuiIsNativeFocusedIn(this.dropdown());
102
- }
103
- update(open) {
104
- if (open && !this.tuiDropdownEnabled) {
105
- return this.drive();
106
- }
107
- this.tuiDropdownOpen = open;
108
- this.tuiDropdownOpenChange.emit(open);
109
- this.drive();
110
- }
111
- drive(open = !!this.tuiDropdownOpen && this.tuiDropdownEnabled) {
112
- this.obscured.tuiObscuredEnabled = open;
113
- this.driver.next(open);
114
- }
115
- focusDropdown(previous) {
116
- const root = this.dropdown();
117
- if (!root) {
118
- this.update(true);
119
- return;
120
- }
121
- const doc = this.el.ownerDocument;
122
- const child = root.appendChild(doc.createElement('div'));
123
- const initial = previous ? child : root;
124
- const focusable = tuiGetClosestFocusable({ initial, previous, root });
125
- child.remove();
126
- focusable?.focus();
127
- }
128
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownOpen, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
129
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownOpen, isStandalone: true, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: { tuiDropdownEnabled: "tuiDropdownEnabled", tuiDropdownOpen: "tuiDropdownOpen" }, outputs: { tuiDropdownOpenChange: "tuiDropdownOpenChange" }, host: { listeners: { "click": "onClick($event.target)", "keydown.arrowDown": "onArrow($event, false)", "keydown.arrowUp": "onArrow($event, true)", "document:keydown.zoneless.capture": "onEsc($event)", "document:keydown.zoneless": "onKeydown($event)", "tuiActiveZoneChange": "0" } }, providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)], queries: [{ propertyName: "dropdownHost", first: true, predicate: ["tuiDropdownHost"], descendants: true, read: ElementRef }], usesOnChanges: true, hostDirectives: [{ directive: i1.TuiObscured }, { directive: i2.TuiActiveZone, inputs: ["tuiActiveZoneParent", "tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange", "tuiActiveZoneChange"] }], ngImport: i0 }); }
130
- }
131
- __decorate([
132
- shouldCall(shouldClose)
133
- ], TuiDropdownOpen.prototype, "onEsc", null);
134
- export { TuiDropdownOpen };
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownOpen, decorators: [{
136
- type: Directive,
137
- args: [{
138
- standalone: true,
139
- selector: '[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]',
140
- providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],
141
- hostDirectives: [
142
- TuiObscured,
143
- {
144
- directive: TuiActiveZone,
145
- inputs: ['tuiActiveZoneParent'],
146
- outputs: ['tuiActiveZoneChange'],
147
- },
148
- ],
149
- host: {
150
- '(click)': 'onClick($event.target)',
151
- '(keydown.arrowDown)': 'onArrow($event, false)',
152
- '(keydown.arrowUp)': 'onArrow($event, true)',
153
- '(document:keydown.zoneless.capture)': 'onEsc($event)',
154
- '(document:keydown.zoneless)': 'onKeydown($event)',
155
- // TODO: Necessary because startWith(false) + distinctUntilChanged() in TuiActiveZone, think of better solution
156
- '(tuiActiveZoneChange)': '0',
157
- },
158
- }]
159
- }], propDecorators: { dropdownHost: [{
160
- type: ContentChild,
161
- args: ['tuiDropdownHost', { descendants: true, read: ElementRef }]
162
- }], tuiDropdownEnabled: [{
163
- type: Input
164
- }], tuiDropdownOpen: [{
165
- type: Input
166
- }], tuiDropdownOpenChange: [{
167
- type: Output
168
- }], onEsc: [] } });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tb3Blbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24vZHJvcGRvd24tb3Blbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxRQUFRLEVBQ1IsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUNILGVBQWUsRUFDZixRQUFRLEVBQ1IsUUFBUSxFQUNSLFdBQVcsR0FDZCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsZ0JBQWdCLEdBQ25CLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNILHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsNEJBQTRCLEdBQy9CLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDOzs7O0FBRXBELFNBQVMsV0FBVyxDQUF3QixLQUFvQjtJQUM1RCxPQUFPO0lBQ0gsYUFBYTtJQUNiLE9BQU8sWUFBWSxLQUFLLFdBQVc7UUFDbkMsMEJBQTBCO1FBQzFCLEtBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssUUFBUTtRQUNyQyxJQUFJLENBQUMsa0JBQWtCO1FBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZTtRQUN0QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLGtCQUFrQixDQUMxQyxDQUFDO0FBQ04sQ0FBQztBQUVELE1Bc0JhLGVBQWU7SUF0QjVCO1FBMEJxQixjQUFTLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDekMsT0FBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixlQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRW5DLGFBQVEsR0FBRyxRQUFRLENBQ2hDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FDckQsQ0FBQztRQUdLLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUcxQixvQkFBZSxHQUFpQixLQUFLLENBQUM7UUFHN0IsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVwRSw2RkFBNkY7UUFDN0UsV0FBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25DLFFBQUcsR0FBRyxJQUFJLENBQUMsTUFBTTthQUM1QixJQUFJLENBQ0QsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNWLEtBQUssQ0FDRCxlQUFlLEVBQUUsRUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDM0QsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUM5QixNQUFNLENBQ0YsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNOLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUM1QixDQUNKLENBQ0osQ0FDSixFQUNELFdBQVcsRUFBRSxFQUNiLFFBQVEsRUFBRSxFQUNWLGtCQUFrQixFQUFFLENBQ3ZCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV6QixTQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzdFLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckI7UUFDTCxDQUFDLENBQUMsQ0FBQztLQXlHTjtJQXZHVSxXQUFXO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQWE7UUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsYUFBYSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7U0FDMUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFHUyxLQUFLLENBQUMsS0FBb0I7UUFDaEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVTLE9BQU8sQ0FBQyxNQUFtQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQztJQUVTLE9BQU8sQ0FBQyxLQUFvQixFQUFFLEVBQVc7UUFDL0MsSUFDSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNqQyxDQUFDLElBQUksQ0FBQyxrQkFBa0I7WUFDeEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUM1QjtZQUNFLE9BQU87U0FDVjtRQUVELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFUyxTQUFTLENBQUMsS0FBb0I7UUFDcEMsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsSUFDSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7WUFDdkIsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsT0FBTztZQUNaLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUN4QixDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxFQUMvQjtZQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsYUFBYSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBRUQsSUFBWSxJQUFJO1FBQ1osTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM1RCxNQUFNLFNBQVMsR0FBRyw0QkFBNEIsQ0FBQyxPQUFPLENBQUM7WUFDbkQsQ0FBQyxDQUFDLE9BQU87WUFDVCxDQUFDLENBQUMsc0JBQXNCLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBRXZELE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVELElBQVksUUFBUTtRQUNoQixPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2YsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVPLE1BQU0sQ0FBQyxJQUFhO1FBQ3hCLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGtCQUFrQjtRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU8sYUFBYSxDQUFDLFFBQWlCO1FBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUU3QixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVsQixPQUFPO1NBQ1Y7UUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3hDLE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBRXBFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNmLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDOytHQTFKUSxlQUFlO21HQUFmLGVBQWUsb2lCQW5CYixDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGtIQW9CSCxVQUFVOztBQWlFM0Q7SUFEVCxVQUFVLENBQUMsV0FBVyxDQUFDOzRDQUl2QjtTQXJFUSxlQUFlOzRGQUFmLGVBQWU7a0JBdEIzQixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUscUVBQXFFO29CQUMvRSxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDOUQsY0FBYyxFQUFFO3dCQUNaLFdBQVc7d0JBQ1g7NEJBQ0ksU0FBUyxFQUFFLGFBQWE7NEJBQ3hCLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDOzRCQUMvQixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzt5QkFDbkM7cUJBQ0o7b0JBQ0QsSUFBSSxFQUFFO3dCQUNGLFNBQVMsRUFBRSx3QkFBd0I7d0JBQ25DLHFCQUFxQixFQUFFLHdCQUF3Qjt3QkFDL0MsbUJBQW1CLEVBQUUsdUJBQXVCO3dCQUM1QyxxQ0FBcUMsRUFBRSxlQUFlO3dCQUN0RCw2QkFBNkIsRUFBRSxtQkFBbUI7d0JBQ2xELCtHQUErRzt3QkFDL0csdUJBQXVCLEVBQUUsR0FBRztxQkFDL0I7aUJBQ0o7OEJBR29CLFlBQVk7c0JBRDVCLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUM7Z0JBYS9ELGtCQUFrQjtzQkFEeEIsS0FBSztnQkFJQyxlQUFlO3NCQURyQixLQUFLO2dCQUlVLHFCQUFxQjtzQkFEcEMsTUFBTTtnQkErQ0csS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgY29tcHV0ZWQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgdHlwZSBPbkNoYW5nZXMsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1R1aUFjdGl2ZVpvbmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hY3RpdmUtem9uZSc7XG5pbXBvcnQge1R1aU9ic2N1cmVkfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvb2JzY3VyZWQnO1xuaW1wb3J0IHtcbiAgICB0dWlDbG9zZVdhdGNoZXIsXG4gICAgdHVpSWZNYXAsXG4gICAgdHVpV2F0Y2gsXG4gICAgdHVpWm9uZWZ1bGwsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtcbiAgICB0dWlHZXRBY3R1YWxUYXJnZXQsXG4gICAgdHVpSW5qZWN0RWxlbWVudCxcbiAgICB0dWlJc0VsZW1lbnQsXG4gICAgdHVpSXNFbGVtZW50RWRpdGFibGUsXG4gICAgdHVpSXNIVE1MRWxlbWVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHtcbiAgICB0dWlHZXRDbG9zZXN0Rm9jdXNhYmxlLFxuICAgIHR1aUlzTmF0aXZlRm9jdXNlZEluLFxuICAgIHR1aUlzTmF0aXZlS2V5Ym9hcmRGb2N1c2FibGUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9jdXMnO1xuaW1wb3J0IHt0dWlBc0RyaXZlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY2xhc3Nlcyc7XG5pbXBvcnQge3R1aUlzRWRpdGluZ0tleX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge3Nob3VsZENhbGx9IGZyb20gJ0B0YWlnYS11aS9ldmVudC1wbHVnaW5zJztcbmltcG9ydCB7ZmlsdGVyLCBmcm9tRXZlbnQsIG1lcmdlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlEcm9wZG93bkRpcmVjdGl2ZX0gZnJvbSAnLi9kcm9wZG93bi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUdWlEcm9wZG93bkRyaXZlcn0gZnJvbSAnLi9kcm9wZG93bi5kcml2ZXInO1xuXG5mdW5jdGlvbiBzaG91bGRDbG9zZSh0aGlzOiBUdWlEcm9wZG93bk9wZW4sIGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0eXBlb2YgQ2xvc2VXYXRjaGVyID09PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAvLyA/LiBmb3IgYXV0byBmaWxsIGV2ZW50c1xuICAgICAgICBldmVudC5rZXk/LnRvTG93ZXJDYXNlKCkgPT09ICdlc2NhcGUnICYmXG4gICAgICAgIHRoaXMudHVpRHJvcGRvd25FbmFibGVkICYmXG4gICAgICAgICEhdGhpcy50dWlEcm9wZG93bk9wZW4gJiZcbiAgICAgICAgIXRoaXNbJ2Ryb3Bkb3duJ10oKT8ubmV4dEVsZW1lbnRTaWJsaW5nXG4gICAgKTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t0dWlEcm9wZG93bl1bdHVpRHJvcGRvd25PcGVuXSxbdHVpRHJvcGRvd25dW3R1aURyb3Bkb3duT3BlbkNoYW5nZV0nLFxuICAgIHByb3ZpZGVyczogW1R1aURyb3Bkb3duRHJpdmVyLCB0dWlBc0RyaXZlcihUdWlEcm9wZG93bkRyaXZlcildLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIFR1aU9ic2N1cmVkLFxuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFR1aUFjdGl2ZVpvbmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsndHVpQWN0aXZlWm9uZVBhcmVudCddLFxuICAgICAgICAgICAgb3V0cHV0czogWyd0dWlBY3RpdmVab25lQ2hhbmdlJ10sXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ29uQ2xpY2soJGV2ZW50LnRhcmdldCknLFxuICAgICAgICAnKGtleWRvd24uYXJyb3dEb3duKSc6ICdvbkFycm93KCRldmVudCwgZmFsc2UpJyxcbiAgICAgICAgJyhrZXlkb3duLmFycm93VXApJzogJ29uQXJyb3coJGV2ZW50LCB0cnVlKScsXG4gICAgICAgICcoZG9jdW1lbnQ6a2V5ZG93bi56b25lbGVzcy5jYXB0dXJlKSc6ICdvbkVzYygkZXZlbnQpJyxcbiAgICAgICAgJyhkb2N1bWVudDprZXlkb3duLnpvbmVsZXNzKSc6ICdvbktleWRvd24oJGV2ZW50KScsXG4gICAgICAgIC8vIFRPRE86IE5lY2Vzc2FyeSBiZWNhdXNlIHN0YXJ0V2l0aChmYWxzZSkgKyBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpIGluIFR1aUFjdGl2ZVpvbmUsIHRoaW5rIG9mIGJldHRlciBzb2x1dGlvblxuICAgICAgICAnKHR1aUFjdGl2ZVpvbmVDaGFuZ2UpJzogJzAnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURyb3Bkb3duT3BlbiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQENvbnRlbnRDaGlsZCgndHVpRHJvcGRvd25Ib3N0Jywge2Rlc2NlbmRhbnRzOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duSG9zdD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXJlY3RpdmUgPSBpbmplY3QoVHVpRHJvcGRvd25EaXJlY3RpdmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvYnNjdXJlZCA9IGluamVjdChUdWlPYnNjdXJlZCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmVab25lID0gaW5qZWN0KFR1aUFjdGl2ZVpvbmUpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93biA9IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PiB0aGlzLmRpcmVjdGl2ZS5yZWYoKT8ubG9jYXRpb24ubmF0aXZlRWxlbWVudCxcbiAgICApO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHVpRHJvcGRvd25FbmFibGVkID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHR1aURyb3Bkb3duT3BlbjogYm9vbGVhbiB8ICcnID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHVpRHJvcGRvd25PcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLy8gVE9ETzogbWFrZSBpdCBwcml2YXRlIHdoZW4gYWxsIGxlZ2FjeSBjb250cm9scyB3aWxsIGJlIGRlbGV0ZWQgZnJvbSBAdGFpZ2EtdWkvbGVnYWN5ICg1LjApXG4gICAgcHVibGljIHJlYWRvbmx5IGRyaXZlciA9IGluamVjdChUdWlEcm9wZG93bkRyaXZlcik7XG4gICAgcHVibGljIHJlYWRvbmx5IHN1YiA9IHRoaXMuZHJpdmVyXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdHVpSWZNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgICAgICAgICAgdHVpQ2xvc2VXYXRjaGVyKCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub2JzY3VyZWQudHVpT2JzY3VyZWQucGlwZShmaWx0ZXIoQm9vbGVhbikpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVpvbmUudHVpQWN0aXZlWm9uZUNoYW5nZS5waXBlKGZpbHRlcigoYSkgPT4gIWEpKSxcbiAgICAgICAgICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWwsICdmb2N1c2luJykucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLmhvc3QuY29udGFpbnModHVpR2V0QWN0dWFsVGFyZ2V0KGV2ZW50KSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuZGlyZWN0aXZlLnJlZigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHR1aVpvbmVmdWxsKCksXG4gICAgICAgICAgICB0dWlXYXRjaCgpLFxuICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRvZ2dsZShmYWxzZSkpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHN5bmMgPSB0aGlzLmRyaXZlci5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKG9wZW4pID0+IHtcbiAgICAgICAgaWYgKG9wZW4gIT09IHRoaXMudHVpRHJvcGRvd25PcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZShvcGVuKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyaXZlKCEhdGhpcy50dWlEcm9wZG93bk9wZW4pO1xuICAgICAgICB0aGlzLnR1aURyb3Bkb3duT3BlbkNoYW5nZS5lbWl0KCEhdGhpcy50dWlEcm9wZG93bk9wZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGUob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkICYmICFvcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3QuZm9jdXMoe3ByZXZlbnRTY3JvbGw6IHRydWV9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlKG9wZW4pO1xuICAgIH1cblxuICAgIEBzaG91bGRDYWxsKHNob3VsZENsb3NlKVxuICAgIHByb3RlY3RlZCBvbkVzYyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnRvZ2dsZShmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQ2xpY2sodGFyZ2V0OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZWRpdGFibGUgJiYgdGhpcy5ob3N0LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKCF0aGlzLnR1aURyb3Bkb3duT3Blbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25BcnJvdyhldmVudDogS2V5Ym9hcmRFdmVudCwgdXA6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXR1aUlzRWxlbWVudChldmVudC50YXJnZXQpIHx8XG4gICAgICAgICAgICAhdGhpcy5ob3N0LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgfHxcbiAgICAgICAgICAgICF0aGlzLnR1aURyb3Bkb3duRW5hYmxlZCB8fFxuICAgICAgICAgICAgIXRoaXMuZGlyZWN0aXZlLl9jb250ZW50KClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmZvY3VzRHJvcGRvd24odXApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gdHVpR2V0QWN0dWFsVGFyZ2V0KGV2ZW50KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCAmJlxuICAgICAgICAgICAgdHVpSXNFZGl0aW5nS2V5KGV2ZW50LmtleSkgJiZcbiAgICAgICAgICAgIHRoaXMuZWRpdGFibGUgJiZcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCAmJlxuICAgICAgICAgICAgdHVpSXNIVE1MRWxlbWVudCh0YXJnZXQpICYmXG4gICAgICAgICAgICAhdHVpSXNFbGVtZW50RWRpdGFibGUodGFyZ2V0KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGluaXRpYWwgPSB0aGlzLmRyb3Bkb3duSG9zdD8ubmF0aXZlRWxlbWVudCB8fCB0aGlzLmVsO1xuICAgICAgICBjb25zdCBmb2N1c2FibGUgPSB0dWlJc05hdGl2ZUtleWJvYXJkRm9jdXNhYmxlKGluaXRpYWwpXG4gICAgICAgICAgICA/IGluaXRpYWxcbiAgICAgICAgICAgIDogdHVpR2V0Q2xvc2VzdEZvY3VzYWJsZSh7aW5pdGlhbCwgcm9vdDogdGhpcy5lbH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRyb3Bkb3duSG9zdD8ubmF0aXZlRWxlbWVudCB8fCBmb2N1c2FibGUgfHwgdGhpcy5lbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBlZGl0YWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzRWxlbWVudEVkaXRhYmxlKHRoaXMuaG9zdCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzTmF0aXZlRm9jdXNlZEluKHRoaXMuaG9zdCkgfHwgdHVpSXNOYXRpdmVGb2N1c2VkSW4odGhpcy5kcm9wZG93bigpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChvcGVuICYmICF0aGlzLnR1aURyb3Bkb3duRW5hYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZHJpdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudHVpRHJvcGRvd25PcGVuID0gb3BlbjtcbiAgICAgICAgdGhpcy50dWlEcm9wZG93bk9wZW5DaGFuZ2UuZW1pdChvcGVuKTtcbiAgICAgICAgdGhpcy5kcml2ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZHJpdmUob3BlbiA9ICEhdGhpcy50dWlEcm9wZG93bk9wZW4gJiYgdGhpcy50dWlEcm9wZG93bkVuYWJsZWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNjdXJlZC50dWlPYnNjdXJlZEVuYWJsZWQgPSBvcGVuO1xuICAgICAgICB0aGlzLmRyaXZlci5uZXh0KG9wZW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNEcm9wZG93bihwcmV2aW91czogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCByb290ID0gdGhpcy5kcm9wZG93bigpO1xuXG4gICAgICAgIGlmICghcm9vdCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGUodHJ1ZSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRvYyA9IHRoaXMuZWwub3duZXJEb2N1bWVudDtcbiAgICAgICAgY29uc3QgY2hpbGQgPSByb290LmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG4gICAgICAgIGNvbnN0IGluaXRpYWwgPSBwcmV2aW91cyA/IGNoaWxkIDogcm9vdDtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlID0gdHVpR2V0Q2xvc2VzdEZvY3VzYWJsZSh7aW5pdGlhbCwgcHJldmlvdXMsIHJvb3R9KTtcblxuICAgICAgICBjaGlsZC5yZW1vdmUoKTtcbiAgICAgICAgZm9jdXNhYmxlPy5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,73 +0,0 @@
1
- import { Directive, inject, InjectionToken, Input, Optional, Self, SkipSelf, } from '@angular/core';
2
- import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
3
- import { tuiOverrideOptions } from '@taiga-ui/core/utils';
4
- import * as i0 from "@angular/core";
5
- /** Default values for dropdown options */
6
- export const TUI_DROPDOWN_DEFAULT_OPTIONS = {
7
- align: 'left',
8
- direction: null,
9
- limitWidth: 'auto',
10
- maxHeight: 400,
11
- minHeight: 80,
12
- offset: 4,
13
- appearance: '',
14
- };
15
- /**
16
- * Default parameters for dropdown directive
17
- */
18
- export const TUI_DROPDOWN_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_DROPDOWN_OPTIONS' : '', {
19
- factory: () => TUI_DROPDOWN_DEFAULT_OPTIONS,
20
- });
21
- export const tuiDropdownOptionsProvider = (override) => ({
22
- provide: TUI_DROPDOWN_OPTIONS,
23
- deps: [
24
- [new Optional(), new Self(), TuiDropdownOptionsDirective],
25
- [new Optional(), new SkipSelf(), TUI_DROPDOWN_OPTIONS],
26
- ],
27
- useFactory: tuiOverrideOptions(override, TUI_DROPDOWN_DEFAULT_OPTIONS),
28
- });
29
- class TuiDropdownOptionsDirective {
30
- constructor() {
31
- this.options = inject(TUI_DROPDOWN_OPTIONS, { skipSelf: true });
32
- this.align = this.options.align;
33
- this.appearance = this.options.appearance;
34
- this.direction = this.options.direction;
35
- this.limitWidth = this.options.limitWidth;
36
- this.minHeight = this.options.minHeight;
37
- this.maxHeight = this.options.maxHeight;
38
- this.offset = this.options.offset;
39
- }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownOptionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
41
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownOptionsDirective, isStandalone: true, selector: "[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]", inputs: { align: ["tuiDropdownAlign", "align"], appearance: ["tuiDropdownAppearance", "appearance"], direction: ["tuiDropdownDirection", "direction"], limitWidth: ["tuiDropdownLimitWidth", "limitWidth"], minHeight: ["tuiDropdownMinHeight", "minHeight"], maxHeight: ["tuiDropdownMaxHeight", "maxHeight"], offset: ["tuiDropdownOffset", "offset"] }, providers: [tuiProvide(TUI_DROPDOWN_OPTIONS, TuiDropdownOptionsDirective)], ngImport: i0 }); }
42
- }
43
- export { TuiDropdownOptionsDirective };
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownOptionsDirective, decorators: [{
45
- type: Directive,
46
- args: [{
47
- standalone: true,
48
- selector: '[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]',
49
- providers: [tuiProvide(TUI_DROPDOWN_OPTIONS, TuiDropdownOptionsDirective)],
50
- }]
51
- }], propDecorators: { align: [{
52
- type: Input,
53
- args: ['tuiDropdownAlign']
54
- }], appearance: [{
55
- type: Input,
56
- args: ['tuiDropdownAppearance']
57
- }], direction: [{
58
- type: Input,
59
- args: ['tuiDropdownDirection']
60
- }], limitWidth: [{
61
- type: Input,
62
- args: ['tuiDropdownLimitWidth']
63
- }], minHeight: [{
64
- type: Input,
65
- args: ['tuiDropdownMinHeight']
66
- }], maxHeight: [{
67
- type: Input,
68
- args: ['tuiDropdownMaxHeight']
69
- }], offset: [{
70
- type: Input,
71
- args: ['tuiDropdownOffset']
72
- }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tb3B0aW9ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24vZHJvcGRvd24tb3B0aW9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFN0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBZXhELDBDQUEwQztBQUMxQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBdUI7SUFDNUQsS0FBSyxFQUFFLE1BQU07SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFNBQVMsRUFBRSxHQUFHO0lBQ2QsU0FBUyxFQUFFLEVBQUU7SUFDYixNQUFNLEVBQUUsQ0FBQztJQUNULFVBQVUsRUFBRSxFQUFFO0NBQ2pCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUNsRCxTQUFTLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLDRCQUE0QjtDQUM5QyxDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FFaEIsQ0FBQyxRQUFxQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELE9BQU8sRUFBRSxvQkFBb0I7SUFDN0IsSUFBSSxFQUFFO1FBQ0YsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsMkJBQTJCLENBQUM7UUFDekQsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsb0JBQW9CLENBQUM7S0FDekQ7SUFDRCxVQUFVLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLDRCQUE0QixDQUFDO0NBQ3pFLENBQUMsQ0FBQztBQUVILE1BTWEsMkJBQTJCO0lBTnhDO1FBT3FCLFlBQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUduRSxVQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFHM0IsZUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBR3JDLGNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUduQyxlQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFHckMsY0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBR25DLGNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUduQyxXQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7S0FDdkM7K0dBdkJZLDJCQUEyQjttR0FBM0IsMkJBQTJCLDJpQkFGekIsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLEVBQUUsMkJBQTJCLENBQUMsQ0FBQzs7U0FFakUsMkJBQTJCOzRGQUEzQiwyQkFBMkI7a0JBTnZDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFDSixtS0FBbUs7b0JBQ3ZLLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsOEJBQThCLENBQUM7aUJBQzdFOzhCQUtVLEtBQUs7c0JBRFgsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBSWxCLFVBQVU7c0JBRGhCLEtBQUs7dUJBQUMsdUJBQXVCO2dCQUl2QixTQUFTO3NCQURmLEtBQUs7dUJBQUMsc0JBQXNCO2dCQUl0QixVQUFVO3NCQURoQixLQUFLO3VCQUFDLHVCQUF1QjtnQkFJdkIsU0FBUztzQkFEZixLQUFLO3VCQUFDLHNCQUFzQjtnQkFJdEIsU0FBUztzQkFEZixLQUFLO3VCQUFDLHNCQUFzQjtnQkFJdEIsTUFBTTtzQkFEWixLQUFLO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIHR5cGUgRmFjdG9yeVByb3ZpZGVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpUHJvdmlkZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7dHlwZSBUdWlWZXJ0aWNhbERpcmVjdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHt0dWlPdmVycmlkZU9wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgVHVpRHJvcGRvd25BbGlnbiA9ICdjZW50ZXInIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcbmV4cG9ydCB0eXBlIFR1aURyb3Bkb3duV2lkdGggPSAnYXV0bycgfCAnZml4ZWQnIHwgJ21pbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpRHJvcGRvd25PcHRpb25zIHtcbiAgICByZWFkb25seSBhbGlnbjogVHVpRHJvcGRvd25BbGlnbjtcbiAgICByZWFkb25seSBhcHBlYXJhbmNlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZGlyZWN0aW9uOiBUdWlWZXJ0aWNhbERpcmVjdGlvbiB8IG51bGw7XG4gICAgcmVhZG9ubHkgbGltaXRXaWR0aDogVHVpRHJvcGRvd25XaWR0aDtcbiAgICByZWFkb25seSBtYXhIZWlnaHQ6IG51bWJlcjtcbiAgICByZWFkb25seSBtaW5IZWlnaHQ6IG51bWJlcjtcbiAgICByZWFkb25seSBvZmZzZXQ6IG51bWJlcjtcbn1cblxuLyoqIERlZmF1bHQgdmFsdWVzIGZvciBkcm9wZG93biBvcHRpb25zICovXG5leHBvcnQgY29uc3QgVFVJX0RST1BET1dOX0RFRkFVTFRfT1BUSU9OUzogVHVpRHJvcGRvd25PcHRpb25zID0ge1xuICAgIGFsaWduOiAnbGVmdCcsXG4gICAgZGlyZWN0aW9uOiBudWxsLFxuICAgIGxpbWl0V2lkdGg6ICdhdXRvJyxcbiAgICBtYXhIZWlnaHQ6IDQwMCxcbiAgICBtaW5IZWlnaHQ6IDgwLFxuICAgIG9mZnNldDogNCxcbiAgICBhcHBlYXJhbmNlOiAnJyxcbn07XG5cbi8qKlxuICogRGVmYXVsdCBwYXJhbWV0ZXJzIGZvciBkcm9wZG93biBkaXJlY3RpdmVcbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9EUk9QRE9XTl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuKFxuICAgIG5nRGV2TW9kZSA/ICdUVUlfRFJPUERPV05fT1BUSU9OUycgOiAnJyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IFRVSV9EUk9QRE9XTl9ERUZBVUxUX09QVElPTlMsXG4gICAgfSxcbik7XG5cbmV4cG9ydCBjb25zdCB0dWlEcm9wZG93bk9wdGlvbnNQcm92aWRlcjogKFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8VHVpRHJvcGRvd25PcHRpb25zPixcbikgPT4gRmFjdG9yeVByb3ZpZGVyID0gKG92ZXJyaWRlOiBQYXJ0aWFsPFR1aURyb3Bkb3duT3B0aW9ucz4pID0+ICh7XG4gICAgcHJvdmlkZTogVFVJX0RST1BET1dOX09QVElPTlMsXG4gICAgZGVwczogW1xuICAgICAgICBbbmV3IE9wdGlvbmFsKCksIG5ldyBTZWxmKCksIFR1aURyb3Bkb3duT3B0aW9uc0RpcmVjdGl2ZV0sXG4gICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIFRVSV9EUk9QRE9XTl9PUFRJT05TXSxcbiAgICBdLFxuICAgIHVzZUZhY3Rvcnk6IHR1aU92ZXJyaWRlT3B0aW9ucyhvdmVycmlkZSwgVFVJX0RST1BET1dOX0RFRkFVTFRfT1BUSU9OUyksXG59KTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjpcbiAgICAgICAgJ1t0dWlEcm9wZG93bkFsaWduXSwgW3R1aURyb3Bkb3duQXBwZWFyYW5jZV0sIFt0dWlEcm9wZG93bkRpcmVjdGlvbl0sIFt0dWlEcm9wZG93bkxpbWl0V2lkdGhdLCBbdHVpRHJvcGRvd25NaW5IZWlnaHRdLCBbdHVpRHJvcGRvd25NYXhIZWlnaHRdLCBbdHVpRHJvcGRvd25PZmZzZXRdJyxcbiAgICBwcm92aWRlcnM6IFt0dWlQcm92aWRlKFRVSV9EUk9QRE9XTl9PUFRJT05TLCBUdWlEcm9wZG93bk9wdGlvbnNEaXJlY3RpdmUpXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRHJvcGRvd25PcHRpb25zRGlyZWN0aXZlIGltcGxlbWVudHMgVHVpRHJvcGRvd25PcHRpb25zIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX0RST1BET1dOX09QVElPTlMsIHtza2lwU2VsZjogdHJ1ZX0pO1xuXG4gICAgQElucHV0KCd0dWlEcm9wZG93bkFsaWduJylcbiAgICBwdWJsaWMgYWxpZ24gPSB0aGlzLm9wdGlvbnMuYWxpZ247XG5cbiAgICBASW5wdXQoJ3R1aURyb3Bkb3duQXBwZWFyYW5jZScpXG4gICAgcHVibGljIGFwcGVhcmFuY2UgPSB0aGlzLm9wdGlvbnMuYXBwZWFyYW5jZTtcblxuICAgIEBJbnB1dCgndHVpRHJvcGRvd25EaXJlY3Rpb24nKVxuICAgIHB1YmxpYyBkaXJlY3Rpb24gPSB0aGlzLm9wdGlvbnMuZGlyZWN0aW9uO1xuXG4gICAgQElucHV0KCd0dWlEcm9wZG93bkxpbWl0V2lkdGgnKVxuICAgIHB1YmxpYyBsaW1pdFdpZHRoID0gdGhpcy5vcHRpb25zLmxpbWl0V2lkdGg7XG5cbiAgICBASW5wdXQoJ3R1aURyb3Bkb3duTWluSGVpZ2h0JylcbiAgICBwdWJsaWMgbWluSGVpZ2h0ID0gdGhpcy5vcHRpb25zLm1pbkhlaWdodDtcblxuICAgIEBJbnB1dCgndHVpRHJvcGRvd25NYXhIZWlnaHQnKVxuICAgIHB1YmxpYyBtYXhIZWlnaHQgPSB0aGlzLm9wdGlvbnMubWF4SGVpZ2h0O1xuXG4gICAgQElucHV0KCd0dWlEcm9wZG93bk9mZnNldCcpXG4gICAgcHVibGljIG9mZnNldCA9IHRoaXMub3B0aW9ucy5vZmZzZXQ7XG59XG4iXX0=
@@ -1,34 +0,0 @@
1
- import { Directive, inject, Input, TemplateRef, } from '@angular/core';
2
- import { TuiDropdownService } from './dropdown.service';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * @deprecated use {@link TuiPopup} directive instead
6
- */
7
- class TuiDropdownPortal {
8
- constructor() {
9
- this.template = inject(TemplateRef);
10
- this.service = inject(TuiDropdownService);
11
- }
12
- set tuiDropdown(show) {
13
- this.viewRef?.destroy();
14
- if (show) {
15
- this.viewRef = this.service.addTemplate(this.template);
16
- }
17
- }
18
- ngOnDestroy() {
19
- this.viewRef?.destroy();
20
- }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownPortal, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
22
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownPortal, isStandalone: true, selector: "ng-template[tuiDropdown]", inputs: { tuiDropdown: "tuiDropdown" }, ngImport: i0 }); }
23
- }
24
- export { TuiDropdownPortal };
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownPortal, decorators: [{
26
- type: Directive,
27
- args: [{
28
- standalone: true,
29
- selector: 'ng-template[tuiDropdown]',
30
- }]
31
- }], propDecorators: { tuiDropdown: [{
32
- type: Input
33
- }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tcG9ydGFsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bi9kcm9wZG93bi1wb3J0YWwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFFTCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7O0FBRXREOztHQUVHO0FBQ0gsTUFJYSxpQkFBaUI7SUFKOUI7UUFLcUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FnQnpEO0lBWkcsSUFDVyxXQUFXLENBQUMsSUFBYTtRQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXhCLElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUQ7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDNUIsQ0FBQzsrR0FqQlEsaUJBQWlCO21HQUFqQixpQkFBaUI7O1NBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsMEJBQTBCO2lCQUN2Qzs4QkFRYyxXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgdHlwZSBFbWJlZGRlZFZpZXdSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIHR5cGUgT25EZXN0cm95LFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtUdWlEcm9wZG93blNlcnZpY2V9IGZyb20gJy4vZHJvcGRvd24uc2VydmljZSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIHtAbGluayBUdWlQb3B1cH0gZGlyZWN0aXZlIGluc3RlYWRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3R1aURyb3Bkb3duXScsXG59KVxuZXhwb3J0IGNsYXNzIFR1aURyb3Bkb3duUG9ydGFsIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2UgPSBpbmplY3QoVHVpRHJvcGRvd25TZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgdmlld1JlZj86IEVtYmVkZGVkVmlld1JlZjx1bmtub3duPjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB0dWlEcm9wZG93bihzaG93OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudmlld1JlZj8uZGVzdHJveSgpO1xuXG4gICAgICAgIGlmIChzaG93KSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdSZWYgPSB0aGlzLnNlcnZpY2UuYWRkVGVtcGxhdGUodGhpcy50ZW1wbGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlld1JlZj8uZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,69 +0,0 @@
1
- import { Directive, inject, Input } from '@angular/core';
2
- import { EMPTY_CLIENT_RECT } from '@taiga-ui/cdk/constants';
3
- import { tuiAsPositionAccessor, TuiPositionAccessor } from '@taiga-ui/core/classes';
4
- import { TUI_VIEWPORT } from '@taiga-ui/core/tokens';
5
- import { TUI_DROPDOWN_OPTIONS } from './dropdown-options.directive';
6
- import { TuiDropdownPosition } from './dropdown-position.directive';
7
- import * as i0 from "@angular/core";
8
- class TuiDropdownPositionSided extends TuiPositionAccessor {
9
- constructor() {
10
- super(...arguments);
11
- this.options = inject(TUI_DROPDOWN_OPTIONS);
12
- this.viewport = inject(TUI_VIEWPORT);
13
- this.vertical = inject(TuiDropdownPosition);
14
- this.previous = this.options.direction || 'bottom';
15
- this.tuiDropdownSided = '';
16
- this.tuiDropdownSidedOffset = 4;
17
- this.type = 'dropdown';
18
- }
19
- getPosition(rect) {
20
- if (this.tuiDropdownSided === false) {
21
- return this.vertical.getPosition(rect);
22
- }
23
- const { height, width } = rect;
24
- const hostRect = this.vertical.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;
25
- const viewport = this.viewport.getClientRect();
26
- const { direction, offset } = this.options;
27
- const adjusted = this.vertical.getAlign(this.options.align);
28
- const align = adjusted === 'center' ? 'left' : adjusted;
29
- const available = {
30
- top: hostRect.bottom - viewport.top,
31
- left: hostRect.left - offset - viewport.left,
32
- right: viewport.right - hostRect.right - offset,
33
- bottom: viewport.bottom - hostRect.top,
34
- };
35
- const position = {
36
- top: hostRect.bottom - height + this.tuiDropdownSidedOffset + 1,
37
- left: hostRect.left - width - offset,
38
- right: hostRect.right + offset,
39
- bottom: hostRect.top - this.tuiDropdownSidedOffset - 1, // 1 for border
40
- };
41
- const better = available.top > available.bottom ? 'top' : 'bottom';
42
- const maxLeft = available.left > available.right ? position.left : position.right;
43
- const left = available[align] > width ? position[align] : maxLeft;
44
- if ((available[this.previous] > height && direction) ||
45
- this.previous === better) {
46
- this.vertical.emitDirection(this.previous);
47
- return [position[this.previous], left];
48
- }
49
- this.previous = better;
50
- this.vertical.emitDirection(better);
51
- return [position[better], left];
52
- }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownPositionSided, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
54
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownPositionSided, isStandalone: true, selector: "[tuiDropdownSided]", inputs: { tuiDropdownSided: "tuiDropdownSided", tuiDropdownSidedOffset: "tuiDropdownSidedOffset" }, providers: [TuiDropdownPosition, tuiAsPositionAccessor(TuiDropdownPositionSided)], usesInheritance: true, ngImport: i0 }); }
55
- }
56
- export { TuiDropdownPositionSided };
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownPositionSided, decorators: [{
58
- type: Directive,
59
- args: [{
60
- standalone: true,
61
- selector: '[tuiDropdownSided]',
62
- providers: [TuiDropdownPosition, tuiAsPositionAccessor(TuiDropdownPositionSided)],
63
- }]
64
- }], propDecorators: { tuiDropdownSided: [{
65
- type: Input
66
- }], tuiDropdownSidedOffset: [{
67
- type: Input
68
- }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tcG9zaXRpb24tc2lkZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duL2Ryb3Bkb3duLXBvc2l0aW9uLXNpZGVkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLHFCQUFxQixFQUFFLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBR25ELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOztBQUVsRSxNQUthLHdCQUF5QixTQUFRLG1CQUFtQjtJQUxqRTs7UUFNcUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2hELGFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUM7UUFHL0MscUJBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUd4QywyQkFBc0IsR0FBRyxDQUFDLENBQUM7UUFFbEIsU0FBSSxHQUFHLFVBQVUsQ0FBQztLQTJDckM7SUF6Q1UsV0FBVyxDQUFDLElBQWE7UUFDNUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssS0FBSyxFQUFFO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxX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QkFMcEMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLEVBQUUscUJBQXFCLDBCQUEwQixDQUFDO2lCQUNwRjs4QkFRVSxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFTVBUWV9DTElFTlRfUkVDVH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHt0dWlBc1Bvc2l0aW9uQWNjZXNzb3IsIFR1aVBvc2l0aW9uQWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NsYXNzZXMnO1xuaW1wb3J0IHtUVUlfVklFV1BPUlR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R5cGUgVHVpUG9pbnR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHtUVUlfRFJPUERPV05fT1BUSU9OU30gZnJvbSAnLi9kcm9wZG93bi1vcHRpb25zLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aURyb3Bkb3duUG9zaXRpb259IGZyb20gJy4vZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t0dWlEcm9wZG93blNpZGVkXScsXG4gICAgcHJvdmlkZXJzOiBbVHVpRHJvcGRvd25Qb3NpdGlvbiwgdHVpQXNQb3NpdGlvbkFjY2Vzc29yKFR1aURyb3Bkb3duUG9zaXRpb25TaWRlZCldLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEcm9wZG93blBvc2l0aW9uU2lkZWQgZXh0ZW5kcyBUdWlQb3NpdGlvbkFjY2Vzc29yIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX0RST1BET1dOX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld3BvcnQgPSBpbmplY3QoVFVJX1ZJRVdQT1JUKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZlcnRpY2FsID0gaW5qZWN0KFR1aURyb3Bkb3duUG9zaXRpb24pO1xuICAgIHByaXZhdGUgcHJldmlvdXMgPSB0aGlzLm9wdGlvbnMuZGlyZWN0aW9uIHx8ICdib3R0b20nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHVpRHJvcGRvd25TaWRlZDogYm9vbGVhbiB8IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHVpRHJvcGRvd25TaWRlZE9mZnNldCA9IDQ7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgdHlwZSA9ICdkcm9wZG93bic7XG5cbiAgICBwdWJsaWMgZ2V0UG9zaXRpb24ocmVjdDogRE9NUmVjdCk6IFR1aVBvaW50IHtcbiAgICAgICAgaWYgKHRoaXMudHVpRHJvcGRvd25TaWRlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZlcnRpY2FsLmdldFBvc2l0aW9uKHJlY3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge2hlaWdodCwgd2lkdGh9ID0gcmVjdDtcbiAgICAgICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLnZlcnRpY2FsLmFjY2Vzc29yPy5nZXRDbGllbnRSZWN0KCkgPz8gRU1QVFlfQ0xJRU5UX1JFQ1Q7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydC5nZXRDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHtkaXJlY3Rpb24sIG9mZnNldH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGFkanVzdGVkID0gdGhpcy52ZXJ0aWNhbC5nZXRBbGlnbih0aGlzLm9wdGlvbnMuYWxpZ24pO1xuICAgICAgICBjb25zdCBhbGlnbiA9IGFkanVzdGVkID09PSAnY2VudGVyJyA/ICdsZWZ0JyA6IGFkanVzdGVkO1xuICAgICAgICBjb25zdCBhdmFpbGFibGUgPSB7XG4gICAgICAgICAgICB0b3A6IGhvc3RSZWN0LmJvdHRvbSAtIHZpZXdwb3J0LnRvcCxcbiAgICAgICAgICAgIGxlZnQ6IGhvc3RSZWN0LmxlZnQgLSBvZmZzZXQgLSB2aWV3cG9ydC5sZWZ0LFxuICAgICAgICAgICAgcmlnaHQ6IHZpZXdwb3J0LnJpZ2h0IC0gaG9zdFJlY3QucmlnaHQgLSBvZmZzZXQsXG4gICAgICAgICAgICBib3R0b206IHZpZXdwb3J0LmJvdHRvbSAtIGhvc3RSZWN0LnRvcCxcbiAgICAgICAgfSBhcyBjb25zdDtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB7XG4gICAgICAgICAgICB0b3A6IGhvc3RSZWN0LmJvdHRvbSAtIGhlaWdodCArIHRoaXMudHVpRHJvcGRvd25TaWRlZE9mZnNldCArIDEsIC8vIDEgZm9yIGJvcmRlclxuICAgICAgICAgICAgbGVmdDogaG9zdFJlY3QubGVmdCAtIHdpZHRoIC0gb2Zmc2V0LFxuICAgICAgICAgICAgcmlnaHQ6IGhvc3RSZWN0LnJpZ2h0ICsgb2Zmc2V0LFxuICAgICAgICAgICAgYm90dG9tOiBob3N0UmVjdC50b3AgLSB0aGlzLnR1aURyb3Bkb3duU2lkZWRPZmZzZXQgLSAxLCAvLyAxIGZvciBib3JkZXJcbiAgICAgICAgfSBhcyBjb25zdDtcbiAgICAgICAgY29uc3QgYmV0dGVyID0gYXZhaWxhYmxlLnRvcCA+IGF2YWlsYWJsZS5ib3R0b20gPyAndG9wJyA6ICdib3R0b20nO1xuICAgICAgICBjb25zdCBtYXhMZWZ0ID0gYXZhaWxhYmxlLmxlZnQgPiBhdmFpbGFibGUucmlnaHQgPyBwb3NpdGlvbi5sZWZ0IDogcG9zaXRpb24ucmlnaHQ7XG4gICAgICAgIGNvbnN0IGxlZnQgPSBhdmFpbGFibGVbYWxpZ25dID4gd2lkdGggPyBwb3NpdGlvblthbGlnbl0gOiBtYXhMZWZ0O1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIChhdmFpbGFibGVbdGhpcy5wcmV2aW91c10gPiBoZWlnaHQgJiYgZGlyZWN0aW9uKSB8fFxuICAgICAgICAgICAgdGhpcy5wcmV2aW91cyA9PT0gYmV0dGVyXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy52ZXJ0aWNhbC5lbWl0RGlyZWN0aW9uKHRoaXMucHJldmlvdXMpO1xuXG4gICAgICAgICAgICByZXR1cm4gW3Bvc2l0aW9uW3RoaXMucHJldmlvdXNdLCBsZWZ0XTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJldmlvdXMgPSBiZXR0ZXI7XG4gICAgICAgIHRoaXMudmVydGljYWwuZW1pdERpcmVjdGlvbihiZXR0ZXIpO1xuXG4gICAgICAgIHJldHVybiBbcG9zaXRpb25bYmV0dGVyXSwgbGVmdF07XG4gICAgfVxufVxuIl19
@@ -1,88 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Directive, EventEmitter, inject, Output } from '@angular/core';
3
- import { EMPTY_CLIENT_RECT } from '@taiga-ui/cdk/constants';
4
- import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
5
- import { tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
6
- import { tuiFallbackAccessor, TuiPositionAccessor, TuiRectAccessor, } from '@taiga-ui/core/classes';
7
- import { TUI_VIEWPORT } from '@taiga-ui/core/tokens';
8
- import { TuiDropdownDirective } from './dropdown.directive';
9
- import { TUI_DROPDOWN_OPTIONS } from './dropdown-options.directive';
10
- import * as i0 from "@angular/core";
11
- class TuiDropdownPosition extends TuiPositionAccessor {
12
- constructor() {
13
- super(...arguments);
14
- this.el = tuiInjectElement();
15
- this.options = inject(TUI_DROPDOWN_OPTIONS);
16
- this.viewport = inject(TUI_VIEWPORT);
17
- this.directionChange = new EventEmitter();
18
- this.type = 'dropdown';
19
- this.accessor = tuiFallbackAccessor('dropdown')(inject(TuiRectAccessor), inject(TuiDropdownDirective, { optional: true }));
20
- }
21
- emitDirection(direction) {
22
- this.directionChange.emit(direction);
23
- }
24
- getPosition({ width, height }) {
25
- if (!width && !height) {
26
- this.previous = undefined;
27
- }
28
- const hostRect = this.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;
29
- const viewportRect = this.viewport.getClientRect();
30
- const { minHeight, direction, offset, limitWidth } = this.options;
31
- const align = this.getAlign(this.options.align);
32
- const viewport = {
33
- top: viewportRect.top - offset,
34
- bottom: viewportRect.bottom + offset,
35
- right: viewportRect.right - offset,
36
- left: viewportRect.left + offset,
37
- };
38
- const previous = this.previous || direction || 'bottom';
39
- const available = {
40
- top: hostRect.top - 2 * offset - viewport.top,
41
- bottom: viewport.bottom - hostRect.bottom - 2 * offset,
42
- };
43
- const rectWidth = limitWidth === 'fixed' ? hostRect.width : width;
44
- const right = Math.max(hostRect.right - rectWidth, offset);
45
- const left = hostRect.left + width < viewport.right ? hostRect.left : right;
46
- const position = {
47
- top: hostRect.top - offset - height,
48
- bottom: hostRect.bottom + offset,
49
- right: Math.max(viewport.left, right),
50
- center: hostRect.left + hostRect.width / 2 + width / 2 < viewport.right
51
- ? hostRect.left + hostRect.width / 2 - width / 2
52
- : right,
53
- left: Math.max(viewport.left, left),
54
- };
55
- const better = available.top > available.bottom ? 'top' : 'bottom';
56
- if ((available[previous] > minHeight && direction) ||
57
- available[previous] > height) {
58
- this.emitDirection(previous);
59
- return [position[previous], position[align]];
60
- }
61
- this.previous = better;
62
- this.emitDirection(better);
63
- return [position[better], position[align]];
64
- }
65
- getAlign(align) {
66
- const rtl = this.el.matches('[dir="rtl"] :scope');
67
- if (rtl && align === 'left') {
68
- return 'right';
69
- }
70
- return rtl && align === 'right' ? 'left' : align;
71
- }
72
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownPosition, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
73
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDropdownPosition, isStandalone: true, outputs: { directionChange: "tuiDropdownDirectionChange" }, usesInheritance: true, ngImport: i0 }); }
74
- }
75
- __decorate([
76
- tuiPure
77
- ], TuiDropdownPosition.prototype, "emitDirection", null);
78
- export { TuiDropdownPosition };
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDropdownPosition, decorators: [{
80
- type: Directive,
81
- args: [{
82
- standalone: true,
83
- }]
84
- }], propDecorators: { directionChange: [{
85
- type: Output,
86
- args: ['tuiDropdownDirectionChange']
87
- }], emitDirection: [] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duL2Ryb3Bkb3duLXBvc2l0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDMUQsT0FBTyxFQUNILG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxHQUNsQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUduRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQXdCLE1BQU0sOEJBQThCLENBQUM7O0FBRXpGLE1BR2EsbUJBQW9CLFNBQVEsbUJBQW1CO0lBSDVEOztRQUlxQixPQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixZQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUtqQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO1FBRTNELFNBQUksR0FBRyxVQUFVLENBQUM7UUFDbEIsYUFBUSxHQUNwQixtQkFBbUIsQ0FBa0IsVUFBVSxDQUFDLENBQzVDLE1BQU0sQ0FBTSxlQUFlLENBQUMsRUFDNUIsTUFBTSxDQUFDLG9CQUFv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Q0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBRXhELElBQ0ksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsU0FBUyxJQUFJLFNBQVMsQ0FBQztZQUM5QyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxFQUM5QjtZQUNFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNoRDtRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQXVCO1FBQ25DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFbEQsSUFBSSxHQUFHLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtZQUN6QixPQUFPLE9BQU8sQ0FBQztTQUNsQjtRQUVELE9BQU8sR0FBRyxJQUFJLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3JELENBQUM7K0dBakZRLG1CQUFtQjttR0FBbkIsbUJBQW1COztBQWtCckI7SUFETixPQUFPO3dEQUdQO1NBcEJRLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFTbUIsZUFBZTtzQkFEOUIsTUFBTTt1QkFBQyw0QkFBNEI7Z0JBVzdCLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VNUFRZX0NMSUVOVF9SRUNUfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpUHVyZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7XG4gICAgdHVpRmFsbGJhY2tBY2Nlc3NvcixcbiAgICBUdWlQb3NpdGlvbkFjY2Vzc29yLFxuICAgIFR1aVJlY3RBY2Nlc3Nvcixcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY2xhc3Nlcyc7XG5pbXBvcnQge1RVSV9WSUVXUE9SVH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7dHlwZSBUdWlQb2ludCwgdHlwZSBUdWlWZXJ0aWNhbERpcmVjdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQge1R1aURyb3Bkb3duRGlyZWN0aXZlfSBmcm9tICcuL2Ryb3Bkb3duLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1RVSV9EUk9QRE9XTl9PUFRJT05TLCB0eXBlIFR1aURyb3Bkb3duQWxpZ259IGZyb20gJy4vZHJvcGRvd24tb3B0aW9ucy5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEcm9wZG93blBvc2l0aW9uIGV4dGVuZHMgVHVpUG9zaXRpb25BY2Nlc3NvciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX0RST1BET1dOX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld3BvcnQgPSBpbmplY3QoVFVJX1ZJRVdQT1JUKTtcblxuICAgIHByaXZhdGUgcHJldmlvdXM/OiBUdWlWZXJ0aWNhbERpcmVjdGlvbjtcblxuICAgIEBPdXRwdXQoJ3R1aURyb3Bkb3duRGlyZWN0aW9uQ2hhbmdlJylcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlyZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlWZXJ0aWNhbERpcmVjdGlvbj4oKTtcblxuICAgIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ2Ryb3Bkb3duJztcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWNjZXNzb3I6IFR1aVJlY3RBY2Nlc3NvciB8IG51bGwgPVxuICAgICAgICB0dWlGYWxsYmFja0FjY2Vzc29yPFR1aVJlY3RBY2Nlc3Nvcj4oJ2Ryb3Bkb3duJykoXG4gICAgICAgICAgICBpbmplY3Q8YW55PihUdWlSZWN0QWNjZXNzb3IpLFxuICAgICAgICAgICAgaW5qZWN0KFR1aURyb3Bkb3duRGlyZWN0aXZlLCB7b3B0aW9uYWw6IHRydWV9KSEsXG4gICAgICAgICk7XG5cbiAgICBAdHVpUHVyZVxuICAgIHB1YmxpYyBlbWl0RGlyZWN0aW9uKGRpcmVjdGlvbjogVHVpVmVydGljYWxEaXJlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb25DaGFuZ2UuZW1pdChkaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQb3NpdGlvbih7d2lkdGgsIGhlaWdodH06IERPTVJlY3QpOiBUdWlQb2ludCB7XG4gICAgICAgIGlmICghd2lkdGggJiYgIWhlaWdodCkge1xuICAgICAgICAgICAgdGhpcy5wcmV2aW91cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhvc3RSZWN0ID0gdGhpcy5hY2Nlc3Nvcj8uZ2V0Q2xpZW50UmVjdCgpID8/IEVNUFRZX0NMSUVOVF9SRUNUO1xuICAgICAgICBjb25zdCB2aWV3cG9ydFJlY3QgPSB0aGlzLnZpZXdwb3J0LmdldENsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qge21pbkhlaWdodCwgZGlyZWN0aW9uLCBvZmZzZXQsIGxpbWl0V2lkdGh9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCBhbGlnbiA9IHRoaXMuZ2V0QWxpZ24odGhpcy5vcHRpb25zLmFsaWduKTtcbiAgICAgICAgY29uc3Qgdmlld3BvcnQgPSB7XG4gICAgICAgICAgICB0b3A6IHZpZXdwb3J0UmVjdC50b3AgLSBvZmZzZXQsXG4gICAgICAgICAgICBib3R0b206IHZpZXdwb3J0UmVjdC5ib3R0b20gKyBvZmZzZXQsXG4gICAgICAgICAgICByaWdodDogdmlld3BvcnRSZWN0LnJpZ2h0IC0gb2Zmc2V0LFxuICAgICAgICAgICAgbGVmdDogdmlld3BvcnRSZWN0LmxlZnQgKyBvZmZzZXQsXG4gICAgICAgIH0gYXMgY29uc3Q7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5wcmV2aW91cyB8fCBkaXJlY3Rpb24gfHwgJ2JvdHRvbSc7XG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZSA9IHtcbiAgICAgICAgICAgIHRvcDogaG9zdFJlY3QudG9wIC0gMiAqIG9mZnNldCAtIHZpZXdwb3J0LnRvcCxcbiAgICAgICAgICAgIGJvdHRvbTogdmlld3BvcnQuYm90dG9tIC0gaG9zdFJlY3QuYm90dG9tIC0gMiAqIG9mZnNldCxcbiAgICAgICAgfSBhcyBjb25zdDtcbiAgICAgICAgY29uc3QgcmVjdFdpZHRoID0gbGltaXRXaWR0aCA9PT0gJ2ZpeGVkJyA/IGhvc3RSZWN0LndpZHRoIDogd2lkdGg7XG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gTWF0aC5tYXgoaG9zdFJlY3QucmlnaHQgLSByZWN0V2lkdGgsIG9mZnNldCk7XG4gICAgICAgIGNvbnN0IGxlZnQgPSBob3N0UmVjdC5sZWZ0ICsgd2lkdGggPCB2aWV3cG9ydC5yaWdodCA/IGhvc3RSZWN0LmxlZnQgOiByaWdodDtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB7XG4gICAgICAgICAgICB0b3A6IGhvc3RSZWN0LnRvcCAtIG9mZnNldCAtIGhlaWdodCxcbiAgICAgICAgICAgIGJvdHRvbTogaG9zdFJlY3QuYm90dG9tICsgb2Zmc2V0LFxuICAgICAgICAgICAgcmlnaHQ6IE1hdGgubWF4KHZpZXdwb3J0LmxlZnQsIHJpZ2h0KSxcbiAgICAgICAgICAgIGNlbnRlcjpcbiAgICAgICAgICAgICAgICBob3N0UmVjdC5sZWZ0ICsgaG9zdFJlY3Qud2lkdGggLyAyICsgd2lkdGggLyAyIDwgdmlld3BvcnQucmlnaHRcbiAgICAgICAgICAgICAgICAgICAgPyBob3N0UmVjdC5sZWZ0ICsgaG9zdFJlY3Qud2lkdGggLyAyIC0gd2lkdGggLyAyXG4gICAgICAgICAgICAgICAgICAgIDogcmlnaHQsXG4gICAgICAgICAgICBsZWZ0OiBNYXRoLm1heCh2aWV3cG9ydC5sZWZ0LCBsZWZ0KSxcbiAgICAgICAgfSBhcyBjb25zdDtcbiAgICAgICAgY29uc3QgYmV0dGVyOiBUdWlWZXJ0aWNhbERpcmVjdGlvbiA9XG4gICAgICAgICAgICBhdmFpbGFibGUudG9wID4gYXZhaWxhYmxlLmJvdHRvbSA/ICd0b3AnIDogJ2JvdHRvbSc7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGF2YWlsYWJsZVtwcmV2aW91c10gPiBtaW5IZWlnaHQgJiYgZGlyZWN0aW9uKSB8fFxuICAgICAgICAgICAgYXZhaWxhYmxlW3ByZXZpb3VzXSA+IGhlaWdodFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdERpcmVjdGlvbihwcmV2aW91cyk7XG5cbiAgICAgICAgICAgIHJldHVybiBbcG9zaXRpb25bcHJldmlvdXNdLCBwb3NpdGlvblthbGlnbl1dO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmV2aW91cyA9IGJldHRlcjtcbiAgICAgICAgdGhpcy5lbWl0RGlyZWN0aW9uKGJldHRlcik7XG5cbiAgICAgICAgcmV0dXJuIFtwb3NpdGlvbltiZXR0ZXJdLCBwb3NpdGlvblthbGlnbl1dO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBbGlnbihhbGlnbjogVHVpRHJvcGRvd25BbGlnbik6IFR1aURyb3Bkb3duQWxpZ24ge1xuICAgICAgICBjb25zdCBydGwgPSB0aGlzLmVsLm1hdGNoZXMoJ1tkaXI9XCJydGxcIl0gOnNjb3BlJyk7XG5cbiAgICAgICAgaWYgKHJ0bCAmJiBhbGlnbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3JpZ2h0JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBydGwgJiYgYWxpZ24gPT09ICdyaWdodCcgPyAnbGVmdCcgOiBhbGlnbjtcbiAgICB9XG59XG4iXX0=