iov-design 2.15.59 → 2.15.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/README.md +148 -148
  2. package/lib/alert.js +24 -105
  3. package/lib/aside.js +24 -34
  4. package/lib/autocomplete.js +36 -240
  5. package/lib/avatar.js +21 -20
  6. package/lib/backtop.js +27 -52
  7. package/lib/badge.js +30 -58
  8. package/lib/breadcrumb-item.js +24 -53
  9. package/lib/breadcrumb.js +24 -37
  10. package/lib/button-group.js +24 -29
  11. package/lib/button.js +38 -60
  12. package/lib/calendar.js +29 -146
  13. package/lib/card.js +24 -51
  14. package/lib/carousel-item.js +30 -68
  15. package/lib/carousel.js +27 -159
  16. package/lib/cascader-panel.js +41 -64
  17. package/lib/cascader.js +37 -470
  18. package/lib/checkbox-button.js +28 -164
  19. package/lib/checkbox-group.js +24 -37
  20. package/lib/checkbox.js +35 -189
  21. package/lib/col.js +1 -0
  22. package/lib/collapse-item.js +27 -125
  23. package/lib/collapse.js +24 -37
  24. package/lib/color-picker.js +104 -424
  25. package/lib/container.js +24 -34
  26. package/lib/date-picker.js +126 -1981
  27. package/lib/descriptions-item.js +1 -0
  28. package/lib/descriptions.js +1 -0
  29. package/lib/dialog.js +24 -137
  30. package/lib/divider.js +29 -64
  31. package/lib/drawer.js +24 -139
  32. package/lib/dropdown-item.js +27 -45
  33. package/lib/dropdown-menu.js +24 -51
  34. package/lib/dropdown.js +21 -20
  35. package/lib/empty.js +24 -61
  36. package/lib/footer.js +24 -34
  37. package/lib/form-item.js +42 -128
  38. package/lib/form.js +27 -40
  39. package/lib/header.js +24 -34
  40. package/lib/icon.js +24 -29
  41. package/lib/image.js +36 -220
  42. package/lib/index.js +1 -1
  43. package/lib/infinite-scroll.js +1 -0
  44. package/lib/input-number.js +30 -163
  45. package/lib/input.js +42 -274
  46. package/lib/iov-design.common.js +1638 -11132
  47. package/lib/link.js +33 -55
  48. package/lib/loading.js +24 -77
  49. package/lib/locale/format.js +10 -10
  50. package/lib/main.js +24 -29
  51. package/lib/menu-item-group.js +24 -40
  52. package/lib/menu-item.js +27 -83
  53. package/lib/menu.js +21 -20
  54. package/lib/message-box.js +24 -321
  55. package/lib/message.js +30 -82
  56. package/lib/mixins/migrating.js +20 -20
  57. package/lib/notification.js +24 -109
  58. package/lib/option-group.js +24 -50
  59. package/lib/option.js +27 -76
  60. package/lib/page-header.js +24 -56
  61. package/lib/pagination.js +24 -97
  62. package/lib/popconfirm.js +24 -97
  63. package/lib/popover.js +24 -89
  64. package/lib/progress.js +30 -133
  65. package/lib/radio-button.js +29 -111
  66. package/lib/radio-group.js +24 -39
  67. package/lib/radio.js +36 -152
  68. package/lib/rate.js +24 -94
  69. package/lib/result.js +72 -187
  70. package/lib/row.js +1 -0
  71. package/lib/scrollbar.js +1 -0
  72. package/lib/select.js +48 -637
  73. package/lib/skeleton-item.js +36 -68
  74. package/lib/skeleton.js +28 -70
  75. package/lib/slider.js +36 -267
  76. package/lib/spinner.js +24 -51
  77. package/lib/statistic.js +24 -76
  78. package/lib/step.js +29 -118
  79. package/lib/steps.js +27 -40
  80. package/lib/submenu.js +21 -20
  81. package/lib/switch.js +24 -130
  82. package/lib/tab-pane.js +24 -52
  83. package/lib/table-column.js +1 -0
  84. package/lib/table.js +93 -633
  85. package/lib/tabs.js +34 -49
  86. package/lib/tag.js +22 -21
  87. package/lib/theme-chalk/base.css +1 -1
  88. package/lib/theme-chalk/button.css +1 -1
  89. package/lib/theme-chalk/calendar.css +1 -1
  90. package/lib/theme-chalk/cascader-panel.css +1 -1
  91. package/lib/theme-chalk/cascader.css +1 -1
  92. package/lib/theme-chalk/dropdown.css +1 -1
  93. package/lib/theme-chalk/index.css +1 -1
  94. package/lib/theme-chalk/iovfont.css +1 -1
  95. package/lib/theme-chalk/link.css +1 -1
  96. package/lib/theme-chalk/message-box.css +1 -1
  97. package/lib/theme-chalk/pagination.css +1 -1
  98. package/lib/theme-chalk/radio.css +1 -1
  99. package/lib/theme-chalk/select.css +1 -1
  100. package/lib/theme-chalk/table-column.css +1 -1
  101. package/lib/theme-chalk/table.css +1 -1
  102. package/lib/theme-chalk/tabs.css +1 -1
  103. package/lib/theme-chalk/tag.css +1 -1
  104. package/lib/theme-chalk/transfer.css +1 -1
  105. package/lib/time-picker.js +58 -820
  106. package/lib/time-select.js +42 -303
  107. package/lib/timeline-item.js +29 -75
  108. package/lib/timeline.js +21 -20
  109. package/lib/tooltip.js +1 -0
  110. package/lib/transfer.js +36 -299
  111. package/lib/tree.js +54 -243
  112. package/lib/upload.js +86 -654
  113. package/lib/utils/clickoutside.js +7 -7
  114. package/lib/utils/vue-popper.js +7 -7
  115. package/package.json +154 -154
  116. package/packages/autocomplete/src/autocomplete-suggestions.vue +76 -76
  117. package/packages/autocomplete/src/autocomplete.vue +285 -285
  118. package/packages/button/src/button.vue +90 -90
  119. package/packages/calendar/src/date-table.vue +200 -200
  120. package/packages/calendar/src/main.vue +280 -280
  121. package/packages/carousel/src/item.vue +138 -138
  122. package/packages/carousel/src/main.vue +315 -315
  123. package/packages/cascader/src/cascader.vue +776 -776
  124. package/packages/cascader-panel/src/cascader-menu.vue +138 -138
  125. package/packages/cascader-panel/src/cascader-node.vue +246 -246
  126. package/packages/cascader-panel/src/cascader-panel.vue +391 -391
  127. package/packages/cascader-panel/src/node.js +166 -166
  128. package/packages/cascader-panel/src/store.js +58 -58
  129. package/packages/checkbox/src/checkbox-button.vue +199 -199
  130. package/packages/checkbox/src/checkbox-group.vue +49 -49
  131. package/packages/checkbox/src/checkbox.vue +225 -225
  132. package/packages/collapse/src/collapse-item.vue +114 -114
  133. package/packages/color-picker/src/components/picker-dropdown.vue +121 -121
  134. package/packages/color-picker/src/main.vue +188 -188
  135. package/packages/date-picker/src/basic/date-table.vue +441 -441
  136. package/packages/date-picker/src/basic/month-table.vue +269 -269
  137. package/packages/date-picker/src/basic/time-spinner.vue +304 -304
  138. package/packages/date-picker/src/basic/year-table.vue +111 -111
  139. package/packages/date-picker/src/panel/date-range.vue +680 -680
  140. package/packages/date-picker/src/panel/date.vue +609 -609
  141. package/packages/date-picker/src/panel/month-range.vue +289 -289
  142. package/packages/date-picker/src/panel/time-range.vue +248 -248
  143. package/packages/date-picker/src/panel/time-select.vue +178 -178
  144. package/packages/date-picker/src/panel/time.vue +186 -186
  145. package/packages/date-picker/src/picker.vue +967 -967
  146. package/packages/descriptions/src/index.js +180 -180
  147. package/packages/dialog/src/component.vue +262 -262
  148. package/packages/drawer/src/main.vue +205 -205
  149. package/packages/dropdown/src/dropdown-item.vue +37 -37
  150. package/packages/dropdown/src/dropdown-menu.vue +63 -63
  151. package/packages/dropdown/src/dropdown.vue +293 -293
  152. package/packages/empty/src/index.vue +70 -70
  153. package/packages/form/src/form-item.vue +324 -324
  154. package/packages/form/src/form.vue +182 -182
  155. package/packages/image/src/image-viewer.vue +330 -330
  156. package/packages/image/src/main.vue +249 -249
  157. package/packages/infinite-scroll/src/main.js +150 -150
  158. package/packages/input/src/input.vue +477 -477
  159. package/packages/input-number/src/input-number.vue +283 -283
  160. package/packages/link/src/main.vue +2 -0
  161. package/packages/loading/src/directive.js +133 -133
  162. package/packages/loading/src/index.js +106 -106
  163. package/packages/menu/src/menu-item.vue +112 -112
  164. package/packages/menu/src/menu.vue +325 -325
  165. package/packages/menu/src/submenu.vue +349 -349
  166. package/packages/message/src/main.js +91 -91
  167. package/packages/message-box/src/main.js +216 -216
  168. package/packages/message-box/src/main.vue +333 -333
  169. package/packages/notification/src/main.js +94 -94
  170. package/packages/page-header/src/main.vue +30 -30
  171. package/packages/pagination/src/pagination.js +390 -390
  172. package/packages/popconfirm/src/main.vue +104 -104
  173. package/packages/popover/src/main.vue +239 -239
  174. package/packages/radio/src/radio-button.vue +115 -115
  175. package/packages/radio/src/radio-group.vue +115 -115
  176. package/packages/radio/src/radio.vue +148 -148
  177. package/packages/rate/src/main.vue +348 -348
  178. package/packages/scrollbar/src/bar.js +92 -92
  179. package/packages/scrollbar/src/main.js +130 -130
  180. package/packages/select/src/option-group.vue +60 -60
  181. package/packages/select/src/option.vue +171 -171
  182. package/packages/select/src/select-dropdown.vue +74 -74
  183. package/packages/select/src/select.vue +979 -979
  184. package/packages/slider/src/button.vue +238 -238
  185. package/packages/slider/src/main.vue +427 -427
  186. package/packages/statistic/src/main.vue +204 -204
  187. package/packages/steps/src/steps.vue +68 -68
  188. package/packages/switch/src/component.vue +182 -182
  189. package/packages/table/src/config.js +153 -153
  190. package/packages/table/src/filter-panel.vue +194 -194
  191. package/packages/table/src/store/current.js +76 -76
  192. package/packages/table/src/store/helper.js +41 -41
  193. package/packages/table/src/store/index.js +147 -147
  194. package/packages/table/src/store/watcher.js +502 -502
  195. package/packages/table/src/table-body.js +469 -469
  196. package/packages/table/src/table-column.js +328 -328
  197. package/packages/table/src/table-header.js +571 -571
  198. package/packages/table/src/table-layout.js +249 -249
  199. package/packages/table/src/table-row.js +101 -101
  200. package/packages/table/src/table.vue +740 -740
  201. package/packages/table/src/util.js +273 -273
  202. package/packages/tabs/src/tab-bar.vue +57 -57
  203. package/packages/tabs/src/tab-nav.vue +294 -294
  204. package/packages/tabs/src/tabs.vue +201 -201
  205. package/packages/tag/src/tag.vue +1 -1
  206. package/packages/theme-chalk/src/button.scss +416 -416
  207. package/packages/theme-chalk/src/cascader.scss +252 -252
  208. package/packages/theme-chalk/src/checkbox.scss +419 -419
  209. package/packages/theme-chalk/src/common/var.scss +795 -816
  210. package/packages/theme-chalk/src/form.scss +201 -201
  211. package/packages/theme-chalk/src/input.scss +591 -591
  212. package/packages/theme-chalk/src/iovfont.scss +803 -784
  213. package/packages/theme-chalk/src/link.scss +36 -19
  214. package/packages/theme-chalk/src/message-box.scss +207 -207
  215. package/packages/theme-chalk/src/mixins/_button.scss +136 -136
  216. package/packages/theme-chalk/src/mixins/mixins.scss +190 -190
  217. package/packages/theme-chalk/src/radio-button.scss +115 -115
  218. package/packages/theme-chalk/src/radio.scss +1 -0
  219. package/packages/theme-chalk/src/select.scss +270 -270
  220. package/packages/theme-chalk/src/table.scss +1 -2
  221. package/packages/theme-chalk/src/tabs.scss +755 -750
  222. package/packages/theme-chalk/src/tag.scss +4 -4
  223. package/packages/theme-chalk/src/upload.scss +568 -568
  224. package/packages/tooltip/src/main.js +242 -242
  225. package/packages/transfer/src/main.vue +231 -231
  226. package/packages/transfer/src/transfer-panel.vue +251 -251
  227. package/packages/tree/src/model/node.js +484 -484
  228. package/packages/tree/src/tree-node.vue +279 -279
  229. package/packages/tree/src/tree.vue +496 -496
  230. package/packages/upload/src/index.vue +420 -420
  231. package/packages/upload/src/upload-file.vue +98 -98
  232. package/packages/upload/src/upload-list.vue +115 -115
  233. package/packages/upload/src/upload-picture.vue +98 -98
  234. package/packages/upload/src/upload.vue +231 -231
  235. package/packages/upload/src/utils.js +31 -31
  236. package/src/directives/repeat-click.js +26 -26
  237. package/src/index.js +259 -259
  238. package/src/locale/format.js +46 -46
  239. package/src/locale/index.js +48 -48
  240. package/src/locale/lang/lo-LA.js +126 -126
  241. package/src/mixins/locale.js +9 -9
  242. package/src/mixins/migrating.js +54 -54
  243. package/src/transitions/collapse-transition.js +77 -77
  244. package/src/utils/clickoutside.js +76 -76
  245. package/src/utils/date-util.js +282 -282
  246. package/src/utils/popup/index.js +218 -218
  247. package/src/utils/popup/popup-manager.js +194 -194
  248. package/src/utils/util.js +245 -245
  249. package/src/utils/vdom.js +5 -5
  250. package/src/utils/vue-popper.js +198 -198
@@ -1,218 +1,218 @@
1
- import Vue from 'vue';
2
- import merge from 'iov-design/src/utils/merge';
3
- import PopupManager from 'iov-design/src/utils/popup/popup-manager';
4
- import getScrollBarWidth from '../scrollbar-width';
5
- import { getStyle, addClass, removeClass, hasClass } from '../dom';
6
-
7
- let idSeed = 1;
8
-
9
- let scrollBarWidth;
10
-
11
- export default {
12
- props: {
13
- visible: {
14
- type: Boolean,
15
- default: false
16
- },
17
- openDelay: {},
18
- closeDelay: {},
19
- zIndex: {},
20
- modal: {
21
- type: Boolean,
22
- default: false
23
- },
24
- modalFade: {
25
- type: Boolean,
26
- default: true
27
- },
28
- modalClass: {},
29
- modalAppendToBody: {
30
- type: Boolean,
31
- default: false
32
- },
33
- lockScroll: {
34
- type: Boolean,
35
- default: true
36
- },
37
- closeOnPressEscape: {
38
- type: Boolean,
39
- default: false
40
- },
41
- closeOnClickModal: {
42
- type: Boolean,
43
- default: false
44
- }
45
- },
46
-
47
- beforeMount() {
48
- this._popupId = 'popup-' + idSeed++;
49
- PopupManager.register(this._popupId, this);
50
- },
51
-
52
- beforeDestroy() {
53
- PopupManager.deregister(this._popupId);
54
- PopupManager.closeModal(this._popupId);
55
-
56
- this.restoreBodyStyle();
57
- },
58
-
59
- data() {
60
- return {
61
- opened: false,
62
- bodyPaddingRight: null,
63
- computedBodyPaddingRight: 0,
64
- withoutHiddenClass: true,
65
- rendered: false
66
- };
67
- },
68
-
69
- watch: {
70
- visible(val) {
71
- if (val) {
72
- if (this._opening) return;
73
- if (!this.rendered) {
74
- this.rendered = true;
75
- Vue.nextTick(() => {
76
- this.open();
77
- });
78
- } else {
79
- this.open();
80
- }
81
- } else {
82
- this.close();
83
- }
84
- }
85
- },
86
-
87
- methods: {
88
- open(options) {
89
- if (!this.rendered) {
90
- this.rendered = true;
91
- }
92
-
93
- const props = merge({}, this.$props || this, options);
94
-
95
- if (this._closeTimer) {
96
- clearTimeout(this._closeTimer);
97
- this._closeTimer = null;
98
- }
99
- clearTimeout(this._openTimer);
100
-
101
- const openDelay = Number(props.openDelay);
102
- if (openDelay > 0) {
103
- this._openTimer = setTimeout(() => {
104
- this._openTimer = null;
105
- this.doOpen(props);
106
- }, openDelay);
107
- } else {
108
- this.doOpen(props);
109
- }
110
- },
111
-
112
- doOpen(props) {
113
- if (this.$isServer) return;
114
- if (this.willOpen && !this.willOpen()) return;
115
- if (this.opened) return;
116
-
117
- this._opening = true;
118
-
119
- const dom = this.$el;
120
-
121
- const modal = props.modal;
122
-
123
- const zIndex = props.zIndex;
124
- if (zIndex) {
125
- PopupManager.zIndex = zIndex;
126
- }
127
-
128
- if (modal) {
129
- if (this._closing) {
130
- PopupManager.closeModal(this._popupId);
131
- this._closing = false;
132
- }
133
- PopupManager.openModal(this._popupId, PopupManager.nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade);
134
- if (props.lockScroll) {
135
- this.withoutHiddenClass = !hasClass(document.body, 'el-popup-parent--hidden');
136
- if (this.withoutHiddenClass) {
137
- this.bodyPaddingRight = document.body.style.paddingRight;
138
- this.computedBodyPaddingRight = parseInt(getStyle(document.body, 'paddingRight'), 10);
139
- }
140
- scrollBarWidth = getScrollBarWidth();
141
- let bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;
142
- let bodyOverflowY = getStyle(document.body, 'overflowY');
143
- if (scrollBarWidth > 0 && (bodyHasOverflow || bodyOverflowY === 'scroll') && this.withoutHiddenClass) {
144
- document.body.style.paddingRight = this.computedBodyPaddingRight + scrollBarWidth + 'px';
145
- }
146
- addClass(document.body, 'el-popup-parent--hidden');
147
- }
148
- }
149
-
150
- if (getComputedStyle(dom).position === 'static') {
151
- dom.style.position = 'absolute';
152
- }
153
-
154
- dom.style.zIndex = PopupManager.nextZIndex();
155
- this.opened = true;
156
-
157
- this.onOpen && this.onOpen();
158
-
159
- this.doAfterOpen();
160
- },
161
-
162
- doAfterOpen() {
163
- this._opening = false;
164
- },
165
-
166
- close() {
167
- if (this.willClose && !this.willClose()) return;
168
-
169
- if (this._openTimer !== null) {
170
- clearTimeout(this._openTimer);
171
- this._openTimer = null;
172
- }
173
- clearTimeout(this._closeTimer);
174
-
175
- const closeDelay = Number(this.closeDelay);
176
-
177
- if (closeDelay > 0) {
178
- this._closeTimer = setTimeout(() => {
179
- this._closeTimer = null;
180
- this.doClose();
181
- }, closeDelay);
182
- } else {
183
- this.doClose();
184
- }
185
- },
186
-
187
- doClose() {
188
- this._closing = true;
189
-
190
- this.onClose && this.onClose();
191
-
192
- if (this.lockScroll) {
193
- setTimeout(this.restoreBodyStyle, 200);
194
- }
195
-
196
- this.opened = false;
197
-
198
- this.doAfterClose();
199
- },
200
-
201
- doAfterClose() {
202
- PopupManager.closeModal(this._popupId);
203
- this._closing = false;
204
- },
205
-
206
- restoreBodyStyle() {
207
- if (this.modal && this.withoutHiddenClass) {
208
- document.body.style.paddingRight = this.bodyPaddingRight;
209
- removeClass(document.body, 'el-popup-parent--hidden');
210
- }
211
- this.withoutHiddenClass = true;
212
- }
213
- }
214
- };
215
-
216
- export {
217
- PopupManager
218
- };
1
+ import Vue from 'vue';
2
+ import merge from 'iov-design/src/utils/merge';
3
+ import PopupManager from 'iov-design/src/utils/popup/popup-manager';
4
+ import getScrollBarWidth from '../scrollbar-width';
5
+ import { getStyle, addClass, removeClass, hasClass } from '../dom';
6
+
7
+ let idSeed = 1;
8
+
9
+ let scrollBarWidth;
10
+
11
+ export default {
12
+ props: {
13
+ visible: {
14
+ type: Boolean,
15
+ default: false
16
+ },
17
+ openDelay: {},
18
+ closeDelay: {},
19
+ zIndex: {},
20
+ modal: {
21
+ type: Boolean,
22
+ default: false
23
+ },
24
+ modalFade: {
25
+ type: Boolean,
26
+ default: true
27
+ },
28
+ modalClass: {},
29
+ modalAppendToBody: {
30
+ type: Boolean,
31
+ default: false
32
+ },
33
+ lockScroll: {
34
+ type: Boolean,
35
+ default: true
36
+ },
37
+ closeOnPressEscape: {
38
+ type: Boolean,
39
+ default: false
40
+ },
41
+ closeOnClickModal: {
42
+ type: Boolean,
43
+ default: false
44
+ }
45
+ },
46
+
47
+ beforeMount() {
48
+ this._popupId = 'popup-' + idSeed++;
49
+ PopupManager.register(this._popupId, this);
50
+ },
51
+
52
+ beforeDestroy() {
53
+ PopupManager.deregister(this._popupId);
54
+ PopupManager.closeModal(this._popupId);
55
+
56
+ this.restoreBodyStyle();
57
+ },
58
+
59
+ data() {
60
+ return {
61
+ opened: false,
62
+ bodyPaddingRight: null,
63
+ computedBodyPaddingRight: 0,
64
+ withoutHiddenClass: true,
65
+ rendered: false
66
+ };
67
+ },
68
+
69
+ watch: {
70
+ visible(val) {
71
+ if (val) {
72
+ if (this._opening) return;
73
+ if (!this.rendered) {
74
+ this.rendered = true;
75
+ Vue.nextTick(() => {
76
+ this.open();
77
+ });
78
+ } else {
79
+ this.open();
80
+ }
81
+ } else {
82
+ this.close();
83
+ }
84
+ }
85
+ },
86
+
87
+ methods: {
88
+ open(options) {
89
+ if (!this.rendered) {
90
+ this.rendered = true;
91
+ }
92
+
93
+ const props = merge({}, this.$props || this, options);
94
+
95
+ if (this._closeTimer) {
96
+ clearTimeout(this._closeTimer);
97
+ this._closeTimer = null;
98
+ }
99
+ clearTimeout(this._openTimer);
100
+
101
+ const openDelay = Number(props.openDelay);
102
+ if (openDelay > 0) {
103
+ this._openTimer = setTimeout(() => {
104
+ this._openTimer = null;
105
+ this.doOpen(props);
106
+ }, openDelay);
107
+ } else {
108
+ this.doOpen(props);
109
+ }
110
+ },
111
+
112
+ doOpen(props) {
113
+ if (this.$isServer) return;
114
+ if (this.willOpen && !this.willOpen()) return;
115
+ if (this.opened) return;
116
+
117
+ this._opening = true;
118
+
119
+ const dom = this.$el;
120
+
121
+ const modal = props.modal;
122
+
123
+ const zIndex = props.zIndex;
124
+ if (zIndex) {
125
+ PopupManager.zIndex = zIndex;
126
+ }
127
+
128
+ if (modal) {
129
+ if (this._closing) {
130
+ PopupManager.closeModal(this._popupId);
131
+ this._closing = false;
132
+ }
133
+ PopupManager.openModal(this._popupId, PopupManager.nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade);
134
+ if (props.lockScroll) {
135
+ this.withoutHiddenClass = !hasClass(document.body, 'el-popup-parent--hidden');
136
+ if (this.withoutHiddenClass) {
137
+ this.bodyPaddingRight = document.body.style.paddingRight;
138
+ this.computedBodyPaddingRight = parseInt(getStyle(document.body, 'paddingRight'), 10);
139
+ }
140
+ scrollBarWidth = getScrollBarWidth();
141
+ let bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;
142
+ let bodyOverflowY = getStyle(document.body, 'overflowY');
143
+ if (scrollBarWidth > 0 && (bodyHasOverflow || bodyOverflowY === 'scroll') && this.withoutHiddenClass) {
144
+ document.body.style.paddingRight = this.computedBodyPaddingRight + scrollBarWidth + 'px';
145
+ }
146
+ addClass(document.body, 'el-popup-parent--hidden');
147
+ }
148
+ }
149
+
150
+ if (getComputedStyle(dom).position === 'static') {
151
+ dom.style.position = 'absolute';
152
+ }
153
+
154
+ dom.style.zIndex = PopupManager.nextZIndex();
155
+ this.opened = true;
156
+
157
+ this.onOpen && this.onOpen();
158
+
159
+ this.doAfterOpen();
160
+ },
161
+
162
+ doAfterOpen() {
163
+ this._opening = false;
164
+ },
165
+
166
+ close() {
167
+ if (this.willClose && !this.willClose()) return;
168
+
169
+ if (this._openTimer !== null) {
170
+ clearTimeout(this._openTimer);
171
+ this._openTimer = null;
172
+ }
173
+ clearTimeout(this._closeTimer);
174
+
175
+ const closeDelay = Number(this.closeDelay);
176
+
177
+ if (closeDelay > 0) {
178
+ this._closeTimer = setTimeout(() => {
179
+ this._closeTimer = null;
180
+ this.doClose();
181
+ }, closeDelay);
182
+ } else {
183
+ this.doClose();
184
+ }
185
+ },
186
+
187
+ doClose() {
188
+ this._closing = true;
189
+
190
+ this.onClose && this.onClose();
191
+
192
+ if (this.lockScroll) {
193
+ setTimeout(this.restoreBodyStyle, 200);
194
+ }
195
+
196
+ this.opened = false;
197
+
198
+ this.doAfterClose();
199
+ },
200
+
201
+ doAfterClose() {
202
+ PopupManager.closeModal(this._popupId);
203
+ this._closing = false;
204
+ },
205
+
206
+ restoreBodyStyle() {
207
+ if (this.modal && this.withoutHiddenClass) {
208
+ document.body.style.paddingRight = this.bodyPaddingRight;
209
+ removeClass(document.body, 'el-popup-parent--hidden');
210
+ }
211
+ this.withoutHiddenClass = true;
212
+ }
213
+ }
214
+ };
215
+
216
+ export {
217
+ PopupManager
218
+ };