@salutejs/plasma-new-hope 0.138.0-dev.0 → 0.139.0-canary.1352.10686935940.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.css +16 -12
  2. package/cjs/components/DatePicker/RangeDate/RangeDate.css +16 -12
  3. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +16 -12
  4. package/cjs/components/DatePicker/SingleDate/SingleDate.css +16 -12
  5. package/cjs/components/Range/Range.css +16 -12
  6. package/cjs/components/Slider/Slider.css +16 -12
  7. package/cjs/components/Slider/components/Double/Double.css +16 -12
  8. package/cjs/components/TextArea/TextArea.js +22 -7
  9. package/cjs/components/TextArea/TextArea.js.map +1 -1
  10. package/cjs/components/TextArea/TextArea.styles.js +47 -35
  11. package/cjs/components/TextArea/TextArea.styles.js.map +1 -1
  12. package/cjs/components/TextArea/TextArea.styles_1fyj8ox.css +11 -0
  13. package/cjs/components/TextArea/TextArea.tokens.js +13 -2
  14. package/cjs/components/TextArea/TextArea.tokens.js.map +1 -1
  15. package/cjs/components/TextField/TextField.js +47 -20
  16. package/cjs/components/TextField/TextField.js.map +1 -1
  17. package/cjs/components/TextField/TextField.styles.js +31 -7
  18. package/cjs/components/TextField/TextField.styles.js.map +1 -1
  19. package/cjs/components/TextField/TextField.styles_u6pm7v.css +14 -0
  20. package/cjs/components/TextField/TextField.tokens.js +10 -1
  21. package/cjs/components/TextField/TextField.tokens.js.map +1 -1
  22. package/cjs/components/TextField/TextField_1lzb2r1.css +1 -0
  23. package/cjs/components/TextField/variations/_label-placement/base.js +1 -1
  24. package/cjs/components/TextField/variations/_label-placement/base.js.map +1 -1
  25. package/cjs/components/TextField/variations/_label-placement/base_1dbnupp.css +1 -0
  26. package/cjs/components/TextField/variations/_read-only/base.js +1 -1
  27. package/cjs/components/TextField/variations/_read-only/base.js.map +1 -1
  28. package/cjs/components/TextField/variations/_read-only/base_4tqave.css +1 -0
  29. package/cjs/components/TextField/variations/_size/base.js +1 -1
  30. package/cjs/components/TextField/variations/_size/base.js.map +1 -1
  31. package/cjs/components/TextField/variations/_size/base_uk56yo.css +1 -0
  32. package/cjs/components/TextField/variations/_view/base.js +1 -1
  33. package/cjs/components/TextField/variations/_view/base.js.map +1 -1
  34. package/cjs/components/TextField/variations/_view/{base_18ea6z7.css → base_uszjx8.css} +1 -1
  35. package/cjs/index.css +27 -21
  36. package/emotion/cjs/components/TextArea/TextArea.js +23 -8
  37. package/emotion/cjs/components/TextArea/TextArea.styles.js +27 -19
  38. package/emotion/cjs/components/TextArea/TextArea.template-doc.mdx +29 -3
  39. package/emotion/cjs/components/TextArea/TextArea.tokens.js +13 -2
  40. package/emotion/cjs/components/TextArea/variations/_size/tokens.json +7 -1
  41. package/emotion/cjs/components/TextField/TextField.js +51 -24
  42. package/emotion/cjs/components/TextField/TextField.styles.js +57 -25
  43. package/emotion/cjs/components/TextField/TextField.template-doc.mdx +27 -1
  44. package/emotion/cjs/components/TextField/TextField.tokens.js +10 -1
  45. package/emotion/cjs/components/TextField/variations/_label-placement/base.js +1 -1
  46. package/emotion/cjs/components/TextField/variations/_read-only/base.js +1 -1
  47. package/emotion/cjs/components/TextField/variations/_size/base.js +1 -1
  48. package/emotion/cjs/components/TextField/variations/_size/tokens.json +6 -0
  49. package/emotion/cjs/components/TextField/variations/_view/base.js +1 -1
  50. package/emotion/cjs/examples/plasma_b2c/components/TextArea/TextArea.config.js +9 -9
  51. package/emotion/cjs/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +9 -0
  52. package/emotion/cjs/examples/plasma_b2c/components/TextField/TextField.config.js +12 -12
  53. package/emotion/cjs/examples/plasma_b2c/components/TextField/TextField.stories.tsx +9 -1
  54. package/emotion/cjs/examples/plasma_web/components/TextArea/TextArea.config.js +9 -9
  55. package/emotion/cjs/examples/plasma_web/components/TextArea/TextArea.stories.tsx +10 -0
  56. package/emotion/cjs/examples/plasma_web/components/TextField/TextField.config.js +12 -12
  57. package/emotion/cjs/examples/plasma_web/components/TextField/TextField.stories.tsx +10 -0
  58. package/emotion/es/components/TextArea/TextArea.js +24 -9
  59. package/emotion/es/components/TextArea/TextArea.styles.js +27 -19
  60. package/emotion/es/components/TextArea/TextArea.template-doc.mdx +29 -3
  61. package/emotion/es/components/TextArea/TextArea.tokens.js +13 -2
  62. package/emotion/es/components/TextArea/variations/_size/tokens.json +7 -1
  63. package/emotion/es/components/TextField/TextField.js +52 -25
  64. package/emotion/es/components/TextField/TextField.styles.js +56 -24
  65. package/emotion/es/components/TextField/TextField.template-doc.mdx +27 -1
  66. package/emotion/es/components/TextField/TextField.tokens.js +10 -1
  67. package/emotion/es/components/TextField/variations/_label-placement/base.js +2 -2
  68. package/emotion/es/components/TextField/variations/_read-only/base.js +2 -2
  69. package/emotion/es/components/TextField/variations/_size/base.js +2 -2
  70. package/emotion/es/components/TextField/variations/_size/tokens.json +6 -0
  71. package/emotion/es/components/TextField/variations/_view/base.js +2 -2
  72. package/emotion/es/examples/plasma_b2c/components/TextArea/TextArea.config.js +9 -9
  73. package/emotion/es/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +9 -0
  74. package/emotion/es/examples/plasma_b2c/components/TextField/TextField.config.js +12 -12
  75. package/emotion/es/examples/plasma_b2c/components/TextField/TextField.stories.tsx +9 -1
  76. package/emotion/es/examples/plasma_web/components/TextArea/TextArea.config.js +9 -9
  77. package/emotion/es/examples/plasma_web/components/TextArea/TextArea.stories.tsx +10 -0
  78. package/emotion/es/examples/plasma_web/components/TextField/TextField.config.js +12 -12
  79. package/emotion/es/examples/plasma_web/components/TextField/TextField.stories.tsx +10 -0
  80. package/es/components/Autocomplete/Autocomplete.css +16 -12
  81. package/es/components/DatePicker/RangeDate/RangeDate.css +16 -12
  82. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +16 -12
  83. package/es/components/DatePicker/SingleDate/SingleDate.css +16 -12
  84. package/es/components/Range/Range.css +16 -12
  85. package/es/components/Slider/Slider.css +16 -12
  86. package/es/components/Slider/components/Double/Double.css +16 -12
  87. package/es/components/TextArea/TextArea.js +23 -8
  88. package/es/components/TextArea/TextArea.js.map +1 -1
  89. package/es/components/TextArea/TextArea.styles.js +46 -36
  90. package/es/components/TextArea/TextArea.styles.js.map +1 -1
  91. package/es/components/TextArea/TextArea.styles_1fyj8ox.css +11 -0
  92. package/es/components/TextArea/TextArea.tokens.js +13 -2
  93. package/es/components/TextArea/TextArea.tokens.js.map +1 -1
  94. package/es/components/TextField/TextField.js +48 -21
  95. package/es/components/TextField/TextField.js.map +1 -1
  96. package/es/components/TextField/TextField.styles.js +28 -8
  97. package/es/components/TextField/TextField.styles.js.map +1 -1
  98. package/es/components/TextField/TextField.styles_u6pm7v.css +14 -0
  99. package/es/components/TextField/TextField.tokens.js +10 -1
  100. package/es/components/TextField/TextField.tokens.js.map +1 -1
  101. package/es/components/TextField/TextField_1lzb2r1.css +1 -0
  102. package/es/components/TextField/variations/_label-placement/base.js +1 -1
  103. package/es/components/TextField/variations/_label-placement/base.js.map +1 -1
  104. package/es/components/TextField/variations/_label-placement/base_1dbnupp.css +1 -0
  105. package/es/components/TextField/variations/_read-only/base.js +1 -1
  106. package/es/components/TextField/variations/_read-only/base.js.map +1 -1
  107. package/es/components/TextField/variations/_read-only/base_4tqave.css +1 -0
  108. package/es/components/TextField/variations/_size/base.js +1 -1
  109. package/es/components/TextField/variations/_size/base.js.map +1 -1
  110. package/es/components/TextField/variations/_size/base_uk56yo.css +1 -0
  111. package/es/components/TextField/variations/_view/base.js +1 -1
  112. package/es/components/TextField/variations/_view/base.js.map +1 -1
  113. package/es/components/TextField/variations/_view/{base_18ea6z7.css → base_uszjx8.css} +1 -1
  114. package/es/index.css +27 -21
  115. package/package.json +2 -2
  116. package/styled-components/cjs/components/TextArea/TextArea.js +22 -7
  117. package/styled-components/cjs/components/TextArea/TextArea.styles.js +17 -11
  118. package/styled-components/cjs/components/TextArea/TextArea.template-doc.mdx +29 -3
  119. package/styled-components/cjs/components/TextArea/TextArea.tokens.js +13 -2
  120. package/styled-components/cjs/components/TextArea/variations/_size/tokens.json +7 -1
  121. package/styled-components/cjs/components/TextField/TextField.js +47 -20
  122. package/styled-components/cjs/components/TextField/TextField.styles.js +22 -10
  123. package/styled-components/cjs/components/TextField/TextField.template-doc.mdx +27 -1
  124. package/styled-components/cjs/components/TextField/TextField.tokens.js +10 -1
  125. package/styled-components/cjs/components/TextField/variations/_label-placement/base.js +1 -1
  126. package/styled-components/cjs/components/TextField/variations/_read-only/base.js +1 -1
  127. package/styled-components/cjs/components/TextField/variations/_size/base.js +1 -1
  128. package/styled-components/cjs/components/TextField/variations/_size/tokens.json +6 -0
  129. package/styled-components/cjs/components/TextField/variations/_view/base.js +1 -1
  130. package/styled-components/cjs/examples/plasma_b2c/components/TextArea/TextArea.config.js +7 -7
  131. package/styled-components/cjs/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +9 -0
  132. package/styled-components/cjs/examples/plasma_b2c/components/TextField/TextField.config.js +8 -8
  133. package/styled-components/cjs/examples/plasma_b2c/components/TextField/TextField.stories.tsx +9 -1
  134. package/styled-components/cjs/examples/plasma_web/components/TextArea/TextArea.config.js +8 -8
  135. package/styled-components/cjs/examples/plasma_web/components/TextArea/TextArea.stories.tsx +10 -0
  136. package/styled-components/cjs/examples/plasma_web/components/TextField/TextField.config.js +8 -8
  137. package/styled-components/cjs/examples/plasma_web/components/TextField/TextField.stories.tsx +10 -0
  138. package/styled-components/es/components/TextArea/TextArea.js +23 -8
  139. package/styled-components/es/components/TextArea/TextArea.styles.js +17 -11
  140. package/styled-components/es/components/TextArea/TextArea.template-doc.mdx +29 -3
  141. package/styled-components/es/components/TextArea/TextArea.tokens.js +13 -2
  142. package/styled-components/es/components/TextArea/variations/_size/tokens.json +7 -1
  143. package/styled-components/es/components/TextField/TextField.js +48 -21
  144. package/styled-components/es/components/TextField/TextField.styles.js +21 -9
  145. package/styled-components/es/components/TextField/TextField.template-doc.mdx +27 -1
  146. package/styled-components/es/components/TextField/TextField.tokens.js +10 -1
  147. package/styled-components/es/components/TextField/variations/_label-placement/base.js +2 -2
  148. package/styled-components/es/components/TextField/variations/_read-only/base.js +2 -2
  149. package/styled-components/es/components/TextField/variations/_size/base.js +2 -2
  150. package/styled-components/es/components/TextField/variations/_size/tokens.json +6 -0
  151. package/styled-components/es/components/TextField/variations/_view/base.js +2 -2
  152. package/styled-components/es/examples/plasma_b2c/components/TextArea/TextArea.config.js +7 -7
  153. package/styled-components/es/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +9 -0
  154. package/styled-components/es/examples/plasma_b2c/components/TextField/TextField.config.js +8 -8
  155. package/styled-components/es/examples/plasma_b2c/components/TextField/TextField.stories.tsx +9 -1
  156. package/styled-components/es/examples/plasma_web/components/TextArea/TextArea.config.js +8 -8
  157. package/styled-components/es/examples/plasma_web/components/TextArea/TextArea.stories.tsx +10 -0
  158. package/styled-components/es/examples/plasma_web/components/TextField/TextField.config.js +8 -8
  159. package/styled-components/es/examples/plasma_web/components/TextField/TextField.stories.tsx +10 -0
  160. package/types/components/Autocomplete/ui/TextField/TextField.styles.d.ts +6 -0
  161. package/types/components/Autocomplete/ui/TextField/TextField.styles.d.ts.map +1 -1
  162. package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts +6 -0
  163. package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts.map +1 -1
  164. package/types/components/Range/Range.styles.d.ts +6 -0
  165. package/types/components/Range/Range.styles.d.ts.map +1 -1
  166. package/types/components/Slider/components/Double/Double.styles.d.ts +6 -0
  167. package/types/components/Slider/components/Double/Double.styles.d.ts.map +1 -1
  168. package/types/components/TextArea/TextArea.d.ts.map +1 -1
  169. package/types/components/TextArea/TextArea.styles.d.ts +2 -0
  170. package/types/components/TextArea/TextArea.styles.d.ts.map +1 -1
  171. package/types/components/TextArea/TextArea.tokens.d.ts +11 -0
  172. package/types/components/TextArea/TextArea.tokens.d.ts.map +1 -1
  173. package/types/components/TextArea/TextArea.types.d.ts +13 -0
  174. package/types/components/TextArea/TextArea.types.d.ts.map +1 -1
  175. package/types/components/TextField/TextField.d.ts.map +1 -1
  176. package/types/components/TextField/TextField.styles.d.ts +4 -0
  177. package/types/components/TextField/TextField.styles.d.ts.map +1 -1
  178. package/types/components/TextField/TextField.tokens.d.ts +9 -0
  179. package/types/components/TextField/TextField.tokens.d.ts.map +1 -1
  180. package/types/components/TextField/TextField.types.d.ts +13 -0
  181. package/types/components/TextField/TextField.types.d.ts.map +1 -1
  182. package/types/components/TextField/variations/_label-placement/base.d.ts.map +1 -1
  183. package/types/components/TextField/variations/_size/base.d.ts.map +1 -1
  184. package/types/components/TextField/variations/_view/base.d.ts.map +1 -1
  185. package/types/examples/plasma_b2c/components/TextArea/TextArea.config.d.ts.map +1 -1
  186. package/types/examples/plasma_b2c/components/TextField/TextField.config.d.ts.map +1 -1
  187. package/types/examples/plasma_b2c/components/TextField/TextField.d.ts +6 -0
  188. package/types/examples/plasma_b2c/components/TextField/TextField.d.ts.map +1 -1
  189. package/types/examples/plasma_web/components/TextArea/TextArea.config.d.ts.map +1 -1
  190. package/types/examples/plasma_web/components/TextField/TextField.config.d.ts.map +1 -1
  191. package/types/examples/plasma_web/components/TextField/TextField.d.ts +6 -0
  192. package/types/examples/plasma_web/components/TextField/TextField.d.ts.map +1 -1
  193. package/cjs/components/TextArea/TextArea.styles_1bv40vw.css +0 -9
  194. package/cjs/components/TextField/TextField.styles_9fkr1l.css +0 -10
  195. package/cjs/components/TextField/TextField_wctd2m.css +0 -1
  196. package/cjs/components/TextField/variations/_label-placement/base_170eaex.css +0 -1
  197. package/cjs/components/TextField/variations/_read-only/base_1vu13zn.css +0 -1
  198. package/cjs/components/TextField/variations/_size/base_orwx1f.css +0 -1
  199. package/es/components/TextArea/TextArea.styles_1bv40vw.css +0 -9
  200. package/es/components/TextField/TextField.styles_9fkr1l.css +0 -10
  201. package/es/components/TextField/TextField_wctd2m.css +0 -1
  202. package/es/components/TextField/variations/_label-placement/base_170eaex.css +0 -1
  203. package/es/components/TextField/variations/_read-only/base_1vu13zn.css +0 -1
  204. package/es/components/TextField/variations/_size/base_orwx1f.css +0 -1
@@ -22,6 +22,12 @@ const meta: Meta<typeof TextField> = {
22
22
  component: TextField,
23
23
  decorators: [WithTheme],
24
24
  argTypes: {
25
+ requiredPlacement: {
26
+ options: ['left', 'right'],
27
+ control: {
28
+ type: 'select',
29
+ },
30
+ },
25
31
  view: {
26
32
  options: views,
27
33
  control: {
@@ -109,6 +115,9 @@ export const Default: StoryObj<StoryPropsDefault> = {
109
115
  leftHelper: 'Подсказка к полю',
110
116
  disabled: false,
111
117
  readOnly: false,
118
+ required: false,
119
+ requiredPlacement: 'right',
120
+ optional: false,
112
121
  enableContentLeft: true,
113
122
  enableContentRight: true,
114
123
  },
@@ -132,6 +141,7 @@ type StoryPropsChips = Omit<
132
141
  | 'maxLength'
133
142
  | 'minLength'
134
143
  | 'required'
144
+ | 'optional'
135
145
  | 'enumerationType'
136
146
  > & {
137
147
  enableContentLeft: boolean;
@@ -1,5 +1,5 @@
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", "size", "view", "id", "style", "className", "readOnly", "rows", "cols", "onChange"];
2
+ var _excluded = ["helperText", "status", "resize", "rightHelper", "leftHelper", "contentRight", "autoResize", "minAuto", "maxAuto", "label", "labelPlacement", "placeholder", "defaultValue", "height", "width", "value", "disabled", "required", "requiredPlacement", "optional", "size", "view", "id", "style", "className", "readOnly", "rows", "cols", "onChange"];
3
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); }
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."); }
@@ -24,7 +24,7 @@ import { useResizeObserver } from '@salutejs/plasma-core';
24
24
  import { cx } from '../../utils';
25
25
  import { applyDynamicLabel } from './mixins';
26
26
  import { useAutoResize, ROOT_FONT_SIZE } from './hooks';
27
- import { StyledContent, StyledHelpers, StyledLeftHelper, StyledRightHelper, StyledLabel, StyledPlaceholder, StyledTextArea, StyledTextAreaWrapper, StyledContainer } from './TextArea.styles';
27
+ import { StyledContent, StyledHelpers, StyledLeftHelper, StyledRightHelper, StyledLabel, StyledPlaceholder, StyledTextArea, StyledTextAreaWrapper, StyledContainer, StyledIndicator, StyledOptionalText } from './TextArea.styles';
28
28
  import { classes } from './TextArea.tokens';
29
29
  import { base as viewCSS } from './variations/_view/base';
30
30
  import { base as sizeCSS } from './variations/_size/base';
@@ -37,7 +37,8 @@ var innerPlaceholderUp = classes.innerPlaceholderUp,
37
37
  styledTextAreaWrapper = classes.styledTextAreaWrapper,
38
38
  styledPlaceholder = classes.styledPlaceholder,
39
39
  styledHelpers = classes.styledHelpers;
40
- 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvVGV4dEFyZWEvVGV4dEFyZWEudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFDZ0IiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjLWVtb3Rpb24vY29tcG9uZW50cy9UZXh0QXJlYS9UZXh0QXJlYS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgdXNlU3RhdGUsIGNyZWF0ZVJlZiwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyB1c2VSZXNpemVPYnNlcnZlciB9IGZyb20gJ0BzYWx1dGVqcy9wbGFzbWEtY29yZSc7XG5cbmltcG9ydCB7IGN4IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSb290UHJvcHMgfSBmcm9tICcuLi8uLi9lbmdpbmVzL3R5cGVzJztcblxuaW1wb3J0IHsgYXBwbHlEeW5hbWljTGFiZWwgfSBmcm9tICcuL21peGlucyc7XG5pbXBvcnQgeyB1c2VBdXRvUmVzaXplLCBST09UX0ZPTlRfU0laRSB9IGZyb20gJy4vaG9va3MnO1xuaW1wb3J0IHtcbiAgICBTdHlsZWRDb250ZW50LFxuICAgIFN0eWxlZEhlbHBlcnMsXG4gICAgU3R5bGVkTGVmdEhlbHBlcixcbiAgICBTdHlsZWRSaWdodEhlbHBlcixcbiAgICBTdHlsZWRMYWJlbCxcbiAgICBTdHlsZWRQbGFjZWhvbGRlcixcbiAgICBTdHlsZWRUZXh0QXJlYSxcbiAgICBTdHlsZWRUZXh0QXJlYVdyYXBwZXIsXG4gICAgU3R5bGVkQ29udGFpbmVyLFxufSBmcm9tICcuL1RleHRBcmVhLnN0eWxlcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAnLi9UZXh0QXJlYS50b2tlbnMnO1xuaW1wb3J0IHsgYmFzZSBhcyB2aWV3Q1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL192aWV3L2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBzaXplQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19zaXplL2Jhc2UnO1xuaW1wb3J0IHsgYmFzZSBhcyBkaXNhYmxlZENTUyB9IGZyb20gJy4vdmFyaWF0aW9ucy9fZGlzYWJsZWQvYmFzZSc7XG5pbXBvcnQgdHlwZSB7IFRleHRBcmVhUHJvcHMgfSBmcm9tICcuL1RleHRBcmVhLnR5cGVzJztcblxuY29uc3Qge1xuICAgIGlubmVyUGxhY2Vob2xkZXJVcCxcbiAgICBmb2N1c2VkT3V0ZXJQbGFjZWhvbGRlckNvbG9yLFxuICAgIGhpZGVQbGFjZUhvbGRlcixcbiAgICBzdHlsZWRDb250YWluZXIsXG4gICAgc3R5bGVkVGV4dEFyZWEsXG4gICAgc3R5bGVkVGV4dEFyZWFXcmFwcGVyLFxuICAgIHN0eWxlZFBsYWNlaG9sZGVyLFxuICAgIHN0eWxlZEhlbHBlcnMsXG59ID0gY2xhc3NlcztcblxuY29uc3QgYmFzZSA9IGNzc2BcbiAgICAke2FwcGx5RHluYW1pY0xhYmVsfTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuYDtcblxuLy8gVE9ETzog0KPQtNCw0LvQuNGC0Ywg0L/QvtGB0LvQtSDQvtGC0LrQsNC30LAg0L7RgiDRgdGC0LDRgNGL0YUg0LHQuNCx0LvQuNC+0YLQtdC6IHBsYXNtYS13ZWIgLyBwbGFzbWEtYjJjXG5jb25zdCBmYWxsYmFja1N0YXR1c01hcCA9IHtcbiAgICAnJzogJ3ByaW1hcnknLFxuICAgIHN1Y2Nlc3M6ICdwb3NpdGl2ZScsXG4gICAgd2FybmluZzogJ3dhcm5pbmcnLFxuICAgIGVycm9yOiAnbmVnYXRpdmUnLFxufTtcblxuLy8gVE9ETzog0J/QtdGA0LXQvdC10YHRgtC4INGN0YLQvtGCINC80LXRgtC+0LQg0LIg0YTQsNC50LsgYXBwbHlEeW5hbWljTGFiZWwudHNcbmV4cG9ydCBjb25zdCBnZXREeW5hbWljTGFiZWxDbGFzc2VzID0gKHByb3BzOiBUZXh0QXJlYVByb3BzLCBmb2N1c2VkOiBib29sZWFuKSA9PiB7XG4gICAgY29uc3QgeyByZWFkT25seSwgbGFiZWwsIGxhYmVsUGxhY2VtZW50LCBhdXRvUmVzaXplLCByb3dzLCB2YWx1ZSwgc2l6ZSB9ID0gcHJvcHM7XG5cbiAgICAvLyDQlNC+0LHQsNCy0LjRgtGMINC60LvQsNGB0YEg0L7RgtCy0LXRh9Cw0Y7RidC40Lkg0LfQsCDQuNC30LzQtdC90LXQvdC40LUg0YbQstC10YLQsCDQv9C70LXQudGB0YXQvtC70LTQtdGA0LAg0L/RgNC4INGE0L7QutGD0YHQtVxuICAgIGNvbnN0IHdpdGhGb2N1c2VkT3V0ZXJVcFBsYWNlaG9sZGVyID1cbiAgICAgICAgIXJlYWRPbmx5ICYmIGZvY3VzZWQgJiYgKCFsYWJlbCB8fCBsYWJlbFBsYWNlbWVudCA9PT0gJ291dGVyJykgPyBmb2N1c2VkT3V0ZXJQbGFjZWhvbGRlckNvbG9yIDogdW5kZWZpbmVkO1xuXG4gICAgLy8g0JTQvtCx0LDQstC40YLRjCDQutC70LDRgdGBINC+0YLQstC10YfQsNGO0YnQuNC5INC30LAg0L/QvtC00L3Rj9GC0LjQtSDQuCDRg9C80LXQvdGM0YjQtdC90LjQtSDQv9C70LXQudGB0YXQvtC70LTQtdGA0LBcbiAgICBjb25zdCB3aXRoSW5uZXJQbGFjZWhvbGRlclVwID1cbiAgICAgICAgbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiZcbiAgICAgICAgbGFiZWwgJiZcbiAgICAgICAgIWF1dG9SZXNpemUgJiZcbiAgICAgICAgIXJvd3MgJiZcbiAgICAgICAgc2l6ZSAhPT0gJ3hzJyAmJlxuICAgICAgICAoKCFyZWFkT25seSAmJiAodmFsdWUgfHwgZm9jdXNlZCkpIHx8IChyZWFkT25seSAmJiB2YWx1ZSkpXG4gICAgICAgICAgICA/IGlubmVyUGxhY2Vob2xkZXJVcFxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyDQlNC+0LHQsNCy0LjRgtGMINC60LvQsNGB0YEg0L7RgtCy0LXRh9Cw0Y7RidC40Lkg0LfQsCDRgdC60YDRi9GC0LjQtSDQv9C70LXQudGB0YXQvtC70LTQtdGA0LBcbiAgICBjb25zdCB3aXRoSGlkZVBsYWNlaG9sZGVyID1cbiAgICAgICAgKHZhbHVlICYmICFsYWJlbCkgfHxcbiAgICAgICAgKGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInICYmICgoZm9jdXNlZCAmJiAhcmVhZE9ubHkpIHx8IHZhbHVlKSAmJiBsYWJlbCAmJiAocm93cyB8fCBhdXRvUmVzaXplKSkgfHxcbiAgICAgICAgKGxhYmVsUGxhY2VtZW50ID09PSAnb3V0ZXInICYmIHZhbHVlKSB8fFxuICAgICAgICAobGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgc2l6ZSA9PT0gJ3hzJyAmJiB2YWx1ZSlcbiAgICAgICAgICAgID8gaGlkZVBsYWNlSG9sZGVyXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBbd2l0aEZvY3VzZWRPdXRlclVwUGxhY2Vob2xkZXIsIHdpdGhJbm5lclBsYWNlaG9sZGVyVXAsIHdpdGhIaWRlUGxhY2Vob2xkZXJdO1xufTtcblxuZXhwb3J0IGNvbnN0IHRleHRBcmVhUm9vdCA9IChSb290OiBSb290UHJvcHM8SFRNTFRleHRBcmVhRWxlbWVudCwgVGV4dEFyZWFQcm9wcz4pID0+XG4gICAgZm9yd2FyZFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50LCBUZXh0QXJlYVByb3BzPigocHJvcHMsIGlubmVyUmVmKSA9PiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGhlbHBlclRleHQsXG4gICAgICAgICAgICBzdGF0dXMsXG4gICAgICAgICAgICByZXNpemUsXG4gICAgICAgICAgICByaWdodEhlbHBlcixcbiAgICAgICAgICAgIGxlZnRIZWxwZXIsXG4gICAgICAgICAgICBjb250ZW50UmlnaHQsXG4gICAgICAgICAgICBhdXRvUmVzaXplID0gZmFsc2UsXG4gICAgICAgICAgICBtaW5BdXRvID0gMCxcbiAgICAgICAgICAgIG1heEF1dG8sXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50ID0gJ2lubmVyJyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgcmVhZE9ubHksXG4gICAgICAgICAgICByb3dzLFxuICAgICAgICAgICAgY29scyxcbiAgICAgICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICAgICAgLi4ucmVzdFxuICAgICAgICB9ID0gcHJvcHM7XG5cbiAgICAgICAgY29uc3QgW2hlbHBlcldpZHRoLCBzZXRIZWxwZXJXaWR0aF0gPSB1c2VTdGF0ZTxzdHJpbmc+KHdpZHRoID8gYCR7d2lkdGh9cmVtYCA6ICcxMDAlJyk7XG4gICAgICAgIGNvbnN0IFtmb2N1c2VkLCBzZXRGb2N1c2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICAgICAgY29uc3QgW3VuY29udHJvbGxlZFZhbHVlLCBzZXRVbmNvbnRyb2xsZWRWYWx1ZV0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICAgICAgY29uc3Qgb3V0ZXJSZWYgPSBpbm5lclJlZiAmJiAnY3VycmVudCcgaW4gaW5uZXJSZWYgPyBpbm5lclJlZiA6IGNyZWF0ZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PigpO1xuICAgICAgICBjb25zdCBoYXNIZWxwZXIgPSBCb29sZWFuKGxlZnRIZWxwZXIgfHwgcmlnaHRIZWxwZXIgfHwgaGVscGVyVGV4dCk7XG4gICAgICAgIGNvbnN0IG92ZXJyaWRkZW5WaWV3ID0gc3RhdHVzICE9PSB1bmRlZmluZWQgPyBmYWxsYmFja1N0YXR1c01hcFtzdGF0dXNdIDogdmlldztcbiAgICAgICAgY29uc3QgdGV4dGFyZWFIZWxwZXJJZCA9IGlkID8gYCR7aWR9LWhlbHBlcmAgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGFwcGx5Q3VzdG9tV2lkdGggPSByZXNpemUgIT09ICdob3Jpem9udGFsJyAmJiByZXNpemUgIT09ICdib3RoJyAmJiAhY29scztcbiAgICAgICAgY29uc3QgcGxhY2VMYWJlbCA9IGxhYmVsUGxhY2VtZW50ID09PSAnaW5uZXInICYmIGxhYmVsICYmIHNpemUgIT09ICd4cycgPyBsYWJlbCA6IHBsYWNlaG9sZGVyO1xuXG4gICAgICAgIHVzZVJlc2l6ZU9ic2VydmVyKG91dGVyUmVmLCAoY3VycmVudEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgd2lkdGg6IGlubGluZVdpZHRoIH0gPSBjdXJyZW50RWxlbWVudC5zdHlsZTtcblxuICAgICAgICAgICAgaWYgKGlubGluZVdpZHRoIHx8IGNvbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHdpZHRoOiBlbGVtZW50V2lkdGggfSA9IGN1cnJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIHNldEhlbHBlcldpZHRoKGAke2VsZW1lbnRXaWR0aCAvIFJPT1RfRk9OVF9TSVpFfXJlbWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB1c2VBdXRvUmVzaXplKGF1dG9SZXNpemUsIG91dGVyUmVmLCB2YWx1ZSwgbWluQXV0bywgbWF4QXV0byk7XG5cbiAgICAgICAgY29uc3Qgb25Gb2N1c0hhbmRsZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgICAgICBzZXRGb2N1c2VkKHRydWUpO1xuICAgICAgICB9LCBbXSk7XG4gICAgICAgIGNvbnN0IG9uQmx1ckhhbmRsZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgICAgICBzZXRGb2N1c2VkKGZhbHNlKTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgICAgIGNvbnN0IG9uQ2hhbmdlSGFuZGxlciA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAgICAgKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIC8vIElORk86INCU0LvRjyDQutGA0LDQudC90LUg0YDQtdC00LrQuNGFINC60LXQudGB0L7Qsiwg0LrQvtCz0LTQsCB2YWx1ZSDRgdC90LDRgNGD0LbQuCDQvdC1INC60L7QvdGC0YDQvtC70LjRgNGD0LXRgtGB0Y9cbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBzZXRVbmNvbnRyb2xsZWRWYWx1ZShldmVudD8udGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT8uKGV2ZW50KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbdmFsdWUsIG9uQ2hhbmdlXSxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBkeW5hbWljTGFiZWxDbGFzc2VzID0gZ2V0RHluYW1pY0xhYmVsQ2xhc3NlcyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5LFxuICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50LFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSB8fCB1bmNvbnRyb2xsZWRWYWx1ZSB8fCBkZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICAgICAgLi4uKHJvd3MgPyB7IHJvd3MgfSA6IHsgYXV0b1Jlc2l6ZSB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmb2N1c2VkLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8Um9vdFxuICAgICAgICAgICAgICAgIHZpZXc9e292ZXJyaWRkZW5WaWV3fVxuICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogaGVscGVyV2lkdGgsIC4uLnN0eWxlIH19XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsICYmIGxhYmVsUGxhY2VtZW50ID09PSAnb3V0ZXInICYmIDxTdHlsZWRMYWJlbD57bGFiZWx9PC9TdHlsZWRMYWJlbD59XG4gICAgICAgICAgICAgICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KHN0eWxlZENvbnRhaW5lciwgLi4uZHluYW1pY0xhYmVsQ2xhc3Nlcyl9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXtoZWxwZXJXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17b25Gb2N1c0hhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17b25CbHVySGFuZGxlcn1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtjb250ZW50UmlnaHQgJiYgPFN0eWxlZENvbnRlbnQ+e2NvbnRlbnRSaWdodH08L1N0eWxlZENvbnRlbnQ+fVxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFXcmFwcGVyIGNsYXNzTmFtZT17c3R5bGVkVGV4dEFyZWFXcmFwcGVyfSBoYXNIZWxwZXI9e2hhc0hlbHBlcn0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlZFRleHRBcmVhfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNDb250ZW50UmlnaHQ9e0Jvb2xlYW4oY29udGVudFJpZ2h0KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNIZWxwZXI9e2hhc0hlbHBlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBseUN1c3RvbVdpZHRoPXthcHBseUN1c3RvbVdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17b3V0ZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17YXV0b1Jlc2l6ZSA/IG1pbkF1dG8gOiBoZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZUxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e3RleHRhcmVhSGVscGVySWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzPXtyb3dzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHM9e2NvbHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaXplPXtyZXNpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtkZWZhdWx0VmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICB7aGFzSGVscGVyICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIZWxwZXJzIGNsYXNzTmFtZT17c3R5bGVkSGVscGVyc30gaWQ9e3RleHRhcmVhSGVscGVySWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsobGVmdEhlbHBlciB8fCBoZWxwZXJUZXh0KSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SGVscGVyPntsZWZ0SGVscGVyIHx8IGhlbHBlclRleHR9PC9TdHlsZWRMZWZ0SGVscGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3JpZ2h0SGVscGVyICYmIDxTdHlsZWRSaWdodEhlbHBlcj57cmlnaHRIZWxwZXJ9PC9TdHlsZWRSaWdodEhlbHBlcj59XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEhlbHBlcnM+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHtwbGFjZUxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRQbGFjZWhvbGRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0NvbnRlbnRSaWdodD17Qm9vbGVhbihjb250ZW50UmlnaHQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVkUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbEZvcj17aWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3BsYWNlTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICAgICAgICAgICAgPC9Sb290PlxuICAgICAgICApO1xuICAgIH0pO1xuXG5leHBvcnQgY29uc3QgdGV4dEFyZWFDb25maWcgPSB7XG4gICAgbmFtZTogJ1RleHRBcmVhJyxcbiAgICB0YWc6ICdkaXYnLFxuICAgIGxheW91dDogdGV4dEFyZWFSb290LFxuICAgIGJhc2UsXG4gICAgdmFyaWF0aW9uczoge1xuICAgICAgICBzaXplOiB7XG4gICAgICAgICAgICBjc3M6IHNpemVDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAgIGNzczogdmlld0NTUyxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzYWJsZWQ6IHtcbiAgICAgICAgICAgIGNzczogZGlzYWJsZWRDU1MsXG4gICAgICAgICAgICBhdHRyczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVhZE9ubHk6IHtcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgc2l6ZTogJ20nLFxuICAgICAgICB2aWV3OiAncHJpbWFyeScsXG4gICAgfSxcbn07XG4iXX0= */"));
40
+ var optionalText = 'optional';
41
+ 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvVGV4dEFyZWEvVGV4dEFyZWEudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlDZ0IiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjLWVtb3Rpb24vY29tcG9uZW50cy9UZXh0QXJlYS9UZXh0QXJlYS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgdXNlU3RhdGUsIGNyZWF0ZVJlZiwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyB1c2VSZXNpemVPYnNlcnZlciB9IGZyb20gJ0BzYWx1dGVqcy9wbGFzbWEtY29yZSc7XG5cbmltcG9ydCB7IGN4IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSb290UHJvcHMgfSBmcm9tICcuLi8uLi9lbmdpbmVzL3R5cGVzJztcblxuaW1wb3J0IHsgYXBwbHlEeW5hbWljTGFiZWwgfSBmcm9tICcuL21peGlucyc7XG5pbXBvcnQgeyB1c2VBdXRvUmVzaXplLCBST09UX0ZPTlRfU0laRSB9IGZyb20gJy4vaG9va3MnO1xuaW1wb3J0IHtcbiAgICBTdHlsZWRDb250ZW50LFxuICAgIFN0eWxlZEhlbHBlcnMsXG4gICAgU3R5bGVkTGVmdEhlbHBlcixcbiAgICBTdHlsZWRSaWdodEhlbHBlcixcbiAgICBTdHlsZWRMYWJlbCxcbiAgICBTdHlsZWRQbGFjZWhvbGRlcixcbiAgICBTdHlsZWRUZXh0QXJlYSxcbiAgICBTdHlsZWRUZXh0QXJlYVdyYXBwZXIsXG4gICAgU3R5bGVkQ29udGFpbmVyLFxuICAgIFN0eWxlZEluZGljYXRvcixcbiAgICBTdHlsZWRPcHRpb25hbFRleHQsXG59IGZyb20gJy4vVGV4dEFyZWEuc3R5bGVzJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICcuL1RleHRBcmVhLnRva2Vucyc7XG5pbXBvcnQgeyBiYXNlIGFzIHZpZXdDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3ZpZXcvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIHNpemVDU1MgfSBmcm9tICcuL3ZhcmlhdGlvbnMvX3NpemUvYmFzZSc7XG5pbXBvcnQgeyBiYXNlIGFzIGRpc2FibGVkQ1NTIH0gZnJvbSAnLi92YXJpYXRpb25zL19kaXNhYmxlZC9iYXNlJztcbmltcG9ydCB0eXBlIHsgVGV4dEFyZWFQcm9wcyB9IGZyb20gJy4vVGV4dEFyZWEudHlwZXMnO1xuXG5jb25zdCB7XG4gICAgaW5uZXJQbGFjZWhvbGRlclVwLFxuICAgIGZvY3VzZWRPdXRlclBsYWNlaG9sZGVyQ29sb3IsXG4gICAgaGlkZVBsYWNlSG9sZGVyLFxuICAgIHN0eWxlZENvbnRhaW5lcixcbiAgICBzdHlsZWRUZXh0QXJlYSxcbiAgICBzdHlsZWRUZXh0QXJlYVdyYXBwZXIsXG4gICAgc3R5bGVkUGxhY2Vob2xkZXIsXG4gICAgc3R5bGVkSGVscGVycyxcbn0gPSBjbGFzc2VzO1xuXG5jb25zdCBvcHRpb25hbFRleHQgPSAnb3B0aW9uYWwnO1xuXG5jb25zdCBiYXNlID0gY3NzYFxuICAgICR7YXBwbHlEeW5hbWljTGFiZWx9O1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5gO1xuXG4vLyBUT0RPOiDQo9C00LDQu9C40YLRjCDQv9C+0YHQu9C1INC+0YLQutCw0LfQsCDQvtGCINGB0YLQsNGA0YvRhSDQsdC40LHQu9C40L7RgtC10LogcGxhc21hLXdlYiAvIHBsYXNtYS1iMmNcbmNvbnN0IGZhbGxiYWNrU3RhdHVzTWFwID0ge1xuICAgICcnOiAncHJpbWFyeScsXG4gICAgc3VjY2VzczogJ3Bvc2l0aXZlJyxcbiAgICB3YXJuaW5nOiAnd2FybmluZycsXG4gICAgZXJyb3I6ICduZWdhdGl2ZScsXG59O1xuXG4vLyBUT0RPOiDQn9C10YDQtdC90LXRgdGC0Lgg0Y3RgtC+0YIg0LzQtdGC0L7QtCDQsiDRhNCw0LnQuyBhcHBseUR5bmFtaWNMYWJlbC50c1xuZXhwb3J0IGNvbnN0IGdldER5bmFtaWNMYWJlbENsYXNzZXMgPSAocHJvcHM6IFRleHRBcmVhUHJvcHMsIGZvY3VzZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCB7IHJlYWRPbmx5LCBsYWJlbCwgbGFiZWxQbGFjZW1lbnQsIGF1dG9SZXNpemUsIHJvd3MsIHZhbHVlLCBzaXplIH0gPSBwcm9wcztcblxuICAgIC8vINCU0L7QsdCw0LLQuNGC0Ywg0LrQu9Cw0YHRgSDQvtGC0LLQtdGH0LDRjtGJ0LjQuSDQt9CwINC40LfQvNC10L3QtdC90LjQtSDRhtCy0LXRgtCwINC/0LvQtdC50YHRhdC+0LvQtNC10YDQsCDQv9GA0Lgg0YTQvtC60YPRgdC1XG4gICAgY29uc3Qgd2l0aEZvY3VzZWRPdXRlclVwUGxhY2Vob2xkZXIgPVxuICAgICAgICAhcmVhZE9ubHkgJiYgZm9jdXNlZCAmJiAoIWxhYmVsIHx8IGxhYmVsUGxhY2VtZW50ID09PSAnb3V0ZXInKSA/IGZvY3VzZWRPdXRlclBsYWNlaG9sZGVyQ29sb3IgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyDQlNC+0LHQsNCy0LjRgtGMINC60LvQsNGB0YEg0L7RgtCy0LXRh9Cw0Y7RidC40Lkg0LfQsCDQv9C+0LTQvdGP0YLQuNC1INC4INGD0LzQtdC90YzRiNC10L3QuNC1INC/0LvQtdC50YHRhdC+0LvQtNC10YDQsFxuICAgIGNvbnN0IHdpdGhJbm5lclBsYWNlaG9sZGVyVXAgPVxuICAgICAgICBsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJyAmJlxuICAgICAgICBsYWJlbCAmJlxuICAgICAgICAhYXV0b1Jlc2l6ZSAmJlxuICAgICAgICAhcm93cyAmJlxuICAgICAgICBzaXplICE9PSAneHMnICYmXG4gICAgICAgICgoIXJlYWRPbmx5ICYmICh2YWx1ZSB8fCBmb2N1c2VkKSkgfHwgKHJlYWRPbmx5ICYmIHZhbHVlKSlcbiAgICAgICAgICAgID8gaW5uZXJQbGFjZWhvbGRlclVwXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vINCU0L7QsdCw0LLQuNGC0Ywg0LrQu9Cw0YHRgSDQvtGC0LLQtdGH0LDRjtGJ0LjQuSDQt9CwINGB0LrRgNGL0YLQuNC1INC/0LvQtdC50YHRhdC+0LvQtNC10YDQsFxuICAgIGNvbnN0IHdpdGhIaWRlUGxhY2Vob2xkZXIgPVxuICAgICAgICAodmFsdWUgJiYgIWxhYmVsKSB8fFxuICAgICAgICAobGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgKChmb2N1c2VkICYmICFyZWFkT25seSkgfHwgdmFsdWUpICYmIGxhYmVsICYmIChyb3dzIHx8IGF1dG9SZXNpemUpKSB8fFxuICAgICAgICAobGFiZWxQbGFjZW1lbnQgPT09ICdvdXRlcicgJiYgdmFsdWUpIHx8XG4gICAgICAgIChsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJyAmJiBzaXplID09PSAneHMnICYmIHZhbHVlKVxuICAgICAgICAgICAgPyBoaWRlUGxhY2VIb2xkZXJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIFt3aXRoRm9jdXNlZE91dGVyVXBQbGFjZWhvbGRlciwgd2l0aElubmVyUGxhY2Vob2xkZXJVcCwgd2l0aEhpZGVQbGFjZWhvbGRlcl07XG59O1xuXG5leHBvcnQgY29uc3QgdGV4dEFyZWFSb290ID0gKFJvb3Q6IFJvb3RQcm9wczxIVE1MVGV4dEFyZWFFbGVtZW50LCBUZXh0QXJlYVByb3BzPikgPT5cbiAgICBmb3J3YXJkUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQsIFRleHRBcmVhUHJvcHM+KChwcm9wcywgaW5uZXJSZWYpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgaGVscGVyVGV4dCxcbiAgICAgICAgICAgIHN0YXR1cyxcbiAgICAgICAgICAgIHJlc2l6ZSxcbiAgICAgICAgICAgIHJpZ2h0SGVscGVyLFxuICAgICAgICAgICAgbGVmdEhlbHBlcixcbiAgICAgICAgICAgIGNvbnRlbnRSaWdodCxcbiAgICAgICAgICAgIGF1dG9SZXNpemUgPSBmYWxzZSxcbiAgICAgICAgICAgIG1pbkF1dG8gPSAwLFxuICAgICAgICAgICAgbWF4QXV0byxcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQgPSAnaW5uZXInLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgICAgIHJlcXVpcmVkUGxhY2VtZW50ID0gJ3JpZ2h0JyxcbiAgICAgICAgICAgIG9wdGlvbmFsLFxuICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgcmVhZE9ubHksXG4gICAgICAgICAgICByb3dzLFxuICAgICAgICAgICAgY29scyxcbiAgICAgICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICAgICAgLi4ucmVzdFxuICAgICAgICB9ID0gcHJvcHM7XG5cbiAgICAgICAgY29uc3QgW2hlbHBlcldpZHRoLCBzZXRIZWxwZXJXaWR0aF0gPSB1c2VTdGF0ZTxzdHJpbmc+KHdpZHRoID8gYCR7d2lkdGh9cmVtYCA6ICcxMDAlJyk7XG4gICAgICAgIGNvbnN0IFtmb2N1c2VkLCBzZXRGb2N1c2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICAgICAgY29uc3QgW3VuY29udHJvbGxlZFZhbHVlLCBzZXRVbmNvbnRyb2xsZWRWYWx1ZV0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICAgICAgY29uc3Qgb3V0ZXJSZWYgPSBpbm5lclJlZiAmJiAnY3VycmVudCcgaW4gaW5uZXJSZWYgPyBpbm5lclJlZiA6IGNyZWF0ZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PigpO1xuXG4gICAgICAgIGNvbnN0IGlubmVyT3B0aW9uYWwgPSByZXF1aXJlZCA/IGZhbHNlIDogb3B0aW9uYWw7XG4gICAgICAgIGNvbnN0IGhhc0hlbHBlciA9IEJvb2xlYW4obGVmdEhlbHBlciB8fCByaWdodEhlbHBlciB8fCBoZWxwZXJUZXh0KTtcbiAgICAgICAgY29uc3QgaGFzT3V0ZXJMYWJlbCA9IEJvb2xlYW4obGFiZWwgJiYgbGFiZWxQbGFjZW1lbnQgPT09ICdvdXRlcicpO1xuICAgICAgICBjb25zdCBoYXNJbm5lckxhYmVsID0gQm9vbGVhbihsYWJlbCAmJiBsYWJlbFBsYWNlbWVudCA9PT0gJ2lubmVyJyAmJiBzaXplICE9PSAneHMnKTtcbiAgICAgICAgY29uc3QgaGFzUGxhY2Vob2xkZXJPcHRpb25hbCA9IGlubmVyT3B0aW9uYWwgJiYgIWhhc091dGVyTGFiZWw7XG5cbiAgICAgICAgY29uc3Qgb3ZlcnJpZGRlblZpZXcgPSBzdGF0dXMgIT09IHVuZGVmaW5lZCA/IGZhbGxiYWNrU3RhdHVzTWFwW3N0YXR1c10gOiB2aWV3O1xuICAgICAgICBjb25zdCB0ZXh0YXJlYUhlbHBlcklkID0gaWQgPyBgJHtpZH0taGVscGVyYCA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgYXBwbHlDdXN0b21XaWR0aCA9IHJlc2l6ZSAhPT0gJ2hvcml6b250YWwnICYmIHJlc2l6ZSAhPT0gJ2JvdGgnICYmICFjb2xzO1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlckxhYmVsID0gaGFzSW5uZXJMYWJlbCA/IGxhYmVsIDogcGxhY2Vob2xkZXI7XG5cbiAgICAgICAgY29uc3QgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyA9IHJlcXVpcmVkUGxhY2VtZW50ID09PSAncmlnaHQnID8gJ2FsaWduLXJpZ2h0ICcgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgdXNlUmVzaXplT2JzZXJ2ZXIob3V0ZXJSZWYsIChjdXJyZW50RWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyB3aWR0aDogaW5saW5lV2lkdGggfSA9IGN1cnJlbnRFbGVtZW50LnN0eWxlO1xuXG4gICAgICAgICAgICBpZiAoaW5saW5lV2lkdGggfHwgY29scykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGg6IGVsZW1lbnRXaWR0aCB9ID0gY3VycmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgc2V0SGVscGVyV2lkdGgoYCR7ZWxlbWVudFdpZHRoIC8gUk9PVF9GT05UX1NJWkV9cmVtYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHVzZUF1dG9SZXNpemUoYXV0b1Jlc2l6ZSwgb3V0ZXJSZWYsIHZhbHVlLCBtaW5BdXRvLCBtYXhBdXRvKTtcblxuICAgICAgICBjb25zdCBvbkZvY3VzSGFuZGxlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgICAgIHNldEZvY3VzZWQodHJ1ZSk7XG4gICAgICAgIH0sIFtdKTtcblxuICAgICAgICBjb25zdCBvbkJsdXJIYW5kbGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICAgICAgc2V0Rm9jdXNlZChmYWxzZSk7XG4gICAgICAgIH0sIFtdKTtcblxuICAgICAgICBjb25zdCBvbkNoYW5nZUhhbmRsZXIgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgICAgIChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAvLyBJTkZPOiDQlNC70Y8g0LrRgNCw0LnQvdC1INGA0LXQtNC60LjRhSDQutC10LnRgdC+0LIsINC60L7Qs9C00LAgdmFsdWUg0YHQvdCw0YDRg9C20Lgg0L3QtSDQutC+0L3RgtGA0L7Qu9C40YDRg9C10YLRgdGPXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VW5jb250cm9sbGVkVmFsdWUoZXZlbnQ/LnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U/LihldmVudCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW3ZhbHVlLCBvbkNoYW5nZV0sXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgZHluYW1pY0xhYmVsQ2xhc3NlcyA9IGdldER5bmFtaWNMYWJlbENsYXNzZXMoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgICAgICByZWFkT25seSxcbiAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICBsYWJlbFBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUgfHwgdW5jb250cm9sbGVkVmFsdWUgfHwgZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgICAgIC4uLihyb3dzID8geyByb3dzIH0gOiB7IGF1dG9SZXNpemUgfSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZm9jdXNlZCxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBvcHRpb25hbFRleHROb2RlID0gaW5uZXJPcHRpb25hbCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRPcHRpb25hbFRleHQ+XG4gICAgICAgICAgICAgICAge0Jvb2xlYW4oaGFzUGxhY2Vob2xkZXJPcHRpb25hbCA/IHBsYWNlaG9sZGVyTGFiZWwgOiBsYWJlbCkgJiYgJ1xceGEwJ31cbiAgICAgICAgICAgICAgICB7b3B0aW9uYWxUZXh0fVxuICAgICAgICAgICAgPC9TdHlsZWRPcHRpb25hbFRleHQ+XG4gICAgICAgICkgOiBudWxsO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8Um9vdFxuICAgICAgICAgICAgICAgIHZpZXc9e292ZXJyaWRkZW5WaWV3fVxuICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogaGVscGVyV2lkdGgsIC4uLnN0eWxlIH19XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2hhc091dGVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVxdWlyZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbmRpY2F0b3IgY2xhc3NOYW1lPXtjeChjbGFzc2VzLm91dGVyTGFiZWxQbGFjZW1lbnQsIHJlcXVpcmVkUGxhY2VtZW50Q2xhc3MpfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25hbFRleHROb2RlfVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZExhYmVsPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KHN0eWxlZENvbnRhaW5lciwgLi4uZHluYW1pY0xhYmVsQ2xhc3Nlcyl9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXtoZWxwZXJXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17b25Gb2N1c0hhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17b25CbHVySGFuZGxlcn1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtyZXF1aXJlZCAmJiAhaGFzT3V0ZXJMYWJlbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yIGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5pbm5lckxhYmVsUGxhY2VtZW50LCByZXF1aXJlZFBsYWNlbWVudENsYXNzKX0gLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAge2NvbnRlbnRSaWdodCAmJiA8U3R5bGVkQ29udGVudD57Y29udGVudFJpZ2h0fTwvU3R5bGVkQ29udGVudD59XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYVdyYXBwZXIgY2xhc3NOYW1lPXtzdHlsZWRUZXh0QXJlYVdyYXBwZXJ9IGhhc0hlbHBlcj17aGFzSGVscGVyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVkVGV4dEFyZWF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0NvbnRlbnRSaWdodD17Qm9vbGVhbihjb250ZW50UmlnaHQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0hlbHBlcj17aGFzSGVscGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGx5Q3VzdG9tV2lkdGg9e2FwcGx5Q3VzdG9tV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtvdXRlclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXthdXRvUmVzaXplID8gbWluQXV0byA6IGhlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17dGV4dGFyZWFIZWxwZXJJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29scz17Y29sc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpemU9e3Jlc2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2VIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYVdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIHtoYXNIZWxwZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEhlbHBlcnMgY2xhc3NOYW1lPXtzdHlsZWRIZWxwZXJzfSBpZD17dGV4dGFyZWFIZWxwZXJJZH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyhsZWZ0SGVscGVyIHx8IGhlbHBlclRleHQpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZExlZnRIZWxwZXI+e2xlZnRIZWxwZXIgfHwgaGVscGVyVGV4dH08L1N0eWxlZExlZnRIZWxwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmlnaHRIZWxwZXIgJiYgPFN0eWxlZFJpZ2h0SGVscGVyPntyaWdodEhlbHBlcn08L1N0eWxlZFJpZ2h0SGVscGVyPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSGVscGVycz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAge3BsYWNlaG9sZGVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzQ29udGVudFJpZ2h0PXtCb29sZWFuKGNvbnRlbnRSaWdodCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZWRQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sRm9yPXtpZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGxhY2Vob2xkZXJMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IWhhc091dGVyTGFiZWwgJiYgb3B0aW9uYWxUZXh0Tm9kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkUGxhY2Vob2xkZXI+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRDb250YWluZXI+XG4gICAgICAgICAgICA8L1Jvb3Q+XG4gICAgICAgICk7XG4gICAgfSk7XG5cbmV4cG9ydCBjb25zdCB0ZXh0QXJlYUNvbmZpZyA9IHtcbiAgICBuYW1lOiAnVGV4dEFyZWEnLFxuICAgIHRhZzogJ2RpdicsXG4gICAgbGF5b3V0OiB0ZXh0QXJlYVJvb3QsXG4gICAgYmFzZSxcbiAgICB2YXJpYXRpb25zOiB7XG4gICAgICAgIHNpemU6IHtcbiAgICAgICAgICAgIGNzczogc2l6ZUNTUyxcbiAgICAgICAgfSxcbiAgICAgICAgdmlldzoge1xuICAgICAgICAgICAgY3NzOiB2aWV3Q1NTLFxuICAgICAgICB9LFxuICAgICAgICBkaXNhYmxlZDoge1xuICAgICAgICAgICAgY3NzOiBkaXNhYmxlZENTUyxcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICByZWFkT25seToge1xuICAgICAgICAgICAgYXR0cnM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0czoge1xuICAgICAgICBzaXplOiAnbScsXG4gICAgICAgIHZpZXc6ICdwcmltYXJ5JyxcbiAgICB9LFxufTtcbiJdfQ== */"));
41
42
 
42
43
  // TODO: Удалить после отказа от старых библиотек plasma-web / plasma-b2c
43
44
  var fallbackStatusMap = {
@@ -89,6 +90,10 @@ export var textAreaRoot = function textAreaRoot(Root) {
89
90
  width = props.width,
90
91
  value = props.value,
91
92
  disabled = props.disabled,
93
+ required = props.required,
94
+ _props$requiredPlacem = props.requiredPlacement,
95
+ requiredPlacement = _props$requiredPlacem === void 0 ? 'right' : _props$requiredPlacem,
96
+ optional = props.optional,
92
97
  size = props.size,
93
98
  view = props.view,
94
99
  id = props.id,
@@ -112,11 +117,16 @@ export var textAreaRoot = function textAreaRoot(Root) {
112
117
  uncontrolledValue = _useState6[0],
113
118
  setUncontrolledValue = _useState6[1];
114
119
  var outerRef = innerRef && 'current' in innerRef ? innerRef : /*#__PURE__*/createRef();
120
+ var innerOptional = required ? false : optional;
115
121
  var hasHelper = Boolean(leftHelper || rightHelper || helperText);
122
+ var hasOuterLabel = Boolean(label && labelPlacement === 'outer');
123
+ var hasInnerLabel = Boolean(label && labelPlacement === 'inner' && size !== 'xs');
124
+ var hasPlaceholderOptional = innerOptional && !hasOuterLabel;
116
125
  var overriddenView = status !== undefined ? fallbackStatusMap[status] : view;
117
126
  var textareaHelperId = id ? "".concat(id, "-helper") : undefined;
118
127
  var applyCustomWidth = resize !== 'horizontal' && resize !== 'both' && !cols;
119
- var placeLabel = labelPlacement === 'inner' && label && size !== 'xs' ? label : placeholder;
128
+ var placeholderLabel = hasInnerLabel ? label : placeholder;
129
+ var requiredPlacementClass = requiredPlacement === 'right' ? 'align-right ' : undefined;
120
130
  useResizeObserver(outerRef, function (currentElement) {
121
131
  var inlineWidth = currentElement.style.width;
122
132
  if (inlineWidth || cols) {
@@ -150,6 +160,7 @@ export var textAreaRoot = function textAreaRoot(Root) {
150
160
  } : {
151
161
  autoResize: autoResize
152
162
  }), focused);
163
+ var optionalTextNode = innerOptional ? /*#__PURE__*/React.createElement(StyledOptionalText, null, Boolean(hasPlaceholderOptional ? placeholderLabel : label) && '\xa0', optionalText) : null;
153
164
  return /*#__PURE__*/React.createElement(Root, {
154
165
  view: overriddenView,
155
166
  size: size,
@@ -159,12 +170,16 @@ export var textAreaRoot = function textAreaRoot(Root) {
159
170
  width: helperWidth
160
171
  }, style),
161
172
  className: className
162
- }, label && labelPlacement === 'outer' && /*#__PURE__*/React.createElement(StyledLabel, null, label), /*#__PURE__*/React.createElement(StyledContainer, {
173
+ }, hasOuterLabel && /*#__PURE__*/React.createElement(StyledLabel, null, required && /*#__PURE__*/React.createElement(StyledIndicator, {
174
+ className: cx(classes.outerLabelPlacement, requiredPlacementClass)
175
+ }), label, optionalTextNode), /*#__PURE__*/React.createElement(StyledContainer, {
163
176
  className: cx.apply(void 0, [styledContainer].concat(_toConsumableArray(dynamicLabelClasses))),
164
177
  width: helperWidth,
165
178
  onFocus: onFocusHandler,
166
179
  onBlur: onBlurHandler
167
- }, contentRight && /*#__PURE__*/React.createElement(StyledContent, null, contentRight), /*#__PURE__*/React.createElement(StyledTextAreaWrapper, {
180
+ }, required && !hasOuterLabel && /*#__PURE__*/React.createElement(StyledIndicator, {
181
+ className: cx(classes.innerLabelPlacement, requiredPlacementClass)
182
+ }), contentRight && /*#__PURE__*/React.createElement(StyledContent, null, contentRight), /*#__PURE__*/React.createElement(StyledTextAreaWrapper, {
168
183
  className: styledTextAreaWrapper,
169
184
  hasHelper: hasHelper
170
185
  }, /*#__PURE__*/React.createElement(StyledTextArea, _extends({
@@ -177,7 +192,7 @@ export var textAreaRoot = function textAreaRoot(Root) {
177
192
  disabled: disabled,
178
193
  height: autoResize ? minAuto : height,
179
194
  width: width,
180
- placeholder: placeLabel,
195
+ placeholder: placeholderLabel,
181
196
  "aria-describedby": textareaHelperId,
182
197
  value: value,
183
198
  readOnly: readOnly,
@@ -189,11 +204,11 @@ export var textAreaRoot = function textAreaRoot(Root) {
189
204
  }, rest))), hasHelper && /*#__PURE__*/React.createElement(StyledHelpers, {
190
205
  className: styledHelpers,
191
206
  id: textareaHelperId
192
- }, (leftHelper || helperText) && /*#__PURE__*/React.createElement(StyledLeftHelper, null, leftHelper || helperText), rightHelper && /*#__PURE__*/React.createElement(StyledRightHelper, null, rightHelper)), placeLabel && /*#__PURE__*/React.createElement(StyledPlaceholder, {
207
+ }, (leftHelper || helperText) && /*#__PURE__*/React.createElement(StyledLeftHelper, null, leftHelper || helperText), rightHelper && /*#__PURE__*/React.createElement(StyledRightHelper, null, rightHelper)), placeholderLabel && /*#__PURE__*/React.createElement(StyledPlaceholder, {
193
208
  hasContentRight: Boolean(contentRight),
194
209
  className: styledPlaceholder,
195
210
  htmlFor: id
196
- }, placeLabel)));
211
+ }, placeholderLabel, !hasOuterLabel && optionalTextNode)));
197
212
  });
198
213
  };
199
214
  export var textAreaConfig = {