@opentiny/vue-renderless 3.21.1 → 3.22.0

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 (323) hide show
  1. package/amount/index.js +4 -4
  2. package/anchor/index.js +1 -1
  3. package/async-flowchart/index.js +1 -1
  4. package/autocomplete/index.js +1 -1
  5. package/autocomplete/vue.js +3 -3
  6. package/base-select/index.js +19 -19
  7. package/base-select/vue.js +2 -2
  8. package/calendar/index.js +2 -2
  9. package/calendar-bar/index.js +2 -2
  10. package/calendar-bar/vue.js +1 -1
  11. package/calendar-view/index.js +66 -22
  12. package/calendar-view/vue.js +2 -3
  13. package/card/index.js +1 -1
  14. package/card-template/index.js +1 -1
  15. package/carousel/index.js +4 -4
  16. package/carousel/vue.js +1 -1
  17. package/cascader/index.js +21 -11
  18. package/cascader/vue.js +6 -5
  19. package/cascader-menu/vue.js +2 -2
  20. package/cascader-mobile/index.js +1 -1
  21. package/cascader-panel/index.js +4 -4
  22. package/cascader-panel/node.js +3 -4
  23. package/cascader-panel/vue.js +1 -1
  24. package/cascader-select/column-index.js +2 -2
  25. package/cascader-view/index.js +1 -1
  26. package/chart-bar/index.js +1 -1
  27. package/chart-candle/index.js +1 -1
  28. package/chart-core/deps/utils.js +6 -6
  29. package/chart-core/index.js +1 -1
  30. package/chart-funnel/index.js +1 -1
  31. package/chart-gauge/index.js +1 -1
  32. package/chart-line/index.js +1 -1
  33. package/chart-map/index.js +1 -1
  34. package/chart-pie/index.js +1 -1
  35. package/chart-radar/index.js +1 -1
  36. package/chart-sankey/index.js +1 -1
  37. package/chart-scatter/index.js +1 -1
  38. package/chart-waterfall/index.js +1 -1
  39. package/chart-wordcloud/index.js +1 -1
  40. package/checkbox/index.js +1 -1
  41. package/collapse-item/vue.js +1 -1
  42. package/column-list-item/index.js +1 -1
  43. package/common/deps/dom.js +20 -196
  44. package/common/deps/infinite-scroll.js +4 -43
  45. package/common/deps/popup-manager.js +1 -200
  46. package/container/index.js +2 -2
  47. package/crop/index.js +3 -3
  48. package/currency/index.js +2 -2
  49. package/date-panel/index.js +75 -25
  50. package/date-panel/vue.js +53 -21
  51. package/date-picker/vue.js +1 -1
  52. package/date-picker-mobile/index.js +1 -1
  53. package/date-range/index.js +71 -37
  54. package/date-range/vue.js +27 -23
  55. package/date-table/index.js +8 -5
  56. package/date-table/vue.js +1 -1
  57. package/dialog-box/index.js +3 -3
  58. package/dialog-box/vue.js +1 -1
  59. package/dialog-select/vue.js +7 -4
  60. package/drawer/index.js +2 -2
  61. package/drop-times/index.js +1 -1
  62. package/dropdown/index.js +11 -3
  63. package/dropdown/vue.js +2 -2
  64. package/dropdown-item/index.js +1 -1
  65. package/dropdown-item/mf.js +1 -1
  66. package/dropdown-menu/index.js +1 -1
  67. package/espace/vue.js +2 -2
  68. package/fall-menu/index.js +3 -3
  69. package/file-upload/index.js +16 -13
  70. package/file-upload/vue.js +2 -2
  71. package/filter/vue.js +1 -1
  72. package/filter-panel/vue.js +1 -2
  73. package/floating-button/index.js +1 -1
  74. package/flowchart/index.js +3 -3
  75. package/flowchart/vue.js +1 -1
  76. package/fluent-editor/index.js +5 -7
  77. package/fluent-editor/options.js +2 -2
  78. package/form/index.js +20 -2
  79. package/form-item/index.js +6 -6
  80. package/fullscreen/index.js +1 -1
  81. package/fullscreen/vue.js +1 -1
  82. package/grid/plugins/export.js +2 -2
  83. package/grid/plugins/exportExcel.js +3 -3
  84. package/grid/plugins/resize.js +2 -2
  85. package/grid/static/base/helperEqualCompare.js +1 -1
  86. package/grid/static/base/isPlainObject.js +1 -1
  87. package/grid/utils/common.js +2 -2
  88. package/grid/utils/dom.js +16 -8
  89. package/grid/utils/event.js +4 -4
  90. package/hrapprover/index.js +1 -1
  91. package/image/index.js +3 -3
  92. package/image-viewer/index.js +4 -6
  93. package/input/index.js +2 -2
  94. package/input/vue.js +1 -1
  95. package/ip-address/index.js +17 -21
  96. package/ip-address/vue.js +1 -1
  97. package/link-menu/index.js +1 -1
  98. package/link-menu/vue.js +1 -1
  99. package/load-list/index.js +1 -1
  100. package/load-list/vue.js +4 -4
  101. package/loading/index.js +2 -2
  102. package/menu/vue.js +1 -1
  103. package/milestone/index.js +6 -45
  104. package/modal/index.js +5 -5
  105. package/month-range/index.js +45 -5
  106. package/month-range/vue.js +19 -15
  107. package/month-table/index.js +5 -5
  108. package/month-table/vue.js +1 -1
  109. package/nav-menu/index.js +7 -7
  110. package/notify/index.js +3 -3
  111. package/numeric/index.js +5 -5
  112. package/option/index.js +1 -1
  113. package/option/vue.js +2 -1
  114. package/package.json +4 -3
  115. package/pager/index.js +28 -16
  116. package/pager/vue.js +27 -16
  117. package/panel/index.js +1 -1
  118. package/picker/index.js +11 -11
  119. package/picker/vue.js +2 -2
  120. package/picker-column/index.js +1 -1
  121. package/pop-upload/vue.js +1 -1
  122. package/popconfirm/vue.js +1 -1
  123. package/popeditor/index.js +6 -6
  124. package/popeditor/vue.js +2 -2
  125. package/popover/index.js +3 -3
  126. package/popover/vue.js +1 -1
  127. package/popup/index.js +3 -3
  128. package/pull-refresh/index.js +1 -1
  129. package/pull-refresh-mobile-first/index.js +1 -1
  130. package/pull-refresh-mobile-first/vue.js +4 -4
  131. package/quarter-panel/index.js +2 -2
  132. package/quarter-panel/vue.js +1 -1
  133. package/radio-group/index.js +1 -1
  134. package/rate/index.js +1 -1
  135. package/rate/vue.js +1 -1
  136. package/recycle-scroller/index.js +2 -2
  137. package/recycle-scroller/vue.js +1 -1
  138. package/rich-text/index.js +1 -1
  139. package/rich-text/table-module.js +2 -2
  140. package/river/river.js +1 -1
  141. package/river/vue.js +1 -1
  142. package/scrollbar/vue-bar.js +1 -1
  143. package/scrollbar/vue.js +1 -1
  144. package/search/index.js +3 -3
  145. package/select/index.js +26 -22
  146. package/select/vue.js +8 -7
  147. package/select-dropdown/vue.js +5 -5
  148. package/selected-box/index.js +1 -1
  149. package/signature/index.js +1 -1
  150. package/signature/vue.js +2 -2
  151. package/skeleton/index.js +1 -1
  152. package/slider/index.js +4 -4
  153. package/slider-button-group/slide-button.js +2 -2
  154. package/split/index.js +2 -2
  155. package/split/vue.js +1 -1
  156. package/statistic/index.js +1 -1
  157. package/steps/index.js +2 -3
  158. package/steps/slide-bar.js +2 -2
  159. package/sticky/vue.js +4 -4
  160. package/tab-bar/index.js +2 -2
  161. package/tab-item-mf/vue.js +1 -1
  162. package/tab-nav/index.js +4 -4
  163. package/tabbar/index.js +1 -1
  164. package/tabbar/vue.js +1 -1
  165. package/tabbar-item/index.js +1 -1
  166. package/tabs-mf/index.js +5 -5
  167. package/tabs-mf/vue-bar.js +1 -1
  168. package/tabs-mf/vue-swipe.js +1 -1
  169. package/tabs-mf/vue.js +2 -2
  170. package/tabs-mf/wheel.js +3 -3
  171. package/tag-group/vue.js +2 -2
  172. package/tall-storage/index.js +1 -1
  173. package/tall-storage/vue.js +1 -1
  174. package/time/index.js +1 -1
  175. package/time/vue.js +1 -1
  176. package/time-line/index.js +1 -1
  177. package/time-line-new/index.js +1 -1
  178. package/time-panel/index.js +2 -2
  179. package/time-panel/vue.js +1 -1
  180. package/time-range/index.js +1 -1
  181. package/time-range/vue.js +1 -1
  182. package/time-spinner/index.js +4 -4
  183. package/time-spinner/vue.js +1 -1
  184. package/timeline-item/index.js +1 -1
  185. package/toggle-menu/index.js +1 -1
  186. package/tooltip/index.js +2 -2
  187. package/tooltip/vue.js +2 -2
  188. package/top-box/index.js +3 -3
  189. package/transfer/index.js +1 -1
  190. package/transfer-panel/index.js +1 -1
  191. package/tree/index.js +9 -9
  192. package/tree/vue.js +2 -2
  193. package/tree-node/index.js +1 -1
  194. package/tree-node/vue.js +1 -1
  195. package/tree-select/index.js +1 -1
  196. package/types/async-flowchart.type.d.ts +2 -14
  197. package/types/breadcrumb-item.type.d.ts +5 -1
  198. package/types/breadcrumb.type.d.ts +5 -1
  199. package/types/button-group.type.d.ts +5 -1
  200. package/types/button.type.d.ts +1 -1
  201. package/types/cascader.type.d.ts +6 -1
  202. package/types/date-table.type.d.ts +1 -120
  203. package/types/dropdown.type.d.ts +1 -1
  204. package/types/label.type.d.ts +1 -53
  205. package/types/loading.type.d.ts +12 -0
  206. package/types/numeric.type.d.ts +3 -22
  207. package/types/pager.type.d.ts +12 -7
  208. package/types/popconfirm.type.d.ts +2 -0
  209. package/types/steps.type.d.ts +1 -0
  210. package/types/tag-group.type.d.ts +2 -14
  211. package/types/tag.type.d.ts +4 -4
  212. package/types/tooltip.type.d.ts +3 -13
  213. package/types/user-head.type.d.ts +0 -4
  214. package/upload/index.js +1 -1
  215. package/upload-list/index.js +1 -1
  216. package/upload-list/vue.js +4 -4
  217. package/user/index.js +7 -7
  218. package/user/vue.js +15 -2
  219. package/user-contact/vue.js +2 -2
  220. package/virtual-scroll-box/index.js +2 -2
  221. package/wizard/index.js +3 -3
  222. package/year-range/index.js +61 -11
  223. package/year-range/vue.js +33 -20
  224. package/year-table/index.js +7 -5
  225. package/avatar/index.js +0 -30
  226. package/avatar/vue.js +0 -22
  227. package/common/array.js +0 -115
  228. package/common/bigInt.js +0 -315
  229. package/common/browser.js +0 -81
  230. package/common/calendar/calendar.js +0 -97
  231. package/common/dataset/index.js +0 -99
  232. package/common/date.js +0 -354
  233. package/common/decimal.js +0 -155
  234. package/common/deps/ResizeObserver.js +0 -456
  235. package/common/deps/after-leave.js +0 -27
  236. package/common/deps/clickoutside.js +0 -75
  237. package/common/deps/date-util.js +0 -255
  238. package/common/deps/date.js +0 -286
  239. package/common/deps/debounce.js +0 -8
  240. package/common/deps/eSpaceCtrl.js +0 -304
  241. package/common/deps/fastdom/async.js +0 -41
  242. package/common/deps/fastdom/index.js +0 -9
  243. package/common/deps/fastdom/sandbox.js +0 -53
  244. package/common/deps/fastdom/singleton.js +0 -88
  245. package/common/deps/fullscreen/apis.js +0 -143
  246. package/common/deps/fullscreen/screenfull.js +0 -165
  247. package/common/deps/memorize.js +0 -124
  248. package/common/deps/observe-visibility.js +0 -106
  249. package/common/deps/popper.js +0 -613
  250. package/common/deps/repeat-click.js +0 -29
  251. package/common/deps/resize-event.js +0 -39
  252. package/common/deps/scroll-into-view.js +0 -29
  253. package/common/deps/scrollbar-width.js +0 -33
  254. package/common/deps/throttle.js +0 -45
  255. package/common/deps/touch-emulator.js +0 -103
  256. package/common/deps/touch.js +0 -37
  257. package/common/deps/tree-model/node.js +0 -475
  258. package/common/deps/tree-model/tree-store.js +0 -312
  259. package/common/deps/tree-model/util.js +0 -24
  260. package/common/deps/upload-ajax.js +0 -81
  261. package/common/deps/useEventListener.js +0 -54
  262. package/common/deps/useInstanceSlots.js +0 -22
  263. package/common/deps/useRect.js +0 -25
  264. package/common/deps/useRelation.js +0 -89
  265. package/common/deps/useTouch.js +0 -68
  266. package/common/deps/useUserAgent.js +0 -16
  267. package/common/deps/useWindowSize.js +0 -23
  268. package/common/deps/vue-emitter.js +0 -34
  269. package/common/deps/vue-popper.js +0 -177
  270. package/common/deps/vue-popup.js +0 -138
  271. package/common/event.js +0 -46
  272. package/common/form/const.js +0 -10
  273. package/common/function.js +0 -28
  274. package/common/global.js +0 -11
  275. package/common/index.js +0 -259
  276. package/common/object.js +0 -227
  277. package/common/prop-util.js +0 -43
  278. package/common/runtime.js +0 -79
  279. package/common/string.js +0 -417
  280. package/common/type.js +0 -66
  281. package/common/validate/index.js +0 -10
  282. package/common/validate/messages.js +0 -65
  283. package/common/validate/rules/enum.js +0 -12
  284. package/common/validate/rules/index.js +0 -18
  285. package/common/validate/rules/pattern.js +0 -20
  286. package/common/validate/rules/range.js +0 -52
  287. package/common/validate/rules/required.js +0 -11
  288. package/common/validate/rules/type.js +0 -100
  289. package/common/validate/rules/whitespace.js +0 -10
  290. package/common/validate/schema.js +0 -290
  291. package/common/validate/util.js +0 -211
  292. package/common/validate/validations/array.js +0 -22
  293. package/common/validate/validations/date.js +0 -31
  294. package/common/validate/validations/enum.js +0 -22
  295. package/common/validate/validations/float.js +0 -22
  296. package/common/validate/validations/index.js +0 -46
  297. package/common/validate/validations/integer.js +0 -22
  298. package/common/validate/validations/method.js +0 -21
  299. package/common/validate/validations/number.js +0 -25
  300. package/common/validate/validations/pattern.js +0 -21
  301. package/common/validate/validations/required.js +0 -11
  302. package/common/validate/validations/string.js +0 -33
  303. package/common/validate/validations/type.js +0 -29
  304. package/index-bar/index.js +0 -66
  305. package/index-bar/vue.js +0 -73
  306. package/index-bar-anchor/vue.js +0 -16
  307. package/label/index.js +0 -56
  308. package/label/vue.js +0 -26
  309. package/list/index.js +0 -13
  310. package/list/vue.js +0 -17
  311. package/mask/index.js +0 -13
  312. package/mask/vue.js +0 -18
  313. package/mini-picker/index.js +0 -165
  314. package/mini-picker/vue.js +0 -122
  315. package/multi-select/index.js +0 -394
  316. package/multi-select/vue.js +0 -113
  317. package/multi-select-item/index.js +0 -23
  318. package/multi-select-item/vue.js +0 -31
  319. package/toast/index.js +0 -7
  320. package/toast/vue.js +0 -19
  321. package/types/toast.type.d.ts +0 -63
  322. package/wheel/index.js +0 -165
  323. package/wheel/vue.js +0 -79
@@ -1,613 +0,0 @@
1
- import {
2
- __spreadValues
3
- } from "../../chunk-G2ADBYYC.js";
4
- import { on, off, isDisplayNone } from "./dom";
5
- import PopupManager from "./popup-manager";
6
- import globalConfig from "../global";
7
- import { typeOf } from "../type";
8
- import { isBrowser } from "../browser";
9
- const positions = ["left", "right", "top", "bottom"];
10
- const modifiers = ["shift", "offset", "preventOverflow", "keepTogether", "arrow", "flip", "applyStyle"];
11
- const DEFAULTS = {
12
- arrowOffset: 0,
13
- arrowElement: "[x-arrow]",
14
- boundariesElement: "viewport",
15
- boundariesPadding: 5,
16
- flipBehavior: "flip",
17
- // 全局没有修改过它,所以它一直是flip
18
- forceAbsolute: false,
19
- gpuAcceleration: true,
20
- offset: 0,
21
- placement: "bottom",
22
- preventOverflowOrder: positions,
23
- modifiers,
24
- // 此处是string数组, 构造函数调用之后转为函数数组
25
- updateHiddenPopperOnScroll: false
26
- // 滚动过程中是否更新隐藏的弹出层位置
27
- };
28
- const setStyle = (el, styles) => {
29
- const isNumeric = (n) => n !== "" && !isNaN(parseFloat(n)) && isFinite(n);
30
- Object.keys(styles).forEach((prop) => {
31
- let unit = "";
32
- if (~["width", "height", "top", "right", "bottom", "left"].indexOf(prop) && isNumeric(styles[prop])) {
33
- unit = "px";
34
- }
35
- el.style[prop] = styles[prop] + unit;
36
- });
37
- };
38
- const getOffsetParent = (el) => {
39
- let offsetParent = el.offsetParent;
40
- return offsetParent === window.document.body || !offsetParent ? window.document.documentElement : offsetParent;
41
- };
42
- const getStyleComputedProperty = (el, property) => {
43
- if (!el || el.nodeType !== 1) {
44
- return;
45
- }
46
- let css = window.getComputedStyle(el, null);
47
- return css[property];
48
- };
49
- const isFixed = (el) => {
50
- if (el === window.document.body) {
51
- return false;
52
- }
53
- if (getStyleComputedProperty(el, "position") === "fixed") {
54
- return true;
55
- }
56
- return el.parentNode ? isFixed(el.parentNode) : false;
57
- };
58
- const getBoundingClientRect = (el) => {
59
- let rect = el.getBoundingClientRect();
60
- return {
61
- left: rect.left,
62
- top: rect.top,
63
- right: rect.right,
64
- bottom: rect.bottom,
65
- width: rect.right - rect.left,
66
- height: rect.bottom - rect.top
67
- };
68
- };
69
- const isScrollElement = (el) => {
70
- const scrollTypes = ["scroll", "auto"];
71
- return scrollTypes.includes(getStyleComputedProperty(el, "overflow")) || scrollTypes.includes(getStyleComputedProperty(el, "overflow-x")) || scrollTypes.includes(getStyleComputedProperty(el, "overflow-y"));
72
- };
73
- const getAdjustOffset = (parent) => {
74
- const placeholder = document.createElement("div");
75
- setStyle(placeholder, {
76
- opacity: 0,
77
- position: "fixed",
78
- width: 1,
79
- height: 1,
80
- top: 0,
81
- left: 0,
82
- "z-index": "-99"
83
- });
84
- parent.appendChild(placeholder);
85
- const result = getBoundingClientRect(placeholder);
86
- parent.removeChild(placeholder);
87
- return result;
88
- };
89
- const getScrollParent = (el) => {
90
- let parent = el.parentNode;
91
- if (!parent) {
92
- return el;
93
- }
94
- if (parent === window.document) {
95
- if (window.document.body.scrollTop || window.document.body.scrollLeft) {
96
- return window.document.body;
97
- }
98
- return window.document.documentElement;
99
- }
100
- if (isScrollElement(parent)) {
101
- return parent;
102
- }
103
- return getScrollParent(parent);
104
- };
105
- const getOffsetRectRelativeToCustomParent = (el, parent, fixed, popper) => {
106
- let { top, left, width, height } = getBoundingClientRect(el);
107
- if (fixed) {
108
- if (popper.parentElement) {
109
- const { top: adjustTop, left: adjustLeft } = getAdjustOffset(popper.parentElement);
110
- top -= adjustTop;
111
- left -= adjustLeft;
112
- }
113
- return {
114
- top,
115
- left,
116
- bottom: top + height,
117
- right: left + width,
118
- width,
119
- height
120
- };
121
- }
122
- let parentRect = getBoundingClientRect(parent);
123
- let rect = {
124
- top: top - parentRect.top,
125
- left: left - parentRect.left,
126
- bottom: top - parentRect.top + height,
127
- right: left - parentRect.left + width,
128
- width,
129
- height
130
- };
131
- return rect;
132
- };
133
- const getScrollTopValue = (el) => el === document.body ? Math.max(document.documentElement.scrollTop, document.body.scrollTop) : el.scrollTop;
134
- const getScrollLeftValue = (el) => el === document.body ? Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) : el.scrollLeft;
135
- const getMaxWH = (body, html) => {
136
- const height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);
137
- const width = Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);
138
- return { width, height };
139
- };
140
- const getOuterSizes = (el) => {
141
- let _display = el.style.display;
142
- let _visibility = el.style.visibility;
143
- el.style.display = "block";
144
- el.style.visibility = "hidden";
145
- let styles = window.getComputedStyle(el);
146
- let x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
147
- let y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
148
- let result = { width: el.offsetWidth + y, height: el.offsetHeight + x };
149
- el.style.display = _display;
150
- el.style.visibility = _visibility;
151
- return result;
152
- };
153
- const getOppositePlacement = (placement) => {
154
- let hash = { left: "right", right: "left", bottom: "top", top: "bottom" };
155
- return placement.replace(/left|right|bottom|top/g, (matched) => hash[matched]);
156
- };
157
- const getPopperClientRect = (popperOffsets) => {
158
- let offsets = __spreadValues({}, popperOffsets);
159
- offsets.right = offsets.left + offsets.width;
160
- offsets.bottom = offsets.top + offsets.height;
161
- return offsets;
162
- };
163
- const getAllScrollParents = (el, parents = []) => {
164
- const parent = el.parentNode;
165
- if (parent) {
166
- isScrollElement(parent) && parents.push(parent);
167
- if (getStyleComputedProperty(parent, "position") === "fixed") {
168
- return parents;
169
- }
170
- return getAllScrollParents(parent, parents);
171
- }
172
- return parents;
173
- };
174
- const getOffsetRect = (el) => {
175
- const elementRect = {
176
- width: el.offsetWidth,
177
- height: el.offsetHeight,
178
- left: el.offsetLeft,
179
- top: el.offsetTop,
180
- right: 0,
181
- bottom: 0
182
- };
183
- elementRect.right = elementRect.left + elementRect.width;
184
- elementRect.bottom = elementRect.top + elementRect.height;
185
- return elementRect;
186
- };
187
- const stopFn = (ev) => {
188
- ev.stopPropagation();
189
- };
190
- const resizeOb = isBrowser && typeof ResizeObserver === "function" ? new ResizeObserver((entries) => {
191
- entries.forEach((entry) => {
192
- if (entry.target.popperVm && entry.contentRect.height > 50) {
193
- entry.target.popperVm.update();
194
- }
195
- });
196
- }) : null;
197
- class Popper {
198
- constructor(reference, popper, options) {
199
- this.modifiers = {};
200
- /** 每次update, 计算popper的大小并缓存 */
201
- this.popperOuterSize = null;
202
- this._reference = reference;
203
- this._popper = popper;
204
- this.state = {};
205
- this._options = __spreadValues(__spreadValues({}, DEFAULTS), options);
206
- this._options.modifierFns = modifiers.map((modifier) => {
207
- return this[modifier];
208
- });
209
- if (isBrowser) {
210
- this._popper.setAttribute("x-placement", this._options.placement);
211
- this.state.position = this._getPopperPositionByRefernce(this._reference);
212
- setStyle(this._popper, { position: this.state.position, top: 0 });
213
- if (this._popper) {
214
- this._popper.popperVm = this;
215
- resizeOb && resizeOb.observe(this._popper);
216
- }
217
- this.update();
218
- this._setupEventListeners();
219
- }
220
- }
221
- destroy() {
222
- this._popper.removeAttribute("x-placement");
223
- this._popper.style.display = "none";
224
- this._removeEventListeners();
225
- this._options.removeOnDestroy && this._popper.remove();
226
- return this;
227
- }
228
- onUpdate(callback) {
229
- this.state.updateCallback = callback;
230
- return this;
231
- }
232
- update() {
233
- let data = { instance: this, styles: {} };
234
- this.stopEventBubble();
235
- this.popperOuterSize = null;
236
- data.placement = data._originalPlacement = this._options.placement;
237
- data.offsets = this._getRefPopOffsets(this._popper, this._reference, data.placement);
238
- data.boundaries = this._getBoundaries(data, this._options.boundariesPadding, this._options.boundariesElement);
239
- data = this.runModifiers(data, this._options.modifierFns);
240
- typeof this.state.updateCallback === "function" && this.state.updateCallback(data);
241
- }
242
- // 阻止popper的mousewheel等事件冒泡。 通过 onxxx 绑定,是为了避免重复绑定事件
243
- stopEventBubble() {
244
- if (!this._popper)
245
- return;
246
- if (!this._popper.onmousewheel)
247
- this._popper.onmousewheel = stopFn;
248
- if (!this._popper.onwheel)
249
- this._popper.onwheel = stopFn;
250
- }
251
- /** 按顺序执行Modifiers, 如果传入终点modifier,则执行到指定位置 */
252
- runModifiers(data, modifiers2, ends) {
253
- let modifiersToRun = modifiers2.slice();
254
- const _options = this._options;
255
- if (ends !== void 0) {
256
- modifiersToRun = this._options.modifierFns.slice(
257
- 0,
258
- _options.modifierFns.findIndex((m) => m === ends)
259
- );
260
- }
261
- modifiersToRun.forEach((modifier) => {
262
- if (typeOf(modifier) === "function") {
263
- data = modifier.call(this, data);
264
- }
265
- });
266
- return data;
267
- }
268
- // 此时才把offsets.popper 赋值给popper dom, offsets.array赋值给array dom
269
- applyStyle(data) {
270
- let styles = { position: data.offsets.popper.position };
271
- let left = Math.round(data.offsets.popper.left);
272
- let top = Math.round(data.offsets.popper.top);
273
- if (this._options.gpuAcceleration) {
274
- styles.transform = `translate3d(${left}px, ${top}px, 0)`;
275
- Object.assign(styles, { top: 0, left: 0 });
276
- } else {
277
- Object.assign(styles, { top, left });
278
- }
279
- Object.assign(styles, data.styles);
280
- setStyle(this._popper, styles);
281
- this._popper.setAttribute("x-placement", data.placement);
282
- if (data.offsets.arrow) {
283
- setStyle(data.arrowElement, data.offsets.arrow);
284
- }
285
- return data;
286
- }
287
- // 判断 placement是不是2段式的,是则处理一下偏移。 修改data.offsets.popper的值
288
- shift(data) {
289
- let placement = data.placement;
290
- let basePlacement = placement.split("-")[0];
291
- let shiftVariation = placement.split("-")[1];
292
- if (shiftVariation) {
293
- let { top, left, height, width } = data.offsets.reference;
294
- let popper = getPopperClientRect(data.offsets.popper);
295
- let shiftOffsets = {
296
- y: {
297
- start: { top },
298
- end: { top: top + height - popper.height }
299
- },
300
- x: {
301
- start: { left },
302
- end: { left: left + width - popper.width }
303
- }
304
- };
305
- let axis = ~["bottom", "top"].indexOf(basePlacement) ? "x" : "y";
306
- data.offsets.popper = Object.assign(popper, shiftOffsets[axis][shiftVariation]);
307
- }
308
- return data;
309
- }
310
- // 校正popper的位置在boundaries 的内部
311
- preventOverflow(data) {
312
- if (this._options.ignoreBoundaries) {
313
- return data;
314
- }
315
- let order = this._options.preventOverflowOrder;
316
- let popper = getPopperClientRect(data.offsets.popper);
317
- let check = {
318
- top: () => {
319
- let { top } = popper;
320
- if (top < data.boundaries.top) {
321
- top = Math.max(top, data.boundaries.top);
322
- }
323
- return { top };
324
- },
325
- right: () => {
326
- let { left } = popper;
327
- if (popper.right > data.boundaries.right) {
328
- left = Math.min(left, data.boundaries.right - popper.width);
329
- }
330
- return { left };
331
- },
332
- bottom: () => {
333
- let { top } = popper;
334
- if (popper.bottom > data.boundaries.bottom) {
335
- top = Math.min(top, data.boundaries.bottom - popper.height);
336
- }
337
- return { top };
338
- },
339
- left: () => {
340
- let { left } = popper;
341
- if (popper.left < data.boundaries.left) {
342
- left = Math.max(left, data.boundaries.left);
343
- }
344
- return { left };
345
- }
346
- };
347
- order.forEach((direction) => {
348
- data.offsets.popper = Object.assign(popper, check[direction]());
349
- });
350
- return data;
351
- }
352
- // 校正popper的位置在reference的边上。 如果2个分离了,重新调整popper的位置。 可能是担心 modifiers.offset 带来的副作用吧
353
- keepTogether(data) {
354
- let popper = getPopperClientRect(data.offsets.popper);
355
- let reference = data.offsets.reference;
356
- if (popper.right < Math.floor(reference.left)) {
357
- data.offsets.popper.left = Math.floor(reference.left) - popper.width;
358
- }
359
- if (popper.left > Math.floor(reference.right)) {
360
- data.offsets.popper.left = Math.floor(reference.right);
361
- }
362
- if (popper.bottom < Math.floor(reference.top)) {
363
- data.offsets.popper.top = Math.floor(reference.top) - popper.height;
364
- }
365
- if (popper.top > Math.floor(reference.bottom)) {
366
- data.offsets.popper.top = Math.floor(reference.bottom);
367
- }
368
- return data;
369
- }
370
- // 根据flip的策略,计算当前应该显示的位置。 空间不够要计算出flip的位置。 可能是担心preventOverflow 时,造成pop, reference会重叠。 重叠了就要flip一下
371
- flip(data) {
372
- if (data.flipped && data.placement === data._originalPlacement) {
373
- return data;
374
- }
375
- const placements = data.placement.split("-");
376
- let placement = placements[0];
377
- let placementOpposite = getOppositePlacement(placement);
378
- let variation = placements[1] || "";
379
- let flipOrderArr = [placement, placementOpposite];
380
- flipOrderArr.forEach((step, index) => {
381
- if (placement !== step || flipOrderArr.length === index + 1) {
382
- return;
383
- }
384
- placement = data.placement.split("-")[0];
385
- placementOpposite = getOppositePlacement(placement);
386
- let popperOffsets = getPopperClientRect(data.offsets.popper);
387
- let a = ~["right", "bottom"].indexOf(placement);
388
- let p = Math.floor(data.offsets.reference[placement]);
389
- let po = Math.floor(popperOffsets[placementOpposite]);
390
- if (a && p > po || !a && p < po) {
391
- data.flipped = true;
392
- data.placement = flipOrderArr[index + 1];
393
- if (variation) {
394
- data.placement += `-${variation}`;
395
- }
396
- data.offsets.popper = this._getRefPopOffsets(this._popper, this._reference, data.placement).popper;
397
- data = this.runModifiers(data, this._options.modifierFns, this.flip);
398
- }
399
- });
400
- return data;
401
- }
402
- // 根据入参option上的offset, 给data.offset.popper进行校正
403
- offset(data) {
404
- let offset = this._options.offset;
405
- let popper = data.offsets.popper;
406
- if (~data.placement.indexOf("left")) {
407
- popper.top -= offset;
408
- } else if (~data.placement.indexOf("right")) {
409
- popper.top += offset;
410
- } else if (~data.placement.indexOf("top")) {
411
- popper.left -= offset;
412
- } else if (~data.placement.indexOf("bottom")) {
413
- popper.left += offset;
414
- }
415
- return data;
416
- }
417
- // 计算arrow的位置,保存在data.offsets.arrow ={top,left}
418
- arrow(data) {
419
- let arrow = this._options.arrowElement;
420
- let arrowOffset = this._options.arrowOffset;
421
- if (typeof arrow === "string") {
422
- arrow = this._popper.querySelector(arrow);
423
- }
424
- if (!arrow || !this._popper.contains(arrow)) {
425
- return data;
426
- }
427
- let arrowStyle = {};
428
- let placement = data.placement.split("-")[0];
429
- let popper = getPopperClientRect(data.offsets.popper);
430
- let reference = data.offsets.reference;
431
- let isVertical = ~["left", "right"].indexOf(placement);
432
- let calcProp = isVertical ? "height" : "width";
433
- let opSide = isVertical ? "bottom" : "right";
434
- let altSide = isVertical ? "left" : "top";
435
- let side = isVertical ? "top" : "left";
436
- let popperRect = this.popperOuterSize ? this.popperOuterSize : this.popperOuterSize = getOuterSizes(this._popper);
437
- let arrowRect = getOuterSizes(arrow);
438
- let arrowSize = arrowRect[calcProp];
439
- if (reference[opSide] - arrowSize < popper[side]) {
440
- data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowSize);
441
- }
442
- if (reference[side] + arrowSize > popper[opSide]) {
443
- data.offsets.popper[side] += reference[side] + arrowSize - popper[opSide];
444
- }
445
- let center = reference[side] + (arrowOffset || reference[calcProp] / 2 - arrowSize / 2);
446
- let sideValue = center - popper[side];
447
- sideValue = Math.max(Math.min(popper[calcProp] - arrowSize - 8, sideValue), 8);
448
- arrowStyle[side] = sideValue;
449
- arrowStyle[altSide] = "";
450
- const params = this._options.placement.split("-");
451
- if (this._options.adjustArrow && ~["top", "bottom"].indexOf(params[0]) && side === "left") {
452
- if (params[1] === "start") {
453
- arrowStyle.left = 8;
454
- } else if (!params[1]) {
455
- arrowStyle.left = (popperRect.width - arrowRect.width) / 2;
456
- }
457
- }
458
- data.offsets.arrow = arrowStyle;
459
- data.arrowElement = arrow;
460
- return data;
461
- }
462
- /** 判断 reference 的 offsetParent 元素是fix还是abs, 这个值会赋值给popper 的dom */
463
- _getPopperPositionByRefernce(reference) {
464
- if (this._options.forceAbsolute) {
465
- return "absolute";
466
- }
467
- let isParentFixed = isFixed(reference);
468
- return isParentFixed ? "fixed" : "absolute";
469
- }
470
- /** 实时计算一下popper, reference的 位置信息, 用于 */
471
- _getRefPopOffsets(popper, reference, placement) {
472
- placement = placement.split("-")[0];
473
- let popperOffsets = { position: this.state.position };
474
- let isParentFixed = popperOffsets.position === "fixed";
475
- let referenceOffsets = getOffsetRectRelativeToCustomParent(
476
- reference,
477
- getOffsetParent(popper),
478
- isParentFixed,
479
- popper
480
- );
481
- const { width, height } = this.popperOuterSize ? this.popperOuterSize : this.popperOuterSize = getOuterSizes(popper);
482
- if (~["right", "left"].indexOf(placement)) {
483
- popperOffsets.top = referenceOffsets.top + referenceOffsets.height / 2 - height / 2;
484
- if (placement === "left") {
485
- popperOffsets.left = referenceOffsets.left - width;
486
- } else {
487
- popperOffsets.left = referenceOffsets.right;
488
- }
489
- } else {
490
- popperOffsets.left = referenceOffsets.left + referenceOffsets.width / 2 - width / 2;
491
- if (placement === "top") {
492
- popperOffsets.top = referenceOffsets.top - height;
493
- } else {
494
- popperOffsets.top = referenceOffsets.bottom;
495
- }
496
- }
497
- popperOffsets.width = width;
498
- popperOffsets.height = height;
499
- return {
500
- popper: popperOffsets,
501
- reference: referenceOffsets
502
- };
503
- }
504
- _setupEventListeners() {
505
- var _a, _b;
506
- this.state.updateBoundFn = this.update.bind(this);
507
- this.state.scrollUpdate = () => {
508
- if (this._options.updateHiddenPopperOnScroll) {
509
- this.state.updateBoundFn();
510
- } else {
511
- if (isDisplayNone(this._reference))
512
- return;
513
- this.state.updateBoundFn();
514
- }
515
- };
516
- on(window, "resize", this.state.updateBoundFn);
517
- if (this._options.boundariesElement !== "window") {
518
- let target = this._options.scrollParent || getScrollParent(this._reference);
519
- const customTargets = [];
520
- if ((_b = (_a = target == null ? void 0 : target.dataset) == null ? void 0 : _a.tag) == null ? void 0 : _b.includes("-form")) {
521
- customTargets.push(target);
522
- let realTarget = getScrollParent(target);
523
- if (realTarget === window.document.body || realTarget === window.document.documentElement) {
524
- realTarget = window;
525
- }
526
- customTargets.push(realTarget);
527
- }
528
- if (target === window.document.body || target === window.document.documentElement) {
529
- target = window;
530
- }
531
- this.state.scrollTarget = target;
532
- if (this._options.bubbling || PopupManager.globalScroll) {
533
- let targets = getAllScrollParents(this._reference);
534
- this.state.scrollTargets = targets || [];
535
- targets.forEach((target2) => {
536
- on(target2, "scroll", this.state.scrollUpdate);
537
- });
538
- } else {
539
- if (customTargets.length) {
540
- this.state.scrollTargets = customTargets;
541
- customTargets.forEach((target2) => {
542
- on(target2, "scroll", this.state.scrollUpdate);
543
- });
544
- } else {
545
- on(target, "scroll", this.state.scrollUpdate);
546
- }
547
- }
548
- }
549
- }
550
- _removeEventListeners() {
551
- off(window, "resize", this.state.updateBoundFn);
552
- if (this._options.boundariesElement !== "window" && this.state.scrollTarget) {
553
- off(this.state.scrollTarget, "scroll", this.state.scrollUpdate);
554
- this.state.scrollTarget = null;
555
- if (this._options.bubbling || PopupManager.globalScroll) {
556
- let targets = this.state.scrollTargets || [];
557
- targets.forEach((target) => {
558
- off(target, "scroll", this.state.scrollUpdate);
559
- });
560
- this.state.scrollTargets = null;
561
- }
562
- }
563
- this.state.updateBoundFn = null;
564
- this.state.scrollUpdate = null;
565
- }
566
- /** 实时计算一下Boundary的位置 */
567
- _getBoundaries(data, padding, boundariesElement) {
568
- let boundaries = { right: 0, left: 0, top: 0, bottom: 0 };
569
- if (boundariesElement === "window" || boundariesElement === "body") {
570
- let body = window.document.body;
571
- let html = window.document.documentElement;
572
- let { width, height } = getMaxWH(body, html);
573
- boundaries = { top: 0, right: width, bottom: height, left: 0 };
574
- } else if (boundariesElement === "viewport") {
575
- let offsetParent = getOffsetParent(this._popper);
576
- let scrollParent = getScrollParent(this._popper);
577
- let offsetParentRect = getOffsetRect(offsetParent);
578
- let isFixed2 = data.offsets.popper.position === "fixed";
579
- const noScroll = isFixed2 || !this._options.appendToBody && ["right", "left"].includes(this._options.placement);
580
- let scrollTop = noScroll ? 0 : getScrollTopValue(scrollParent);
581
- let scrollLeft = noScroll ? 0 : getScrollLeftValue(scrollParent);
582
- const viewportWindow = globalConfig.viewportWindow || PopupManager.viewportWindow || window;
583
- boundaries = {
584
- top: 0 - (offsetParentRect.top - scrollTop),
585
- right: viewportWindow.document.documentElement.clientWidth - (offsetParentRect.left - scrollLeft),
586
- bottom: viewportWindow.document.documentElement.clientHeight - (offsetParentRect.top - scrollTop),
587
- left: 0 - (offsetParentRect.left - scrollLeft)
588
- };
589
- } else {
590
- if (getOffsetParent(this._popper) === boundariesElement) {
591
- const { clientWidth, clientHeight } = boundariesElement;
592
- boundaries = {
593
- right: clientWidth,
594
- bottom: clientHeight,
595
- top: 0,
596
- left: 0
597
- };
598
- } else {
599
- boundaries = getOffsetRect(boundariesElement);
600
- }
601
- }
602
- boundaries.right -= padding;
603
- boundaries.left += padding;
604
- boundaries.bottom = boundaries.bottom - padding;
605
- boundaries.top = boundaries.top + padding;
606
- return boundaries;
607
- }
608
- }
609
- var popper_default = Popper;
610
- export {
611
- popper_default as default,
612
- getScrollParent
613
- };
@@ -1,29 +0,0 @@
1
- import "../../chunk-G2ADBYYC.js";
2
- import { on, once } from "./dom";
3
- var repeat_click_default = (el, binding) => {
4
- const LONG_PRESS_INTERVAL = 200;
5
- let interval = null;
6
- let startTime;
7
- const handler = () => {
8
- typeof binding.value === "function" && binding.value.apply();
9
- };
10
- const clear = () => {
11
- if (Date.now() - startTime < LONG_PRESS_INTERVAL) {
12
- handler();
13
- }
14
- clearInterval(interval);
15
- interval = null;
16
- };
17
- on(el, "mousedown", (e) => {
18
- if (e.button !== 0) {
19
- return;
20
- }
21
- startTime = Date.now();
22
- once(document, "mouseup", clear);
23
- clearInterval(interval);
24
- interval = setInterval(handler, LONG_PRESS_INTERVAL);
25
- });
26
- };
27
- export {
28
- repeat_click_default as default
29
- };
@@ -1,39 +0,0 @@
1
- import "../../chunk-G2ADBYYC.js";
2
- import ResizeObserver from "./ResizeObserver";
3
- const isServer = typeof window === "undefined";
4
- const cacheKey = "__resizeListeners__";
5
- const resizeHandler = (entries) => {
6
- entries.forEach((entry) => {
7
- const listeners = entry.target[cacheKey] || [];
8
- if (listeners.length) {
9
- listeners.forEach((fn) => {
10
- fn();
11
- });
12
- }
13
- });
14
- };
15
- const addResizeListener = (el, fn) => {
16
- if (isServer) {
17
- return;
18
- }
19
- if (!el[cacheKey]) {
20
- el[cacheKey] = [];
21
- el.__ro__ = new ResizeObserver(resizeHandler);
22
- el.__ro__.observe(el);
23
- }
24
- el[cacheKey].push(fn);
25
- };
26
- const removeResizeListener = (el, fn) => {
27
- if (!el || !el[cacheKey]) {
28
- return;
29
- }
30
- el[cacheKey].splice(el[cacheKey].indexOf(fn), 1);
31
- if (!el[cacheKey].length) {
32
- el.__ro__.disconnect();
33
- delete el.__ro__;
34
- }
35
- };
36
- export {
37
- addResizeListener,
38
- removeResizeListener
39
- };