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