uiik 1.3.0-beta → 1.3.0-beta.1
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/index.esm.js +35 -17
- package/index.js +35 -17
- package/package.json +1 -1
- package/types.d.ts +1 -1
package/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* uiik v1.3.0-beta
|
|
2
|
+
* uiik v1.3.0-beta.1
|
|
3
3
|
* A UI interactions kit includes draggable, splittable, rotatable, selectable, etc.
|
|
4
4
|
* https://github.com/holyhigh2/uiik
|
|
5
5
|
* c) 2021-2023 @holyhigh2 may be freely distributed under the MIT license
|
|
@@ -606,7 +606,7 @@ class Uii {
|
|
|
606
606
|
let onPointerStart;
|
|
607
607
|
let onPointerMove;
|
|
608
608
|
let onPointerEnd;
|
|
609
|
-
onPointerDown({
|
|
609
|
+
const toBreak = !!onPointerDown({
|
|
610
610
|
onPointerMove: (pm) => { onPointerMove = pm; },
|
|
611
611
|
onPointerStart: (ps) => { onPointerStart = ps; },
|
|
612
612
|
onPointerEnd: (pe) => { onPointerEnd = pe; },
|
|
@@ -614,6 +614,10 @@ class Uii {
|
|
|
614
614
|
pointX: e.clientX, pointY: e.clientY, target: t,
|
|
615
615
|
currentTarget: el, currentStyle, currentCStyle, currentRect
|
|
616
616
|
});
|
|
617
|
+
if (toBreak) {
|
|
618
|
+
e.preventDefault();
|
|
619
|
+
return false;
|
|
620
|
+
}
|
|
617
621
|
//函数
|
|
618
622
|
const pointerMove = (ev) => {
|
|
619
623
|
const offX = ev.clientX - originPosX;
|
|
@@ -627,7 +631,7 @@ class Uii {
|
|
|
627
631
|
if (hasCursor) {
|
|
628
632
|
setCursor(uiiOptions.cursor.active);
|
|
629
633
|
}
|
|
630
|
-
|
|
634
|
+
onPointerStart && onPointerStart({ ev });
|
|
631
635
|
}
|
|
632
636
|
else {
|
|
633
637
|
ev.preventDefault();
|
|
@@ -654,7 +658,6 @@ class Uii {
|
|
|
654
658
|
document.addEventListener("mouseup", pointerEnd);
|
|
655
659
|
window.addEventListener("blur", pointerEnd);
|
|
656
660
|
e.preventDefault();
|
|
657
|
-
// e.stopPropagation();
|
|
658
661
|
return false;
|
|
659
662
|
}, true);
|
|
660
663
|
}
|
|
@@ -1051,6 +1054,14 @@ class Resizable extends Uii {
|
|
|
1051
1054
|
offset: 0,
|
|
1052
1055
|
}, opts));
|
|
1053
1056
|
each(this.ele, (el) => {
|
|
1057
|
+
let tmp = el;
|
|
1058
|
+
if (tmp._uiik_resizable) {
|
|
1059
|
+
tmp._uiik_resizable.destroy();
|
|
1060
|
+
return false;
|
|
1061
|
+
}
|
|
1062
|
+
});
|
|
1063
|
+
each(this.ele, (el) => {
|
|
1064
|
+
el._uiik_resizable = this;
|
|
1054
1065
|
this.initHandle(el);
|
|
1055
1066
|
});
|
|
1056
1067
|
}
|
|
@@ -1064,7 +1075,7 @@ class Resizable extends Uii {
|
|
|
1064
1075
|
//检测
|
|
1065
1076
|
const onPointerDown = opts.onPointerDown;
|
|
1066
1077
|
if (onPointerDown && onPointerDown(ev) === false)
|
|
1067
|
-
return;
|
|
1078
|
+
return true;
|
|
1068
1079
|
let container = panel instanceof SVGGraphicsElement
|
|
1069
1080
|
? closest(panel, (ele) => lowerCase(ele.tagName) === "svg", "parentNode")
|
|
1070
1081
|
: panel.parentElement;
|
|
@@ -1201,8 +1212,8 @@ class Resizable extends Uii {
|
|
|
1201
1212
|
let centerX = x, centerY = y;
|
|
1202
1213
|
const deg = matrixInfo.angle * ONE_ANG;
|
|
1203
1214
|
currentVertex =
|
|
1204
|
-
|
|
1205
|
-
|
|
1215
|
+
vertexBeforeTransform =
|
|
1216
|
+
calcVertex(originW, originH, centerX, centerY, sx, sy, deg);
|
|
1206
1217
|
//计算参考点及斜率
|
|
1207
1218
|
switch (dir) {
|
|
1208
1219
|
case "s":
|
|
@@ -1635,7 +1646,7 @@ class Draggable extends Uii {
|
|
|
1635
1646
|
var _a;
|
|
1636
1647
|
let t = ev.target;
|
|
1637
1648
|
if (!t)
|
|
1638
|
-
return;
|
|
1649
|
+
return true;
|
|
1639
1650
|
//refresh draggableList
|
|
1640
1651
|
if (opts.watch && eleString) {
|
|
1641
1652
|
draggableList = bindTarget.querySelectorAll(eleString);
|
|
@@ -1644,21 +1655,21 @@ class Draggable extends Uii {
|
|
|
1644
1655
|
//find drag dom & handle
|
|
1645
1656
|
let findRs = find(draggableList, el => el.contains(t));
|
|
1646
1657
|
if (!findRs)
|
|
1647
|
-
return;
|
|
1658
|
+
return true;
|
|
1648
1659
|
const dragDom = findRs;
|
|
1649
1660
|
let handle = handleMap.get(dragDom);
|
|
1650
1661
|
if (handle && !handle.contains(t)) {
|
|
1651
|
-
return;
|
|
1662
|
+
return true;
|
|
1652
1663
|
}
|
|
1653
1664
|
//检测
|
|
1654
1665
|
const onPointerDown = opts.onPointerDown;
|
|
1655
1666
|
if (onPointerDown && onPointerDown({ draggable: dragDom }, ev) === false)
|
|
1656
|
-
return;
|
|
1667
|
+
return true;
|
|
1657
1668
|
const filter = opts.filter;
|
|
1658
1669
|
//check filter
|
|
1659
1670
|
if (filter) {
|
|
1660
1671
|
if (some(dragDom.querySelectorAll(filter), ele => ele.contains(t)))
|
|
1661
|
-
return;
|
|
1672
|
+
return true;
|
|
1662
1673
|
}
|
|
1663
1674
|
//用于计算鼠标移动时当前位置
|
|
1664
1675
|
const offsetParent = dragDom instanceof HTMLElement ? dragDom.offsetParent || document.body : dragDom.ownerSVGElement;
|
|
@@ -2207,6 +2218,14 @@ class Rotatable extends Uii {
|
|
|
2207
2218
|
constructor(els, opts) {
|
|
2208
2219
|
super(els, opts);
|
|
2209
2220
|
each(this.ele, (el) => {
|
|
2221
|
+
let tmp = el;
|
|
2222
|
+
if (tmp._uiik_rotatable) {
|
|
2223
|
+
tmp._uiik_rotatable.destroy();
|
|
2224
|
+
return false;
|
|
2225
|
+
}
|
|
2226
|
+
});
|
|
2227
|
+
each(this.ele, (el) => {
|
|
2228
|
+
el._uiik_rotatable = this;
|
|
2210
2229
|
initHandle(this, el, this.opts);
|
|
2211
2230
|
});
|
|
2212
2231
|
}
|
|
@@ -2246,7 +2265,6 @@ function bindHandle(uiik, handle, el, opts) {
|
|
|
2246
2265
|
//bind events
|
|
2247
2266
|
onPointerStart(function (args) {
|
|
2248
2267
|
const { ev } = args;
|
|
2249
|
-
wrapper(el);
|
|
2250
2268
|
const { w, h } = getStyleSize(el);
|
|
2251
2269
|
const { originX, originY } = parseOxy(opts.ox, opts.oy, w, h);
|
|
2252
2270
|
startOx = originX;
|
|
@@ -2494,15 +2512,15 @@ _Selectable__detector = new WeakMap(), _Selectable__lastSelected = new WeakMap()
|
|
|
2494
2512
|
if (filter) {
|
|
2495
2513
|
if (isFunction(filter)) {
|
|
2496
2514
|
if (filter(target))
|
|
2497
|
-
return;
|
|
2515
|
+
return true;
|
|
2498
2516
|
}
|
|
2499
2517
|
else if (some(con.querySelectorAll(filter), (el) => el.contains(target)))
|
|
2500
|
-
return;
|
|
2518
|
+
return true;
|
|
2501
2519
|
}
|
|
2502
2520
|
//检测
|
|
2503
2521
|
const onPointerDown = opts.onPointerDown;
|
|
2504
2522
|
if (onPointerDown && onPointerDown(ev) === false)
|
|
2505
|
-
return;
|
|
2523
|
+
return true;
|
|
2506
2524
|
let originPos = "";
|
|
2507
2525
|
let matrixInfo = getMatrixInfo(currentCStyle);
|
|
2508
2526
|
const startxy = getPointInContainer(ev, con, currentRect, currentCStyle, matrixInfo);
|
|
@@ -3081,7 +3099,7 @@ function newSortable(container, opts) {
|
|
|
3081
3099
|
return new Sortable(container, opts);
|
|
3082
3100
|
}
|
|
3083
3101
|
|
|
3084
|
-
var version = "1.3.0-beta";
|
|
3102
|
+
var version = "1.3.0-beta.1";
|
|
3085
3103
|
var repository = {
|
|
3086
3104
|
type: "git",
|
|
3087
3105
|
url: "https://github.com/holyhigh2/uiik"
|
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* uiik v1.3.0-beta
|
|
2
|
+
* uiik v1.3.0-beta.1
|
|
3
3
|
* A UI interactions kit includes draggable, splittable, rotatable, selectable, etc.
|
|
4
4
|
* https://github.com/holyhigh2/uiik
|
|
5
5
|
* c) 2021-2023 @holyhigh2 may be freely distributed under the MIT license
|
|
@@ -604,7 +604,7 @@
|
|
|
604
604
|
let onPointerStart;
|
|
605
605
|
let onPointerMove;
|
|
606
606
|
let onPointerEnd;
|
|
607
|
-
onPointerDown({
|
|
607
|
+
const toBreak = !!onPointerDown({
|
|
608
608
|
onPointerMove: (pm) => { onPointerMove = pm; },
|
|
609
609
|
onPointerStart: (ps) => { onPointerStart = ps; },
|
|
610
610
|
onPointerEnd: (pe) => { onPointerEnd = pe; },
|
|
@@ -612,6 +612,10 @@
|
|
|
612
612
|
pointX: e.clientX, pointY: e.clientY, target: t,
|
|
613
613
|
currentTarget: el, currentStyle, currentCStyle, currentRect
|
|
614
614
|
});
|
|
615
|
+
if (toBreak) {
|
|
616
|
+
e.preventDefault();
|
|
617
|
+
return false;
|
|
618
|
+
}
|
|
615
619
|
//函数
|
|
616
620
|
const pointerMove = (ev) => {
|
|
617
621
|
const offX = ev.clientX - originPosX;
|
|
@@ -625,7 +629,7 @@
|
|
|
625
629
|
if (hasCursor) {
|
|
626
630
|
setCursor(uiiOptions.cursor.active);
|
|
627
631
|
}
|
|
628
|
-
|
|
632
|
+
onPointerStart && onPointerStart({ ev });
|
|
629
633
|
}
|
|
630
634
|
else {
|
|
631
635
|
ev.preventDefault();
|
|
@@ -652,7 +656,6 @@
|
|
|
652
656
|
document.addEventListener("mouseup", pointerEnd);
|
|
653
657
|
window.addEventListener("blur", pointerEnd);
|
|
654
658
|
e.preventDefault();
|
|
655
|
-
// e.stopPropagation();
|
|
656
659
|
return false;
|
|
657
660
|
}, true);
|
|
658
661
|
}
|
|
@@ -1049,6 +1052,14 @@
|
|
|
1049
1052
|
offset: 0,
|
|
1050
1053
|
}, opts));
|
|
1051
1054
|
collection.each(this.ele, (el) => {
|
|
1055
|
+
let tmp = el;
|
|
1056
|
+
if (tmp._uiik_resizable) {
|
|
1057
|
+
tmp._uiik_resizable.destroy();
|
|
1058
|
+
return false;
|
|
1059
|
+
}
|
|
1060
|
+
});
|
|
1061
|
+
collection.each(this.ele, (el) => {
|
|
1062
|
+
el._uiik_resizable = this;
|
|
1052
1063
|
this.initHandle(el);
|
|
1053
1064
|
});
|
|
1054
1065
|
}
|
|
@@ -1062,7 +1073,7 @@
|
|
|
1062
1073
|
//检测
|
|
1063
1074
|
const onPointerDown = opts.onPointerDown;
|
|
1064
1075
|
if (onPointerDown && onPointerDown(ev) === false)
|
|
1065
|
-
return;
|
|
1076
|
+
return true;
|
|
1066
1077
|
let container = panel instanceof SVGGraphicsElement
|
|
1067
1078
|
? tree.closest(panel, (ele) => string.lowerCase(ele.tagName) === "svg", "parentNode")
|
|
1068
1079
|
: panel.parentElement;
|
|
@@ -1199,8 +1210,8 @@
|
|
|
1199
1210
|
let centerX = x, centerY = y;
|
|
1200
1211
|
const deg = matrixInfo.angle * ONE_ANG;
|
|
1201
1212
|
currentVertex =
|
|
1202
|
-
|
|
1203
|
-
|
|
1213
|
+
vertexBeforeTransform =
|
|
1214
|
+
calcVertex(originW, originH, centerX, centerY, sx, sy, deg);
|
|
1204
1215
|
//计算参考点及斜率
|
|
1205
1216
|
switch (dir) {
|
|
1206
1217
|
case "s":
|
|
@@ -1633,7 +1644,7 @@
|
|
|
1633
1644
|
var _a;
|
|
1634
1645
|
let t = ev.target;
|
|
1635
1646
|
if (!t)
|
|
1636
|
-
return;
|
|
1647
|
+
return true;
|
|
1637
1648
|
//refresh draggableList
|
|
1638
1649
|
if (opts.watch && eleString) {
|
|
1639
1650
|
draggableList = bindTarget.querySelectorAll(eleString);
|
|
@@ -1642,21 +1653,21 @@
|
|
|
1642
1653
|
//find drag dom & handle
|
|
1643
1654
|
let findRs = collection.find(draggableList, el => el.contains(t));
|
|
1644
1655
|
if (!findRs)
|
|
1645
|
-
return;
|
|
1656
|
+
return true;
|
|
1646
1657
|
const dragDom = findRs;
|
|
1647
1658
|
let handle = handleMap.get(dragDom);
|
|
1648
1659
|
if (handle && !handle.contains(t)) {
|
|
1649
|
-
return;
|
|
1660
|
+
return true;
|
|
1650
1661
|
}
|
|
1651
1662
|
//检测
|
|
1652
1663
|
const onPointerDown = opts.onPointerDown;
|
|
1653
1664
|
if (onPointerDown && onPointerDown({ draggable: dragDom }, ev) === false)
|
|
1654
|
-
return;
|
|
1665
|
+
return true;
|
|
1655
1666
|
const filter = opts.filter;
|
|
1656
1667
|
//check filter
|
|
1657
1668
|
if (filter) {
|
|
1658
1669
|
if (collection.some(dragDom.querySelectorAll(filter), ele => ele.contains(t)))
|
|
1659
|
-
return;
|
|
1670
|
+
return true;
|
|
1660
1671
|
}
|
|
1661
1672
|
//用于计算鼠标移动时当前位置
|
|
1662
1673
|
const offsetParent = dragDom instanceof HTMLElement ? dragDom.offsetParent || document.body : dragDom.ownerSVGElement;
|
|
@@ -2205,6 +2216,14 @@
|
|
|
2205
2216
|
constructor(els, opts) {
|
|
2206
2217
|
super(els, opts);
|
|
2207
2218
|
collection.each(this.ele, (el) => {
|
|
2219
|
+
let tmp = el;
|
|
2220
|
+
if (tmp._uiik_rotatable) {
|
|
2221
|
+
tmp._uiik_rotatable.destroy();
|
|
2222
|
+
return false;
|
|
2223
|
+
}
|
|
2224
|
+
});
|
|
2225
|
+
collection.each(this.ele, (el) => {
|
|
2226
|
+
el._uiik_rotatable = this;
|
|
2208
2227
|
initHandle(this, el, this.opts);
|
|
2209
2228
|
});
|
|
2210
2229
|
}
|
|
@@ -2244,7 +2263,6 @@
|
|
|
2244
2263
|
//bind events
|
|
2245
2264
|
onPointerStart(function (args) {
|
|
2246
2265
|
const { ev } = args;
|
|
2247
|
-
wrapper(el);
|
|
2248
2266
|
const { w, h } = getStyleSize(el);
|
|
2249
2267
|
const { originX, originY } = parseOxy(opts.ox, opts.oy, w, h);
|
|
2250
2268
|
startOx = originX;
|
|
@@ -2492,15 +2510,15 @@
|
|
|
2492
2510
|
if (filter) {
|
|
2493
2511
|
if (is.isFunction(filter)) {
|
|
2494
2512
|
if (filter(target))
|
|
2495
|
-
return;
|
|
2513
|
+
return true;
|
|
2496
2514
|
}
|
|
2497
2515
|
else if (collection.some(con.querySelectorAll(filter), (el) => el.contains(target)))
|
|
2498
|
-
return;
|
|
2516
|
+
return true;
|
|
2499
2517
|
}
|
|
2500
2518
|
//检测
|
|
2501
2519
|
const onPointerDown = opts.onPointerDown;
|
|
2502
2520
|
if (onPointerDown && onPointerDown(ev) === false)
|
|
2503
|
-
return;
|
|
2521
|
+
return true;
|
|
2504
2522
|
let originPos = "";
|
|
2505
2523
|
let matrixInfo = getMatrixInfo(currentCStyle);
|
|
2506
2524
|
const startxy = getPointInContainer(ev, con, currentRect, currentCStyle, matrixInfo);
|
|
@@ -3079,7 +3097,7 @@
|
|
|
3079
3097
|
return new Sortable(container, opts);
|
|
3080
3098
|
}
|
|
3081
3099
|
|
|
3082
|
-
var version = "1.3.0-beta";
|
|
3100
|
+
var version = "1.3.0-beta.1";
|
|
3083
3101
|
var repository = {
|
|
3084
3102
|
type: "git",
|
|
3085
3103
|
url: "https://github.com/holyhigh2/uiik"
|
package/package.json
CHANGED
package/types.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare abstract class Uii {
|
|
|
18
18
|
* 销毁uii对象,包括卸载事件、清空元素等
|
|
19
19
|
*/
|
|
20
20
|
destroy(): void;
|
|
21
|
-
addPointerDown(el: Element, pointerDown: (args: Record<string, any>) => void, opts: {
|
|
21
|
+
addPointerDown(el: Element, pointerDown: (args: Record<string, any>) => void | boolean, opts: {
|
|
22
22
|
threshold?: number;
|
|
23
23
|
lockPage?: boolean;
|
|
24
24
|
}): void;
|