pocko-ui 1.0.24 → 1.0.26

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.
@@ -1,20 +1,23 @@
1
1
  import React, { ReactNode } from "react";
2
2
  import "./Index.scss";
3
3
  interface Props {
4
- maskWidth: string;
5
- maxWidth?: string;
6
- title: string;
7
- confirmClickFn: Function;
8
- children: ReactNode;
9
- modalBodyHeight?: string;
10
- operationName?: string;
11
- closeModalClick?: Function;
12
- footBtn?: Boolean;
13
- body?: Boolean;
14
- isDraggable?: Boolean | String;
15
4
  zIndex?: String | any;
5
+ heading?: string;
6
+ modalSize?: "full" | "xl" | "lg" | "common";
7
+ modalContentClassName?: string;
8
+ modalHeaderClassName?: string;
9
+ modalBodyClassName?: string;
10
+ modalFooterClassName?: string;
11
+ children?: ReactNode;
16
12
  header?: ReactNode;
17
13
  footer?: ReactNode;
14
+ onOpen?: Function;
15
+ onSubmit?: Function;
16
+ modalBodyHeight?: string;
17
+ operationName?: string;
18
+ onClose?: Function;
19
+ triggerContent: ReactNode;
20
+ triggerClassName?: string;
18
21
  }
19
22
  declare const Mask: React.ForwardRefExoticComponent<Props & React.RefAttributes<unknown>>;
20
23
  export default Mask;
@@ -46,17 +46,17 @@ eval("\n\nmodule.exports = function (item) {\n var content = item[1];\n var cs
46
46
  \***********************/
47
47
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48
48
 
49
- 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 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 _utils_useDraggable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../utils/useDraggable */ \"../../utils/useDraggable.tsx\");\n/* harmony import */ var _Index_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Index.scss */ \"./src/Index.scss\");\n\n\n\n\nvar Mask = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Mask(_ref, ref) {\n var maskWidth = _ref.maskWidth,\n maxWidth = _ref.maxWidth,\n title = _ref.title,\n confirmClickFn = _ref.confirmClickFn,\n children = _ref.children,\n _ref$operationName = _ref.operationName,\n operationName = _ref$operationName === void 0 ? \"确认\" : _ref$operationName,\n _ref$modalBodyHeight = _ref.modalBodyHeight,\n modalBodyHeight = _ref$modalBodyHeight === void 0 ? \"auto\" : _ref$modalBodyHeight,\n closeModalClick = _ref.closeModalClick,\n _ref$footBtn = _ref.footBtn,\n footBtn = _ref$footBtn === void 0 ? true : _ref$footBtn,\n _ref$body = _ref.body,\n body = _ref$body === void 0 ? true : _ref$body,\n _ref$isDraggable = _ref.isDraggable,\n isDraggable = _ref$isDraggable === void 0 ? false : _ref$isDraggable,\n zIndex = _ref.zIndex,\n header = _ref.header,\n footer = _ref.footer;\n var handleDisappearClick = function handleDisappearClick() {\n if (closeModalClick) {\n setTimeout(function () {\n closeModalClick();\n }, 150);\n }\n resetModal();\n ref.current.classList.remove(\"show\");\n setTimeout(function () {\n ref.current.style.display = \"none\";\n }, 100);\n };\n var _useDraggable = (0,_utils_useDraggable__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n enabled: isDraggable ? true : false,\n // if `false`, drag and drop is disabled\n preventOutsideScreen: {\n xAxis: true,\n yAxis: true\n },\n onStart: function onStart(coordinates, handleEl, contentEl) {},\n onDrag: function onDrag(coordinates, handleEl, contentEl) {\n // console.log(coordinates) // {dx: -164, dy: -37}\n },\n onStop: function onStop(coordinates, handleEl, contentEl) {}\n }),\n dragContentHandle = _useDraggable.dragContentHandle,\n dragHandle = _useDraggable.dragHandle,\n resetPosition = _useDraggable.resetPosition;\n var resetModal = function resetModal() {\n resetPosition === null || resetPosition === void 0 || resetPosition();\n };\n var modalContent = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: ref,\n className: \"modal fade bg-black bg-opacity-25 toast\",\n id: \"exampleModalLive\",\n tabIndex: -1,\n role: \"dialog\",\n style: {\n zIndex: \"\".concat(zIndex)\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: maskWidth === \"full\" ? \"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-fullscreen\" : maskWidth === \"xl\" ? \"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-xl\" : maskWidth === \"lg\" ? \"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-lg\" : \"modal-dialog modal-dialog-centered modal-dialog-scrollable\",\n style: {\n maxWidth: maxWidth\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"modal-content\",\n ref: dragContentHandle\n }, header ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(isDraggable ? \"anes-care-cursor-all-scroll\" : \"\"),\n style: {\n cursor: \"\".concat(isDraggable ? \"pointer\" : \"auto\")\n },\n ref: dragHandle\n }, header) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"modal-header \".concat(isDraggable ? \"anes-care-cursor-all-scroll\" : \"\"),\n style: {\n cursor: \"\".concat(isDraggable ? \"pointer\" : \"auto\")\n },\n ref: dragHandle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"h1\", {\n className: \"modal-title fs-5\",\n id: \"exampleModalLiveLabel\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n type: \"button\",\n className: \"btn-close\",\n \"data-bs-dismiss\": \"modal\",\n \"aria-label\": \"Close\",\n onClick: handleDisappearClick\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"modal-body\",\n style: {\n height: modalBodyHeight == \"auto\" ? \"auto\" : \"\".concat(modalBodyHeight, \"vh\")\n }\n }, children), footer ? footer : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"modal-footer\"\n }, footBtn && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-secondary\",\n onClick: handleDisappearClick\n }, \"\\u53D6\\u6D88\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\",\n onClick: function onClick() {\n confirmClickFn();\n }\n }, operationName)))));\n return body ? /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal)(modalContent, document.body) : modalContent;\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Mask);\n\n//# sourceURL=webpack://RPB/./src/Index.tsx?");
49
+ 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 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 _Index_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Index.scss */ \"./src/Index.scss\");\n/* harmony import */ var _utils_cls__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../utils/cls */ \"../../utils/cls.ts\");\n\n\n\n\nvar Mask = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Mask(_ref, ref) {\n var _ref$modalSize = _ref.modalSize,\n modalSize = _ref$modalSize === void 0 ? \"common\" : _ref$modalSize,\n heading = _ref.heading,\n onSubmit = _ref.onSubmit,\n children = _ref.children,\n _ref$operationName = _ref.operationName,\n operationName = _ref$operationName === void 0 ? \"确认\" : _ref$operationName,\n modalBodyHeight = _ref.modalBodyHeight,\n onOpen = _ref.onOpen,\n onClose = _ref.onClose,\n zIndex = _ref.zIndex,\n header = _ref.header,\n footer = _ref.footer,\n modalContentClassName = _ref.modalContentClassName,\n modalHeaderClassName = _ref.modalHeaderClassName,\n modalBodyClassName = _ref.modalBodyClassName,\n modalFooterClassName = _ref.modalFooterClassName,\n triggerContent = _ref.triggerContent,\n triggerClassName = _ref.triggerClassName;\n function onOpenClick() {\n if (onOpen) {\n setTimeout(function () {\n onOpen();\n }, 150);\n }\n ref.current.style.display = \"block\";\n setTimeout(function () {\n ref.current.classList.add(\"show\");\n }, 100);\n }\n function onCloseClick() {\n if (onClose) {\n setTimeout(function () {\n onClose();\n }, 150);\n }\n ref.current.classList.remove(\"show\");\n setTimeout(function () {\n ref.current.style.display = \"none\";\n }, 100);\n }\n var modalContent = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: ref,\n className: \"modal fade bg-black bg-opacity-25 toast\",\n tabIndex: -1,\n role: \"dialog\",\n style: {\n zIndex: \"\".concat(zIndex)\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"modal-dialog modal-dialog-centered modal-dialog-scrollable \".concat(modalSize === \"full\" ? \"modal-fullscreen\" : modalSize === \"xl\" ? \"modal-xl\" : modalSize === \"lg\" ? \"modal-lg\" : \"\")\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: (0,_utils_cls__WEBPACK_IMPORTED_MODULE_3__.clsWrite)(modalContentClassName, \"modal-content\")\n }, header ? header : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: (0,_utils_cls__WEBPACK_IMPORTED_MODULE_3__.clsWrite)(modalHeaderClassName, \"modal-header\")\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"h1\", {\n className: \"modal-title fs-5\"\n }, heading), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n type: \"button\",\n className: \"btn-close\",\n \"data-bs-dismiss\": \"modal\",\n \"aria-label\": \"Close\",\n onClick: onCloseClick\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: (0,_utils_cls__WEBPACK_IMPORTED_MODULE_3__.clsWrite)(modalBodyClassName, \"modal-body\"),\n style: {\n height: modalBodyHeight ? \"\".concat(modalBodyHeight, \"vh\") : \"auto\"\n }\n }, children), footer ? footer : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: (0,_utils_cls__WEBPACK_IMPORTED_MODULE_3__.clsWrite)(modalFooterClassName, \"modal-footer\")\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-secondary\",\n onClick: onCloseClick\n }, \"\\u53D6\\u6D88\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-primary\",\n onClick: function onClick() {\n if (onSubmit) {\n onSubmit();\n }\n }\n }, operationName)))));\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, triggerContent && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: (0,_utils_cls__WEBPACK_IMPORTED_MODULE_3__.clsWrite)(triggerClassName, \"trigger-container\"),\n onClick: onOpenClick\n }, triggerContent), /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal)(modalContent, document.body));\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Mask);\n\n//# sourceURL=webpack://RPB/./src/Index.tsx?");
50
50
 
51
51
  /***/ }),
52
52
 
53
- /***/ "../../utils/useDraggable.tsx":
54
- /*!************************************!*\
55
- !*** ../../utils/useDraggable.tsx ***!
56
- \************************************/
53
+ /***/ "../../utils/cls.ts":
54
+ /*!**************************!*\
55
+ !*** ../../utils/cls.ts ***!
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\": () => (__WEBPACK_DEFAULT_EXPORT__)\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/**\r\n * Drag & Drop Element\r\n * \r\n * @usage:\r\n\r\n\r\nconst App = () => {\r\n const {\r\n dragContentHandle, \r\n dragHandle,\r\n resetPosition\r\n }: any = useDraggable({\r\n enabled: true, // if `false`, drag and drop is disabled\r\n preventOutsideScreen: {\r\n xAxis: true,\r\n yAxis: true\r\n },\r\n onStart: (coordinates: Record<string, number>, handleEl: HTMLElement | null, contentEl: HTMLElement | null) => {\r\n \r\n },\r\n onDrag: (coordinates: Record<string, number>, handleEl: HTMLElement | null, contentEl: HTMLElement | null) => {\r\n console.log(coordinates); // {dx: -164, dy: -37}\r\n\r\n },\r\n onStop: (coordinates: Record<string, number>, handleEl: HTMLElement | null, contentEl: HTMLElement | null) => {\r\n\r\n }\r\n });\r\n\r\n const resetModal = () => {\r\n resetPosition?.();\r\n };\r\n\r\n return (\r\n <div className=\"container\" ref={dragContentHandle}>\r\n <div ref={dragHandle} className=\"handle\">Drag me</div>\r\n <div className=\"content\">\r\n content...\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\n\r\n */\n\n\nvar useDraggable = function useDraggable(_ref) {\n var enabled = _ref.enabled,\n preventOutsideScreen = _ref.preventOutsideScreen,\n onStart = _ref.onStart,\n onStop = _ref.onStop,\n onDrag = _ref.onDrag;\n var DRAG_DISABLED = typeof enabled === \"undefined\" || enabled === false;\n var dragging = false; // DO NOT USE 'useState()'\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),\n _useState2 = _slicedToArray(_useState, 2),\n node = _useState2[0],\n setNode = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),\n _useState4 = _slicedToArray(_useState3, 2),\n targetNode = _useState4[0],\n setTargetNode = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n dx: 0,\n dy: 0\n }),\n _useState6 = _slicedToArray(_useState5, 2),\n _useState6$ = _useState6[0],\n dx = _useState6$.dx,\n dy = _useState6$.dy,\n setOffset = _useState6[1];\n var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (nodeEle) {\n setNode(nodeEle);\n }, []);\n var targetRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (nodeEle) {\n setTargetNode(nodeEle);\n }, []);\n var withoutViewport = function withoutViewport(startPos, e, targetEl) {\n if (!targetEl || typeof preventOutsideScreen === \"undefined\") return null;\n\n // latest mouse coordinates\n var mouseX = e.clientX;\n var mouseY = e.clientY;\n\n // the size of the parent element\n var parentWidth = window.innerWidth;\n var parentHeight = window.innerHeight;\n\n // the size of the child element\n var childrenWidth = targetEl.clientWidth;\n var childrenHight = targetEl.clientHeight;\n var minLeft = -(parentWidth - childrenWidth) / 2;\n var maxLeft = (parentWidth - childrenWidth) / 2;\n var minTop = -(parentHeight - childrenHight) / 2;\n var maxTop = (parentHeight - childrenHight) / 2;\n\n // calculates the left and top offsets after the move\n var nLeft = mouseX - startPos.x;\n var nTop = mouseY - startPos.y;\n\n // Determine whether the left or right distance is out of bounds\n if (preventOutsideScreen.xAxis) {\n nLeft = nLeft <= minLeft ? minLeft : nLeft;\n nLeft = nLeft >= maxLeft ? maxLeft : nLeft;\n }\n if (preventOutsideScreen.yAxis) {\n nTop = nTop <= minTop ? minTop : nTop;\n nTop = nTop >= maxTop ? maxTop : nTop;\n }\n return [nLeft, nTop];\n };\n var handleMouseDown = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n dragging = true;\n onStart === null || onStart === void 0 || onStart({\n dx: dx,\n dy: dy\n }, targetNode, node);\n var startPos = {\n x: e.clientX - dx,\n y: e.clientY - dy\n };\n var handleMouseMove = function handleMouseMove(e) {\n if (!dragging) return;\n var dx = e.clientX - startPos.x;\n var dy = e.clientY - startPos.y;\n\n // prevent dragged item to be dragged outside of screen\n if (preventOutsideScreen && node) {\n var _data = withoutViewport(startPos, e, node);\n if (_data !== null) {\n dx = _data[0];\n dy = _data[1];\n }\n }\n setOffset({\n dx: dx,\n dy: dy\n });\n onDrag === null || onDrag === void 0 || onDrag({\n dx: dx,\n dy: dy\n }, targetNode, node);\n e.stopPropagation();\n e.preventDefault();\n };\n var _handleMouseUp = function handleMouseUp() {\n dragging = false;\n onStop === null || onStop === void 0 || onStop({\n dx: dx,\n dy: dy\n }, targetNode, node);\n document.removeEventListener(\"mousemove\", handleMouseMove);\n document.removeEventListener(\"mouseup\", _handleMouseUp);\n };\n document.addEventListener(\"mousemove\", handleMouseMove);\n document.addEventListener(\"mouseup\", _handleMouseUp);\n }, [dx, dy, node]);\n var handleTouchStart = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (e) {\n dragging = true;\n onStart === null || onStart === void 0 || onStart({\n dx: dx,\n dy: dy\n }, targetNode, node);\n var touch = e.touches[0];\n var startPos = {\n x: touch.clientX - dx,\n y: touch.clientY - dy\n };\n var handleTouchMove = function handleTouchMove(e) {\n if (!dragging) return;\n var touch = e.touches[0];\n var dx = touch.clientX - startPos.x;\n var dy = touch.clientY - startPos.y;\n\n // prevent dragged item to be dragged outside of screen\n if (preventOutsideScreen && node) {\n var _data = withoutViewport(startPos, touch, node);\n if (_data !== null) {\n dx = _data[0];\n dy = _data[1];\n }\n }\n setOffset({\n dx: dx,\n dy: dy\n });\n onDrag === null || onDrag === void 0 || onDrag({\n dx: dx,\n dy: dy\n }, targetNode, node);\n e.stopPropagation();\n e.preventDefault();\n };\n var _handleTouchEnd = function handleTouchEnd() {\n dragging = false;\n onStop === null || onStop === void 0 || onStop({\n dx: dx,\n dy: dy\n }, targetNode, node);\n document.removeEventListener(\"touchmove\", handleTouchMove);\n document.removeEventListener(\"touchend\", _handleTouchEnd);\n };\n document.addEventListener(\"touchmove\", handleTouchMove);\n document.addEventListener(\"touchend\", _handleTouchEnd);\n }, [dx, dy, node]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (node) {\n node.style.transform = \"translate3d(\".concat(dx, \"px, \").concat(dy, \"px, 0)\");\n }\n }, [node, dx, dy]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (DRAG_DISABLED) {\n return;\n }\n if (!targetNode) {\n return;\n }\n targetNode.addEventListener(\"mousedown\", handleMouseDown);\n targetNode.addEventListener(\"touchstart\", handleTouchStart);\n return function () {\n targetNode.removeEventListener(\"mousedown\", handleMouseDown);\n targetNode.removeEventListener(\"touchstart\", handleTouchStart);\n };\n }, [targetNode, dx, dy]);\n return {\n dragContentHandle: ref,\n dragHandle: targetRef,\n resetPosition: function resetPosition() {\n // reset position\n setOffset({\n dx: 0,\n dy: 0\n });\n }\n };\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useDraggable);\n\n//# sourceURL=webpack://RPB/../../utils/useDraggable.tsx?");
59
+ 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?");
60
60
 
61
61
  /***/ }),
62
62
 
@@ -1,11 +1,12 @@
1
1
  import React from "react";
2
2
  import "./Index.scss";
3
3
  interface Props {
4
+ wrapperClassName?: string;
4
5
  delay?: number;
5
6
  color?: string;
6
7
  children: React.ReactNode;
7
8
  content: string;
8
9
  position?: "top" | "bottom";
9
10
  }
10
- export default function ToolTips({ delay, color, children, content, position, }: Props): JSX.Element;
11
+ export default function ToolTips({ wrapperClassName, delay, color, children, content, position, }: Props): JSX.Element;
11
12
  export {};
package/Tooltips/index.js CHANGED
@@ -46,7 +46,17 @@ eval("\n\nmodule.exports = function (item) {\n var content = item[1];\n var cs
46
46
  \***********************/
47
47
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48
48
 
49
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ToolTips)\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 _Index_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Index.scss */ \"./src/Index.scss\");\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 _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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\nfunction ToolTips(_ref) {\n var _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? 300 : _ref$delay,\n _ref$color = _ref.color,\n color = _ref$color === void 0 ? \"#000\" : _ref$color,\n children = _ref.children,\n content = _ref.content,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? \"bottom\" : _ref$position;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),\n _useState2 = _slicedToArray(_useState, 2),\n isVisible = _useState2[0],\n setIsVisible = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n top: 0,\n left: 0\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n pos = _useState4[0],\n setPos = _useState4[1];\n var timeoutHoverIdRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var tooltipRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var contentRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var handleMouseEnter = function handleMouseEnter(event) {\n var _contentRef$current;\n var _event$currentTarget$ = event.currentTarget.getBoundingClientRect(),\n top = _event$currentTarget$.top,\n left = _event$currentTarget$.left,\n height = _event$currentTarget$.height,\n width = _event$currentTarget$.width;\n var scrollX = window.pageXOffset || document.documentElement.scrollLeft;\n var scrollY = window.pageYOffset || document.documentElement.scrollTop;\n\n // 获取 `tooltip-container-content` 的高度\n var contentHeight = ((_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.offsetHeight) || 0;\n var tooltipTop = position === \"top\" ? top + scrollY - contentHeight // 在上方显示\n : top + height + scrollY + 10; // 在下方显示\n\n setPos({\n top: tooltipTop,\n left: left + width / 2 + scrollX\n });\n timeoutHoverIdRef.current = setTimeout(function () {\n setIsVisible(true);\n }, delay);\n };\n var handleMouseLeave = function handleMouseLeave() {\n if (timeoutHoverIdRef.current) {\n clearTimeout(timeoutHoverIdRef.current);\n }\n setIsVisible(false);\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n ref: tooltipRef,\n className: \"tooltip-container\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"tooltip-container-content\",\n ref: contentRef\n }, children), isVisible && /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal)(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"my-tooltip badge pos-absolute p-1 rounded text-white text-wrap \".concat(position),\n style: _defineProperty({\n top: pos.top,\n left: pos.left,\n backgroundColor: color,\n transform: \"translateX(-50%)\"\n }, \"--tooltip-color\", color)\n }, content), document.body));\n}\n\n//# sourceURL=webpack://RPB/./src/Index.tsx?");
49
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ToolTips)\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 _Index_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Index.scss */ \"./src/Index.scss\");\n/* harmony import */ var _utils_cls__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../utils/cls */ \"../../utils/cls.ts\");\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 _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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\nfunction ToolTips(_ref) {\n var wrapperClassName = _ref.wrapperClassName,\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? 300 : _ref$delay,\n _ref$color = _ref.color,\n color = _ref$color === void 0 ? \"#000\" : _ref$color,\n children = _ref.children,\n content = _ref.content,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? \"bottom\" : _ref$position;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),\n _useState2 = _slicedToArray(_useState, 2),\n isVisible = _useState2[0],\n setIsVisible = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n top: 0,\n left: 0\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n pos = _useState4[0],\n setPos = _useState4[1];\n var timeoutHoverIdRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var tooltipRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var contentRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var handleMouseEnter = function handleMouseEnter(event) {\n var _contentRef$current;\n var _event$currentTarget$ = event.currentTarget.getBoundingClientRect(),\n top = _event$currentTarget$.top,\n left = _event$currentTarget$.left,\n height = _event$currentTarget$.height,\n width = _event$currentTarget$.width;\n var scrollX = window.pageXOffset || document.documentElement.scrollLeft;\n var scrollY = window.pageYOffset || document.documentElement.scrollTop;\n\n // 获取 `tooltip-container-content` 的高度\n var contentHeight = ((_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.offsetHeight) || 0;\n var tooltipTop = position === \"top\" ? top + scrollY - contentHeight // 在上方显示\n : top + height + scrollY + 10; // 在下方显示\n\n setPos({\n top: tooltipTop,\n left: left + width / 2 + scrollX\n });\n timeoutHoverIdRef.current = setTimeout(function () {\n setIsVisible(true);\n }, delay);\n };\n var handleMouseLeave = function handleMouseLeave() {\n if (timeoutHoverIdRef.current) {\n clearTimeout(timeoutHoverIdRef.current);\n }\n setIsVisible(false);\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n ref: tooltipRef,\n className: (0,_utils_cls__WEBPACK_IMPORTED_MODULE_3__.clsCombine)(wrapperClassName, \"tooltip-container\")\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"tooltip-container-content\",\n ref: contentRef\n }, children), isVisible && /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal)(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"my-tooltip badge pos-absolute p-1 rounded text-white text-wrap \".concat(position),\n style: _defineProperty({\n top: pos.top,\n left: pos.left,\n backgroundColor: color,\n transform: \"translateX(-50%)\"\n }, \"--tooltip-color\", color)\n }, content), document.body));\n}\n\n//# sourceURL=webpack://RPB/./src/Index.tsx?");
50
+
51
+ /***/ }),
52
+
53
+ /***/ "../../utils/cls.ts":
54
+ /*!**************************!*\
55
+ !*** ../../utils/cls.ts ***!
56
+ \**************************/
57
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
58
+
59
+ 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?");
50
60
 
51
61
  /***/ }),
52
62
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pocko-ui",
3
- "version": "1.0.24",
3
+ "version": "1.0.26",
4
4
  "description": "React components using pure Bootstrap 5+ which does not contain any external style and script libraries.",
5
5
  "main": "index.js",
6
6
  "scripts": {