@evotor-dev/ui-kit 6.0.1 → 6.1.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 (690) hide show
  1. package/.releaserc.json +6 -6
  2. package/README.md +117 -117
  3. package/assets/color-icons/404.svg +11 -11
  4. package/assets/color-icons/alert-circle.svg +6 -6
  5. package/assets/color-icons/alert-triangle.svg +6 -6
  6. package/assets/color-icons/application.svg +6 -6
  7. package/assets/color-icons/backup.svg +17 -17
  8. package/assets/color-icons/bank.svg +12 -12
  9. package/assets/color-icons/barcode.svg +12 -12
  10. package/assets/color-icons/big-data.svg +17 -17
  11. package/assets/color-icons/biil.svg +10 -10
  12. package/assets/color-icons/bill.svg +10 -10
  13. package/assets/color-icons/blank.svg +10 -10
  14. package/assets/color-icons/card-attention.svg +20 -20
  15. package/assets/color-icons/card.svg +9 -9
  16. package/assets/color-icons/cards.svg +18 -18
  17. package/assets/color-icons/cash.svg +19 -19
  18. package/assets/color-icons/check.svg +6 -6
  19. package/assets/color-icons/clock.svg +6 -6
  20. package/assets/color-icons/cloud.svg +6 -6
  21. package/assets/color-icons/code.svg +14 -14
  22. package/assets/color-icons/comment-approved.svg +20 -20
  23. package/assets/color-icons/comment-declined.svg +19 -19
  24. package/assets/color-icons/comment.svg +20 -20
  25. package/assets/color-icons/data-matrix-znak.svg +23 -23
  26. package/assets/color-icons/data-matrix.svg +29 -29
  27. package/assets/color-icons/document-fail.svg +14 -14
  28. package/assets/color-icons/document-signed.svg +15 -15
  29. package/assets/color-icons/document.svg +11 -11
  30. package/assets/color-icons/evotor-payment.svg +17 -17
  31. package/assets/color-icons/gift.svg +17 -17
  32. package/assets/color-icons/highlight.svg +21 -21
  33. package/assets/color-icons/hr.svg +22 -22
  34. package/assets/color-icons/info-circle.svg +6 -6
  35. package/assets/color-icons/link.svg +11 -11
  36. package/assets/color-icons/mail-new.svg +10 -10
  37. package/assets/color-icons/market.svg +13 -13
  38. package/assets/color-icons/money.svg +17 -17
  39. package/assets/color-icons/news.svg +10 -10
  40. package/assets/color-icons/not-found.svg +15 -15
  41. package/assets/color-icons/number-1.svg +6 -6
  42. package/assets/color-icons/number-2.svg +6 -6
  43. package/assets/color-icons/number-3.svg +6 -6
  44. package/assets/color-icons/number.svg +6 -6
  45. package/assets/color-icons/numbers.svg +13 -13
  46. package/assets/color-icons/ok.svg +6 -6
  47. package/assets/color-icons/person.svg +9 -9
  48. package/assets/color-icons/phone.svg +13 -13
  49. package/assets/color-icons/piechart.svg +15 -15
  50. package/assets/color-icons/power.svg +10 -10
  51. package/assets/color-icons/production.svg +24 -24
  52. package/assets/color-icons/purse.svg +12 -12
  53. package/assets/color-icons/qr.svg +6 -6
  54. package/assets/color-icons/rating.svg +19 -19
  55. package/assets/color-icons/recommended.svg +12 -12
  56. package/assets/color-icons/sbp.svg +6 -6
  57. package/assets/color-icons/settings.svg +6 -6
  58. package/assets/color-icons/shelf.svg +11 -11
  59. package/assets/color-icons/sim-activated.svg +20 -20
  60. package/assets/color-icons/sim-cancel.svg +19 -19
  61. package/assets/color-icons/sim-normal.svg +16 -16
  62. package/assets/color-icons/sim-waiting.svg +19 -19
  63. package/assets/color-icons/software-check.svg +16 -16
  64. package/assets/color-icons/software-fail.svg +15 -15
  65. package/assets/color-icons/software-support.svg +11 -11
  66. package/assets/color-icons/software.svg +11 -11
  67. package/assets/color-icons/stop.svg +13 -13
  68. package/assets/color-icons/tap-on-phone.svg +16 -16
  69. package/assets/color-icons/telegram.svg +10 -10
  70. package/assets/color-icons/terminal-fail.svg +14 -14
  71. package/assets/color-icons/terminal-free.svg +15 -15
  72. package/assets/color-icons/terminal-off.svg +14 -14
  73. package/assets/color-icons/terminal-success.svg +14 -14
  74. package/assets/color-icons/terminal.svg +13 -13
  75. package/assets/color-icons/traffic-light-green.svg +9 -9
  76. package/assets/color-icons/traffic-light-red.svg +9 -9
  77. package/assets/color-icons/traffic-light-yellow.svg +9 -9
  78. package/assets/color-icons/usb.svg +23 -23
  79. package/assets/color-icons/version-check.svg +15 -15
  80. package/assets/color-icons/version-fail.svg +14 -14
  81. package/assets/color-icons/version.svg +10 -10
  82. package/assets/color-icons/wait.svg +6 -6
  83. package/assets/color-icons/waiting.svg +15 -15
  84. package/assets/color-icons/warning.svg +6 -6
  85. package/assets/color-icons/wi-fi.svg +5 -5
  86. package/assets/color-icons/wifi.svg +5 -5
  87. package/bundles/evotor-dev-ui-kit-icons-category.umd.js +38 -38
  88. package/bundles/evotor-dev-ui-kit-icons-emotions.umd.js +18 -18
  89. package/bundles/evotor-dev-ui-kit-icons-header.umd.js +28 -28
  90. package/bundles/evotor-dev-ui-kit-icons-info.umd.js +40 -40
  91. package/bundles/evotor-dev-ui-kit-icons-navigation.umd.js +56 -56
  92. package/bundles/evotor-dev-ui-kit-icons-navigation.umd.js.map +1 -1
  93. package/bundles/evotor-dev-ui-kit-icons-side-menu.umd.js +64 -64
  94. package/bundles/evotor-dev-ui-kit-icons-side-menu.umd.js.map +1 -1
  95. package/bundles/evotor-dev-ui-kit-icons-system.umd.js +338 -332
  96. package/bundles/evotor-dev-ui-kit-icons-system.umd.js.map +1 -1
  97. package/bundles/evotor-dev-ui-kit-icons.umd.js +568 -564
  98. package/bundles/evotor-dev-ui-kit-icons.umd.js.map +1 -1
  99. package/bundles/evotor-dev-ui-kit.umd.js +8266 -8261
  100. package/bundles/evotor-dev-ui-kit.umd.js.map +1 -1
  101. package/esm2015/evotor-dev-ui-kit.js +4 -4
  102. package/esm2015/icons/category/evotor-dev-ui-kit-icons-category.js +4 -4
  103. package/esm2015/icons/category/index.js +37 -37
  104. package/esm2015/icons/emotions/evotor-dev-ui-kit-icons-emotions.js +4 -4
  105. package/esm2015/icons/emotions/index.js +17 -17
  106. package/esm2015/icons/evotor-dev-ui-kit-icons.js +4 -4
  107. package/esm2015/icons/header/evotor-dev-ui-kit-icons-header.js +4 -4
  108. package/esm2015/icons/header/index.js +27 -27
  109. package/esm2015/icons/index.js +8 -8
  110. package/esm2015/icons/info/evotor-dev-ui-kit-icons-info.js +4 -4
  111. package/esm2015/icons/info/index.js +39 -39
  112. package/esm2015/icons/navigation/evotor-dev-ui-kit-icons-navigation.js +4 -4
  113. package/esm2015/icons/navigation/index.js +56 -56
  114. package/esm2015/icons/side-menu/evotor-dev-ui-kit-icons-side-menu.js +4 -4
  115. package/esm2015/icons/side-menu/index.js +64 -64
  116. package/esm2015/icons/system/evotor-dev-ui-kit-icons-system.js +4 -4
  117. package/esm2015/icons/system/index.js +336 -332
  118. package/esm2015/lib/common/Serializable.js +6 -6
  119. package/esm2015/lib/common/animations/expand.animation.js +28 -28
  120. package/esm2015/lib/common/animations/index.js +4 -4
  121. package/esm2015/lib/common/animations/sidebar.animation.js +10 -10
  122. package/esm2015/lib/common/animations/skip-initial-render.animation.js +3 -3
  123. package/esm2015/lib/common/collection/evo-collection-fabric.js +10 -10
  124. package/esm2015/lib/common/collection/evo-collection.js +7 -7
  125. package/esm2015/lib/common/collection/index.js +3 -3
  126. package/esm2015/lib/common/constants/css-breakpoints.js +9 -9
  127. package/esm2015/lib/common/constants/view-breakpoint-streams.js +24 -24
  128. package/esm2015/lib/common/evo-base-control.js +47 -47
  129. package/esm2015/lib/common/evo-control-state-manager/evo-control-state-manager.js +13 -13
  130. package/esm2015/lib/common/evo-control-state-manager/evo-control-state.interface.js +2 -2
  131. package/esm2015/lib/common/evo-control-state-manager/evo-control-states.enum.js +6 -6
  132. package/esm2015/lib/common/form-helper/form-helper.js +31 -31
  133. package/esm2015/lib/common/types/evo-color.js +2 -2
  134. package/esm2015/lib/common/types/evo-size.js +2 -2
  135. package/esm2015/lib/common/types/index.js +3 -3
  136. package/esm2015/lib/components/evo-accordion/evo-accordion-content/evo-accordion-content.component.js +36 -36
  137. package/esm2015/lib/components/evo-accordion/evo-accordion-panel/evo-accordion-panel.component.js +24 -24
  138. package/esm2015/lib/components/evo-accordion/evo-accordion-title/evo-accordion-title.component.js +62 -62
  139. package/esm2015/lib/components/evo-accordion/evo-accordion.component.js +23 -23
  140. package/esm2015/lib/components/evo-accordion/evo-accordion.module.js +66 -66
  141. package/esm2015/lib/components/evo-accordion/index.js +2 -2
  142. package/esm2015/lib/components/evo-accordion/public-api.js +6 -6
  143. package/esm2015/lib/components/evo-alert/evo-alert.component.js +83 -83
  144. package/esm2015/lib/components/evo-alert/evo-alert.module.js +29 -29
  145. package/esm2015/lib/components/evo-alert/index.js +2 -2
  146. package/esm2015/lib/components/evo-alert/public-api.js +3 -3
  147. package/esm2015/lib/components/evo-autocomplete/components/evo-autocomplete.component.js +364 -364
  148. package/esm2015/lib/components/evo-autocomplete/components/templates/evo-autocomplete-default-option.component.js +43 -43
  149. package/esm2015/lib/components/evo-autocomplete/evo-autocomplete.module.js +58 -58
  150. package/esm2015/lib/components/evo-autocomplete/helpers/switch-query-to-list.js +6 -6
  151. package/esm2015/lib/components/evo-autocomplete/index.js +2 -2
  152. package/esm2015/lib/components/evo-autocomplete/models/DaDataParty.js +28 -28
  153. package/esm2015/lib/components/evo-autocomplete/models/dadata.model.js +48 -48
  154. package/esm2015/lib/components/evo-autocomplete/public-api.js +7 -7
  155. package/esm2015/lib/components/evo-autocomplete/types/evo-autocomplete-size.js +2 -2
  156. package/esm2015/lib/components/evo-badge/evo-badge.component.js +45 -45
  157. package/esm2015/lib/components/evo-badge/evo-badge.module.js +28 -28
  158. package/esm2015/lib/components/evo-badge/index.js +3 -3
  159. package/esm2015/lib/components/evo-badge/public-api.js +3 -3
  160. package/esm2015/lib/components/evo-badge/types/evo-badge-color.js +2 -2
  161. package/esm2015/lib/components/evo-badge/types/evo-badge-size.js +2 -2
  162. package/esm2015/lib/components/evo-badge/types/index.js +3 -3
  163. package/esm2015/lib/components/evo-banner/evo-banner.component.js +116 -116
  164. package/esm2015/lib/components/evo-banner/evo-banner.module.js +27 -27
  165. package/esm2015/lib/components/evo-banner/index.js +2 -2
  166. package/esm2015/lib/components/evo-banner/public-api.js +3 -3
  167. package/esm2015/lib/components/evo-button/evo-button.component.js +87 -87
  168. package/esm2015/lib/components/evo-button/evo-button.module.js +26 -26
  169. package/esm2015/lib/components/evo-button/index.js +2 -2
  170. package/esm2015/lib/components/evo-button/public-api.js +3 -3
  171. package/esm2015/lib/components/evo-checkbox/evo-checkbox.component.js +87 -87
  172. package/esm2015/lib/components/evo-checkbox/evo-checkbox.module.js +34 -34
  173. package/esm2015/lib/components/evo-checkbox/index.js +2 -2
  174. package/esm2015/lib/components/evo-checkbox/public-api.js +3 -3
  175. package/esm2015/lib/components/evo-chip/evo-chip.component.js +138 -138
  176. package/esm2015/lib/components/evo-chip/evo-chip.module.js +45 -45
  177. package/esm2015/lib/components/evo-chip/index.js +2 -2
  178. package/esm2015/lib/components/evo-chip/public-api.js +3 -3
  179. package/esm2015/lib/components/evo-control-error/evo-control-error.component.js +43 -43
  180. package/esm2015/lib/components/evo-control-error/evo-control-error.module.js +30 -30
  181. package/esm2015/lib/components/evo-control-error/index.js +2 -2
  182. package/esm2015/lib/components/evo-control-error/public-api.js +3 -3
  183. package/esm2015/lib/components/evo-control-label/evo-control-label.component.js +23 -23
  184. package/esm2015/lib/components/evo-control-label/evo-control-label.module.js +22 -22
  185. package/esm2015/lib/components/evo-control-label/index.js +2 -2
  186. package/esm2015/lib/components/evo-control-label/public-api.js +3 -3
  187. package/esm2015/lib/components/evo-counter/evo-counter.component.js +43 -43
  188. package/esm2015/lib/components/evo-counter/evo-counter.module.js +30 -30
  189. package/esm2015/lib/components/evo-counter/index.js +2 -2
  190. package/esm2015/lib/components/evo-counter/public-api.js +3 -3
  191. package/esm2015/lib/components/evo-datepicker/evo-datepicker.component.js +557 -557
  192. package/esm2015/lib/components/evo-datepicker/evo-datepicker.module.js +34 -34
  193. package/esm2015/lib/components/evo-datepicker/flatpickr-options.interface.js +2 -2
  194. package/esm2015/lib/components/evo-datepicker/index.js +2 -2
  195. package/esm2015/lib/components/evo-datepicker/public-api.js +3 -3
  196. package/esm2015/lib/components/evo-datepicker/templates/index.js +114 -114
  197. package/esm2015/lib/components/evo-dropdown/evo-dropdown-origin.directive.js +41 -41
  198. package/esm2015/lib/components/evo-dropdown/evo-dropdown-position-description.js +51 -51
  199. package/esm2015/lib/components/evo-dropdown/evo-dropdown.component.js +112 -112
  200. package/esm2015/lib/components/evo-dropdown/evo-dropdown.module.js +20 -20
  201. package/esm2015/lib/components/evo-dropdown/index.js +2 -2
  202. package/esm2015/lib/components/evo-dropdown/public-api.js +5 -5
  203. package/esm2015/lib/components/evo-dropdown/types/evo-dropdown-positions.js +2 -2
  204. package/esm2015/lib/components/evo-icon/classes/evo-icons-library.js +19 -19
  205. package/esm2015/lib/components/evo-icon/evo-icon.component.js +57 -57
  206. package/esm2015/lib/components/evo-icon/evo-icon.module.js +57 -57
  207. package/esm2015/lib/components/evo-icon/index.js +2 -2
  208. package/esm2015/lib/components/evo-icon/interfaces/icons-category.js +2 -2
  209. package/esm2015/lib/components/evo-icon/interfaces/icons-source.js +2 -2
  210. package/esm2015/lib/components/evo-icon/public-api.js +6 -6
  211. package/esm2015/lib/components/evo-icon-button/evo-icon-button.component.js +62 -62
  212. package/esm2015/lib/components/evo-icon-button/evo-icon-button.module.js +26 -26
  213. package/esm2015/lib/components/evo-icon-button/index.js +2 -2
  214. package/esm2015/lib/components/evo-icon-button/public-api.js +3 -3
  215. package/esm2015/lib/components/evo-icon-button/types/evo-icon-button-theme.js +2 -2
  216. package/esm2015/lib/components/evo-input/evo-input-icon/evo-input-icon.directive.js +13 -13
  217. package/esm2015/lib/components/evo-input/evo-input.component.js +363 -363
  218. package/esm2015/lib/components/evo-input/evo-input.module.js +66 -66
  219. package/esm2015/lib/components/evo-input/index.js +2 -2
  220. package/esm2015/lib/components/evo-input/public-api.js +4 -4
  221. package/esm2015/lib/components/evo-input-contenteditable/evo-input-contenteditable.component.js +157 -157
  222. package/esm2015/lib/components/evo-input-contenteditable/evo-input-contenteditable.module.js +34 -34
  223. package/esm2015/lib/components/evo-input-contenteditable/index.js +2 -2
  224. package/esm2015/lib/components/evo-input-contenteditable/public-api.js +3 -3
  225. package/esm2015/lib/components/evo-input-contenteditable/utils/clear-multiline.js +7 -7
  226. package/esm2015/lib/components/evo-loader/evo-circular-loader.component.js +23 -23
  227. package/esm2015/lib/components/evo-loader/evo-loader.component.js +28 -28
  228. package/esm2015/lib/components/evo-loader/evo-loader.module.js +33 -33
  229. package/esm2015/lib/components/evo-loader/index.js +2 -2
  230. package/esm2015/lib/components/evo-loader/public-api.js +4 -4
  231. package/esm2015/lib/components/evo-modal/evo-modal.component.js +122 -122
  232. package/esm2015/lib/components/evo-modal/evo-modal.module.js +32 -32
  233. package/esm2015/lib/components/evo-modal/evo-modal.service.js +32 -32
  234. package/esm2015/lib/components/evo-modal/index.js +2 -2
  235. package/esm2015/lib/components/evo-modal/public-api.js +4 -4
  236. package/esm2015/lib/components/evo-navbar/evo-navbar-item/evo-navbar-item.component.js +63 -63
  237. package/esm2015/lib/components/evo-navbar/evo-navbar.component.js +51 -51
  238. package/esm2015/lib/components/evo-navbar/evo-navbar.module.js +24 -24
  239. package/esm2015/lib/components/evo-navbar/index.js +2 -2
  240. package/esm2015/lib/components/evo-navbar/interfaces/nav-item-main-info.js +2 -2
  241. package/esm2015/lib/components/evo-navbar/interfaces/nav-item-router-link.js +2 -2
  242. package/esm2015/lib/components/evo-navbar/interfaces/nav-item.href.js +2 -2
  243. package/esm2015/lib/components/evo-navbar/public-api.js +4 -4
  244. package/esm2015/lib/components/evo-navbar/types/nav-item.js +2 -2
  245. package/esm2015/lib/components/evo-note/evo-note.component.js +45 -45
  246. package/esm2015/lib/components/evo-note/evo-note.module.js +45 -45
  247. package/esm2015/lib/components/evo-note/index.js +2 -2
  248. package/esm2015/lib/components/evo-note/public.api.js +4 -4
  249. package/esm2015/lib/components/evo-note/types/evo-note-type.js +2 -2
  250. package/esm2015/lib/components/evo-paginator/evo-paginator.component.js +114 -114
  251. package/esm2015/lib/components/evo-paginator/evo-paginator.module.js +22 -22
  252. package/esm2015/lib/components/evo-paginator/index.js +2 -2
  253. package/esm2015/lib/components/evo-paginator/public-api.js +3 -3
  254. package/esm2015/lib/components/evo-plus-minus/evo-plus-minus.component.js +30 -30
  255. package/esm2015/lib/components/evo-plus-minus/evo-plus-minus.module.js +22 -22
  256. package/esm2015/lib/components/evo-plus-minus/index.js +2 -2
  257. package/esm2015/lib/components/evo-plus-minus/public-api.js +3 -3
  258. package/esm2015/lib/components/evo-popover/evo-popover.component.js +177 -177
  259. package/esm2015/lib/components/evo-popover/evo-popover.module.js +26 -26
  260. package/esm2015/lib/components/evo-popover/index.js +2 -2
  261. package/esm2015/lib/components/evo-popover/public-api.js +3 -3
  262. package/esm2015/lib/components/evo-portal/evo-portal-outlet.class.js +7 -7
  263. package/esm2015/lib/components/evo-portal/evo-portal-outlet.directive.js +19 -19
  264. package/esm2015/lib/components/evo-portal/evo-portal.module.js +32 -32
  265. package/esm2015/lib/components/evo-portal/evo-portal.service.js +92 -92
  266. package/esm2015/lib/components/evo-portal/index.js +2 -2
  267. package/esm2015/lib/components/evo-portal/public-api.js +5 -5
  268. package/esm2015/lib/components/evo-radio/evo-radio.component.js +56 -56
  269. package/esm2015/lib/components/evo-radio/evo-radio.module.js +26 -26
  270. package/esm2015/lib/components/evo-radio/index.js +2 -2
  271. package/esm2015/lib/components/evo-radio/public-api.js +3 -3
  272. package/esm2015/lib/components/evo-radio-group/evo-radio-group.component.js +128 -128
  273. package/esm2015/lib/components/evo-radio-group/evo-radio-group.module.js +34 -34
  274. package/esm2015/lib/components/evo-radio-group/index.js +2 -2
  275. package/esm2015/lib/components/evo-radio-group/public-api.js +3 -3
  276. package/esm2015/lib/components/evo-radio-group/typings/options.js +2 -2
  277. package/esm2015/lib/components/evo-radioshape/components/evo-radioshape.component.js +61 -61
  278. package/esm2015/lib/components/evo-radioshape/evo-radioshape.module.js +33 -33
  279. package/esm2015/lib/components/evo-radioshape/index.js +2 -2
  280. package/esm2015/lib/components/evo-radioshape/public-api.js +3 -3
  281. package/esm2015/lib/components/evo-segmented-bar/evo-segmented-bar/evo-segmented-bar.component.js +24 -24
  282. package/esm2015/lib/components/evo-segmented-bar/evo-segmented-bar-button/evo-segmented-bar-button.component.js +79 -79
  283. package/esm2015/lib/components/evo-segmented-bar/evo-segmented-bar.module.js +39 -39
  284. package/esm2015/lib/components/evo-segmented-bar/index.js +2 -2
  285. package/esm2015/lib/components/evo-segmented-bar/public-api.js +4 -4
  286. package/esm2015/lib/components/evo-select/evo-select.component.js +121 -121
  287. package/esm2015/lib/components/evo-select/evo-select.module.js +34 -34
  288. package/esm2015/lib/components/evo-select/index.js +2 -2
  289. package/esm2015/lib/components/evo-select/public-api.js +3 -3
  290. package/esm2015/lib/components/evo-sidebar/enums/evo-sidebar-close-targets.js +8 -8
  291. package/esm2015/lib/components/evo-sidebar/enums/evo-sidebar-sizes.js +7 -7
  292. package/esm2015/lib/components/evo-sidebar/enums/evo-sidebar-states.js +6 -6
  293. package/esm2015/lib/components/evo-sidebar/evo-sidebar-content/evo-sidebar-content.component.js +38 -38
  294. package/esm2015/lib/components/evo-sidebar/evo-sidebar-footer/evo-sidebar-footer.component.js +19 -19
  295. package/esm2015/lib/components/evo-sidebar/evo-sidebar-header/evo-sidebar-header.component.js +47 -47
  296. package/esm2015/lib/components/evo-sidebar/evo-sidebar-portal.js +21 -21
  297. package/esm2015/lib/components/evo-sidebar/evo-sidebar.component.js +174 -169
  298. package/esm2015/lib/components/evo-sidebar/evo-sidebar.module.js +90 -90
  299. package/esm2015/lib/components/evo-sidebar/evo-sidebar.service.js +102 -102
  300. package/esm2015/lib/components/evo-sidebar/index.js +2 -2
  301. package/esm2015/lib/components/evo-sidebar/interfaces.js +2 -2
  302. package/esm2015/lib/components/evo-sidebar/public-api.js +12 -12
  303. package/esm2015/lib/components/evo-sidebar/sidebar-injection-token.js +3 -3
  304. package/esm2015/lib/components/evo-sidebar/tokens.js +12 -12
  305. package/esm2015/lib/components/evo-stepper/evo-stepper-events.js +25 -25
  306. package/esm2015/lib/components/evo-stepper/evo-stepper-item/evo-stepper-item.component.js +35 -35
  307. package/esm2015/lib/components/evo-stepper/evo-stepper.component.js +72 -72
  308. package/esm2015/lib/components/evo-stepper/evo-stepper.module.js +27 -27
  309. package/esm2015/lib/components/evo-stepper/index.js +2 -2
  310. package/esm2015/lib/components/evo-stepper/public-api.js +4 -4
  311. package/esm2015/lib/components/evo-submenu/evo-submenu.component.js +160 -160
  312. package/esm2015/lib/components/evo-submenu/evo-submenu.module.js +36 -36
  313. package/esm2015/lib/components/evo-submenu/index.js +2 -2
  314. package/esm2015/lib/components/evo-submenu/public-api.js +3 -3
  315. package/esm2015/lib/components/evo-switcher/components/evo-switcher-item/evo-switcher-item.component.js +15 -15
  316. package/esm2015/lib/components/evo-switcher/evo-switcher.component.js +36 -36
  317. package/esm2015/lib/components/evo-switcher/evo-switcher.module.js +27 -27
  318. package/esm2015/lib/components/evo-switcher/index.js +2 -2
  319. package/esm2015/lib/components/evo-switcher/public-api.js +4 -4
  320. package/esm2015/lib/components/evo-table/evo-table/evo-table.component.js +69 -69
  321. package/esm2015/lib/components/evo-table/evo-table-column/evo-table-column.component.js +35 -35
  322. package/esm2015/lib/components/evo-table/evo-table.module.js +23 -23
  323. package/esm2015/lib/components/evo-table/index.js +2 -2
  324. package/esm2015/lib/components/evo-table/public-api.js +4 -4
  325. package/esm2015/lib/components/evo-tabs/enums/evo-tabs-size.js +6 -6
  326. package/esm2015/lib/components/evo-tabs/evo-tab/evo-tab.component.js +92 -92
  327. package/esm2015/lib/components/evo-tabs/evo-tab-content/evo-tab-content.component.js +40 -40
  328. package/esm2015/lib/components/evo-tabs/evo-tab-state.collection.js +43 -43
  329. package/esm2015/lib/components/evo-tabs/evo-tabs-size.service.js +24 -24
  330. package/esm2015/lib/components/evo-tabs/evo-tabs.component.js +88 -88
  331. package/esm2015/lib/components/evo-tabs/evo-tabs.module.js +30 -30
  332. package/esm2015/lib/components/evo-tabs/evo-tabs.service.js +67 -67
  333. package/esm2015/lib/components/evo-tabs/index.js +2 -2
  334. package/esm2015/lib/components/evo-tabs/public-api.js +9 -9
  335. package/esm2015/lib/components/evo-textarea/evo-textarea.component.js +84 -84
  336. package/esm2015/lib/components/evo-textarea/evo-textarea.module.js +37 -37
  337. package/esm2015/lib/components/evo-textarea/index.js +2 -2
  338. package/esm2015/lib/components/evo-textarea/public-api.js +3 -3
  339. package/esm2015/lib/components/evo-toast/evo-toast.component.js +103 -103
  340. package/esm2015/lib/components/evo-toast/evo-toast.module.js +45 -45
  341. package/esm2015/lib/components/evo-toast/evo-toast.service.js +49 -49
  342. package/esm2015/lib/components/evo-toast/index.js +2 -2
  343. package/esm2015/lib/components/evo-toast/public-api.js +4 -4
  344. package/esm2015/lib/components/evo-toggle/evo-toggle.component.js +70 -70
  345. package/esm2015/lib/components/evo-toggle/evo-toggle.module.js +30 -30
  346. package/esm2015/lib/components/evo-toggle/index.js +2 -2
  347. package/esm2015/lib/components/evo-toggle/public-api.js +3 -3
  348. package/esm2015/lib/components/evo-upload/evo-upload.component.js +292 -292
  349. package/esm2015/lib/components/evo-upload/evo-upload.module.js +59 -59
  350. package/esm2015/lib/components/evo-upload/index.js +2 -2
  351. package/esm2015/lib/components/evo-upload/public-api.js +3 -3
  352. package/esm2015/lib/decorators/deprecate-method.decorator.js +8 -8
  353. package/esm2015/lib/decorators/deprecate-variable.decorator.js +17 -17
  354. package/esm2015/lib/decorators/index.js +2 -2
  355. package/esm2015/lib/decorators/public-api.js +3 -3
  356. package/esm2015/lib/directives/evo-click-outside.directive.js +40 -40
  357. package/esm2015/lib/directives/evo-is-expanded.directive.js +72 -72
  358. package/esm2015/lib/directives/evo-let/evo-let.directive.js +36 -36
  359. package/esm2015/lib/directives/evo-ui-class.directive.js +159 -159
  360. package/esm2015/lib/directives/index.js +2 -2
  361. package/esm2015/lib/directives/public-api.js +5 -5
  362. package/esm2015/lib/evo-ui-kit.module.js +65 -65
  363. package/esm2015/lib/operators/enter-zone.operator.js +9 -9
  364. package/esm2015/lib/operators/index.js +2 -2
  365. package/esm2015/lib/operators/public-api.js +2 -2
  366. package/esm2015/lib/pipes/declination.pipe.js +40 -40
  367. package/esm2015/lib/pipes/evo-pipes.module.js +17 -17
  368. package/esm2015/lib/pipes/index.js +2 -2
  369. package/esm2015/lib/pipes/public-api.js +4 -4
  370. package/esm2015/lib/pipes/safe-html.pipe.js +18 -18
  371. package/esm2015/lib/services/evo-expanded.service.js +23 -23
  372. package/esm2015/lib/services/index.js +2 -2
  373. package/esm2015/lib/services/public-api.js +2 -2
  374. package/esm2015/lib/services/window.service.js +49 -49
  375. package/esm2015/public_api.js +72 -72
  376. package/evotor-dev-ui-kit.d.ts +5 -5
  377. package/fesm2015/evotor-dev-ui-kit-icons-category.js +38 -38
  378. package/fesm2015/evotor-dev-ui-kit-icons-emotions.js +18 -18
  379. package/fesm2015/evotor-dev-ui-kit-icons-header.js +28 -28
  380. package/fesm2015/evotor-dev-ui-kit-icons-info.js +40 -40
  381. package/fesm2015/evotor-dev-ui-kit-icons-navigation.js +56 -56
  382. package/fesm2015/evotor-dev-ui-kit-icons-navigation.js.map +1 -1
  383. package/fesm2015/evotor-dev-ui-kit-icons-side-menu.js +64 -64
  384. package/fesm2015/evotor-dev-ui-kit-icons-side-menu.js.map +1 -1
  385. package/fesm2015/evotor-dev-ui-kit-icons-system.js +337 -333
  386. package/fesm2015/evotor-dev-ui-kit-icons-system.js.map +1 -1
  387. package/fesm2015/evotor-dev-ui-kit-icons.js +568 -564
  388. package/fesm2015/evotor-dev-ui-kit-icons.js.map +1 -1
  389. package/fesm2015/evotor-dev-ui-kit.js +7180 -7175
  390. package/fesm2015/evotor-dev-ui-kit.js.map +1 -1
  391. package/icons/category/evotor-dev-ui-kit-icons-category.d.ts +5 -5
  392. package/icons/category/index.d.ts +35 -35
  393. package/icons/emotions/evotor-dev-ui-kit-icons-emotions.d.ts +5 -5
  394. package/icons/emotions/index.d.ts +15 -15
  395. package/icons/evotor-dev-ui-kit-icons.d.ts +5 -5
  396. package/icons/header/evotor-dev-ui-kit-icons-header.d.ts +5 -5
  397. package/icons/header/index.d.ts +25 -25
  398. package/icons/index.d.ts +291 -289
  399. package/icons/info/evotor-dev-ui-kit-icons-info.d.ts +5 -5
  400. package/icons/info/index.d.ts +37 -37
  401. package/icons/navigation/evotor-dev-ui-kit-icons-navigation.d.ts +5 -5
  402. package/icons/navigation/index.d.ts +53 -53
  403. package/icons/side-menu/evotor-dev-ui-kit-icons-side-menu.d.ts +5 -5
  404. package/icons/side-menu/index.d.ts +61 -61
  405. package/icons/system/evotor-dev-ui-kit-icons-system.d.ts +5 -5
  406. package/icons/system/index.d.ts +333 -329
  407. package/lib/common/Serializable.d.ts +3 -3
  408. package/lib/common/animations/expand.animation.d.ts +1 -1
  409. package/lib/common/animations/index.d.ts +3 -3
  410. package/lib/common/animations/sidebar.animation.d.ts +2 -2
  411. package/lib/common/animations/skip-initial-render.animation.d.ts +1 -1
  412. package/lib/common/collection/evo-collection-fabric.d.ts +4 -4
  413. package/lib/common/collection/evo-collection.d.ts +3 -3
  414. package/lib/common/collection/index.d.ts +2 -2
  415. package/lib/common/constants/css-breakpoints.d.ts +8 -8
  416. package/lib/common/constants/view-breakpoint-streams.d.ts +9 -9
  417. package/lib/common/evo-base-control.d.ts +21 -21
  418. package/lib/common/evo-control-state-manager/evo-control-state-manager.d.ts +7 -7
  419. package/lib/common/evo-control-state-manager/evo-control-state.interface.d.ts +5 -5
  420. package/lib/common/evo-control-state-manager/evo-control-states.enum.d.ts +4 -4
  421. package/lib/common/form-helper/form-helper.d.ts +5 -5
  422. package/lib/common/types/evo-color.d.ts +1 -1
  423. package/lib/common/types/evo-size.d.ts +1 -1
  424. package/lib/common/types/index.d.ts +2 -2
  425. package/lib/components/evo-accordion/evo-accordion-content/evo-accordion-content.component.d.ts +11 -11
  426. package/lib/components/evo-accordion/evo-accordion-panel/evo-accordion-panel.component.d.ts +9 -9
  427. package/lib/components/evo-accordion/evo-accordion-title/evo-accordion-title.component.d.ts +11 -11
  428. package/lib/components/evo-accordion/evo-accordion.component.d.ts +9 -9
  429. package/lib/components/evo-accordion/evo-accordion.module.d.ts +13 -13
  430. package/lib/components/evo-accordion/index.d.ts +1 -1
  431. package/lib/components/evo-accordion/public-api.d.ts +5 -5
  432. package/lib/components/evo-alert/evo-alert.component.d.ts +38 -38
  433. package/lib/components/evo-alert/evo-alert.module.d.ts +9 -9
  434. package/lib/components/evo-alert/index.d.ts +1 -1
  435. package/lib/components/evo-alert/public-api.d.ts +2 -2
  436. package/lib/components/evo-autocomplete/components/evo-autocomplete.component.d.ts +115 -115
  437. package/lib/components/evo-autocomplete/components/templates/evo-autocomplete-default-option.component.d.ts +15 -15
  438. package/lib/components/evo-autocomplete/evo-autocomplete.module.d.ts +15 -15
  439. package/lib/components/evo-autocomplete/helpers/switch-query-to-list.d.ts +2 -2
  440. package/lib/components/evo-autocomplete/index.d.ts +1 -1
  441. package/lib/components/evo-autocomplete/models/DaDataParty.d.ts +37 -37
  442. package/lib/components/evo-autocomplete/models/dadata.model.d.ts +320 -320
  443. package/lib/components/evo-autocomplete/public-api.d.ts +6 -6
  444. package/lib/components/evo-autocomplete/types/evo-autocomplete-size.d.ts +1 -1
  445. package/lib/components/evo-badge/evo-badge.component.d.ts +12 -12
  446. package/lib/components/evo-badge/evo-badge.module.d.ts +9 -9
  447. package/lib/components/evo-badge/index.d.ts +2 -2
  448. package/lib/components/evo-badge/public-api.d.ts +2 -2
  449. package/lib/components/evo-badge/types/evo-badge-color.d.ts +2 -2
  450. package/lib/components/evo-badge/types/evo-badge-size.d.ts +2 -2
  451. package/lib/components/evo-badge/types/index.d.ts +2 -2
  452. package/lib/components/evo-banner/evo-banner.component.d.ts +46 -46
  453. package/lib/components/evo-banner/evo-banner.module.d.ts +9 -9
  454. package/lib/components/evo-banner/index.d.ts +1 -1
  455. package/lib/components/evo-banner/public-api.d.ts +2 -2
  456. package/lib/components/evo-button/evo-button.component.d.ts +33 -33
  457. package/lib/components/evo-button/evo-button.module.d.ts +9 -9
  458. package/lib/components/evo-button/index.d.ts +1 -1
  459. package/lib/components/evo-button/public-api.d.ts +2 -2
  460. package/lib/components/evo-checkbox/evo-checkbox.component.d.ts +26 -26
  461. package/lib/components/evo-checkbox/evo-checkbox.module.d.ts +11 -11
  462. package/lib/components/evo-checkbox/index.d.ts +1 -1
  463. package/lib/components/evo-checkbox/public-api.d.ts +2 -2
  464. package/lib/components/evo-chip/evo-chip.component.d.ts +45 -45
  465. package/lib/components/evo-chip/evo-chip.module.d.ts +11 -11
  466. package/lib/components/evo-chip/index.d.ts +1 -1
  467. package/lib/components/evo-chip/public-api.d.ts +2 -2
  468. package/lib/components/evo-control-error/evo-control-error.component.d.ts +14 -14
  469. package/lib/components/evo-control-error/evo-control-error.module.d.ts +10 -10
  470. package/lib/components/evo-control-error/index.d.ts +1 -1
  471. package/lib/components/evo-control-error/public-api.d.ts +2 -2
  472. package/lib/components/evo-control-label/evo-control-label.component.d.ts +9 -9
  473. package/lib/components/evo-control-label/evo-control-label.module.d.ts +8 -8
  474. package/lib/components/evo-control-label/index.d.ts +1 -1
  475. package/lib/components/evo-control-label/public-api.d.ts +2 -2
  476. package/lib/components/evo-counter/evo-counter.component.d.ts +16 -16
  477. package/lib/components/evo-counter/evo-counter.module.d.ts +9 -9
  478. package/lib/components/evo-counter/index.d.ts +1 -1
  479. package/lib/components/evo-counter/public-api.d.ts +2 -2
  480. package/lib/components/evo-datepicker/evo-datepicker.component.d.ts +174 -174
  481. package/lib/components/evo-datepicker/evo-datepicker.module.d.ts +11 -11
  482. package/lib/components/evo-datepicker/flatpickr-options.interface.d.ts +10 -10
  483. package/lib/components/evo-datepicker/index.d.ts +1 -1
  484. package/lib/components/evo-datepicker/public-api.d.ts +2 -2
  485. package/lib/components/evo-datepicker/templates/index.d.ts +16 -16
  486. package/lib/components/evo-dropdown/evo-dropdown-origin.directive.d.ts +15 -15
  487. package/lib/components/evo-dropdown/evo-dropdown-position-description.d.ts +3 -3
  488. package/lib/components/evo-dropdown/evo-dropdown.component.d.ts +34 -34
  489. package/lib/components/evo-dropdown/evo-dropdown.module.d.ts +10 -10
  490. package/lib/components/evo-dropdown/index.d.ts +1 -1
  491. package/lib/components/evo-dropdown/public-api.d.ts +4 -4
  492. package/lib/components/evo-dropdown/types/evo-dropdown-positions.d.ts +1 -1
  493. package/lib/components/evo-icon/classes/evo-icons-library.d.ts +11 -11
  494. package/lib/components/evo-icon/evo-icon.component.d.ts +20 -20
  495. package/lib/components/evo-icon/evo-icon.module.d.ts +16 -16
  496. package/lib/components/evo-icon/index.d.ts +1 -1
  497. package/lib/components/evo-icon/interfaces/icons-category.d.ts +5 -5
  498. package/lib/components/evo-icon/interfaces/icons-source.d.ts +3 -3
  499. package/lib/components/evo-icon/public-api.d.ts +5 -5
  500. package/lib/components/evo-icon-button/evo-icon-button.component.d.ts +21 -21
  501. package/lib/components/evo-icon-button/evo-icon-button.module.d.ts +8 -8
  502. package/lib/components/evo-icon-button/index.d.ts +1 -1
  503. package/lib/components/evo-icon-button/public-api.d.ts +2 -2
  504. package/lib/components/evo-icon-button/types/evo-icon-button-theme.d.ts +1 -1
  505. package/lib/components/evo-input/evo-input-icon/evo-input-icon.directive.d.ts +5 -5
  506. package/lib/components/evo-input/evo-input.component.d.ts +93 -93
  507. package/lib/components/evo-input/evo-input.module.d.ts +14 -14
  508. package/lib/components/evo-input/index.d.ts +1 -1
  509. package/lib/components/evo-input/public-api.d.ts +3 -3
  510. package/lib/components/evo-input-contenteditable/evo-input-contenteditable.component.d.ts +44 -44
  511. package/lib/components/evo-input-contenteditable/evo-input-contenteditable.module.d.ts +10 -10
  512. package/lib/components/evo-input-contenteditable/index.d.ts +1 -1
  513. package/lib/components/evo-input-contenteditable/public-api.d.ts +2 -2
  514. package/lib/components/evo-input-contenteditable/utils/clear-multiline.d.ts +1 -1
  515. package/lib/components/evo-loader/evo-circular-loader.component.d.ts +8 -8
  516. package/lib/components/evo-loader/evo-loader.component.d.ts +14 -14
  517. package/lib/components/evo-loader/evo-loader.module.d.ts +10 -10
  518. package/lib/components/evo-loader/index.d.ts +1 -1
  519. package/lib/components/evo-loader/public-api.d.ts +3 -3
  520. package/lib/components/evo-modal/evo-modal.component.d.ts +37 -37
  521. package/lib/components/evo-modal/evo-modal.module.d.ts +10 -10
  522. package/lib/components/evo-modal/evo-modal.service.d.ts +22 -22
  523. package/lib/components/evo-modal/index.d.ts +1 -1
  524. package/lib/components/evo-modal/public-api.d.ts +3 -3
  525. package/lib/components/evo-navbar/evo-navbar-item/evo-navbar-item.component.d.ts +21 -21
  526. package/lib/components/evo-navbar/evo-navbar.component.d.ts +18 -18
  527. package/lib/components/evo-navbar/evo-navbar.module.d.ts +12 -12
  528. package/lib/components/evo-navbar/index.d.ts +1 -1
  529. package/lib/components/evo-navbar/interfaces/nav-item-main-info.d.ts +5 -5
  530. package/lib/components/evo-navbar/interfaces/nav-item-router-link.d.ts +14 -14
  531. package/lib/components/evo-navbar/interfaces/nav-item.href.d.ts +4 -4
  532. package/lib/components/evo-navbar/public-api.d.ts +7 -7
  533. package/lib/components/evo-navbar/types/nav-item.d.ts +4 -4
  534. package/lib/components/evo-note/evo-note.component.d.ts +13 -13
  535. package/lib/components/evo-note/evo-note.module.d.ts +10 -10
  536. package/lib/components/evo-note/index.d.ts +1 -1
  537. package/lib/components/evo-note/public.api.d.ts +3 -3
  538. package/lib/components/evo-note/types/evo-note-type.d.ts +1 -1
  539. package/lib/components/evo-paginator/evo-paginator.component.d.ts +26 -26
  540. package/lib/components/evo-paginator/evo-paginator.module.d.ts +8 -8
  541. package/lib/components/evo-paginator/index.d.ts +1 -1
  542. package/lib/components/evo-paginator/public-api.d.ts +2 -2
  543. package/lib/components/evo-plus-minus/evo-plus-minus.component.d.ts +13 -13
  544. package/lib/components/evo-plus-minus/evo-plus-minus.module.d.ts +8 -8
  545. package/lib/components/evo-plus-minus/index.d.ts +1 -1
  546. package/lib/components/evo-plus-minus/public-api.d.ts +2 -2
  547. package/lib/components/evo-popover/evo-popover.component.d.ts +43 -43
  548. package/lib/components/evo-popover/evo-popover.module.d.ts +9 -9
  549. package/lib/components/evo-popover/index.d.ts +1 -1
  550. package/lib/components/evo-popover/public-api.d.ts +2 -2
  551. package/lib/components/evo-portal/evo-portal-outlet.class.d.ts +6 -6
  552. package/lib/components/evo-portal/evo-portal-outlet.directive.d.ts +10 -10
  553. package/lib/components/evo-portal/evo-portal.module.d.ts +8 -8
  554. package/lib/components/evo-portal/evo-portal.service.d.ts +27 -27
  555. package/lib/components/evo-portal/index.d.ts +1 -1
  556. package/lib/components/evo-portal/public-api.d.ts +4 -4
  557. package/lib/components/evo-radio/evo-radio.component.d.ts +18 -18
  558. package/lib/components/evo-radio/evo-radio.module.d.ts +9 -9
  559. package/lib/components/evo-radio/index.d.ts +1 -1
  560. package/lib/components/evo-radio/public-api.d.ts +2 -2
  561. package/lib/components/evo-radio-group/evo-radio-group.component.d.ts +56 -56
  562. package/lib/components/evo-radio-group/evo-radio-group.module.d.ts +11 -11
  563. package/lib/components/evo-radio-group/index.d.ts +1 -1
  564. package/lib/components/evo-radio-group/public-api.d.ts +2 -2
  565. package/lib/components/evo-radio-group/typings/options.d.ts +6 -6
  566. package/lib/components/evo-radioshape/components/evo-radioshape.component.d.ts +19 -19
  567. package/lib/components/evo-radioshape/evo-radioshape.module.d.ts +9 -9
  568. package/lib/components/evo-radioshape/index.d.ts +1 -1
  569. package/lib/components/evo-radioshape/public-api.d.ts +2 -2
  570. package/lib/components/evo-segmented-bar/evo-segmented-bar/evo-segmented-bar.component.d.ts +10 -10
  571. package/lib/components/evo-segmented-bar/evo-segmented-bar-button/evo-segmented-bar-button.component.d.ts +22 -22
  572. package/lib/components/evo-segmented-bar/evo-segmented-bar.module.d.ts +11 -11
  573. package/lib/components/evo-segmented-bar/index.d.ts +1 -1
  574. package/lib/components/evo-segmented-bar/public-api.d.ts +3 -3
  575. package/lib/components/evo-select/evo-select.component.d.ts +37 -37
  576. package/lib/components/evo-select/evo-select.module.d.ts +11 -11
  577. package/lib/components/evo-select/index.d.ts +1 -1
  578. package/lib/components/evo-select/public-api.d.ts +2 -2
  579. package/lib/components/evo-sidebar/enums/evo-sidebar-close-targets.d.ts +6 -6
  580. package/lib/components/evo-sidebar/enums/evo-sidebar-sizes.d.ts +5 -5
  581. package/lib/components/evo-sidebar/enums/evo-sidebar-states.d.ts +4 -4
  582. package/lib/components/evo-sidebar/evo-sidebar-content/evo-sidebar-content.component.d.ts +12 -12
  583. package/lib/components/evo-sidebar/evo-sidebar-footer/evo-sidebar-footer.component.d.ts +5 -5
  584. package/lib/components/evo-sidebar/evo-sidebar-header/evo-sidebar-header.component.d.ts +13 -13
  585. package/lib/components/evo-sidebar/evo-sidebar-portal.d.ts +13 -13
  586. package/lib/components/evo-sidebar/evo-sidebar.component.d.ts +42 -42
  587. package/lib/components/evo-sidebar/evo-sidebar.module.d.ts +17 -17
  588. package/lib/components/evo-sidebar/evo-sidebar.service.d.ts +26 -26
  589. package/lib/components/evo-sidebar/index.d.ts +1 -1
  590. package/lib/components/evo-sidebar/interfaces.d.ts +23 -23
  591. package/lib/components/evo-sidebar/public-api.d.ts +11 -11
  592. package/lib/components/evo-sidebar/sidebar-injection-token.d.ts +2 -2
  593. package/lib/components/evo-sidebar/tokens.d.ts +7 -7
  594. package/lib/components/evo-stepper/evo-stepper-events.d.ts +12 -12
  595. package/lib/components/evo-stepper/evo-stepper-item/evo-stepper-item.component.d.ts +13 -13
  596. package/lib/components/evo-stepper/evo-stepper.component.d.ts +27 -27
  597. package/lib/components/evo-stepper/evo-stepper.module.d.ts +10 -10
  598. package/lib/components/evo-stepper/index.d.ts +1 -1
  599. package/lib/components/evo-stepper/public-api.d.ts +3 -3
  600. package/lib/components/evo-submenu/evo-submenu.component.d.ts +49 -49
  601. package/lib/components/evo-submenu/evo-submenu.module.d.ts +11 -11
  602. package/lib/components/evo-submenu/index.d.ts +1 -1
  603. package/lib/components/evo-submenu/public-api.d.ts +2 -2
  604. package/lib/components/evo-switcher/components/evo-switcher-item/evo-switcher-item.component.d.ts +9 -9
  605. package/lib/components/evo-switcher/evo-switcher.component.d.ts +14 -14
  606. package/lib/components/evo-switcher/evo-switcher.module.d.ts +10 -10
  607. package/lib/components/evo-switcher/index.d.ts +1 -1
  608. package/lib/components/evo-switcher/public-api.d.ts +3 -3
  609. package/lib/components/evo-table/evo-table/evo-table.component.d.ts +32 -32
  610. package/lib/components/evo-table/evo-table-column/evo-table-column.component.d.ts +12 -12
  611. package/lib/components/evo-table/evo-table.module.d.ts +9 -9
  612. package/lib/components/evo-table/index.d.ts +1 -1
  613. package/lib/components/evo-table/public-api.d.ts +3 -3
  614. package/lib/components/evo-tabs/enums/evo-tabs-size.d.ts +4 -4
  615. package/lib/components/evo-tabs/evo-tab/evo-tab.component.d.ts +35 -35
  616. package/lib/components/evo-tabs/evo-tab-content/evo-tab-content.component.d.ts +16 -16
  617. package/lib/components/evo-tabs/evo-tab-state.collection.d.ts +15 -15
  618. package/lib/components/evo-tabs/evo-tabs-size.service.d.ts +12 -12
  619. package/lib/components/evo-tabs/evo-tabs.component.d.ts +22 -22
  620. package/lib/components/evo-tabs/evo-tabs.module.d.ts +11 -11
  621. package/lib/components/evo-tabs/evo-tabs.service.d.ts +19 -19
  622. package/lib/components/evo-tabs/index.d.ts +1 -1
  623. package/lib/components/evo-tabs/public-api.d.ts +8 -8
  624. package/lib/components/evo-textarea/evo-textarea.component.d.ts +25 -25
  625. package/lib/components/evo-textarea/evo-textarea.module.d.ts +11 -11
  626. package/lib/components/evo-textarea/index.d.ts +1 -1
  627. package/lib/components/evo-textarea/public-api.d.ts +2 -2
  628. package/lib/components/evo-toast/evo-toast.component.d.ts +23 -23
  629. package/lib/components/evo-toast/evo-toast.module.d.ts +10 -10
  630. package/lib/components/evo-toast/evo-toast.service.d.ts +22 -22
  631. package/lib/components/evo-toast/index.d.ts +1 -1
  632. package/lib/components/evo-toast/public-api.d.ts +3 -3
  633. package/lib/components/evo-toggle/evo-toggle.component.d.ts +20 -20
  634. package/lib/components/evo-toggle/evo-toggle.module.d.ts +10 -10
  635. package/lib/components/evo-toggle/index.d.ts +1 -1
  636. package/lib/components/evo-toggle/public-api.d.ts +2 -2
  637. package/lib/components/evo-upload/evo-upload.component.d.ts +65 -65
  638. package/lib/components/evo-upload/evo-upload.module.d.ts +13 -13
  639. package/lib/components/evo-upload/index.d.ts +1 -1
  640. package/lib/components/evo-upload/public-api.d.ts +2 -2
  641. package/lib/decorators/deprecate-method.decorator.d.ts +1 -1
  642. package/lib/decorators/deprecate-variable.decorator.d.ts +1 -1
  643. package/lib/decorators/index.d.ts +1 -1
  644. package/lib/decorators/public-api.d.ts +2 -2
  645. package/lib/directives/evo-click-outside.directive.d.ts +12 -12
  646. package/lib/directives/evo-is-expanded.directive.d.ts +19 -19
  647. package/lib/directives/evo-let/evo-let.directive.d.ts +17 -17
  648. package/lib/directives/evo-ui-class.directive.d.ts +61 -61
  649. package/lib/directives/index.d.ts +1 -1
  650. package/lib/directives/public-api.d.ts +4 -4
  651. package/lib/evo-ui-kit.module.d.ts +16 -16
  652. package/lib/operators/enter-zone.operator.d.ts +3 -3
  653. package/lib/operators/index.d.ts +1 -1
  654. package/lib/operators/public-api.d.ts +1 -1
  655. package/lib/pipes/declination.pipe.d.ts +7 -7
  656. package/lib/pipes/evo-pipes.module.d.ts +8 -8
  657. package/lib/pipes/index.d.ts +1 -1
  658. package/lib/pipes/public-api.d.ts +3 -3
  659. package/lib/pipes/safe-html.pipe.d.ts +10 -10
  660. package/lib/services/evo-expanded.service.d.ts +11 -11
  661. package/lib/services/index.d.ts +1 -1
  662. package/lib/services/public-api.d.ts +1 -1
  663. package/lib/services/window.service.d.ts +14 -14
  664. package/package.json +2 -2
  665. package/public_api.d.ts +61 -61
  666. package/styles/components/evo-alert.scss +64 -64
  667. package/styles/components/evo-button-loader.scss +53 -53
  668. package/styles/components/evo-button-wrapper.scss +21 -21
  669. package/styles/components/evo-button.scss +233 -233
  670. package/styles/components/evo-card.scss +40 -40
  671. package/styles/components/evo-chip.scss +169 -169
  672. package/styles/components/evo-form.scss +273 -273
  673. package/styles/components/evo-grid.scss +27 -27
  674. package/styles/components/evo-icon.scss +3 -3
  675. package/styles/components/evo-link.scss +41 -41
  676. package/styles/components/evo-list.scss +38 -38
  677. package/styles/components/evo-modal-mixins.scss +32 -32
  678. package/styles/components/evo-sidebar-mixins.scss +20 -20
  679. package/styles/components/evo-spinner.scss +12 -12
  680. package/styles/components/evo-table.scss +42 -42
  681. package/styles/components/evo-title.scss +23 -23
  682. package/styles/components/skeleton.scss +12 -12
  683. package/styles/globals.scss +67 -67
  684. package/styles/icons.scss +173 -173
  685. package/styles/keyframes.scss +37 -37
  686. package/styles/main.scss +19 -19
  687. package/styles/mixins.scss +208 -208
  688. package/styles/normalize.scss +341 -341
  689. package/styles/reset.scss +155 -155
  690. package/styles/variables.scss +137 -137
@@ -1,363 +1,363 @@
1
- import { Component, EventEmitter, forwardRef, Inject, Input, Optional, Output, ViewChild, } from '@angular/core';
2
- import { COMPOSITION_BUFFER_MODE, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { EvoControlStates } from '../../common/evo-control-state-manager/evo-control-states.enum';
4
- import { EvoBaseControl } from '../../common/evo-base-control';
5
- import { fromEvent, Subject } from 'rxjs';
6
- import { debounceTime, map, takeUntil, tap } from 'rxjs/operators';
7
- import { enterZone } from '../../operators';
8
- import * as IMask from 'imask';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../evo-icon/evo-icon.component";
11
- import * as i2 from "../evo-control-error/evo-control-error.component";
12
- import * as i3 from "../../directives/evo-ui-class.directive";
13
- import * as i4 from "@angular/common";
14
- export var EvoInputSizes;
15
- (function (EvoInputSizes) {
16
- EvoInputSizes["small"] = "small";
17
- EvoInputSizes["normal"] = "normal";
18
- })(EvoInputSizes || (EvoInputSizes = {}));
19
- export var EvoInputTheme;
20
- (function (EvoInputTheme) {
21
- EvoInputTheme["default"] = "default";
22
- EvoInputTheme["rounded"] = "rounded";
23
- })(EvoInputTheme || (EvoInputTheme = {}));
24
- export class EvoInputComponent extends EvoBaseControl {
25
- constructor(zone, changeDetector, _renderer, _compositionMode, injector) {
26
- super(injector);
27
- this.zone = zone;
28
- this.changeDetector = changeDetector;
29
- this._renderer = _renderer;
30
- this._compositionMode = _compositionMode;
31
- this.injector = injector;
32
- this.type = 'text';
33
- this.disabled = false;
34
- this.loading = false;
35
- this.prefix = '';
36
- this.inputDebounce = 50;
37
- this.unmask = false;
38
- this.clearable = false;
39
- this.maskValidation = false;
40
- this.blur = new EventEmitter();
41
- this.size = EvoInputSizes.normal;
42
- this.theme = EvoInputTheme.default;
43
- this.customTooltipChecked = false;
44
- this.uiStates = {
45
- hasCustomTooltip: false,
46
- isTooltipVisible: false,
47
- isFocused: false,
48
- };
49
- this.tooltipVisibilityTimeout = false;
50
- this.destroy$ = new Subject();
51
- /** Whether the user is creating a composition string (IME events). */
52
- this._composing = false;
53
- }
54
- set setValue(value) {
55
- this._value = value;
56
- }
57
- set setSize(size) {
58
- if (EvoInputSizes[size]) {
59
- this.size = EvoInputSizes[size];
60
- }
61
- }
62
- set setTheme(theme) {
63
- if (EvoInputTheme[theme]) {
64
- this.theme = EvoInputTheme[theme];
65
- }
66
- }
67
- get isDisabled() {
68
- if (this.loading) {
69
- return true;
70
- }
71
- return this.disabled;
72
- }
73
- get value() {
74
- return this._value;
75
- }
76
- set value(value) {
77
- if (value || this._value) {
78
- this._value = this.removePrefix(value);
79
- this.onChange(this.prefix + (this._value || ''));
80
- this.changeDetector.markForCheck();
81
- }
82
- }
83
- get inputClass() {
84
- return {
85
- 'focused': this.uiStates.isFocused,
86
- 'disabled': this.isDisabled,
87
- 'valid': this.currentState[EvoControlStates.valid],
88
- 'invalid': this.currentState[EvoControlStates.invalid],
89
- [`size-${this.size}`]: this.size !== EvoInputSizes.normal,
90
- [`theme-${this.theme}`]: true,
91
- };
92
- }
93
- get hasAdditional() {
94
- return !!this.tooltip || this.uiStates.hasCustomTooltip || !!this.icon;
95
- }
96
- set maskValue(value) {
97
- const normalizedValue = value !== null && value !== void 0 ? value : '';
98
- if (this.iMask) {
99
- if (this.unmask === 'typed') {
100
- this.iMask.typedValue = normalizedValue;
101
- }
102
- else if (this.unmask) {
103
- this.iMask.unmaskedValue = normalizedValue;
104
- }
105
- else {
106
- this.iMask.value = normalizedValue;
107
- }
108
- }
109
- else {
110
- this.writeToElement(normalizedValue);
111
- }
112
- }
113
- get maskValue() {
114
- if (!this.iMask) {
115
- return this.inputElement.nativeElement.value;
116
- }
117
- if (this.unmask === 'typed') {
118
- return this.iMask.typedValue;
119
- }
120
- if (this.unmask) {
121
- return this.iMask.unmaskedValue;
122
- }
123
- return this.iMask.value;
124
- }
125
- get isClearable() {
126
- return this.clearable && !this.disabled;
127
- }
128
- ngOnInit() {
129
- const inputEl = this.inputElement.nativeElement;
130
- this.zone.runOutsideAngular(() => {
131
- if (this.mask) {
132
- this.createMaskInstance(this.mask);
133
- }
134
- fromEvent(inputEl, 'input')
135
- .pipe(debounceTime(this.inputDebounce), map((e) => {
136
- if (this.iMask) {
137
- return this.maskValue;
138
- }
139
- return e.target.value;
140
- }), enterZone(this.zone), tap((value) => {
141
- this.value = value;
142
- }), takeUntil(this.destroy$)).subscribe();
143
- });
144
- }
145
- ngOnDestroy() {
146
- this.destroy$.next();
147
- this.destroy$.complete();
148
- if (this.iMask) {
149
- this.destroyMask();
150
- }
151
- }
152
- ngOnChanges(changes) {
153
- if (!changes) {
154
- return;
155
- }
156
- const { mask } = changes;
157
- if (mask && !mask.firstChange) {
158
- const newMaskOptions = mask.currentValue;
159
- if (newMaskOptions) {
160
- if (this.iMask) {
161
- this.iMask.updateOptions(newMaskOptions);
162
- }
163
- else {
164
- this.createMaskInstance(newMaskOptions);
165
- }
166
- }
167
- else {
168
- this.destroyMask();
169
- }
170
- }
171
- }
172
- onChange(value) {
173
- // this is intentional
174
- }
175
- onTouched() {
176
- // this is intentional
177
- }
178
- ngAfterViewInit() {
179
- if (this.autoFocus) {
180
- this.inputElement.nativeElement.focus();
181
- }
182
- this.checkCustomTooltip();
183
- }
184
- writeToElement(value) {
185
- this._renderer.setProperty(this.inputElement.nativeElement, 'value', value);
186
- }
187
- writeValue(value) {
188
- if (value === this._value) {
189
- return;
190
- }
191
- this.value = value;
192
- if (this.mask) {
193
- this.maskValue = value;
194
- }
195
- else {
196
- this.writeToElement(value);
197
- }
198
- }
199
- registerOnChange(fn) {
200
- this.onChange = fn;
201
- }
202
- registerOnTouched(fn) {
203
- this.onTouched = fn;
204
- }
205
- setDisabledState(state) {
206
- this.disabled = state;
207
- }
208
- onFocus() {
209
- if (!this.uiStates.isFocused) {
210
- this.uiStates.isFocused = true;
211
- }
212
- }
213
- onBlur() {
214
- this.uiStates.isFocused = false;
215
- this.onTouched();
216
- this.blur.emit();
217
- }
218
- onTooltipClick(event) {
219
- event.preventDefault();
220
- event.stopPropagation();
221
- }
222
- onClear() {
223
- this.writeValue('');
224
- }
225
- hideTooltip() {
226
- this.tooltipVisibilityTimeout = true;
227
- setTimeout(() => {
228
- if (this.tooltipVisibilityTimeout) {
229
- this.uiStates.isTooltipVisible = false;
230
- }
231
- }, 25);
232
- }
233
- showTooltip() {
234
- this.uiStates.isTooltipVisible = true;
235
- this.tooltipVisibilityTimeout = false;
236
- }
237
- // Composition handling is taken from:
238
- // https://github.com/angular/angular/blob/11.0.3/packages/forms/src/directives/default_value_accessor.ts#L152
239
- _compositionStart() {
240
- this._composing = true;
241
- }
242
- _compositionEnd(value) {
243
- this._composing = false;
244
- if (this._compositionMode) {
245
- this.value = value;
246
- }
247
- }
248
- removePrefix(value) {
249
- if (typeof value === 'string' &&
250
- value.indexOf(this.prefix) === 0) {
251
- return value.replace(this.prefix, '');
252
- }
253
- return value;
254
- }
255
- createMaskInstance(opts) {
256
- this.iMask = new IMask.InputMask(this.inputElement.nativeElement, opts);
257
- }
258
- destroyMask() {
259
- var _a;
260
- (_a = this.iMask) === null || _a === void 0 ? void 0 : _a.destroy();
261
- this.iMask = null;
262
- }
263
- checkCustomTooltip() {
264
- this.uiStates.hasCustomTooltip = this.tooltipElement &&
265
- this.tooltipElement.nativeElement &&
266
- this.tooltipElement.nativeElement.children.length > 0;
267
- this.customTooltipChecked = true;
268
- this.changeDetector.detectChanges();
269
- }
270
- validate() {
271
- if (this.maskValidation && this.mask && !this.iMask.masked.isComplete) {
272
- return { mask: true };
273
- }
274
- return null;
275
- }
276
- }
277
- EvoInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoInputComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: COMPOSITION_BUFFER_MODE, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
278
- EvoInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: EvoInputComponent, selector: "evo-input", inputs: { autoFocus: "autoFocus", dataCp: ["data-cp", "dataCp"], icon: "icon", mask: "mask", placeholder: "placeholder", tooltip: "tooltip", type: "type", disabled: "disabled", loading: "loading", prefix: "prefix", autocomplete: "autocomplete", inputDebounce: "inputDebounce", unmask: "unmask", clearable: "clearable", maskValidation: "maskValidation", setValue: ["value", "setValue"], setSize: ["size", "setSize"], setTheme: ["theme", "setTheme"] }, outputs: { blur: "blur" }, providers: [
279
- {
280
- provide: NG_VALUE_ACCESSOR,
281
- useExisting: forwardRef(() => EvoInputComponent),
282
- multi: true,
283
- },
284
- {
285
- provide: NG_VALIDATORS,
286
- useExisting: forwardRef(() => EvoInputComponent),
287
- multi: true,
288
- },
289
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "tooltipElement", first: true, predicate: ["tooltipContainer"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"evo-input\" [evoUiClass]=\"inputClass\">\n <div class=\"evo-input__prefix-content\">\n <ng-content select=\"[evoInputPrefixContent]\"></ng-content>\n </div>\n <div class=\"evo-input__prefix-icon\">\n <ng-content select=\"[evoInputIcon]\"></ng-content>\n </div>\n <span\n class=\"evo-input__prefix\" *ngIf=\"prefix\"\n [evoUiClass]=\"{focused: !isDisabled && !!value || uiStates.isFocused }\"\n >{{prefix}}</span>\n <input\n #input\n class=\"evo-input__field\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (compositionstart)=\"_compositionStart()\"\n (compositionend)=\"_compositionEnd($event.target.value)\"\n type=\"{{ type }}\"\n [attr.autocomplete]=\"autocomplete\"\n placeholder=\"{{ placeholder }}\"\n [attr.data-cp]=\"dataCp\"\n [disabled]=\"isDisabled\"\n >\n <div *ngIf=\"loading; else sideBlock\" class=\"evo-input__loading-spinner\"></div>\n <ng-template #sideBlock>\n <div\n *ngIf=\"isClearable\"\n class=\"evo-input__clearable\"\n (click)=\"onClear()\">\n <evo-icon shape=\"decline\" class=\"evo-input__icon-clear\"></evo-icon>\n </div>\n <div class=\"evo-input__additional\" *ngIf=\"hasAdditional\">\n <evo-icon\n shape=\"help\" class=\"evo-input__tooltip\"\n *ngIf=\"tooltip || uiStates.hasCustomTooltip\"\n (mouseenter)=\"showTooltip()\"\n (mouseleave)=\"hideTooltip()\"\n (click)=\"onTooltipClick($event)\"\n ></evo-icon>\n <div class=\"evo-input__icon\" *ngIf=\"icon\">\n <img [attr.src]=\"icon\">\n </div>\n </div>\n </ng-template>\n <div\n *ngIf=\"!customTooltipChecked || uiStates.isTooltipVisible\"\n [hidden]=\"!customTooltipChecked\"\n (click)=\"onTooltipClick($event)\"\n (mouseenter)=\"showTooltip()\"\n (mouseleave)=\"hideTooltip()\"\n #tooltipContainer\n [ngClass]=\"{'evo-input__tooltip-container': tooltip}\"\n >\n {{ tooltip }}\n <ng-content select=\"[tooltip]\"></ng-content>\n </div>\n</label>\n<evo-control-error\n *ngIf=\"showErrors\"\n [errors]=\"control.errors\"\n [errorsMessages]=\"errorsMessages\"\n></evo-control-error>\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}:host{display:inline-block;--evo-input-prefix-content-margin: 0 12px}.evo-input{position:relative;cursor:text;--evo-input-height: 48px;--evo-input-border-radius: 4px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:normal;font-size:16px;font-family:\"Open Sans\",\"Helvetica Neue\",Arial,sans-serif;white-space:nowrap;background-color:#fff;border:1px solid #D6D6D6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_focused{border:solid 1px #74706F}.evo-input_disabled{color:#9b9b9b;background-color:#f4f6f8!important;cursor:default;pointer-events:none}.evo-input_invalid{border-color:#ff1817!important}.evo-input_theme-rounded:not(.evo-input_size-small){border-radius:256px}.evo-input_theme-rounded:not(.evo-input_size-small) .evo-input__field{border-radius:256px}.evo-input_size-small{height:32px}.evo-input_size-small .evo-input__field{padding:0 8px}.evo-input_size-small .evo-input__tooltip,.evo-input_size-small .evo-input__loading-spinner{flex:0 0 16px;width:16px;height:16px;margin:0 10px}.evo-input_size-small .evo-input__icon{margin-right:10px}.evo-input_size-small .evo-input__icon img{max-height:16px}.evo-input_size-small .evo-input__tooltip-container{top:100%}.evo-input_size-small .evo-input__tooltip-container:before{left:calc(100% - 28px)}@media (min-width: 1200px){.evo-input_size-small .evo-input__tooltip-container{top:calc(100% + 4px)}.evo-input_size-small .evo-input__tooltip-container:before{left:calc(50% - 6px)}}.evo-input_size-small .evo-input__prefix-icon{width:16px;height:16px}.evo-input_size-small .evo-input__prefix-icon:empty{display:none}.evo-input_size-small .evo-input__icon-clear{width:16px;height:16px}.evo-input__prefix-icon{display:flex;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-left:12px;fill:#9b9b9b}.evo-input__prefix-icon:empty{display:none}.evo-input__prefix-content{display:inline-flex;flex-shrink:0;justify-content:center;align-items:center;margin:var(--evo-input-prefix-content-margin)}.evo-input__prefix-content:empty{display:none}.evo-input__prefix-content:not(:empty)~.evo-input__field{padding-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.evo-input__field{flex-grow:1;width:100%;height:100%;margin:0;padding:0 8px 0 16px;color:inherit;font-weight:inherit;font-size:inherit;border:none;border-radius:4px;outline:none}.evo-input__field::-webkit-input-placeholder{color:#9b9b9b}.evo-input__field::-moz-placeholder{color:#9b9b9b;opacity:1}.evo-input__field:-ms-input-placeholder{color:#9b9b9b}.evo-input__field:disabled{color:#9b9b9b;background-color:#f4f6f8!important}.evo-input__field:not(:last-child){padding-right:0}.evo-input__prefix{padding-left:20px;font-size:16px;transition:color .2s}.evo-input__prefix_focused{color:#000}.evo-input__prefix:not(:empty)~.evo-input__field{padding-left:0}.evo-input__tooltip{width:24px;height:24px;margin:0 10px;cursor:pointer;-webkit-user-select:none;user-select:none;fill:#91b1b8}.evo-input__icon-clear{width:24px;height:24px;margin:0 10px;cursor:pointer;-webkit-user-select:none;user-select:none;fill:#91b1b8}.evo-input__icon{margin:0 20px 0 10px}.evo-input__icon img{display:block;width:100%;max-width:60px;height:auto;max-height:22px}.evo-input__tooltip-container{position:absolute;top:calc(100% - 2px);left:0;z-index:1;display:flex;width:100%;padding:10px 10px 10px 20px;color:#212121;line-height:normal;white-space:normal;background-color:#fff8e6;border-radius:4px;box-shadow:0 4px 12px #0003;cursor:default}.evo-input__tooltip-container[hidden]{display:none!important}.evo-input__tooltip-container:before{position:absolute;top:-20px;left:calc(100% - 34px);border:10px solid transparent;border-bottom:10px solid #FFF8E6;pointer-events:none;content:\"\"}@media (min-width: 1200px){.evo-input__tooltip-container{left:calc(50% - 22px)}.evo-input__tooltip-container:before{left:calc(50% - 12px)}}.evo-input__clearable{display:flex;justify-content:center;align-items:center}.evo-input__clearable+.evo-input__additional{margin-left:-10px}.evo-input__additional{display:flex;justify-content:center;align-items:center}.evo-input__additional:not(:last-child) .evo-input__icon{margin-right:10px}.evo-input__additional+.evo-input__loading-spinner{margin-left:0}.evo-input__loading-spinner{margin:0 20px;flex:0 0 16px;width:16px;height:16px;border:2px solid #D6D6D6;border-top-color:#21c68b;border-radius:50%;animation:spin .8s linear infinite}\n"], components: [{ type: i1.EvoIconComponent, selector: "evo-icon", inputs: ["shape", "svgWidth", "svgHeight", "svgViewBox"] }, { type: i2.EvoControlErrorComponent, selector: "evo-control-error", inputs: ["errors", "errorsMessages", "showCount"] }], directives: [{ type: i3.EvoUiClassDirective, selector: "[evoUiClass]", inputs: ["class", "evoUiClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoInputComponent, decorators: [{
291
- type: Component,
292
- args: [{
293
- selector: 'evo-input',
294
- templateUrl: './evo-input.component.html',
295
- styleUrls: ['./evo-input.component.scss'],
296
- providers: [
297
- {
298
- provide: NG_VALUE_ACCESSOR,
299
- useExisting: forwardRef(() => EvoInputComponent),
300
- multi: true,
301
- },
302
- {
303
- provide: NG_VALIDATORS,
304
- useExisting: forwardRef(() => EvoInputComponent),
305
- multi: true,
306
- },
307
- ],
308
- }]
309
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
310
- type: Optional
311
- }, {
312
- type: Inject,
313
- args: [COMPOSITION_BUFFER_MODE]
314
- }] }, { type: i0.Injector }]; }, propDecorators: { autoFocus: [{
315
- type: Input
316
- }], dataCp: [{
317
- type: Input,
318
- args: ['data-cp']
319
- }], icon: [{
320
- type: Input
321
- }], mask: [{
322
- type: Input
323
- }], placeholder: [{
324
- type: Input
325
- }], tooltip: [{
326
- type: Input
327
- }], type: [{
328
- type: Input
329
- }], disabled: [{
330
- type: Input
331
- }], loading: [{
332
- type: Input
333
- }], prefix: [{
334
- type: Input
335
- }], autocomplete: [{
336
- type: Input
337
- }], inputDebounce: [{
338
- type: Input
339
- }], unmask: [{
340
- type: Input
341
- }], clearable: [{
342
- type: Input
343
- }], maskValidation: [{
344
- type: Input
345
- }], blur: [{
346
- type: Output
347
- }], inputElement: [{
348
- type: ViewChild,
349
- args: ['input', { static: true }]
350
- }], tooltipElement: [{
351
- type: ViewChild,
352
- args: ['tooltipContainer', { static: true }]
353
- }], setValue: [{
354
- type: Input,
355
- args: ['value']
356
- }], setSize: [{
357
- type: Input,
358
- args: ['size']
359
- }], setTheme: [{
360
- type: Input,
361
- args: ['theme']
362
- }] } });
363
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2V2by1pbnB1dC9ldm8taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLWlucHV0L2V2by1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUVOLEtBQUssRUFLTCxRQUFRLEVBQ1IsTUFBTSxFQUdOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQXdCLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzVILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDOzs7Ozs7QUFFL0IsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUNyQixnQ0FBZSxDQUFBO0lBQ2Ysa0NBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCO0FBRUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdB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O3NCQUEzQixLQUFLO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENPTVBPU0lUSU9OX0JVRkZFUl9NT0RFLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEV2b0NvbnRyb2xTdGF0ZXMgfSBmcm9tICcuLi8uLi9jb21tb24vZXZvLWNvbnRyb2wtc3RhdGUtbWFuYWdlci9ldm8tY29udHJvbC1zdGF0ZXMuZW51bSc7XG5pbXBvcnQgeyBFdm9CYXNlQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvbW1vbi9ldm8tYmFzZS1jb250cm9sJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZW50ZXJab25lIH0gZnJvbSAnLi4vLi4vb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIElNYXNrIGZyb20gJ2ltYXNrJztcblxuZXhwb3J0IGVudW0gRXZvSW5wdXRTaXplcyB7XG4gICAgc21hbGwgPSAnc21hbGwnLFxuICAgIG5vcm1hbCA9ICdub3JtYWwnLFxufVxuXG5leHBvcnQgZW51bSBFdm9JbnB1dFRoZW1lIHtcbiAgICBkZWZhdWx0ID0gJ2RlZmF1bHQnLFxuICAgIHJvdW5kZWQgPSAncm91bmRlZCcsXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXZvLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXZvLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ldm8taW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFdm9JbnB1dENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEV2b0lucHV0Q29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXZvSW5wdXRDb21wb25lbnRcbiAgICBleHRlbmRzIEV2b0Jhc2VDb250cm9sXG4gICAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgVmFsaWRhdG9yIHtcblxuICAgIEBJbnB1dCgpIGF1dG9Gb2N1czogYm9vbGVhbjtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBASW5wdXQoJ2RhdGEtY3AnKSBkYXRhQ3A6IHN0cmluZztcbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbWFzazogYW55O1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHR5cGUgPSAndGV4dCc7XG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHJlZml4ID0gJyc7XG4gICAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaW5wdXREZWJvdW5jZSA9IDUwO1xuICAgIEBJbnB1dCgpIHVubWFzazogYm9vbGVhbiB8ICd0eXBlZCcgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjbGVhcmFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBtYXNrVmFsaWRhdGlvbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHtzdGF0aWM6IHRydWV9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgndG9vbHRpcENvbnRhaW5lcicsIHtzdGF0aWM6IHRydWV9KSB0b29sdGlwRWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIHNpemU6IEV2b0lucHV0U2l6ZXMgPSBFdm9JbnB1dFNpemVzLm5vcm1hbDtcbiAgICB0aGVtZTogRXZvSW5wdXRUaGVtZSA9IEV2b0lucHV0VGhlbWUuZGVmYXVsdDtcbiAgICBfdmFsdWU6IHN0cmluZztcbiAgICBjdXN0b21Ub29sdGlwQ2hlY2tlZCA9IGZhbHNlO1xuICAgIHVpU3RhdGVzID0ge1xuICAgICAgICBoYXNDdXN0b21Ub29sdGlwOiBmYWxzZSxcbiAgICAgICAgaXNUb29sdGlwVmlzaWJsZTogZmFsc2UsXG4gICAgICAgIGlzRm9jdXNlZDogZmFsc2UsXG4gICAgfTtcblxuICAgIHByaXZhdGUgaU1hc2s6IElNYXNrLklucHV0TWFzazxhbnk+O1xuXG4gICAgcHJpdmF0ZSB0b29sdGlwVmlzaWJpbGl0eVRpbWVvdXQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaXMgY3JlYXRpbmcgYSBjb21wb3NpdGlvbiBzdHJpbmcgKElNRSBldmVudHMpLiAqL1xuICAgIHByaXZhdGUgX2NvbXBvc2luZyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChDT01QT1NJVElPTl9CVUZGRVJfTU9ERSkgcHJpdmF0ZSBfY29tcG9zaXRpb25Nb2RlOiBib29sZWFuLFxuICAgICAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgQElucHV0KCd2YWx1ZScpIHNldCBzZXRWYWx1ZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIEBJbnB1dCgnc2l6ZScpIHNldCBzZXRTaXplKHNpemU6IEV2b0lucHV0U2l6ZXMgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKEV2b0lucHV0U2l6ZXNbc2l6ZV0pIHtcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA9IEV2b0lucHV0U2l6ZXNbc2l6ZV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoJ3RoZW1lJykgc2V0IHNldFRoZW1lKHRoZW1lOiBzdHJpbmcgfCBFdm9JbnB1dFRoZW1lKSB7XG4gICAgICAgIGlmIChFdm9JbnB1dFRoZW1lW3RoZW1lXSkge1xuICAgICAgICAgICAgdGhpcy50aGVtZSA9IEV2b0lucHV0VGhlbWVbdGhlbWVdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGlzRGlzYWJsZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlIHx8IHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMucmVtb3ZlUHJlZml4KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5wcmVmaXggKyAodGhpcy5fdmFsdWUgfHwgJycpKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaW5wdXRDbGFzcygpOiB7IFtjc3NDbGFzczogc3RyaW5nXTogYm9vbGVhbiB9IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdmb2N1c2VkJzogdGhpcy51aVN0YXRlcy5pc0ZvY3VzZWQsXG4gICAgICAgICAgICAnZGlzYWJsZWQnOiB0aGlzLmlzRGlzYWJsZWQsXG4gICAgICAgICAgICAndmFsaWQnOiB0aGlzLmN1cnJlbnRTdGF0ZVtFdm9Db250cm9sU3RhdGVzLnZhbGlkXSxcbiAgICAgICAgICAgICdpbnZhbGlkJzogdGhpcy5jdXJyZW50U3RhdGVbRXZvQ29udHJvbFN0YXRlcy5pbnZhbGlkXSxcbiAgICAgICAgICAgIFtgc2l6ZS0ke3RoaXMuc2l6ZX1gXTogdGhpcy5zaXplICE9PSBFdm9JbnB1dFNpemVzLm5vcm1hbCxcbiAgICAgICAgICAgIFtgdGhlbWUtJHt0aGlzLnRoZW1lfWBdOiB0cnVlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldCBoYXNBZGRpdGlvbmFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRvb2x0aXAgfHwgdGhpcy51aVN0YXRlcy5oYXNDdXN0b21Ub29sdGlwIHx8ICEhdGhpcy5pY29uO1xuICAgIH1cblxuICAgIHNldCBtYXNrVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB2YWx1ZSA/PyAnJztcbiAgICAgICAgaWYgKHRoaXMuaU1hc2spIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnVubWFzayA9PT0gJ3R5cGVkJykge1xuICAgICAgICAgICAgICAgIHRoaXMuaU1hc2sudHlwZWRWYWx1ZSA9IG5vcm1hbGl6ZWRWYWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51bm1hc2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlNYXNrLnVubWFza2VkVmFsdWUgPSBub3JtYWxpemVkVmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaU1hc2sudmFsdWUgPSBub3JtYWxpemVkVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlVG9FbGVtZW50KG5vcm1hbGl6ZWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgbWFza1ZhbHVlKCk6IGFueSB7XG4gICAgICAgIGlmICghdGhpcy5pTWFzaykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudW5tYXNrID09PSAndHlwZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pTWFzay50eXBlZFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnVubWFzaykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaU1hc2sudW5tYXNrZWRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5pTWFzay52YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaXNDbGVhcmFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsZWFyYWJsZSAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcblxuICAgICAgICBjb25zdCBpbnB1dEVsID0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudDtcblxuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tYXNrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVNYXNrSW5zdGFuY2UodGhpcy5tYXNrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZnJvbUV2ZW50KGlucHV0RWwsICdpbnB1dCcpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmlucHV0RGVib3VuY2UpLFxuICAgICAgICAgICAgICAgICAgICBtYXAoKGU6IElucHV0RXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlNYXNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFza1ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIGVudGVyWm9uZSh0aGlzLnpvbmUpLFxuICAgICAgICAgICAgICAgICAgICB0YXAoKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICApLnN1YnNjcmliZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgaWYgKHRoaXMuaU1hc2spIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveU1hc2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKCFjaGFuZ2VzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7bWFza30gPSBjaGFuZ2VzO1xuXG4gICAgICAgIGlmIChtYXNrICYmICFtYXNrLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdNYXNrT3B0aW9ucyA9IG1hc2suY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgaWYgKG5ld01hc2tPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaU1hc2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pTWFzay51cGRhdGVPcHRpb25zKG5ld01hc2tPcHRpb25zKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1hc2tJbnN0YW5jZShuZXdNYXNrT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3lNYXNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNoYW5nZSh2YWx1ZSkge1xuICAgICAgICAvLyB0aGlzIGlzIGludGVudGlvbmFsXG4gICAgfVxuXG4gICAgb25Ub3VjaGVkKCkge1xuICAgICAgICAvLyB0aGlzIGlzIGludGVudGlvbmFsXG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoZWNrQ3VzdG9tVG9vbHRpcCgpO1xuICAgIH1cblxuICAgIHdyaXRlVG9FbGVtZW50KHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMubWFzaykge1xuICAgICAgICAgICAgdGhpcy5tYXNrVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVUb0VsZW1lbnQodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gc3RhdGU7XG4gICAgfVxuXG4gICAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnVpU3RhdGVzLmlzRm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy51aVN0YXRlcy5pc0ZvY3VzZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CbHVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVpU3RhdGVzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLmJsdXIuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uVG9vbHRpcENsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgb25DbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKCcnKTtcbiAgICB9XG5cbiAgICBoaWRlVG9vbHRpcCgpIHtcbiAgICAgICAgdGhpcy50b29sdGlwVmlzaWJpbGl0eVRpbWVvdXQgPSB0cnVlO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudG9vbHRpcFZpc2liaWxpdHlUaW1lb3V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy51aVN0YXRlcy5pc1Rvb2x0aXBWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDI1KTtcbiAgICB9XG5cbiAgICBzaG93VG9vbHRpcCgpIHtcbiAgICAgICAgdGhpcy51aVN0YXRlcy5pc1Rvb2x0aXBWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50b29sdGlwVmlzaWJpbGl0eVRpbWVvdXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDb21wb3NpdGlvbiBoYW5kbGluZyBpcyB0YWtlbiBmcm9tOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi8xMS4wLjMvcGFja2FnZXMvZm9ybXMvc3JjL2RpcmVjdGl2ZXMvZGVmYXVsdF92YWx1ZV9hY2Nlc3Nvci50cyNMMTUyXG4gICAgX2NvbXBvc2l0aW9uU3RhcnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NvbXBvc2luZyA9IHRydWU7XG4gICAgfVxuXG4gICAgX2NvbXBvc2l0aW9uRW5kKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29tcG9zaW5nID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLl9jb21wb3NpdGlvbk1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlUHJlZml4KHZhbHVlOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICB2YWx1ZS5pbmRleE9mKHRoaXMucHJlZml4KSA9PT0gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKHRoaXMucHJlZml4LCAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlTWFza0luc3RhbmNlKG9wdHM6IGFueSkge1xuICAgICAgICB0aGlzLmlNYXNrID0gbmV3IElNYXNrLklucHV0TWFzayhcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBvcHRzXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95TWFzaygpIHtcbiAgICAgICAgdGhpcy5pTWFzaz8uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmlNYXNrID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrQ3VzdG9tVG9vbHRpcCgpIHtcbiAgICAgICAgdGhpcy51aVN0YXRlcy5oYXNDdXN0b21Ub29sdGlwID0gdGhpcy50b29sdGlwRWxlbWVudCAmJlxuICAgICAgICAgICAgdGhpcy50b29sdGlwRWxlbWVudC5uYXRpdmVFbGVtZW50ICYmXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICAgICAgdGhpcy5jdXN0b21Ub29sdGlwQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKCkge1xuICAgICAgICBpZiAodGhpcy5tYXNrVmFsaWRhdGlvbiAmJiB0aGlzLm1hc2sgJiYgIXRoaXMuaU1hc2subWFza2VkLmlzQ29tcGxldGUpIHtcbiAgICAgICAgICAgIHJldHVybiB7IG1hc2s6IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJldm8taW5wdXRcIiBbZXZvVWlDbGFzc109XCJpbnB1dENsYXNzXCI+XG4gICAgPGRpdiBjbGFzcz1cImV2by1pbnB1dF9fcHJlZml4LWNvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2V2b0lucHV0UHJlZml4Q29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImV2by1pbnB1dF9fcHJlZml4LWljb25cIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2V2b0lucHV0SWNvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJldm8taW5wdXRfX3ByZWZpeFwiICpuZ0lmPVwicHJlZml4XCJcbiAgICAgICAgW2V2b1VpQ2xhc3NdPVwie2ZvY3VzZWQ6ICFpc0Rpc2FibGVkICYmICEhdmFsdWUgfHwgdWlTdGF0ZXMuaXNGb2N1c2VkIH1cIlxuICAgID57e3ByZWZpeH19PC9zcGFuPlxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgY2xhc3M9XCJldm8taW5wdXRfX2ZpZWxkXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgKGNvbXBvc2l0aW9uc3RhcnQpPVwiX2NvbXBvc2l0aW9uU3RhcnQoKVwiXG4gICAgICAgIChjb21wb3NpdGlvbmVuZCk9XCJfY29tcG9zaXRpb25FbmQoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICB0eXBlPVwie3sgdHlwZSB9fVwiXG4gICAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICAgICAgW2F0dHIuZGF0YS1jcF09XCJkYXRhQ3BcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgPlxuICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nOyBlbHNlIHNpZGVCbG9ja1wiIGNsYXNzPVwiZXZvLWlucHV0X19sb2FkaW5nLXNwaW5uZXJcIj48L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI3NpZGVCbG9jaz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJpc0NsZWFyYWJsZVwiXG4gICAgICAgICAgICBjbGFzcz1cImV2by1pbnB1dF9fY2xlYXJhYmxlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyKClcIj5cbiAgICAgICAgICAgIDxldm8taWNvbiBzaGFwZT1cImRlY2xpbmVcIiBjbGFzcz1cImV2by1pbnB1dF9faWNvbi1jbGVhclwiPjwvZXZvLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXZvLWlucHV0X19hZGRpdGlvbmFsXCIgKm5nSWY9XCJoYXNBZGRpdGlvbmFsXCI+XG4gICAgICAgICAgICA8ZXZvLWljb25cbiAgICAgICAgICAgICAgICBzaGFwZT1cImhlbHBcIiBjbGFzcz1cImV2by1pbnB1dF9fdG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sdGlwIHx8IHVpU3RhdGVzLmhhc0N1c3RvbVRvb2x0aXBcIlxuICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInNob3dUb29sdGlwKClcIlxuICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImhpZGVUb29sdGlwKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvb2x0aXBDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2V2by1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2by1pbnB1dF9faWNvblwiICpuZ0lmPVwiaWNvblwiPlxuICAgICAgICAgICAgICAgIDxpbWcgW2F0dHIuc3JjXT1cImljb25cIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCIhY3VzdG9tVG9vbHRpcENoZWNrZWQgfHwgdWlTdGF0ZXMuaXNUb29sdGlwVmlzaWJsZVwiXG4gICAgICAgIFtoaWRkZW5dPVwiIWN1c3RvbVRvb2x0aXBDaGVja2VkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uVG9vbHRpcENsaWNrKCRldmVudClcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJzaG93VG9vbHRpcCgpXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwiaGlkZVRvb2x0aXAoKVwiXG4gICAgICAgICN0b29sdGlwQ29udGFpbmVyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnZXZvLWlucHV0X190b29sdGlwLWNvbnRhaW5lcic6IHRvb2x0aXB9XCJcbiAgICA+XG4gICAgICAgIHt7IHRvb2x0aXAgfX1cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Rvb2x0aXBdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9sYWJlbD5cbjxldm8tY29udHJvbC1lcnJvclxuICAgICpuZ0lmPVwic2hvd0Vycm9yc1wiXG4gICAgW2Vycm9yc109XCJjb250cm9sLmVycm9yc1wiXG4gICAgW2Vycm9yc01lc3NhZ2VzXT1cImVycm9yc01lc3NhZ2VzXCJcbj48L2V2by1jb250cm9sLWVycm9yPlxuIl19
1
+ import { Component, EventEmitter, forwardRef, Inject, Input, Optional, Output, ViewChild, } from '@angular/core';
2
+ import { COMPOSITION_BUFFER_MODE, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { EvoControlStates } from '../../common/evo-control-state-manager/evo-control-states.enum';
4
+ import { EvoBaseControl } from '../../common/evo-base-control';
5
+ import { fromEvent, Subject } from 'rxjs';
6
+ import { debounceTime, map, takeUntil, tap } from 'rxjs/operators';
7
+ import { enterZone } from '../../operators';
8
+ import * as IMask from 'imask';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../evo-icon/evo-icon.component";
11
+ import * as i2 from "../evo-control-error/evo-control-error.component";
12
+ import * as i3 from "../../directives/evo-ui-class.directive";
13
+ import * as i4 from "@angular/common";
14
+ export var EvoInputSizes;
15
+ (function (EvoInputSizes) {
16
+ EvoInputSizes["small"] = "small";
17
+ EvoInputSizes["normal"] = "normal";
18
+ })(EvoInputSizes || (EvoInputSizes = {}));
19
+ export var EvoInputTheme;
20
+ (function (EvoInputTheme) {
21
+ EvoInputTheme["default"] = "default";
22
+ EvoInputTheme["rounded"] = "rounded";
23
+ })(EvoInputTheme || (EvoInputTheme = {}));
24
+ export class EvoInputComponent extends EvoBaseControl {
25
+ constructor(zone, changeDetector, _renderer, _compositionMode, injector) {
26
+ super(injector);
27
+ this.zone = zone;
28
+ this.changeDetector = changeDetector;
29
+ this._renderer = _renderer;
30
+ this._compositionMode = _compositionMode;
31
+ this.injector = injector;
32
+ this.type = 'text';
33
+ this.disabled = false;
34
+ this.loading = false;
35
+ this.prefix = '';
36
+ this.inputDebounce = 50;
37
+ this.unmask = false;
38
+ this.clearable = false;
39
+ this.maskValidation = false;
40
+ this.blur = new EventEmitter();
41
+ this.size = EvoInputSizes.normal;
42
+ this.theme = EvoInputTheme.default;
43
+ this.customTooltipChecked = false;
44
+ this.uiStates = {
45
+ hasCustomTooltip: false,
46
+ isTooltipVisible: false,
47
+ isFocused: false,
48
+ };
49
+ this.tooltipVisibilityTimeout = false;
50
+ this.destroy$ = new Subject();
51
+ /** Whether the user is creating a composition string (IME events). */
52
+ this._composing = false;
53
+ }
54
+ set setValue(value) {
55
+ this._value = value;
56
+ }
57
+ set setSize(size) {
58
+ if (EvoInputSizes[size]) {
59
+ this.size = EvoInputSizes[size];
60
+ }
61
+ }
62
+ set setTheme(theme) {
63
+ if (EvoInputTheme[theme]) {
64
+ this.theme = EvoInputTheme[theme];
65
+ }
66
+ }
67
+ get isDisabled() {
68
+ if (this.loading) {
69
+ return true;
70
+ }
71
+ return this.disabled;
72
+ }
73
+ get value() {
74
+ return this._value;
75
+ }
76
+ set value(value) {
77
+ if (value || this._value) {
78
+ this._value = this.removePrefix(value);
79
+ this.onChange(this.prefix + (this._value || ''));
80
+ this.changeDetector.markForCheck();
81
+ }
82
+ }
83
+ get inputClass() {
84
+ return {
85
+ 'focused': this.uiStates.isFocused,
86
+ 'disabled': this.isDisabled,
87
+ 'valid': this.currentState[EvoControlStates.valid],
88
+ 'invalid': this.currentState[EvoControlStates.invalid],
89
+ [`size-${this.size}`]: this.size !== EvoInputSizes.normal,
90
+ [`theme-${this.theme}`]: true,
91
+ };
92
+ }
93
+ get hasAdditional() {
94
+ return !!this.tooltip || this.uiStates.hasCustomTooltip || !!this.icon;
95
+ }
96
+ set maskValue(value) {
97
+ const normalizedValue = value !== null && value !== void 0 ? value : '';
98
+ if (this.iMask) {
99
+ if (this.unmask === 'typed') {
100
+ this.iMask.typedValue = normalizedValue;
101
+ }
102
+ else if (this.unmask) {
103
+ this.iMask.unmaskedValue = normalizedValue;
104
+ }
105
+ else {
106
+ this.iMask.value = normalizedValue;
107
+ }
108
+ }
109
+ else {
110
+ this.writeToElement(normalizedValue);
111
+ }
112
+ }
113
+ get maskValue() {
114
+ if (!this.iMask) {
115
+ return this.inputElement.nativeElement.value;
116
+ }
117
+ if (this.unmask === 'typed') {
118
+ return this.iMask.typedValue;
119
+ }
120
+ if (this.unmask) {
121
+ return this.iMask.unmaskedValue;
122
+ }
123
+ return this.iMask.value;
124
+ }
125
+ get isClearable() {
126
+ return this.clearable && !this.disabled;
127
+ }
128
+ ngOnInit() {
129
+ const inputEl = this.inputElement.nativeElement;
130
+ this.zone.runOutsideAngular(() => {
131
+ if (this.mask) {
132
+ this.createMaskInstance(this.mask);
133
+ }
134
+ fromEvent(inputEl, 'input')
135
+ .pipe(debounceTime(this.inputDebounce), map((e) => {
136
+ if (this.iMask) {
137
+ return this.maskValue;
138
+ }
139
+ return e.target.value;
140
+ }), enterZone(this.zone), tap((value) => {
141
+ this.value = value;
142
+ }), takeUntil(this.destroy$)).subscribe();
143
+ });
144
+ }
145
+ ngOnDestroy() {
146
+ this.destroy$.next();
147
+ this.destroy$.complete();
148
+ if (this.iMask) {
149
+ this.destroyMask();
150
+ }
151
+ }
152
+ ngOnChanges(changes) {
153
+ if (!changes) {
154
+ return;
155
+ }
156
+ const { mask } = changes;
157
+ if (mask && !mask.firstChange) {
158
+ const newMaskOptions = mask.currentValue;
159
+ if (newMaskOptions) {
160
+ if (this.iMask) {
161
+ this.iMask.updateOptions(newMaskOptions);
162
+ }
163
+ else {
164
+ this.createMaskInstance(newMaskOptions);
165
+ }
166
+ }
167
+ else {
168
+ this.destroyMask();
169
+ }
170
+ }
171
+ }
172
+ onChange(value) {
173
+ // this is intentional
174
+ }
175
+ onTouched() {
176
+ // this is intentional
177
+ }
178
+ ngAfterViewInit() {
179
+ if (this.autoFocus) {
180
+ this.inputElement.nativeElement.focus();
181
+ }
182
+ this.checkCustomTooltip();
183
+ }
184
+ writeToElement(value) {
185
+ this._renderer.setProperty(this.inputElement.nativeElement, 'value', value);
186
+ }
187
+ writeValue(value) {
188
+ if (value === this._value) {
189
+ return;
190
+ }
191
+ this.value = value;
192
+ if (this.mask) {
193
+ this.maskValue = value;
194
+ }
195
+ else {
196
+ this.writeToElement(value);
197
+ }
198
+ }
199
+ registerOnChange(fn) {
200
+ this.onChange = fn;
201
+ }
202
+ registerOnTouched(fn) {
203
+ this.onTouched = fn;
204
+ }
205
+ setDisabledState(state) {
206
+ this.disabled = state;
207
+ }
208
+ onFocus() {
209
+ if (!this.uiStates.isFocused) {
210
+ this.uiStates.isFocused = true;
211
+ }
212
+ }
213
+ onBlur() {
214
+ this.uiStates.isFocused = false;
215
+ this.onTouched();
216
+ this.blur.emit();
217
+ }
218
+ onTooltipClick(event) {
219
+ event.preventDefault();
220
+ event.stopPropagation();
221
+ }
222
+ onClear() {
223
+ this.writeValue('');
224
+ }
225
+ hideTooltip() {
226
+ this.tooltipVisibilityTimeout = true;
227
+ setTimeout(() => {
228
+ if (this.tooltipVisibilityTimeout) {
229
+ this.uiStates.isTooltipVisible = false;
230
+ }
231
+ }, 25);
232
+ }
233
+ showTooltip() {
234
+ this.uiStates.isTooltipVisible = true;
235
+ this.tooltipVisibilityTimeout = false;
236
+ }
237
+ // Composition handling is taken from:
238
+ // https://github.com/angular/angular/blob/11.0.3/packages/forms/src/directives/default_value_accessor.ts#L152
239
+ _compositionStart() {
240
+ this._composing = true;
241
+ }
242
+ _compositionEnd(value) {
243
+ this._composing = false;
244
+ if (this._compositionMode) {
245
+ this.value = value;
246
+ }
247
+ }
248
+ removePrefix(value) {
249
+ if (typeof value === 'string' &&
250
+ value.indexOf(this.prefix) === 0) {
251
+ return value.replace(this.prefix, '');
252
+ }
253
+ return value;
254
+ }
255
+ createMaskInstance(opts) {
256
+ this.iMask = new IMask.InputMask(this.inputElement.nativeElement, opts);
257
+ }
258
+ destroyMask() {
259
+ var _a;
260
+ (_a = this.iMask) === null || _a === void 0 ? void 0 : _a.destroy();
261
+ this.iMask = null;
262
+ }
263
+ checkCustomTooltip() {
264
+ this.uiStates.hasCustomTooltip = this.tooltipElement &&
265
+ this.tooltipElement.nativeElement &&
266
+ this.tooltipElement.nativeElement.children.length > 0;
267
+ this.customTooltipChecked = true;
268
+ this.changeDetector.detectChanges();
269
+ }
270
+ validate() {
271
+ if (this.maskValidation && this.mask && !this.iMask.masked.isComplete) {
272
+ return { mask: true };
273
+ }
274
+ return null;
275
+ }
276
+ }
277
+ EvoInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoInputComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: COMPOSITION_BUFFER_MODE, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
278
+ EvoInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: EvoInputComponent, selector: "evo-input", inputs: { autoFocus: "autoFocus", dataCp: ["data-cp", "dataCp"], icon: "icon", mask: "mask", placeholder: "placeholder", tooltip: "tooltip", type: "type", disabled: "disabled", loading: "loading", prefix: "prefix", autocomplete: "autocomplete", inputDebounce: "inputDebounce", unmask: "unmask", clearable: "clearable", maskValidation: "maskValidation", setValue: ["value", "setValue"], setSize: ["size", "setSize"], setTheme: ["theme", "setTheme"] }, outputs: { blur: "blur" }, providers: [
279
+ {
280
+ provide: NG_VALUE_ACCESSOR,
281
+ useExisting: forwardRef(() => EvoInputComponent),
282
+ multi: true,
283
+ },
284
+ {
285
+ provide: NG_VALIDATORS,
286
+ useExisting: forwardRef(() => EvoInputComponent),
287
+ multi: true,
288
+ },
289
+ ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "tooltipElement", first: true, predicate: ["tooltipContainer"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"evo-input\" [evoUiClass]=\"inputClass\">\r\n <div class=\"evo-input__prefix-content\">\r\n <ng-content select=\"[evoInputPrefixContent]\"></ng-content>\r\n </div>\r\n <div class=\"evo-input__prefix-icon\">\r\n <ng-content select=\"[evoInputIcon]\"></ng-content>\r\n </div>\r\n <span\r\n class=\"evo-input__prefix\" *ngIf=\"prefix\"\r\n [evoUiClass]=\"{focused: !isDisabled && !!value || uiStates.isFocused }\"\r\n >{{prefix}}</span>\r\n <input\r\n #input\r\n class=\"evo-input__field\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n (compositionstart)=\"_compositionStart()\"\r\n (compositionend)=\"_compositionEnd($event.target.value)\"\r\n type=\"{{ type }}\"\r\n [attr.autocomplete]=\"autocomplete\"\r\n placeholder=\"{{ placeholder }}\"\r\n [attr.data-cp]=\"dataCp\"\r\n [disabled]=\"isDisabled\"\r\n >\r\n <div *ngIf=\"loading; else sideBlock\" class=\"evo-input__loading-spinner\"></div>\r\n <ng-template #sideBlock>\r\n <div\r\n *ngIf=\"isClearable\"\r\n class=\"evo-input__clearable\"\r\n (click)=\"onClear()\">\r\n <evo-icon shape=\"decline\" class=\"evo-input__icon-clear\"></evo-icon>\r\n </div>\r\n <div class=\"evo-input__additional\" *ngIf=\"hasAdditional\">\r\n <evo-icon\r\n shape=\"help\" class=\"evo-input__tooltip\"\r\n *ngIf=\"tooltip || uiStates.hasCustomTooltip\"\r\n (mouseenter)=\"showTooltip()\"\r\n (mouseleave)=\"hideTooltip()\"\r\n (click)=\"onTooltipClick($event)\"\r\n ></evo-icon>\r\n <div class=\"evo-input__icon\" *ngIf=\"icon\">\r\n <img [attr.src]=\"icon\">\r\n </div>\r\n </div>\r\n </ng-template>\r\n <div\r\n *ngIf=\"!customTooltipChecked || uiStates.isTooltipVisible\"\r\n [hidden]=\"!customTooltipChecked\"\r\n (click)=\"onTooltipClick($event)\"\r\n (mouseenter)=\"showTooltip()\"\r\n (mouseleave)=\"hideTooltip()\"\r\n #tooltipContainer\r\n [ngClass]=\"{'evo-input__tooltip-container': tooltip}\"\r\n >\r\n {{ tooltip }}\r\n <ng-content select=\"[tooltip]\"></ng-content>\r\n </div>\r\n</label>\r\n<evo-control-error\r\n *ngIf=\"showErrors\"\r\n [errors]=\"control.errors\"\r\n [errorsMessages]=\"errorsMessages\"\r\n></evo-control-error>\r\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}:host{display:inline-block;--evo-input-prefix-content-margin: 0 12px}.evo-input{position:relative;cursor:text;--evo-input-height: 48px;--evo-input-border-radius: 4px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:normal;font-size:16px;font-family:\"Open Sans\",\"Helvetica Neue\",Arial,sans-serif;white-space:nowrap;background-color:#fff;border:1px solid #D6D6D6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_focused{border:solid 1px #74706F}.evo-input_disabled{color:#9b9b9b;background-color:#f4f6f8!important;cursor:default;pointer-events:none}.evo-input_invalid{border-color:#ff1817!important}.evo-input_theme-rounded:not(.evo-input_size-small){border-radius:256px}.evo-input_theme-rounded:not(.evo-input_size-small) .evo-input__field{border-radius:256px}.evo-input_size-small{height:32px}.evo-input_size-small .evo-input__field{padding:0 8px}.evo-input_size-small .evo-input__tooltip,.evo-input_size-small .evo-input__loading-spinner{flex:0 0 16px;width:16px;height:16px;margin:0 10px}.evo-input_size-small .evo-input__icon{margin-right:10px}.evo-input_size-small .evo-input__icon img{max-height:16px}.evo-input_size-small .evo-input__tooltip-container{top:100%}.evo-input_size-small .evo-input__tooltip-container:before{left:calc(100% - 28px)}@media (min-width: 1200px){.evo-input_size-small .evo-input__tooltip-container{top:calc(100% + 4px)}.evo-input_size-small .evo-input__tooltip-container:before{left:calc(50% - 6px)}}.evo-input_size-small .evo-input__prefix-icon{width:16px;height:16px}.evo-input_size-small .evo-input__prefix-icon:empty{display:none}.evo-input_size-small .evo-input__icon-clear{width:16px;height:16px}.evo-input__prefix-icon{display:flex;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-left:12px;fill:#9b9b9b}.evo-input__prefix-icon:empty{display:none}.evo-input__prefix-content{display:inline-flex;flex-shrink:0;justify-content:center;align-items:center;margin:var(--evo-input-prefix-content-margin)}.evo-input__prefix-content:empty{display:none}.evo-input__prefix-content:not(:empty)~.evo-input__field{padding-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.evo-input__field{flex-grow:1;width:100%;height:100%;margin:0;padding:0 8px 0 16px;color:inherit;font-weight:inherit;font-size:inherit;border:none;border-radius:4px;outline:none}.evo-input__field::-webkit-input-placeholder{color:#9b9b9b}.evo-input__field::-moz-placeholder{color:#9b9b9b;opacity:1}.evo-input__field:-ms-input-placeholder{color:#9b9b9b}.evo-input__field:disabled{color:#9b9b9b;background-color:#f4f6f8!important}.evo-input__field:not(:last-child){padding-right:0}.evo-input__prefix{padding-left:20px;font-size:16px;transition:color .2s}.evo-input__prefix_focused{color:#000}.evo-input__prefix:not(:empty)~.evo-input__field{padding-left:0}.evo-input__tooltip{width:24px;height:24px;margin:0 10px;cursor:pointer;-webkit-user-select:none;user-select:none;fill:#91b1b8}.evo-input__icon-clear{width:24px;height:24px;margin:0 10px;cursor:pointer;-webkit-user-select:none;user-select:none;fill:#91b1b8}.evo-input__icon{margin:0 20px 0 10px}.evo-input__icon img{display:block;width:100%;max-width:60px;height:auto;max-height:22px}.evo-input__tooltip-container{position:absolute;top:calc(100% - 2px);left:0;z-index:1;display:flex;width:100%;padding:10px 10px 10px 20px;color:#212121;line-height:normal;white-space:normal;background-color:#fff8e6;border-radius:4px;box-shadow:0 4px 12px #0003;cursor:default}.evo-input__tooltip-container[hidden]{display:none!important}.evo-input__tooltip-container:before{position:absolute;top:-20px;left:calc(100% - 34px);border:10px solid transparent;border-bottom:10px solid #FFF8E6;pointer-events:none;content:\"\"}@media (min-width: 1200px){.evo-input__tooltip-container{left:calc(50% - 22px)}.evo-input__tooltip-container:before{left:calc(50% - 12px)}}.evo-input__clearable{display:flex;justify-content:center;align-items:center}.evo-input__clearable+.evo-input__additional{margin-left:-10px}.evo-input__additional{display:flex;justify-content:center;align-items:center}.evo-input__additional:not(:last-child) .evo-input__icon{margin-right:10px}.evo-input__additional+.evo-input__loading-spinner{margin-left:0}.evo-input__loading-spinner{margin:0 20px;flex:0 0 16px;width:16px;height:16px;border:2px solid #D6D6D6;border-top-color:#21c68b;border-radius:50%;animation:spin .8s linear infinite}\n"], components: [{ type: i1.EvoIconComponent, selector: "evo-icon", inputs: ["shape", "svgWidth", "svgHeight", "svgViewBox"] }, { type: i2.EvoControlErrorComponent, selector: "evo-control-error", inputs: ["errors", "errorsMessages", "showCount"] }], directives: [{ type: i3.EvoUiClassDirective, selector: "[evoUiClass]", inputs: ["class", "evoUiClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoInputComponent, decorators: [{
291
+ type: Component,
292
+ args: [{
293
+ selector: 'evo-input',
294
+ templateUrl: './evo-input.component.html',
295
+ styleUrls: ['./evo-input.component.scss'],
296
+ providers: [
297
+ {
298
+ provide: NG_VALUE_ACCESSOR,
299
+ useExisting: forwardRef(() => EvoInputComponent),
300
+ multi: true,
301
+ },
302
+ {
303
+ provide: NG_VALIDATORS,
304
+ useExisting: forwardRef(() => EvoInputComponent),
305
+ multi: true,
306
+ },
307
+ ],
308
+ }]
309
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
310
+ type: Optional
311
+ }, {
312
+ type: Inject,
313
+ args: [COMPOSITION_BUFFER_MODE]
314
+ }] }, { type: i0.Injector }]; }, propDecorators: { autoFocus: [{
315
+ type: Input
316
+ }], dataCp: [{
317
+ type: Input,
318
+ args: ['data-cp']
319
+ }], icon: [{
320
+ type: Input
321
+ }], mask: [{
322
+ type: Input
323
+ }], placeholder: [{
324
+ type: Input
325
+ }], tooltip: [{
326
+ type: Input
327
+ }], type: [{
328
+ type: Input
329
+ }], disabled: [{
330
+ type: Input
331
+ }], loading: [{
332
+ type: Input
333
+ }], prefix: [{
334
+ type: Input
335
+ }], autocomplete: [{
336
+ type: Input
337
+ }], inputDebounce: [{
338
+ type: Input
339
+ }], unmask: [{
340
+ type: Input
341
+ }], clearable: [{
342
+ type: Input
343
+ }], maskValidation: [{
344
+ type: Input
345
+ }], blur: [{
346
+ type: Output
347
+ }], inputElement: [{
348
+ type: ViewChild,
349
+ args: ['input', { static: true }]
350
+ }], tooltipElement: [{
351
+ type: ViewChild,
352
+ args: ['tooltipContainer', { static: true }]
353
+ }], setValue: [{
354
+ type: Input,
355
+ args: ['value']
356
+ }], setSize: [{
357
+ type: Input,
358
+ args: ['size']
359
+ }], setTheme: [{
360
+ type: Input,
361
+ args: ['theme']
362
+ }] } });
363
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2V2by1pbnB1dC9ldm8taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLWlucHV0L2V2by1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUVOLEtBQUssRUFLTCxRQUFRLEVBQ1IsTUFBTSxFQUdOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQXdCLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzVILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDOzs7Ozs7QUFFL0IsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUNyQixnQ0FBZSxDQUFBO0lBQ2Ysa0NBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCO0FBRUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdB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O3NCQUEzQixLQUFLO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBJbmplY3QsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgTmdab25lLFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDT01QT1NJVElPTl9CVUZGRVJfTU9ERSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEV2b0NvbnRyb2xTdGF0ZXMgfSBmcm9tICcuLi8uLi9jb21tb24vZXZvLWNvbnRyb2wtc3RhdGUtbWFuYWdlci9ldm8tY29udHJvbC1zdGF0ZXMuZW51bSc7XHJcbmltcG9ydCB7IEV2b0Jhc2VDb250cm9sIH0gZnJvbSAnLi4vLi4vY29tbW9uL2V2by1iYXNlLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBlbnRlclpvbmUgfSBmcm9tICcuLi8uLi9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgKiBhcyBJTWFzayBmcm9tICdpbWFzayc7XHJcblxyXG5leHBvcnQgZW51bSBFdm9JbnB1dFNpemVzIHtcclxuICAgIHNtYWxsID0gJ3NtYWxsJyxcclxuICAgIG5vcm1hbCA9ICdub3JtYWwnLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBFdm9JbnB1dFRoZW1lIHtcclxuICAgIGRlZmF1bHQgPSAnZGVmYXVsdCcsXHJcbiAgICByb3VuZGVkID0gJ3JvdW5kZWQnLFxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnZXZvLWlucHV0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldm8taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZXZvLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFdm9JbnB1dENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFdm9JbnB1dENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdm9JbnB1dENvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBFdm9CYXNlQ29udHJvbFxyXG4gICAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgVmFsaWRhdG9yIHtcclxuXHJcbiAgICBASW5wdXQoKSBhdXRvRm9jdXM6IGJvb2xlYW47XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgIEBJbnB1dCgnZGF0YS1jcCcpIGRhdGFDcDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgbWFzazogYW55O1xyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHRvb2x0aXA6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHR5cGUgPSAndGV4dCc7XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcHJlZml4ID0gJyc7XHJcbiAgICBASW5wdXQoKSBhdXRvY29tcGxldGU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGlucHV0RGVib3VuY2UgPSA1MDtcclxuICAgIEBJbnB1dCgpIHVubWFzazogYm9vbGVhbiB8ICd0eXBlZCcgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGNsZWFyYWJsZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbWFza1ZhbGlkYXRpb24gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHtzdGF0aWM6IHRydWV9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcbiAgICBAVmlld0NoaWxkKCd0b29sdGlwQ29udGFpbmVyJywge3N0YXRpYzogdHJ1ZX0pIHRvb2x0aXBFbGVtZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICAgIHNpemU6IEV2b0lucHV0U2l6ZXMgPSBFdm9JbnB1dFNpemVzLm5vcm1hbDtcclxuICAgIHRoZW1lOiBFdm9JbnB1dFRoZW1lID0gRXZvSW5wdXRUaGVtZS5kZWZhdWx0O1xyXG4gICAgX3ZhbHVlOiBzdHJpbmc7XHJcbiAgICBjdXN0b21Ub29sdGlwQ2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgdWlTdGF0ZXMgPSB7XHJcbiAgICAgICAgaGFzQ3VzdG9tVG9vbHRpcDogZmFsc2UsXHJcbiAgICAgICAgaXNUb29sdGlwVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgaXNGb2N1c2VkOiBmYWxzZSxcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBpTWFzazogSU1hc2suSW5wdXRNYXNrPGFueT47XHJcblxyXG4gICAgcHJpdmF0ZSB0b29sdGlwVmlzaWJpbGl0eVRpbWVvdXQgPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICAvKiogV2hldGhlciB0aGUgdXNlciBpcyBjcmVhdGluZyBhIGNvbXBvc2l0aW9uIHN0cmluZyAoSU1FIGV2ZW50cykuICovXHJcbiAgICBwcml2YXRlIF9jb21wb3NpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcclxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQ09NUE9TSVRJT05fQlVGRkVSX01PREUpIHByaXZhdGUgX2NvbXBvc2l0aW9uTW9kZTogYm9vbGVhbixcclxuICAgICAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgndmFsdWUnKSBzZXQgc2V0VmFsdWUodmFsdWUpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgnc2l6ZScpIHNldCBzZXRTaXplKHNpemU6IEV2b0lucHV0U2l6ZXMgfCBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoRXZvSW5wdXRTaXplc1tzaXplXSkge1xyXG4gICAgICAgICAgICB0aGlzLnNpemUgPSBFdm9JbnB1dFNpemVzW3NpemVdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoJ3RoZW1lJykgc2V0IHNldFRoZW1lKHRoZW1lOiBzdHJpbmcgfCBFdm9JbnB1dFRoZW1lKSB7XHJcbiAgICAgICAgaWYgKEV2b0lucHV0VGhlbWVbdGhlbWVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGhlbWUgPSBFdm9JbnB1dFRoZW1lW3RoZW1lXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzRGlzYWJsZWQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubG9hZGluZykge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgaWYgKHZhbHVlIHx8IHRoaXMuX3ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5yZW1vdmVQcmVmaXgodmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMucHJlZml4ICsgKHRoaXMuX3ZhbHVlIHx8ICcnKSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpbnB1dENsYXNzKCk6IHsgW2Nzc0NsYXNzOiBzdHJpbmddOiBib29sZWFuIH0ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdmb2N1c2VkJzogdGhpcy51aVN0YXRlcy5pc0ZvY3VzZWQsXHJcbiAgICAgICAgICAgICdkaXNhYmxlZCc6IHRoaXMuaXNEaXNhYmxlZCxcclxuICAgICAgICAgICAgJ3ZhbGlkJzogdGhpcy5jdXJyZW50U3RhdGVbRXZvQ29udHJvbFN0YXRlcy52YWxpZF0sXHJcbiAgICAgICAgICAgICdpbnZhbGlkJzogdGhpcy5jdXJyZW50U3RhdGVbRXZvQ29udHJvbFN0YXRlcy5pbnZhbGlkXSxcclxuICAgICAgICAgICAgW2BzaXplLSR7dGhpcy5zaXplfWBdOiB0aGlzLnNpemUgIT09IEV2b0lucHV0U2l6ZXMubm9ybWFsLFxyXG4gICAgICAgICAgICBbYHRoZW1lLSR7dGhpcy50aGVtZX1gXTogdHJ1ZSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBoYXNBZGRpdGlvbmFsKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMudG9vbHRpcCB8fCB0aGlzLnVpU3RhdGVzLmhhc0N1c3RvbVRvb2x0aXAgfHwgISF0aGlzLmljb247XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IG1hc2tWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFZhbHVlID0gdmFsdWUgPz8gJyc7XHJcbiAgICAgICAgaWYgKHRoaXMuaU1hc2spIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudW5tYXNrID09PSAndHlwZWQnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlNYXNrLnR5cGVkVmFsdWUgPSBub3JtYWxpemVkVmFsdWU7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51bm1hc2spIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaU1hc2sudW5tYXNrZWRWYWx1ZSA9IG5vcm1hbGl6ZWRWYWx1ZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaU1hc2sudmFsdWUgPSBub3JtYWxpemVkVmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLndyaXRlVG9FbGVtZW50KG5vcm1hbGl6ZWRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBtYXNrVmFsdWUoKTogYW55IHtcclxuICAgICAgICBpZiAoIXRoaXMuaU1hc2spIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnVubWFzayA9PT0gJ3R5cGVkJykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pTWFzay50eXBlZFZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy51bm1hc2spIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaU1hc2sudW5tYXNrZWRWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaU1hc2sudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzQ2xlYXJhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNsZWFyYWJsZSAmJiAhdGhpcy5kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICAgICAgY29uc3QgaW5wdXRFbCA9IHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXNrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU1hc2tJbnN0YW5jZSh0aGlzLm1hc2spO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBmcm9tRXZlbnQoaW5wdXRFbCwgJ2lucHV0JylcclxuICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmlucHV0RGVib3VuY2UpLFxyXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoZTogSW5wdXRFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pTWFzaykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFza1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgZW50ZXJab25lKHRoaXMuem9uZSksXHJcbiAgICAgICAgICAgICAgICAgICAgdGFwKCh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgICAgICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgICAgICBpZiAodGhpcy5pTWFzaykge1xyXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lNYXNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoIWNoYW5nZXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qge21hc2t9ID0gY2hhbmdlcztcclxuXHJcbiAgICAgICAgaWYgKG1hc2sgJiYgIW1hc2suZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3TWFza09wdGlvbnMgPSBtYXNrLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICAgICAgaWYgKG5ld01hc2tPcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pTWFzaykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaU1hc2sudXBkYXRlT3B0aW9ucyhuZXdNYXNrT3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTWFza0luc3RhbmNlKG5ld01hc2tPcHRpb25zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveU1hc2soKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSh2YWx1ZSkge1xyXG4gICAgICAgIC8vIHRoaXMgaXMgaW50ZW50aW9uYWxcclxuICAgIH1cclxuXHJcbiAgICBvblRvdWNoZWQoKSB7XHJcbiAgICAgICAgLy8gdGhpcyBpcyBpbnRlbnRpb25hbFxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNoZWNrQ3VzdG9tVG9vbHRpcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHdyaXRlVG9FbGVtZW50KHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl92YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1hc2spIHtcclxuICAgICAgICAgICAgdGhpcy5tYXNrVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLndyaXRlVG9FbGVtZW50KHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkU3RhdGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gc3RhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgb25Gb2N1cygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMudWlTdGF0ZXMuaXNGb2N1c2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudWlTdGF0ZXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25CbHVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudWlTdGF0ZXMuaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLmJsdXIuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVG9vbHRpcENsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xlYXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKCcnKTtcclxuICAgIH1cclxuXHJcbiAgICBoaWRlVG9vbHRpcCgpIHtcclxuICAgICAgICB0aGlzLnRvb2x0aXBWaXNpYmlsaXR5VGltZW91dCA9IHRydWU7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50b29sdGlwVmlzaWJpbGl0eVRpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudWlTdGF0ZXMuaXNUb29sdGlwVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMjUpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dUb29sdGlwKCkge1xyXG4gICAgICAgIHRoaXMudWlTdGF0ZXMuaXNUb29sdGlwVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50b29sdGlwVmlzaWJpbGl0eVRpbWVvdXQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDb21wb3NpdGlvbiBoYW5kbGluZyBpcyB0YWtlbiBmcm9tOlxyXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iLzExLjAuMy9wYWNrYWdlcy9mb3Jtcy9zcmMvZGlyZWN0aXZlcy9kZWZhdWx0X3ZhbHVlX2FjY2Vzc29yLnRzI0wxNTJcclxuICAgIF9jb21wb3NpdGlvblN0YXJ0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2NvbXBvc2luZyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgX2NvbXBvc2l0aW9uRW5kKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jb21wb3NpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5fY29tcG9zaXRpb25Nb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZW1vdmVQcmVmaXgodmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmXHJcbiAgICAgICAgICAgIHZhbHVlLmluZGV4T2YodGhpcy5wcmVmaXgpID09PSAwXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKHRoaXMucHJlZml4LCAnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZU1hc2tJbnN0YW5jZShvcHRzOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmlNYXNrID0gbmV3IElNYXNrLklucHV0TWFzayhcclxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgb3B0c1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZXN0cm95TWFzaygpIHtcclxuICAgICAgICB0aGlzLmlNYXNrPy5kZXN0cm95KCk7XHJcbiAgICAgICAgdGhpcy5pTWFzayA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0N1c3RvbVRvb2x0aXAoKSB7XHJcbiAgICAgICAgdGhpcy51aVN0YXRlcy5oYXNDdXN0b21Ub29sdGlwID0gdGhpcy50b29sdGlwRWxlbWVudCAmJlxyXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBFbGVtZW50Lm5hdGl2ZUVsZW1lbnQgJiZcclxuICAgICAgICAgICAgdGhpcy50b29sdGlwRWxlbWVudC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDA7XHJcbiAgICAgICAgdGhpcy5jdXN0b21Ub29sdGlwQ2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFsaWRhdGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubWFza1ZhbGlkYXRpb24gJiYgdGhpcy5tYXNrICYmICF0aGlzLmlNYXNrLm1hc2tlZC5pc0NvbXBsZXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IG1hc2s6IHRydWUgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuIiwiPGxhYmVsIGNsYXNzPVwiZXZvLWlucHV0XCIgW2V2b1VpQ2xhc3NdPVwiaW5wdXRDbGFzc1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImV2by1pbnB1dF9fcHJlZml4LWNvbnRlbnRcIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXZvSW5wdXRQcmVmaXhDb250ZW50XVwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImV2by1pbnB1dF9fcHJlZml4LWljb25cIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXZvSW5wdXRJY29uXVwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgPHNwYW5cclxuICAgICAgICBjbGFzcz1cImV2by1pbnB1dF9fcHJlZml4XCIgKm5nSWY9XCJwcmVmaXhcIlxyXG4gICAgICAgIFtldm9VaUNsYXNzXT1cIntmb2N1c2VkOiAhaXNEaXNhYmxlZCAmJiAhIXZhbHVlIHx8IHVpU3RhdGVzLmlzRm9jdXNlZCB9XCJcclxuICAgID57e3ByZWZpeH19PC9zcGFuPlxyXG4gICAgPGlucHV0XHJcbiAgICAgICAgI2lucHV0XHJcbiAgICAgICAgY2xhc3M9XCJldm8taW5wdXRfX2ZpZWxkXCJcclxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgICAgKGNvbXBvc2l0aW9uc3RhcnQpPVwiX2NvbXBvc2l0aW9uU3RhcnQoKVwiXHJcbiAgICAgICAgKGNvbXBvc2l0aW9uZW5kKT1cIl9jb21wb3NpdGlvbkVuZCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXHJcbiAgICAgICAgdHlwZT1cInt7IHR5cGUgfX1cIlxyXG4gICAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIlxyXG4gICAgICAgIFthdHRyLmRhdGEtY3BdPVwiZGF0YUNwXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXHJcbiAgICA+XHJcbiAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZzsgZWxzZSBzaWRlQmxvY2tcIiBjbGFzcz1cImV2by1pbnB1dF9fbG9hZGluZy1zcGlubmVyXCI+PC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgI3NpZGVCbG9jaz5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0lmPVwiaXNDbGVhcmFibGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImV2by1pbnB1dF9fY2xlYXJhYmxlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiPlxyXG4gICAgICAgICAgICA8ZXZvLWljb24gc2hhcGU9XCJkZWNsaW5lXCIgY2xhc3M9XCJldm8taW5wdXRfX2ljb24tY2xlYXJcIj48L2V2by1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJldm8taW5wdXRfX2FkZGl0aW9uYWxcIiAqbmdJZj1cImhhc0FkZGl0aW9uYWxcIj5cclxuICAgICAgICAgICAgPGV2by1pY29uXHJcbiAgICAgICAgICAgICAgICBzaGFwZT1cImhlbHBcIiBjbGFzcz1cImV2by1pbnB1dF9fdG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2x0aXAgfHwgdWlTdGF0ZXMuaGFzQ3VzdG9tVG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJzaG93VG9vbHRpcCgpXCJcclxuICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImhpZGVUb29sdGlwKClcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9vbHRpcENsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC9ldm8taWNvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2by1pbnB1dF9faWNvblwiICpuZ0lmPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBbYXR0ci5zcmNdPVwiaWNvblwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCIhY3VzdG9tVG9vbHRpcENoZWNrZWQgfHwgdWlTdGF0ZXMuaXNUb29sdGlwVmlzaWJsZVwiXHJcbiAgICAgICAgW2hpZGRlbl09XCIhY3VzdG9tVG9vbHRpcENoZWNrZWRcIlxyXG4gICAgICAgIChjbGljayk9XCJvblRvb2x0aXBDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAobW91c2VlbnRlcik9XCJzaG93VG9vbHRpcCgpXCJcclxuICAgICAgICAobW91c2VsZWF2ZSk9XCJoaWRlVG9vbHRpcCgpXCJcclxuICAgICAgICAjdG9vbHRpcENvbnRhaW5lclxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnZXZvLWlucHV0X190b29sdGlwLWNvbnRhaW5lcic6IHRvb2x0aXB9XCJcclxuICAgID5cclxuICAgICAgICB7eyB0b29sdGlwIH19XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Rvb2x0aXBdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbjwvbGFiZWw+XHJcbjxldm8tY29udHJvbC1lcnJvclxyXG4gICAgKm5nSWY9XCJzaG93RXJyb3JzXCJcclxuICAgIFtlcnJvcnNdPVwiY29udHJvbC5lcnJvcnNcIlxyXG4gICAgW2Vycm9yc01lc3NhZ2VzXT1cImVycm9yc01lc3NhZ2VzXCJcclxuPjwvZXZvLWNvbnRyb2wtZXJyb3I+XHJcbiJdfQ==