@taiga-ui/kit 3.18.0 → 3.19.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 (507) hide show
  1. package/bundles/taiga-ui-kit-components-accordion.umd.js +20 -29
  2. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-action.umd.js +11 -20
  4. package/bundles/taiga-ui-kit-components-action.umd.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-arrow.umd.js +7 -7
  6. package/bundles/taiga-ui-kit-components-avatar.umd.js +11 -20
  7. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-badge.umd.js +11 -20
  9. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-badged-content.umd.js +11 -20
  11. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +11 -20
  13. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +11 -20
  15. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-calendar-range.umd.js +11 -20
  17. package/bundles/taiga-ui-kit-components-calendar-range.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-carousel.umd.js +23 -32
  19. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js +11 -20
  21. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +11 -20
  23. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-checkbox.umd.js +12 -21
  25. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-combo-box.umd.js +17 -26
  27. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +17 -26
  29. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-elastic-container.umd.js +10 -10
  31. package/bundles/taiga-ui-kit-components-files.umd.js +14 -23
  32. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-filter.umd.js +11 -20
  34. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-copy.umd.js +14 -23
  36. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-input-count.umd.js +22 -33
  38. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +14 -23
  40. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +14 -23
  42. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  43. package/bundles/taiga-ui-kit-components-input-date.umd.js +14 -23
  44. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  45. package/bundles/taiga-ui-kit-components-input-files.umd.js +17 -26
  46. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  47. package/bundles/taiga-ui-kit-components-input-inline.umd.js +11 -20
  48. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  49. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +14 -23
  50. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  51. package/bundles/taiga-ui-kit-components-input-month.umd.js +14 -23
  52. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-input-number.umd.js +14 -23
  54. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-input-password.umd.js +14 -23
  56. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +37 -46
  58. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-input-phone.umd.js +14 -23
  60. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-input-range.umd.js +25 -61
  62. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-input-slider.umd.js +11 -20
  64. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-input-tag.umd.js +19 -25
  66. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-input-time.umd.js +11 -20
  68. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-input-year.umd.js +14 -23
  70. package/bundles/taiga-ui-kit-components-input-year.umd.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-input.umd.js +14 -23
  72. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  73. package/bundles/taiga-ui-kit-components-island.umd.js +11 -20
  74. package/bundles/taiga-ui-kit-components-island.umd.js.map +1 -1
  75. package/bundles/taiga-ui-kit-components-items-with-more.umd.js +20 -29
  76. package/bundles/taiga-ui-kit-components-items-with-more.umd.js.map +1 -1
  77. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +17 -26
  78. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  79. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +11 -20
  80. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  81. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js +11 -20
  82. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js.map +1 -1
  83. package/bundles/taiga-ui-kit-components-multi-select.umd.js +20 -29
  84. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  85. package/bundles/taiga-ui-kit-components-pagination.umd.js +11 -20
  86. package/bundles/taiga-ui-kit-components-pagination.umd.js.map +1 -1
  87. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js +17 -26
  88. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js.map +1 -1
  89. package/bundles/taiga-ui-kit-components-progress.umd.js +23 -32
  90. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  91. package/bundles/taiga-ui-kit-components-prompt.umd.js +7 -7
  92. package/bundles/taiga-ui-kit-components-push.umd.js +23 -32
  93. package/bundles/taiga-ui-kit-components-push.umd.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-radio-block.umd.js +11 -20
  95. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-radio-group.umd.js +11 -20
  97. package/bundles/taiga-ui-kit-components-radio-group.umd.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +11 -20
  99. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-radio-list.umd.js +11 -20
  101. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-radio.umd.js +11 -20
  103. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-range.umd.js +14 -23
  105. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-rating.umd.js +11 -20
  107. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  108. package/bundles/taiga-ui-kit-components-routable-dialog.umd.js +452 -0
  109. package/bundles/taiga-ui-kit-components-routable-dialog.umd.js.map +1 -0
  110. package/bundles/taiga-ui-kit-components-select-option.umd.js +7 -7
  111. package/bundles/taiga-ui-kit-components-select.umd.js +23 -32
  112. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  113. package/bundles/taiga-ui-kit-components-slider.umd.js +20 -29
  114. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  115. package/bundles/taiga-ui-kit-components-stepper.umd.js +14 -23
  116. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  117. package/bundles/taiga-ui-kit-components-tabs.umd.js +27 -36
  118. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  119. package/bundles/taiga-ui-kit-components-tag.umd.js +11 -20
  120. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  121. package/bundles/taiga-ui-kit-components-text-area.umd.js +22 -28
  122. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  123. package/bundles/taiga-ui-kit-components-tiles.umd.js +17 -26
  124. package/bundles/taiga-ui-kit-components-tiles.umd.js.map +1 -1
  125. package/bundles/taiga-ui-kit-components-toggle.umd.js +11 -20
  126. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  127. package/bundles/taiga-ui-kit-components-tree.umd.js +40 -43
  128. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  129. package/bundles/taiga-ui-kit-components.umd.js +10 -4
  130. package/bundles/taiga-ui-kit-components.umd.js.map +1 -1
  131. package/bundles/taiga-ui-kit-constants.umd.js +4 -13
  132. package/bundles/taiga-ui-kit-constants.umd.js.map +1 -1
  133. package/bundles/taiga-ui-kit-directives-data-list-dropdown-manager.umd.js +11 -20
  134. package/bundles/taiga-ui-kit-directives-data-list-dropdown-manager.umd.js.map +1 -1
  135. package/bundles/taiga-ui-kit-directives-highlight.umd.js +11 -20
  136. package/bundles/taiga-ui-kit-directives-highlight.umd.js.map +1 -1
  137. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js +14 -23
  138. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js.map +1 -1
  139. package/bundles/taiga-ui-kit-directives-mask.umd.js +7 -7
  140. package/bundles/taiga-ui-kit-directives-present.umd.js +7 -7
  141. package/bundles/taiga-ui-kit-directives-project-class.umd.js +11 -20
  142. package/bundles/taiga-ui-kit-directives-project-class.umd.js.map +1 -1
  143. package/bundles/taiga-ui-kit-directives-unfinished-validator.umd.js +7 -7
  144. package/bundles/taiga-ui-kit-directives-value-accessor.umd.js +7 -7
  145. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js +11 -20
  146. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js.map +1 -1
  147. package/bundles/taiga-ui-kit-pipes-field-error.umd.js +14 -23
  148. package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -1
  149. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.js +14 -23
  150. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.js.map +1 -1
  151. package/bundles/taiga-ui-kit-pipes-sort-countries.umd.js +11 -20
  152. package/bundles/taiga-ui-kit-pipes-sort-countries.umd.js.map +1 -1
  153. package/bundles/taiga-ui-kit-pipes-stringify-content.umd.js +7 -7
  154. package/bundles/taiga-ui-kit-pipes-stringify.umd.js +7 -7
  155. package/bundles/taiga-ui-kit-pipes-to-year.umd.js +7 -7
  156. package/bundles/taiga-ui-kit-utils-mask.umd.js +4 -13
  157. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  158. package/bundles/taiga-ui-kit-utils-math.umd.js +4 -13
  159. package/bundles/taiga-ui-kit-utils-math.umd.js.map +1 -1
  160. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js +4 -13
  161. package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
  162. package/components/index.d.ts +1 -0
  163. package/components/input-count/input-count.component.d.ts +4 -5
  164. package/components/input-phone-international/input-phone-international.component.d.ts +11 -3
  165. package/components/input-phone-international/input-phone-international.module.d.ts +1 -1
  166. package/components/input-range/input-range.component.d.ts +3 -7
  167. package/components/input-range/input-range.module.d.ts +1 -1
  168. package/components/input-tag/input-tag.component.d.ts +3 -3
  169. package/components/routable-dialog/generate-dialogable-route.d.ts +6 -0
  170. package/components/routable-dialog/index.d.ts +3 -0
  171. package/components/routable-dialog/package.json +10 -0
  172. package/components/routable-dialog/routable-dialog.component.d.ts +14 -0
  173. package/components/routable-dialog/routable-dialog.module.d.ts +7 -0
  174. package/components/routable-dialog/taiga-ui-kit-components-routable-dialog.d.ts +5 -0
  175. package/components/text-area/text-area.component.d.ts +3 -3
  176. package/components/tree/components/tree/tree.component.d.ts +1 -0
  177. package/components/tree/components/tree-item/tree-item.component.d.ts +1 -0
  178. package/esm2015/components/accordion/accordion-item/accordion-item-content.directive.js +3 -3
  179. package/esm2015/components/accordion/accordion-item/accordion-item-eager-content.directive.js +3 -3
  180. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +3 -3
  181. package/esm2015/components/accordion/accordion.component.js +3 -3
  182. package/esm2015/components/accordion/accordion.module.js +4 -4
  183. package/esm2015/components/action/action.component.js +3 -3
  184. package/esm2015/components/action/action.module.js +4 -4
  185. package/esm2015/components/arrow/arrow.component.js +3 -3
  186. package/esm2015/components/arrow/arrow.module.js +4 -4
  187. package/esm2015/components/avatar/avatar.component.js +3 -3
  188. package/esm2015/components/avatar/avatar.module.js +4 -4
  189. package/esm2015/components/badge/badge.component.js +3 -3
  190. package/esm2015/components/badge/badge.module.js +4 -4
  191. package/esm2015/components/badged-content/badged-content.component.js +3 -3
  192. package/esm2015/components/badged-content/badged-content.module.js +4 -4
  193. package/esm2015/components/breadcrumbs/breadcrumbs.component.js +3 -3
  194. package/esm2015/components/breadcrumbs/breadcrumbs.module.js +4 -4
  195. package/esm2015/components/calendar-month/calendar-month.component.js +3 -3
  196. package/esm2015/components/calendar-month/calendar-month.module.js +4 -4
  197. package/esm2015/components/calendar-range/calendar-range.component.js +3 -3
  198. package/esm2015/components/calendar-range/calendar-range.module.js +4 -4
  199. package/esm2015/components/carousel/carousel-autoscroll.directive.js +3 -3
  200. package/esm2015/components/carousel/carousel-buttons.directive.js +3 -3
  201. package/esm2015/components/carousel/carousel-scroll.directive.js +3 -3
  202. package/esm2015/components/carousel/carousel.component.js +3 -3
  203. package/esm2015/components/carousel/carousel.directive.js +3 -3
  204. package/esm2015/components/carousel/carousel.module.js +4 -4
  205. package/esm2015/components/checkbox/checkbox.component.js +4 -4
  206. package/esm2015/components/checkbox/checkbox.module.js +4 -4
  207. package/esm2015/components/checkbox-block/checkbox-block.component.js +3 -3
  208. package/esm2015/components/checkbox-block/checkbox-block.module.js +4 -4
  209. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +3 -3
  210. package/esm2015/components/checkbox-labeled/checkbox-labeled.module.js +4 -4
  211. package/esm2015/components/combo-box/combo-box-strict.directive.js +3 -3
  212. package/esm2015/components/combo-box/combo-box.component.js +3 -3
  213. package/esm2015/components/combo-box/combo-box.directive.js +3 -3
  214. package/esm2015/components/combo-box/combo-box.module.js +4 -4
  215. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +3 -3
  216. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +3 -3
  217. package/esm2015/components/data-list-wrapper/data-list-wrapper.js +3 -3
  218. package/esm2015/components/data-list-wrapper/data-list-wrapper.module.js +4 -4
  219. package/esm2015/components/elastic-container/elastic-container.component.js +3 -3
  220. package/esm2015/components/elastic-container/elastic-container.directive.js +3 -3
  221. package/esm2015/components/elastic-container/elastic-container.module.js +4 -4
  222. package/esm2015/components/files/file/file.component.js +3 -3
  223. package/esm2015/components/files/files.component.js +3 -3
  224. package/esm2015/components/files/files.module.js +4 -4
  225. package/esm2015/components/filter/filter.component.js +3 -3
  226. package/esm2015/components/filter/filter.module.js +4 -4
  227. package/esm2015/components/index.js +2 -1
  228. package/esm2015/components/input/input.component.js +3 -3
  229. package/esm2015/components/input/input.directive.js +3 -3
  230. package/esm2015/components/input/input.module.js +4 -4
  231. package/esm2015/components/input-copy/input-copy.component.js +3 -3
  232. package/esm2015/components/input-copy/input-copy.directive.js +3 -3
  233. package/esm2015/components/input-copy/input-copy.module.js +4 -4
  234. package/esm2015/components/input-count/input-count.component.js +13 -15
  235. package/esm2015/components/input-count/input-count.directive.js +3 -3
  236. package/esm2015/components/input-count/input-count.module.js +4 -4
  237. package/esm2015/components/input-date/input-date.component.js +3 -3
  238. package/esm2015/components/input-date/input-date.directive.js +3 -3
  239. package/esm2015/components/input-date/input-date.module.js +4 -4
  240. package/esm2015/components/input-date-range/input-date-range.component.js +3 -3
  241. package/esm2015/components/input-date-range/input-date-range.directive.js +3 -3
  242. package/esm2015/components/input-date-range/input-date-range.module.js +4 -4
  243. package/esm2015/components/input-date-time/input-date-time.component.js +3 -3
  244. package/esm2015/components/input-date-time/input-date-time.directive.js +3 -3
  245. package/esm2015/components/input-date-time/input-date-time.module.js +4 -4
  246. package/esm2015/components/input-files/input-files.component.js +3 -3
  247. package/esm2015/components/input-files/input-files.directive.js +3 -3
  248. package/esm2015/components/input-files/input-files.module.js +4 -4
  249. package/esm2015/components/input-files/max-size-rejection-error.pipe.js +3 -3
  250. package/esm2015/components/input-inline/input-inline.component.js +3 -3
  251. package/esm2015/components/input-inline/input-inline.module.js +4 -4
  252. package/esm2015/components/input-month/input-month.component.js +3 -3
  253. package/esm2015/components/input-month/input-month.directive.js +3 -3
  254. package/esm2015/components/input-month/input-month.module.js +4 -4
  255. package/esm2015/components/input-month-range/input-month-range.component.js +3 -3
  256. package/esm2015/components/input-month-range/input-month-range.directive.js +3 -3
  257. package/esm2015/components/input-month-range/input-month-range.module.js +4 -4
  258. package/esm2015/components/input-number/input-number.component.js +3 -3
  259. package/esm2015/components/input-number/input-number.directive.js +3 -3
  260. package/esm2015/components/input-number/input-number.module.js +4 -4
  261. package/esm2015/components/input-password/input-password.component.js +3 -3
  262. package/esm2015/components/input-password/input-password.directive.js +3 -3
  263. package/esm2015/components/input-password/input-password.module.js +4 -4
  264. package/esm2015/components/input-phone/input-phone.component.js +3 -3
  265. package/esm2015/components/input-phone/input-phone.directive.js +3 -3
  266. package/esm2015/components/input-phone/input-phone.module.js +4 -4
  267. package/esm2015/components/input-phone-international/input-phone-international.component.js +27 -29
  268. package/esm2015/components/input-phone-international/input-phone-international.module.js +10 -7
  269. package/esm2015/components/input-range/input-range.component.js +11 -35
  270. package/esm2015/components/input-range/input-range.module.js +12 -9
  271. package/esm2015/components/input-slider/input-slider.component.js +3 -3
  272. package/esm2015/components/input-slider/input-slider.module.js +4 -4
  273. package/esm2015/components/input-tag/input-tag.component.js +9 -10
  274. package/esm2015/components/input-tag/input-tag.module.js +4 -4
  275. package/esm2015/components/input-time/input-time.component.js +3 -3
  276. package/esm2015/components/input-time/input-time.module.js +4 -4
  277. package/esm2015/components/input-year/input-year.component.js +3 -3
  278. package/esm2015/components/input-year/input-year.directive.js +3 -3
  279. package/esm2015/components/input-year/input-year.module.js +4 -4
  280. package/esm2015/components/island/island.component.js +3 -3
  281. package/esm2015/components/island/island.module.js +4 -4
  282. package/esm2015/components/items-with-more/items-with-more.component.js +3 -3
  283. package/esm2015/components/items-with-more/items-with-more.directive.js +3 -3
  284. package/esm2015/components/items-with-more/items-with-more.module.js +4 -4
  285. package/esm2015/components/items-with-more/items-with-more.service.js +3 -3
  286. package/esm2015/components/items-with-more/more.directive.js +3 -3
  287. package/esm2015/components/line-clamp/line-clamp-box.component.js +3 -3
  288. package/esm2015/components/line-clamp/line-clamp-position.directive.js +3 -3
  289. package/esm2015/components/line-clamp/line-clamp.component.js +3 -3
  290. package/esm2015/components/line-clamp/line-clamp.module.js +4 -4
  291. package/esm2015/components/marker-icon/marker-icon.component.js +3 -3
  292. package/esm2015/components/marker-icon/marker-icon.module.js +4 -4
  293. package/esm2015/components/multi-select/hide-selected.pipe.js +3 -3
  294. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +3 -3
  295. package/esm2015/components/multi-select/multi-select-group/multi-select-group.directive.js +3 -3
  296. package/esm2015/components/multi-select/multi-select.component.js +3 -3
  297. package/esm2015/components/multi-select/multi-select.module.js +4 -4
  298. package/esm2015/components/multi-select-option/multi-select-option.component.js +3 -3
  299. package/esm2015/components/multi-select-option/multi-select-option.module.js +4 -4
  300. package/esm2015/components/pagination/pagination.component.js +3 -3
  301. package/esm2015/components/pagination/pagination.module.js +4 -4
  302. package/esm2015/components/pdf-viewer/pdf-viewer.component.js +3 -3
  303. package/esm2015/components/pdf-viewer/pdf-viewer.directive.js +3 -3
  304. package/esm2015/components/pdf-viewer/pdf-viewer.module.js +4 -4
  305. package/esm2015/components/pdf-viewer/pdf-viewer.service.js +3 -3
  306. package/esm2015/components/progress/progress-bar/progress-bar.component.js +3 -3
  307. package/esm2015/components/progress/progress-bar/progress-color-segments.directive.js +3 -3
  308. package/esm2015/components/progress/progress-circle/progress-circle.component.js +3 -3
  309. package/esm2015/components/progress/progress-label/progress-label.component.js +3 -3
  310. package/esm2015/components/progress/progress-segmented/progress-segmented.component.js +3 -3
  311. package/esm2015/components/progress/progress.module.js +4 -4
  312. package/esm2015/components/prompt/prompt.component.js +3 -3
  313. package/esm2015/components/prompt/prompt.module.js +4 -4
  314. package/esm2015/components/push/push-alert.component.js +3 -3
  315. package/esm2015/components/push/push-alert.directive.js +3 -3
  316. package/esm2015/components/push/push.component.js +3 -3
  317. package/esm2015/components/push/push.directive.js +3 -3
  318. package/esm2015/components/push/push.module.js +4 -4
  319. package/esm2015/components/push/push.service.js +3 -3
  320. package/esm2015/components/radio/radio.component.js +3 -3
  321. package/esm2015/components/radio/radio.module.js +4 -4
  322. package/esm2015/components/radio-block/radio-block.component.js +3 -3
  323. package/esm2015/components/radio-block/radio-block.module.js +4 -4
  324. package/esm2015/components/radio-group/radio-group.component.js +3 -3
  325. package/esm2015/components/radio-group/radio-group.module.js +4 -4
  326. package/esm2015/components/radio-labeled/radio-labeled.component.js +3 -3
  327. package/esm2015/components/radio-labeled/radio-labeled.module.js +4 -4
  328. package/esm2015/components/radio-list/radio-list.component.js +3 -3
  329. package/esm2015/components/radio-list/radio-list.module.js +4 -4
  330. package/esm2015/components/range/range-change.directive.js +3 -3
  331. package/esm2015/components/range/range.component.js +3 -3
  332. package/esm2015/components/range/range.module.js +4 -4
  333. package/esm2015/components/rating/rating.component.js +3 -3
  334. package/esm2015/components/rating/rating.module.js +4 -4
  335. package/esm2015/components/routable-dialog/generate-dialogable-route.js +19 -0
  336. package/esm2015/components/routable-dialog/index.js +4 -0
  337. package/esm2015/components/routable-dialog/routable-dialog.component.js +65 -0
  338. package/esm2015/components/routable-dialog/routable-dialog.module.js +16 -0
  339. package/esm2015/components/routable-dialog/taiga-ui-kit-components-routable-dialog.js +5 -0
  340. package/esm2015/components/select/native-select/native-select-group.component.js +3 -3
  341. package/esm2015/components/select/native-select/native-select.component.js +3 -3
  342. package/esm2015/components/select/native-select/native-select.js +3 -3
  343. package/esm2015/components/select/select.component.js +3 -3
  344. package/esm2015/components/select/select.directive.js +3 -3
  345. package/esm2015/components/select/select.module.js +4 -4
  346. package/esm2015/components/select-option/select-option.component.js +3 -3
  347. package/esm2015/components/select-option/select-option.module.js +4 -4
  348. package/esm2015/components/slider/helpers/slider-key-steps.directive.js +3 -3
  349. package/esm2015/components/slider/helpers/slider-readonly.directive.js +3 -3
  350. package/esm2015/components/slider/helpers/slider-thumb-label/slider-thumb-label.component.js +3 -3
  351. package/esm2015/components/slider/slider.component.js +3 -3
  352. package/esm2015/components/slider/slider.module.js +4 -4
  353. package/esm2015/components/stepper/step/step.component.js +3 -3
  354. package/esm2015/components/stepper/stepper.component.js +3 -3
  355. package/esm2015/components/stepper/stepper.module.js +4 -4
  356. package/esm2015/components/tabs/tab/tab.component.js +3 -3
  357. package/esm2015/components/tabs/tabs/tabs.component.js +3 -3
  358. package/esm2015/components/tabs/tabs-vertical/tabs-vertical.component.js +3 -3
  359. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +5 -5
  360. package/esm2015/components/tabs/tabs.directive.js +3 -3
  361. package/esm2015/components/tabs/tabs.module.js +4 -4
  362. package/esm2015/components/tabs/underline/underline.component.js +3 -3
  363. package/esm2015/components/tag/tag.component.js +3 -3
  364. package/esm2015/components/tag/tag.module.js +4 -4
  365. package/esm2015/components/text-area/text-area.component.js +9 -10
  366. package/esm2015/components/text-area/text-area.directive.js +3 -3
  367. package/esm2015/components/text-area/text-area.module.js +4 -4
  368. package/esm2015/components/tiles/tile-handle.directive.js +3 -3
  369. package/esm2015/components/tiles/tile.component.js +3 -3
  370. package/esm2015/components/tiles/tiles.component.js +3 -3
  371. package/esm2015/components/tiles/tiles.module.js +4 -4
  372. package/esm2015/components/toggle/toggle.component.js +3 -3
  373. package/esm2015/components/toggle/toggle.module.js +4 -4
  374. package/esm2015/components/tree/components/tree/tree.component.js +9 -6
  375. package/esm2015/components/tree/components/tree-item/tree-item.component.js +7 -4
  376. package/esm2015/components/tree/components/tree-item-content/tree-item-content.component.js +3 -3
  377. package/esm2015/components/tree/directives/tree-children.directive.js +3 -3
  378. package/esm2015/components/tree/directives/tree-controller.directive.js +3 -3
  379. package/esm2015/components/tree/directives/tree-item-controller.directive.js +3 -3
  380. package/esm2015/components/tree/directives/tree-node.directive.js +3 -3
  381. package/esm2015/components/tree/misc/tree.service.js +3 -3
  382. package/esm2015/components/tree/tree.module.js +4 -4
  383. package/esm2015/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.js +3 -3
  384. package/esm2015/directives/data-list-dropdown-manager/data-list-dropdown-manager.module.js +4 -4
  385. package/esm2015/directives/highlight/highlight.directive.js +3 -3
  386. package/esm2015/directives/highlight/highlight.module.js +4 -4
  387. package/esm2015/directives/lazy-loading/lazy-loading.directive.js +3 -3
  388. package/esm2015/directives/lazy-loading/lazy-loading.module.js +4 -4
  389. package/esm2015/directives/lazy-loading/lazy-loading.service.js +3 -3
  390. package/esm2015/directives/mask/legacy-mask.js +7 -7
  391. package/esm2015/directives/present/present.directive.js +3 -3
  392. package/esm2015/directives/present/present.module.js +4 -4
  393. package/esm2015/directives/project-class/project-class.directive.js +3 -3
  394. package/esm2015/directives/project-class/project-class.module.js +4 -4
  395. package/esm2015/directives/unfinished-validator/unfinished-validator.directive.js +3 -3
  396. package/esm2015/directives/unfinished-validator/unfinished-validator.module.js +4 -4
  397. package/esm2015/directives/value-accessor/value-accessor.directive.js +3 -3
  398. package/esm2015/directives/value-accessor/value-accessor.module.js +4 -4
  399. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.component.js +3 -3
  400. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.module.js +4 -4
  401. package/esm2015/pipes/field-error/field-error-content-pipe.js +3 -3
  402. package/esm2015/pipes/field-error/field-error-pipe.js +3 -3
  403. package/esm2015/pipes/field-error/field-error.module.js +4 -4
  404. package/esm2015/pipes/filter-by-input/filter-by-input-with.pipe.js +3 -3
  405. package/esm2015/pipes/filter-by-input/filter-by-input.module.js +4 -4
  406. package/esm2015/pipes/filter-by-input/filter-by-input.pipe.js +3 -3
  407. package/esm2015/pipes/sort-countries/sort-countries.module.js +4 -4
  408. package/esm2015/pipes/sort-countries/sort-countries.pipe.js +3 -3
  409. package/esm2015/pipes/stringify/stringify.module.js +4 -4
  410. package/esm2015/pipes/stringify/stringify.pipe.js +3 -3
  411. package/esm2015/pipes/stringify-content/stringify-content.module.js +4 -4
  412. package/esm2015/pipes/stringify-content/stringify-content.pipe.js +3 -3
  413. package/esm2015/pipes/to-year/to-year.module.js +4 -4
  414. package/esm2015/pipes/to-year/to-year.pipe.js +3 -3
  415. package/fesm2015/taiga-ui-kit-components-accordion.js +16 -16
  416. package/fesm2015/taiga-ui-kit-components-action.js +7 -7
  417. package/fesm2015/taiga-ui-kit-components-arrow.js +7 -7
  418. package/fesm2015/taiga-ui-kit-components-avatar.js +7 -7
  419. package/fesm2015/taiga-ui-kit-components-badge.js +7 -7
  420. package/fesm2015/taiga-ui-kit-components-badged-content.js +7 -7
  421. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +7 -7
  422. package/fesm2015/taiga-ui-kit-components-calendar-month.js +7 -7
  423. package/fesm2015/taiga-ui-kit-components-calendar-range.js +7 -7
  424. package/fesm2015/taiga-ui-kit-components-carousel.js +19 -19
  425. package/fesm2015/taiga-ui-kit-components-checkbox-block.js +7 -7
  426. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +7 -7
  427. package/fesm2015/taiga-ui-kit-components-checkbox.js +8 -8
  428. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  429. package/fesm2015/taiga-ui-kit-components-combo-box.js +13 -13
  430. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +13 -13
  431. package/fesm2015/taiga-ui-kit-components-elastic-container.js +10 -10
  432. package/fesm2015/taiga-ui-kit-components-files.js +10 -10
  433. package/fesm2015/taiga-ui-kit-components-filter.js +7 -7
  434. package/fesm2015/taiga-ui-kit-components-input-copy.js +10 -10
  435. package/fesm2015/taiga-ui-kit-components-input-count.js +19 -21
  436. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  437. package/fesm2015/taiga-ui-kit-components-input-date-range.js +10 -10
  438. package/fesm2015/taiga-ui-kit-components-input-date-time.js +10 -10
  439. package/fesm2015/taiga-ui-kit-components-input-date.js +10 -10
  440. package/fesm2015/taiga-ui-kit-components-input-files.js +13 -13
  441. package/fesm2015/taiga-ui-kit-components-input-inline.js +7 -7
  442. package/fesm2015/taiga-ui-kit-components-input-month-range.js +10 -10
  443. package/fesm2015/taiga-ui-kit-components-input-month.js +10 -10
  444. package/fesm2015/taiga-ui-kit-components-input-number.js +10 -10
  445. package/fesm2015/taiga-ui-kit-components-input-password.js +10 -10
  446. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +34 -33
  447. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  448. package/fesm2015/taiga-ui-kit-components-input-phone.js +10 -10
  449. package/fesm2015/taiga-ui-kit-components-input-range.js +20 -41
  450. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  451. package/fesm2015/taiga-ui-kit-components-input-slider.js +7 -7
  452. package/fesm2015/taiga-ui-kit-components-input-tag.js +12 -13
  453. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  454. package/fesm2015/taiga-ui-kit-components-input-time.js +7 -7
  455. package/fesm2015/taiga-ui-kit-components-input-year.js +10 -10
  456. package/fesm2015/taiga-ui-kit-components-input.js +10 -10
  457. package/fesm2015/taiga-ui-kit-components-island.js +7 -7
  458. package/fesm2015/taiga-ui-kit-components-items-with-more.js +16 -16
  459. package/fesm2015/taiga-ui-kit-components-line-clamp.js +13 -13
  460. package/fesm2015/taiga-ui-kit-components-marker-icon.js +7 -7
  461. package/fesm2015/taiga-ui-kit-components-multi-select-option.js +7 -7
  462. package/fesm2015/taiga-ui-kit-components-multi-select.js +16 -16
  463. package/fesm2015/taiga-ui-kit-components-pagination.js +7 -7
  464. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js +13 -13
  465. package/fesm2015/taiga-ui-kit-components-progress.js +19 -19
  466. package/fesm2015/taiga-ui-kit-components-prompt.js +7 -7
  467. package/fesm2015/taiga-ui-kit-components-push.js +19 -19
  468. package/fesm2015/taiga-ui-kit-components-radio-block.js +7 -7
  469. package/fesm2015/taiga-ui-kit-components-radio-group.js +7 -7
  470. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +7 -7
  471. package/fesm2015/taiga-ui-kit-components-radio-list.js +7 -7
  472. package/fesm2015/taiga-ui-kit-components-radio.js +7 -7
  473. package/fesm2015/taiga-ui-kit-components-range.js +10 -10
  474. package/fesm2015/taiga-ui-kit-components-rating.js +7 -7
  475. package/fesm2015/taiga-ui-kit-components-routable-dialog.js +103 -0
  476. package/fesm2015/taiga-ui-kit-components-routable-dialog.js.map +1 -0
  477. package/fesm2015/taiga-ui-kit-components-select-option.js +7 -7
  478. package/fesm2015/taiga-ui-kit-components-select.js +19 -19
  479. package/fesm2015/taiga-ui-kit-components-slider.js +16 -16
  480. package/fesm2015/taiga-ui-kit-components-stepper.js +10 -10
  481. package/fesm2015/taiga-ui-kit-components-tabs.js +23 -23
  482. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  483. package/fesm2015/taiga-ui-kit-components-tag.js +7 -7
  484. package/fesm2015/taiga-ui-kit-components-text-area.js +15 -16
  485. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  486. package/fesm2015/taiga-ui-kit-components-tiles.js +13 -13
  487. package/fesm2015/taiga-ui-kit-components-toggle.js +7 -7
  488. package/fesm2015/taiga-ui-kit-components-tree.js +36 -30
  489. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  490. package/fesm2015/taiga-ui-kit-components.js +1 -0
  491. package/fesm2015/taiga-ui-kit-components.js.map +1 -1
  492. package/fesm2015/taiga-ui-kit-directives-data-list-dropdown-manager.js +7 -7
  493. package/fesm2015/taiga-ui-kit-directives-highlight.js +7 -7
  494. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js +10 -10
  495. package/fesm2015/taiga-ui-kit-directives-mask.js +7 -7
  496. package/fesm2015/taiga-ui-kit-directives-present.js +7 -7
  497. package/fesm2015/taiga-ui-kit-directives-project-class.js +7 -7
  498. package/fesm2015/taiga-ui-kit-directives-unfinished-validator.js +7 -7
  499. package/fesm2015/taiga-ui-kit-directives-value-accessor.js +7 -7
  500. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js +7 -7
  501. package/fesm2015/taiga-ui-kit-pipes-field-error.js +10 -10
  502. package/fesm2015/taiga-ui-kit-pipes-filter-by-input.js +10 -10
  503. package/fesm2015/taiga-ui-kit-pipes-sort-countries.js +7 -7
  504. package/fesm2015/taiga-ui-kit-pipes-stringify-content.js +7 -7
  505. package/fesm2015/taiga-ui-kit-pipes-stringify.js +7 -7
  506. package/fesm2015/taiga-ui-kit-pipes-to-year.js +7 -7
  507. package/package.json +6 -6
@@ -2,7 +2,7 @@ import { __decorate } from "tslib";
2
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Inject, Input, Optional, Self, ViewChild, } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
4
  import { AbstractTuiNullableControl, TUI_IS_MOBILE, tuiAsControl, tuiAsFocusableItemAccessor, tuiClamp, tuiDefaultProp, tuiIsNativeFocused, tuiIsPresent, tuiPure, } from '@taiga-ui/cdk';
5
- import { TUI_NUMBER_FORMAT, TUI_TEXTFIELD_APPEARANCE, TUI_TEXTFIELD_SIZE, tuiCreateNumberMask, tuiFormatNumber, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
5
+ import { TEXTFIELD_CONTROLLER_PROVIDER, TUI_NUMBER_FORMAT, TUI_TEXTFIELD_WATCHED_CONTROLLER, tuiCreateNumberMask, tuiFormatNumber, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
6
6
  import { TUI_PLUS_MINUS_TEXTS } from '@taiga-ui/kit/tokens';
7
7
  import { TUI_INPUT_COUNT_OPTIONS } from './input-count-options';
8
8
  import * as i0 from "@angular/core";
@@ -12,10 +12,9 @@ import * as i3 from "@angular/common";
12
12
  import * as i4 from "@angular/forms";
13
13
  import * as i5 from "rxjs";
14
14
  export class TuiInputCountComponent extends AbstractTuiNullableControl {
15
- constructor(control, changeDetectorRef, appearance, textfieldSize, minusTexts$, isMobile, options, numberFormat) {
15
+ constructor(control, changeDetectorRef, textfieldController, minusTexts$, isMobile, options, numberFormat) {
16
16
  super(control, changeDetectorRef);
17
- this.appearance = appearance;
18
- this.textfieldSize = textfieldSize;
17
+ this.textfieldController = textfieldController;
19
18
  this.minusTexts$ = minusTexts$;
20
19
  this.isMobile = isMobile;
21
20
  this.options = options;
@@ -40,7 +39,7 @@ export class TuiInputCountComponent extends AbstractTuiNullableControl {
40
39
  };
41
40
  }
42
41
  get buttonsHidden() {
43
- return this.hideButtons || this.appearance === 'table';
42
+ return this.hideButtons || this.textfieldController.appearance === 'table';
44
43
  }
45
44
  get iconUp() {
46
45
  return this.options.icons.up;
@@ -54,7 +53,7 @@ export class TuiInputCountComponent extends AbstractTuiNullableControl {
54
53
  : this.primitiveTextfield.nativeFocusableElement;
55
54
  }
56
55
  get size() {
57
- return this.textfieldSize.size;
56
+ return this.textfieldController.size;
58
57
  }
59
58
  get focused() {
60
59
  return tuiIsNativeFocused(this.nativeFocusableElement);
@@ -167,10 +166,11 @@ export class TuiInputCountComponent extends AbstractTuiNullableControl {
167
166
  return Number.isNaN(value) || !tuiIsPresent(value);
168
167
  }
169
168
  }
170
- TuiInputCountComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCountComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_TEXTFIELD_APPEARANCE }, { token: TUI_TEXTFIELD_SIZE }, { token: TUI_PLUS_MINUS_TEXTS }, { token: TUI_IS_MOBILE }, { token: TUI_INPUT_COUNT_OPTIONS }, { token: TUI_NUMBER_FORMAT }], target: i0.ɵɵFactoryTarget.Component });
171
- TuiInputCountComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiInputCountComponent, selector: "tui-input-count", inputs: { step: "step", min: "min", max: "max", hideButtons: "hideButtons", prefix: "prefix", postfix: "postfix" }, host: { properties: { "class._hide-buttons": "this.buttonsHidden", "attr.data-size": "this.size" } }, providers: [
169
+ TuiInputCountComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputCountComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_TEXTFIELD_WATCHED_CONTROLLER }, { token: TUI_PLUS_MINUS_TEXTS }, { token: TUI_IS_MOBILE }, { token: TUI_INPUT_COUNT_OPTIONS }, { token: TUI_NUMBER_FORMAT }], target: i0.ɵɵFactoryTarget.Component });
170
+ TuiInputCountComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputCountComponent, selector: "tui-input-count", inputs: { step: "step", min: "min", max: "max", hideButtons: "hideButtons", prefix: "prefix", postfix: "postfix" }, host: { properties: { "class._hide-buttons": "this.buttonsHidden", "attr.data-size": "this.size" } }, providers: [
172
171
  tuiAsFocusableItemAccessor(TuiInputCountComponent),
173
172
  tuiAsControl(TuiInputCountComponent),
173
+ TEXTFIELD_CONTROLLER_PROVIDER,
174
174
  ], viewQueries: [{ propertyName: "primitiveTextfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoActive]=\"pseudoActive\"\n [focusable]=\"focusable\"\n [nativeId]=\"nativeId\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix\"\n [disabled]=\"computedDisabled\"\n [readOnly]=\"readOnly\"\n [textMask]=\"getMask(min < 0)\"\n [invalid]=\"computedInvalid\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange()\"\n (keydown)=\"onKeydown($event)\"\n (focusedChange)=\"onFocused($event)\"\n>\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n</tui-primitive-textfield>\n<ng-container *ngIf=\"!buttonsHidden\">\n <ng-container *ngIf=\"minusTexts$ | async as texts\">\n <section class=\"t-buttons\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-input-count__plus-button\"\n size=\"s\"\n class=\"t-button t-button_plus\"\n [icon]=\"iconUp\"\n [appearance]=\"options.appearance\"\n [title]=\"texts[0]\"\n [disabled]=\"plusButtonDisabled\"\n [focusable]=\"false\"\n (mousedown)=\"onButtonMouseDown($event, plusButtonDisabled)\"\n (click)=\"increaseValue()\"\n ></button>\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-input-count__minus-button\"\n size=\"s\"\n class=\"t-button t-button_minus\"\n [icon]=\"iconDown\"\n [appearance]=\"options.appearance\"\n [disabled]=\"minusButtonDisabled\"\n [focusable]=\"false\"\n [title]=\"texts[1]\"\n (mousedown)=\"onButtonMouseDown($event, minusButtonDisabled)\"\n (click)=\"decreaseValue()\"\n ></button>\n </section>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex;font:var(--tui-font-text-s);border-radius:var(--tui-radius-m);height:var(--tui-height-m);color:var(--tui-text-01);text-align:left}:host._disabled{pointer-events:none}:host[data-size=l]{font:var(--tui-font-text-m);height:var(--tui-height-l)}.t-textfield{position:relative;border-radius:inherit;text-align:inherit;flex-grow:1;min-width:0}:host:not(._hide-buttons) .t-textfield{border-top-right-radius:0;border-bottom-right-radius:0}.t-buttons{display:flex;flex-direction:column;margin-left:.125rem;height:100%}.t-buttons .t-button{display:flex;width:calc(var(--tui-height-m) * .75);height:calc(50% - .0625rem)}.t-buttons .t-button_plus{margin-bottom:.125rem;border-radius:0 var(--tui-radius-m) 0 0}.t-buttons .t-button_minus{border-radius:0 0 var(--tui-radius-m)}:host[data-size=l] .t-buttons .t-button{width:calc(var(--tui-height-l) * .75)}\n"], components: [{ type: i1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }, { type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i2.TuiValueAccessorDirective, selector: "[tuiValueAccessor]" }, { type: i2.MaskedInputDirective, selector: "[textMask]", inputs: ["textMask"], exportAs: ["textMask"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
175
175
  __decorate([
176
176
  tuiDefaultProp()
@@ -193,7 +193,7 @@ __decorate([
193
193
  __decorate([
194
194
  tuiPure
195
195
  ], TuiInputCountComponent.prototype, "getMask", null);
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCountComponent, decorators: [{
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputCountComponent, decorators: [{
197
197
  type: Component,
198
198
  args: [{
199
199
  selector: 'tui-input-count',
@@ -203,6 +203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
203
203
  providers: [
204
204
  tuiAsFocusableItemAccessor(TuiInputCountComponent),
205
205
  tuiAsControl(TuiInputCountComponent),
206
+ TEXTFIELD_CONTROLLER_PROVIDER,
206
207
  ],
207
208
  }]
208
209
  }], ctorParameters: function () { return [{ type: i4.NgControl, decorators: [{
@@ -215,12 +216,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
215
216
  }] }, { type: i0.ChangeDetectorRef, decorators: [{
216
217
  type: Inject,
217
218
  args: [ChangeDetectorRef]
218
- }] }, { type: undefined, decorators: [{
219
- type: Inject,
220
- args: [TUI_TEXTFIELD_APPEARANCE]
221
- }] }, { type: i1.TuiTextfieldSizeDirective, decorators: [{
219
+ }] }, { type: i1.TuiTextfieldController, decorators: [{
222
220
  type: Inject,
223
- args: [TUI_TEXTFIELD_SIZE]
221
+ args: [TUI_TEXTFIELD_WATCHED_CONTROLLER]
224
222
  }] }, { type: i5.Observable, decorators: [{
225
223
  type: Inject,
226
224
  args: [TUI_PLUS_MINUS_TEXTS]
@@ -255,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
255
253
  type: HostBinding,
256
254
  args: ['attr.data-size']
257
255
  }] } });
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtY291bnQvaW5wdXQtY291bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtY291bnQvaW5wdXQtY291bnQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGFBQWEsRUFDYixZQUFZLEVBQ1osMEJBQTBCLEVBQzFCLFFBQVEsRUFDUixjQUFjLEVBRWQsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixlQUFlLEVBRWYsOEJBQThCLEdBTWpDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFJMUQsT0FBTyxFQUFDLHVCQUF1QixFQUF1QixNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBWXBGLE1BQU0sT0FBTyxzQkFDVCxTQUFRLDBCQUFrQztJQWdDMUMsWUFJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUU5QyxVQUFrQixFQUVsQixhQUF3QyxFQUVoRCxXQUF5QyxFQUNWLFFBQWlCLEVBRWhELE9BQTZCLEVBRXJCLFlBQXFDO1FBRXRE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QUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsd0JBQXdCOzswQkFFL0IsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUV6QixNQUFNOzJCQUFDLG9CQUFvQjs7MEJBRTNCLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BCLE1BQU07MkJBQUMsdUJBQXVCOzswQkFFOUIsTUFBTTsyQkFBQyxpQkFBaUI7NENBM0NaLGtCQUFrQjtzQkFEbEMsU0FBUzt1QkFBQyw4QkFBOEI7Z0JBS3pDLElBQUk7c0JBRkgsS0FBSztnQkFNTixHQUFHO3NCQUZGLEtBQUs7Z0JBTU4sR0FBRztzQkFGRixLQUFLO2dCQU1OLFdBQVc7c0JBRlYsS0FBSztnQkFPTixNQUFNO3NCQUZMLEtBQUs7Z0JBT04sT0FBTztzQkFGTixLQUFLO2dCQTBCTixPQUFPLE1BWUgsYUFBYTtzQkFEaEIsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBb0I5QixJQUFJO3NCQURQLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgdHVpQXNDb250cm9sLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIHR1aUNsYW1wLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWQsXG4gICAgdHVpSXNQcmVzZW50LFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUVUlfTlVNQkVSX0ZPUk1BVCxcbiAgICBUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIHR1aUNyZWF0ZU51bWJlck1hc2ssXG4gICAgdHVpRm9ybWF0TnVtYmVyLFxuICAgIFR1aU51bWJlckZvcm1hdFNldHRpbmdzLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgIFR1aVRleHRNYXNrT3B0aW9ucyxcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VFVJX1BMVVNfTUlOVVNfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX0NPVU5UX09QVElPTlMsIFR1aUlucHV0Q291bnRPcHRpb25zfSBmcm9tICcuL2lucHV0LWNvdW50LW9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1jb3VudCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWNvdW50LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWNvdW50LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpSW5wdXRDb3VudENvbXBvbmVudCksXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dENvdW50Q29tcG9uZW50KSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dENvdW50Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxudW1iZXI+XG4gICAgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8bnVtYmVyPiwgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltaXRpdmVUZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3RlcCA9IHRoaXMub3B0aW9ucy5zdGVwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IHRoaXMub3B0aW9ucy5taW47XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gdGhpcy5vcHRpb25zLm1heDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBoaWRlQnV0dG9ucyA9IHRoaXMub3B0aW9ucy5oaWRlQnV0dG9ucztcblxuICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgYHR1aVRleHRmaWVsZFByZWZpeGAgZnJvbSB7QGxpbmsgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZX0gaW5zdGVhZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwcmVmaXggPSAnJztcblxuICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgYHR1aVRleHRmaWVsZFBvc3RmaXhgIGZyb20ge0BsaW5rIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGV9IGluc3RlYWQgKi9cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcG9zdGZpeCA9IHRoaXMub3B0aW9ucy5wb3N0Zml4O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwZWFyYW5jZTogc3RyaW5nLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfU0laRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplOiBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9QTFVTX01JTlVTX1RFWFRTKVxuICAgICAgICByZWFkb25seSBtaW51c1RleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKSBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9DT1VOVF9PUFRJT05TKVxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBUdWlJbnB1dENvdW50T3B0aW9ucyxcbiAgICAgICAgQEluamVjdChUVUlfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBudW1iZXJGb3JtYXQ6IFR1aU51bWJlckZvcm1hdFNldHRpbmdzLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXRNYXNrKGFsbG93TmVnYXRpdmU6IGJvb2xlYW4pOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWFzazogdHVpQ3JlYXRlTnVtYmVyTWFzayh7XG4gICAgICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZSxcbiAgICAgICAgICAgICAgICBkZWNpbWFsU3ltYm9sOiB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgIHRob3VzYW5kU3ltYm9sOiB0aGlzLm51bWJlckZvcm1hdC50aG91c2FuZFNlcGFyYXRvcixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hpZGUtYnV0dG9ucycpXG4gICAgZ2V0IGJ1dHRvbnNIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpZGVCdXR0b25zIHx8IHRoaXMuYXBwZWFyYW5jZSA9PT0gJ3RhYmxlJztcbiAgICB9XG5cbiAgICBnZXQgaWNvblVwKCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pY29ucy51cDtcbiAgICB9XG5cbiAgICBnZXQgaWNvbkRvd24oKTogUG9seW1vcnBoZXVzQ29udGVudDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmljb25zLmRvd247XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMucHJpbWl0aXZlVGV4dGZpZWxkIHx8IHRoaXMuY29tcHV0ZWREaXNhYmxlZFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZFNpemUuc2l6ZTtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBleGFtcGxlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gU3RyaW5nKHRoaXMubWluKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2VkID8gdGhpcy5uYXRpdmVWYWx1ZSA6IHRoaXMuZm9ybWF0TnVtYmVyKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBtaW51c0J1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW50ZXJhY3RpdmUgfHwgKHR1aUlzUHJlc2VudCh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlIDw9IHRoaXMubWluKTtcbiAgICB9XG5cbiAgICBnZXQgcGx1c0J1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW50ZXJhY3RpdmUgfHwgKHR1aUlzUHJlc2VudCh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlID49IHRoaXMubWF4KTtcbiAgICB9XG5cbiAgICBvbkJ1dHRvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCB0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoIWZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25CbHVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gdGhpcy5jYXBWYWx1ZSh0aGlzLm5hdGl2ZU51bWJlclZhbHVlKTtcblxuICAgICAgICBpZiAodGhpcy5pc05vdE51bWJlcihjYXBwZWQpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKGNhcHBlZCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlVmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGNhcHBlZCk7XG4gICAgfVxuXG4gICAgZGVjcmVhc2VWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gKHRoaXMudmFsdWUgfHwgMCkgLSB0aGlzLnN0ZXA7XG5cbiAgICAgICAgdGhpcy5zYWZlVXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIGluY3JlYXNlVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9ICh0aGlzLnZhbHVlIHx8IDApICsgdGhpcy5zdGVwO1xuXG4gICAgICAgIHRoaXMuc2FmZVVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgY2FzZSAnVXAnOlxuICAgICAgICAgICAgICAgIHRoaXMuaW5jcmVhc2VWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgY2FzZSAnRG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5kZWNyZWFzZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBuYXRpdmVOdW1iZXJWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoXG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yKS5qb2luKCcnKSxcbiAgICAgICAgICAgIDEwLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldCBuYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhZmVVcGRhdGVWYWx1ZShuZXdWYWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdHVpQ2xhbXAobmV3VmFsdWUsIHRoaXMubWluLCB0aGlzLm1heCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYXBWYWx1ZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGNhcHBlZCA9IE1hdGgubWluKHZhbHVlLCB0aGlzLm1heCk7XG5cbiAgICAgICAgcmV0dXJuIE51bWJlci5pc05hTihjYXBwZWQpIHx8IGNhcHBlZCA8IHRoaXMubWluID8gbnVsbCA6IGNhcHBlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNOb3ROdW1iZXIodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5tYXgodGhpcy5uYXRpdmVOdW1iZXJWYWx1ZSB8fCAwLCB0aGlzLm1pbik7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIodmFsdWUpO1xuXG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkKSB7XG4gICAgICAgICAgICB0aGlzLnByaW1pdGl2ZVRleHRmaWVsZC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlciB8IG51bGwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc05vdE51bWJlcih2YWx1ZSkgPyAnJyA6IHR1aUZvcm1hdE51bWJlcih2YWx1ZSwgdGhpcy5udW1iZXJGb3JtYXQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNOb3ROdW1iZXIodmFsdWU6IG51bWJlciB8IG51bGwpOiB2YWx1ZSBpcyBudWxsIHtcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc05hTih2YWx1ZSkgfHwgIXR1aUlzUHJlc2VudCh2YWx1ZSk7XG4gICAgfVxufVxuIiwiPHR1aS1wcmltaXRpdmUtdGV4dGZpZWxkXG4gICAgdHVpVmFsdWVBY2Nlc3NvclxuICAgIGNsYXNzPVwidC10ZXh0ZmllbGRcIlxuICAgIFtwc2V1ZG9Gb2N1c109XCJwc2V1ZG9Gb2N1c1wiXG4gICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICBbcHNldWRvQWN0aXZlXT1cInBzZXVkb0FjdGl2ZVwiXG4gICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgIFtuYXRpdmVJZF09XCJuYXRpdmVJZFwiXG4gICAgW3ByZWZpeF09XCJwcmVmaXhcIlxuICAgIFtwb3N0Zml4XT1cInBvc3RmaXhcIlxuICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgIFt0ZXh0TWFza109XCJnZXRNYXNrKG1pbiA8IDApXCJcbiAgICBbaW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgIFt2YWx1ZV09XCJjb21wdXRlZFZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgpXCJcbiAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgKGZvY3VzZWRDaGFuZ2UpPVwib25Gb2N1c2VkKCRldmVudClcIlxuPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudFxuICAgICAgICBzZWxlY3Q9XCJpbnB1dFwiXG4gICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgID48L25nLWNvbnRlbnQ+XG48L3R1aS1wcmltaXRpdmUtdGV4dGZpZWxkPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFidXR0b25zSGlkZGVuXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1pbnVzVGV4dHMkIHwgYXN5bmMgYXMgdGV4dHNcIj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJ0LWJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1jb3VudF9fcGx1cy1idXR0b25cIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uIHQtYnV0dG9uX3BsdXNcIlxuICAgICAgICAgICAgICAgIFtpY29uXT1cImljb25VcFwiXG4gICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwib3B0aW9ucy5hcHBlYXJhbmNlXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwidGV4dHNbMF1cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwbHVzQnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25CdXR0b25Nb3VzZURvd24oJGV2ZW50LCBwbHVzQnV0dG9uRGlzYWJsZWQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW5jcmVhc2VWYWx1ZSgpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1jb3VudF9fbWludXMtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvbiB0LWJ1dHRvbl9taW51c1wiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiaWNvbkRvd25cIlxuICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cIm9wdGlvbnMuYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm1pbnVzQnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJ0ZXh0c1sxXVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvbkJ1dHRvbk1vdXNlRG93bigkZXZlbnQsIG1pbnVzQnV0dG9uRGlzYWJsZWQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVjcmVhc2VWYWx1ZSgpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtY291bnQvaW5wdXQtY291bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtY291bnQvaW5wdXQtY291bnQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGFBQWEsRUFDYixZQUFZLEVBQ1osMEJBQTBCLEVBQzFCLFFBQVEsRUFDUixjQUFjLEVBRWQsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDZCQUE2QixFQUM3QixpQkFBaUIsRUFDakIsZ0NBQWdDLEVBQ2hDLG1CQUFtQixFQUNuQixlQUFlLEVBRWYsOEJBQThCLEdBTWpDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFJMUQsT0FBTyxFQUFDLHVCQUF1QixFQUF1QixNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBYXBGLE1BQU0sT0FBTyxzQkFDVCxTQUFRLDBCQUFrQztJQWdDMUMsWUFJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUU5QyxtQkFBMkMsRUFFbkQsV0FBeUMsRUFDVixRQUFpQixFQUVoRCxPQUE2QixFQUVyQixZQUFxQztRQUV0RCxLQUFLLENBQUMs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OzBCQUN4QixNQUFNOzJCQUFDLGdDQUFnQzs7MEJBRXZDLE1BQU07MkJBQUMsb0JBQW9COzswQkFFM0IsTUFBTTsyQkFBQyxhQUFhOzswQkFDcEIsTUFBTTsyQkFBQyx1QkFBdUI7OzBCQUU5QixNQUFNOzJCQUFDLGlCQUFpQjs0Q0F6Q1osa0JBQWtCO3NCQURsQyxTQUFTO3VCQUFDLDhCQUE4QjtnQkFLekMsSUFBSTtzQkFGSCxLQUFLO2dCQU1OLEdBQUc7c0JBRkYsS0FBSztnQkFNTixHQUFHO3NCQUZGLEtBQUs7Z0JBTU4sV0FBVztzQkFGVixLQUFLO2dCQU9OLE1BQU07c0JBRkwsS0FBSztnQkFPTixPQUFPO3NCQUZOLEtBQUs7Z0JBd0JOLE9BQU8sTUFZSCxhQUFhO3NCQURoQixXQUFXO3VCQUFDLHFCQUFxQjtnQkFvQjlCLElBQUk7c0JBRFAsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICB0dWlBc0NvbnRyb2wsXG4gICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IsXG4gICAgdHVpQ2xhbXAsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aUlzTmF0aXZlRm9jdXNlZCxcbiAgICB0dWlJc1ByZXNlbnQsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRFWFRGSUVMRF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIFRVSV9OVU1CRVJfRk9STUFULFxuICAgIFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIHR1aUNyZWF0ZU51bWJlck1hc2ssXG4gICAgdHVpRm9ybWF0TnVtYmVyLFxuICAgIFR1aU51bWJlckZvcm1hdFNldHRpbmdzLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxuICAgIFR1aVRleHRNYXNrT3B0aW9ucyxcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VFVJX1BMVVNfTUlOVVNfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX0NPVU5UX09QVElPTlMsIFR1aUlucHV0Q291bnRPcHRpb25zfSBmcm9tICcuL2lucHV0LWNvdW50LW9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1jb3VudCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWNvdW50LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWNvdW50LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpSW5wdXRDb3VudENvbXBvbmVudCksXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dENvdW50Q29tcG9uZW50KSxcbiAgICAgICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRDb3VudENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8bnVtYmVyPlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PG51bWJlcj4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbWl0aXZlVGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHN0ZXAgPSB0aGlzLm9wdGlvbnMuc3RlcDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSB0aGlzLm9wdGlvbnMubWluO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IHRoaXMub3B0aW9ucy5tYXg7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaGlkZUJ1dHRvbnMgPSB0aGlzLm9wdGlvbnMuaGlkZUJ1dHRvbnM7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIGB0dWlUZXh0ZmllbGRQcmVmaXhgIGZyb20ge0BsaW5rIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGV9IGluc3RlYWQgKi9cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcHJlZml4ID0gJyc7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIGB0dWlUZXh0ZmllbGRQb3N0Zml4YCBmcm9tIHtAbGluayBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlfSBpbnN0ZWFkICovXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBvc3RmaXggPSB0aGlzLm9wdGlvbnMucG9zdGZpeDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkQ29udHJvbGxlcjogVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbiAgICAgICAgQEluamVjdChUVUlfUExVU19NSU5VU19URVhUUylcbiAgICAgICAgcmVhZG9ubHkgbWludXNUZXh0cyQ6IE9ic2VydmFibGU8W3N0cmluZywgc3RyaW5nXT4sXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfQ09VTlRfT1BUSU9OUylcbiAgICAgICAgcmVhZG9ubHkgb3B0aW9uczogVHVpSW5wdXRDb3VudE9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoVFVJX05VTUJFUl9GT1JNQVQpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbnVtYmVyRm9ybWF0OiBUdWlOdW1iZXJGb3JtYXRTZXR0aW5ncyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgZ2V0TWFzayhhbGxvd05lZ2F0aXZlOiBib29sZWFuKTogVHVpVGV4dE1hc2tPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1hc2s6IHR1aUNyZWF0ZU51bWJlck1hc2soe1xuICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmUsXG4gICAgICAgICAgICAgICAgZGVjaW1hbFN5bWJvbDogdGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICB0aG91c2FuZFN5bWJvbDogdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9oaWRlLWJ1dHRvbnMnKVxuICAgIGdldCBidXR0b25zSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oaWRlQnV0dG9ucyB8fCB0aGlzLnRleHRmaWVsZENvbnRyb2xsZXIuYXBwZWFyYW5jZSA9PT0gJ3RhYmxlJztcbiAgICB9XG5cbiAgICBnZXQgaWNvblVwKCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pY29ucy51cDtcbiAgICB9XG5cbiAgICBnZXQgaWNvbkRvd24oKTogUG9seW1vcnBoZXVzQ29udGVudDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmljb25zLmRvd247XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMucHJpbWl0aXZlVGV4dGZpZWxkIHx8IHRoaXMuY29tcHV0ZWREaXNhYmxlZFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZENvbnRyb2xsZXIuc2l6ZTtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBleGFtcGxlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gU3RyaW5nKHRoaXMubWluKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2VkID8gdGhpcy5uYXRpdmVWYWx1ZSA6IHRoaXMuZm9ybWF0TnVtYmVyKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBtaW51c0J1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW50ZXJhY3RpdmUgfHwgKHR1aUlzUHJlc2VudCh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlIDw9IHRoaXMubWluKTtcbiAgICB9XG5cbiAgICBnZXQgcGx1c0J1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW50ZXJhY3RpdmUgfHwgKHR1aUlzUHJlc2VudCh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlID49IHRoaXMubWF4KTtcbiAgICB9XG5cbiAgICBvbkJ1dHRvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCB0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoIWZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25CbHVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gdGhpcy5jYXBWYWx1ZSh0aGlzLm5hdGl2ZU51bWJlclZhbHVlKTtcblxuICAgICAgICBpZiAodGhpcy5pc05vdE51bWJlcihjYXBwZWQpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKGNhcHBlZCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlVmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGNhcHBlZCk7XG4gICAgfVxuXG4gICAgZGVjcmVhc2VWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gKHRoaXMudmFsdWUgfHwgMCkgLSB0aGlzLnN0ZXA7XG5cbiAgICAgICAgdGhpcy5zYWZlVXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIGluY3JlYXNlVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9ICh0aGlzLnZhbHVlIHx8IDApICsgdGhpcy5zdGVwO1xuXG4gICAgICAgIHRoaXMuc2FmZVVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgY2FzZSAnVXAnOlxuICAgICAgICAgICAgICAgIHRoaXMuaW5jcmVhc2VWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgY2FzZSAnRG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5kZWNyZWFzZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBuYXRpdmVOdW1iZXJWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoXG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yKS5qb2luKCcnKSxcbiAgICAgICAgICAgIDEwLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldCBuYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhZmVVcGRhdGVWYWx1ZShuZXdWYWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdHVpQ2xhbXAobmV3VmFsdWUsIHRoaXMubWluLCB0aGlzLm1heCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYXBWYWx1ZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGNhcHBlZCA9IE1hdGgubWluKHZhbHVlLCB0aGlzLm1heCk7XG5cbiAgICAgICAgcmV0dXJuIE51bWJlci5pc05hTihjYXBwZWQpIHx8IGNhcHBlZCA8IHRoaXMubWluID8gbnVsbCA6IGNhcHBlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNOb3ROdW1iZXIodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5tYXgodGhpcy5uYXRpdmVOdW1iZXJWYWx1ZSB8fCAwLCB0aGlzLm1pbik7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIodmFsdWUpO1xuXG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkKSB7XG4gICAgICAgICAgICB0aGlzLnByaW1pdGl2ZVRleHRmaWVsZC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlciB8IG51bGwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc05vdE51bWJlcih2YWx1ZSkgPyAnJyA6IHR1aUZvcm1hdE51bWJlcih2YWx1ZSwgdGhpcy5udW1iZXJGb3JtYXQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNOb3ROdW1iZXIodmFsdWU6IG51bWJlciB8IG51bGwpOiB2YWx1ZSBpcyBudWxsIHtcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc05hTih2YWx1ZSkgfHwgIXR1aUlzUHJlc2VudCh2YWx1ZSk7XG4gICAgfVxufVxuIiwiPHR1aS1wcmltaXRpdmUtdGV4dGZpZWxkXG4gICAgdHVpVmFsdWVBY2Nlc3NvclxuICAgIGNsYXNzPVwidC10ZXh0ZmllbGRcIlxuICAgIFtwc2V1ZG9Gb2N1c109XCJwc2V1ZG9Gb2N1c1wiXG4gICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICBbcHNldWRvQWN0aXZlXT1cInBzZXVkb0FjdGl2ZVwiXG4gICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgIFtuYXRpdmVJZF09XCJuYXRpdmVJZFwiXG4gICAgW3ByZWZpeF09XCJwcmVmaXhcIlxuICAgIFtwb3N0Zml4XT1cInBvc3RmaXhcIlxuICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgIFt0ZXh0TWFza109XCJnZXRNYXNrKG1pbiA8IDApXCJcbiAgICBbaW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgIFt2YWx1ZV09XCJjb21wdXRlZFZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgpXCJcbiAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgKGZvY3VzZWRDaGFuZ2UpPVwib25Gb2N1c2VkKCRldmVudClcIlxuPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudFxuICAgICAgICBzZWxlY3Q9XCJpbnB1dFwiXG4gICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgID48L25nLWNvbnRlbnQ+XG48L3R1aS1wcmltaXRpdmUtdGV4dGZpZWxkPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFidXR0b25zSGlkZGVuXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1pbnVzVGV4dHMkIHwgYXN5bmMgYXMgdGV4dHNcIj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJ0LWJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1jb3VudF9fcGx1cy1idXR0b25cIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uIHQtYnV0dG9uX3BsdXNcIlxuICAgICAgICAgICAgICAgIFtpY29uXT1cImljb25VcFwiXG4gICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwib3B0aW9ucy5hcHBlYXJhbmNlXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwidGV4dHNbMF1cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwbHVzQnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25CdXR0b25Nb3VzZURvd24oJGV2ZW50LCBwbHVzQnV0dG9uRGlzYWJsZWQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW5jcmVhc2VWYWx1ZSgpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1jb3VudF9fbWludXMtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvbiB0LWJ1dHRvbl9taW51c1wiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiaWNvbkRvd25cIlxuICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cIm9wdGlvbnMuYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm1pbnVzQnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJ0ZXh0c1sxXVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvbkJ1dHRvbk1vdXNlRG93bigkZXZlbnQsIG1pbnVzQnV0dG9uRGlzYWJsZWQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVjcmVhc2VWYWx1ZSgpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -17,9 +17,9 @@ export class TuiInputCountDirective extends AbstractTuiTextfieldHost {
17
17
  }
18
18
  }
19
19
  }
20
- TuiInputCountDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCountDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
21
- TuiInputCountDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiInputCountDirective, selector: "tui-input-count", providers: [tuiAsTextfieldHost(TuiInputCountDirective)], usesInheritance: true, ngImport: i0 });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCountDirective, decorators: [{
20
+ TuiInputCountDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputCountDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
21
+ TuiInputCountDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputCountDirective, selector: "tui-input-count", providers: [tuiAsTextfieldHost(TuiInputCountDirective)], usesInheritance: true, ngImport: i0 });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputCountDirective, decorators: [{
23
23
  type: Directive,
24
24
  args: [{
25
25
  selector: 'tui-input-count',
@@ -8,15 +8,15 @@ import { TuiInputCountDirective } from './input-count.directive';
8
8
  import * as i0 from "@angular/core";
9
9
  export class TuiInputCountModule {
10
10
  }
11
- TuiInputCountModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCountModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- TuiInputCountModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCountModule, declarations: [TuiInputCountComponent, TuiInputCountDirective], imports: [CommonModule,
11
+ TuiInputCountModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputCountModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ TuiInputCountModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputCountModule, declarations: [TuiInputCountComponent, TuiInputCountDirective], imports: [CommonModule,
13
13
  TextMaskModule,
14
14
  TuiButtonModule,
15
15
  TuiPrimitiveTextfieldModule,
16
16
  TuiTextfieldControllerModule,
17
17
  TuiValueAccessorModule,
18
18
  PolymorpheusModule], exports: [TuiInputCountComponent, TuiInputCountDirective, TuiTextfieldComponent] });
19
- TuiInputCountModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCountModule, imports: [[
19
+ TuiInputCountModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputCountModule, imports: [[
20
20
  CommonModule,
21
21
  TextMaskModule,
22
22
  TuiButtonModule,
@@ -25,7 +25,7 @@ TuiInputCountModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
25
25
  TuiValueAccessorModule,
26
26
  PolymorpheusModule,
27
27
  ]] });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCountModule, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputCountModule, decorators: [{
29
29
  type: NgModule,
30
30
  args: [{
31
31
  imports: [
@@ -165,8 +165,8 @@ export class TuiInputDateComponent extends AbstractTuiNullableControl {
165
165
  return tuiNullableSame(oldValue, newValue, (a, b) => a.daySame(b));
166
166
  }
167
167
  }
168
- TuiInputDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: Injector }, { token: TUI_IS_MOBILE }, { token: TuiDialogService }, { token: TUI_MOBILE_CALENDAR, optional: true }, { token: TUI_TEXTFIELD_SIZE }, { token: TUI_DATE_FORMAT }, { token: TUI_DATE_SEPARATOR }, { token: TUI_DATE_TEXTS }, { token: TUI_DATE_VALUE_TRANSFORMER, optional: true }, { token: TUI_INPUT_DATE_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
169
- TuiInputDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiInputDateComponent, selector: "tui-input-date", inputs: { min: "min", max: "max", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", items: "items", defaultActiveYearMonth: "defaultActiveYearMonth" }, host: { listeners: { "click": "onClick()" } }, providers: [
168
+ TuiInputDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: Injector }, { token: TUI_IS_MOBILE }, { token: TuiDialogService }, { token: TUI_MOBILE_CALENDAR, optional: true }, { token: TUI_TEXTFIELD_SIZE }, { token: TUI_DATE_FORMAT }, { token: TUI_DATE_SEPARATOR }, { token: TUI_DATE_TEXTS }, { token: TUI_DATE_VALUE_TRANSFORMER, optional: true }, { token: TUI_INPUT_DATE_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
169
+ TuiInputDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputDateComponent, selector: "tui-input-date", inputs: { min: "min", max: "max", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", items: "items", defaultActiveYearMonth: "defaultActiveYearMonth" }, host: { listeners: { "click": "onClick()" } }, providers: [
170
170
  tuiAsFocusableItemAccessor(TuiInputDateComponent),
171
171
  tuiAsControl(TuiInputDateComponent),
172
172
  tuiDateStreamWithTransformer(TUI_DATE_VALUE_TRANSFORMER),
@@ -189,7 +189,7 @@ __decorate([
189
189
  __decorate([
190
190
  tuiDefaultProp()
191
191
  ], TuiInputDateComponent.prototype, "defaultActiveYearMonth", void 0);
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateComponent, decorators: [{
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateComponent, decorators: [{
193
193
  type: Component,
194
194
  args: [{
195
195
  selector: 'tui-input-date',
@@ -12,9 +12,9 @@ export class TuiInputDateDirective extends AbstractTuiTextfieldHost {
12
12
  input.inputMode = 'numeric';
13
13
  }
14
14
  }
15
- TuiInputDateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
16
- TuiInputDateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiInputDateDirective, selector: "tui-input-date", providers: [tuiAsTextfieldHost(TuiInputDateDirective)], usesInheritance: true, ngImport: i0 });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateDirective, decorators: [{
15
+ TuiInputDateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
16
+ TuiInputDateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputDateDirective, selector: "tui-input-date", providers: [tuiAsTextfieldHost(TuiInputDateDirective)], usesInheritance: true, ngImport: i0 });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateDirective, decorators: [{
18
18
  type: Directive,
19
19
  args: [{
20
20
  selector: 'tui-input-date',
@@ -9,8 +9,8 @@ import { TuiInputDateDirective } from './input-date.directive';
9
9
  import * as i0 from "@angular/core";
10
10
  export class TuiInputDateModule {
11
11
  }
12
- TuiInputDateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- TuiInputDateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateModule, declarations: [TuiInputDateComponent, TuiInputDateDirective], imports: [CommonModule,
12
+ TuiInputDateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ TuiInputDateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateModule, declarations: [TuiInputDateComponent, TuiInputDateDirective], imports: [CommonModule,
14
14
  TextMaskModule,
15
15
  PolymorpheusModule,
16
16
  TuiWrapperModule,
@@ -23,7 +23,7 @@ TuiInputDateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
23
23
  TuiValueAccessorModule,
24
24
  TuiLetModule,
25
25
  TuiTextfieldControllerModule], exports: [TuiInputDateComponent, TuiInputDateDirective, TuiTextfieldComponent] });
26
- TuiInputDateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateModule, imports: [[
26
+ TuiInputDateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateModule, imports: [[
27
27
  CommonModule,
28
28
  TextMaskModule,
29
29
  PolymorpheusModule,
@@ -38,7 +38,7 @@ TuiInputDateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", vers
38
38
  TuiLetModule,
39
39
  TuiTextfieldControllerModule,
40
40
  ]] });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateModule, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateModule, decorators: [{
42
42
  type: NgModule,
43
43
  args: [{
44
44
  imports: [
@@ -214,8 +214,8 @@ export class TuiInputDateRangeComponent extends AbstractTuiNullableControl {
214
214
  return `${dateFiller}${RANGE_SEPARATOR_CHAR}${dateFiller}`;
215
215
  }
216
216
  }
217
- TuiInputDateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateRangeComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: Injector }, { token: TUI_IS_MOBILE }, { token: TuiDialogService }, { token: TUI_MOBILE_CALENDAR, optional: true }, { token: TUI_TEXTFIELD_SIZE }, { token: TUI_DATE_FORMAT }, { token: TUI_DATE_SEPARATOR }, { token: TUI_DATE_TEXTS }, { token: TUI_DATE_RANGE_VALUE_TRANSFORMER, optional: true }, { token: TUI_INPUT_DATE_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
218
- TuiInputDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiInputDateRangeComponent, selector: "tui-input-date-range", inputs: { disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", defaultViewedMonth: "defaultViewedMonth", items: "items", min: "min", max: "max", minLength: "minLength", maxLength: "maxLength" }, host: { listeners: { "click": "onClick()" } }, providers: [
217
+ TuiInputDateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateRangeComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: Injector }, { token: TUI_IS_MOBILE }, { token: TuiDialogService }, { token: TUI_MOBILE_CALENDAR, optional: true }, { token: TUI_TEXTFIELD_SIZE }, { token: TUI_DATE_FORMAT }, { token: TUI_DATE_SEPARATOR }, { token: TUI_DATE_TEXTS }, { token: TUI_DATE_RANGE_VALUE_TRANSFORMER, optional: true }, { token: TUI_INPUT_DATE_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
218
+ TuiInputDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputDateRangeComponent, selector: "tui-input-date-range", inputs: { disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", defaultViewedMonth: "defaultViewedMonth", items: "items", min: "min", max: "max", minLength: "minLength", maxLength: "maxLength" }, host: { listeners: { "click": "onClick()" } }, providers: [
219
219
  tuiAsFocusableItemAccessor(TuiInputDateRangeComponent),
220
220
  tuiAsControl(TuiInputDateRangeComponent),
221
221
  tuiDateStreamWithTransformer(TUI_DATE_RANGE_VALUE_TRANSFORMER),
@@ -244,7 +244,7 @@ __decorate([
244
244
  __decorate([
245
245
  tuiDefaultProp()
246
246
  ], TuiInputDateRangeComponent.prototype, "maxLength", void 0);
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateRangeComponent, decorators: [{
247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateRangeComponent, decorators: [{
248
248
  type: Component,
249
249
  args: [{
250
250
  selector: 'tui-input-date-range',
@@ -17,9 +17,9 @@ export class TuiInputDateRangeDirective extends AbstractTuiTextfieldHost {
17
17
  }
18
18
  }
19
19
  }
20
- TuiInputDateRangeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateRangeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
21
- TuiInputDateRangeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiInputDateRangeDirective, selector: "tui-input-date-range", providers: [tuiAsTextfieldHost(TuiInputDateRangeDirective)], usesInheritance: true, ngImport: i0 });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateRangeDirective, decorators: [{
20
+ TuiInputDateRangeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateRangeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
21
+ TuiInputDateRangeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputDateRangeDirective, selector: "tui-input-date-range", providers: [tuiAsTextfieldHost(TuiInputDateRangeDirective)], usesInheritance: true, ngImport: i0 });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateRangeDirective, decorators: [{
23
23
  type: Directive,
24
24
  args: [{
25
25
  selector: 'tui-input-date-range',
@@ -10,8 +10,8 @@ import { TuiInputDateRangeDirective } from './input-date-range.directive';
10
10
  import * as i0 from "@angular/core";
11
11
  export class TuiInputDateRangeModule {
12
12
  }
13
- TuiInputDateRangeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateRangeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- TuiInputDateRangeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateRangeModule, declarations: [TuiInputDateRangeComponent, TuiInputDateRangeDirective], imports: [CommonModule,
13
+ TuiInputDateRangeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateRangeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ TuiInputDateRangeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateRangeModule, declarations: [TuiInputDateRangeComponent, TuiInputDateRangeDirective], imports: [CommonModule,
15
15
  TextMaskModule,
16
16
  TuiActiveZoneModule,
17
17
  TuiLetModule,
@@ -25,7 +25,7 @@ TuiInputDateRangeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
25
25
  TuiValueAccessorModule], exports: [TuiInputDateRangeComponent,
26
26
  TuiInputDateRangeDirective,
27
27
  TuiTextfieldComponent] });
28
- TuiInputDateRangeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateRangeModule, imports: [[
28
+ TuiInputDateRangeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateRangeModule, imports: [[
29
29
  CommonModule,
30
30
  TextMaskModule,
31
31
  TuiActiveZoneModule,
@@ -39,7 +39,7 @@ TuiInputDateRangeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
39
39
  TuiCalendarRangeModule,
40
40
  TuiValueAccessorModule,
41
41
  ]] });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateRangeModule, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateRangeModule, decorators: [{
43
43
  type: NgModule,
44
44
  args: [{
45
45
  imports: [
@@ -196,8 +196,8 @@ export class TuiInputDateTimeComponent extends AbstractTuiControl {
196
196
  return TuiTime.fromAbsoluteMilliseconds(tuiClamp(ms, min, max));
197
197
  }
198
198
  }
199
- TuiInputDateTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateTimeComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_TEXTFIELD_SIZE }, { token: TUI_DATE_FORMAT }, { token: TUI_DATE_SEPARATOR }, { token: TUI_TIME_TEXTS }, { token: TUI_DATE_TEXTS }, { token: TUI_DATE_TIME_VALUE_TRANSFORMER, optional: true }, { token: TUI_INPUT_DATE_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
200
- TuiInputDateTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiInputDateTimeComponent, selector: "tui-input-date-time", inputs: { min: "min", max: "max", disabledItemHandler: "disabledItemHandler", defaultActiveYearMonth: "defaultActiveYearMonth", timeMode: "timeMode" }, host: { listeners: { "click": "onClick()" } }, providers: [
199
+ TuiInputDateTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateTimeComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_TEXTFIELD_SIZE }, { token: TUI_DATE_FORMAT }, { token: TUI_DATE_SEPARATOR }, { token: TUI_TIME_TEXTS }, { token: TUI_DATE_TEXTS }, { token: TUI_DATE_TIME_VALUE_TRANSFORMER, optional: true }, { token: TUI_INPUT_DATE_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
200
+ TuiInputDateTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputDateTimeComponent, selector: "tui-input-date-time", inputs: { min: "min", max: "max", disabledItemHandler: "disabledItemHandler", defaultActiveYearMonth: "defaultActiveYearMonth", timeMode: "timeMode" }, host: { listeners: { "click": "onClick()" } }, providers: [
201
201
  tuiAsFocusableItemAccessor(TuiInputDateTimeComponent),
202
202
  tuiAsControl(TuiInputDateTimeComponent),
203
203
  tuiDateStreamWithTransformer(TUI_DATE_TIME_VALUE_TRANSFORMER),
@@ -223,7 +223,7 @@ __decorate([
223
223
  __decorate([
224
224
  tuiPure
225
225
  ], TuiInputDateTimeComponent.prototype, "getDateTimeString", null);
226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateTimeComponent, decorators: [{
226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateTimeComponent, decorators: [{
227
227
  type: Component,
228
228
  args: [{
229
229
  selector: 'tui-input-date-time',
@@ -12,9 +12,9 @@ export class TuiInputDateTimeDirective extends AbstractTuiTextfieldHost {
12
12
  input.inputMode = 'numeric';
13
13
  }
14
14
  }
15
- TuiInputDateTimeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateTimeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
16
- TuiInputDateTimeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiInputDateTimeDirective, selector: "tui-input-date-time", providers: [tuiAsTextfieldHost(TuiInputDateTimeDirective)], usesInheritance: true, ngImport: i0 });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateTimeDirective, decorators: [{
15
+ TuiInputDateTimeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateTimeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
16
+ TuiInputDateTimeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputDateTimeDirective, selector: "tui-input-date-time", providers: [tuiAsTextfieldHost(TuiInputDateTimeDirective)], usesInheritance: true, ngImport: i0 });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateTimeDirective, decorators: [{
18
18
  type: Directive,
19
19
  args: [{
20
20
  selector: 'tui-input-date-time',
@@ -9,8 +9,8 @@ import { TuiInputDateTimeDirective } from './input-date-time.directive';
9
9
  import * as i0 from "@angular/core";
10
10
  export class TuiInputDateTimeModule {
11
11
  }
12
- TuiInputDateTimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- TuiInputDateTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateTimeModule, declarations: [TuiInputDateTimeComponent, TuiInputDateTimeDirective], imports: [CommonModule,
12
+ TuiInputDateTimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ TuiInputDateTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateTimeModule, declarations: [TuiInputDateTimeComponent, TuiInputDateTimeDirective], imports: [CommonModule,
14
14
  TextMaskModule,
15
15
  PolymorpheusModule,
16
16
  TuiWrapperModule,
@@ -24,7 +24,7 @@ TuiInputDateTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
24
24
  TuiTextfieldControllerModule], exports: [TuiInputDateTimeComponent,
25
25
  TuiInputDateTimeDirective,
26
26
  TuiTextfieldComponent] });
27
- TuiInputDateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateTimeModule, imports: [[
27
+ TuiInputDateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateTimeModule, imports: [[
28
28
  CommonModule,
29
29
  TextMaskModule,
30
30
  PolymorpheusModule,
@@ -38,7 +38,7 @@ TuiInputDateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
38
38
  TuiValueAccessorModule,
39
39
  TuiTextfieldControllerModule,
40
40
  ]] });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputDateTimeModule, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputDateTimeModule, decorators: [{
42
42
  type: NgModule,
43
43
  args: [{
44
44
  imports: [
@@ -165,8 +165,8 @@ export class TuiInputFilesComponent extends AbstractTuiNullableControl {
165
165
  this.reject.emit(this.computedMultiple ? rejectedFiles : rejectedFiles[0]);
166
166
  }
167
167
  }
168
- TuiInputFilesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputFilesComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_IS_MOBILE }, { token: TUI_INPUT_FILE_TEXTS }, { token: TUI_INPUT_FILES_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
169
- TuiInputFilesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiInputFilesComponent, selector: "tui-input-files", inputs: { link: "link", label: "label", accept: "accept", multiple: "multiple", size: "size", maxFileSize: "maxFileSize" }, outputs: { reject: "reject" }, host: { listeners: { "focusin": "onFocused(true)", "focusout": "onFocused(false)", "change": "onFilesSelected()" } }, providers: [MODE_PROVIDER, tuiAsFocusableItemAccessor(TuiInputFilesComponent)], queries: [{ propertyName: "nativeInput", first: true, predicate: TuiInputFilesDirective, descendants: true, read: TuiInputFilesDirective }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "formatRejection", first: true, predicate: ["formatRejection"], descendants: true }, { propertyName: "maxSizeRejection", first: true, predicate: ["maxSizeRejection"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n tuiWrapper\n appearance=\"input-file\"\n class=\"t-wrapper\"\n [class._mobile]=\"isMobile\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover || fileDragged || null\"\n [active]=\"pseudoActive\"\n [disabled]=\"computedDisabled\"\n>\n <label\n automation-id=\"tui-input-file__label\"\n class=\"t-label\"\n (tuiDroppableDropped)=\"onDropped($event)\"\n (tuiDroppableDragOverChange)=\"onDragOver($event)\"\n (mousedown.prevent.silent)=\"(0)\"\n >\n <a tuiLink>\n <ng-container *polymorpheusOutlet=\"computedLink$ | async as text\">\n {{ text }}\n </ng-container>\n </a>\n <ng-container *polymorpheusOutlet=\"computedLabel$ | async as text\">\n {{ text }}\n </ng-container>\n <ng-container *ngIf=\"!readOnly && !computedDisabled\">\n <ng-content select=\"input\"></ng-content>\n <input\n #input\n type=\"file\"\n class=\"t-native\"\n [id]=\"id\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [tuiFocusable]=\"focusable\"\n />\n </ng-container>\n </label>\n</div>\n\n<ng-template #formatRejection>\n {{ (inputFileTexts$ | async)?.formatRejectionReason || '' }}\n</ng-template>\n\n<ng-template #maxSizeRejection>\n {{ maxFileSize | tuiMaxSizeRejectionError | async }}\n</ng-template>\n", styles: ["tui-input-files{display:block}tui-input-files .t-native{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}tui-input-files .t-native::-webkit-file-upload-button{display:none}tui-input-files .t-native+.t-native{display:none}tui-input-files .t-label{text-align:center}[tuiWrapper][data-appearance=input-file]{display:flex;background:transparent;font:var(--tui-font-text-m);word-wrap:break-word;color:var(--tui-text-02);flex:1;justify-content:center;align-items:center;min-height:var(--tui-height-l);border-radius:var(--tui-radius-m);padding:1rem .5rem;box-sizing:border-box}[tuiWrapper][data-appearance=input-file]:after{border:1px dashed;color:var(--tui-link)}[tuiWrapper][data-appearance=input-file]._mobile:after{border:1px solid}[tuiWrapper][data-appearance=input-file]:disabled:disabled,[tuiWrapper][data-appearance=input-file][data-state=disabled][data-state=disabled]{opacity:var(--tui-disabled-opacity);pointer-events:none}[tuiWrapper][data-appearance=input-file]:disabled:disabled:after,[tuiWrapper][data-appearance=input-file][data-state=disabled][data-state=disabled]:after{color:var(--tui-text-03)}[tuiWrapper][data-appearance=input-file]:focus-visible:focus-visible:after{border-style:solid;border-width:2px;color:var(--tui-focus)}[tuiWrapper][data-appearance=input-file]._focused._focused:after{border-style:solid;border-width:2px;color:var(--tui-focus)}[tuiWrapper][data-appearance=input-file][data-mode=onDark]{color:var(--tui-text-01-night)}[tuiWrapper][data-appearance=input-file][data-mode=onDark]:after{color:var(--tui-text-01-night)}[tuiWrapper][data-appearance=input-file][data-mode=onDark]:focus-visible:focus-visible:after{color:var(--tui-text-01-night)}[tuiWrapper][data-appearance=input-file][data-mode=onDark]._focused._focused:after{color:var(--tui-text-01-night)}@media (hover: hover){[tuiWrapper][data-appearance=input-file][data-mode=onDark]:hover:not(._no-hover),[tuiWrapper][data-appearance=input-file][data-mode=onDark][data-state=hover]{background:var(--tui-clear-inverse-hover)}[tuiWrapper][data-appearance=input-file][data-mode=onDark]:hover:not(._no-hover):after,[tuiWrapper][data-appearance=input-file][data-mode=onDark][data-state=hover]:after{color:var(--tui-text-03-night)}}[tuiWrapper][data-appearance=input-file][data-mode=onDark]:active:not(._no-active),[tuiWrapper][data-appearance=input-file][data-mode=onDark][data-state=active],[tuiWrapper][data-appearance=input-file][data-mode=onDark][data-state=active]:hover{background:var(--tui-clear-inverse-active)}[tuiWrapper][data-appearance=input-file][data-mode=onDark]:active:not(._no-active):after,[tuiWrapper][data-appearance=input-file][data-mode=onDark][data-state=active]:after,[tuiWrapper][data-appearance=input-file][data-mode=onDark][data-state=active]:hover:after{color:var(--tui-text-03-night)}[tuiWrapper][data-appearance=input-file][data-mode=onLight]{color:var(--tui-text-01)}[tuiWrapper][data-appearance=input-file][data-mode=onLight]:after{color:var(--tui-text-01)}@media (hover: hover){[tuiWrapper][data-appearance=input-file][data-mode=onLight]:hover:not(._no-hover),[tuiWrapper][data-appearance=input-file][data-mode=onLight][data-state=hover]{background:var(--tui-clear-hover)}[tuiWrapper][data-appearance=input-file][data-mode=onLight]:hover:not(._no-hover):after,[tuiWrapper][data-appearance=input-file][data-mode=onLight][data-state=hover]:after{color:var(--tui-text-03)}}[tuiWrapper][data-appearance=input-file][data-mode=onLight]:active:not(._no-active),[tuiWrapper][data-appearance=input-file][data-mode=onLight][data-state=active],[tuiWrapper][data-appearance=input-file][data-mode=onLight][data-state=active]:hover{background:var(--tui-clear-active)}[tuiWrapper][data-appearance=input-file][data-mode=onLight]:active:not(._no-active):after,[tuiWrapper][data-appearance=input-file][data-mode=onLight][data-state=active]:after,[tuiWrapper][data-appearance=input-file][data-mode=onLight][data-state=active]:hover:after{color:var(--tui-text-03)}@media (hover: hover){[tuiWrapper][data-appearance=input-file]:hover:not(._no-hover),[tuiWrapper][data-appearance=input-file][data-state=hover]{background:var(--tui-secondary)}[tuiWrapper][data-appearance=input-file]:hover:not(._no-hover):after,[tuiWrapper][data-appearance=input-file][data-state=hover]:after{color:var(--tui-link-hover)}}[tuiWrapper][data-appearance=input-file]:active:not(._no-active),[tuiWrapper][data-appearance=input-file][data-state=active],[tuiWrapper][data-appearance=input-file][data-state=active]:hover{background:var(--tui-secondary-hover)}\n"], components: [{ type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }], directives: [{ type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i2.TuiDroppableDirective, selector: "[tuiDroppableDropped], [tuiDroppableDragOverChange]", outputs: ["tuiDroppableDropped", "tuiDroppableDragOverChange"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }], pipes: { "async": i4.AsyncPipe, "tuiMaxSizeRejectionError": i5.TuiMaxSizeRejectionErrorPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
168
+ TuiInputFilesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputFilesComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_IS_MOBILE }, { token: TUI_INPUT_FILE_TEXTS }, { token: TUI_INPUT_FILES_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
169
+ TuiInputFilesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputFilesComponent, selector: "tui-input-files", inputs: { link: "link", label: "label", accept: "accept", multiple: "multiple", size: "size", maxFileSize: "maxFileSize" }, outputs: { reject: "reject" }, host: { listeners: { "focusin": "onFocused(true)", "focusout": "onFocused(false)", "change": "onFilesSelected()" } }, providers: [MODE_PROVIDER, tuiAsFocusableItemAccessor(TuiInputFilesComponent)], queries: [{ propertyName: "nativeInput", first: true, predicate: TuiInputFilesDirective, descendants: true, read: TuiInputFilesDirective }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "formatRejection", first: true, predicate: ["formatRejection"], descendants: true }, { propertyName: "maxSizeRejection", first: true, predicate: ["maxSizeRejection"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n tuiWrapper\n appearance=\"input-file\"\n class=\"t-wrapper\"\n [class._mobile]=\"isMobile\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover || fileDragged || null\"\n [active]=\"pseudoActive\"\n [disabled]=\"computedDisabled\"\n>\n <label\n automation-id=\"tui-input-file__label\"\n class=\"t-label\"\n (tuiDroppableDropped)=\"onDropped($event)\"\n (tuiDroppableDragOverChange)=\"onDragOver($event)\"\n (mousedown.prevent.silent)=\"(0)\"\n >\n <a tuiLink>\n <ng-container *polymorpheusOutlet=\"computedLink$ | async as text\">\n {{ text }}\n </ng-container>\n </a>\n <ng-container *polymorpheusOutlet=\"computedLabel$ | async as text\">\n {{ text }}\n </ng-container>\n <ng-container *ngIf=\"!readOnly && !computedDisabled\">\n <ng-content select=\"input\"></ng-content>\n <input\n #input\n type=\"file\"\n class=\"t-native\"\n [id]=\"id\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [tuiFocusable]=\"focusable\"\n />\n </ng-container>\n </label>\n</div>\n\n<ng-template #formatRejection>\n {{ (inputFileTexts$ | async)?.formatRejectionReason || '' }}\n</ng-template>\n\n<ng-template #maxSizeRejection>\n {{ maxFileSize | tuiMaxSizeRejectionError | async }}\n</ng-template>\n", styles: ["tui-input-files{display:block}tui-input-files .t-native{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}tui-input-files .t-native::-webkit-file-upload-button{display:none}tui-input-files .t-native+.t-native{display:none}tui-input-files .t-label{text-align:center}[tuiWrapper][data-appearance=input-file]{display:flex;background:transparent;font:var(--tui-font-text-m);word-wrap:break-word;color:var(--tui-text-02);flex:1;justify-content:center;align-items:center;min-height:var(--tui-height-l);border-radius:var(--tui-radius-m);padding:1rem .5rem;box-sizing:border-box}[tuiWrapper][data-appearance=input-file]:after{border:1px dashed;color:var(--tui-link)}[tuiWrapper][data-appearance=input-file]._mobile:after{border:1px solid}[tuiWrapper][data-appearance=input-file]:disabled:disabled,[tuiWrapper][data-appearance=input-file][data-state=disabled][data-state=disabled]{opacity:var(--tui-disabled-opacity);pointer-events:none}[tuiWrapper][data-appearance=input-file]:disabled:disabled:after,[tuiWrapper][data-appearance=input-file][data-state=disabled][data-state=disabled]:after{color:var(--tui-text-03)}[tuiWrapper][data-appearance=input-file]:focus-visible:focus-visible:after{border-style:solid;border-width:2px;color:var(--tui-focus)}[tuiWrapper][data-appearance=input-file]._focused._focused:after{border-style:solid;border-width:2px;color:var(--tui-focus)}[tuiWrapper][data-appearance=input-file][data-mode=onDark]{color:var(--tui-text-01-night)}[tuiWrapper][data-appearance=input-file][data-mode=onDark]:after{color:var(--tui-text-01-night)}[tuiWrapper][data-appearance=input-file][data-mode=onDark]:focus-visible:focus-visible:after{color:var(--tui-text-01-night)}[tuiWrapper][data-appearance=input-file][data-mode=onDark]._focused._focused:after{color:var(--tui-text-01-night)}@media (hover: hover){[tuiWrapper][data-appearance=input-file][data-mode=onDark]:hover:not(._no-hover),[tuiWrapper][data-appearance=input-file][data-mode=onDark][data-state=hover]{background:var(--tui-clear-inverse-hover)}[tuiWrapper][data-appearance=input-file][data-mode=onDark]:hover:not(._no-hover):after,[tuiWrapper][data-appearance=input-file][data-mode=onDark][data-state=hover]:after{color:var(--tui-text-03-night)}}[tuiWrapper][data-appearance=input-file][data-mode=onDark]:active:not(._no-active),[tuiWrapper][data-appearance=input-file][data-mode=onDark][data-state=active],[tuiWrapper][data-appearance=input-file][data-mode=onDark][data-state=active]:hover{background:var(--tui-clear-inverse-active)}[tuiWrapper][data-appearance=input-file][data-mode=onDark]:active:not(._no-active):after,[tuiWrapper][data-appearance=input-file][data-mode=onDark][data-state=active]:after,[tuiWrapper][data-appearance=input-file][data-mode=onDark][data-state=active]:hover:after{color:var(--tui-text-03-night)}[tuiWrapper][data-appearance=input-file][data-mode=onLight]{color:var(--tui-text-01)}[tuiWrapper][data-appearance=input-file][data-mode=onLight]:after{color:var(--tui-text-01)}@media (hover: hover){[tuiWrapper][data-appearance=input-file][data-mode=onLight]:hover:not(._no-hover),[tuiWrapper][data-appearance=input-file][data-mode=onLight][data-state=hover]{background:var(--tui-clear-hover)}[tuiWrapper][data-appearance=input-file][data-mode=onLight]:hover:not(._no-hover):after,[tuiWrapper][data-appearance=input-file][data-mode=onLight][data-state=hover]:after{color:var(--tui-text-03)}}[tuiWrapper][data-appearance=input-file][data-mode=onLight]:active:not(._no-active),[tuiWrapper][data-appearance=input-file][data-mode=onLight][data-state=active],[tuiWrapper][data-appearance=input-file][data-mode=onLight][data-state=active]:hover{background:var(--tui-clear-active)}[tuiWrapper][data-appearance=input-file][data-mode=onLight]:active:not(._no-active):after,[tuiWrapper][data-appearance=input-file][data-mode=onLight][data-state=active]:after,[tuiWrapper][data-appearance=input-file][data-mode=onLight][data-state=active]:hover:after{color:var(--tui-text-03)}@media (hover: hover){[tuiWrapper][data-appearance=input-file]:hover:not(._no-hover),[tuiWrapper][data-appearance=input-file][data-state=hover]{background:var(--tui-secondary)}[tuiWrapper][data-appearance=input-file]:hover:not(._no-hover):after,[tuiWrapper][data-appearance=input-file][data-state=hover]:after{color:var(--tui-link-hover)}}[tuiWrapper][data-appearance=input-file]:active:not(._no-active),[tuiWrapper][data-appearance=input-file][data-state=active],[tuiWrapper][data-appearance=input-file][data-state=active]:hover{background:var(--tui-secondary-hover)}\n"], components: [{ type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }], directives: [{ type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i2.TuiDroppableDirective, selector: "[tuiDroppableDropped], [tuiDroppableDragOverChange]", outputs: ["tuiDroppableDropped", "tuiDroppableDragOverChange"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }], pipes: { "async": i4.AsyncPipe, "tuiMaxSizeRejectionError": i5.TuiMaxSizeRejectionErrorPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
170
170
  __decorate([
171
171
  tuiDefaultProp()
172
172
  ], TuiInputFilesComponent.prototype, "link", void 0);
@@ -194,7 +194,7 @@ __decorate([
194
194
  __decorate([
195
195
  tuiPure
196
196
  ], TuiInputFilesComponent.prototype, "getValueArray", null);
197
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputFilesComponent, decorators: [{
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputFilesComponent, decorators: [{
198
198
  type: Component,
199
199
  args: [{
200
200
  selector: 'tui-input-files',
@@ -35,9 +35,9 @@ export class TuiInputFilesDirective {
35
35
  return this.elementRef.nativeElement;
36
36
  }
37
37
  }
38
- TuiInputFilesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputFilesDirective, deps: [{ token: TuiInputFilesComponent }, { token: ElementRef }, { token: TuiIdService }, { token: TUI_INPUT_FILES_OPTIONS }], target: i0.ɵɵFactoryTarget.Directive });
39
- TuiInputFilesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiInputFilesDirective, selector: "input[tuiInputFiles]", host: { attributes: { "type": "file" }, properties: { "tabIndex": "this.tabIndex", "id": "this.id", "accept": "this.accept", "multiple": "this.multiple", "capture": "this.capture" }, classAttribute: "t-native" }, ngImport: i0 });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputFilesDirective, decorators: [{
38
+ TuiInputFilesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputFilesDirective, deps: [{ token: TuiInputFilesComponent }, { token: ElementRef }, { token: TuiIdService }, { token: TUI_INPUT_FILES_OPTIONS }], target: i0.ɵɵFactoryTarget.Directive });
39
+ TuiInputFilesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputFilesDirective, selector: "input[tuiInputFiles]", host: { attributes: { "type": "file" }, properties: { "tabIndex": "this.tabIndex", "id": "this.id", "accept": "this.accept", "multiple": "this.multiple", "capture": "this.capture" }, classAttribute: "t-native" }, ngImport: i0 });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputFilesDirective, decorators: [{
41
41
  type: Directive,
42
42
  args: [{
43
43
  selector: 'input[tuiInputFiles]',
@@ -10,8 +10,8 @@ import { TuiMaxSizeRejectionErrorPipe } from './max-size-rejection-error.pipe';
10
10
  import * as i0 from "@angular/core";
11
11
  export class TuiInputFilesModule {
12
12
  }
13
- TuiInputFilesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputFilesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- TuiInputFilesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputFilesModule, declarations: [TuiInputFilesComponent,
13
+ TuiInputFilesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputFilesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ TuiInputFilesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputFilesModule, declarations: [TuiInputFilesComponent,
15
15
  TuiInputFilesDirective,
16
16
  TuiMaxSizeRejectionErrorPipe], imports: [CommonModule,
17
17
  PolymorpheusModule,
@@ -33,7 +33,7 @@ TuiInputFilesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
33
33
  TuiFilesComponent,
34
34
  TuiFileComponent,
35
35
  TuiItemDirective] });
36
- TuiInputFilesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputFilesModule, imports: [[
36
+ TuiInputFilesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputFilesModule, imports: [[
37
37
  CommonModule,
38
38
  PolymorpheusModule,
39
39
  TuiLetModule,
@@ -51,7 +51,7 @@ TuiInputFilesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
51
51
  TuiGroupModule,
52
52
  TuiFilesModule,
53
53
  ]] });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputFilesModule, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputFilesModule, decorators: [{
55
55
  type: NgModule,
56
56
  args: [{
57
57
  imports: [
@@ -13,9 +13,9 @@ export class TuiMaxSizeRejectionErrorPipe {
13
13
  return combineLatest([this.inputFileTexts$, this.units$]).pipe(map(([{ maxSizeRejectionReason }, units]) => maxSizeRejectionReason + tuiFormatSize(units, maxFileSize)));
14
14
  }
15
15
  }
16
- TuiMaxSizeRejectionErrorPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiMaxSizeRejectionErrorPipe, deps: [{ token: TUI_INPUT_FILE_TEXTS }, { token: TUI_DIGITAL_INFORMATION_UNITS }], target: i0.ɵɵFactoryTarget.Pipe });
17
- TuiMaxSizeRejectionErrorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiMaxSizeRejectionErrorPipe, name: "tuiMaxSizeRejectionError" });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiMaxSizeRejectionErrorPipe, decorators: [{
16
+ TuiMaxSizeRejectionErrorPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMaxSizeRejectionErrorPipe, deps: [{ token: TUI_INPUT_FILE_TEXTS }, { token: TUI_DIGITAL_INFORMATION_UNITS }], target: i0.ɵɵFactoryTarget.Pipe });
17
+ TuiMaxSizeRejectionErrorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMaxSizeRejectionErrorPipe, name: "tuiMaxSizeRejectionError" });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMaxSizeRejectionErrorPipe, decorators: [{
19
19
  type: Pipe,
20
20
  args: [{ name: `tuiMaxSizeRejectionError` }]
21
21
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{