@scbt-ecom/ui 0.109.0 → 0.109.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import{useMemo as p,useCallback as g}from"react";import{TypeGuards as a}from"../../../../../utils/typeGuards.js";const l=({options:c,multiple:e,onChange:f,returnValue:n,value:r})=>{const i=p(()=>{const s=new Map;for(const t of c){const o=n?n(t):t.value;s.set(o,t)}return s},[c]),m=g(s=>{if(s)if(e){if(!a.isArray(s))return;const t=s.map(o=>n?n(o):o.value);f(t)}else{const t=s,o=n?n(t):t.value;f(o)}},[]),d=p(()=>r?e?a.isArray(r)?r.map(o=>i.get(o)).filter(o=>o!==void 0):[]:i.get(r)??null:e?[]:null,[e,i,r]);return{changeHandler:m,selected:d}};export{l as useComboboxControl};
1
+ import{useMemo as p,useCallback as y}from"react";import{TypeGuards as a}from"../../../../../utils/typeGuards.js";const l=({options:f,multiple:r,onChange:c,returnValue:n,value:i})=>{const e=p(()=>{const t=new Map;for(const s of f){const o=n?n(s):s.value;t.set(o,s)}return t},[f]),d=y(t=>{if(!t){r||c(null);return}if(r){if(!a.isArray(t))return;const s=t.map(o=>n?n(o):o.value);c(s)}else{const s=t,o=n?n(s):s.value;c(o)}},[]),m=p(()=>i?r?a.isArray(i)?i.map(o=>e.get(o)).filter(o=>o!==void 0):[]:e.get(i)??null:r?[]:null,[r,e,i]);return{changeHandler:d,selected:m}};export{l as useComboboxControl};
2
2
  //# sourceMappingURL=useComboboxControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useComboboxControl.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/combobox/hooks/useComboboxControl.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { type ChangeHandler, type ComboboxItemOption, type ComboboxValue } from '$/shared/ui/formElements/uncontrolled/combobox'\nimport { TypeGuards } from '$/shared/utils'\n\ntype Value<Multi extends boolean> = Multi extends true ? string[] : string | null\n\ninterface UseComboboxControlProps<Multi extends boolean> {\n multiple?: Multi\n options: ComboboxItemOption[]\n returnValue?: (option: ComboboxItemOption) => string | null\n onChange: (...event: any[]) => void\n value: Value<Multi>\n}\n\nexport const useComboboxControl = <Multi extends boolean>({\n options,\n multiple,\n onChange,\n returnValue,\n value\n}: UseComboboxControlProps<Multi>) => {\n const optionsMap = useMemo(() => {\n const map = new Map<string | null, ComboboxItemOption>()\n\n for (const option of options) {\n const value = returnValue ? returnValue(option) : option.value\n map.set(value, option)\n }\n\n return map\n }, [options])\n\n const changeHandler = useCallback<ChangeHandler<Multi>>((selected) => {\n if (!selected) {\n return\n }\n\n if (multiple) {\n if (!TypeGuards.isArray(selected)) {\n return\n }\n\n const stringValues = selected.map((option) => (returnValue ? returnValue(option) : option.value))\n\n onChange(stringValues as string[])\n } else {\n const singleOption = selected as ComboboxItemOption\n const stringValue = returnValue ? returnValue(singleOption) : singleOption.value\n\n onChange(stringValue as string)\n }\n }, [])\n\n const selected = useMemo<ComboboxValue<Multi>>(() => {\n if (!value) {\n return (multiple ? [] : null) as ComboboxValue<Multi>\n }\n\n if (multiple) {\n if (!TypeGuards.isArray(value)) {\n return [] as unknown as ComboboxValue<Multi>\n }\n\n const selectedOptionsArray = value\n .map((stringValue: string) => optionsMap.get(stringValue))\n .filter((option): option is ComboboxItemOption => option !== undefined)\n\n return selectedOptionsArray as ComboboxValue<Multi>\n }\n\n const selectedOption = optionsMap.get(value as string)\n\n return (selectedOption ?? null) as ComboboxValue<Multi>\n }, [multiple, optionsMap, value])\n\n return {\n changeHandler,\n selected\n }\n}\n"],"names":["useComboboxControl","options","multiple","onChange","returnValue","value","optionsMap","useMemo","map","option","changeHandler","useCallback","selected","TypeGuards","stringValues","singleOption","stringValue"],"mappings":"iHAcO,MAAMA,EAAqB,CAAwB,CACxD,QAAAC,EACA,SAAAC,EACA,SAAAC,EACA,YAAAC,EACA,MAAAC,CACF,IAAsC,CACpC,MAAMC,EAAaC,EAAQ,IAAM,CAC/B,MAAMC,MAAU,IAEhB,UAAWC,KAAUR,EAAS,CAC5B,MAAMI,EAAQD,EAAcA,EAAYK,CAAM,EAAIA,EAAO,MACzDD,EAAI,IAAIH,EAAOI,CAAM,CACvB,CAEA,OAAOD,CACT,EAAG,CAACP,CAAO,CAAC,EAENS,EAAgBC,EAAmCC,GAAa,CACpE,GAAKA,EAIL,GAAIV,EAAU,CACZ,GAAI,CAACW,EAAW,QAAQD,CAAQ,EAC9B,OAGF,MAAME,EAAeF,EAAS,IAAKH,GAAYL,EAAcA,EAAYK,CAAM,EAAIA,EAAO,KAAM,EAEhGN,EAASW,CAAwB,CACnC,KAAO,CACL,MAAMC,EAAeH,EACfI,EAAcZ,EAAcA,EAAYW,CAAY,EAAIA,EAAa,MAE3EZ,EAASa,CAAqB,CAChC,CACF,EAAG,CAAA,CAAE,EAECJ,EAAWL,EAA8B,IACxCF,EAIDH,EACGW,EAAW,QAAQR,CAAK,EAIAA,EAC1B,IAAKW,GAAwBV,EAAW,IAAIU,CAAW,CAAC,EACxD,OAAQP,GAAyCA,IAAW,MAAS,EAL/D,CAAA,EAUYH,EAAW,IAAID,CAAe,GAE3B,KAjBhBH,EAAW,CAAA,EAAK,KAkBzB,CAACA,EAAUI,EAAYD,CAAK,CAAC,EAEhC,MAAO,CACL,cAAAK,EACA,SAAAE,CAAA,CAEJ"}
1
+ {"version":3,"file":"useComboboxControl.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/combobox/hooks/useComboboxControl.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { type ChangeHandler, type ComboboxItemOption, type ComboboxValue } from '$/shared/ui/formElements/uncontrolled/combobox'\nimport { TypeGuards } from '$/shared/utils'\n\ntype Value<Multi extends boolean> = Multi extends true ? string[] : string | null\n\ninterface UseComboboxControlProps<Multi extends boolean> {\n multiple?: Multi\n options: ComboboxItemOption[]\n returnValue?: (option: ComboboxItemOption) => string | null\n onChange: (...event: any[]) => void\n value: Value<Multi>\n}\n\nexport const useComboboxControl = <Multi extends boolean>({\n options,\n multiple,\n onChange,\n returnValue,\n value\n}: UseComboboxControlProps<Multi>) => {\n const optionsMap = useMemo(() => {\n const map = new Map<string | null, ComboboxItemOption>()\n\n for (const option of options) {\n const value = returnValue ? returnValue(option) : option.value\n map.set(value, option)\n }\n\n return map\n }, [options])\n\n const changeHandler = useCallback<ChangeHandler<Multi>>((selected) => {\n if (!selected) {\n if (!multiple) onChange(null)\n return\n }\n\n if (multiple) {\n if (!TypeGuards.isArray(selected)) {\n return\n }\n\n const stringValues = selected.map((option) => (returnValue ? returnValue(option) : option.value))\n\n onChange(stringValues as string[])\n } else {\n const singleOption = selected as ComboboxItemOption\n const stringValue = returnValue ? returnValue(singleOption) : singleOption.value\n\n onChange(stringValue as string)\n }\n }, [])\n\n const selected = useMemo<ComboboxValue<Multi>>(() => {\n if (!value) {\n return (multiple ? [] : null) as ComboboxValue<Multi>\n }\n\n if (multiple) {\n if (!TypeGuards.isArray(value)) {\n return [] as unknown as ComboboxValue<Multi>\n }\n\n const selectedOptionsArray = value\n .map((stringValue: string) => optionsMap.get(stringValue))\n .filter((option): option is ComboboxItemOption => option !== undefined)\n\n return selectedOptionsArray as ComboboxValue<Multi>\n }\n\n const selectedOption = optionsMap.get(value as string)\n\n return (selectedOption ?? null) as ComboboxValue<Multi>\n }, [multiple, optionsMap, value])\n\n return {\n changeHandler,\n selected\n }\n}\n"],"names":["useComboboxControl","options","multiple","onChange","returnValue","value","optionsMap","useMemo","map","option","changeHandler","useCallback","selected","TypeGuards","stringValues","singleOption","stringValue"],"mappings":"iHAcO,MAAMA,EAAqB,CAAwB,CACxD,QAAAC,EACA,SAAAC,EACA,SAAAC,EACA,YAAAC,EACA,MAAAC,CACF,IAAsC,CACpC,MAAMC,EAAaC,EAAQ,IAAM,CAC/B,MAAMC,MAAU,IAEhB,UAAWC,KAAUR,EAAS,CAC5B,MAAMI,EAAQD,EAAcA,EAAYK,CAAM,EAAIA,EAAO,MACzDD,EAAI,IAAIH,EAAOI,CAAM,CACvB,CAEA,OAAOD,CACT,EAAG,CAACP,CAAO,CAAC,EAENS,EAAgBC,EAAmCC,GAAa,CACpE,GAAI,CAACA,EAAU,CACRV,GAAUC,EAAS,IAAI,EAC5B,MACF,CAEA,GAAID,EAAU,CACZ,GAAI,CAACW,EAAW,QAAQD,CAAQ,EAC9B,OAGF,MAAME,EAAeF,EAAS,IAAKH,GAAYL,EAAcA,EAAYK,CAAM,EAAIA,EAAO,KAAM,EAEhGN,EAASW,CAAwB,CACnC,KAAO,CACL,MAAMC,EAAeH,EACfI,EAAcZ,EAAcA,EAAYW,CAAY,EAAIA,EAAa,MAE3EZ,EAASa,CAAqB,CAChC,CACF,EAAG,CAAA,CAAE,EAECJ,EAAWL,EAA8B,IACxCF,EAIDH,EACGW,EAAW,QAAQR,CAAK,EAIAA,EAC1B,IAAKW,GAAwBV,EAAW,IAAIU,CAAW,CAAC,EACxD,OAAQP,GAAyCA,IAAW,MAAS,EAL/D,CAAA,EAUYH,EAAW,IAAID,CAAe,GAE3B,KAjBhBH,EAAW,CAAA,EAAK,KAkBzB,CAACA,EAAUI,EAAYD,CAAK,CAAC,EAEhC,MAAO,CACL,cAAAK,EACA,SAAAE,CAAA,CAEJ"}
@@ -1,2 +1,2 @@
1
- const o=(...f)=>{const r=f.filter(Boolean);return r.length<=1?r[0]||null:function(t){r.forEach(e=>{typeof e=="function"?e(t):e&&(e.current=t)})}};export{o as mergeRefs};
1
+ const o=(...n)=>{const t=n.filter(Boolean);return t.length<=1?t[0]||null:function(f){t.forEach(e=>{typeof e=="function"?e(f):e&&(e.current=f)})}};export{o as mergeRefs};
2
2
  //# sourceMappingURL=mergeRefs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeRefs.js","sources":["../../../../lib/shared/utils/mergeRefs.ts"],"sourcesContent":["import type React from 'react'\n\nexport const mergeRefs = <T>(...inputRefs: (React.Ref<T> | undefined)[]): React.Ref<T> | React.RefCallback<T> => {\n const filteredInputRefs = inputRefs.filter(Boolean)\n\n if (filteredInputRefs.length <= 1) {\n const firstRef = filteredInputRefs[0]\n\n return firstRef || null\n }\n\n return function mergedRefs(ref) {\n filteredInputRefs.forEach((inputRef) => {\n if (typeof inputRef === 'function') {\n inputRef(ref)\n } else if (inputRef) {\n ;(inputRef as React.MutableRefObject<T | null>).current = ref\n }\n })\n }\n}\n"],"names":["mergeRefs","inputRefs","filteredInputRefs","ref","inputRef"],"mappings":"AAEO,MAAMA,EAAY,IAAOC,IAAiF,CAC/G,MAAMC,EAAoBD,EAAU,OAAO,OAAO,EAElD,OAAIC,EAAkB,QAAU,EACbA,EAAkB,CAAC,GAEjB,KAGd,SAAoBC,EAAK,CAC9BD,EAAkB,QAASE,GAAa,CAClC,OAAOA,GAAa,WACtBA,EAASD,CAAG,EACHC,IACPA,EAA8C,QAAUD,EAE9D,CAAC,CACH,CACF"}
1
+ {"version":3,"file":"mergeRefs.js","sources":["../../../../lib/shared/utils/mergeRefs.tsx"],"sourcesContent":["import type React from 'react'\n\nexport const mergeRefs = <T,>(...inputRefs: (React.Ref<T> | undefined)[]): React.Ref<T> | React.RefCallback<T> => {\n const filteredInputRefs = inputRefs.filter(Boolean)\n\n if (filteredInputRefs.length <= 1) {\n const firstRef = filteredInputRefs[0]\n\n return firstRef || null\n }\n\n /**\n * Бежим по всем рефам, которые нам передали и присваиваем каждому instance ноды.\n * @example\n * <div ref={(instance) => mergeRefs(ref1, ref2, forwardedRef)(instance)}></div>\n * // ^ инстанс ноды которая будет присвоена каждому рефу\n * <div ref={mergeRefs(ref1, ref2, forwardedRef)}></div>\n * // ^ аналогичная запись\n */\n return function mergedRefs(instance) {\n filteredInputRefs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(instance)\n } else if (ref) {\n ;(ref as React.MutableRefObject<T | null>).current = instance\n }\n })\n }\n}\n"],"names":["mergeRefs","inputRefs","filteredInputRefs","instance","ref"],"mappings":"AAEO,MAAMA,EAAY,IAAQC,IAAiF,CAChH,MAAMC,EAAoBD,EAAU,OAAO,OAAO,EAElD,OAAIC,EAAkB,QAAU,EACbA,EAAkB,CAAC,GAEjB,KAWd,SAAoBC,EAAU,CACnCD,EAAkB,QAASE,GAAQ,CAC7B,OAAOA,GAAQ,WACjBA,EAAID,CAAQ,EACHC,IACPA,EAAyC,QAAUD,EAEzD,CAAC,CACH,CACF"}