UNPKG

pocko-ui

Version:

React components using pure Bootstrap 5+ which does not contain any external style and script libraries.

99 lines (76 loc) 73.2 kB
/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("react"), require("react-dom")); else if(typeof define === 'function' && define.amd) define(["react", "react-dom"], factory); else if(typeof exports === 'object') exports["RPB"] = factory(require("react"), require("react-dom")); else root["RPB"] = factory(root["React"], root["ReactDOM"]); })(this, (__WEBPACK_EXTERNAL_MODULE_react__, __WEBPACK_EXTERNAL_MODULE_react_dom__) => { return /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "../../node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js": /*!*********************************************************************!*\ !*** ../../node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clearAllBodyScrollLocks: () => (/* binding */ clearAllBodyScrollLocks),\n/* harmony export */ disableBodyScroll: () => (/* binding */ disableBodyScroll),\n/* harmony export */ enableBodyScroll: () => (/* binding */ enableBodyScroll)\n/* harmony export */ });\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPosition = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n return false;\n });\n};\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n if (e.preventDefault) e.preventDefault();\n return false;\n};\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n var computedBodyPaddingRight = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'), 10);\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = computedBodyPaddingRight + scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\nvar setPositionFixed = function setPositionFixed() {\n return window.requestAnimationFrame(function () {\n // If previousBodyPosition is already set, don't set it again.\n if (previousBodyPosition === undefined) {\n previousBodyPosition = {\n position: document.body.style.position,\n top: document.body.style.top,\n left: document.body.style.left\n };\n\n // Update the dom inside an animation frame \n var _window = window,\n scrollY = _window.scrollY,\n scrollX = _window.scrollX,\n innerHeight = _window.innerHeight;\n document.body.style.position = 'fixed';\n document.body.style.top = -scrollY;\n document.body.style.left = -scrollX;\n setTimeout(function () {\n return window.requestAnimationFrame(function () {\n // Attempt to check if the bottom bar appeared due to the position change\n var bottomBarHeight = innerHeight - window.innerHeight;\n if (bottomBarHeight && scrollY >= innerHeight) {\n // Move the content further up so that the bottom bar doesn't hide it\n document.body.style.top = -(scrollY + bottomBarHeight);\n }\n });\n }, 300);\n }\n });\n};\nvar restorePositionSetting = function restorePositionSetting() {\n if (previousBodyPosition !== undefined) {\n // Convert the position from \"px\" to Int\n var y = -parseInt(document.body.style.top, 10);\n var x = -parseInt(document.body.style.left, 10);\n\n // Restore styles\n document.body.style.position = previousBodyPosition.position;\n document.body.style.top = previousBodyPosition.top;\n document.body.style.left = previousBodyPosition.left;\n\n // Restore scroll\n window.scrollTo(x, y);\n previousBodyPosition = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n if (allowTouchMove(event.target)) {\n return false;\n }\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n event.stopPropagation();\n return true;\n};\nvar disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n locks = [].concat(_toConsumableArray(locks), [lock]);\n if (isIosDevice) {\n setPositionFixed();\n } else {\n setOverflowHidden(options);\n }\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? {\n passive: false\n } : undefined);\n documentListenerAdded = true;\n }\n }\n};\nvar clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? {\n passive: false\n } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n }\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n locks = [];\n};\nvar enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? {\n passive: false\n } : undefined);\n documentListenerAdded = false;\n }\n }\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n};\n\n//# sourceURL=webpack://RPB/../../node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js?"); /***/ }), /***/ "../../node_modules/css-loader/dist/runtime/api.js": /*!*********************************************************!*\ !*** ../../node_modules/css-loader/dist/runtime/api.js ***! \*********************************************************/ /***/ ((module) => { eval("\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};\n\n//# sourceURL=webpack://RPB/../../node_modules/css-loader/dist/runtime/api.js?"); /***/ }), /***/ "../../node_modules/css-loader/dist/runtime/sourceMaps.js": /*!****************************************************************!*\ !*** ../../node_modules/css-loader/dist/runtime/sourceMaps.js ***! \****************************************************************/ /***/ ((module) => { eval("\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};\n\n//# sourceURL=webpack://RPB/../../node_modules/css-loader/dist/runtime/sourceMaps.js?"); /***/ }), /***/ "./src/Index.tsx": /*!***********************!*\ !*** ./src/Index.tsx ***! \***********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SelectInput)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var body_scroll_lock__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! body-scroll-lock */ \"../../node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js\");\n/* harmony import */ var _utils_useKeyboardNavigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/useKeyboardNavigation */ \"./src/utils/useKeyboardNavigation.ts\");\n/* harmony import */ var _utils_userDropDown__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/userDropDown */ \"./src/utils/userDropDown.ts\");\n/* harmony import */ var _utils_cls__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../utils/cls */ \"../../utils/cls.ts\");\n/* harmony import */ var _Index_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Index.scss */ \"./src/Index.scss\");\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n\n\n\n// my-utils\n\n\n\n\nfunction SelectInput(_ref) {\n var _dropdown$current, _dropdown$current2;\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? \"COMMON\" : _ref$type,\n label = _ref.label,\n wrapperClassName = _ref.wrapperClassName,\n wrapperContentInputClassName = _ref.wrapperContentInputClassName,\n popupMenuClassName = _ref.popupMenuClassName,\n id = _ref.id,\n name = _ref.name,\n _ref$kbcode = _ref.kbcode,\n kbcode = _ref$kbcode === void 0 ? \"kb_code\" : _ref$kbcode,\n dropdownRender = _ref.dropdownRender,\n dropdownPosition = _ref.dropdownPosition,\n inputId = _ref.inputId,\n titleId = _ref.titleId,\n defaultValue = _ref.defaultValue,\n index = _ref.index,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n onFoused = _ref.onFoused,\n onBlured = _ref.onBlured,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? \"auto\" : _ref$size,\n _ref$zIndex = _ref.zIndex,\n zIndex = _ref$zIndex === void 0 ? 1101 : _ref$zIndex,\n _ref$isDisable = _ref.isDisable,\n isDisable = _ref$isDisable === void 0 ? false : _ref$isDisable,\n _ref$isHandleInput = _ref.isHandleInput,\n isHandleInput = _ref$isHandleInput === void 0 ? false : _ref$isHandleInput,\n _ref$isDisableBodyScr = _ref.isDisableBodyScroll,\n isDisableBodyScroll = _ref$isDisableBodyScr === void 0 ? false : _ref$isDisableBodyScr,\n dataService = _ref.dataService,\n _ref$dataServiceFunct = _ref.dataServiceFunction,\n dataServiceFunction = _ref$dataServiceFunct === void 0 ? \"retrieveList\" : _ref$dataServiceFunct,\n dataServiceFunctionParams = _ref.dataServiceFunctionParams,\n _ref$dataServiceRetri = _ref.dataServiceRetrieve,\n dataServiceRetrieve = _ref$dataServiceRetri === void 0 ? false : _ref$dataServiceRetri,\n renderOption = _ref.renderOption,\n cleanTrigger = _ref.cleanTrigger;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"),\n _useState2 = _slicedToArray(_useState, 2),\n keyword = _useState2[0],\n setKeyword = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"),\n _useState4 = _slicedToArray(_useState3, 2),\n value = _useState4[0],\n setValue = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),\n _useState6 = _slicedToArray(_useState5, 2),\n isShow = _useState6[0],\n setIsShow = _useState6[1];\n var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),\n _useState8 = _slicedToArray(_useState7, 2),\n loading = _useState8[0],\n setLoading = _useState8[1];\n\n // 调用dataService获取的值\n var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),\n _useState10 = _slicedToArray(_useState9, 2),\n dataServiceList = _useState10[0],\n setDataServiceList = _useState10[1];\n var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),\n _useState12 = _slicedToArray(_useState11, 2),\n initialData = _useState12[0],\n setInitialData = _useState12[1]; // 用来保存初始接口数据\n var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),\n _useState14 = _slicedToArray(_useState13, 2),\n hasFetchedData = _useState14[0],\n setHasFetchedData = _useState14[1]; // 判断是否已经调用过接口\n\n // 判断下拉框位置\n var _useDropdown = (0,_utils_userDropDown__WEBPACK_IMPORTED_MODULE_4__.useDropdown)(isShow, setIsShow, dataServiceList, loading, dropdownPosition),\n dropdown = _useDropdown.dropdown,\n dropdownContent = _useDropdown.dropdownContent;\n\n // 键盘逻辑\n var _useKeyboardNavigatio = (0,_utils_useKeyboardNavigation__WEBPACK_IMPORTED_MODULE_3__.useKeyboardNavigation)(dataServiceList.length, function (index) {\n return chooseOption(dataServiceList[index]);\n }, onKeyDown),\n focusedOption = _useKeyboardNavigatio.focusedOption,\n setFocusedOption = _useKeyboardNavigatio.setFocusedOption,\n handleKeyDown = _useKeyboardNavigatio.handleKeyDown,\n handleOptionFocus = _useKeyboardNavigatio.handleOptionFocus,\n handleOptionBlur = _useKeyboardNavigatio.handleOptionBlur;\n var dropDownList = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () {\n return dataServiceList;\n }, [dataServiceList]);\n\n // input框输入\n var handleInputChange = function handleInputChange(event) {\n var newValue = event.target.value.trim().toLowerCase();\n setKeyword(newValue);\n\n // 当允许手动输入时,触发 onChange 事件,将输入值传递给父组件\n if (isHandleInput) {\n if (index) {\n onChange(newValue, index);\n } else {\n onChange(newValue);\n }\n }\n };\n\n // 单选选择option\n function chooseOption(item) {\n setIsShow(false);\n if (index) {\n onChange(item, index);\n } else {\n onChange(item);\n }\n setValue(item[name]);\n setKeyword(\"\"); // 清空关键词以重置列表\n setFocusedOption(null); // 重置焦点选项为 null\n\n // 失去焦点\n setTimeout(function () {\n var input = document.getElementById(\"\".concat(inputId));\n input.blur();\n }, 0);\n }\n\n // 多选判断是否勾选\n function toggleSelection(item) {\n var exists = value.some(function (i) {\n return i[id] === item[id];\n });\n var newValue;\n if (exists) {\n newValue = value.filter(function (i) {\n return i[id] !== item[id];\n });\n } else {\n newValue = [].concat(_toConsumableArray(value), [item]);\n }\n setValue(newValue);\n if (index) {\n onChange(newValue, index);\n } else {\n onChange(newValue);\n }\n\n // 如果需要向父组件传递多选结果,可以在此调用 onChange\n // onChange(newValue)\n }\n\n // 检索\n var handleSearch = function handleSearch(keyword, searchArray) {\n var filteredList = searchArray.filter(function (obj) {\n var _obj$name;\n var nameMatch = obj[name] ? (_obj$name = obj[name]) === null || _obj$name === void 0 ? void 0 : _obj$name.includes(keyword) : false;\n var kbcodeMatch = obj[kbcode] ? obj[kbcode].includes(keyword) : false;\n return nameMatch || kbcodeMatch;\n });\n return filteredList;\n };\n\n // 清空\n function clearSelection() {\n setIsShow(false);\n setValue(\"\");\n setKeyword(\"\");\n setFocusedOption(null); // 重置焦点\n\n if (cleanTrigger !== null && cleanTrigger !== void 0 && cleanTrigger.cleanFunc) {\n cleanTrigger.cleanFunc();\n }\n\n // 失去焦点\n setTimeout(function () {\n var input = document.getElementById(\"\".concat(inputId));\n input.blur();\n }, 0);\n }\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (isShow) {\n setLoading(true);\n if (dataService && dataServiceFunction) {\n var params = _toConsumableArray(dataServiceFunctionParams || []);\n\n // 检查是否有 $QUERY_STRING,如果有,替换 keyword\n var queryIndex = params.indexOf(\"$QUERY_STRING\");\n if (queryIndex !== -1) {\n params[queryIndex] = keyword || \"*\"; // 替换为 keyword 或 '*'\n }\n\n // 如果该参数是true,则代表是retrieve接口,实时搜索\n if (dataServiceRetrieve) {\n dataService[dataServiceFunction].apply(dataService, _toConsumableArray(params)).then(function (result) {\n if (result.length > 0) {\n setDataServiceList(result);\n } else {\n setDataServiceList([]);\n }\n })[\"finally\"](function () {\n setLoading(false);\n });\n } else {\n if (!hasFetchedData) {\n // 如果没有调用过接口,则调用一次\n dataService[dataServiceFunction].apply(dataService, _toConsumableArray(params)).then(function (result) {\n setHasFetchedData(true); // 标记已经获取过数据\n\n if (result.length > 0) {\n setInitialData(result); // 保存原始数据\n setDataServiceList(result);\n } else {\n setDataServiceList([]);\n setInitialData([]);\n }\n })[\"finally\"](function () {\n setLoading(false);\n });\n } else {\n // 本地过滤检索\n var filteredList = handleSearch(keyword, initialData);\n setDataServiceList(filteredList);\n setLoading(false);\n }\n }\n } else {\n var _filteredList = handleSearch(keyword, dropdownRender);\n setDataServiceList(_filteredList);\n setLoading(false);\n }\n } else {\n setDataServiceList([]);\n setHasFetchedData(false);\n setInitialData([]);\n }\n }, [keyword, isShow, dropdownRender]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (defaultValue) {\n setValue(defaultValue);\n var renderList = dropdownRender.length > 0 ? dropdownRender : dropDownList;\n\n // 根据 defaultValue 找到对应的选项索引,并设置 focusedOption\n var defaultOptionIndex = renderList.findIndex(function (item) {\n return item[name] === defaultValue;\n });\n if (defaultOptionIndex !== -1) {\n setFocusedOption(defaultOptionIndex);\n } else {\n setFocusedOption(null); // 如果没有找到匹配项,重置为 null\n }\n } else {\n setValue(\"\");\n setFocusedOption(null); // 没有默认值时,重置 focusedOption\n }\n }, [defaultValue, dropDownList, dropdownRender]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: (0,_utils_cls__WEBPACK_IMPORTED_MODULE_5__.clsCombine)(wrapperClassName, \"select-input__wrapper\")\n }, label ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, typeof label === \"string\" ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", null, label) : label) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"select-input__content\",\n style: {\n width: typeof size === \"number\" ? \"\".concat(size, \"px\") : \"auto\"\n },\n ref: dropdown\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n type: \"text\",\n onChange: handleInputChange,\n id: inputId,\n className: (0,_utils_cls__WEBPACK_IMPORTED_MODULE_5__.clsCombine)((0,_utils_cls__WEBPACK_IMPORTED_MODULE_5__.clsWrite)(wrapperContentInputClassName, \"form-control\"), \"select-input__content__input\"),\n onFocus: function onFocus() {\n if (isDisableBodyScroll) {\n var targetElement = document.body;\n (0,body_scroll_lock__WEBPACK_IMPORTED_MODULE_2__.disableBodyScroll)(targetElement);\n }\n if (type === \"MULTI\") {\n setKeyword(\"\");\n }\n\n // 外部聚焦方法\n if (onFoused) {\n onFoused();\n }\n setIsShow(true);\n var title = document.getElementById(\"\".concat(titleId));\n title.classList.add(\"text-secondary-emphasis\", \"z-n1\");\n },\n onBlur: function onBlur() {\n var title = document.getElementById(\"\".concat(titleId));\n var input = document.getElementById(\"\".concat(inputId));\n title.classList.remove(\"text-secondary-emphasis\", \"z-n1\");\n input.value = \"\";\n\n // 外部失焦方法\n if (onBlured) {\n onBlured();\n }\n setTimeout(function () {\n if (isDisableBodyScroll) {\n (0,body_scroll_lock__WEBPACK_IMPORTED_MODULE_2__.clearAllBodyScrollLocks)();\n }\n if (type === \"COMMON\") {\n setKeyword(\"\");\n // setIsShow(false);\n }\n setFocusedOption(null);\n }, 100);\n },\n onKeyDown: handleKeyDown,\n autoComplete: \"off\",\n disabled: isDisable\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"select-input__content__arrow \".concat(isShow ? \"select-input__content__arrow--reverse\" : \"\"),\n onClick: function onClick() {\n var input = document.getElementById(\"\".concat(inputId));\n input.focus();\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n width: \"10px\",\n height: \"10px\",\n viewBox: \"0 -4.5 20 20\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n transform: \"translate(-180.000000, -6684.000000)\",\n className: \"arrow-fill-g\",\n fill: \"#a5a5a5\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n transform: \"translate(56.000000, 160.000000)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n d: \"M144,6525.39 L142.594,6524 L133.987,6532.261 L133.069,6531.38 L133.074,6531.385 L125.427,6524.045 L124,6525.414 C126.113,6527.443 132.014,6533.107 133.987,6535 C135.453,6533.594 134.024,6534.965 144,6525.39\"\n })))))), isShow && /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal)(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: dropdownContent,\n className: \"select-input__popup__menu position-absolute shadow border rounded \".concat(isShow ? \"select-input__popup__menu--isShow\" : \"\", \" \").concat((0,_utils_cls__WEBPACK_IMPORTED_MODULE_5__.clsCombine)(popupMenuClassName)),\n style: {\n zIndex: zIndex,\n width: \"\".concat((_dropdown$current = dropdown.current) === null || _dropdown$current === void 0 ? void 0 : _dropdown$current.getBoundingClientRect().width, \"px\")\n }\n }, (cleanTrigger === null || cleanTrigger === void 0 ? void 0 : cleanTrigger.valid) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"select-input__popup__list py-1 px-1 border-bottom bg-light\",\n onMouseDown: function onMouseDown(e) {\n e.stopPropagation();\n clearSelection(); // 清空选项\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"btn btn-sm btn-secondary\"\n }, cleanTrigger.cleanValueLabel)), loading && dataService ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"select-input__popup__list py-1 px-1\"\n }, \"\\u52A0\\u8F7D\\u4E2D...\") : dropDownList.length !== 0 ? type === \"COMMON\" ? dropDownList === null || dropDownList === void 0 ? void 0 : dropDownList.map(function (item, index) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"select-input__popup__list py-1 px-1 \".concat(index + 1 === dropDownList.length ? \"\" : \"border-bottom\", \" \").concat(focusedOption === index ? \"text-bg-primary\" : \"\"),\n key: item[id] || \"\",\n onMouseDown: function onMouseDown(e) {\n e.stopPropagation();\n chooseOption(item);\n },\n onFocus: function onFocus() {\n return handleOptionFocus(item);\n },\n onBlur: handleOptionBlur,\n \"data-id\": item[id],\n \"data-name\": item[name]\n }, renderOption ? renderOption(item) // 使用自定义渲染函数\n : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, item[name]) // 默认渲染\n );\n }) : dropDownList === null || dropDownList === void 0 ? void 0 : dropDownList.map(function (item, index) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"select-input__popup__list py-1 px-1 \".concat(index + 1 === dropDownList.length ? \"\" : \"border-bottom\", \" \").concat(focusedOption === index ? \"text-bg-primary\" : \"\"),\n key: item[id] || \"\",\n onMouseDown: function onMouseDown(e) {\n e.stopPropagation();\n toggleSelection(item);\n },\n onFocus: function onFocus() {\n return handleOptionFocus(item);\n },\n onBlur: handleOptionBlur,\n \"data-id\": item[id],\n \"data-name\": item[name]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n type: \"checkbox\",\n className: \"form-check-input me-2\",\n onMouseDown: function onMouseDown(e) {\n return e.stopPropagation();\n },\n checked: value.some(function (i) {\n return i[id] === item[id];\n }),\n onChange: function onChange() {\n return toggleSelection(item);\n }\n }), renderOption ? renderOption(item) // 使用自定义渲染函数\n : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, item[name]) // 默认渲染\n );\n }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"select-input__popup__list py-1 px-1\"\n }, \"\\u6CA1\\u6709\\u66F4\\u591A\\u6570\\u636E\")), document.body), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n id: \"\".concat(titleId),\n className: \"position-absolute ms-2 select-input__content__word__container\",\n style: {\n transform: \"translateY(-50%)\",\n top: \"50%\",\n width: \"\".concat((_dropdown$current2 = dropdown.current) === null || _dropdown$current2 === void 0 ? void 0 : _dropdown$current2.getBoundingClientRect().width, \"px\")\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n var input = document.getElementById(\"\".concat(inputId));\n input.focus();\n },\n title: Array.isArray(value) && value.length > 0 ? value.map(function (item) {\n return item[name];\n }).join(\", \") : value\n }, type === \"COMMON\" ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, value) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, Array.isArray(value) && value.length > 0 ? value.map(function (item) {\n return item[name];\n }).join(\", \") : value))));\n}\n\n//# sourceURL=webpack://RPB/./src/Index.tsx?"); /***/ }), /***/ "./src/utils/useKeyboardNavigation.ts": /*!********************************************!*\ !*** ./src/utils/useKeyboardNavigation.ts ***! \********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useKeyboardNavigation: () => (/* binding */ useKeyboardNavigation)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n\nvar useKeyboardNavigation = function useKeyboardNavigation(optionsCount, chooseOption, onKeyDown) {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),\n _useState2 = _slicedToArray(_useState, 2),\n focusedOption = _useState2[0],\n setFocusedOption = _useState2[1];\n var handleKeyDown = function handleKeyDown(event) {\n var key = event.key;\n switch (key) {\n case \"ArrowUp\":\n event.preventDefault();\n setFocusedOption(function (prev) {\n return prev === null ? optionsCount - 1 : (prev - 1 + optionsCount) % optionsCount;\n });\n break;\n case \"ArrowDown\":\n event.preventDefault();\n setFocusedOption(function (prev) {\n return prev === null ? 0 : (prev + 1) % optionsCount;\n });\n break;\n case \"Enter\":\n if (focusedOption !== null) {\n chooseOption(focusedOption);\n }\n break;\n default:\n break;\n }\n\n // 回调函数,传键盘按下的值\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n var visibleItems = document.querySelectorAll(\".select-input__popup__list\");\n if (focusedOption !== null && visibleItems[focusedOption]) {\n visibleItems[focusedOption].scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\"\n });\n }\n }, [focusedOption]);\n\n // 设置焦点选项\n function handleOptionFocus(item) {\n setFocusedOption(item);\n }\n\n // 清除焦点选项\n function handleOptionBlur() {\n setFocusedOption(null);\n }\n return {\n focusedOption: focusedOption,\n setFocusedOption: setFocusedOption,\n handleKeyDown: handleKeyDown,\n handleOptionFocus: handleOptionFocus,\n handleOptionBlur: handleOptionBlur\n };\n};\n\n//# sourceURL=webpack://RPB/./src/utils/useKeyboardNavigation.ts?"); /***/ }), /***/ "./src/utils/userDropDown.ts": /*!***********************************!*\ !*** ./src/utils/userDropDown.ts ***! \***********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useDropdown: () => (/* binding */ useDropdown)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nvar useDropdown = function useDropdown(isShow, setIsShow, dropDownList, loading) {\n var dropdownPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : \"auto\";\n var dropdown = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var dropdownContent = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var adjustDropdownPosition = function adjustDropdownPosition() {\n if (dropdownContent.current && dropdown.current) {\n var dropdownRect = dropdown.current.getBoundingClientRect();\n var scrollX = window.scrollX || document.documentElement.scrollLeft;\n var scrollY = window.scrollY || document.documentElement.scrollTop;\n\n // 视口高度与上下可用空间\n var viewportHeight = window.innerHeight;\n var spaceBelow = viewportHeight - dropdownRect.bottom;\n var spaceAbove = dropdownRect.top;\n\n // 定位到上方或下方或者自适应\n var positionTop;\n if (dropdownPosition == \"top\") {\n // 始终显示在上方\n positionTop = \"\".concat(dropdownRect.top + scrollY - dropdownContent.current.offsetHeight, \"px\");\n dropdownContent.current.style.maxHeight = \"\".concat(Math.min(200, spaceAbove - 10), \"px\");\n } else if (dropdownPosition == \"bottom\") {\n // 始终显示在下方\n positionTop = \"\".concat(dropdownRect.bottom + scrollY, \"px\");\n dropdownContent.current.style.maxHeight = \"\".concat(Math.min(200, spaceBelow - 10), \"px\");\n } else {\n if (spaceBelow < 100 && spaceAbove > spaceBelow) {\n // 显示在上方\n positionTop = \"\".concat(dropdownRect.top + scrollY - dropdownContent.current.offsetHeight, \"px\");\n dropdownContent.current.style.maxHeight = \"\".concat(Math.min(200, spaceAbove - 10), \"px\"); // 留出10px间距\n } else {\n // 显示在下方\n positionTop = \"\".concat(dropdownRect.bottom + scrollY, \"px\");\n dropdownContent.current.style.maxHeight = \"\".concat(Math.min(200, spaceBelow - 10), \"px\");\n }\n }\n\n // 水平方向定位\n var positionLeft = dropdownRect.left + scrollX;\n var dropdownWidth = dropdownContent.current.offsetWidth;\n var viewportWidth = window.innerWidth;\n var spaceRight = viewportWidth - dropdownRect.right;\n\n // 如果右侧空间不足,调整位置\n if (spaceRight < dropdownWidth) {\n positionLeft = Math.max(10, dropdownRect.right + scrollX - dropdownWidth); // 最小间距为10px\n }\n dropdownContent.current.style.left = \"\".concat(positionLeft, \"px\");\n dropdownContent.current.style.top = positionTop;\n }\n };\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (isShow) {\n adjustDropdownPosition();\n }\n }, [isShow, dropDownList.length, loading]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n var handleClickOutside = function handleClickOutside(event) {\n if (isShow && dropdown.current !== event.target && !dropdown.current.contains(event.target) && dropdownContent.current !== event.target && !dropdownContent.current.contains(event.target)) {\n setIsShow(false);\n }\n };\n document.addEventListener(\"pointerdown\", handleClickOutside);\n return function () {\n document.removeEventListener(\"pointerdown\", handleClickOutside);\n };\n }, [isShow]);\n return {\n dropdown: dropdown,\n dropdownContent: dropdownContent\n };\n};\n\n//# sourceURL=webpack://RPB/./src/utils/userDropDown.ts?"); /***/ }), /***/ "../../utils/cls.ts": /*!**************************!*\ !*** ../../utils/cls.ts ***! \**************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clsCombine: () => (/* binding */ clsCombine),\n/* harmony export */ clsWrite: () => (/* binding */ clsWrite)\n/* harmony export */ });\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction clsWrite(s, defaultCls, targetCls) {\n if (s || s === \"\") {\n return targetCls !== undefined ? targetCls : s;\n }\n return defaultCls;\n}\nfunction clsCombine() {\n for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {\n classes[_key] = arguments[_key];\n }\n return classes.map(function (cls) {\n if (typeof cls === \"string\") {\n return cls;\n } else if (_typeof(cls) === \"object\" && cls !== null) {\n return Object.keys(cls).filter(function (key) {\n return cls[key];\n }) // 仅选择值为 true 的类名\n .join(\" \");\n }\n return \"\";\n }).filter(Boolean) // 过滤掉 falsy 值\n .join(\" \"); // 用空格连接\n}\n\n\n//# sourceURL=webpack://RPB/../../utils/cls.ts?"); /***/ }), /***/ "../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/Index.scss": /*!*********************************************************************************************************************************************************************!*\ !*** ../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/Index.scss ***! \*********************************************************************************************************************************************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"../../node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.select-input__wrapper {\n position: relative;\n}\n.select-input__wrapper .select-input__content {\n position: relative;\n}\n.select-input__wrapper .select-input__content .select-input__content__input {\n position: relative;\n}\n.select-input__wrapper .select-input__content .select-input__content__arrow {\n position: absolute;\n top: 50%;\n right: 0.5rem;\n transform: translateY(-50%);\n cursor: pointer;\n transition: transform 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.select-input__wrapper .select-input__content .select-input__content__arrow--reverse {\n transform: translateY(-50%) rotate(180deg);\n}\n.select-input__wrapper .sele