yuang-framework-ui-pc 1.1.15 → 1.1.16
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/es/core-components.js +3 -4
- package/es/ele-dialog/index.d.ts +2 -2
- package/es/ele-dialog/index.js +15 -15
- package/es/ele-dialog/props.d.ts +3 -3
- package/es/ele-dialog/props.js +4 -4
- package/es/ele-dialog/util.d.ts +8 -8
- package/es/ele-dialog/util.js +93 -101
- package/es/style/plus.scss +2 -0
- package/es/style/themes/default.scss +26 -0
- package/lib/core-components.cjs +53 -54
- package/lib/ele-dialog/index.cjs +13 -13
- package/lib/ele-dialog/index.d.ts +2 -2
- package/lib/ele-dialog/props.cjs +4 -4
- package/lib/ele-dialog/props.d.ts +3 -3
- package/lib/ele-dialog/util.cjs +93 -101
- package/lib/ele-dialog/util.d.ts +8 -8
- package/lib/style/plus.scss +2 -0
- package/lib/style/themes/default.scss +26 -0
- package/package.json +1 -1
- package/typings/global.d.ts +0 -1
- package/es/ele-modal/index.d.ts +0 -245
- package/es/ele-modal/index.js +0 -342
- package/es/ele-modal/props.d.ts +0 -135
- package/es/ele-modal/props.js +0 -71
- package/es/ele-modal/style/css-var.scss +0 -8
- package/es/ele-modal/style/index.d.ts +0 -1
- package/es/ele-modal/style/index.js +0 -3
- package/es/ele-modal/style/index.scss +0 -259
- package/es/ele-modal/types.d.ts +0 -43
- package/es/ele-modal/util.d.ts +0 -52
- package/es/ele-modal/util.js +0 -301
- package/lib/ele-modal/index.cjs +0 -341
- package/lib/ele-modal/index.d.ts +0 -245
- package/lib/ele-modal/props.cjs +0 -71
- package/lib/ele-modal/props.d.ts +0 -135
- package/lib/ele-modal/style/css-var.scss +0 -8
- package/lib/ele-modal/style/index.cjs +0 -4
- package/lib/ele-modal/style/index.d.ts +0 -1
- package/lib/ele-modal/style/index.scss +0 -259
- package/lib/ele-modal/types.d.ts +0 -43
- package/lib/ele-modal/util.cjs +0 -301
- package/lib/ele-modal/util.d.ts +0 -52
package/lib/core-components.cjs
CHANGED
|
@@ -26,33 +26,32 @@ const index$m = require("./ele-image-viewer/index");
|
|
|
26
26
|
const index$n = require("./ele-loading/index");
|
|
27
27
|
const index$o = require("./ele-menus/index");
|
|
28
28
|
const index$p = require("./ele-dialog/index");
|
|
29
|
-
const index$q = require("./ele-
|
|
30
|
-
const index$r = require("./ele-
|
|
31
|
-
const index$s = require("./ele-
|
|
32
|
-
const index$t = require("./ele-
|
|
33
|
-
const index$u = require("./ele-
|
|
34
|
-
const index$v = require("./ele-
|
|
35
|
-
const index$w = require("./ele-pro-
|
|
36
|
-
const index$x = require("./ele-
|
|
37
|
-
const index$y = require("./ele-qr-code/index");
|
|
38
|
-
const index$z = require("./ele-
|
|
39
|
-
const index$A = require("./ele-
|
|
40
|
-
const index$B = require("./ele-
|
|
41
|
-
const index$C = require("./ele-
|
|
42
|
-
const index$D = require("./ele-
|
|
43
|
-
const index$E = require("./ele-tab-
|
|
44
|
-
const index$F = require("./ele-
|
|
45
|
-
const index$G = require("./ele-table/index");
|
|
46
|
-
const index$H = require("./ele-
|
|
47
|
-
const index$I = require("./ele-
|
|
48
|
-
const index$J = require("./ele-
|
|
49
|
-
const index$K = require("./ele-
|
|
50
|
-
const index$L = require("./ele-
|
|
51
|
-
const index$M = require("./ele-
|
|
52
|
-
const index$N = require("./ele-
|
|
53
|
-
const index$O = require("./ele-
|
|
54
|
-
const index$P = require("./ele-
|
|
55
|
-
const index$Q = require("./ele-watermark/index");
|
|
29
|
+
const index$q = require("./ele-page/index");
|
|
30
|
+
const index$r = require("./ele-pagination/index");
|
|
31
|
+
const index$s = require("./ele-popconfirm/index");
|
|
32
|
+
const index$t = require("./ele-popover/index");
|
|
33
|
+
const index$u = require("./ele-printer/index");
|
|
34
|
+
const index$v = require("./ele-pro-layout/index");
|
|
35
|
+
const index$w = require("./ele-pro-table/index");
|
|
36
|
+
const index$x = require("./ele-qr-code/index");
|
|
37
|
+
const index$y = require("./ele-qr-code-svg/index");
|
|
38
|
+
const index$z = require("./ele-segmented/index");
|
|
39
|
+
const index$A = require("./ele-split-panel/index");
|
|
40
|
+
const index$B = require("./ele-steps/index");
|
|
41
|
+
const index$C = require("./ele-tabs/index");
|
|
42
|
+
const index$D = require("./ele-tab-tool/index");
|
|
43
|
+
const index$E = require("./ele-tab-wrap/index");
|
|
44
|
+
const index$F = require("./ele-table/index");
|
|
45
|
+
const index$G = require("./ele-table-select/index");
|
|
46
|
+
const index$H = require("./ele-text/index");
|
|
47
|
+
const index$I = require("./ele-tool/index");
|
|
48
|
+
const index$J = require("./ele-toolbar/index");
|
|
49
|
+
const index$K = require("./ele-tooltip/index");
|
|
50
|
+
const index$L = require("./ele-tour/index");
|
|
51
|
+
const index$M = require("./ele-tree-select/index");
|
|
52
|
+
const index$N = require("./ele-upload-list/index");
|
|
53
|
+
const index$O = require("./ele-virtual-table/index");
|
|
54
|
+
const index$P = require("./ele-watermark/index");
|
|
56
55
|
exports.EleAdminLayout = index;
|
|
57
56
|
exports.EleAlert = index$1;
|
|
58
57
|
exports.EleApp = index$2;
|
|
@@ -78,31 +77,31 @@ exports.EleIconSelect = index$l;
|
|
|
78
77
|
exports.EleImageViewer = index$m;
|
|
79
78
|
exports.EleLoading = index$n;
|
|
80
79
|
exports.EleMenus = index$o;
|
|
80
|
+
exports.EleDialog = index$p;
|
|
81
81
|
exports.EleModal = index$p;
|
|
82
|
-
exports.
|
|
83
|
-
exports.
|
|
84
|
-
exports.
|
|
85
|
-
exports.
|
|
86
|
-
exports.
|
|
87
|
-
exports.
|
|
88
|
-
exports.
|
|
89
|
-
exports.
|
|
90
|
-
exports.
|
|
91
|
-
exports.
|
|
92
|
-
exports.
|
|
93
|
-
exports.
|
|
94
|
-
exports.
|
|
95
|
-
exports.
|
|
96
|
-
exports.
|
|
97
|
-
exports.
|
|
98
|
-
exports.
|
|
99
|
-
exports.
|
|
100
|
-
exports.
|
|
101
|
-
exports.
|
|
102
|
-
exports.
|
|
103
|
-
exports.
|
|
104
|
-
exports.
|
|
105
|
-
exports.
|
|
106
|
-
exports.
|
|
107
|
-
exports.
|
|
108
|
-
exports.EleWatermark = index$Q;
|
|
82
|
+
exports.ElePage = index$q;
|
|
83
|
+
exports.ElePagination = index$r;
|
|
84
|
+
exports.ElePopconfirm = index$s;
|
|
85
|
+
exports.ElePopover = index$t;
|
|
86
|
+
exports.ElePrinter = index$u;
|
|
87
|
+
exports.EleProLayout = index$v;
|
|
88
|
+
exports.EleProTable = index$w;
|
|
89
|
+
exports.EleQrCode = index$x;
|
|
90
|
+
exports.EleQrCodeSvg = index$y;
|
|
91
|
+
exports.EleSegmented = index$z;
|
|
92
|
+
exports.EleSplitPanel = index$A;
|
|
93
|
+
exports.EleSteps = index$B;
|
|
94
|
+
exports.EleTabs = index$C;
|
|
95
|
+
exports.EleTabTool = index$D;
|
|
96
|
+
exports.EleTabWrap = index$E;
|
|
97
|
+
exports.EleTable = index$F;
|
|
98
|
+
exports.EleTableSelect = index$G;
|
|
99
|
+
exports.EleText = index$H;
|
|
100
|
+
exports.EleTool = index$I;
|
|
101
|
+
exports.EleToolbar = index$J;
|
|
102
|
+
exports.EleTooltip = index$K;
|
|
103
|
+
exports.EleTour = index$L;
|
|
104
|
+
exports.EleTreeSelect = index$M;
|
|
105
|
+
exports.EleUploadList = index$N;
|
|
106
|
+
exports.EleVirtualTable = index$O;
|
|
107
|
+
exports.EleWatermark = index$P;
|
package/lib/ele-dialog/index.cjs
CHANGED
|
@@ -18,15 +18,15 @@ const _sfc_main = vue.defineComponent({
|
|
|
18
18
|
ReceiverView
|
|
19
19
|
},
|
|
20
20
|
inheritAttrs: false,
|
|
21
|
-
props: props.
|
|
22
|
-
emits: props.
|
|
21
|
+
props: props.eleDialogProps,
|
|
22
|
+
emits: props.eleDialogEmits,
|
|
23
23
|
setup(props2, { emit }) {
|
|
24
24
|
const layoutState = util.useLayoutState();
|
|
25
25
|
const isResponsive = util.useResponsive(props2);
|
|
26
26
|
const dialogRef = vue.ref(null);
|
|
27
27
|
const isFullscreen = vue.ref(props2.fullscreen ?? false);
|
|
28
28
|
const isActivated = vue.ref(true);
|
|
29
|
-
const
|
|
29
|
+
const modalClass = vue.computed(() => {
|
|
30
30
|
const classes = [util$1.wrapperClass];
|
|
31
31
|
if (props2.responsive ?? isResponsive.value ?? true) {
|
|
32
32
|
classes.push("ele-dialog-responsive");
|
|
@@ -77,11 +77,11 @@ const _sfc_main = vue.defineComponent({
|
|
|
77
77
|
return classes.join(" ");
|
|
78
78
|
});
|
|
79
79
|
const teleportTo = vue.computed(() => {
|
|
80
|
-
return util$1.
|
|
80
|
+
return util$1.getDialogContainer(
|
|
81
81
|
props2.inner,
|
|
82
82
|
props2.multiple,
|
|
83
83
|
props2.appendTo,
|
|
84
|
-
layoutState.
|
|
84
|
+
layoutState.dialogsEl
|
|
85
85
|
);
|
|
86
86
|
});
|
|
87
87
|
const teleportDisabled = vue.computed(() => {
|
|
@@ -96,17 +96,17 @@ const _sfc_main = vue.defineComponent({
|
|
|
96
96
|
handleResizeTouchstart,
|
|
97
97
|
bindAutoTopEvent,
|
|
98
98
|
unbindAutoTopEvent,
|
|
99
|
-
|
|
99
|
+
topDialog,
|
|
100
100
|
setInitPosition,
|
|
101
|
-
|
|
102
|
-
} = util$1.
|
|
101
|
+
resetDialogStyle
|
|
102
|
+
} = util$1.useDialogEvent(dialogRef, props2, isFullscreen);
|
|
103
103
|
const updateModelValue = (modelValue) => {
|
|
104
104
|
emit("update:modelValue", modelValue);
|
|
105
105
|
};
|
|
106
106
|
const toggleFullscreen = (fullscreen) => {
|
|
107
107
|
isFullscreen.value = fullscreen ?? !isFullscreen.value;
|
|
108
108
|
vue.nextTick(() => {
|
|
109
|
-
|
|
109
|
+
topDialog();
|
|
110
110
|
});
|
|
111
111
|
emit("update:fullscreen", isFullscreen.value);
|
|
112
112
|
};
|
|
@@ -116,11 +116,11 @@ const _sfc_main = vue.defineComponent({
|
|
|
116
116
|
}
|
|
117
117
|
vue.nextTick(() => {
|
|
118
118
|
if (props2.resetOnClose) {
|
|
119
|
-
|
|
119
|
+
resetDialogStyle();
|
|
120
120
|
} else {
|
|
121
121
|
setInitPosition();
|
|
122
122
|
}
|
|
123
|
-
|
|
123
|
+
topDialog();
|
|
124
124
|
});
|
|
125
125
|
emit("open");
|
|
126
126
|
};
|
|
@@ -161,7 +161,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
161
161
|
return {
|
|
162
162
|
dialogRef,
|
|
163
163
|
isFullscreen,
|
|
164
|
-
|
|
164
|
+
modalClass,
|
|
165
165
|
teleportTo,
|
|
166
166
|
teleportDisabled,
|
|
167
167
|
handleHeaderMousedown,
|
|
@@ -205,7 +205,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
205
205
|
width: _ctx.width,
|
|
206
206
|
fullscreen: false,
|
|
207
207
|
modal: _ctx.multiple ? false : _ctx.modal,
|
|
208
|
-
modalClass: _ctx.
|
|
208
|
+
modalClass: _ctx.modalClass,
|
|
209
209
|
appendToBody: false,
|
|
210
210
|
lockScroll: _ctx.inner || _ctx.multiple ? false : _ctx.lockScroll,
|
|
211
211
|
openDelay: _ctx.openDelay,
|
|
@@ -91,7 +91,7 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
91
91
|
}, {
|
|
92
92
|
dialogRef: import('vue').Ref<ElDialogInstance>;
|
|
93
93
|
isFullscreen: import('vue').Ref<boolean>;
|
|
94
|
-
|
|
94
|
+
modalClass: import('vue').ComputedRef<string>;
|
|
95
95
|
teleportTo: import('vue').ComputedRef<string | Element>;
|
|
96
96
|
teleportDisabled: import('vue').ComputedRef<boolean>;
|
|
97
97
|
handleHeaderMousedown: (e: MouseEvent) => void;
|
|
@@ -238,8 +238,8 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
238
238
|
minHeight: number;
|
|
239
239
|
multiple: boolean;
|
|
240
240
|
responsive: boolean;
|
|
241
|
+
inner: boolean;
|
|
241
242
|
resetOnClose: boolean;
|
|
242
243
|
maxable: boolean;
|
|
243
|
-
inner: boolean;
|
|
244
244
|
}, {}>;
|
|
245
245
|
export default _default;
|
package/lib/ele-dialog/props.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const elementPlus = require("element-plus");
|
|
4
|
-
const
|
|
4
|
+
const eleDialogProps = {
|
|
5
5
|
...elementPlus.dialogProps,
|
|
6
6
|
appendToBody: {
|
|
7
7
|
type: Boolean,
|
|
@@ -60,12 +60,12 @@ const modalProps = {
|
|
|
60
60
|
/** 是否是表单弹窗 */
|
|
61
61
|
form: Boolean
|
|
62
62
|
};
|
|
63
|
-
const
|
|
63
|
+
const eleDialogEmits = {
|
|
64
64
|
...elementPlus.dialogEmits,
|
|
65
65
|
/** 更新全屏状态 */
|
|
66
66
|
"update:fullscreen": (_fullscreen) => true
|
|
67
67
|
};
|
|
68
68
|
const dialogPropKeys = Object.keys(elementPlus.dialogProps);
|
|
69
69
|
exports.dialogPropKeys = dialogPropKeys;
|
|
70
|
-
exports.
|
|
71
|
-
exports.
|
|
70
|
+
exports.eleDialogEmits = eleDialogEmits;
|
|
71
|
+
exports.eleDialogProps = eleDialogProps;
|
|
@@ -6,7 +6,7 @@ import { Resizable, MoveOut, Position } from './types';
|
|
|
6
6
|
/**
|
|
7
7
|
* 属性
|
|
8
8
|
*/
|
|
9
|
-
export declare const
|
|
9
|
+
export declare const eleDialogProps: {
|
|
10
10
|
appendToBody: {
|
|
11
11
|
type: BooleanConstructor;
|
|
12
12
|
default: boolean;
|
|
@@ -113,11 +113,11 @@ export declare const modalProps: {
|
|
|
113
113
|
title: import('element-plus/es/utils/index').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
|
|
114
114
|
ariaLevel: import('element-plus/es/utils/index').EpPropFinalized<StringConstructor, unknown, unknown, "2", boolean>;
|
|
115
115
|
};
|
|
116
|
-
export type
|
|
116
|
+
export type DialogProps = ExtractPropTypes<typeof dialogProps>;
|
|
117
117
|
/**
|
|
118
118
|
* 事件
|
|
119
119
|
*/
|
|
120
|
-
export declare const
|
|
120
|
+
export declare const eleDialogEmits: {
|
|
121
121
|
/** 更新全屏状态 */
|
|
122
122
|
'update:fullscreen': (_fullscreen: boolean) => boolean;
|
|
123
123
|
open: () => boolean;
|
package/lib/ele-dialog/util.cjs
CHANGED
|
@@ -8,18 +8,18 @@ const wrapperClass = "ele-dialog";
|
|
|
8
8
|
const closedClass = "ele-dialog-closed";
|
|
9
9
|
const fixTop = 0.65;
|
|
10
10
|
const fixLeft = 0.65;
|
|
11
|
-
function
|
|
11
|
+
function getDialogEl(dialogRef) {
|
|
12
12
|
var _a, _b;
|
|
13
13
|
const el = (_b = vue.unref((_a = vue.unref(dialogRef)) == null ? void 0 : _a.dialogContentRef)) == null ? void 0 : _b.$el;
|
|
14
14
|
return el;
|
|
15
15
|
}
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
function initDialogStyle(dialogEl) {
|
|
17
|
+
dialogEl.style.top = dialogEl.offsetTop + "px";
|
|
18
|
+
dialogEl.style.left = dialogEl.offsetLeft + "px";
|
|
19
|
+
dialogEl.style.right = "auto";
|
|
20
|
+
dialogEl.style.bottom = "auto";
|
|
21
|
+
dialogEl.style.position = "absolute";
|
|
22
|
+
dialogEl.style.margin = "0";
|
|
23
23
|
}
|
|
24
24
|
function canMoveOut(moveOut, direction) {
|
|
25
25
|
if (direction && moveOut != null && Array.isArray(moveOut)) {
|
|
@@ -27,9 +27,9 @@ function canMoveOut(moveOut, direction) {
|
|
|
27
27
|
}
|
|
28
28
|
return false;
|
|
29
29
|
}
|
|
30
|
-
function
|
|
30
|
+
function getDialogContainer(inner, multiple, appendTo, dialogsEl) {
|
|
31
31
|
if (multiple) {
|
|
32
|
-
const parent = (inner ?
|
|
32
|
+
const parent = (inner ? dialogsEl : void 0) || document.body;
|
|
33
33
|
const wrapper = core.queryChild(parent, containerClass);
|
|
34
34
|
if (wrapper) {
|
|
35
35
|
return wrapper;
|
|
@@ -39,37 +39,37 @@ function getModalContainer(inner, multiple, appendTo, modalsEl) {
|
|
|
39
39
|
parent.appendChild(elem);
|
|
40
40
|
return elem;
|
|
41
41
|
}
|
|
42
|
-
if (inner &&
|
|
43
|
-
return
|
|
42
|
+
if (inner && dialogsEl) {
|
|
43
|
+
return dialogsEl;
|
|
44
44
|
}
|
|
45
45
|
return appendTo || "body";
|
|
46
46
|
}
|
|
47
|
-
function
|
|
48
|
-
let
|
|
47
|
+
function useDialogMove(dialogRef, props, isFullscreen) {
|
|
48
|
+
let dialogEl = null;
|
|
49
49
|
let wrapEl = null;
|
|
50
50
|
let downOL = null;
|
|
51
51
|
let downOT = null;
|
|
52
52
|
const { handleMousedown, handleTouchstart } = hook.useMoveEvent({
|
|
53
53
|
start: () => {
|
|
54
|
-
|
|
55
|
-
wrapEl =
|
|
56
|
-
if (!
|
|
54
|
+
dialogEl = getDialogEl(dialogRef);
|
|
55
|
+
wrapEl = dialogEl == null ? void 0 : dialogEl.parentElement;
|
|
56
|
+
if (!dialogEl || !wrapEl || !props.draggable || isFullscreen.value) {
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
downOL =
|
|
62
|
-
downOT =
|
|
59
|
+
dialogEl.style.userSelect = "none";
|
|
60
|
+
initDialogStyle(dialogEl);
|
|
61
|
+
downOL = dialogEl.offsetLeft;
|
|
62
|
+
downOT = dialogEl.offsetTop;
|
|
63
63
|
},
|
|
64
64
|
move: ({ distanceX, distanceY, e }) => {
|
|
65
|
-
if (!
|
|
65
|
+
if (!dialogEl || !wrapEl || downOL == null || downOT == null || distanceX == null || distanceY == null) {
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
68
|
e.preventDefault();
|
|
69
69
|
let positionLeft = distanceX + downOL;
|
|
70
70
|
let positionTop = distanceY + downOT;
|
|
71
|
-
const limitL = wrapEl.clientWidth -
|
|
72
|
-
const limitT = wrapEl.clientHeight -
|
|
71
|
+
const limitL = wrapEl.clientWidth - dialogEl.clientWidth - fixLeft;
|
|
72
|
+
const limitT = wrapEl.clientHeight - dialogEl.clientHeight - fixTop;
|
|
73
73
|
if (!props.moveOut) {
|
|
74
74
|
if (positionLeft < 0) {
|
|
75
75
|
positionLeft = 0;
|
|
@@ -104,16 +104,16 @@ function useModalMove(dialogRef, props, isFullscreen) {
|
|
|
104
104
|
positionTop = minLimitT;
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
dialogEl.style.left = `${Math.floor(positionLeft)}px`;
|
|
108
|
+
dialogEl.style.top = `${Math.floor(positionTop)}px`;
|
|
109
109
|
},
|
|
110
110
|
end: () => {
|
|
111
|
-
if (
|
|
112
|
-
|
|
111
|
+
if (dialogEl) {
|
|
112
|
+
dialogEl.style.userSelect = "";
|
|
113
113
|
}
|
|
114
114
|
downOL = null;
|
|
115
115
|
downOT = null;
|
|
116
|
-
|
|
116
|
+
dialogEl = null;
|
|
117
117
|
wrapEl = null;
|
|
118
118
|
},
|
|
119
119
|
touchmoveOptions: { passive: false }
|
|
@@ -123,52 +123,52 @@ function useModalMove(dialogRef, props, isFullscreen) {
|
|
|
123
123
|
handleHeaderTouchstart: handleTouchstart
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
|
-
function
|
|
127
|
-
let
|
|
126
|
+
function useDialogResize(dialogRef, props, isFullscreen) {
|
|
127
|
+
let dialogEl = null;
|
|
128
128
|
let wrapEl = null;
|
|
129
129
|
let downW = null;
|
|
130
130
|
let downH = null;
|
|
131
131
|
const { handleMousedown, handleTouchstart } = hook.useMoveEvent({
|
|
132
132
|
start: () => {
|
|
133
|
-
|
|
134
|
-
wrapEl =
|
|
135
|
-
if (!
|
|
133
|
+
dialogEl = getDialogEl(dialogRef);
|
|
134
|
+
wrapEl = dialogEl == null ? void 0 : dialogEl.parentElement;
|
|
135
|
+
if (!dialogEl || !wrapEl || !props.resizable || isFullscreen.value) {
|
|
136
136
|
return;
|
|
137
137
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
downW =
|
|
141
|
-
downH =
|
|
138
|
+
dialogEl.style.userSelect = "none";
|
|
139
|
+
initDialogStyle(dialogEl);
|
|
140
|
+
downW = dialogEl.clientWidth;
|
|
141
|
+
downH = dialogEl.clientHeight;
|
|
142
142
|
},
|
|
143
143
|
move: ({ distanceX, distanceY, e }) => {
|
|
144
|
-
if (!
|
|
144
|
+
if (!dialogEl || !wrapEl || downW == null || downH == null || distanceX == null || distanceY == null) {
|
|
145
145
|
return;
|
|
146
146
|
}
|
|
147
147
|
e.preventDefault();
|
|
148
148
|
if (props.resizable !== "vertical") {
|
|
149
149
|
const w = distanceX + downW;
|
|
150
|
-
const maxW = wrapEl.clientWidth -
|
|
150
|
+
const maxW = wrapEl.clientWidth - dialogEl.offsetLeft - fixLeft;
|
|
151
151
|
const nw = (w < props.minWidth ? props.minWidth : !canMoveOut(props.moveOut, "right") && w > maxW ? maxW : w) + "px";
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
152
|
+
dialogEl.style.width = nw;
|
|
153
|
+
dialogEl.style.maxWidth = nw;
|
|
154
|
+
dialogEl.style.minWidth = nw;
|
|
155
155
|
}
|
|
156
156
|
if (props.resizable !== "horizontal") {
|
|
157
157
|
const h = distanceY + downH;
|
|
158
|
-
const maxH = wrapEl.clientHeight -
|
|
158
|
+
const maxH = wrapEl.clientHeight - dialogEl.offsetTop - fixTop;
|
|
159
159
|
const nh = (h < props.minHeight ? props.minHeight : !canMoveOut(props.moveOut, "bottom") && h > maxH ? maxH : h) + "px";
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
160
|
+
dialogEl.style.height = nh;
|
|
161
|
+
dialogEl.style.maxHeight = nh;
|
|
162
|
+
dialogEl.style.minHeight = nh;
|
|
163
163
|
}
|
|
164
164
|
},
|
|
165
165
|
end: () => {
|
|
166
|
-
if (
|
|
167
|
-
|
|
166
|
+
if (dialogEl) {
|
|
167
|
+
dialogEl.style.userSelect = "";
|
|
168
168
|
}
|
|
169
169
|
downW = null;
|
|
170
170
|
downH = null;
|
|
171
|
-
|
|
171
|
+
dialogEl = null;
|
|
172
172
|
wrapEl = null;
|
|
173
173
|
},
|
|
174
174
|
touchmoveOptions: { passive: false }
|
|
@@ -178,38 +178,30 @@ function useModalResize(dialogRef, props, isFullscreen) {
|
|
|
178
178
|
handleResizeTouchstart: handleTouchstart
|
|
179
179
|
};
|
|
180
180
|
}
|
|
181
|
-
function
|
|
182
|
-
const { handleHeaderMousedown, handleHeaderTouchstart } =
|
|
183
|
-
|
|
184
|
-
props,
|
|
185
|
-
isFullscreen
|
|
186
|
-
);
|
|
187
|
-
const { handleResizeMousedown, handleResizeTouchstart } = useModalResize(
|
|
188
|
-
dialogRef,
|
|
189
|
-
props,
|
|
190
|
-
isFullscreen
|
|
191
|
-
);
|
|
181
|
+
function useDialogEvent(dialogRef, props, isFullscreen) {
|
|
182
|
+
const { handleHeaderMousedown, handleHeaderTouchstart } = useDialogMove(dialogRef, props, isFullscreen);
|
|
183
|
+
const { handleResizeMousedown, handleResizeTouchstart } = useDialogResize(dialogRef, props, isFullscreen);
|
|
192
184
|
let isInitPosition = true;
|
|
193
185
|
const getZIndex = () => {
|
|
194
186
|
return props.zIndex ?? 2e3;
|
|
195
187
|
};
|
|
196
|
-
const
|
|
188
|
+
const topDialog = (el) => {
|
|
197
189
|
var _a;
|
|
198
|
-
const
|
|
199
|
-
const overlayEl = (_a =
|
|
190
|
+
const dialogEl = el ?? getDialogEl(dialogRef);
|
|
191
|
+
const overlayEl = (_a = dialogEl == null ? void 0 : dialogEl.parentElement) == null ? void 0 : _a.parentElement;
|
|
200
192
|
if (!overlayEl) {
|
|
201
193
|
return;
|
|
202
194
|
}
|
|
203
195
|
const currentIndex = core.getCurrentStyle(overlayEl).zIndex;
|
|
204
196
|
const containerEl = overlayEl.parentElement;
|
|
205
197
|
const cls = `.${wrapperClass}:not(.${closedClass})`;
|
|
206
|
-
const
|
|
198
|
+
const dialogs = containerEl ? containerEl.querySelectorAll(cls) : void 0;
|
|
207
199
|
let maxIndex = 0;
|
|
208
|
-
(
|
|
209
|
-
const zIndex = core.getCurrentStyle(
|
|
200
|
+
(dialogs ? Array.from(dialogs) : []).forEach((dialogEl2) => {
|
|
201
|
+
const zIndex = core.getCurrentStyle(dialogEl2).zIndex;
|
|
210
202
|
if (zIndex != null) {
|
|
211
203
|
const index = Number(zIndex);
|
|
212
|
-
if (index >= maxIndex && (!overlayEl ||
|
|
204
|
+
if (index >= maxIndex && (!overlayEl || dialogEl2 !== overlayEl)) {
|
|
213
205
|
maxIndex = index + 1;
|
|
214
206
|
}
|
|
215
207
|
}
|
|
@@ -220,21 +212,21 @@ function useModalEvent(dialogRef, props, isFullscreen) {
|
|
|
220
212
|
};
|
|
221
213
|
const mousedownListener = (event) => {
|
|
222
214
|
if (props.multiple) {
|
|
223
|
-
|
|
215
|
+
topDialog(event.currentTarget);
|
|
224
216
|
}
|
|
225
217
|
};
|
|
226
218
|
const bindAutoTopEvent = () => {
|
|
227
|
-
const
|
|
228
|
-
if (
|
|
229
|
-
|
|
230
|
-
|
|
219
|
+
const dialogEl = getDialogEl(dialogRef);
|
|
220
|
+
if (dialogEl) {
|
|
221
|
+
dialogEl.addEventListener("mousedown", mousedownListener);
|
|
222
|
+
dialogEl.addEventListener("touchstart", mousedownListener);
|
|
231
223
|
}
|
|
232
224
|
};
|
|
233
225
|
const unbindAutoTopEvent = () => {
|
|
234
|
-
const
|
|
235
|
-
if (
|
|
236
|
-
|
|
237
|
-
|
|
226
|
+
const dialogEl = getDialogEl(dialogRef);
|
|
227
|
+
if (dialogEl) {
|
|
228
|
+
dialogEl.removeEventListener("mousedown", mousedownListener);
|
|
229
|
+
dialogEl.removeEventListener("touchstart", mousedownListener);
|
|
238
230
|
}
|
|
239
231
|
};
|
|
240
232
|
const getPositionMargin = (position) => {
|
|
@@ -255,29 +247,29 @@ function useModalEvent(dialogRef, props, isFullscreen) {
|
|
|
255
247
|
const setInitPosition = () => {
|
|
256
248
|
if (isInitPosition) {
|
|
257
249
|
isInitPosition = false;
|
|
258
|
-
const
|
|
250
|
+
const dialogEl = getDialogEl(dialogRef);
|
|
259
251
|
const margin = getPositionMargin(getPosition());
|
|
260
|
-
if (
|
|
261
|
-
|
|
252
|
+
if (dialogEl && margin != null) {
|
|
253
|
+
dialogEl.style.margin = margin;
|
|
262
254
|
}
|
|
263
255
|
}
|
|
264
256
|
};
|
|
265
|
-
const
|
|
266
|
-
const
|
|
267
|
-
if (
|
|
257
|
+
const resetDialogStyle = () => {
|
|
258
|
+
const dialogEl = getDialogEl(dialogRef);
|
|
259
|
+
if (dialogEl) {
|
|
268
260
|
const w = props.width;
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
261
|
+
dialogEl.style.margin = getPositionMargin(getPosition()) || "";
|
|
262
|
+
dialogEl.style.position = "";
|
|
263
|
+
dialogEl.style.top = "";
|
|
264
|
+
dialogEl.style.left = "";
|
|
265
|
+
dialogEl.style.right = "";
|
|
266
|
+
dialogEl.style.bottom = "";
|
|
267
|
+
dialogEl.style.height = "";
|
|
268
|
+
dialogEl.style.maxHeight = "";
|
|
269
|
+
dialogEl.style.minHeight = "";
|
|
270
|
+
dialogEl.style.width = typeof w === "number" ? `${w}px` : w ?? "";
|
|
271
|
+
dialogEl.style.maxWidth = "";
|
|
272
|
+
dialogEl.style.minWidth = "";
|
|
281
273
|
}
|
|
282
274
|
};
|
|
283
275
|
return {
|
|
@@ -287,15 +279,15 @@ function useModalEvent(dialogRef, props, isFullscreen) {
|
|
|
287
279
|
handleResizeTouchstart,
|
|
288
280
|
bindAutoTopEvent,
|
|
289
281
|
unbindAutoTopEvent,
|
|
290
|
-
|
|
282
|
+
topDialog,
|
|
291
283
|
setInitPosition,
|
|
292
|
-
|
|
284
|
+
resetDialogStyle
|
|
293
285
|
};
|
|
294
286
|
}
|
|
295
287
|
exports.closedClass = closedClass;
|
|
296
288
|
exports.containerClass = containerClass;
|
|
297
|
-
exports.
|
|
298
|
-
exports.
|
|
299
|
-
exports.
|
|
300
|
-
exports.
|
|
289
|
+
exports.getDialogContainer = getDialogContainer;
|
|
290
|
+
exports.useDialogEvent = useDialogEvent;
|
|
291
|
+
exports.useDialogMove = useDialogMove;
|
|
292
|
+
exports.useDialogResize = useDialogResize;
|
|
301
293
|
exports.wrapperClass = wrapperClass;
|
package/lib/ele-dialog/util.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Ref } from 'vue';
|
|
2
2
|
import { ElDialogInstance } from '../ele-app/el';
|
|
3
|
-
import {
|
|
3
|
+
import { DialogProps } from './props';
|
|
4
4
|
|
|
5
5
|
export declare const containerClass = "ele-dialog-container";
|
|
6
6
|
export declare const wrapperClass = "ele-dialog";
|
|
@@ -10,16 +10,16 @@ export declare const closedClass = "ele-dialog-closed";
|
|
|
10
10
|
* @param inner 是否限制在主体内部
|
|
11
11
|
* @param multiple 是否支持同时打开多个
|
|
12
12
|
* @param appendTo 自定义插入的容器
|
|
13
|
-
* @param
|
|
13
|
+
* @param dialogsEl 限制在主体内部时的容器
|
|
14
14
|
*/
|
|
15
|
-
export declare function
|
|
15
|
+
export declare function getDialogContainer(inner?: boolean, multiple?: boolean, appendTo?: string | HTMLElement, dialogsEl?: HTMLElement | null): HTMLElement | string;
|
|
16
16
|
/**
|
|
17
17
|
* 弹窗支持移动
|
|
18
18
|
* @param dialogRef 弹窗实例
|
|
19
19
|
* @param props 属性
|
|
20
20
|
* @param isFullscreen 全屏状态
|
|
21
21
|
*/
|
|
22
|
-
export declare function
|
|
22
|
+
export declare function useDialogMove(dialogRef: Ref<ElDialogInstance>, props: DialogProps, isFullscreen: Ref<boolean>): {
|
|
23
23
|
handleHeaderMousedown: (e: MouseEvent) => void;
|
|
24
24
|
handleHeaderTouchstart: (e: TouchEvent) => void;
|
|
25
25
|
};
|
|
@@ -29,7 +29,7 @@ export declare function useModalMove(dialogRef: Ref<ElDialogInstance>, props: Mo
|
|
|
29
29
|
* @param props 属性
|
|
30
30
|
* @param isFullscreen 全屏状态
|
|
31
31
|
*/
|
|
32
|
-
export declare function
|
|
32
|
+
export declare function useDialogResize(dialogRef: Ref<ElDialogInstance>, props: DialogProps, isFullscreen: Ref<boolean>): {
|
|
33
33
|
handleResizeMousedown: (e: MouseEvent) => void;
|
|
34
34
|
handleResizeTouchstart: (e: TouchEvent) => void;
|
|
35
35
|
};
|
|
@@ -39,14 +39,14 @@ export declare function useModalResize(dialogRef: Ref<ElDialogInstance>, props:
|
|
|
39
39
|
* @param props 属性
|
|
40
40
|
* @param isFullscreen 全屏状态
|
|
41
41
|
*/
|
|
42
|
-
export declare function
|
|
42
|
+
export declare function useDialogEvent(dialogRef: Ref<ElDialogInstance>, props: DialogProps, isFullscreen: Ref<boolean>): {
|
|
43
43
|
handleHeaderMousedown: (e: MouseEvent) => void;
|
|
44
44
|
handleHeaderTouchstart: (e: TouchEvent) => void;
|
|
45
45
|
handleResizeMousedown: (e: MouseEvent) => void;
|
|
46
46
|
handleResizeTouchstart: (e: TouchEvent) => void;
|
|
47
47
|
bindAutoTopEvent: () => void;
|
|
48
48
|
unbindAutoTopEvent: () => void;
|
|
49
|
-
|
|
49
|
+
topDialog: (el?: HTMLElement) => void;
|
|
50
50
|
setInitPosition: () => void;
|
|
51
|
-
|
|
51
|
+
resetDialogStyle: () => void;
|
|
52
52
|
};
|