@salutejs/plasma-new-hope 0.267.0-dev.0 → 0.267.1-canary.1777.13369684944.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (19) hide show
  1. package/cjs/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.js +8 -1
  2. package/cjs/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.js.map +1 -1
  3. package/cjs/components/Select/ui/SelectNative/SelectNative.js +8 -1
  4. package/cjs/components/Select/ui/SelectNative/SelectNative.js.map +1 -1
  5. package/emotion/cjs/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.js +8 -1
  6. package/emotion/cjs/components/Select/ui/SelectNative/SelectNative.js +8 -1
  7. package/emotion/es/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.js +8 -1
  8. package/emotion/es/components/Select/ui/SelectNative/SelectNative.js +8 -1
  9. package/es/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.js +8 -1
  10. package/es/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.js.map +1 -1
  11. package/es/components/Select/ui/SelectNative/SelectNative.js +8 -1
  12. package/es/components/Select/ui/SelectNative/SelectNative.js.map +1 -1
  13. package/package.json +2 -2
  14. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.js +8 -1
  15. package/styled-components/cjs/components/Select/ui/SelectNative/SelectNative.js +8 -1
  16. package/styled-components/es/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.js +8 -1
  17. package/styled-components/es/components/Select/ui/SelectNative/SelectNative.js +8 -1
  18. package/types/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.d.ts.map +1 -1
  19. package/types/components/Select/ui/SelectNative/SelectNative.d.ts.map +1 -1
@@ -11,6 +11,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
 
12
12
  var React__default = /*#__PURE__*/_interopDefault(React);
13
13
 
14
+ var _option;
14
15
  var SelectNative = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
15
16
  var name = _ref.name,
16
17
  multiple = _ref.multiple,
@@ -44,13 +45,19 @@ var SelectNative = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
44
45
  onChange(event);
45
46
  }
46
47
  }, [values]);
48
+
49
+ //
50
+ // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,
51
+ // если нет изначального значения
52
+ //
53
+
47
54
  return /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, /*#__PURE__*/React__default.default.createElement(SelectNative_styles.SelectHidden, {
48
55
  ref: forkRef,
49
56
  multiple: multiple,
50
57
  name: name,
51
58
  hidden: true,
52
59
  value: multiple ? values : values[0]
53
- }, options.map(function (v) {
60
+ }, _option || (_option = /*#__PURE__*/React__default.default.createElement("option", null, " ")), options.map(function (v) {
54
61
  return /*#__PURE__*/React__default.default.createElement("option", {
55
62
  key: v,
56
63
  value: v
@@ -1 +1 @@
1
- {"version":3,"file":"SelectNative.js","sources":["../../../../../../src/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.tsx"],"sourcesContent":["import React, { ChangeEvent, forwardRef, useLayoutEffect, useRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { createEvent } from '../../../../../utils';\nimport { ComboboxProps } from '../../Combobox.types';\nimport { ValueToItemMapType } from '../../hooks/getPathMaps';\n\nimport { SelectHidden } from './SelectNative.styles';\n\ntype Props = Pick<ComboboxProps, 'name' | 'value' | 'multiple'> & {\n onChange: (value: ChangeEvent<HTMLSelectElement> | null) => void;\n onSetValue: (value: string | string[]) => void;\n items: ValueToItemMapType;\n};\n\nexport const SelectNative = forwardRef<HTMLInputElement, Props>(\n ({ name, multiple, items, value, onChange, onSetValue }, ref) => {\n const values = (multiple ? value : [value]) as string[];\n const selectRef = useRef<HTMLSelectElement>(null);\n const forkRef = useForkRef(selectRef, ref as any);\n const options = Array.from(items.keys());\n\n useLayoutEffect(() => {\n if (selectRef.current && !multiple) {\n const valueInit = selectRef.current.value;\n\n if (valueInit) {\n onSetValue(valueInit);\n }\n }\n\n if (selectRef.current && multiple) {\n const valuesInit = Array.from(selectRef.current.selectedOptions).map((v) => v.value);\n if (valuesInit.length !== 0) {\n onSetValue(valuesInit);\n }\n }\n }, []);\n\n useLayoutEffect(() => {\n const event = createEvent(selectRef);\n if (onChange) {\n onChange(event);\n }\n }, [values]);\n\n return (\n <>\n <SelectHidden\n ref={forkRef}\n multiple={multiple}\n name={name}\n hidden\n value={multiple ? values : values[0]}\n >\n {options.map((v) => (\n <option key={v} value={v}>\n {v}\n </option>\n ))}\n </SelectHidden>\n </>\n );\n },\n);\n"],"names":["SelectNative","forwardRef","_ref","ref","name","multiple","items","value","onChange","onSetValue","values","selectRef","useRef","forkRef","useForkRef","options","Array","from","keys","useLayoutEffect","current","valueInit","valuesInit","selectedOptions","map","v","length","event","createEvent","React","createElement","Fragment","SelectHidden","hidden","key"],"mappings":";;;;;;;;;;;;;AAeO,IAAMA,YAAY,gBAAGC,gBAAU,CAClC,UAAAC,IAAA,EAAyDC,GAAG,EAAK;AAAA,EAAA,IAA9DC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,KAAK,GAAAL,IAAA,CAALK,KAAK;IAAEC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IAAEC,UAAU,GAAAP,IAAA,CAAVO,UAAU,CAAA;EACjD,IAAMC,MAAM,GAAIL,QAAQ,GAAGE,KAAK,GAAG,CAACA,KAAK,CAAc,CAAA;AACvD,EAAA,IAAMI,SAAS,GAAGC,YAAM,CAAoB,IAAI,CAAC,CAAA;AACjD,EAAA,IAAMC,OAAO,GAAGC,qBAAU,CAACH,SAAS,EAAER,GAAU,CAAC,CAAA;EACjD,IAAMY,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACX,KAAK,CAACY,IAAI,EAAE,CAAC,CAAA;AAExCC,EAAAA,qBAAe,CAAC,YAAM;AAClB,IAAA,IAAIR,SAAS,CAACS,OAAO,IAAI,CAACf,QAAQ,EAAE;AAChC,MAAA,IAAMgB,SAAS,GAAGV,SAAS,CAACS,OAAO,CAACb,KAAK,CAAA;AAEzC,MAAA,IAAIc,SAAS,EAAE;QACXZ,UAAU,CAACY,SAAS,CAAC,CAAA;AACzB,OAAA;AACJ,KAAA;AAEA,IAAA,IAAIV,SAAS,CAACS,OAAO,IAAIf,QAAQ,EAAE;AAC/B,MAAA,IAAMiB,UAAU,GAAGN,KAAK,CAACC,IAAI,CAACN,SAAS,CAACS,OAAO,CAACG,eAAe,CAAC,CAACC,GAAG,CAAC,UAACC,CAAC,EAAA;QAAA,OAAKA,CAAC,CAAClB,KAAK,CAAA;OAAC,CAAA,CAAA;AACpF,MAAA,IAAIe,UAAU,CAACI,MAAM,KAAK,CAAC,EAAE;QACzBjB,UAAU,CAACa,UAAU,CAAC,CAAA;AAC1B,OAAA;AACJ,KAAA;GACH,EAAE,EAAE,CAAC,CAAA;AAENH,EAAAA,qBAAe,CAAC,YAAM;AAClB,IAAA,IAAMQ,KAAK,GAAGC,uBAAW,CAACjB,SAAS,CAAC,CAAA;AACpC,IAAA,IAAIH,QAAQ,EAAE;MACVA,QAAQ,CAACmB,KAAK,CAAC,CAAA;AACnB,KAAA;AACJ,GAAC,EAAE,CAACjB,MAAM,CAAC,CAAC,CAAA;AAEZ,EAAA,oBACImB,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAE,QAAA,EAAA,IAAA,eACIF,sBAAA,CAAAC,aAAA,CAACE,gCAAY,EAAA;AACT7B,IAAAA,GAAG,EAAEU,OAAQ;AACbR,IAAAA,QAAQ,EAAEA,QAAS;AACnBD,IAAAA,IAAI,EAAEA,IAAK;IACX6B,MAAM,EAAA,IAAA;AACN1B,IAAAA,KAAK,EAAEF,QAAQ,GAAGK,MAAM,GAAGA,MAAM,CAAC,CAAC,CAAA;AAAE,GAAA,EAEpCK,OAAO,CAACS,GAAG,CAAC,UAACC,CAAC,EAAA;IAAA,oBACXI,sBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQI,MAAAA,GAAG,EAAET,CAAE;AAAClB,MAAAA,KAAK,EAAEkB,CAAAA;AAAE,KAAA,EACpBA,CACG,CAAC,CAAA;GACZ,CACS,CAChB,CAAC,CAAA;AAEX,CACJ;;;;"}
1
+ {"version":3,"file":"SelectNative.js","sources":["../../../../../../src/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.tsx"],"sourcesContent":["import React, { ChangeEvent, forwardRef, useLayoutEffect, useRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { createEvent } from '../../../../../utils';\nimport { ComboboxProps } from '../../Combobox.types';\nimport { ValueToItemMapType } from '../../hooks/getPathMaps';\n\nimport { SelectHidden } from './SelectNative.styles';\n\ntype Props = Pick<ComboboxProps, 'name' | 'value' | 'multiple'> & {\n onChange: (value: ChangeEvent<HTMLSelectElement> | null) => void;\n onSetValue: (value: string | string[]) => void;\n items: ValueToItemMapType;\n};\n\nexport const SelectNative = forwardRef<HTMLInputElement, Props>(\n ({ name, multiple, items, value, onChange, onSetValue }, ref) => {\n const values = (multiple ? value : [value]) as string[];\n const selectRef = useRef<HTMLSelectElement>(null);\n const forkRef = useForkRef(selectRef, ref as any);\n const options = Array.from(items.keys());\n\n useLayoutEffect(() => {\n if (selectRef.current && !multiple) {\n const valueInit = selectRef.current.value;\n\n if (valueInit) {\n onSetValue(valueInit);\n }\n }\n\n if (selectRef.current && multiple) {\n const valuesInit = Array.from(selectRef.current.selectedOptions).map((v) => v.value);\n if (valuesInit.length !== 0) {\n onSetValue(valuesInit);\n }\n }\n }, []);\n\n useLayoutEffect(() => {\n const event = createEvent(selectRef);\n if (onChange) {\n onChange(event);\n }\n }, [values]);\n\n //\n // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,\n // если нет изначального значения\n //\n\n return (\n <>\n <SelectHidden\n ref={forkRef}\n multiple={multiple}\n name={name}\n hidden\n value={multiple ? values : values[0]}\n >\n <option> </option>\n {options.map((v) => (\n <option key={v} value={v}>\n {v}\n </option>\n ))}\n </SelectHidden>\n </>\n );\n },\n);\n"],"names":["SelectNative","forwardRef","_ref","ref","name","multiple","items","value","onChange","onSetValue","values","selectRef","useRef","forkRef","useForkRef","options","Array","from","keys","useLayoutEffect","current","valueInit","valuesInit","selectedOptions","map","v","length","event","createEvent","React","createElement","Fragment","SelectHidden","hidden","_option","key"],"mappings":";;;;;;;;;;;;;;AAeO,IAAMA,YAAY,gBAAGC,gBAAU,CAClC,UAAAC,IAAA,EAAyDC,GAAG,EAAK;AAAA,EAAA,IAA9DC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,KAAK,GAAAL,IAAA,CAALK,KAAK;IAAEC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IAAEC,UAAU,GAAAP,IAAA,CAAVO,UAAU,CAAA;EACjD,IAAMC,MAAM,GAAIL,QAAQ,GAAGE,KAAK,GAAG,CAACA,KAAK,CAAc,CAAA;AACvD,EAAA,IAAMI,SAAS,GAAGC,YAAM,CAAoB,IAAI,CAAC,CAAA;AACjD,EAAA,IAAMC,OAAO,GAAGC,qBAAU,CAACH,SAAS,EAAER,GAAU,CAAC,CAAA;EACjD,IAAMY,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACX,KAAK,CAACY,IAAI,EAAE,CAAC,CAAA;AAExCC,EAAAA,qBAAe,CAAC,YAAM;AAClB,IAAA,IAAIR,SAAS,CAACS,OAAO,IAAI,CAACf,QAAQ,EAAE;AAChC,MAAA,IAAMgB,SAAS,GAAGV,SAAS,CAACS,OAAO,CAACb,KAAK,CAAA;AAEzC,MAAA,IAAIc,SAAS,EAAE;QACXZ,UAAU,CAACY,SAAS,CAAC,CAAA;AACzB,OAAA;AACJ,KAAA;AAEA,IAAA,IAAIV,SAAS,CAACS,OAAO,IAAIf,QAAQ,EAAE;AAC/B,MAAA,IAAMiB,UAAU,GAAGN,KAAK,CAACC,IAAI,CAACN,SAAS,CAACS,OAAO,CAACG,eAAe,CAAC,CAACC,GAAG,CAAC,UAACC,CAAC,EAAA;QAAA,OAAKA,CAAC,CAAClB,KAAK,CAAA;OAAC,CAAA,CAAA;AACpF,MAAA,IAAIe,UAAU,CAACI,MAAM,KAAK,CAAC,EAAE;QACzBjB,UAAU,CAACa,UAAU,CAAC,CAAA;AAC1B,OAAA;AACJ,KAAA;GACH,EAAE,EAAE,CAAC,CAAA;AAENH,EAAAA,qBAAe,CAAC,YAAM;AAClB,IAAA,IAAMQ,KAAK,GAAGC,uBAAW,CAACjB,SAAS,CAAC,CAAA;AACpC,IAAA,IAAIH,QAAQ,EAAE;MACVA,QAAQ,CAACmB,KAAK,CAAC,CAAA;AACnB,KAAA;AACJ,GAAC,EAAE,CAACjB,MAAM,CAAC,CAAC,CAAA;;AAEZ;AACA;AACA;AACA;;AAEA,EAAA,oBACImB,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAE,QAAA,EAAA,IAAA,eACIF,sBAAA,CAAAC,aAAA,CAACE,gCAAY,EAAA;AACT7B,IAAAA,GAAG,EAAEU,OAAQ;AACbR,IAAAA,QAAQ,EAAEA,QAAS;AACnBD,IAAAA,IAAI,EAAEA,IAAK;IACX6B,MAAM,EAAA,IAAA;AACN1B,IAAAA,KAAK,EAAEF,QAAQ,GAAGK,MAAM,GAAGA,MAAM,CAAC,CAAC,CAAA;AAAE,GAAA,EAAAwB,OAAA,KAAAA,OAAA,gBAErCL,sBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA,IAAA,EAAQ,GAAS,CAAC,GACjBf,OAAO,CAACS,GAAG,CAAC,UAACC,CAAC,EAAA;IAAA,oBACXI,sBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQK,MAAAA,GAAG,EAAEV,CAAE;AAAClB,MAAAA,KAAK,EAAEkB,CAAAA;AAAE,KAAA,EACpBA,CACG,CAAC,CAAA;GACZ,CACS,CAChB,CAAC,CAAA;AAEX,CACJ;;;;"}
@@ -11,6 +11,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
 
12
12
  var React__default = /*#__PURE__*/_interopDefault(React);
13
13
 
14
+ var _option;
14
15
  var SelectNative = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
15
16
  var name = _ref.name,
16
17
  multiselect = _ref.multiselect,
@@ -44,13 +45,19 @@ var SelectNative = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
44
45
  onChange(event);
45
46
  }
46
47
  }, [values]);
48
+
49
+ //
50
+ // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,
51
+ // если нет изначального значения
52
+ //
53
+
47
54
  return /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, /*#__PURE__*/React__default.default.createElement(SelectNative_styles.SelectHidden, {
48
55
  ref: forkRef,
49
56
  multiple: multiselect,
50
57
  name: name,
51
58
  hidden: true,
52
59
  value: multiselect ? values : values[0]
53
- }, options.map(function (v) {
60
+ }, _option || (_option = /*#__PURE__*/React__default.default.createElement("option", null, " ")), options.map(function (v) {
54
61
  return /*#__PURE__*/React__default.default.createElement("option", {
55
62
  key: v,
56
63
  value: v
@@ -1 +1 @@
1
- {"version":3,"file":"SelectNative.js","sources":["../../../../../src/components/Select/ui/SelectNative/SelectNative.tsx"],"sourcesContent":["import React, { ChangeEvent, forwardRef, useLayoutEffect, useRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { createEvent } from '../../../../utils';\nimport { SelectProps } from '../../Select.types';\nimport { ValueToItemMapType } from '../../hooks/usePathMaps';\n\nimport { SelectHidden } from './SelectNative.styles';\n\ntype Props = Pick<SelectProps, 'name' | 'multiselect'> & {\n onChange: (newValue: ChangeEvent<HTMLSelectElement> | null) => void;\n onSetValue: (value: string | string[]) => void;\n items: ValueToItemMapType;\n value: string | number | Array<string | number>;\n};\n\nexport const SelectNative = forwardRef<HTMLButtonElement, Props>(\n ({ name, multiselect, items, value, onChange, onSetValue }, ref) => {\n const values = (multiselect ? value : [value]) as string[];\n const selectRef = useRef<HTMLSelectElement>(null);\n const forkRef = useForkRef(selectRef, ref as any);\n const options = Array.from(items.keys());\n\n useLayoutEffect(() => {\n if (selectRef.current && !multiselect) {\n const valueInit = selectRef.current.value;\n\n if (valueInit) {\n onSetValue(valueInit);\n }\n }\n\n if (selectRef.current && multiselect) {\n const valuesInit = Array.from(selectRef.current.selectedOptions).map((v) => v.value);\n if (valuesInit.length !== 0) {\n onSetValue(valuesInit);\n }\n }\n }, []);\n\n useLayoutEffect(() => {\n const event = createEvent(selectRef);\n if (onChange) {\n onChange(event);\n }\n }, [values]);\n\n return (\n <>\n <SelectHidden\n ref={forkRef}\n multiple={multiselect}\n name={name}\n hidden\n value={multiselect ? values : values[0]}\n >\n {options.map((v) => (\n <option key={v} value={v}>\n {v}\n </option>\n ))}\n </SelectHidden>\n </>\n );\n },\n);\n"],"names":["SelectNative","forwardRef","_ref","ref","name","multiselect","items","value","onChange","onSetValue","values","selectRef","useRef","forkRef","useForkRef","options","Array","from","keys","useLayoutEffect","current","valueInit","valuesInit","selectedOptions","map","v","length","event","createEvent","React","createElement","Fragment","SelectHidden","multiple","hidden","key"],"mappings":";;;;;;;;;;;;;AAgBO,IAAMA,YAAY,gBAAGC,gBAAU,CAClC,UAAAC,IAAA,EAA4DC,GAAG,EAAK;AAAA,EAAA,IAAjEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,KAAK,GAAAL,IAAA,CAALK,KAAK;IAAEC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IAAEC,UAAU,GAAAP,IAAA,CAAVO,UAAU,CAAA;EACpD,IAAMC,MAAM,GAAIL,WAAW,GAAGE,KAAK,GAAG,CAACA,KAAK,CAAc,CAAA;AAC1D,EAAA,IAAMI,SAAS,GAAGC,YAAM,CAAoB,IAAI,CAAC,CAAA;AACjD,EAAA,IAAMC,OAAO,GAAGC,qBAAU,CAACH,SAAS,EAAER,GAAU,CAAC,CAAA;EACjD,IAAMY,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACX,KAAK,CAACY,IAAI,EAAE,CAAC,CAAA;AAExCC,EAAAA,qBAAe,CAAC,YAAM;AAClB,IAAA,IAAIR,SAAS,CAACS,OAAO,IAAI,CAACf,WAAW,EAAE;AACnC,MAAA,IAAMgB,SAAS,GAAGV,SAAS,CAACS,OAAO,CAACb,KAAK,CAAA;AAEzC,MAAA,IAAIc,SAAS,EAAE;QACXZ,UAAU,CAACY,SAAS,CAAC,CAAA;AACzB,OAAA;AACJ,KAAA;AAEA,IAAA,IAAIV,SAAS,CAACS,OAAO,IAAIf,WAAW,EAAE;AAClC,MAAA,IAAMiB,UAAU,GAAGN,KAAK,CAACC,IAAI,CAACN,SAAS,CAACS,OAAO,CAACG,eAAe,CAAC,CAACC,GAAG,CAAC,UAACC,CAAC,EAAA;QAAA,OAAKA,CAAC,CAAClB,KAAK,CAAA;OAAC,CAAA,CAAA;AACpF,MAAA,IAAIe,UAAU,CAACI,MAAM,KAAK,CAAC,EAAE;QACzBjB,UAAU,CAACa,UAAU,CAAC,CAAA;AAC1B,OAAA;AACJ,KAAA;GACH,EAAE,EAAE,CAAC,CAAA;AAENH,EAAAA,qBAAe,CAAC,YAAM;AAClB,IAAA,IAAMQ,KAAK,GAAGC,uBAAW,CAACjB,SAAS,CAAC,CAAA;AACpC,IAAA,IAAIH,QAAQ,EAAE;MACVA,QAAQ,CAACmB,KAAK,CAAC,CAAA;AACnB,KAAA;AACJ,GAAC,EAAE,CAACjB,MAAM,CAAC,CAAC,CAAA;AAEZ,EAAA,oBACImB,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAE,QAAA,EAAA,IAAA,eACIF,sBAAA,CAAAC,aAAA,CAACE,gCAAY,EAAA;AACT7B,IAAAA,GAAG,EAAEU,OAAQ;AACboB,IAAAA,QAAQ,EAAE5B,WAAY;AACtBD,IAAAA,IAAI,EAAEA,IAAK;IACX8B,MAAM,EAAA,IAAA;AACN3B,IAAAA,KAAK,EAAEF,WAAW,GAAGK,MAAM,GAAGA,MAAM,CAAC,CAAC,CAAA;AAAE,GAAA,EAEvCK,OAAO,CAACS,GAAG,CAAC,UAACC,CAAC,EAAA;IAAA,oBACXI,sBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQK,MAAAA,GAAG,EAAEV,CAAE;AAAClB,MAAAA,KAAK,EAAEkB,CAAAA;AAAE,KAAA,EACpBA,CACG,CAAC,CAAA;GACZ,CACS,CAChB,CAAC,CAAA;AAEX,CACJ;;;;"}
1
+ {"version":3,"file":"SelectNative.js","sources":["../../../../../src/components/Select/ui/SelectNative/SelectNative.tsx"],"sourcesContent":["import React, { ChangeEvent, forwardRef, useLayoutEffect, useRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { createEvent } from '../../../../utils';\nimport { SelectProps } from '../../Select.types';\nimport { ValueToItemMapType } from '../../hooks/usePathMaps';\n\nimport { SelectHidden } from './SelectNative.styles';\n\ntype Props = Pick<SelectProps, 'name' | 'multiselect'> & {\n onChange: (newValue: ChangeEvent<HTMLSelectElement> | null) => void;\n onSetValue: (value: string | string[]) => void;\n items: ValueToItemMapType;\n value: string | number | Array<string | number>;\n};\n\nexport const SelectNative = forwardRef<HTMLButtonElement, Props>(\n ({ name, multiselect, items, value, onChange, onSetValue }, ref) => {\n const values = (multiselect ? value : [value]) as string[];\n const selectRef = useRef<HTMLSelectElement>(null);\n const forkRef = useForkRef(selectRef, ref as any);\n const options = Array.from(items.keys());\n\n useLayoutEffect(() => {\n if (selectRef.current && !multiselect) {\n const valueInit = selectRef.current.value;\n\n if (valueInit) {\n onSetValue(valueInit);\n }\n }\n\n if (selectRef.current && multiselect) {\n const valuesInit = Array.from(selectRef.current.selectedOptions).map((v) => v.value);\n if (valuesInit.length !== 0) {\n onSetValue(valuesInit);\n }\n }\n }, []);\n\n useLayoutEffect(() => {\n const event = createEvent(selectRef);\n if (onChange) {\n onChange(event);\n }\n }, [values]);\n\n //\n // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,\n // если нет изначального значения\n //\n\n return (\n <>\n <SelectHidden\n ref={forkRef}\n multiple={multiselect}\n name={name}\n hidden\n value={multiselect ? values : values[0]}\n >\n <option> </option>\n {options.map((v) => (\n <option key={v} value={v}>\n {v}\n </option>\n ))}\n </SelectHidden>\n </>\n );\n },\n);\n"],"names":["SelectNative","forwardRef","_ref","ref","name","multiselect","items","value","onChange","onSetValue","values","selectRef","useRef","forkRef","useForkRef","options","Array","from","keys","useLayoutEffect","current","valueInit","valuesInit","selectedOptions","map","v","length","event","createEvent","React","createElement","Fragment","SelectHidden","multiple","hidden","_option","key"],"mappings":";;;;;;;;;;;;;;AAgBO,IAAMA,YAAY,gBAAGC,gBAAU,CAClC,UAAAC,IAAA,EAA4DC,GAAG,EAAK;AAAA,EAAA,IAAjEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,KAAK,GAAAL,IAAA,CAALK,KAAK;IAAEC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IAAEC,UAAU,GAAAP,IAAA,CAAVO,UAAU,CAAA;EACpD,IAAMC,MAAM,GAAIL,WAAW,GAAGE,KAAK,GAAG,CAACA,KAAK,CAAc,CAAA;AAC1D,EAAA,IAAMI,SAAS,GAAGC,YAAM,CAAoB,IAAI,CAAC,CAAA;AACjD,EAAA,IAAMC,OAAO,GAAGC,qBAAU,CAACH,SAAS,EAAER,GAAU,CAAC,CAAA;EACjD,IAAMY,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACX,KAAK,CAACY,IAAI,EAAE,CAAC,CAAA;AAExCC,EAAAA,qBAAe,CAAC,YAAM;AAClB,IAAA,IAAIR,SAAS,CAACS,OAAO,IAAI,CAACf,WAAW,EAAE;AACnC,MAAA,IAAMgB,SAAS,GAAGV,SAAS,CAACS,OAAO,CAACb,KAAK,CAAA;AAEzC,MAAA,IAAIc,SAAS,EAAE;QACXZ,UAAU,CAACY,SAAS,CAAC,CAAA;AACzB,OAAA;AACJ,KAAA;AAEA,IAAA,IAAIV,SAAS,CAACS,OAAO,IAAIf,WAAW,EAAE;AAClC,MAAA,IAAMiB,UAAU,GAAGN,KAAK,CAACC,IAAI,CAACN,SAAS,CAACS,OAAO,CAACG,eAAe,CAAC,CAACC,GAAG,CAAC,UAACC,CAAC,EAAA;QAAA,OAAKA,CAAC,CAAClB,KAAK,CAAA;OAAC,CAAA,CAAA;AACpF,MAAA,IAAIe,UAAU,CAACI,MAAM,KAAK,CAAC,EAAE;QACzBjB,UAAU,CAACa,UAAU,CAAC,CAAA;AAC1B,OAAA;AACJ,KAAA;GACH,EAAE,EAAE,CAAC,CAAA;AAENH,EAAAA,qBAAe,CAAC,YAAM;AAClB,IAAA,IAAMQ,KAAK,GAAGC,uBAAW,CAACjB,SAAS,CAAC,CAAA;AACpC,IAAA,IAAIH,QAAQ,EAAE;MACVA,QAAQ,CAACmB,KAAK,CAAC,CAAA;AACnB,KAAA;AACJ,GAAC,EAAE,CAACjB,MAAM,CAAC,CAAC,CAAA;;AAEZ;AACA;AACA;AACA;;AAEA,EAAA,oBACImB,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAE,QAAA,EAAA,IAAA,eACIF,sBAAA,CAAAC,aAAA,CAACE,gCAAY,EAAA;AACT7B,IAAAA,GAAG,EAAEU,OAAQ;AACboB,IAAAA,QAAQ,EAAE5B,WAAY;AACtBD,IAAAA,IAAI,EAAEA,IAAK;IACX8B,MAAM,EAAA,IAAA;AACN3B,IAAAA,KAAK,EAAEF,WAAW,GAAGK,MAAM,GAAGA,MAAM,CAAC,CAAC,CAAA;AAAE,GAAA,EAAAyB,OAAA,KAAAA,OAAA,gBAExCN,sBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA,IAAA,EAAQ,GAAS,CAAC,GACjBf,OAAO,CAACS,GAAG,CAAC,UAACC,CAAC,EAAA;IAAA,oBACXI,sBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQM,MAAAA,GAAG,EAAEX,CAAE;AAAClB,MAAAA,KAAK,EAAEkB,CAAAA;AAAE,KAAA,EACpBA,CACG,CAAC,CAAA;GACZ,CACS,CAChB,CAAC,CAAA;AAEX,CACJ;;;;"}
@@ -9,6 +9,7 @@ var _react = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("react")
9
9
  var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
10
10
  var _utils = /*#__PURE__*/require("../../../../../utils");
11
11
  var _SelectNative = /*#__PURE__*/require("./SelectNative.styles");
12
+ var _option;
12
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
15
  var SelectNative = exports.SelectNative = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
@@ -44,13 +45,19 @@ var SelectNative = exports.SelectNative = /*#__PURE__*/(0, _react.forwardRef)(fu
44
45
  onChange(event);
45
46
  }
46
47
  }, [values]);
48
+
49
+ //
50
+ // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,
51
+ // если нет изначального значения
52
+ //
53
+
47
54
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_SelectNative.SelectHidden, {
48
55
  ref: forkRef,
49
56
  multiple: multiple,
50
57
  name: name,
51
58
  hidden: true,
52
59
  value: multiple ? values : values[0]
53
- }, options.map(function (v) {
60
+ }, _option || (_option = /*#__PURE__*/_react["default"].createElement("option", null, " ")), options.map(function (v) {
54
61
  return /*#__PURE__*/_react["default"].createElement("option", {
55
62
  key: v,
56
63
  value: v
@@ -9,6 +9,7 @@ var _react = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("react")
9
9
  var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
10
10
  var _utils = /*#__PURE__*/require("../../../../utils");
11
11
  var _SelectNative = /*#__PURE__*/require("./SelectNative.styles");
12
+ var _option;
12
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
15
  var SelectNative = exports.SelectNative = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
@@ -44,13 +45,19 @@ var SelectNative = exports.SelectNative = /*#__PURE__*/(0, _react.forwardRef)(fu
44
45
  onChange(event);
45
46
  }
46
47
  }, [values]);
48
+
49
+ //
50
+ // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,
51
+ // если нет изначального значения
52
+ //
53
+
47
54
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_SelectNative.SelectHidden, {
48
55
  ref: forkRef,
49
56
  multiple: multiselect,
50
57
  name: name,
51
58
  hidden: true,
52
59
  value: multiselect ? values : values[0]
53
- }, options.map(function (v) {
60
+ }, _option || (_option = /*#__PURE__*/_react["default"].createElement("option", null, " ")), options.map(function (v) {
54
61
  return /*#__PURE__*/_react["default"].createElement("option", {
55
62
  key: v,
56
63
  value: v
@@ -1,3 +1,4 @@
1
+ var _option;
1
2
  import React, { forwardRef, useLayoutEffect, useRef } from 'react';
2
3
  import { useForkRef } from '@salutejs/plasma-core';
3
4
  import { createEvent } from '../../../../../utils';
@@ -35,13 +36,19 @@ export var SelectNative = /*#__PURE__*/forwardRef(function (_ref, ref) {
35
36
  onChange(event);
36
37
  }
37
38
  }, [values]);
39
+
40
+ //
41
+ // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,
42
+ // если нет изначального значения
43
+ //
44
+
38
45
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SelectHidden, {
39
46
  ref: forkRef,
40
47
  multiple: multiple,
41
48
  name: name,
42
49
  hidden: true,
43
50
  value: multiple ? values : values[0]
44
- }, options.map(function (v) {
51
+ }, _option || (_option = /*#__PURE__*/React.createElement("option", null, " ")), options.map(function (v) {
45
52
  return /*#__PURE__*/React.createElement("option", {
46
53
  key: v,
47
54
  value: v
@@ -1,3 +1,4 @@
1
+ var _option;
1
2
  import React, { forwardRef, useLayoutEffect, useRef } from 'react';
2
3
  import { useForkRef } from '@salutejs/plasma-core';
3
4
  import { createEvent } from '../../../../utils';
@@ -35,13 +36,19 @@ export var SelectNative = /*#__PURE__*/forwardRef(function (_ref, ref) {
35
36
  onChange(event);
36
37
  }
37
38
  }, [values]);
39
+
40
+ //
41
+ // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,
42
+ // если нет изначального значения
43
+ //
44
+
38
45
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SelectHidden, {
39
46
  ref: forkRef,
40
47
  multiple: multiselect,
41
48
  name: name,
42
49
  hidden: true,
43
50
  value: multiselect ? values : values[0]
44
- }, options.map(function (v) {
51
+ }, _option || (_option = /*#__PURE__*/React.createElement("option", null, " ")), options.map(function (v) {
45
52
  return /*#__PURE__*/React.createElement("option", {
46
53
  key: v,
47
54
  value: v
@@ -3,6 +3,7 @@ import { useForkRef } from '@salutejs/plasma-core';
3
3
  import { SelectHidden } from './SelectNative.styles.js';
4
4
  import { createEvent } from '../../../../../utils/createEvent.js';
5
5
 
6
+ var _option;
6
7
  var SelectNative = /*#__PURE__*/forwardRef(function (_ref, ref) {
7
8
  var name = _ref.name,
8
9
  multiple = _ref.multiple,
@@ -36,13 +37,19 @@ var SelectNative = /*#__PURE__*/forwardRef(function (_ref, ref) {
36
37
  onChange(event);
37
38
  }
38
39
  }, [values]);
40
+
41
+ //
42
+ // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,
43
+ // если нет изначального значения
44
+ //
45
+
39
46
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SelectHidden, {
40
47
  ref: forkRef,
41
48
  multiple: multiple,
42
49
  name: name,
43
50
  hidden: true,
44
51
  value: multiple ? values : values[0]
45
- }, options.map(function (v) {
52
+ }, _option || (_option = /*#__PURE__*/React.createElement("option", null, " ")), options.map(function (v) {
46
53
  return /*#__PURE__*/React.createElement("option", {
47
54
  key: v,
48
55
  value: v
@@ -1 +1 @@
1
- {"version":3,"file":"SelectNative.js","sources":["../../../../../../src/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.tsx"],"sourcesContent":["import React, { ChangeEvent, forwardRef, useLayoutEffect, useRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { createEvent } from '../../../../../utils';\nimport { ComboboxProps } from '../../Combobox.types';\nimport { ValueToItemMapType } from '../../hooks/getPathMaps';\n\nimport { SelectHidden } from './SelectNative.styles';\n\ntype Props = Pick<ComboboxProps, 'name' | 'value' | 'multiple'> & {\n onChange: (value: ChangeEvent<HTMLSelectElement> | null) => void;\n onSetValue: (value: string | string[]) => void;\n items: ValueToItemMapType;\n};\n\nexport const SelectNative = forwardRef<HTMLInputElement, Props>(\n ({ name, multiple, items, value, onChange, onSetValue }, ref) => {\n const values = (multiple ? value : [value]) as string[];\n const selectRef = useRef<HTMLSelectElement>(null);\n const forkRef = useForkRef(selectRef, ref as any);\n const options = Array.from(items.keys());\n\n useLayoutEffect(() => {\n if (selectRef.current && !multiple) {\n const valueInit = selectRef.current.value;\n\n if (valueInit) {\n onSetValue(valueInit);\n }\n }\n\n if (selectRef.current && multiple) {\n const valuesInit = Array.from(selectRef.current.selectedOptions).map((v) => v.value);\n if (valuesInit.length !== 0) {\n onSetValue(valuesInit);\n }\n }\n }, []);\n\n useLayoutEffect(() => {\n const event = createEvent(selectRef);\n if (onChange) {\n onChange(event);\n }\n }, [values]);\n\n return (\n <>\n <SelectHidden\n ref={forkRef}\n multiple={multiple}\n name={name}\n hidden\n value={multiple ? values : values[0]}\n >\n {options.map((v) => (\n <option key={v} value={v}>\n {v}\n </option>\n ))}\n </SelectHidden>\n </>\n );\n },\n);\n"],"names":["SelectNative","forwardRef","_ref","ref","name","multiple","items","value","onChange","onSetValue","values","selectRef","useRef","forkRef","useForkRef","options","Array","from","keys","useLayoutEffect","current","valueInit","valuesInit","selectedOptions","map","v","length","event","createEvent","React","createElement","Fragment","SelectHidden","hidden","key"],"mappings":";;;;;AAeO,IAAMA,YAAY,gBAAGC,UAAU,CAClC,UAAAC,IAAA,EAAyDC,GAAG,EAAK;AAAA,EAAA,IAA9DC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,KAAK,GAAAL,IAAA,CAALK,KAAK;IAAEC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IAAEC,UAAU,GAAAP,IAAA,CAAVO,UAAU,CAAA;EACjD,IAAMC,MAAM,GAAIL,QAAQ,GAAGE,KAAK,GAAG,CAACA,KAAK,CAAc,CAAA;AACvD,EAAA,IAAMI,SAAS,GAAGC,MAAM,CAAoB,IAAI,CAAC,CAAA;AACjD,EAAA,IAAMC,OAAO,GAAGC,UAAU,CAACH,SAAS,EAAER,GAAU,CAAC,CAAA;EACjD,IAAMY,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACX,KAAK,CAACY,IAAI,EAAE,CAAC,CAAA;AAExCC,EAAAA,eAAe,CAAC,YAAM;AAClB,IAAA,IAAIR,SAAS,CAACS,OAAO,IAAI,CAACf,QAAQ,EAAE;AAChC,MAAA,IAAMgB,SAAS,GAAGV,SAAS,CAACS,OAAO,CAACb,KAAK,CAAA;AAEzC,MAAA,IAAIc,SAAS,EAAE;QACXZ,UAAU,CAACY,SAAS,CAAC,CAAA;AACzB,OAAA;AACJ,KAAA;AAEA,IAAA,IAAIV,SAAS,CAACS,OAAO,IAAIf,QAAQ,EAAE;AAC/B,MAAA,IAAMiB,UAAU,GAAGN,KAAK,CAACC,IAAI,CAACN,SAAS,CAACS,OAAO,CAACG,eAAe,CAAC,CAACC,GAAG,CAAC,UAACC,CAAC,EAAA;QAAA,OAAKA,CAAC,CAAClB,KAAK,CAAA;OAAC,CAAA,CAAA;AACpF,MAAA,IAAIe,UAAU,CAACI,MAAM,KAAK,CAAC,EAAE;QACzBjB,UAAU,CAACa,UAAU,CAAC,CAAA;AAC1B,OAAA;AACJ,KAAA;GACH,EAAE,EAAE,CAAC,CAAA;AAENH,EAAAA,eAAe,CAAC,YAAM;AAClB,IAAA,IAAMQ,KAAK,GAAGC,WAAW,CAACjB,SAAS,CAAC,CAAA;AACpC,IAAA,IAAIH,QAAQ,EAAE;MACVA,QAAQ,CAACmB,KAAK,CAAC,CAAA;AACnB,KAAA;AACJ,GAAC,EAAE,CAACjB,MAAM,CAAC,CAAC,CAAA;AAEZ,EAAA,oBACImB,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,eACIF,KAAA,CAAAC,aAAA,CAACE,YAAY,EAAA;AACT7B,IAAAA,GAAG,EAAEU,OAAQ;AACbR,IAAAA,QAAQ,EAAEA,QAAS;AACnBD,IAAAA,IAAI,EAAEA,IAAK;IACX6B,MAAM,EAAA,IAAA;AACN1B,IAAAA,KAAK,EAAEF,QAAQ,GAAGK,MAAM,GAAGA,MAAM,CAAC,CAAC,CAAA;AAAE,GAAA,EAEpCK,OAAO,CAACS,GAAG,CAAC,UAACC,CAAC,EAAA;IAAA,oBACXI,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQI,MAAAA,GAAG,EAAET,CAAE;AAAClB,MAAAA,KAAK,EAAEkB,CAAAA;AAAE,KAAA,EACpBA,CACG,CAAC,CAAA;GACZ,CACS,CAChB,CAAC,CAAA;AAEX,CACJ;;;;"}
1
+ {"version":3,"file":"SelectNative.js","sources":["../../../../../../src/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.tsx"],"sourcesContent":["import React, { ChangeEvent, forwardRef, useLayoutEffect, useRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { createEvent } from '../../../../../utils';\nimport { ComboboxProps } from '../../Combobox.types';\nimport { ValueToItemMapType } from '../../hooks/getPathMaps';\n\nimport { SelectHidden } from './SelectNative.styles';\n\ntype Props = Pick<ComboboxProps, 'name' | 'value' | 'multiple'> & {\n onChange: (value: ChangeEvent<HTMLSelectElement> | null) => void;\n onSetValue: (value: string | string[]) => void;\n items: ValueToItemMapType;\n};\n\nexport const SelectNative = forwardRef<HTMLInputElement, Props>(\n ({ name, multiple, items, value, onChange, onSetValue }, ref) => {\n const values = (multiple ? value : [value]) as string[];\n const selectRef = useRef<HTMLSelectElement>(null);\n const forkRef = useForkRef(selectRef, ref as any);\n const options = Array.from(items.keys());\n\n useLayoutEffect(() => {\n if (selectRef.current && !multiple) {\n const valueInit = selectRef.current.value;\n\n if (valueInit) {\n onSetValue(valueInit);\n }\n }\n\n if (selectRef.current && multiple) {\n const valuesInit = Array.from(selectRef.current.selectedOptions).map((v) => v.value);\n if (valuesInit.length !== 0) {\n onSetValue(valuesInit);\n }\n }\n }, []);\n\n useLayoutEffect(() => {\n const event = createEvent(selectRef);\n if (onChange) {\n onChange(event);\n }\n }, [values]);\n\n //\n // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,\n // если нет изначального значения\n //\n\n return (\n <>\n <SelectHidden\n ref={forkRef}\n multiple={multiple}\n name={name}\n hidden\n value={multiple ? values : values[0]}\n >\n <option> </option>\n {options.map((v) => (\n <option key={v} value={v}>\n {v}\n </option>\n ))}\n </SelectHidden>\n </>\n );\n },\n);\n"],"names":["SelectNative","forwardRef","_ref","ref","name","multiple","items","value","onChange","onSetValue","values","selectRef","useRef","forkRef","useForkRef","options","Array","from","keys","useLayoutEffect","current","valueInit","valuesInit","selectedOptions","map","v","length","event","createEvent","React","createElement","Fragment","SelectHidden","hidden","_option","key"],"mappings":";;;;;;AAeO,IAAMA,YAAY,gBAAGC,UAAU,CAClC,UAAAC,IAAA,EAAyDC,GAAG,EAAK;AAAA,EAAA,IAA9DC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,KAAK,GAAAL,IAAA,CAALK,KAAK;IAAEC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IAAEC,UAAU,GAAAP,IAAA,CAAVO,UAAU,CAAA;EACjD,IAAMC,MAAM,GAAIL,QAAQ,GAAGE,KAAK,GAAG,CAACA,KAAK,CAAc,CAAA;AACvD,EAAA,IAAMI,SAAS,GAAGC,MAAM,CAAoB,IAAI,CAAC,CAAA;AACjD,EAAA,IAAMC,OAAO,GAAGC,UAAU,CAACH,SAAS,EAAER,GAAU,CAAC,CAAA;EACjD,IAAMY,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACX,KAAK,CAACY,IAAI,EAAE,CAAC,CAAA;AAExCC,EAAAA,eAAe,CAAC,YAAM;AAClB,IAAA,IAAIR,SAAS,CAACS,OAAO,IAAI,CAACf,QAAQ,EAAE;AAChC,MAAA,IAAMgB,SAAS,GAAGV,SAAS,CAACS,OAAO,CAACb,KAAK,CAAA;AAEzC,MAAA,IAAIc,SAAS,EAAE;QACXZ,UAAU,CAACY,SAAS,CAAC,CAAA;AACzB,OAAA;AACJ,KAAA;AAEA,IAAA,IAAIV,SAAS,CAACS,OAAO,IAAIf,QAAQ,EAAE;AAC/B,MAAA,IAAMiB,UAAU,GAAGN,KAAK,CAACC,IAAI,CAACN,SAAS,CAACS,OAAO,CAACG,eAAe,CAAC,CAACC,GAAG,CAAC,UAACC,CAAC,EAAA;QAAA,OAAKA,CAAC,CAAClB,KAAK,CAAA;OAAC,CAAA,CAAA;AACpF,MAAA,IAAIe,UAAU,CAACI,MAAM,KAAK,CAAC,EAAE;QACzBjB,UAAU,CAACa,UAAU,CAAC,CAAA;AAC1B,OAAA;AACJ,KAAA;GACH,EAAE,EAAE,CAAC,CAAA;AAENH,EAAAA,eAAe,CAAC,YAAM;AAClB,IAAA,IAAMQ,KAAK,GAAGC,WAAW,CAACjB,SAAS,CAAC,CAAA;AACpC,IAAA,IAAIH,QAAQ,EAAE;MACVA,QAAQ,CAACmB,KAAK,CAAC,CAAA;AACnB,KAAA;AACJ,GAAC,EAAE,CAACjB,MAAM,CAAC,CAAC,CAAA;;AAEZ;AACA;AACA;AACA;;AAEA,EAAA,oBACImB,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,eACIF,KAAA,CAAAC,aAAA,CAACE,YAAY,EAAA;AACT7B,IAAAA,GAAG,EAAEU,OAAQ;AACbR,IAAAA,QAAQ,EAAEA,QAAS;AACnBD,IAAAA,IAAI,EAAEA,IAAK;IACX6B,MAAM,EAAA,IAAA;AACN1B,IAAAA,KAAK,EAAEF,QAAQ,GAAGK,MAAM,GAAGA,MAAM,CAAC,CAAC,CAAA;AAAE,GAAA,EAAAwB,OAAA,KAAAA,OAAA,gBAErCL,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA,IAAA,EAAQ,GAAS,CAAC,GACjBf,OAAO,CAACS,GAAG,CAAC,UAACC,CAAC,EAAA;IAAA,oBACXI,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQK,MAAAA,GAAG,EAAEV,CAAE;AAAClB,MAAAA,KAAK,EAAEkB,CAAAA;AAAE,KAAA,EACpBA,CACG,CAAC,CAAA;GACZ,CACS,CAChB,CAAC,CAAA;AAEX,CACJ;;;;"}
@@ -3,6 +3,7 @@ import { useForkRef } from '@salutejs/plasma-core';
3
3
  import { SelectHidden } from './SelectNative.styles.js';
4
4
  import { createEvent } from '../../../../utils/createEvent.js';
5
5
 
6
+ var _option;
6
7
  var SelectNative = /*#__PURE__*/forwardRef(function (_ref, ref) {
7
8
  var name = _ref.name,
8
9
  multiselect = _ref.multiselect,
@@ -36,13 +37,19 @@ var SelectNative = /*#__PURE__*/forwardRef(function (_ref, ref) {
36
37
  onChange(event);
37
38
  }
38
39
  }, [values]);
40
+
41
+ //
42
+ // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,
43
+ // если нет изначального значения
44
+ //
45
+
39
46
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SelectHidden, {
40
47
  ref: forkRef,
41
48
  multiple: multiselect,
42
49
  name: name,
43
50
  hidden: true,
44
51
  value: multiselect ? values : values[0]
45
- }, options.map(function (v) {
52
+ }, _option || (_option = /*#__PURE__*/React.createElement("option", null, " ")), options.map(function (v) {
46
53
  return /*#__PURE__*/React.createElement("option", {
47
54
  key: v,
48
55
  value: v
@@ -1 +1 @@
1
- {"version":3,"file":"SelectNative.js","sources":["../../../../../src/components/Select/ui/SelectNative/SelectNative.tsx"],"sourcesContent":["import React, { ChangeEvent, forwardRef, useLayoutEffect, useRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { createEvent } from '../../../../utils';\nimport { SelectProps } from '../../Select.types';\nimport { ValueToItemMapType } from '../../hooks/usePathMaps';\n\nimport { SelectHidden } from './SelectNative.styles';\n\ntype Props = Pick<SelectProps, 'name' | 'multiselect'> & {\n onChange: (newValue: ChangeEvent<HTMLSelectElement> | null) => void;\n onSetValue: (value: string | string[]) => void;\n items: ValueToItemMapType;\n value: string | number | Array<string | number>;\n};\n\nexport const SelectNative = forwardRef<HTMLButtonElement, Props>(\n ({ name, multiselect, items, value, onChange, onSetValue }, ref) => {\n const values = (multiselect ? value : [value]) as string[];\n const selectRef = useRef<HTMLSelectElement>(null);\n const forkRef = useForkRef(selectRef, ref as any);\n const options = Array.from(items.keys());\n\n useLayoutEffect(() => {\n if (selectRef.current && !multiselect) {\n const valueInit = selectRef.current.value;\n\n if (valueInit) {\n onSetValue(valueInit);\n }\n }\n\n if (selectRef.current && multiselect) {\n const valuesInit = Array.from(selectRef.current.selectedOptions).map((v) => v.value);\n if (valuesInit.length !== 0) {\n onSetValue(valuesInit);\n }\n }\n }, []);\n\n useLayoutEffect(() => {\n const event = createEvent(selectRef);\n if (onChange) {\n onChange(event);\n }\n }, [values]);\n\n return (\n <>\n <SelectHidden\n ref={forkRef}\n multiple={multiselect}\n name={name}\n hidden\n value={multiselect ? values : values[0]}\n >\n {options.map((v) => (\n <option key={v} value={v}>\n {v}\n </option>\n ))}\n </SelectHidden>\n </>\n );\n },\n);\n"],"names":["SelectNative","forwardRef","_ref","ref","name","multiselect","items","value","onChange","onSetValue","values","selectRef","useRef","forkRef","useForkRef","options","Array","from","keys","useLayoutEffect","current","valueInit","valuesInit","selectedOptions","map","v","length","event","createEvent","React","createElement","Fragment","SelectHidden","multiple","hidden","key"],"mappings":";;;;;AAgBO,IAAMA,YAAY,gBAAGC,UAAU,CAClC,UAAAC,IAAA,EAA4DC,GAAG,EAAK;AAAA,EAAA,IAAjEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,KAAK,GAAAL,IAAA,CAALK,KAAK;IAAEC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IAAEC,UAAU,GAAAP,IAAA,CAAVO,UAAU,CAAA;EACpD,IAAMC,MAAM,GAAIL,WAAW,GAAGE,KAAK,GAAG,CAACA,KAAK,CAAc,CAAA;AAC1D,EAAA,IAAMI,SAAS,GAAGC,MAAM,CAAoB,IAAI,CAAC,CAAA;AACjD,EAAA,IAAMC,OAAO,GAAGC,UAAU,CAACH,SAAS,EAAER,GAAU,CAAC,CAAA;EACjD,IAAMY,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACX,KAAK,CAACY,IAAI,EAAE,CAAC,CAAA;AAExCC,EAAAA,eAAe,CAAC,YAAM;AAClB,IAAA,IAAIR,SAAS,CAACS,OAAO,IAAI,CAACf,WAAW,EAAE;AACnC,MAAA,IAAMgB,SAAS,GAAGV,SAAS,CAACS,OAAO,CAACb,KAAK,CAAA;AAEzC,MAAA,IAAIc,SAAS,EAAE;QACXZ,UAAU,CAACY,SAAS,CAAC,CAAA;AACzB,OAAA;AACJ,KAAA;AAEA,IAAA,IAAIV,SAAS,CAACS,OAAO,IAAIf,WAAW,EAAE;AAClC,MAAA,IAAMiB,UAAU,GAAGN,KAAK,CAACC,IAAI,CAACN,SAAS,CAACS,OAAO,CAACG,eAAe,CAAC,CAACC,GAAG,CAAC,UAACC,CAAC,EAAA;QAAA,OAAKA,CAAC,CAAClB,KAAK,CAAA;OAAC,CAAA,CAAA;AACpF,MAAA,IAAIe,UAAU,CAACI,MAAM,KAAK,CAAC,EAAE;QACzBjB,UAAU,CAACa,UAAU,CAAC,CAAA;AAC1B,OAAA;AACJ,KAAA;GACH,EAAE,EAAE,CAAC,CAAA;AAENH,EAAAA,eAAe,CAAC,YAAM;AAClB,IAAA,IAAMQ,KAAK,GAAGC,WAAW,CAACjB,SAAS,CAAC,CAAA;AACpC,IAAA,IAAIH,QAAQ,EAAE;MACVA,QAAQ,CAACmB,KAAK,CAAC,CAAA;AACnB,KAAA;AACJ,GAAC,EAAE,CAACjB,MAAM,CAAC,CAAC,CAAA;AAEZ,EAAA,oBACImB,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,eACIF,KAAA,CAAAC,aAAA,CAACE,YAAY,EAAA;AACT7B,IAAAA,GAAG,EAAEU,OAAQ;AACboB,IAAAA,QAAQ,EAAE5B,WAAY;AACtBD,IAAAA,IAAI,EAAEA,IAAK;IACX8B,MAAM,EAAA,IAAA;AACN3B,IAAAA,KAAK,EAAEF,WAAW,GAAGK,MAAM,GAAGA,MAAM,CAAC,CAAC,CAAA;AAAE,GAAA,EAEvCK,OAAO,CAACS,GAAG,CAAC,UAACC,CAAC,EAAA;IAAA,oBACXI,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQK,MAAAA,GAAG,EAAEV,CAAE;AAAClB,MAAAA,KAAK,EAAEkB,CAAAA;AAAE,KAAA,EACpBA,CACG,CAAC,CAAA;GACZ,CACS,CAChB,CAAC,CAAA;AAEX,CACJ;;;;"}
1
+ {"version":3,"file":"SelectNative.js","sources":["../../../../../src/components/Select/ui/SelectNative/SelectNative.tsx"],"sourcesContent":["import React, { ChangeEvent, forwardRef, useLayoutEffect, useRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { createEvent } from '../../../../utils';\nimport { SelectProps } from '../../Select.types';\nimport { ValueToItemMapType } from '../../hooks/usePathMaps';\n\nimport { SelectHidden } from './SelectNative.styles';\n\ntype Props = Pick<SelectProps, 'name' | 'multiselect'> & {\n onChange: (newValue: ChangeEvent<HTMLSelectElement> | null) => void;\n onSetValue: (value: string | string[]) => void;\n items: ValueToItemMapType;\n value: string | number | Array<string | number>;\n};\n\nexport const SelectNative = forwardRef<HTMLButtonElement, Props>(\n ({ name, multiselect, items, value, onChange, onSetValue }, ref) => {\n const values = (multiselect ? value : [value]) as string[];\n const selectRef = useRef<HTMLSelectElement>(null);\n const forkRef = useForkRef(selectRef, ref as any);\n const options = Array.from(items.keys());\n\n useLayoutEffect(() => {\n if (selectRef.current && !multiselect) {\n const valueInit = selectRef.current.value;\n\n if (valueInit) {\n onSetValue(valueInit);\n }\n }\n\n if (selectRef.current && multiselect) {\n const valuesInit = Array.from(selectRef.current.selectedOptions).map((v) => v.value);\n if (valuesInit.length !== 0) {\n onSetValue(valuesInit);\n }\n }\n }, []);\n\n useLayoutEffect(() => {\n const event = createEvent(selectRef);\n if (onChange) {\n onChange(event);\n }\n }, [values]);\n\n //\n // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,\n // если нет изначального значения\n //\n\n return (\n <>\n <SelectHidden\n ref={forkRef}\n multiple={multiselect}\n name={name}\n hidden\n value={multiselect ? values : values[0]}\n >\n <option> </option>\n {options.map((v) => (\n <option key={v} value={v}>\n {v}\n </option>\n ))}\n </SelectHidden>\n </>\n );\n },\n);\n"],"names":["SelectNative","forwardRef","_ref","ref","name","multiselect","items","value","onChange","onSetValue","values","selectRef","useRef","forkRef","useForkRef","options","Array","from","keys","useLayoutEffect","current","valueInit","valuesInit","selectedOptions","map","v","length","event","createEvent","React","createElement","Fragment","SelectHidden","multiple","hidden","_option","key"],"mappings":";;;;;;AAgBO,IAAMA,YAAY,gBAAGC,UAAU,CAClC,UAAAC,IAAA,EAA4DC,GAAG,EAAK;AAAA,EAAA,IAAjEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,KAAK,GAAAL,IAAA,CAALK,KAAK;IAAEC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IAAEC,UAAU,GAAAP,IAAA,CAAVO,UAAU,CAAA;EACpD,IAAMC,MAAM,GAAIL,WAAW,GAAGE,KAAK,GAAG,CAACA,KAAK,CAAc,CAAA;AAC1D,EAAA,IAAMI,SAAS,GAAGC,MAAM,CAAoB,IAAI,CAAC,CAAA;AACjD,EAAA,IAAMC,OAAO,GAAGC,UAAU,CAACH,SAAS,EAAER,GAAU,CAAC,CAAA;EACjD,IAAMY,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACX,KAAK,CAACY,IAAI,EAAE,CAAC,CAAA;AAExCC,EAAAA,eAAe,CAAC,YAAM;AAClB,IAAA,IAAIR,SAAS,CAACS,OAAO,IAAI,CAACf,WAAW,EAAE;AACnC,MAAA,IAAMgB,SAAS,GAAGV,SAAS,CAACS,OAAO,CAACb,KAAK,CAAA;AAEzC,MAAA,IAAIc,SAAS,EAAE;QACXZ,UAAU,CAACY,SAAS,CAAC,CAAA;AACzB,OAAA;AACJ,KAAA;AAEA,IAAA,IAAIV,SAAS,CAACS,OAAO,IAAIf,WAAW,EAAE;AAClC,MAAA,IAAMiB,UAAU,GAAGN,KAAK,CAACC,IAAI,CAACN,SAAS,CAACS,OAAO,CAACG,eAAe,CAAC,CAACC,GAAG,CAAC,UAACC,CAAC,EAAA;QAAA,OAAKA,CAAC,CAAClB,KAAK,CAAA;OAAC,CAAA,CAAA;AACpF,MAAA,IAAIe,UAAU,CAACI,MAAM,KAAK,CAAC,EAAE;QACzBjB,UAAU,CAACa,UAAU,CAAC,CAAA;AAC1B,OAAA;AACJ,KAAA;GACH,EAAE,EAAE,CAAC,CAAA;AAENH,EAAAA,eAAe,CAAC,YAAM;AAClB,IAAA,IAAMQ,KAAK,GAAGC,WAAW,CAACjB,SAAS,CAAC,CAAA;AACpC,IAAA,IAAIH,QAAQ,EAAE;MACVA,QAAQ,CAACmB,KAAK,CAAC,CAAA;AACnB,KAAA;AACJ,GAAC,EAAE,CAACjB,MAAM,CAAC,CAAC,CAAA;;AAEZ;AACA;AACA;AACA;;AAEA,EAAA,oBACImB,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,eACIF,KAAA,CAAAC,aAAA,CAACE,YAAY,EAAA;AACT7B,IAAAA,GAAG,EAAEU,OAAQ;AACboB,IAAAA,QAAQ,EAAE5B,WAAY;AACtBD,IAAAA,IAAI,EAAEA,IAAK;IACX8B,MAAM,EAAA,IAAA;AACN3B,IAAAA,KAAK,EAAEF,WAAW,GAAGK,MAAM,GAAGA,MAAM,CAAC,CAAC,CAAA;AAAE,GAAA,EAAAyB,OAAA,KAAAA,OAAA,gBAExCN,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA,IAAA,EAAQ,GAAS,CAAC,GACjBf,OAAO,CAACS,GAAG,CAAC,UAACC,CAAC,EAAA;IAAA,oBACXI,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQM,MAAAA,GAAG,EAAEX,CAAE;AAAClB,MAAAA,KAAK,EAAEkB,CAAAA;AAAE,KAAA,EACpBA,CACG,CAAC,CAAA;GACZ,CACS,CAChB,CAAC,CAAA;AAEX,CACJ;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.267.0-dev.0",
3
+ "version": "0.267.1-canary.1777.13369684944.0",
4
4
  "description": "Salute Design System blueprint",
5
5
  "main": "cjs/index.js",
6
6
  "module": "es/index.js",
@@ -132,5 +132,5 @@
132
132
  "sideEffects": [
133
133
  "*.css"
134
134
  ],
135
- "gitHead": "b3caca5ee52894a6a837c7699b15fa1969e1c9f2"
135
+ "gitHead": "133493d4c2324607fe06930ed7b7e37e86f2c51b"
136
136
  }
@@ -9,6 +9,7 @@ var _react = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("react")
9
9
  var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
10
10
  var _utils = /*#__PURE__*/require("../../../../../utils");
11
11
  var _SelectNative = /*#__PURE__*/require("./SelectNative.styles");
12
+ var _option;
12
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
15
  var SelectNative = exports.SelectNative = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
@@ -44,13 +45,19 @@ var SelectNative = exports.SelectNative = /*#__PURE__*/(0, _react.forwardRef)(fu
44
45
  onChange(event);
45
46
  }
46
47
  }, [values]);
48
+
49
+ //
50
+ // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,
51
+ // если нет изначального значения
52
+ //
53
+
47
54
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_SelectNative.SelectHidden, {
48
55
  ref: forkRef,
49
56
  multiple: multiple,
50
57
  name: name,
51
58
  hidden: true,
52
59
  value: multiple ? values : values[0]
53
- }, options.map(function (v) {
60
+ }, _option || (_option = /*#__PURE__*/_react["default"].createElement("option", null, " ")), options.map(function (v) {
54
61
  return /*#__PURE__*/_react["default"].createElement("option", {
55
62
  key: v,
56
63
  value: v
@@ -9,6 +9,7 @@ var _react = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("react")
9
9
  var _plasmaCore = /*#__PURE__*/require("@salutejs/plasma-core");
10
10
  var _utils = /*#__PURE__*/require("../../../../utils");
11
11
  var _SelectNative = /*#__PURE__*/require("./SelectNative.styles");
12
+ var _option;
12
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
15
  var SelectNative = exports.SelectNative = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
@@ -44,13 +45,19 @@ var SelectNative = exports.SelectNative = /*#__PURE__*/(0, _react.forwardRef)(fu
44
45
  onChange(event);
45
46
  }
46
47
  }, [values]);
48
+
49
+ //
50
+ // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,
51
+ // если нет изначального значения
52
+ //
53
+
47
54
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_SelectNative.SelectHidden, {
48
55
  ref: forkRef,
49
56
  multiple: multiselect,
50
57
  name: name,
51
58
  hidden: true,
52
59
  value: multiselect ? values : values[0]
53
- }, options.map(function (v) {
60
+ }, _option || (_option = /*#__PURE__*/_react["default"].createElement("option", null, " ")), options.map(function (v) {
54
61
  return /*#__PURE__*/_react["default"].createElement("option", {
55
62
  key: v,
56
63
  value: v
@@ -1,3 +1,4 @@
1
+ var _option;
1
2
  import React, { forwardRef, useLayoutEffect, useRef } from 'react';
2
3
  import { useForkRef } from '@salutejs/plasma-core';
3
4
  import { createEvent } from '../../../../../utils';
@@ -35,13 +36,19 @@ export var SelectNative = /*#__PURE__*/forwardRef(function (_ref, ref) {
35
36
  onChange(event);
36
37
  }
37
38
  }, [values]);
39
+
40
+ //
41
+ // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,
42
+ // если нет изначального значения
43
+ //
44
+
38
45
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SelectHidden, {
39
46
  ref: forkRef,
40
47
  multiple: multiple,
41
48
  name: name,
42
49
  hidden: true,
43
50
  value: multiple ? values : values[0]
44
- }, options.map(function (v) {
51
+ }, _option || (_option = /*#__PURE__*/React.createElement("option", null, " ")), options.map(function (v) {
45
52
  return /*#__PURE__*/React.createElement("option", {
46
53
  key: v,
47
54
  value: v
@@ -1,3 +1,4 @@
1
+ var _option;
1
2
  import React, { forwardRef, useLayoutEffect, useRef } from 'react';
2
3
  import { useForkRef } from '@salutejs/plasma-core';
3
4
  import { createEvent } from '../../../../utils';
@@ -35,13 +36,19 @@ export var SelectNative = /*#__PURE__*/forwardRef(function (_ref, ref) {
35
36
  onChange(event);
36
37
  }
37
38
  }, [values]);
39
+
40
+ //
41
+ // Пустой option нужен для нативного поведения. Он автоматически выбирает первый пункт,
42
+ // если нет изначального значения
43
+ //
44
+
38
45
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SelectHidden, {
39
46
  ref: forkRef,
40
47
  multiple: multiselect,
41
48
  name: name,
42
49
  hidden: true,
43
50
  value: multiselect ? values : values[0]
44
- }, options.map(function (v) {
51
+ }, _option || (_option = /*#__PURE__*/React.createElement("option", null, " ")), options.map(function (v) {
45
52
  return /*#__PURE__*/React.createElement("option", {
46
53
  key: v,
47
54
  value: v
@@ -1 +1 @@
1
- {"version":3,"file":"SelectNative.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAuC,MAAM,OAAO,CAAC;AAIhF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAU7D,eAAO,MAAM,YAAY;sBALH,YAAY,iBAAiB,CAAC,GAAG,IAAI,KAAK,IAAI;wBAC5C,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI;;0CAqDjD,CAAC"}
1
+ {"version":3,"file":"SelectNative.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Combobox/ComboboxNew/ui/SelectNative/SelectNative.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAuC,MAAM,OAAO,CAAC;AAIhF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAU7D,eAAO,MAAM,YAAY;sBALH,YAAY,iBAAiB,CAAC,GAAG,IAAI,KAAK,IAAI;wBAC5C,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI;;0CA2DjD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectNative.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/ui/SelectNative/SelectNative.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAuC,MAAM,OAAO,CAAC;AAIhF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAW7D,eAAO,MAAM,YAAY;yBANA,YAAY,iBAAiB,CAAC,GAAG,IAAI,KAAK,IAAI;wBAC/C,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI;;WAEvC,MAAM,GAAG,MAAM,GAAG,MAAM,MAAM,GAAG,MAAM,CAAC;2CAoDlD,CAAC"}
1
+ {"version":3,"file":"SelectNative.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/ui/SelectNative/SelectNative.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAuC,MAAM,OAAO,CAAC;AAIhF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAW7D,eAAO,MAAM,YAAY;yBANA,YAAY,iBAAiB,CAAC,GAAG,IAAI,KAAK,IAAI;wBAC/C,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI;;WAEvC,MAAM,GAAG,MAAM,GAAG,MAAM,MAAM,GAAG,MAAM,CAAC;2CA0DlD,CAAC"}