@flatbiz/antd 4.2.34 → 4.2.35
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/button-operate/index.js +1 -1
- package/esm/{button-operate-260750d4.js → button-operate-04d9185b.js} +2 -2
- package/esm/{button-operate-260750d4.js.map → button-operate-04d9185b.js.map} +1 -1
- package/esm/button-wrapper/index.js +1 -1
- package/esm/button-wrapper-c63ea6fc.js +3 -0
- package/esm/button-wrapper-c63ea6fc.js.map +1 -0
- package/esm/dialog-alert/index.js +1 -1
- package/esm/dialog-confirm/index.js +1 -1
- package/esm/{dialog-confirm-4b387b9b.js → dialog-confirm-b289f5ed.js} +2 -2
- package/esm/{dialog-confirm-4b387b9b.js.map → dialog-confirm-b289f5ed.js.map} +1 -1
- package/esm/dialog-drawer/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-8568caf2.js → dialog-modal-225b0fe0.js} +2 -2
- package/esm/{dialog-modal-8568caf2.js.map → dialog-modal-225b0fe0.js.map} +1 -1
- package/esm/dropdown-menu-wrapper/index.js +1 -1
- package/esm/{dropdown-menu-wrapper-bd05860d.js → dropdown-menu-wrapper-2c4b6cad.js} +2 -2
- package/esm/{dropdown-menu-wrapper-bd05860d.js.map → dropdown-menu-wrapper-2c4b6cad.js.map} +1 -1
- package/esm/easy-table/index.js +1 -1
- package/esm/editable-table/index.js +1 -1
- package/esm/editable-table/index.js.map +1 -1
- package/esm/selector-wrapper/index.js +1 -1
- package/esm/selector-wrapper-ece722f5.js +3 -0
- package/esm/selector-wrapper-ece722f5.js.map +1 -0
- package/esm/table-cell-render/index.js +1 -1
- package/esm/tag-wrapper/index.css +1 -0
- package/esm/tag-wrapper/index.js +6 -0
- package/esm/tag-wrapper/index.js.map +1 -0
- package/esm/tree-wrapper/index.js +1 -1
- package/index.d.ts +15 -4
- package/package.json +1 -1
- package/esm/button-wrapper-6441881c.js +0 -3
- package/esm/button-wrapper-6441881c.js.map +0 -1
- package/esm/selector-wrapper-6560eb49.js +0 -3
- package/esm/selector-wrapper-6560eb49.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selector-wrapper-6560eb49.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 { json } from '@dimjs/utils';\nimport { isUndefinedOrNull, TPlainObject } from '@flatbiz/utils';\nimport pubSub from 'pubsub-js';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { TRequestStatus } from '../request-status';\nimport { SelectorServiceConfig, 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}) => {\n const {\n cacheKey,\n serviceConfig,\n hasOuterSelectorList,\n outerSelectorList,\n onRespDataChange,\n onSelectorRequestError,\n onChange,\n useCache,\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\n const serviceRespDataAdapter = (respData) => {\n return serviceConfig?.onRequestResultAdapter?.(respData as unknown as TPlainObject) || respData || [];\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 // 不使用缓存模式\n if (useCache === false) {\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 * 此处无法判断 调用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 const respAdapterData = await onRequest();\n setStateSelectorList(respAdapterData);\n setRequestStatus('request-success');\n onRespDataChange?.(respAdapterData);\n }, [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 { 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. 不支持搜索 + 调用服务模式\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\n const {\n label: optionsItemLabelField,\n value: optionsItemValueField,\n disabled: optionsItemDisabledField,\n } = { label: 'label', value: 'value', disabled: 'disabled', ...fieldNames };\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 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 children.forEach((item) => {\n if (isString(item)) mergeString += item;\n });\n return mergeString.toLowerCase().indexOf(input.toLowerCase()) >= 0;\n });\n\n return (\n <Select\n showSearch={true}\n allowClear={true}\n dropdownMatchSelectWidth={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 ) : undefined\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","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","serviceRespDataAdapter","respData","onRequestResultAdapter","getWindowCacheData","_window$__selector_wr","window","getWindowCacheValue","_getWindowCacheData","getWindowCacheStatus","_getWindowCacheData2","setWindowCache","key","value","onChangeRequestStatus","status","onRequest","Promise","$return","$error","respAdapterData","$Try_2_Catch","console","setTimeout","pubSub","publish","reject","$boundEx","resolve","then","$await_5","useEffectCustomAsync","isEmpty","_respAdapterData","_dataList","find","isUndefinedOrNull","$Try_3_Post","$Try_3_Catch","$await_6","dataList","subscribe","_msg","_ref","$await_7","onRefreshRequest","getVauleList","data","valueKey","valueList","toArray","map","item","_isObject","SelectorWrapper","props","showAllOption","onSelectorListChange","onSelectorListAllChange","onLabelRenderAdapter","requestMessageConfig","selectorList","modelKey","fieldNames","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","firstRenderSelectList","useRef","hasOwnProperty","_label$value$disabled","_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","_isString","toLowerCase","indexOf","_jsx","Select","showSearch","allowClear","dropdownMatchSelectWidth","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","index","_jsxs","Option","showIcon","className","icon"],"mappings":";grBAQO,IAAMA,EAAa,SAAbA,EAAcC,GAUzB,IACEC,EAQED,EARFC,SACAC,EAOEF,EAPFE,cACAC,EAMEH,EANFG,qBACAC,EAKEJ,EALFI,kBACAC,EAIEL,EAJFK,iBACAC,EAGEN,EAHFM,uBACAC,EAEEP,EAFFO,SACAC,EACER,EADFQ,SAEF,IAAMC,EAAuBP,GAAAA,UAAAA,EAAAA,EAAeQ,OAC5C,IAAMC,GAAqBT,eAAAA,EAAeS,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,EAAetC,EAAQ,IAAIoC,EAGjC,IAAMG,EAAoCC,EAASC,YAAYd,GAE/D,IAAMe,EAAyB,SAAzBA,EAA0BC,GAC9B,OAAO1C,GAAa,UAAA,EAAbA,EAAe2C,wBAAf3C,UAAAA,EAAAA,EAAe2C,uBAAyBD,KAAwCA,GAAY,IAGrG,IAAME,EAAqB,SAArBA,IAA2B,IAAAC,EAC/B,OAAAA,EAAOC,OAAO,yBAAPD,UAAAA,EAAAA,EAAgC9C,IAEzC,IAAMgD,EAAsB,SAAtBA,IAA4B,IAAAC,EAChC,OAAAA,EAAOJ,kBAAAI,EAAuBb,IAEhC,IAAMc,EAAuB,SAAvBA,IAA6B,IAAAC,EACjC,OAAAA,EAAON,kBAAAM,EAAuBd,IAGhC,IAAMe,EAAiB,SAAjBA,EAAkBC,EAAKC,GAC3B,IAAKP,OAAO,uBAAwB,CAClCA,OAAO,uBAAyB,EAClC,CACA,IAAKA,OAAO,uBAAuB/C,GAAW,CAC5C+C,OAAO,uBAAuB/C,GAAY,CAAA,CAC5C,CACA+C,OAAO,uBAAuB/C,GAAUqD,GAAOC,GAGjD,IAAMC,EAAwB,SAAxBA,EAAyBC,GAC7BJ,EAAef,EAA8BmB,GAC7CnC,EAAiBmC,IAGnB,IAAMC,EAAY,SAAZA,IAAY,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAIRjB,EACAkB,EA1FZ,IAAIC,EAAA,SAsGS3B,GAtGb,IAuGM4B,QAAQ5B,MAAMA,GACdoB,EAAsB,iBACtBrC,EAAqBgB,WACrB8B,YAAW,WACTC,EAAOC,QAAQ5B,EAAW,CACxBkB,OAAQ,iBAEZ,IACAnD,GAAAA,UAAAA,EAAAA,EAAyB8B,GACzB,OAAAwB,EAAOD,QAAQS,SAhHZ,CAAC,MAAAC,GAAW,OAAOR,EAAAQ,EAAM,GAsF9B,IACEb,EAAsB,oBAEL,OAAAG,QAAAW,QAAMpE,GAAAA,UAAAA,EAAAA,EAAewD,WAAfxD,UAAAA,EAAAA,EAAewD,UAAYjD,GAAwB,CAAE,IAA3D8D,MAA4D,SAAAC,GAzFnF,IAyFY5B,EAAW4B,EACXV,EAAkBnB,EAAuBC,IAAa,GAE5DS,EAAehB,EAAwByB,GACvCN,EAAsB,mBACtBS,YAAW,WACTC,EAAOC,QAAQ5B,EAAW,CACxBkB,OAAQ,kBACRb,SAAUkB,GAEd,IAEA,OAAAF,EAAOE,EArGJ,CAAC,MAAAO,GAAW,OAAON,EAAAM,EAAM,CAAC,GAAAN,EAsG9B,CAAC,MAAO3B,GAAO2B,EAAP3B,EAWT,CAAC,GACF,EAEDK,EAASgC,sBAAqB,WAAA,OAAA,IAAAd,SAAA,SAAAC,EAAAC,GAAA,IAQpBa,EAsBE9B,EACA+B,EAsBJlB,EAEEmB,EAoBFd,EA1EN,GAAI3D,EAAsB,CACxBmB,EAAiB,mBACjBH,EAAqBf,GACrBC,GAAAA,UAAAA,EAAAA,EAAmBD,GACnB,OAAAwD,GACF,CACA,GAAIjD,EAAmBI,OAAS,EAAG,CAC3B2D,EAAUjE,EACZE,EAAmBkE,MAAK,SAACvB,GAAG,OAAKwB,EAAkBrE,EAAqB6C,GAAK,IAC7E,KACJ,GAAIoB,EAAS,CAEXvD,EAAqB,IACrBG,EAAiB,0BAKjB,GAAIkB,EAAmC,CACrCjC,GAAAA,UAAAA,EAAAA,EAAW4B,UACb,CACA,OAAAyB,GACF,CACF,CAGA,GAAIpD,IAAa,MAAO,CA/I5B,IAAIuE,aAAJ,IA6JM,OAAAnB,GA7JG,CAAC,MAAAS,GAAW,OAAOR,EAAAQ,EAAM,GAAlC,IAAIW,EAAA,SAuJW5C,GAvJf,IAwJQ4B,QAAQ5B,MAAMA,GACdd,EAAiB,iBACjBH,EAAqBgB,WACrB7B,GAAAA,UAAAA,EAAAA,EAAyB8B,GA3JjC,OAAO2C,GAAE,CAAC,MAAAV,GAAW,OAAOR,EAAAQ,EAAM,GAgJ5B,IACE/C,EAAiB,oBACA,OAAAqC,QAAAW,QAAMpE,GAAAA,UAAAA,EAAAA,EAAewD,WAAfxD,UAAAA,EAAAA,EAAewD,UAAYjD,GAAwB,CAAE,IAA3D8D,MAA4D,SAAAU,GAlJrF,IAkJcrC,EAAWqC,EACXnB,EAAkBnB,EAAuBC,IAAa,GAC5DtB,EAAiB,mBACjBH,EAAqB2C,GACrBzD,GAAAA,UAAAA,EAAAA,EAAmByD,GAtJ3B,OAAOiB,GAAE,CAAC,MAAAV,GAAW,OAAOW,EAAAX,EAAM,CAAC,GAAAW,EAuJ5B,CAAC,MAAO5C,GAAO4C,EAAP5C,EAKT,CAEF,CAWMqB,EAASN,IACf,GAAIM,IAAW,kBAAmB,CAC1ByB,EAAWjC,IACjB9B,EAAqB+D,GACrB5D,EAAiBmC,GACjBpD,GAAAA,UAAAA,EAAAA,EAAmB6E,GACnB,OAAAtB,GACF,CACA,GAAIH,IAAW,mBAAoB,CACjCnC,EAAiBmC,GACjBS,EAAOiB,UAAU5C,GAAW,SAAC6C,EAAIC,GAA2B,IAAvB5B,EAAM4B,EAAN5B,OAAQb,EAAQyC,EAARzC,SAC3C,GAAIa,IAAW,kBAAmB,CAChCnC,EAAiBmC,GACjBtC,EAAqByB,GACrBvC,GAAAA,UAAAA,EAAAA,EAAmBuC,EACrB,KAAO,CACLtB,EAAiB,iBACjBH,EAAqBgB,UACvB,CACF,IACA,OAAAyB,GACF,CACwB,OAAAD,QAAAW,QAAMZ,KAANa,MAAiB,SAAAe,GA/L7C,IA+LUxB,EAAkBwB,EACxBnE,EAAqB2C,GACrBxC,EAAiB,mBACjBjB,GAAAA,UAAAA,EAAAA,EAAmByD,GAAiB,OAAAF,GAlM/B,CAAC,MAAAS,GAAW,OAAOR,EAAAQ,EAAM,CAAC,GAAAR,EA+LU,GAI1C,GAAE,CAACpD,EAAsBL,EAAmBsB,IAE7C,IAAM6D,EAAmB,SAAnBA,IACJ5D,EAAcH,KAAKC,QAGrB,MAAO,CACLJ,cAAAA,EACAH,kBAAAA,EACAU,8BAAAA,EACA2D,iBAAAA,EAEJ,ECpMO,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,IACE/F,EAcE+F,EAdF/F,cACAgG,EAaED,EAbFC,cACAC,EAYEF,EAZFE,qBACAC,EAWEH,EAXFG,wBACA9F,EAUE2F,EAVF3F,uBACA+F,EASEJ,EATFI,qBACAC,EAQEL,EARFK,qBACclG,EAOZ6F,EAPFM,aACAC,EAMEP,EANFO,SACAC,EAKER,EALFQ,WACAlD,EAIE0C,EAJF1C,MACAmD,EAGET,EAHFS,aACAlG,EAEEyF,EAFFzF,SACGmG,EAAUC,EACXX,EAAKY,GAET,IAAMC,EAAwBC,EAAO,MAGrC,IAAM5G,EAAuB8F,EAAMe,eAAe,gBAElD,IAAAC,EAAAC,EAAA,CAIMC,MAAO,QAAS5D,MAAO,QAAS6D,SAAU,YAAeX,GAHtDY,EAAqBJ,EAA5BE,MACOG,EAAqBL,EAA5B1D,MACUgE,EAAwBN,EAAlCG,SAGF,IAAMI,EAAkB3F,GAAQ,WAAM,IAAAwD,EACpC,IAAKa,EAAe,OAAO,KAC3B,IAAMuB,EAASvB,IAAkB,KACjC,OAAAb,EAAAA,CAAAA,EAAAA,EACGgC,GAAwBI,EAAS,KAAOvB,EAAciB,MAAK9B,EAC3DiC,GAAwBG,EAAS,GAAKvB,EAAc3C,MAAK8B,CAE7D,GAAE,CAACgC,EAAuBC,EAAuBpB,IAElD,IAAMwB,EAAaC,EAAa1B,EAAM2B,KAAM,CAAC,aAE7C,IAAAC,EAA+D9H,EAAW,CACxEE,SAAUuG,EACVrG,qBAAAA,EACAI,SAAU0F,EAAM1F,SAChBL,cAAAA,EACAE,kBAAAA,EACAC,iBAAkB,SAAAA,EAAC6E,GACjB,GAAI4B,EAAsBgB,QAAS,CACjC3B,eAAAA,EAAuBjB,GAAY,IACnC4B,EAAsBgB,QAAU,KAClC,CACA1B,eAAAA,EAA0BlB,GAAY,GACvC,EACD5E,uBAAAA,EACAE,SAAUA,IAAa2B,UAAY,KAAO3B,IAdpCa,EAAawG,EAAbxG,cAAeH,EAAiB2G,EAAjB3G,kBAAmBqE,EAAgBsC,EAAhBtC,iBAiB1C,IAAMwC,EAAeC,EAAMC,gBAAe,SAACC,GACzC,GAAIxB,EAAc,CAChB,GAAIgB,EAAY,CACdzB,EAAM1F,UAAQ,UAAA,EAAd0F,EAAM1F,SAAW2H,EAAcA,EACjC,KAAO,CACLjC,EAAM1F,UAAN0F,UAAAA,EAAAA,EAAM1F,SAAW2H,EAAa,GAAIA,EACpC,CACF,KAAO,CACL,IAAMvC,EAAYuC,EAAarC,KAAI,SAACC,GAAI,OAAKA,EAAKwB,MAClD,GAAII,EAAY,CACdzB,EAAM1F,UAAQ,UAAA,EAAd0F,EAAM1F,SAAWoF,EAAWuC,EAC9B,KAAO,CACLjC,EAAM1F,UAAQ,UAAA,EAAd0F,EAAM1F,SAAWoF,EAAU,GAAIuC,EAAa,GAC9C,CACF,CACF,IAEA,IAAMC,EAAgBH,EAAMC,gBAAe,SAACG,EAAQC,GAClD,IAAKA,EAAa,OAAOpC,EAAM1F,UAAQ,UAAA,EAAd0F,EAAM1F,SAAW4B,WAC1C,IAAM+F,EAAetC,EAAcyC,GACnC,IAAMC,EAAa,GACnBJ,EAAaK,SAAQ,SAACzC,GACpB,GAAII,GAAiBsB,GAAmB1B,EAAKvC,QAAUiE,EAAgBF,GAAwB,CAC7FgB,EAAWE,KAAKhB,EAClB,KAAO,CACL,IAAMiB,EAAeC,EAAUxH,GAAqB,GAAI4E,EAAKvC,MAAO+D,GACpE,GAAImB,EAAc,CAChBH,EAAWE,KAAKC,EAClB,CACF,CACF,IACAV,EAAaO,EACf,IAEA,IAAMK,EAAkB9G,GAAQ,WAC9B,GAAIR,IAAkB,kBAAmB,MAAO,GAChD,IAAKH,GAAqBA,EAAkBH,SAAW,EAAG,MAAO,GACjE,IAAKyG,EAAiB,OAAOtG,EAC7B,MAAO,CAACsG,GAAiBoB,OAAO1H,EACjC,GAAE,CAACsG,EAAiBnG,EAAeH,IAEpC,IAAM2H,EAAUxH,IAAkB,mBAElC,IAAMyH,EAAcjH,GAAQ,WAC1B,IAAMyG,EAAa9C,EAAajC,EAAO+D,GACvC,OAAOI,EAAaY,EAAaA,EAAW,EAC7C,GAAE,CAACZ,EAAYJ,EAAuB/D,IAEvC,IAAMwF,EAAef,EAAMC,gBAAe,SAACe,EAAeC,GACxD,IAAMC,EAAWtD,EAAQqD,EAAOC,UAChC,IAAIC,EAAc,GAClBD,EAASX,SAAQ,SAACzC,GAChB,GAAIsD,EAAStD,GAAOqD,GAAerD,CACrC,IACA,OAAOqD,EAAYE,cAAcC,QAAQN,EAAMK,gBAAkB,CACnE,IAEA,OACEE,EAACC,EAAMtC,EAAA,CACLuC,WAAY,KACZC,WAAY,KACZC,yBAA0B,MAC1BZ,aAAcA,GACVpC,EAAU,CACdiD,MAAK1C,EAAA,CAAI2C,MAAO,QAAW5D,EAAM2D,OACjCrG,MAAOuF,EACPD,QAASA,EACTtI,SAAU4H,EACV1B,WAAYtE,UACZ2H,WACEzI,IAAkB,gBAChBkI,EAAAQ,EAAA,CAAcC,KAAMnB,EAASoB,QAAS1E,IACpCpD,UAEN+H,gBACEX,EAACY,EAAa,CACZ1G,OAAQpC,EACRwH,QAASA,EACTuB,cAAalD,EAAA,CACX,eAAgB,QACbZ,GAEL+D,YACEd,EAACe,EAAM,CAACC,KAAK,UAAUN,QAAS1E,EAAiB2D,SAAC,aAKvDA,SAEAP,EAAgB9C,KAAI,SAACC,EAAM0E,GAC1B,IAAMjH,EAAQuC,EAAKwB,GACnB,IAAMH,EAAQrB,EAAKuB,GACnB,OACEoD,EAACjB,EAAOkB,OAAM,CACZnH,MAAOA,EACP4D,MAAOA,EAEPC,SAAUtB,EAAKyB,GAA0B2B,SAExCjD,CAAAA,EAAM0E,SACLpB,EAAA,OAAA,CAAMqB,UAAU,uBAAsB1B,SAAEjD,EAAM4E,MAAI,UAAA,EAAV5E,EAAM4E,KAAO/E,EAAM0E,KACzD,KACHnE,EAAuBA,EAAqBP,GAAQqB,IAN7C5D,EAASiH,IAAAA,QAY7B"}
|