pocko-ui 1.1.26 → 1.1.28
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/SelectInput/index.css +3 -2
- package/SelectInput/index.js +2 -2
- package/package.json +1 -1
package/SelectInput/index.css
CHANGED
|
@@ -29,10 +29,11 @@
|
|
|
29
29
|
|
|
30
30
|
.select-input__popup__menu {
|
|
31
31
|
max-height: 0;
|
|
32
|
-
overflow
|
|
32
|
+
overflow: auto;
|
|
33
33
|
}
|
|
34
34
|
.select-input__popup__menu .select-input__popup__list {
|
|
35
35
|
background-color: #fff;
|
|
36
|
+
display: table-caption;
|
|
36
37
|
}
|
|
37
38
|
.select-input__popup__menu .select-input__popup__list:hover {
|
|
38
39
|
background-color: #e2e2e2;
|
|
@@ -40,7 +41,7 @@
|
|
|
40
41
|
cursor: pointer;
|
|
41
42
|
}
|
|
42
43
|
.select-input__popup__menu::-webkit-scrollbar {
|
|
43
|
-
width:
|
|
44
|
+
width: 10px;
|
|
44
45
|
height: 10px;
|
|
45
46
|
background-color: #e6e6e6;
|
|
46
47
|
}
|
package/SelectInput/index.js
CHANGED
|
@@ -56,7 +56,7 @@ eval("\n\nmodule.exports = function (item) {\n var content = item[1];\n var cs
|
|
|
56
56
|
\***********************/
|
|
57
57
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
58
58
|
|
|
59
|
-
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 onDropdownHide = _ref.onDropdownHide,\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$isHandleInput = _ref.isHandleInput,\n isHandleInput = _ref$isHandleInput === void 0 ? false : _ref$isHandleInput,\n _ref$isDisable = _ref.isDisable,\n isDisable = _ref$isDisable === void 0 ? false : _ref$isDisable,\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 _ref$manualSearchTrig = _ref.manualSearchTrigger,\n manualSearchTrigger = _ref$manualSearchTrig === void 0 ? false : _ref$manualSearchTrig;\n var inputRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var titleRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),\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, onDropdownHide),\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.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 if (newValue) {\n var _titleRef$current;\n (_titleRef$current = titleRef.current) === null || _titleRef$current === void 0 || _titleRef$current.classList.add(\"z-n1\");\n } else {\n var _titleRef$current2;\n (_titleRef$current2 = titleRef.current) === null || _titleRef$current2 === void 0 || _titleRef$current2.classList.remove(\"z-n1\");\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(null); // 清空关键词以重置列表\n setFocusedOption(null); // 重置焦点选项为 null\n\n // 失去焦点\n setTimeout(function () {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.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 if (keyword == null) return 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(null);\n setFocusedOption(null); // 重置焦点\n\n if (cleanTrigger !== null && cleanTrigger !== void 0 && cleanTrigger.cleanFunc) {\n cleanTrigger.cleanFunc();\n }\n\n // 失去焦点\n setTimeout(function () {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();\n }, 0);\n }\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (!isShow) {\n setDataServiceList([]);\n setHasFetchedData(false);\n setInitialData([]);\n return;\n }\n\n // 若启用手动检索,且 keyword 为 null,不发起接口调用\n if (manualSearchTrigger && keyword == null) {\n setLoading(false);\n setDataServiceList([]);\n return;\n }\n setLoading(true);\n if (dataService && dataServiceFunction) {\n var params = _toConsumableArray(dataServiceFunctionParams || []);\n var queryIndex = params.indexOf(\"$QUERY_STRING\");\n if (queryIndex !== -1) {\n params[queryIndex] = keyword;\n }\n if (dataServiceRetrieve) {\n dataService[dataServiceFunction].apply(dataService, _toConsumableArray(params)).then(function (result) {\n setDataServiceList(result || []);\n })[\"finally\"](function () {\n setLoading(false);\n });\n } else {\n if (!hasFetchedData) {\n dataService[dataServiceFunction].apply(dataService, _toConsumableArray(params)).then(function (result) {\n setHasFetchedData(true);\n setInitialData(result || []);\n setDataServiceList(result || []);\n })[\"finally\"](function () {\n setLoading(false);\n });\n } else {\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 }, [keyword, isShow, dropdownRender, manualSearchTrigger]);\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 ref: inputRef,\n type: \"text\",\n onChange: handleInputChange,\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 var _titleRef$current3;\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(null);\n }\n setIsShow(true);\n (_titleRef$current3 = titleRef.current) === null || _titleRef$current3 === void 0 || _titleRef$current3.classList.add(\"text-secondary-emphasis\", \"user-select-none\", \"pe-none\");\n\n // 外部聚焦方法\n if (onFoused) {\n onFoused();\n }\n },\n onBlur: function onBlur() {\n var _titleRef$current4;\n (_titleRef$current4 = titleRef.current) === null || _titleRef$current4 === void 0 || _titleRef$current4.classList.remove(\"text-secondary-emphasis\", \"user-select-none\", \"pe-none\", \"z-n1\");\n inputRef.current.value = \"\";\n setTimeout(function () {\n if (isDisableBodyScroll) {\n (0,body_scroll_lock__WEBPACK_IMPORTED_MODULE_2__.clearAllBodyScrollLocks)();\n }\n if (type === \"COMMON\") {\n setKeyword(null);\n // setIsShow(false);\n }\n setFocusedOption(null);\n }, 100);\n\n // 外部失焦方法\n if (onBlured) {\n onBlured();\n }\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 _inputRef$current3;\n (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 || _inputRef$current3.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 sticky-top\",\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 ref: titleRef,\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 var _inputRef$current4;\n e.preventDefault();\n (_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 || _inputRef$current4.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?");
|
|
59
|
+
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 onDropdownHide = _ref.onDropdownHide,\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$isHandleInput = _ref.isHandleInput,\n isHandleInput = _ref$isHandleInput === void 0 ? false : _ref$isHandleInput,\n _ref$isDisable = _ref.isDisable,\n isDisable = _ref$isDisable === void 0 ? false : _ref$isDisable,\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 _ref$manualSearchTrig = _ref.manualSearchTrigger,\n manualSearchTrigger = _ref$manualSearchTrig === void 0 ? false : _ref$manualSearchTrig;\n var inputRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var titleRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),\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, onDropdownHide),\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;\n setKeyword(newValue);\n\n // 当允许手动输入时,触发 onChange 事件,将输入值传递给父组件\n if (isHandleInput) {\n if (index) {\n onChange(newValue, index);\n } else {\n onChange(newValue);\n }\n }\n if (newValue) {\n var _titleRef$current;\n (_titleRef$current = titleRef.current) === null || _titleRef$current === void 0 || _titleRef$current.classList.add(\"z-n1\");\n } else {\n var _titleRef$current2;\n (_titleRef$current2 = titleRef.current) === null || _titleRef$current2 === void 0 || _titleRef$current2.classList.remove(\"z-n1\");\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(null); // 清空关键词以重置列表\n setFocusedOption(null); // 重置焦点选项为 null\n\n // 失去焦点\n setTimeout(function () {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.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 if (keyword == null) return 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(null);\n setFocusedOption(null); // 重置焦点\n\n if (cleanTrigger !== null && cleanTrigger !== void 0 && cleanTrigger.cleanFunc) {\n cleanTrigger.cleanFunc();\n }\n\n // 失去焦点\n setTimeout(function () {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();\n }, 0);\n }\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (!isShow) {\n setDataServiceList([]);\n setHasFetchedData(false);\n setInitialData([]);\n return;\n }\n\n // 若启用手动检索,且 keyword 为 null,不发起接口调用\n if (manualSearchTrigger && keyword == null) {\n setLoading(false);\n setDataServiceList([]);\n return;\n }\n setLoading(true);\n if (dataService && dataServiceFunction) {\n var params = _toConsumableArray(dataServiceFunctionParams || []);\n var queryIndex = params.indexOf(\"$QUERY_STRING\");\n if (queryIndex !== -1) {\n params[queryIndex] = keyword;\n }\n if (dataServiceRetrieve) {\n dataService[dataServiceFunction].apply(dataService, _toConsumableArray(params)).then(function (result) {\n setDataServiceList(result || []);\n })[\"finally\"](function () {\n setLoading(false);\n });\n } else {\n if (!hasFetchedData) {\n dataService[dataServiceFunction].apply(dataService, _toConsumableArray(params)).then(function (result) {\n setHasFetchedData(true);\n setInitialData(result || []);\n setDataServiceList(result || []);\n })[\"finally\"](function () {\n setLoading(false);\n });\n } else {\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 }, [keyword, isShow, dropdownRender, manualSearchTrigger]);\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 ref: inputRef,\n type: \"text\",\n onChange: handleInputChange,\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 var _titleRef$current3;\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(null);\n }\n setIsShow(true);\n (_titleRef$current3 = titleRef.current) === null || _titleRef$current3 === void 0 || _titleRef$current3.classList.add(\"text-secondary-emphasis\", \"user-select-none\", \"pe-none\");\n\n // 外部聚焦方法\n if (onFoused) {\n onFoused();\n }\n },\n onBlur: function onBlur() {\n var _titleRef$current4;\n (_titleRef$current4 = titleRef.current) === null || _titleRef$current4 === void 0 || _titleRef$current4.classList.remove(\"text-secondary-emphasis\", \"user-select-none\", \"pe-none\", \"z-n1\");\n inputRef.current.value = \"\";\n setTimeout(function () {\n if (isDisableBodyScroll) {\n (0,body_scroll_lock__WEBPACK_IMPORTED_MODULE_2__.clearAllBodyScrollLocks)();\n }\n if (type === \"COMMON\") {\n setKeyword(null);\n // setIsShow(false);\n }\n setFocusedOption(null);\n }, 100);\n\n // 外部失焦方法\n if (onBlured) {\n onBlured();\n }\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 _inputRef$current3;\n (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 || _inputRef$current3.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 sticky-top\",\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 ref: titleRef,\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 var _inputRef$current4;\n e.preventDefault();\n (_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 || _inputRef$current4.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?");
|
|
60
60
|
|
|
61
61
|
/***/ }),
|
|
62
62
|
|
|
@@ -96,7 +96,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
96
96
|
\*********************************************************************************************************************************************************************/
|
|
97
97
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
98
98
|
|
|
99
|
-
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 .select-input__content .select-input__content__word__container {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.select-input__popup__menu {\n max-height: 0;\n overflow
|
|
99
|
+
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 .select-input__content .select-input__content__word__container {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.select-input__popup__menu {\n max-height: 0;\n overflow: auto;\n}\n.select-input__popup__menu .select-input__popup__list {\n background-color: #fff;\n display: table-caption;\n}\n.select-input__popup__menu .select-input__popup__list:hover {\n background-color: #e2e2e2;\n color: #474554;\n cursor: pointer;\n}\n.select-input__popup__menu::-webkit-scrollbar {\n width: 10px;\n height: 10px;\n background-color: #e6e6e6;\n}\n.select-input__popup__menu::-webkit-scrollbar-thumb {\n background-color: #cccccc;\n}\n.select-input__popup__menu::-webkit-scrollbar-thumb:hover {\n background-color: #929292;\n}\n.select-input__popup__menu::-webkit-scrollbar-corner {\n background-color: #e6e6e6;\n}\n\n.select-input__popup__menu--isShow {\n max-height: 200px;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/Index.scss\"],\"names\":[],\"mappings\":\"AAAA;EACE,kBAAA;AACF;AACE;EACE,kBAAA;AACJ;AACI;EACE,kBAAA;AACN;AAEI;EACE,kBAAA;EACA,QAAA;EACA,aAAA;EACA,2BAAA;EACA,eAAA;EACA,+BAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;AAAN;AAGI;EACE,0CAAA;AADN;AAII;EACE,mBAAA;EACA,uBAAA;EACA,gBAAA;AAFN;;AAOA;EACE,aAAA;EACA,cAAA;AAJF;AAME;EACE,sBAAA;EACA,sBAAA;AAJJ;AAOE;EACE,yBAAA;EACA,cAAA;EACA,eAAA;AALJ;AAQE;EACE,WAAA;EACA,YAAA;EACA,yBAAA;AANJ;AASE;EACE,yBAAA;AAPJ;AAUI;EACE,yBAAA;AARN;AAYE;EACE,yBAAA;AAVJ;;AAcA;EACE,iBAAA;AAXF\",\"sourcesContent\":[\".select-input__wrapper {\\r\\n position: relative;\\r\\n\\r\\n .select-input__content {\\r\\n position: relative;\\r\\n\\r\\n .select-input__content__input {\\r\\n position: relative;\\r\\n }\\r\\n\\r\\n .select-input__content__arrow {\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n right: 0.5rem;\\r\\n transform: translateY(-50%);\\r\\n cursor: pointer;\\r\\n transition: transform 0.2s ease;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n }\\r\\n\\r\\n .select-input__content__arrow--reverse {\\r\\n transform: translateY(-50%) rotate(180deg);\\r\\n }\\r\\n\\r\\n .select-input__content__word__container {\\r\\n white-space: nowrap;\\r\\n text-overflow: ellipsis;\\r\\n overflow: hidden;\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\n.select-input__popup__menu {\\r\\n max-height: 0;\\r\\n overflow: auto;\\r\\n\\r\\n .select-input__popup__list {\\r\\n background-color: #fff;\\r\\n display: table-caption;\\r\\n }\\r\\n\\r\\n .select-input__popup__list:hover {\\r\\n background-color: #e2e2e2;\\r\\n color: #474554;\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n &::-webkit-scrollbar {\\r\\n width: 10px;\\r\\n height: 10px;\\r\\n background-color: #e6e6e6;\\r\\n }\\r\\n\\r\\n &::-webkit-scrollbar-thumb {\\r\\n background-color: #cccccc;\\r\\n // border-radius: 5px;\\r\\n\\r\\n &:hover {\\r\\n background-color: #929292;\\r\\n }\\r\\n }\\r\\n\\r\\n &::-webkit-scrollbar-corner {\\r\\n background-color: #e6e6e6;\\r\\n }\\r\\n}\\r\\n\\r\\n.select-input__popup__menu--isShow {\\r\\n max-height: 200px;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://RPB/./src/Index.scss?../../node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B1%5D.use%5B1%5D!../../node_modules/sass-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B1%5D.use%5B2%5D");
|
|
100
100
|
|
|
101
101
|
/***/ }),
|
|
102
102
|
|