@taiga-ui/core 4.52.0-canary.2c75afa → 4.52.0-canary.2d877cf

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 (259) hide show
  1. package/README.md +1 -1
  2. package/classes/accessors.d.ts +1 -1
  3. package/components/calendar/calendar-sheet.component.d.ts +1 -1
  4. package/components/calendar/calendar-sheet.options.d.ts +1 -3
  5. package/{pipes/calendar-sheet → components/calendar}/calendar-sheet.pipe.d.ts +2 -2
  6. package/components/calendar/calendar-spin.component.d.ts +1 -0
  7. package/components/calendar/calendar-year.component.d.ts +1 -1
  8. package/components/calendar/calendar.options.d.ts +9 -0
  9. package/components/calendar/index.d.ts +3 -0
  10. package/{pipes/order-week-days → components/calendar}/order-week-days.pipe.d.ts +1 -1
  11. package/components/data-list/data-list.component.d.ts +7 -11
  12. package/components/data-list/data-list.d.ts +3 -4
  13. package/components/data-list/data-list.tokens.d.ts +1 -23
  14. package/components/data-list/index.d.ts +3 -4
  15. package/components/data-list/opt-group.directive.d.ts +2 -2
  16. package/components/data-list/option-content.directive.d.ts +14 -0
  17. package/components/data-list/option-with-value.directive.d.ts +9 -0
  18. package/components/data-list/option.directive.d.ts +19 -0
  19. package/components/icon/icon.component.d.ts +2 -2
  20. package/components/index.d.ts +2 -3
  21. package/components/input/index.d.ts +2 -0
  22. package/components/input/input.d.ts +5 -0
  23. package/components/input/input.directive.d.ts +30 -0
  24. package/components/label/label.directive.d.ts +1 -1
  25. package/components/link/index.d.ts +0 -1
  26. package/components/link/link.directive.d.ts +8 -6
  27. package/components/loader/loader.options.d.ts +1 -3
  28. package/components/notification/index.d.ts +3 -0
  29. package/components/notification/notification.component.d.ts +14 -0
  30. package/components/notification/notification.d.ts +3 -0
  31. package/components/notification/notification.directive.d.ts +3 -3
  32. package/components/notification/notification.options.d.ts +10 -7
  33. package/components/notification/notification.service.d.ts +17 -0
  34. package/components/root/root.component.d.ts +1 -1
  35. package/components/scrollbar/scroll-ref.directive.d.ts +2 -0
  36. package/components/scrollbar/scrollbar.component.d.ts +1 -5
  37. package/components/spin-button/spin-button.component.d.ts +1 -1
  38. package/components/textfield/index.d.ts +0 -1
  39. package/components/textfield/textfield-multi/textfield-item.component.d.ts +3 -2
  40. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +9 -13
  41. package/components/textfield/textfield.component.d.ts +23 -35
  42. package/components/textfield/textfield.d.ts +2 -3
  43. package/directives/group/group.directive.d.ts +7 -7
  44. package/directives/group/group.options.d.ts +1 -3
  45. package/directives/index.d.ts +0 -5
  46. package/directives/items-handlers/items-handlers.directive.d.ts +5 -9
  47. package/directives/items-handlers/items-handlers.tokens.d.ts +4 -4
  48. package/fesm2022/taiga-ui-core-classes.mjs +8 -10
  49. package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
  50. package/fesm2022/taiga-ui-core-components-button.mjs +6 -6
  51. package/fesm2022/taiga-ui-core-components-calendar.mjs +137 -32
  52. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  53. package/fesm2022/taiga-ui-core-components-cell.mjs +7 -7
  54. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -1
  55. package/fesm2022/taiga-ui-core-components-data-list.mjs +109 -271
  56. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-core-components-error.mjs +11 -10
  58. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-core-components-expand.mjs +3 -3
  60. package/fesm2022/taiga-ui-core-components-icon.mjs +8 -8
  61. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  62. package/fesm2022/taiga-ui-core-components-input.mjs +103 -0
  63. package/fesm2022/taiga-ui-core-components-input.mjs.map +1 -0
  64. package/fesm2022/taiga-ui-core-components-label.mjs +10 -12
  65. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-core-components-link.mjs +13 -28
  67. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-core-components-loader.mjs +6 -11
  69. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  70. package/fesm2022/taiga-ui-core-components-notification.mjs +95 -24
  71. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  72. package/fesm2022/taiga-ui-core-components-root.mjs +7 -8
  73. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  74. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +42 -48
  75. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-core-components-spin-button.mjs +5 -5
  77. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-core-components-textfield.mjs +102 -257
  79. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  80. package/fesm2022/{taiga-ui-core-directives-title.mjs → taiga-ui-core-components-title.mjs} +7 -7
  81. package/fesm2022/{taiga-ui-core-directives-title.mjs.map → taiga-ui-core-components-title.mjs.map} +1 -1
  82. package/fesm2022/taiga-ui-core-components.mjs +2 -3
  83. package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
  84. package/fesm2022/taiga-ui-core-directives-appearance.mjs +15 -14
  85. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  86. package/fesm2022/taiga-ui-core-directives-date-format.mjs +3 -3
  87. package/fesm2022/taiga-ui-core-directives-group.mjs +22 -34
  88. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-core-directives-icons.mjs +11 -10
  90. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +16 -37
  92. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-core-directives-number-format.mjs +3 -3
  94. package/fesm2022/taiga-ui-core-directives.mjs +0 -5
  95. package/fesm2022/taiga-ui-core-directives.mjs.map +1 -1
  96. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +5 -8
  97. package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-core-pipes.mjs +0 -7
  99. package/fesm2022/taiga-ui-core-pipes.mjs.map +1 -1
  100. package/fesm2022/taiga-ui-core-portals-alert.mjs +73 -0
  101. package/fesm2022/taiga-ui-core-portals-alert.mjs.map +1 -0
  102. package/fesm2022/{taiga-ui-core-components-dialog.mjs → taiga-ui-core-portals-dialog.mjs} +15 -15
  103. package/fesm2022/taiga-ui-core-portals-dialog.mjs.map +1 -0
  104. package/fesm2022/{taiga-ui-core-directives-dropdown.mjs → taiga-ui-core-portals-dropdown.mjs} +148 -240
  105. package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -0
  106. package/fesm2022/{taiga-ui-core-directives-hint.mjs → taiga-ui-core-portals-hint.mjs} +49 -50
  107. package/fesm2022/taiga-ui-core-portals-hint.mjs.map +1 -0
  108. package/fesm2022/{taiga-ui-core-components-modal.mjs → taiga-ui-core-portals-modal.mjs} +10 -10
  109. package/fesm2022/taiga-ui-core-portals-modal.mjs.map +1 -0
  110. package/fesm2022/{taiga-ui-core-directives-popup.mjs → taiga-ui-core-portals-popup.mjs} +11 -11
  111. package/fesm2022/taiga-ui-core-portals-popup.mjs.map +1 -0
  112. package/fesm2022/taiga-ui-core-portals.mjs +11 -0
  113. package/fesm2022/taiga-ui-core-portals.mjs.map +1 -0
  114. package/fesm2022/taiga-ui-core-services.mjs +16 -55
  115. package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-core-tokens.mjs +8 -41
  117. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  118. package/fesm2022/taiga-ui-core-utils-format.mjs +1 -23
  119. package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
  120. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +7 -16
  121. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  122. package/fesm2022/taiga-ui-core.mjs +1 -1
  123. package/index.d.ts +1 -1
  124. package/package.json +70 -99
  125. package/pipes/format-number/format-number.pipe.d.ts +1 -1
  126. package/pipes/index.d.ts +0 -7
  127. package/{directives/notification/notification.directive.d.ts → portals/alert/alert.directive.d.ts} +3 -3
  128. package/{directives/notification/notification.service.d.ts → portals/alert/alert.service.d.ts} +3 -3
  129. package/portals/alert/index.d.ts +2 -0
  130. package/{components → portals}/dialog/dialog.service.d.ts +1 -1
  131. package/{directives → portals}/dropdown/dropdown-hover.directive.d.ts +5 -10
  132. package/{directives → portals}/dropdown/dropdown-hover.options.d.ts +1 -3
  133. package/{directives → portals}/dropdown/dropdown-manual.directive.d.ts +2 -2
  134. package/portals/dropdown/dropdown-open.directive.d.ts +30 -0
  135. package/{directives → portals}/dropdown/dropdown-position-sided.directive.d.ts +3 -3
  136. package/{directives → portals}/dropdown/dropdown-position.directive.d.ts +4 -4
  137. package/{directives → portals}/dropdown/dropdown-selection.directive.d.ts +4 -5
  138. package/{directives → portals}/dropdown/dropdown.bindings.d.ts +0 -1
  139. package/{directives → portals}/dropdown/dropdown.d.ts +1 -2
  140. package/{directives → portals}/dropdown/dropdown.directive.d.ts +5 -6
  141. package/{directives → portals}/dropdown/index.d.ts +0 -1
  142. package/{directives → portals}/hint/hint-position.directive.d.ts +1 -1
  143. package/portals/index.d.ts +6 -0
  144. package/services/index.d.ts +0 -2
  145. package/styles/components/link.less +8 -23
  146. package/styles/components/textfield.less +10 -7
  147. package/styles/mixins/appearance.less +1 -1
  148. package/styles/mixins/slider.scss +1 -2
  149. package/tokens/common-icons.d.ts +3 -3
  150. package/tokens/icons.d.ts +0 -4
  151. package/tokens/index.d.ts +0 -4
  152. package/types/index.d.ts +0 -2
  153. package/types/point.d.ts +1 -1
  154. package/types/size.d.ts +0 -11
  155. package/utils/format/index.d.ts +0 -1
  156. package/utils/miscellaneous/get-duration.d.ts +2 -0
  157. package/utils/miscellaneous/index.d.ts +1 -1
  158. package/animations/animations.d.ts +0 -109
  159. package/animations/index.d.ts +0 -1
  160. package/components/alert/alert.component.d.ts +0 -14
  161. package/components/alert/alert.directive.d.ts +0 -8
  162. package/components/alert/alert.interfaces.d.ts +0 -12
  163. package/components/alert/alert.service.d.ts +0 -11
  164. package/components/alert/alert.tokens.d.ts +0 -6
  165. package/components/alert/index.d.ts +0 -5
  166. package/components/data-list/data-list.directive.d.ts +0 -7
  167. package/components/data-list/option/option-content.d.ts +0 -16
  168. package/components/data-list/option/option-legacy.component.d.ts +0 -24
  169. package/components/data-list/option/option.directive.d.ts +0 -27
  170. package/components/link/link.options.d.ts +0 -12
  171. package/components/textfield/textfield.directive.d.ts +0 -35
  172. package/directives/dropdown/dropdown-open-legacy.directive.d.ts +0 -12
  173. package/directives/dropdown/dropdown-open.directive.d.ts +0 -33
  174. package/directives/notification/index.d.ts +0 -2
  175. package/fesm2022/taiga-ui-core-animations.mjs +0 -370
  176. package/fesm2022/taiga-ui-core-animations.mjs.map +0 -1
  177. package/fesm2022/taiga-ui-core-components-alert.mjs +0 -110
  178. package/fesm2022/taiga-ui-core-components-alert.mjs.map +0 -1
  179. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +0 -1
  180. package/fesm2022/taiga-ui-core-components-modal.mjs.map +0 -1
  181. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +0 -1
  182. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +0 -1
  183. package/fesm2022/taiga-ui-core-directives-notification.mjs +0 -73
  184. package/fesm2022/taiga-ui-core-directives-notification.mjs.map +0 -1
  185. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +0 -1
  186. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +0 -24
  187. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +0 -1
  188. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +0 -93
  189. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +0 -1
  190. package/fesm2022/taiga-ui-core-pipes-flag.mjs +0 -31
  191. package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +0 -1
  192. package/fesm2022/taiga-ui-core-pipes-format-date.mjs +0 -27
  193. package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +0 -1
  194. package/fesm2022/taiga-ui-core-pipes-initials.mjs +0 -28
  195. package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +0 -1
  196. package/fesm2022/taiga-ui-core-pipes-month.mjs +0 -29
  197. package/fesm2022/taiga-ui-core-pipes-month.mjs.map +0 -1
  198. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +0 -35
  199. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +0 -1
  200. package/pipes/auto-color/auto-color.pipe.d.ts +0 -7
  201. package/pipes/auto-color/index.d.ts +0 -1
  202. package/pipes/calendar-sheet/index.d.ts +0 -1
  203. package/pipes/calendar-sheet/utils.d.ts +0 -20
  204. package/pipes/flag/flag.pipe.d.ts +0 -14
  205. package/pipes/flag/index.d.ts +0 -1
  206. package/pipes/format-date/format-date.pipe.d.ts +0 -9
  207. package/pipes/format-date/index.d.ts +0 -1
  208. package/pipes/initials/index.d.ts +0 -1
  209. package/pipes/initials/initials.pipe.d.ts +0 -7
  210. package/pipes/month/index.d.ts +0 -1
  211. package/pipes/month/month.pipe.d.ts +0 -10
  212. package/pipes/order-week-days/index.d.ts +0 -1
  213. package/services/dark-theme.service.d.ts +0 -10
  214. package/services/format-date.service.d.ts +0 -8
  215. package/tokens/day-type-handler.d.ts +0 -7
  216. package/tokens/first-day-of-week.d.ts +0 -5
  217. package/tokens/scroll-ref.d.ts +0 -2
  218. package/tokens/spin-icons.d.ts +0 -6
  219. package/types/range-state.d.ts +0 -4
  220. package/types/value-content-context.d.ts +0 -4
  221. package/utils/format/string-hash-to-hsl.d.ts +0 -6
  222. package/utils/miscellaneous/to-animation-options.d.ts +0 -4
  223. /package/{directives → components}/title/index.d.ts +0 -0
  224. /package/{directives → components}/title/title.directive.d.ts +0 -0
  225. /package/{components → portals}/dialog/dialog.component.d.ts +0 -0
  226. /package/{components → portals}/dialog/dialog.directive.d.ts +0 -0
  227. /package/{components → portals}/dialog/dialog.factory.d.ts +0 -0
  228. /package/{components → portals}/dialog/dialog.options.d.ts +0 -0
  229. /package/{components → portals}/dialog/dialog.providers.d.ts +0 -0
  230. /package/{components → portals}/dialog/index.d.ts +0 -0
  231. /package/{directives → portals}/dropdown/dropdown-content.directive.d.ts +0 -0
  232. /package/{directives → portals}/dropdown/dropdown-context.directive.d.ts +0 -0
  233. /package/{directives → portals}/dropdown/dropdown-limit-width.d.ts +0 -0
  234. /package/{directives → portals}/dropdown/dropdown-options.directive.d.ts +0 -0
  235. /package/{directives → portals}/dropdown/dropdown.component.d.ts +0 -0
  236. /package/{directives → portals}/dropdown/dropdown.driver.d.ts +0 -0
  237. /package/{directives → portals}/dropdown/dropdown.providers.d.ts +0 -0
  238. /package/{directives → portals}/dropdown/with-dropdown-open.directive.d.ts +0 -0
  239. /package/{directives → portals}/hint/hint-describe.directive.d.ts +0 -0
  240. /package/{directives → portals}/hint/hint-driver.directive.d.ts +0 -0
  241. /package/{directives → portals}/hint/hint-host.directive.d.ts +0 -0
  242. /package/{directives → portals}/hint/hint-hover.directive.d.ts +0 -0
  243. /package/{directives → portals}/hint/hint-manual.directive.d.ts +0 -0
  244. /package/{directives → portals}/hint/hint-options.directive.d.ts +0 -0
  245. /package/{directives → portals}/hint/hint-overflow.directive.d.ts +0 -0
  246. /package/{directives → portals}/hint/hint-pointer.directive.d.ts +0 -0
  247. /package/{directives → portals}/hint/hint-unstyled.component.d.ts +0 -0
  248. /package/{directives → portals}/hint/hint.component.d.ts +0 -0
  249. /package/{directives → portals}/hint/hint.d.ts +0 -0
  250. /package/{directives → portals}/hint/hint.directive.d.ts +0 -0
  251. /package/{directives → portals}/hint/hint.providers.d.ts +0 -0
  252. /package/{directives → portals}/hint/index.d.ts +0 -0
  253. /package/{components → portals}/modal/index.d.ts +0 -0
  254. /package/{components → portals}/modal/modal.component.d.ts +0 -0
  255. /package/{components → portals}/modal/modal.service.d.ts +0 -0
  256. /package/{directives → portals}/popup/index.d.ts +0 -0
  257. /package/{directives → portals}/popup/popup.directive.d.ts +0 -0
  258. /package/{directives → portals}/popup/popup.service.d.ts +0 -0
  259. /package/{directives → portals}/popup/popups.component.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-core-portals-dropdown.mjs","sources":["../../../projects/core/portals/dropdown/dropdown.driver.ts","../../../projects/core/portals/dropdown/dropdown.providers.ts","../../../projects/core/portals/dropdown/dropdown-options.directive.ts","../../../projects/core/portals/dropdown/dropdown-position.directive.ts","../../../projects/core/portals/dropdown/dropdown.directive.ts","../../../projects/core/portals/dropdown/dropdown.component.ts","../../../projects/core/portals/dropdown/dropdown.template.html","../../../projects/core/portals/dropdown/dropdown-content.directive.ts","../../../projects/core/portals/dropdown/dropdown-context.directive.ts","../../../projects/core/portals/dropdown/dropdown-hover.options.ts","../../../projects/core/portals/dropdown/dropdown-open.directive.ts","../../../projects/core/portals/dropdown/dropdown-hover.directive.ts","../../../projects/core/portals/dropdown/dropdown-manual.directive.ts","../../../projects/core/portals/dropdown/dropdown-position-sided.directive.ts","../../../projects/core/portals/dropdown/dropdown-selection.directive.ts","../../../projects/core/portals/dropdown/dropdown.ts","../../../projects/core/portals/dropdown/dropdown.bindings.ts","../../../projects/core/portals/dropdown/dropdown-limit-width.ts","../../../projects/core/portals/dropdown/with-dropdown-open.directive.ts","../../../projects/core/portals/dropdown/taiga-ui-core-portals-dropdown.ts"],"sourcesContent":["import {Directive, Injectable} from '@angular/core';\nimport {type TuiDriver, TuiDriverDirective} from '@taiga-ui/core/classes';\nimport {BehaviorSubject} from 'rxjs';\n\n@Injectable()\nexport class TuiDropdownDriver extends BehaviorSubject<boolean> implements TuiDriver {\n public readonly type = 'dropdown';\n\n constructor() {\n super(false);\n }\n}\n\n@Directive()\nexport class TuiDropdownDriverDirective extends TuiDriverDirective {\n public readonly type = 'dropdown';\n}\n","import {InjectionToken, type Type} from '@angular/core';\n\nimport {TuiDropdownComponent} from './dropdown.component';\n\n/**\n * A component to display a dropdown\n */\nexport const TUI_DROPDOWN_COMPONENT = new InjectionToken<Type<any>>(\n ngDevMode ? 'TUI_DROPDOWN_COMPONENT' : '',\n {\n factory: () => TuiDropdownComponent,\n },\n);\n\nexport const TUI_DROPDOWN_CONTEXT = new InjectionToken<Record<any, any>>(\n ngDevMode ? 'TUI_DROPDOWN_CONTEXT' : '',\n);\n","import {\n Directive,\n type FactoryProvider,\n inject,\n InjectionToken,\n Input,\n Optional,\n Self,\n SkipSelf,\n} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {type TuiVerticalDirection} from '@taiga-ui/core/types';\nimport {tuiOverrideOptions} from '@taiga-ui/core/utils';\n\nexport type TuiDropdownAlign = 'center' | 'left' | 'right';\nexport type TuiDropdownWidth = 'auto' | 'fixed' | 'min';\n\nexport interface TuiDropdownOptions {\n readonly align: TuiDropdownAlign;\n readonly appearance: string;\n readonly direction: TuiVerticalDirection | null;\n readonly limitWidth: TuiDropdownWidth;\n readonly maxHeight: number;\n readonly minHeight: number;\n readonly offset: number;\n}\n\n/** Default values for dropdown options */\nexport const TUI_DROPDOWN_DEFAULT_OPTIONS: TuiDropdownOptions = {\n align: 'left',\n direction: null,\n limitWidth: 'auto',\n maxHeight: 400,\n minHeight: 80,\n offset: 4,\n appearance: '',\n};\n\n/**\n * Default parameters for dropdown directive\n */\nexport const TUI_DROPDOWN_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_DROPDOWN_OPTIONS' : '',\n {\n factory: () => TUI_DROPDOWN_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiDropdownOptionsProvider: (\n options: Partial<TuiDropdownOptions>,\n) => FactoryProvider = (override: Partial<TuiDropdownOptions>) => ({\n provide: TUI_DROPDOWN_OPTIONS,\n deps: [\n [new Optional(), new Self(), TuiDropdownOptionsDirective],\n [new Optional(), new SkipSelf(), TUI_DROPDOWN_OPTIONS],\n ],\n useFactory: tuiOverrideOptions(override, TUI_DROPDOWN_DEFAULT_OPTIONS),\n});\n\n@Directive({\n selector:\n '[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]',\n providers: [tuiProvide(TUI_DROPDOWN_OPTIONS, TuiDropdownOptionsDirective)],\n})\nexport class TuiDropdownOptionsDirective implements TuiDropdownOptions {\n private readonly options = inject(TUI_DROPDOWN_OPTIONS, {skipSelf: true});\n\n @Input('tuiDropdownAlign')\n public align = this.options.align;\n\n @Input('tuiDropdownAppearance')\n public appearance = this.options.appearance;\n\n @Input('tuiDropdownDirection')\n public direction = this.options.direction;\n\n @Input('tuiDropdownLimitWidth')\n public limitWidth = this.options.limitWidth;\n\n @Input('tuiDropdownMinHeight')\n public minHeight = this.options.minHeight;\n\n @Input('tuiDropdownMaxHeight')\n public maxHeight = this.options.maxHeight;\n\n @Input('tuiDropdownOffset')\n public offset = this.options.offset;\n}\n","import {Directive, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiFallbackAccessor,\n TuiPositionAccessor,\n TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {type TuiPoint, type TuiVerticalDirection} from '@taiga-ui/core/types';\nimport {distinctUntilChanged, Subject} from 'rxjs';\n\nimport {TUI_DROPDOWN_OPTIONS, type TuiDropdownAlign} from './dropdown-options.directive';\n\n@Directive()\nexport class TuiDropdownPosition extends TuiPositionAccessor {\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_DROPDOWN_OPTIONS);\n private readonly viewport = inject(TUI_VIEWPORT);\n private previous?: TuiVerticalDirection;\n\n public readonly direction = new Subject<TuiVerticalDirection>();\n public readonly type = 'dropdown';\n public readonly accessor = tuiFallbackAccessor<TuiRectAccessor>('dropdown')(\n inject<any>(TuiRectAccessor, {optional: true}),\n {getClientRect: () => this.el.getBoundingClientRect()},\n );\n\n public readonly tuiDropdownDirectionChange = outputFromObservable(\n this.direction.pipe(distinctUntilChanged()),\n );\n\n public getPosition({width, height}: DOMRect): TuiPoint {\n if (!width && !height) {\n this.previous = undefined;\n }\n\n const hostRect = this.accessor.getClientRect();\n const viewportRect = this.viewport.getClientRect();\n const {minHeight, direction, offset, limitWidth} = this.options;\n const align = this.getAlign(this.options.align);\n const viewport = {\n top: viewportRect.top - offset,\n bottom: viewportRect.bottom + offset,\n right: viewportRect.right - offset,\n left: viewportRect.left + offset,\n } as const;\n const previous = this.previous || direction || 'bottom';\n const available = {\n top: hostRect.top - 2 * offset - viewport.top,\n bottom: viewport.bottom - hostRect.bottom - 2 * offset,\n } as const;\n const rectWidth = limitWidth === 'fixed' ? hostRect.width : width;\n const right = Math.max(hostRect.right - rectWidth, offset);\n const left = hostRect.left + width < viewport.right ? hostRect.left : right;\n const position = {\n top: hostRect.top - offset - height,\n bottom: hostRect.bottom + offset,\n right: Math.max(viewport.left, right),\n center:\n hostRect.left + hostRect.width / 2 + width / 2 < viewport.right\n ? hostRect.left + hostRect.width / 2 - width / 2\n : right,\n left: Math.max(viewport.left, left),\n } as const;\n const better: TuiVerticalDirection =\n available.top > available.bottom ? 'top' : 'bottom';\n\n if (\n (available[previous] > minHeight && direction) ||\n available[previous] > height\n ) {\n this.direction.next(previous);\n\n return [position[align], position[previous]];\n }\n\n this.previous = better;\n this.direction.next(better);\n\n return [position[align], position[better]];\n }\n\n public getAlign(align: TuiDropdownAlign): TuiDropdownAlign {\n const rtl = this.el.matches('[dir=\"rtl\"] :scope');\n\n if (rtl && align === 'left') {\n return 'right';\n }\n\n return rtl && align === 'right' ? 'left' : align;\n }\n}\n","import {coerceArray} from '@angular/cdk/coercion';\nimport {\n type AfterViewChecked,\n ChangeDetectorRef,\n type ComponentRef,\n computed,\n Directive,\n effect,\n inject,\n INJECTOR,\n input,\n type OnDestroy,\n signal,\n TemplateRef,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiAsVehicle,\n type TuiRectAccessor,\n type TuiVehicle,\n} from '@taiga-ui/core/classes';\nimport {TuiPopupService} from '@taiga-ui/core/portals/popup';\nimport {tuiCheckFixedPosition} from '@taiga-ui/core/utils';\nimport {\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusTemplate,\n} from '@taiga-ui/polymorpheus';\nimport {Subject, throttleTime} from 'rxjs';\n\nimport {TuiDropdownDriver, TuiDropdownDriverDirective} from './dropdown.driver';\nimport {TUI_DROPDOWN_COMPONENT} from './dropdown.providers';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n@Directive({\n selector: '[tuiDropdown]:not(ng-container):not(ng-template)',\n providers: [tuiAsVehicle(TuiDropdownDirective)],\n exportAs: 'tuiDropdown',\n hostDirectives: [\n TuiDropdownDriverDirective,\n {\n directive: TuiDropdownPosition,\n outputs: ['tuiDropdownDirectionChange'],\n },\n ],\n host: {\n '[class.tui-dropdown-open]': 'ref()',\n },\n})\nexport class TuiDropdownDirective\n implements AfterViewChecked, OnDestroy, TuiRectAccessor, TuiVehicle\n{\n private readonly refresh$ = new Subject<void>();\n private readonly service = inject(TuiPopupService);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly drivers = coerceArray(\n inject(TuiDropdownDriver, {self: true, optional: true}),\n );\n\n protected readonly sub = this.refresh$\n .pipe(throttleTime(0, tuiZonefreeScheduler()), takeUntilDestroyed())\n .subscribe(() => {\n this.ref()?.changeDetectorRef.detectChanges();\n this.ref()?.changeDetectorRef.markForCheck();\n });\n\n protected readonly autoClose = effect(() => {\n if (!this.content()) {\n this.toggle(false);\n }\n });\n\n public readonly ref = signal<ComponentRef<unknown> | null>(null);\n public readonly el = tuiInjectElement();\n public readonly type = 'dropdown';\n public readonly component = new PolymorpheusComponent(\n inject(TUI_DROPDOWN_COMPONENT),\n inject(INJECTOR),\n );\n\n public readonly tuiDropdown = input<PolymorpheusContent<TuiContext<() => void>>>();\n public readonly content = computed<PolymorpheusContent<TuiContext<() => void>>>(\n (content = this.tuiDropdown()) => {\n return content instanceof TemplateRef\n ? new PolymorpheusTemplate(content, this.cdr)\n : content;\n },\n );\n\n public get position(): 'absolute' | 'fixed' {\n return tuiCheckFixedPosition(this.el) ? 'fixed' : 'absolute';\n }\n\n public ngAfterViewChecked(): void {\n this.refresh$.next();\n }\n\n public ngOnDestroy(): void {\n this.toggle(false);\n }\n\n public getClientRect(): DOMRect {\n return this.el.getBoundingClientRect();\n }\n\n public toggle(show: boolean): void {\n const ref = this.ref();\n\n if (show && this.content() && !ref) {\n this.ref.set(this.service.add(this.component));\n } else if (!show && ref) {\n this.ref.set(null);\n ref.destroy();\n }\n\n // TODO: Remove in v5, only needed in Angular 16\n this.cdr.markForCheck();\n this.drivers.forEach((driver) => driver?.next(show));\n }\n}\n","import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n inject,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiPositionAccessorFor,\n TuiRectAccessor,\n tuiRectAccessorFor,\n} from '@taiga-ui/core/classes';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiPositionService, TuiVisualViewportService} from '@taiga-ui/core/services';\nimport {TUI_DARK_MODE, TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {map, takeWhile} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TUI_DROPDOWN_CONTEXT} from './dropdown.providers';\nimport {TUI_DROPDOWN_OPTIONS} from './dropdown-options.directive';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n/**\n * @description:\n * This component is used to show template in a portal\n * using default style of white rounded box with a shadow\n */\n@Component({\n selector: 'tui-dropdown',\n imports: [PolymorpheusOutlet, TuiScrollbar],\n templateUrl: './dropdown.template.html',\n styleUrl: './dropdown.style.less',\n // @bad TODO: OnPush\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [\n TuiPositionService,\n tuiPositionAccessorFor('dropdown', TuiDropdownPosition),\n tuiRectAccessorFor(\n 'dropdown',\n forwardRef(() => TuiDropdownDirective),\n ),\n ],\n hostDirectives: [TuiActiveZone, TuiAnimated],\n host: {\n '[attr.data-appearance]': 'options.appearance',\n '[attr.tuiTheme]': 'theme()',\n },\n})\nexport class TuiDropdownComponent implements AfterViewInit {\n private readonly el = tuiInjectElement();\n private readonly accessor = inject(TuiRectAccessor);\n private readonly viewport = inject(TUI_VIEWPORT);\n private readonly vvs = inject(TuiVisualViewportService);\n\n private readonly styles$ = inject(TuiPositionService).pipe(\n takeWhile(\n () =>\n this.directive.el.isConnected &&\n !!this.directive.el.getBoundingClientRect().height,\n ),\n map((v) => (this.position === 'fixed' ? this.vvs.correct(v) : v)),\n map((point) => this.getStyles(...point)),\n takeUntilDestroyed(),\n );\n\n protected readonly options = inject(TUI_DROPDOWN_OPTIONS);\n protected readonly directive = inject(TuiDropdownDirective);\n protected readonly context = inject(TUI_DROPDOWN_CONTEXT, {optional: true});\n protected readonly darkMode = inject(TUI_DARK_MODE);\n protected readonly position = this.directive.position;\n protected readonly theme = computed((_ = this.darkMode()) =>\n this.directive.el.closest('[tuiTheme]')?.getAttribute('tuiTheme'),\n );\n\n public ngAfterViewInit(): void {\n this.styles$.subscribe({\n next: (styles) => Object.assign(this.el.style, styles),\n complete: () => this.close?.(),\n });\n }\n\n protected readonly close = (): void => this.directive.toggle(false);\n\n private getStyles(x: number, y: number): Record<string, string> {\n const {maxHeight, minHeight, offset, limitWidth} = this.options;\n const parent = this.el.offsetParent?.getBoundingClientRect() || EMPTY_CLIENT_RECT;\n const {left = 0, top = 0} = this.position === 'fixed' ? {} : parent;\n const rect = this.accessor.getClientRect();\n const viewport = this.viewport.getClientRect();\n const above = rect.top - viewport.top - 2 * offset;\n const below = viewport.top + viewport.height - y - offset;\n const available = y > rect.bottom ? below : above;\n const height =\n this.el.getBoundingClientRect().right <= rect.left || x >= rect.right\n ? maxHeight\n : tuiClamp(available, minHeight, maxHeight);\n\n y -= top;\n x -= left;\n\n return {\n position: this.position,\n top: tuiPx(Math.round(Math.max(y, offset - top))),\n left: tuiPx(Math.round(x)),\n maxHeight: tuiPx(Math.round(height)),\n width: limitWidth === 'fixed' ? tuiPx(Math.round(rect.width)) : '',\n minWidth: limitWidth === 'min' ? tuiPx(Math.round(rect.width)) : '',\n maxWidth: tuiPx(Math.round(viewport.width) - 16), // 8px min gap from each side\n };\n }\n}\n","<tui-scrollbar class=\"t-scroll\">\n <div\n *polymorpheusOutlet=\"directive.content() as text; context: {$implicit: close}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </div>\n</tui-scrollbar>\n","import {isPlatformBrowser} from '@angular/common';\nimport {Directive, inject, type OnDestroy, PLATFORM_ID, TemplateRef} from '@angular/core';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\n\n@Directive({\n selector: 'ng-template[tuiDropdown]',\n})\nexport class TuiDropdownContent implements OnDestroy {\n private readonly directive = inject(TuiDropdownDirective);\n\n constructor() {\n tuiSetSignal(this.directive.tuiDropdown, inject(TemplateRef));\n\n if (\n isPlatformBrowser(inject(PLATFORM_ID)) &&\n this.directive.el.matches(':focus-within')\n ) {\n this.directive.toggle(true);\n }\n }\n\n public ngOnDestroy(): void {\n tuiSetSignal(this.directive.tuiDropdown, null);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {computed, Directive, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiTypedFromEvent, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_TOUCH} from '@taiga-ui/cdk/tokens';\nimport {tuiGetActualTarget, tuiPointToClientRect} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\nimport {shouldCall} from '@taiga-ui/event-plugins';\nimport {merge} from 'rxjs';\n\nimport {TuiDropdownDriver} from './dropdown.driver';\n\nfunction activeZoneFilter(this: TuiDropdownContext, event?: Event): boolean {\n return (\n !event ||\n (this.driver.value && !this.activeZone.contains(tuiGetActualTarget(event)))\n );\n}\n\n@Directive({\n selector: '[tuiDropdownContext]',\n providers: [\n TuiActiveZone,\n TuiDropdownDriver,\n tuiAsDriver(TuiDropdownDriver),\n tuiAsRectAccessor(TuiDropdownContext),\n ],\n host: {\n '[style.user-select]': 'userSelect()',\n '[style.-webkit-user-select]': 'userSelect()',\n '[style.-webkit-touch-callout]': 'userSelect()',\n '(document:keydown.esc)': 'closeDropdown()',\n '(longtap)': 'onContextMenu($event.detail.clientX, $event.detail.clientY)',\n },\n})\nexport class TuiDropdownContext extends TuiRectAccessor {\n private readonly isTouch = inject(TUI_IS_TOUCH);\n private currentRect = EMPTY_CLIENT_RECT;\n\n protected readonly userSelect = computed(() => (this.isTouch() ? 'none' : null));\n protected readonly activeZone = inject(TuiActiveZone);\n protected readonly driver = inject(TuiDropdownDriver);\n protected readonly doc = inject(DOCUMENT);\n\n protected readonly sub = merge(\n tuiTypedFromEvent(this.doc, 'pointerdown'),\n tuiTypedFromEvent(this.doc, 'contextmenu', {capture: true}),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe((event: Event) => this.closeDropdown(event));\n\n public readonly type = 'dropdown';\n\n public getClientRect(): DOMRect {\n return this.currentRect;\n }\n\n @shouldCall(activeZoneFilter)\n protected closeDropdown(_event?: Event): void {\n this.driver.next(false);\n this.currentRect = EMPTY_CLIENT_RECT;\n }\n\n protected onContextMenu(x: number, y: number): void {\n this.currentRect = tuiPointToClientRect(x, y);\n this.driver.next(true);\n }\n}\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiDropdownHoverOptions {\n readonly hideDelay: number;\n readonly showDelay: number;\n}\n\n/** Default values for hint options */\nexport const TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS: TuiDropdownHoverOptions = {\n showDelay: 200,\n hideDelay: 500,\n};\n\n/**\n * Default parameters for dropdown hover directive\n */\nexport const [TUI_DROPDOWN_HOVER_OPTIONS, tuiDropdownHoverOptionsProvider] =\n tuiCreateOptions(TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS);\n","import {\n computed,\n contentChild,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n model,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiObscured} from '@taiga-ui/cdk/directives/obscured';\nimport {\n tuiCloseWatcher,\n tuiIfMap,\n tuiWatch,\n tuiZonefull,\n} from '@taiga-ui/cdk/observables';\nimport {\n tuiGetActualTarget,\n tuiInjectElement,\n tuiIsElement,\n tuiIsElementEditable,\n tuiIsHTMLElement,\n} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiGetClosestFocusable,\n tuiIsFocusable,\n tuiIsFocusedIn,\n} from '@taiga-ui/cdk/utils/focus';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsDriver} from '@taiga-ui/core/classes';\nimport {tuiIsEditingKey} from '@taiga-ui/core/utils/miscellaneous';\nimport {shouldCall} from '@taiga-ui/event-plugins';\nimport {filter, fromEvent, merge} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownDriver} from './dropdown.driver';\n\nfunction shouldClose(this: TuiDropdownOpen, event: KeyboardEvent): boolean {\n return (\n // @ts-ignore\n typeof CloseWatcher === 'undefined' &&\n // ?. for autofill events\n event.key?.toLowerCase() === 'escape' &&\n this.enabled() &&\n this.open() &&\n !this['dropdown']()?.nextElementSibling\n );\n}\n\n@Directive({\n selector:\n '[tuiDropdown][tuiDropdownAuto],[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]',\n providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],\n hostDirectives: [\n TuiObscured,\n {\n directive: TuiActiveZone,\n inputs: ['tuiActiveZoneParent'],\n outputs: ['tuiActiveZoneChange'],\n },\n ],\n host: {\n '(click)': 'onClick($event.target)',\n '(keydown.arrowDown)': 'onArrow($event, false)',\n '(keydown.arrowUp)': 'onArrow($event, true)',\n '(document:keydown.zoneless.capture)': 'onEsc($event)',\n '(document:keydown.zoneless)': 'onKeydown($event)',\n // TODO: Necessary because startWith(false) + distinctUntilChanged() in TuiActiveZone, think of better solution\n '(tuiActiveZoneChange)': '0',\n },\n})\nexport class TuiDropdownOpen {\n private readonly dropdownHost = contentChild('tuiDropdownHost', {\n descendants: true,\n read: ElementRef,\n });\n\n private readonly directive = inject(TuiDropdownDirective);\n private readonly el = tuiInjectElement();\n private readonly obscured = inject(TuiObscured);\n private readonly activeZone = inject(TuiActiveZone);\n private readonly driver = inject(TuiDropdownDriver);\n private readonly dropdown = computed(\n () => this.directive.ref()?.location.nativeElement,\n );\n\n public readonly enabled = input(true, {alias: 'tuiDropdownEnabled'});\n public readonly open = model(false, {alias: 'tuiDropdownOpen'});\n\n protected readonly driveEffect = effect(() => this.drive(this.open()));\n protected readonly syncSub = this.driver\n .pipe(\n filter((open) => open !== this.open()),\n takeUntilDestroyed(),\n )\n .subscribe((open) => this.update(open));\n\n protected readonly closeSub = this.driver\n .pipe(\n tuiIfMap(() =>\n merge(\n tuiCloseWatcher(),\n this.obscured.tuiObscured$.pipe(filter(Boolean)),\n this.activeZone.tuiActiveZoneChange.pipe(filter((a) => !a)),\n fromEvent(this.el, 'focusin').pipe(\n filter(\n (event) =>\n !this.host.contains(tuiGetActualTarget(event)) ||\n !this.directive.ref(),\n ),\n ),\n ),\n ),\n tuiZonefull(),\n tuiWatch(),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.toggle(false));\n\n public toggle(open: boolean): void {\n if (this.focused && !open) {\n this.host.focus({preventScroll: true});\n }\n\n this.update(open);\n }\n\n @shouldCall(shouldClose)\n protected onEsc(event: KeyboardEvent): void {\n event.preventDefault();\n this.toggle(false);\n }\n\n protected onClick(target: HTMLElement): void {\n if (!this.editable && this.host.contains(target)) {\n this.update(!this.open());\n }\n }\n\n protected onArrow(event: KeyboardEvent, up: boolean): void {\n if (\n !tuiIsElement(event.target) ||\n !this.host.contains(event.target) ||\n !this.enabled() ||\n !this.directive.content()\n ) {\n return;\n }\n\n event.preventDefault();\n this.focusDropdown(up);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n const target = tuiGetActualTarget(event);\n\n if (\n !event.defaultPrevented &&\n tuiIsEditingKey(event.key) &&\n this.editable &&\n this.focused &&\n tuiIsHTMLElement(target) &&\n !tuiIsElementEditable(target)\n ) {\n this.host.focus({preventScroll: true});\n }\n }\n\n private get host(): HTMLElement {\n const initial = this.dropdownHost()?.nativeElement || this.el;\n const focusable = tuiIsFocusable(initial)\n ? initial\n : tuiGetClosestFocusable({initial, root: this.el});\n\n return this.dropdownHost()?.nativeElement || focusable || this.el;\n }\n\n private get editable(): boolean {\n return tuiIsElementEditable(this.host);\n }\n\n private get focused(): boolean {\n return tuiIsFocusedIn(this.host) || tuiIsFocusedIn(this.dropdown());\n }\n\n private update(open: boolean): void {\n if (open && !this.enabled()) {\n return this.drive();\n }\n\n this.open.set(open);\n this.drive();\n }\n\n private drive(open = this.open() && this.enabled()): void {\n tuiSetSignal(this.obscured.tuiObscuredEnabled, open);\n this.driver.next(open);\n }\n\n private focusDropdown(previous: boolean): void {\n const root = this.dropdown();\n\n if (!root) {\n this.update(true);\n\n return;\n }\n\n const doc = this.el.ownerDocument;\n const child = root.appendChild(doc.createElement('div'));\n const initial = previous ? child : root;\n const focusable = tuiGetClosestFocusable({initial, previous, root});\n\n child.remove();\n focusable?.focus();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {contentChild, Directive, ElementRef, inject, input} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiTypedFromEvent, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {\n tuiGetActualTarget,\n tuiInjectElement,\n tuiIsElement,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/classes';\nimport {\n delay,\n distinctUntilChanged,\n filter,\n fromEvent,\n map,\n merge,\n of,\n share,\n startWith,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TUI_DROPDOWN_HOVER_OPTIONS} from './dropdown-hover.options';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\n@Directive({\n selector: '[tuiDropdownHover]',\n providers: [TuiActiveZone, tuiAsDriver(TuiDropdownHover)],\n host: {\n '(click.capture)': 'onClick($event)',\n },\n})\nexport class TuiDropdownHover extends TuiDriver {\n private readonly dropdownHost = contentChild('tuiDropdownHost', {\n descendants: true,\n read: ElementRef,\n });\n\n private hovered = false;\n private readonly el = tuiInjectElement();\n private readonly doc = inject(DOCUMENT);\n private readonly options = inject(TUI_DROPDOWN_HOVER_OPTIONS);\n private readonly activeZone = inject(TuiActiveZone);\n private readonly open = inject(TuiDropdownOpen, {optional: true});\n private readonly stream$ = merge(\n /**\n * Dropdown can be removed not only via click/touch –\n * swipe on mobile devices removes dropdown sheet without triggering new mouseover / mouseout events.\n */\n toObservable(inject(TuiDropdownDirective).ref).pipe(\n filter((x) => !x && this.hovered),\n switchMap(() =>\n tuiTypedFromEvent(this.doc, 'pointerdown').pipe(\n map(tuiGetActualTarget),\n delay(this.tuiDropdownHideDelay()),\n startWith(null),\n takeUntil(fromEvent(this.doc, 'mouseover')),\n ),\n ),\n ),\n tuiTypedFromEvent(this.doc, 'mouseover').pipe(map(tuiGetActualTarget)),\n tuiTypedFromEvent(this.doc, 'mouseout').pipe(map((e) => e.relatedTarget)),\n ).pipe(\n map((element) => tuiIsElement(element) && this.isHovered(element)),\n distinctUntilChanged(),\n switchMap((v) =>\n of(v).pipe(\n delay(v ? this.tuiDropdownShowDelay() : this.tuiDropdownHideDelay()),\n ),\n ),\n tuiZoneOptimized(),\n tap((hovered) => {\n this.hovered = hovered;\n this.open?.toggle(hovered);\n }),\n share(),\n );\n\n public readonly tuiDropdownShowDelay = input(this.options.showDelay);\n public readonly tuiDropdownHideDelay = input(this.options.hideDelay);\n public readonly type = 'dropdown';\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n protected onClick(event: MouseEvent): void {\n if (this.hovered && this.open) {\n event.preventDefault();\n }\n }\n\n private isHovered(element: Element): boolean {\n const host = this.dropdownHost()?.nativeElement || this.el;\n const hovered = host.contains(element);\n const child = !this.el.contains(element) && this.activeZone.contains(element);\n\n return hovered || child;\n }\n}\n","import {Directive, inject, input, type OnChanges} from '@angular/core';\nimport {tuiAsDriver} from '@taiga-ui/core/classes';\n\nimport {TuiDropdownDriver} from './dropdown.driver';\n\n@Directive({\n selector: '[tuiDropdownManual]',\n providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],\n})\nexport class TuiDropdownManual implements OnChanges {\n private readonly driver = inject(TuiDropdownDriver);\n\n public readonly tuiDropdownManual = input<boolean | ''>(false);\n\n public ngOnChanges(): void {\n this.driver.next(!!this.tuiDropdownManual());\n }\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiAsPositionAccessor, TuiPositionAccessor} from '@taiga-ui/core/classes';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\nimport {TUI_DROPDOWN_OPTIONS} from './dropdown-options.directive';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\n\n@Directive({\n selector: '[tuiDropdownSided]',\n providers: [TuiDropdownPosition, tuiAsPositionAccessor(TuiDropdownPositionSided)],\n})\nexport class TuiDropdownPositionSided extends TuiPositionAccessor {\n private readonly options = inject(TUI_DROPDOWN_OPTIONS);\n private readonly viewport = inject(TUI_VIEWPORT);\n private readonly vertical = inject(TuiDropdownPosition);\n private previous = this.options.direction || 'bottom';\n\n public readonly tuiDropdownSided = input<boolean | string>('');\n public readonly tuiDropdownSidedOffset = input(4);\n public readonly type = 'dropdown';\n\n public getPosition(rect: DOMRect): TuiPoint {\n if (this.tuiDropdownSided() === false) {\n return this.vertical.getPosition(rect);\n }\n\n const {height, width} = rect;\n const hostRect = this.vertical.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\n const viewport = this.viewport.getClientRect();\n const {direction, offset} = this.options;\n const adjusted = this.vertical.getAlign(this.options.align);\n const align = adjusted === 'center' ? 'left' : adjusted;\n const available = {\n top: hostRect.bottom - viewport.top,\n left: hostRect.left - offset - viewport.left,\n right: viewport.right - hostRect.right - offset,\n bottom: viewport.bottom - hostRect.top,\n } as const;\n const position = {\n top: hostRect.bottom - height + this.tuiDropdownSidedOffset() + 1, // 1 for border\n left: hostRect.left - width - offset,\n right: hostRect.right + offset,\n bottom: hostRect.top - this.tuiDropdownSidedOffset() - 1, // 1 for border\n } as const;\n const better = available.top > available.bottom ? 'top' : 'bottom';\n const maxLeft = available.left > available.right ? position.left : position.right;\n const left = available[align] > width ? position[align] : maxLeft;\n\n if (\n (available[this.previous] > height && direction) ||\n this.previous === better\n ) {\n this.vertical.direction.next(this.previous);\n\n return [left, position[this.previous]];\n }\n\n this.previous = better;\n this.vertical.direction.next(better);\n\n return [left, position[better]];\n }\n}\n","import {DOCUMENT, isPlatformBrowser} from '@angular/common';\nimport {\n computed,\n Directive,\n inject,\n input,\n type OnDestroy,\n PLATFORM_ID,\n ViewContainerRef,\n} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_SPACE,\n EMPTY_CLIENT_RECT,\n TUI_TRUE_HANDLER,\n} from '@taiga-ui/cdk/constants';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {\n tuiInjectElement,\n tuiIsElement,\n tuiIsTextfield,\n tuiIsTextNode,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGetFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsString, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsDriver,\n tuiAsRectAccessor,\n TuiDriver,\n type TuiRectAccessor,\n} from '@taiga-ui/core/classes';\nimport {TUI_SELECTION_STREAM} from '@taiga-ui/core/tokens';\nimport {tuiGetWordRange} from '@taiga-ui/core/utils';\nimport {combineLatest, distinctUntilChanged, filter, map} from 'rxjs';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\n\n@Directive({\n selector: '[tuiDropdownSelection]',\n providers: [\n tuiAsDriver(TuiDropdownSelection),\n tuiAsRectAccessor(TuiDropdownSelection),\n ],\n})\nexport class TuiDropdownSelection\n extends TuiDriver\n implements TuiRectAccessor, OnDestroy\n{\n private ghost?: HTMLElement;\n\n protected readonly doc = inject(DOCUMENT);\n protected readonly vcr = inject(ViewContainerRef);\n protected readonly dropdown = inject(TuiDropdownDirective);\n protected readonly el = tuiInjectElement();\n protected readonly handler = computed((visible = this.tuiDropdownSelection()) =>\n tuiIsString(visible) ? TUI_TRUE_HANDLER : visible,\n );\n\n protected readonly stream$ = combineLatest([\n toObservable(this.handler),\n inject(TUI_SELECTION_STREAM).pipe(\n map(() => this.getRange()),\n filter((range) => this.isValid(range)),\n distinctUntilChanged(\n (x, y) =>\n x.startOffset === y.startOffset &&\n x.endOffset === y.endOffset &&\n x.commonAncestorContainer === y.commonAncestorContainer,\n ),\n ),\n ]).pipe(\n map(([handler, range]) => {\n const contained = this.el.contains(range.commonAncestorContainer);\n\n this.range =\n contained && tuiIsTextNode(range.commonAncestorContainer)\n ? range\n : this.range;\n\n return (contained && handler(this.range)) || this.inDropdown(range);\n }),\n );\n\n protected range = isPlatformBrowser(inject(PLATFORM_ID))\n ? new Range()\n : ({} as unknown as Range);\n\n public readonly type = 'dropdown';\n public readonly tuiDropdownSelection = input<TuiBooleanHandler<Range> | string>('');\n public readonly tuiDropdownSelectionPosition = input<'selection' | 'tag' | 'word'>(\n 'selection',\n );\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n public getClientRect(): DOMRect {\n switch (this.tuiDropdownSelectionPosition()) {\n case 'tag': {\n const {commonAncestorContainer} = this.range;\n const element = tuiIsElement(commonAncestorContainer)\n ? commonAncestorContainer\n : commonAncestorContainer.parentNode;\n\n return element && tuiIsElement(element)\n ? element.getBoundingClientRect()\n : EMPTY_CLIENT_RECT;\n }\n case 'word':\n return tuiGetWordRange(this.range).getBoundingClientRect();\n default:\n return this.range.getBoundingClientRect();\n }\n }\n\n public ngOnDestroy(): void {\n if (this.ghost) {\n this.ghostHost.removeChild(this.ghost);\n }\n }\n\n private get ghostHost(): HTMLElement {\n return this.el.querySelector('tui-textfield .t-ghost') || this.el;\n }\n\n private getRange(): Range {\n const active = tuiGetFocused(this.doc);\n const selection = this.doc.getSelection();\n const range =\n active && tuiIsTextfield(active) && this.el.contains(active)\n ? this.veryVerySadInputFix(active)\n : (selection?.rangeCount && selection.getRangeAt(0)) || this.range;\n\n return range.cloneRange();\n }\n\n /**\n * Check if given range is at least partially inside dropdown\n */\n private inDropdown(range: Range): boolean {\n const {startContainer, endContainer} = range;\n const inDropdown = this.boxContains(range.commonAncestorContainer);\n const hostToDropdown =\n this.boxContains(endContainer) && this.el.contains(startContainer);\n const dropdownToHost =\n this.boxContains(startContainer) && this.el.contains(endContainer);\n\n return inDropdown || hostToDropdown || dropdownToHost;\n }\n\n /**\n * Check if Node is inside dropdown\n */\n private boxContains(node: Node): boolean {\n return !!this.dropdown.ref()?.location.nativeElement.contains(node);\n }\n\n /**\n * Check if range is not inside tui-textfield's DOM elements\n */\n private isValid(range: Range): boolean {\n return (\n !this.el.contains(range.commonAncestorContainer) ||\n !this.el.closest('tui-textfield') ||\n range.intersectsNode(this.ghost || this.el)\n );\n }\n\n private veryVerySadInputFix(element: HTMLInputElement | HTMLTextAreaElement): Range {\n const {ghost = this.initGhost(this.ghostHost)} = this;\n const {top, left, width, height} = this.ghostHost.getBoundingClientRect();\n const {selectionStart, selectionEnd, value} = element;\n const range = this.doc.createRange();\n const hostRect = this.ghostHost.getBoundingClientRect();\n\n ghost.style.top = tuiPx(top - hostRect.top);\n ghost.style.left = tuiPx(left - hostRect.left);\n ghost.style.width = tuiPx(width);\n ghost.style.height = tuiPx(height);\n ghost.textContent = CHAR_ZERO_WIDTH_SPACE + value + CHAR_NO_BREAK_SPACE;\n\n range.setStart(ghost.firstChild as Node, selectionStart || 0);\n range.setEnd(ghost.firstChild as Node, selectionEnd || 0);\n\n return range;\n }\n\n /**\n * Create an invisible DIV styled exactly like input/textarea element inside directive\n */\n private initGhost(\n element: HTMLElement | HTMLInputElement | HTMLTextAreaElement,\n ): HTMLElement {\n const ghost = this.doc.createElement('div');\n const {font, letterSpacing, textTransform, padding, borderTop} =\n getComputedStyle(element);\n\n ghost.style.position = 'absolute';\n ghost.style.pointerEvents = 'none';\n ghost.style.opacity = '0';\n ghost.style.whiteSpace = 'pre-wrap';\n ghost.style.boxSizing = 'border-box';\n ghost.style.borderTop = borderTop;\n ghost.style.font = font;\n ghost.style.letterSpacing = letterSpacing;\n ghost.style.textTransform = textTransform;\n ghost.style.padding = padding;\n\n this.ghostHost.appendChild(ghost);\n this.ghost = ghost;\n\n return ghost;\n }\n}\n","import {TuiDropdownComponent} from './dropdown.component';\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownDriverDirective} from './dropdown.driver';\nimport {TuiDropdownContent} from './dropdown-content.directive';\nimport {TuiDropdownContext} from './dropdown-context.directive';\nimport {TuiDropdownHover} from './dropdown-hover.directive';\nimport {TuiDropdownManual} from './dropdown-manual.directive';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\nimport {TuiDropdownOptionsDirective} from './dropdown-options.directive';\nimport {TuiDropdownPosition} from './dropdown-position.directive';\nimport {TuiDropdownPositionSided} from './dropdown-position-sided.directive';\nimport {TuiDropdownSelection} from './dropdown-selection.directive';\n\nexport const TuiDropdown = [\n TuiDropdownOptionsDirective,\n TuiDropdownDriverDirective,\n TuiDropdownDirective,\n TuiDropdownComponent,\n TuiDropdownOpen,\n TuiDropdownManual,\n TuiDropdownHover,\n TuiDropdownContent,\n TuiDropdownContext,\n TuiDropdownPosition,\n TuiDropdownPositionSided,\n TuiDropdownSelection,\n] as const;\n","import {type Signal, type WritableSignal} from '@angular/core';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiDropdownDirective} from './dropdown.directive';\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\ntype C = PolymorpheusContent;\n\nexport function tuiDropdown(value: C | WritableSignal<C>): WritableSignal<C>;\nexport function tuiDropdown(value: Signal<C>): Signal<C>;\nexport function tuiDropdown(value: C | Signal<C>): Signal<C> {\n return tuiDirectiveBinding(TuiDropdownDirective, 'tuiDropdown', value, {});\n}\n\nexport function tuiDropdownEnabled(\n value: WritableSignal<boolean> | boolean,\n): WritableSignal<boolean>;\nexport function tuiDropdownEnabled(value: Signal<boolean>): Signal<boolean>;\nexport function tuiDropdownEnabled(value: Signal<boolean> | boolean): Signal<boolean> {\n return tuiDirectiveBinding(TuiDropdownOpen, 'enabled', value, {});\n}\n","import {Directive, inject} from '@angular/core';\nimport {tuiOverrideOptions} from '@taiga-ui/core/utils/miscellaneous';\n\nimport {\n TUI_DROPDOWN_DEFAULT_OPTIONS,\n TUI_DROPDOWN_OPTIONS,\n tuiDropdownOptionsProvider,\n} from './dropdown-options.directive';\n\n@Directive({\n providers: [tuiDropdownOptionsProvider({})],\n})\nexport class TuiDropdownFixed {\n constructor() {\n const override = tuiOverrideOptions(\n {limitWidth: 'fixed'},\n TUI_DROPDOWN_DEFAULT_OPTIONS,\n );\n\n override(inject(TUI_DROPDOWN_OPTIONS, {self: true, optional: true}), null);\n }\n}\n\n@Directive()\nexport class TuiDropdownAuto {\n constructor() {\n /**\n * Update directive props with new defaults before inputs are processed\n * TODO: find better way to override TuiDropdownFixed host directive from parent component\n */\n (inject(TUI_DROPDOWN_OPTIONS) as any).limitWidth = 'auto';\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {TuiDropdownOpen} from './dropdown-open.directive';\n\n@Directive({\n hostDirectives: [\n {\n directive: TuiDropdownOpen,\n inputs: ['tuiDropdownOpen: open', 'tuiDropdownEnabled'],\n outputs: ['tuiDropdownOpenChange: openChange'],\n },\n ],\n})\nexport class TuiWithDropdownOpen {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiDropdownDriverDirective","i2.TuiDropdownPosition","i1","i2","tuiOverrideOptions","i1.TuiDropdownOpen"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKM,MAAO,iBAAkB,SAAQ,eAAwB,CAAA;AAG3D,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,KAAK,CAAC;QAHA,IAAI,CAAA,IAAA,GAAG,UAAU;;+GADxB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;AAUK,MAAO,0BAA2B,SAAQ,kBAAkB,CAAA;AADlE,IAAA,WAAA,GAAA;;QAEoB,IAAI,CAAA,IAAA,GAAG,UAAU;AACpC;+GAFY,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC;;;ACTD;;AAEG;AACU,MAAA,sBAAsB,GAAG,IAAI,cAAc,CACpD,SAAS,GAAG,wBAAwB,GAAG,EAAE,EACzC;AACI,IAAA,OAAO,EAAE,MAAM,oBAAoB;AACtC,CAAA;AAGQ,MAAA,oBAAoB,GAAG,IAAI,cAAc,CAClD,SAAS,GAAG,sBAAsB,GAAG,EAAE;;ACY3C;AACa,MAAA,4BAA4B,GAAuB;AAC5D,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,UAAU,EAAE,EAAE;;AAGlB;;AAEG;AACU,MAAA,oBAAoB,GAAG,IAAI,cAAc,CAClD,SAAS,GAAG,sBAAsB,GAAG,EAAE,EACvC;AACI,IAAA,OAAO,EAAE,MAAM,4BAA4B;AAC9C,CAAA;MAGQ,0BAA0B,GAEhB,CAAC,QAAqC,MAAM;AAC/D,IAAA,OAAO,EAAE,oBAAoB;AAC7B,IAAA,IAAI,EAAE;QACF,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,2BAA2B,CAAC;QACzD,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,oBAAoB,CAAC;AACzD,KAAA;AACD,IAAA,UAAU,EAAE,kBAAkB,CAAC,QAAQ,EAAE,4BAA4B,CAAC;AACzE,CAAA;MAOY,2BAA2B,CAAA;AALxC,IAAA,WAAA,GAAA;QAMqB,IAAO,CAAA,OAAA,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAGlE,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;AAG1B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU;AAGpC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;AAGlC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU;AAGpC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;AAGlC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;AAGlC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;AACtC;+GAvBY,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mKAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,EAAA,UAAA,EAAA,CAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,EAAA,WAAA,CAAA,EAAA,UAAA,EAAA,CAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,EAAA,WAAA,CAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,EAAA,WAAA,CAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,SAAA,EAFzB,CAAC,UAAU,CAAC,oBAAoB,EAAE,2BAA2B,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEjE,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EACJ,mKAAmK;AACvK,oBAAA,SAAS,EAAE,CAAC,UAAU,CAAC,oBAAoB,8BAA8B,CAAC;AAC7E,iBAAA;8BAKU,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,kBAAkB;gBAIlB,UAAU,EAAA,CAAA;sBADhB,KAAK;uBAAC,uBAAuB;gBAIvB,SAAS,EAAA,CAAA;sBADf,KAAK;uBAAC,sBAAsB;gBAItB,UAAU,EAAA,CAAA;sBADhB,KAAK;uBAAC,uBAAuB;gBAIvB,SAAS,EAAA,CAAA;sBADf,KAAK;uBAAC,sBAAsB;gBAItB,SAAS,EAAA,CAAA;sBADf,KAAK;uBAAC,sBAAsB;gBAItB,MAAM,EAAA,CAAA;sBADZ,KAAK;uBAAC,mBAAmB;;;ACtExB,MAAO,mBAAoB,SAAQ,mBAAmB,CAAA;AAD5D,IAAA,WAAA,GAAA;;QAEqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;AACvB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;AAGhC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAwB;QAC/C,IAAI,CAAA,IAAA,GAAG,UAAU;AACjB,QAAA,IAAA,CAAA,QAAQ,GAAG,mBAAmB,CAAkB,UAAU,CAAC,CACvE,MAAM,CAAM,eAAe,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,EAC9C,EAAC,aAAa,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,EAAC,CACzD;AAEe,QAAA,IAAA,CAAA,0BAA0B,GAAG,oBAAoB,CAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAC9C;AA8DJ;AA5DU,IAAA,WAAW,CAAC,EAAC,KAAK,EAAE,MAAM,EAAU,EAAA;AACvC,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;AACnB,YAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;;QAG7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAClD,QAAA,MAAM,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC,OAAO;AAC/D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/C,QAAA,MAAM,QAAQ,GAAG;AACb,YAAA,GAAG,EAAE,YAAY,CAAC,GAAG,GAAG,MAAM;AAC9B,YAAA,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,MAAM;AACpC,YAAA,KAAK,EAAE,YAAY,CAAC,KAAK,GAAG,MAAM;AAClC,YAAA,IAAI,EAAE,YAAY,CAAC,IAAI,GAAG,MAAM;SAC1B;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,QAAQ;AACvD,QAAA,MAAM,SAAS,GAAG;YACd,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;YAC7C,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM;SAChD;AACV,QAAA,MAAM,SAAS,GAAG,UAAU,KAAK,OAAO,GAAG,QAAQ,CAAC,KAAK,GAAG,KAAK;AACjE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,SAAS,EAAE,MAAM,CAAC;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,GAAG,KAAK;AAC3E,QAAA,MAAM,QAAQ,GAAG;AACb,YAAA,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM;AACnC,YAAA,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM;YAChC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;AACrC,YAAA,MAAM,EACF,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC;AACtD,kBAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG;AAC/C,kBAAE,KAAK;YACf,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;SAC7B;AACV,QAAA,MAAM,MAAM,GACR,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,QAAQ;QAEvD,IACI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAI,SAAS;AAC7C,YAAA,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,EAC9B;AACE,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;;AAGhD,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAE3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;;AAGvC,IAAA,QAAQ,CAAC,KAAuB,EAAA;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC;AAEjD,QAAA,IAAI,GAAG,IAAI,KAAK,KAAK,MAAM,EAAE;AACzB,YAAA,OAAO,OAAO;;AAGlB,QAAA,OAAO,GAAG,IAAI,KAAK,KAAK,OAAO,GAAG,MAAM,GAAG,KAAK;;+GA3E3C,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;;MCsCY,oBAAoB,CAAA;AAfjC,IAAA,WAAA,GAAA;AAkBqB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;AAC9B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;AACjC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,QAAA,IAAA,CAAA,OAAO,GAAG,WAAW,CAClC,MAAM,CAAC,iBAAiB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAC1D;QAEkB,IAAG,CAAA,GAAA,GAAG,IAAI,CAAC;aACzB,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,kBAAkB,EAAE;aAClE,SAAS,CAAC,MAAK;YACZ,IAAI,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,aAAa,EAAE;YAC7C,IAAI,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,YAAY,EAAE;AAChD,SAAC,CAAC;AAEa,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,MAAK;AACvC,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACjB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAE1B,SAAC,CAAC;AAEc,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAA+B,IAAI,CAAC;QAChD,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;QACvB,IAAI,CAAA,IAAA,GAAG,UAAU;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,qBAAqB,CACjD,MAAM,CAAC,sBAAsB,CAAC,EAC9B,MAAM,CAAC,QAAQ,CAAC,CACnB;QAEe,IAAW,CAAA,WAAA,GAAG,KAAK,EAA+C;QAClE,IAAO,CAAA,OAAA,GAAG,QAAQ,CAC9B,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,KAAI;YAC7B,OAAO,OAAO,YAAY;kBACpB,IAAI,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG;kBAC1C,OAAO;AACjB,SAAC,CACJ;AAgCJ;AA9BG,IAAA,IAAW,QAAQ,GAAA;AACf,QAAA,OAAO,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,UAAU;;IAGzD,kBAAkB,GAAA;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;IAGjB,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;IAGf,aAAa,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE;;AAGnC,IAAA,MAAM,CAAC,IAAa,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QAEtB,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;AAChC,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;AAC3C,aAAA,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YAClB,GAAG,CAAC,OAAO,EAAE;;;AAIjB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;+GApE/C,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,mTAblB,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,0BAAA,EAAA,EAAA,EAAA,SAAA,EAAAC,mBAAA,EAAA,OAAA,EAAA,CAAA,4BAAA,EAAA,4BAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAatC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAfhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kDAAkD;AAC5D,oBAAA,SAAS,EAAE,CAAC,YAAY,CAAA,oBAAA,CAAsB,CAAC;AAC/C,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,cAAc,EAAE;wBACZ,0BAA0B;AAC1B,wBAAA;AACI,4BAAA,SAAS,EAAE,mBAAmB;4BAC9B,OAAO,EAAE,CAAC,4BAA4B,CAAC;AAC1C,yBAAA;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,2BAA2B,EAAE,OAAO;AACvC,qBAAA;AACJ,iBAAA;;;ACpBD;;;;AAIG;MAuBU,oBAAoB,CAAA;AAtBjC,IAAA,WAAA,GAAA;QAuBqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC;AAClC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;AAC/B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAEtC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CACtD,SAAS,CACL,MACI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW;AAC7B,YAAA,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,MAAM,CACzD,EACD,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,KAAK,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACjE,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,EACxC,kBAAkB,EAAE,CACvB;AAEkB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACtC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC;QACxC,IAAO,CAAA,OAAA,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AACxD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;AAClC,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,KACpD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CACpE;AASkB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AA6BtE;IApCU,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AACnB,YAAA,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YACtD,QAAQ,EAAE,MAAM,IAAI,CAAC,KAAK,IAAI;AACjC,SAAA,CAAC;;IAKE,SAAS,CAAC,CAAS,EAAE,CAAS,EAAA;AAClC,QAAA,MAAM,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC,OAAO;AAC/D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,IAAI,iBAAiB;QACjF,MAAM,EAAC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO,GAAG,EAAE,GAAG,MAAM;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC9C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM;AAClD,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM;AACzD,QAAA,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK;AACjD,QAAA,MAAM,MAAM,GACR,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AAC5D,cAAE;cACA,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;QAEnD,CAAC,IAAI,GAAG;QACR,CAAC,IAAI,IAAI;QAET,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;YACjD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpC,KAAK,EAAE,UAAU,KAAK,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;YAClE,QAAQ,EAAE,UAAU,KAAK,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AACnE,YAAA,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACnD;;+GA5DI,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAdlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,kBAAkB;AAClB,YAAA,sBAAsB,CAAC,UAAU,EAAE,mBAAmB,CAAC;YACvD,kBAAkB,CACd,UAAU,EACV,UAAU,CAAC,MAAM,oBAAoB,CAAC,CACzC;AACJ,SAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnDL,kOAQA,EAAA,MAAA,EAAA,CAAA,8iBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED8Bc,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,CAAA,CAAA;;4FAoBjC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAtBhC,SAAS;+BACI,cAAc,EAAA,OAAA,EACf,CAAC,kBAAkB,EAAE,YAAY,CAAC,EAK1B,eAAA,EAAA,uBAAuB,CAAC,OAAO,EACrC,SAAA,EAAA;wBACP,kBAAkB;AAClB,wBAAA,sBAAsB,CAAC,UAAU,EAAE,mBAAmB,CAAC;wBACvD,kBAAkB,CACd,UAAU,EACV,UAAU,CAAC,MAAM,oBAAoB,CAAC,CACzC;AACJ,qBAAA,EAAA,cAAA,EACe,CAAC,aAAa,EAAE,WAAW,CAAC,EACtC,IAAA,EAAA;AACF,wBAAA,wBAAwB,EAAE,oBAAoB;AAC9C,wBAAA,iBAAiB,EAAE,SAAS;AAC/B,qBAAA,EAAA,QAAA,EAAA,kOAAA,EAAA,MAAA,EAAA,CAAA,8iBAAA,CAAA,EAAA;;;ME/CQ,kBAAkB,CAAA;AAG3B,IAAA,WAAA,GAAA;AAFiB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAGrD,QAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAE7D,QAAA,IACI,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAC5C;AACE,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;;;IAI5B,WAAW,GAAA;QACd,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC;;+GAfzC,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0BAA0B;AACvC,iBAAA;;;ACMD,SAAS,gBAAgB,CAA2B,KAAa,EAAA;IAC7D,QACI,CAAC,KAAK;SACL,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AAEnF;AAkBM,MAAO,kBAAmB,SAAQ,eAAe,CAAA;AAhBvD,IAAA,WAAA,GAAA;;AAiBqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;QACvC,IAAW,CAAA,WAAA,GAAG,iBAAiB;QAEpB,IAAU,CAAA,UAAA,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAC7D,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC;AAClC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAClC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEtB,IAAG,CAAA,GAAA,GAAG,KAAK,CAC1B,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAC1C,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;AAE1D,aAAA,IAAI,CAAC,WAAW,EAAE,EAAE,kBAAkB,EAAE;AACxC,aAAA,SAAS,CAAC,CAAC,KAAY,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,CAAA,IAAA,GAAG,UAAU;AAgBpC;IAdU,aAAa,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW;;AAIjB,IAAA,aAAa,CAAC,MAAc,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,iBAAiB;;IAG9B,aAAa,CAAC,CAAS,EAAE,CAAS,EAAA;QACxC,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;+GA9BjB,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAdhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,6DAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,aAAa;YACb,iBAAiB;YACjB,WAAW,CAAC,iBAAiB,CAAC;YAC9B,iBAAiB,CAAC,kBAAkB,CAAC;AACxC,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;AAgCS,UAAA,CAAA;IADT,UAAU,CAAC,gBAAgB;AAI3B,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;4FA1BQ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAhB9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,SAAS,EAAE;wBACP,aAAa;wBACb,iBAAiB;wBACjB,WAAW,CAAC,iBAAiB,CAAC;AAC9B,wBAAA,iBAAiB,CAAoB,kBAAA,CAAA;AACxC,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,qBAAqB,EAAE,cAAc;AACrC,wBAAA,6BAA6B,EAAE,cAAc;AAC7C,wBAAA,+BAA+B,EAAE,cAAc;AAC/C,wBAAA,wBAAwB,EAAE,iBAAiB;AAC3C,wBAAA,WAAW,EAAE,6DAA6D;AAC7E,qBAAA;AACJ,iBAAA;8BAwBa,aAAa,EAAA,EAAA,EAAA,EAAA,CAAA;;ACrD3B;AACa,MAAA,kCAAkC,GAA4B;AACvE,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;;AAGlB;;AAEG;AACI,MAAM,CAAC,0BAA0B,EAAE,+BAA+B,CAAC,GACtE,gBAAgB,CAAC,kCAAkC;;ACuBvD,SAAS,WAAW,CAAwB,KAAoB,EAAA;IAC5D;;IAEI,OAAO,YAAY,KAAK,WAAW;;AAEnC,QAAA,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,QAAQ;QACrC,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,IAAI,EAAE;QACX,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,kBAAkB;AAE/C;MAwBa,eAAe,CAAA;AAtB5B,IAAA,WAAA,GAAA;AAuBqB,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE;AAC5D,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,IAAI,EAAE,UAAU;AACnB,SAAA,CAAC;AAEe,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC;QACxC,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAC9B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC;AAClC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAClC,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAChC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,aAAa,CACrD;QAEe,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC,IAAI,EAAE,EAAC,KAAK,EAAE,oBAAoB,EAAC,CAAC;QACpD,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAC,KAAK,EAAE,iBAAiB,EAAC,CAAC;AAE5C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;AAC7B,aAAA,IAAI,CACD,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,EACtC,kBAAkB,EAAE;AAEvB,aAAA,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAExB,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AAC9B,aAAA,IAAI,CACD,QAAQ,CAAC,MACL,KAAK,CACD,eAAe,EAAE,EACjB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAChD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC3D,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,IAAI,CAC9B,MAAM,CACF,CAAC,KAAK,KACF,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC9C,YAAA,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAC5B,CACJ,CACJ,CACJ,EACD,WAAW,EAAE,EACb,QAAQ,EAAE,EACV,kBAAkB,EAAE;aAEvB,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAmG3C;AAjGU,IAAA,MAAM,CAAC,IAAa,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;;AAG1C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;;AAIX,IAAA,KAAK,CAAC,KAAoB,EAAA;QAChC,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAGZ,IAAA,OAAO,CAAC,MAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;;;IAIvB,OAAO,CAAC,KAAoB,EAAE,EAAW,EAAA;AAC/C,QAAA,IACI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;YAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACjC,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAC3B;YACE;;QAGJ,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;;AAGhB,IAAA,SAAS,CAAC,KAAoB,EAAA;AACpC,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAExC,IACI,CAAC,KAAK,CAAC,gBAAgB;AACvB,YAAA,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;AAC1B,YAAA,IAAI,CAAC,QAAQ;AACb,YAAA,IAAI,CAAC,OAAO;YACZ,gBAAgB,CAAC,MAAM,CAAC;AACxB,YAAA,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAC/B;YACE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;;;AAI9C,IAAA,IAAY,IAAI,GAAA;AACZ,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,IAAI,IAAI,CAAC,EAAE;AAC7D,QAAA,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO;AACpC,cAAE;AACF,cAAE,sBAAsB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC;AAEtD,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,IAAI,SAAS,IAAI,IAAI,CAAC,EAAE;;AAGrE,IAAA,IAAY,QAAQ,GAAA;AAChB,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;;AAG1C,IAAA,IAAY,OAAO,GAAA;AACf,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;;AAG/D,IAAA,MAAM,CAAC,IAAa,EAAA;QACxB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,KAAK,EAAE;;AAGvB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,EAAE;;IAGR,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAA;QAC9C,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC;AACpD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGlB,IAAA,aAAa,CAAC,QAAiB,EAAA;AACnC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;QAE5B,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAEjB;;AAGJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;AACjC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI;AACvC,QAAA,MAAM,SAAS,GAAG,sBAAsB,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;QAEnE,KAAK,CAAC,MAAM,EAAE;QACd,SAAS,EAAE,KAAK,EAAE;;+GA/Ib,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oGAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,mCAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,GAAA,EAAA,EAAA,EAAA,SAAA,EAnBb,CAAC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAsBpD,UAAU,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;AAsDV,UAAA,CAAA;IADT,UAAU,CAAC,WAAW;AAItB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,OAAA,EAAA,IAAA,CAAA;4FA5DQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAtB3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EACJ,oGAAoG;oBACxG,SAAS,EAAE,CAAC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAC9D,oBAAA,cAAc,EAAE;wBACZ,WAAW;AACX,wBAAA;AACI,4BAAA,SAAS,EAAE,aAAa;4BACxB,MAAM,EAAE,CAAC,qBAAqB,CAAC;4BAC/B,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACnC,yBAAA;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,wBAAwB;AACnC,wBAAA,qBAAqB,EAAE,wBAAwB;AAC/C,wBAAA,mBAAmB,EAAE,uBAAuB;AAC5C,wBAAA,qCAAqC,EAAE,eAAe;AACtD,wBAAA,6BAA6B,EAAE,mBAAmB;;AAElD,wBAAA,uBAAuB,EAAE,GAAG;AAC/B,qBAAA;AACJ,iBAAA;8BA0Da,KAAK,EAAA,EAAA,EAAA,EAAA,CAAA;;AC9Fb,MAAO,gBAAiB,SAAQ,SAAS,CAAA;AAkD3C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAlD5C,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE;AAC5D,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,IAAI,EAAE,UAAU;AACnB,SAAA,CAAC;QAEM,IAAO,CAAA,OAAA,GAAG,KAAK;QACN,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;AACvB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;AACtB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC;QAClC,IAAI,CAAA,IAAA,GAAG,MAAM,CAAC,eAAe,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAChD,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK;AAC5B;;;AAGG;AACH,QAAA,YAAY,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAC/C,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EACjC,SAAS,CAAC,MACN,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,IAAI,CAC3C,GAAG,CAAC,kBAAkB,CAAC,EACvB,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAClC,SAAS,CAAC,IAAI,CAAC,EACf,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAC9C,CACJ,CACJ,EACD,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EACtE,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAC5E,CAAC,IAAI,CACF,GAAG,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAClE,oBAAoB,EAAE,EACtB,SAAS,CAAC,CAAC,CAAC,KACR,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CACN,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,CACvE,CACJ,EACD,gBAAgB,EAAE,EAClB,GAAG,CAAC,CAAC,OAAO,KAAI;AACZ,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,YAAA,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;AAC9B,SAAC,CAAC,EACF,KAAK,EAAE,CACV;QAEe,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACpD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACpD,IAAI,CAAA,IAAA,GAAG,UAAU;;AAMvB,IAAA,OAAO,CAAC,KAAiB,EAAA;QAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;YAC3B,KAAK,CAAC,cAAc,EAAE;;;AAItB,IAAA,SAAS,CAAC,OAAgB,EAAA;AAC9B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,IAAI,IAAI,CAAC,EAAE;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;QAE7E,OAAO,OAAO,IAAI,KAAK;;+GAjElB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EALd,CAAC,aAAa,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAQ/C,UAAU,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAHX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,SAAS,EAAE,CAAC,aAAa,EAAE,WAAW,kBAAkB,CAAC;AACzD,oBAAA,IAAI,EAAE;AACF,wBAAA,iBAAiB,EAAE,iBAAiB;AACvC,qBAAA;AACJ,iBAAA;;;MC3BY,iBAAiB,CAAA;AAJ9B,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAe,KAAK,CAAC;AAKjE;IAHU,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;;+GANvC,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAFf,CAAC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAErD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;oBAC/B,SAAS,EAAE,CAAC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;AACjE,iBAAA;;;ACKK,MAAO,wBAAyB,SAAQ,mBAAmB,CAAA;AAJjE,IAAA,WAAA,GAAA;;AAKqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC/C,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,QAAQ;AAErC,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAmB,EAAE,CAAC;AAC9C,QAAA,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAAC,CAAC,CAAC;QACjC,IAAI,CAAA,IAAA,GAAG,UAAU;AA2CpC;AAzCU,IAAA,WAAW,CAAC,IAAa,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,KAAK,EAAE;YACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;;AAG1C,QAAA,MAAM,EAAC,MAAM,EAAE,KAAK,EAAC,GAAG,IAAI;AAC5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,iBAAiB;QAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;QAC9C,MAAM,EAAC,SAAS,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC,OAAO;AACxC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC3D,QAAA,MAAM,KAAK,GAAG,QAAQ,KAAK,QAAQ,GAAG,MAAM,GAAG,QAAQ;AACvD,QAAA,MAAM,SAAS,GAAG;AACd,YAAA,GAAG,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG;YACnC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC,IAAI;YAC5C,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,MAAM;AAC/C,YAAA,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG;SAChC;AACV,QAAA,MAAM,QAAQ,GAAG;AACb,YAAA,GAAG,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAAC;AACjE,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,KAAK,GAAG,MAAM;AACpC,YAAA,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,MAAM;AAC9B,YAAA,MAAM,EAAE,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAAC;SAClD;AACV,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,QAAQ;QAClE,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK;AACjF,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO;QAEjE,IACI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,SAAS;AAC/C,YAAA,IAAI,CAAC,QAAQ,KAAK,MAAM,EAC1B;YACE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAE3C,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAG1C,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM;QACtB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAEpC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;;+GAjD1B,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAFtB,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAExE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,SAAS,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,0BAA0B,CAAC;AACpF,iBAAA;;;ACiCK,MAAO,oBACT,SAAQ,SAAS,CAAA;AAgDjB,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AA5C1C,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;AACtB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC;QACvC,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;QACvB,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE,KACxE,WAAW,CAAC,OAAO,CAAC,GAAG,gBAAgB,GAAG,OAAO,CACpD;QAEkB,IAAO,CAAA,OAAA,GAAG,aAAa,CAAC;AACvC,YAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;YAC1B,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAC7B,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC1B,MAAM,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EACtC,oBAAoB,CAChB,CAAC,CAAC,EAAE,CAAC,KACD,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;AAC/B,gBAAA,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;AAC3B,gBAAA,CAAC,CAAC,uBAAuB,KAAK,CAAC,CAAC,uBAAuB,CAC9D,CACJ;AACJ,SAAA,CAAC,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAI;AACrB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC;AAEjE,YAAA,IAAI,CAAC,KAAK;AACN,gBAAA,SAAS,IAAI,aAAa,CAAC,KAAK,CAAC,uBAAuB;AACpD,sBAAE;AACF,sBAAE,IAAI,CAAC,KAAK;AAEpB,YAAA,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;SACtE,CAAC,CACL;AAES,QAAA,IAAA,CAAA,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC;cACjD,IAAI,KAAK;cACR,EAAuB;QAEd,IAAI,CAAA,IAAA,GAAG,UAAU;AACjB,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAoC,EAAE,CAAC;AACnE,QAAA,IAAA,CAAA,4BAA4B,GAAG,KAAK,CAChD,WAAW,CACd;;IAMM,aAAa,GAAA;AAChB,QAAA,QAAQ,IAAI,CAAC,4BAA4B,EAAE;YACvC,KAAK,KAAK,EAAE;AACR,gBAAA,MAAM,EAAC,uBAAuB,EAAC,GAAG,IAAI,CAAC,KAAK;AAC5C,gBAAA,MAAM,OAAO,GAAG,YAAY,CAAC,uBAAuB;AAChD,sBAAE;AACF,sBAAE,uBAAuB,CAAC,UAAU;AAExC,gBAAA,OAAO,OAAO,IAAI,YAAY,CAAC,OAAO;AAClC,sBAAE,OAAO,CAAC,qBAAqB;sBAC7B,iBAAiB;;AAE3B,YAAA,KAAK,MAAM;gBACP,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE;AAC9D,YAAA;AACI,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;;;IAI9C,WAAW,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAI9C,IAAA,IAAY,SAAS,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,IAAI,IAAI,CAAC,EAAE;;IAG7D,QAAQ,GAAA;QACZ,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzC,QAAA,MAAM,KAAK,GACP,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM;AACvD,cAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM;AACjC,cAAE,CAAC,SAAS,EAAE,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK;AAE1E,QAAA,OAAO,KAAK,CAAC,UAAU,EAAE;;AAG7B;;AAEG;AACK,IAAA,UAAU,CAAC,KAAY,EAAA;AAC3B,QAAA,MAAM,EAAC,cAAc,EAAE,YAAY,EAAC,GAAG,KAAK;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC;AAClE,QAAA,MAAM,cAAc,GAChB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;AACtE,QAAA,MAAM,cAAc,GAChB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;AAEtE,QAAA,OAAO,UAAU,IAAI,cAAc,IAAI,cAAc;;AAGzD;;AAEG;AACK,IAAA,WAAW,CAAC,IAAU,EAAA;AAC1B,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;;AAGvE;;AAEG;AACK,IAAA,OAAO,CAAC,KAAY,EAAA;QACxB,QACI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC;AAChD,YAAA,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;AACjC,YAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;;AAI3C,IAAA,mBAAmB,CAAC,OAA+C,EAAA;AACvE,QAAA,MAAM,EAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,GAAG,IAAI;AACrD,QAAA,MAAM,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;QACzE,MAAM,EAAC,cAAc,EAAE,YAAY,EAAE,KAAK,EAAC,GAAG,OAAO;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;AAEvD,QAAA,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC3C,QAAA,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC9C,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAClC,KAAK,CAAC,WAAW,GAAG,qBAAqB,GAAG,KAAK,GAAG,mBAAmB;QAEvE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAkB,EAAE,cAAc,IAAI,CAAC,CAAC;QAC7D,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAkB,EAAE,YAAY,IAAI,CAAC,CAAC;AAEzD,QAAA,OAAO,KAAK;;AAGhB;;AAEG;AACK,IAAA,SAAS,CACb,OAA6D,EAAA;QAE7D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3C,QAAA,MAAM,EAAC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAC,GAC1D,gBAAgB,CAAC,OAAO,CAAC;AAE7B,QAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACjC,QAAA,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM;AAClC,QAAA,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AACzB,QAAA,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU;AACnC,QAAA,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY;AACpC,QAAA,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS;AACjC,QAAA,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI;AACvB,QAAA,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,aAAa;AACzC,QAAA,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,aAAa;AACzC,QAAA,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;AAE7B,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAElB,QAAA,OAAO,KAAK;;+GAxKP,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EALlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,WAAW,CAAC,oBAAoB,CAAC;YACjC,iBAAiB,CAAC,oBAAoB,CAAC;AAC1C,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEQ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,SAAS,EAAE;AACP,wBAAA,WAAW,CAAsB,oBAAA,CAAA;AACjC,wBAAA,iBAAiB,CAAsB,oBAAA,CAAA;AAC1C,qBAAA;AACJ,iBAAA;;;AC/BY,MAAA,WAAW,GAAG;IACvB,2BAA2B;IAC3B,0BAA0B;IAC1B,oBAAoB;IACpB,oBAAoB;IACpB,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,wBAAwB;IACxB,oBAAoB;;;ACdlB,SAAU,WAAW,CAAC,KAAoB,EAAA;IAC5C,OAAO,mBAAmB,CAAC,oBAAoB,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC;AAC9E;AAMM,SAAU,kBAAkB,CAAC,KAAgC,EAAA;IAC/D,OAAO,mBAAmB,CAAC,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;AACrE;;MCTa,gBAAgB,CAAA;AACzB,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,QAAQ,GAAGC,oBAAkB,CAC/B,EAAC,UAAU,EAAE,OAAO,EAAC,EACrB,4BAA4B,CAC/B;AAED,QAAA,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,EAAE,IAAI,CAAC;;+GAPrE,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,iCAFd,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAElC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,SAAS,EAAE,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;AAC9C,iBAAA;;MAaY,eAAe,CAAA;AACxB,IAAA,WAAA,GAAA;AACI;;;AAGG;AACF,QAAA,MAAM,CAAC,oBAAoB,CAAS,CAAC,UAAU,GAAG,MAAM;;+GANpD,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;MCVY,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,eAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,eAAe;AAC1B,4BAAA,MAAM,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;4BACvD,OAAO,EAAE,CAAC,mCAAmC,CAAC;AACjD,yBAAA;AACJ,qBAAA;AACJ,iBAAA;;;ACZD;;AAEG;;;;"}
@@ -11,7 +11,7 @@ import { TuiHoveredService } from '@taiga-ui/cdk/directives/hovered';
11
11
  import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
12
12
  import { tuiInjectElement, tuiPointToClientRect } from '@taiga-ui/cdk/utils/dom';
13
13
  import { tuiClamp } from '@taiga-ui/cdk/utils/math';
14
- import { tuiProvide, tuiPure, tuiSetSignal, tuiPx, tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
14
+ import { tuiPure, tuiSetSignal, tuiPx, tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
15
15
  import { TuiDriverDirective, TuiDriver, tuiAsDriver, TuiPositionAccessor, tuiFallbackAccessor, TuiRectAccessor, tuiAsVehicle, tuiAsRectAccessor, tuiPositionAccessorFor, tuiRectAccessorFor } from '@taiga-ui/core/classes';
16
16
  import { tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
17
17
  import * as i1 from '@taiga-ui/core/directives/appearance';
@@ -21,7 +21,8 @@ import { TUI_VIEWPORT } from '@taiga-ui/core/tokens';
21
21
  import { tuiOverrideOptions, tuiIsObscured } from '@taiga-ui/core/utils';
22
22
  import { PolymorpheusComponent, PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
23
23
  import { Subject, merge, switchMap, of, delay, takeUntil, repeat, filter, map, tap, takeWhile, distinctUntilChanged, fromEvent, debounce, timer, startWith, skip, BehaviorSubject } from 'rxjs';
24
- import { TuiPopupService } from '@taiga-ui/core/directives/popup';
24
+ import { TuiPopupService } from '@taiga-ui/core/portals/popup';
25
+ import { tuiProvide } from '@taiga-ui/cdk/utils/di';
25
26
  import { DOCUMENT } from '@angular/common';
26
27
  import { tuiIfMap, tuiTypedFromEvent, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
27
28
  import { tuiIsFocused } from '@taiga-ui/cdk/utils/focus';
@@ -38,10 +39,10 @@ class TuiHintDriver extends TuiDriverDirective {
38
39
  super(...arguments);
39
40
  this.type = 'hint';
40
41
  }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDriver, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
42
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintDriver, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintDriver, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
43
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiHintDriver, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
43
44
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDriver, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintDriver, decorators: [{
45
46
  type: Directive
46
47
  }] });
47
48
 
@@ -98,10 +99,10 @@ class TuiHintOptionsDirective {
98
99
  ngOnChanges() {
99
100
  this.change$.next();
100
101
  }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintOptionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
102
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintOptionsDirective, isStandalone: true, selector: "[tuiHintContent]", inputs: { content: ["tuiHintContent", "content"], direction: ["tuiHintDirection", "direction"], appearance: ["tuiHintAppearance", "appearance"], showDelay: ["tuiHintShowDelay", "showDelay"], hideDelay: ["tuiHintHideDelay", "hideDelay"] }, providers: [tuiProvide(TUI_HINT_OPTIONS, TuiHintOptionsDirective)], usesOnChanges: true, ngImport: i0 }); }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintOptionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
103
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiHintOptionsDirective, isStandalone: true, selector: "[tuiHintContent]", inputs: { content: ["tuiHintContent", "content"], direction: ["tuiHintDirection", "direction"], appearance: ["tuiHintAppearance", "appearance"], showDelay: ["tuiHintShowDelay", "showDelay"], hideDelay: ["tuiHintHideDelay", "hideDelay"] }, providers: [tuiProvide(TUI_HINT_OPTIONS, TuiHintOptionsDirective)], usesOnChanges: true, ngImport: i0 }); }
103
104
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintOptionsDirective, decorators: [{
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintOptionsDirective, decorators: [{
105
106
  type: Directive,
106
107
  args: [{
107
108
  selector: '[tuiHintContent]',
@@ -161,10 +162,10 @@ class TuiHintHover extends TuiDriver {
161
162
  close() {
162
163
  this.toggle$.next(false);
163
164
  }
164
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHover, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
165
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintHover, isStandalone: true, inputs: { showDelay: { classPropertyName: "showDelay", publicName: "tuiHintShowDelay", isSignal: true, isRequired: false, transformFunction: null }, hideDelay: { classPropertyName: "hideDelay", publicName: "tuiHintHideDelay", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsDriver(TuiHintHover), TuiHoveredService], exportAs: ["tuiHintHover"], usesInheritance: true, ngImport: i0 }); }
165
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintHover, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
166
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiHintHover, isStandalone: true, inputs: { showDelay: { classPropertyName: "showDelay", publicName: "tuiHintShowDelay", isSignal: true, isRequired: false, transformFunction: null }, hideDelay: { classPropertyName: "hideDelay", publicName: "tuiHintHideDelay", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsDriver(TuiHintHover), TuiHoveredService], exportAs: ["tuiHintHover"], usesInheritance: true, ngImport: i0 }); }
166
167
  }
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHover, decorators: [{
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintHover, decorators: [{
168
169
  type: Directive,
169
170
  args: [{
170
171
  providers: [tuiAsDriver(TuiHintHover), TuiHoveredService],
@@ -174,8 +175,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
174
175
 
175
176
  const GAP$1 = 8;
176
177
  const ARROW_OFFSET = 24;
177
- const TOP = 0;
178
- const LEFT = 1;
178
+ const TOP = 1;
179
+ const LEFT = 0;
179
180
  class TuiHintPosition extends TuiPositionAccessor {
180
181
  constructor() {
181
182
  super(...arguments);
@@ -195,10 +196,8 @@ class TuiHintPosition extends TuiPositionAccessor {
195
196
  emitDirection(direction) {
196
197
  this.directionChange.emit(direction);
197
198
  }
198
- getPosition(rect, el) {
199
+ getPosition({ width, height }) {
199
200
  const direction = this.direction();
200
- const width = el?.clientWidth ?? rect.width;
201
- const height = el?.clientHeight ?? rect.height;
202
201
  const hostRect = this.accessor.getClientRect();
203
202
  const leftCenter = hostRect.left + hostRect.width / 2;
204
203
  const topCenter = hostRect.top + hostRect.height / 2;
@@ -242,20 +241,20 @@ class TuiHintPosition extends TuiPositionAccessor {
242
241
  ? 'top'
243
242
  : 'bottom';
244
243
  }
245
- checkPosition([top, left], width, height) {
244
+ checkPosition([left, top], width, height) {
246
245
  const viewport = this.viewport.getClientRect();
247
246
  return (top > viewport.top + GAP$1 &&
248
247
  left > viewport.left + GAP$1 &&
249
248
  top + height < viewport.bottom - GAP$1 &&
250
249
  left + width < viewport.right - GAP$1);
251
250
  }
252
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintPosition, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
253
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintPosition, isStandalone: true, inputs: { direction: { classPropertyName: "direction", publicName: "tuiHintDirection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { directionChange: "tuiHintDirectionChange" }, usesInheritance: true, ngImport: i0 }); }
251
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintPosition, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
252
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiHintPosition, isStandalone: true, inputs: { direction: { classPropertyName: "direction", publicName: "tuiHintDirection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { directionChange: "tuiHintDirectionChange" }, usesInheritance: true, ngImport: i0 }); }
254
253
  }
255
254
  __decorate([
256
255
  tuiPure
257
256
  ], TuiHintPosition.prototype, "emitDirection", null);
258
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintPosition, decorators: [{
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintPosition, decorators: [{
259
258
  type: Directive
260
259
  }], propDecorators: { emitDirection: [] } });
261
260
  function adjust(direction, rtl) {
@@ -303,8 +302,8 @@ class TuiHintDirective {
303
302
  this.visible.emit(false);
304
303
  }
305
304
  }
306
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
307
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintDirective, isStandalone: true, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: { content: { classPropertyName: "content", publicName: "tuiHint", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "tuiHintContext", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "tuiHintAppearance", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visible: "tuiHintVisible" }, providers: [
305
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
306
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiHintDirective, isStandalone: true, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: { content: { classPropertyName: "content", publicName: "tuiHint", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "tuiHintContext", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "tuiHintAppearance", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visible: "tuiHintVisible" }, providers: [
308
307
  tuiAsVehicle(TuiHintDirective),
309
308
  {
310
309
  provide: PolymorpheusComponent,
@@ -313,7 +312,7 @@ class TuiHintDirective {
313
312
  },
314
313
  ], usesOnChanges: true, hostDirectives: [{ directive: TuiHintDriver }, { directive: TuiHintHover, inputs: ["tuiHintHideDelay", "tuiHintHideDelay", "tuiHintShowDelay", "tuiHintShowDelay"] }, { directive: TuiHintPosition, inputs: ["tuiHintDirection", "tuiHintDirection"], outputs: ["tuiHintDirectionChange", "tuiHintDirectionChange"] }], ngImport: i0 }); }
315
314
  }
316
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDirective, decorators: [{
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintDirective, decorators: [{
317
316
  type: Directive,
318
317
  args: [{
319
318
  selector: '[tuiHint]:not(ng-container):not(ng-template)',
@@ -351,10 +350,10 @@ class TuiHintPointer extends TuiHintHover {
351
350
  onMove({ clientX, clientY }) {
352
351
  this.currentRect = tuiPointToClientRect(clientX, clientY);
353
352
  }
354
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintPointer, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
355
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintPointer, isStandalone: true, selector: "[tuiHint][tuiHintPointer]", host: { listeners: { "mousemove.zoneless": "onMove($event)" } }, providers: [tuiAsRectAccessor(TuiHintPointer), tuiAsDriver(TuiHintPointer)], usesInheritance: true, ngImport: i0 }); }
353
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintPointer, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
354
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiHintPointer, isStandalone: true, selector: "[tuiHint][tuiHintPointer]", host: { listeners: { "mousemove.zoneless": "onMove($event)" } }, providers: [tuiAsRectAccessor(TuiHintPointer), tuiAsDriver(TuiHintPointer)], usesInheritance: true, ngImport: i0 }); }
356
355
  }
357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintPointer, decorators: [{
356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintPointer, decorators: [{
358
357
  type: Directive,
359
358
  args: [{
360
359
  selector: '[tuiHint][tuiHintPointer]',
@@ -369,10 +368,10 @@ class TuiHintUnstyledComponent {
369
368
  constructor() {
370
369
  this.hint = inject(TuiHintDirective);
371
370
  }
372
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyledComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
373
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintUnstyledComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '<ng-container *polymorpheusOutlet="hint.content()" />', isInline: true, dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
371
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintUnstyledComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
372
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TuiHintUnstyledComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '<ng-container *polymorpheusOutlet="hint.content()" />', isInline: true, dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
374
373
  }
375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyledComponent, decorators: [{
374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintUnstyledComponent, decorators: [{
376
375
  type: Component,
377
376
  args: [{
378
377
  imports: [PolymorpheusOutlet],
@@ -386,10 +385,10 @@ class TuiHintUnstyled {
386
385
  tuiSetSignal(hint.content, inject((TemplateRef)));
387
386
  hint.component = new PolymorpheusComponent(TuiHintUnstyledComponent, inject(INJECTOR));
388
387
  }
389
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyled, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
390
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintUnstyled, isStandalone: true, selector: "ng-template[tuiHint]", ngImport: i0 }); }
388
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintUnstyled, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
389
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiHintUnstyled, isStandalone: true, selector: "ng-template[tuiHint]", ngImport: i0 }); }
391
390
  }
392
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintUnstyled, decorators: [{
391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintUnstyled, decorators: [{
393
392
  type: Directive,
394
393
  args: [{
395
394
  selector: 'ng-template[tuiHint]',
@@ -423,7 +422,7 @@ class TuiHintComponent {
423
422
  inject(TuiPositionService)
424
423
  .pipe(takeWhile(() => this.hint.el.isConnected), map((point) => this.vvs.correct(point)), takeUntilDestroyed())
425
424
  .subscribe({
426
- next: ([top, left]) => this.update(top, left),
425
+ next: (point) => this.update(...point),
427
426
  complete: () => this.hover.close(),
428
427
  });
429
428
  inject(TuiHoveredService)
@@ -443,7 +442,7 @@ class TuiHintComponent {
443
442
  this.el.style.setProperty('--t-left', `${beakLeft}%`);
444
443
  this.el.style.setProperty('--t-rotate', !beakLeft || Math.ceil(beakLeft) === 100 ? '90deg' : '0deg');
445
444
  }
446
- update(top, left) {
445
+ update(left, top) {
447
446
  const { clientHeight, clientWidth } = this.el;
448
447
  const rect = this.accessor.getClientRect();
449
448
  if (rect === EMPTY_CLIENT_RECT || !clientHeight || !clientWidth) {
@@ -457,8 +456,8 @@ class TuiHintComponent {
457
456
  ]);
458
457
  this.apply(tuiPx(Math.round(top)), tuiPx(Math.round(safeLeft)), Math.round((tuiClamp(beakTop, 0, clientHeight) / clientHeight) * 100), Math.round((tuiClamp(beakLeft, 0, clientWidth) / clientWidth) * 100));
459
458
  }
460
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
461
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiHintComponent, isStandalone: true, selector: "tui-hint", host: { attributes: { "role": "tooltip" }, listeners: { "document:click": "onClick($event.target)" }, properties: { "class._untouchable": "pointer", "class._mobile": "isMobile", "attr.tuiTheme": "theme" } }, providers: [TUI_HINT_PROVIDERS, tuiButtonOptionsProvider({ size: 's' })], hostDirectives: [{ directive: i1.TuiAppearance }, { directive: i2.TuiAnimated }, { directive: i3.TuiActiveZone }], ngImport: i0, template: `
459
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
460
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TuiHintComponent, isStandalone: true, selector: "tui-hint", host: { attributes: { "role": "tooltip" }, listeners: { "document:click": "onClick($event.target)" }, properties: { "class._untouchable": "pointer", "class._mobile": "isMobile", "attr.tuiTheme": "theme" } }, providers: [TUI_HINT_PROVIDERS, tuiButtonOptionsProvider({ size: 's' })], hostDirectives: [{ directive: i1.TuiAppearance }, { directive: i2.TuiAnimated }, { directive: i3.TuiActiveZone }], ngImport: i0, template: `
462
461
  <ng-content />
463
462
  <span
464
463
  *polymorpheusOutlet="content() as text; context: hint.context()"
@@ -469,7 +468,7 @@ class TuiHintComponent {
469
468
  __decorate([
470
469
  tuiPure
471
470
  ], TuiHintComponent.prototype, "apply", null);
472
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintComponent, decorators: [{
471
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintComponent, decorators: [{
473
472
  type: Component,
474
473
  args: [{ selector: 'tui-hint', imports: [PolymorpheusOutlet], template: `
475
474
  <ng-content />
@@ -501,10 +500,10 @@ class TuiHintDescribe extends TuiDriver {
501
500
  get focused() {
502
501
  return tuiIsFocused(this.element());
503
502
  }
504
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDescribe, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
505
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintDescribe, isStandalone: true, selector: "[tuiHintDescribe]", inputs: { id: { classPropertyName: "id", publicName: "tuiHintDescribe", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsDriver(TuiHintDescribe)], usesInheritance: true, ngImport: i0 }); }
503
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintDescribe, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
504
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiHintDescribe, isStandalone: true, selector: "[tuiHintDescribe]", inputs: { id: { classPropertyName: "id", publicName: "tuiHintDescribe", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsDriver(TuiHintDescribe)], usesInheritance: true, ngImport: i0 }); }
506
505
  }
507
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintDescribe, decorators: [{
506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintDescribe, decorators: [{
508
507
  type: Directive,
509
508
  args: [{
510
509
  selector: '[tuiHintDescribe]',
@@ -521,10 +520,10 @@ class TuiHintHost extends TuiRectAccessor {
521
520
  getClientRect() {
522
521
  return this.tuiHintHost()?.getBoundingClientRect() || EMPTY_CLIENT_RECT;
523
522
  }
524
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHost, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
525
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintHost, isStandalone: true, selector: "[tuiHint][tuiHintHost]", inputs: { tuiHintHost: { classPropertyName: "tuiHintHost", publicName: "tuiHintHost", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsRectAccessor(TuiHintHost)], usesInheritance: true, ngImport: i0 }); }
523
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintHost, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
524
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiHintHost, isStandalone: true, selector: "[tuiHint][tuiHintHost]", inputs: { tuiHintHost: { classPropertyName: "tuiHintHost", publicName: "tuiHintHost", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsRectAccessor(TuiHintHost)], usesInheritance: true, ngImport: i0 }); }
526
525
  }
527
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintHost, decorators: [{
526
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintHost, decorators: [{
528
527
  type: Directive,
529
528
  args: [{
530
529
  selector: '[tuiHint][tuiHintHost]',
@@ -545,10 +544,10 @@ class TuiHintManual extends TuiDriver {
545
544
  this.stream$.next(!!this.visible());
546
545
  this.hover.enabled = this.visible() === null;
547
546
  }
548
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintManual, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
549
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintManual, isStandalone: true, selector: "[tuiHint][tuiHintManual]", inputs: { visible: { classPropertyName: "visible", publicName: "tuiHintManual", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsDriver(TuiHintManual)], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
547
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintManual, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
548
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiHintManual, isStandalone: true, selector: "[tuiHint][tuiHintManual]", inputs: { visible: { classPropertyName: "visible", publicName: "tuiHintManual", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsDriver(TuiHintManual)], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
550
549
  }
551
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintManual, decorators: [{
550
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintManual, decorators: [{
552
551
  type: Directive,
553
552
  args: [{
554
553
  selector: '[tuiHint][tuiHintManual]',
@@ -566,10 +565,10 @@ class TuiHintOverflow {
566
565
  ? this.content() || textContent
567
566
  : '');
568
567
  }
569
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintOverflow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
570
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHintOverflow, isStandalone: true, selector: "[tuiHintOverflow]", inputs: { content: { classPropertyName: "content", publicName: "tuiHintOverflow", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter($event.currentTarget)" } }, hostDirectives: [{ directive: TuiHintDirective, inputs: ["tuiHintAppearance", "tuiHintAppearance"] }], ngImport: i0 }); }
568
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintOverflow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
569
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiHintOverflow, isStandalone: true, selector: "[tuiHintOverflow]", inputs: { content: { classPropertyName: "content", publicName: "tuiHintOverflow", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter($event.currentTarget)" } }, hostDirectives: [{ directive: TuiHintDirective, inputs: ["tuiHintAppearance", "tuiHintAppearance"] }], ngImport: i0 }); }
571
570
  }
572
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHintOverflow, decorators: [{
571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHintOverflow, decorators: [{
573
572
  type: Directive,
574
573
  args: [{
575
574
  selector: '[tuiHintOverflow]',
@@ -605,4 +604,4 @@ const TuiHint = [
605
604
  */
606
605
 
607
606
  export { TUI_HINT_COMPONENT, TUI_HINT_DEFAULT_OPTIONS, TUI_HINT_DIRECTIONS, TUI_HINT_OPTIONS, TUI_HINT_PROVIDERS, TuiHint, TuiHintComponent, TuiHintDescribe, TuiHintDirective, TuiHintDriver, TuiHintHost, TuiHintHover, TuiHintManual, TuiHintOptionsDirective, TuiHintOverflow, TuiHintPointer, TuiHintPosition, TuiHintUnstyled, TuiHintUnstyledComponent, tuiHintOptionsProvider };
608
- //# sourceMappingURL=taiga-ui-core-directives-hint.mjs.map
607
+ //# sourceMappingURL=taiga-ui-core-portals-hint.mjs.map