antd-solid 0.0.20 → 0.0.22

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 (66) hide show
  1. package/css/index.css +1 -1
  2. package/dist/index.esm.js +2508 -1078
  3. package/dist/index.umd.js +1 -1
  4. package/es/Button/index.js +25 -7
  5. package/es/Checkbox/Group.js +2 -2
  6. package/es/Checkbox/index.js +26 -13
  7. package/es/CodeInput/index.js +3 -0
  8. package/es/Collapse/Item.js +50 -8
  9. package/es/Collapse/index.js +5 -3
  10. package/es/ColorPicker/ColorPickerInput.js +224 -210
  11. package/es/ColorPicker/ColorPickerSelect.js +61 -4
  12. package/es/ColorPicker/ColorPickerSlider.js +100 -67
  13. package/es/ColorPicker/index.js +62 -16
  14. package/es/ContextMenu/index.js +5 -1
  15. package/es/Cursor/index.js +15 -3
  16. package/es/Divider/index.js +12 -3
  17. package/es/Drawer/index.js +83 -42
  18. package/es/Element/index.js +2 -6
  19. package/es/Empty/PRESENTED_IMAGE_SIMPLE.js +12 -4
  20. package/es/Empty/assets/EmptySvg.js +3 -3
  21. package/es/Empty/assets/SimpleEmptySvg.js +3 -3
  22. package/es/Empty/index.js +12 -4
  23. package/es/Form/FormItem.js +76 -47
  24. package/es/Fragment/index.js +3 -1
  25. package/es/Image/index.js +31 -11
  26. package/es/Input/TextArea.js +31 -5
  27. package/es/Input/index.js +103 -46
  28. package/es/InputNumber/index.js +11 -4
  29. package/es/Menu/InternalMenu.js +93 -37
  30. package/es/Message/Message.js +11 -7
  31. package/es/Modal/index.js +107 -55
  32. package/es/Modal/useModal.js +14 -5
  33. package/es/Modal/warning.js +14 -5
  34. package/es/Popconfirm/index.js +36 -24
  35. package/es/Popover/index.js +20 -11
  36. package/es/Progress/Circle.js +63 -14
  37. package/es/Progress/index.js +38 -14
  38. package/es/Radio/Button.js +20 -4
  39. package/es/Radio/index.js +35 -5
  40. package/es/RangeInput/index.js +76 -22
  41. package/es/Result/index.js +27 -6
  42. package/es/Segmented/index.js +33 -13
  43. package/es/Select/index.js +35 -6
  44. package/es/SelectInput/index.js +112 -48
  45. package/es/Slider/index.js +84 -11
  46. package/es/Space/index.js +2 -2
  47. package/es/Spin/index.js +26 -14
  48. package/es/Switch/index.js +6 -4
  49. package/es/Table/index.js +40 -18
  50. package/es/Tabs/index.js +195 -91
  51. package/es/Timeline/index.js +14 -4
  52. package/es/Tooltip/index.js +48 -20
  53. package/es/Transformer/index.js +123 -59
  54. package/es/Tree/SingleLevelTree.js +191 -30
  55. package/es/TreeFor/index.js +3 -3
  56. package/es/TreeSelect/index.js +6 -4
  57. package/es/Upload/index.js +38 -4
  58. package/es/assets/svg/ColorPickUp.js +19 -6
  59. package/es/assets/svg/Crosshair.js +45 -6
  60. package/es/assets/svg/Resize.js +19 -6
  61. package/es/assets/svg/Rotate.js +14 -13
  62. package/es/assets/svg/RotateArrow.js +15 -20
  63. package/es/hooks/useClickAway.js +4 -6
  64. package/package.json +2 -2
  65. package/es/utils/DOMRect.d.ts +0 -22
  66. package/es/utils/DOMRect.js +0 -41
@@ -1,4 +1,4 @@
1
- import { createComponent, ssr, ssrHydrationKey, ssrAttribute, escape, Portal, ssrElement, mergeProps } from 'solid-js/web';
1
+ import { delegateEvents, createComponent, insert, memo, Portal, effect, setAttribute, spread, mergeProps, template } from 'solid-js/web';
2
2
  import { createMemo, createSignal, Show } from 'solid-js';
3
3
  import { inRange } from 'lodash-es';
4
4
  import NP from 'number-precision';
@@ -13,12 +13,17 @@ import { setRef } from '../utils/solid.js';
13
13
  import { setupGlobalDrag } from '../utils/setupGlobalDrag.js';
14
14
  import { subDOMPoint } from '../utils/domPoint.js';
15
15
 
16
- var _tmpl$ = ["<foreignObject", " class=\"overflow-visible\">", "</foreignObject>"],
17
- _tmpl$2 = ["<svg", "><path class=\"pointer-events-initial\"", " opacity=\"0\"></path><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></svg>"],
18
- _tmpl$3 = ["<path", " d=\"", "\" stroke=\"var(--ant-color-primary)\" stroke-width=\"1\"></path>"];
16
+ var _tmpl$ = /*#__PURE__*/template(`<svg><foreignObject class=overflow-visible></svg>`, false, true),
17
+ _tmpl$2 = /*#__PURE__*/template(`<svg><path class=pointer-events-initial opacity=0>`),
18
+ _tmpl$3 = /*#__PURE__*/template(`<svg><path stroke=var(--ant-color-primary) stroke-width=1></svg>`, false, true),
19
+ _tmpl$4 = /*#__PURE__*/template(`<svg><path class="pointer-events-initial cursor-none"opacity=0 stroke=var(--ant-color-primary) stroke-width=3></svg>`, false, true),
20
+ _tmpl$5 = /*#__PURE__*/template(`<svg><path class="pointer-events-initial cursor-none"opacity=0 fill=red></svg>`, false, true),
21
+ _tmpl$6 = /*#__PURE__*/template(`<svg><path class="pointer-events-initial cursor-none"fill=var(--ant-color-white) stroke=var(--ant-color-primary)></svg>`, false, true),
22
+ _tmpl$7 = /*#__PURE__*/template(`<svg><path class="pointer-events-initial cursor-none"opacity=0 fill=blue></svg>`, false, true);
19
23
  // 判断是否鼠标左键触发
20
24
  const isMainButton = e => e.button === 0;
21
25
  const Transformer = props => {
26
+ let ref;
22
27
  const adsorbGap = createMemo(() => props.adsorb ? props.adsorb.gap ?? 5 : 0);
23
28
  const getTransform = (value, transformOrigin) => new DOMMatrix().translate(value.x, value.y).translate(transformOrigin.x, transformOrigin.y).rotate(value.rotate).translate(-transformOrigin.x, -transformOrigin.y);
24
29
  const [_value, setValue] = createControllableValue(props);
@@ -45,6 +50,10 @@ const Transformer = props => {
45
50
  return point.matrixTransform(getTransform(transformValue, transformOrigin));
46
51
  };
47
52
  const worldToParent = point => {
53
+ if (ref) {
54
+ const rect = ref.getBoundingClientRect();
55
+ point = new DOMPoint(point.x - rect.x, point.y - rect.y);
56
+ }
48
57
  if (props.worldToParentPoint) return props.worldToParentPoint(point);
49
58
  return point;
50
59
  };
@@ -381,9 +390,16 @@ const Transformer = props => {
381
390
  return [x, y, width, height].join(' ');
382
391
  });
383
392
  return createComponent(Element, {
393
+ ref(r$) {
394
+ var _ref$ = ref;
395
+ typeof _ref$ === "function" ? _ref$(r$) : ref = r$;
396
+ },
384
397
  "class": "relative",
385
398
  get children() {
386
- return ssr(_tmpl$2, ssrHydrationKey() + ssrAttribute("class", escape(cs('absolute pointer-events-none', !props.viewBox && 'overflow-visible w-1px h-1px'), true), false) + ssrAttribute("viewBox", escape(viewBoxStr(), true), false), ssrAttribute("d", escape(pathD(), true), false), escape(createComponent(Edge, {
399
+ var _el$ = _tmpl$2(),
400
+ _el$2 = _el$.firstChild;
401
+ _el$2.$$mousedown = onMoveMouseDown;
402
+ insert(_el$, createComponent(Edge, {
387
403
  direction: "top",
388
404
  get layout() {
389
405
  return layoutInWorld();
@@ -392,7 +408,8 @@ const Transformer = props => {
392
408
  return layoutInWorld().yCenterLine;
393
409
  },
394
410
  getResizeHandlerProps: getResizeHandlerProps
395
- })), escape(createComponent(Edge, {
411
+ }), null);
412
+ insert(_el$, createComponent(Edge, {
396
413
  direction: "bottom",
397
414
  get layout() {
398
415
  return layoutInWorld();
@@ -401,7 +418,8 @@ const Transformer = props => {
401
418
  return layoutInWorld().yCenterLine;
402
419
  },
403
420
  getResizeHandlerProps: getResizeHandlerProps
404
- })), escape(createComponent(Edge, {
421
+ }), null);
422
+ insert(_el$, createComponent(Edge, {
405
423
  direction: "left",
406
424
  get layout() {
407
425
  return layoutInWorld();
@@ -410,7 +428,8 @@ const Transformer = props => {
410
428
  return layoutInWorld().xCenterLine;
411
429
  },
412
430
  getResizeHandlerProps: getResizeHandlerProps
413
- })), escape(createComponent(Edge, {
431
+ }), null);
432
+ insert(_el$, createComponent(Edge, {
414
433
  direction: "right",
415
434
  get layout() {
416
435
  return layoutInWorld();
@@ -419,7 +438,8 @@ const Transformer = props => {
419
438
  return layoutInWorld().xCenterLine;
420
439
  },
421
440
  getResizeHandlerProps: getResizeHandlerProps
422
- })), escape(createComponent(Show, {
441
+ }), null);
442
+ insert(_el$, createComponent(Show, {
423
443
  get when() {
424
444
  return layoutInWorld().topLeftPoint instanceof DOMPoint;
425
445
  },
@@ -433,7 +453,8 @@ const Transformer = props => {
433
453
  getRotateHandlerProps: getRotateHandlerProps
434
454
  });
435
455
  }
436
- })), escape(createComponent(Show, {
456
+ }), null);
457
+ insert(_el$, createComponent(Show, {
437
458
  get when() {
438
459
  return layoutInWorld().topRightPoint instanceof DOMPoint;
439
460
  },
@@ -447,7 +468,8 @@ const Transformer = props => {
447
468
  getRotateHandlerProps: getRotateHandlerProps
448
469
  });
449
470
  }
450
- })), escape(createComponent(Show, {
471
+ }), null);
472
+ insert(_el$, createComponent(Show, {
451
473
  get when() {
452
474
  return layoutInWorld().bottomLeftPoint instanceof DOMPoint;
453
475
  },
@@ -461,7 +483,8 @@ const Transformer = props => {
461
483
  getRotateHandlerProps: getRotateHandlerProps
462
484
  });
463
485
  }
464
- })), escape(createComponent(Show, {
486
+ }), null);
487
+ insert(_el$, createComponent(Show, {
465
488
  get when() {
466
489
  return layoutInWorld().bottomRightPoint instanceof DOMPoint;
467
490
  },
@@ -475,7 +498,8 @@ const Transformer = props => {
475
498
  getRotateHandlerProps: getRotateHandlerProps
476
499
  });
477
500
  }
478
- })), escape(createComponent(Show, {
501
+ }), null);
502
+ insert(_el$, createComponent(Show, {
479
503
  get when() {
480
504
  return adsorbLine()?.top;
481
505
  },
@@ -487,7 +511,8 @@ const Transformer = props => {
487
511
  }
488
512
  });
489
513
  }
490
- })), escape(createComponent(Show, {
514
+ }), null);
515
+ insert(_el$, createComponent(Show, {
491
516
  get when() {
492
517
  return adsorbLine()?.bottom;
493
518
  },
@@ -499,7 +524,8 @@ const Transformer = props => {
499
524
  }
500
525
  });
501
526
  }
502
- })), escape(createComponent(Show, {
527
+ }), null);
528
+ insert(_el$, createComponent(Show, {
503
529
  get when() {
504
530
  return adsorbLine()?.left;
505
531
  },
@@ -511,7 +537,8 @@ const Transformer = props => {
511
537
  }
512
538
  });
513
539
  }
514
- })), escape(createComponent(Show, {
540
+ }), null);
541
+ insert(_el$, createComponent(Show, {
515
542
  get when() {
516
543
  return adsorbLine()?.right;
517
544
  },
@@ -523,7 +550,8 @@ const Transformer = props => {
523
550
  }
524
551
  });
525
552
  }
526
- })), escape(createComponent(Show, {
553
+ }), null);
554
+ insert(_el$, createComponent(Show, {
527
555
  get when() {
528
556
  return adsorbLine()?.centerX;
529
557
  },
@@ -534,7 +562,8 @@ const Transformer = props => {
534
562
  }
535
563
  });
536
564
  }
537
- })), escape(createComponent(Show, {
565
+ }), null);
566
+ insert(_el$, createComponent(Show, {
538
567
  get when() {
539
568
  return adsorbLine()?.centerY;
540
569
  },
@@ -545,12 +574,14 @@ const Transformer = props => {
545
574
  }
546
575
  });
547
576
  }
548
- })), escape(createComponent(Show, {
577
+ }), null);
578
+ insert(_el$, createComponent(Show, {
549
579
  get when() {
550
- return props.transformOriginIcon && transformOrigin();
580
+ return memo(() => !!props.transformOriginIcon)() && transformOrigin();
551
581
  },
552
582
  get children() {
553
- return ssr(_tmpl$, ssrHydrationKey(), escape(createComponent(CrosshairSvg, {
583
+ var _el$3 = _tmpl$();
584
+ insert(_el$3, createComponent(CrosshairSvg, {
554
585
  "class": "absolute [font-size:var(--size)] text-black pointer-events-none",
555
586
  get style() {
556
587
  return {
@@ -561,11 +592,13 @@ const Transformer = props => {
561
592
  },
562
593
  innerColor: "white",
563
594
  outerColor: "black"
564
- })));
595
+ }));
596
+ return _el$3;
565
597
  }
566
- })), escape(createComponent(Show, {
598
+ }), null);
599
+ insert(_el$, createComponent(Show, {
567
600
  get when() {
568
- return !resizeDirection() && rotateDirection();
601
+ return memo(() => !!!resizeDirection())() && rotateDirection();
569
602
  },
570
603
  get children() {
571
604
  return createComponent(Portal, {
@@ -583,7 +616,8 @@ const Transformer = props => {
583
616
  }
584
617
  });
585
618
  }
586
- })), escape(createComponent(Show, {
619
+ }), null);
620
+ insert(_el$, createComponent(Show, {
587
621
  get when() {
588
622
  return resizeDirection();
589
623
  },
@@ -603,7 +637,21 @@ const Transformer = props => {
603
637
  }
604
638
  });
605
639
  }
606
- })));
640
+ }), null);
641
+ effect(_p$ => {
642
+ var _v$ = cs('absolute pointer-events-none', !props.viewBox && 'overflow-visible w-1px h-1px'),
643
+ _v$2 = viewBoxStr(),
644
+ _v$3 = pathD();
645
+ _v$ !== _p$.e && setAttribute(_el$, "class", _p$.e = _v$);
646
+ _v$2 !== _p$.t && setAttribute(_el$, "viewBox", _p$.t = _v$2);
647
+ _v$3 !== _p$.a && setAttribute(_el$2, "d", _p$.a = _v$3);
648
+ return _p$;
649
+ }, {
650
+ e: undefined,
651
+ t: undefined,
652
+ a: undefined
653
+ });
654
+ return _el$;
607
655
  }
608
656
  });
609
657
  };
@@ -644,15 +692,19 @@ const Edge = props => {
644
692
  }
645
693
  return getAngleOfDOMPoint(subDOMPoint(endPoint(), startPoint()));
646
694
  };
647
- return [ssr(_tmpl$3, ssrHydrationKey(), `M ${escape(startPoint().x, true)},${escape(startPoint().y, true)} L ${escape(endPoint().x, true)},${escape(endPoint().y, true)}`), ssrElement("path", mergeProps({
648
- "class": "pointer-events-initial cursor-none",
649
- get d() {
650
- return `M ${startPoint().x},${startPoint().y} L ${endPoint().x},${endPoint().y}`;
651
- },
652
- opacity: 0,
653
- stroke: "var(--ant-color-primary)",
654
- "stroke-width": 3
655
- }, () => props.getResizeHandlerProps(props.direction, getMouseRotate)), undefined, true)];
695
+ return [(() => {
696
+ var _el$4 = _tmpl$3();
697
+ effect(() => setAttribute(_el$4, "d", `M ${startPoint().x},${startPoint().y} L ${endPoint().x},${endPoint().y}`));
698
+ return _el$4;
699
+ })(), (() => {
700
+ var _el$5 = _tmpl$4();
701
+ spread(_el$5, mergeProps({
702
+ get d() {
703
+ return `M ${startPoint().x},${startPoint().y} L ${endPoint().x},${endPoint().y}`;
704
+ }
705
+ }, () => props.getResizeHandlerProps(props.direction, getMouseRotate)), true, false);
706
+ return _el$5;
707
+ })()];
656
708
  };
657
709
  const Vertex = props => {
658
710
  const prevPoint = createMemo(() => {
@@ -765,28 +817,31 @@ const Vertex = props => {
765
817
  }
766
818
  return centerAngle() + Math.PI / 2;
767
819
  };
768
- return [ssrElement("path", mergeProps({
769
- "class": "pointer-events-initial cursor-none",
770
- get d() {
771
- return layoutToPathD(rotateLayout());
772
- },
773
- opacity: 0,
774
- fill: "red"
775
- }, () => props.getRotateHandlerProps(props.direction, getMouseRotate)), undefined, true), ssrElement("path", mergeProps({
776
- "class": "pointer-events-initial cursor-none",
777
- get d() {
778
- return layoutToPathD(displayLayout());
779
- },
780
- fill: "var(--ant-color-white)",
781
- stroke: "var(--ant-color-primary)"
782
- }, () => props.getResizeHandlerProps(props.direction, getMouseRotate)), undefined, true), ssrElement("path", mergeProps({
783
- "class": "pointer-events-initial cursor-none",
784
- get d() {
785
- return layoutToPathD(reseizLayout());
786
- },
787
- opacity: 0,
788
- fill: "blue"
789
- }, () => props.getResizeHandlerProps(props.direction, getMouseRotate)), undefined, true)];
820
+ return [(() => {
821
+ var _el$6 = _tmpl$5();
822
+ spread(_el$6, mergeProps({
823
+ get d() {
824
+ return layoutToPathD(rotateLayout());
825
+ }
826
+ }, () => props.getRotateHandlerProps(props.direction, getMouseRotate)), true, false);
827
+ return _el$6;
828
+ })(), (() => {
829
+ var _el$7 = _tmpl$6();
830
+ spread(_el$7, mergeProps({
831
+ get d() {
832
+ return layoutToPathD(displayLayout());
833
+ }
834
+ }, () => props.getResizeHandlerProps(props.direction, getMouseRotate)), true, false);
835
+ return _el$7;
836
+ })(), (() => {
837
+ var _el$8 = _tmpl$7();
838
+ spread(_el$8, mergeProps({
839
+ get d() {
840
+ return layoutToPathD(reseizLayout());
841
+ }
842
+ }, () => props.getResizeHandlerProps(props.direction, getMouseRotate)), true, false);
843
+ return _el$8;
844
+ })()];
790
845
  };
791
846
  const ParentEdge = props => {
792
847
  const startPoint = createMemo(() => {
@@ -809,10 +864,19 @@ const ParentEdge = props => {
809
864
  }[props.direction];
810
865
  return (Array.isArray(p) ? p[0] : p) ?? new DOMPoint();
811
866
  });
812
- return ssr(_tmpl$3, ssrHydrationKey(), `M ${escape(startPoint().x, true)},${escape(startPoint().y, true)} L ${escape(endPoint().x, true)},${escape(endPoint().y, true)}`);
867
+ return (() => {
868
+ var _el$9 = _tmpl$3();
869
+ effect(() => setAttribute(_el$9, "d", `M ${startPoint().x},${startPoint().y} L ${endPoint().x},${endPoint().y}`));
870
+ return _el$9;
871
+ })();
813
872
  };
814
873
  const ParentCenterLine = props => {
815
- return props.line ? ssr(_tmpl$3, ssrHydrationKey(), `M ${escape(props.line[0].x, true)},${escape(props.line[0].y, true)} L ${escape(props.line[1].x, true)},${escape(props.line[1].y, true)}`) : null;
874
+ return memo(() => memo(() => !!props.line)() ? (() => {
875
+ var _el$10 = _tmpl$3();
876
+ effect(() => setAttribute(_el$10, "d", `M ${props.line[0].x},${props.line[0].y} L ${props.line[1].x},${props.line[1].y}`));
877
+ return _el$10;
878
+ })() : null);
816
879
  };
880
+ delegateEvents(["mousedown"]);
817
881
 
818
882
  export { Transformer as default };
@@ -1,12 +1,12 @@
1
- import { createComponent, ssr, ssrHydrationKey, ssrAttribute, escape, mergeProps } from 'solid-js/web';
1
+ import { delegateEvents, createComponent, insert, effect, className, setAttribute, memo, mergeProps, template, use } from 'solid-js/web';
2
2
  import { isEmpty, last, uniq } from 'lodash-es';
3
3
  import { For, createMemo, createSignal, untrack, Show } from 'solid-js';
4
4
  import cs from 'classnames';
5
5
  import Checkbox from '../Checkbox/index.js';
6
6
 
7
- var _tmpl$ = ["<span", " class=\"i-ant-design:caret-down-outlined\"></span>"],
8
- _tmpl$2 = ["<div", " style=\"", "\"", "><div", "><div class=\"flex-shrink-0\" aria-label=\"indent\" style=\"", "\"></div><div", ">", "</div><!--$-->", "<!--/--><div", ">", "</div></div></div>"],
9
- _tmpl$3 = ["<span", " class=\"i-ant-design:caret-right-outlined\"></span>"];
7
+ var _tmpl$ = /*#__PURE__*/template(`<span class=i-ant-design:caret-down-outlined>`),
8
+ _tmpl$2 = /*#__PURE__*/template(`<div><div><div class=flex-shrink-0 aria-label=indent></div><div></div><div>`),
9
+ _tmpl$3 = /*#__PURE__*/template(`<span class=i-ant-design:caret-right-outlined>`);
10
10
  const SingleLevelTree = props => {
11
11
  return createComponent(For, {
12
12
  get each() {
@@ -84,38 +84,198 @@ const SingleLevelTree = props => {
84
84
  props.setCheckedKeys(keys => keys.filter(k => !deleteChildDict.has(k)));
85
85
  }
86
86
  };
87
+ let dragEnterClientX = 0;
87
88
  const [targetIndexes, setTargetIndexes] = createSignal(untrack(indexes));
88
89
  const [isTarget, setIsTarget] = createSignal(false);
89
90
  const [targetPosition, setTargetPosition] = createSignal('before');
90
- return [ssr(_tmpl$2, ssrHydrationKey() + ssrAttribute("class", escape(cs('p-[var(--ant-tree-node-wrapper-padding)] relative', props.draggableNode() && 'child[]:pointer-events-none', isTarget() && ['before:content-empty before:inline-block before:w-8px before:h-8px before:absolute before:left-[var(--ant-tree-target-node-left)] before:-translate-x-full before:rounded-1/2 before:[border:2px_solid_var(--ant-color-primary)]', 'after:content-empty after:inline-block after:h-2px after:absolute after:left-[var(--ant-tree-target-node-left)] after:right-0 after:bg-[var(--ant-color-primary)]', targetPosition() === 'before' ? 'before:top-0 before:translate-y--1/2 after:top--1px' : 'before:bottom-0 before:translate-y-1/2 after:bottom--1px']), true), false), "--ant-tree-target-node-left:" + `calc(${escape(contentRef?.offsetLeft, true) ?? 0}px + ${"0px"} + ${(escape(targetIndexes().length, true) - escape(indexes().length, true)) * escape(props.indentSize, true)}px)`, ssrAttribute("draggable", escape(props.draggable, true), false), ssrAttribute("class", escape(cs('flex items-center relative', props.isDraggable(item) && 'after:content-empty after:absolute after:inset--1px after:[border:1px_solid_var(--ant-color-primary)]'), true), false), "width:" + `${escape(props.indent, true) * escape(props.indentSize, true)}px`, ssrAttribute("class", escape(cs('flex-shrink-0 w-[var(--ant-tree-expand-icon-width)] flex items-center justify-center cursor-pointer', isEndNode() && 'opacity-0'), true), false), escape(createComponent(Show, {
91
- get when() {
92
- return isExpanded();
93
- },
94
- get fallback() {
95
- return ssr(_tmpl$3, ssrHydrationKey());
96
- },
97
- get children() {
98
- return ssr(_tmpl$, ssrHydrationKey());
91
+ const setTargetPositionAndLevelOffset = e => {
92
+ const middleY = e.target.getBoundingClientRect().top + e.target.clientHeight / 2;
93
+ const position = e.clientY < middleY ? 'before' : 'after';
94
+ setTargetPosition(position);
95
+ if (position === 'after') {
96
+ if (isExpanded()) {
97
+ setTargetIndexes([...indexes(), 0]);
98
+ return;
99
+ }
100
+ let isLastNode = props.treeData?.length === i() + 1;
101
+ if (isLastNode && e.clientX < dragEnterClientX) {
102
+ const levelOffset = Math.ceil((e.clientX - dragEnterClientX) / props.indentSize);
103
+ if (levelOffset < 0) {
104
+ setTargetIndexes(() => {
105
+ const _indexes = [...indexes()];
106
+ for (let _i = 0; _i < -levelOffset; _i++) {
107
+ if (_i > 0) {
108
+ if (_indexes.length < 2) break;
109
+ const grandfatherNode = props.getNodeByIndexes(_indexes.slice(0, -1));
110
+ isLastNode = grandfatherNode ? props.getChildren(grandfatherNode)?.length === last(_indexes) + 1 : false;
111
+ if (!isLastNode) break;
112
+ }
113
+ _indexes.pop();
114
+ }
115
+ _indexes[_indexes.length - 1] = _indexes[_indexes.length - 1] + 1;
116
+ return _indexes;
117
+ });
118
+ return;
119
+ }
120
+ }
121
+ if (isEndNode() && e.clientX > dragEnterClientX) {
122
+ const levelOffset = (e.clientX - dragEnterClientX) / props.indentSize;
123
+ if (levelOffset >= 1) {
124
+ setTargetIndexes([...indexes(), 0]);
125
+ return;
126
+ }
127
+ }
128
+ } else {
129
+ // 上一个兄弟节点
130
+ let prevNode = i() > 0 ? props.treeData?.[i() - 1] : undefined;
131
+ let isPrevNodeExpanded = prevNode ? !isEmpty(props.getChildren(prevNode)) && props.expandedKeys().includes(props.getKey(prevNode)) : false;
132
+ if (isPrevNodeExpanded && e.clientX > dragEnterClientX) {
133
+ const levelOffset = Math.floor((e.clientX - dragEnterClientX) / props.indentSize);
134
+ if (levelOffset > 0) {
135
+ setTargetIndexes(() => {
136
+ const _indexes = [...indexes().slice(0, -1), i() - 1];
137
+ for (let _i = 0; _i < levelOffset; _i++) {
138
+ if (_i > 0) {
139
+ prevNode = props.getNodeByIndexes(_indexes);
140
+ isPrevNodeExpanded = prevNode ? !isEmpty(props.getChildren(prevNode)) && props.expandedKeys().includes(props.getKey(prevNode)) : false;
141
+ if (!isPrevNodeExpanded) break;
142
+ }
143
+ _indexes.push(props.getChildren(prevNode).length);
144
+ }
145
+ return _indexes;
146
+ });
147
+ return;
148
+ }
149
+ }
99
150
  }
100
- })), escape(createComponent(Show, {
101
- get when() {
102
- return props.checkable;
103
- },
104
- get children() {
105
- return createComponent(Checkbox, {
106
- "class": "mr-8px mt-2px",
107
- get checked() {
108
- return props.checkedMap().get(props.getKey(item))?.checked;
109
- },
110
- get indeterminate() {
111
- return props.checkedMap().get(props.getKey(item))?.indeterminate;
112
- },
113
- onChange: onCheck
151
+ setTargetIndexes(position === 'before' ? indexes() : [...indexes().slice(0, -1), last(indexes()) + 1]);
152
+ };
153
+ return [(() => {
154
+ var _el$ = _tmpl$2(),
155
+ _el$2 = _el$.firstChild,
156
+ _el$3 = _el$2.firstChild,
157
+ _el$4 = _el$3.nextSibling,
158
+ _el$6 = _el$4.nextSibling;
159
+ _el$.addEventListener("drop", () => {
160
+ setIsTarget(false);
161
+ props.onDrop?.({
162
+ dragNode: props.draggableNode(),
163
+ dragIndexes: props.draggableIndexes(),
164
+ targetIndexes: targetIndexes()
114
165
  });
115
- }
116
- })), ssrAttribute("class", escape(cs('rounded-[var(--ant-border-radius-sm)] px-[var(--ant-padding-xxs)] cursor-pointer relative min-w-0', props.blockNode && 'w-full', props.isDraggable(item) || props.selectedKeys()?.includes(props.getKey(item)) ? 'bg-[var(--ant-tree-node-selected-bg)]' : 'hover:bg-[var(--ant-tree-node-hover-bg)]'), true), false), escape(props.getTitle(item))), createComponent(Show, {
166
+ });
167
+ _el$.addEventListener("dragleave", () => {
168
+ setIsTarget(false);
169
+ });
170
+ _el$.addEventListener("dragenter", e => {
171
+ dragEnterClientX = e.clientX;
172
+ setIsTarget(true);
173
+ setTargetPositionAndLevelOffset(e);
174
+ });
175
+ _el$.addEventListener("dragover", e => {
176
+ e.preventDefault();
177
+ setTargetPositionAndLevelOffset(e);
178
+ });
179
+ _el$.addEventListener("dragend", () => {
180
+ props.setDraggableNode(null);
181
+ props.setDraggableIndexes(null);
182
+ });
183
+ _el$.addEventListener("dragstart", () => {
184
+ props.setDraggableNode(item);
185
+ props.setDraggableIndexes(indexes());
186
+ });
187
+ insert(_el$4, createComponent(Show, {
188
+ get when() {
189
+ return isExpanded();
190
+ },
191
+ get fallback() {
192
+ return (() => {
193
+ var _el$7 = _tmpl$3();
194
+ _el$7.$$click = () => {
195
+ const key = props.getKey(item);
196
+ props.setExpandedKeys(l => [...l, key]);
197
+ };
198
+ return _el$7;
199
+ })();
200
+ },
201
+ get children() {
202
+ var _el$5 = _tmpl$();
203
+ _el$5.$$click = () => {
204
+ const key = props.getKey(item);
205
+ props.setExpandedKeys(l => l.filter(k => k !== key));
206
+ };
207
+ return _el$5;
208
+ }
209
+ }));
210
+ insert(_el$2, createComponent(Show, {
211
+ get when() {
212
+ return props.checkable;
213
+ },
214
+ get children() {
215
+ return createComponent(Checkbox, {
216
+ "class": "mr-8px mt-2px",
217
+ get checked() {
218
+ return props.checkedMap().get(props.getKey(item))?.checked;
219
+ },
220
+ get indeterminate() {
221
+ return props.checkedMap().get(props.getKey(item))?.indeterminate;
222
+ },
223
+ onChange: onCheck
224
+ });
225
+ }
226
+ }), _el$6);
227
+ _el$6.$$click = () => {
228
+ const key = props.getKey(item);
229
+ if (!props.selectable) return;
230
+ if (props.multiple) {
231
+ props.setSelectedKeys(keys => {
232
+ keys = keys ?? [];
233
+ if (keys.includes(key)) {
234
+ return keys.filter(n => n !== key);
235
+ }
236
+ return [...keys, key];
237
+ });
238
+ } else {
239
+ props.setSelectedKeys(keys => {
240
+ return keys?.includes(key) ? [] : [key];
241
+ });
242
+ }
243
+ if (props.checkOnClick) {
244
+ onCheck();
245
+ }
246
+ };
247
+ var _ref$ = contentRef;
248
+ typeof _ref$ === "function" ? use(_ref$, _el$6) : contentRef = _el$6;
249
+ insert(_el$6, () => props.getTitle(item));
250
+ effect(_p$ => {
251
+ var _v$ = cs('p-[var(--ant-tree-node-wrapper-padding)] relative', props.draggableNode() && 'child[]:pointer-events-none', isTarget() && ['before:content-empty before:inline-block before:w-8px before:h-8px before:absolute before:left-[var(--ant-tree-target-node-left)] before:-translate-x-full before:rounded-1/2 before:[border:2px_solid_var(--ant-color-primary)]', 'after:content-empty after:inline-block after:h-2px after:absolute after:left-[var(--ant-tree-target-node-left)] after:right-0 after:bg-[var(--ant-color-primary)]', targetPosition() === 'before' ? 'before:top-0 before:translate-y--1/2 after:top--1px' : 'before:bottom-0 before:translate-y-1/2 after:bottom--1px']),
252
+ _v$2 = `calc(${contentRef?.offsetLeft ?? 0}px + ${contentRef && window.getComputedStyle(contentRef).paddingLeft || '0px'} + ${(targetIndexes().length - indexes().length) * props.indentSize}px)`,
253
+ _v$3 = props.draggable,
254
+ _v$4 = cs('flex items-center relative', props.isDraggable(item) && 'after:content-empty after:absolute after:inset--1px after:[border:1px_solid_var(--ant-color-primary)]'),
255
+ _v$5 = `${props.indent * props.indentSize}px`,
256
+ _v$6 = cs('flex-shrink-0 w-[var(--ant-tree-expand-icon-width)] flex items-center justify-center cursor-pointer', isEndNode() && 'opacity-0'),
257
+ _v$7 = cs('rounded-[var(--ant-border-radius-sm)] px-[var(--ant-padding-xxs)] cursor-pointer relative min-w-0', props.blockNode && 'w-full', props.isDraggable(item) || props.selectedKeys()?.includes(props.getKey(item)) ? 'bg-[var(--ant-tree-node-selected-bg)]' : 'hover:bg-[var(--ant-tree-node-hover-bg)]');
258
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
259
+ _v$2 !== _p$.t && ((_p$.t = _v$2) != null ? _el$.style.setProperty("--ant-tree-target-node-left", _v$2) : _el$.style.removeProperty("--ant-tree-target-node-left"));
260
+ _v$3 !== _p$.a && setAttribute(_el$, "draggable", _p$.a = _v$3);
261
+ _v$4 !== _p$.o && className(_el$2, _p$.o = _v$4);
262
+ _v$5 !== _p$.i && ((_p$.i = _v$5) != null ? _el$3.style.setProperty("width", _v$5) : _el$3.style.removeProperty("width"));
263
+ _v$6 !== _p$.n && className(_el$4, _p$.n = _v$6);
264
+ _v$7 !== _p$.s && className(_el$6, _p$.s = _v$7);
265
+ return _p$;
266
+ }, {
267
+ e: undefined,
268
+ t: undefined,
269
+ a: undefined,
270
+ o: undefined,
271
+ i: undefined,
272
+ n: undefined,
273
+ s: undefined
274
+ });
275
+ return _el$;
276
+ })(), createComponent(Show, {
117
277
  get when() {
118
- return isExpanded() && !isEndNode();
278
+ return memo(() => !!isExpanded())() && !isEndNode();
119
279
  },
120
280
  get children() {
121
281
  return createComponent(SingleLevelTree, mergeProps(props, {
@@ -134,5 +294,6 @@ const SingleLevelTree = props => {
134
294
  }
135
295
  });
136
296
  };
297
+ delegateEvents(["click"]);
137
298
 
138
299
  export { SingleLevelTree as default };
@@ -1,4 +1,4 @@
1
- import { createComponent } from 'solid-js/web';
1
+ import { createComponent, memo } from 'solid-js/web';
2
2
  import { isEmpty, remove } from 'lodash-es';
3
3
  import { For, createMemo, createSignal, untrack, Show } from 'solid-js';
4
4
 
@@ -42,9 +42,9 @@ function TreeFor(props) {
42
42
  onChildChange: props.onChildChange
43
43
  };
44
44
  const isExpanded = createMemo(() => props.expanded ? props.expanded(item, options) : true);
45
- return [props.children(item, options), createComponent(Show, {
45
+ return [memo(() => props.children(item, options)), createComponent(Show, {
46
46
  get when() {
47
- return isParent() && isExpanded();
47
+ return memo(() => !!isParent())() && isExpanded();
48
48
  },
49
49
  get children() {
50
50
  return createComponent(TreeFor, {
@@ -1,4 +1,4 @@
1
- import { createComponent, mergeProps, ssr, ssrHydrationKey, escape } from 'solid-js/web';
1
+ import { createComponent, mergeProps, insert, template } from 'solid-js/web';
2
2
  import { splitProps, untrack, createMemo, Show } from 'solid-js';
3
3
  import { isNil, isEmpty, get } from 'lodash-es';
4
4
  import createControllableValue from '../hooks/createControllableValue.js';
@@ -7,7 +7,7 @@ import SelectInput from '../SelectInput/index.js';
7
7
  import { unwrapStringOrJSXElement } from '../utils/solid.js';
8
8
  import Empty from '../Empty/index.js';
9
9
 
10
- var _tmpl$ = ["<div", " class=\"px-4px py-8px\">", "</div>"];
10
+ var _tmpl$ = /*#__PURE__*/template(`<div class="px-4px py-8px">`);
11
11
  const TreeSelect = props => {
12
12
  const [selectInputProps] = splitProps(props, ['multiple', 'allowClear', 'class', 'disabled', 'placeholder', 'status', 'size']);
13
13
  const [treeProps] = splitProps(props, ['treeData', 'checkable', 'checkStrategy']);
@@ -62,7 +62,8 @@ const TreeSelect = props => {
62
62
  return createComponent(Empty.PRESENTED_IMAGE_SIMPLE, {});
63
63
  },
64
64
  get children() {
65
- return ssr(_tmpl$, ssrHydrationKey(), escape(createComponent(Tree, mergeProps({
65
+ var _el$ = _tmpl$();
66
+ insert(_el$, createComponent(Tree, mergeProps({
66
67
  get multiple() {
67
68
  return props.multiple;
68
69
  },
@@ -87,7 +88,8 @@ const TreeSelect = props => {
87
88
  setValueArr(selectedKeys);
88
89
  if (!props.multiple) close();
89
90
  }
90
- }, treeProps))));
91
+ }, treeProps)));
92
+ return _el$;
91
93
  }
92
94
  })
93
95
  }));