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.
- package/css/index.css +1 -1
- package/dist/index.esm.js +2508 -1078
- package/dist/index.umd.js +1 -1
- package/es/Button/index.js +25 -7
- package/es/Checkbox/Group.js +2 -2
- package/es/Checkbox/index.js +26 -13
- package/es/CodeInput/index.js +3 -0
- package/es/Collapse/Item.js +50 -8
- package/es/Collapse/index.js +5 -3
- package/es/ColorPicker/ColorPickerInput.js +224 -210
- package/es/ColorPicker/ColorPickerSelect.js +61 -4
- package/es/ColorPicker/ColorPickerSlider.js +100 -67
- package/es/ColorPicker/index.js +62 -16
- package/es/ContextMenu/index.js +5 -1
- package/es/Cursor/index.js +15 -3
- package/es/Divider/index.js +12 -3
- package/es/Drawer/index.js +83 -42
- package/es/Element/index.js +2 -6
- package/es/Empty/PRESENTED_IMAGE_SIMPLE.js +12 -4
- package/es/Empty/assets/EmptySvg.js +3 -3
- package/es/Empty/assets/SimpleEmptySvg.js +3 -3
- package/es/Empty/index.js +12 -4
- package/es/Form/FormItem.js +76 -47
- package/es/Fragment/index.js +3 -1
- package/es/Image/index.js +31 -11
- package/es/Input/TextArea.js +31 -5
- package/es/Input/index.js +103 -46
- package/es/InputNumber/index.js +11 -4
- package/es/Menu/InternalMenu.js +93 -37
- package/es/Message/Message.js +11 -7
- package/es/Modal/index.js +107 -55
- package/es/Modal/useModal.js +14 -5
- package/es/Modal/warning.js +14 -5
- package/es/Popconfirm/index.js +36 -24
- package/es/Popover/index.js +20 -11
- package/es/Progress/Circle.js +63 -14
- package/es/Progress/index.js +38 -14
- package/es/Radio/Button.js +20 -4
- package/es/Radio/index.js +35 -5
- package/es/RangeInput/index.js +76 -22
- package/es/Result/index.js +27 -6
- package/es/Segmented/index.js +33 -13
- package/es/Select/index.js +35 -6
- package/es/SelectInput/index.js +112 -48
- package/es/Slider/index.js +84 -11
- package/es/Space/index.js +2 -2
- package/es/Spin/index.js +26 -14
- package/es/Switch/index.js +6 -4
- package/es/Table/index.js +40 -18
- package/es/Tabs/index.js +195 -91
- package/es/Timeline/index.js +14 -4
- package/es/Tooltip/index.js +48 -20
- package/es/Transformer/index.js +123 -59
- package/es/Tree/SingleLevelTree.js +191 -30
- package/es/TreeFor/index.js +3 -3
- package/es/TreeSelect/index.js +6 -4
- package/es/Upload/index.js +38 -4
- package/es/assets/svg/ColorPickUp.js +19 -6
- package/es/assets/svg/Crosshair.js +45 -6
- package/es/assets/svg/Resize.js +19 -6
- package/es/assets/svg/Rotate.js +14 -13
- package/es/assets/svg/RotateArrow.js +15 -20
- package/es/hooks/useClickAway.js +4 -6
- package/package.json +2 -2
- package/es/utils/DOMRect.d.ts +0 -22
- package/es/utils/DOMRect.js +0 -41
package/es/Transformer/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createComponent,
|
|
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$ =
|
|
17
|
-
_tmpl$2 =
|
|
18
|
-
_tmpl$3 =
|
|
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
|
-
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
})
|
|
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
|
-
|
|
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
|
-
})
|
|
598
|
+
}), null);
|
|
599
|
+
insert(_el$, createComponent(Show, {
|
|
567
600
|
get when() {
|
|
568
|
-
return
|
|
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
|
-
})
|
|
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 [
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
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 [
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
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
|
|
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
|
|
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,
|
|
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$ =
|
|
8
|
-
_tmpl$2 =
|
|
9
|
-
_tmpl$3 =
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
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
|
-
|
|
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 };
|
package/es/TreeFor/index.js
CHANGED
|
@@ -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, {
|
package/es/TreeSelect/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createComponent, mergeProps,
|
|
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$ =
|
|
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
|
-
|
|
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
|
}));
|