@salutejs/plasma-new-hope 0.155.0-dev.0 → 0.156.0-canary.1459.11057629608.0
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/components/Autocomplete/Autocomplete.css +33 -18
- package/cjs/components/Autocomplete/Autocomplete.js +6 -2
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/Combobox.css +37 -17
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.css +37 -17
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.css +37 -17
- package/cjs/components/DatePicker/RangeDate/RangeDate.css +34 -19
- package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +32 -17
- package/cjs/components/DatePicker/SingleDate/SingleDate.css +34 -19
- package/cjs/components/Range/Range.css +38 -18
- package/cjs/components/Slider/Slider.css +38 -18
- package/cjs/components/Slider/components/Double/Double.css +38 -18
- package/cjs/components/TextArea/TextArea.js +123 -15
- package/cjs/components/TextArea/TextArea.js.map +1 -1
- package/cjs/components/TextArea/TextArea.styles.js +116 -63
- package/cjs/components/TextArea/TextArea.styles.js.map +1 -1
- package/cjs/components/TextArea/TextArea.styles_1phhc4q.css +17 -0
- package/cjs/components/TextArea/TextArea.tokens.js +36 -1
- package/cjs/components/TextArea/TextArea.tokens.js.map +1 -1
- package/cjs/components/TextArea/variations/_hint-size/base.js +9 -0
- package/cjs/components/TextArea/variations/_hint-size/base.js.map +1 -0
- package/cjs/components/TextArea/variations/_hint-size/base_1pzfoj7.css +1 -0
- package/cjs/components/TextArea/variations/_hint-view/base.js +9 -0
- package/cjs/components/TextArea/variations/_hint-view/base.js.map +1 -0
- package/cjs/components/TextArea/variations/_hint-view/base_111a0qe.css +1 -0
- package/cjs/components/TextArea/variations/_view/base.js +1 -1
- package/cjs/components/TextArea/variations/_view/base.js.map +1 -1
- package/cjs/components/TextArea/variations/_view/base_1ri7c88.css +1 -0
- package/cjs/components/TextField/TextField.js +114 -7
- package/cjs/components/TextField/TextField.js.map +1 -1
- package/cjs/components/TextField/TextField.styles.js +74 -20
- package/cjs/components/TextField/TextField.styles.js.map +1 -1
- package/cjs/components/TextField/TextField.styles_1i9z45f.css +21 -0
- package/cjs/components/TextField/TextField.tokens.js +35 -0
- package/cjs/components/TextField/TextField.tokens.js.map +1 -1
- package/cjs/components/TextField/variations/_disabled/base.js +1 -1
- package/cjs/components/TextField/variations/_disabled/base_frtgf7.css +1 -0
- package/cjs/components/TextField/variations/_hint-size/base.js +9 -0
- package/cjs/components/TextField/variations/_hint-size/base.js.map +1 -0
- package/cjs/components/TextField/variations/_hint-size/base_1f8fx0a.css +1 -0
- package/cjs/components/TextField/variations/_hint-view/base.js +9 -0
- package/cjs/components/TextField/variations/_hint-view/base.js.map +1 -0
- package/cjs/components/TextField/variations/_hint-view/base_l8etux.css +1 -0
- package/cjs/components/TextField/variations/_label-placement/base.js +1 -1
- package/cjs/components/TextField/variations/_label-placement/base.js.map +1 -1
- package/cjs/components/TextField/variations/_label-placement/base_oh623n.css +1 -0
- package/cjs/components/TextField/variations/_read-only/base.js +1 -1
- package/cjs/components/TextField/variations/_read-only/base.js.map +1 -1
- package/cjs/components/TextField/variations/_read-only/base_dwfq44.css +1 -0
- package/cjs/components/TextField/variations/_size/base.js +1 -1
- package/cjs/components/TextField/variations/_size/base.js.map +1 -1
- package/cjs/components/TextField/variations/_size/base_n9k1fc.css +1 -0
- package/cjs/components/TextField/variations/_view/base.js +1 -1
- package/cjs/components/TextField/variations/_view/base.js.map +1 -1
- package/cjs/components/TextField/variations/_view/base_tmr4o7.css +1 -0
- package/cjs/components/TextFieldGroup/TextFieldGroup.css +1 -1
- package/cjs/components/TextFieldGroup/variations/_shape/base.js +1 -1
- package/cjs/components/TextFieldGroup/variations/_shape/base_52bndd.css +1 -0
- package/cjs/components/_Icon/Icon.assets/InfoCircleOutline.js +23 -0
- package/cjs/components/_Icon/Icon.assets/InfoCircleOutline.js.map +1 -0
- package/cjs/components/_Icon/Icons/IconInfoCircleOutline.js +23 -0
- package/cjs/components/_Icon/Icons/IconInfoCircleOutline.js.map +1 -0
- package/cjs/index.css +51 -31
- package/emotion/cjs/components/Autocomplete/Autocomplete.js +6 -2
- package/emotion/cjs/components/TextArea/TextArea.js +126 -20
- package/emotion/cjs/components/TextArea/TextArea.styles.js +81 -41
- package/emotion/cjs/components/TextArea/TextArea.template-doc.mdx +6 -1
- package/emotion/cjs/components/TextArea/TextArea.tokens.js +36 -1
- package/emotion/cjs/components/TextArea/variations/_hint-size/base.js +11 -0
- package/emotion/cjs/components/TextArea/variations/_hint-size/tokens.json +21 -0
- package/emotion/cjs/components/TextArea/variations/_hint-view/base.js +11 -0
- package/emotion/cjs/components/TextArea/variations/_hint-view/tokens.json +5 -0
- package/emotion/cjs/components/TextArea/variations/_view/base.js +2 -1
- package/emotion/cjs/components/TextField/TextField.js +116 -10
- package/emotion/cjs/components/TextField/TextField.styles.js +81 -34
- package/emotion/cjs/components/TextField/TextField.template-doc.mdx +7 -1
- package/emotion/cjs/components/TextField/TextField.tokens.js +35 -0
- package/emotion/cjs/components/TextField/variations/_hint-size/base.js +11 -0
- package/emotion/cjs/components/TextField/variations/_hint-size/tokens.json +21 -0
- package/emotion/cjs/components/TextField/variations/_hint-view/base.js +11 -0
- package/emotion/cjs/components/TextField/variations/_hint-view/tokens.json +5 -0
- package/emotion/cjs/components/TextField/variations/_label-placement/base.js +1 -1
- package/emotion/cjs/components/TextField/variations/_read-only/base.js +1 -1
- package/emotion/cjs/components/TextField/variations/_size/base.js +1 -1
- package/emotion/cjs/components/TextField/variations/_view/base.js +1 -1
- package/emotion/cjs/components/_Icon/Icon.assets/InfoCircleOutline.js +22 -0
- package/emotion/cjs/components/_Icon/Icons/IconInfoCircleOutline.js +22 -0
- package/emotion/cjs/components/_Icon/index.js +8 -1
- package/emotion/cjs/examples/plasma_b2c/components/TextArea/TextArea.config.js +18 -9
- package/emotion/cjs/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +69 -0
- package/emotion/cjs/examples/plasma_b2c/components/TextField/TextField.config.js +21 -12
- package/emotion/cjs/examples/plasma_b2c/components/TextField/TextField.stories.tsx +70 -1
- package/emotion/cjs/examples/plasma_web/components/TextArea/TextArea.config.js +18 -9
- package/emotion/cjs/examples/plasma_web/components/TextArea/TextArea.stories.tsx +69 -1
- package/emotion/cjs/examples/plasma_web/components/TextField/TextField.config.js +21 -12
- package/emotion/cjs/examples/plasma_web/components/TextField/TextField.stories.tsx +79 -10
- package/emotion/es/components/Autocomplete/Autocomplete.js +6 -2
- package/emotion/es/components/TextArea/TextArea.js +127 -21
- package/emotion/es/components/TextArea/TextArea.styles.js +80 -40
- package/emotion/es/components/TextArea/TextArea.template-doc.mdx +6 -1
- package/emotion/es/components/TextArea/TextArea.tokens.js +36 -1
- package/emotion/es/components/TextArea/variations/_hint-size/base.js +5 -0
- package/emotion/es/components/TextArea/variations/_hint-size/tokens.json +21 -0
- package/emotion/es/components/TextArea/variations/_hint-view/base.js +5 -0
- package/emotion/es/components/TextArea/variations/_hint-view/tokens.json +5 -0
- package/emotion/es/components/TextArea/variations/_view/base.js +2 -1
- package/emotion/es/components/TextField/TextField.js +115 -9
- package/emotion/es/components/TextField/TextField.styles.js +80 -33
- package/emotion/es/components/TextField/TextField.template-doc.mdx +7 -1
- package/emotion/es/components/TextField/TextField.tokens.js +35 -0
- package/emotion/es/components/TextField/variations/_hint-size/base.js +5 -0
- package/emotion/es/components/TextField/variations/_hint-size/tokens.json +21 -0
- package/emotion/es/components/TextField/variations/_hint-view/base.js +5 -0
- package/emotion/es/components/TextField/variations/_hint-view/tokens.json +5 -0
- package/emotion/es/components/TextField/variations/_label-placement/base.js +1 -1
- package/emotion/es/components/TextField/variations/_read-only/base.js +2 -2
- package/emotion/es/components/TextField/variations/_size/base.js +2 -2
- package/emotion/es/components/TextField/variations/_view/base.js +2 -2
- package/emotion/es/components/_Icon/Icon.assets/InfoCircleOutline.js +15 -0
- package/emotion/es/components/_Icon/Icons/IconInfoCircleOutline.js +15 -0
- package/emotion/es/components/_Icon/index.js +2 -1
- package/emotion/es/examples/plasma_b2c/components/TextArea/TextArea.config.js +18 -9
- package/emotion/es/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +69 -0
- package/emotion/es/examples/plasma_b2c/components/TextField/TextField.config.js +21 -12
- package/emotion/es/examples/plasma_b2c/components/TextField/TextField.stories.tsx +70 -1
- package/emotion/es/examples/plasma_web/components/TextArea/TextArea.config.js +18 -9
- package/emotion/es/examples/plasma_web/components/TextArea/TextArea.stories.tsx +69 -1
- package/emotion/es/examples/plasma_web/components/TextField/TextField.config.js +21 -12
- package/emotion/es/examples/plasma_web/components/TextField/TextField.stories.tsx +79 -10
- package/es/components/Autocomplete/Autocomplete.css +33 -18
- package/es/components/Autocomplete/Autocomplete.js +6 -2
- package/es/components/Autocomplete/Autocomplete.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/Combobox.css +37 -17
- package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.css +37 -17
- package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.css +37 -17
- package/es/components/DatePicker/RangeDate/RangeDate.css +34 -19
- package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +32 -17
- package/es/components/DatePicker/SingleDate/SingleDate.css +34 -19
- package/es/components/Range/Range.css +38 -18
- package/es/components/Slider/Slider.css +38 -18
- package/es/components/Slider/components/Double/Double.css +38 -18
- package/es/components/TextArea/TextArea.js +127 -19
- package/es/components/TextArea/TextArea.js.map +1 -1
- package/es/components/TextArea/TextArea.styles.js +111 -64
- package/es/components/TextArea/TextArea.styles.js.map +1 -1
- package/es/components/TextArea/TextArea.styles_1phhc4q.css +17 -0
- package/es/components/TextArea/TextArea.tokens.js +36 -1
- package/es/components/TextArea/TextArea.tokens.js.map +1 -1
- package/es/components/TextArea/variations/_hint-size/base.js +5 -0
- package/es/components/TextArea/variations/_hint-size/base.js.map +1 -0
- package/es/components/TextArea/variations/_hint-size/base_1pzfoj7.css +1 -0
- package/es/components/TextArea/variations/_hint-view/base.js +5 -0
- package/es/components/TextArea/variations/_hint-view/base.js.map +1 -0
- package/es/components/TextArea/variations/_hint-view/base_111a0qe.css +1 -0
- package/es/components/TextArea/variations/_view/base.js +1 -1
- package/es/components/TextArea/variations/_view/base.js.map +1 -1
- package/es/components/TextArea/variations/_view/base_1ri7c88.css +1 -0
- package/es/components/TextField/TextField.js +115 -8
- package/es/components/TextField/TextField.js.map +1 -1
- package/es/components/TextField/TextField.styles.js +69 -21
- package/es/components/TextField/TextField.styles.js.map +1 -1
- package/es/components/TextField/TextField.styles_1i9z45f.css +21 -0
- package/es/components/TextField/TextField.tokens.js +35 -0
- package/es/components/TextField/TextField.tokens.js.map +1 -1
- package/es/components/TextField/variations/_disabled/base.js +1 -1
- package/es/components/TextField/variations/_disabled/base_frtgf7.css +1 -0
- package/es/components/TextField/variations/_hint-size/base.js +5 -0
- package/es/components/TextField/variations/_hint-size/base.js.map +1 -0
- package/es/components/TextField/variations/_hint-size/base_1f8fx0a.css +1 -0
- package/es/components/TextField/variations/_hint-view/base.js +5 -0
- package/es/components/TextField/variations/_hint-view/base.js.map +1 -0
- package/es/components/TextField/variations/_hint-view/base_l8etux.css +1 -0
- package/es/components/TextField/variations/_label-placement/base.js +1 -1
- package/es/components/TextField/variations/_label-placement/base.js.map +1 -1
- package/es/components/TextField/variations/_label-placement/base_oh623n.css +1 -0
- package/es/components/TextField/variations/_read-only/base.js +1 -1
- package/es/components/TextField/variations/_read-only/base.js.map +1 -1
- package/es/components/TextField/variations/_read-only/base_dwfq44.css +1 -0
- package/es/components/TextField/variations/_size/base.js +1 -1
- package/es/components/TextField/variations/_size/base.js.map +1 -1
- package/es/components/TextField/variations/_size/base_n9k1fc.css +1 -0
- package/es/components/TextField/variations/_view/base.js +1 -1
- package/es/components/TextField/variations/_view/base.js.map +1 -1
- package/es/components/TextField/variations/_view/base_tmr4o7.css +1 -0
- package/es/components/TextFieldGroup/TextFieldGroup.css +1 -1
- package/es/components/TextFieldGroup/variations/_shape/base.js +1 -1
- package/es/components/TextFieldGroup/variations/_shape/base_52bndd.css +1 -0
- package/es/components/_Icon/Icon.assets/InfoCircleOutline.js +19 -0
- package/es/components/_Icon/Icon.assets/InfoCircleOutline.js.map +1 -0
- package/es/components/_Icon/Icons/IconInfoCircleOutline.js +19 -0
- package/es/components/_Icon/Icons/IconInfoCircleOutline.js.map +1 -0
- package/es/index.css +51 -31
- package/package.json +2 -2
- package/styled-components/cjs/components/Autocomplete/Autocomplete.js +6 -2
- package/styled-components/cjs/components/TextArea/TextArea.js +125 -19
- package/styled-components/cjs/components/TextArea/TextArea.styles.js +64 -39
- package/styled-components/cjs/components/TextArea/TextArea.template-doc.mdx +6 -1
- package/styled-components/cjs/components/TextArea/TextArea.tokens.js +36 -1
- package/styled-components/cjs/components/TextArea/variations/_hint-size/base.js +11 -0
- package/styled-components/cjs/components/TextArea/variations/_hint-size/tokens.json +21 -0
- package/styled-components/cjs/components/TextArea/variations/_hint-view/base.js +11 -0
- package/styled-components/cjs/components/TextArea/variations/_hint-view/tokens.json +5 -0
- package/styled-components/cjs/components/TextArea/variations/_view/base.js +2 -1
- package/styled-components/cjs/components/TextField/TextField.js +115 -9
- package/styled-components/cjs/components/TextField/TextField.styles.js +42 -17
- package/styled-components/cjs/components/TextField/TextField.template-doc.mdx +7 -1
- package/styled-components/cjs/components/TextField/TextField.tokens.js +35 -0
- package/styled-components/cjs/components/TextField/variations/_hint-size/base.js +11 -0
- package/styled-components/cjs/components/TextField/variations/_hint-size/tokens.json +21 -0
- package/styled-components/cjs/components/TextField/variations/_hint-view/base.js +11 -0
- package/styled-components/cjs/components/TextField/variations/_hint-view/tokens.json +5 -0
- package/styled-components/cjs/components/TextField/variations/_label-placement/base.js +1 -1
- package/styled-components/cjs/components/TextField/variations/_read-only/base.js +1 -1
- package/styled-components/cjs/components/TextField/variations/_size/base.js +1 -1
- package/styled-components/cjs/components/TextField/variations/_view/base.js +1 -1
- package/styled-components/cjs/components/_Icon/Icon.assets/InfoCircleOutline.js +22 -0
- package/styled-components/cjs/components/_Icon/Icons/IconInfoCircleOutline.js +22 -0
- package/styled-components/cjs/components/_Icon/index.js +8 -1
- package/styled-components/cjs/examples/plasma_b2c/components/TextArea/TextArea.config.js +18 -9
- package/styled-components/cjs/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +69 -0
- package/styled-components/cjs/examples/plasma_b2c/components/TextField/TextField.config.js +18 -9
- package/styled-components/cjs/examples/plasma_b2c/components/TextField/TextField.stories.tsx +70 -1
- package/styled-components/cjs/examples/plasma_web/components/TextArea/TextArea.config.js +18 -9
- package/styled-components/cjs/examples/plasma_web/components/TextArea/TextArea.stories.tsx +69 -1
- package/styled-components/cjs/examples/plasma_web/components/TextField/TextField.config.js +18 -9
- package/styled-components/cjs/examples/plasma_web/components/TextField/TextField.stories.tsx +79 -10
- package/styled-components/es/components/Autocomplete/Autocomplete.js +6 -2
- package/styled-components/es/components/TextArea/TextArea.js +126 -20
- package/styled-components/es/components/TextArea/TextArea.styles.js +63 -38
- package/styled-components/es/components/TextArea/TextArea.template-doc.mdx +6 -1
- package/styled-components/es/components/TextArea/TextArea.tokens.js +36 -1
- package/styled-components/es/components/TextArea/variations/_hint-size/base.js +5 -0
- package/styled-components/es/components/TextArea/variations/_hint-size/tokens.json +21 -0
- package/styled-components/es/components/TextArea/variations/_hint-view/base.js +5 -0
- package/styled-components/es/components/TextArea/variations/_hint-view/tokens.json +5 -0
- package/styled-components/es/components/TextArea/variations/_view/base.js +2 -1
- package/styled-components/es/components/TextField/TextField.js +114 -8
- package/styled-components/es/components/TextField/TextField.styles.js +41 -16
- package/styled-components/es/components/TextField/TextField.template-doc.mdx +7 -1
- package/styled-components/es/components/TextField/TextField.tokens.js +35 -0
- package/styled-components/es/components/TextField/variations/_hint-size/base.js +5 -0
- package/styled-components/es/components/TextField/variations/_hint-size/tokens.json +21 -0
- package/styled-components/es/components/TextField/variations/_hint-view/base.js +5 -0
- package/styled-components/es/components/TextField/variations/_hint-view/tokens.json +5 -0
- package/styled-components/es/components/TextField/variations/_label-placement/base.js +1 -1
- package/styled-components/es/components/TextField/variations/_read-only/base.js +2 -2
- package/styled-components/es/components/TextField/variations/_size/base.js +2 -2
- package/styled-components/es/components/TextField/variations/_view/base.js +2 -2
- package/styled-components/es/components/_Icon/Icon.assets/InfoCircleOutline.js +15 -0
- package/styled-components/es/components/_Icon/Icons/IconInfoCircleOutline.js +15 -0
- package/styled-components/es/components/_Icon/index.js +2 -1
- package/styled-components/es/examples/plasma_b2c/components/TextArea/TextArea.config.js +18 -9
- package/styled-components/es/examples/plasma_b2c/components/TextArea/TextArea.stories.tsx +69 -0
- package/styled-components/es/examples/plasma_b2c/components/TextField/TextField.config.js +18 -9
- package/styled-components/es/examples/plasma_b2c/components/TextField/TextField.stories.tsx +70 -1
- package/styled-components/es/examples/plasma_web/components/TextArea/TextArea.config.js +18 -9
- package/styled-components/es/examples/plasma_web/components/TextArea/TextArea.stories.tsx +69 -1
- package/styled-components/es/examples/plasma_web/components/TextField/TextField.config.js +18 -9
- package/styled-components/es/examples/plasma_web/components/TextField/TextField.stories.tsx +79 -10
- package/types/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/types/components/Autocomplete/ui/TextField/TextField.styles.d.ts +208 -0
- package/types/components/Autocomplete/ui/TextField/TextField.styles.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/ui/Target/Target.styles.d.ts +208 -0
- package/types/components/Combobox/ComboboxNew/ui/Target/Target.styles.d.ts.map +1 -1
- package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts +208 -0
- package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts.map +1 -1
- package/types/components/Range/Range.styles.d.ts +208 -0
- package/types/components/Range/Range.styles.d.ts.map +1 -1
- package/types/components/Slider/components/Double/Double.styles.d.ts +208 -0
- package/types/components/Slider/components/Double/Double.styles.d.ts.map +1 -1
- package/types/components/TextArea/TextArea.d.ts +9 -3
- package/types/components/TextArea/TextArea.d.ts.map +1 -1
- package/types/components/TextArea/TextArea.styles.d.ts +8 -0
- package/types/components/TextArea/TextArea.styles.d.ts.map +1 -1
- package/types/components/TextArea/TextArea.tokens.d.ts +35 -0
- package/types/components/TextArea/TextArea.tokens.d.ts.map +1 -1
- package/types/components/TextArea/TextArea.types.d.ts +87 -3
- package/types/components/TextArea/TextArea.types.d.ts.map +1 -1
- package/types/components/TextArea/variations/_hint-size/base.d.ts +2 -0
- package/types/components/TextArea/variations/_hint-size/base.d.ts.map +1 -0
- package/types/components/TextArea/variations/_hint-view/base.d.ts +2 -0
- package/types/components/TextArea/variations/_hint-view/base.d.ts.map +1 -0
- package/types/components/TextArea/variations/_view/base.d.ts.map +1 -1
- package/types/components/TextField/TextField.d.ts +9 -3
- package/types/components/TextField/TextField.d.ts.map +1 -1
- package/types/components/TextField/TextField.styles.d.ts +8 -0
- package/types/components/TextField/TextField.styles.d.ts.map +1 -1
- package/types/components/TextField/TextField.tokens.d.ts +35 -0
- package/types/components/TextField/TextField.tokens.d.ts.map +1 -1
- package/types/components/TextField/TextField.types.d.ts +82 -2
- package/types/components/TextField/TextField.types.d.ts.map +1 -1
- package/types/components/TextField/variations/_hint-size/base.d.ts +2 -0
- package/types/components/TextField/variations/_hint-size/base.d.ts.map +1 -0
- package/types/components/TextField/variations/_hint-view/base.d.ts +2 -0
- package/types/components/TextField/variations/_hint-view/base.d.ts.map +1 -0
- package/types/components/TextField/variations/_label-placement/base.d.ts.map +1 -1
- package/types/components/TextField/variations/_read-only/base.d.ts.map +1 -1
- package/types/components/TextField/variations/_size/base.d.ts.map +1 -1
- package/types/components/TextField/variations/_view/base.d.ts.map +1 -1
- package/types/components/_Icon/Icon.assets/InfoCircleOutline.d.ts +4 -0
- package/types/components/_Icon/Icon.assets/InfoCircleOutline.d.ts.map +1 -0
- package/types/components/_Icon/Icons/IconInfoCircleOutline.d.ts +4 -0
- package/types/components/_Icon/Icons/IconInfoCircleOutline.d.ts.map +1 -0
- package/types/components/_Icon/index.d.ts +1 -0
- package/types/components/_Icon/index.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Mask/Mask.d.ts +372 -0
- package/types/examples/plasma_b2c/components/Mask/Mask.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/TextArea/TextArea.config.d.ts +9 -0
- package/types/examples/plasma_b2c/components/TextArea/TextArea.config.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/TextArea/TextArea.d.ts +351 -0
- package/types/examples/plasma_b2c/components/TextArea/TextArea.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/TextField/TextField.config.d.ts +9 -0
- package/types/examples/plasma_b2c/components/TextField/TextField.config.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/TextField/TextField.d.ts +217 -0
- package/types/examples/plasma_b2c/components/TextField/TextField.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Mask/Mask.d.ts +372 -0
- package/types/examples/plasma_web/components/Mask/Mask.d.ts.map +1 -1
- package/types/examples/plasma_web/components/TextArea/TextArea.config.d.ts +9 -0
- package/types/examples/plasma_web/components/TextArea/TextArea.config.d.ts.map +1 -1
- package/types/examples/plasma_web/components/TextArea/TextArea.d.ts +351 -0
- package/types/examples/plasma_web/components/TextArea/TextArea.d.ts.map +1 -1
- package/types/examples/plasma_web/components/TextField/TextField.config.d.ts +9 -0
- package/types/examples/plasma_web/components/TextField/TextField.config.d.ts.map +1 -1
- package/types/examples/plasma_web/components/TextField/TextField.d.ts +217 -0
- package/types/examples/plasma_web/components/TextField/TextField.d.ts.map +1 -1
- package/cjs/components/TextArea/TextArea.styles_1kzzs11.css +0 -11
- package/cjs/components/TextArea/variations/_view/base_8npjyq.css +0 -1
- package/cjs/components/TextField/TextField.styles_uponva.css +0 -15
- package/cjs/components/TextField/variations/_disabled/base_1tnjoy9.css +0 -1
- package/cjs/components/TextField/variations/_label-placement/base_6k17xp.css +0 -1
- package/cjs/components/TextField/variations/_read-only/base_8onybn.css +0 -1
- package/cjs/components/TextField/variations/_size/base_1h8l0kj.css +0 -1
- package/cjs/components/TextField/variations/_view/base_1ph5cr0.css +0 -1
- package/cjs/components/TextFieldGroup/variations/_shape/base_1e0je21.css +0 -1
- package/es/components/TextArea/TextArea.styles_1kzzs11.css +0 -11
- package/es/components/TextArea/variations/_view/base_8npjyq.css +0 -1
- package/es/components/TextField/TextField.styles_uponva.css +0 -15
- package/es/components/TextField/variations/_disabled/base_1tnjoy9.css +0 -1
- package/es/components/TextField/variations/_label-placement/base_6k17xp.css +0 -1
- package/es/components/TextField/variations/_read-only/base_8onybn.css +0 -1
- package/es/components/TextField/variations/_size/base_1h8l0kj.css +0 -1
- package/es/components/TextField/variations/_view/base_1ph5cr0.css +0 -1
- package/es/components/TextFieldGroup/variations/_shape/base_1e0je21.css +0 -1
@@ -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 {
|
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 ? <
|
108
|
-
contentRight={enableContentRight ? <
|
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 ? <
|
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
|
3
|
-
|
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,17 +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
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';
|
32
37
|
var innerPlaceholderUp = classes.innerPlaceholderUp,
|
33
38
|
focusedOuterPlaceholderColor = classes.focusedOuterPlaceholderColor,
|
34
39
|
hidePlaceHolder = classes.hidePlaceHolder,
|
@@ -38,7 +43,7 @@ var innerPlaceholderUp = classes.innerPlaceholderUp,
|
|
38
43
|
styledPlaceholder = classes.styledPlaceholder,
|
39
44
|
styledHelpers = classes.styledHelpers;
|
40
45
|
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+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgaGVscGVyVGV4dCxcbiAgICAgICAgICAgIHN0YXR1cyxcbiAgICAgICAgICAgIHJlc2l6ZSxcbiAgICAgICAgICAgIHJpZ2h0SGVscGVyLFxuICAgICAgICAgICAgbGVmdEhlbHBlcixcbiAgICAgICAgICAgIGNvbnRlbnRSaWdodCxcbiAgICAgICAgICAgIGF1dG9SZXNpemUgPSBmYWxzZSxcbiAgICAgICAgICAgIG1pbkF1dG8gPSAwLFxuICAgICAgICAgICAgbWF4QXV0byxcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQgPSAnaW5uZXInLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICByZXF1aXJlZCA9IGZhbHNlLFxuICAgICAgICAgICAgcmVxdWlyZWRQbGFjZW1lbnQgPSAncmlnaHQnLFxuICAgICAgICAgICAgb3B0aW9uYWwgPSBmYWxzZSxcbiAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICB2aWV3LFxuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBzdHlsZSxcbiAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgIHJlYWRPbmx5LFxuICAgICAgICAgICAgcm93cyxcbiAgICAgICAgICAgIGNvbHMsXG4gICAgICAgICAgICBvbkNoYW5nZSxcbiAgICAgICAgICAgIC4uLnJlc3RcbiAgICAgICAgfSA9IHByb3BzO1xuXG4gICAgICAgIGNvbnN0IFtoZWxwZXJXaWR0aCwgc2V0SGVscGVyV2lkdGhdID0gdXNlU3RhdGU8c3RyaW5nPih3aWR0aCA/IGAke3dpZHRofXJlbWAgOiAnMTAwJScpO1xuICAgICAgICBjb25zdCBbZm9jdXNlZCwgc2V0Rm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgICAgIGNvbnN0IFt1bmNvbnRyb2xsZWRWYWx1ZSwgc2V0VW5jb250cm9sbGVkVmFsdWVdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuXG4gICAgICAgIGNvbnN0IG91dGVyUmVmID0gaW5uZXJSZWYgJiYgJ2N1cnJlbnQnIGluIGlubmVyUmVmID8gaW5uZXJSZWYgOiBjcmVhdGVSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4oKTtcblxuICAgICAgICBjb25zdCBpbm5lck9wdGlvbmFsID0gcmVxdWlyZWQgPyBmYWxzZSA6IG9wdGlvbmFsO1xuICAgICAgICBjb25zdCBoYXNIZWxwZXIgPSBCb29sZWFuKGxlZnRIZWxwZXIgfHwgcmlnaHRIZWxwZXIgfHwgaGVscGVyVGV4dCk7XG4gICAgICAgIGNvbnN0IGhhc091dGVyTGFiZWwgPSBCb29sZWFuKGxhYmVsICYmIGxhYmVsUGxhY2VtZW50ID09PSAnb3V0ZXInKTtcbiAgICAgICAgY29uc3QgaGFzSW5uZXJMYWJlbCA9IEJvb2xlYW4obGFiZWwgJiYgbGFiZWxQbGFjZW1lbnQgPT09ICdpbm5lcicgJiYgc2l6ZSAhPT0gJ3hzJyk7XG4gICAgICAgIGNvbnN0IGhhc1BsYWNlaG9sZGVyT3B0aW9uYWwgPSBpbm5lck9wdGlvbmFsICYmICFoYXNPdXRlckxhYmVsO1xuXG4gICAgICAgIGNvbnN0IG92ZXJyaWRkZW5WaWV3ID0gc3RhdHVzICE9PSB1bmRlZmluZWQgPyBmYWxsYmFja1N0YXR1c01hcFtzdGF0dXNdIDogdmlldztcbiAgICAgICAgY29uc3QgdGV4dGFyZWFIZWxwZXJJZCA9IGlkID8gYCR7aWR9LWhlbHBlcmAgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGFwcGx5Q3VzdG9tV2lkdGggPSByZXNpemUgIT09ICdob3Jpem9udGFsJyAmJiByZXNpemUgIT09ICdib3RoJyAmJiAhY29scztcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJMYWJlbCA9IGhhc0lubmVyTGFiZWwgPyBsYWJlbCA6IHBsYWNlaG9sZGVyO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUGxhY2VtZW50Q2xhc3MgPSByZXF1aXJlZFBsYWNlbWVudCA9PT0gJ3JpZ2h0JyA/ICdhbGlnbi1yaWdodCAnIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHVzZVJlc2l6ZU9ic2VydmVyKG91dGVyUmVmLCAoY3VycmVudEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgd2lkdGg6IGlubGluZVdpZHRoIH0gPSBjdXJyZW50RWxlbWVudC5zdHlsZTtcblxuICAgICAgICAgICAgaWYgKGlubGluZVdpZHRoIHx8IGNvbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHdpZHRoOiBlbGVtZW50V2lkdGggfSA9IGN1cnJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIHNldEhlbHBlcldpZHRoKGAke2VsZW1lbnRXaWR0aCAvIFJPT1RfRk9OVF9TSVpFfXJlbWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB1c2VBdXRvUmVzaXplKGF1dG9SZXNpemUsIG91dGVyUmVmLCB2YWx1ZSwgbWluQXV0bywgbWF4QXV0byk7XG5cbiAgICAgICAgY29uc3Qgb25Gb2N1c0hhbmRsZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgICAgICBzZXRGb2N1c2VkKHRydWUpO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgY29uc3Qgb25CbHVySGFuZGxlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgICAgIHNldEZvY3VzZWQoZmFsc2UpO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgY29uc3Qgb25DaGFuZ2VIYW5kbGVyID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gSU5GTzog0JTQu9GPINC60YDQsNC50L3QtSDRgNC10LTQutC40YUg0LrQtdC50YHQvtCyLCDQutC+0LPQtNCwIHZhbHVlINGB0L3QsNGA0YPQttC4INC90LUg0LrQvtC90YLRgNC+0LvQuNGA0YPQtdGC0YHRj1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFVuY29udHJvbGxlZFZhbHVlKGV2ZW50Py50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPy4oZXZlbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFt2YWx1ZSwgb25DaGFuZ2VdLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGR5bmFtaWNMYWJlbENsYXNzZXMgPSBnZXREeW5hbWljTGFiZWxDbGFzc2VzKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICAgICAgcmVhZE9ubHksXG4gICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlIHx8IHVuY29udHJvbGxlZFZhbHVlIHx8IGRlZmF1bHRWYWx1ZSxcbiAgICAgICAgICAgICAgICAuLi4ocm93cyA/IHsgcm93cyB9IDogeyBhdXRvUmVzaXplIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZvY3VzZWQsXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3Qgb3B0aW9uYWxUZXh0Tm9kZSA9IGlubmVyT3B0aW9uYWwgPyAoXG4gICAgICAgICAgICA8U3R5bGVkT3B0aW9uYWxUZXh0PlxuICAgICAgICAgICAgICAgIHtCb29sZWFuKGhhc1BsYWNlaG9sZGVyT3B0aW9uYWwgPyBwbGFjZWhvbGRlckxhYmVsIDogbGFiZWwpICYmICdcXHhhMCd9XG4gICAgICAgICAgICAgICAge29wdGlvbmFsVGV4dH1cbiAgICAgICAgICAgIDwvU3R5bGVkT3B0aW9uYWxUZXh0PlxuICAgICAgICApIDogbnVsbDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFJvb3RcbiAgICAgICAgICAgICAgICB2aWV3PXtvdmVycmlkZGVuVmlld31cbiAgICAgICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGhlbHBlcldpZHRoLCAuLi5zdHlsZSB9fVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtoYXNPdXRlckxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAge3JlcXVpcmVkICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSW5kaWNhdG9yIGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5vdXRlckxhYmVsUGxhY2VtZW50LCByZXF1aXJlZFBsYWNlbWVudENsYXNzKX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9uYWxUZXh0Tm9kZX1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMYWJlbD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChzdHlsZWRDb250YWluZXIsIC4uLmR5bmFtaWNMYWJlbENsYXNzZXMpfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD17aGVscGVyV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e29uRm9jdXNIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e29uQmx1ckhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7cmVxdWlyZWQgJiYgIWhhc091dGVyTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEluZGljYXRvciBjbGFzc05hbWU9e2N4KGNsYXNzZXMuaW5uZXJMYWJlbFBsYWNlbWVudCwgcmVxdWlyZWRQbGFjZW1lbnRDbGFzcyl9IC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHtjb250ZW50UmlnaHQgJiYgPFN0eWxlZENvbnRlbnQ+e2NvbnRlbnRSaWdodH08L1N0eWxlZENvbnRlbnQ+fVxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFXcmFwcGVyIGNsYXNzTmFtZT17c3R5bGVkVGV4dEFyZWFXcmFwcGVyfSBoYXNIZWxwZXI9e2hhc0hlbHBlcn0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlZFRleHRBcmVhfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNDb250ZW50UmlnaHQ9e0Jvb2xlYW4oY29udGVudFJpZ2h0KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNIZWxwZXI9e2hhc0hlbHBlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBseUN1c3RvbVdpZHRoPXthcHBseUN1c3RvbVdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17b3V0ZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17YXV0b1Jlc2l6ZSA/IG1pbkF1dG8gOiBoZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlckxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e3RleHRhcmVhSGVscGVySWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzPXtyb3dzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHM9e2NvbHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaXplPXtyZXNpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtkZWZhdWx0VmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICB7aGFzSGVscGVyICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIZWxwZXJzIGNsYXNzTmFtZT17c3R5bGVkSGVscGVyc30gaWQ9e3RleHRhcmVhSGVscGVySWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsobGVmdEhlbHBlciB8fCBoZWxwZXJUZXh0KSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SGVscGVyPntsZWZ0SGVscGVyIHx8IGhlbHBlclRleHR9PC9TdHlsZWRMZWZ0SGVscGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3JpZ2h0SGVscGVyICYmIDxTdHlsZWRSaWdodEhlbHBlcj57cmlnaHRIZWxwZXJ9PC9TdHlsZWRSaWdodEhlbHBlcj59XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEhlbHBlcnM+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHtwbGFjZWhvbGRlckxhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRQbGFjZWhvbGRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0NvbnRlbnRSaWdodD17Qm9vbGVhbihjb250ZW50UmlnaHQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVkUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbEZvcj17aWR9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3BsYWNlaG9sZGVyTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyFoYXNPdXRlckxhYmVsICYmIG9wdGlvbmFsVGV4dE5vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICAgICAgICAgICAgPC9Sb290PlxuICAgICAgICApO1xuICAgIH0pO1xuXG5leHBvcnQgY29uc3QgdGV4dEFyZWFDb25maWcgPSB7XG4gICAgbmFtZTogJ1RleHRBcmVhJyxcbiAgICB0YWc6ICdkaXYnLFxuICAgIGxheW91dDogdGV4dEFyZWFSb290LFxuICAgIGJhc2UsXG4gICAgdmFyaWF0aW9uczoge1xuICAgICAgICBzaXplOiB7XG4gICAgICAgICAgICBjc3M6IHNpemVDU1MsXG4gICAgICAgIH0sXG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAgIGNzczogdmlld0NTUyxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzYWJsZWQ6IHtcbiAgICAgICAgICAgIGNzczogZGlzYWJsZWRDU1MsXG4gICAgICAgICAgICBhdHRyczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVhZE9ubHk6IHtcbiAgICAgICAgICAgIGF0dHJzOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgc2l6ZTogJ20nLFxuICAgICAgICB2aWV3OiAncHJpbWFyeScsXG4gICAgfSxcbn07XG4iXX0= */"));
|
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= */"));
|
42
47
|
|
43
48
|
// TODO: Удалить после отказа от старых библиотек plasma-web / plasma-b2c
|
44
49
|
var fallbackStatusMap = {
|
@@ -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,
|
@@ -104,21 +110,47 @@ export var textAreaRoot = function textAreaRoot(Root) {
|
|
104
110
|
readOnly = props.readOnly,
|
105
111
|
rows = props.rows,
|
106
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,
|
107
129
|
onChange = props.onChange,
|
108
130
|
rest = _objectWithoutProperties(props, _excluded);
|
109
|
-
var _useState = useState(
|
131
|
+
var _useState = useState(false),
|
110
132
|
_useState2 = _slicedToArray(_useState, 2),
|
111
|
-
|
112
|
-
|
113
|
-
var _useState3 = useState(
|
133
|
+
showHint = _useState2[0],
|
134
|
+
setShowHint = _useState2[1];
|
135
|
+
var _useState3 = useState(width ? "".concat(width, "rem") : '100%'),
|
114
136
|
_useState4 = _slicedToArray(_useState3, 2),
|
115
|
-
|
116
|
-
|
117
|
-
var _useState5 = useState(),
|
137
|
+
helperWidth = _useState4[0],
|
138
|
+
setHelperWidth = _useState4[1];
|
139
|
+
var _useState5 = useState(false),
|
118
140
|
_useState6 = _slicedToArray(_useState5, 2),
|
119
|
-
|
120
|
-
|
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();
|
121
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);
|
122
154
|
var innerOptional = required ? false : optional;
|
123
155
|
var hasHelper = Boolean(leftHelper || rightHelper || helperText);
|
124
156
|
var hasOuterLabel = Boolean(label && labelPlacement === 'outer');
|
@@ -129,6 +161,23 @@ export var textAreaRoot = function textAreaRoot(Root) {
|
|
129
161
|
var applyCustomWidth = resize !== 'horizontal' && resize !== 'both' && !cols;
|
130
162
|
var placeholderLabel = hasInnerLabel ? label : placeholder;
|
131
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
|
+
};
|
132
181
|
useResizeObserver(outerRef, function (currentElement) {
|
133
182
|
var inlineWidth = currentElement.style.width;
|
134
183
|
if (inlineWidth || cols) {
|
@@ -163,7 +212,7 @@ export var textAreaRoot = function textAreaRoot(Root) {
|
|
163
212
|
autoResize: autoResize
|
164
213
|
}), focused);
|
165
214
|
var optionalTextNode = innerOptional ? /*#__PURE__*/React.createElement(StyledOptionalText, null, Boolean(hasPlaceholderOptional ? placeholderLabel : label) && '\xa0', optionalText) : null;
|
166
|
-
return /*#__PURE__*/React.createElement(Root, {
|
215
|
+
return /*#__PURE__*/React.createElement(Root, _extends({
|
167
216
|
view: overriddenView,
|
168
217
|
size: size,
|
169
218
|
disabled: disabled,
|
@@ -172,16 +221,67 @@ export var textAreaRoot = function textAreaRoot(Root) {
|
|
172
221
|
width: helperWidth
|
173
222
|
}, style),
|
174
223
|
className: className
|
175
|
-
},
|
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, {
|
176
252
|
className: cx(classes.outerLabelPlacement, requiredPlacementClass)
|
177
|
-
}),
|
253
|
+
}), optionalTextNode), titleCaption && /*#__PURE__*/React.createElement(TitleCaption, null, titleCaption)), /*#__PURE__*/React.createElement(StyledContainer, {
|
178
254
|
className: cx.apply(void 0, [styledContainer].concat(_toConsumableArray(dynamicLabelClasses))),
|
179
255
|
width: helperWidth,
|
180
256
|
onFocus: onFocusHandler,
|
181
257
|
onBlur: onBlurHandler
|
182
|
-
},
|
258
|
+
}, !hasOuterLabel && /*#__PURE__*/React.createElement(React.Fragment, null, required && /*#__PURE__*/React.createElement(StyledIndicator, {
|
183
259
|
className: cx(classes.innerLabelPlacement, requiredPlacementClass)
|
184
|
-
}),
|
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, {
|
185
285
|
className: styledTextAreaWrapper,
|
186
286
|
hasHelper: hasHelper
|
187
287
|
}, /*#__PURE__*/React.createElement(StyledTextArea, _extends({
|
@@ -231,6 +331,12 @@ export var textAreaConfig = {
|
|
231
331
|
},
|
232
332
|
readOnly: {
|
233
333
|
attrs: true
|
334
|
+
},
|
335
|
+
hintView: {
|
336
|
+
css: hintViewCSS
|
337
|
+
},
|
338
|
+
hintSize: {
|
339
|
+
css: hintSizeCSS
|
234
340
|
}
|
235
341
|
},
|
236
342
|
defaults: {
|