@flatbiz/antd 4.5.41 → 4.5.42
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/esm/_rollupPluginBabelHelpers-c0dbec57.js +3 -0
- package/esm/_rollupPluginBabelHelpers-c0dbec57.js.map +1 -0
- package/esm/ace-editor-groovy/index.js +1 -1
- package/esm/ace-editor-groovy/index.js.map +1 -1
- package/esm/ace-editor-java/index.js +1 -1
- package/esm/ace-editor-java/index.js.map +1 -1
- package/esm/ace-editor-json/index.js +1 -1
- package/esm/ace-editor-json/index.js.map +1 -1
- package/esm/ace-editor-mysql/index.js +1 -1
- package/esm/ace-editor-mysql/index.js.map +1 -1
- package/esm/ace-editor-xml/index.js +1 -1
- package/esm/ace-editor-xml/index.js.map +1 -1
- package/esm/alert-wrapper/index.js +1 -1
- package/esm/amount-fen-input/index.js +1 -1
- package/esm/amount-fen-input/index.js.map +1 -1
- package/esm/amount-fen-input-form-item/index.js +1 -1
- package/esm/anchor-steps/index.js +1 -1
- package/esm/anchor-steps/index.js.map +1 -1
- package/esm/block-layout/index.js +1 -1
- package/esm/bootstrap/index.js +1 -1
- package/esm/box-grid/index.js +1 -1
- package/esm/box-grid/index.js.map +1 -1
- package/esm/button-operate/index.js +1 -1
- package/esm/button-operate/index.js.map +1 -1
- package/esm/button-wrapper/index.js +1 -1
- package/esm/card-layout/index.js +1 -1
- package/esm/card-wrapper/index.js +1 -1
- package/esm/cascader-wrapper/index.js +1 -1
- package/esm/cascader-wrapper/index.js.map +1 -1
- package/esm/check-list/index.js +1 -1
- package/esm/check-list/index.js.map +1 -1
- package/esm/checkbox-wrapper/index.js +1 -1
- package/esm/checkbox-wrapper/index.js.map +1 -1
- package/esm/color-picker-wrapper/index.js +1 -1
- package/esm/color-picker-wrapper/index.js.map +1 -1
- package/esm/config-provider-wrapper/index.js +1 -1
- package/esm/create-drawer-wrapper-model/index.js.map +1 -1
- package/esm/create-modal-wrapper-model/index.js.map +1 -1
- package/esm/css-node-hover/index.js +1 -1
- package/esm/date-picker-wrapper/index.js +1 -1
- package/esm/date-picker-wrapper/index.js.map +1 -1
- package/esm/date-range-picker-wrapper/index.js +1 -1
- package/esm/date-range-picker-wrapper/index.js.map +1 -1
- package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
- package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
- package/esm/delete-node/index.js +1 -1
- package/esm/dialog-alert/index.js +1 -1
- package/esm/dialog-alert/index.js.map +1 -1
- package/esm/dialog-confirm/index.js +1 -1
- package/esm/dialog-confirm/index.js.map +1 -1
- package/esm/dialog-drawer/index.js +1 -1
- package/esm/dialog-drawer/index.js.map +1 -1
- package/esm/dialog-drawer-content/index.js +1 -1
- package/esm/dialog-loading/index.js +1 -1
- package/esm/dialog-loading/index.js.map +1 -1
- package/esm/dialog-modal/index.js +1 -1
- package/esm/dialog-modal/index.js.map +1 -1
- package/esm/dialog-preview-image/index.js +1 -1
- package/esm/dialog-preview-image/index.js.map +1 -1
- package/esm/drag-collapse/index.js +1 -1
- package/esm/drag-collapse/index.js.map +1 -1
- package/esm/drag-collapse-form-list/index.js +1 -1
- package/esm/drag-collapse-form-list/index.js.map +1 -1
- package/esm/drag-editable-card/index.js +1 -1
- package/esm/drag-editable-card/index.js.map +1 -1
- package/esm/drag-editable-table/index.js +1 -1
- package/esm/drag-editable-table/index.js.map +1 -1
- package/esm/drag-editable-table-pro/index.js +1 -1
- package/esm/drag-editable-table-pro/index.js.map +1 -1
- package/esm/drag-form-list/index.js +1 -1
- package/esm/drag-form-list/index.js.map +1 -1
- package/esm/drag-table/index.js +1 -1
- package/esm/drag-table/index.js.map +1 -1
- package/esm/drawer-wrapper/index.js +1 -1
- package/esm/dropdown-menu-wrapper/index.js +1 -1
- package/esm/dynamic-node/index.js +1 -1
- package/esm/dynamic-node/index.js.map +1 -1
- package/esm/easy-form/index.js +1 -1
- package/esm/easy-table/index.css +1 -1
- package/esm/easy-table/index.js +1 -1
- package/esm/easy-table/index.js.map +1 -1
- package/esm/editable-card/index.js +1 -1
- package/esm/editable-card/index.js.map +1 -1
- package/esm/editable-field/index.js +1 -1
- package/esm/editable-field/index.js.map +1 -1
- package/esm/editable-table/index.js +1 -1
- package/esm/editable-table/index.js.map +1 -1
- package/esm/editable-table-pro/index.js +1 -1
- package/esm/editable-table-pro/index.js.map +1 -1
- package/esm/editor-wrapper/index.js +1 -1
- package/esm/editor-wrapper/index.js.map +1 -1
- package/esm/error-boundary-wrapper/index.js +1 -1
- package/esm/error-boundary-wrapper/index.js.map +1 -1
- package/esm/fba-app/index.js +1 -1
- package/esm/fba-app/index.js.map +1 -1
- package/esm/fba-hooks/index.js +1 -1
- package/esm/file-export/index.js +1 -1
- package/esm/file-export/index.js.map +1 -1
- package/esm/file-import/index.js +1 -1
- package/esm/file-select/index.js +1 -1
- package/esm/file-select/index.js.map +1 -1
- package/esm/flex-layout/index.js +1 -1
- package/esm/form-grid/index.js +1 -1
- package/esm/form-item-group/index.js +1 -1
- package/esm/form-item-span/index.js +1 -1
- package/esm/form-item-text/index.js +1 -1
- package/esm/form-item-text/index.js.map +1 -1
- package/esm/form-item-wrapper/index.js +1 -1
- package/esm/form-item-wrapper/index.js.map +1 -1
- package/esm/form-item-wrapper-dependencies/index.js +1 -1
- package/esm/form-list-wrapper/index.js +1 -1
- package/esm/form-list-wrapper/index.js.map +1 -1
- package/esm/form-wrapper/index.js +1 -1
- package/esm/gap/index.js +1 -1
- package/esm/icon-wrapper/index.css +1 -1
- package/esm/icon-wrapper/index.js +1 -1
- package/esm/icon-wrapper/index.js.map +1 -1
- package/esm/{index-7f4ad045.js → index-83bede1b.js} +2 -2
- package/esm/{index-7f4ad045.js.map → index-83bede1b.js.map} +1 -1
- package/esm/index.js +1 -1
- package/esm/input-search-wrapper/index.js +1 -1
- package/esm/input-search-wrapper/index.js.map +1 -1
- package/esm/input-text-area-wrapper/index.js +1 -1
- package/esm/input-text-area-wrapper/index.js.map +1 -1
- package/esm/input-wrapper/index.js +1 -1
- package/esm/input-wrapper/index.js.map +1 -1
- package/esm/json-editor/index.js +1 -1
- package/esm/json-editor/index.js.map +1 -1
- package/esm/label-value-layout/index.js +1 -1
- package/esm/label-value-render/index.js +1 -1
- package/esm/local-loading/index.js +1 -1
- package/esm/local-loading/index.js.map +1 -1
- package/esm/mention-editor/index.js +1 -1
- package/esm/mention-editor/index.js.map +1 -1
- package/esm/mentions-wrapper/index.js +1 -1
- package/esm/mentions-wrapper/index.js.map +1 -1
- package/esm/modal-action/index.js +1 -1
- package/esm/modal-wrapper/index.js +1 -1
- package/esm/number-range-form-item/index.js +1 -1
- package/esm/number-range-form-item/index.js.map +1 -1
- package/esm/pagination-wrapper/index.js +1 -1
- package/esm/pdf/index.js +1 -1
- package/esm/pdf/index.js.map +1 -1
- package/esm/pdf-preview/index.js +1 -1
- package/esm/pdf-preview/index.js.map +1 -1
- package/esm/radio-group-wrapper/index.js +1 -1
- package/esm/radio-group-wrapper/index.js.map +1 -1
- package/esm/relation-tree/index.js +1 -1
- package/esm/relation-tree/index.js.map +1 -1
- package/esm/rich-text-editor/index.js +1 -1
- package/esm/rich-text-editor/index.js.map +1 -1
- package/esm/rich-text-viewer/index.js +1 -1
- package/esm/rich-text-viewer/index.js.map +1 -1
- package/esm/roll-location-center/index.js +1 -1
- package/esm/roll-location-center/index.js.map +1 -1
- package/esm/roll-location-in-view/index.js +1 -1
- package/esm/roll-location-in-view/index.js.map +1 -1
- package/esm/rule-describe/index.js +1 -1
- package/esm/search-form/index.js +1 -1
- package/esm/search-form/index.js.map +1 -1
- package/esm/search-menu/index.js +1 -1
- package/esm/search-menu/index.js.map +1 -1
- package/esm/selector-wrapper/index.js +1 -1
- package/esm/selector-wrapper/index.js.map +1 -1
- package/esm/selector-wrapper-search/index.js +1 -1
- package/esm/selector-wrapper-search/index.js.map +1 -1
- package/esm/selector-wrapper-simple/index.js +1 -1
- package/esm/selector-wrapper-simple/index.js.map +1 -1
- package/esm/simple-layout/index.js +1 -1
- package/esm/sms-count-down/index.js +1 -1
- package/esm/sms-count-down/index.js.map +1 -1
- package/esm/split-wrapper/index.js +1 -1
- package/esm/svg-http-view/index.js +1 -1
- package/esm/switch-confirm-wrapper/index.js +1 -1
- package/esm/switch-confirm-wrapper/index.js.map +1 -1
- package/esm/switch-wrapper/index.js +1 -1
- package/esm/switch-wrapper/index.js.map +1 -1
- package/esm/table-cell-render/index.js +1 -1
- package/esm/table-scrollbar/index.js +1 -1
- package/esm/table-scrollbar/index.js.map +1 -1
- package/esm/tabs-sticky/index.js +1 -1
- package/esm/tabs-sticky/index.js.map +1 -1
- package/esm/tabs-wrapper/index.js +1 -1
- package/esm/tabs-wrapper/index.js.map +1 -1
- package/esm/tag-group/index.js +1 -1
- package/esm/tag-list-render/index.js +1 -1
- package/esm/tag-list-render/index.js.map +1 -1
- package/esm/tag-wrapper/index.js +1 -1
- package/esm/text-css-ellipsis/index.js +1 -1
- package/esm/text-css-ellipsis/index.js.map +1 -1
- package/esm/text-overflow/index.js +1 -1
- package/esm/text-overflow-render/index.js +1 -1
- package/esm/text-symbol-wrapper/index.js +1 -1
- package/esm/time-picker-wrapper/index.js +1 -1
- package/esm/time-picker-wrapper/index.js.map +1 -1
- package/esm/time-range-picker-wrapper/index.js +1 -1
- package/esm/time-range-picker-wrapper/index.js.map +1 -1
- package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
- package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
- package/esm/tips-title/index.js +1 -1
- package/esm/tips-wrapper/index.js +1 -1
- package/esm/tree-modal/index.js +1 -1
- package/esm/tree-modal/index.js.map +1 -1
- package/esm/tree-modal-selector/index.js +1 -1
- package/esm/tree-modal-selector/index.js.map +1 -1
- package/esm/tree-selector-wrapper/index.js +1 -1
- package/esm/tree-selector-wrapper/index.js.map +1 -1
- package/esm/tree-wrapper/index.js +1 -1
- package/esm/tree-wrapper/index.js.map +1 -1
- package/esm/upload-wrapper/index.js +1 -1
- package/esm/upload-wrapper/index.js.map +1 -1
- package/esm/x-mind-preview/index.js +1 -1
- package/esm/x-mind-preview/index.js.map +1 -1
- package/index.d.ts +52 -63
- package/package.json +1 -1
- package/esm/_rollupPluginBabelHelpers-a0769acd.js +0 -3
- package/esm/_rollupPluginBabelHelpers-a0769acd.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper/use-request.ts","@flatbiz/antd/src/selector-wrapper/utils.ts","@flatbiz/antd/src/selector-wrapper/selector-wrapper.tsx"],"sourcesContent":["import { isArray, isDeepEqual } from '@dimjs/lang';\nimport { get, json } from '@dimjs/utils';\nimport { isUndefinedOrNull, type TPlainObject } from '@flatbiz/utils';\nimport pubSub from 'pubsub-js';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { type TRequestStatus } from '../request-status';\nimport { type SelectorServiceConfig, type SelectorWrapperProps } from './types';\n\nexport const useRequest = (options: {\n cacheKey: string;\n serviceConfig?: SelectorServiceConfig;\n hasOuterSelectorList?: boolean;\n onChange?: SelectorWrapperProps['onChange'];\n outerSelectorList?: SelectorWrapperProps['selectorList'];\n onRespDataChange?: (dataList?: TPlainObject[]) => void;\n onSelectorRequestError?: SelectorWrapperProps['onSelectorRequestError'];\n useCache: boolean;\n fieldNames: SelectorWrapperProps['fieldNames'];\n}) => {\n const {\n cacheKey,\n serviceConfig,\n hasOuterSelectorList,\n outerSelectorList,\n onRespDataChange,\n onSelectorRequestError,\n onChange,\n useCache,\n fieldNames,\n } = options;\n const serviceRequestParams = serviceConfig?.params;\n const requiredParamsKeys = serviceConfig?.requiredParamsKeys || [];\n const hasServiceRequestParams = serviceRequestParams && Object.keys(serviceRequestParams).length > 0;\n\n const [stateSelectorList, setStateSelectorList] = useState<TPlainObject[]>();\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>();\n const [refreshKey, setRefreshKey] = useState(Date.now());\n\n const serviceRequestParamsStringify = useMemo(() => {\n try {\n if (hasServiceRequestParams) {\n const sortDataStringify = JSON.stringify(json.sort(serviceRequestParams));\n if (sortDataStringify === '{}') {\n return undefined;\n }\n return sortDataStringify;\n }\n } catch (error) {}\n return undefined;\n }, [hasServiceRequestParams, serviceRequestParams]);\n // 将 undefined => 'undefined'\n const serviceRequestCahceKey = `${serviceRequestParamsStringify}`;\n const serviceRequestCahceStatusKey = `${serviceRequestParamsStringify}_status`;\n const pubSubKey = `${cacheKey}_${serviceRequestCahceKey}`;\n\n // 上一个参数值\n const prevServiceRequestParamsStringify = fbaHooks.usePrevious(serviceRequestParamsStringify);\n const prevParams = fbaHooks.usePrevious(serviceRequestParams);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig?.onRequestResultAdapter) {\n result = serviceConfig?.onRequestResultAdapter(respData as unknown as TPlainObject);\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const getWindowCacheData = () => {\n return window['__selector_wrapper_']?.[cacheKey];\n };\n const getWindowCacheValue = () => {\n return getWindowCacheData()?.[serviceRequestCahceKey];\n };\n const getWindowCacheStatus = () => {\n return getWindowCacheData()?.[serviceRequestCahceStatusKey];\n };\n\n const setWindowCache = (key, value) => {\n if (!window['__selector_wrapper_']) {\n window['__selector_wrapper_'] = {};\n }\n if (!window['__selector_wrapper_'][cacheKey]) {\n window['__selector_wrapper_'][cacheKey] = {};\n }\n window['__selector_wrapper_'][cacheKey][key] = value;\n };\n\n const onChangeRequestStatus = (status: TRequestStatus) => {\n setWindowCache(serviceRequestCahceStatusKey, status);\n setRequestStatus(status);\n };\n\n const onRequest = async () => {\n try {\n onChangeRequestStatus('request-progress');\n\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData);\n\n setWindowCache(serviceRequestCahceKey, respAdapterData);\n onChangeRequestStatus('request-success');\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-success',\n respData: respAdapterData,\n });\n });\n\n return respAdapterData;\n } catch (error) {\n console.error(error);\n onChangeRequestStatus('request-error');\n setStateSelectorList(undefined);\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-error',\n });\n });\n onSelectorRequestError?.(error);\n return Promise.reject();\n }\n };\n\n fbaHooks.useEffectCustomAsync(async () => {\n if (hasOuterSelectorList) {\n setRequestStatus('request-success');\n setStateSelectorList(outerSelectorList);\n onRespDataChange?.(outerSelectorList);\n return;\n }\n if (requiredParamsKeys.length > 0) {\n const isEmpty = serviceRequestParams\n ? requiredParamsKeys.find((key) => isUndefinedOrNull(serviceRequestParams[key]))\n : true;\n if (isEmpty) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setStateSelectorList([]);\n setRequestStatus('no-dependencies-params');\n /**\n * 怎么判断数据是从有到无的\n * 每一次 params 变少,只要 上一次 params 值存在,就应该清空 value 值\n */\n if (prevServiceRequestParamsStringify) {\n onChange?.(undefined);\n }\n return;\n }\n\n // 不使用缓存模式\n if (useCache === false) {\n // 判断参数是否发生变化\n if (isDeepEqual(serviceRequestParams, prevParams)) {\n return;\n }\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData);\n setRequestStatus('request-success');\n setStateSelectorList(respAdapterData);\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n return;\n }\n }\n\n /**\n * 此处无法判断 调用props.onChange?.(undefined);\n * A、B、C\n * 例如:C依赖A、B,当外部只修改了一个元素,理论上应该应该清空C value 值(调用onChange(undefined)),如果此时外部直接回填A、B、C时,C无法回填成功;该场景只能在A、B的onChange事件中,清空C\n */\n // if (prevServiceRequestParamsStringify) {\n // props.onChange?.(undefined);\n // }\n\n const status = getWindowCacheStatus();\n if (status === 'request-success') {\n const dataList = getWindowCacheValue();\n setStateSelectorList(dataList);\n setRequestStatus(status);\n onRespDataChange?.(dataList);\n return;\n }\n if (status === 'request-progress') {\n setRequestStatus(status);\n pubSub.subscribe(pubSubKey, (_msg, { status, respData }) => {\n if (status === 'request-success') {\n setRequestStatus(status);\n setStateSelectorList(respData);\n onRespDataChange?.(respData);\n } else {\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n }\n });\n return;\n }\n try {\n const respAdapterData = await onRequest();\n setStateSelectorList(respAdapterData);\n setRequestStatus('request-success');\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n }, [JSON.stringify(serviceRequestParams), outerSelectorList, refreshKey]);\n\n const onRefreshRequest = () => {\n setRefreshKey(Date.now());\n };\n\n return {\n requestStatus,\n stateSelectorList,\n serviceRequestParamsStringify,\n onRefreshRequest,\n };\n};\n","import { isObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\n/**\n * value存在两种格式\n * 1. string | number;\n * 2. labelInValue 格式\n * @param data\n * @param labelInValueFieldNames\n * @returns\n */\nexport const getVauleList = (data, valueKey: string | number) => {\n let valueList = toArray<string | number>(data);\n valueList = valueList.map((item) => {\n if (isObject(item)) return item[valueKey];\n return item;\n });\n return valueList;\n};\n","import { arrayFind, TAny, toArray, TPlainObject, valueIsEqual } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select } from 'antd';\nimport { isValidElement, useMemo, useRef } from 'react';\nimport './style.less';\n\nimport { RedoOutlined } from '@ant-design/icons';\nimport { isString } from '@dimjs/lang';\nimport { RequestStatus } from '../request-status';\nimport { SelectorWrapperProps } from './types';\nimport { useRequest } from './use-request';\nimport { getVauleList } from './utils';\nexport * from './types';\n/**\n * 选择器包装组件\n * ```\n * 1. 不支持搜索调用服务模式,可使用组件 SelectorWrapperSearch\n * ```\n */\nexport const SelectorWrapper = (props: SelectorWrapperProps) => {\n const {\n serviceConfig,\n showAllOption,\n onSelectorListChange,\n onSelectorListAllChange,\n onSelectorRequestError,\n onLabelRenderAdapter,\n requestMessageConfig,\n selectorList: outerSelectorList,\n modelKey,\n fieldNames,\n value,\n labelInValue,\n useCache,\n ...otherProps\n } = props;\n\n const firstRenderSelectList = useRef(true);\n\n // props 是否存在 selectorList,selectorList = undefined 也算存在\n const hasOuterSelectorList = props.hasOwnProperty('selectorList');\n const mergeFieldNames = {\n label: 'label',\n value: 'value',\n disabled: 'disabled',\n ...fieldNames,\n };\n\n const {\n label: optionsItemLabelField,\n value: optionsItemValueField,\n disabled: optionsItemDisabledField,\n } = mergeFieldNames;\n\n const allOptionConfig = useMemo(() => {\n if (!showAllOption) return null;\n const isTrue = showAllOption === true;\n return {\n [optionsItemLabelField]: isTrue ? '全部' : showAllOption.label,\n [optionsItemValueField]: isTrue ? '' : showAllOption.value,\n };\n }, [optionsItemLabelField, optionsItemValueField, showAllOption]);\n\n const isMultiple = valueIsEqual(props.mode, ['multiple']);\n\n const { requestStatus, stateSelectorList, onRefreshRequest } = useRequest({\n fieldNames: mergeFieldNames,\n cacheKey: modelKey,\n hasOuterSelectorList,\n onChange: props.onChange,\n serviceConfig,\n outerSelectorList,\n onRespDataChange: (dataList) => {\n if (firstRenderSelectList.current) {\n onSelectorListChange?.(dataList || []);\n firstRenderSelectList.current = false;\n }\n onSelectorListAllChange?.(dataList || []);\n },\n onSelectorRequestError,\n useCache: useCache === undefined ? true : useCache,\n });\n\n const onRespChange = hooks.useCallbackRef((selectedList: TPlainObject[]) => {\n if (labelInValue) {\n if (isMultiple) {\n props.onChange?.(selectedList, selectedList);\n } else {\n props.onChange?.(selectedList[0], selectedList);\n }\n } else {\n const valueList = selectedList.map((item) => item[optionsItemValueField]);\n if (isMultiple) {\n props.onChange?.(valueList, selectedList);\n } else {\n props.onChange?.(valueList[0], selectedList[0]);\n }\n }\n });\n\n const onInnerChange = hooks.useCallbackRef((_value, otherParams) => {\n if (!otherParams) return props.onChange?.(undefined);\n const selectedList = toArray<TAny>(otherParams);\n const targetList = [] as TPlainObject[];\n selectedList.forEach((item) => {\n if (showAllOption && allOptionConfig && item.value === allOptionConfig[optionsItemValueField]) {\n targetList.push(allOptionConfig);\n } else {\n const filterTarget = arrayFind(stateSelectorList || [], item.value, optionsItemValueField);\n if (filterTarget) {\n targetList.push(filterTarget);\n }\n }\n });\n onRespChange(targetList);\n });\n\n const selectorAllList = useMemo(() => {\n if (requestStatus !== 'request-success') return [];\n if (!stateSelectorList || stateSelectorList.length === 0) return [];\n if (!allOptionConfig) return stateSelectorList;\n return [allOptionConfig].concat(stateSelectorList);\n }, [allOptionConfig, requestStatus, stateSelectorList]);\n\n const loading = requestStatus === 'request-progress';\n\n const selectValue = useMemo(() => {\n const targetList = getVauleList(value, optionsItemValueField);\n return isMultiple ? targetList : targetList[0];\n }, [isMultiple, optionsItemValueField, value]);\n\n const filterOption = hooks.useCallbackRef((input: string, option) => {\n const children = toArray(option.children);\n let mergeString = '';\n const hasValidElementItem = children.find((item) => {\n return isValidElement(item);\n });\n if (!hasValidElementItem) {\n children.forEach((item) => {\n if (isString(item)) mergeString += item;\n });\n } else {\n mergeString = isString(option?.label) ? option.label : undefined;\n }\n return mergeString.toLowerCase().indexOf(input.toLowerCase()) >= 0;\n });\n\n return (\n <Select\n showSearch={true}\n allowClear={true}\n popupMatchSelectWidth={false}\n filterOption={filterOption}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n value={selectValue}\n loading={loading}\n onChange={onInnerChange}\n fieldNames={undefined}\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onRefreshRequest} />\n ) : (\n otherProps.suffixIcon\n )\n }\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={onRefreshRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {selectorAllList.map((item, index) => {\n const value = item[optionsItemValueField];\n const label = item[optionsItemLabelField];\n return (\n <Select.Option\n value={value}\n label={label}\n key={`${value}-${index}`}\n disabled={item[optionsItemDisabledField]}\n >\n {props.showIcon ? (\n <span className=\"v-selector-item-icon\">{props.icon?.(item, index)}</span>\n ) : null}\n {onLabelRenderAdapter ? onLabelRenderAdapter(item) : label}\n </Select.Option>\n );\n })}\n </Select>\n );\n};\n"],"names":["useRequest","options","cacheKey","serviceConfig","hasOuterSelectorList","outerSelectorList","onRespDataChange","onSelectorRequestError","onChange","useCache","fieldNames","serviceRequestParams","params","requiredParamsKeys","hasServiceRequestParams","Object","keys","length","_useState","useState","stateSelectorList","setStateSelectorList","_useState2","requestStatus","setRequestStatus","_useState3","Date","now","refreshKey","setRefreshKey","serviceRequestParamsStringify","useMemo","sortDataStringify","JSON","stringify","_json","sort","undefined","error","serviceRequestCahceKey","serviceRequestCahceStatusKey","pubSubKey","prevServiceRequestParamsStringify","fbaHooks","usePrevious","prevParams","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","getWindowCacheData","_window$__selector_wr","window","getWindowCacheValue","_getWindowCacheData","getWindowCacheStatus","_getWindowCacheData2","setWindowCache","key","value","onChangeRequestStatus","status","onRequest","Promise","$return","$error","respAdapterData","$Try_2_Catch","setTimeout","pubSub","publish","reject","$boundEx","resolve","then","$await_7","useEffectCustomAsync","isEmpty","_dataList","_respAdapterData","find","isUndefinedOrNull","_isDeepEqual","$Try_3_Post","$Try_3_Catch","$await_8","$If_5","call","this","dataList","subscribe","_msg","_ref","$Try_4_Post","$Try_4_Catch","$await_9","onRefreshRequest","getVauleList","data","valueKey","valueList","toArray","map","item","_isObject","SelectorWrapper","props","showAllOption","onSelectorListChange","onSelectorListAllChange","onLabelRenderAdapter","requestMessageConfig","selectorList","modelKey","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","firstRenderSelectList","useRef","hasOwnProperty","mergeFieldNames","_extends","label","disabled","optionsItemLabelField","optionsItemValueField","optionsItemDisabledField","allOptionConfig","isTrue","isMultiple","valueIsEqual","mode","_useRequest","current","onRespChange","_hooks","useCallbackRef","selectedList","onInnerChange","_value","otherParams","targetList","forEach","push","filterTarget","arrayFind","selectorAllList","concat","loading","selectValue","filterOption","input","option","children","mergeString","hasValidElementItem","isValidElement","_isString","toLowerCase","indexOf","_jsx","Select","showSearch","allowClear","popupMatchSelectWidth","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","index","_jsxs","Option","showIcon","className","icon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper/use-request.ts","@flatbiz/antd/src/selector-wrapper/utils.ts","@flatbiz/antd/src/selector-wrapper/selector-wrapper.tsx"],"sourcesContent":["import { isArray, isDeepEqual } from '@dimjs/lang';\nimport { get, json } from '@dimjs/utils';\nimport { isUndefinedOrNull, type TPlainObject } from '@flatbiz/utils';\nimport pubSub from 'pubsub-js';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { type TRequestStatus } from '../request-status';\nimport { type SelectorServiceConfig, type SelectorWrapperProps } from './types';\n\nexport const useRequest = (options: {\n cacheKey: string;\n serviceConfig?: SelectorServiceConfig;\n hasOuterSelectorList?: boolean;\n onChange?: SelectorWrapperProps['onChange'];\n outerSelectorList?: SelectorWrapperProps['selectorList'];\n onRespDataChange?: (dataList?: TPlainObject[]) => void;\n onSelectorRequestError?: SelectorWrapperProps['onSelectorRequestError'];\n useCache: boolean;\n fieldNames: SelectorWrapperProps['fieldNames'];\n}) => {\n const {\n cacheKey,\n serviceConfig,\n hasOuterSelectorList,\n outerSelectorList,\n onRespDataChange,\n onSelectorRequestError,\n onChange,\n useCache,\n fieldNames,\n } = options;\n const serviceRequestParams = serviceConfig?.params;\n const requiredParamsKeys = serviceConfig?.requiredParamsKeys || [];\n const hasServiceRequestParams = serviceRequestParams && Object.keys(serviceRequestParams).length > 0;\n\n const [stateSelectorList, setStateSelectorList] = useState<TPlainObject[]>();\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>();\n const [refreshKey, setRefreshKey] = useState(Date.now());\n\n const serviceRequestParamsStringify = useMemo(() => {\n try {\n if (hasServiceRequestParams) {\n const sortDataStringify = JSON.stringify(json.sort(serviceRequestParams));\n if (sortDataStringify === '{}') {\n return undefined;\n }\n return sortDataStringify;\n }\n } catch (error) {}\n return undefined;\n }, [hasServiceRequestParams, serviceRequestParams]);\n // 将 undefined => 'undefined'\n const serviceRequestCahceKey = `${serviceRequestParamsStringify}`;\n const serviceRequestCahceStatusKey = `${serviceRequestParamsStringify}_status`;\n const pubSubKey = `${cacheKey}_${serviceRequestCahceKey}`;\n\n // 上一个参数值\n const prevServiceRequestParamsStringify = fbaHooks.usePrevious(serviceRequestParamsStringify);\n const prevParams = fbaHooks.usePrevious(serviceRequestParams);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig?.onRequestResultAdapter) {\n result = serviceConfig?.onRequestResultAdapter(respData as unknown as TPlainObject);\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const getWindowCacheData = () => {\n return window['__selector_wrapper_']?.[cacheKey];\n };\n const getWindowCacheValue = () => {\n return getWindowCacheData()?.[serviceRequestCahceKey];\n };\n const getWindowCacheStatus = () => {\n return getWindowCacheData()?.[serviceRequestCahceStatusKey];\n };\n\n const setWindowCache = (key, value) => {\n if (!window['__selector_wrapper_']) {\n window['__selector_wrapper_'] = {};\n }\n if (!window['__selector_wrapper_'][cacheKey]) {\n window['__selector_wrapper_'][cacheKey] = {};\n }\n window['__selector_wrapper_'][cacheKey][key] = value;\n };\n\n const onChangeRequestStatus = (status: TRequestStatus) => {\n setWindowCache(serviceRequestCahceStatusKey, status);\n setRequestStatus(status);\n };\n\n const onRequest = async () => {\n try {\n onChangeRequestStatus('request-progress');\n\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData);\n\n setWindowCache(serviceRequestCahceKey, respAdapterData);\n onChangeRequestStatus('request-success');\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-success',\n respData: respAdapterData,\n });\n });\n\n return respAdapterData;\n } catch (error) {\n console.error(error);\n onChangeRequestStatus('request-error');\n setStateSelectorList(undefined);\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-error',\n });\n });\n onSelectorRequestError?.(error);\n return Promise.reject();\n }\n };\n\n fbaHooks.useEffectCustomAsync(async () => {\n if (hasOuterSelectorList) {\n setRequestStatus('request-success');\n setStateSelectorList(outerSelectorList);\n onRespDataChange?.(outerSelectorList);\n return;\n }\n if (requiredParamsKeys.length > 0) {\n const isEmpty = serviceRequestParams\n ? requiredParamsKeys.find((key) => isUndefinedOrNull(serviceRequestParams[key]))\n : true;\n if (isEmpty) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setStateSelectorList([]);\n setRequestStatus('no-dependencies-params');\n /**\n * 怎么判断数据是从有到无的\n * 每一次 params 变少,只要 上一次 params 值存在,就应该清空 value 值\n */\n if (prevServiceRequestParamsStringify) {\n onChange?.(undefined);\n }\n return;\n }\n\n // 不使用缓存模式\n if (useCache === false) {\n // 判断参数是否发生变化\n if (isDeepEqual(serviceRequestParams, prevParams)) {\n return;\n }\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData);\n setRequestStatus('request-success');\n setStateSelectorList(respAdapterData);\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n return;\n }\n }\n\n /**\n * 此处无法判断 调用props.onChange?.(undefined);\n * A、B、C\n * 例如:C依赖A、B,当外部只修改了一个元素,理论上应该应该清空C value 值(调用onChange(undefined)),如果此时外部直接回填A、B、C时,C无法回填成功;该场景只能在A、B的onChange事件中,清空C\n */\n // if (prevServiceRequestParamsStringify) {\n // props.onChange?.(undefined);\n // }\n\n const status = getWindowCacheStatus();\n if (status === 'request-success') {\n const dataList = getWindowCacheValue();\n setStateSelectorList(dataList);\n setRequestStatus(status);\n onRespDataChange?.(dataList);\n return;\n }\n if (status === 'request-progress') {\n setRequestStatus(status);\n pubSub.subscribe(pubSubKey, (_msg, { status, respData }) => {\n if (status === 'request-success') {\n setRequestStatus(status);\n setStateSelectorList(respData);\n onRespDataChange?.(respData);\n } else {\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n }\n });\n return;\n }\n try {\n const respAdapterData = await onRequest();\n setStateSelectorList(respAdapterData);\n setRequestStatus('request-success');\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n }, [JSON.stringify(serviceRequestParams), outerSelectorList, refreshKey]);\n\n const onRefreshRequest = () => {\n setRefreshKey(Date.now());\n };\n\n return {\n requestStatus,\n stateSelectorList,\n serviceRequestParamsStringify,\n onRefreshRequest,\n };\n};\n","import { isObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\n/**\n * value存在两种格式\n * 1. string | number;\n * 2. labelInValue 格式\n * @param data\n * @param labelInValueFieldNames\n * @returns\n */\nexport const getVauleList = (data, valueKey: string | number) => {\n let valueList = toArray<string | number>(data);\n valueList = valueList.map((item) => {\n if (isObject(item)) return item[valueKey];\n return item;\n });\n return valueList;\n};\n","import { arrayFind, TAny, toArray, TPlainObject, valueIsEqual } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select } from 'antd';\nimport { isValidElement, useMemo, useRef } from 'react';\nimport './style.less';\n\nimport { RedoOutlined } from '@ant-design/icons';\nimport { isString } from '@dimjs/lang';\nimport { RequestStatus } from '../request-status';\nimport { SelectorWrapperProps } from './types';\nimport { useRequest } from './use-request';\nimport { getVauleList } from './utils';\nexport * from './types';\n/**\n * 选择器包装组件\n * ```\n * 1. 不支持搜索调用服务模式,可使用组件 SelectorWrapperSearch\n * ```\n */\nexport const SelectorWrapper = (props: SelectorWrapperProps) => {\n const {\n serviceConfig,\n showAllOption,\n onSelectorListChange,\n onSelectorListAllChange,\n onSelectorRequestError,\n onLabelRenderAdapter,\n requestMessageConfig,\n selectorList: outerSelectorList,\n modelKey,\n fieldNames,\n value,\n labelInValue,\n useCache,\n ...otherProps\n } = props;\n\n const firstRenderSelectList = useRef(true);\n\n // props 是否存在 selectorList,selectorList = undefined 也算存在\n const hasOuterSelectorList = props.hasOwnProperty('selectorList');\n const mergeFieldNames = {\n label: 'label',\n value: 'value',\n disabled: 'disabled',\n ...fieldNames,\n };\n\n const {\n label: optionsItemLabelField,\n value: optionsItemValueField,\n disabled: optionsItemDisabledField,\n } = mergeFieldNames;\n\n const allOptionConfig = useMemo(() => {\n if (!showAllOption) return null;\n const isTrue = showAllOption === true;\n return {\n [optionsItemLabelField]: isTrue ? '全部' : showAllOption.label,\n [optionsItemValueField]: isTrue ? '' : showAllOption.value,\n };\n }, [optionsItemLabelField, optionsItemValueField, showAllOption]);\n\n const isMultiple = valueIsEqual(props.mode, ['multiple']);\n\n const { requestStatus, stateSelectorList, onRefreshRequest } = useRequest({\n fieldNames: mergeFieldNames,\n cacheKey: modelKey,\n hasOuterSelectorList,\n onChange: props.onChange,\n serviceConfig,\n outerSelectorList,\n onRespDataChange: (dataList) => {\n if (firstRenderSelectList.current) {\n onSelectorListChange?.(dataList || []);\n firstRenderSelectList.current = false;\n }\n onSelectorListAllChange?.(dataList || []);\n },\n onSelectorRequestError,\n useCache: useCache === undefined ? true : useCache,\n });\n\n const onRespChange = hooks.useCallbackRef((selectedList: TPlainObject[]) => {\n if (labelInValue) {\n if (isMultiple) {\n props.onChange?.(selectedList, selectedList);\n } else {\n props.onChange?.(selectedList[0], selectedList);\n }\n } else {\n const valueList = selectedList.map((item) => item[optionsItemValueField]);\n if (isMultiple) {\n props.onChange?.(valueList, selectedList);\n } else {\n props.onChange?.(valueList[0], selectedList[0]);\n }\n }\n });\n\n const onInnerChange = hooks.useCallbackRef((_value, otherParams) => {\n if (!otherParams) return props.onChange?.(undefined);\n const selectedList = toArray<TAny>(otherParams);\n const targetList = [] as TPlainObject[];\n selectedList.forEach((item) => {\n if (showAllOption && allOptionConfig && item.value === allOptionConfig[optionsItemValueField]) {\n targetList.push(allOptionConfig);\n } else {\n const filterTarget = arrayFind(stateSelectorList || [], item.value, optionsItemValueField);\n if (filterTarget) {\n targetList.push(filterTarget);\n }\n }\n });\n onRespChange(targetList);\n });\n\n const selectorAllList = useMemo(() => {\n if (requestStatus !== 'request-success') return [];\n if (!stateSelectorList || stateSelectorList.length === 0) return [];\n if (!allOptionConfig) return stateSelectorList;\n return [allOptionConfig].concat(stateSelectorList);\n }, [allOptionConfig, requestStatus, stateSelectorList]);\n\n const loading = requestStatus === 'request-progress';\n\n const selectValue = useMemo(() => {\n const targetList = getVauleList(value, optionsItemValueField);\n return isMultiple ? targetList : targetList[0];\n }, [isMultiple, optionsItemValueField, value]);\n\n const filterOption = hooks.useCallbackRef((input: string, option) => {\n const children = toArray(option.children);\n let mergeString = '';\n const hasValidElementItem = children.find((item) => {\n return isValidElement(item);\n });\n if (!hasValidElementItem) {\n children.forEach((item) => {\n if (isString(item)) mergeString += item;\n });\n } else {\n mergeString = isString(option?.label) ? option.label : undefined;\n }\n return mergeString.toLowerCase().indexOf(input.toLowerCase()) >= 0;\n });\n\n return (\n <Select\n showSearch={true}\n allowClear={true}\n popupMatchSelectWidth={false}\n filterOption={filterOption}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n value={selectValue}\n loading={loading}\n onChange={onInnerChange}\n fieldNames={undefined}\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onRefreshRequest} />\n ) : (\n otherProps.suffixIcon\n )\n }\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={onRefreshRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {selectorAllList.map((item, index) => {\n const value = item[optionsItemValueField];\n const label = item[optionsItemLabelField];\n return (\n <Select.Option\n value={value}\n label={label}\n key={`${value}-${index}`}\n disabled={item[optionsItemDisabledField]}\n >\n {props.showIcon ? (\n <span className=\"v-selector-item-icon\">{props.icon?.(item, index)}</span>\n ) : null}\n {onLabelRenderAdapter ? onLabelRenderAdapter(item) : label}\n </Select.Option>\n );\n })}\n </Select>\n );\n};\n"],"names":["useRequest","options","cacheKey","serviceConfig","hasOuterSelectorList","outerSelectorList","onRespDataChange","onSelectorRequestError","onChange","useCache","fieldNames","serviceRequestParams","params","requiredParamsKeys","hasServiceRequestParams","Object","keys","length","_useState","useState","stateSelectorList","setStateSelectorList","_useState2","requestStatus","setRequestStatus","_useState3","Date","now","refreshKey","setRefreshKey","serviceRequestParamsStringify","useMemo","sortDataStringify","JSON","stringify","_json","sort","undefined","error","serviceRequestCahceKey","serviceRequestCahceStatusKey","pubSubKey","prevServiceRequestParamsStringify","fbaHooks","usePrevious","prevParams","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","getWindowCacheData","_window$__selector_wr","window","getWindowCacheValue","_getWindowCacheData","getWindowCacheStatus","_getWindowCacheData2","setWindowCache","key","value","onChangeRequestStatus","status","onRequest","Promise","$return","$error","respAdapterData","$Try_2_Catch","setTimeout","pubSub","publish","reject","$boundEx","resolve","then","$await_7","useEffectCustomAsync","isEmpty","dataList","_respAdapterData","find","isUndefinedOrNull","_isDeepEqual","$Try_3_Post","$Try_3_Catch","$await_8","$If_5","call","this","subscribe","_msg","_ref","$Try_4_Post","$Try_4_Catch","$await_9","onRefreshRequest","getVauleList","data","valueKey","valueList","toArray","map","item","_isObject","SelectorWrapper","props","showAllOption","onSelectorListChange","onSelectorListAllChange","onLabelRenderAdapter","requestMessageConfig","selectorList","modelKey","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","firstRenderSelectList","useRef","hasOwnProperty","mergeFieldNames","_extends","label","disabled","optionsItemLabelField","optionsItemValueField","optionsItemDisabledField","allOptionConfig","isTrue","isMultiple","valueIsEqual","mode","_useRequest","current","onRespChange","_hooks","useCallbackRef","selectedList","onInnerChange","_value","otherParams","targetList","forEach","push","filterTarget","arrayFind","selectorAllList","concat","loading","selectValue","filterOption","input","option","children","mergeString","hasValidElementItem","isValidElement","_isString","toLowerCase","indexOf","_jsx","Select","showSearch","allowClear","popupMatchSelectWidth","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","index","_jsxs","Option","showIcon","className","icon"],"mappings":";s7BASO,IAAMA,EAAa,SAAbA,EAAcC,GAWzB,IACEC,EASED,EATFC,SACAC,EAQEF,EARFE,cACAC,EAOEH,EAPFG,qBACAC,EAMEJ,EANFI,kBACAC,EAKEL,EALFK,iBACAC,EAIEN,EAJFM,uBACAC,EAGEP,EAHFO,SACAC,EAEER,EAFFQ,SACAC,EACET,EADFS,WAEF,IAAMC,EAAuBR,GAAAA,UAAAA,EAAAA,EAAeS,OAC5C,IAAMC,GAAqBV,eAAAA,EAAeU,qBAAsB,GAChE,IAAMC,EAA0BH,GAAwBI,OAAOC,KAAKL,GAAsBM,OAAS,EAEnG,IAAAC,EAAkDC,IAA3CC,EAAiBF,EAAA,GAAEG,EAAoBH,EAAA,GAC9C,IAAAI,EAA0CH,IAAnCI,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GACtC,IAAAG,EAAoCN,EAASO,KAAKC,OAA3CC,EAAUH,EAAA,GAAEI,EAAaJ,EAAA,GAEhC,IAAMK,EAAgCC,GAAQ,WAC5C,IACE,GAAIjB,EAAyB,CAC3B,IAAMkB,EAAoBC,KAAKC,UAAUC,EAAKC,KAAKzB,IACnD,GAAIqB,IAAsB,KAAM,CAC9B,OAAOK,SACT,CACA,OAAOL,CACT,CACF,CAAE,MAAOM,GAAQ,CACjB,OAAOD,SACT,GAAG,CAACvB,EAAyBH,IAE7B,IAAM4B,KAA4BT,EAClC,IAAMU,EAAkCV,EAAsC,UAC9E,IAAMW,EAAevC,EAAQ,IAAIqC,EAGjC,IAAMG,EAAoCC,EAASC,YAAYd,GAC/D,IAAMe,EAAaF,EAASC,YAAYjC,GAExC,IAAMmC,EAAyB,SAAzBA,EAA0BC,GAC9B,IAAIC,EAAyBD,EAC7B,GAAI5C,GAAa,MAAbA,EAAe8C,uBAAwB,CACzCD,EAAS7C,GAAAA,UAAAA,EAAAA,EAAe8C,uBAAuBF,EAChD,MAAM,GAAIrC,SAAAA,EAAYwC,KAAM,CAC3BF,EAASG,EAAIJ,EAAUrC,GAAAA,UAAAA,EAAAA,EAAYwC,KACrC,CACA,GAAIF,IAAWI,EAAQJ,GAAS,CAC9BK,QAAQC,KAAK,cAAeN,GAC5B,MAAO,EACT,CACA,OAAOA,GAAU,IAGnB,IAAMO,EAAqB,SAArBA,IAA2B,IAAAC,EAC/B,OAAAA,EAAOC,OAAO,yBAAPD,UAAAA,EAAAA,EAAgCtD,IAEzC,IAAMwD,EAAsB,SAAtBA,IAA4B,IAAAC,EAChC,OAAAA,EAAOJ,MAAAI,UAAAA,EAAAA,EAAuBpB,IAEhC,IAAMqB,EAAuB,SAAvBA,IAA6B,IAAAC,EACjC,OAAAA,EAAON,MAAAM,UAAAA,EAAAA,EAAuBrB,IAGhC,IAAMsB,EAAiB,SAAjBA,EAAkBC,EAAKC,GAC3B,IAAKP,OAAO,uBAAwB,CAClCA,OAAO,uBAAyB,EAClC,CACA,IAAKA,OAAO,uBAAuBvD,GAAW,CAC5CuD,OAAO,uBAAuBvD,GAAY,CAAA,CAC5C,CACAuD,OAAO,uBAAuBvD,GAAU6D,GAAOC,GAGjD,IAAMC,EAAwB,SAAxBA,EAAyBC,GAC7BJ,EAAetB,EAA8B0B,GAC7C1C,EAAiB0C,IAGnB,IAAMC,EAAY,SAAZA,IAAY,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAIRvB,EACAwB,EAxGZ,IAAIC,EAAA,SAoHSlC,GApHb,IAqHMe,QAAQf,MAAMA,GACd2B,EAAsB,iBACtB5C,EAAqBgB,WACrBoC,YAAW,WACTC,EAAOC,QAAQlC,EAAW,CACxByB,OAAQ,iBAEZ,IACA3D,GAAAA,MAAAA,EAAyB+B,GACzB,OAAA+B,EAAOD,QAAQQ,SA9HZ,CAAC,MAAAC,GAAW,OAAOP,EAAAO,EAAM,GAoG9B,IACEZ,EAAsB,oBAEL,OAAAG,QAAAU,QAAM3E,GAAAA,MAAAA,EAAegE,WAAfhE,UAAAA,EAAAA,EAAegE,UAAYxD,GAAwB,CAAA,IAAzDoE,MAA4D,SAAAC,GAvGnF,IAuGYjC,EAAWiC,EACXT,EAAkBzB,EAAuBC,GAE/Ce,EAAevB,EAAwBgC,GACvCN,EAAsB,mBACtBQ,YAAW,WACTC,EAAOC,QAAQlC,EAAW,CACxByB,OAAQ,kBACRnB,SAAUwB,GAEd,IAEA,OAAAF,EAAOE,EAnHJ,CAAC,MAAAM,GAAW,OAAOL,EAAAK,EAAM,CAAC,GAAAL,EAoH9B,CAAC,MAAOlC,GAAOkC,EAAPlC,EAWT,CAAC,GACF,EAEDK,EAASsC,sBAAqB,WAAA,OAAA,IAAAb,SAAA,SAAAC,EAAAC,GAAA,IAQpBY,EAyBInC,EACAwB,EAuBNL,EAEEiB,EAqBAC,EA/ER,GAAIhF,EAAsB,CACxBoB,EAAiB,mBACjBH,EAAqBhB,GACrBC,GAAAA,MAAAA,EAAmBD,GACnB,OAAAgE,GACF,CACA,GAAIxD,EAAmBI,OAAS,EAAG,CAC3BiE,EAAUvE,EACZE,EAAmBwE,MAAK,SAACtB,GAAG,OAAKuB,EAAkB3E,EAAqBoD,GAAK,IAC7E,KACJ,GAAImB,EAAS,CAEX7D,EAAqB,IACrBG,EAAiB,0BAKjB,GAAIkB,EAAmC,CACrClC,GAAAA,MAAAA,EAAW6B,UACb,CACA,OAAAgC,GACF,CAGA,GAAI5D,IAAa,MAAO,CAEtB,GAAI8E,EAAY5E,EAAsBkC,GAAa,CACjD,OAAAwB,GACF,CAhKR,IAAImB,aAAJ,IA8KQ,OAAAnB,GA9KC,CAAC,MAAAQ,GAAW,OAAOP,EAAAO,EAAM,GAAlC,IAAIY,EAAA,SAwKanD,GAxKjB,IAyKUe,QAAQf,MAAMA,GACdd,EAAiB,iBACjBH,EAAqBgB,WACrB9B,GAAAA,MAAAA,EAAyB+B,GA5KnC,OAAOkD,GAAE,CAAC,MAAAX,GAAW,OAAOP,EAAAO,EAAM,GAiK1B,IACErD,EAAiB,oBACA,OAAA4C,QAAAU,QAAM3E,GAAAA,MAAAA,EAAegE,WAAfhE,UAAAA,EAAAA,EAAegE,UAAYxD,GAAwB,CAAA,IAAzDoE,MAA4D,SAAAW,GAnKvF,IAmKgB3C,EAAW2C,EACXnB,EAAkBzB,EAAuBC,GAC/CvB,EAAiB,mBACjBH,EAAqBkD,GACrBjE,GAAAA,MAAAA,EAAmBiE,GAvK7B,OAAOiB,GAAE,CAAC,MAAAX,GAAW,OAAOY,EAAAZ,EAAM,CAAC,GAAAY,EAwK1B,CAAC,MAAOnD,GAAOmD,EAAPnD,EAKT,CAEF,CAAC,OA/KPqD,EAAGC,KAAIC,KAgLH,CASA,SAAAF,IAEMzB,EAASN,IACf,GAAIM,IAAW,kBAAmB,CAC1BiB,EAAWzB,IACjBrC,EAAqB8D,GACrB3D,EAAiB0C,GACjB5D,GAAAA,MAAAA,EAAmB6E,GACnB,OAAAd,GACF,CACA,GAAIH,IAAW,mBAAoB,CACjC1C,EAAiB0C,GACjBQ,EAAOoB,UAAUrD,GAAW,SAACsD,EAAIC,GAA2B,IAAvB9B,EAAM8B,EAAN9B,OAAQnB,EAAQiD,EAARjD,SAC3C,GAAImB,IAAW,kBAAmB,CAChC1C,EAAiB0C,GACjB7C,EAAqB0B,GACrBzC,GAAAA,MAAAA,EAAmByC,EACrB,KAAO,CACLvB,EAAiB,iBACjBH,EAAqBgB,UACvB,CACF,IACA,OAAAgC,GACF,CAhNJ,IAAI4B,aAAJ,IAAI,OAAA5B,GAAK,CAAC,MAAAQ,GAAW,OAAOP,EAAAO,EAAM,GAAlC,IAAIqB,EAAA,SAsNS5D,GAtNb,IAuNMe,QAAQf,MAAMA,GACdd,EAAiB,iBACjBH,EAAqBgB,WACrB9B,GAAAA,MAAAA,EAAyB+B,GA1N/B,OAAO2D,GAAE,CAAC,MAAApB,GAAW,OAAOP,EAAAO,EAAM,GAiN9B,IAC0B,OAAAT,QAAAU,QAAMX,KAANY,MAAiB,SAAAoB,GAlN/C,IAkNY5B,EAAkB4B,EACxB9E,EAAqBkD,GACrB/C,EAAiB,mBACjBlB,GAAAA,MAAAA,EAAmBiE,GArNzB,OAAO0B,GAAE,CAAC,MAAApB,GAAW,OAAOqB,EAAArB,EAAM,CAAC,GAAAqB,EAsN9B,CAAC,MAAO5D,GAAO4D,EAAP5D,EAKT,CAAC,CAAA,OA3NLqD,EAAGC,KAAIC,KAAI,GA4NR,GAAE,CAAC5D,KAAKC,UAAUvB,GAAuBN,EAAmBuB,IAE7D,IAAMwE,EAAmB,SAAnBA,IACJvE,EAAcH,KAAKC,QAGrB,MAAO,CACLJ,cAAAA,EACAH,kBAAAA,EACAU,8BAAAA,EACAsE,iBAAAA,EAEJ,EC7NO,IAAMC,EAAe,SAAfA,EAAgBC,EAAMC,GACjC,IAAIC,EAAYC,EAAyBH,GACzCE,EAAYA,EAAUE,KAAI,SAACC,GACzB,GAAIC,EAASD,GAAO,OAAOA,EAAKJ,GAChC,OAAOI,CACT,IACA,OAAOH,CACT,+OCCaK,EAAkB,SAAlBA,EAAmBC,GAC9B,IACE3G,EAcE2G,EAdF3G,cACA4G,EAaED,EAbFC,cACAC,EAYEF,EAZFE,qBACAC,EAWEH,EAXFG,wBACA1G,EAUEuG,EAVFvG,uBACA2G,EASEJ,EATFI,qBACAC,EAQEL,EARFK,qBACc9G,EAOZyG,EAPFM,aACAC,EAMEP,EANFO,SACA3G,EAKEoG,EALFpG,WACAsD,EAIE8C,EAJF9C,MACAsD,EAGER,EAHFQ,aACA7G,EAEEqG,EAFFrG,SACG8G,EAAUC,EACXV,EAAKW,GAET,IAAMC,EAAwBC,EAAO,MAGrC,IAAMvH,EAAuB0G,EAAMc,eAAe,gBAClD,IAAMC,EAAeC,EAAA,CACnBC,MAAO,QACP/D,MAAO,QACPgE,SAAU,YACPtH,GAGL,IACSuH,EAGLJ,EAHFE,MACOG,EAELL,EAFF7D,MACUmE,EACRN,EADFG,SAGF,IAAMI,EAAkBrG,GAAQ,WAAM,IAAAiE,EACpC,IAAKe,EAAe,OAAO,KAC3B,IAAMsB,EAAStB,IAAkB,KACjC,OAAAf,EAAAA,CAAAA,EAAAA,EACGiC,GAAwBI,EAAS,KAAOtB,EAAcgB,MAAK/B,EAC3DkC,GAAwBG,EAAS,GAAKtB,EAAc/C,MAAKgC,CAE7D,GAAE,CAACiC,EAAuBC,EAAuBnB,IAElD,IAAMuB,EAAaC,EAAazB,EAAM0B,KAAM,CAAC,aAE7C,IAAAC,EAA+DzI,EAAW,CACxEU,WAAYmH,EACZ3H,SAAUmH,EACVjH,qBAAAA,EACAI,SAAUsG,EAAMtG,SAChBL,cAAAA,EACAE,kBAAAA,EACAC,iBAAkB,SAAlBA,EAAmB6E,GACjB,GAAIuC,EAAsBgB,QAAS,CACjC1B,SAAAA,EAAuB7B,GAAY,IACnCuC,EAAsBgB,QAAU,KAClC,CACAzB,SAAAA,EAA0B9B,GAAY,GACvC,EACD5E,uBAAAA,EACAE,SAAUA,IAAa4B,UAAY,KAAO5B,IAfpCc,EAAakH,EAAblH,cAAeH,EAAiBqH,EAAjBrH,kBAAmBgF,EAAgBqC,EAAhBrC,iBAkB1C,IAAMuC,EAAeC,EAAMC,gBAAe,SAACC,GACzC,GAAIxB,EAAc,CAChB,GAAIgB,EAAY,CACdxB,EAAMtG,UAAQ,MAAdsG,EAAMtG,SAAWsI,EAAcA,EACjC,KAAO,CACLhC,EAAMtG,UAANsG,MAAAA,EAAMtG,SAAWsI,EAAa,GAAIA,EACpC,CACF,KAAO,CACL,IAAMtC,EAAYsC,EAAapC,KAAI,SAACC,GAAI,OAAKA,EAAKuB,MAClD,GAAII,EAAY,CACdxB,EAAMtG,UAAQ,MAAdsG,EAAMtG,SAAWgG,EAAWsC,EAC9B,KAAO,CACLhC,EAAMtG,UAAQ,MAAdsG,EAAMtG,SAAWgG,EAAU,GAAIsC,EAAa,GAC9C,CACF,CACF,IAEA,IAAMC,EAAgBH,EAAMC,gBAAe,SAACG,EAAQC,GAClD,IAAKA,EAAa,OAAOnC,EAAMtG,UAAQ,UAAA,EAAdsG,EAAMtG,SAAW6B,WAC1C,IAAMyG,EAAerC,EAAcwC,GACnC,IAAMC,EAAa,GACnBJ,EAAaK,SAAQ,SAACxC,GACpB,GAAII,GAAiBqB,GAAmBzB,EAAK3C,QAAUoE,EAAgBF,GAAwB,CAC7FgB,EAAWE,KAAKhB,EAClB,KAAO,CACL,IAAMiB,EAAeC,EAAUlI,GAAqB,GAAIuF,EAAK3C,MAAOkE,GACpE,GAAImB,EAAc,CAChBH,EAAWE,KAAKC,EAClB,CACF,CACF,IACAV,EAAaO,EACf,IAEA,IAAMK,EAAkBxH,GAAQ,WAC9B,GAAIR,IAAkB,kBAAmB,MAAO,GAChD,IAAKH,GAAqBA,EAAkBH,SAAW,EAAG,MAAO,GACjE,IAAKmH,EAAiB,OAAOhH,EAC7B,MAAO,CAACgH,GAAiBoB,OAAOpI,EACjC,GAAE,CAACgH,EAAiB7G,EAAeH,IAEpC,IAAMqI,EAAUlI,IAAkB,mBAElC,IAAMmI,EAAc3H,GAAQ,WAC1B,IAAMmH,EAAa7C,EAAarC,EAAOkE,GACvC,OAAOI,EAAaY,EAAaA,EAAW,EAC7C,GAAE,CAACZ,EAAYJ,EAAuBlE,IAEvC,IAAM2F,EAAef,EAAMC,gBAAe,SAACe,EAAeC,GACxD,IAAMC,EAAWrD,EAAQoD,EAAOC,UAChC,IAAIC,EAAc,GAClB,IAAMC,EAAsBF,EAASzE,MAAK,SAACsB,GACzC,OAAOsD,EAAetD,EACxB,IACA,IAAKqD,EAAqB,CACxBF,EAASX,SAAQ,SAACxC,GAChB,GAAIuD,EAASvD,GAAOoD,GAAepD,CACrC,GACF,KAAO,CACLoD,EAAcG,EAASL,eAAAA,EAAQ9B,OAAS8B,EAAO9B,MAAQ1F,SACzD,CACA,OAAO0H,EAAYI,cAAcC,QAAQR,EAAMO,gBAAkB,CACnE,IAEA,OACEE,EAACC,EAAMxC,EAAA,CACLyC,WAAY,KACZC,WAAY,KACZC,sBAAuB,MACvBd,aAAcA,GACVpC,EAAU,CACdmD,MAAK5C,EAAA,CAAI6C,MAAO,QAAW7D,EAAM4D,OACjC1G,MAAO0F,EACPD,QAASA,EACTjJ,SAAUuI,EACVrI,WAAY2B,UACZuI,WACErJ,IAAkB,gBAChB8I,EAAAQ,EAAA,CAAcC,KAAMrB,EAASsB,QAAS3E,IAEtCmB,EAAWqD,WAGfI,gBACEX,EAACY,EAAa,CACZ/G,OAAQ3C,EACRkI,QAASA,EACTyB,cAAapD,EAAA,CACX,eAAgB,QACbX,GAELgE,YACEd,EAACe,EAAM,CAACC,KAAK,UAAUN,QAAS3E,EAAiB0D,SAAC,aAKvDA,SAEAP,EAAgB7C,KAAI,SAACC,EAAM2E,GAC1B,IAAMtH,EAAQ2C,EAAKuB,GACnB,IAAMH,EAAQpB,EAAKsB,GACnB,OACEsD,EAACjB,EAAOkB,OAAM,CACZxH,MAAOA,EACP+D,MAAOA,EAEPC,SAAUrB,EAAKwB,GAA0B2B,SAExChD,CAAAA,EAAM2E,SACLpB,EAAA,OAAA,CAAMqB,UAAU,uBAAsB5B,SAAEhD,EAAM6E,MAAI,UAAA,EAAV7E,EAAM6E,KAAOhF,EAAM2E,KACzD,KACHpE,EAAuBA,EAAqBP,GAAQoB,IAN7C/D,EAASsH,IAAAA,QAY7B"}
|
|
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './../request-status/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import e from"@ant-design/icons/es/icons/RedoOutlined";import{hooks as r}from"@wove/react/cjs/hooks";import{a as t,_ as o}from"../_rollupPluginBabelHelpers-
|
|
6
|
+
import e from"@ant-design/icons/es/icons/RedoOutlined";import{hooks as r}from"@wove/react/cjs/hooks";import{a as t,_ as o}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{get as s}from"@dimjs/utils/cjs/get";import{Select as i,Button as a}from"antd";import{useState as l,useMemo as u}from"react";import{fbaHooks as c}from"../fba-hooks/index.js";import{RequestStatus as d}from"../request-status/index.js";import{jsx as f}from"react/jsx-runtime";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";var m=["showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","onLabelRenderAdapter"];var v=function v(p){var h=p.showAllOption,g=p.serviceConfig,b=p.onSelectorListChange,q=p.onSelectorRequestError,w=p.requestMessageConfig,y=p.fieldNames,C=p.onLabelRenderAdapter,j=t(p,m);var R=l("request-init"),S=R[0],x=R[1];var A=l(),k=A[0],K=A[1];var E=(y==null?void 0:y.label)||"label";var L=(y==null?void 0:y.value)||"value";var O=(y==null?void 0:y.disabled)||"disabled";var M=(y==null?void 0:y.searchKeyword)||"searchKeyword";var P=g.params;var B=u((function(){var e=h===true;if(h){return{label:e?"全部":h.label,value:e?"":h.value}}return null}),[h]);var N=function e(r){var t=r;if(g.onRequestResultAdapter){t=g.onRequestResultAdapter(r)}else if(y!=null&&y.list){t=s(r,y==null?void 0:y.list)}if(t&&!n(t)){console.warn("待渲染数据为非数组结构",t);return[]}return t||[]};var _=function e(r){return new Promise((function(e,t){var n,s,i;var a=function(){try{return e()}catch(e){return t(e)}};var l=function(e){try{x("request-error");q==null||q(e);return a()}catch(e){return t(e)}};try{x("request-progress");return Promise.resolve(g.onRequest==null?void 0:g.onRequest(o({},P,(n={},n[M]=r,n)))).then((function(e){try{s=e;i=N(s);b==null||b(i);if(E&&L){i=i.map((function(e){return o({},e,{label:e[E],value:e[L],disabled:e[O||"disabled"]})}))}i.forEach((function(e){if(C){e.label=C(e)}}));if(B){i.unshift(B)}K(i);x("request-success");return a()}catch(e){return l(e)}}),l)}catch(e){l(e)}}))};var z=r.useDebounceCallback((function(e){K([]);void _(e)}),300);c.useEffectCustom((function(){if(p.customKeyword){void _(p.customKeyword)}}),[p.customKeyword]);var D=S==="request-progress";return f(i,o({showSearch:true,allowClear:true,dropdownMatchSelectWidth:false},j,{style:o({width:"100%"},p.style),options:k,filterOption:false,onSearch:z,notFoundContent:f(d,{status:S,loading:D,messageConfig:o({"request-init":"请输入搜索条件"},w),errorButton:f(a,{type:"primary",onClick:_,children:"重新获取数据"})}),suffixIcon:S==="request-error"?f(e,{spin:D,onClick:_}):undefined,loading:D}))};export{v as SelectorWrapperSearch};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper-search/selector-wrapper-search.tsx"],"sourcesContent":["import { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select, SelectProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatus, TRequestStatusProps } from '../request-status';\n\nexport type SelectorWrapperSearchServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSearchProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如:'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: { label: string; value: string; disabled?: string; searchKeyword?: string; list?: string };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSearchServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /** 通过服务获取数据异常回调 */\n onSelectorRequestError?: (error: Error) => void;\n /** 交互文案配置 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n // 自定义keyword值\n customKeyword?: string;\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 只支持 search + 服务 功能\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSearch = (props: SelectorWrapperSearchProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n onLabelRenderAdapter,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const searchKeyword = fieldNames?.searchKeyword || 'searchKeyword';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig.onRequestResultAdapter) {\n result = serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const startDataSourceRequest = async (keyword) => {\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.({\n ...serviceParams,\n [searchKeyword]: keyword,\n });\n let respAdapterData = serviceRespDataAdapter(respData);\n onSelectorListChange?.(respAdapterData);\n if (optionsItemLabelField && optionsItemValueField) {\n respAdapterData = respAdapterData.map((item) => {\n return {\n ...item,\n label: item[optionsItemLabelField],\n value: item[optionsItemValueField],\n disabled: item[optionsItemDisabledField || 'disabled'],\n };\n });\n }\n\n respAdapterData.forEach((item) => {\n if (onLabelRenderAdapter) {\n item.label = onLabelRenderAdapter(item);\n }\n });\n\n if (allOptionConfig) {\n respAdapterData.unshift(allOptionConfig);\n }\n setDataSource(respAdapterData);\n setRequestStatus('request-success');\n } catch (error) {\n setRequestStatus('request-error');\n onSelectorRequestError?.(error);\n }\n };\n\n const onSearch = hooks.useDebounceCallback((value: string) => {\n setDataSource([]);\n void startDataSourceRequest(value);\n }, 300);\n\n fbaHooks.useEffectCustom(() => {\n if (props.customKeyword) {\n void startDataSourceRequest(props.customKeyword);\n }\n }, [props.customKeyword]);\n\n const loading = requestStatus === 'request-progress';\n return (\n <Select\n showSearch={true}\n allowClear={true}\n dropdownMatchSelectWidth={false}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n options={dataSource as LabelValueItem[]}\n filterOption={false}\n onSearch={onSearch}\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '请输入搜索条件',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={startDataSourceRequest} />\n ) : undefined\n }\n loading={loading}\n />\n );\n};\n"],"names":["SelectorWrapperSearch","props","showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","onLabelRenderAdapter","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","requestStatus","setRequestStatus","_useState2","dataSource","setDataSource","optionsItemLabelField","label","optionsItemValueField","value","optionsItemDisabledField","disabled","searchKeyword","serviceParams","params","allOptionConfig","useMemo","isTrue","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","keyword","Promise","$return","$error","_extends2","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper-search/selector-wrapper-search.tsx"],"sourcesContent":["import { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select, SelectProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatus, TRequestStatusProps } from '../request-status';\n\nexport type SelectorWrapperSearchServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSearchProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如:'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: { label: string; value: string; disabled?: string; searchKeyword?: string; list?: string };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSearchServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /** 通过服务获取数据异常回调 */\n onSelectorRequestError?: (error: Error) => void;\n /** 交互文案配置 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n // 自定义keyword值\n customKeyword?: string;\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 只支持 search + 服务 功能\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSearch = (props: SelectorWrapperSearchProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n onLabelRenderAdapter,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const searchKeyword = fieldNames?.searchKeyword || 'searchKeyword';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig.onRequestResultAdapter) {\n result = serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const startDataSourceRequest = async (keyword) => {\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.({\n ...serviceParams,\n [searchKeyword]: keyword,\n });\n let respAdapterData = serviceRespDataAdapter(respData);\n onSelectorListChange?.(respAdapterData);\n if (optionsItemLabelField && optionsItemValueField) {\n respAdapterData = respAdapterData.map((item) => {\n return {\n ...item,\n label: item[optionsItemLabelField],\n value: item[optionsItemValueField],\n disabled: item[optionsItemDisabledField || 'disabled'],\n };\n });\n }\n\n respAdapterData.forEach((item) => {\n if (onLabelRenderAdapter) {\n item.label = onLabelRenderAdapter(item);\n }\n });\n\n if (allOptionConfig) {\n respAdapterData.unshift(allOptionConfig);\n }\n setDataSource(respAdapterData);\n setRequestStatus('request-success');\n } catch (error) {\n setRequestStatus('request-error');\n onSelectorRequestError?.(error);\n }\n };\n\n const onSearch = hooks.useDebounceCallback((value: string) => {\n setDataSource([]);\n void startDataSourceRequest(value);\n }, 300);\n\n fbaHooks.useEffectCustom(() => {\n if (props.customKeyword) {\n void startDataSourceRequest(props.customKeyword);\n }\n }, [props.customKeyword]);\n\n const loading = requestStatus === 'request-progress';\n return (\n <Select\n showSearch={true}\n allowClear={true}\n dropdownMatchSelectWidth={false}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n options={dataSource as LabelValueItem[]}\n filterOption={false}\n onSearch={onSearch}\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '请输入搜索条件',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={startDataSourceRequest} />\n ) : undefined\n }\n loading={loading}\n />\n );\n};\n"],"names":["SelectorWrapperSearch","props","showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","onLabelRenderAdapter","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","requestStatus","setRequestStatus","_useState2","dataSource","setDataSource","optionsItemLabelField","label","optionsItemValueField","value","optionsItemDisabledField","disabled","searchKeyword","serviceParams","params","allOptionConfig","useMemo","isTrue","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","keyword","Promise","$return","$error","_extends2","respAdapterData","$Try_1_Post","$boundEx","$Try_1_Catch","error","resolve","onRequest","_extends","then","$await_2","map","item","forEach","unshift","onSearch","_hooks","useDebounceCallback","fbaHooks","useEffectCustom","customKeyword","loading","_jsx","Select","showSearch","allowClear","dropdownMatchSelectWidth","style","width","options","filterOption","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","children","suffixIcon","_RedoOutlined","spin","undefined"],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './../request-status/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import e from"@ant-design/icons/es/icons/RedoOutlined";import{a as r,_ as t}from"../_rollupPluginBabelHelpers-
|
|
6
|
+
import e from"@ant-design/icons/es/icons/RedoOutlined";import{a as r,_ as t}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{get as o}from"@dimjs/utils/cjs/get";import{Select as s,Button as i}from"antd";import{useState as u,useMemo as l}from"react";import{fbaHooks as a}from"../fba-hooks/index.js";import{RequestStatus as c}from"../request-status/index.js";import{jsx as f}from"react/jsx-runtime";import"@wove/react/cjs/hooks";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";var m=["showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames"];var v=function v(d){var p=d.showAllOption,g=d.serviceConfig,q=d.onSelectorListChange,h=d.onSelectorRequestError,j=d.requestMessageConfig,b=d.fieldNames,C=r(d,m);var y=u("request-init"),R=y[0],w=y[1];var x=u(),k=x[0],A=x[1];var S=(b==null?void 0:b.label)||"label";var E=(b==null?void 0:b.value)||"value";var O=(b==null?void 0:b.disabled)||"disabled";var P=g.params;var B=l((function(){var e=p===true;if(p){return{label:e?"全部":p.label,value:e?"":p.value}}return null}),[p]);var L=function e(r){var t=r;if(g.onRequestResultAdapter){t=g.onRequestResultAdapter(r)}else if(b!=null&&b.list){t=o(r,b==null?void 0:b.list)}if(t&&!n(t)){console.warn("待渲染数据为非数组结构",t);return[]}return t||[]};var M=function e(){return new Promise((function(e,r){var n,o;var s=function(){try{return e()}catch(e){return r(e)}};var i=function(e){try{w("request-error");h==null||h(e);return s()}catch(e){return r(e)}};try{w("request-progress");return Promise.resolve(g.onRequest==null?void 0:g.onRequest(P)).then((function(e){try{n=e;o=L(n);q==null||q(o);if(S&&E){o=o.map((function(e){return t({},e,{label:e[S],value:e[E],disabled:e[O]})}))}if(B){o.unshift(B)}A(o);w("request-success");return s()}catch(e){return i(e)}}),i)}catch(e){i(e)}}))};a.useEffectCustom((function(){void M()}),[]);var N=R==="request-progress";return f(s,t({},C,{style:t({width:"100%"},d.style),options:k,notFoundContent:f(c,{status:R,loading:N,messageConfig:j,errorButton:f(i,{type:"primary",onClick:M,children:"重新获取数据"})}),suffixIcon:R==="request-error"?f(e,{spin:N,onClick:M}):undefined,loading:N}))};export{v as SelectorWrapperSimple};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper-simple/selector-wrapper-simple.tsx"],"sourcesContent":["import { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Button, Select, SelectProps } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatus, TRequestStatusProps } from '../request-status';\n\nexport type SelectorWrapperSimpleServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSimpleProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: { label: string; value: string; disabled?: string; list?: string };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSimpleServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 通过服务获取数据异常回调\n */\n onSelectorRequestError?: (error: Error) => void;\n\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 不支持search效果\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSimple = (props: SelectorWrapperSimpleProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig.onRequestResultAdapter) {\n result = serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const startDataSourceRequest = async () => {\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(serviceParams);\n let respAdapterData = serviceRespDataAdapter(respData);\n onSelectorListChange?.(respAdapterData);\n if (optionsItemLabelField && optionsItemValueField) {\n respAdapterData = respAdapterData.map((item) => {\n return {\n ...item,\n label: item[optionsItemLabelField],\n value: item[optionsItemValueField],\n disabled: item[optionsItemDisabledField],\n };\n });\n }\n\n if (allOptionConfig) {\n respAdapterData.unshift(allOptionConfig);\n }\n setDataSource(respAdapterData);\n setRequestStatus('request-success');\n } catch (error) {\n setRequestStatus('request-error');\n onSelectorRequestError?.(error);\n }\n };\n\n fbaHooks.useEffectCustom(() => {\n void startDataSourceRequest();\n }, []);\n\n const loading = requestStatus === 'request-progress';\n\n return (\n <Select\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n options={dataSource as LabelValueItem[]}\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={requestMessageConfig}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={startDataSourceRequest} />\n ) : undefined\n }\n loading={loading}\n />\n );\n};\n"],"names":["SelectorWrapperSimple","props","showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","requestStatus","setRequestStatus","_useState2","dataSource","setDataSource","optionsItemLabelField","label","optionsItemValueField","value","optionsItemDisabledField","disabled","serviceParams","params","allOptionConfig","useMemo","isTrue","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","Promise","$return","$error","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper-simple/selector-wrapper-simple.tsx"],"sourcesContent":["import { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Button, Select, SelectProps } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatus, TRequestStatusProps } from '../request-status';\n\nexport type SelectorWrapperSimpleServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSimpleProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: { label: string; value: string; disabled?: string; list?: string };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSimpleServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 通过服务获取数据异常回调\n */\n onSelectorRequestError?: (error: Error) => void;\n\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 不支持search效果\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSimple = (props: SelectorWrapperSimpleProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig.onRequestResultAdapter) {\n result = serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const startDataSourceRequest = async () => {\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(serviceParams);\n let respAdapterData = serviceRespDataAdapter(respData);\n onSelectorListChange?.(respAdapterData);\n if (optionsItemLabelField && optionsItemValueField) {\n respAdapterData = respAdapterData.map((item) => {\n return {\n ...item,\n label: item[optionsItemLabelField],\n value: item[optionsItemValueField],\n disabled: item[optionsItemDisabledField],\n };\n });\n }\n\n if (allOptionConfig) {\n respAdapterData.unshift(allOptionConfig);\n }\n setDataSource(respAdapterData);\n setRequestStatus('request-success');\n } catch (error) {\n setRequestStatus('request-error');\n onSelectorRequestError?.(error);\n }\n };\n\n fbaHooks.useEffectCustom(() => {\n void startDataSourceRequest();\n }, []);\n\n const loading = requestStatus === 'request-progress';\n\n return (\n <Select\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n options={dataSource as LabelValueItem[]}\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={requestMessageConfig}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={startDataSourceRequest} />\n ) : undefined\n }\n loading={loading}\n />\n );\n};\n"],"names":["SelectorWrapperSimple","props","showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","requestStatus","setRequestStatus","_useState2","dataSource","setDataSource","optionsItemLabelField","label","optionsItemValueField","value","optionsItemDisabledField","disabled","serviceParams","params","allOptionConfig","useMemo","isTrue","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","Promise","$return","$error","respAdapterData","$Try_1_Post","$boundEx","$Try_1_Catch","error","resolve","onRequest","then","$await_2","map","item","_extends","unshift","fbaHooks","useEffectCustom","loading","_jsx","Select","style","width","options","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","children","suffixIcon","_RedoOutlined","spin","undefined"],"mappings":";ssBA0DaA,EAAwB,SAAxBA,EAAyBC,GACpC,IACEC,EAOED,EAPFC,cACAC,EAMEF,EANFE,cACAC,EAKEH,EALFG,qBACAC,EAIEJ,EAJFI,uBACAC,EAGEL,EAHFK,qBACAC,EAEEN,EAFFM,WACGC,EAAUC,EACXR,EAAKS,GACT,IAAAC,EAA0CC,EAAyB,gBAA5DC,EAAaF,EAAA,GAAEG,EAAgBH,EAAA,GACtC,IAAAI,EAAoCH,IAA7BI,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChC,IAAMG,GAAwBX,eAAAA,EAAYY,QAAS,QACnD,IAAMC,GAAwBb,eAAAA,EAAYc,QAAS,QACnD,IAAMC,GAA2Bf,eAAAA,EAAYgB,WAAY,WACzD,IAAMC,EAAgBrB,EAAcsB,OAEpC,IAAMC,EAAkBC,GAAQ,WAC9B,IAAMC,EAAS1B,IAAkB,KACjC,GAAIA,EAAe,CACjB,MAAO,CACLiB,MAAOS,EAAS,KAAQ1B,EAAciB,MACtCE,MAAOO,EAAS,GAAM1B,EAAcmB,MAExC,CACA,OAAO,IACT,GAAG,CAACnB,IAEJ,IAAM2B,EAAyB,SAAzBA,EAA0BC,GAC9B,IAAIC,EAAyBD,EAC7B,GAAI3B,EAAc6B,uBAAwB,CACxCD,EAAS5B,EAAc6B,uBAAuBF,EAC/C,MAAM,GAAIvB,SAAAA,EAAY0B,KAAM,CAC3BF,EAASG,EAAIJ,EAAUvB,GAAAA,UAAAA,EAAAA,EAAY0B,KACrC,CACA,GAAIF,IAAWI,EAAQJ,GAAS,CAC9BK,QAAQC,KAAK,cAAeN,GAC5B,MAAO,EACT,CACA,OAAOA,GAAU,IAGnB,IAAMO,EAAyB,SAAzBA,IAAyB,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAGrBX,EACFY,EAxGV,IAAIC,aAAJ,IAAI,OAAAH,GAAK,CAAC,MAAAI,GAAW,OAAOH,EAAAG,EAAM,GAAlC,IAAIC,EAAA,SA0HSC,GA1Hb,IA2HMhC,EAAiB,iBACjBT,GAAAA,MAAAA,EAAyByC,GA5H/B,OAAOH,GAAE,CAAC,MAAAC,GAAW,OAAOH,EAAAG,EAAM,GAqG9B,IACE9B,EAAiB,oBACA,OAAAyB,QAAAQ,QAAM5C,EAAc6C,WAAS,UAAA,EAAvB7C,EAAc6C,UAAYxB,IAAhCyB,eAA8CC,GAvGrE,IAuGYpB,EAAWoB,EACbR,EAAkBb,EAAuBC,GAC7C1B,GAAAA,MAAAA,EAAuBsC,GACvB,GAAIxB,GAAyBE,EAAuB,CAClDsB,EAAkBA,EAAgBS,KAAI,SAACC,GACrC,OAAAC,KACKD,EAAI,CACPjC,MAAOiC,EAAKlC,GACZG,MAAO+B,EAAKhC,GACZG,SAAU6B,EAAK9B,IAEnB,GACF,CAEA,GAAII,EAAiB,CACnBgB,EAAgBY,QAAQ5B,EAC1B,CACAT,EAAcyB,GACd5B,EAAiB,mBAzHvB,OAAO6B,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EA0H9B,CAAC,MAAOC,GAAOD,EAAPC,EAGT,CAAC,GACF,EAEDS,EAASC,iBAAgB,gBAClBlB,GACN,GAAE,IAEH,IAAMmB,EAAU5C,IAAkB,mBAElC,OACE6C,EAACC,EAAMN,KACD7C,EAAU,CACdoD,MAAKP,EAAA,CAAIQ,MAAO,QAAW5D,EAAM2D,OACjCE,QAAS9C,EACT+C,gBACEL,EAACM,EAAa,CACZC,OAAQpD,EACR4C,QAASA,EACTS,cAAe5D,EACf6D,YACET,EAACU,EAAM,CAACC,KAAK,UAAUC,QAAShC,EAAuBiC,SAAC,aAM9DC,WACE3D,IAAkB,gBAChB6C,EAAAe,EAAA,CAAcC,KAAMjB,EAASa,QAAShC,IACpCqC,UAENlB,QAASA,IAGf"}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../fba-hooks/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{isArray as e}from"@dimjs/lang/cjs/is-array";import{extend as l}from"@dimjs/utils/cjs/extend";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{Space as i}from"antd";import{Fragment as s}from"react";import{fbaHooks as a}from"../fba-hooks/index.js";import{jsx as r,jsxs as o}from"react/jsx-runtime";import"../_rollupPluginBabelHelpers-
|
|
5
|
+
import{isArray as e}from"@dimjs/lang/cjs/is-array";import{extend as l}from"@dimjs/utils/cjs/extend";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{Space as i}from"antd";import{Fragment as s}from"react";import{fbaHooks as a}from"../fba-hooks/index.js";import{jsx as r,jsxs as o}from"react/jsx-runtime";import"../_rollupPluginBabelHelpers-c0dbec57.js";import"@wove/react/cjs/hooks";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";var m=function m(n){var c=n.formLabelAlign||"right";var d=t("simple-layout",{"simple-layout-tight":n.layoutType==="tight","simple-layout-formlabel-left":c==="left","simple-layout-title-fixed":n.titleFixed,"simple-layout-small":n.size==="small"},n.className);var p=a.useThemeToken();var u=l({"--simple-layout-colorPrimary":p.colorPrimary},n.style,{padding:n.padding,width:n.width});if(n.hidden)return r(s,{});return o("div",{className:d,style:u,onClick:n.onClick,children:[n.title&&n.titleExtra?r("div",{className:t({"simple-layout-title-sign":n.titleLeftLine}),style:n.titleStyle,children:o(i,{className:"simple-layout-title-extra-space",children:[r("div",{className:"simple-layout-title",children:n.title}),r("div",{className:"simple-layout-title-extra",children:n.titleExtra})]})}):null,n.title&&!n.titleExtra?r("div",{className:t("simple-layout-title",{"simple-layout-title-sign":n.titleLeftLine}),style:n.titleStyle,children:n.title}):null,n.desc&&!e(n.desc)?r("div",{className:"simple-layout-desc",children:n.desc}):null,n.desc&&e(n.desc)?r("div",{className:"simple-layout-desc",children:r(i,{direction:"vertical",size:5,children:n.desc.map((function(e,l){return r(s,{children:e},l)}))})}):null,n.children?r("div",{className:"simple-layout-content",style:n.contentStyle,children:n.children}):null]})};m.defaultProps={titleLeftLine:true,layoutType:"layer"};export{m as SimpleLayout};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{classNames as t}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{useState as n,useMemo as a,useEffect as e}from"react";import{jsx as o}from"react/jsx-runtime";var s=function s(i){var c=n(),u=c[0],l=c[1];var f=n(false),T=f[0],
|
|
4
|
+
import{classNames as t}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{useState as n,useMemo as a,useEffect as e}from"react";import{jsx as o}from"react/jsx-runtime";var s=function s(i){var c=n(),u=c[0],l=c[1];var f=n(false),T=f[0],m=f[1];var d=n(false),v=d[0],x=d[1];var k=a((function(){return{sendTxt:i.sendTxt,sentTxt:i.sentTxt,processingTxt:i.processingTxt,format:i.format,autoStart:i.autoStart,totalTicks:i.totalTicks,duration:i.duration}}),[]);var p=k.format;var g=k.totalTicks;var S=k.duration;var h=r.useCountdownCallback((function(t){var r=t/1e3;if(t>0){if(!T){m(true)}l(p.replace("{t}",String(r)));i.onTick==null||i.onTick(r)}else if(t===0){m(false);x(false);i.onTick==null||i.onTick(r);l(k.sentTxt)}}),g*1e3,{intervalTime:S});e((function(){if(!k.autoStart){l(k.sendTxt)}else{h();x(true);m(true)}}),[h,k]);var j=r.useCallbackRef((function(){if(T||v)return;x(true);l(k.processingTxt);void i.onSendRequest().then((function(){m(true);h()})).catch((function(){l(k.sendTxt);x(false)}))}));var C=t("v-count-down",i.className,{running:T,starting:v});return o("div",{className:C,onClick:j,children:u})};s.defaultProps={totalTicks:60,duration:1e3,autoStart:false,format:"{t}s",sendTxt:"获取验证码",sentTxt:"重新获取",processingTxt:"发送中..."};export{s as SmsCountDown};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/sms-count-down/sms-count-down.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { FC, useEffect, useMemo, useState } from 'react';\n\nexport interface SmsCountDownProps {\n onSendRequest: () => Promise<void>; // 验证码请求函数\n totalTicks?: number; // 总倒计时,默认:60(s)\n duration?: number; // 倒计时间隔,默认:1000ms(1s)\n autoStart?: boolean; // 是否自动开始倒计时,默认:fasle,注意:不会自动调用 onSendRequest\n format?: string; // 倒计时格式化,默认:'{t}s'\n sendTxt?: string; // 文案,默认:'获取验证码'\n sentTxt?: string; // 倒计时完成文案,默认:'重新获取'\n processingTxt?: string; // 倒计时中文案,默认:'发送中...'\n onTick?: (time: number) => void; // 倒计时回调\n className?: string;\n}\nexport const SmsCountDown: FC<SmsCountDownProps> = (props) => {\n const [showMessage, setShowMessage] = useState<string>();\n\n const [running, setRunning] = useState(false);\n const [starting, setStarting] = useState(false);\n\n // 初始化设置有效\n const initConfig = useMemo<Omit<SmsCountDownProps, 'onSendRequest' | 'onTick' | 'className'>>(() => {\n return {\n sendTxt: props.sendTxt,\n sentTxt: props.sentTxt,\n processingTxt: props.processingTxt,\n format: props.format,\n autoStart: props.autoStart,\n totalTicks: props.totalTicks,\n duration: props.duration,\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const format = initConfig.format as string;\n const totalTicks = initConfig.totalTicks as number;\n const duration = initConfig.duration as number;\n\n const countdownFnc = hooks.useCountdownCallback(\n (num) => {\n const second = num / 1000;\n if (num > 0) {\n if (!running) {\n setRunning(true);\n }\n setShowMessage(format.replace('{t}', String(second)));\n props.onTick?.(second);\n } else if (num === 0) {\n setRunning(false);\n setStarting(false);\n props.onTick?.(second);\n setShowMessage(initConfig.sentTxt);\n }\n },\n totalTicks * 1000,\n { intervalTime: duration },\n );\n\n useEffect(() => {\n if (!initConfig.autoStart) {\n setShowMessage(initConfig.sendTxt);\n } else {\n countdownFnc();\n setStarting(true);\n setRunning(true);\n }\n }, [countdownFnc, initConfig]);\n\n const onStart = hooks.useCallbackRef(() => {\n if (running || starting) return;\n setStarting(true);\n setShowMessage(initConfig.processingTxt);\n void props\n .onSendRequest()\n .then(() => {\n setRunning(true);\n countdownFnc();\n })\n .catch(() => {\n setShowMessage(initConfig.sendTxt);\n setStarting(false);\n });\n });\n\n const className = classNames('v-count-down', props.className, {\n running,\n starting,\n });\n\n return (\n <div className={className} onClick={onStart}>\n {showMessage}\n </div>\n );\n};\n\nSmsCountDown.defaultProps = {\n totalTicks: 60,\n duration: 1000,\n autoStart: false,\n format: '{t}s',\n sendTxt: '获取验证码',\n sentTxt: '重新获取',\n processingTxt: '发送中...',\n};\n"],"names":["SmsCountDown","props","_useState","useState","showMessage","setShowMessage","_useState2","running","setRunning","_useState3","starting","setStarting","initConfig","useMemo","sendTxt","sentTxt","processingTxt","format","autoStart","totalTicks","duration","countdownFnc","_hooks","useCountdownCallback","num","second","replace","String","onTick","intervalTime","useEffect","onStart","useCallbackRef","onSendRequest","then","catch","className","_classNames","_jsx","onClick","children","defaultProps"],"mappings":";iNAgBaA,EAAsC,SAAtCA,EAAuCC,GAClD,IAAAC,EAAsCC,IAA/BC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAElC,IAAAI,EAA8BH,EAAS,OAAhCI,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1B,IAAAG,EAAgCN,EAAS,OAAlCO,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAG5B,IAAMG,EAAaC,GAA2E,WAC5F,MAAO,CACLC,QAASb,EAAMa,QACfC,QAASd,EAAMc,QACfC,cAAef,EAAMe,cACrBC,OAAQhB,EAAMgB,OACdC,UAAWjB,EAAMiB,UACjBC,WAAYlB,EAAMkB,WAClBC,SAAUnB,EAAMmB,SAGnB,GAAE,IAEH,IAAMH,EAASL,EAAWK,OAC1B,IAAME,EAAaP,EAAWO,WAC9B,IAAMC,EAAWR,EAAWQ,SAE5B,IAAMC,EAAeC,EAAMC,sBACzB,SAACC,GACC,IAAMC,EAASD,EAAM,IACrB,GAAIA,EAAM,EAAG,CACX,IAAKjB,EAAS,CACZC,EAAW,KACb,CACAH,EAAeY,EAAOS,QAAQ,MAAOC,OAAOF,KAC5CxB,EAAM2B,QAAN3B,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/sms-count-down/sms-count-down.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { FC, useEffect, useMemo, useState } from 'react';\n\nexport interface SmsCountDownProps {\n onSendRequest: () => Promise<void>; // 验证码请求函数\n totalTicks?: number; // 总倒计时,默认:60(s)\n duration?: number; // 倒计时间隔,默认:1000ms(1s)\n autoStart?: boolean; // 是否自动开始倒计时,默认:fasle,注意:不会自动调用 onSendRequest\n format?: string; // 倒计时格式化,默认:'{t}s'\n sendTxt?: string; // 文案,默认:'获取验证码'\n sentTxt?: string; // 倒计时完成文案,默认:'重新获取'\n processingTxt?: string; // 倒计时中文案,默认:'发送中...'\n onTick?: (time: number) => void; // 倒计时回调\n className?: string;\n}\nexport const SmsCountDown: FC<SmsCountDownProps> = (props) => {\n const [showMessage, setShowMessage] = useState<string>();\n\n const [running, setRunning] = useState(false);\n const [starting, setStarting] = useState(false);\n\n // 初始化设置有效\n const initConfig = useMemo<Omit<SmsCountDownProps, 'onSendRequest' | 'onTick' | 'className'>>(() => {\n return {\n sendTxt: props.sendTxt,\n sentTxt: props.sentTxt,\n processingTxt: props.processingTxt,\n format: props.format,\n autoStart: props.autoStart,\n totalTicks: props.totalTicks,\n duration: props.duration,\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const format = initConfig.format as string;\n const totalTicks = initConfig.totalTicks as number;\n const duration = initConfig.duration as number;\n\n const countdownFnc = hooks.useCountdownCallback(\n (num) => {\n const second = num / 1000;\n if (num > 0) {\n if (!running) {\n setRunning(true);\n }\n setShowMessage(format.replace('{t}', String(second)));\n props.onTick?.(second);\n } else if (num === 0) {\n setRunning(false);\n setStarting(false);\n props.onTick?.(second);\n setShowMessage(initConfig.sentTxt);\n }\n },\n totalTicks * 1000,\n { intervalTime: duration },\n );\n\n useEffect(() => {\n if (!initConfig.autoStart) {\n setShowMessage(initConfig.sendTxt);\n } else {\n countdownFnc();\n setStarting(true);\n setRunning(true);\n }\n }, [countdownFnc, initConfig]);\n\n const onStart = hooks.useCallbackRef(() => {\n if (running || starting) return;\n setStarting(true);\n setShowMessage(initConfig.processingTxt);\n void props\n .onSendRequest()\n .then(() => {\n setRunning(true);\n countdownFnc();\n })\n .catch(() => {\n setShowMessage(initConfig.sendTxt);\n setStarting(false);\n });\n });\n\n const className = classNames('v-count-down', props.className, {\n running,\n starting,\n });\n\n return (\n <div className={className} onClick={onStart}>\n {showMessage}\n </div>\n );\n};\n\nSmsCountDown.defaultProps = {\n totalTicks: 60,\n duration: 1000,\n autoStart: false,\n format: '{t}s',\n sendTxt: '获取验证码',\n sentTxt: '重新获取',\n processingTxt: '发送中...',\n};\n"],"names":["SmsCountDown","props","_useState","useState","showMessage","setShowMessage","_useState2","running","setRunning","_useState3","starting","setStarting","initConfig","useMemo","sendTxt","sentTxt","processingTxt","format","autoStart","totalTicks","duration","countdownFnc","_hooks","useCountdownCallback","num","second","replace","String","onTick","intervalTime","useEffect","onStart","useCallbackRef","onSendRequest","then","catch","className","_classNames","_jsx","onClick","children","defaultProps"],"mappings":";iNAgBaA,EAAsC,SAAtCA,EAAuCC,GAClD,IAAAC,EAAsCC,IAA/BC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAElC,IAAAI,EAA8BH,EAAS,OAAhCI,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1B,IAAAG,EAAgCN,EAAS,OAAlCO,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAG5B,IAAMG,EAAaC,GAA2E,WAC5F,MAAO,CACLC,QAASb,EAAMa,QACfC,QAASd,EAAMc,QACfC,cAAef,EAAMe,cACrBC,OAAQhB,EAAMgB,OACdC,UAAWjB,EAAMiB,UACjBC,WAAYlB,EAAMkB,WAClBC,SAAUnB,EAAMmB,SAGnB,GAAE,IAEH,IAAMH,EAASL,EAAWK,OAC1B,IAAME,EAAaP,EAAWO,WAC9B,IAAMC,EAAWR,EAAWQ,SAE5B,IAAMC,EAAeC,EAAMC,sBACzB,SAACC,GACC,IAAMC,EAASD,EAAM,IACrB,GAAIA,EAAM,EAAG,CACX,IAAKjB,EAAS,CACZC,EAAW,KACb,CACAH,EAAeY,EAAOS,QAAQ,MAAOC,OAAOF,KAC5CxB,EAAM2B,QAAN3B,MAAAA,EAAM2B,OAASH,EACjB,MAAO,GAAID,IAAQ,EAAG,CACpBhB,EAAW,OACXG,EAAY,OACZV,EAAM2B,QAAN3B,MAAAA,EAAM2B,OAASH,GACfpB,EAAeO,EAAWG,QAC5B,CACF,GACAI,EAAa,IACb,CAAEU,aAAcT,IAGlBU,GAAU,WACR,IAAKlB,EAAWM,UAAW,CACzBb,EAAeO,EAAWE,QAC5B,KAAO,CACLO,IACAV,EAAY,MACZH,EAAW,KACb,CACF,GAAG,CAACa,EAAcT,IAElB,IAAMmB,EAAUT,EAAMU,gBAAe,WACnC,GAAIzB,GAAWG,EAAU,OACzBC,EAAY,MACZN,EAAeO,EAAWI,oBACrBf,EACFgC,gBACAC,MAAK,WACJ1B,EAAW,MACXa,GACF,IACCc,OAAM,WACL9B,EAAeO,EAAWE,SAC1BH,EAAY,MACd,GACJ,IAEA,IAAMyB,EAAYC,EAAW,eAAgBpC,EAAMmC,UAAW,CAC5D7B,QAAAA,EACAG,SAAAA,IAGF,OACE4B,EAAA,MAAA,CAAKF,UAAWA,EAAWG,QAASR,EAAQS,SACzCpC,GAGP,EAEAJ,EAAayC,aAAe,CAC1BtB,WAAY,GACZC,SAAU,IACVF,UAAW,MACXD,OAAQ,OACRH,QAAS,QACTC,QAAS,OACTC,cAAe"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{_ as r}from"../_rollupPluginBabelHelpers-
|
|
4
|
+
import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{classNames as e}from"@dimjs/utils/cjs/class-names";import{hooks as t}from"@wove/react/cjs/hooks";import{Children as a,useState as i}from"react";import o from"react-split";import{jsx as s}from"react/jsx-runtime";var p=function p(l){var n=a.toArray(l.children);var c=i(Date.now()),m=c[0],f=c[1];t.useUpdateEffect((function(){f(Date.now())}),[l.direction]);return s(o,r({gutterSize:7},l,{className:e("split-warpper","split-warpper-"+l.direction,l.className),children:n.map((function(r,e){return s("div",{className:"split-warpper-panel",style:l.panelStyle,children:r},e)}))}),m)};export{p as SplitWrapper};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{a as t,_ as i}from"../_rollupPluginBabelHelpers-
|
|
4
|
+
import{a as t,_ as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{isHttpUri as s}from"@flatbiz/utils";import{useMemo as e}from"react";import{jsx as a}from"react/jsx-runtime";var l=["color","svgPath","className","height","width","style","onClick"];var h=function h(o){var c=o.color,n=o.svgPath,m=o.className,v=o.height,d=o.width,g=o.style,p=o.onClick,f=t(o,l);var u=c||"#555";var w=s(n)?n:"https://file.40017.cn/tcsk/alicon/"+n+".svg";var j=e((function(){if(d||v){return{width:d,height:v}}return{width:20,height:20}}),[v,d]);return a("div",i({},f,{onClick:p,className:r("http-svg-view",m),style:i({width:j.width,height:j.height},g),children:a("div",{className:"hsv-content",style:{filter:"drop-shadow("+u+" 200px 0)"},children:a("img",{src:w})})}))};export{h as SvgHttpView};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../fba-hooks/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{a as e,_ as r}from"../_rollupPluginBabelHelpers-
|
|
5
|
+
import{a as e,_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as n}from"@wove/react/cjs/hooks";import{message as t,Popconfirm as o,Switch as i}from"antd";import{useMemo as u,useState as l}from"react";import{fbaHooks as s}from"../fba-hooks/index.js";import{jsx as a}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";var c=["popConfirmProps","needConfirm","checkedValue","unCheckedValue","onChange","value","serviceConfig","noMessage"];var f=function f(d){var m=d.popConfirmProps,v=d.needConfirm,p=d.checkedValue,h=d.unCheckedValue,g=d.onChange,C=d.value,k=d.serviceConfig,b=d.noMessage,j=e(d,c);var y=u((function(){if(typeof m==="function"){return m(C===p)}return m}),[p,m,C]);var P=l(false),V=P[0],x=P[1];var R=l(false),q=R[0],w=R[1];s.useEffectCustom((function(){x(C===p)}),[d.value]);var B=u((function(){return v==="close"&&V||v==="open"&&!V||!v||v==="all"}),[V,v]);var E=n.useCallbackRef((function(){return new Promise((function(e,r){var n,o,i;n=!V?p:h;if(k!=null&&k.onRequest){var u=function(e){return function(n){try{w(false);return e&&e.call(this,n)}catch(e){return r(e)}}.bind(this)}.bind(this);var l=function(){try{return a.call(this)}catch(e){return r(e)}}.bind(this);var s=function(e){try{if(!b){void t.error((e==null?void 0:e.message)||(k==null||(i=k.message)==null?void 0:i.defaultError)||"状态修改失败!")}return u(l)()}catch(e){return u(r)(e)}};try{w(true);return Promise.resolve(k.onRequest(n)).then((function(e){try{x(!V);g==null||g(n);if(!b){void t.success((k==null||(o=k.message)==null?void 0:o.success)||"状态修改成功!")}return u(l)()}catch(e){return s(e)}}),s)}catch(e){s(e)}}else{x(!V);g==null||g(n);return a.call(this)}function a(){return e()}}))}));if(B){return a(o,{disabled:y==null?void 0:y.disabled,okButtonProps:{loading:q},title:y==null?void 0:y.title,description:y==null?void 0:y.description,onConfirm:E,children:a(i,r({checked:V},j))})}return a(i,r({checked:V,loading:q},j,{onChange:E}))};export{f as SwitchConfirmWrapper};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/switch-confirm-wrapper/switch-confirm-wrapper.tsx"],"sourcesContent":["import { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { message, Popconfirm, PopconfirmProps, Switch, SwitchProps } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\n\nexport type SwitchConfirmWrapperValue = string | number | boolean;\nexport type SwitchConfirmWrapperProps = Omit<SwitchProps, 'defaultChecked' | 'onChange'> & {\n value?: SwitchConfirmWrapperValue;\n checkedValue: SwitchConfirmWrapperValue;\n unCheckedValue: SwitchConfirmWrapperValue;\n needConfirm?: 'close' | 'open' | 'all' | 'none';\n noMessage?: boolean;\n onChange?: (value: SwitchConfirmWrapperValue) => void;\n popConfirmProps?:\n | Pick<PopconfirmProps, 'disabled' | 'title' | 'description'>\n | ((checked?: boolean) => Pick<PopconfirmProps, 'disabled' | 'title' | 'description'>);\n serviceConfig?: {\n onRequest: (value: SwitchConfirmWrapperValue) => TAny;\n message?: {\n success?: string;\n defaultError?: string;\n };\n };\n};\n\n/**\n *\n * @description switch 切换时做二次pop提醒, 非可控组件【内部控制】\n * @param props\n * @param value\n * @param checkedValue:选中状态值\n * @param unCheckedValue:非选中状态值\n * @param needConfirm:二次pop拦截时机 可不传\n * close:switch 由开启转换成关闭时pop弹出\n * open:switch 由开启转换成开启时pop弹出\n * all:switch 一直pop\n * none:switch 不弹出\n * @param noMessage:不采用内置message提示\n * @param onChange:switch 有效切换回掉\n * @param popConfirmProps:popConfirm中参数 disabled title description\n * @param serviceConfig onRequest\n * @field onRequest 请求函数\n * @field message message配置 success defaultError\n * ```\n * 1. 单独使用\n * <SwitchConfirmWrapper\n * value={value}\n * checkedValue={'1'}\n * unCheckedValue={'2'}\n * serviceConfig={{\n * onRequest: async () => {\n * await sleep(2000);\n * },\n * }}\n * needConfirm={'all'}\n * popConfirmProps={{\n * title: '确定要开启吗?',\n * }}\n * onChange={(value) => {\n * setValue(value as string);\n * }}\n * />\n *\n * 2. 与Form.Item结合使用\n * <Form.Item name=\"open\">\n * <SwitchConfirmWrapper\n * checkedValue={'1'}\n * unCheckedValue={'2'}\n * serviceConfig={{\n * onRequest: async () => {\n * await sleep(2000);\n * },\n * }}\n * needConfirm={'all'}\n * popConfirmProps={{\n * title: '确定要开启吗?',\n * }}\n * />\n * </Form.Item>\n * ```\n */\nexport const SwitchConfirmWrapper = (props: SwitchConfirmWrapperProps) => {\n const {\n popConfirmProps,\n needConfirm,\n checkedValue,\n unCheckedValue,\n onChange,\n value,\n serviceConfig,\n noMessage,\n ...otherProps\n } = props;\n const popConfirmPropsFt = useMemo(() => {\n if (typeof popConfirmProps === 'function') {\n return popConfirmProps(value === checkedValue);\n }\n return popConfirmProps;\n }, [checkedValue, popConfirmProps, value]);\n const [isCheked, setIsCheked] = useState<boolean>(false);\n const [loading, setLoading] = useState<boolean>(false);\n\n fbaHooks.useEffectCustom(() => {\n setIsCheked(value === checkedValue);\n }, [props.value]);\n\n const showConfirm = useMemo(() => {\n return (\n (needConfirm === 'close' && isCheked) ||\n (needConfirm === 'open' && !isCheked) ||\n !needConfirm ||\n needConfirm === 'all'\n );\n }, [isCheked, needConfirm]);\n\n const onHandleChange = hooks.useCallbackRef(async () => {\n const changeValue = !isCheked ? checkedValue : unCheckedValue;\n if (serviceConfig?.onRequest) {\n try {\n setLoading(true);\n await serviceConfig.onRequest(changeValue);\n setIsCheked(!isCheked);\n onChange?.(changeValue);\n if (!noMessage) {\n void message.success(serviceConfig?.message?.success || '状态修改成功!');\n }\n } catch (error) {\n if (!noMessage) {\n void message.error(error?.message || serviceConfig?.message?.defaultError || '状态修改失败!');\n }\n } finally {\n setLoading(false);\n }\n } else {\n setIsCheked(!isCheked);\n onChange?.(changeValue);\n }\n });\n if (showConfirm) {\n return (\n <Popconfirm\n disabled={popConfirmPropsFt?.disabled}\n okButtonProps={{ loading: loading }}\n title={popConfirmPropsFt?.title}\n description={popConfirmPropsFt?.description}\n onConfirm={onHandleChange}\n >\n <Switch checked={isCheked} {...otherProps} />\n </Popconfirm>\n );\n }\n return <Switch checked={isCheked} loading={loading} {...otherProps} onChange={onHandleChange} />;\n};\n"],"names":["SwitchConfirmWrapper","props","popConfirmProps","needConfirm","checkedValue","unCheckedValue","onChange","value","serviceConfig","noMessage","otherProps","_objectWithoutPropertiesLoose","_excluded","popConfirmPropsFt","useMemo","_useState","useState","isCheked","setIsCheked","_useState2","loading","setLoading","fbaHooks","useEffectCustom","showConfirm","onHandleChange","_hooks","useCallbackRef","Promise","$return","$error","changeValue","_serviceConfig$messag","_serviceConfig$messag2","onRequest","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","$Try_1_Post","$If_2","$Try_1_Catch","error","message","defaultError","resolve","then","$await_3","success","_jsx","Popconfirm","disabled","okButtonProps","title","description","onConfirm","children","Switch","_extends","checked"],"mappings":";mhBAkFaA,EAAuB,SAAvBA,EAAwBC,GACnC,IACEC,EASED,EATFC,gBACAC,EAQEF,EARFE,YACAC,EAOEH,EAPFG,aACAC,EAMEJ,EANFI,eACAC,EAKEL,EALFK,SACAC,EAIEN,EAJFM,MACAC,EAGEP,EAHFO,cACAC,EAEER,EAFFQ,UACGC,EAAUC,EACXV,EAAKW,GACT,IAAMC,EAAoBC,GAAQ,WAChC,UAAWZ,IAAoB,WAAY,CACzC,OAAOA,EAAgBK,IAAUH,EACnC,CACA,OAAOF,CACR,GAAE,CAACE,EAAcF,EAAiBK,IACnC,IAAAQ,EAAgCC,EAAkB,OAA3CC,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAC5B,IAAAI,EAA8BH,EAAkB,OAAzCI,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAE1BG,EAASC,iBAAgB,WACvBL,EAAYX,IAAUH,EACxB,GAAG,CAACH,EAAMM,QAEV,IAAMiB,EAAcV,GAAQ,WAC1B,OACGX,IAAgB,SAAWc,GAC3Bd,IAAgB,SAAWc,IAC3Bd,GACDA,IAAgB,KAEpB,GAAG,CAACc,EAAUd,IAEd,IAAMsB,EAAiBC,EAAMC,gBAAe,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IACpCC,EAAuDC,EAAAC,EAAvDF,GAAed,EAAWb,EAAeC,EAC/C,GAAIG,GAAa,MAAbA,EAAe0B,UAAW,CAAA,IAAAC,EAtHlC,SAAAC,GAAA,OAAC,SAAAC,GAAD,IAoIQhB,EAAW,OApI4F,OAAOe,GAAUA,EAAME,KAAKC,KAAIF,EAAtI,CAAC,MAAAG,GAAW,OAAOV,EAAAU,EAAM,CAAgI,EAA/JC,KAAKF,OAALE,KAAKF,MAAR,IAAIG,EAAJ,WAAA,IAAI,OAAJC,EAAGL,KAAIC,KAAE,CAAC,MAAAC,GAAW,OAAOV,EAAAU,EAAM,GAA/BC,KAAKF,MAAR,IAAIK,EAAA,SA+HWC,GA/Hf,IAgIQ,IAAKpC,EAAW,MACTqC,EAAQD,OAAMA,GAAAA,UAAAA,EAAAA,EAAOC,WAAWtC,UAAayB,EAAbzB,EAAesC,UAAO,UAAA,EAAtBb,EAAwBc,eAAgB,UAC/E,CAlIR,OAAOZ,EAAAO,EAAAP,EAAE,CAAC,MAAAK,GAAW,OAAOL,EAAAL,EAAAK,CAAAK,EAAM,GAuH5B,IACEnB,EAAW,MACX,OAAAO,QAAAoB,QAAMxC,EAAc0B,UAAUH,IAA9BkB,eAA0CC,GAzHlD,IA0HQhC,GAAaD,GACbX,GAAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/switch-confirm-wrapper/switch-confirm-wrapper.tsx"],"sourcesContent":["import { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { message, Popconfirm, PopconfirmProps, Switch, SwitchProps } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\n\nexport type SwitchConfirmWrapperValue = string | number | boolean;\nexport type SwitchConfirmWrapperProps = Omit<SwitchProps, 'defaultChecked' | 'onChange'> & {\n value?: SwitchConfirmWrapperValue;\n checkedValue: SwitchConfirmWrapperValue;\n unCheckedValue: SwitchConfirmWrapperValue;\n needConfirm?: 'close' | 'open' | 'all' | 'none';\n noMessage?: boolean;\n onChange?: (value: SwitchConfirmWrapperValue) => void;\n popConfirmProps?:\n | Pick<PopconfirmProps, 'disabled' | 'title' | 'description'>\n | ((checked?: boolean) => Pick<PopconfirmProps, 'disabled' | 'title' | 'description'>);\n serviceConfig?: {\n onRequest: (value: SwitchConfirmWrapperValue) => TAny;\n message?: {\n success?: string;\n defaultError?: string;\n };\n };\n};\n\n/**\n *\n * @description switch 切换时做二次pop提醒, 非可控组件【内部控制】\n * @param props\n * @param value\n * @param checkedValue:选中状态值\n * @param unCheckedValue:非选中状态值\n * @param needConfirm:二次pop拦截时机 可不传\n * close:switch 由开启转换成关闭时pop弹出\n * open:switch 由开启转换成开启时pop弹出\n * all:switch 一直pop\n * none:switch 不弹出\n * @param noMessage:不采用内置message提示\n * @param onChange:switch 有效切换回掉\n * @param popConfirmProps:popConfirm中参数 disabled title description\n * @param serviceConfig onRequest\n * @field onRequest 请求函数\n * @field message message配置 success defaultError\n * ```\n * 1. 单独使用\n * <SwitchConfirmWrapper\n * value={value}\n * checkedValue={'1'}\n * unCheckedValue={'2'}\n * serviceConfig={{\n * onRequest: async () => {\n * await sleep(2000);\n * },\n * }}\n * needConfirm={'all'}\n * popConfirmProps={{\n * title: '确定要开启吗?',\n * }}\n * onChange={(value) => {\n * setValue(value as string);\n * }}\n * />\n *\n * 2. 与Form.Item结合使用\n * <Form.Item name=\"open\">\n * <SwitchConfirmWrapper\n * checkedValue={'1'}\n * unCheckedValue={'2'}\n * serviceConfig={{\n * onRequest: async () => {\n * await sleep(2000);\n * },\n * }}\n * needConfirm={'all'}\n * popConfirmProps={{\n * title: '确定要开启吗?',\n * }}\n * />\n * </Form.Item>\n * ```\n */\nexport const SwitchConfirmWrapper = (props: SwitchConfirmWrapperProps) => {\n const {\n popConfirmProps,\n needConfirm,\n checkedValue,\n unCheckedValue,\n onChange,\n value,\n serviceConfig,\n noMessage,\n ...otherProps\n } = props;\n const popConfirmPropsFt = useMemo(() => {\n if (typeof popConfirmProps === 'function') {\n return popConfirmProps(value === checkedValue);\n }\n return popConfirmProps;\n }, [checkedValue, popConfirmProps, value]);\n const [isCheked, setIsCheked] = useState<boolean>(false);\n const [loading, setLoading] = useState<boolean>(false);\n\n fbaHooks.useEffectCustom(() => {\n setIsCheked(value === checkedValue);\n }, [props.value]);\n\n const showConfirm = useMemo(() => {\n return (\n (needConfirm === 'close' && isCheked) ||\n (needConfirm === 'open' && !isCheked) ||\n !needConfirm ||\n needConfirm === 'all'\n );\n }, [isCheked, needConfirm]);\n\n const onHandleChange = hooks.useCallbackRef(async () => {\n const changeValue = !isCheked ? checkedValue : unCheckedValue;\n if (serviceConfig?.onRequest) {\n try {\n setLoading(true);\n await serviceConfig.onRequest(changeValue);\n setIsCheked(!isCheked);\n onChange?.(changeValue);\n if (!noMessage) {\n void message.success(serviceConfig?.message?.success || '状态修改成功!');\n }\n } catch (error) {\n if (!noMessage) {\n void message.error(error?.message || serviceConfig?.message?.defaultError || '状态修改失败!');\n }\n } finally {\n setLoading(false);\n }\n } else {\n setIsCheked(!isCheked);\n onChange?.(changeValue);\n }\n });\n if (showConfirm) {\n return (\n <Popconfirm\n disabled={popConfirmPropsFt?.disabled}\n okButtonProps={{ loading: loading }}\n title={popConfirmPropsFt?.title}\n description={popConfirmPropsFt?.description}\n onConfirm={onHandleChange}\n >\n <Switch checked={isCheked} {...otherProps} />\n </Popconfirm>\n );\n }\n return <Switch checked={isCheked} loading={loading} {...otherProps} onChange={onHandleChange} />;\n};\n"],"names":["SwitchConfirmWrapper","props","popConfirmProps","needConfirm","checkedValue","unCheckedValue","onChange","value","serviceConfig","noMessage","otherProps","_objectWithoutPropertiesLoose","_excluded","popConfirmPropsFt","useMemo","_useState","useState","isCheked","setIsCheked","_useState2","loading","setLoading","fbaHooks","useEffectCustom","showConfirm","onHandleChange","_hooks","useCallbackRef","Promise","$return","$error","changeValue","_serviceConfig$messag","_serviceConfig$messag2","onRequest","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","$Try_1_Post","$If_2","$Try_1_Catch","error","message","defaultError","resolve","then","$await_3","success","_jsx","Popconfirm","disabled","okButtonProps","title","description","onConfirm","children","Switch","_extends","checked"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{a as e,_ as r}from"../_rollupPluginBabelHelpers-
|
|
4
|
+
import{a as e,_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as t}from"@wove/react/cjs/hooks";import{isUndefinedOrNull as n}from"@flatbiz/utils";import{message as o,Tooltip as i,Switch as l}from"antd";import{useState as u}from"react";import{jsx as a}from"react/jsx-runtime";var c=["checkedValue","unCheckedValue","onChange","value","tooltipProps","tooltipTitle","serviceConfig"];var s=function s(f){var h=f.checkedValue,v=f.unCheckedValue,m=f.onChange,d=f.value,p=f.tooltipProps,g=f.tooltipTitle,C=f.serviceConfig,k=e(f,c);var b=u(),y=b[0],P=b[1];var V=t.useCallbackRef((function(e){return new Promise((function(r,t){var n,i,l;n=e?h:v;if(C!=null&&C.onRequest){var u=function(e){return function(r){try{P(false);return e&&e.call(this,r)}catch(e){return t(e)}}.bind(this)}.bind(this);var a=function(){try{return s.call(this)}catch(e){return t(e)}}.bind(this);var c=function(e){try{void o.error((e==null?void 0:e.message)||(C==null||(l=C.message)==null?void 0:l.defaultError)||"状态修改失败!");return u(a)()}catch(e){return u(t)(e)}};try{P(true);return Promise.resolve(C.onRequest(n)).then((function(e){try{m==null||m(n);void o.success((C==null||(i=C.message)==null?void 0:i.success)||"状态修改成功!");return u(a)()}catch(e){return c(e)}}),c)}catch(e){c(e)}}else{m==null||m(n);return s.call(this)}function s(){return r()}}))}));var j;if(typeof g==="function"){j=g(d)}else{j=g}if(j){return a(i,r({placement:"top"},p,{title:j,children:a(l,r({},k,{checked:!n(d)&&h===d,onChange:V}))}))}return a(l,r({loading:y},k,{checked:!n(d)&&h===d,onChange:V}))};export{s as SwitchWrapper};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/switch-wrapper/switch-wrapper.tsx"],"sourcesContent":["import { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { message, Switch, SwitchProps, Tooltip, TooltipProps } from 'antd';\nimport { useState } from 'react';\n\nexport type SwitchWrapperValue = string | number | boolean;\nexport type SwitchWrapperProps = Omit<SwitchProps, 'checked' | 'defaultChecked' | 'onChange' | 'value'> & {\n value?: SwitchWrapperValue;\n checkedValue: SwitchWrapperValue;\n unCheckedValue: SwitchWrapperValue;\n onChange?: (value: SwitchWrapperValue) => void;\n tooltipProps?: Omit<TooltipProps, 'title'>;\n tooltipTitle?: string | ((value?: SwitchWrapperValue) => string | undefined);\n serviceConfig?: {\n onRequest: (value: SwitchWrapperValue) => TAny;\n message?: {\n success?: string;\n defaultError?: string;\n };\n };\n};\n/**\n * 解决Switch只能接收boolean的限制,与Form.Item结合使用最佳\n * ```\n * 1. value 为状态值,不局限于boolean,可以为 [string | number | boolean]\n * 2. checkedValue 选中值\n * 3. unCheckedValue 未选中值\n * 4. 与 Form.Item 结合使用,不再需要配置 valuePropName\n * <Form.Item name=\"fieldName\">\n * <SwitchWrapper checkedValue={2} unCheckedValue={1} />\n * </Form.Item>\n * 5. 可设置tooltip效果数据显示\n * 6. 可设置 serviceConfig 配置服务调用交互\n * ```\n */\nexport const SwitchWrapper = (props: SwitchWrapperProps) => {\n const {\n checkedValue,\n unCheckedValue,\n onChange,\n value,\n tooltipProps,\n tooltipTitle,\n serviceConfig,\n ...otherProps\n } = props;\n const [loading, setLoading] = useState<boolean>();\n const onChangeHandle = hooks.useCallbackRef(async (checked) => {\n const changeValue = checked ? checkedValue : unCheckedValue;\n if (serviceConfig?.onRequest) {\n try {\n setLoading(true);\n await serviceConfig.onRequest(changeValue);\n onChange?.(changeValue);\n void message.success(serviceConfig?.message?.success || '状态修改成功!');\n } catch (error) {\n void message.error(error?.message || serviceConfig?.message?.defaultError || '状态修改失败!');\n } finally {\n setLoading(false);\n }\n } else {\n onChange?.(changeValue);\n }\n });\n\n let tipTitle: string | undefined;\n\n if (typeof tooltipTitle === 'function') {\n tipTitle = tooltipTitle(value);\n } else {\n tipTitle = tooltipTitle;\n }\n\n if (tipTitle) {\n return (\n <Tooltip placement=\"top\" {...tooltipProps} title={tipTitle}>\n <Switch\n {...otherProps}\n checked={!isUndefinedOrNull(value) && checkedValue === value}\n onChange={onChangeHandle}\n />\n </Tooltip>\n );\n }\n\n return (\n <Switch\n loading={loading}\n {...otherProps}\n checked={!isUndefinedOrNull(value) && checkedValue === value}\n onChange={onChangeHandle}\n />\n );\n};\n"],"names":["SwitchWrapper","props","checkedValue","unCheckedValue","onChange","value","tooltipProps","tooltipTitle","serviceConfig","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","loading","setLoading","onChangeHandle","_hooks","useCallbackRef","checked","Promise","$return","$error","changeValue","_serviceConfig$messag","_serviceConfig$messag2","onRequest","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","$Try_1_Post","$If_2","$Try_1_Catch","error","message","defaultError","resolve","then","$await_3","success","tipTitle","_jsx","Tooltip","_extends","placement","title","children","Switch","isUndefinedOrNull"],"mappings":";mZAmCaA,EAAgB,SAAhBA,EAAiBC,GAC5B,IACEC,EAQED,EARFC,aACAC,EAOEF,EAPFE,eACAC,EAMEH,EANFG,SACAC,EAKEJ,EALFI,MACAC,EAIEL,EAJFK,aACAC,EAGEN,EAHFM,aACAC,EAEEP,EAFFO,cACGC,EAAUC,EACXT,EAAKU,GACT,IAAAC,EAA8BC,IAAvBC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAC1B,IAAMI,EAAiBC,EAAMC,gBAAe,SAAOC,GAAP,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IACpCC,EAAqDC,EAAAC,EAArDF,EAAcJ,EAAUjB,EAAeC,EAC7C,GAAIK,GAAa,MAAbA,EAAekB,UAAW,CAAA,IAAAC,EAjDlC,SAAAC,GAAA,OAAC,SAAAC,GAAD,IA0DQd,EAAW,OA1D4F,OAAOa,GAAUA,EAAME,KAAKC,KAAIF,EAAtI,CAAC,MAAAG,GAAW,OAAOV,EAAAU,EAAM,CAAgI,EAA/JC,KAAKF,OAALE,KAAKF,MAAR,IAAIG,EAAJ,WAAA,IAAI,OAAJC,EAAGL,KAAIC,KAAE,CAAC,MAAAC,GAAW,OAAOV,EAAAU,EAAM,GAA/BC,KAAKF,MAAR,IAAIK,EAAA,SAuDWC,GAvDf,SAwDaC,EAAQD,OAAMA,GAAAA,UAAAA,EAAAA,EAAOC,WAAW9B,UAAaiB,EAAbjB,EAAe8B,UAAO,UAAA,EAAtBb,EAAwBc,eAAgB,WAxDrF,OAAOZ,EAAAO,EAAAP,EAAE,CAAC,MAAAK,GAAW,OAAOL,EAAAL,EAAAK,CAAAK,EAAM,GAkD5B,IACEjB,EAAW,MACX,OAAAK,QAAAoB,QAAMhC,EAAckB,UAAUH,IAA9BkB,eAA0CC,GApDlD,IAqDQtC,GAAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/switch-wrapper/switch-wrapper.tsx"],"sourcesContent":["import { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { message, Switch, SwitchProps, Tooltip, TooltipProps } from 'antd';\nimport { useState } from 'react';\n\nexport type SwitchWrapperValue = string | number | boolean;\nexport type SwitchWrapperProps = Omit<SwitchProps, 'checked' | 'defaultChecked' | 'onChange' | 'value'> & {\n value?: SwitchWrapperValue;\n checkedValue: SwitchWrapperValue;\n unCheckedValue: SwitchWrapperValue;\n onChange?: (value: SwitchWrapperValue) => void;\n tooltipProps?: Omit<TooltipProps, 'title'>;\n tooltipTitle?: string | ((value?: SwitchWrapperValue) => string | undefined);\n serviceConfig?: {\n onRequest: (value: SwitchWrapperValue) => TAny;\n message?: {\n success?: string;\n defaultError?: string;\n };\n };\n};\n/**\n * 解决Switch只能接收boolean的限制,与Form.Item结合使用最佳\n * ```\n * 1. value 为状态值,不局限于boolean,可以为 [string | number | boolean]\n * 2. checkedValue 选中值\n * 3. unCheckedValue 未选中值\n * 4. 与 Form.Item 结合使用,不再需要配置 valuePropName\n * <Form.Item name=\"fieldName\">\n * <SwitchWrapper checkedValue={2} unCheckedValue={1} />\n * </Form.Item>\n * 5. 可设置tooltip效果数据显示\n * 6. 可设置 serviceConfig 配置服务调用交互\n * ```\n */\nexport const SwitchWrapper = (props: SwitchWrapperProps) => {\n const {\n checkedValue,\n unCheckedValue,\n onChange,\n value,\n tooltipProps,\n tooltipTitle,\n serviceConfig,\n ...otherProps\n } = props;\n const [loading, setLoading] = useState<boolean>();\n const onChangeHandle = hooks.useCallbackRef(async (checked) => {\n const changeValue = checked ? checkedValue : unCheckedValue;\n if (serviceConfig?.onRequest) {\n try {\n setLoading(true);\n await serviceConfig.onRequest(changeValue);\n onChange?.(changeValue);\n void message.success(serviceConfig?.message?.success || '状态修改成功!');\n } catch (error) {\n void message.error(error?.message || serviceConfig?.message?.defaultError || '状态修改失败!');\n } finally {\n setLoading(false);\n }\n } else {\n onChange?.(changeValue);\n }\n });\n\n let tipTitle: string | undefined;\n\n if (typeof tooltipTitle === 'function') {\n tipTitle = tooltipTitle(value);\n } else {\n tipTitle = tooltipTitle;\n }\n\n if (tipTitle) {\n return (\n <Tooltip placement=\"top\" {...tooltipProps} title={tipTitle}>\n <Switch\n {...otherProps}\n checked={!isUndefinedOrNull(value) && checkedValue === value}\n onChange={onChangeHandle}\n />\n </Tooltip>\n );\n }\n\n return (\n <Switch\n loading={loading}\n {...otherProps}\n checked={!isUndefinedOrNull(value) && checkedValue === value}\n onChange={onChangeHandle}\n />\n );\n};\n"],"names":["SwitchWrapper","props","checkedValue","unCheckedValue","onChange","value","tooltipProps","tooltipTitle","serviceConfig","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","loading","setLoading","onChangeHandle","_hooks","useCallbackRef","checked","Promise","$return","$error","changeValue","_serviceConfig$messag","_serviceConfig$messag2","onRequest","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","$Try_1_Post","$If_2","$Try_1_Catch","error","message","defaultError","resolve","then","$await_3","success","tipTitle","_jsx","Tooltip","_extends","placement","title","children","Switch","isUndefinedOrNull"],"mappings":";mZAmCaA,EAAgB,SAAhBA,EAAiBC,GAC5B,IACEC,EAQED,EARFC,aACAC,EAOEF,EAPFE,eACAC,EAMEH,EANFG,SACAC,EAKEJ,EALFI,MACAC,EAIEL,EAJFK,aACAC,EAGEN,EAHFM,aACAC,EAEEP,EAFFO,cACGC,EAAUC,EACXT,EAAKU,GACT,IAAAC,EAA8BC,IAAvBC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAC1B,IAAMI,EAAiBC,EAAMC,gBAAe,SAAOC,GAAP,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IACpCC,EAAqDC,EAAAC,EAArDF,EAAcJ,EAAUjB,EAAeC,EAC7C,GAAIK,GAAa,MAAbA,EAAekB,UAAW,CAAA,IAAAC,EAjDlC,SAAAC,GAAA,OAAC,SAAAC,GAAD,IA0DQd,EAAW,OA1D4F,OAAOa,GAAUA,EAAME,KAAKC,KAAIF,EAAtI,CAAC,MAAAG,GAAW,OAAOV,EAAAU,EAAM,CAAgI,EAA/JC,KAAKF,OAALE,KAAKF,MAAR,IAAIG,EAAJ,WAAA,IAAI,OAAJC,EAAGL,KAAIC,KAAE,CAAC,MAAAC,GAAW,OAAOV,EAAAU,EAAM,GAA/BC,KAAKF,MAAR,IAAIK,EAAA,SAuDWC,GAvDf,SAwDaC,EAAQD,OAAMA,GAAAA,UAAAA,EAAAA,EAAOC,WAAW9B,UAAaiB,EAAbjB,EAAe8B,UAAO,UAAA,EAAtBb,EAAwBc,eAAgB,WAxDrF,OAAOZ,EAAAO,EAAAP,EAAE,CAAC,MAAAK,GAAW,OAAOL,EAAAL,EAAAK,CAAAK,EAAM,GAkD5B,IACEjB,EAAW,MACX,OAAAK,QAAAoB,QAAMhC,EAAckB,UAAUH,IAA9BkB,eAA0CC,GApDlD,IAqDQtC,GAAAA,MAAAA,EAAWmB,QACNe,EAAQK,SAAQnC,UAAagB,EAAbhB,EAAe8B,UAAfd,UAAAA,EAAAA,EAAwBmB,UAAW,WAtDhE,OAAOhB,EAAAO,EAAAP,EAAE,CAAC,MAAAK,GAAW,OAAOI,EAAAJ,EAAM,CAAC,GAAAI,EAuD5B,CAAC,MAAOC,GAAOD,EAAPC,EAET,CAGF,KAAO,CACLjC,GAAAA,MAAAA,EAAWmB,GAAa,OA7D9BY,EAAGL,KAAIC,KA8DH,CAAC,SAAAI,IAAA,OAAAd,GAAA,CAAA,OAGH,IAAIuB,EAEJ,UAAWrC,IAAiB,WAAY,CACtCqC,EAAWrC,EAAaF,EAC1B,KAAO,CACLuC,EAAWrC,CACb,CAEA,GAAIqC,EAAU,CACZ,OACEC,EAACC,EAAOC,EAAA,CAACC,UAAU,OAAU1C,EAAY,CAAE2C,MAAOL,EAASM,SACzDL,EAACM,EAAMJ,KACDtC,EAAU,CACdU,SAAUiC,EAAkB/C,IAAUH,IAAiBG,EACvDD,SAAUY,OAIlB,CAEA,OACE6B,EAACM,EAAMJ,EAAA,CACLjC,QAASA,GACLL,EAAU,CACdU,SAAUiC,EAAkB/C,IAAUH,IAAiBG,EACvDD,SAAUY,IAGhB"}
|
|
@@ -12,5 +12,5 @@ import './../tag-list-render/index.css';
|
|
|
12
12
|
import './../tag-list-select/index.css';
|
|
13
13
|
import './index.css';
|
|
14
14
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
15
|
-
import{isString as r}from"@dimjs/lang/cjs/is-string";import{isObject as e}from"@dimjs/lang/cjs/is-object";import{get as n}from"@dimjs/utils/cjs/get";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{_ as i}from"../_rollupPluginBabelHelpers-
|
|
15
|
+
import{isString as r}from"@dimjs/lang/cjs/is-string";import{isObject as e}from"@dimjs/lang/cjs/is-object";import{get as n}from"@dimjs/utils/cjs/get";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{_ as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isEmpty as o}from"@dimjs/lang/cjs/is-empty";import{isNumber as a,isUndefinedOrNull as l,getStrByteLen as u,cutString as s,flatbizDate as d,flatbizPrice as c}from"@flatbiz/utils";import{Tooltip as f,Space as m,Badge as p}from"antd";import{Fragment as v}from"react";import{ButtonOperate as j}from"../button-operate/index.js";import{TagListRender as g}from"../tag-list-render/index.js";import{jsx as h}from"react/jsx-runtime";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-83bede1b.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";var x=function r(e,n){return function(r){if(o(r)||r==="")return n;if(a(r))return r;var t=r.toString();var i=l(e)?10:e;var d=u(t);if(d<=i*2){return t}return h(f,{placement:"topLeft",title:t,children:s(t,i*2)})}};var C=function r(e){return function(r,n,t){var o=e(n,t);return h(j,i({},o))}};var w=function r(e,n){return function(r){if(o(r)||r==="")return n;try{return d.format(new Date(r),e)}catch(e){return r||n}}};var b=function r(e,n){return function(r,t,i){if(n&&e){return(e-1)*n+i+1}return i+1}};var y=function r(e){return function(r,n,t){var i=(e==null?void 0:e())||{},o=i.pageNo,a=i.pageSize;if(a&&o){return(o-1)*a+t+1}return t+1}};var k=function r(e,n,t){return function(r){if(l(r))return null;return h(g,i({dataList:e,colorMap:n,value:r,forceMatch:false},t))}};var N=function r(i,o){return function(r){if(t(r)){var a=n(r,i,o);if(!a)return"";if(e(a))return JSON.stringify(a);return a}return r||o}};var V=function r(e){var n=e!=null&&e.hideBgColor?"":"table-fen-color";return function(r){if(l(r)||r===""){if(l(e==null?void 0:e.defaultValue))return undefined;if(a(e==null?void 0:e.defaultValue)){return h("span",{className:n,children:c.format(e==null?void 0:e.defaultValue)})}return h("span",{className:n,children:e==null?void 0:e.defaultValue})}if(!a(r))return r;var t=c.fen2yuan(r);return h("span",{className:n,children:c.format(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false})})}};var O=function r(e){var n=(e==null?void 0:e.showBgColor)===true?"table-wan-color":"";return function(r){if(l(r)||r===""){if(l(e==null?void 0:e.defaultValue))return undefined;if(a(e==null?void 0:e.defaultValue)){return h("span",{className:n,children:c.format(e==null?void 0:e.defaultValue)})}return h("span",{className:n,children:e==null?void 0:e.defaultValue})}if(!a(r))return r;var t=c.fen2wan(r);var i=e!=null&&e.removeTailZero?c.removeTailZero(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false}):c.format(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false});return h("span",{className:n,children:i})}};var S=function e(n){return function(e,t){var i=n==null?void 0:n(t);if(!i)return h(v,{children:e});var o=l(i.showData)?true:i.showData;var a=l(i.notOverflowShowExtra)?true:i.notOverflowShowExtra;var u=l(i.showMaxNumber)?10:i.showMaxNumber;var d=i.extraPosition?i.extraPosition:"after";var c=r(e)?s(e,u*2):e;if(i.extra&&o){if(c===e&&!a){return e}var f=[h("span",{children:c},"1"),h(v,{children:i.extra},"2")];var p=d==="before"?f.reverse():f;return h(m,{onClick:i.onClick,style:{cursor:i.onClick?"pointer":undefined},size:5,children:p.map((function(r,e){return h(v,{children:r},e)}))})}return h("span",{onClick:i.onClick,children:i.extra})}};var z=function r(e,n){return function(r){if(l(r))return null;var t=e.find((function(e){return e.value===r}));if(t)return h(p,{color:(t==null?void 0:t.color)||(n==null?void 0:n[r])||"rgba(0, 0, 0, 0.25)",text:t==null?void 0:t.label});return r}};var M=function r(e,n){return function(r,t){if(l(r))return n;return h("a",{onClick:e.bind(null,t),children:r})}};var D={extraContentRender:S,indexCell:b,serialNumberCell:y,dateCell:w,operateCell:C,tooltipCell:x,selectorCell:k,objectCell:N,fen2yuanCell:V,fen2wanCell:O,badgeCell:z,clickCell:M};export{D as tableCellRender};
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../fba-hooks/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{a as r,_ as t}from"../_rollupPluginBabelHelpers-
|
|
5
|
+
import{a as r,_ as t}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{get as e}from"@dimjs/utils/cjs/get";import{useCreation as n,useInViewport as o,useSize as l,useEventListener as i}from"ahooks";import{Affix as a}from"antd";import{cloneElement as u,useRef as c,useState as s,useEffect as f}from"react";import{fbaHooks as d}from"../fba-hooks/index.js";import{jsxs as v,Fragment as m,jsx as p}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";var h=["children","target"];var g=d.useEffectCustom;var y=function r(t){if(!t)return undefined;var e=getComputedStyle(t);if(e.overflowY==="scroll"||e.overflowY==="auto"){return t}return y(t.parentNode)};var b=function n(o){var l=o.children,i=o.target,a=r(o,h);var c=e(l,"props.summary");return u(l,t({},a,{summary:function r(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++){e[n]=arguments[n]}return v(m,{children:[c==null?void 0:c.apply(void 0,e),p(w,{target:i})]})}}))};var w=function r(t){var e=t.target;var u=c();var d=c();var v=s(false),m=v[0],h=v[1];var b=n((function(){var r;var t=function r(e){if(!e)return undefined;if(e.nodeName==="TABLE"){return e}return t(e.parentNode)};var e=t(u==null||(r=u.current)==null?void 0:r.parentElement);return{table:e,tableBox:e==null?void 0:e.parentElement}}),[u.current]),w=b.table,j=b.tableBox;var x=o(w==null?void 0:w.querySelector("tbody")),L=x[0];var N=l(j);var W=n((function(){if(e)return e;return y(w)||document.body}),[e,w,N]);g((function(){if(m&&u.current&&d.current){if(u.current.clientWidth!=(j==null?void 0:j.clientWidth)){u.current.style.width=((j==null?void 0:j.clientWidth)||0)+"px"}if(d.current.clientWidth!=(w==null?void 0:w.clientWidth)){d.current.style.width=((w==null?void 0:w.clientWidth)||0)+"px"}}}),[N,m]);i("scroll",(function(r){var t=r.target;if(u.current){u.current.scrollLeft=t.scrollLeft}}),{target:function r(){return j}});i("scroll",(function(r){var t=r.target;if(j)j.scrollLeft=t.scrollLeft}),{target:u});var B=s(0),k=B[0],E=B[1];var C=c(null);f((function(){var r;var t=(r=C.current)==null?void 0:r.parentNode;var e=false;while(t!=null){var n,o;if((n=t.classList)!=null&&n.contains("ant-modal-content")||(o=t.classList)!=null&&o.contains("ant-drawer-body")){e=true;break}t=t.parentNode}if(e){setTimeout((function(){E(Date.now())}),400)}else{E(Date.now())}}),[]);return p("div",{className:"scrollbar-main",ref:C,children:k?p(a,{offsetBottom:L?13:0,style:{opacity:m?1:0},onChange:function r(t){h(!!t)},target:function r(){return W},children:p("div",{ref:u,className:"scrollbar-box",children:p("div",{ref:d,style:{height:1}})})}):null})};export{b as TableScrollbar};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|