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 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
- onPointerMove && onPointerStart({ ev });
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
- vertexBeforeTransform =
1205
- calcVertex(originW, originH, centerX, centerY, sx, sy, deg);
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
- onPointerMove && onPointerStart({ ev });
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
- vertexBeforeTransform =
1203
- calcVertex(originW, originH, centerX, centerY, sx, sy, deg);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uiik",
3
- "version": "1.3.0-beta",
3
+ "version": "1.3.0-beta.1",
4
4
  "description": "A UI interactions kit includes draggable, splittable, rotatable, selectable, etc.",
5
5
  "main": "index.js",
6
6
  "module": "index.esm.js",
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;