ele-admin-plus 1.1.9-beta.10 → 1.1.9-beta.11
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/ele-alert/index.js +2 -2
- package/es/ele-basic-select/index.d.ts +1 -1
- package/es/ele-basic-select/index.js +7 -1
- package/es/ele-config-provider/types.d.ts +3 -1
- package/es/ele-cropper-modal/index.js +1 -1
- package/es/ele-drawer/index.d.ts +8 -5
- package/es/ele-drawer/index.js +107 -113
- package/es/ele-drawer/style/index.scss +48 -105
- package/es/ele-edit-tag/index.js +1 -1
- package/es/ele-file-list/components/file-grid-item.js +1 -1
- package/es/ele-file-list/components/file-table-item.js +1 -1
- package/es/ele-icon-select/components/icon-grid.js +1 -1
- package/es/ele-loading/index.d.ts +0 -4
- package/es/ele-loading/index.js +10 -16
- package/es/ele-map-picker/components/map-view.js +1 -1
- package/es/ele-map-picker/index.js +1 -1
- package/es/ele-menus/index.d.ts +4 -6
- package/es/ele-menus/index.js +1 -1
- package/es/ele-menus/props.d.ts +1 -3
- package/es/ele-menus/props.js +1 -3
- package/es/ele-menus/style/css-var.scss +1 -5
- package/es/ele-modal/index.d.ts +12 -6
- package/es/ele-modal/index.js +163 -184
- package/es/ele-modal/props.d.ts +2 -0
- package/es/ele-modal/props.js +2 -0
- package/es/ele-modal/style/index.scss +85 -146
- package/es/ele-modal/util.d.ts +18 -44
- package/es/ele-modal/util.js +53 -179
- package/es/ele-pagination/index.d.ts +9 -0
- package/es/ele-pagination/index.js +4 -1
- package/es/ele-pagination/props.d.ts +5 -0
- package/es/ele-pagination/props.js +5 -0
- package/es/ele-popconfirm/index.d.ts +3 -3
- package/es/ele-popconfirm/index.js +6 -28
- package/es/ele-popover/index.d.ts +2 -2
- package/es/ele-popover/index.js +6 -14
- package/es/ele-pro-layout/components/pro-header.d.ts +66 -11
- package/es/ele-pro-layout/components/pro-header.js +110 -20
- package/es/ele-pro-layout/components/pro-sidebar.d.ts +2 -7
- package/es/ele-pro-layout/components/pro-sidebar.js +2 -5
- package/es/ele-pro-layout/components/pro-sidebox.d.ts +2 -7
- package/es/ele-pro-layout/components/pro-sidebox.js +2 -5
- package/es/ele-pro-layout/components/tab-dropdown.js +1 -1
- package/es/ele-pro-layout/index.d.ts +25 -27
- package/es/ele-pro-layout/index.js +45 -29
- package/es/ele-pro-layout/props.d.ts +3 -6
- package/es/ele-pro-layout/props.js +2 -4
- package/es/ele-pro-layout/style/css-var.scss +3 -18
- package/es/ele-pro-layout/style/header.scss +74 -9
- package/es/ele-pro-layout/style/layout-mobile.scss +2 -2
- package/es/ele-pro-layout/style/layout-style.scss +8 -3
- package/es/ele-pro-layout/style/layout-theme.scss +48 -23
- package/es/ele-pro-layout/style/layout.scss +23 -3
- package/es/ele-pro-layout/style/sidebar.scss +0 -1
- package/es/ele-pro-layout/style/tabs.scss +19 -11
- package/es/ele-pro-layout/types.d.ts +1 -1
- package/es/ele-pro-table/components/tool-print.js +0 -3
- package/es/ele-pro-table/index.d.ts +3 -5
- package/es/ele-pro-table/index.js +2 -1
- package/es/ele-pro-table/util.d.ts +1 -1
- package/es/ele-tab-wrap/index.js +2 -1
- package/es/ele-table-select/index.d.ts +13 -12
- package/es/ele-table-select/index.js +27 -26
- package/es/ele-tabs/index.js +1 -0
- package/es/ele-tabs/style/css-var.scss +1 -30
- package/es/ele-tabs/style/index.scss +372 -241
- package/es/ele-tabs/types.d.ts +2 -1
- package/es/ele-tooltip/index.js +3 -0
- package/es/ele-tooltip/props.d.ts +5 -0
- package/es/ele-tooltip/props.js +2 -0
- package/es/ele-virtual-table/style/index.scss +1 -1
- package/es/icons/ResizeOutlined.d.ts +2 -0
- package/es/icons/ResizeOutlined.js +30 -0
- package/es/icons/index.d.ts +1 -0
- package/es/icons/index.js +50 -48
- package/es/style/themes/dark.scss +9 -15
- package/es/style/themes/default.scss +56 -80
- package/es/style/themes/rounded.scss +16 -30
- package/lib/ele-alert/index.cjs +2 -2
- package/lib/ele-basic-select/index.cjs +7 -1
- package/lib/ele-basic-select/index.d.ts +1 -1
- package/lib/ele-config-provider/types.d.ts +3 -1
- package/lib/ele-cropper-modal/index.cjs +1 -1
- package/lib/ele-drawer/index.cjs +105 -111
- package/lib/ele-drawer/index.d.ts +8 -5
- package/lib/ele-drawer/style/index.scss +48 -105
- package/lib/ele-edit-tag/index.cjs +1 -1
- package/lib/ele-file-list/components/file-grid-item.cjs +1 -1
- package/lib/ele-file-list/components/file-table-item.cjs +1 -1
- package/lib/ele-icon-select/components/icon-grid.cjs +1 -1
- package/lib/ele-loading/index.cjs +9 -15
- package/lib/ele-loading/index.d.ts +0 -4
- package/lib/ele-map-picker/components/map-view.cjs +1 -1
- package/lib/ele-map-picker/index.cjs +1 -1
- package/lib/ele-menus/index.cjs +1 -1
- package/lib/ele-menus/index.d.ts +4 -6
- package/lib/ele-menus/props.cjs +1 -3
- package/lib/ele-menus/props.d.ts +1 -3
- package/lib/ele-menus/style/css-var.scss +1 -5
- package/lib/ele-modal/index.cjs +176 -197
- package/lib/ele-modal/index.d.ts +12 -6
- package/lib/ele-modal/props.cjs +2 -0
- package/lib/ele-modal/props.d.ts +2 -0
- package/lib/ele-modal/style/index.scss +85 -146
- package/lib/ele-modal/util.cjs +53 -179
- package/lib/ele-modal/util.d.ts +18 -44
- package/lib/ele-pagination/index.cjs +4 -1
- package/lib/ele-pagination/index.d.ts +9 -0
- package/lib/ele-pagination/props.cjs +5 -0
- package/lib/ele-pagination/props.d.ts +5 -0
- package/lib/ele-popconfirm/index.cjs +5 -27
- package/lib/ele-popconfirm/index.d.ts +3 -3
- package/lib/ele-popover/index.cjs +5 -13
- package/lib/ele-popover/index.d.ts +2 -2
- package/lib/ele-pro-layout/components/pro-header.cjs +109 -19
- package/lib/ele-pro-layout/components/pro-header.d.ts +66 -11
- package/lib/ele-pro-layout/components/pro-sidebar.cjs +2 -5
- package/lib/ele-pro-layout/components/pro-sidebar.d.ts +2 -7
- package/lib/ele-pro-layout/components/pro-sidebox.cjs +2 -5
- package/lib/ele-pro-layout/components/pro-sidebox.d.ts +2 -7
- package/lib/ele-pro-layout/components/tab-dropdown.cjs +1 -1
- package/lib/ele-pro-layout/index.cjs +45 -29
- package/lib/ele-pro-layout/index.d.ts +25 -27
- package/lib/ele-pro-layout/props.cjs +2 -4
- package/lib/ele-pro-layout/props.d.ts +3 -6
- package/lib/ele-pro-layout/style/css-var.scss +3 -18
- package/lib/ele-pro-layout/style/header.scss +74 -9
- package/lib/ele-pro-layout/style/layout-mobile.scss +2 -2
- package/lib/ele-pro-layout/style/layout-style.scss +8 -3
- package/lib/ele-pro-layout/style/layout-theme.scss +48 -23
- package/lib/ele-pro-layout/style/layout.scss +23 -3
- package/lib/ele-pro-layout/style/sidebar.scss +0 -1
- package/lib/ele-pro-layout/style/tabs.scss +19 -11
- package/lib/ele-pro-layout/types.d.ts +1 -1
- package/lib/ele-pro-table/components/tool-print.cjs +0 -3
- package/lib/ele-pro-table/index.cjs +2 -1
- package/lib/ele-pro-table/index.d.ts +3 -5
- package/lib/ele-pro-table/util.d.ts +1 -1
- package/lib/ele-tab-wrap/index.cjs +2 -1
- package/lib/ele-table-select/index.cjs +27 -26
- package/lib/ele-table-select/index.d.ts +13 -12
- package/lib/ele-tabs/index.cjs +1 -0
- package/lib/ele-tabs/style/css-var.scss +1 -30
- package/lib/ele-tabs/style/index.scss +372 -241
- package/lib/ele-tabs/types.d.ts +2 -1
- package/lib/ele-tooltip/index.cjs +3 -0
- package/lib/ele-tooltip/props.cjs +2 -0
- package/lib/ele-tooltip/props.d.ts +5 -0
- package/lib/ele-virtual-table/style/index.scss +1 -1
- package/lib/icons/ResizeOutlined.cjs +29 -0
- package/lib/icons/ResizeOutlined.d.ts +2 -0
- package/lib/icons/index.cjs +2 -0
- package/lib/icons/index.d.ts +1 -0
- package/lib/style/themes/dark.scss +9 -15
- package/lib/style/themes/default.scss +56 -80
- package/lib/style/themes/rounded.scss +16 -30
- package/package.json +9 -9
|
@@ -39,72 +39,69 @@
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
+
}
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
/* header */
|
|
45
|
+
.ele-modal-header {
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
box-sizing: border-box;
|
|
49
|
+
padding: eleVar('modal', 'header-padding');
|
|
50
|
+
border-bottom: eleVar('modal', 'header-border');
|
|
51
|
+
}
|
|
51
52
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
53
|
+
.ele-modal-title {
|
|
54
|
+
flex: 1;
|
|
55
|
+
color: eleVar('modal', 'header-color');
|
|
56
|
+
font-size: eleVar('modal', 'header-font-size');
|
|
57
|
+
line-height: eleVar('modal', 'header-line-height');
|
|
58
|
+
font-weight: eleVar('modal', 'header-font-weight');
|
|
59
|
+
box-sizing: border-box;
|
|
60
|
+
}
|
|
60
61
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
&:hover {
|
|
78
|
-
color: eleVar('modal', 'icon-hover-color');
|
|
79
|
-
background: eleVar('modal', 'icon-hover-bg');
|
|
80
|
-
}
|
|
62
|
+
/* 图标按钮 */
|
|
63
|
+
.ele-modal-tool {
|
|
64
|
+
flex-shrink: 0;
|
|
65
|
+
display: flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
justify-content: center;
|
|
68
|
+
width: eleVar('modal', 'icon-size');
|
|
69
|
+
height: eleVar('modal', 'icon-size');
|
|
70
|
+
line-height: eleVar('modal', 'icon-size');
|
|
71
|
+
color: eleVar('modal', 'icon-color');
|
|
72
|
+
font-size: eleVar('modal', 'icon-font-size');
|
|
73
|
+
border-radius: eleVar('modal', 'icon-radius');
|
|
74
|
+
transition: (color $ele-transition, background-color $ele-transition);
|
|
75
|
+
box-sizing: border-box;
|
|
76
|
+
cursor: pointer;
|
|
81
77
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
78
|
+
&:hover {
|
|
79
|
+
color: eleVar('modal', 'icon-hover-color');
|
|
80
|
+
background: eleVar('modal', 'icon-hover-bg');
|
|
85
81
|
}
|
|
86
82
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
padding: eleVar('modal', 'body-padding');
|
|
90
|
-
box-sizing: border-box;
|
|
83
|
+
& + .ele-modal-tool {
|
|
84
|
+
margin-left: eleVar('modal', 'icon-space');
|
|
91
85
|
}
|
|
86
|
+
}
|
|
92
87
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
box-sizing: border-box;
|
|
98
|
-
}
|
|
88
|
+
/* body */
|
|
89
|
+
.ele-modal-body {
|
|
90
|
+
padding: eleVar('modal', 'body-padding');
|
|
91
|
+
box-sizing: border-box;
|
|
99
92
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
& > .ele-modal-body {
|
|
103
|
-
padding: eleVar('modal', 'form-body-padding');
|
|
104
|
-
}
|
|
93
|
+
&.is-form {
|
|
94
|
+
padding: eleVar('modal', 'form-body-padding');
|
|
105
95
|
}
|
|
106
96
|
}
|
|
107
97
|
|
|
98
|
+
/* footer */
|
|
99
|
+
.ele-modal-footer {
|
|
100
|
+
padding: eleVar('modal', 'footer-padding');
|
|
101
|
+
border-top: eleVar('modal', 'footer-border');
|
|
102
|
+
box-sizing: border-box;
|
|
103
|
+
}
|
|
104
|
+
|
|
108
105
|
/* 默认位置 */
|
|
109
106
|
.ele-modal-top > .el-overlay-dialog > .el-dialog {
|
|
110
107
|
margin: 0;
|
|
@@ -149,26 +146,24 @@
|
|
|
149
146
|
}
|
|
150
147
|
|
|
151
148
|
/* 支持拉伸 */
|
|
152
|
-
.ele-modal-
|
|
153
|
-
content: '';
|
|
149
|
+
.ele-modal-resize-icon {
|
|
154
150
|
position: absolute;
|
|
155
|
-
right:
|
|
156
|
-
bottom:
|
|
157
|
-
|
|
158
|
-
|
|
151
|
+
right: 2px;
|
|
152
|
+
bottom: 2px;
|
|
153
|
+
display: flex;
|
|
154
|
+
align-items: center;
|
|
155
|
+
justify-content: center;
|
|
156
|
+
color: eleVar('modal', 'icon-color');
|
|
157
|
+
font-size: 12px;
|
|
159
158
|
cursor: se-resize;
|
|
160
|
-
background-image: eleVar('modal', 'resize-bg');
|
|
161
|
-
background-position: 0 0;
|
|
162
|
-
background-size: 10px 10px;
|
|
163
|
-
background-repeat: no-repeat;
|
|
164
|
-
}
|
|
165
159
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
160
|
+
&.is-horizontal {
|
|
161
|
+
cursor: e-resize;
|
|
162
|
+
}
|
|
169
163
|
|
|
170
|
-
|
|
171
|
-
|
|
164
|
+
&.is-vertical {
|
|
165
|
+
cursor: s-resize;
|
|
166
|
+
}
|
|
172
167
|
}
|
|
173
168
|
|
|
174
169
|
.ele-modal-resizable > .el-overlay-dialog > .el-dialog,
|
|
@@ -190,35 +185,36 @@
|
|
|
190
185
|
width: 100% !important;
|
|
191
186
|
height: 100% !important;
|
|
192
187
|
display: flex !important;
|
|
193
|
-
max-width:
|
|
194
|
-
min-width:
|
|
195
|
-
max-height:
|
|
196
|
-
min-height:
|
|
197
|
-
border:
|
|
198
|
-
border-radius: 0;
|
|
188
|
+
max-width: none !important;
|
|
189
|
+
min-width: auto !important;
|
|
190
|
+
max-height: none !important;
|
|
191
|
+
min-height: auto !important;
|
|
192
|
+
border-radius: 0 !important;
|
|
199
193
|
|
|
200
194
|
& > .el-dialog__header {
|
|
201
|
-
cursor: default
|
|
202
|
-
}
|
|
195
|
+
cursor: default;
|
|
203
196
|
|
|
204
|
-
|
|
205
|
-
|
|
197
|
+
& > .ele-modal-resize-icon {
|
|
198
|
+
display: none;
|
|
199
|
+
}
|
|
206
200
|
}
|
|
207
201
|
}
|
|
208
202
|
|
|
209
|
-
/*
|
|
210
|
-
|
|
203
|
+
/* 同时打开多个 */
|
|
204
|
+
.ele-modal-container {
|
|
211
205
|
position: absolute;
|
|
212
206
|
top: 0;
|
|
213
207
|
left: 0;
|
|
214
208
|
right: 0;
|
|
215
209
|
bottom: 0;
|
|
210
|
+
width: 100%;
|
|
211
|
+
height: 100%;
|
|
216
212
|
pointer-events: none;
|
|
217
213
|
z-index: elVar('index', 'popper');
|
|
218
214
|
}
|
|
219
215
|
|
|
220
216
|
.ele-modal-multiple {
|
|
221
|
-
pointer-events: none;
|
|
217
|
+
pointer-events: none !important;
|
|
222
218
|
position: absolute !important;
|
|
223
219
|
|
|
224
220
|
& > .el-overlay-dialog {
|
|
@@ -236,70 +232,13 @@
|
|
|
236
232
|
display: none !important;
|
|
237
233
|
}
|
|
238
234
|
|
|
239
|
-
/*
|
|
235
|
+
/* 最大宽度适应屏幕 */
|
|
240
236
|
.ele-modal-responsive > .el-overlay-dialog > .el-dialog {
|
|
241
|
-
max-width: calc(
|
|
237
|
+
max-width: calc(100% - #{eleVar('modal', 'mobile-space')} * 2);
|
|
242
238
|
}
|
|
243
239
|
|
|
244
|
-
/*
|
|
245
|
-
.ele-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
left: eleVar('sidebar', 'width', 0);
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
&:not(.dialog-fade-leave-active):not(.dialog-fade-enter-active) {
|
|
252
|
-
transition: (width $ele-transition, left $ele-transition);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
&.ele-state-has-tab {
|
|
256
|
-
top: calc(#{eleVar('header', 'height')} + #{eleVar('tab', 'height')});
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
&.ele-state-collapse {
|
|
260
|
-
left: eleVar('sidebar', 'collapse-width');
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
&.ele-state-mix-sidebar {
|
|
264
|
-
$box-width: eleVar('sidebox', 'width');
|
|
265
|
-
left: calc(#{$box-width} + #{eleVar('sidebar', 'mix-width')});
|
|
266
|
-
|
|
267
|
-
&.ele-state-collapse {
|
|
268
|
-
left: $box-width;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
&.ele-state-single-sidebar {
|
|
272
|
-
left: $box-width;
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
&.ele-state-compact {
|
|
277
|
-
$collapse-width: eleVar('sidebar', 'collapse-width');
|
|
278
|
-
left: calc(#{$collapse-width} + #{eleVar('sidebar', 'mix-width')});
|
|
279
|
-
|
|
280
|
-
&.ele-state-single-sidebar {
|
|
281
|
-
left: $collapse-width;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
&.ele-state-collapse {
|
|
285
|
-
left: $collapse-width;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
&.ele-state-top-layout {
|
|
290
|
-
left: 0;
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
&.ele-state-maximized {
|
|
294
|
-
top: eleVar('tab', 'height');
|
|
295
|
-
left: 0 !important;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
&.ele-state-expanded {
|
|
299
|
-
top: 0 !important;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
&.ele-state-mobile {
|
|
303
|
-
left: 0 !important;
|
|
304
|
-
}
|
|
240
|
+
/* 限制在主体区域 */
|
|
241
|
+
.ele-admin-modals > .ele-modal {
|
|
242
|
+
pointer-events: auto;
|
|
243
|
+
position: absolute !important;
|
|
305
244
|
}
|
package/es/ele-modal/util.d.ts
CHANGED
|
@@ -1,71 +1,45 @@
|
|
|
1
1
|
import { ModalProps } from './props';
|
|
2
|
-
import {
|
|
2
|
+
import { Position } from './types';
|
|
3
3
|
|
|
4
|
+
export declare const containerClass = "ele-modal-container";
|
|
4
5
|
export declare const wrapperClass = "ele-modal";
|
|
5
|
-
export declare const containerId = "ele-modal-container";
|
|
6
|
-
export declare const movableClass = "ele-modal-movable";
|
|
7
|
-
export declare const resizableClass = "ele-modal-resizable";
|
|
8
|
-
export declare const multipleClass = "ele-modal-multiple";
|
|
9
|
-
export declare const fullscreenClass = "ele-modal-fullscreen";
|
|
10
|
-
export declare const innerClass = "ele-modal-inner";
|
|
11
|
-
export declare const responsiveClass = "ele-modal-responsive";
|
|
12
6
|
export declare const closedClass = "ele-modal-closed";
|
|
13
|
-
export declare const hideClass = "ele-modal-hide";
|
|
14
|
-
export declare const collapseClass = "ele-state-collapse";
|
|
15
|
-
export declare const compactClass = "ele-state-compact";
|
|
16
|
-
export declare const maximizedClass = "ele-state-maximized";
|
|
17
|
-
export declare const hasTabClass = "ele-state-has-tab";
|
|
18
|
-
export declare const mixSidebarClass = "ele-state-mix-sidebar";
|
|
19
|
-
export declare const singleSidebarClass = "ele-state-single-sidebar";
|
|
20
|
-
export declare const topLayoutClass = "ele-state-top-layout";
|
|
21
|
-
export declare const expandedClass = "ele-state-expanded";
|
|
22
|
-
export declare const mobileClass = "ele-state-mobile";
|
|
23
7
|
/**
|
|
24
|
-
*
|
|
8
|
+
* 获取弹窗容器
|
|
9
|
+
* @param inner 是否限制在主体内部
|
|
25
10
|
* @param multiple 是否支持同时打开多个
|
|
26
|
-
* @param appendTo
|
|
11
|
+
* @param appendTo 自定义插入的容器
|
|
12
|
+
* @param modalsEl 限制在主体内部时的容器
|
|
27
13
|
*/
|
|
28
|
-
export declare function getModalContainer(multiple?: boolean, appendTo?: string): Element | string;
|
|
14
|
+
export declare function getModalContainer(inner?: boolean, multiple?: boolean, appendTo?: string, modalsEl?: HTMLElement | null): Element | string;
|
|
29
15
|
/**
|
|
30
16
|
* 弹窗移动事件处理
|
|
17
|
+
* @param modalEl 弹窗节点
|
|
31
18
|
* @param event 事件
|
|
32
19
|
* @param props 属性
|
|
33
20
|
*/
|
|
34
|
-
export declare function
|
|
21
|
+
export declare function handleMove(modalEl: HTMLElement, event: MouseEvent, props: ModalProps): void;
|
|
35
22
|
/**
|
|
36
23
|
* 弹窗拉伸事件处理
|
|
37
24
|
* @param event 事件
|
|
38
25
|
* @param props 属性
|
|
39
26
|
*/
|
|
40
|
-
export declare function
|
|
27
|
+
export declare function handleResize(modalEl: HTMLElement, event: MouseEvent, props: ModalProps): void;
|
|
41
28
|
/**
|
|
42
29
|
* 置顶弹窗
|
|
43
|
-
* @param modalEl
|
|
30
|
+
* @param modalEl 弹窗
|
|
44
31
|
* @param zIndex 弹窗初始层级
|
|
45
|
-
* @returns
|
|
46
32
|
*/
|
|
47
|
-
export declare function
|
|
33
|
+
export declare function topModal(modalEl?: HTMLElement, zIndex?: number): void;
|
|
48
34
|
/**
|
|
49
|
-
*
|
|
50
|
-
* @param modalEl 弹窗节点
|
|
51
|
-
* @param width 初始宽度
|
|
52
|
-
* @param top 初始顶部距离
|
|
53
|
-
*/
|
|
54
|
-
export declare function resetModalStyle(modalEl?: HTMLElement, width?: string | number, top?: string | number): void;
|
|
55
|
-
/**
|
|
56
|
-
* 设置弹窗位置
|
|
57
|
-
* @param modalEl 弹窗节点
|
|
35
|
+
* 获取位置对应的外间距值
|
|
58
36
|
* @param position 位置
|
|
59
|
-
* @param resizable 是否可以拉伸
|
|
60
|
-
* @param moveOut 是否可以拉出容器
|
|
61
37
|
*/
|
|
62
|
-
export declare function
|
|
38
|
+
export declare function getPositionMargin(position?: Position): string | undefined;
|
|
63
39
|
/**
|
|
64
|
-
*
|
|
40
|
+
* 重置弹窗位置及大小
|
|
65
41
|
* @param modalEl 弹窗节点
|
|
66
|
-
* @param
|
|
67
|
-
* @param
|
|
68
|
-
* @param moveOut 是否可以拉出容器
|
|
69
|
-
* @param force 是否强制更新
|
|
42
|
+
* @param width 初始宽度
|
|
43
|
+
* @param top 初始顶部距离
|
|
70
44
|
*/
|
|
71
|
-
export declare function
|
|
45
|
+
export declare function resetModalStyle(modalEl?: HTMLElement, width?: string | number, position?: Position): void;
|
package/es/ele-modal/util.js
CHANGED
|
@@ -1,102 +1,47 @@
|
|
|
1
1
|
import { getCurrentStyle } from "../utils/core";
|
|
2
|
-
const
|
|
3
|
-
const headerClass = "ele-modal-header";
|
|
2
|
+
const containerClass = "ele-modal-container";
|
|
4
3
|
const wrapperClass = "ele-modal";
|
|
5
|
-
const containerId = "ele-modal-container";
|
|
6
|
-
const movableClass = "ele-modal-movable";
|
|
7
|
-
const resizableClass = "ele-modal-resizable";
|
|
8
|
-
const multipleClass = "ele-modal-multiple";
|
|
9
|
-
const fullscreenClass = "ele-modal-fullscreen";
|
|
10
|
-
const innerClass = "ele-modal-inner";
|
|
11
|
-
const responsiveClass = "ele-modal-responsive";
|
|
12
4
|
const closedClass = "ele-modal-closed";
|
|
13
|
-
const hideClass = "ele-modal-hide";
|
|
14
|
-
const collapseClass = "ele-state-collapse";
|
|
15
|
-
const compactClass = "ele-state-compact";
|
|
16
|
-
const maximizedClass = "ele-state-maximized";
|
|
17
|
-
const hasTabClass = "ele-state-has-tab";
|
|
18
|
-
const mixSidebarClass = "ele-state-mix-sidebar";
|
|
19
|
-
const singleSidebarClass = "ele-state-single-sidebar";
|
|
20
|
-
const topLayoutClass = "ele-state-top-layout";
|
|
21
|
-
const expandedClass = "ele-state-expanded";
|
|
22
|
-
const mobileClass = "ele-state-mobile";
|
|
23
5
|
const fixTop = 0.65;
|
|
24
6
|
const fixLeft = 0.65;
|
|
25
|
-
function initModalStyle(modalEl
|
|
7
|
+
function initModalStyle(modalEl) {
|
|
26
8
|
modalEl.style.top = modalEl.offsetTop + "px";
|
|
27
9
|
modalEl.style.left = modalEl.offsetLeft + "px";
|
|
28
|
-
modalEl.style.bottom = "auto";
|
|
29
10
|
modalEl.style.right = "auto";
|
|
30
|
-
modalEl.style.
|
|
11
|
+
modalEl.style.bottom = "auto";
|
|
31
12
|
modalEl.style.position = "absolute";
|
|
32
|
-
modalEl.style.
|
|
33
|
-
modalEl.style.verticalAlign = "top";
|
|
34
|
-
}
|
|
35
|
-
function getModalContainer(multiple, appendTo) {
|
|
36
|
-
if (!multiple) {
|
|
37
|
-
return appendTo || "body";
|
|
38
|
-
}
|
|
39
|
-
const container = document.getElementById(containerId);
|
|
40
|
-
if (container) {
|
|
41
|
-
return container;
|
|
42
|
-
}
|
|
43
|
-
const elem = document.createElement("div");
|
|
44
|
-
elem.id = containerId;
|
|
45
|
-
document.body.appendChild(elem);
|
|
46
|
-
return elem;
|
|
47
|
-
}
|
|
48
|
-
function getVisibleModals() {
|
|
49
|
-
const el = getModalContainer(true);
|
|
50
|
-
const modals = el.querySelectorAll(`.${wrapperClass}:not(.${closedClass})`);
|
|
51
|
-
return modals ? Array.from(modals) : [];
|
|
52
|
-
}
|
|
53
|
-
function getModalMaxIndex(el) {
|
|
54
|
-
const modals = getVisibleModals();
|
|
55
|
-
let maxIndex = 0;
|
|
56
|
-
modals.forEach((modalEl) => {
|
|
57
|
-
const zIndex = getCurrentStyle(modalEl).zIndex;
|
|
58
|
-
if (zIndex != null) {
|
|
59
|
-
const index = Number(zIndex);
|
|
60
|
-
if (index >= maxIndex && (!el || modalEl !== el)) {
|
|
61
|
-
maxIndex = index + 1;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
return maxIndex;
|
|
13
|
+
modalEl.style.margin = "0";
|
|
66
14
|
}
|
|
67
15
|
function canMoveOut(moveOut, direction) {
|
|
68
|
-
if (direction && moveOut != null &&
|
|
16
|
+
if (direction && moveOut != null && Array.isArray(moveOut)) {
|
|
69
17
|
return moveOut.includes(direction);
|
|
70
18
|
}
|
|
71
19
|
return false;
|
|
72
20
|
}
|
|
73
|
-
function
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
21
|
+
function getModalContainer(inner, multiple, appendTo, modalsEl) {
|
|
22
|
+
if (multiple) {
|
|
23
|
+
const parent = (inner ? modalsEl : void 0) || document.body;
|
|
24
|
+
const wrapper = parent.querySelector(`.${containerClass}`);
|
|
25
|
+
if (wrapper) {
|
|
26
|
+
return wrapper;
|
|
27
|
+
}
|
|
28
|
+
const elem = document.createElement("div");
|
|
29
|
+
elem.classList.add(containerClass);
|
|
30
|
+
parent.appendChild(elem);
|
|
31
|
+
return elem;
|
|
77
32
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return;
|
|
33
|
+
if (inner && modalsEl) {
|
|
34
|
+
return modalsEl;
|
|
81
35
|
}
|
|
36
|
+
return appendTo || "body";
|
|
37
|
+
}
|
|
38
|
+
function handleMove(modalEl, event, props) {
|
|
82
39
|
const wrapEl = modalEl.parentElement;
|
|
83
40
|
if (!wrapEl) {
|
|
84
41
|
return;
|
|
85
42
|
}
|
|
86
|
-
const headerEl = modalEl.querySelector("." + headerClass);
|
|
87
|
-
if (!headerEl) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
const titleEl = headerEl.querySelector("." + titleClass);
|
|
91
|
-
if (!titleEl || event.target !== headerEl && event.target !== titleEl) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
const modalClass = (_a = wrapEl.parentElement) == null ? void 0 : _a.classList;
|
|
95
|
-
if (modalClass && modalClass.contains(fullscreenClass)) {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
43
|
modalEl.style.userSelect = "none";
|
|
99
|
-
initModalStyle(modalEl
|
|
44
|
+
initModalStyle(modalEl);
|
|
100
45
|
const downX = event.clientX;
|
|
101
46
|
const downY = event.clientY;
|
|
102
47
|
const downOL = modalEl.offsetLeft;
|
|
@@ -153,32 +98,13 @@ function handleMovable(event, props) {
|
|
|
153
98
|
document.addEventListener("mousemove", mousemoveFn);
|
|
154
99
|
document.addEventListener("mouseup", mouseupFn);
|
|
155
100
|
}
|
|
156
|
-
function
|
|
157
|
-
if (!props.resizable) {
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
const modalEl = event.currentTarget;
|
|
161
|
-
if (!modalEl) {
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
101
|
+
function handleResize(modalEl, event, props) {
|
|
164
102
|
const wrapEl = modalEl.parentElement;
|
|
165
103
|
if (!wrapEl) {
|
|
166
104
|
return;
|
|
167
105
|
}
|
|
168
|
-
const overlayEl = wrapEl.parentElement;
|
|
169
|
-
if (!overlayEl) {
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
if (overlayEl.classList.contains(fullscreenClass)) {
|
|
173
|
-
return;
|
|
174
|
-
}
|
|
175
|
-
const limitX = modalEl.clientWidth + modalEl.offsetLeft - wrapEl.scrollLeft + overlayEl.offsetLeft;
|
|
176
|
-
const limitY = modalEl.clientHeight + modalEl.offsetTop - wrapEl.scrollTop + overlayEl.offsetTop;
|
|
177
|
-
if (event.clientX > limitX || limitX - event.clientX > 12 || event.clientY > limitY || limitY - event.clientY > 12) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
106
|
modalEl.style.userSelect = "none";
|
|
181
|
-
initModalStyle(modalEl
|
|
107
|
+
initModalStyle(modalEl);
|
|
182
108
|
const downX = event.clientX;
|
|
183
109
|
const downY = event.clientY;
|
|
184
110
|
const downW = modalEl.clientWidth;
|
|
@@ -209,34 +135,45 @@ function handleResizable(event, props) {
|
|
|
209
135
|
document.addEventListener("mousemove", mousemoveFn);
|
|
210
136
|
document.addEventListener("mouseup", mouseupFn);
|
|
211
137
|
}
|
|
212
|
-
function
|
|
138
|
+
function topModal(modalEl, zIndex) {
|
|
213
139
|
var _a;
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}
|
|
217
|
-
const overlayEl = (_a = modalEl.parentElement) == null ? void 0 : _a.parentElement;
|
|
218
|
-
if (!overlayEl || !overlayEl.classList || !overlayEl.classList.contains(multipleClass)) {
|
|
140
|
+
const overlayEl = (_a = modalEl == null ? void 0 : modalEl.parentElement) == null ? void 0 : _a.parentElement;
|
|
141
|
+
if (!overlayEl) {
|
|
219
142
|
return;
|
|
220
143
|
}
|
|
221
144
|
const currentIndex = getCurrentStyle(overlayEl).zIndex;
|
|
222
|
-
const
|
|
145
|
+
const containerEl = overlayEl.parentElement;
|
|
146
|
+
const modals = containerEl ? containerEl.querySelectorAll(`.${wrapperClass}:not(.${closedClass})`) : void 0;
|
|
147
|
+
let maxIndex = 0;
|
|
148
|
+
(modals ? Array.from(modals) : []).forEach((modalEl2) => {
|
|
149
|
+
const zIndex2 = getCurrentStyle(modalEl2).zIndex;
|
|
150
|
+
if (zIndex2 != null) {
|
|
151
|
+
const index = Number(zIndex2);
|
|
152
|
+
if (index >= maxIndex && (!overlayEl || modalEl2 !== overlayEl)) {
|
|
153
|
+
maxIndex = index + 1;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
});
|
|
223
157
|
if (maxIndex > Number(currentIndex || zIndex || 0)) {
|
|
224
158
|
overlayEl.style.zIndex = String(maxIndex);
|
|
225
159
|
}
|
|
226
160
|
}
|
|
227
|
-
function
|
|
161
|
+
function getPositionMargin(position) {
|
|
162
|
+
if (position == null || typeof position !== "object" || position.top == null && position.right == null && position.bottom == null && position.left == null) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
return [position.top, position.right, position.bottom, position.left].map((p) => typeof p === "number" ? `${p}px` : p || "auto").join(" ");
|
|
166
|
+
}
|
|
167
|
+
function resetModalStyle(modalEl, width, position) {
|
|
228
168
|
if (!modalEl) {
|
|
229
169
|
return;
|
|
230
170
|
}
|
|
171
|
+
modalEl.style.margin = getPositionMargin(position) || "";
|
|
172
|
+
modalEl.style.position = "";
|
|
231
173
|
modalEl.style.top = "";
|
|
232
174
|
modalEl.style.left = "";
|
|
233
175
|
modalEl.style.right = "";
|
|
234
176
|
modalEl.style.bottom = "";
|
|
235
|
-
modalEl.style.margin = "";
|
|
236
|
-
modalEl.style.marginTop = typeof top === "number" ? `${top}px` : top ?? "";
|
|
237
|
-
modalEl.style.display = "";
|
|
238
|
-
modalEl.style.position = "";
|
|
239
|
-
modalEl.style.verticalAlign = "";
|
|
240
177
|
modalEl.style.height = "";
|
|
241
178
|
modalEl.style.maxHeight = "";
|
|
242
179
|
modalEl.style.minHeight = "";
|
|
@@ -244,77 +181,14 @@ function resetModalStyle(modalEl, width, top) {
|
|
|
244
181
|
modalEl.style.maxWidth = "";
|
|
245
182
|
modalEl.style.minWidth = "";
|
|
246
183
|
}
|
|
247
|
-
function setModalPosition(modalEl, resizable, position, moveOut) {
|
|
248
|
-
if (!position || typeof position !== "object" || !modalEl) {
|
|
249
|
-
return;
|
|
250
|
-
}
|
|
251
|
-
const wrapEl = modalEl.parentElement;
|
|
252
|
-
if (!wrapEl) {
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
initModalStyle(modalEl, resizable);
|
|
256
|
-
const location = {};
|
|
257
|
-
const canOutB = canMoveOut(moveOut, "bottom");
|
|
258
|
-
const canOutR = canMoveOut(moveOut, "right");
|
|
259
|
-
const t = wrapEl.clientHeight - modalEl.clientHeight - (canOutB ? 0 : fixTop);
|
|
260
|
-
const maxTop = t < 0 ? 0 : t;
|
|
261
|
-
const l = wrapEl.clientWidth - modalEl.clientWidth - (canOutR ? 0 : fixLeft);
|
|
262
|
-
const maxLeft = l < 0 ? 0 : l;
|
|
263
|
-
if (position.top != null) {
|
|
264
|
-
location.top = position.top;
|
|
265
|
-
} else if (position.bottom != null) {
|
|
266
|
-
location.bottom = position.bottom;
|
|
267
|
-
} else if (position.left != null || position.right != null) {
|
|
268
|
-
location.top = maxTop / 2;
|
|
269
|
-
}
|
|
270
|
-
if (position.left != null) {
|
|
271
|
-
location.left = position.left;
|
|
272
|
-
} else if (position.right != null) {
|
|
273
|
-
location.right = position.right;
|
|
274
|
-
} else if (position.top != null || position.bottom != null) {
|
|
275
|
-
location.left = maxLeft / 2;
|
|
276
|
-
}
|
|
277
|
-
Object.keys(location).forEach((key) => {
|
|
278
|
-
const value = location[key];
|
|
279
|
-
if (typeof value === "number") {
|
|
280
|
-
modalEl.style[key] = `${Math.floor(value)}px`;
|
|
281
|
-
} else if (value != null) {
|
|
282
|
-
modalEl.style[key] = value;
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
function setInitPosition(modalEl, resizable, position, moveOut, force) {
|
|
287
|
-
const attr = "ele-position";
|
|
288
|
-
if (modalEl && position && (force || !modalEl.getAttribute(attr))) {
|
|
289
|
-
modalEl.setAttribute(attr, "1");
|
|
290
|
-
setModalPosition(modalEl, resizable, position, moveOut);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
184
|
export {
|
|
294
185
|
closedClass,
|
|
295
|
-
|
|
296
|
-
compactClass,
|
|
297
|
-
containerId,
|
|
298
|
-
expandedClass,
|
|
299
|
-
fullscreenClass,
|
|
186
|
+
containerClass,
|
|
300
187
|
getModalContainer,
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
hideClass,
|
|
305
|
-
innerClass,
|
|
306
|
-
maximizedClass,
|
|
307
|
-
mixSidebarClass,
|
|
308
|
-
mobileClass,
|
|
309
|
-
movableClass,
|
|
310
|
-
multipleClass,
|
|
188
|
+
getPositionMargin,
|
|
189
|
+
handleMove,
|
|
190
|
+
handleResize,
|
|
311
191
|
resetModalStyle,
|
|
312
|
-
|
|
313
|
-
responsiveClass,
|
|
314
|
-
setInitPosition,
|
|
315
|
-
setModalPosition,
|
|
316
|
-
setModalTop,
|
|
317
|
-
singleSidebarClass,
|
|
318
|
-
topLayoutClass,
|
|
192
|
+
topModal,
|
|
319
193
|
wrapperClass
|
|
320
194
|
};
|