@salutejs/plasma-new-hope 0.157.0-canary.1451.11120831030.0 → 0.157.0-canary.1459.11144116576.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (357) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.css +33 -18
  2. package/cjs/components/Autocomplete/Autocomplete.js +6 -2
  3. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/Combobox/ComboboxNew/Combobox.css +37 -17
  5. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.css +37 -17
  6. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.css +37 -17
  7. package/cjs/components/DatePicker/RangeDate/RangeDate.css +34 -19
  8. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +32 -17
  9. package/cjs/components/DatePicker/SingleDate/SingleDate.css +34 -19
  10. package/cjs/components/Range/Range.css +38 -18
  11. package/cjs/components/Slider/Slider.css +38 -18
  12. package/cjs/components/Slider/components/Double/Double.css +38 -18
  13. package/cjs/components/TextArea/TextArea.js +137 -35
  14. package/cjs/components/TextArea/TextArea.js.map +1 -1
  15. package/cjs/components/TextArea/TextArea.styles.js +116 -63
  16. package/cjs/components/TextArea/TextArea.styles.js.map +1 -1
  17. package/cjs/components/TextArea/TextArea.styles_1phhc4q.css +17 -0
  18. package/cjs/components/TextArea/TextArea.tokens.js +36 -15
  19. package/cjs/components/TextArea/TextArea.tokens.js.map +1 -1
  20. package/cjs/components/TextArea/variations/{_clear → _hint-size}/base.js +2 -2
  21. package/cjs/components/TextArea/variations/_hint-size/base.js.map +1 -0
  22. package/cjs/components/TextArea/variations/_hint-size/base_1pzfoj7.css +1 -0
  23. package/cjs/components/TextArea/variations/_hint-view/base.js +9 -0
  24. package/cjs/components/TextArea/variations/_hint-view/base.js.map +1 -0
  25. package/cjs/components/TextArea/variations/_hint-view/base_111a0qe.css +1 -0
  26. package/cjs/components/TextArea/variations/_view/base.js +1 -1
  27. package/cjs/components/TextArea/variations/_view/base.js.map +1 -1
  28. package/cjs/components/TextArea/variations/_view/base_1ri7c88.css +1 -0
  29. package/cjs/components/TextField/TextField.js +114 -7
  30. package/cjs/components/TextField/TextField.js.map +1 -1
  31. package/cjs/components/TextField/TextField.styles.js +74 -20
  32. package/cjs/components/TextField/TextField.styles.js.map +1 -1
  33. package/cjs/components/TextField/TextField.styles_1i9z45f.css +21 -0
  34. package/cjs/components/TextField/TextField.tokens.js +35 -0
  35. package/cjs/components/TextField/TextField.tokens.js.map +1 -1
  36. package/cjs/components/TextField/variations/_disabled/base.js +1 -1
  37. package/cjs/components/TextField/variations/_disabled/base_frtgf7.css +1 -0
  38. package/cjs/components/TextField/variations/_hint-size/base.js +9 -0
  39. package/cjs/components/TextField/variations/_hint-size/base.js.map +1 -0
  40. package/cjs/components/TextField/variations/_hint-size/base_1f8fx0a.css +1 -0
  41. package/cjs/components/TextField/variations/_hint-view/base.js +9 -0
  42. package/cjs/components/TextField/variations/_hint-view/base.js.map +1 -0
  43. package/cjs/components/TextField/variations/_hint-view/base_l8etux.css +1 -0
  44. package/cjs/components/TextField/variations/_label-placement/base.js +1 -1
  45. package/cjs/components/TextField/variations/_label-placement/base.js.map +1 -1
  46. package/cjs/components/TextField/variations/_label-placement/base_oh623n.css +1 -0
  47. package/cjs/components/TextField/variations/_read-only/base.js +1 -1
  48. package/cjs/components/TextField/variations/_read-only/base.js.map +1 -1
  49. package/cjs/components/TextField/variations/_read-only/base_dwfq44.css +1 -0
  50. package/cjs/components/TextField/variations/_size/base.js +1 -1
  51. package/cjs/components/TextField/variations/_size/base.js.map +1 -1
  52. package/cjs/components/TextField/variations/_size/base_n9k1fc.css +1 -0
  53. package/cjs/components/TextField/variations/_view/base.js +1 -1
  54. package/cjs/components/TextField/variations/_view/base.js.map +1 -1
  55. package/cjs/components/TextField/variations/_view/base_tmr4o7.css +1 -0
  56. package/cjs/components/TextFieldGroup/TextFieldGroup.css +1 -1
  57. package/cjs/components/TextFieldGroup/variations/_shape/base.js +1 -1
  58. package/cjs/components/TextFieldGroup/variations/_shape/base_52bndd.css +1 -0
  59. package/cjs/components/_Icon/Icon.assets/InfoCircleOutline.js +23 -0
  60. package/cjs/components/_Icon/Icon.assets/InfoCircleOutline.js.map +1 -0
  61. package/cjs/components/_Icon/Icons/IconInfoCircleOutline.js +23 -0
  62. package/cjs/components/_Icon/Icons/IconInfoCircleOutline.js.map +1 -0
  63. package/cjs/index.css +51 -33
  64. package/emotion/cjs/components/Autocomplete/Autocomplete.js +6 -2
  65. package/emotion/cjs/components/TextArea/TextArea.js +139 -39
  66. package/emotion/cjs/components/TextArea/TextArea.styles.js +81 -41
  67. package/emotion/cjs/components/TextArea/TextArea.template-doc.mdx +6 -30
  68. package/emotion/cjs/components/TextArea/TextArea.tokens.js +36 -15
  69. package/emotion/cjs/components/TextArea/mixins/applyDynamicLabel.js +1 -1
  70. package/emotion/cjs/components/TextArea/variations/_hint-size/base.js +11 -0
  71. package/emotion/cjs/components/TextArea/variations/_hint-size/tokens.json +21 -0
  72. package/emotion/cjs/components/TextArea/variations/_hint-view/base.js +11 -0
  73. package/emotion/cjs/components/TextArea/variations/_hint-view/tokens.json +5 -0
  74. package/emotion/cjs/components/TextArea/variations/_view/base.js +3 -2
  75. package/emotion/cjs/components/TextField/TextField.js +116 -10
  76. package/emotion/cjs/components/TextField/TextField.styles.js +81 -34
  77. package/emotion/cjs/components/TextField/TextField.template-doc.mdx +7 -1
  78. package/emotion/cjs/components/TextField/TextField.tokens.js +35 -0
  79. package/emotion/cjs/components/TextField/variations/_hint-size/base.js +11 -0
  80. package/emotion/cjs/components/TextField/variations/_hint-size/tokens.json +21 -0
  81. package/emotion/cjs/components/TextField/variations/_hint-view/base.js +11 -0
  82. package/emotion/cjs/components/TextField/variations/_hint-view/tokens.json +5 -0
  83. package/emotion/cjs/components/TextField/variations/_label-placement/base.js +1 -1
  84. package/emotion/cjs/components/TextField/variations/_read-only/base.js +1 -1
  85. package/emotion/cjs/components/TextField/variations/_size/base.js +1 -1
  86. package/emotion/cjs/components/TextField/variations/_view/base.js +1 -1
  87. package/emotion/cjs/components/_Icon/Icon.assets/InfoCircleOutline.js +22 -0
  88. package/emotion/cjs/components/_Icon/Icons/IconInfoCircleOutline.js +22 -0
  89. package/emotion/cjs/components/_Icon/index.js +8 -1
  90. package/emotion/cjs/examples/plasma_b2c/components/TextArea/TextArea.config.js +17 -11
  91. package/emotion/cjs/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +77 -15
  92. package/emotion/cjs/examples/plasma_b2c/components/TextField/TextField.config.js +21 -12
  93. package/emotion/cjs/examples/plasma_b2c/components/TextField/TextField.stories.tsx +70 -1
  94. package/emotion/cjs/examples/plasma_web/components/TextArea/TextArea.config.js +17 -11
  95. package/emotion/cjs/examples/plasma_web/components/TextArea/TextArea.stories.tsx +77 -15
  96. package/emotion/cjs/examples/plasma_web/components/TextField/TextField.config.js +21 -12
  97. package/emotion/cjs/examples/plasma_web/components/TextField/TextField.stories.tsx +79 -10
  98. package/emotion/es/components/Autocomplete/Autocomplete.js +6 -2
  99. package/emotion/es/components/TextArea/TextArea.js +139 -39
  100. package/emotion/es/components/TextArea/TextArea.styles.js +80 -40
  101. package/emotion/es/components/TextArea/TextArea.template-doc.mdx +6 -30
  102. package/emotion/es/components/TextArea/TextArea.tokens.js +36 -15
  103. package/emotion/es/components/TextArea/mixins/applyDynamicLabel.js +1 -1
  104. package/emotion/es/components/TextArea/variations/_hint-size/base.js +5 -0
  105. package/emotion/es/components/TextArea/variations/_hint-size/tokens.json +21 -0
  106. package/emotion/es/components/TextArea/variations/_hint-view/base.js +5 -0
  107. package/emotion/es/components/TextArea/variations/_hint-view/tokens.json +5 -0
  108. package/emotion/es/components/TextArea/variations/_view/base.js +3 -2
  109. package/emotion/es/components/TextField/TextField.js +115 -9
  110. package/emotion/es/components/TextField/TextField.styles.js +80 -33
  111. package/emotion/es/components/TextField/TextField.template-doc.mdx +7 -1
  112. package/emotion/es/components/TextField/TextField.tokens.js +35 -0
  113. package/emotion/es/components/TextField/variations/_hint-size/base.js +5 -0
  114. package/emotion/es/components/TextField/variations/_hint-size/tokens.json +21 -0
  115. package/emotion/es/components/TextField/variations/_hint-view/base.js +5 -0
  116. package/emotion/es/components/TextField/variations/_hint-view/tokens.json +5 -0
  117. package/emotion/es/components/TextField/variations/_label-placement/base.js +1 -1
  118. package/emotion/es/components/TextField/variations/_read-only/base.js +2 -2
  119. package/emotion/es/components/TextField/variations/_size/base.js +2 -2
  120. package/emotion/es/components/TextField/variations/_view/base.js +2 -2
  121. package/emotion/es/components/_Icon/Icon.assets/InfoCircleOutline.js +15 -0
  122. package/emotion/es/components/_Icon/Icons/IconInfoCircleOutline.js +15 -0
  123. package/emotion/es/components/_Icon/index.js +2 -1
  124. package/emotion/es/examples/plasma_b2c/components/TextArea/TextArea.config.js +17 -11
  125. package/emotion/es/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +77 -15
  126. package/emotion/es/examples/plasma_b2c/components/TextField/TextField.config.js +21 -12
  127. package/emotion/es/examples/plasma_b2c/components/TextField/TextField.stories.tsx +70 -1
  128. package/emotion/es/examples/plasma_web/components/TextArea/TextArea.config.js +17 -11
  129. package/emotion/es/examples/plasma_web/components/TextArea/TextArea.stories.tsx +77 -15
  130. package/emotion/es/examples/plasma_web/components/TextField/TextField.config.js +21 -12
  131. package/emotion/es/examples/plasma_web/components/TextField/TextField.stories.tsx +79 -10
  132. package/es/components/Autocomplete/Autocomplete.css +33 -18
  133. package/es/components/Autocomplete/Autocomplete.js +6 -2
  134. package/es/components/Autocomplete/Autocomplete.js.map +1 -1
  135. package/es/components/Combobox/ComboboxNew/Combobox.css +37 -17
  136. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.css +37 -17
  137. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.css +37 -17
  138. package/es/components/DatePicker/RangeDate/RangeDate.css +34 -19
  139. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +32 -17
  140. package/es/components/DatePicker/SingleDate/SingleDate.css +34 -19
  141. package/es/components/Range/Range.css +38 -18
  142. package/es/components/Slider/Slider.css +38 -18
  143. package/es/components/Slider/components/Double/Double.css +38 -18
  144. package/es/components/TextArea/TextArea.js +141 -39
  145. package/es/components/TextArea/TextArea.js.map +1 -1
  146. package/es/components/TextArea/TextArea.styles.js +111 -64
  147. package/es/components/TextArea/TextArea.styles.js.map +1 -1
  148. package/es/components/TextArea/TextArea.styles_1phhc4q.css +17 -0
  149. package/es/components/TextArea/TextArea.tokens.js +36 -15
  150. package/es/components/TextArea/TextArea.tokens.js.map +1 -1
  151. package/es/components/TextArea/variations/{_clear → _hint-size}/base.js +2 -2
  152. package/es/components/TextArea/variations/_hint-size/base.js.map +1 -0
  153. package/es/components/TextArea/variations/_hint-size/base_1pzfoj7.css +1 -0
  154. package/es/components/TextArea/variations/_hint-view/base.js +5 -0
  155. package/es/components/TextArea/variations/_hint-view/base.js.map +1 -0
  156. package/es/components/TextArea/variations/_hint-view/base_111a0qe.css +1 -0
  157. package/es/components/TextArea/variations/_view/base.js +1 -1
  158. package/es/components/TextArea/variations/_view/base.js.map +1 -1
  159. package/es/components/TextArea/variations/_view/base_1ri7c88.css +1 -0
  160. package/es/components/TextField/TextField.js +115 -8
  161. package/es/components/TextField/TextField.js.map +1 -1
  162. package/es/components/TextField/TextField.styles.js +69 -21
  163. package/es/components/TextField/TextField.styles.js.map +1 -1
  164. package/es/components/TextField/TextField.styles_1i9z45f.css +21 -0
  165. package/es/components/TextField/TextField.tokens.js +35 -0
  166. package/es/components/TextField/TextField.tokens.js.map +1 -1
  167. package/es/components/TextField/variations/_disabled/base.js +1 -1
  168. package/es/components/TextField/variations/_disabled/base_frtgf7.css +1 -0
  169. package/es/components/TextField/variations/_hint-size/base.js +5 -0
  170. package/es/components/TextField/variations/_hint-size/base.js.map +1 -0
  171. package/es/components/TextField/variations/_hint-size/base_1f8fx0a.css +1 -0
  172. package/es/components/TextField/variations/_hint-view/base.js +5 -0
  173. package/es/components/TextField/variations/_hint-view/base.js.map +1 -0
  174. package/es/components/TextField/variations/_hint-view/base_l8etux.css +1 -0
  175. package/es/components/TextField/variations/_label-placement/base.js +1 -1
  176. package/es/components/TextField/variations/_label-placement/base.js.map +1 -1
  177. package/es/components/TextField/variations/_label-placement/base_oh623n.css +1 -0
  178. package/es/components/TextField/variations/_read-only/base.js +1 -1
  179. package/es/components/TextField/variations/_read-only/base.js.map +1 -1
  180. package/es/components/TextField/variations/_read-only/base_dwfq44.css +1 -0
  181. package/es/components/TextField/variations/_size/base.js +1 -1
  182. package/es/components/TextField/variations/_size/base.js.map +1 -1
  183. package/es/components/TextField/variations/_size/base_n9k1fc.css +1 -0
  184. package/es/components/TextField/variations/_view/base.js +1 -1
  185. package/es/components/TextField/variations/_view/base.js.map +1 -1
  186. package/es/components/TextField/variations/_view/base_tmr4o7.css +1 -0
  187. package/es/components/TextFieldGroup/TextFieldGroup.css +1 -1
  188. package/es/components/TextFieldGroup/variations/_shape/base.js +1 -1
  189. package/es/components/TextFieldGroup/variations/_shape/base_52bndd.css +1 -0
  190. package/es/components/_Icon/Icon.assets/InfoCircleOutline.js +19 -0
  191. package/es/components/_Icon/Icon.assets/InfoCircleOutline.js.map +1 -0
  192. package/es/components/_Icon/Icons/IconInfoCircleOutline.js +19 -0
  193. package/es/components/_Icon/Icons/IconInfoCircleOutline.js.map +1 -0
  194. package/es/index.css +51 -33
  195. package/package.json +2 -2
  196. package/styled-components/cjs/components/Autocomplete/Autocomplete.js +6 -2
  197. package/styled-components/cjs/components/TextArea/TextArea.js +138 -38
  198. package/styled-components/cjs/components/TextArea/TextArea.styles.js +64 -39
  199. package/styled-components/cjs/components/TextArea/TextArea.template-doc.mdx +6 -30
  200. package/styled-components/cjs/components/TextArea/TextArea.tokens.js +36 -15
  201. package/styled-components/cjs/components/TextArea/mixins/applyDynamicLabel.js +1 -1
  202. package/styled-components/cjs/components/TextArea/variations/_hint-size/base.js +11 -0
  203. package/styled-components/cjs/components/TextArea/variations/_hint-size/tokens.json +21 -0
  204. package/styled-components/cjs/components/TextArea/variations/_hint-view/base.js +11 -0
  205. package/styled-components/cjs/components/TextArea/variations/_hint-view/tokens.json +5 -0
  206. package/styled-components/cjs/components/TextArea/variations/_view/base.js +3 -2
  207. package/styled-components/cjs/components/TextField/TextField.js +115 -9
  208. package/styled-components/cjs/components/TextField/TextField.styles.js +42 -17
  209. package/styled-components/cjs/components/TextField/TextField.template-doc.mdx +7 -1
  210. package/styled-components/cjs/components/TextField/TextField.tokens.js +35 -0
  211. package/styled-components/cjs/components/TextField/variations/_hint-size/base.js +11 -0
  212. package/styled-components/cjs/components/TextField/variations/_hint-size/tokens.json +21 -0
  213. package/styled-components/cjs/components/TextField/variations/_hint-view/base.js +11 -0
  214. package/styled-components/cjs/components/TextField/variations/_hint-view/tokens.json +5 -0
  215. package/styled-components/cjs/components/TextField/variations/_label-placement/base.js +1 -1
  216. package/styled-components/cjs/components/TextField/variations/_read-only/base.js +1 -1
  217. package/styled-components/cjs/components/TextField/variations/_size/base.js +1 -1
  218. package/styled-components/cjs/components/TextField/variations/_view/base.js +1 -1
  219. package/styled-components/cjs/components/_Icon/Icon.assets/InfoCircleOutline.js +22 -0
  220. package/styled-components/cjs/components/_Icon/Icons/IconInfoCircleOutline.js +22 -0
  221. package/styled-components/cjs/components/_Icon/index.js +8 -1
  222. package/styled-components/cjs/examples/plasma_b2c/components/TextArea/TextArea.config.js +17 -11
  223. package/styled-components/cjs/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +77 -15
  224. package/styled-components/cjs/examples/plasma_b2c/components/TextField/TextField.config.js +18 -9
  225. package/styled-components/cjs/examples/plasma_b2c/components/TextField/TextField.stories.tsx +70 -1
  226. package/styled-components/cjs/examples/plasma_web/components/TextArea/TextArea.config.js +17 -11
  227. package/styled-components/cjs/examples/plasma_web/components/TextArea/TextArea.stories.tsx +77 -15
  228. package/styled-components/cjs/examples/plasma_web/components/TextField/TextField.config.js +18 -9
  229. package/styled-components/cjs/examples/plasma_web/components/TextField/TextField.stories.tsx +79 -10
  230. package/styled-components/es/components/Autocomplete/Autocomplete.js +6 -2
  231. package/styled-components/es/components/TextArea/TextArea.js +138 -38
  232. package/styled-components/es/components/TextArea/TextArea.styles.js +63 -38
  233. package/styled-components/es/components/TextArea/TextArea.template-doc.mdx +6 -30
  234. package/styled-components/es/components/TextArea/TextArea.tokens.js +36 -15
  235. package/styled-components/es/components/TextArea/mixins/applyDynamicLabel.js +1 -1
  236. package/styled-components/es/components/TextArea/variations/_hint-size/base.js +5 -0
  237. package/styled-components/es/components/TextArea/variations/_hint-size/tokens.json +21 -0
  238. package/styled-components/es/components/TextArea/variations/_hint-view/base.js +5 -0
  239. package/styled-components/es/components/TextArea/variations/_hint-view/tokens.json +5 -0
  240. package/styled-components/es/components/TextArea/variations/_view/base.js +3 -2
  241. package/styled-components/es/components/TextField/TextField.js +114 -8
  242. package/styled-components/es/components/TextField/TextField.styles.js +41 -16
  243. package/styled-components/es/components/TextField/TextField.template-doc.mdx +7 -1
  244. package/styled-components/es/components/TextField/TextField.tokens.js +35 -0
  245. package/styled-components/es/components/TextField/variations/_hint-size/base.js +5 -0
  246. package/styled-components/es/components/TextField/variations/_hint-size/tokens.json +21 -0
  247. package/styled-components/es/components/TextField/variations/_hint-view/base.js +5 -0
  248. package/styled-components/es/components/TextField/variations/_hint-view/tokens.json +5 -0
  249. package/styled-components/es/components/TextField/variations/_label-placement/base.js +1 -1
  250. package/styled-components/es/components/TextField/variations/_read-only/base.js +2 -2
  251. package/styled-components/es/components/TextField/variations/_size/base.js +2 -2
  252. package/styled-components/es/components/TextField/variations/_view/base.js +2 -2
  253. package/styled-components/es/components/_Icon/Icon.assets/InfoCircleOutline.js +15 -0
  254. package/styled-components/es/components/_Icon/Icons/IconInfoCircleOutline.js +15 -0
  255. package/styled-components/es/components/_Icon/index.js +2 -1
  256. package/styled-components/es/examples/plasma_b2c/components/TextArea/TextArea.config.js +17 -11
  257. package/styled-components/es/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +77 -15
  258. package/styled-components/es/examples/plasma_b2c/components/TextField/TextField.config.js +18 -9
  259. package/styled-components/es/examples/plasma_b2c/components/TextField/TextField.stories.tsx +70 -1
  260. package/styled-components/es/examples/plasma_web/components/TextArea/TextArea.config.js +17 -11
  261. package/styled-components/es/examples/plasma_web/components/TextArea/TextArea.stories.tsx +77 -15
  262. package/styled-components/es/examples/plasma_web/components/TextField/TextField.config.js +18 -9
  263. package/styled-components/es/examples/plasma_web/components/TextField/TextField.stories.tsx +79 -10
  264. package/types/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  265. package/types/components/Autocomplete/ui/TextField/TextField.styles.d.ts +208 -0
  266. package/types/components/Autocomplete/ui/TextField/TextField.styles.d.ts.map +1 -1
  267. package/types/components/Combobox/ComboboxNew/ui/Target/Target.styles.d.ts +208 -0
  268. package/types/components/Combobox/ComboboxNew/ui/Target/Target.styles.d.ts.map +1 -1
  269. package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts +208 -0
  270. package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts.map +1 -1
  271. package/types/components/Range/Range.styles.d.ts +208 -0
  272. package/types/components/Range/Range.styles.d.ts.map +1 -1
  273. package/types/components/Slider/components/Double/Double.styles.d.ts +208 -0
  274. package/types/components/Slider/components/Double/Double.styles.d.ts.map +1 -1
  275. package/types/components/TextArea/TextArea.d.ts +9 -7
  276. package/types/components/TextArea/TextArea.d.ts.map +1 -1
  277. package/types/components/TextArea/TextArea.styles.d.ts +8 -0
  278. package/types/components/TextArea/TextArea.styles.d.ts.map +1 -1
  279. package/types/components/TextArea/TextArea.tokens.d.ts +35 -14
  280. package/types/components/TextArea/TextArea.tokens.d.ts.map +1 -1
  281. package/types/components/TextArea/TextArea.types.d.ts +90 -18
  282. package/types/components/TextArea/TextArea.types.d.ts.map +1 -1
  283. package/types/components/TextArea/mixins/applyDynamicLabel.d.ts.map +1 -1
  284. package/types/components/TextArea/variations/_hint-size/base.d.ts.map +1 -0
  285. package/types/components/TextArea/variations/_hint-view/base.d.ts +2 -0
  286. package/types/components/TextArea/variations/_hint-view/base.d.ts.map +1 -0
  287. package/types/components/TextArea/variations/_view/base.d.ts.map +1 -1
  288. package/types/components/TextField/TextField.d.ts +9 -3
  289. package/types/components/TextField/TextField.d.ts.map +1 -1
  290. package/types/components/TextField/TextField.styles.d.ts +8 -0
  291. package/types/components/TextField/TextField.styles.d.ts.map +1 -1
  292. package/types/components/TextField/TextField.tokens.d.ts +35 -0
  293. package/types/components/TextField/TextField.tokens.d.ts.map +1 -1
  294. package/types/components/TextField/TextField.types.d.ts +82 -2
  295. package/types/components/TextField/TextField.types.d.ts.map +1 -1
  296. package/types/components/TextField/variations/_hint-size/base.d.ts +2 -0
  297. package/types/components/TextField/variations/_hint-size/base.d.ts.map +1 -0
  298. package/types/components/TextField/variations/_hint-view/base.d.ts +2 -0
  299. package/types/components/TextField/variations/_hint-view/base.d.ts.map +1 -0
  300. package/types/components/TextField/variations/_label-placement/base.d.ts.map +1 -1
  301. package/types/components/TextField/variations/_read-only/base.d.ts.map +1 -1
  302. package/types/components/TextField/variations/_size/base.d.ts.map +1 -1
  303. package/types/components/TextField/variations/_view/base.d.ts.map +1 -1
  304. package/types/components/_Icon/Icon.assets/InfoCircleOutline.d.ts +4 -0
  305. package/types/components/_Icon/Icon.assets/InfoCircleOutline.d.ts.map +1 -0
  306. package/types/components/_Icon/Icons/IconInfoCircleOutline.d.ts +4 -0
  307. package/types/components/_Icon/Icons/IconInfoCircleOutline.d.ts.map +1 -0
  308. package/types/components/_Icon/index.d.ts +1 -0
  309. package/types/components/_Icon/index.d.ts.map +1 -1
  310. package/types/examples/plasma_b2c/components/Mask/Mask.d.ts +372 -0
  311. package/types/examples/plasma_b2c/components/Mask/Mask.d.ts.map +1 -1
  312. package/types/examples/plasma_b2c/components/TextArea/TextArea.config.d.ts +8 -2
  313. package/types/examples/plasma_b2c/components/TextArea/TextArea.config.d.ts.map +1 -1
  314. package/types/examples/plasma_b2c/components/TextArea/TextArea.d.ts +292 -22
  315. package/types/examples/plasma_b2c/components/TextArea/TextArea.d.ts.map +1 -1
  316. package/types/examples/plasma_b2c/components/TextField/TextField.config.d.ts +9 -0
  317. package/types/examples/plasma_b2c/components/TextField/TextField.config.d.ts.map +1 -1
  318. package/types/examples/plasma_b2c/components/TextField/TextField.d.ts +217 -0
  319. package/types/examples/plasma_b2c/components/TextField/TextField.d.ts.map +1 -1
  320. package/types/examples/plasma_web/components/Mask/Mask.d.ts +372 -0
  321. package/types/examples/plasma_web/components/Mask/Mask.d.ts.map +1 -1
  322. package/types/examples/plasma_web/components/TextArea/TextArea.config.d.ts +8 -2
  323. package/types/examples/plasma_web/components/TextArea/TextArea.config.d.ts.map +1 -1
  324. package/types/examples/plasma_web/components/TextArea/TextArea.d.ts +292 -22
  325. package/types/examples/plasma_web/components/TextArea/TextArea.d.ts.map +1 -1
  326. package/types/examples/plasma_web/components/TextField/TextField.config.d.ts +9 -0
  327. package/types/examples/plasma_web/components/TextField/TextField.config.d.ts.map +1 -1
  328. package/types/examples/plasma_web/components/TextField/TextField.d.ts +217 -0
  329. package/types/examples/plasma_web/components/TextField/TextField.d.ts.map +1 -1
  330. package/cjs/components/TextArea/TextArea.styles_1kzzs11.css +0 -11
  331. package/cjs/components/TextArea/variations/_clear/base.js.map +0 -1
  332. package/cjs/components/TextArea/variations/_clear/base_ba0nv7.css +0 -1
  333. package/cjs/components/TextArea/variations/_view/base_d83rii.css +0 -1
  334. package/cjs/components/TextField/TextField.styles_uponva.css +0 -15
  335. package/cjs/components/TextField/variations/_disabled/base_1tnjoy9.css +0 -1
  336. package/cjs/components/TextField/variations/_label-placement/base_6k17xp.css +0 -1
  337. package/cjs/components/TextField/variations/_read-only/base_8onybn.css +0 -1
  338. package/cjs/components/TextField/variations/_size/base_1h8l0kj.css +0 -1
  339. package/cjs/components/TextField/variations/_view/base_1ph5cr0.css +0 -1
  340. package/cjs/components/TextFieldGroup/variations/_shape/base_1e0je21.css +0 -1
  341. package/emotion/cjs/components/TextArea/variations/_clear/base.js +0 -10
  342. package/emotion/es/components/TextArea/variations/_clear/base.js +0 -4
  343. package/es/components/TextArea/TextArea.styles_1kzzs11.css +0 -11
  344. package/es/components/TextArea/variations/_clear/base.js.map +0 -1
  345. package/es/components/TextArea/variations/_clear/base_ba0nv7.css +0 -1
  346. package/es/components/TextArea/variations/_view/base_d83rii.css +0 -1
  347. package/es/components/TextField/TextField.styles_uponva.css +0 -15
  348. package/es/components/TextField/variations/_disabled/base_1tnjoy9.css +0 -1
  349. package/es/components/TextField/variations/_label-placement/base_6k17xp.css +0 -1
  350. package/es/components/TextField/variations/_read-only/base_8onybn.css +0 -1
  351. package/es/components/TextField/variations/_size/base_1h8l0kj.css +0 -1
  352. package/es/components/TextField/variations/_view/base_1ph5cr0.css +0 -1
  353. package/es/components/TextFieldGroup/variations/_shape/base_1e0je21.css +0 -1
  354. package/styled-components/cjs/components/TextArea/variations/_clear/base.js +0 -10
  355. package/styled-components/es/components/TextArea/variations/_clear/base.js +0 -4
  356. package/types/components/TextArea/variations/_clear/base.d.ts.map +0 -1
  357. /package/types/components/TextArea/variations/{_clear → _hint-size}/base.d.ts +0 -0
@@ -4,7 +4,8 @@ import { action } from '@storybook/addon-actions';
4
4
  import { IconPlaceholder } from '@salutejs/plasma-sb-utils';
5
5
 
6
6
  import { WithTheme } from '../../../_helpers';
7
- import { IconChevronLeft } from '../../../../components/_Icon';
7
+ import { IconCross } from '../../../../components/_Icon';
8
+ import type { PopoverPlacement } from '../Popover/Popover';
8
9
 
9
10
  import { TextField } from './TextField';
10
11
 
@@ -16,7 +17,29 @@ const onChipsChange = action('onChipsChange');
16
17
 
17
18
  const sizes = ['l', 'm', 's', 'xs'];
18
19
  const views = ['default', 'positive', 'warning', 'negative'];
20
+ const hintViews = ['default', 'onDark', 'onLight'];
21
+ const hintSizes = ['m', 's'];
22
+ const hintTriggers = ['hover', 'click'];
19
23
  const labelPlacements = ['outer', 'inner'];
24
+ const placements: Array<PopoverPlacement> = [
25
+ 'top',
26
+ 'top-start',
27
+ 'top-end',
28
+
29
+ 'bottom',
30
+ 'bottom-start',
31
+ 'bottom-end',
32
+
33
+ 'left',
34
+ 'left-start',
35
+ 'left-end',
36
+
37
+ 'right',
38
+ 'right-start',
39
+ 'right-end',
40
+
41
+ 'auto',
42
+ ];
20
43
 
21
44
  const meta: Meta<typeof TextField> = {
22
45
  title: 'plasma_web/TextField',
@@ -64,6 +87,43 @@ const meta: Meta<typeof TextField> = {
64
87
  type: 'inline-radio',
65
88
  },
66
89
  },
90
+ hintView: {
91
+ options: hintViews,
92
+ control: {
93
+ type: 'select',
94
+ },
95
+ if: { arg: 'hasHint', truthy: true },
96
+ },
97
+ hintSize: {
98
+ options: hintSizes,
99
+ control: {
100
+ type: 'select',
101
+ },
102
+ if: { arg: 'hasHint', truthy: true },
103
+ },
104
+ hintTrigger: {
105
+ options: hintTriggers,
106
+ control: {
107
+ type: 'inline-radio',
108
+ },
109
+ if: { arg: 'hasHint', truthy: true },
110
+ },
111
+ hintText: {
112
+ control: { type: 'text' },
113
+ if: { arg: 'hasHint', truthy: true },
114
+ },
115
+ hintPlacement: {
116
+ options: placements,
117
+ control: {
118
+ type: 'select',
119
+ },
120
+ if: { arg: 'hasHint', truthy: true },
121
+ mappers: placements,
122
+ },
123
+ hintHasArrow: {
124
+ control: { type: 'boolean' },
125
+ if: { arg: 'hasHint', truthy: true },
126
+ },
67
127
  },
68
128
  };
69
129
 
@@ -99,13 +159,13 @@ const StoryDemo = ({ enableContentLeft, enableContentRight, view, ...rest }: Sto
99
159
  const iconSize = rest.size === 'xs' ? 'xs' : 's';
100
160
 
101
161
  return (
102
- <div style={{ display: 'flex', flexDirection: 'column', gap: '2rem' }}>
162
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '2rem', width: '70%', margin: '0 auto' }}>
103
163
  <TextField
104
164
  {...rest}
105
165
  enumerationType="plain"
106
166
  value={text}
107
- contentLeft={enableContentLeft ? <IconPlaceholder size={iconSize} /> : undefined}
108
- contentRight={enableContentRight ? <IconPlaceholder size={iconSize} /> : undefined}
167
+ contentLeft={enableContentLeft ? <IconCross color="inherit" size={iconSize} /> : undefined}
168
+ contentRight={enableContentRight ? <IconCross color="inherit" size={iconSize} /> : undefined}
109
169
  view={view}
110
170
  onChange={(e) => {
111
171
  setText(e.target.value);
@@ -139,15 +199,25 @@ export const Default: StoryObj<StoryPropsDefault> = {
139
199
  view: 'default',
140
200
  label: 'Лейбл',
141
201
  labelPlacement: 'outer',
202
+ titleCaption: 'Подпись к полю',
203
+ textBefore: '',
204
+ textAfter: '',
142
205
  placeholder: 'Заполните поле',
143
206
  leftHelper: 'Подсказка к полю',
144
207
  disabled: false,
145
208
  readOnly: false,
146
- required: false,
147
- requiredPlacement: 'right',
148
- optional: false,
149
209
  enableContentLeft: true,
150
210
  enableContentRight: true,
211
+ optional: false,
212
+ required: false,
213
+ requiredPlacement: 'right',
214
+ hasHint: false,
215
+ hintTrigger: 'hover',
216
+ hintText: 'Текст подсказки',
217
+ hintView: 'default',
218
+ hintSize: 'm',
219
+ hintPlacement: 'auto',
220
+ hintHasArrow: true,
151
221
  },
152
222
  render: (args) => <StoryDemo {...args} />,
153
223
  };
@@ -168,8 +238,6 @@ type StoryPropsChips = Omit<
168
238
  | 'checked'
169
239
  | 'maxLength'
170
240
  | 'minLength'
171
- | 'required'
172
- | 'optional'
173
241
  | 'enumerationType'
174
242
  > & {
175
243
  enableContentLeft: boolean;
@@ -186,7 +254,7 @@ const StoryChips = ({ enableContentLeft, enableContentRight, view, ...rest }: St
186
254
  {...rest}
187
255
  enumerationType="chip"
188
256
  value={text}
189
- contentLeft={enableContentLeft ? <IconChevronLeft color="inherit" size={iconSize} /> : undefined}
257
+ contentLeft={enableContentLeft ? <IconPlaceholder size={iconSize} /> : undefined}
190
258
  contentRight={enableContentRight ? <IconPlaceholder size={iconSize} /> : undefined}
191
259
  view={view}
192
260
  onChange={(e) => {
@@ -196,6 +264,7 @@ const StoryChips = ({ enableContentLeft, enableContentRight, view, ...rest }: St
196
264
  onFocus={onFocus}
197
265
  onBlur={onBlur}
198
266
  onChangeChips={onChipsChange}
267
+ style={{ width: '70%', margin: '0 auto' }}
199
268
  />
200
269
  );
201
270
  };
@@ -1,4 +1,4 @@
1
- var _excluded = ["value", "onChange", "suggestions", "view", "size", "labelPlacement", "disabled", "readOnly", "label", "leftHelper", "contentLeft", "contentRight", "textBefore", "textAfter", "onScroll", "listMaxHeight", "listWidth", "portal", "filter", "onSuggestionSelect", "threshold", "renderList", "renderListEnd", "onSearch"];
1
+ var _excluded = ["value", "onChange", "suggestions", "view", "size", "labelPlacement", "disabled", "readOnly", "label", "leftHelper", "contentLeft", "contentRight", "textBefore", "textAfter", "onScroll", "listMaxHeight", "listWidth", "portal", "filter", "onSuggestionSelect", "threshold", "renderList", "renderListEnd", "onSearch", "hasHint", "hintText"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -47,6 +47,8 @@ export var autocompleteRoot = function autocompleteRoot(Root) {
47
47
  renderList = _ref.renderList,
48
48
  renderListEnd = _ref.renderListEnd,
49
49
  onSearch = _ref.onSearch,
50
+ hasHint = _ref.hasHint,
51
+ hintText = _ref.hintText,
50
52
  rest = _objectWithoutProperties(_ref, _excluded);
51
53
  var _useReducer = useReducer(focusedReducer, null),
52
54
  _useReducer2 = _slicedToArray(_useReducer, 2),
@@ -144,7 +146,9 @@ export var autocompleteRoot = function autocompleteRoot(Root) {
144
146
  "aria-controls": listId,
145
147
  "aria-expanded": isOpen,
146
148
  "aria-activedescendant": "".concat(listId, "/").concat(focused),
147
- "aria-describedby": helperTextId
149
+ "aria-describedby": helperTextId,
150
+ hasHint: Boolean(hasHint),
151
+ hintText: String(hintText || '')
148
152
  }, rest)),
149
153
  preventOverflow: false,
150
154
  ref: targetRef,
@@ -1,10 +1,11 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["helperText", "status", "resize", "rightHelper", "leftHelper", "contentRight", "autoResize", "minAuto", "maxAuto", "label", "labelPlacement", "placeholder", "defaultValue", "height", "width", "value", "disabled", "required", "requiredPlacement", "optional", "clear", "hasDivider", "size", "view", "id", "style", "className", "readOnly", "rows", "cols", "onChange"];
3
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ var _IconInfoCircleOutlin, _IconInfoCircleOutlin2;
3
+ var _excluded = ["helperText", "status", "resize", "rightHelper", "leftHelper", "contentRight", "autoResize", "minAuto", "maxAuto", "label", "labelPlacement", "titleCaption", "placeholder", "defaultValue", "height", "width", "value", "disabled", "required", "requiredPlacement", "optional", "size", "view", "id", "style", "className", "readOnly", "rows", "cols", "hasHint", "hintTrigger", "hintText", "hintView", "hintSize", "hintTarget", "hintPlacement", "hintHasArrow", "hintOffset", "hintMinWidth", "hintMaxWidth", "hintContentLeft", "onChange"];
4
4
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
5
5
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
6
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
7
7
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
8
9
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
10
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
11
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -18,18 +19,21 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
18
19
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19
20
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
20
21
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
21
- import React, { forwardRef, useState, createRef, useCallback } from 'react';
22
+ import React, { forwardRef, useState, createRef, useCallback, useRef } from 'react';
22
23
  import { css } from '@emotion/react';
23
- import { useResizeObserver } from '@salutejs/plasma-core';
24
- import { cx } from '../../utils';
24
+ import { useForkRef, useResizeObserver } from '@salutejs/plasma-core';
25
+ import { cx, safeUseId } from '../../utils';
26
+ import { IconInfoCircleOutline } from '../_Icon';
27
+ import { useOutsideClick } from '../../hooks';
25
28
  import { applyDynamicLabel } from './mixins';
26
29
  import { useAutoResize, ROOT_FONT_SIZE } from './hooks';
27
- import { StyledContent, StyledHelpers, StyledLeftHelper, StyledRightHelper, StyledLabel, StyledPlaceholder, StyledTextArea, StyledTextAreaWrapper, StyledContainer, StyledIndicator, StyledOptionalText } from './TextArea.styles';
30
+ import { StyledContent, StyledHelpers, StyledLeftHelper, StyledRightHelper, StyledLabel, StyledPlaceholder, StyledTextArea, StyledTextAreaWrapper, StyledContainer, StyledIndicator, StyledOptionalText, OuterLabelWrapper, StyledIndicatorWrapper, StyledHintWrapper, HintTargetWrapper, TitleCaption, Hint } from './TextArea.styles';
28
31
  import { classes } from './TextArea.tokens';
29
32
  import { base as viewCSS } from './variations/_view/base';
30
33
  import { base as sizeCSS } from './variations/_size/base';
31
- import { base as clearCSS } from './variations/_clear/base';
32
34
  import { base as disabledCSS } from './variations/_disabled/base';
35
+ import { base as hintViewCSS } from './variations/_hint-view/base';
36
+ import { base as hintSizeCSS } from './variations/_hint-size/base';
33
37
  var innerPlaceholderUp = classes.innerPlaceholderUp,
34
38
  focusedOuterPlaceholderColor = classes.focusedOuterPlaceholderColor,
35
39
  hidePlaceHolder = classes.hidePlaceHolder,
@@ -39,7 +43,7 @@ var innerPlaceholderUp = classes.innerPlaceholderUp,
39
43
  styledPlaceholder = classes.styledPlaceholder,
40
44
  styledHelpers = classes.styledHelpers;
41
45
  var optionalText = 'optional';
42
- var base = /*#__PURE__*/css(applyDynamicLabel, ";position:relative;box-sizing:border-box;;label:plasma-new-hope__base;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvVGV4dEFyZWEvVGV4dEFyZWEudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBDZ0IiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjLWVtb3Rpb24vY29tcG9uZW50cy9UZXh0QXJlYS9UZXh0QXJlYS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgdXNlU3RhdGUsIGNyZWF0ZVJlZiwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyB1c2VSZXNpemVPYnNlcnZlciB9IGZyb20gJ0BzYWx1dGVqcy9wbGFzbWEtY29yZSc7XG5cbmltcG9ydCB7IGN4IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSb290UHJvcHMgfSBmcm9tICcuLi8uLi9lbmdpbmVzL3R5cGVzJztcblxuaW1wb3J0IHsgYXBwbHlEeW5hbWljTGFiZWwgfSBmcm9tICcuL21peGlucyc7XG5pbXBvcnQgeyB1c2VBdXRvUmVzaXplLCBST09UX0ZPTlRfU0laRSB9IGZyb20gJy4vaG9va3MnO1xuaW1wb3J0IHtcbiAgICBTdHlsZWRDb250ZW50LFxuICAgIFN0eWxlZEhlbHBlcnMsXG4gICAgU3R5bGVkTGVmdEhlbHBlcixcbiAgICBTdHlsZWRSaWdodEhlbHBlcixcbiAgICBTdHlsZWRMYWJlbCxcbiAgICBTdHlsZWRQbGFjZWhvbGRlcixcbiAgICBTdHlsZWRUZXh0QXJlYSxcbiAgICBTdHlsZWRUZXh0QXJlYVdyYXBwZXIsXG4gICAgU3R5bGVkQ29udGFpbmVyLFxuICAgIFN0eWxlZEluZGljYXRvcixcbiAgICBTdHlsZWRPcHRpb25hbFRleHQsXG59IGZyb20gJy4vVGV4dEFyZWEuc3R5bGVzJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICcuL1RleHRBcmVhLnRva2Vucyc7XG5pbXBvcnQgeyBiYXNlIGFzIHZpZXdDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3ZpZXcvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIHNpemVDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3NpemUvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGNsZWFyQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19jbGVhci9iYXNlJztcbmltcG9ydCB7IGJhc2UgYXMgZGlzYWJsZWRDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX2Rpc2FibGVkL2Jhc2UnO1xuaW1wb3J0IHR5cGUgeyBUZXh0QXJlYVByb3BzIH0gZnJvbSAnLi9UZXh0QXJlYS50eXBlcyc7XG5cbmNvbnN0IHtcbiAgICBpbm5lclBsYWNlaG9sZGVyVXAsXG4gICAgZm9jdXNlZE91dGVyUGxhY2Vob2xkZXJDb2xvcixcbiAgICBoaWRlUGxhY2VIb2xkZXIsXG4gICAgc3R5bGVkQ29udGFpbmVyLFxuICAgIHN0eWxlZFRleHRBcmVhLFxuICAgIHN0eWxlZFRleHRBcmVhV3JhcHBlcixcbiAgICBzdHlsZWRQbGFjZWhvbGRlcixcbiAgICBzdHlsZWRIZWxwZXJzLFxufSA9IGNsYXNzZXM7XG5cbmNvbnN0IG9wdGlvbmFsVGV4dCA9ICdvcHRpb25hbCc7XG5cbmNvbnN0IGJhc2UgPSBjc3NgXG4gICAgJHthcHBseUR5bmFtaWNMYWJlbH07XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbmA7XG5cbi8vIFRPRE86INCj0LTQsNC70LjRgtGMINC/0L7RgdC70LUg0L7RgtC60LDQt9CwINC+0YIg0YHRgtCw0YDRi9GFINCx0LjQsdC70LjQvtGC0LXQuiBwbGFzbWEtd2ViIC8gcGxhc21hLWIyY1xuY29uc3QgZmFsbGJhY2tTdGF0dXNNYXAgPSB7XG4gICAgJyc6ICdwcmltYXJ5JyxcbiAgICBzdWNjZXNzOiAncG9zaXRpdmUnLFxuICAgIHdhcm5pbmc6ICd3YXJuaW5nJyxcbiAgICBlcnJvcjogJ25lZ2F0aXZlJyxcbn07XG5cbi8vIFRPRE86INCf0LXRgNC10L3QtdGB0YLQuCDRjdGC0L7RgiDQvNC10YLQvtC0INCyINGE0LDQudC7IGFwcGx5RHluYW1pY0xhYmVsLnRzXG5leHBvcnQgY29uc3QgZ2V0RHluYW1pY0xhYmVsQ2xhc3NlcyA9IChwcm9wczogVGV4dEFyZWFQcm9wcywgZm9jdXNlZDogYm9vbGVhbikgPT4ge1xuICAgIGNvbnN0IHsgcmVhZE9ubHksIGxhYmVsLCBsYWJlbFBsYWNlbWVudCwgcm93cywgdmFsdWUsIHNpemUgfSA9IHByb3BzO1xuXG4gICAgLy8g0JTQvtCx0LDQstC40YLRjCDQutC70LDRgdGBINC+0YLQstC10YfQsNGO0YnQuNC5INC30LAg0LjQt9C80LXQvdC10L3QuNC1INGG0LLQtdGC0LAg0L/Qu9C10LnRgdGF0L7Qu9C00LXRgNCwINC/0YDQuCDRhNC+0LrRg9GB0LVcbiAgICBjb25zdCB3aXRoRm9jdXNlZE91dGVyVXBQbGFjZWhvbGRlciA9XG4gICAgICAgICFyZWFkT25seSAmJiBmb2N1c2VkICYmICghbGFiZWwgfHwgbGFiZWxQbGFjZW1lbnQgPT09ICdvdXRlcicpID8gZm9jdXNlZE91dGVyUGxhY2Vob2xkZXJDb2xvciA6IHVuZGVmaW5lZDtcblxuICAgIC8vINCU0L7QsdCw0LLQuNGC0Ywg0LrQu9Cw0YHRgSDQvtGC0LLQtdGH0LDRjtGJ0LjQuSDQt9CwINC/0L7QtNC90Y/RgtC40LUg0Lgg0YPQvNC10L3RjNGI0LXQvdC40LUg0L/Qu9C10LnRgdGF0L7Qu9C00LXRgNCwXG4gICAgY29uc3Qgd2l0aElubmVyUGxhY2Vob2xkZXJVcCA9XG4gICAgICAgIGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInICYmXG4gICAgICAgIGxhYmVsICYmXG4gICAgICAgICFyb3dzICYmXG4gICAgICAgIHNpemUgIT09ICd4cycgJiZcbiAgICAgICAgKCghcmVhZE9ubHkgJiYgKHZhbHVlIHx8IGZvY3VzZWQpKSB8fCAocmVhZE9ubHkgJiYgdmFsdWUpKVxuICAgICAgICAgICAgPyBpbm5lclBsYWNlaG9sZGVyVXBcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgLy8g0JTQvtCx0LDQstC40YLRjCDQutC70LDRgdGBINC+0YLQstC10YfQsNGO0YnQuNC5INC30LAg0YHQutGA0YvRgtC40LUg0L/Qu9C10LnRgdGF0L7Qu9C00LXRgNCwXG4gICAgY29uc3Qgd2l0aEhpZGVQbGFjZWhvbGRlciA9XG4gICAgICAgICh2YWx1ZSAmJiAhbGFiZWwpIHx8XG4gICAgICAgIChsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJyAmJiAoKGZvY3VzZWQgJiYgIXJlYWRPbmx5KSB8fCB2YWx1ZSkgJiYgbGFiZWwgJiYgcm93cykgfHxcbiAgICAgICAgKGxhYmVsUGxhY2VtZW50ID09PSAnb3V0ZXInICYmIHZhbHVlKSB8fFxuICAgICAgICAobGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgc2l6ZSA9PT0gJ3hzJyAmJiB2YWx1ZSlcbiAgICAgICAgICAgID8gaGlkZVBsYWNlSG9sZGVyXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBbd2l0aEZvY3VzZWRPdXRlclVwUGxhY2Vob2xkZXIsIHdpdGhJbm5lclBsYWNlaG9sZGVyVXAsIHdpdGhIaWRlUGxhY2Vob2xkZXJdO1xufTtcblxuZXhwb3J0IGNvbnN0IHRleHRBcmVhUm9vdCA9IChSb290OiBSb290UHJvcHM8SFRNTFRleHRBcmVhRWxlbWVudCwgVGV4dEFyZWFQcm9wcz4pID0+XG4gICAgZm9yd2FyZFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50LCBUZXh0QXJlYVByb3BzPigocHJvcHMsIGlubmVyUmVmKSA9PiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGhlbHBlclRleHQsXG4gICAgICAgICAgICBzdGF0dXMsXG4gICAgICAgICAgICByZXNpemUsXG4gICAgICAgICAgICByaWdodEhlbHBlcixcbiAgICAgICAgICAgIGxlZnRIZWxwZXIsXG4gICAgICAgICAgICBjb250ZW50UmlnaHQsXG4gICAgICAgICAgICBhdXRvUmVzaXplID0gZmFsc2UsXG4gICAgICAgICAgICBtaW5BdXRvID0gMCxcbiAgICAgICAgICAgIG1heEF1dG8sXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50ID0gJ2lubmVyJyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgcmVxdWlyZWQgPSBmYWxzZSxcbiAgICAgICAgICAgIHJlcXVpcmVkUGxhY2VtZW50ID0gJ3JpZ2h0JyxcbiAgICAgICAgICAgIG9wdGlvbmFsID0gZmFsc2UsXG4gICAgICAgICAgICBjbGVhcixcbiAgICAgICAgICAgIGhhc0RpdmlkZXIsXG4gICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgdmlldyxcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICByZWFkT25seSxcbiAgICAgICAgICAgIHJvd3MsXG4gICAgICAgICAgICBjb2xzLFxuICAgICAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgICAgICAuLi5yZXN0XG4gICAgICAgIH0gPSBwcm9wcztcblxuICAgICAgICBjb25zdCBbaGVscGVyV2lkdGgsIHNldEhlbHBlcldpZHRoXSA9IHVzZVN0YXRlPHN0cmluZz4od2lkdGggPyBgJHt3aWR0aH1yZW1gIDogJzEwMCUnKTtcbiAgICAgICAgY29uc3QgW2ZvY3VzZWQsIHNldEZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgICAgICBjb25zdCBbdW5jb250cm9sbGVkVmFsdWUsIHNldFVuY29udHJvbGxlZFZhbHVlXSA9IHVzZVN0YXRlPHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcblxuICAgICAgICBjb25zdCBvdXRlclJlZiA9IGlubmVyUmVmICYmICdjdXJyZW50JyBpbiBpbm5lclJlZiA/IGlubmVyUmVmIDogY3JlYXRlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KCk7XG5cbiAgICAgICAgY29uc3QgaW5uZXJPcHRpb25hbCA9IHJlcXVpcmVkID8gZmFsc2UgOiBvcHRpb25hbDtcbiAgICAgICAgY29uc3QgaGFzSGVscGVyID0gQm9vbGVhbihsZWZ0SGVscGVyIHx8IHJpZ2h0SGVscGVyIHx8IGhlbHBlclRleHQpO1xuICAgICAgICBjb25zdCBoYXNPdXRlckxhYmVsID0gQm9vbGVhbihsYWJlbCAmJiBsYWJlbFBsYWNlbWVudCA9PT0gJ291dGVyJyk7XG4gICAgICAgIGNvbnN0IGhhc0lubmVyTGFiZWwgPSBCb29sZWFuKGxhYmVsICYmIGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInICYmIHNpemUgIT09ICd4cycpO1xuICAgICAgICBjb25zdCBoYXNQbGFjZWhvbGRlck9wdGlvbmFsID0gaW5uZXJPcHRpb25hbCAmJiAhaGFzT3V0ZXJMYWJlbDtcblxuICAgICAgICBjb25zdCBvdmVycmlkZGVuVmlldyA9IHN0YXR1cyAhPT0gdW5kZWZpbmVkID8gZmFsbGJhY2tTdGF0dXNNYXBbc3RhdHVzXSA6IHZpZXc7XG4gICAgICAgIGNvbnN0IHRleHRhcmVhSGVscGVySWQgPSBpZCA/IGAke2lkfS1oZWxwZXJgIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBhcHBseUN1c3RvbVdpZHRoID0gcmVzaXplICE9PSAnaG9yaXpvbnRhbCcgJiYgcmVzaXplICE9PSAnYm90aCcgJiYgIWNvbHM7XG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyTGFiZWwgPSBoYXNJbm5lckxhYmVsID8gbGFiZWwgOiBwbGFjZWhvbGRlcjtcblxuICAgICAgICBjb25zdCBjbGVhckNsYXNzID0gY2xlYXIgPyBjbGFzc2VzLmNsZWFyIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBoYXNEaXZpZGVyQ2xhc3MgPSBoYXNEaXZpZGVyID8gY2xhc3Nlcy5oYXNEaXZpZGVyIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCByZXF1aXJlZFBsYWNlbWVudENsYXNzID0gcmVxdWlyZWRQbGFjZW1lbnQgPT09ICdyaWdodCcgPyAnYWxpZ24tcmlnaHQgJyA6IHVuZGVmaW5lZDtcblxuICAgICAgICB1c2VSZXNpemVPYnNlcnZlcihvdXRlclJlZiwgKGN1cnJlbnRFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHdpZHRoOiBpbmxpbmVXaWR0aCB9ID0gY3VycmVudEVsZW1lbnQuc3R5bGU7XG5cbiAgICAgICAgICAgIGlmIChpbmxpbmVXaWR0aCB8fCBjb2xzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB3aWR0aDogZWxlbWVudFdpZHRoIH0gPSBjdXJyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBzZXRIZWxwZXJXaWR0aChgJHtlbGVtZW50V2lkdGggLyBST09UX0ZPTlRfU0laRX1yZW1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdXNlQXV0b1Jlc2l6ZShhdXRvUmVzaXplIHx8IEJvb2xlYW4oY2xlYXIpLCBvdXRlclJlZiwgdmFsdWUsIG1pbkF1dG8sIG1heEF1dG8pO1xuXG4gICAgICAgIGNvbnN0IG9uRm9jdXNIYW5kbGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICAgICAgc2V0Rm9jdXNlZCh0cnVlKTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgICAgIGNvbnN0IG9uQmx1ckhhbmRsZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgICAgICBzZXRGb2N1c2VkKGZhbHNlKTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgICAgIGNvbnN0IG9uQ2hhbmdlSGFuZGxlciA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAgICAgKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIC8vIElORk86INCU0LvRjyDQutGA0LDQudC90LUg0YDQtdC00LrQuNGFINC60LXQudGB0L7Qsiwg0LrQvtCz0LTQsCB2YWx1ZSDRgdC90LDRgNGD0LbQuCDQvdC1INC60L7QvdGC0YDQvtC70LjRgNGD0LXRgtGB0Y9cbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBzZXRVbmNvbnRyb2xsZWRWYWx1ZShldmVudD8udGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT8uKGV2ZW50KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbdmFsdWUsIG9uQ2hhbmdlXSxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBkeW5hbWljTGFiZWxDbGFzc2VzID0gZ2V0RHluYW1pY0xhYmVsQ2xhc3NlcyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5LFxuICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50LFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSB8fCB1bmNvbnRyb2xsZWRWYWx1ZSB8fCBkZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICAgICAgcm93cyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmb2N1c2VkLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG9wdGlvbmFsVGV4dE5vZGUgPSBpbm5lck9wdGlvbmFsID8gKFxuICAgICAgICAgICAgPFN0eWxlZE9wdGlvbmFsVGV4dD5cbiAgICAgICAgICAgICAgICB7Qm9vbGVhbihoYXNQbGFjZWhvbGRlck9wdGlvbmFsID8gcGxhY2Vob2xkZXJMYWJlbCA6IGxhYmVsKSAmJiAnXFx4YTAnfVxuICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHR9XG4gICAgICAgICAgICA8L1N0eWxlZE9wdGlvbmFsVGV4dD5cbiAgICAgICAgKSA6IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxSb290XG4gICAgICAgICAgICAgICAgdmlldz17b3ZlcnJpZGRlblZpZXd9XG4gICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgICAgIGNsZWFyPXtjbGVhcn1cbiAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogaGVscGVyV2lkdGgsIC4uLnN0eWxlIH19XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChjbGVhckNsYXNzLCBoYXNEaXZpZGVyQ2xhc3MsIGNsYXNzTmFtZSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2hhc091dGVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVxdWlyZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbmRpY2F0b3IgY2xhc3NOYW1lPXtjeChjbGFzc2VzLm91dGVyTGFiZWxQbGFjZW1lbnQsIHJlcXVpcmVkUGxhY2VtZW50Q2xhc3MpfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZExhYmVsPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KHN0eWxlZENvbnRhaW5lciwgLi4uZHluYW1pY0xhYmVsQ2xhc3Nlcyl9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXtoZWxwZXJXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17b25Gb2N1c0hhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17b25CbHVySGFuZGxlcn1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtyZXF1aXJlZCAmJiAhaGFzT3V0ZXJMYWJlbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yIGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5pbm5lckxhYmVsUGxhY2VtZW50LCByZXF1aXJlZFBsYWNlbWVudENsYXNzKX0gLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAge2NvbnRlbnRSaWdodCAmJiA8U3R5bGVkQ29udGVudD57Y29udGVudFJpZ2h0fTwvU3R5bGVkQ29udGVudD59XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYVdyYXBwZXIgY2xhc3NOYW1lPXtzdHlsZWRUZXh0QXJlYVdyYXBwZXJ9IGhhc0hlbHBlcj17aGFzSGVscGVyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVkVGV4dEFyZWF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0NvbnRlbnRSaWdodD17Qm9vbGVhbihjb250ZW50UmlnaHQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0hlbHBlcj17aGFzSGVscGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGx5Q3VzdG9tV2lkdGg9e2FwcGx5Q3VzdG9tV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtvdXRlclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXthdXRvUmVzaXplIHx8IEJvb2xlYW4oY2xlYXIpID8gbWluQXV0byA6IGhlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17dGV4dGFyZWFIZWxwZXJJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29scz17Y29sc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpemU9e3Jlc2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2VIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYVdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIHtoYXNIZWxwZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEhlbHBlcnMgY2xhc3NOYW1lPXtzdHlsZWRIZWxwZXJzfSBpZD17dGV4dGFyZWFIZWxwZXJJZH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyhsZWZ0SGVscGVyIHx8IGhlbHBlclRleHQpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZExlZnRIZWxwZXI+e2xlZnRIZWxwZXIgfHwgaGVscGVyVGV4dH08L1N0eWxlZExlZnRIZWxwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmlnaHRIZWxwZXIgJiYgPFN0eWxlZFJpZ2h0SGVscGVyPntyaWdodEhlbHBlcn08L1N0eWxlZFJpZ2h0SGVscGVyPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSGVscGVycz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAge3BsYWNlaG9sZGVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzQ29udGVudFJpZ2h0PXtCb29sZWFuKGNvbnRlbnRSaWdodCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZWRQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sRm9yPXtpZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGxhY2Vob2xkZXJMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IWhhc091dGVyTGFiZWwgJiYgb3B0aW9uYWxUZXh0Tm9kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkUGxhY2Vob2xkZXI+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRDb250YWluZXI+XG4gICAgICAgICAgICA8L1Jvb3Q+XG4gICAgICAgICk7XG4gICAgfSk7XG5cbmV4cG9ydCBjb25zdCB0ZXh0QXJlYUNvbmZpZyA9IHtcbiAgICBuYW1lOiAnVGV4dEFyZWEnLFxuICAgIHRhZzogJ2RpdicsXG4gICAgbGF5b3V0OiB0ZXh0QXJlYVJvb3QsXG4gICAgYmFzZSxcbiAgICB2YXJpYXRpb25zOiB7XG4gICAgICAgIHNpemU6IHtcbiAgICAgICAgICAgIGNzczogc2l6ZUNTUyxcbiAgICAgICAgfSxcbiAgICAgICAgdmlldzoge1xuICAgICAgICAgICAgY3NzOiB2aWV3Q1NTLFxuICAgICAgICB9LFxuICAgICAgICBjbGVhcjoge1xuICAgICAgICAgICAgY3NzOiBjbGVhckNTUyxcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkaXNhYmxlZDoge1xuICAgICAgICAgICAgY3NzOiBkaXNhYmxlZENTUyxcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICByZWFkT25seToge1xuICAgICAgICAgICAgYXR0cnM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0czoge1xuICAgICAgICBzaXplOiAnbScsXG4gICAgICAgIHZpZXc6ICdwcmltYXJ5JyxcbiAgICB9LFxufTtcbiJdfQ== */"));
46
+ var base = /*#__PURE__*/css(applyDynamicLabel, ";position:relative;box-sizing:border-box;;label:plasma-new-hope__base;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvVGV4dEFyZWEvVGV4dEFyZWEudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1EZ0IiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjLWVtb3Rpb24vY29tcG9uZW50cy9UZXh0QXJlYS9UZXh0QXJlYS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgdXNlU3RhdGUsIGNyZWF0ZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgTW91c2VFdmVudEhhbmRsZXIgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyB1c2VGb3JrUmVmLCB1c2VSZXNpemVPYnNlcnZlciB9IGZyb20gJ0BzYWx1dGVqcy9wbGFzbWEtY29yZSc7XG5cbmltcG9ydCB7IGN4LCBzYWZlVXNlSWQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJvb3RQcm9wcyB9IGZyb20gJy4uLy4uL2VuZ2luZXMvdHlwZXMnO1xuaW1wb3J0IHsgSWNvbkluZm9DaXJjbGVPdXRsaW5lIH0gZnJvbSAnLi4vX0ljb24nO1xuaW1wb3J0IHsgdXNlT3V0c2lkZUNsaWNrIH0gZnJvbSAnLi4vLi4vaG9va3MnO1xuXG5pbXBvcnQgeyBhcHBseUR5bmFtaWNMYWJlbCB9IGZyb20gJy4vbWl4aW5zJztcbmltcG9ydCB7IHVzZUF1dG9SZXNpemUsIFJPT1RfRk9OVF9TSVpFIH0gZnJvbSAnLi9ob29rcyc7XG5pbXBvcnQge1xuICAgIFN0eWxlZENvbnRlbnQsXG4gICAgU3R5bGVkSGVscGVycyxcbiAgICBTdHlsZWRMZWZ0SGVscGVyLFxuICAgIFN0eWxlZFJpZ2h0SGVscGVyLFxuICAgIFN0eWxlZExhYmVsLFxuICAgIFN0eWxlZFBsYWNlaG9sZGVyLFxuICAgIFN0eWxlZFRleHRBcmVhLFxuICAgIFN0eWxlZFRleHRBcmVhV3JhcHBlcixcbiAgICBTdHlsZWRDb250YWluZXIsXG4gICAgU3R5bGVkSW5kaWNhdG9yLFxuICAgIFN0eWxlZE9wdGlvbmFsVGV4dCxcbiAgICBPdXRlckxhYmVsV3JhcHBlcixcbiAgICBTdHlsZWRJbmRpY2F0b3JXcmFwcGVyLFxuICAgIFN0eWxlZEhpbnRXcmFwcGVyLFxuICAgIEhpbnRUYXJnZXRXcmFwcGVyLFxuICAgIFRpdGxlQ2FwdGlvbixcbiAgICBIaW50LFxufSBmcm9tICcuL1RleHRBcmVhLnN0eWxlcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAnLi9UZXh0QXJlYS50b2tlbnMnO1xuaW1wb3J0IHsgYmFzZSBhcyB2aWV3Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL192aWV3L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBzaXplQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19zaXplL2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBkaXNhYmxlZENTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fZGlzYWJsZWQvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGhpbnRWaWV3Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19oaW50LXZpZXcvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGhpbnRTaXplQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19oaW50LXNpemUvYmFzZSc7XG5pbXBvcnQgdHlwZSB7IFRleHRBcmVhUHJvcHMsIFRleHRBcmVhUm9vdFByb3BzIH0gZnJvbSAnLi9UZXh0QXJlYS50eXBlcyc7XG5cbmNvbnN0IHtcbiAgICBpbm5lclBsYWNlaG9sZGVyVXAsXG4gICAgZm9jdXNlZE91dGVyUGxhY2Vob2xkZXJDb2xvcixcbiAgICBoaWRlUGxhY2VIb2xkZXIsXG4gICAgc3R5bGVkQ29udGFpbmVyLFxuICAgIHN0eWxlZFRleHRBcmVhLFxuICAgIHN0eWxlZFRleHRBcmVhV3JhcHBlcixcbiAgICBzdHlsZWRQbGFjZWhvbGRlcixcbiAgICBzdHlsZWRIZWxwZXJzLFxufSA9IGNsYXNzZXM7XG5cbmNvbnN0IG9wdGlvbmFsVGV4dCA9ICdvcHRpb25hbCc7XG5cbmNvbnN0IGJhc2UgPSBjc3NgXG4gICAgJHthcHBseUR5bmFtaWNMYWJlbH07XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbmA7XG5cbi8vIFRPRE86INCj0LTQsNC70LjRgtGMINC/0L7RgdC70LUg0L7RgtC60LDQt9CwINC+0YIg0YHRgtCw0YDRi9GFINCx0LjQsdC70LjQvtGC0LXQuiBwbGFzbWEtd2ViIC8gcGxhc21hLWIyY1xuY29uc3QgZmFsbGJhY2tTdGF0dXNNYXAgPSB7XG4gICAgJyc6ICdwcmltYXJ5JyxcbiAgICBzdWNjZXNzOiAncG9zaXRpdmUnLFxuICAgIHdhcm5pbmc6ICd3YXJuaW5nJyxcbiAgICBlcnJvcjogJ25lZ2F0aXZlJyxcbn07XG5cbi8vIFRPRE86INCf0LXRgNC10L3QtdGB0YLQuCDRjdGC0L7RgiDQvNC10YLQvtC0INCyINGE0LDQudC7IGFwcGx5RHluYW1pY0xhYmVsLnRzXG5leHBvcnQgY29uc3QgZ2V0RHluYW1pY0xhYmVsQ2xhc3NlcyA9IChwcm9wczogVGV4dEFyZWFQcm9wcywgZm9jdXNlZDogYm9vbGVhbikgPT4ge1xuICAgIGNvbnN0IHsgcmVhZE9ubHksIGxhYmVsLCBsYWJlbFBsYWNlbWVudCwgYXV0b1Jlc2l6ZSwgcm93cywgdmFsdWUsIHNpemUgfSA9IHByb3BzO1xuXG4gICAgLy8g0JTQvtCx0LDQstC40YLRjCDQutC70LDRgdGBINC+0YLQstC10YfQsNGO0YnQuNC5INC30LAg0LjQt9C80LXQvdC10L3QuNC1INGG0LLQtdGC0LAg0L/Qu9C10LnRgdGF0L7Qu9C00LXRgNCwINC/0YDQuCDRhNC+0LrRg9GB0LVcbiAgICBjb25zdCB3aXRoRm9jdXNlZE91dGVyVXBQbGFjZWhvbGRlciA9XG4gICAgICAgICFyZWFkT25seSAmJiBmb2N1c2VkICYmICghbGFiZWwgfHwgbGFiZWxQbGFjZW1lbnQgPT09ICdvdXRlcicpID8gZm9jdXNlZE91dGVyUGxhY2Vob2xkZXJDb2xvciA6IHVuZGVmaW5lZDtcblxuICAgIC8vINCU0L7QsdCw0LLQuNGC0Ywg0LrQu9Cw0YHRgSDQvtGC0LLQtdGH0LDRjtGJ0LjQuSDQt9CwINC/0L7QtNC90Y/RgtC40LUg0Lgg0YPQvNC10L3RjNGI0LXQvdC40LUg0L/Qu9C10LnRgdGF0L7Qu9C00LXRgNCwXG4gICAgY29uc3Qgd2l0aElubmVyUGxhY2Vob2xkZXJVcCA9XG4gICAgICAgIGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInICYmXG4gICAgICAgIGxhYmVsICYmXG4gICAgICAgICFhdXRvUmVzaXplICYmXG4gICAgICAgICFyb3dzICYmXG4gICAgICAgIHNpemUgIT09ICd4cycgJiZcbiAgICAgICAgKCghcmVhZE9ubHkgJiYgKHZhbHVlIHx8IGZvY3VzZWQpKSB8fCAocmVhZE9ubHkgJiYgdmFsdWUpKVxuICAgICAgICAgICAgPyBpbm5lclBsYWNlaG9sZGVyVXBcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgLy8g0JTQvtCx0LDQstC40YLRjCDQutC70LDRgdGBINC+0YLQstC10YfQsNGO0YnQuNC5INC30LAg0YHQutGA0YvRgtC40LUg0L/Qu9C10LnRgdGF0L7Qu9C00LXRgNCwXG4gICAgY29uc3Qgd2l0aEhpZGVQbGFjZWhvbGRlciA9XG4gICAgICAgICh2YWx1ZSAmJiAhbGFiZWwpIHx8XG4gICAgICAgIChsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJyAmJiAoKGZvY3VzZWQgJiYgIXJlYWRPbmx5KSB8fCB2YWx1ZSkgJiYgbGFiZWwgJiYgKHJvd3MgfHwgYXV0b1Jlc2l6ZSkpIHx8XG4gICAgICAgIChsYWJlbFBsYWNlbWVudCA9PT0gJ291dGVyJyAmJiB2YWx1ZSkgfHxcbiAgICAgICAgKGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInICYmIHNpemUgPT09ICd4cycgJiYgdmFsdWUpXG4gICAgICAgICAgICA/IGhpZGVQbGFjZUhvbGRlclxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gW3dpdGhGb2N1c2VkT3V0ZXJVcFBsYWNlaG9sZGVyLCB3aXRoSW5uZXJQbGFjZWhvbGRlclVwLCB3aXRoSGlkZVBsYWNlaG9sZGVyXTtcbn07XG5cbmV4cG9ydCBjb25zdCB0ZXh0QXJlYVJvb3QgPSAoUm9vdDogUm9vdFByb3BzPEhUTUxUZXh0QXJlYUVsZW1lbnQsIFRleHRBcmVhUm9vdFByb3BzPikgPT5cbiAgICBmb3J3YXJkUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQsIFRleHRBcmVhUHJvcHM+KChwcm9wcywgaW5uZXJSZWYpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgaGVscGVyVGV4dCxcbiAgICAgICAgICAgIHN0YXR1cyxcbiAgICAgICAgICAgIHJlc2l6ZSxcbiAgICAgICAgICAgIHJpZ2h0SGVscGVyLFxuICAgICAgICAgICAgbGVmdEhlbHBlcixcbiAgICAgICAgICAgIGNvbnRlbnRSaWdodCxcbiAgICAgICAgICAgIGF1dG9SZXNpemUgPSBmYWxzZSxcbiAgICAgICAgICAgIG1pbkF1dG8gPSAwLFxuICAgICAgICAgICAgbWF4QXV0byxcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQgPSAnaW5uZXInLFxuICAgICAgICAgICAgdGl0bGVDYXB0aW9uLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICByZXF1aXJlZCA9IGZhbHNlLFxuICAgICAgICAgICAgcmVxdWlyZWRQbGFjZW1lbnQgPSAncmlnaHQnLFxuICAgICAgICAgICAgb3B0aW9uYWwgPSBmYWxzZSxcbiAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICB2aWV3LFxuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBzdHlsZSxcbiAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgIHJlYWRPbmx5LFxuICAgICAgICAgICAgcm93cyxcbiAgICAgICAgICAgIGNvbHMsXG4gICAgICAgICAgICBoYXNIaW50LFxuICAgICAgICAgICAgaGludFRyaWdnZXIgPSAnaG92ZXInLFxuICAgICAgICAgICAgaGludFRleHQsXG4gICAgICAgICAgICBoaW50VmlldyA9ICdkZWZhdWx0JyxcbiAgICAgICAgICAgIGhpbnRTaXplID0gJ20nLFxuICAgICAgICAgICAgaGludFRhcmdldCxcbiAgICAgICAgICAgIGhpbnRQbGFjZW1lbnQgPSAnYXV0bycsXG4gICAgICAgICAgICBoaW50SGFzQXJyb3csXG4gICAgICAgICAgICBoaW50T2Zmc2V0LFxuICAgICAgICAgICAgaGludE1pbldpZHRoLFxuICAgICAgICAgICAgaGludE1heFdpZHRoLFxuICAgICAgICAgICAgaGludENvbnRlbnRMZWZ0LFxuICAgICAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgICAgICAuLi5yZXN0XG4gICAgICAgIH0gPSBwcm9wcztcblxuICAgICAgICBjb25zdCBbc2hvd0hpbnQsIHNldFNob3dIaW50XSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICAgICAgY29uc3QgW2hlbHBlcldpZHRoLCBzZXRIZWxwZXJXaWR0aF0gPSB1c2VTdGF0ZTxzdHJpbmc+KHdpZHRoID8gYCR7d2lkdGh9cmVtYCA6ICcxMDAlJyk7XG4gICAgICAgIGNvbnN0IFtmb2N1c2VkLCBzZXRGb2N1c2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICAgICAgY29uc3QgW3VuY29udHJvbGxlZFZhbHVlLCBzZXRVbmNvbnRyb2xsZWRWYWx1ZV0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICAgICAgY29uc3QgaGludElkID0gc2FmZVVzZUlkKCk7XG5cbiAgICAgICAgY29uc3Qgb3V0ZXJSZWYgPSBpbm5lclJlZiAmJiAnY3VycmVudCcgaW4gaW5uZXJSZWYgPyBpbm5lclJlZiA6IGNyZWF0ZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PigpO1xuXG4gICAgICAgIGNvbnN0IGhpbnRSZWYgPSB1c2VPdXRzaWRlQ2xpY2s8SFRNTERpdkVsZW1lbnQ+KCgpID0+IHtcbiAgICAgICAgICAgIHNldFNob3dIaW50KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGhpbnRJbm5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgICAgIGNvbnN0IGhpbnRGb3JrUmVmID0gdXNlRm9ya1JlZihoaW50UmVmLCBoaW50SW5uZXJSZWYpO1xuXG4gICAgICAgIGNvbnN0IGlubmVyT3B0aW9uYWwgPSByZXF1aXJlZCA/IGZhbHNlIDogb3B0aW9uYWw7XG4gICAgICAgIGNvbnN0IGhhc0hlbHBlciA9IEJvb2xlYW4obGVmdEhlbHBlciB8fCByaWdodEhlbHBlciB8fCBoZWxwZXJUZXh0KTtcbiAgICAgICAgY29uc3QgaGFzT3V0ZXJMYWJlbCA9IEJvb2xlYW4obGFiZWwgJiYgbGFiZWxQbGFjZW1lbnQgPT09ICdvdXRlcicpO1xuICAgICAgICBjb25zdCBoYXNJbm5lckxhYmVsID0gQm9vbGVhbihsYWJlbCAmJiBsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJyAmJiBzaXplICE9PSAneHMnKTtcbiAgICAgICAgY29uc3QgaGFzUGxhY2Vob2xkZXJPcHRpb25hbCA9IGlubmVyT3B0aW9uYWwgJiYgIWhhc091dGVyTGFiZWw7XG5cbiAgICAgICAgY29uc3Qgb3ZlcnJpZGRlblZpZXcgPSBzdGF0dXMgIT09IHVuZGVmaW5lZCA/IGZhbGxiYWNrU3RhdHVzTWFwW3N0YXR1c10gOiB2aWV3O1xuICAgICAgICBjb25zdCB0ZXh0YXJlYUhlbHBlcklkID0gaWQgPyBgJHtpZH0taGVscGVyYCA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgYXBwbHlDdXN0b21XaWR0aCA9IHJlc2l6ZSAhPT0gJ2hvcml6b250YWwnICYmIHJlc2l6ZSAhPT0gJ2JvdGgnICYmICFjb2xzO1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlckxhYmVsID0gaGFzSW5uZXJMYWJlbCA/IGxhYmVsIDogcGxhY2Vob2xkZXI7XG5cbiAgICAgICAgY29uc3QgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyA9IHJlcXVpcmVkUGxhY2VtZW50ID09PSAncmlnaHQnID8gJ2FsaWduLXJpZ2h0ICcgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3QgaGFuZGxlU2hvd0hpbnQgPSAoKSA9PiBzZXRTaG93SGludCh0cnVlKTtcbiAgICAgICAgY29uc3QgaGFuZGxlSGlkZUhpbnQgPSAoKSA9PiBzZXRTaG93SGludChmYWxzZSk7XG4gICAgICAgIGNvbnN0IGhhbmRsZUNsaWNrSGludDogTW91c2VFdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChoYXNIaW50ICYmIGhpbnRUcmlnZ2VyID09PSAnY2xpY2snKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0SXNQb3BvdmVyID0gZXZlbnQudGFyZ2V0ID09PSBoaW50SW5uZXJSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBjb25zdCByb290SGFzVGFyZ2V0ID0gaGludElubmVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KTtcblxuICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0SXNQb3BvdmVyICYmICFyb290SGFzVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFNob3dIaW50KHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB1c2VSZXNpemVPYnNlcnZlcihvdXRlclJlZiwgKGN1cnJlbnRFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHdpZHRoOiBpbmxpbmVXaWR0aCB9ID0gY3VycmVudEVsZW1lbnQuc3R5bGU7XG5cbiAgICAgICAgICAgIGlmIChpbmxpbmVXaWR0aCB8fCBjb2xzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB3aWR0aDogZWxlbWVudFdpZHRoIH0gPSBjdXJyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBzZXRIZWxwZXJXaWR0aChgJHtlbGVtZW50V2lkdGggLyBST09UX0ZPTlRfU0laRX1yZW1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdXNlQXV0b1Jlc2l6ZShhdXRvUmVzaXplLCBvdXRlclJlZiwgdmFsdWUsIG1pbkF1dG8sIG1heEF1dG8pO1xuXG4gICAgICAgIGNvbnN0IG9uRm9jdXNIYW5kbGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICAgICAgc2V0Rm9jdXNlZCh0cnVlKTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgICAgIGNvbnN0IG9uQmx1ckhhbmRsZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgICAgICBzZXRGb2N1c2VkKGZhbHNlKTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgICAgIGNvbnN0IG9uQ2hhbmdlSGFuZGxlciA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAgICAgKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIC8vIElORk86INCU0LvRjyDQutGA0LDQudC90LUg0YDQtdC00LrQuNGFINC60LXQudGB0L7Qsiwg0LrQvtCz0LTQsCB2YWx1ZSDRgdC90LDRgNGD0LbQuCDQvdC1INC60L7QvdGC0YDQvtC70LjRgNGD0LXRgtGB0Y9cbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBzZXRVbmNvbnRyb2xsZWRWYWx1ZShldmVudD8udGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT8uKGV2ZW50KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbdmFsdWUsIG9uQ2hhbmdlXSxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBkeW5hbWljTGFiZWxDbGFzc2VzID0gZ2V0RHluYW1pY0xhYmVsQ2xhc3NlcyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5LFxuICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50LFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSB8fCB1bmNvbnRyb2xsZWRWYWx1ZSB8fCBkZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICAgICAgLi4uKHJvd3MgPyB7IHJvd3MgfSA6IHsgYXV0b1Jlc2l6ZSB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmb2N1c2VkLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG9wdGlvbmFsVGV4dE5vZGUgPSBpbm5lck9wdGlvbmFsID8gKFxuICAgICAgICAgICAgPFN0eWxlZE9wdGlvbmFsVGV4dD5cbiAgICAgICAgICAgICAgICB7Qm9vbGVhbihoYXNQbGFjZWhvbGRlck9wdGlvbmFsID8gcGxhY2Vob2xkZXJMYWJlbCA6IGxhYmVsKSAmJiAnXFx4YTAnfVxuICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHR9XG4gICAgICAgICAgICA8L1N0eWxlZE9wdGlvbmFsVGV4dD5cbiAgICAgICAgKSA6IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxSb290XG4gICAgICAgICAgICAgICAgdmlldz17b3ZlcnJpZGRlblZpZXd9XG4gICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBoZWxwZXJXaWR0aCwgLi4uc3R5bGUgfX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICB7Li4uKGhhc0hpbnQgJiYge1xuICAgICAgICAgICAgICAgICAgICBoaW50VmlldzogaGludFZpZXcgfHwgJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgICAgICBoaW50U2l6ZTogaGludFNpemUgfHwgJ20nLFxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHsoaGFzT3V0ZXJMYWJlbCB8fCB0aXRsZUNhcHRpb24pICYmIChcbiAgICAgICAgICAgICAgICAgICAgPE91dGVyTGFiZWxXcmFwcGVyIGlzSW5ubmVyTGFiZWw9e2xhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNPdXRlckxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZExhYmVsPntsYWJlbH08L1N0eWxlZExhYmVsPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNIaW50ICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtTdHJpbmcoaGludFRleHQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuZWQ9e3Nob3dIaW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRhcmdldCB8fCAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRUYXJnZXRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtoaW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi4oaGludFRyaWdnZXIgPT09ICdob3ZlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyOiBoYW5kbGVTaG93SGludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZTogaGFuZGxlSGlkZUhpbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeyBvbkNsaWNrOiBoYW5kbGVDbGlja0hpbnQgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkluZm9DaXJjbGVPdXRsaW5lIHNpemU9XCJ4c1wiIGNvbG9yPVwiaW5oZXJpdFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IaW50VGFyZ2V0V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9e2hpbnRQbGFjZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0Fycm93PXtoaW50SGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD17aGludE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluV2lkdGg9e2hpbnRNaW5XaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg9e2hpbnRNYXhXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudExlZnQ9e2hpbnRDb250ZW50TGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWU9e2hpbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtoaW50Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRIaW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlcXVpcmVkICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbmRpY2F0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KGNsYXNzZXMub3V0ZXJMYWJlbFBsYWNlbWVudCwgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9uYWxUZXh0Tm9kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEluZGljYXRvcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAge3RpdGxlQ2FwdGlvbiAmJiA8VGl0bGVDYXB0aW9uPnt0aXRsZUNhcHRpb259PC9UaXRsZUNhcHRpb24+fVxuICAgICAgICAgICAgICAgICAgICA8L091dGVyTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KHN0eWxlZENvbnRhaW5lciwgLi4uZHluYW1pY0xhYmVsQ2xhc3Nlcyl9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXtoZWxwZXJXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17b25Gb2N1c0hhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17b25CbHVySGFuZGxlcn1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHshaGFzT3V0ZXJMYWJlbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZXF1aXJlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbmRpY2F0b3IgY2xhc3NOYW1lPXtjeChjbGFzc2VzLmlubmVyTGFiZWxQbGFjZW1lbnQsIHJlcXVpcmVkUGxhY2VtZW50Q2xhc3MpfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc0hpbnQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSGludFdyYXBwZXIgY2xhc3NOYW1lPXtjbGFzc2VzLmlubmVyTGFiZWxQbGFjZW1lbnR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtTdHJpbmcoaGludFRleHQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5lZD17c2hvd0hpbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludFRhcmdldCB8fCAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGludFRhcmdldFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17aGludElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi4oaGludFRyaWdnZXIgPT09ICdob3ZlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogaGFuZGxlU2hvd0hpbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZTogaGFuZGxlSGlkZUhpbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHsgb25DbGljazogaGFuZGxlQ2xpY2tIaW50IH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uSW5mb0NpcmNsZU91dGxpbmUgc2l6ZT1cInhzXCIgY29sb3I9XCJpbmhlcml0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSGludFRhcmdldFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PXtoaW50UGxhY2VtZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0Fycm93PXtoaW50SGFzQXJyb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PXtoaW50T2Zmc2V0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbldpZHRoPXtoaW50TWluV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg9e2hpbnRNYXhXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50TGVmdD17aGludENvbnRlbnRMZWZ0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lPXtoaW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtoaW50Rm9ya1JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSGludFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICB7Y29udGVudFJpZ2h0ICYmIDxTdHlsZWRDb250ZW50Pntjb250ZW50UmlnaHR9PC9TdHlsZWRDb250ZW50Pn1cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFRleHRBcmVhV3JhcHBlciBjbGFzc05hbWU9e3N0eWxlZFRleHRBcmVhV3JhcHBlcn0gaGFzSGVscGVyPXtoYXNIZWxwZXJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFRleHRBcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZWRUZXh0QXJlYX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzQ29udGVudFJpZ2h0PXtCb29sZWFuKGNvbnRlbnRSaWdodCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzSGVscGVyPXtoYXNIZWxwZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlDdXN0b21XaWR0aD17YXBwbHlDdXN0b21XaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e291dGVyUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9e2F1dG9SZXNpemUgPyBtaW5BdXRvIDogaGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXt0ZXh0YXJlYUhlbHBlcklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17cm93c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xzPXtjb2xzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6ZT17cmVzaXplfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdFZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAge2hhc0hlbHBlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSGVscGVycyBjbGFzc05hbWU9e3N0eWxlZEhlbHBlcnN9IGlkPXt0ZXh0YXJlYUhlbHBlcklkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KGxlZnRIZWxwZXIgfHwgaGVscGVyVGV4dCkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTGVmdEhlbHBlcj57bGVmdEhlbHBlciB8fCBoZWxwZXJUZXh0fTwvU3R5bGVkTGVmdEhlbHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyaWdodEhlbHBlciAmJiA8U3R5bGVkUmlnaHRIZWxwZXI+e3JpZ2h0SGVscGVyfTwvU3R5bGVkUmlnaHRIZWxwZXI+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRIZWxwZXJzPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICB7cGxhY2Vob2xkZXJMYWJlbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkUGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNDb250ZW50UmlnaHQ9e0Jvb2xlYW4oY29udGVudFJpZ2h0KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlZFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxGb3I9e2lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwbGFjZWhvbGRlckxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHshaGFzT3V0ZXJMYWJlbCAmJiBvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRQbGFjZWhvbGRlcj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvUm9vdD5cbiAgICAgICAgKTtcbiAgICB9KTtcblxuZXhwb3J0IGNvbnN0IHRleHRBcmVhQ29uZmlnID0ge1xuICAgIG5hbWU6ICdUZXh0QXJlYScsXG4gICAgdGFnOiAnZGl2JyxcbiAgICBsYXlvdXQ6IHRleHRBcmVhUm9vdCxcbiAgICBiYXNlLFxuICAgIHZhcmlhdGlvbnM6IHtcbiAgICAgICAgc2l6ZToge1xuICAgICAgICAgICAgY3NzOiBzaXplQ1NTLFxuICAgICAgICB9LFxuICAgICAgICB2aWV3OiB7XG4gICAgICAgICAgICBjc3M6IHZpZXdDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIGRpc2FibGVkOiB7XG4gICAgICAgICAgICBjc3M6IGRpc2FibGVkQ1NTLFxuICAgICAgICAgICAgYXR0cnM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHJlYWRPbmx5OiB7XG4gICAgICAgICAgICBhdHRyczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgaGludFZpZXc6IHtcbiAgICAgICAgICAgIGNzczogaGludFZpZXdDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIGhpbnRTaXplOiB7XG4gICAgICAgICAgICBjc3M6IGhpbnRTaXplQ1NTLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgc2l6ZTogJ20nLFxuICAgICAgICB2aWV3OiAncHJpbWFyeScsXG4gICAgfSxcbn07XG4iXX0= */"));
43
47
 
44
48
  // TODO: Удалить после отказа от старых библиотек plasma-web / plasma-b2c
45
49
  var fallbackStatusMap = {
@@ -54,6 +58,7 @@ export var getDynamicLabelClasses = function getDynamicLabelClasses(props, focus
54
58
  var readOnly = props.readOnly,
55
59
  label = props.label,
56
60
  labelPlacement = props.labelPlacement,
61
+ autoResize = props.autoResize,
57
62
  rows = props.rows,
58
63
  value = props.value,
59
64
  size = props.size;
@@ -62,10 +67,10 @@ export var getDynamicLabelClasses = function getDynamicLabelClasses(props, focus
62
67
  var withFocusedOuterUpPlaceholder = !readOnly && focused && (!label || labelPlacement === 'outer') ? focusedOuterPlaceholderColor : undefined;
63
68
 
64
69
  // Добавить класс отвечающий за поднятие и уменьшение плейсхолдера
65
- var withInnerPlaceholderUp = labelPlacement === 'inner' && label && !rows && size !== 'xs' && (!readOnly && (value || focused) || readOnly && value) ? innerPlaceholderUp : undefined;
70
+ var withInnerPlaceholderUp = labelPlacement === 'inner' && label && !autoResize && !rows && size !== 'xs' && (!readOnly && (value || focused) || readOnly && value) ? innerPlaceholderUp : undefined;
66
71
 
67
72
  // Добавить класс отвечающий за скрытие плейсхолдера
68
- var withHidePlaceholder = value && !label || labelPlacement === 'inner' && (focused && !readOnly || value) && label && rows || labelPlacement === 'outer' && value || labelPlacement === 'inner' && size === 'xs' && value ? hidePlaceHolder : undefined;
73
+ var withHidePlaceholder = value && !label || labelPlacement === 'inner' && (focused && !readOnly || value) && label && (rows || autoResize) || labelPlacement === 'outer' && value || labelPlacement === 'inner' && size === 'xs' && value ? hidePlaceHolder : undefined;
69
74
  return [withFocusedOuterUpPlaceholder, withInnerPlaceholderUp, withHidePlaceholder];
70
75
  };
71
76
  export var textAreaRoot = function textAreaRoot(Root) {
@@ -84,6 +89,7 @@ export var textAreaRoot = function textAreaRoot(Root) {
84
89
  label = props.label,
85
90
  _props$labelPlacement = props.labelPlacement,
86
91
  labelPlacement = _props$labelPlacement === void 0 ? 'inner' : _props$labelPlacement,
92
+ titleCaption = props.titleCaption,
87
93
  placeholder = props.placeholder,
88
94
  defaultValue = props.defaultValue,
89
95
  height = props.height,
@@ -96,8 +102,6 @@ export var textAreaRoot = function textAreaRoot(Root) {
96
102
  requiredPlacement = _props$requiredPlacem === void 0 ? 'right' : _props$requiredPlacem,
97
103
  _props$optional = props.optional,
98
104
  optional = _props$optional === void 0 ? false : _props$optional,
99
- clear = props.clear,
100
- hasDivider = props.hasDivider,
101
105
  size = props.size,
102
106
  view = props.view,
103
107
  id = props.id,
@@ -106,21 +110,47 @@ export var textAreaRoot = function textAreaRoot(Root) {
106
110
  readOnly = props.readOnly,
107
111
  rows = props.rows,
108
112
  cols = props.cols,
113
+ hasHint = props.hasHint,
114
+ _props$hintTrigger = props.hintTrigger,
115
+ hintTrigger = _props$hintTrigger === void 0 ? 'hover' : _props$hintTrigger,
116
+ hintText = props.hintText,
117
+ _props$hintView = props.hintView,
118
+ hintView = _props$hintView === void 0 ? 'default' : _props$hintView,
119
+ _props$hintSize = props.hintSize,
120
+ hintSize = _props$hintSize === void 0 ? 'm' : _props$hintSize,
121
+ hintTarget = props.hintTarget,
122
+ _props$hintPlacement = props.hintPlacement,
123
+ hintPlacement = _props$hintPlacement === void 0 ? 'auto' : _props$hintPlacement,
124
+ hintHasArrow = props.hintHasArrow,
125
+ hintOffset = props.hintOffset,
126
+ hintMinWidth = props.hintMinWidth,
127
+ hintMaxWidth = props.hintMaxWidth,
128
+ hintContentLeft = props.hintContentLeft,
109
129
  onChange = props.onChange,
110
130
  rest = _objectWithoutProperties(props, _excluded);
111
- var _useState = useState(width ? "".concat(width, "rem") : '100%'),
131
+ var _useState = useState(false),
112
132
  _useState2 = _slicedToArray(_useState, 2),
113
- helperWidth = _useState2[0],
114
- setHelperWidth = _useState2[1];
115
- var _useState3 = useState(false),
133
+ showHint = _useState2[0],
134
+ setShowHint = _useState2[1];
135
+ var _useState3 = useState(width ? "".concat(width, "rem") : '100%'),
116
136
  _useState4 = _slicedToArray(_useState3, 2),
117
- focused = _useState4[0],
118
- setFocused = _useState4[1];
119
- var _useState5 = useState(),
137
+ helperWidth = _useState4[0],
138
+ setHelperWidth = _useState4[1];
139
+ var _useState5 = useState(false),
120
140
  _useState6 = _slicedToArray(_useState5, 2),
121
- uncontrolledValue = _useState6[0],
122
- setUncontrolledValue = _useState6[1];
141
+ focused = _useState6[0],
142
+ setFocused = _useState6[1];
143
+ var _useState7 = useState(),
144
+ _useState8 = _slicedToArray(_useState7, 2),
145
+ uncontrolledValue = _useState8[0],
146
+ setUncontrolledValue = _useState8[1];
147
+ var hintId = safeUseId();
123
148
  var outerRef = innerRef && 'current' in innerRef ? innerRef : /*#__PURE__*/createRef();
149
+ var hintRef = useOutsideClick(function () {
150
+ setShowHint(false);
151
+ });
152
+ var hintInnerRef = useRef(null);
153
+ var hintForkRef = useForkRef(hintRef, hintInnerRef);
124
154
  var innerOptional = required ? false : optional;
125
155
  var hasHelper = Boolean(leftHelper || rightHelper || helperText);
126
156
  var hasOuterLabel = Boolean(label && labelPlacement === 'outer');
@@ -130,9 +160,24 @@ export var textAreaRoot = function textAreaRoot(Root) {
130
160
  var textareaHelperId = id ? "".concat(id, "-helper") : undefined;
131
161
  var applyCustomWidth = resize !== 'horizontal' && resize !== 'both' && !cols;
132
162
  var placeholderLabel = hasInnerLabel ? label : placeholder;
133
- var clearClass = clear ? classes.clear : undefined;
134
- var hasDividerClass = hasDivider ? classes.hasDivider : undefined;
135
163
  var requiredPlacementClass = requiredPlacement === 'right' ? 'align-right ' : undefined;
164
+ var handleShowHint = function handleShowHint() {
165
+ return setShowHint(true);
166
+ };
167
+ var handleHideHint = function handleHideHint() {
168
+ return setShowHint(false);
169
+ };
170
+ var handleClickHint = function handleClickHint(event) {
171
+ if (hasHint && hintTrigger === 'click') {
172
+ var _hintInnerRef$current;
173
+ event.stopPropagation();
174
+ var targetIsPopover = event.target === hintInnerRef.current;
175
+ var rootHasTarget = (_hintInnerRef$current = hintInnerRef.current) === null || _hintInnerRef$current === void 0 ? void 0 : _hintInnerRef$current.contains(event.target);
176
+ if (!targetIsPopover && !rootHasTarget) {
177
+ setShowHint(true);
178
+ }
179
+ }
180
+ };
136
181
  useResizeObserver(outerRef, function (currentElement) {
137
182
  var inlineWidth = currentElement.style.width;
138
183
  if (inlineWidth || cols) {
@@ -141,7 +186,7 @@ export var textAreaRoot = function textAreaRoot(Root) {
141
186
  setHelperWidth("".concat(elementWidth / ROOT_FONT_SIZE, "rem"));
142
187
  }
143
188
  });
144
- useAutoResize(autoResize || Boolean(clear), outerRef, value, minAuto, maxAuto);
189
+ useAutoResize(autoResize, outerRef, value, minAuto, maxAuto);
145
190
  var onFocusHandler = useCallback(function () {
146
191
  setFocused(true);
147
192
  }, []);
@@ -155,35 +200,88 @@ export var textAreaRoot = function textAreaRoot(Root) {
155
200
  }
156
201
  onChange === null || onChange === void 0 || onChange(event);
157
202
  }, [value, onChange]);
158
- var dynamicLabelClasses = getDynamicLabelClasses({
203
+ var dynamicLabelClasses = getDynamicLabelClasses(_objectSpread({
159
204
  size: size,
160
205
  readOnly: readOnly,
161
206
  label: label,
162
207
  labelPlacement: labelPlacement,
163
- value: value || uncontrolledValue || defaultValue,
208
+ value: value || uncontrolledValue || defaultValue
209
+ }, rows ? {
164
210
  rows: rows
165
- }, focused);
211
+ } : {
212
+ autoResize: autoResize
213
+ }), focused);
166
214
  var optionalTextNode = innerOptional ? /*#__PURE__*/React.createElement(StyledOptionalText, null, Boolean(hasPlaceholderOptional ? placeholderLabel : label) && '\xa0', optionalText) : null;
167
- return /*#__PURE__*/React.createElement(Root, {
215
+ return /*#__PURE__*/React.createElement(Root, _extends({
168
216
  view: overriddenView,
169
217
  size: size,
170
218
  disabled: disabled,
171
219
  readOnly: readOnly,
172
- clear: clear,
173
220
  style: _objectSpread({
174
221
  width: helperWidth
175
222
  }, style),
176
- className: cx(clearClass, hasDividerClass, className)
177
- }, hasOuterLabel && /*#__PURE__*/React.createElement(StyledLabel, null, required && /*#__PURE__*/React.createElement(StyledIndicator, {
223
+ className: className
224
+ }, hasHint && {
225
+ hintView: hintView || 'default',
226
+ hintSize: hintSize || 'm'
227
+ }), (hasOuterLabel || titleCaption) && /*#__PURE__*/React.createElement(OuterLabelWrapper, {
228
+ isInnnerLabel: labelPlacement === 'inner'
229
+ }, hasOuterLabel && /*#__PURE__*/React.createElement(StyledIndicatorWrapper, null, /*#__PURE__*/React.createElement(StyledLabel, null, label), hasHint && /*#__PURE__*/React.createElement(StyledHintWrapper, null, /*#__PURE__*/React.createElement(Hint, {
230
+ text: String(hintText),
231
+ opened: showHint,
232
+ target: hintTarget || /*#__PURE__*/React.createElement(HintTargetWrapper, _extends({
233
+ id: hintId
234
+ }, hintTrigger === 'hover' ? {
235
+ onMouseEnter: handleShowHint,
236
+ onMouseLeave: handleHideHint
237
+ } : {
238
+ onClick: handleClickHint
239
+ }), _IconInfoCircleOutlin || (_IconInfoCircleOutlin = /*#__PURE__*/React.createElement(IconInfoCircleOutline, {
240
+ size: "xs",
241
+ color: "inherit"
242
+ }))),
243
+ placement: hintPlacement,
244
+ hasArrow: hintHasArrow,
245
+ offset: hintOffset,
246
+ minWidth: hintMinWidth,
247
+ maxWidth: hintMaxWidth,
248
+ contentLeft: hintContentLeft,
249
+ frame: hintId,
250
+ ref: hintForkRef
251
+ })), required && /*#__PURE__*/React.createElement(StyledIndicator, {
178
252
  className: cx(classes.outerLabelPlacement, requiredPlacementClass)
179
- }), label, optionalTextNode), /*#__PURE__*/React.createElement(StyledContainer, {
253
+ }), optionalTextNode), titleCaption && /*#__PURE__*/React.createElement(TitleCaption, null, titleCaption)), /*#__PURE__*/React.createElement(StyledContainer, {
180
254
  className: cx.apply(void 0, [styledContainer].concat(_toConsumableArray(dynamicLabelClasses))),
181
255
  width: helperWidth,
182
256
  onFocus: onFocusHandler,
183
257
  onBlur: onBlurHandler
184
- }, required && !hasOuterLabel && /*#__PURE__*/React.createElement(StyledIndicator, {
258
+ }, !hasOuterLabel && /*#__PURE__*/React.createElement(React.Fragment, null, required && /*#__PURE__*/React.createElement(StyledIndicator, {
185
259
  className: cx(classes.innerLabelPlacement, requiredPlacementClass)
186
- }), contentRight && /*#__PURE__*/React.createElement(StyledContent, null, contentRight), /*#__PURE__*/React.createElement(StyledTextAreaWrapper, {
260
+ }), hasHint && /*#__PURE__*/React.createElement(StyledHintWrapper, {
261
+ className: classes.innerLabelPlacement
262
+ }, /*#__PURE__*/React.createElement(Hint, {
263
+ text: String(hintText),
264
+ opened: showHint,
265
+ target: hintTarget || /*#__PURE__*/React.createElement(HintTargetWrapper, _extends({
266
+ id: hintId
267
+ }, hintTrigger === 'hover' ? {
268
+ onMouseEnter: handleShowHint,
269
+ onMouseLeave: handleHideHint
270
+ } : {
271
+ onClick: handleClickHint
272
+ }), _IconInfoCircleOutlin2 || (_IconInfoCircleOutlin2 = /*#__PURE__*/React.createElement(IconInfoCircleOutline, {
273
+ size: "xs",
274
+ color: "inherit"
275
+ }))),
276
+ placement: hintPlacement,
277
+ hasArrow: hintHasArrow,
278
+ offset: hintOffset,
279
+ minWidth: hintMinWidth,
280
+ maxWidth: hintMaxWidth,
281
+ contentLeft: hintContentLeft,
282
+ frame: hintId,
283
+ ref: hintForkRef
284
+ }))), contentRight && /*#__PURE__*/React.createElement(StyledContent, null, contentRight), /*#__PURE__*/React.createElement(StyledTextAreaWrapper, {
187
285
  className: styledTextAreaWrapper,
188
286
  hasHelper: hasHelper
189
287
  }, /*#__PURE__*/React.createElement(StyledTextArea, _extends({
@@ -194,7 +292,7 @@ export var textAreaRoot = function textAreaRoot(Root) {
194
292
  applyCustomWidth: applyCustomWidth,
195
293
  ref: outerRef,
196
294
  disabled: disabled,
197
- height: autoResize || Boolean(clear) ? minAuto : height,
295
+ height: autoResize ? minAuto : height,
198
296
  width: width,
199
297
  placeholder: placeholderLabel,
200
298
  "aria-describedby": textareaHelperId,
@@ -227,16 +325,18 @@ export var textAreaConfig = {
227
325
  view: {
228
326
  css: viewCSS
229
327
  },
230
- clear: {
231
- css: clearCSS,
232
- attrs: true
233
- },
234
328
  disabled: {
235
329
  css: disabledCSS,
236
330
  attrs: true
237
331
  },
238
332
  readOnly: {
239
333
  attrs: true
334
+ },
335
+ hintView: {
336
+ css: hintViewCSS
337
+ },
338
+ hintSize: {
339
+ css: hintSizeCSS
240
340
  }
241
341
  },
242
342
  defaults: {