funda-ui 4.1.116 → 4.1.125

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.
Files changed (67) hide show
  1. package/Accordion/index.js +162 -0
  2. package/BackToTop/index.js +162 -0
  3. package/CascadingSelect/index.js +162 -0
  4. package/CascadingSelectE2E/index.js +162 -0
  5. package/Date/index.js +162 -0
  6. package/DigitalClock/index.js +162 -0
  7. package/DropdownMenu/index.js +162 -0
  8. package/EventCalendar/index.js +3610 -17
  9. package/EventCalendarTimeline/index.js +3842 -87
  10. package/LiveSearch/index.js +176 -8
  11. package/MasonryLayout/index.js +162 -0
  12. package/ModalDialog/index.d.ts +2 -0
  13. package/ModalDialog/index.js +3589 -0
  14. package/MultiFuncSelect/index.js +169 -15
  15. package/MultilevelDropdownMenu/index.js +162 -0
  16. package/MultipleCheckboxes/index.d.ts +1 -0
  17. package/MultipleCheckboxes/index.js +316 -124
  18. package/MultipleSelect/index.js +162 -0
  19. package/Radio/index.d.ts +1 -0
  20. package/Radio/index.js +288 -92
  21. package/Scrollbar/index.js +162 -0
  22. package/Select/index.js +162 -0
  23. package/Table/index.js +162 -0
  24. package/TagInput/index.js +162 -0
  25. package/Textarea/index.js +166 -2
  26. package/Tooltip/index.js +162 -0
  27. package/Tree/index.js +162 -0
  28. package/Utils/index.d.ts +2 -1
  29. package/Utils/index.js +117 -0
  30. package/lib/cjs/Accordion/index.js +162 -0
  31. package/lib/cjs/BackToTop/index.js +162 -0
  32. package/lib/cjs/CascadingSelect/index.js +162 -0
  33. package/lib/cjs/CascadingSelectE2E/index.js +162 -0
  34. package/lib/cjs/Date/index.js +162 -0
  35. package/lib/cjs/DigitalClock/index.js +162 -0
  36. package/lib/cjs/DropdownMenu/index.js +162 -0
  37. package/lib/cjs/EventCalendar/index.js +3610 -17
  38. package/lib/cjs/EventCalendarTimeline/index.js +3842 -87
  39. package/lib/cjs/LiveSearch/index.js +176 -8
  40. package/lib/cjs/MasonryLayout/index.js +162 -0
  41. package/lib/cjs/ModalDialog/index.d.ts +2 -0
  42. package/lib/cjs/ModalDialog/index.js +3589 -0
  43. package/lib/cjs/MultiFuncSelect/index.js +169 -15
  44. package/lib/cjs/MultilevelDropdownMenu/index.js +162 -0
  45. package/lib/cjs/MultipleCheckboxes/index.d.ts +1 -0
  46. package/lib/cjs/MultipleCheckboxes/index.js +316 -124
  47. package/lib/cjs/MultipleSelect/index.js +162 -0
  48. package/lib/cjs/Radio/index.d.ts +1 -0
  49. package/lib/cjs/Radio/index.js +288 -92
  50. package/lib/cjs/Scrollbar/index.js +162 -0
  51. package/lib/cjs/Select/index.js +162 -0
  52. package/lib/cjs/Table/index.js +162 -0
  53. package/lib/cjs/TagInput/index.js +162 -0
  54. package/lib/cjs/Textarea/index.js +166 -2
  55. package/lib/cjs/Tooltip/index.js +162 -0
  56. package/lib/cjs/Tree/index.js +162 -0
  57. package/lib/cjs/Utils/index.d.ts +2 -1
  58. package/lib/cjs/Utils/index.js +117 -0
  59. package/lib/esm/LiveSearch/index.tsx +15 -7
  60. package/lib/esm/ModalDialog/index.tsx +13 -2
  61. package/lib/esm/MultiFuncSelect/index.tsx +51 -60
  62. package/lib/esm/MultipleCheckboxes/index.tsx +211 -178
  63. package/lib/esm/Radio/index.tsx +155 -119
  64. package/lib/esm/Textarea/index.tsx +2 -2
  65. package/lib/esm/Utils/hooks/useDraggable.tsx +111 -0
  66. package/lib/esm/Utils/index.tsx +3 -2
  67. package/package.json +1 -1
@@ -574,6 +574,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
574
574
  return (/* reexport */hooks_useDebounce
575
575
  );
576
576
  },
577
+ "useDraggable": function useDraggable() {
578
+ return (/* reexport */hooks_useDraggable
579
+ );
580
+ },
577
581
  "useInterval": function useInterval() {
578
582
  return (/* reexport */hooks_useInterval
579
583
  );
@@ -3412,6 +3416,164 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
3412
3416
  };
3413
3417
  /* harmony default export */
3414
3418
  var hooks_useWindowScroll = useWindowScroll;
3419
+ ; // CONCATENATED MODULE: ./src/hooks/useDraggable.tsx
3420
+ function useDraggable_slicedToArray(arr, i) {
3421
+ return useDraggable_arrayWithHoles(arr) || useDraggable_iterableToArrayLimit(arr, i) || useDraggable_unsupportedIterableToArray(arr, i) || useDraggable_nonIterableRest();
3422
+ }
3423
+ function useDraggable_nonIterableRest() {
3424
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3425
+ }
3426
+ function useDraggable_unsupportedIterableToArray(o, minLen) {
3427
+ if (!o) return;
3428
+ if (typeof o === "string") return useDraggable_arrayLikeToArray(o, minLen);
3429
+ var n = Object.prototype.toString.call(o).slice(8, -1);
3430
+ if (n === "Object" && o.constructor) n = o.constructor.name;
3431
+ if (n === "Map" || n === "Set") return Array.from(o);
3432
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return useDraggable_arrayLikeToArray(o, minLen);
3433
+ }
3434
+ function useDraggable_arrayLikeToArray(arr, len) {
3435
+ if (len == null || len > arr.length) len = arr.length;
3436
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
3437
+ return arr2;
3438
+ }
3439
+ function useDraggable_iterableToArrayLimit(arr, i) {
3440
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
3441
+ if (null != _i) {
3442
+ var _s,
3443
+ _e,
3444
+ _x,
3445
+ _r,
3446
+ _arr = [],
3447
+ _n = !0,
3448
+ _d = !1;
3449
+ try {
3450
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
3451
+ if (Object(_i) !== _i) return;
3452
+ _n = !1;
3453
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
3454
+ } catch (err) {
3455
+ _d = !0, _e = err;
3456
+ } finally {
3457
+ try {
3458
+ if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
3459
+ } finally {
3460
+ if (_d) throw _e;
3461
+ }
3462
+ }
3463
+ return _arr;
3464
+ }
3465
+ }
3466
+ function useDraggable_arrayWithHoles(arr) {
3467
+ if (Array.isArray(arr)) return arr;
3468
+ }
3469
+ /**
3470
+ * Drag & Drop Element
3471
+ *
3472
+ * @usage:
3473
+
3474
+
3475
+ const App = () => {
3476
+ const [dragContentHandle, dragHandle] = useDraggable(true); // or Disable drag and drop: `useDraggable(false)`
3477
+ return (
3478
+ <div className="container" ref={dragContentHandle}>
3479
+ <div ref={dragHandle} className="handle">Drag me</div>
3480
+ <div className="content">
3481
+ content...
3482
+ </div>
3483
+ </div>
3484
+ );
3485
+ };
3486
+
3487
+
3488
+ */
3489
+
3490
+ var useDraggable = function useDraggable(enabled) {
3491
+ if (typeof enabled === 'undefined' || enabled === false) return [null, null];
3492
+ var _useState = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(null),
3493
+ _useState2 = useDraggable_slicedToArray(_useState, 2),
3494
+ node = _useState2[0],
3495
+ setNode = _useState2[1];
3496
+ var _useState3 = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(null),
3497
+ _useState4 = useDraggable_slicedToArray(_useState3, 2),
3498
+ targetNode = _useState4[0],
3499
+ setTargetNode = _useState4[1];
3500
+ var _useState5 = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)({
3501
+ dx: 0,
3502
+ dy: 0
3503
+ }),
3504
+ _useState6 = useDraggable_slicedToArray(_useState5, 2),
3505
+ _useState6$ = _useState6[0],
3506
+ dx = _useState6$.dx,
3507
+ dy = _useState6$.dy,
3508
+ setOffset = _useState6[1];
3509
+ var ref = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (nodeEle) {
3510
+ setNode(nodeEle);
3511
+ }, []);
3512
+ var targetRef = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (nodeEle) {
3513
+ setTargetNode(nodeEle);
3514
+ }, []);
3515
+ var handleMouseDown = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (e) {
3516
+ var startPos = {
3517
+ x: e.clientX - dx,
3518
+ y: e.clientY - dy
3519
+ };
3520
+ var handleMouseMove = function handleMouseMove(e) {
3521
+ var dx = e.clientX - startPos.x;
3522
+ var dy = e.clientY - startPos.y;
3523
+ setOffset({
3524
+ dx: dx,
3525
+ dy: dy
3526
+ });
3527
+ };
3528
+ var handleMouseUp = function handleMouseUp() {
3529
+ document.removeEventListener('mousemove', handleMouseMove);
3530
+ document.removeEventListener('mouseup', handleMouseUp);
3531
+ };
3532
+ document.addEventListener('mousemove', handleMouseMove);
3533
+ document.addEventListener('mouseup', handleMouseUp);
3534
+ }, [dx, dy]);
3535
+ var handleTouchStart = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (e) {
3536
+ var touch = e.touches[0];
3537
+ var startPos = {
3538
+ x: touch.clientX - dx,
3539
+ y: touch.clientY - dy
3540
+ };
3541
+ var handleTouchMove = function handleTouchMove(e) {
3542
+ var touch = e.touches[0];
3543
+ var dx = touch.clientX - startPos.x;
3544
+ var dy = touch.clientY - startPos.y;
3545
+ setOffset({
3546
+ dx: dx,
3547
+ dy: dy
3548
+ });
3549
+ };
3550
+ var handleTouchEnd = function handleTouchEnd() {
3551
+ document.removeEventListener('touchmove', handleTouchMove);
3552
+ document.removeEventListener('touchend', handleTouchEnd);
3553
+ };
3554
+ document.addEventListener('touchmove', handleTouchMove);
3555
+ document.addEventListener('touchend', handleTouchEnd);
3556
+ }, [dx, dy]);
3557
+ (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
3558
+ if (node) {
3559
+ node.style.transform = "translate3d(".concat(dx, "px, ").concat(dy, "px, 0)");
3560
+ }
3561
+ }, [node, dx, dy]);
3562
+ (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
3563
+ if (!targetNode) {
3564
+ return;
3565
+ }
3566
+ targetNode.addEventListener("mousedown", handleMouseDown);
3567
+ targetNode.addEventListener("touchstart", handleTouchStart);
3568
+ return function () {
3569
+ targetNode.removeEventListener("mousedown", handleMouseDown);
3570
+ targetNode.removeEventListener("touchstart", handleTouchStart);
3571
+ };
3572
+ }, [targetNode, dx, dy]);
3573
+ return [ref, targetRef];
3574
+ };
3575
+ /* harmony default export */
3576
+ var hooks_useDraggable = useDraggable;
3415
3577
  ; // CONCATENATED MODULE: ./src/index.tsx
3416
3578
 
3417
3579
  // hooks
@@ -574,6 +574,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
574
574
  return (/* reexport */hooks_useDebounce
575
575
  );
576
576
  },
577
+ "useDraggable": function useDraggable() {
578
+ return (/* reexport */hooks_useDraggable
579
+ );
580
+ },
577
581
  "useInterval": function useInterval() {
578
582
  return (/* reexport */hooks_useInterval
579
583
  );
@@ -3412,6 +3416,164 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
3412
3416
  };
3413
3417
  /* harmony default export */
3414
3418
  var hooks_useWindowScroll = useWindowScroll;
3419
+ ; // CONCATENATED MODULE: ./src/hooks/useDraggable.tsx
3420
+ function useDraggable_slicedToArray(arr, i) {
3421
+ return useDraggable_arrayWithHoles(arr) || useDraggable_iterableToArrayLimit(arr, i) || useDraggable_unsupportedIterableToArray(arr, i) || useDraggable_nonIterableRest();
3422
+ }
3423
+ function useDraggable_nonIterableRest() {
3424
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3425
+ }
3426
+ function useDraggable_unsupportedIterableToArray(o, minLen) {
3427
+ if (!o) return;
3428
+ if (typeof o === "string") return useDraggable_arrayLikeToArray(o, minLen);
3429
+ var n = Object.prototype.toString.call(o).slice(8, -1);
3430
+ if (n === "Object" && o.constructor) n = o.constructor.name;
3431
+ if (n === "Map" || n === "Set") return Array.from(o);
3432
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return useDraggable_arrayLikeToArray(o, minLen);
3433
+ }
3434
+ function useDraggable_arrayLikeToArray(arr, len) {
3435
+ if (len == null || len > arr.length) len = arr.length;
3436
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
3437
+ return arr2;
3438
+ }
3439
+ function useDraggable_iterableToArrayLimit(arr, i) {
3440
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
3441
+ if (null != _i) {
3442
+ var _s,
3443
+ _e,
3444
+ _x,
3445
+ _r,
3446
+ _arr = [],
3447
+ _n = !0,
3448
+ _d = !1;
3449
+ try {
3450
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
3451
+ if (Object(_i) !== _i) return;
3452
+ _n = !1;
3453
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
3454
+ } catch (err) {
3455
+ _d = !0, _e = err;
3456
+ } finally {
3457
+ try {
3458
+ if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
3459
+ } finally {
3460
+ if (_d) throw _e;
3461
+ }
3462
+ }
3463
+ return _arr;
3464
+ }
3465
+ }
3466
+ function useDraggable_arrayWithHoles(arr) {
3467
+ if (Array.isArray(arr)) return arr;
3468
+ }
3469
+ /**
3470
+ * Drag & Drop Element
3471
+ *
3472
+ * @usage:
3473
+
3474
+
3475
+ const App = () => {
3476
+ const [dragContentHandle, dragHandle] = useDraggable(true); // or Disable drag and drop: `useDraggable(false)`
3477
+ return (
3478
+ <div className="container" ref={dragContentHandle}>
3479
+ <div ref={dragHandle} className="handle">Drag me</div>
3480
+ <div className="content">
3481
+ content...
3482
+ </div>
3483
+ </div>
3484
+ );
3485
+ };
3486
+
3487
+
3488
+ */
3489
+
3490
+ var useDraggable = function useDraggable(enabled) {
3491
+ if (typeof enabled === 'undefined' || enabled === false) return [null, null];
3492
+ var _useState = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(null),
3493
+ _useState2 = useDraggable_slicedToArray(_useState, 2),
3494
+ node = _useState2[0],
3495
+ setNode = _useState2[1];
3496
+ var _useState3 = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(null),
3497
+ _useState4 = useDraggable_slicedToArray(_useState3, 2),
3498
+ targetNode = _useState4[0],
3499
+ setTargetNode = _useState4[1];
3500
+ var _useState5 = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)({
3501
+ dx: 0,
3502
+ dy: 0
3503
+ }),
3504
+ _useState6 = useDraggable_slicedToArray(_useState5, 2),
3505
+ _useState6$ = _useState6[0],
3506
+ dx = _useState6$.dx,
3507
+ dy = _useState6$.dy,
3508
+ setOffset = _useState6[1];
3509
+ var ref = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (nodeEle) {
3510
+ setNode(nodeEle);
3511
+ }, []);
3512
+ var targetRef = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (nodeEle) {
3513
+ setTargetNode(nodeEle);
3514
+ }, []);
3515
+ var handleMouseDown = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (e) {
3516
+ var startPos = {
3517
+ x: e.clientX - dx,
3518
+ y: e.clientY - dy
3519
+ };
3520
+ var handleMouseMove = function handleMouseMove(e) {
3521
+ var dx = e.clientX - startPos.x;
3522
+ var dy = e.clientY - startPos.y;
3523
+ setOffset({
3524
+ dx: dx,
3525
+ dy: dy
3526
+ });
3527
+ };
3528
+ var handleMouseUp = function handleMouseUp() {
3529
+ document.removeEventListener('mousemove', handleMouseMove);
3530
+ document.removeEventListener('mouseup', handleMouseUp);
3531
+ };
3532
+ document.addEventListener('mousemove', handleMouseMove);
3533
+ document.addEventListener('mouseup', handleMouseUp);
3534
+ }, [dx, dy]);
3535
+ var handleTouchStart = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (e) {
3536
+ var touch = e.touches[0];
3537
+ var startPos = {
3538
+ x: touch.clientX - dx,
3539
+ y: touch.clientY - dy
3540
+ };
3541
+ var handleTouchMove = function handleTouchMove(e) {
3542
+ var touch = e.touches[0];
3543
+ var dx = touch.clientX - startPos.x;
3544
+ var dy = touch.clientY - startPos.y;
3545
+ setOffset({
3546
+ dx: dx,
3547
+ dy: dy
3548
+ });
3549
+ };
3550
+ var handleTouchEnd = function handleTouchEnd() {
3551
+ document.removeEventListener('touchmove', handleTouchMove);
3552
+ document.removeEventListener('touchend', handleTouchEnd);
3553
+ };
3554
+ document.addEventListener('touchmove', handleTouchMove);
3555
+ document.addEventListener('touchend', handleTouchEnd);
3556
+ }, [dx, dy]);
3557
+ (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
3558
+ if (node) {
3559
+ node.style.transform = "translate3d(".concat(dx, "px, ").concat(dy, "px, 0)");
3560
+ }
3561
+ }, [node, dx, dy]);
3562
+ (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
3563
+ if (!targetNode) {
3564
+ return;
3565
+ }
3566
+ targetNode.addEventListener("mousedown", handleMouseDown);
3567
+ targetNode.addEventListener("touchstart", handleTouchStart);
3568
+ return function () {
3569
+ targetNode.removeEventListener("mousedown", handleMouseDown);
3570
+ targetNode.removeEventListener("touchstart", handleTouchStart);
3571
+ };
3572
+ }, [targetNode, dx, dy]);
3573
+ return [ref, targetRef];
3574
+ };
3575
+ /* harmony default export */
3576
+ var hooks_useDraggable = useDraggable;
3415
3577
  ; // CONCATENATED MODULE: ./src/index.tsx
3416
3578
 
3417
3579
  // hooks
@@ -769,6 +769,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
769
769
  return (/* reexport */hooks_useDebounce
770
770
  );
771
771
  },
772
+ "useDraggable": function useDraggable() {
773
+ return (/* reexport */hooks_useDraggable
774
+ );
775
+ },
772
776
  "useInterval": function useInterval() {
773
777
  return (/* reexport */hooks_useInterval
774
778
  );
@@ -3607,6 +3611,164 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
3607
3611
  };
3608
3612
  /* harmony default export */
3609
3613
  var hooks_useWindowScroll = useWindowScroll;
3614
+ ; // CONCATENATED MODULE: ./src/hooks/useDraggable.tsx
3615
+ function useDraggable_slicedToArray(arr, i) {
3616
+ return useDraggable_arrayWithHoles(arr) || useDraggable_iterableToArrayLimit(arr, i) || useDraggable_unsupportedIterableToArray(arr, i) || useDraggable_nonIterableRest();
3617
+ }
3618
+ function useDraggable_nonIterableRest() {
3619
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3620
+ }
3621
+ function useDraggable_unsupportedIterableToArray(o, minLen) {
3622
+ if (!o) return;
3623
+ if (typeof o === "string") return useDraggable_arrayLikeToArray(o, minLen);
3624
+ var n = Object.prototype.toString.call(o).slice(8, -1);
3625
+ if (n === "Object" && o.constructor) n = o.constructor.name;
3626
+ if (n === "Map" || n === "Set") return Array.from(o);
3627
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return useDraggable_arrayLikeToArray(o, minLen);
3628
+ }
3629
+ function useDraggable_arrayLikeToArray(arr, len) {
3630
+ if (len == null || len > arr.length) len = arr.length;
3631
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
3632
+ return arr2;
3633
+ }
3634
+ function useDraggable_iterableToArrayLimit(arr, i) {
3635
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
3636
+ if (null != _i) {
3637
+ var _s,
3638
+ _e,
3639
+ _x,
3640
+ _r,
3641
+ _arr = [],
3642
+ _n = !0,
3643
+ _d = !1;
3644
+ try {
3645
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
3646
+ if (Object(_i) !== _i) return;
3647
+ _n = !1;
3648
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
3649
+ } catch (err) {
3650
+ _d = !0, _e = err;
3651
+ } finally {
3652
+ try {
3653
+ if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
3654
+ } finally {
3655
+ if (_d) throw _e;
3656
+ }
3657
+ }
3658
+ return _arr;
3659
+ }
3660
+ }
3661
+ function useDraggable_arrayWithHoles(arr) {
3662
+ if (Array.isArray(arr)) return arr;
3663
+ }
3664
+ /**
3665
+ * Drag & Drop Element
3666
+ *
3667
+ * @usage:
3668
+
3669
+
3670
+ const App = () => {
3671
+ const [dragContentHandle, dragHandle] = useDraggable(true); // or Disable drag and drop: `useDraggable(false)`
3672
+ return (
3673
+ <div className="container" ref={dragContentHandle}>
3674
+ <div ref={dragHandle} className="handle">Drag me</div>
3675
+ <div className="content">
3676
+ content...
3677
+ </div>
3678
+ </div>
3679
+ );
3680
+ };
3681
+
3682
+
3683
+ */
3684
+
3685
+ var useDraggable = function useDraggable(enabled) {
3686
+ if (typeof enabled === 'undefined' || enabled === false) return [null, null];
3687
+ var _useState = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(null),
3688
+ _useState2 = useDraggable_slicedToArray(_useState, 2),
3689
+ node = _useState2[0],
3690
+ setNode = _useState2[1];
3691
+ var _useState3 = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(null),
3692
+ _useState4 = useDraggable_slicedToArray(_useState3, 2),
3693
+ targetNode = _useState4[0],
3694
+ setTargetNode = _useState4[1];
3695
+ var _useState5 = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)({
3696
+ dx: 0,
3697
+ dy: 0
3698
+ }),
3699
+ _useState6 = useDraggable_slicedToArray(_useState5, 2),
3700
+ _useState6$ = _useState6[0],
3701
+ dx = _useState6$.dx,
3702
+ dy = _useState6$.dy,
3703
+ setOffset = _useState6[1];
3704
+ var ref = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (nodeEle) {
3705
+ setNode(nodeEle);
3706
+ }, []);
3707
+ var targetRef = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (nodeEle) {
3708
+ setTargetNode(nodeEle);
3709
+ }, []);
3710
+ var handleMouseDown = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (e) {
3711
+ var startPos = {
3712
+ x: e.clientX - dx,
3713
+ y: e.clientY - dy
3714
+ };
3715
+ var handleMouseMove = function handleMouseMove(e) {
3716
+ var dx = e.clientX - startPos.x;
3717
+ var dy = e.clientY - startPos.y;
3718
+ setOffset({
3719
+ dx: dx,
3720
+ dy: dy
3721
+ });
3722
+ };
3723
+ var handleMouseUp = function handleMouseUp() {
3724
+ document.removeEventListener('mousemove', handleMouseMove);
3725
+ document.removeEventListener('mouseup', handleMouseUp);
3726
+ };
3727
+ document.addEventListener('mousemove', handleMouseMove);
3728
+ document.addEventListener('mouseup', handleMouseUp);
3729
+ }, [dx, dy]);
3730
+ var handleTouchStart = (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (e) {
3731
+ var touch = e.touches[0];
3732
+ var startPos = {
3733
+ x: touch.clientX - dx,
3734
+ y: touch.clientY - dy
3735
+ };
3736
+ var handleTouchMove = function handleTouchMove(e) {
3737
+ var touch = e.touches[0];
3738
+ var dx = touch.clientX - startPos.x;
3739
+ var dy = touch.clientY - startPos.y;
3740
+ setOffset({
3741
+ dx: dx,
3742
+ dy: dy
3743
+ });
3744
+ };
3745
+ var handleTouchEnd = function handleTouchEnd() {
3746
+ document.removeEventListener('touchmove', handleTouchMove);
3747
+ document.removeEventListener('touchend', handleTouchEnd);
3748
+ };
3749
+ document.addEventListener('touchmove', handleTouchMove);
3750
+ document.addEventListener('touchend', handleTouchEnd);
3751
+ }, [dx, dy]);
3752
+ (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
3753
+ if (node) {
3754
+ node.style.transform = "translate3d(".concat(dx, "px, ").concat(dy, "px, 0)");
3755
+ }
3756
+ }, [node, dx, dy]);
3757
+ (0, external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
3758
+ if (!targetNode) {
3759
+ return;
3760
+ }
3761
+ targetNode.addEventListener("mousedown", handleMouseDown);
3762
+ targetNode.addEventListener("touchstart", handleTouchStart);
3763
+ return function () {
3764
+ targetNode.removeEventListener("mousedown", handleMouseDown);
3765
+ targetNode.removeEventListener("touchstart", handleTouchStart);
3766
+ };
3767
+ }, [targetNode, dx, dy]);
3768
+ return [ref, targetRef];
3769
+ };
3770
+ /* harmony default export */
3771
+ var hooks_useDraggable = useDraggable;
3610
3772
  ; // CONCATENATED MODULE: ./src/index.tsx
3611
3773
 
3612
3774
  // hooks