@taiga-ui/core 2.20.0 → 2.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. package/README.md +7 -3
  2. package/abstract/abstract-hint.d.ts +3 -1
  3. package/abstract/taiga-ui-core-abstract.metadata.json +1 -1
  4. package/bundles/taiga-ui-core-abstract.umd.js +4 -2
  5. package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
  6. package/bundles/taiga-ui-core-abstract.umd.min.js +1 -1
  7. package/bundles/taiga-ui-core-abstract.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-core-components-button.umd.js +21 -7
  9. package/bundles/taiga-ui-core-components-button.umd.js.map +1 -1
  10. package/bundles/taiga-ui-core-components-button.umd.min.js +1 -1
  11. package/bundles/taiga-ui-core-components-button.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-core-components-calendar.umd.js +1 -1
  13. package/bundles/taiga-ui-core-components-calendar.umd.js.map +1 -1
  14. package/bundles/taiga-ui-core-components-calendar.umd.min.js +1 -1
  15. package/bundles/taiga-ui-core-components-calendar.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-core-components-data-list.umd.js +6 -5
  17. package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
  18. package/bundles/taiga-ui-core-components-data-list.umd.min.js +2 -2
  19. package/bundles/taiga-ui-core-components-data-list.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-core-components-dialog.umd.js +2 -2
  21. package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
  22. package/bundles/taiga-ui-core-components-dialog.umd.min.js +1 -1
  23. package/bundles/taiga-ui-core-components-dialog.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-core-components-dropdown-box.umd.js +1 -1
  25. package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js +1 -1
  26. package/bundles/taiga-ui-core-components-error.umd.js +1 -1
  27. package/bundles/taiga-ui-core-components-error.umd.min.js +1 -1
  28. package/bundles/taiga-ui-core-components-expand.umd.js +3 -2
  29. package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
  30. package/bundles/taiga-ui-core-components-expand.umd.min.js +1 -1
  31. package/bundles/taiga-ui-core-components-expand.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-core-components-hints-host.umd.js +11 -5
  33. package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
  34. package/bundles/taiga-ui-core-components-hints-host.umd.min.js +1 -1
  35. package/bundles/taiga-ui-core-components-hints-host.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +2 -15
  37. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
  38. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js +1 -1
  39. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-core-components-label.umd.js +1 -1
  41. package/bundles/taiga-ui-core-components-label.umd.js.map +1 -1
  42. package/bundles/taiga-ui-core-components-label.umd.min.js +1 -1
  43. package/bundles/taiga-ui-core-components-label.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-core-components-link.umd.js +1 -1
  45. package/bundles/taiga-ui-core-components-link.umd.min.js +1 -1
  46. package/bundles/taiga-ui-core-components-link.umd.min.js.map +1 -1
  47. package/bundles/taiga-ui-core-components-loader.umd.js +2 -2
  48. package/bundles/taiga-ui-core-components-loader.umd.js.map +1 -1
  49. package/bundles/taiga-ui-core-components-loader.umd.min.js +1 -1
  50. package/bundles/taiga-ui-core-components-loader.umd.min.js.map +1 -1
  51. package/bundles/taiga-ui-core-components-notification.umd.js +1 -1
  52. package/bundles/taiga-ui-core-components-notification.umd.min.js +1 -1
  53. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js +2 -2
  54. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js.map +1 -1
  55. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js +1 -1
  56. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js.map +1 -1
  57. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js +2 -2
  58. package/bundles/taiga-ui-core-components-primitive-spin-button.umd.min.js +1 -1
  59. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +138 -106
  60. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  61. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js +2 -2
  62. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js +2 -2
  64. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
  65. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js +1 -1
  66. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js.map +1 -1
  67. package/bundles/taiga-ui-core-components-scroll-controls.umd.js +2 -2
  68. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js +1 -1
  69. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js.map +1 -1
  70. package/bundles/taiga-ui-core-components-scrollbar.umd.js +34 -24
  71. package/bundles/taiga-ui-core-components-scrollbar.umd.js.map +1 -1
  72. package/bundles/taiga-ui-core-components-scrollbar.umd.min.js +2 -2
  73. package/bundles/taiga-ui-core-components-scrollbar.umd.min.js.map +1 -1
  74. package/bundles/taiga-ui-core-components-theme-night.umd.js +7 -11
  75. package/bundles/taiga-ui-core-components-theme-night.umd.js.map +1 -1
  76. package/bundles/taiga-ui-core-components-theme-night.umd.min.js +2 -2
  77. package/bundles/taiga-ui-core-components-theme-night.umd.min.js.map +1 -1
  78. package/bundles/taiga-ui-core-components-tooltip.umd.js +1 -1
  79. package/bundles/taiga-ui-core-components-tooltip.umd.min.js +1 -1
  80. package/bundles/taiga-ui-core-components-wrapper.umd.js +1 -1
  81. package/bundles/taiga-ui-core-components-wrapper.umd.min.js +1 -1
  82. package/bundles/taiga-ui-core-components-wrapper.umd.min.js.map +1 -1
  83. package/bundles/taiga-ui-core-constants.umd.js +10 -1
  84. package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
  85. package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
  86. package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
  87. package/bundles/taiga-ui-core-directives-border.umd.js +291 -0
  88. package/bundles/taiga-ui-core-directives-border.umd.js.map +1 -0
  89. package/bundles/taiga-ui-core-directives-border.umd.min.js +16 -0
  90. package/bundles/taiga-ui-core-directives-border.umd.min.js.map +1 -0
  91. package/bundles/taiga-ui-core-directives-hint.umd.js +7 -4
  92. package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
  93. package/bundles/taiga-ui-core-directives-hint.umd.min.js +1 -1
  94. package/bundles/taiga-ui-core-directives-hint.umd.min.js.map +1 -1
  95. package/bundles/taiga-ui-core-directives-manual-hint.umd.js +7 -4
  96. package/bundles/taiga-ui-core-directives-manual-hint.umd.js.map +1 -1
  97. package/bundles/taiga-ui-core-directives-manual-hint.umd.min.js +1 -1
  98. package/bundles/taiga-ui-core-directives-manual-hint.umd.min.js.map +1 -1
  99. package/bundles/taiga-ui-core-directives-pointer-hint.umd.js +1 -1
  100. package/bundles/taiga-ui-core-directives-pointer-hint.umd.js.map +1 -1
  101. package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js +1 -1
  102. package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js.map +1 -1
  103. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +9 -3
  104. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
  105. package/bundles/taiga-ui-core-directives-textfield-controller.umd.min.js.map +1 -1
  106. package/bundles/taiga-ui-core-directives.umd.js +12 -4
  107. package/bundles/taiga-ui-core-directives.umd.js.map +1 -1
  108. package/bundles/taiga-ui-core-directives.umd.min.js +1 -1
  109. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js +1 -1
  110. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js.map +1 -1
  111. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.min.js +1 -1
  112. package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.min.js.map +1 -1
  113. package/bundles/taiga-ui-core-modules-notifications.umd.js +2 -2
  114. package/bundles/taiga-ui-core-modules-notifications.umd.js.map +1 -1
  115. package/bundles/taiga-ui-core-modules-notifications.umd.min.js +1 -1
  116. package/bundles/taiga-ui-core-modules-notifications.umd.min.js.map +1 -1
  117. package/bundles/taiga-ui-core-tokens.umd.js +9 -0
  118. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  119. package/bundles/taiga-ui-core-tokens.umd.min.js +1 -1
  120. package/bundles/taiga-ui-core-tokens.umd.min.js.map +1 -1
  121. package/bundles/taiga-ui-core-utils-dom.umd.js +3 -1
  122. package/bundles/taiga-ui-core-utils-dom.umd.js.map +1 -1
  123. package/bundles/taiga-ui-core-utils-dom.umd.min.js +1 -1
  124. package/bundles/taiga-ui-core-utils-dom.umd.min.js.map +1 -1
  125. package/bundles/taiga-ui-core-utils-mask.umd.js +28 -8
  126. package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
  127. package/bundles/taiga-ui-core-utils-mask.umd.min.js +1 -1
  128. package/bundles/taiga-ui-core-utils-mask.umd.min.js.map +1 -1
  129. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js +2 -4
  130. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js.map +1 -1
  131. package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js +1 -1
  132. package/bundles/taiga-ui-core-utils-miscellaneous.umd.min.js.map +1 -1
  133. package/components/button/button-options.d.ts +10 -0
  134. package/components/button/button.component.d.ts +8 -7
  135. package/components/button/index.d.ts +1 -0
  136. package/components/button/taiga-ui-core-components-button.metadata.json +1 -1
  137. package/components/calendar/taiga-ui-core-components-calendar.metadata.json +1 -1
  138. package/components/data-list/taiga-ui-core-components-data-list.metadata.json +1 -1
  139. package/components/dialog/taiga-ui-core-components-dialog.metadata.json +1 -1
  140. package/components/dropdown-box/taiga-ui-core-components-dropdown-box.metadata.json +1 -1
  141. package/components/error/taiga-ui-core-components-error.metadata.json +1 -1
  142. package/components/expand/taiga-ui-core-components-expand.metadata.json +1 -1
  143. package/components/hints-host/taiga-ui-core-components-hints-host.metadata.json +1 -1
  144. package/components/hosted-dropdown/hosted-dropdown.component.d.ts +1 -3
  145. package/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.metadata.json +1 -1
  146. package/components/label/taiga-ui-core-components-label.metadata.json +1 -1
  147. package/components/link/taiga-ui-core-components-link.metadata.json +1 -1
  148. package/components/loader/taiga-ui-core-components-loader.metadata.json +1 -1
  149. package/components/notification/taiga-ui-core-components-notification.metadata.json +1 -1
  150. package/components/primitive-calendar/primitive-calendar.component.d.ts +1 -1
  151. package/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.metadata.json +1 -1
  152. package/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.metadata.json +1 -1
  153. package/components/primitive-textfield/index.d.ts +1 -0
  154. package/components/primitive-textfield/primitive-textfield.component.d.ts +9 -16
  155. package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
  156. package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +18 -0
  157. package/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.metadata.json +1 -1
  158. package/components/scroll-controls/scroll-controls.component.d.ts +1 -1
  159. package/components/scroll-controls/taiga-ui-core-components-scroll-controls.metadata.json +1 -1
  160. package/components/scrollbar/scrollable.directive.d.ts +5 -1
  161. package/components/scrollbar/scrollbar.component.d.ts +4 -3
  162. package/components/scrollbar/taiga-ui-core-components-scrollbar.metadata.json +1 -1
  163. package/components/theme-night/taiga-ui-core-components-theme-night.metadata.json +1 -1
  164. package/components/theme-night/theme-night.component.d.ts +0 -1
  165. package/components/tooltip/taiga-ui-core-components-tooltip.metadata.json +1 -1
  166. package/components/wrapper/taiga-ui-core-components-wrapper.metadata.json +1 -1
  167. package/constants/events.d.ts +5 -0
  168. package/constants/media.d.ts +1 -0
  169. package/constants/regexp.d.ts +1 -0
  170. package/constants/taiga-ui-core-constants.metadata.json +1 -1
  171. package/constants/version.d.ts +1 -1
  172. package/directives/border/border.directive.d.ts +9 -0
  173. package/directives/border/border.module.d.ts +2 -0
  174. package/directives/border/index.d.ts +2 -0
  175. package/directives/border/package.json +13 -0
  176. package/directives/border/taiga-ui-core-directives-border.d.ts +4 -0
  177. package/directives/border/taiga-ui-core-directives-border.metadata.json +1 -0
  178. package/directives/hint/hint.directive.d.ts +2 -2
  179. package/directives/hint/taiga-ui-core-directives-hint.metadata.json +1 -1
  180. package/directives/index.d.ts +1 -0
  181. package/directives/manual-hint/manual-hint.directive.d.ts +2 -1
  182. package/directives/manual-hint/taiga-ui-core-directives-manual-hint.metadata.json +1 -1
  183. package/directives/taiga-ui-core-directives.metadata.json +1 -1
  184. package/directives/textfield-controller/taiga-ui-core-directives-textfield-controller.metadata.json +1 -1
  185. package/esm2015/abstract/abstract-hint.js +6 -4
  186. package/esm2015/components/button/button-options.js +10 -0
  187. package/esm2015/components/button/button.component.js +12 -8
  188. package/esm2015/components/button/index.js +2 -1
  189. package/esm2015/components/calendar/calendar.component.js +2 -2
  190. package/esm2015/components/data-list/data-list.component.js +4 -3
  191. package/esm2015/components/data-list/option/option.component.js +4 -4
  192. package/esm2015/components/dialog/dialog.component.js +3 -3
  193. package/esm2015/components/dropdown-box/dropdown-box.component.js +1 -1
  194. package/esm2015/components/error/error.component.js +1 -1
  195. package/esm2015/components/expand/expand.component.js +4 -3
  196. package/esm2015/components/hints-host/hint-box/hint-box.component.js +3 -3
  197. package/esm2015/components/hints-host/hints-host.component.js +3 -3
  198. package/esm2015/components/hints-host/hints-host.module.js +9 -3
  199. package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +4 -13
  200. package/esm2015/components/label/label.component.js +2 -2
  201. package/esm2015/components/link/link.component.js +1 -1
  202. package/esm2015/components/loader/loader.component.js +3 -3
  203. package/esm2015/components/notification/notification.component.js +1 -1
  204. package/esm2015/components/primitive-calendar/primitive-calendar.component.js +3 -3
  205. package/esm2015/components/primitive-spin-button/primitive-spin-button.component.js +2 -2
  206. package/esm2015/components/primitive-textfield/index.js +2 -1
  207. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +38 -67
  208. package/esm2015/components/primitive-textfield/primitive-textfield.module.js +7 -2
  209. package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +65 -0
  210. package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +3 -3
  211. package/esm2015/components/scroll-controls/scroll-controls.component.js +2 -2
  212. package/esm2015/components/scrollbar/scrollable.directive.js +18 -4
  213. package/esm2015/components/scrollbar/scrollbar.component.js +20 -18
  214. package/esm2015/components/theme-night/theme-night.component.js +4 -12
  215. package/esm2015/components/tooltip/tooltip.component.js +1 -1
  216. package/esm2015/components/wrapper/wrapper.component.js +1 -1
  217. package/esm2015/constants/events.js +6 -1
  218. package/esm2015/constants/media.js +2 -1
  219. package/esm2015/constants/regexp.js +2 -1
  220. package/esm2015/constants/version.js +2 -2
  221. package/esm2015/directives/border/border.directive.js +42 -0
  222. package/esm2015/directives/border/border.module.js +13 -0
  223. package/esm2015/directives/border/index.js +3 -0
  224. package/esm2015/directives/border/taiga-ui-core-directives-border.js +5 -0
  225. package/esm2015/directives/hint/hint.directive.js +10 -7
  226. package/esm2015/directives/index.js +2 -1
  227. package/esm2015/directives/manual-hint/manual-hint.directive.js +10 -7
  228. package/esm2015/directives/pointer-hint/pointer-hint.directive.js +2 -2
  229. package/esm2015/directives/textfield-controller/textfield-cleaner.directive.js +4 -2
  230. package/esm2015/directives/textfield-controller/textfield-size.directive.js +4 -2
  231. package/esm2015/directives/textfield-controller/textfield-type.directive.js +4 -2
  232. package/esm2015/interfaces/index.js +1 -1
  233. package/esm2015/interfaces/media.js +1 -0
  234. package/esm2015/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  235. package/esm2015/modules/notifications/notification-alert/notification-alert.component.js +2 -2
  236. package/esm2015/modules/notifications/notifications-host/notifications-host.component.js +1 -1
  237. package/esm2015/tokens/index.js +2 -1
  238. package/esm2015/tokens/media.js +9 -0
  239. package/esm2015/utils/dom/process-icon.js +4 -2
  240. package/esm2015/utils/mask/create-number-mask.js +28 -10
  241. package/esm2015/utils/miscellaneous/get-border.js +3 -5
  242. package/esm5/abstract/abstract-hint.js +6 -4
  243. package/esm5/components/button/button-options.js +10 -0
  244. package/esm5/components/button/button.component.js +12 -8
  245. package/esm5/components/button/index.js +2 -1
  246. package/esm5/components/calendar/calendar.component.js +2 -2
  247. package/esm5/components/data-list/data-list.component.js +4 -3
  248. package/esm5/components/data-list/option/option.component.js +4 -4
  249. package/esm5/components/dialog/dialog.component.js +3 -3
  250. package/esm5/components/dropdown-box/dropdown-box.component.js +1 -1
  251. package/esm5/components/error/error.component.js +1 -1
  252. package/esm5/components/expand/expand.component.js +4 -3
  253. package/esm5/components/hints-host/hint-box/hint-box.component.js +3 -3
  254. package/esm5/components/hints-host/hints-host.component.js +3 -3
  255. package/esm5/components/hints-host/hints-host.module.js +9 -3
  256. package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +4 -17
  257. package/esm5/components/label/label.component.js +2 -2
  258. package/esm5/components/link/link.component.js +1 -1
  259. package/esm5/components/loader/loader.component.js +3 -3
  260. package/esm5/components/notification/notification.component.js +1 -1
  261. package/esm5/components/primitive-calendar/primitive-calendar.component.js +3 -3
  262. package/esm5/components/primitive-spin-button/primitive-spin-button.component.js +2 -2
  263. package/esm5/components/primitive-textfield/index.js +2 -1
  264. package/esm5/components/primitive-textfield/primitive-textfield.component.js +43 -104
  265. package/esm5/components/primitive-textfield/primitive-textfield.module.js +7 -2
  266. package/esm5/components/primitive-textfield/value-decoration/value-decoration.component.js +99 -0
  267. package/esm5/components/primitive-year-picker/primitive-year-picker.component.js +3 -3
  268. package/esm5/components/scroll-controls/scroll-controls.component.js +2 -2
  269. package/esm5/components/scrollbar/scrollable.directive.js +17 -5
  270. package/esm5/components/scrollbar/scrollbar.component.js +20 -22
  271. package/esm5/components/theme-night/theme-night.component.js +6 -11
  272. package/esm5/components/tooltip/tooltip.component.js +1 -1
  273. package/esm5/components/wrapper/wrapper.component.js +1 -1
  274. package/esm5/constants/events.js +6 -1
  275. package/esm5/constants/media.js +2 -1
  276. package/esm5/constants/regexp.js +2 -1
  277. package/esm5/constants/version.js +2 -2
  278. package/esm5/directives/border/border.directive.js +51 -0
  279. package/esm5/directives/border/border.module.js +16 -0
  280. package/esm5/directives/border/index.js +3 -0
  281. package/esm5/directives/border/taiga-ui-core-directives-border.js +5 -0
  282. package/esm5/directives/hint/hint.directive.js +10 -7
  283. package/esm5/directives/index.js +2 -1
  284. package/esm5/directives/manual-hint/manual-hint.directive.js +10 -7
  285. package/esm5/directives/pointer-hint/pointer-hint.directive.js +2 -2
  286. package/esm5/directives/textfield-controller/textfield-cleaner.directive.js +4 -2
  287. package/esm5/directives/textfield-controller/textfield-size.directive.js +4 -2
  288. package/esm5/directives/textfield-controller/textfield-type.directive.js +4 -2
  289. package/esm5/interfaces/index.js +1 -1
  290. package/esm5/interfaces/media.js +1 -0
  291. package/esm5/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
  292. package/esm5/modules/notifications/notification-alert/notification-alert.component.js +2 -2
  293. package/esm5/modules/notifications/notifications-host/notifications-host.component.js +1 -1
  294. package/esm5/tokens/index.js +2 -1
  295. package/esm5/tokens/media.js +9 -0
  296. package/esm5/utils/dom/process-icon.js +4 -2
  297. package/esm5/utils/mask/create-number-mask.js +30 -10
  298. package/esm5/utils/miscellaneous/get-border.js +3 -5
  299. package/fesm2015/taiga-ui-core-abstract.js +4 -2
  300. package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
  301. package/fesm2015/taiga-ui-core-components-button.js +21 -9
  302. package/fesm2015/taiga-ui-core-components-button.js.map +1 -1
  303. package/fesm2015/taiga-ui-core-components-calendar.js +1 -1
  304. package/fesm2015/taiga-ui-core-components-calendar.js.map +1 -1
  305. package/fesm2015/taiga-ui-core-components-data-list.js +6 -5
  306. package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
  307. package/fesm2015/taiga-ui-core-components-dialog.js +2 -2
  308. package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
  309. package/fesm2015/taiga-ui-core-components-dropdown-box.js +1 -1
  310. package/fesm2015/taiga-ui-core-components-error.js +1 -1
  311. package/fesm2015/taiga-ui-core-components-expand.js +3 -2
  312. package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
  313. package/fesm2015/taiga-ui-core-components-hints-host.js +12 -6
  314. package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
  315. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +3 -12
  316. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  317. package/fesm2015/taiga-ui-core-components-label.js +1 -1
  318. package/fesm2015/taiga-ui-core-components-label.js.map +1 -1
  319. package/fesm2015/taiga-ui-core-components-link.js +1 -1
  320. package/fesm2015/taiga-ui-core-components-loader.js +2 -2
  321. package/fesm2015/taiga-ui-core-components-loader.js.map +1 -1
  322. package/fesm2015/taiga-ui-core-components-notification.js +1 -1
  323. package/fesm2015/taiga-ui-core-components-primitive-calendar.js +2 -2
  324. package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  325. package/fesm2015/taiga-ui-core-components-primitive-spin-button.js +2 -2
  326. package/fesm2015/taiga-ui-core-components-primitive-textfield.js +102 -69
  327. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  328. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js +2 -2
  329. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  330. package/fesm2015/taiga-ui-core-components-scroll-controls.js +2 -2
  331. package/fesm2015/taiga-ui-core-components-scrollbar.js +33 -17
  332. package/fesm2015/taiga-ui-core-components-scrollbar.js.map +1 -1
  333. package/fesm2015/taiga-ui-core-components-theme-night.js +3 -11
  334. package/fesm2015/taiga-ui-core-components-theme-night.js.map +1 -1
  335. package/fesm2015/taiga-ui-core-components-tooltip.js +1 -1
  336. package/fesm2015/taiga-ui-core-components-wrapper.js +1 -1
  337. package/fesm2015/taiga-ui-core-constants.js +9 -2
  338. package/fesm2015/taiga-ui-core-constants.js.map +1 -1
  339. package/fesm2015/taiga-ui-core-directives-border.js +57 -0
  340. package/fesm2015/taiga-ui-core-directives-border.js.map +1 -0
  341. package/fesm2015/taiga-ui-core-directives-hint.js +9 -6
  342. package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
  343. package/fesm2015/taiga-ui-core-directives-manual-hint.js +9 -6
  344. package/fesm2015/taiga-ui-core-directives-manual-hint.js.map +1 -1
  345. package/fesm2015/taiga-ui-core-directives-pointer-hint.js +1 -1
  346. package/fesm2015/taiga-ui-core-directives-pointer-hint.js.map +1 -1
  347. package/fesm2015/taiga-ui-core-directives-textfield-controller.js +9 -3
  348. package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  349. package/fesm2015/taiga-ui-core-directives.js +1 -0
  350. package/fesm2015/taiga-ui-core-directives.js.map +1 -1
  351. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  352. package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  353. package/fesm2015/taiga-ui-core-modules-notifications.js +2 -2
  354. package/fesm2015/taiga-ui-core-modules-notifications.js.map +1 -1
  355. package/fesm2015/taiga-ui-core-tokens.js +9 -1
  356. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  357. package/fesm2015/taiga-ui-core-utils-dom.js +3 -1
  358. package/fesm2015/taiga-ui-core-utils-dom.js.map +1 -1
  359. package/fesm2015/taiga-ui-core-utils-mask.js +27 -9
  360. package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
  361. package/fesm2015/taiga-ui-core-utils-miscellaneous.js +2 -4
  362. package/fesm2015/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  363. package/fesm5/taiga-ui-core-abstract.js +4 -2
  364. package/fesm5/taiga-ui-core-abstract.js.map +1 -1
  365. package/fesm5/taiga-ui-core-components-button.js +21 -9
  366. package/fesm5/taiga-ui-core-components-button.js.map +1 -1
  367. package/fesm5/taiga-ui-core-components-calendar.js +1 -1
  368. package/fesm5/taiga-ui-core-components-calendar.js.map +1 -1
  369. package/fesm5/taiga-ui-core-components-data-list.js +6 -5
  370. package/fesm5/taiga-ui-core-components-data-list.js.map +1 -1
  371. package/fesm5/taiga-ui-core-components-dialog.js +2 -2
  372. package/fesm5/taiga-ui-core-components-dialog.js.map +1 -1
  373. package/fesm5/taiga-ui-core-components-dropdown-box.js +1 -1
  374. package/fesm5/taiga-ui-core-components-error.js +1 -1
  375. package/fesm5/taiga-ui-core-components-expand.js +3 -2
  376. package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
  377. package/fesm5/taiga-ui-core-components-hints-host.js +12 -6
  378. package/fesm5/taiga-ui-core-components-hints-host.js.map +1 -1
  379. package/fesm5/taiga-ui-core-components-hosted-dropdown.js +3 -16
  380. package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  381. package/fesm5/taiga-ui-core-components-label.js +1 -1
  382. package/fesm5/taiga-ui-core-components-label.js.map +1 -1
  383. package/fesm5/taiga-ui-core-components-link.js +1 -1
  384. package/fesm5/taiga-ui-core-components-loader.js +2 -2
  385. package/fesm5/taiga-ui-core-components-loader.js.map +1 -1
  386. package/fesm5/taiga-ui-core-components-notification.js +1 -1
  387. package/fesm5/taiga-ui-core-components-primitive-calendar.js +2 -2
  388. package/fesm5/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  389. package/fesm5/taiga-ui-core-components-primitive-spin-button.js +2 -2
  390. package/fesm5/taiga-ui-core-components-primitive-textfield.js +141 -106
  391. package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  392. package/fesm5/taiga-ui-core-components-primitive-year-picker.js +2 -2
  393. package/fesm5/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  394. package/fesm5/taiga-ui-core-components-scroll-controls.js +2 -2
  395. package/fesm5/taiga-ui-core-components-scrollbar.js +32 -22
  396. package/fesm5/taiga-ui-core-components-scrollbar.js.map +1 -1
  397. package/fesm5/taiga-ui-core-components-theme-night.js +5 -10
  398. package/fesm5/taiga-ui-core-components-theme-night.js.map +1 -1
  399. package/fesm5/taiga-ui-core-components-tooltip.js +1 -1
  400. package/fesm5/taiga-ui-core-components-wrapper.js +1 -1
  401. package/fesm5/taiga-ui-core-constants.js +9 -2
  402. package/fesm5/taiga-ui-core-constants.js.map +1 -1
  403. package/fesm5/taiga-ui-core-directives-border.js +69 -0
  404. package/fesm5/taiga-ui-core-directives-border.js.map +1 -0
  405. package/fesm5/taiga-ui-core-directives-hint.js +9 -6
  406. package/fesm5/taiga-ui-core-directives-hint.js.map +1 -1
  407. package/fesm5/taiga-ui-core-directives-manual-hint.js +9 -6
  408. package/fesm5/taiga-ui-core-directives-manual-hint.js.map +1 -1
  409. package/fesm5/taiga-ui-core-directives-pointer-hint.js +1 -1
  410. package/fesm5/taiga-ui-core-directives-pointer-hint.js.map +1 -1
  411. package/fesm5/taiga-ui-core-directives-textfield-controller.js +9 -3
  412. package/fesm5/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  413. package/fesm5/taiga-ui-core-directives.js +1 -0
  414. package/fesm5/taiga-ui-core-directives.js.map +1 -1
  415. package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
  416. package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
  417. package/fesm5/taiga-ui-core-modules-notifications.js +2 -2
  418. package/fesm5/taiga-ui-core-modules-notifications.js.map +1 -1
  419. package/fesm5/taiga-ui-core-tokens.js +9 -1
  420. package/fesm5/taiga-ui-core-tokens.js.map +1 -1
  421. package/fesm5/taiga-ui-core-utils-dom.js +3 -1
  422. package/fesm5/taiga-ui-core-utils-dom.js.map +1 -1
  423. package/fesm5/taiga-ui-core-utils-mask.js +30 -10
  424. package/fesm5/taiga-ui-core-utils-mask.js.map +1 -1
  425. package/fesm5/taiga-ui-core-utils-miscellaneous.js +2 -4
  426. package/fesm5/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  427. package/interfaces/index.d.ts +1 -0
  428. package/interfaces/media.d.ts +6 -0
  429. package/interfaces/taiga-ui-core-interfaces.metadata.json +1 -1
  430. package/internal/primitive-year-month-pagination/taiga-ui-core-internal-primitive-year-month-pagination.metadata.json +1 -1
  431. package/modules/notifications/taiga-ui-core-modules-notifications.metadata.json +1 -1
  432. package/package.json +5 -5
  433. package/styles/basic/main.less +2 -4
  434. package/styles/markup/tui-autofill.less +2 -0
  435. package/styles/markup/tui-container-old.less +69 -0
  436. package/styles/markup/tui-form-old.less +141 -0
  437. package/styles/markup/tui-form.less +12 -12
  438. package/styles/markup/tui-group-old.less +322 -0
  439. package/styles/markup/tui-group.less +2 -2
  440. package/styles/markup/tui-mobile-only.less +1 -1
  441. package/styles/markup/tui-row-old.less +157 -0
  442. package/styles/markup/tui-table.less +2 -2
  443. package/styles/mixins/mixins.less +8 -3
  444. package/styles/mixins/picker.less +1 -1
  445. package/styles/mixins/textfield.less +37 -78
  446. package/styles/taiga-ui-global-old.less +18 -0
  447. package/styles/taiga-ui-local-old.less +7 -0
  448. package/styles/theme/variables.less +4 -0
  449. package/styles/theme/wrapper/table.less +4 -0
  450. package/styles/variables/media-old.less +48 -0
  451. package/styles/variables/media.less +4 -4
  452. package/tokens/index.d.ts +1 -0
  453. package/tokens/media.d.ts +3 -0
  454. package/tokens/taiga-ui-core-tokens.metadata.json +1 -1
  455. package/utils/mask/create-number-mask.d.ts +1 -0
  456. package/utils/miscellaneous/get-border.d.ts +1 -1
@@ -73,8 +73,8 @@ TuiPrimitiveSpinButtonComponent = __decorate([
73
73
  Component({
74
74
  selector: 'tui-primitive-spin-button',
75
75
  changeDetection: ChangeDetectionStrategy.OnPush,
76
- template: "<div\n *ngIf=\"spinTexts$ | async as texts\"\n class=\"wrapper\"\n tuiPreventDefault=\"mousedown\"\n #wrapper\n [tuiFocusable]=\"computedFocusable\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiFocusVisibleChange)=\"onFocusVisible($event)\"\n (keydown.arrowLeft)=\"onLeftClick()\"\n (keydown.arrowRight)=\"onRightClick()\"\n>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"\"\n automation-id=\"tui-primitive-spin-button__left\"\n icon=\"tuiIconChevronLeftLarge\"\n class=\"arrow\"\n [class.arrow_hidden]=\"leftComputedDisabled\"\n [title]=\"texts[0]\"\n [focusable]=\"false\"\n (click)=\"onLeftClick()\"\n ></button>\n <span class=\"content\">\n <ng-content></ng-content>\n </span>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"\"\n automation-id=\"tui-primitive-spin-button__right\"\n icon=\"tuiIconChevronRightLarge\"\n class=\"arrow\"\n [class.arrow_hidden]=\"rightComputedDisabled\"\n [title]=\"texts[1]\"\n [focusable]=\"false\"\n (click)=\"onRightClick()\"\n ></button>\n</div>\n",
77
- styles: [":host{font:var(--tui-font-text-l);display:block;text-align:center;font-weight:700}.wrapper{display:flex;align-items:center;justify-content:space-between;outline:0}.arrow{margin:0 .25rem}.arrow_hidden{visibility:hidden}.content{padding:0 .5rem}:host._focus-visible .content{box-shadow:0 0 0 1px var(--tui-focus)}"]
76
+ template: "<div\n *ngIf=\"spinTexts$ | async as texts\"\n #wrapper\n tuiPreventDefault=\"mousedown\"\n class=\"wrapper\"\n [tuiFocusable]=\"computedFocusable\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiFocusVisibleChange)=\"onFocusVisible($event)\"\n (keydown.arrowLeft)=\"onLeftClick()\"\n (keydown.arrowRight)=\"onRightClick()\"\n>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"\"\n automation-id=\"tui-primitive-spin-button__left\"\n icon=\"tuiIconChevronLeftLarge\"\n class=\"arrow\"\n [class.arrow_hidden]=\"leftComputedDisabled\"\n [title]=\"texts[0]\"\n [focusable]=\"false\"\n (click)=\"onLeftClick()\"\n ></button>\n <span class=\"content\">\n <ng-content></ng-content>\n </span>\n <button\n tuiIconButton\n type=\"button\"\n size=\"xs\"\n appearance=\"\"\n automation-id=\"tui-primitive-spin-button__right\"\n icon=\"tuiIconChevronRightLarge\"\n class=\"arrow\"\n [class.arrow_hidden]=\"rightComputedDisabled\"\n [title]=\"texts[1]\"\n [focusable]=\"false\"\n (click)=\"onRightClick()\"\n ></button>\n</div>\n",
77
+ styles: [":host{display:block;font:var(--tui-font-text-l);text-align:center;font-weight:700}.wrapper{display:flex;align-items:center;justify-content:space-between;outline:0}.arrow{margin:0 .25rem}.arrow_hidden{visibility:hidden}.content{padding:0 .5rem}:host._focus-visible .content{box-shadow:0 0 0 1px var(--tui-focus)}"]
78
78
  }),
79
79
  __param(0, Inject(TUI_SPIN_TEXTS))
80
80
  ], TuiPrimitiveSpinButtonComponent);
@@ -1,4 +1,5 @@
1
1
  export * from './primitive-textfield.component';
2
2
  export * from './primitive-textfield.module';
3
3
  export * from './primitive-textfield.providers';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQucHJvdmlkZXJzJztcbiJdfQ==
4
+ export * from './value-decoration/value-decoration.component';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi92YWx1ZS1kZWNvcmF0aW9uL3ZhbHVlLWRlY29yYXRpb24uY29tcG9uZW50JztcbiJdfQ==
@@ -4,9 +4,10 @@ import { AbstractTuiInteractive, isNativeFocused, setNativeFocused, tuiDefaultPr
4
4
  import { TUI_HINT_WATCHED_CONTROLLER, TuiHintControllerDirective, } from '@taiga-ui/core/directives/hint-controller';
5
5
  import { TUI_TEXTFIELD_WATCHED_CONTROLLER, TuiTextfieldController, } from '@taiga-ui/core/directives/textfield-controller';
6
6
  import { TUI_MODE, TUI_TEXTFIELD_APPEARANCE } from '@taiga-ui/core/tokens';
7
- import { getBorder, sizeBigger } from '@taiga-ui/core/utils/miscellaneous';
7
+ import { getBorder } from '@taiga-ui/core/utils/miscellaneous';
8
8
  import { PolymorpheusOutletComponent } from '@tinkoff/ng-polymorpheus';
9
- import { Observable } from 'rxjs';
9
+ import { fromEvent, Observable } from 'rxjs';
10
+ import { map } from 'rxjs/operators';
10
11
  import { TUI_PRIMITIVE_TEXTFIELD_PROVIDERS } from './primitive-textfield.providers';
11
12
  const ICON_PADDING = 1.75;
12
13
  const ICON_PADDING_S = 1.5;
@@ -25,6 +26,7 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
25
26
  this.readOnly = false;
26
27
  this.invalid = false;
27
28
  this.disabled = false;
29
+ this.prefix = '';
28
30
  this.postfix = '';
29
31
  this.value = '';
30
32
  this.valueChange = new EventEmitter();
@@ -55,75 +57,49 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
55
57
  get isContextTable() {
56
58
  return this.appearance === "table" /* Table */;
57
59
  }
60
+ get hasValue() {
61
+ return !!this.value;
62
+ }
63
+ get hasCleaner() {
64
+ return (this.controller.cleaner && this.hasValue && !this.disabled && !this.readOnly);
65
+ }
58
66
  get hasTooltip() {
59
- return !!this.hintController && !!this.hintController.content && !this.disabled;
67
+ var _a;
68
+ return !!((_a = this.hintController) === null || _a === void 0 ? void 0 : _a.content) && !this.disabled;
60
69
  }
61
70
  get hasCustomContent() {
62
71
  return !!this.controller.customContent;
63
72
  }
64
- get iconPaddingLeft() {
65
- return this.size === 's' ? ICON_PADDING_S : ICON_PADDING;
66
- }
67
- get borderLeft() {
68
- return ((this.iconAlignLeft ? this.iconPaddingLeft : 0) +
69
- getBorder(sizeBigger(this.size, 'm'), false));
70
- }
71
- get borderRight() {
72
- return getBorder(sizeBigger(this.size, 'm'), this.iconAlignRight, this.hasCleaner, this.hasTooltip, this.hasCustomContent);
73
- }
74
73
  get hasPlaceholder() {
75
- return ((this.big && !this.labelOutside) ||
76
- (!this.hasValue && !this.hasExampleText && !this.hasPostfix));
74
+ const hasDecor = this.controller.exampleText || this.prefix || this.postfix;
75
+ const showDecor = hasDecor && !this.readOnly && this.computedFocused;
76
+ const placeholderVisible = !this.hasValue && !showDecor;
77
+ return this.placeholderRaisable || placeholderVisible;
77
78
  }
78
79
  get placeholderRaised() {
79
- return (this.big &&
80
- !this.labelOutside &&
80
+ return (this.placeholderRaisable &&
81
81
  ((this.computedFocused && !this.readOnly) || this.hasValue || this.autofilled));
82
82
  }
83
+ get borderLeft() {
84
+ return this.iconAlignLeft ? this.iconPaddingLeft : 0;
85
+ }
86
+ get borderRight() {
87
+ return getBorder(this.iconAlignRight, this.hasCleaner, this.hasTooltip, this.hasCustomContent);
88
+ }
83
89
  get iconAlignLeft() {
84
90
  return this.hasIcon && this.iconAlign === 'left';
85
91
  }
86
92
  get iconAlignRight() {
87
93
  return this.hasIcon && this.iconAlign === 'right';
88
94
  }
89
- get hasValue() {
90
- return !!this.value;
91
- }
92
- get hasCleaner() {
93
- return (this.controller.cleaner && this.hasValue && !this.disabled && !this.readOnly);
94
- }
95
- get rightAligned() {
96
- return (this.appearance === "table" /* Table */ &&
97
- (this.controller.inputMode === 'numeric' ||
98
- this.controller.inputMode === 'decimal'));
99
- }
100
- get hasValueDecoration() {
101
- const fillerOrExampleShown = this.computedFocused && !this.readOnly && this.hasFillerOrExampleText;
102
- return fillerOrExampleShown || this.hasPostfix;
103
- }
104
- get hasPostfix() {
105
- const isPostfixAllowed = this.hasValue || (this.computedFocused && !this.readOnly);
106
- return isPostfixAllowed && !!this.postfix;
107
- }
108
- get hasFillerOrExampleText() {
109
- return this.hasValue ? !!this.computedFiller : !!this.controller.exampleText;
110
- }
111
- get postfixShifted() {
112
- return this.postfix !== '%' && (this.hasFillerOrExampleText || this.hasValue);
113
- }
114
- get computedFiller() {
115
- return this.hasExampleText
116
- ? this.controller.exampleText
117
- : this.filler.slice(this.value.length);
118
- }
119
95
  // Safari expiration date autofill workaround
120
96
  get name() {
121
97
  return this.controller.autocomplete === "cc-exp" /* CcExp */
122
98
  ? 'ccexpiryyear'
123
99
  : null;
124
100
  }
125
- get context() {
126
- return this.getContext(this.size);
101
+ getIndent$(element) {
102
+ return fromEvent(element, 'scroll').pipe(map(() => -1 * element.scrollLeft));
127
103
  }
128
104
  clear() {
129
105
  if (this.nativeFocusableElement) {
@@ -151,21 +127,15 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
151
127
  onAutofilled(autofilled) {
152
128
  this.updateAutofilled(autofilled);
153
129
  }
154
- get big() {
155
- return this.size !== 's';
130
+ get iconPaddingLeft() {
131
+ return this.size === 's' ? ICON_PADDING_S : ICON_PADDING;
132
+ }
133
+ get placeholderRaisable() {
134
+ return this.size !== 's' && !this.labelOutside;
156
135
  }
157
136
  get hasIcon() {
158
137
  return !!this.iconContent;
159
138
  }
160
- get hasExampleText() {
161
- return (!!this.controller.exampleText &&
162
- this.computedFocused &&
163
- !this.hasValue &&
164
- !this.readOnly);
165
- }
166
- getContext($implicit) {
167
- return { $implicit };
168
- }
169
139
  updateAutofilled(autofilled) {
170
140
  if (this.autofilled === autofilled) {
171
141
  return;
@@ -213,6 +183,10 @@ __decorate([
213
183
  Input(),
214
184
  tuiDefaultProp()
215
185
  ], TuiPrimitiveTextfieldComponent.prototype, "disabled", void 0);
186
+ __decorate([
187
+ Input(),
188
+ tuiDefaultProp()
189
+ ], TuiPrimitiveTextfieldComponent.prototype, "prefix", void 0);
216
190
  __decorate([
217
191
  Input(),
218
192
  tuiDefaultProp()
@@ -242,22 +216,19 @@ __decorate([
242
216
  __decorate([
243
217
  HostBinding('class._invalid')
244
218
  ], TuiPrimitiveTextfieldComponent.prototype, "computedInvalid", null);
245
- __decorate([
246
- HostBinding('class._right-aligned')
247
- ], TuiPrimitiveTextfieldComponent.prototype, "rightAligned", null);
248
219
  __decorate([
249
220
  tuiPure
250
- ], TuiPrimitiveTextfieldComponent.prototype, "getContext", null);
221
+ ], TuiPrimitiveTextfieldComponent.prototype, "getIndent$", null);
251
222
  TuiPrimitiveTextfieldComponent = __decorate([
252
223
  Component({
253
224
  selector: 'tui-primitive-textfield',
254
- template: "<ng-container *ngIf=\"content?.changes | async\"></ng-container>\n<tui-wrapper\n automation-id=\"tui-primitive-textfield__wrapper\"\n tuiPreventDefault=\"click\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [pressed]=\"computedPressed\"\n [invalid]=\"computedInvalid\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <input\n #focusableElement\n tuiMaskAccessor\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"input\"\n [class.input_hidden]=\"inputHidden\"\n [style.borderLeftWidth.rem]=\"borderLeft\"\n [style.borderRightWidth.rem]=\"borderRight\"\n [attr.disabled]=\"computedDisabled || null\"\n [attr.maxLength]=\"controller.maxLength\"\n [attr.name]=\"name\"\n [attr.aria-placeholder]=\"controller.exampleText\"\n [attr.aria-invalid]=\"computedInvalid\"\n [autocomplete]=\"controller.autocomplete\"\n [type]=\"controller.type\"\n [id]=\"id\"\n [readOnly]=\"readOnly || !editable\"\n [tuiInputMode]=\"controller.inputMode\"\n [tuiFocusable]=\"computedFocusable\"\n [tuiDescribedBy]=\"id\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiAutofilledChange)=\"onAutofilled($event)\"\n />\n <div\n *ngIf=\"inputHidden\"\n automation-id=\"tui-primitive-textfield__value\"\n class=\"input input_template\"\n [style.paddingLeft.rem]=\"borderLeft\"\n [style.borderRightWidth.rem]=\"borderRight\"\n >\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n </div>\n <div class=\"content\">\n <div\n polymorpheus-outlet\n *ngIf=\"iconAlignLeft\"\n class=\"icon icon_left\"\n [content]=\"iconContent\"\n [context]=\"context\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <div class=\"wrapper\">\n <span\n [class.value_visible]=\"isContextTable\"\n aria-hidden=\"true\"\n class=\"value\"\n >\n {{value}}\n </span>\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"placeholder\"\n [class.placeholder_raised]=\"placeholderRaised\"\n [for]=\"id\"\n >\n <ng-content></ng-content>\n </label>\n <div\n *ngIf=\"hasValueDecoration\"\n class=\"value-decoration\"\n automation-id=\"tui-primitive-textfield__value-decoration\"\n aria-hidden=\"true\"\n >\n <span class=\"value-decoration-inner\">\n <span class=\"ghost\">{{value}}</span>\n <span automation-id=\"tui-primitive-textfield__example-text\"\n >{{computedFiller}}</span\n >\n <span\n *ngIf=\"hasPostfix\"\n class=\"postfix\"\n [class.postfix_shifted]=\"postfixShifted\"\n >{{postfix}}</span\n >\n </span>\n </div>\n </div>\n <div\n polymorpheus-outlet\n *ngIf=\"hasCustomContent\"\n class=\"custom-content\"\n automation-id=\"tui-primitive-textfield__custom-content\"\n [content]=\"controller.customContent\"\n >\n <ng-template let-iconSrc>\n <tui-svg class=\"custom-icon\" [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <tui-svg\n *ngIf=\"hasCleaner\"\n class=\"cleaner\"\n automation-id=\"tui-primitive-textfield__cleaner\"\n src=\"tuiIconCloseLarge\"\n (click.stop)=\"clear()\"\n ></tui-svg>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n [describeId]=\"id\"\n [content]=\"hintController.content\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <div\n polymorpheus-outlet\n *ngIf=\"iconAlignRight\"\n class=\"icon\"\n [content]=\"iconContent\"\n [context]=\"context\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n </div>\n</tui-wrapper>\n",
225
+ template: "<ng-container *ngIf=\"content?.changes | async\"></ng-container>\n<tui-wrapper\n automation-id=\"tui-primitive-textfield__wrapper\"\n tuiPreventDefault=\"click\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [pressed]=\"computedPressed\"\n [invalid]=\"computedInvalid\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <input\n #focusableElement\n tuiMaskAccessor\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"input\"\n [class.input_hidden]=\"inputHidden\"\n [style.textIndent.px]=\"decor.pre$ | async\"\n [attr.disabled]=\"computedDisabled || null\"\n [attr.maxLength]=\"controller.maxLength\"\n [attr.name]=\"name\"\n [attr.aria-placeholder]=\"controller.exampleText\"\n [attr.aria-invalid]=\"computedInvalid\"\n [autocomplete]=\"controller.autocomplete\"\n [type]=\"controller.type\"\n [id]=\"id\"\n [readOnly]=\"readOnly || !editable\"\n [tuiBorderStart]=\"borderLeft\"\n [tuiBorderEnd]=\"borderRight\"\n [tuiInputMode]=\"controller.inputMode\"\n [tuiFocusable]=\"computedFocusable\"\n [tuiDescribedBy]=\"id\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiAutofilledChange)=\"onAutofilled($event)\"\n />\n <div\n *ngIf=\"inputHidden\"\n automation-id=\"tui-primitive-textfield__value\"\n class=\"input input_template\"\n [tuiBorderStart]=\"borderLeft\"\n [tuiBorderEnd]=\"borderRight\"\n >\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n </div>\n <div class=\"content\">\n <div\n *ngIf=\"iconAlignLeft\"\n polymorpheus-outlet\n class=\"icon icon_left\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <div class=\"wrapper\">\n <span\n aria-hidden=\"true\"\n class=\"value\"\n [class.value_visible]=\"isContextTable\"\n >\n {{ value }}\n </span>\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"placeholder\"\n [class.placeholder_raised]=\"placeholderRaised\"\n [for]=\"id\"\n >\n <ng-content></ng-content>\n </label>\n <tui-value-decoration\n #decor\n automation-id=\"tui-primitive-textfield__value-decoration\"\n aria-hidden=\"true\"\n [style.textIndent.px]=\"getIndent$(focusableElement) | async\"\n ></tui-value-decoration>\n </div>\n <div\n *ngIf=\"hasCustomContent\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__custom-content\"\n class=\"custom-content\"\n [content]=\"controller.customContent\"\n >\n <ng-template let-iconSrc>\n <tui-svg class=\"custom-icon\" [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <tui-svg\n *ngIf=\"hasCleaner\"\n automation-id=\"tui-primitive-textfield__cleaner\"\n src=\"tuiIconCloseLarge\"\n class=\"cleaner\"\n (click.stop)=\"clear()\"\n ></tui-svg>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n [describeId]=\"id\"\n [content]=\"hintController.content\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <div\n *ngIf=\"iconAlignRight\"\n polymorpheus-outlet\n class=\"icon\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n </div>\n</tui-wrapper>\n",
255
226
  changeDetection: ChangeDetectionStrategy.OnPush,
256
227
  providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,
257
228
  host: {
258
229
  '($.data-mode.attr)': 'mode$',
259
230
  },
260
- styles: [":host{font:var(--tui-font-text-s);color:var(--tui-text-01);position:relative;display:block;border-radius:var(--tui-radius-m)}:host[data-tui-host-size='s']{height:var(--tui-height-s);min-height:var(--tui-height-s);max-height:var(--tui-height-s)}:host[data-tui-host-size='m']{height:var(--tui-height-m);min-height:var(--tui-height-m);max-height:var(--tui-height-m)}:host[data-tui-host-size='l']{height:var(--tui-height-l);min-height:var(--tui-height-l);max-height:var(--tui-height-l);font-size:.9375rem}.input{font:var(--tui-font-text-s);color:var(--tui-text-01);border:0;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;padding:0;border:solid transparent;border-width:0 .75rem;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit}.input:-webkit-autofill,.input:-webkit-autofill:focus,.input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}:host[data-mode=onDark] .input:-webkit-autofill,:host[data-mode=onDark] .input:-webkit-autofill:focus,:host[data-mode=onDark] .input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill-night) inset!important}:host[data-tui-host-size='s'] .input{border-width:0 5rem 0 .75rem}:host[data-tui-host-size='l'] .input{border-width:0 1rem}:host._disabled .input{pointer-events:none}:host._right-aligned .input{text-align:right}:host[data-tui-host-size='l']:not(._label-outside) .input{padding-top:1.25rem}:host[data-tui-host-size='l']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{width:114%;transform:translateY(-.625rem) scale(.87)}:host[data-tui-host-size='m']:not(._label-outside) .input{padding-top:1.125rem}:host[data-tui-host-size='m']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{width:118%;transform:translateY(-.5rem) scale(.85)}.ghost{visibility:hidden;white-space:pre;text-overflow:clip}.filler{vertical-align:middle}.content{display:flex;height:100%;width:100%;padding:0 .75rem;box-sizing:border-box;align-items:center;overflow:hidden}:host[data-tui-host-size='s'] .content{padding-right:.5rem}:host[data-tui-host-size='l'] .content{padding-left:1rem}.wrapper{flex:1;min-width:0;padding-right:.25rem}.value-decoration{display:flex;align-items:center;height:1.25rem;margin:-1.25rem 0;padding:.625rem 0;box-sizing:content-box;color:var(--tui-text-03);letter-spacing:normal;text-transform:none}:host._right-aligned .value-decoration{flex-direction:row-reverse;margin-right:-.25rem}:host[data-tui-host-size='m']._label-outside .value-decoration{margin-top:-1.1875rem}:host[data-mode=onDark] .value-decoration{color:var(--tui-text-03-night)}.value-decoration-inner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.postfix{transition-property:color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;color:var(--tui-text-01)}.postfix_shifted{margin-left:.5ch}:host[data-mode=onDark] .postfix{color:var(--tui-text-01-night)}.placeholder{transition-property:transform,min-width,color,letter-spacing;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;height:1.25rem;font-size:.8125rem;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;color:var(--tui-text-02);transform-origin:left;letter-spacing:normal;text-transform:none}.placeholder_raised{width:114%;transform:translateY(-.625rem) scale(.87)}:host[data-tui-host-size='m'] .placeholder_raised{width:118%;transform:translateY(-.5rem) scale(.85);letter-spacing:.025rem}:host._invalid:not(._focused) .placeholder_raised,:host._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .placeholder,:host[data-tui-host-size='l']._focused._label-outside .placeholder,:host[data-tui-host-size='m']._focused._label-outside .placeholder{color:var(--tui-text-03)}:host[data-tui-host-size='l'] .placeholder{font-size:.9375rem}:host[data-tui-host-size='l']._focused:not(._label-outside) .placeholder,:host[data-tui-host-size='m']._focused:not(._label-outside) .placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .placeholder{color:var(--tui-text-02-night)}:host[data-tui-host-size='l'][data-mode=onDark]._focused:not(._label-outside) .placeholder,:host[data-tui-host-size='m'][data-mode=onDark]._focused:not(._label-outside) .placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .placeholder,:host[data-tui-host-size='l'][data-mode=onDark]._focused._label-outside .placeholder,:host[data-tui-host-size='m'][data-mode=onDark]._focused._label-outside .placeholder{color:var(--tui-text-02-night)}.cleaner{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.cleaner:hover{color:var(--tui-text-02)}:host._disabled .cleaner,:host._readonly .cleaner{pointer-events:none}:host[data-mode=onDark] .cleaner{color:var(--tui-text-03-night)}:host[data-mode=onDark] .cleaner:hover{color:var(--tui-text-01-night)}.icon{display:flex;align-items:center;justify-content:center;color:var(--tui-text-03)}.icon_left{margin:0 .5rem 0 -.25rem}:host[data-tui-host-size='s'] .icon_left{margin-right:.25rem}.value{height:0;display:none;visibility:hidden;white-space:pre}.value_visible{display:block}.custom-content{position:relative;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-right:.25rem;pointer-events:none}.custom-icon{width:100%;height:100%}.icon{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);box-sizing:border-box;cursor:pointer;transition-property:color,transform;position:relative;pointer-events:none}.icon:hover{color:var(--tui-text-02)}:host._disabled .icon,:host._readonly .icon{pointer-events:none}:host[data-mode=onDark] .icon{color:var(--tui-text-03-night)}:host[data-mode=onDark] .icon:hover{color:var(--tui-text-01-night)}:host._hovered:not(._readonly) .icon{color:var(--tui-text-02)}:host[data-mode=onDark]._hovered:not(._readonly) .icon{color:var(--tui-text-01-night)}:host[data-mode=onLight]._hovered:not(._readonly) .icon{color:var(--tui-text-01)}.input_hidden{opacity:0;text-indent:-10em;-webkit-user-select:none}:host[data-tui-host-size] .input_template{display:flex;width:100%;max-width:100%;align-items:center;padding-right:0;border:0 solid transparent;pointer-events:none}.input::-webkit-caps-lock-indicator{margin-right:.375rem;align-self:center}:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-caps-lock-indicator{margin-top:-1.25rem}.input::-webkit-contacts-auto-fill-button,.input::-webkit-credentials-auto-fill-button,.input::-webkit-credit-card-auto-fill-button{background-color:var(--tui-text-03)}:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-contacts-auto-fill-button,:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-credentials-auto-fill-button,:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-credit-card-auto-fill-button{margin-top:-1.25rem}.input::-webkit-contacts-auto-fill-button:hover,.input::-webkit-credentials-auto-fill-button:hover,.input::-webkit-credit-card-auto-fill-button:hover{background-color:var(--tui-text-02)}.text-template{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]
231
+ styles: [":host{font:var(--tui-font-text-s);color:var(--tui-text-01);position:relative;display:block;border-radius:var(--tui-radius-m);text-align:left}:host[data-tui-host-size='s']{height:var(--tui-height-s);min-height:var(--tui-height-s);max-height:var(--tui-height-s)}:host[data-tui-host-size='m']{height:var(--tui-height-m);min-height:var(--tui-height-m);max-height:var(--tui-height-m)}:host[data-tui-host-size='l']{height:var(--tui-height-l);min-height:var(--tui-height-l);max-height:var(--tui-height-l);font-size:.9375rem}.input{font:var(--tui-font-text-s);color:var(--tui-text-01);padding:0;border:0 solid transparent;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;padding:0 var(--tui-padding-m);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit}.input:-webkit-autofill,.input:-webkit-autofill:focus,.input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}:host[data-mode=onDark] .input:-webkit-autofill,:host[data-mode=onDark] .input:-webkit-autofill:focus,:host[data-mode=onDark] .input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill-night) inset!important}:host[data-tui-host-size='s'] .input{padding:0 var(--tui-padding-s)}:host[data-tui-host-size='l'] .input{padding:0 var(--tui-padding-l)}:host._disabled .input{pointer-events:none}:host._right-aligned .input{text-align:right}:host[data-tui-host-size='l']:not(._label-outside) .input{padding-top:1.25rem}:host[data-tui-host-size='l']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-tui-host-size='m']:not(._label-outside) .input{padding-top:1.125rem}:host[data-tui-host-size='m']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.69rem;transform:translateY(-.5rem)}.filler{vertical-align:middle}.content{display:flex;height:100%;width:100%;padding:0 var(--tui-padding-m);box-sizing:border-box;align-items:center;overflow:hidden}:host[data-tui-host-size='s'] .content{padding:0 var(--tui-padding-s)}:host[data-tui-host-size='l'] .content{padding:0 var(--tui-padding-l)}.content:after{content:'';margin-right:-.25rem}:host[data-tui-host-size='m'] .content:after{display:none}.wrapper{flex:1;min-width:0;padding-right:.25rem;-webkit-padding-end:.25rem;padding-inline-end:.25rem;-webkit-padding-start:0;padding-inline-start:0}.placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;font-size:.8125rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none}.placeholder_raised{transform:translateY(-.625rem)}:host[data-tui-host-size='m'] .placeholder_raised{font-size:.69rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .placeholder_raised,:host._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .placeholder,:host[data-tui-host-size='l']._focused._label-outside .placeholder,:host[data-tui-host-size='m']._focused._label-outside .placeholder{color:var(--tui-text-03)}:host[data-tui-host-size='l'] .placeholder{font-size:.9375rem}:host[data-tui-host-size='l'] .placeholder_raised{font-size:.8156rem}:host[data-tui-host-size='l']._focused:not(._label-outside) .placeholder,:host[data-tui-host-size='m']._focused:not(._label-outside) .placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .placeholder{color:var(--tui-text-02-night)}:host[data-tui-host-size='l'][data-mode=onDark]._focused:not(._label-outside) .placeholder,:host[data-tui-host-size='m'][data-mode=onDark]._focused:not(._label-outside) .placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .placeholder,:host[data-tui-host-size='l'][data-mode=onDark]._focused._label-outside .placeholder,:host[data-tui-host-size='m'][data-mode=onDark]._focused._label-outside .placeholder{color:var(--tui-text-02-night)}.cleaner{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.cleaner:hover{color:var(--tui-text-02)}:host._disabled .cleaner,:host._readonly .cleaner{pointer-events:none}:host[data-mode=onDark] .cleaner{color:var(--tui-text-03-night)}:host[data-mode=onDark] .cleaner:hover{color:var(--tui-text-01-night)}.icon{display:flex;align-items:center;justify-content:center;color:var(--tui-text-03)}.icon_left{margin:0 .5rem 0 -.25rem;-webkit-margin-start:-.25rem;margin-inline-start:-.25rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}:host[data-tui-host-size='s'] .icon_left{margin-right:.25rem;-webkit-margin-end:.25rem;margin-inline-end:.25rem}.value{display:none;height:0;visibility:hidden;white-space:pre}.value_visible{display:block}.custom-content{position:relative;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-right:.25rem;pointer-events:none}.custom-icon{width:100%;height:100%}.icon{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);box-sizing:border-box;cursor:pointer;transition-property:color,transform;position:relative;pointer-events:none}.icon:hover{color:var(--tui-text-02)}:host._disabled .icon,:host._readonly .icon{pointer-events:none}:host[data-mode=onDark] .icon{color:var(--tui-text-03-night)}:host[data-mode=onDark] .icon:hover{color:var(--tui-text-01-night)}:host._hovered:not(._readonly) .icon{color:var(--tui-text-02)}:host[data-mode=onDark]._hovered:not(._readonly) .icon{color:var(--tui-text-01-night)}:host[data-mode=onLight]._hovered:not(._readonly) .icon{color:var(--tui-text-01)}.input_hidden{opacity:0;text-indent:-10em;-webkit-user-select:none}:host[data-tui-host-size] .input_template{display:flex;width:100%;max-width:100%;align-items:center;pointer-events:none}.input::-webkit-caps-lock-indicator{margin-right:.375rem;align-self:center}:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-caps-lock-indicator{margin-top:-1.25rem}.input::-webkit-contacts-auto-fill-button,.input::-webkit-credentials-auto-fill-button,.input::-webkit-credit-card-auto-fill-button{background-color:var(--tui-text-03)}:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-contacts-auto-fill-button,:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-credentials-auto-fill-button,:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-credit-card-auto-fill-button{margin-top:-1.25rem}.input::-webkit-contacts-auto-fill-button:hover,.input::-webkit-credentials-auto-fill-button:hover,.input::-webkit-credit-card-auto-fill-button:hover{background-color:var(--tui-text-02)}.text-template{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]
261
232
  }),
262
233
  __param(0, Inject(TUI_MODE)),
263
234
  __param(1, Inject(TUI_TEXTFIELD_APPEARANCE)),
@@ -265,4 +236,4 @@ TuiPrimitiveTextfieldComponent = __decorate([
265
236
  __param(3, Inject(TUI_HINT_WATCHED_CONTROLLER))
266
237
  ], TuiPrimitiveTextfieldComponent);
267
238
  export { TuiPrimitiveTextfieldComponent };
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLGdCQUFnQixFQUdoQixjQUFjLEVBRWQsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCwyQkFBMkIsRUFDM0IsMEJBQTBCLEdBQzdCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyxzQkFBc0IsR0FDekIsTUFBTSxnREFBZ0QsQ0FBQztBQUV4RCxPQUFPLEVBQUMsUUFBUSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFPekUsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQXNCLDJCQUEyQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDMUYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUVsRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUM7QUFDMUIsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO0FBWTNCLElBQWEsOEJBQThCLEdBQTNDLE1BQWEsOEJBQ1QsU0FBUSxzQkFBc0I7SUF1RDlCLFlBQytCLEtBQXVDLEVBQ3ZCLFVBQWtCLEVBRXBELFVBQWtDLEVBRWxDLGNBQTBDO1FBRW5ELEtBQUssRUFBRSxDQUFDO1FBUG1CLFVBQUssR0FBTCxLQUFLLENBQWtDO1FBQ3ZCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFFcEQsZUFBVSxHQUFWLFVBQVUsQ0FBd0I7UUFFbEMsbUJBQWMsR0FBZCxjQUFjLENBQTRCO1FBeER2RCxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBSWhCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFJWixjQUFTLEdBQTJCLE9BQU8sQ0FBQztRQUU1QywyQkFBMkI7UUFHM0IsZ0JBQVcsR0FBK0IsSUFBSSxDQUFDO1FBSy9DLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUloQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSWpCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFJYixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBR0YsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBR3pDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFRaEQsZUFBVSxHQUFHLEtBQUssQ0FBQztJQVczQixDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQ2xELENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFHRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFHRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO0lBQ3hDLENBQUM7SUFHRCxJQUFJLGVBQWU7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxXQUFXOztRQUNYLE9BQU8sQ0FBQyxRQUFDLElBQUksQ0FBQyxPQUFPLDBDQUFFLE1BQU0sQ0FBQSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLHdCQUF3QixDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDcEYsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxDQUNILENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9DLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FDL0MsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLFNBQVMsQ0FDWixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFDMUIsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxnQkFBZ0IsQ0FDeEIsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLENBQ0gsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQy9ELENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxDQUNILElBQUksQ0FBQyxHQUFHO1lBQ1IsQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDakYsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxDQUNILElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDL0UsQ0FBQztJQUNOLENBQUM7SUFHRCxJQUFJLFlBQVk7UUFDWixPQUFPLENBQ0gsSUFBSSxDQUFDLFVBQVUsd0JBQXdCO1lBQ3ZDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEtBQUssU0FBUztnQkFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQy9DLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsTUFBTSxvQkFBb0IsR0FDdEIsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBRTFFLE9BQU8sb0JBQW9CLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsTUFBTSxnQkFBZ0IsR0FDbEIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUQsT0FBTyxnQkFBZ0IsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYztZQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVkseUJBQW9DO1lBQ25FLENBQUMsQ0FBQyxjQUFjO1lBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzdCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQzFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWlCO1FBQ3pCLElBQ0ksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQ3RCLEtBQUssQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFDdEQ7WUFDRSxPQUFPO1NBQ1Y7UUFFRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQVksQ0FBQyxVQUFtQjtRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVksR0FBRztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVksT0FBTztRQUNmLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVksY0FBYztRQUN0QixPQUFPLENBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVztZQUM3QixJQUFJLENBQUMsZUFBZTtZQUNwQixDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ2QsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUNqQixDQUFDO0lBQ04sQ0FBQztJQUdPLFVBQVUsQ0FDZCxTQUE4QjtRQUU5QixPQUFPLEVBQUMsU0FBUyxFQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFVBQW1CO1FBQ3hDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFDaEMsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNKLENBQUE7O1lBbE95QyxVQUFVLHVCQUEzQyxNQUFNLFNBQUMsUUFBUTt5Q0FDZixNQUFNLFNBQUMsd0JBQXdCO1lBRVgsc0JBQXNCLHVCQUQxQyxNQUFNLFNBQUMsZ0NBQWdDO1lBR2YsMEJBQTBCLHVCQURsRCxNQUFNLFNBQUMsMkJBQTJCOztBQXZEdkM7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7Z0VBQ0Q7QUFJaEI7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7OERBQ0w7QUFJWjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTtpRUFDMkI7QUFLNUM7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7bUVBQzhCO0FBSy9DO0lBSEMsS0FBSyxFQUFFO0lBQ1AsV0FBVyxDQUFDLGlCQUFpQixDQUFDO0lBQzlCLGNBQWMsRUFBRTtnRUFDQTtBQUlqQjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTsrREFDRDtBQUloQjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTtnRUFDQTtBQUlqQjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTsrREFDSjtBQUliO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFOzZEQUNOO0FBR1g7SUFEQyxNQUFNLEVBQUU7bUVBQ3lDO0FBR2xEO0lBREMsTUFBTSxFQUFFO3dFQUMrQztBQUd4RDtJQURDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQzt3RUFDbUM7QUFHakU7SUFEQyxlQUFlLENBQUMsMkJBQTJCLENBQUM7K0RBQ1A7QUEwQnRDO0lBREMsV0FBVyxDQUFDLHlCQUF5QixDQUFDOzBEQUd0QztBQUdEO0lBREMsV0FBVyxDQUFDLHNCQUFzQixDQUFDO2tFQUduQztBQUdEO0lBREMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO3FFQUc3QjtBQXlFRDtJQURDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQztrRUFPbkM7QUErRkQ7SUFEQyxPQUFPO2dFQUtQO0FBNVFRLDhCQUE4QjtJQVYxQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUseUJBQXlCO1FBQ25DLHMvSkFBa0Q7UUFFbEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsU0FBUyxFQUFFLGlDQUFpQztRQUM1QyxJQUFJLEVBQUU7WUFDRixvQkFBb0IsRUFBRSxPQUFPO1NBQ2hDOztLQUNKLENBQUM7SUEwRE8sV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEIsV0FBQSxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUNoQyxXQUFBLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO0lBRXhDLFdBQUEsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7R0E3RC9CLDhCQUE4QixDQTJSMUM7U0EzUlksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpSW50ZXJhY3RpdmUsXG4gICAgaXNOYXRpdmVGb2N1c2VkLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICBUdWlDcmVkaXRDYXJkQXV0b2ZpbGxOYW1lLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFR1aUhpbnRDb250cm9sbGVyRGlyZWN0aXZlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2hpbnQtY29udHJvbGxlcic7XG5pbXBvcnQge1xuICAgIFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvdGV4dGZpZWxkLWNvbnRyb2xsZXInO1xuaW1wb3J0IHtUdWlBcHBlYXJhbmNlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9lbnVtcyc7XG5pbXBvcnQge1RVSV9NT0RFLCBUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0V9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge1xuICAgIFR1aUJyaWdodG5lc3MsXG4gICAgVHVpSG9yaXpvbnRhbERpcmVjdGlvbixcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtnZXRCb3JkZXIsIHNpemVCaWdnZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50LCBQb2x5bW9ycGhldXNPdXRsZXRDb21wb25lbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUVUlfUFJJTUlUSVZFX1RFWFRGSUVMRF9QUk9WSURFUlN9IGZyb20gJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5wcm92aWRlcnMnO1xuXG5jb25zdCBJQ09OX1BBRERJTkcgPSAxLjc1O1xuY29uc3QgSUNPTl9QQURESU5HX1MgPSAxLjU7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ByaW1pdGl2ZS10ZXh0ZmllbGQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogVFVJX1BSSU1JVElWRV9URVhURklFTERfUFJPVklERVJTLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJygkLmRhdGEtbW9kZS5hdHRyKSc6ICdtb2RlJCcsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUludGVyYWN0aXZlXG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZWRpdGFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGZpbGxlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25BbGlnbjogVHVpSG9yaXpvbnRhbERpcmVjdGlvbiA9ICdyaWdodCc7XG5cbiAgICAvLyBUT0RPOiBSZW1vdmUgbnVsbCBpbiAzLjBcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaWNvbkNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fcmVhZG9ubHknKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcmVhZE9ubHkgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpbnZhbGlkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwb3N0Zml4ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdmFsdWUgPSAnJztcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBhdXRvZmlsbGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQFZpZXdDaGlsZCgnZm9jdXNhYmxlRWxlbWVudCcpXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb2N1c2FibGVFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUG9seW1vcnBoZXVzT3V0bGV0Q29tcG9uZW50KVxuICAgIHJlYWRvbmx5IGNvbnRlbnQ/OiBRdWVyeUxpc3Q8dW5rbm93bj47XG5cbiAgICBwcml2YXRlIGF1dG9maWxsZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9NT0RFKSByZWFkb25seSBtb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgbnVsbD4sXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFKSByZWFkb25seSBhcHBlYXJhbmNlOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGNvbnRyb2xsZXI6IFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG4gICAgICAgIEBJbmplY3QoVFVJX0hJTlRfV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICByZWFkb25seSBoaW50Q29udHJvbGxlcjogVHVpSGludENvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICF0aGlzLmZvY3VzYWJsZUVsZW1lbnRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLmZvY3VzYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR1aS1ob3N0LXNpemUnKVxuICAgIGdldCBzaXplKCk6IFR1aVNpemVTIHwgVHVpU2l6ZUwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnNpemU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fbGFiZWwtb3V0c2lkZScpXG4gICAgZ2V0IGxhYmVsT3V0c2lkZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5sYWJlbE91dHNpZGU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faW52YWxpZCcpXG4gICAgZ2V0IGNvbXB1dGVkSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5ICYmICF0aGlzLmRpc2FibGVkICYmIHRoaXMuaW52YWxpZDtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29udGVudD8ubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCBpc0NvbnRleHRUYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwZWFyYW5jZSA9PT0gVHVpQXBwZWFyYW5jZS5UYWJsZTtcbiAgICB9XG5cbiAgICBnZXQgaGFzVG9vbHRpcCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5oaW50Q29udHJvbGxlciAmJiAhIXRoaXMuaGludENvbnRyb2xsZXIuY29udGVudCAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ3VzdG9tQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jb250cm9sbGVyLmN1c3RvbUNvbnRlbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGljb25QYWRkaW5nTGVmdCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplID09PSAncycgPyBJQ09OX1BBRERJTkdfUyA6IElDT05fUEFERElORztcbiAgICB9XG5cbiAgICBnZXQgYm9yZGVyTGVmdCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHRoaXMuaWNvbkFsaWduTGVmdCA/IHRoaXMuaWNvblBhZGRpbmdMZWZ0IDogMCkgK1xuICAgICAgICAgICAgZ2V0Qm9yZGVyKHNpemVCaWdnZXIodGhpcy5zaXplLCAnbScpLCBmYWxzZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgYm9yZGVyUmlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGdldEJvcmRlcihcbiAgICAgICAgICAgIHNpemVCaWdnZXIodGhpcy5zaXplLCAnbScpLFxuICAgICAgICAgICAgdGhpcy5pY29uQWxpZ25SaWdodCxcbiAgICAgICAgICAgIHRoaXMuaGFzQ2xlYW5lcixcbiAgICAgICAgICAgIHRoaXMuaGFzVG9vbHRpcCxcbiAgICAgICAgICAgIHRoaXMuaGFzQ3VzdG9tQ29udGVudCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzUGxhY2Vob2xkZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy5iaWcgJiYgIXRoaXMubGFiZWxPdXRzaWRlKSB8fFxuICAgICAgICAgICAgKCF0aGlzLmhhc1ZhbHVlICYmICF0aGlzLmhhc0V4YW1wbGVUZXh0ICYmICF0aGlzLmhhc1Bvc3RmaXgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHBsYWNlaG9sZGVyUmFpc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5iaWcgJiZcbiAgICAgICAgICAgICF0aGlzLmxhYmVsT3V0c2lkZSAmJlxuICAgICAgICAgICAgKCh0aGlzLmNvbXB1dGVkRm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seSkgfHwgdGhpcy5oYXNWYWx1ZSB8fCB0aGlzLmF1dG9maWxsZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGljb25BbGlnbkxlZnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0ljb24gJiYgdGhpcy5pY29uQWxpZ24gPT09ICdsZWZ0JztcbiAgICB9XG5cbiAgICBnZXQgaWNvbkFsaWduUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0ljb24gJiYgdGhpcy5pY29uQWxpZ24gPT09ICdyaWdodCc7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1ZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIGdldCBoYXNDbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLmNsZWFuZXIgJiYgdGhpcy5oYXNWYWx1ZSAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seVxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3JpZ2h0LWFsaWduZWQnKVxuICAgIGdldCByaWdodEFsaWduZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmFwcGVhcmFuY2UgPT09IFR1aUFwcGVhcmFuY2UuVGFibGUgJiZcbiAgICAgICAgICAgICh0aGlzLmNvbnRyb2xsZXIuaW5wdXRNb2RlID09PSAnbnVtZXJpYycgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIuaW5wdXRNb2RlID09PSAnZGVjaW1hbCcpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1ZhbHVlRGVjb3JhdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZmlsbGVyT3JFeGFtcGxlU2hvd24gPVxuICAgICAgICAgICAgdGhpcy5jb21wdXRlZEZvY3VzZWQgJiYgIXRoaXMucmVhZE9ubHkgJiYgdGhpcy5oYXNGaWxsZXJPckV4YW1wbGVUZXh0O1xuXG4gICAgICAgIHJldHVybiBmaWxsZXJPckV4YW1wbGVTaG93biB8fCB0aGlzLmhhc1Bvc3RmaXg7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1Bvc3RmaXgoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGlzUG9zdGZpeEFsbG93ZWQgPVxuICAgICAgICAgICAgdGhpcy5oYXNWYWx1ZSB8fCAodGhpcy5jb21wdXRlZEZvY3VzZWQgJiYgIXRoaXMucmVhZE9ubHkpO1xuXG4gICAgICAgIHJldHVybiBpc1Bvc3RmaXhBbGxvd2VkICYmICEhdGhpcy5wb3N0Zml4O1xuICAgIH1cblxuICAgIGdldCBoYXNGaWxsZXJPckV4YW1wbGVUZXh0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNWYWx1ZSA/ICEhdGhpcy5jb21wdXRlZEZpbGxlciA6ICEhdGhpcy5jb250cm9sbGVyLmV4YW1wbGVUZXh0O1xuICAgIH1cblxuICAgIGdldCBwb3N0Zml4U2hpZnRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdGZpeCAhPT0gJyUnICYmICh0aGlzLmhhc0ZpbGxlck9yRXhhbXBsZVRleHQgfHwgdGhpcy5oYXNWYWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkRmlsbGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0V4YW1wbGVUZXh0XG4gICAgICAgICAgICA/IHRoaXMuY29udHJvbGxlci5leGFtcGxlVGV4dFxuICAgICAgICAgICAgOiB0aGlzLmZpbGxlci5zbGljZSh0aGlzLnZhbHVlLmxlbmd0aCk7XG4gICAgfVxuXG4gICAgLy8gU2FmYXJpIGV4cGlyYXRpb24gZGF0ZSBhdXRvZmlsbCB3b3JrYXJvdW5kXG4gICAgZ2V0IG5hbWUoKTogJ2NjZXhwaXJ5eWVhcicgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5hdXRvY29tcGxldGUgPT09IFR1aUNyZWRpdENhcmRBdXRvZmlsbE5hbWUuQ2NFeHBcbiAgICAgICAgICAgID8gJ2NjZXhwaXJ5eWVhcidcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgY29udGV4dCgpOiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVTIHwgVHVpU2l6ZUw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29udGV4dCh0aGlzLnNpemUpO1xuICAgIH1cblxuICAgIGNsZWFyKCkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoJycpO1xuICAgIH1cblxuICAgIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLmZvY3VzYWJsZUVsZW1lbnQgfHxcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMuZm9jdXNhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBvbkF1dG9maWxsZWQoYXV0b2ZpbGxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUF1dG9maWxsZWQoYXV0b2ZpbGxlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgYmlnKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplICE9PSAncyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaGFzSWNvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5pY29uQ29udGVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBoYXNFeGFtcGxlVGV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEhdGhpcy5jb250cm9sbGVyLmV4YW1wbGVUZXh0ICYmXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkRm9jdXNlZCAmJlxuICAgICAgICAgICAgIXRoaXMuaGFzVmFsdWUgJiZcbiAgICAgICAgICAgICF0aGlzLnJlYWRPbmx5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldENvbnRleHQoXG4gICAgICAgICRpbXBsaWNpdDogVHVpU2l6ZVMgfCBUdWlTaXplTCxcbiAgICApOiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVTIHwgVHVpU2l6ZUw+IHtcbiAgICAgICAgcmV0dXJuIHskaW1wbGljaXR9O1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQXV0b2ZpbGxlZChhdXRvZmlsbGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9maWxsZWQgPT09IGF1dG9maWxsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXV0b2ZpbGxlZCA9IGF1dG9maWxsZWQ7XG4gICAgICAgIHRoaXMuYXV0b2ZpbGxlZENoYW5nZS5lbWl0KGF1dG9maWxsZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxufVxuIl19
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLGdCQUFnQixFQUVoQixjQUFjLEVBRWQsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCwyQkFBMkIsRUFDM0IsMEJBQTBCLEdBQzdCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyxzQkFBc0IsR0FDekIsTUFBTSxnREFBZ0QsQ0FBQztBQUV4RCxPQUFPLEVBQUMsUUFBUSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFPekUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdELE9BQU8sRUFBc0IsMkJBQTJCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFbEYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDO0FBQzFCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQVkzQixJQUFhLDhCQUE4QixHQUEzQyxNQUFhLDhCQUNU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SVo7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7K0RBQ0o7QUFJYjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTs2REFDTjtBQUdYO0lBREMsTUFBTSxFQUFFO21FQUN5QztBQUdsRDtJQURDLE1BQU0sRUFBRTt3RUFDK0M7QUFHeEQ7SUFEQyxTQUFTLENBQUMsa0JBQWtCLENBQUM7d0VBQ21DO0FBR2pFO0lBREMsZUFBZSxDQUFDLDJCQUEyQixDQUFDOytEQUNQO0FBMEJ0QztJQURDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQzswREFHdEM7QUFHRDtJQURDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQztrRUFHbkM7QUFHRDtJQURDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztxRUFHN0I7QUF3RUQ7SUFEQyxPQUFPO2dFQUdQO0FBeEtRLDhCQUE4QjtJQVYxQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUseUJBQXlCO1FBQ25DLGdoSkFBa0Q7UUFFbEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsU0FBUyxFQUFFLGlDQUFpQztRQUM1QyxJQUFJLEVBQUU7WUFDRixvQkFBb0IsRUFBRSxPQUFPO1NBQ2hDOztLQUNKLENBQUM7SUE4RE8sV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEIsV0FBQSxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUNoQyxXQUFBLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO0lBRXhDLFdBQUEsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7R0FqRS9CLDhCQUE4QixDQXVPMUM7U0F2T1ksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpSW50ZXJhY3RpdmUsXG4gICAgaXNOYXRpdmVGb2N1c2VkLFxuICAgIHNldE5hdGl2ZUZvY3VzZWQsXG4gICAgVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlIaW50Q29udHJvbGxlckRpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9oaW50LWNvbnRyb2xsZXInO1xuaW1wb3J0IHtcbiAgICBUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL3RleHRmaWVsZC1jb250cm9sbGVyJztcbmltcG9ydCB7VHVpQXBwZWFyYW5jZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZW51bXMnO1xuaW1wb3J0IHtUVUlfTU9ERSwgVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtcbiAgICBUdWlCcmlnaHRuZXNzLFxuICAgIFR1aUhvcml6b250YWxEaXJlY3Rpb24sXG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpU2l6ZVMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7Z2V0Qm9yZGVyfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudCwgUG9seW1vcnBoZXVzT3V0bGV0Q29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VFVJX1BSSU1JVElWRV9URVhURklFTERfUFJPVklERVJTfSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQucHJvdmlkZXJzJztcblxuY29uc3QgSUNPTl9QQURESU5HID0gMS43NTtcbmNvbnN0IElDT05fUEFERElOR19TID0gMS41O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1wcmltaXRpdmUtdGV4dGZpZWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJpbWl0aXZlLXRleHRmaWVsZC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wcmltaXRpdmUtdGV4dGZpZWxkLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFRVSV9QUklNSVRJVkVfVEVYVEZJRUxEX1BST1ZJREVSUyxcbiAgICBob3N0OiB7XG4gICAgICAgICcoJC5kYXRhLW1vZGUuYXR0ciknOiAnbW9kZSQnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlJbnRlcmFjdGl2ZVxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGVkaXRhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBmaWxsZXIgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBpY29uQWxpZ246IFR1aUhvcml6b250YWxEaXJlY3Rpb24gPSAncmlnaHQnO1xuXG4gICAgLy8gVE9ETzogUmVtb3ZlIG51bGwgaW4gMy4wXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGljb25Db250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3JlYWRvbmx5JylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaW52YWxpZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcHJlZml4ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcG9zdGZpeCA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlID0gJyc7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgYXV0b2ZpbGxlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2ZvY3VzYWJsZUVsZW1lbnQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNhYmxlRWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudClcbiAgICByZWFkb25seSBjb250ZW50PzogUXVlcnlMaXN0PHVua25vd24+O1xuXG4gICAgcHJpdmF0ZSBhdXRvZmlsbGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUVUlfTU9ERSkgcmVhZG9ubHkgbW9kZSQ6IE9ic2VydmFibGU8VHVpQnJpZ2h0bmVzcyB8IG51bGw+LFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQVBQRUFSQU5DRSkgcmVhZG9ubHkgYXBwZWFyYW5jZTogc3RyaW5nLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSKVxuICAgICAgICByZWFkb25seSBjb250cm9sbGVyOiBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxuICAgICAgICBASW5qZWN0KFRVSV9ISU5UX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgaGludENvbnRyb2xsZXI6IFR1aUhpbnRDb250cm9sbGVyRGlyZWN0aXZlLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWREaXNhYmxlZCB8fCAhdGhpcy5mb2N1c2FibGVFbGVtZW50XG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10dWktaG9zdC1zaXplJylcbiAgICBnZXQgc2l6ZSgpOiBUdWlTaXplUyB8IFR1aVNpemVMIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5zaXplO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2xhYmVsLW91dHNpZGUnKVxuICAgIGdldCBsYWJlbE91dHNpZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIubGFiZWxPdXRzaWRlO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2ludmFsaWQnKVxuICAgIGdldCBjb21wdXRlZEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmludmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0SGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNvbnRlbnQ/Lmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgaXNDb250ZXh0VGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGVhcmFuY2UgPT09IFR1aUFwcGVhcmFuY2UuVGFibGU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1ZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIGdldCBoYXNDbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLmNsZWFuZXIgJiYgdGhpcy5oYXNWYWx1ZSAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBoYXNUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmhpbnRDb250cm9sbGVyPy5jb250ZW50ICYmICF0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIGdldCBoYXNDdXN0b21Db250ZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNvbnRyb2xsZXIuY3VzdG9tQ29udGVudDtcbiAgICB9XG5cbiAgICBnZXQgaGFzUGxhY2Vob2xkZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGhhc0RlY29yID0gdGhpcy5jb250cm9sbGVyLmV4YW1wbGVUZXh0IHx8IHRoaXMucHJlZml4IHx8IHRoaXMucG9zdGZpeDtcbiAgICAgICAgY29uc3Qgc2hvd0RlY29yID0gaGFzRGVjb3IgJiYgIXRoaXMucmVhZE9ubHkgJiYgdGhpcy5jb21wdXRlZEZvY3VzZWQ7XG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyVmlzaWJsZSA9ICF0aGlzLmhhc1ZhbHVlICYmICFzaG93RGVjb3I7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXJSYWlzYWJsZSB8fCBwbGFjZWhvbGRlclZpc2libGU7XG4gICAgfVxuXG4gICAgZ2V0IHBsYWNlaG9sZGVyUmFpc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlclJhaXNhYmxlICYmXG4gICAgICAgICAgICAoKHRoaXMuY29tcHV0ZWRGb2N1c2VkICYmICF0aGlzLnJlYWRPbmx5KSB8fCB0aGlzLmhhc1ZhbHVlIHx8IHRoaXMuYXV0b2ZpbGxlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgYm9yZGVyTGVmdCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uQWxpZ25MZWZ0ID8gdGhpcy5pY29uUGFkZGluZ0xlZnQgOiAwO1xuICAgIH1cblxuICAgIGdldCBib3JkZXJSaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZ2V0Qm9yZGVyKFxuICAgICAgICAgICAgdGhpcy5pY29uQWxpZ25SaWdodCxcbiAgICAgICAgICAgIHRoaXMuaGFzQ2xlYW5lcixcbiAgICAgICAgICAgIHRoaXMuaGFzVG9vbHRpcCxcbiAgICAgICAgICAgIHRoaXMuaGFzQ3VzdG9tQ29udGVudCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaWNvbkFsaWduTGVmdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzSWNvbiAmJiB0aGlzLmljb25BbGlnbiA9PT0gJ2xlZnQnO1xuICAgIH1cblxuICAgIGdldCBpY29uQWxpZ25SaWdodCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzSWNvbiAmJiB0aGlzLmljb25BbGlnbiA9PT0gJ3JpZ2h0JztcbiAgICB9XG5cbiAgICAvLyBTYWZhcmkgZXhwaXJhdGlvbiBkYXRlIGF1dG9maWxsIHdvcmthcm91bmRcbiAgICBnZXQgbmFtZSgpOiAnY2NleHBpcnl5ZWFyJyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmF1dG9jb21wbGV0ZSA9PT0gVHVpQ3JlZGl0Q2FyZEF1dG9maWxsTmFtZS5DY0V4cFxuICAgICAgICAgICAgPyAnY2NleHBpcnl5ZWFyJ1xuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0SW5kZW50JChlbGVtZW50OiBIVE1MRWxlbWVudCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiBmcm9tRXZlbnQoZWxlbWVudCwgJ3Njcm9sbCcpLnBpcGUobWFwKCgpID0+IC0xICogZWxlbWVudC5zY3JvbGxMZWZ0KSk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSgnJyk7XG4gICAgfVxuXG4gICAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuZm9jdXNhYmxlRWxlbWVudCB8fFxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ID09PSB0aGlzLmZvY3VzYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldE5hdGl2ZUZvY3VzZWQodGhpcy5mb2N1c2FibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG9uQXV0b2ZpbGxlZChhdXRvZmlsbGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlQXV0b2ZpbGxlZChhdXRvZmlsbGVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpY29uUGFkZGluZ0xlZnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ3MnID8gSUNPTl9QQURESU5HX1MgOiBJQ09OX1BBRERJTkc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgcGxhY2Vob2xkZXJSYWlzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSAhPT0gJ3MnICYmICF0aGlzLmxhYmVsT3V0c2lkZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBoYXNJY29uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmljb25Db250ZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQXV0b2ZpbGxlZChhdXRvZmlsbGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9maWxsZWQgPT09IGF1dG9maWxsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXV0b2ZpbGxlZCA9IGF1dG9maWxsZWQ7XG4gICAgICAgIHRoaXMuYXV0b2ZpbGxlZENoYW5nZS5lbWl0KGF1dG9maWxsZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxufVxuIl19
@@ -2,14 +2,17 @@ import { __decorate } from "tslib";
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NgModule } from '@angular/core';
4
4
  import { FormsModule } from '@angular/forms';
5
+ import { MutationObserverModule } from '@ng-web-apis/mutation-observer';
5
6
  import { TuiAutofilledModule, TuiFocusableModule, TuiFocusedModule, TuiHoveredModule, TuiInputModeModule, TuiPreventDefaultModule, } from '@taiga-ui/cdk';
6
7
  import { TuiSvgModule } from '@taiga-ui/core/components/svg';
7
8
  import { TuiTooltipModule } from '@taiga-ui/core/components/tooltip';
8
9
  import { TuiWrapperModule } from '@taiga-ui/core/components/wrapper';
10
+ import { TuiBorderModule } from '@taiga-ui/core/directives/border';
9
11
  import { TuiDescribedByModule } from '@taiga-ui/core/directives/described-by';
10
12
  import { TuiMaskAccessorModule } from '@taiga-ui/core/directives/mask-accessor';
11
13
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
12
14
  import { TuiPrimitiveTextfieldComponent } from './primitive-textfield.component';
15
+ import { TuiValueDecorationComponent } from './value-decoration/value-decoration.component';
13
16
  let TuiPrimitiveTextfieldModule = class TuiPrimitiveTextfieldModule {
14
17
  };
15
18
  TuiPrimitiveTextfieldModule = __decorate([
@@ -29,10 +32,12 @@ TuiPrimitiveTextfieldModule = __decorate([
29
32
  TuiAutofilledModule,
30
33
  TuiDescribedByModule,
31
34
  TuiPreventDefaultModule,
35
+ TuiBorderModule,
36
+ MutationObserverModule,
32
37
  ],
33
- declarations: [TuiPrimitiveTextfieldComponent],
38
+ declarations: [TuiPrimitiveTextfieldComponent, TuiValueDecorationComponent],
34
39
  exports: [TuiPrimitiveTextfieldComponent],
35
40
  })
36
41
  ], TuiPrimitiveTextfieldModule);
37
42
  export { TuiPrimitiveTextfieldModule };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHVCQUF1QixHQUMxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFzQi9FLElBQWEsMkJBQTJCLEdBQXhDLE1BQWEsMkJBQTJCO0NBQUcsQ0FBQTtBQUE5QiwyQkFBMkI7SUFwQnZDLFFBQVEsQ0FBQztRQUNOLE9BQU8sRUFBRTtZQUNMLFlBQVk7WUFDWixXQUFXO1lBQ1gscUJBQXFCO1lBQ3JCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQix1QkFBdUI7U0FDMUI7UUFDRCxZQUFZLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztRQUM5QyxPQUFPLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztLQUM1QyxDQUFDO0dBQ1csMkJBQTJCLENBQUc7U0FBOUIsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgVHVpQXV0b2ZpbGxlZE1vZHVsZSxcbiAgICBUdWlGb2N1c2FibGVNb2R1bGUsXG4gICAgVHVpRm9jdXNlZE1vZHVsZSxcbiAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgIFR1aUlucHV0TW9kZU1vZHVsZSxcbiAgICBUdWlQcmV2ZW50RGVmYXVsdE1vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVN2Z01vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zdmcnO1xuaW1wb3J0IHtUdWlUb29sdGlwTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHtUdWlXcmFwcGVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3dyYXBwZXInO1xuaW1wb3J0IHtUdWlEZXNjcmliZWRCeU1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kZXNjcmliZWQtYnknO1xuaW1wb3J0IHtUdWlNYXNrQWNjZXNzb3JNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvbWFzay1hY2Nlc3Nvcic7XG5pbXBvcnQge1BvbHltb3JwaGV1c01vZHVsZX0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7VHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50fSBmcm9tICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFR1aU1hc2tBY2Nlc3Nvck1vZHVsZSxcbiAgICAgICAgVHVpRm9jdXNhYmxlTW9kdWxlLFxuICAgICAgICBUdWlGb2N1c2VkTW9kdWxlLFxuICAgICAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgICAgICBUdWlJbnB1dE1vZGVNb2R1bGUsXG4gICAgICAgIFBvbHltb3JwaGV1c01vZHVsZSxcbiAgICAgICAgVHVpV3JhcHBlck1vZHVsZSxcbiAgICAgICAgVHVpU3ZnTW9kdWxlLFxuICAgICAgICBUdWlUb29sdGlwTW9kdWxlLFxuICAgICAgICBUdWlBdXRvZmlsbGVkTW9kdWxlLFxuICAgICAgICBUdWlEZXNjcmliZWRCeU1vZHVsZSxcbiAgICAgICAgVHVpUHJldmVudERlZmF1bHRNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVUZXh0ZmllbGRNb2R1bGUge31cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJwcmltaXRpdmUtdGV4dGZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHVCQUF1QixHQUMxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBd0IxRixJQUFhLDJCQUEyQixHQUF4QyxNQUFhLDJCQUEyQjtDQUFHLENBQUE7QUFBOUIsMkJBQTJCO0lBdEJ2QyxRQUFRLENBQUM7UUFDTixPQUFPLEVBQUU7WUFDTCxZQUFZO1lBQ1osV0FBVztZQUNYLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsdUJBQXVCO1lBQ3ZCLGVBQWU7WUFDZixzQkFBc0I7U0FDekI7UUFDRCxZQUFZLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSwyQkFBMkIsQ0FBQztRQUMzRSxPQUFPLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztLQUM1QyxDQUFDO0dBQ1csMkJBQTJCLENBQUc7U0FBOUIsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TXV0YXRpb25PYnNlcnZlck1vZHVsZX0gZnJvbSAnQG5nLXdlYi1hcGlzL211dGF0aW9uLW9ic2VydmVyJztcbmltcG9ydCB7XG4gICAgVHVpQXV0b2ZpbGxlZE1vZHVsZSxcbiAgICBUdWlGb2N1c2FibGVNb2R1bGUsXG4gICAgVHVpRm9jdXNlZE1vZHVsZSxcbiAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgIFR1aUlucHV0TW9kZU1vZHVsZSxcbiAgICBUdWlQcmV2ZW50RGVmYXVsdE1vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVN2Z01vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9zdmcnO1xuaW1wb3J0IHtUdWlUb29sdGlwTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHtUdWlXcmFwcGVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3dyYXBwZXInO1xuaW1wb3J0IHtUdWlCb3JkZXJNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvYm9yZGVyJztcbmltcG9ydCB7VHVpRGVzY3JpYmVkQnlNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZGVzY3JpYmVkLWJ5JztcbmltcG9ydCB7VHVpTWFza0FjY2Vzc29yTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL21hc2stYWNjZXNzb3InO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNNb2R1bGV9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge1R1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudH0gZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge1R1aVZhbHVlRGVjb3JhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi92YWx1ZS1kZWNvcmF0aW9uL3ZhbHVlLWRlY29yYXRpb24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFR1aU1hc2tBY2Nlc3Nvck1vZHVsZSxcbiAgICAgICAgVHVpRm9jdXNhYmxlTW9kdWxlLFxuICAgICAgICBUdWlGb2N1c2VkTW9kdWxlLFxuICAgICAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgICAgICBUdWlJbnB1dE1vZGVNb2R1bGUsXG4gICAgICAgIFBvbHltb3JwaGV1c01vZHVsZSxcbiAgICAgICAgVHVpV3JhcHBlck1vZHVsZSxcbiAgICAgICAgVHVpU3ZnTW9kdWxlLFxuICAgICAgICBUdWlUb29sdGlwTW9kdWxlLFxuICAgICAgICBUdWlBdXRvZmlsbGVkTW9kdWxlLFxuICAgICAgICBUdWlEZXNjcmliZWRCeU1vZHVsZSxcbiAgICAgICAgVHVpUHJldmVudERlZmF1bHRNb2R1bGUsXG4gICAgICAgIFR1aUJvcmRlck1vZHVsZSxcbiAgICAgICAgTXV0YXRpb25PYnNlcnZlck1vZHVsZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1R1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCwgVHVpVmFsdWVEZWNvcmF0aW9uQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUHJpbWl0aXZlVGV4dGZpZWxkTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,65 @@
1
+ import { __decorate, __param } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, ElementRef, Inject, ViewChild, } from '@angular/core';
3
+ import { MutationObserverDirective } from '@ng-web-apis/mutation-observer';
4
+ import { TUI_TEXTFIELD_WATCHED_CONTROLLER, TuiTextfieldController, } from '@taiga-ui/core/directives';
5
+ import { defer, EMPTY } from 'rxjs';
6
+ import { distinctUntilChanged, map, startWith } from 'rxjs/operators';
7
+ import { TuiPrimitiveTextfieldComponent } from '../primitive-textfield.component';
8
+ let TuiValueDecorationComponent = class TuiValueDecorationComponent {
9
+ constructor(textfield, controller) {
10
+ this.textfield = textfield;
11
+ this.controller = controller;
12
+ this.pre$ = defer(() => { var _a, _b; return (_b = (_a = this.directive) === null || _a === void 0 ? void 0 : _a.waMutationObserver) !== null && _b !== void 0 ? _b : EMPTY; }).pipe(map(() => { var _a, _b; return (_b = (_a = this.pre) === null || _a === void 0 ? void 0 : _a.nativeElement.offsetWidth) !== null && _b !== void 0 ? _b : 0; }), startWith(0), distinctUntilChanged());
13
+ }
14
+ get value() {
15
+ return this.textfield.value;
16
+ }
17
+ get filler() {
18
+ return this.focused
19
+ ? this.exampleText || this.textfield.filler.slice(this.value.length)
20
+ : '';
21
+ }
22
+ get prefix() {
23
+ return this.decorationsVisible ? this.textfield.prefix : '';
24
+ }
25
+ get postfix() {
26
+ return this.decorationsVisible ? this.computedPostfix : '';
27
+ }
28
+ get exampleText() {
29
+ return !this.value && this.focused ? this.controller.exampleText : '';
30
+ }
31
+ get decorationsVisible() {
32
+ return !!this.value || this.focused;
33
+ }
34
+ get focused() {
35
+ return this.textfield.computedFocused && !this.textfield.readOnly;
36
+ }
37
+ get computedPostfix() {
38
+ return this.textfield.postfix && (this.filler || this.value)
39
+ ? ` ${this.textfield.postfix}`
40
+ : this.textfield.postfix;
41
+ }
42
+ };
43
+ TuiValueDecorationComponent.ctorParameters = () => [
44
+ { type: TuiPrimitiveTextfieldComponent, decorators: [{ type: Inject, args: [TuiPrimitiveTextfieldComponent,] }] },
45
+ { type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] }
46
+ ];
47
+ __decorate([
48
+ ViewChild('pre', { read: ElementRef, static: true })
49
+ ], TuiValueDecorationComponent.prototype, "pre", void 0);
50
+ __decorate([
51
+ ViewChild(MutationObserverDirective, { static: true })
52
+ ], TuiValueDecorationComponent.prototype, "directive", void 0);
53
+ TuiValueDecorationComponent = __decorate([
54
+ Component({
55
+ selector: 'tui-value-decoration',
56
+ template: "<span #pre subtree characterData waMutationObserver>{{ prefix }}</span>\n<span class=\"t-ghost\">{{ value }}</span>\n<span class=\"t-filler\">{{ filler }}</span>\n{{ postfix }}\n",
57
+ // It follows Change Detection of PrimitiveTextfield
58
+ changeDetection: ChangeDetectionStrategy.Default,
59
+ styles: [":host{display:block;height:1.25rem;margin:-1.25rem 0;padding:.625rem 0;box-sizing:content-box;color:var(--tui-text-01);white-space:nowrap;overflow:hidden}:host-context(tui-textfield[data-mode=onDark]) :host{color:var(--tui-text-01-night)}.t-ghost{visibility:hidden;white-space:pre;text-overflow:clip}.t-filler{color:var(--tui-text-03)}:host-context(tui-textfield[data-mode=onDark]) .t-filler{color:var(--tui-text-03-night)}"]
60
+ }),
61
+ __param(0, Inject(TuiPrimitiveTextfieldComponent)),
62
+ __param(1, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER))
63
+ ], TuiValueDecorationComponent);
64
+ export { TuiValueDecorationComponent };
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtZGVjb3JhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQvIiwic291cmNlcyI6WyJ2YWx1ZS1kZWNvcmF0aW9uL3ZhbHVlLWRlY29yYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQ0gsZ0NBQWdDLEVBQ2hDLHNCQUFzQixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFTaEYsSUFBYSwyQkFBMkIsR0FBeEMsTUFBYSwyQkFBMkI7SUFhcEMsWUFFcUIsU0FBeUMsRUFFekMsVUFBa0M7UUFGbEMsY0FBUyxHQUFULFNBQVMsQ0FBZ0M7UUFFekMsZUFBVSxHQUFWLFVBQVUsQ0FBd0I7UUFoQjlDLFNBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLGtDQUFDLElBQUksQ0FBQyxTQUFTLDBDQUFFLGtCQUFrQixtQ0FBSSxLQUFLLEdBQUEsQ0FBQyxDQUFDLElBQUksQ0FDekUsR0FBRyxDQUFDLEdBQUcsRUFBRSxrQ0FBQyxJQUFJLENBQUMsR0FBRywwQ0FBRSxhQUFhLENBQUMsV0FBVyxtQ0FBSSxDQUFDLEdBQUEsQ0FBQyxFQUNuRCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQ1osb0JBQW9CLEVBQUUsQ0FDekIsQ0FBQztJQWFDLENBQUM7SUFFSixJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPO1lBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3BFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDYixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQVksV0FBVztRQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFZLGtCQUFrQjtRQUMxQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVksT0FBTztRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBWSxlQUFlO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDeEQsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDOUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7Q0FDSixDQUFBOztZQXhDbUMsOEJBQThCLHVCQUR6RCxNQUFNLFNBQUMsOEJBQThCO1lBR1Qsc0JBQXNCLHVCQURsRCxNQUFNLFNBQUMsZ0NBQWdDOztBQVI1QztJQURDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQzt3REFDSjtBQUcvQztJQURDLFNBQVMsQ0FBQyx5QkFBeUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQzs4REFDRTtBQVg5QywyQkFBMkI7SUFQdkMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQyw4TEFBNkM7UUFFN0Msb0RBQW9EO1FBQ3BELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxPQUFPOztLQUNuRCxDQUFDO0lBZU8sV0FBQSxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQTtJQUV0QyxXQUFBLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO0dBaEJwQywyQkFBMkIsQ0F1RHZDO1NBdkRZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge011dGF0aW9uT2JzZXJ2ZXJEaXJlY3RpdmV9IGZyb20gJ0BuZy13ZWItYXBpcy9tdXRhdGlvbi1vYnNlcnZlcic7XG5pbXBvcnQge1xuICAgIFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtkZWZlciwgRU1QVFl9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50fSBmcm9tICcuLi9wcmltaXRpdmUtdGV4dGZpZWxkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXZhbHVlLWRlY29yYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAndmFsdWUtZGVjb3JhdGlvbi50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsndmFsdWUtZGVjb3JhdGlvbi5zdHlsZS5sZXNzJ10sXG4gICAgLy8gSXQgZm9sbG93cyBDaGFuZ2UgRGV0ZWN0aW9uIG9mIFByaW1pdGl2ZVRleHRmaWVsZFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVmFsdWVEZWNvcmF0aW9uQ29tcG9uZW50IHtcbiAgICByZWFkb25seSBwcmUkID0gZGVmZXIoKCkgPT4gdGhpcy5kaXJlY3RpdmU/LndhTXV0YXRpb25PYnNlcnZlciA/PyBFTVBUWSkucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHRoaXMucHJlPy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoID8/IDApLFxuICAgICAgICBzdGFydFdpdGgoMCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3ByZScsIHtyZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWV9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJlPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKE11dGF0aW9uT2JzZXJ2ZXJEaXJlY3RpdmUsIHtzdGF0aWM6IHRydWV9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlyZWN0aXZlPzogTXV0YXRpb25PYnNlcnZlckRpcmVjdGl2ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ6IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb250cm9sbGVyOiBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxuICAgICkge31cblxuICAgIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQudmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGZpbGxlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2VkXG4gICAgICAgICAgICA/IHRoaXMuZXhhbXBsZVRleHQgfHwgdGhpcy50ZXh0ZmllbGQuZmlsbGVyLnNsaWNlKHRoaXMudmFsdWUubGVuZ3RoKVxuICAgICAgICAgICAgOiAnJztcbiAgICB9XG5cbiAgICBnZXQgcHJlZml4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlY29yYXRpb25zVmlzaWJsZSA/IHRoaXMudGV4dGZpZWxkLnByZWZpeCA6ICcnO1xuICAgIH1cblxuICAgIGdldCBwb3N0Zml4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlY29yYXRpb25zVmlzaWJsZSA/IHRoaXMuY29tcHV0ZWRQb3N0Zml4IDogJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZXhhbXBsZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnZhbHVlICYmIHRoaXMuZm9jdXNlZCA/IHRoaXMuY29udHJvbGxlci5leGFtcGxlVGV4dCA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGRlY29yYXRpb25zVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy52YWx1ZSB8fCB0aGlzLmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkLmNvbXB1dGVkRm9jdXNlZCAmJiAhdGhpcy50ZXh0ZmllbGQucmVhZE9ubHk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29tcHV0ZWRQb3N0Zml4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZC5wb3N0Zml4ICYmICh0aGlzLmZpbGxlciB8fCB0aGlzLnZhbHVlKVxuICAgICAgICAgICAgPyBgICR7dGhpcy50ZXh0ZmllbGQucG9zdGZpeH1gXG4gICAgICAgICAgICA6IHRoaXMudGV4dGZpZWxkLnBvc3RmaXg7XG4gICAgfVxufVxuIl19
@@ -148,10 +148,10 @@ __decorate([
148
148
  TuiPrimitiveYearPickerComponent = __decorate([
149
149
  Component({
150
150
  selector: 'tui-primitive-year-picker',
151
- template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-primitive-year-picker__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-primitive-year-picker__cell\"\n class=\"t-cell\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_interval]=\"itemIsInterval(item)\"\n [attr.data-tui-element-range]=\"getItemRange(item)\"\n [attr.data-tui-element-state]=\"getItemState(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemPressed($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{item}}</div>\n </div>\n </ng-container>\n</div>\n",
151
+ template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-primitive-year-picker__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-primitive-year-picker__cell\"\n class=\"t-cell\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_interval]=\"itemIsInterval(item)\"\n [attr.data-tui-element-range]=\"getItemRange(item)\"\n [attr.data-tui-element-state]=\"getItemState(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemPressed($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{ item }}</div>\n </div>\n </ng-container>\n</div>\n",
152
152
  changeDetection: ChangeDetectionStrategy.OnPush,
153
- styles: [":host{font:var(--tui-font-text-m);display:block}.t-row{position:relative;z-index:0;display:flex;justify-content:space-between;height:2.25rem;margin:.875rem 0}.t-item{position:relative;flex:1;line-height:2rem;border-radius:var(--tui-radius-m)}.t-item:after,.t-item:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;width:3.9375rem;text-align:center;outline:0;cursor:pointer;background-clip:content-box;box-sizing:border-box;border:2px solid transparent}.t-cell:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell_today:after{position:absolute;left:50%;transform:translate(-50%,0);content:'';bottom:.3125rem;height:.125rem;width:.75rem;border-radius:.375rem;background-color:var(--tui-text-02)}.t-cell_interval:before{background:var(--tui-base-02)}:host._single .t-cell_interval:before{background:var(--tui-secondary-hover)}.t-cell_interval:not(:last-child):before{right:-3.9375rem}.t-cell_interval:last-child:first-child:before{right:0}.t-cell_interval:first-child>.t-item{border-top-left-radius:var(--tui-radius-m);border-bottom-left-radius:var(--tui-radius-m)}.t-cell_interval:last-child>.t-item{border-top-right-radius:var(--tui-radius-m);border-bottom-right-radius:var(--tui-radius-m)}.t-cell_interval>.t-item{border-radius:0}.t-cell[data-tui-element-range]:after{background-color:var(--tui-primary-text)}.t-cell[data-tui-element-range]>.t-item{color:var(--tui-primary-text)}.t-cell[data-tui-element-range]>.t-item:after,.t-cell[data-tui-element-range]>.t-item:before{background-color:var(--tui-primary)}.t-cell[data-tui-element-range][data-tui-element-state=hovered]>.t-item:after,.t-cell[data-tui-element-range][data-tui-element-state=hovered]>.t-item:before{background-color:var(--tui-primary-hover)}.t-cell[data-tui-element-range][data-tui-element-state=pressed]>.t-item:after,.t-cell[data-tui-element-range][data-tui-element-state=pressed]>.t-item:before{background-color:var(--tui-primary-active)}.t-cell[data-tui-element-range=end]>.t-item:before{left:.25rem}.t-cell[data-tui-element-range=end]>.t-item:after{left:-2rem;right:100%;transform:translateX(1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-tui-element-range=start]>.t-item:before{right:.25rem}.t-cell[data-tui-element-range=start]>.t-item:after{left:100%;right:-2rem;transform:translateX(-1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-tui-element-state=disabled]{pointer-events:none}.t-cell[data-tui-element-state=disabled]>.t-item{opacity:.36}.t-cell[data-tui-element-state=hovered]:hover:not([data-tui-element-range])>.t-item{background-color:var(--tui-secondary-hover)}.t-cell[data-tui-element-state=pressed]:hover:not([data-tui-element-range])>.t-item{background-color:var(--tui-secondary-active)}:host{width:15.75rem}.t-row:first-child{margin-top:0}.t-row:last-child{margin-bottom:0}"]
153
+ styles: [":host{display:block;font:var(--tui-font-text-m)}.t-row{position:relative;z-index:0;display:flex;justify-content:space-between;height:2.25rem;margin:.875rem 0}.t-item{position:relative;flex:1;line-height:2rem;border-radius:var(--tui-radius-m)}.t-item:after,.t-item:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;width:3.9375rem;text-align:center;outline:0;cursor:pointer;background-clip:content-box;box-sizing:border-box;border:2px solid transparent}.t-cell:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell_today:after{position:absolute;left:50%;transform:translate(-50%,0);content:'';bottom:.3125rem;height:.125rem;width:.75rem;border-radius:.375rem;background-color:var(--tui-text-02)}.t-cell_interval:before{background:var(--tui-base-02)}:host._single .t-cell_interval:before{background:var(--tui-secondary-hover)}.t-cell_interval:not(:last-child):before{right:-3.9375rem}.t-cell_interval:last-child:first-child:before{right:0}.t-cell_interval:first-child>.t-item{border-top-left-radius:var(--tui-radius-m);border-bottom-left-radius:var(--tui-radius-m)}.t-cell_interval:last-child>.t-item{border-top-right-radius:var(--tui-radius-m);border-bottom-right-radius:var(--tui-radius-m)}.t-cell_interval>.t-item{border-radius:0}.t-cell[data-tui-element-range]:after{background-color:var(--tui-primary-text)}.t-cell[data-tui-element-range]>.t-item{color:var(--tui-primary-text)}.t-cell[data-tui-element-range]>.t-item:after,.t-cell[data-tui-element-range]>.t-item:before{background-color:var(--tui-primary)}.t-cell[data-tui-element-range][data-tui-element-state=hovered]>.t-item:after,.t-cell[data-tui-element-range][data-tui-element-state=hovered]>.t-item:before{background-color:var(--tui-primary-hover)}.t-cell[data-tui-element-range][data-tui-element-state=pressed]>.t-item:after,.t-cell[data-tui-element-range][data-tui-element-state=pressed]>.t-item:before{background-color:var(--tui-primary-active)}.t-cell[data-tui-element-range=end]>.t-item:before{left:.25rem}.t-cell[data-tui-element-range=end]>.t-item:after{left:-2rem;right:100%;transform:translateX(1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-tui-element-range=start]>.t-item:before{right:.25rem}.t-cell[data-tui-element-range=start]>.t-item:after{left:100%;right:-2rem;transform:translateX(-1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-tui-element-state=disabled]{pointer-events:none}.t-cell[data-tui-element-state=disabled]>.t-item{opacity:.36}.t-cell[data-tui-element-state=hovered]:hover:not([data-tui-element-range])>.t-item{background-color:var(--tui-secondary-hover)}.t-cell[data-tui-element-state=pressed]:hover:not([data-tui-element-range])>.t-item{background-color:var(--tui-secondary-active)}:host{width:15.75rem}.t-row:first-child{margin-top:0}.t-row:last-child{margin-bottom:0}"]
154
154
  })
155
155
  ], TuiPrimitiveYearPickerComponent);
156
156
  export { TuiPrimitiveYearPickerComponent };
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXllYXItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvcHJpbWl0aXZlLXllYXItcGlja2VyLyIsInNvdXJjZXMiOlsicHJpbWl0aXZlLXllYXItcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLGFBQWEsRUFDYixZQUFZLEVBR1osY0FBYyxFQUNkLFFBQVEsRUFDUixhQUFhLEVBQ2IsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUNsQixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFRdkIsSUFBYSwrQkFBK0IsR0FBNUMsTUFBYSwrQkFBK0I7SUFBNUM7UUFHSSxVQUFLLEdBQWlDLElBQUksQ0FBQztRQUkzQyxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUl0QyxRQUFHLEdBQVksYUFBYSxDQUFDO1FBSTdCLFFBQUcsR0FBWSxZQUFZLENBQUM7UUFJNUIsd0JBQW1CLEdBQThCLG9CQUFvQixDQUFDO1FBRzdELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUV2RCxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFbEMsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO1FBRWxDLGdCQUFXLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQztJQW1KdkQsQ0FBQztJQWhKRyxJQUFJLFFBQVE7UUFDUixNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsSUFBSSxDQUFDO1FBRXJCLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUU5QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBRTlDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNqRSxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQTZCO1FBQ2pDLE9BQU8sSUFBSSxZQUFZLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztJQUMxQyxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDdEMsT0FBTyxRQUFRLEdBQUcsWUFBWSxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ25FLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWTtRQUNyQixNQUFNLEVBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFFbEUsSUFDSSxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUk7WUFDZixDQUFDLG1CQUFtQixLQUFLLG9CQUFvQixJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzdFO1lBQ0UsaUNBQW9DO1NBQ3ZDO1FBRUQsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFO1lBQ3RCLCtCQUFtQztTQUN0QztRQUVELElBQUksV0FBVyxLQUFLLElBQUksRUFBRTtZQUN0QiwrQkFBbUM7U0FDdEM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDckIsTUFBTSxFQUFDLEtBQUssRUFBRSxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFFbEMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLEtBQUssWUFBWSxPQUFPLEVBQUU7WUFDMUIsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLHVCQUFzQixDQUFDLENBQUMsSUFBSSxDQUFDO1NBQzVEO1FBRUQsSUFDSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RCxDQUFDLFdBQVcsS0FBSyxJQUFJO2dCQUNqQixXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJO2dCQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsQ0FBQyxXQUFXLEtBQUssSUFBSTtnQkFDakIsV0FBVyxLQUFLLElBQUk7Z0JBQ3BCLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUk7Z0JBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNwQztZQUNFLDJCQUEyQjtTQUM5QjtRQUVELElBQ0ksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDMUQsQ0FBQyxXQUFXLEtBQUssSUFBSTtnQkFDakIsV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSTtnQkFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSTtnQkFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLENBQUMsV0FBVyxLQUFLLElBQUk7Z0JBQ2pCLFdBQVcsS0FBSyxJQUFJO2dCQUNwQixXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDcEM7WUFDRSx1QkFBeUI7U0FDNUI7UUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJO1lBQzVELENBQUM7WUFDRCxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2YsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZO1FBQ3ZCLE1BQU0sRUFBQyxLQUFLLEVBQUUsV0FBVyxFQUFDLEdBQUcsSUFBSSxDQUFDO1FBRWxDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2hDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUMxRDtRQUVELElBQUksV0FBVyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7WUFDekQsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxPQUFPLE9BQU8sQ0FDVixJQUFJLEVBQ0osSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsRUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FDekMsQ0FBQztJQUNOLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBZ0IsRUFBRSxJQUFZO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFnQixFQUFFLElBQVk7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVk7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBZ0IsRUFBRSxJQUFZO1FBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBZ0IsRUFBRSxJQUFZO1FBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDO0NBQ0osQ0FBQTtBQTVLRztJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTs4REFDMEI7QUFJM0M7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7b0VBQ3FCO0FBSXRDO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFOzREQUNZO0FBSTdCO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFOzREQUNXO0FBSTVCO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFOzRFQUNxRDtBQUd0RTtJQURDLE1BQU0sRUFBRTtrRUFDc0Q7QUFTL0Q7SUFEQyxXQUFXLENBQUMsZUFBZSxDQUFDOytEQUs1QjtBQW5DUSwrQkFBK0I7SUFOM0MsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLDJCQUEyQjtRQUNyQyw2N0JBQW9EO1FBRXBELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztLQUNsRCxDQUFDO0dBQ1csK0JBQStCLENBK0szQztTQS9LWSwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgaW5SYW5nZSxcbiAgICBUVUlfRklSU1RfREFZLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlEYXlSYW5nZSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlNb250aCxcbiAgICBUdWlNb250aFJhbmdlLFxuICAgIFR1aVllYXIsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlJbnRlcmFjdGl2ZVN0YXRlLCBUdWlSYW5nZVN0YXRlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9lbnVtcyc7XG5cbmNvbnN0IExJTUlUID0gMTAwO1xuY29uc3QgSVRFTVNfSU5fUk9XID0gNDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktcHJpbWl0aXZlLXllYXItcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJpbWl0aXZlLXllYXItcGlja2VyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ByaW1pdGl2ZS15ZWFyLXBpY2tlci5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aVByaW1pdGl2ZVllYXJQaWNrZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZTogVHVpWWVhciB8IFR1aURheVJhbmdlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaW5pdGlhbEl0ZW0gPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW46IFR1aVllYXIgPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heDogVHVpWWVhciA9IFRVSV9MQVNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxudW1iZXI+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB5ZWFyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFR1aVllYXIgfCBUdWlEYXlSYW5nZT4oKTtcblxuICAgIHByaXZhdGUgaG92ZXJlZEl0ZW06IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBwcmVzc2VkSXRlbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIGN1cnJlbnRZZWFyID0gVHVpTW9udGguY3VycmVudExvY2FsKCkueWVhcjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3NpbmdsZScpXG4gICAgZ2V0IGlzU2luZ2xlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7dmFsdWV9ID0gdGhpcztcblxuICAgICAgICByZXR1cm4gISF2YWx1ZSAmJiB0aGlzLmlzUmFuZ2UodmFsdWUpICYmIHZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pO1xuICAgIH1cblxuICAgIGdldCByb3dzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwoKHRoaXMuY2FsY3VsYXRlZE1heCAtIHRoaXMuY2FsY3VsYXRlZE1pbikgLyBJVEVNU19JTl9ST1cpO1xuICAgIH1cblxuICAgIGdldCBjYWxjdWxhdGVkTWluKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGluaXRpYWwgPSB0aGlzLmluaXRpYWxJdGVtLnllYXIgLSBMSU1JVDtcblxuICAgICAgICByZXR1cm4gdGhpcy5taW4ueWVhciA+IGluaXRpYWwgPyB0aGlzLm1pbi55ZWFyIDogaW5pdGlhbDtcbiAgICB9XG5cbiAgICBnZXQgY2FsY3VsYXRlZE1heCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBpbml0aWFsID0gdGhpcy5pbml0aWFsSXRlbS55ZWFyICsgTElNSVQ7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWF4LnllYXIgPCBpbml0aWFsID8gdGhpcy5tYXgueWVhciArIDEgOiBpbml0aWFsO1xuICAgIH1cblxuICAgIGlzUmFuZ2UoaXRlbTogVHVpTW9udGhSYW5nZSB8IFR1aVllYXIpOiBpdGVtIGlzIFR1aU1vbnRoUmFuZ2Uge1xuICAgICAgICByZXR1cm4gaXRlbSBpbnN0YW5jZW9mIFR1aU1vbnRoUmFuZ2U7XG4gICAgfVxuXG4gICAgc2Nyb2xsSXRlbUludG9WaWV3KGl0ZW06IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0aWFsSXRlbS55ZWFyID09PSBpdGVtO1xuICAgIH1cblxuICAgIGdldEl0ZW0ocm93SW5kZXg6IG51bWJlciwgY29sSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiByb3dJbmRleCAqIElURU1TX0lOX1JPVyArIGNvbEluZGV4ICsgdGhpcy5jYWxjdWxhdGVkTWluO1xuICAgIH1cblxuICAgIGdldEl0ZW1TdGF0ZShpdGVtOiBudW1iZXIpOiBUdWlJbnRlcmFjdGl2ZVN0YXRlIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHtkaXNhYmxlZEl0ZW1IYW5kbGVyLCBtYXgsIHByZXNzZWRJdGVtLCBob3ZlcmVkSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIG1heC55ZWFyIDwgaXRlbSB8fFxuICAgICAgICAgICAgKGRpc2FibGVkSXRlbUhhbmRsZXIgIT09IEFMV0FZU19GQUxTRV9IQU5ETEVSICYmIGRpc2FibGVkSXRlbUhhbmRsZXIoaXRlbSkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIFR1aUludGVyYWN0aXZlU3RhdGUuRGlzYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJlc3NlZEl0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBUdWlJbnRlcmFjdGl2ZVN0YXRlLlByZXNzZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG92ZXJlZEl0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBUdWlJbnRlcmFjdGl2ZVN0YXRlLkhvdmVyZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRJdGVtUmFuZ2UoaXRlbTogbnVtYmVyKTogVHVpUmFuZ2VTdGF0ZSB8IG51bGwge1xuICAgICAgICBjb25zdCB7dmFsdWUsIGhvdmVyZWRJdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFR1aVllYXIpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS55ZWFyID09PSBpdGVtID8gVHVpUmFuZ2VTdGF0ZS5TaW5nbGUgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHZhbHVlLmZyb20ueWVhciA9PT0gaXRlbSAmJiAhdmFsdWUuZnJvbS55ZWFyU2FtZSh2YWx1ZS50bykpIHx8XG4gICAgICAgICAgICAoaG92ZXJlZEl0ZW0gIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBob3ZlcmVkSXRlbSA+IHZhbHVlLmZyb20ueWVhciAmJlxuICAgICAgICAgICAgICAgIHZhbHVlLmZyb20ueWVhciA9PT0gaXRlbSAmJlxuICAgICAgICAgICAgICAgIHZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pKSB8fFxuICAgICAgICAgICAgKGhvdmVyZWRJdGVtICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgaG92ZXJlZEl0ZW0gPT09IGl0ZW0gJiZcbiAgICAgICAgICAgICAgICBob3ZlcmVkSXRlbSA8IHZhbHVlLmZyb20ueWVhciAmJlxuICAgICAgICAgICAgICAgIHZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBUdWlSYW5nZVN0YXRlLlN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHZhbHVlLnRvLnllYXIgPT09IGl0ZW0gJiYgIXZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pKSB8fFxuICAgICAgICAgICAgKGhvdmVyZWRJdGVtICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgaG92ZXJlZEl0ZW0gPCB2YWx1ZS5mcm9tLnllYXIgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLnllYXIgPT09IGl0ZW0gJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLnllYXJTYW1lKHZhbHVlLnRvKSkgfHxcbiAgICAgICAgICAgIChob3ZlcmVkSXRlbSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIGhvdmVyZWRJdGVtID09PSBpdGVtICYmXG4gICAgICAgICAgICAgICAgaG92ZXJlZEl0ZW0gPiB2YWx1ZS5mcm9tLnllYXIgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLnllYXJTYW1lKHZhbHVlLnRvKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gVHVpUmFuZ2VTdGF0ZS5FbmQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWUuZnJvbS55ZWFyU2FtZSh2YWx1ZS50bykgJiYgdmFsdWUuZnJvbS55ZWFyID09PSBpdGVtXG4gICAgICAgICAgICA/IFR1aVJhbmdlU3RhdGUuU2luZ2xlXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgaXRlbUlzVG9kYXkoaXRlbTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyID09PSBpdGVtO1xuICAgIH1cblxuICAgIGl0ZW1Jc0ludGVydmFsKGl0ZW06IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7dmFsdWUsIGhvdmVyZWRJdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8ICF0aGlzLmlzUmFuZ2UodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUuZnJvbS55ZWFyIDw9IGl0ZW0gJiYgdmFsdWUudG8ueWVhciA+IGl0ZW07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG92ZXJlZEl0ZW0gPT09IG51bGwgfHwgdmFsdWUuZnJvbS55ZWFyID09PSBob3ZlcmVkSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluUmFuZ2UoXG4gICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgTWF0aC5taW4odmFsdWUuZnJvbS55ZWFyLCBob3ZlcmVkSXRlbSksXG4gICAgICAgICAgICBNYXRoLm1heCh2YWx1ZS5mcm9tLnllYXIsIGhvdmVyZWRJdGVtKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkl0ZW1Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4sIGl0ZW06IG51bWJlcikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWRJdGVtKGhvdmVyZWQsIGl0ZW0pO1xuICAgIH1cblxuICAgIG9uSXRlbVByZXNzZWQocHJlc3NlZDogYm9vbGVhbiwgaXRlbTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUHJlc3NlZEl0ZW0ocHJlc3NlZCwgaXRlbSk7XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2soaXRlbTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMueWVhckNsaWNrLmVtaXQobmV3IFR1aVllYXIoaXRlbSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSG92ZXJlZEl0ZW0oaG92ZXJlZDogYm9vbGVhbiwgaXRlbTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaG92ZXJlZEl0ZW0gPSBob3ZlcmVkID8gaXRlbSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQcmVzc2VkSXRlbShwcmVzc2VkOiBib29sZWFuLCBpdGVtOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wcmVzc2VkSXRlbSA9IHByZXNzZWQgPyBpdGVtIDogbnVsbDtcbiAgICB9XG59XG4iXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXllYXItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvcHJpbWl0aXZlLXllYXItcGlja2VyLyIsInNvdXJjZXMiOlsicHJpbWl0aXZlLXllYXItcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLGFBQWEsRUFDYixZQUFZLEVBR1osY0FBYyxFQUNkLFFBQVEsRUFDUixhQUFhLEVBQ2IsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUNsQixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUM7QUFRdkIsSUFBYSwrQkFBK0IsR0FBNUMsTUFBYSwrQkFBK0I7SUFBNUM7UUFHSSxVQUFLLEdBQWlDLElBQUksQ0FBQztRQUkzQyxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUl0QyxRQUFHLEdBQVksYUFBYSxDQUFDO1FBSTdCLFFBQUcsR0FBWSxZQUFZLENBQUM7UUFJNUIsd0JBQW1CLEdBQThCLG9CQUFvQixDQUFDO1FBRzdELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUV2RCxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFbEMsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO1FBRWxDLGdCQUFXLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQztJQW1KdkQsQ0FBQztJQWhKRyxJQUFJLFFBQVE7UUFDUixNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsSUFBSSxDQUFDO1FBRXJCLE9BQU8sQ0FBQyxDQUFDLEtBQUss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QyxDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBZ0IsRUFBRSxJQUFZO1FBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDO0NBQ0osQ0FBQTtBQTVLRztJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTs4REFDMEI7QUFJM0M7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7b0VBQ3FCO0FBSXRDO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFOzREQUNZO0FBSTdCO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFOzREQUNXO0FBSTVCO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFOzRFQUNxRDtBQUd0RTtJQURDLE1BQU0sRUFBRTtrRUFDc0Q7QUFTL0Q7SUFEQyxXQUFXLENBQUMsZUFBZSxDQUFDOytEQUs1QjtBQW5DUSwrQkFBK0I7SUFOM0MsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLDJCQUEyQjtRQUNyQywrN0JBQW9EO1FBRXBELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztLQUNsRCxDQUFDO0dBQ1csK0JBQStCLENBK0szQztTQS9LWSwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgaW5SYW5nZSxcbiAgICBUVUlfRklSU1RfREFZLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlEYXlSYW5nZSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlNb250aCxcbiAgICBUdWlNb250aFJhbmdlLFxuICAgIFR1aVllYXIsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlJbnRlcmFjdGl2ZVN0YXRlLCBUdWlSYW5nZVN0YXRlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9lbnVtcyc7XG5cbmNvbnN0IExJTUlUID0gMTAwO1xuY29uc3QgSVRFTVNfSU5fUk9XID0gNDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktcHJpbWl0aXZlLXllYXItcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJpbWl0aXZlLXllYXItcGlja2VyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ByaW1pdGl2ZS15ZWFyLXBpY2tlci5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aVByaW1pdGl2ZVllYXJQaWNrZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZTogVHVpWWVhciB8IFR1aURheVJhbmdlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaW5pdGlhbEl0ZW0gPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW46IFR1aVllYXIgPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heDogVHVpWWVhciA9IFRVSV9MQVNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxudW1iZXI+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB5ZWFyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFR1aVllYXIgfCBUdWlEYXlSYW5nZT4oKTtcblxuICAgIHByaXZhdGUgaG92ZXJlZEl0ZW06IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBwcmVzc2VkSXRlbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIGN1cnJlbnRZZWFyID0gVHVpTW9udGguY3VycmVudExvY2FsKCkueWVhcjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3NpbmdsZScpXG4gICAgZ2V0IGlzU2luZ2xlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7dmFsdWV9ID0gdGhpcztcblxuICAgICAgICByZXR1cm4gISF2YWx1ZSAmJiB0aGlzLmlzUmFuZ2UodmFsdWUpICYmIHZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pO1xuICAgIH1cblxuICAgIGdldCByb3dzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwoKHRoaXMuY2FsY3VsYXRlZE1heCAtIHRoaXMuY2FsY3VsYXRlZE1pbikgLyBJVEVNU19JTl9ST1cpO1xuICAgIH1cblxuICAgIGdldCBjYWxjdWxhdGVkTWluKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGluaXRpYWwgPSB0aGlzLmluaXRpYWxJdGVtLnllYXIgLSBMSU1JVDtcblxuICAgICAgICByZXR1cm4gdGhpcy5taW4ueWVhciA+IGluaXRpYWwgPyB0aGlzLm1pbi55ZWFyIDogaW5pdGlhbDtcbiAgICB9XG5cbiAgICBnZXQgY2FsY3VsYXRlZE1heCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBpbml0aWFsID0gdGhpcy5pbml0aWFsSXRlbS55ZWFyICsgTElNSVQ7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWF4LnllYXIgPCBpbml0aWFsID8gdGhpcy5tYXgueWVhciArIDEgOiBpbml0aWFsO1xuICAgIH1cblxuICAgIGlzUmFuZ2UoaXRlbTogVHVpTW9udGhSYW5nZSB8IFR1aVllYXIpOiBpdGVtIGlzIFR1aU1vbnRoUmFuZ2Uge1xuICAgICAgICByZXR1cm4gaXRlbSBpbnN0YW5jZW9mIFR1aU1vbnRoUmFuZ2U7XG4gICAgfVxuXG4gICAgc2Nyb2xsSXRlbUludG9WaWV3KGl0ZW06IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0aWFsSXRlbS55ZWFyID09PSBpdGVtO1xuICAgIH1cblxuICAgIGdldEl0ZW0ocm93SW5kZXg6IG51bWJlciwgY29sSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiByb3dJbmRleCAqIElURU1TX0lOX1JPVyArIGNvbEluZGV4ICsgdGhpcy5jYWxjdWxhdGVkTWluO1xuICAgIH1cblxuICAgIGdldEl0ZW1TdGF0ZShpdGVtOiBudW1iZXIpOiBUdWlJbnRlcmFjdGl2ZVN0YXRlIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHtkaXNhYmxlZEl0ZW1IYW5kbGVyLCBtYXgsIHByZXNzZWRJdGVtLCBob3ZlcmVkSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIG1heC55ZWFyIDwgaXRlbSB8fFxuICAgICAgICAgICAgKGRpc2FibGVkSXRlbUhhbmRsZXIgIT09IEFMV0FZU19GQUxTRV9IQU5ETEVSICYmIGRpc2FibGVkSXRlbUhhbmRsZXIoaXRlbSkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIFR1aUludGVyYWN0aXZlU3RhdGUuRGlzYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJlc3NlZEl0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBUdWlJbnRlcmFjdGl2ZVN0YXRlLlByZXNzZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG92ZXJlZEl0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBUdWlJbnRlcmFjdGl2ZVN0YXRlLkhvdmVyZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRJdGVtUmFuZ2UoaXRlbTogbnVtYmVyKTogVHVpUmFuZ2VTdGF0ZSB8IG51bGwge1xuICAgICAgICBjb25zdCB7dmFsdWUsIGhvdmVyZWRJdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFR1aVllYXIpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS55ZWFyID09PSBpdGVtID8gVHVpUmFuZ2VTdGF0ZS5TaW5nbGUgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHZhbHVlLmZyb20ueWVhciA9PT0gaXRlbSAmJiAhdmFsdWUuZnJvbS55ZWFyU2FtZSh2YWx1ZS50bykpIHx8XG4gICAgICAgICAgICAoaG92ZXJlZEl0ZW0gIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBob3ZlcmVkSXRlbSA+IHZhbHVlLmZyb20ueWVhciAmJlxuICAgICAgICAgICAgICAgIHZhbHVlLmZyb20ueWVhciA9PT0gaXRlbSAmJlxuICAgICAgICAgICAgICAgIHZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pKSB8fFxuICAgICAgICAgICAgKGhvdmVyZWRJdGVtICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgaG92ZXJlZEl0ZW0gPT09IGl0ZW0gJiZcbiAgICAgICAgICAgICAgICBob3ZlcmVkSXRlbSA8IHZhbHVlLmZyb20ueWVhciAmJlxuICAgICAgICAgICAgICAgIHZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBUdWlSYW5nZVN0YXRlLlN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHZhbHVlLnRvLnllYXIgPT09IGl0ZW0gJiYgIXZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pKSB8fFxuICAgICAgICAgICAgKGhvdmVyZWRJdGVtICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgaG92ZXJlZEl0ZW0gPCB2YWx1ZS5mcm9tLnllYXIgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLnllYXIgPT09IGl0ZW0gJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLnllYXJTYW1lKHZhbHVlLnRvKSkgfHxcbiAgICAgICAgICAgIChob3ZlcmVkSXRlbSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIGhvdmVyZWRJdGVtID09PSBpdGVtICYmXG4gICAgICAgICAgICAgICAgaG92ZXJlZEl0ZW0gPiB2YWx1ZS5mcm9tLnllYXIgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLnllYXJTYW1lKHZhbHVlLnRvKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gVHVpUmFuZ2VTdGF0ZS5FbmQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWUuZnJvbS55ZWFyU2FtZSh2YWx1ZS50bykgJiYgdmFsdWUuZnJvbS55ZWFyID09PSBpdGVtXG4gICAgICAgICAgICA/IFR1aVJhbmdlU3RhdGUuU2luZ2xlXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgaXRlbUlzVG9kYXkoaXRlbTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyID09PSBpdGVtO1xuICAgIH1cblxuICAgIGl0ZW1Jc0ludGVydmFsKGl0ZW06IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7dmFsdWUsIGhvdmVyZWRJdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8ICF0aGlzLmlzUmFuZ2UodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlLmZyb20ueWVhclNhbWUodmFsdWUudG8pKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUuZnJvbS55ZWFyIDw9IGl0ZW0gJiYgdmFsdWUudG8ueWVhciA+IGl0ZW07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG92ZXJlZEl0ZW0gPT09IG51bGwgfHwgdmFsdWUuZnJvbS55ZWFyID09PSBob3ZlcmVkSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluUmFuZ2UoXG4gICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgTWF0aC5taW4odmFsdWUuZnJvbS55ZWFyLCBob3ZlcmVkSXRlbSksXG4gICAgICAgICAgICBNYXRoLm1heCh2YWx1ZS5mcm9tLnllYXIsIGhvdmVyZWRJdGVtKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkl0ZW1Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4sIGl0ZW06IG51bWJlcikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWRJdGVtKGhvdmVyZWQsIGl0ZW0pO1xuICAgIH1cblxuICAgIG9uSXRlbVByZXNzZWQocHJlc3NlZDogYm9vbGVhbiwgaXRlbTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUHJlc3NlZEl0ZW0ocHJlc3NlZCwgaXRlbSk7XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2soaXRlbTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMueWVhckNsaWNrLmVtaXQobmV3IFR1aVllYXIoaXRlbSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSG92ZXJlZEl0ZW0oaG92ZXJlZDogYm9vbGVhbiwgaXRlbTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaG92ZXJlZEl0ZW0gPSBob3ZlcmVkID8gaXRlbSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQcmVzc2VkSXRlbShwcmVzc2VkOiBib29sZWFuLCBpdGVtOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wcmVzc2VkSXRlbSA9IHByZXNzZWQgPyBpdGVtIDogbnVsbDtcbiAgICB9XG59XG4iXX0=