@antdv-vue/pro-utils 0.0.0-stage → 2.1.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.
Files changed (174) hide show
  1. package/CHANGELOG.md +123 -0
  2. package/README.md +80 -2
  3. package/dist/autoFocusToFirstChild/index.d.ts +9 -0
  4. package/dist/autoFocusToFirstChild/index.js +36 -0
  5. package/dist/childrenToArray/index.d.ts +7 -0
  6. package/dist/childrenToArray/index.js +8 -0
  7. package/dist/components/CopyToClipboard/copy/index.d.ts +10 -0
  8. package/dist/components/CopyToClipboard/copy/index.js +84 -0
  9. package/dist/components/CopyToClipboard/copy/toggle-selection.d.ts +4 -0
  10. package/dist/components/CopyToClipboard/copy/toggle-selection.js +27 -0
  11. package/dist/components/CopyToClipboard/index.d.ts +14 -0
  12. package/dist/components/CopyToClipboard/index.js +13 -0
  13. package/dist/components/Draggable/Draggable.d.ts +62 -0
  14. package/dist/components/Draggable/Draggable.js +162 -0
  15. package/dist/components/Draggable/DraggableCore.d.ts +40 -0
  16. package/dist/components/Draggable/DraggableCore.js +149 -0
  17. package/dist/components/Draggable/index.d.ts +4 -0
  18. package/dist/components/Draggable/index.js +3 -0
  19. package/dist/components/Draggable/types.d.ts +30 -0
  20. package/dist/components/Draggable/types.js +1 -0
  21. package/dist/components/Draggable/utils/domFns.d.ts +36 -0
  22. package/dist/components/Draggable/utils/domFns.js +165 -0
  23. package/dist/components/Draggable/utils/getPrefix.d.ts +6 -0
  24. package/dist/components/Draggable/utils/getPrefix.js +31 -0
  25. package/dist/components/Draggable/utils/positionFns.d.ts +13 -0
  26. package/dist/components/Draggable/utils/positionFns.js +96 -0
  27. package/dist/components/Draggable/utils/shims.d.ts +7 -0
  28. package/dist/components/Draggable/utils/shims.js +19 -0
  29. package/dist/components/DropdownFooter/index.d.ts +20 -0
  30. package/dist/components/DropdownFooter/index.js +80 -0
  31. package/dist/components/DropdownFooter/style/index.d.ts +8 -0
  32. package/dist/components/DropdownFooter/style/index.js +18 -0
  33. package/dist/components/ErrorBoundary/index.d.ts +25 -0
  34. package/dist/components/ErrorBoundary/index.js +65 -0
  35. package/dist/components/FieldLabel/index.d.ts +31 -0
  36. package/dist/components/FieldLabel/index.js +212 -0
  37. package/dist/components/FieldLabel/style/index.d.ts +8 -0
  38. package/dist/components/FieldLabel/style/index.js +146 -0
  39. package/dist/components/FilterDropdown/index.d.ts +38 -0
  40. package/dist/components/FilterDropdown/index.js +91 -0
  41. package/dist/components/FilterDropdown/style/index.d.ts +8 -0
  42. package/dist/components/FilterDropdown/style/index.js +21 -0
  43. package/dist/components/FormItem/FormItemInput.d.ts +34 -0
  44. package/dist/components/FormItem/FormItemInput.js +163 -0
  45. package/dist/components/FormItem/ItemHolder.d.ts +58 -0
  46. package/dist/components/FormItem/ItemHolder.js +289 -0
  47. package/dist/components/FormItem/index.d.ts +64 -0
  48. package/dist/components/FormItem/index.js +591 -0
  49. package/dist/components/FormList/Field.d.ts +29 -0
  50. package/dist/components/FormList/Field.js +106 -0
  51. package/dist/components/FormList/FieldContext.d.ts +15 -0
  52. package/dist/components/FormList/FieldContext.js +11 -0
  53. package/dist/components/FormList/InternalField.d.ts +51 -0
  54. package/dist/components/FormList/InternalField.js +149 -0
  55. package/dist/components/FormList/ListContext.d.ts +12 -0
  56. package/dist/components/FormList/ListContext.js +11 -0
  57. package/dist/components/FormList/index.d.ts +36 -0
  58. package/dist/components/FormList/index.js +145 -0
  59. package/dist/components/FormList/interface.d.ts +9 -0
  60. package/dist/components/FormList/interface.js +1 -0
  61. package/dist/components/FormList/namePathType.d.ts +9 -0
  62. package/dist/components/FormList/namePathType.js +1 -0
  63. package/dist/components/FormList/utils/index.d.ts +15 -0
  64. package/dist/components/FormList/utils/index.js +37 -0
  65. package/dist/components/InlineErrorFormItem/InlineErrorFormItemPopover.d.ts +21 -0
  66. package/dist/components/InlineErrorFormItem/InlineErrorFormItemPopover.js +95 -0
  67. package/dist/components/InlineErrorFormItem/index.d.ts +14 -0
  68. package/dist/components/InlineErrorFormItem/index.js +44 -0
  69. package/dist/components/InlineErrorFormItem/style/index.d.ts +8 -0
  70. package/dist/components/InlineErrorFormItem/style/index.js +46 -0
  71. package/dist/components/LabelIconTip/index.d.ts +16 -0
  72. package/dist/components/LabelIconTip/index.js +79 -0
  73. package/dist/components/LabelIconTip/style/index.d.ts +8 -0
  74. package/dist/components/LabelIconTip/style/index.js +38 -0
  75. package/dist/components/ProFormContext/index.d.ts +51 -0
  76. package/dist/components/ProFormContext/index.js +11 -0
  77. package/dist/conversionMomentValue/index.d.ts +48 -0
  78. package/dist/conversionMomentValue/index.js +103 -0
  79. package/dist/dateArrayFormatter/index.d.ts +14 -0
  80. package/dist/dateArrayFormatter/index.js +38 -0
  81. package/dist/deepMerge/index.d.ts +4 -0
  82. package/dist/deepMerge/index.js +17 -0
  83. package/dist/genCopyable/index.d.ts +27 -0
  84. package/dist/genCopyable/index.js +82 -0
  85. package/dist/getFieldPropsOrFormItemProps/index.d.ts +18 -0
  86. package/dist/getFieldPropsOrFormItemProps/index.js +15 -0
  87. package/dist/getSlot/index.d.ts +8 -0
  88. package/dist/getSlot/index.js +11 -0
  89. package/dist/hooks/index.d.ts +9 -0
  90. package/dist/hooks/index.js +9 -0
  91. package/dist/hooks/useDebounceFn/index.d.ts +12 -0
  92. package/dist/hooks/useDebounceFn/index.js +34 -0
  93. package/dist/hooks/useDebounceValue/index.d.ts +12 -0
  94. package/dist/hooks/useDebounceValue/index.js +21 -0
  95. package/dist/hooks/useDocumentTitle/index.d.ts +10 -0
  96. package/dist/hooks/useDocumentTitle/index.js +12 -0
  97. package/dist/hooks/useEffect/index.d.ts +6 -0
  98. package/dist/hooks/useEffect/index.js +17 -0
  99. package/dist/hooks/useFetchData/index.d.ts +12 -0
  100. package/dist/hooks/useFetchData/index.js +35 -0
  101. package/dist/hooks/useLayoutEffect/index.d.ts +6 -0
  102. package/dist/hooks/useLayoutEffect/index.js +21 -0
  103. package/dist/hooks/useMemo/index.d.ts +6 -0
  104. package/dist/hooks/useMemo/index.js +13 -0
  105. package/dist/hooks/useState/index.d.ts +6 -0
  106. package/dist/hooks/useState/index.js +11 -0
  107. package/dist/index.d.ts +61 -0
  108. package/dist/index.js +58 -0
  109. package/dist/isBrowser/index.d.ts +4 -0
  110. package/dist/isBrowser/index.js +8 -0
  111. package/dist/isDropdownValueType/index.d.ts +4 -0
  112. package/dist/isDropdownValueType/index.js +8 -0
  113. package/dist/isImg/index.d.ts +5 -0
  114. package/dist/isImg/index.js +7 -0
  115. package/dist/isNil/index.d.ts +4 -0
  116. package/dist/isNil/index.js +6 -0
  117. package/dist/isUrl/index.d.ts +9 -0
  118. package/dist/isUrl/index.js +17 -0
  119. package/dist/merge/index.d.ts +9 -0
  120. package/dist/merge/index.js +20 -0
  121. package/dist/nanoid/index.d.ts +9 -0
  122. package/dist/nanoid/index.js +25 -0
  123. package/dist/normalizeProps/index.d.ts +6 -0
  124. package/dist/normalizeProps/index.js +6 -0
  125. package/dist/omitBoolean/index.d.ts +9 -0
  126. package/dist/omitBoolean/index.js +11 -0
  127. package/dist/omitUndefined/index.d.ts +5 -0
  128. package/dist/omitUndefined/index.js +11 -0
  129. package/dist/omitUndefinedAndEmptyArr/index.d.ts +4 -0
  130. package/dist/omitUndefinedAndEmptyArr/index.js +12 -0
  131. package/dist/parseValueToDay/index.d.ts +7 -0
  132. package/dist/parseValueToDay/index.js +21 -0
  133. package/dist/pickProFormItemProps/index.d.ts +34 -0
  134. package/dist/pickProFormItemProps/index.js +42 -0
  135. package/dist/pickProProps/index.d.ts +4 -0
  136. package/dist/pickProProps/index.js +14 -0
  137. package/dist/pro-utils.esm.js +3672 -0
  138. package/dist/proFieldParsingText/index.d.ts +25 -0
  139. package/dist/proFieldParsingText/index.js +100 -0
  140. package/dist/runFunction/index.d.ts +5 -0
  141. package/dist/runFunction/index.js +8 -0
  142. package/dist/stringify/index.d.ts +7 -0
  143. package/dist/stringify/index.js +10 -0
  144. package/dist/transformBooleanProps/index.d.ts +4 -0
  145. package/dist/transformBooleanProps/index.js +9 -0
  146. package/dist/transformKeySubmitValue/index.d.ts +24 -0
  147. package/dist/transformKeySubmitValue/index.js +200 -0
  148. package/dist/transformVueNodeType/index.d.ts +14 -0
  149. package/dist/transformVueNodeType/index.js +14 -0
  150. package/dist/typing.d.ts +562 -0
  151. package/dist/typing.js +1 -0
  152. package/dist/useEditableArray/components/CancelEditableAction.d.ts +47 -0
  153. package/dist/useEditableArray/components/CancelEditableAction.js +90 -0
  154. package/dist/useEditableArray/components/DeleteEditableAction.d.ts +33 -0
  155. package/dist/useEditableArray/components/DeleteEditableAction.js +63 -0
  156. package/dist/useEditableArray/components/SaveEditableAction.d.ts +33 -0
  157. package/dist/useEditableArray/components/SaveEditableAction.js +79 -0
  158. package/dist/useEditableArray/index.d.ts +66 -0
  159. package/dist/useEditableArray/index.js +584 -0
  160. package/dist/useEditableArray/typing.d.ts +130 -0
  161. package/dist/useEditableArray/typing.js +1 -0
  162. package/dist/useEditableMap/index.d.ts +32 -0
  163. package/dist/useEditableMap/index.js +147 -0
  164. package/dist/useMediaQuery/index.d.ts +44 -0
  165. package/dist/useMediaQuery/index.js +99 -0
  166. package/dist/useMediaQuery/query.d.ts +6 -0
  167. package/dist/useMediaQuery/query.js +17 -0
  168. package/dist/useMountMergeState/index.d.ts +11 -0
  169. package/dist/useMountMergeState/index.js +26 -0
  170. package/dist/usePrevious/index.d.ts +6 -0
  171. package/dist/usePrevious/index.js +11 -0
  172. package/dist/useRefFunction/index.d.ts +4 -0
  173. package/dist/useRefFunction/index.js +11 -0
  174. package/package.json +69 -3
@@ -0,0 +1,40 @@
1
+ import { DraggableEventHandler } from "./types.js";
2
+ import * as _$vue from "vue";
3
+ import { ShallowRef } from "vue";
4
+ import { CustomSlotsType, VueNode } from "@v-c/util/dist/type";
5
+
6
+ //#region src/components/Draggable/DraggableCore.d.ts
7
+ interface DraggableCoreDefaultProps {
8
+ allowAnyClick?: boolean;
9
+ allowMobileScroll?: boolean;
10
+ disabled?: boolean;
11
+ enableUserSelectHack?: boolean;
12
+ scale?: number;
13
+ }
14
+ type DraggableCoreProps = DraggableCoreDefaultProps & {
15
+ cancel?: string;
16
+ offsetParent?: HTMLElement;
17
+ grid?: [number, number];
18
+ nodeRef?: ShallowRef<HTMLElement | null> | null;
19
+ handle?: string;
20
+ };
21
+ interface DraggableCoreEmits {
22
+ drag: DraggableEventHandler;
23
+ mousedown: (e: MouseEvent) => void;
24
+ start: DraggableEventHandler;
25
+ stop: DraggableEventHandler;
26
+ [key: string]: (...args: any[]) => void;
27
+ }
28
+ declare const DraggableCore: _$vue.DefineSetupFnComponent<DraggableCoreProps, DraggableCoreEmits, CustomSlotsType<{
29
+ default?: () => VueNode[];
30
+ }>, DraggableCoreDefaultProps & {
31
+ cancel?: string;
32
+ offsetParent?: HTMLElement;
33
+ grid?: [number, number];
34
+ nodeRef?: ShallowRef<HTMLElement | null> | null;
35
+ handle?: string;
36
+ } & {
37
+ [x: `on${Capitalize<string>}`]: ((...args: any[]) => any) | undefined;
38
+ }, _$vue.PublicProps>;
39
+ //#endregion
40
+ export { DraggableCoreDefaultProps, DraggableCoreEmits, DraggableCoreProps, DraggableCore as default };
@@ -0,0 +1,149 @@
1
+ import { useState } from "../../hooks/useState/index.js";
2
+ import { addEvent, addUserSelectStyles, getTouchIdentifier, matchesSelectorAndParentsTo, removeEvent, scheduleRemoveUserSelectStyles } from "./utils/domFns.js";
3
+ import { createCoreData, getControlPosition, snapToGrid } from "./utils/positionFns.js";
4
+ import { cloneVNode, defineComponent, getCurrentInstance, onMounted, onUnmounted, shallowRef } from "vue";
5
+ import findDOMNode from "@v-c/util/dist/Dom/findDOMNode";
6
+ //#region src/components/Draggable/DraggableCore.tsx
7
+ const eventsFor = {
8
+ touch: {
9
+ start: "touchstart",
10
+ move: "touchmove",
11
+ stop: "touchend"
12
+ },
13
+ mouse: {
14
+ start: "mousedown",
15
+ move: "mousemove",
16
+ stop: "mouseup"
17
+ }
18
+ };
19
+ const DraggableCore = /* @__PURE__ */ defineComponent((props, { slots, expose, emit }) => {
20
+ const touchIdentifier = shallowRef(null);
21
+ const dragEventFor = shallowRef(eventsFor.mouse);
22
+ const [lastX, setLastX] = useState(NaN);
23
+ const [lastY, setLastY] = useState(NaN);
24
+ const [dragging, setDragging] = useState(false);
25
+ const proxy = getCurrentInstance();
26
+ const mountedNode = shallowRef(null);
27
+ const activeDocument = shallowRef(null);
28
+ const getNode = () => {
29
+ if (props.nodeRef?.value) return props.nodeRef.value;
30
+ if (!proxy?.proxy) return null;
31
+ return findDOMNode(proxy.proxy);
32
+ };
33
+ const removeDragEvents = () => {
34
+ const ownerDocument = activeDocument.value;
35
+ if (!ownerDocument) return;
36
+ removeEvent(ownerDocument, eventsFor.mouse.move, handleDrag);
37
+ removeEvent(ownerDocument, eventsFor.touch.move, handleDrag);
38
+ removeEvent(ownerDocument, eventsFor.mouse.stop, handleDragStop);
39
+ removeEvent(ownerDocument, eventsFor.touch.stop, handleDragStop);
40
+ removeEvent(ownerDocument, "touchcancel", handleDragStop);
41
+ if (props.enableUserSelectHack !== false) scheduleRemoveUserSelectStyles(ownerDocument);
42
+ activeDocument.value = null;
43
+ };
44
+ function handleDrag(e) {
45
+ const position = getControlPosition(e, touchIdentifier.value, proxy, props.scale ?? 1);
46
+ if (position == null) return;
47
+ let { x = 0, y = 0 } = position;
48
+ if (Array.isArray(props.grid)) {
49
+ let deltaX = x - lastX.value;
50
+ let deltaY = y - lastY.value;
51
+ [deltaX, deltaY] = snapToGrid(props.grid, deltaX, deltaY);
52
+ if (!deltaX && !deltaY) return;
53
+ x = lastX.value + deltaX;
54
+ y = lastY.value + deltaY;
55
+ }
56
+ emit("drag", e, createCoreData(proxy, x, y));
57
+ setLastX(x);
58
+ setLastY(y);
59
+ }
60
+ function handleDragStop(e) {
61
+ if (!dragging.value) return;
62
+ const position = getControlPosition(e, touchIdentifier.value, proxy, props.scale ?? 1);
63
+ let { x, y } = position ?? {
64
+ x: lastX.value,
65
+ y: lastY.value
66
+ };
67
+ if (position && Array.isArray(props.grid)) {
68
+ let deltaX = x - lastX.value || 0;
69
+ let deltaY = y - lastY.value || 0;
70
+ [deltaX, deltaY] = snapToGrid(props.grid, deltaX, deltaY);
71
+ x = lastX.value + deltaX;
72
+ y = lastY.value + deltaY;
73
+ }
74
+ emit("stop", e, createCoreData(proxy, x, y));
75
+ setDragging(false);
76
+ setLastX(NaN);
77
+ setLastY(NaN);
78
+ touchIdentifier.value = null;
79
+ removeDragEvents();
80
+ }
81
+ const handleDragStart = (e) => {
82
+ if (e instanceof MouseEvent) emit("mousedown", e);
83
+ if (!props.allowAnyClick && e instanceof MouseEvent && (e.button !== 0 || e.ctrlKey)) return false;
84
+ const node = getNode();
85
+ if (!node) return false;
86
+ const { ownerDocument } = node;
87
+ if (props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || props.handle && !matchesSelectorAndParentsTo(e.target, props.handle, node) || props.cancel && matchesSelectorAndParentsTo(e.target, props.cancel, node)) return false;
88
+ if (e.type === "touchstart" && !props.allowMobileScroll) e.preventDefault();
89
+ touchIdentifier.value = getTouchIdentifier(e);
90
+ const position = getControlPosition(e, touchIdentifier.value, proxy, props.scale ?? 1);
91
+ if (position == null) return false;
92
+ const { x, y } = position;
93
+ emit("start", e, createCoreData(proxy, x, y));
94
+ if (props.enableUserSelectHack !== false) addUserSelectStyles(ownerDocument);
95
+ activeDocument.value = ownerDocument;
96
+ setDragging(true);
97
+ setLastX(x);
98
+ setLastY(y);
99
+ addEvent(ownerDocument, dragEventFor.value.move, handleDrag);
100
+ addEvent(ownerDocument, dragEventFor.value.stop, handleDragStop);
101
+ if (dragEventFor.value === eventsFor.touch) addEvent(ownerDocument, "touchcancel", handleDragStop);
102
+ };
103
+ const handleTouchStart = (e) => {
104
+ dragEventFor.value = eventsFor.touch;
105
+ return handleDragStart(e);
106
+ };
107
+ onMounted(() => {
108
+ mountedNode.value = getNode();
109
+ if (mountedNode.value) addEvent(mountedNode.value, eventsFor.touch.start, handleTouchStart, { passive: false });
110
+ });
111
+ onUnmounted(() => {
112
+ if (mountedNode.value) removeEvent(mountedNode.value, eventsFor.touch.start, handleTouchStart, { passive: false });
113
+ removeDragEvents();
114
+ });
115
+ expose({
116
+ lastX,
117
+ lastY
118
+ });
119
+ return () => {
120
+ const [children] = slots.default?.();
121
+ return cloneVNode(children, { onMousedown: (e) => {
122
+ dragEventFor.value = eventsFor.mouse;
123
+ return handleDragStart(e);
124
+ } });
125
+ };
126
+ }, {
127
+ name: "DraggableCore",
128
+ inheritAttrs: false,
129
+ props: [
130
+ "allowAnyClick",
131
+ "allowMobileScroll",
132
+ "cancel",
133
+ "disabled",
134
+ "enableUserSelectHack",
135
+ "grid",
136
+ "handle",
137
+ "nodeRef",
138
+ "offsetParent",
139
+ "scale"
140
+ ],
141
+ emits: [
142
+ "drag",
143
+ "mousedown",
144
+ "start",
145
+ "stop"
146
+ ]
147
+ });
148
+ //#endregion
149
+ export { DraggableCore as default };
@@ -0,0 +1,4 @@
1
+ import { Bounds, ControlPosition, DraggableData, DraggableEvent, DraggableEventHandler, EventHandler, MouseTouchEvent, PositionOffsetControlPosition } from "./types.js";
2
+ import DraggableCore, { DraggableCoreProps } from "./DraggableCore.js";
3
+ import Draggable, { DraggableProps } from "./Draggable.js";
4
+ export { Bounds, ControlPosition, Draggable, DraggableCore, type DraggableCoreProps, DraggableData, DraggableEvent, DraggableEventHandler, type DraggableProps, EventHandler, MouseTouchEvent, PositionOffsetControlPosition };
@@ -0,0 +1,3 @@
1
+ import DraggableCore from "./DraggableCore.js";
2
+ import Draggable from "./Draggable.js";
3
+ export { Draggable, DraggableCore };
@@ -0,0 +1,30 @@
1
+ //#region src/components/Draggable/types.d.ts
2
+ interface DraggableData {
3
+ node: HTMLElement;
4
+ x: number;
5
+ y: number;
6
+ deltaX: number;
7
+ deltaY: number;
8
+ lastX: number;
9
+ lastY: number;
10
+ }
11
+ type DraggableEvent = MouseEvent | TouchEvent;
12
+ type DraggableEventHandler = (e: DraggableEvent, data: DraggableData) => void;
13
+ interface Bounds {
14
+ left?: number;
15
+ top?: number;
16
+ right?: number;
17
+ bottom?: number;
18
+ }
19
+ interface ControlPosition {
20
+ x: number;
21
+ y: number;
22
+ }
23
+ interface PositionOffsetControlPosition {
24
+ x: number | string;
25
+ y: number | string;
26
+ }
27
+ type EventHandler<T> = (e: T) => void | false;
28
+ type MouseTouchEvent = MouseEvent | TouchEvent;
29
+ //#endregion
30
+ export { Bounds, ControlPosition, DraggableData, DraggableEvent, DraggableEventHandler, EventHandler, MouseTouchEvent, PositionOffsetControlPosition };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,36 @@
1
+ import { ControlPosition, MouseTouchEvent, PositionOffsetControlPosition } from "../types.js";
2
+
3
+ //#region src/components/Draggable/utils/domFns.d.ts
4
+ type EventListenerLike = (event: never) => void | false;
5
+ declare function matchesSelector(el: Node, selector: string): boolean;
6
+ declare function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode: Node): boolean;
7
+ declare function addEvent(el: Node | null | undefined, event: string, handler: EventListenerLike, inputOptions?: AddEventListenerOptions): void;
8
+ declare function removeEvent(el: Node | null | undefined, event: string, handler: EventListenerLike, inputOptions?: AddEventListenerOptions): void;
9
+ declare function outerHeight(node: HTMLElement): number;
10
+ declare function outerWidth(node: HTMLElement): number;
11
+ declare function innerHeight(node: HTMLElement): number;
12
+ declare function innerWidth(node: HTMLElement): number;
13
+ interface EventWithOffset {
14
+ clientX: number;
15
+ clientY: number;
16
+ }
17
+ declare function offsetXYFromParent(evt: EventWithOffset, offsetParent: HTMLElement, scale: number): ControlPosition;
18
+ declare function createCSSTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): {
19
+ [key: string]: string;
20
+ };
21
+ declare function createSVGTransform(controlPos: ControlPosition, positionOffset: PositionOffsetControlPosition): string;
22
+ declare function getTranslation({
23
+ x,
24
+ y
25
+ }: ControlPosition, positionOffset: PositionOffsetControlPosition, unitSuffix: string): string;
26
+ declare function getTouch(e: MouseTouchEvent, identifier: number): {
27
+ clientX: number;
28
+ clientY: number;
29
+ } | null | undefined;
30
+ declare function getTouchIdentifier(e: MouseTouchEvent): number | undefined;
31
+ declare function addUserSelectStyles(doc: Document | null | undefined): void;
32
+ declare function scheduleRemoveUserSelectStyles(doc: Document | null | undefined): void;
33
+ declare function addClassName(el: HTMLElement, className: string): void;
34
+ declare function removeClassName(el: HTMLElement, className: string): void;
35
+ //#endregion
36
+ export { addClassName, addEvent, addUserSelectStyles, createCSSTransform, createSVGTransform, getTouch, getTouchIdentifier, getTranslation, innerHeight, innerWidth, matchesSelector, matchesSelectorAndParentsTo, offsetXYFromParent, outerHeight, outerWidth, removeClassName, removeEvent, scheduleRemoveUserSelectStyles };
@@ -0,0 +1,165 @@
1
+ import getPrefix_default, { browserPrefixToKey } from "./getPrefix.js";
2
+ import { findInArray, int, isFunction } from "./shims.js";
3
+ //#region src/components/Draggable/utils/domFns.ts
4
+ let matchesSelectorFunc = "";
5
+ const userSelectStates = /* @__PURE__ */ new WeakMap();
6
+ function matchesSelector(el, selector) {
7
+ if (!matchesSelectorFunc) matchesSelectorFunc = findInArray([
8
+ "matches",
9
+ "webkitMatchesSelector",
10
+ "mozMatchesSelector",
11
+ "msMatchesSelector",
12
+ "oMatchesSelector"
13
+ ], (method) => {
14
+ return isFunction(el[method]);
15
+ }) ?? "";
16
+ const matchFn = el[matchesSelectorFunc];
17
+ if (!isFunction(matchFn)) return false;
18
+ return Boolean(matchFn.call(el, selector));
19
+ }
20
+ function matchesSelectorAndParentsTo(el, selector, baseNode) {
21
+ let node = el;
22
+ do {
23
+ if (matchesSelector(node, selector)) return true;
24
+ if (node === baseNode) return false;
25
+ node = node.parentNode;
26
+ } while (node);
27
+ return false;
28
+ }
29
+ function addEvent(el, event, handler, inputOptions) {
30
+ if (!el) return;
31
+ const options = {
32
+ capture: true,
33
+ ...inputOptions
34
+ };
35
+ const listener = handler;
36
+ if (el.addEventListener) el.addEventListener(event, listener, options);
37
+ else if (el.attachEvent) el.attachEvent(`on${event}`, listener);
38
+ else el[`on${event}`] = listener;
39
+ }
40
+ function removeEvent(el, event, handler, inputOptions) {
41
+ if (!el) return;
42
+ const options = {
43
+ capture: true,
44
+ ...inputOptions
45
+ };
46
+ const listener = handler;
47
+ if (el.removeEventListener) el.removeEventListener(event, listener, options);
48
+ else if (el.detachEvent) el.detachEvent(`on${event}`, listener);
49
+ else el[`on${event}`] = null;
50
+ }
51
+ function outerHeight(node) {
52
+ let height = node.clientHeight;
53
+ const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
54
+ height += int(computedStyle.borderTopWidth);
55
+ height += int(computedStyle.borderBottomWidth);
56
+ return height;
57
+ }
58
+ function outerWidth(node) {
59
+ let width = node.clientWidth;
60
+ const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
61
+ width += int(computedStyle.borderLeftWidth);
62
+ width += int(computedStyle.borderRightWidth);
63
+ return width;
64
+ }
65
+ function innerHeight(node) {
66
+ let height = node.clientHeight;
67
+ const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
68
+ height -= int(computedStyle.paddingTop);
69
+ height -= int(computedStyle.paddingBottom);
70
+ return height;
71
+ }
72
+ function innerWidth(node) {
73
+ let width = node.clientWidth;
74
+ const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);
75
+ width -= int(computedStyle.paddingLeft);
76
+ width -= int(computedStyle.paddingRight);
77
+ return width;
78
+ }
79
+ function offsetXYFromParent(evt, offsetParent, scale) {
80
+ const offsetParentRect = offsetParent === offsetParent.ownerDocument.body ? {
81
+ left: 0,
82
+ top: 0
83
+ } : offsetParent.getBoundingClientRect();
84
+ return {
85
+ x: (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale,
86
+ y: (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale
87
+ };
88
+ }
89
+ function createCSSTransform(controlPos, positionOffset) {
90
+ const translation = getTranslation(controlPos, positionOffset, "px");
91
+ return { [browserPrefixToKey("transform", getPrefix_default)]: translation };
92
+ }
93
+ function createSVGTransform(controlPos, positionOffset) {
94
+ return getTranslation(controlPos, positionOffset, "");
95
+ }
96
+ function getTranslation({ x, y }, positionOffset, unitSuffix) {
97
+ let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;
98
+ if (positionOffset) translation = `translate(${`${typeof positionOffset.x === "string" ? positionOffset.x : positionOffset.x + unitSuffix}`}, ${`${typeof positionOffset.y === "string" ? positionOffset.y : positionOffset.y + unitSuffix}`})${translation}`;
99
+ return translation;
100
+ }
101
+ function getTouch(e, identifier) {
102
+ if (!("targetTouches" in e)) return null;
103
+ return e.targetTouches && findInArray(e.targetTouches, (touch) => identifier === touch.identifier) || e.changedTouches && findInArray(e.changedTouches, (touch) => identifier === touch.identifier);
104
+ }
105
+ function getTouchIdentifier(e) {
106
+ if (!("targetTouches" in e)) return void 0;
107
+ if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;
108
+ if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;
109
+ }
110
+ function addUserSelectStyles(doc) {
111
+ if (!doc) return;
112
+ let styleEl = doc.getElementById("vue-draggable-style-el");
113
+ if (!styleEl) {
114
+ styleEl = doc.createElement("style");
115
+ styleEl.id = "vue-draggable-style-el";
116
+ styleEl.textContent = `.vue-draggable-transparent-selection *::-moz-selection {all: inherit;}\n.vue-draggable-transparent-selection *::selection {all: inherit;}\n`;
117
+ doc.getElementsByTagName("head")[0].appendChild(styleEl);
118
+ }
119
+ if (doc.body) {
120
+ const state = userSelectStates.get(doc) ?? {
121
+ count: 0,
122
+ existed: doc.body.classList.contains("vue-draggable-transparent-selection")
123
+ };
124
+ state.count += 1;
125
+ userSelectStates.set(doc, state);
126
+ addClassName(doc.body, "vue-draggable-transparent-selection");
127
+ }
128
+ }
129
+ function scheduleRemoveUserSelectStyles(doc) {
130
+ if (!doc) return;
131
+ const state = userSelectStates.get(doc);
132
+ if (!state) return;
133
+ state.count = Math.max(0, state.count - 1);
134
+ if (state.count > 0) return;
135
+ const removeClass = !state.existed;
136
+ const removeIfIdle = () => {
137
+ if (userSelectStates.get(doc) !== state || state.count > 0) return;
138
+ userSelectStates.delete(doc);
139
+ removeUserSelectStyles(doc, removeClass);
140
+ };
141
+ if (window.requestAnimationFrame) window.requestAnimationFrame(removeIfIdle);
142
+ else removeIfIdle();
143
+ }
144
+ function removeUserSelectStyles(doc, removeClass) {
145
+ if (!doc) return;
146
+ try {
147
+ if (doc.body && removeClass) removeClassName(doc.body, "vue-draggable-transparent-selection");
148
+ const ieSelection = doc.selection;
149
+ if (ieSelection) ieSelection.empty();
150
+ else {
151
+ const selection = (doc.defaultView || window).getSelection();
152
+ if (selection && selection.type !== "Caret") selection.removeAllRanges();
153
+ }
154
+ } catch {}
155
+ }
156
+ function addClassName(el, className) {
157
+ if (el.classList) el.classList.add(className);
158
+ else if (!el.className.match(new RegExp(`(?:^|\\s)${className}(?!\\S)`))) el.className += ` ${className}`;
159
+ }
160
+ function removeClassName(el, className) {
161
+ if (el.classList) el.classList.remove(className);
162
+ else el.className = el.className.replace(new RegExp(`(?:^|\\s)${className}(?!\\S)`, "g"), "");
163
+ }
164
+ //#endregion
165
+ export { addClassName, addEvent, addUserSelectStyles, createCSSTransform, createSVGTransform, getTouch, getTouchIdentifier, getTranslation, innerHeight, innerWidth, matchesSelector, matchesSelectorAndParentsTo, offsetXYFromParent, outerHeight, outerWidth, removeClassName, removeEvent, scheduleRemoveUserSelectStyles };
@@ -0,0 +1,6 @@
1
+ //#region src/components/Draggable/utils/getPrefix.d.ts
2
+ declare function getPrefix(prop?: string): string;
3
+ declare function browserPrefixToKey(prop: string, prefix: string): string;
4
+ declare const _default: string;
5
+ //#endregion
6
+ export { browserPrefixToKey, _default as default, getPrefix };
@@ -0,0 +1,31 @@
1
+ //#region src/components/Draggable/utils/getPrefix.ts
2
+ const prefixes = [
3
+ "Moz",
4
+ "Webkit",
5
+ "O",
6
+ "ms"
7
+ ];
8
+ function getPrefix(prop = "transform") {
9
+ if (typeof window === "undefined") return "";
10
+ const style = window.document?.documentElement?.style;
11
+ if (!style) return "";
12
+ if (prop in style) return "";
13
+ for (let i = 0; i < prefixes.length; i++) if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];
14
+ return "";
15
+ }
16
+ function browserPrefixToKey(prop, prefix) {
17
+ return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;
18
+ }
19
+ function kebabToTitleCase(str) {
20
+ let out = "";
21
+ let shouldCapitalize = true;
22
+ for (let i = 0; i < str.length; i++) if (shouldCapitalize) {
23
+ out += str[i].toUpperCase();
24
+ shouldCapitalize = false;
25
+ } else if (str[i] === "-") shouldCapitalize = true;
26
+ else out += str[i];
27
+ return out;
28
+ }
29
+ var getPrefix_default = getPrefix();
30
+ //#endregion
31
+ export { browserPrefixToKey, getPrefix_default as default, getPrefix };
@@ -0,0 +1,13 @@
1
+ import { ControlPosition, DraggableData, MouseTouchEvent } from "../types.js";
2
+ import { ComponentInternalInstance } from "vue";
3
+
4
+ //#region src/components/Draggable/utils/positionFns.d.ts
5
+ declare function getBoundPosition(draggable: ComponentInternalInstance | null, x: number, y: number): [number, number];
6
+ declare function snapToGrid(grid: [number, number], pendingX: number, pendingY: number): [number, number];
7
+ declare function canDragX(axis: 'both' | 'x' | 'y' | 'none'): boolean;
8
+ declare function canDragY(axis: 'both' | 'x' | 'y' | 'none'): boolean;
9
+ declare function getControlPosition(e: MouseTouchEvent, touchIdentifier: number | null | undefined, draggableCore: ComponentInternalInstance | null, scale?: number): ControlPosition | null;
10
+ declare function createCoreData(draggable: ComponentInternalInstance | null, x: number, y: number): DraggableData;
11
+ declare function createDraggableData(draggable: ComponentInternalInstance | null, coreData: DraggableData): DraggableData;
12
+ //#endregion
13
+ export { canDragX, canDragY, createCoreData, createDraggableData, getBoundPosition, getControlPosition, snapToGrid };
@@ -0,0 +1,96 @@
1
+ import { int, isNum } from "./shims.js";
2
+ import { getTouch, innerHeight, innerWidth, offsetXYFromParent, outerHeight, outerWidth } from "./domFns.js";
3
+ import findDOMNode from "@v-c/util/dist/Dom/findDOMNode";
4
+ //#region src/components/Draggable/utils/positionFns.ts
5
+ function getBoundPosition(draggable, x, y) {
6
+ if (!draggable?.props.bounds) return [x, y];
7
+ let { bounds } = draggable.props;
8
+ bounds = typeof bounds === "string" ? bounds : cloneBounds(bounds);
9
+ const node = findDOMNode(draggable.ctx);
10
+ if (typeof bounds === "string") {
11
+ const { ownerDocument } = node;
12
+ const ownerWindow = ownerDocument.defaultView;
13
+ if (!ownerWindow) throw new Error("Cannot resolve the owner window of the draggable node.");
14
+ let boundNode;
15
+ if (bounds === "parent") boundNode = node.parentNode;
16
+ else boundNode = node.getRootNode().querySelector(bounds);
17
+ if (!(boundNode instanceof ownerWindow.HTMLElement)) throw new TypeError(`Bounds selector "${bounds}" could not find an element.`);
18
+ const boundNodeEl = boundNode;
19
+ const nodeStyle = ownerWindow.getComputedStyle(node);
20
+ const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);
21
+ bounds = {
22
+ left: -node.offsetLeft + int(boundNodeStyle.paddingLeft) + int(nodeStyle.marginLeft),
23
+ top: -node.offsetTop + int(boundNodeStyle.paddingTop) + int(nodeStyle.marginTop),
24
+ right: innerWidth(boundNodeEl) - outerWidth(node) - node.offsetLeft + int(boundNodeStyle.paddingRight) - int(nodeStyle.marginRight),
25
+ bottom: innerHeight(boundNodeEl) - outerHeight(node) - node.offsetTop + int(boundNodeStyle.paddingBottom) - int(nodeStyle.marginBottom)
26
+ };
27
+ }
28
+ if (isNum(bounds.right)) x = Math.min(x, bounds.right);
29
+ if (isNum(bounds.bottom)) y = Math.min(y, bounds.bottom);
30
+ if (isNum(bounds.left)) x = Math.max(x, bounds.left);
31
+ if (isNum(bounds.top)) y = Math.max(y, bounds.top);
32
+ return [x, y];
33
+ }
34
+ function snapToGrid(grid, pendingX, pendingY) {
35
+ return [Math.round(pendingX / grid[0]) * grid[0], Math.round(pendingY / grid[1]) * grid[1]];
36
+ }
37
+ function canDragX(axis) {
38
+ return axis === "both" || axis === "x";
39
+ }
40
+ function canDragY(axis) {
41
+ return axis === "both" || axis === "y";
42
+ }
43
+ function getControlPosition(e, touchIdentifier, draggableCore, scale = 1) {
44
+ const touchObj = typeof touchIdentifier === "number" ? getTouch(e, touchIdentifier) : null;
45
+ if (typeof touchIdentifier === "number" && !touchObj) return null;
46
+ const node = findDOMNode(draggableCore.ctx);
47
+ const offsetParent = draggableCore?.props.offsetParent || node.offsetParent || node.ownerDocument.body;
48
+ const eventPosition = touchObj || ("clientX" in e ? e : null);
49
+ if (!eventPosition) return null;
50
+ return offsetXYFromParent(eventPosition, offsetParent, scale);
51
+ }
52
+ function createCoreData(draggable, x, y) {
53
+ const isStart = !isNum(draggable?.exposed?.lastX.value);
54
+ const node = findDOMNode(draggable.ctx);
55
+ if (isStart) return {
56
+ node,
57
+ deltaX: 0,
58
+ deltaY: 0,
59
+ lastX: x,
60
+ lastY: y,
61
+ x,
62
+ y
63
+ };
64
+ else return {
65
+ node,
66
+ deltaX: x - draggable?.exposed?.lastX.value,
67
+ deltaY: y - draggable?.exposed?.lastY.value,
68
+ lastX: draggable?.exposed?.lastX.value,
69
+ lastY: draggable?.exposed?.lastY.value,
70
+ x,
71
+ y
72
+ };
73
+ }
74
+ function createDraggableData(draggable, coreData) {
75
+ const currentX = (draggable?.exposed)?.x.value ?? 0;
76
+ const currentY = (draggable?.exposed)?.y.value ?? 0;
77
+ return {
78
+ node: coreData.node,
79
+ x: currentX + coreData.deltaX,
80
+ y: currentY + coreData.deltaY,
81
+ deltaX: coreData.deltaX,
82
+ deltaY: coreData.deltaY,
83
+ lastX: currentX,
84
+ lastY: currentY
85
+ };
86
+ }
87
+ function cloneBounds(bounds) {
88
+ return {
89
+ left: bounds.left,
90
+ top: bounds.top,
91
+ right: bounds.right,
92
+ bottom: bounds.bottom
93
+ };
94
+ }
95
+ //#endregion
96
+ export { canDragX, canDragY, createCoreData, createDraggableData, getBoundPosition, getControlPosition, snapToGrid };
@@ -0,0 +1,7 @@
1
+ //#region src/components/Draggable/utils/shims.d.ts
2
+ declare function findInArray<T>(array: ArrayLike<T>, callback: (value: T, index: number, array: ArrayLike<T>) => unknown): T | undefined;
3
+ declare function isFunction(func: unknown): func is (...args: unknown[]) => unknown;
4
+ declare function isNum(num: unknown): num is number;
5
+ declare function int(a: string): number;
6
+ //#endregion
7
+ export { findInArray, int, isFunction, isNum };
@@ -0,0 +1,19 @@
1
+ //#region src/components/Draggable/utils/shims.ts
2
+ function findInArray(array, callback) {
3
+ for (let i = 0, length = array.length; i < length; i++) if (callback.apply(callback, [
4
+ array[i],
5
+ i,
6
+ array
7
+ ])) return array[i];
8
+ }
9
+ function isFunction(func) {
10
+ return typeof func === "function" || Object.prototype.toString.call(func) === "[object Function]";
11
+ }
12
+ function isNum(num) {
13
+ return typeof num === "number" && !Number.isNaN(num);
14
+ }
15
+ function int(a) {
16
+ return Number.parseInt(a, 10);
17
+ }
18
+ //#endregion
19
+ export { findInArray, int, isFunction, isNum };
@@ -0,0 +1,20 @@
1
+ import { VueNode as VueNode$1 } from "../../typing.js";
2
+ import * as _$vue from "vue";
3
+ import { VNode } from "vue";
4
+ import { CustomSlotsType } from "@v-c/util/dist/type";
5
+
6
+ //#region src/components/DropdownFooter/index.d.ts
7
+ type LightFilterFooterRender = ((onConfirm?: (e?: MouseEvent) => void, onClear?: (e?: MouseEvent) => void) => VueNode$1) | false;
8
+ type OnClick = (e?: MouseEvent) => void;
9
+ interface DropdownFooterProps {
10
+ onClear?: OnClick;
11
+ onConfirm?: OnClick;
12
+ disabled?: boolean;
13
+ prefixCls?: string;
14
+ footerRender?: LightFilterFooterRender;
15
+ }
16
+ declare const DropdownFooter: _$vue.DefineSetupFnComponent<DropdownFooterProps, {}, CustomSlotsType<{
17
+ default?: () => VNode[];
18
+ }>, DropdownFooterProps & {}, _$vue.PublicProps>;
19
+ //#endregion
20
+ export { DropdownFooterProps, DropdownFooter as default };