@tendaui/react 1.1.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.
- package/LICENSE +21 -0
- package/README.md +2 -0
- package/es/_chunks/dep-0QH2Ee4R.js +34 -0
- package/es/_chunks/dep-0QH2Ee4R.js.map +1 -0
- package/es/_chunks/dep-B7HmDtze.js +199 -0
- package/es/_chunks/dep-B7HmDtze.js.map +1 -0
- package/es/_chunks/dep-BH5n5r1M.js +55 -0
- package/es/_chunks/dep-BH5n5r1M.js.map +1 -0
- package/es/_chunks/dep-BP0-apUT.js +9 -0
- package/es/_chunks/dep-BP0-apUT.js.map +1 -0
- package/es/_chunks/dep-C1XcmShP.js +18 -0
- package/es/_chunks/dep-C1XcmShP.js.map +1 -0
- package/es/_chunks/dep-C36au4Ip.js +104 -0
- package/es/_chunks/dep-C36au4Ip.js.map +1 -0
- package/es/_chunks/dep-CgyDw_YI.js +20 -0
- package/es/_chunks/dep-CgyDw_YI.js.map +1 -0
- package/es/_chunks/dep-CoIiHOgo.js +162 -0
- package/es/_chunks/dep-CoIiHOgo.js.map +1 -0
- package/es/_chunks/dep-Cwish4GD.js +29 -0
- package/es/_chunks/dep-Cwish4GD.js.map +1 -0
- package/es/_chunks/dep-CzLhKWCf.js +56 -0
- package/es/_chunks/dep-CzLhKWCf.js.map +1 -0
- package/es/_chunks/dep-D-UKOauR.js +12 -0
- package/es/_chunks/dep-D-UKOauR.js.map +1 -0
- package/es/_chunks/dep-D6YxJv-F.js +31 -0
- package/es/_chunks/dep-D6YxJv-F.js.map +1 -0
- package/es/_chunks/dep-D7LanWes.js +171 -0
- package/es/_chunks/dep-D7LanWes.js.map +1 -0
- package/es/_chunks/dep-D8jki30S.js +31 -0
- package/es/_chunks/dep-D8jki30S.js.map +1 -0
- package/es/_chunks/dep-DB5wmwh1.js +48 -0
- package/es/_chunks/dep-DB5wmwh1.js.map +1 -0
- package/es/_chunks/dep-DGvfel3I.js +16 -0
- package/es/_chunks/dep-DGvfel3I.js.map +1 -0
- package/es/_chunks/dep-DHWwZ2Nj.js +139 -0
- package/es/_chunks/dep-DHWwZ2Nj.js.map +1 -0
- package/es/_chunks/dep-DN7d1SzH.js +24 -0
- package/es/_chunks/dep-DN7d1SzH.js.map +1 -0
- package/es/_chunks/dep-DZ_0EvBk.js +440 -0
- package/es/_chunks/dep-DZ_0EvBk.js.map +1 -0
- package/es/_chunks/dep-Dk2xX8lh.js +691 -0
- package/es/_chunks/dep-Dk2xX8lh.js.map +1 -0
- package/es/_chunks/dep-DwWrhxkd.js +26 -0
- package/es/_chunks/dep-DwWrhxkd.js.map +1 -0
- package/es/_chunks/dep-EcrDKDlu.js +1677 -0
- package/es/_chunks/dep-EcrDKDlu.js.map +1 -0
- package/es/_chunks/dep-PPA-yoAy.js +16 -0
- package/es/_chunks/dep-PPA-yoAy.js.map +1 -0
- package/es/_chunks/dep-U1T8CQY9.js +4 -0
- package/es/_chunks/dep-U1T8CQY9.js.map +1 -0
- package/es/_chunks/dep-bWaVq_y3.js +14 -0
- package/es/_chunks/dep-bWaVq_y3.js.map +1 -0
- package/es/_chunks/dep-u1x3x6MJ.js +9 -0
- package/es/_chunks/dep-u1x3x6MJ.js.map +1 -0
- package/es/alert/Alert.js +153 -0
- package/es/alert/Alert.js.map +1 -0
- package/es/alert/index.js +23 -0
- package/es/alert/index.js.map +1 -0
- package/es/alert/style/css.js +1 -0
- package/es/alert/style/index.css +172 -0
- package/es/alert/style/index.js +2 -0
- package/es/alert/style/index.js.map +1 -0
- package/es/badge/Badge.js +81 -0
- package/es/badge/Badge.js.map +1 -0
- package/es/badge/index.js +15 -0
- package/es/badge/index.js.map +1 -0
- package/es/badge/style/css.js +1 -0
- package/es/badge/style/index.css +60 -0
- package/es/badge/style/index.js +2 -0
- package/es/badge/style/index.js.map +1 -0
- package/es/button/Button.js +94 -0
- package/es/button/Button.js.map +1 -0
- package/es/button/index.js +28 -0
- package/es/button/index.js.map +1 -0
- package/es/button/style/css.js +1 -0
- package/es/button/style/index.css +1206 -0
- package/es/button/style/index.js +2 -0
- package/es/button/style/index.js.map +1 -0
- package/es/checkbox/Checkbox.js +17 -0
- package/es/checkbox/Checkbox.js.map +1 -0
- package/es/checkbox/CheckboxGroup.js +17 -0
- package/es/checkbox/CheckboxGroup.js.map +1 -0
- package/es/checkbox/index.js +22 -0
- package/es/checkbox/index.js.map +1 -0
- package/es/checkbox/style/css.js +1 -0
- package/es/checkbox/style/index.css +151 -0
- package/es/checkbox/style/index.js +2 -0
- package/es/checkbox/style/index.js.map +1 -0
- package/es/common/Check.js +101 -0
- package/es/common/Check.js.map +1 -0
- package/es/common/FakeArrow.js +28 -0
- package/es/common/FakeArrow.js.map +1 -0
- package/es/common/PluginContainer.js +19 -0
- package/es/common/PluginContainer.js.map +1 -0
- package/es/common/Portal.js +53 -0
- package/es/common/Portal.js.map +1 -0
- package/es/config-provider/ConfigContext.js +17 -0
- package/es/config-provider/ConfigContext.js.map +1 -0
- package/es/config-provider/ConfigProvider.js +45 -0
- package/es/config-provider/ConfigProvider.js.map +1 -0
- package/es/config-provider/index.js +12 -0
- package/es/config-provider/index.js.map +1 -0
- package/es/dialog/Dialog.js +575 -0
- package/es/dialog/Dialog.js.map +1 -0
- package/es/dialog/DialogCard.js +28 -0
- package/es/dialog/DialogCard.js.map +1 -0
- package/es/dialog/index.js +44 -0
- package/es/dialog/index.js.map +1 -0
- package/es/dialog/plugin.js +199 -0
- package/es/dialog/plugin.js.map +1 -0
- package/es/dialog/style/css.js +1 -0
- package/es/dialog/style/index.css +510 -0
- package/es/dialog/style/index.js +2 -0
- package/es/dialog/style/index.js.map +1 -0
- package/es/form/Form.js +190 -0
- package/es/form/Form.js.map +1 -0
- package/es/form/FormContext.js +38 -0
- package/es/form/FormContext.js.map +1 -0
- package/es/form/FormItem.js +39 -0
- package/es/form/FormItem.js.map +1 -0
- package/es/form/FormList.js +306 -0
- package/es/form/FormList.js.map +1 -0
- package/es/form/hooks/useFormItemStyle.js +10 -0
- package/es/form/hooks/useFormItemStyle.js.map +1 -0
- package/es/form/hooks/useInstance.js +326 -0
- package/es/form/hooks/useInstance.js.map +1 -0
- package/es/form/index.js +47 -0
- package/es/form/index.js.map +1 -0
- package/es/form/style/css.js +1 -0
- package/es/form/style/index.css +296 -0
- package/es/form/style/index.js +2 -0
- package/es/form/style/index.js.map +1 -0
- package/es/form/utils/index.js +75 -0
- package/es/form/utils/index.js.map +1 -0
- package/es/hooks/useDragSorter.js +137 -0
- package/es/hooks/useDragSorter.js.map +1 -0
- package/es/index.js +103 -0
- package/es/index.js.map +1 -0
- package/es/input/Input.js +375 -0
- package/es/input/Input.js.map +1 -0
- package/es/input/InputGroup.js +23 -0
- package/es/input/InputGroup.js.map +1 -0
- package/es/input/index.js +23 -0
- package/es/input/index.js.map +1 -0
- package/es/input/style/css.js +1 -0
- package/es/input/style/index.css +450 -0
- package/es/input/style/index.js +2 -0
- package/es/input/style/index.js.map +1 -0
- package/es/loading/Gradient.js +86 -0
- package/es/loading/Gradient.js.map +1 -0
- package/es/loading/Loading.js +147 -0
- package/es/loading/Loading.js.map +1 -0
- package/es/loading/index.js +24 -0
- package/es/loading/index.js.map +1 -0
- package/es/loading/style/css.js +1 -0
- package/es/loading/style/index.css +191 -0
- package/es/loading/style/index.js +2 -0
- package/es/loading/style/index.js.map +1 -0
- package/es/myform/index.js +2 -0
- package/es/myform/index.js.map +1 -0
- package/es/notification/NotifyContainer.js +78 -0
- package/es/notification/NotifyContainer.js.map +1 -0
- package/es/notification/NotifyContext.js +149 -0
- package/es/notification/NotifyContext.js.map +1 -0
- package/es/notification/NotifyItem.js +150 -0
- package/es/notification/NotifyItem.js.map +1 -0
- package/es/notification/index.js +32 -0
- package/es/notification/index.js.map +1 -0
- package/es/notification/style/css.js +1 -0
- package/es/notification/style/index.css +142 -0
- package/es/notification/style/index.js +2 -0
- package/es/notification/style/index.js.map +1 -0
- package/es/popup/Popup.js +790 -0
- package/es/popup/Popup.js.map +1 -0
- package/es/popup/index.js +28 -0
- package/es/popup/index.js.map +1 -0
- package/es/popup/style/css.js +1 -0
- package/es/popup/style/index.css +186 -0
- package/es/popup/style/index.js +2 -0
- package/es/popup/style/index.js.map +1 -0
- package/es/portal/Portal.js +48 -0
- package/es/portal/Portal.js.map +1 -0
- package/es/portal/index.js +7 -0
- package/es/portal/index.js.map +1 -0
- package/es/select/Option.js +118 -0
- package/es/select/Option.js.map +1 -0
- package/es/select/OptionGroup.js +9 -0
- package/es/select/OptionGroup.js.map +1 -0
- package/es/select/PopupContent.js +16 -0
- package/es/select/PopupContent.js.map +1 -0
- package/es/select/Select.js +709 -0
- package/es/select/Select.js.map +1 -0
- package/es/select/index.js +66 -0
- package/es/select/index.js.map +1 -0
- package/es/select/style/css.js +1 -0
- package/es/select/style/index.css +437 -0
- package/es/select/style/index.js +2 -0
- package/es/select/style/index.js.map +1 -0
- package/es/select-input/SelectInput.js +202 -0
- package/es/select-input/SelectInput.js.map +1 -0
- package/es/select-input/hook/useMultiple.js +118 -0
- package/es/select-input/hook/useMultiple.js.map +1 -0
- package/es/select-input/hook/useSingle.js +105 -0
- package/es/select-input/hook/useSingle.js.map +1 -0
- package/es/select-input/index.js +51 -0
- package/es/select-input/index.js.map +1 -0
- package/es/select-input/style/css.js +1 -0
- package/es/select-input/style/index.css +0 -0
- package/es/select-input/style/index.js +2 -0
- package/es/select-input/style/index.js.map +1 -0
- package/es/space/index.js +2 -0
- package/es/space/index.js.map +1 -0
- package/es/style/index.css +490 -0
- package/es/style/index.js +2 -0
- package/es/style/index.js.map +1 -0
- package/es/switch/Switch.js +174 -0
- package/es/switch/Switch.js.map +1 -0
- package/es/switch/index.js +28 -0
- package/es/switch/index.js.map +1 -0
- package/es/switch/style/css.js +1 -0
- package/es/switch/style/index.css +239 -0
- package/es/switch/style/index.js +2 -0
- package/es/switch/style/index.js.map +1 -0
- package/es/tag/Tag.js +1312 -0
- package/es/tag/Tag.js.map +1 -0
- package/es/tag/index.js +21 -0
- package/es/tag/index.js.map +1 -0
- package/es/tag/style/css.js +1 -0
- package/es/tag/style/index.css +236 -0
- package/es/tag/style/index.js +2 -0
- package/es/tag/style/index.js.map +1 -0
- package/es/tag-input/TagInput.js +360 -0
- package/es/tag-input/TagInput.js.map +1 -0
- package/es/tag-input/hooks/useTagList.js +167 -0
- package/es/tag-input/hooks/useTagList.js.map +1 -0
- package/es/tag-input/index.js +35 -0
- package/es/tag-input/index.js.map +1 -0
- package/es/tag-input/style/css.js +1 -0
- package/es/tag-input/style/index.css +223 -0
- package/es/tag-input/style/index.js +2 -0
- package/es/tag-input/style/index.js.map +1 -0
- package/es/tag-input/useTagList.js +167 -0
- package/es/tag-input/useTagList.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dep-Dk2xX8lh.js","sources":["../../../components/select/utils/helper.ts","../../../components/hooks/useVirtualScroll.ts","../../../components/select/hooks/usePanelVirtualScroll.ts","../../../components/select/PopupContent.tsx"],"sourcesContent":["import { ReactElement } from \"react\";\nimport { isPlainObject, get } from \"lodash-es\";\nimport OptionGroup from \"../OptionGroup\";\nimport Option from \"../Option\";\n\nimport { SelectValue, TdOptionProps, SelectKeysType, TdSelectProps, SelectOption, SelectOptionGroup } from \"../type\";\n\ntype SelectLabeledValue = Required<Omit<TdOptionProps, \"disabled\">>;\n\nexport function isSelectOptionGroup(option: SelectOption): option is SelectOptionGroup {\n return !!option && \"group\" in option && \"children\" in option;\n}\n\nexport type ValueToOption = {\n [value: string | number]: TdOptionProps;\n};\n\nfunction setValueToOptionFormOptionDom(dom: ReactElement, valueToOption: ValueToOption, keys: SelectKeysType) {\n const { value, label, children } = dom.props;\n\n valueToOption[value] = {\n ...dom.props,\n [keys?.value || \"value\"]: value,\n [keys?.label || \"label\"]: label || children || value\n };\n}\n\n// 获取 value => option,用于快速基于 value 找到对应的 option\nexport const getValueToOption = (\n children: ReactElement,\n options: SelectOption[],\n keys: SelectKeysType\n): ValueToOption => {\n const valueToOption = {};\n\n // options 优先级高于 children\n if (Array.isArray(options)) {\n options.forEach((option) => {\n if (isSelectOptionGroup(option)) {\n option.children?.forEach((child) => {\n valueToOption[get(child, keys?.value || \"value\")] = {\n ...child,\n value: get(child, keys?.value || \"value\"),\n label: get(child, keys?.label || \"label\")\n };\n });\n } else {\n valueToOption[get(option, keys?.value || \"value\")] = {\n ...(option as object),\n value: get(option, keys?.value || \"value\"),\n label: get(option, keys?.label || \"label\")\n } as never;\n }\n });\n return valueToOption;\n }\n\n if (isPlainObject(children)) {\n if (children.type === Option) {\n setValueToOptionFormOptionDom(children, valueToOption, keys);\n return valueToOption;\n }\n\n if (children.type === OptionGroup) {\n const groupChildren = children.props.children;\n\n if (Array.isArray(groupChildren)) {\n groupChildren.forEach((item) => {\n setValueToOptionFormOptionDom(item, valueToOption, keys);\n });\n return valueToOption;\n }\n }\n }\n\n /**\n * children如果存在ReactElement和map函数混写的情况,会出现嵌套数组\n */\n if (Array.isArray(children)) {\n const handlerElement = (item: ReactElement) => {\n if (item.type === Option) {\n setValueToOptionFormOptionDom(item, valueToOption, keys);\n }\n\n if (item.type === OptionGroup) {\n const groupChildren = (item.props as SelectOption).children;\n if (Array.isArray(groupChildren)) {\n groupChildren.forEach((groupItem) => {\n setValueToOptionFormOptionDom(groupItem, valueToOption, keys);\n });\n }\n }\n\n if (Array.isArray(item)) {\n item.forEach((child) => {\n handlerElement(child);\n });\n }\n };\n children.forEach((item: ReactElement) => handlerElement(item));\n }\n\n return valueToOption;\n};\n\n// 获取单选的 label\nexport const getLabel = (\n children: ReactElement,\n value: SelectValue<TdOptionProps>,\n options: TdOptionProps[],\n keys: SelectKeysType\n) => {\n let selectedLabel = \"\";\n // 处理带 options 属性的情况\n if (Array.isArray(options)) {\n options.some((option) => {\n if ([get(value, keys?.value || \"value\"), value].includes(option.value)) {\n selectedLabel = option.label;\n return true;\n }\n return false;\n });\n\n return selectedLabel;\n }\n\n if (isPlainObject(children)) {\n selectedLabel = children.props.label;\n\n if (children.type === OptionGroup) {\n const groupChildren = children.props.children;\n\n if (Array.isArray(groupChildren)) {\n groupChildren.some((item) => {\n const selectedValue = isPlainObject(value) ? get(value, \"value\") : value;\n if (isPlainObject(item.props) && item.props.value === selectedValue) {\n selectedLabel = item.props.label || item.props.children;\n return true;\n }\n return false;\n });\n }\n }\n }\n\n if (Array.isArray(children)) {\n children.some((item: ReactElement) => {\n // 处理分组\n if (item.type === OptionGroup) {\n const groupChildren = item.props.children;\n if (Array.isArray(groupChildren)) {\n const isSelected = groupChildren.some((item) => {\n const selectedValue = isPlainObject(value) ? get(value, \"value\") : value;\n if (isPlainObject(item.props) && item.props.value === selectedValue) {\n selectedLabel = item.props.label || item.props.children;\n return true;\n }\n return false;\n });\n return isSelected;\n }\n }\n const selectedValue = isPlainObject(value) ? get(value, \"value\") : value;\n if (isPlainObject(item.props) && item.props.value === selectedValue) {\n selectedLabel = item.props.label || item.props.children;\n return true;\n }\n return false;\n });\n }\n\n return selectedLabel;\n};\n\nexport const getMultipleTags = (values: SelectValue[], keys: SelectKeysType) => {\n const tags = values.map((item) => ({\n label: get(item, keys?.label || \"label\") || item.toString(),\n value: get(item, keys?.value || \"value\") || item\n }));\n return tags;\n};\n\nexport const getSelectValueArr = (\n values: SelectValue | SelectValue[],\n activeValue: SelectValue,\n selected?: boolean,\n valueType?: TdSelectProps[\"valueType\"],\n keys?: SelectKeysType,\n objVal?: SelectValue\n) => {\n values = Array.isArray(values) ? values : [];\n\n if (Array.isArray(values)) {\n let currentValues = [...values];\n const isValueObj = valueType === \"object\";\n if (selected) {\n currentValues = currentValues.filter((item: SelectLabeledValue) => {\n if (isValueObj) {\n if (isPlainObject(activeValue)) {\n return get(item, keys?.value || \"value\") !== get(activeValue, keys?.value || \"value\");\n }\n return get(item, keys?.value || \"value\") !== activeValue;\n }\n return item !== activeValue;\n });\n } else {\n const item = isValueObj ? objVal : activeValue;\n\n currentValues.push(item as SelectValue);\n }\n return currentValues;\n }\n};\n\n// 计算onChange事件回调的selectedOptions参数\nexport const getSelectedOptions = (\n value: SelectValue,\n multiple: TdSelectProps[\"multiple\"],\n valueType: TdSelectProps[\"valueType\"],\n keys: SelectKeysType,\n valueToOption: ValueToOption,\n selectedValue?: SelectValue\n) => {\n const isObjectType = valueType === \"object\";\n // 当前所有选中的选项\n let currentSelectedOptions = [];\n // 当前选中的选项\n let currentOption: SelectOption;\n // 全选值\n let allSelectedValue: Array<SelectValue>;\n // 所有可选项\n const tmpPropOptions = Object.values(valueToOption);\n if (multiple) {\n currentSelectedOptions = isObjectType\n ? (value as Array<SelectValue>)\n : tmpPropOptions?.filter?.((v) => (value as Array<string | number>).includes?.(v[keys?.value || \"value\"]));\n\n allSelectedValue = isObjectType\n ? currentSelectedOptions\n : currentSelectedOptions?.map((v) => v[keys?.value || \"value\"]);\n\n currentOption = isObjectType\n ? (value as Array<SelectValue>).find((v) => v[keys?.value || \"value\"] === selectedValue)\n : currentSelectedOptions?.find((option) => option[keys?.value || \"value\"] === selectedValue);\n } else {\n currentSelectedOptions = isObjectType\n ? [value]\n : tmpPropOptions?.filter?.((v) => value === v[keys?.value || \"value\"]) || [];\n allSelectedValue = currentSelectedOptions;\n currentOption = isObjectType\n ? value\n : currentSelectedOptions?.find((option) => option[keys?.value || \"value\"] === selectedValue);\n }\n\n return { currentSelectedOptions, currentOption, allSelectedValue };\n};\n","/**\n * 通用虚拟滚动,可支持 Select/List/Table/TreeSelect/Cascader 等组件\n */\nimport { MutableRefObject, useEffect, useMemo, useRef, useState } from \"react\";\nimport { isEqual } from \"lodash-es\";\nimport type { ScrollToElementParams, TScroll } from \"../common\";\n\nexport type UseVirtualScrollParams = {\n /** 列数据 */\n data: { [key: string]: unknown }[];\n scroll: TScroll & {\n fixedRows?: Array<number>;\n };\n};\n\nconst requestAnimationFrame =\n (typeof window === \"undefined\" ? false : window.requestAnimationFrame) || ((cb) => setTimeout(cb, 16.6));\n\nconst useVirtualScroll = (container: MutableRefObject<HTMLElement>, params: UseVirtualScrollParams) => {\n const { data, scroll } = params;\n const dataRef = useRef(data);\n\n /** 注意测试:数据长度为空;数据长度小于表格高度等情况。即期望只有数据量达到一定程度才允许开启虚拟滚动 */\n const [visibleData, setVisibleData] = useState<unknown[]>([]);\n // 滚动过程中表格顶部占位距离\n const [translateY, setTranslateY] = useState(() => (data?.length || 0) * (scroll?.rowHeight || 50));\n // 滚动高度,用于显示滚动条\n const [scrollHeight, setScrollHeight] = useState(0);\n const trScrollTopHeightList = useRef<number[]>([]);\n // 已经通过节点渲染计算出来的各自行高\n const [trHeightList, setTrHeightList] = useState<number[]>([]);\n const containerHeight = useRef(0);\n const [startAndEndIndex, setStartAndEndIndex] = useState<[number, number]>(() => [0, (scroll?.bufferSize || 10) * 3]);\n\n // 设置初始值\n const tScroll = useMemo(() => {\n if (!scroll) return {};\n return {\n bufferSize: scroll.bufferSize || 10,\n isFixedRowHeight: scroll.isFixedRowHeight ?? false,\n rowHeight: scroll.rowHeight || 47,\n threshold: scroll.threshold || 100,\n type: scroll.type,\n fixedRows: scroll.fixedRows ?? [0, 0]\n };\n }, [scroll]);\n\n // 当前场景是否满足开启虚拟滚动的条件\n const isVirtualScroll = useMemo(() => tScroll.type === \"virtual\" && tScroll.threshold < data.length, [tScroll, data]);\n const getTrScrollTopHeightList = (trHeightList: number[]) => {\n const list: number[] = [];\n // 大数据场景不建议使用 forEach 一类函数迭代\n // 当前行滚动高度 = 上一行滚动高度 + 当前行高度\n for (let i = 0, len = data.length; i < len; i++) {\n list[i] = (list[i - 1] || 0) + (trHeightList[i] || tScroll.rowHeight);\n }\n return list;\n };\n\n const updateVisibleData = (trScrollTopHeightList: number[], scrollTop: number) => {\n let currentIndex = -1;\n // 获取当前滚动到哪一个元素(大数据场景不建议使用 forEach 一类函数迭代)\n for (let i = 0, len = trScrollTopHeightList.length; i < len; i++) {\n if (trScrollTopHeightList[i] >= scrollTop) {\n currentIndex = i;\n break;\n }\n }\n let lastIndex = trScrollTopHeightList.length;\n const containerCurrentHeight = containerHeight.current || container.current.getBoundingClientRect().height;\n const scrollBottom = scrollTop + containerCurrentHeight;\n // 获取当前视窗的最后一个元素(大数据场景不建议使用 forEach 一类函数迭代)\n for (let i = currentIndex, len = trScrollTopHeightList.length; i < len; i++) {\n if (trScrollTopHeightList[i] >= scrollBottom) {\n lastIndex = i;\n break;\n }\n }\n if (currentIndex < 0) return;\n const startIndex = Math.max(currentIndex - tScroll.bufferSize, 0);\n const endIndex = Math.min(lastIndex + tScroll.bufferSize, trScrollTopHeightList.length);\n\n // 计算固定行情况\n const { fixedRows } = tScroll;\n const [fixedStart, fixedEnd] = fixedRows;\n let fixedStartData = fixedStart ? data.slice(0, fixedStart) : [];\n if (fixedStart && startIndex < fixedStart) {\n fixedStartData = fixedStartData.slice(0, startIndex);\n }\n let fixedEndData = fixedEnd ? data.slice(data.length - fixedEnd) : [];\n const bottomStartIndex = endIndex - data.length + 1 + (fixedEnd ?? 0);\n if (fixedEnd && bottomStartIndex > 0) {\n fixedEndData = fixedEndData.slice(bottomStartIndex);\n }\n\n if (startAndEndIndex.join() !== [startIndex, endIndex].join() && startIndex >= 0) {\n const tmpVisibleData = fixedStartData.concat(data.slice(startIndex, endIndex)).concat(fixedEndData);\n setVisibleData(tmpVisibleData);\n const lastScrollTop = trScrollTopHeightList[startIndex - 1];\n const top = lastScrollTop > 0 ? lastScrollTop : 0;\n const stickyHeight = trScrollTopHeightList[Math.min(startIndex, fixedStart) - 1] || 0;\n setTranslateY(top - stickyHeight);\n setStartAndEndIndex([startIndex, endIndex]);\n }\n };\n\n // 仅非固定高度场景需要\n const handleRowMounted = (rowData: { ref: HTMLElement; data: { __VIRTUAL_SCROLL_INDEX: number } }) => {\n if (!isVirtualScroll || !rowData || tScroll.isFixedRowHeight || !container?.current) return;\n const trHeight = rowData.ref.offsetHeight;\n\n const rowIndex = rowData.data.__VIRTUAL_SCROLL_INDEX;\n const newTrHeightList = [...trHeightList];\n if (newTrHeightList[rowIndex] !== trHeight) {\n newTrHeightList[rowIndex] = trHeight;\n setTrHeightList(newTrHeightList);\n\n const scrollTopHeightList = getTrScrollTopHeightList(newTrHeightList);\n trScrollTopHeightList.current = scrollTopHeightList;\n\n const lastIndex = scrollTopHeightList.length - 1;\n setScrollHeight(scrollTopHeightList[lastIndex] - containerHeight.current);\n updateVisibleData(scrollTopHeightList, container.current.scrollTop);\n }\n };\n\n const handleScroll = () => {\n if (!isVirtualScroll) return;\n updateVisibleData(trScrollTopHeightList.current, container.current.scrollTop);\n };\n\n const addIndexToData = (data: { [key: string]: unknown }[]) => {\n data.forEach((item, index) => {\n Reflect.set(item, \"__VIRTUAL_SCROLL_INDEX\", index);\n });\n };\n\n const updateScrollTop = ({ index, top = 0, behavior }: ScrollToElementParams) => {\n const scrollTop = trScrollTopHeightList.current[index] - top;\n container.current?.scrollTo({\n top: scrollTop,\n behavior: behavior || \"auto\"\n });\n };\n\n /**\n * 滚动到指定元素(对外暴露的方法,谨慎修改)\n */\n const scrollToElement = (p: ScrollToElementParams) => {\n updateScrollTop(p);\n if (!tScroll.isFixedRowHeight) {\n requestAnimationFrame(() => {\n const duration = p.time ?? 60;\n const timer = setTimeout(() => {\n updateScrollTop(p);\n clearTimeout(timer);\n }, duration);\n });\n }\n };\n\n // 固定高度场景,可直接通过数据长度计算出最大滚动高度\n useEffect(\n () => {\n if (!isVirtualScroll) {\n trScrollTopHeightList.current = getTrScrollTopHeightList(trHeightList);\n return;\n }\n\n // 给数据添加下标\n addIndexToData(data);\n\n const scrollTopHeightList = trScrollTopHeightList.current;\n const dataChanged = !isEqual(dataRef.current, data);\n\n if (scrollTopHeightList?.length === data?.length && !dataChanged) {\n // 正常滚动时更新可见数据\n const lastIndex = scrollTopHeightList.length - 1;\n setScrollHeight(scrollTopHeightList[lastIndex]);\n\n updateVisibleData(scrollTopHeightList, container.current.scrollTop);\n } else {\n /**\n /* 进入这个分支的场景可能有:\n * - 初始化\n * - 从非虚拟滚动切换到虚拟滚动\n * - 外部数据动态更新(长度变化、内容结构变化等)\n */\n dataRef.current = data;\n setScrollHeight(data.length * tScroll.rowHeight);\n\n // 如果之前存在滚动,基于原先数据计算位置\n const currentScrollTop = container.current?.scrollTop || 0;\n let currentIndex = Math.floor(currentScrollTop / tScroll.rowHeight);\n const prevScrollTopHeightList = trScrollTopHeightList.current;\n for (let i = 0; i < prevScrollTopHeightList?.length; i++) {\n if (prevScrollTopHeightList[i] >= currentScrollTop) {\n currentIndex = i;\n break;\n }\n }\n\n const startIndex = Math.max(currentIndex - tScroll.bufferSize, 0);\n const visibleCount = Math.min(tScroll.bufferSize * 3, data.length);\n const endIndex = Math.min(startIndex + visibleCount, data.length);\n const tmpData = data.slice(startIndex, endIndex);\n\n let translateY = startIndex * tScroll.rowHeight;\n\n if (prevScrollTopHeightList?.length > 0 && startIndex > 0) {\n const prevHeight = prevScrollTopHeightList[Math.min(startIndex - 1, prevScrollTopHeightList.length - 1)] || 0;\n translateY = Math.max(0, prevHeight);\n }\n\n setVisibleData(tmpData);\n setTranslateY(translateY);\n }\n\n const timer = setTimeout(() => {\n if (container.current) {\n const tmpContainerHeight = container.current.getBoundingClientRect().height;\n containerHeight.current = tmpContainerHeight;\n const scrollTopHeightList = getTrScrollTopHeightList(trHeightList);\n trScrollTopHeightList.current = scrollTopHeightList;\n clearTimeout(timer);\n }\n }, 1);\n },\n // eslint-disable-next-line\n [container, data, tScroll, isVirtualScroll, startAndEndIndex, trHeightList]\n );\n\n return {\n visibleData,\n translateY,\n scrollHeight,\n isVirtualScroll,\n handleScroll,\n handleRowMounted,\n scrollToElement\n };\n};\n\nexport type VirtualScrollConfig = ReturnType<typeof useVirtualScroll>;\n\nexport default useVirtualScroll;\n","import { useEffect, useMemo, MutableRefObject, useCallback, CSSProperties } from \"react\";\nimport useVirtualScroll from \"../../hooks/useVirtualScroll\";\nimport { TdSelectProps } from \"../type\";\nimport { TScroll, SizeEnum } from \"../../common\";\n\ninterface PanelVirtualScroll {\n scroll?: TdSelectProps[\"scroll\"];\n popupContentRef: MutableRefObject<HTMLDivElement>;\n options: TdSelectProps[\"options\"];\n size: SizeEnum;\n}\n\nconst usePanelVirtualScroll = ({ popupContentRef, scroll, options, size }: PanelVirtualScroll) => {\n const scrollThreshold = scroll?.threshold || 100;\n const scrollType = scroll?.type;\n\n const isVirtual = useMemo<boolean>(\n () => scrollType === \"virtual\" && options?.length > scrollThreshold,\n [scrollType, scrollThreshold, options]\n );\n\n const scrollParams = useMemo<TScroll>(() => {\n const heightMap = {\n small: 20,\n medium: 28,\n large: 36\n };\n const rowHeight = heightMap[size] || 28;\n return {\n type: \"virtual\",\n isFixedRowHeight: scroll?.isFixedRowHeight || false,\n rowHeight: scroll?.rowHeight || rowHeight,\n bufferSize: scroll?.bufferSize || 20,\n threshold: scrollThreshold\n };\n }, [scroll, scrollThreshold, size]);\n\n const {\n visibleData = null,\n handleScroll: handleVirtualScroll = null,\n scrollHeight = null,\n translateY = null,\n handleRowMounted = null\n } = useVirtualScroll(popupContentRef, {\n data: options || [],\n scroll: scrollParams\n });\n\n let lastScrollY = -1;\n\n const onInnerVirtualScroll = useCallback((e: WheelEvent) => {\n if (!isVirtual) {\n return;\n }\n const target = e.target as HTMLElement;\n const top = target.scrollTop;\n // 排除横向滚动触发的纵向虚拟滚动计算\n if (Math.abs(lastScrollY - top) > 5) {\n handleVirtualScroll();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n lastScrollY = top;\n } else {\n lastScrollY = -1;\n }\n }, []);\n\n // 监听popup滚动 处理虚拟滚动时的virtualData变化\n useEffect(() => {\n const popupContentDom = popupContentRef?.current;\n if (isVirtual) {\n popupContentDom?.addEventListener?.(\"scroll\", onInnerVirtualScroll);\n }\n return () => {\n // 卸载时取消监听\n if (isVirtual) {\n popupContentDom?.removeEventListener?.(\"scroll\", onInnerVirtualScroll);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isVirtual, onInnerVirtualScroll, popupContentRef.current]);\n\n const cursorStyle = {\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n transition: \"transform 0.2s\",\n transform: `translate(0, ${scrollHeight}px)`,\n MsTransform: `translate(0, ${scrollHeight}px)`,\n MozTransform: `translate(0, ${scrollHeight}px)`,\n WebkitTransform: `translate(0, ${scrollHeight}px)`\n } as CSSProperties;\n\n const panelStyle = {\n transform: `translate(0, ${translateY}px)`,\n MsTransform: `translate(0, ${translateY}px)`,\n MozTransform: `translate(0, ${translateY}px)`,\n WebkitTransform: `translate(0, ${translateY}px)`\n } as CSSProperties;\n\n return {\n scrollHeight,\n translateY,\n visibleData,\n handleRowMounted,\n isVirtual,\n cursorStyle,\n panelStyle\n };\n};\n\nexport default usePanelVirtualScroll;\n","import React, { Children, isValidElement, cloneElement, useRef, CSSProperties, useMemo } from \"react\";\nimport classNames from \"classnames\";\nimport { isEqual } from \"lodash-es\";\nimport { getSelectValueArr } from \"./utils/helper\";\nimport {\n TdSelectProps,\n SelectValue,\n TdOptionProps,\n SelectValueChangeTrigger,\n SelectOption,\n SelectOptionGroup\n} from \"./type\";\nimport useConfig from \"../hooks/useConfig\";\nimport usePanelVirtualScroll from \"./hooks/usePanelVirtualScroll\";\nimport Option, { SelectOptionProps } from \"./Option\";\nimport OptionGroup from \"./OptionGroup\";\n\ninterface SelectPopupProps\n extends Pick<\n TdSelectProps,\n | \"value\"\n | \"size\"\n | \"multiple\"\n | \"empty\"\n | \"options\"\n | \"max\"\n | \"loadingText\"\n | \"loading\"\n | \"valueType\"\n | \"keys\"\n | \"panelTopContent\"\n | \"panelBottomContent\"\n | \"scroll\"\n > {\n onChange?: (\n value: SelectValue,\n context?: {\n label?: string | number;\n value?: SelectValue;\n restData?: Record<string, unknown>;\n e: React.MouseEvent<HTMLLIElement>;\n trigger: SelectValueChangeTrigger;\n }\n ) => void;\n /**\n * 是否展示popup\n */\n showPopup: boolean;\n /**\n * 控制popup展示的函数\n */\n setShowPopup: (show: boolean) => void;\n children?: React.ReactNode;\n onCheckAllChange?: (checkAll: boolean, e: React.MouseEvent<HTMLLIElement>) => void;\n getPopupInstance?: () => HTMLDivElement;\n}\n\nconst PopupContent = React.forwardRef<HTMLDivElement, SelectPopupProps>((props, ref) => {\n const {\n value,\n size,\n max,\n multiple,\n showPopup,\n setShowPopup,\n empty,\n loadingText,\n loading,\n valueType,\n children,\n keys,\n panelTopContent,\n panelBottomContent,\n onChange,\n onCheckAllChange,\n getPopupInstance,\n options: propsOptions,\n scroll: propsScroll\n } = props;\n\n // 国际化文本初始化\n // const [local, t] = useLocaleReceiver('select');\n // const emptyText = t(local.empty);\n const popupContentRef = useRef<HTMLDivElement>(null);\n\n popupContentRef.current = getPopupInstance();\n\n const { visibleData, handleRowMounted, isVirtual, panelStyle, cursorStyle } = usePanelVirtualScroll({\n popupContentRef,\n scroll: propsScroll,\n options: propsOptions,\n size\n });\n\n // 全部可选选项\n const selectableOptions = useMemo(() => {\n const uniqueOptions = {};\n propsOptions?.forEach((option: SelectOption) => {\n if ((option as SelectOptionGroup).group) {\n (option as SelectOptionGroup).children.forEach((item) => {\n if (!item.disabled && !item.checkAll) {\n uniqueOptions[item.value] = item;\n }\n });\n } else if (!(option as TdOptionProps).disabled && !(option as TdOptionProps).checkAll) {\n uniqueOptions[(option as TdOptionProps).value] = option;\n }\n });\n return Object.values(uniqueOptions);\n }, [propsOptions]);\n\n const { classPrefix } = useConfig();\n if (!children && !propsOptions) {\n return null;\n }\n\n const onSelect: SelectOptionProps[\"onSelect\"] = (selectedValue, { label, selected, event, restData }) => {\n const isValObj = valueType === \"object\";\n let objVal = {};\n if (isValObj) {\n objVal = { ...restData };\n if (!keys?.label) {\n Object.assign(objVal, { label });\n }\n if (!keys?.value) {\n Object.assign(objVal, { value: selectedValue });\n }\n }\n\n if (!Object.keys(objVal).length) {\n Object.assign(objVal, {\n [keys?.label || \"label\"]: label,\n [keys?.value || \"value\"]: selectedValue\n });\n }\n\n if (multiple) {\n // calc multiple select values\n const values = getSelectValueArr(value, selectedValue, selected, valueType, keys, objVal);\n onChange(values, {\n label,\n value: selectedValue,\n e: event,\n trigger: selected ? \"uncheck\" : \"check\"\n });\n } else {\n // calc single select value\n const selectVal = valueType === \"object\" ? objVal : selectedValue;\n\n if (!isEqual(value, selectVal)) {\n onChange(selectVal, {\n label,\n value: selectVal,\n e: event,\n trigger: \"check\"\n });\n }\n setShowPopup(!showPopup);\n }\n };\n\n const childrenWithProps = Children.map(children, (child) => {\n if (isValidElement(child)) {\n const addedProps = {\n size,\n max,\n multiple,\n selectedValue: value,\n onSelect\n };\n return cloneElement(child, { ...addedProps });\n }\n return child;\n });\n\n // 渲染 options\n const renderOptions = (options: SelectOption[]) => {\n if (options) {\n // 通过 options API配置的\n return (\n <ul className={`${classPrefix}-select__list`}>\n {options.map((item, index) => {\n const { group, divider, ...rest } = item as SelectOptionGroup;\n if (group) {\n return (\n <OptionGroup label={group} divider={divider} key={index}>\n {renderOptions(rest.children)}\n </OptionGroup>\n );\n }\n\n const { value: optionValue, label, disabled, content, children, ...restData } = item as TdOptionProps;\n return (\n <Option\n key={index}\n max={max}\n label={label}\n value={optionValue}\n onSelect={onSelect}\n selectedValue={value}\n optionLength={selectableOptions.length}\n multiple={multiple}\n size={size}\n disabled={disabled}\n restData={restData}\n keys={keys}\n content={content}\n onCheckAllChange={onCheckAllChange}\n onRowMounted={handleRowMounted}\n {...(isVirtual\n ? {\n isVirtual,\n bufferSize: propsScroll?.bufferSize,\n scrollType: propsScroll?.type\n }\n : {})}\n {...restData}\n >\n {children}\n </Option>\n );\n })}\n </ul>\n );\n }\n return <ul className={`${classPrefix}-select__list`}>{childrenWithProps}</ul>;\n };\n\n const isEmpty =\n (Array.isArray(childrenWithProps) && !childrenWithProps.length) || (propsOptions && propsOptions.length === 0);\n\n const renderPanel = (renderedOptions: SelectOption[], extraStyle?: CSSProperties) => (\n <div\n ref={ref}\n className={classNames(`${classPrefix}-select__dropdown-inner`, {\n [`${classPrefix}-select__dropdown-inner--size-s`]: size === \"small\",\n [`${classPrefix}-select__dropdown-inner--size-l`]: size === \"large\",\n [`${classPrefix}-select__dropdown-inner--size-m`]: size === \"medium\"\n })}\n style={extraStyle}\n >\n {loading && <div className={`${classPrefix}-select__loading-tips`}>{loadingText}</div>}\n {!loading && isEmpty && <div className={`${classPrefix}-select__empty`}>{empty}</div>}\n {!loading && !isEmpty && renderOptions(renderedOptions)}\n </div>\n );\n if (isVirtual) {\n return (\n <>\n {panelTopContent}\n <div>\n <div style={cursorStyle}></div>\n {renderPanel(visibleData, panelStyle)}\n </div>\n {panelBottomContent}\n </>\n );\n }\n\n return (\n <>\n {panelTopContent}\n {renderPanel(propsOptions)}\n {panelBottomContent}\n </>\n );\n});\n\nPopupContent.displayName = \"PopupContent\";\n\nexport default PopupContent;\n"],"names":["isSelectOptionGroup","option","setValueToOptionFormOptionDom","dom","valueToOption","keys","_dom$props","props","value","label","children","_objectSpread","_defineProperty","getValueToOption","options","Array","isArray","forEach","_option$children","child","get","isPlainObject","type","Option","OptionGroup","groupChildren","item","handlerElement","groupItem","getLabel","selectedLabel","some","includes","selectedValue","isSelected","getMultipleTags","values","tags","map","toString","getSelectValueArr","activeValue","selected","valueType","objVal","currentValues","_toConsumableArray","isValueObj","filter","push","getSelectedOptions","multiple","isObjectType","currentSelectedOptions","currentOption","allSelectedValue","tmpPropOptions","Object","_tmpPropOptions$filte","_currentSelectedOptio","_currentSelectedOptio2","call","v","_value$includes","find","_tmpPropOptions$filte2","_currentSelectedOptio3","requestAnimationFrame","window","cb","setTimeout","useVirtualScroll","container","params","data","scroll","dataRef","useRef","_useState","useState","_useState2","_slicedToArray","visibleData","setVisibleData","_useState3","length","rowHeight","_useState4","translateY","setTranslateY","_useState5","_useState6","scrollHeight","setScrollHeight","trScrollTopHeightList","_useState7","_useState8","trHeightList","setTrHeightList","containerHeight","_useState9","bufferSize","_useState0","startAndEndIndex","setStartAndEndIndex","tScroll","useMemo","_scroll$isFixedRowHei","_scroll$fixedRows","isFixedRowHeight","threshold","fixedRows","isVirtualScroll","getTrScrollTopHeightList","list","i","len","updateVisibleData","scrollTop","currentIndex","lastIndex","containerCurrentHeight","current","getBoundingClientRect","height","scrollBottom","startIndex","Math","max","endIndex","min","_fixedRows","fixedStart","fixedEnd","fixedStartData","slice","fixedEndData","bottomStartIndex","join","tmpVisibleData","concat","lastScrollTop","top","stickyHeight","handleRowMounted","rowData","trHeight","ref","offsetHeight","rowIndex","__VIRTUAL_SCROLL_INDEX","newTrHeightList","scrollTopHeightList","handleScroll","addIndexToData","index","Reflect","set","updateScrollTop","_container$current","_ref$top","behavior","scrollTo","scrollToElement","p","_p$time","duration","time","timer","clearTimeout","useEffect","dataChanged","isEqual","_container$current2","currentScrollTop","floor","prevScrollTopHeightList","visibleCount","tmpData","prevHeight","tmpContainerHeight","usePanelVirtualScroll","popupContentRef","_ref","size","scrollThreshold","scrollType","isVirtual","scrollParams","heightMap","small","medium","large","_useVirtualScroll","_useVirtualScroll$vis","_useVirtualScroll$han","handleVirtualScroll","_useVirtualScroll$scr","_useVirtualScroll$tra","_useVirtualScroll$han2","lastScrollY","onInnerVirtualScroll","useCallback","e","target","abs","popupContentDom","_popupContentDom$addE","addEventListener","_popupContentDom$remo","removeEventListener","cursorStyle","position","width","transition","transform","MsTransform","MozTransform","WebkitTransform","panelStyle","PopupContent","React","forwardRef","showPopup","setShowPopup","empty","loadingText","loading","panelTopContent","panelBottomContent","onChange","onCheckAllChange","getPopupInstance","propsOptions","propsScroll","_usePanelVirtualScrol","selectableOptions","uniqueOptions","group","disabled","checkAll","_useConfig","useConfig","classPrefix","onSelect","event","restData","isValObj","assign","trigger","selectVal","childrenWithProps","Children","isValidElement","addedProps","cloneElement","renderOptions","createElement","className","divider","rest","_excluded","key","optionValue","content","_objectWithoutProperties","_excluded2","optionLength","onRowMounted","isEmpty","renderPanel","renderedOptions","extraStyle","classNames","style","Fragment","displayName"],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { _ as _slicedToArray } from './dep-CzLhKWCf.js';
|
|
2
|
+
import { upperFirst } from 'lodash-es';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
|
|
5
|
+
var useControlled = function useControlled(props, valueKey, onChange) {
|
|
6
|
+
var defaultOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
7
|
+
var isControlled = Reflect.has(props, valueKey);
|
|
8
|
+
var value = props[valueKey];
|
|
9
|
+
var defaultKey = "default".concat(upperFirst(valueKey));
|
|
10
|
+
var defaultValue = defaultOptions[defaultKey] || props[defaultKey];
|
|
11
|
+
var _React$useState = React.useState(defaultValue),
|
|
12
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
13
|
+
internalValue = _React$useState2[0],
|
|
14
|
+
setInternalValue = _React$useState2[1];
|
|
15
|
+
if (isControlled) return [value, onChange || function () {}];
|
|
16
|
+
return [internalValue, function (newValue) {
|
|
17
|
+
setInternalValue(newValue);
|
|
18
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
19
|
+
args[_key - 1] = arguments[_key];
|
|
20
|
+
}
|
|
21
|
+
onChange === null || onChange === void 0 || onChange.apply(void 0, [newValue].concat(args));
|
|
22
|
+
}];
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export { useControlled as u };
|
|
26
|
+
//# sourceMappingURL=dep-DwWrhxkd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dep-DwWrhxkd.js","sources":["../../../components/hooks/useControlled.ts"],"sourcesContent":["import { upperFirst } from \"lodash-es\";\nimport React from \"react\";\ntype DefaultOptions<T extends string> = `default${Capitalize<T>}`;\nexport interface ChangeHander<T, P extends unknown[]> {\n (value: T, ...args: P): void;\n}\ntype ToString<T extends string | number | symbol> = T extends string ? T : `${Extract<T, number>}`;\nconst useControlled: <P extends unknown[], R extends object, K extends keyof R>(\n props: R,\n valueKey: K,\n onChange: ChangeHander<R[K], P>,\n defaultOptions?: { [key in DefaultOptions<ToString<K>>]: R[K] }\n) => [R[K], ChangeHander<R[K], P>] = (\n props,\n valueKey, // 默认受控属性为 value\n onChange,\n defaultOptions = {}\n) => {\n const isControlled = Reflect.has(props, valueKey);\n // 受控属性\n const value = props[valueKey];\n\n // 默认值\n const defaultKey = `default${upperFirst(valueKey as string)}`;\n const defaultValue = defaultOptions[defaultKey as keyof typeof defaultOptions] || props[defaultKey];\n\n const [internalValue, setInternalValue] = React.useState(defaultValue);\n\n if (isControlled) return [value, onChange || (() => {})];\n return [\n internalValue,\n (newValue, ...args) => {\n setInternalValue(newValue);\n onChange?.(newValue, ...args);\n }\n ];\n};\n\nexport default useControlled;\n"],"names":["useControlled","props","valueKey","onChange","defaultOptions","arguments","length","undefined","isControlled","Reflect","has","value","defaultKey","concat","upperFirst","defaultValue","_React$useState","React","useState","_React$useState2","_slicedToArray","internalValue","setInternalValue","newValue","_len","args","Array","_key","apply"],"mappings":";;;;AAOA,IAAMA,gBAK+B,SAL/BA,cAMJC,KAAA,EACAC,UACAC,QAAA,EAEG;AAAA,EAAA,IADHC,cAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAiB,EAAC;EAElB,IAAMG,YAAA,GAAeC,OAAA,CAAQC,GAAA,CAAIT,KAAA,EAAOC,QAAQ,CAAA;AAEhD,EAAA,IAAMS,KAAA,GAAQV,MAAMC,QAAQ,CAAA;EAG5B,IAAMU,UAAA,aAAAC,MAAA,CAAuBC,UAAA,CAAWZ,QAAkB,CAAC,CAAA;EAC3D,IAAMa,YAAA,GAAeX,cAAA,CAAeQ,UAAyC,CAAA,IAAKX,MAAMW,UAAU,CAAA;AAElG,EAAA,IAAAI,eAAA,GAA0CC,KAAA,CAAMC,SAASH,YAAY,CAAA;IAAAI,gBAAA,GAAAC,cAAA,CAAAJ,eAAA,EAAA,CAAA,CAAA;AAA9DK,IAAAA,aAAA,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAeG,IAAAA,gBAAgB,GAAAH,gBAAA,CAAA,CAAA,CAAA;EAEtC,IAAIX,YAAA,EAAc,OAAO,CAACG,KAAA,EAAOR,YAAa,YAAM,CAAC,CAAE,CAAA;AACvD,EAAA,OAAO,CACLkB,aAAA,EACA,UAACE,UAAsB;IACrBD,gBAAA,CAAiBC,QAAQ,CAAA;IAAA,KAAA,IAAAC,IAAA,GAAAnB,SAAA,CAAAC,MAAA,EADbmB,IAAA,OAAAC,KAAA,CAAAF,IAAA,GAAA,CAAA,GAAAA,IAAA,WAAAG,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA,EAAA,EAAA;AAAAF,MAAAA,IAAA,CAAAE,IAAA,GAAA,CAAA,CAAA,GAAAtB,SAAA,CAAAsB,IAAA,CAAA;AAAA,IAAA;AAEZxB,IAAAA,QAAA,KAAA,IAAA,IAAAA,QAAA,KAAA,KAAA,CAAA,IAAAA,QAAA,CAAAyB,KAAA,CAAA,KAAA,CAAA,EAAA,CAAWL,QAAA,CAAA,CAAAV,MAAA,CAAaY,IAAI,CAAA,CAAA;AAC9B,EAAA,CAAA,CACF;AACF;;;;"}
|