eoss 0.1.0-alpha.20 → 0.1.0-alpha.21

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 (207) hide show
  1. package/lib/account-login.js +1943 -1890
  2. package/lib/alert.js +4 -4
  3. package/lib/aside.js +4 -4
  4. package/lib/autocomplete.js +4936 -4834
  5. package/lib/avatar.js +4 -4
  6. package/lib/backtop.js +4 -4
  7. package/lib/badge.js +4 -4
  8. package/lib/breadcrumb-item.js +6 -6
  9. package/lib/breadcrumb.js +7 -7
  10. package/lib/button-group.js +11 -14
  11. package/lib/button.js +6 -6
  12. package/lib/ca-login.js +2480 -2382
  13. package/lib/calendar.js +798 -798
  14. package/lib/card.js +4 -4
  15. package/lib/carousel-item.js +911 -813
  16. package/lib/carousel.js +1646 -1548
  17. package/lib/cascader-panel.js +2556 -2458
  18. package/lib/cascader.js +4546 -4444
  19. package/lib/checkbox-button.js +4 -4
  20. package/lib/checkbox-group.js +2894 -2841
  21. package/lib/checkbox.js +4 -4
  22. package/lib/col.js +2 -2
  23. package/lib/collapse-item.js +35159 -2572
  24. package/lib/collapse.js +35410 -2762
  25. package/lib/color-picker.js +494 -490
  26. package/lib/config/api.js +15 -1
  27. package/lib/container.js +4 -4
  28. package/lib/cron.js +4 -4
  29. package/lib/data-table.js +1895 -1842
  30. package/lib/date-picker.js +6422 -6320
  31. package/lib/dialog.js +2912 -2806
  32. package/lib/divider.js +4 -4
  33. package/lib/drawer.js +311 -299
  34. package/lib/dropdown-item.js +6 -6
  35. package/lib/dropdown-menu.js +539 -535
  36. package/lib/dropdown.js +2270 -2172
  37. package/lib/email-login.js +1783 -1730
  38. package/lib/empty.js +723 -0
  39. package/lib/eoss.common.js +63680 -56193
  40. package/lib/flip.js +4 -4
  41. package/lib/flow-group.js +2985 -2887
  42. package/lib/flow.js +28067 -28022
  43. package/lib/footer.js +4 -4
  44. package/lib/form-item.js +1935 -1837
  45. package/lib/form.js +9230 -9092
  46. package/lib/header.js +4 -4
  47. package/lib/icon.js +1708 -1590
  48. package/lib/icons.js +4 -4
  49. package/lib/image-viewer.js +1660 -1562
  50. package/lib/image.js +162 -162
  51. package/lib/index.js +1 -1
  52. package/lib/infinite-scroll.js +76 -76
  53. package/lib/input-number.js +172 -172
  54. package/lib/input.js +1362 -1264
  55. package/lib/link.js +4 -4
  56. package/lib/loading.js +321 -317
  57. package/lib/login.js +3306 -3300
  58. package/lib/lowcode.js +13320 -0
  59. package/lib/main.js +14465 -14339
  60. package/lib/marquee.js +1237 -1139
  61. package/lib/menu-item-group.js +119 -119
  62. package/lib/menu-item.js +114 -114
  63. package/lib/menu.js +6193 -6091
  64. package/lib/message-box.js +3582 -3480
  65. package/lib/message.js +2265 -2163
  66. package/lib/notification.js +2430 -2328
  67. package/lib/option-group.js +4 -4
  68. package/lib/option.js +842 -744
  69. package/lib/page-header.js +4 -4
  70. package/lib/pagination.js +1916 -1815
  71. package/lib/phone-login.js +1788 -1735
  72. package/lib/popconfirm.js +8 -8
  73. package/lib/popover.js +4559 -4457
  74. package/lib/progress.js +4 -4
  75. package/lib/qr-code.js +9 -9
  76. package/lib/qrcode-login.js +1600 -1543
  77. package/lib/radio-button.js +6 -6
  78. package/lib/radio-group.js +2142 -2089
  79. package/lib/radio.js +6 -6
  80. package/lib/rate.js +1226 -1128
  81. package/lib/row.js +2 -2
  82. package/lib/scrollbar.js +2695 -2597
  83. package/lib/select.js +5985 -5961
  84. package/lib/selector-panel.js +5239 -5186
  85. package/lib/selector.js +1712 -1659
  86. package/lib/slider.js +16 -16
  87. package/lib/step.js +35836 -2736
  88. package/lib/steps.js +1281 -1183
  89. package/lib/submenu.js +461 -457
  90. package/lib/switch.js +1010 -912
  91. package/lib/tab-pane.js +4 -4
  92. package/lib/table-column.js +2595 -2497
  93. package/lib/table.js +9225 -9239
  94. package/lib/tabs.js +2414 -2320
  95. package/lib/tag.js +4 -4
  96. package/lib/theme-chalk/account-login.css +1 -1
  97. package/lib/theme-chalk/autocomplete.css +1 -1
  98. package/lib/theme-chalk/base.css +1 -1
  99. package/lib/theme-chalk/cascader.css +1 -1
  100. package/lib/theme-chalk/date-picker.css +1 -1
  101. package/lib/theme-chalk/empty.css +1 -0
  102. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  103. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  104. package/lib/theme-chalk/form.css +1 -1
  105. package/lib/theme-chalk/icon.css +1 -1
  106. package/lib/theme-chalk/index.css +1 -1
  107. package/lib/theme-chalk/input-number.css +1 -1
  108. package/lib/theme-chalk/input.css +1 -1
  109. package/lib/theme-chalk/login.css +1 -1
  110. package/lib/theme-chalk/lowcode.css +1 -0
  111. package/lib/theme-chalk/main.css +1 -1
  112. package/lib/theme-chalk/message-box.css +1 -1
  113. package/lib/theme-chalk/pagination.css +1 -1
  114. package/lib/theme-chalk/qrcode-login.css +1 -1
  115. package/lib/theme-chalk/select.css +1 -1
  116. package/lib/theme-chalk/slider.css +1 -1
  117. package/lib/theme-chalk/tabs.css +1 -1
  118. package/lib/theme-chalk/time-picker.css +1 -1
  119. package/lib/theme-chalk/transfer.css +1 -1
  120. package/lib/time-picker.js +5823 -5819
  121. package/lib/time-select.js +3578 -3574
  122. package/lib/timeline-item.js +4 -4
  123. package/lib/timeline.js +4 -4
  124. package/lib/tips.js +1633 -1580
  125. package/lib/toolbar.js +213 -213
  126. package/lib/tooltip.js +4441 -4339
  127. package/lib/transfer.js +938 -840
  128. package/lib/tree-group.js +1875 -1757
  129. package/lib/tree.js +2626 -2573
  130. package/lib/upload.js +7209 -7156
  131. package/lib/utils/ajax.js +185 -243
  132. package/lib/utils/bus.js +2 -2
  133. package/lib/utils/popup/index.js +5 -1
  134. package/lib/utils/util.js +108 -11
  135. package/package.json +2 -2
  136. package/packages/button/src/button-group.vue +1 -4
  137. package/packages/collapse/src/collapse-item.vue +47 -33
  138. package/packages/dialog/src/dialog.vue +4 -1
  139. package/packages/drawer/src/drawer.vue +12 -4
  140. package/packages/empty/index.js +7 -0
  141. package/packages/empty/src/img-empty.vue +132 -0
  142. package/packages/empty/src/index.vue +49 -0
  143. package/packages/form/src/form-item-render.vue +16 -18
  144. package/packages/form/src/form.vue +27 -5
  145. package/packages/icons/src/icon.json +1 -1
  146. package/packages/login/src/login.vue +19 -21
  147. package/packages/login/src/mixins.js +2 -1
  148. package/packages/lowcode/index.js +5 -0
  149. package/packages/lowcode/src/aside.vue +331 -0
  150. package/packages/lowcode/src/attribute/bind.vue +441 -0
  151. package/packages/lowcode/src/attribute/dependency.vue +325 -0
  152. package/packages/lowcode/src/attribute/function.vue +112 -0
  153. package/packages/lowcode/src/attribute/property.vue +331 -0
  154. package/packages/lowcode/src/attribute/styles.vue +318 -0
  155. package/packages/lowcode/src/attribute.vue +135 -0
  156. package/packages/lowcode/src/canvas.vue +296 -0
  157. package/packages/lowcode/src/json.vue +32 -0
  158. package/packages/lowcode/src/lowcode.vue +539 -0
  159. package/packages/lowcode/src/modules.vue +93 -0
  160. package/packages/lowcode/src/pages.vue +91 -0
  161. package/packages/lowcode/src/render.vue +247 -0
  162. package/packages/lowcode/src/source.vue +32 -0
  163. package/packages/lowcode/src/toolbar.vue +162 -0
  164. package/packages/main/src/components/pages.vue +28 -2
  165. package/packages/main/src/components/set-menus.vue +3 -3
  166. package/packages/main/src/components/user.vue +6 -1
  167. package/packages/main/src/early.vue +2 -2
  168. package/packages/main/src/gzw.vue +55 -61
  169. package/packages/main/src/minxs.js +113 -36
  170. package/packages/pagination/src/pager.vue +2 -2
  171. package/packages/pagination/src/pagination.js +4 -1
  172. package/packages/qrcode-login/src/qrcode-login.vue +6 -2
  173. package/packages/select/src/select.vue +28 -6
  174. package/packages/steps/src/step.vue +7 -5
  175. package/packages/tabs/src/tab-nav.vue +1 -0
  176. package/packages/tabs/src/tabs.vue +0 -2
  177. package/packages/theme-chalk/dist/fonts/iconfont.ttf +0 -0
  178. package/packages/theme-chalk/dist/fonts/iconfont.woff +0 -0
  179. package/packages/theme-chalk/gulpfile.js +3 -0
  180. package/packages/theme-chalk/src/account-login.scss +1 -0
  181. package/packages/theme-chalk/src/base.scss +1 -1
  182. package/packages/theme-chalk/src/common/var.scss +16 -0
  183. package/packages/theme-chalk/src/empty.scss +45 -0
  184. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  185. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  186. package/packages/theme-chalk/src/form.scss +1 -8
  187. package/packages/theme-chalk/src/icon.scss +30 -1
  188. package/packages/theme-chalk/src/index.scss +2 -0
  189. package/packages/theme-chalk/src/input-number.scss +0 -4
  190. package/packages/theme-chalk/src/input.scss +9 -0
  191. package/packages/theme-chalk/src/login.scss +32 -29
  192. package/packages/theme-chalk/src/lowcode.scss +461 -0
  193. package/packages/theme-chalk/src/main.scss +28 -65
  194. package/packages/theme-chalk/src/pagination.scss +4 -55
  195. package/packages/theme-chalk/src/qrcode-login.scss +3 -1
  196. package/packages/theme-chalk/src/tabs.scss +81 -50
  197. package/src/config/api.js +13 -0
  198. package/src/index.js +17 -4
  199. package/src/utils/ajax.js +61 -65
  200. package/src/utils/bus.js +2 -2
  201. package/src/utils/popup/index.js +5 -1
  202. package/src/utils/util.js +104 -7
  203. package/lib/index_/345/211/257/346/234/254.js +0 -583
  204. package/packages/dialog copy/index.js +0 -8
  205. package/packages/dialog copy/src/dialog.vue +0 -615
  206. package/src/index_/345/211/257/346/234/254.js +0 -359
  207. /package/{packages/form/src → src/components}/field-render.vue +0 -0
package/lib/drawer.js CHANGED
@@ -82,7 +82,7 @@ module.exports =
82
82
  /******/
83
83
  /******/
84
84
  /******/ // Load entry module and return exports
85
- /******/ return __webpack_require__(__webpack_require__.s = 189);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 193);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ({
@@ -127,7 +127,152 @@ function _broadcast(componentName, eventName, params) {
127
127
 
128
128
  /***/ }),
129
129
 
130
- /***/ 18:
130
+ /***/ 15:
131
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
132
+
133
+ "use strict";
134
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getScrollbarWidth; });
135
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return scrollIntoView; });
136
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getScrollSize; });
137
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return scrollMove; });
138
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
139
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
140
+
141
+
142
+ /**
143
+ * 缓存变量,用于存储计算过的滚动条宽度
144
+ */
145
+ var scrollBarWidth = void 0;
146
+
147
+ /**
148
+ * 计算并返回浏览器滚动条的宽度
149
+ * @returns {number} 滚动条宽度(像素)
150
+ */
151
+ var getScrollbarWidth = function getScrollbarWidth() {
152
+ // 服务器端渲染时返回0
153
+ if (vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer) return 0;
154
+ // 如果已经计算过,直接返回缓存值
155
+ if (scrollBarWidth !== undefined) return scrollBarWidth;
156
+
157
+ // 创建测试元素
158
+ var outer = document.createElement('div');
159
+ outer.className = 'es-scrollbar__wrap';
160
+ outer.style.visibility = 'hidden';
161
+ outer.style.width = '100px';
162
+ outer.style.position = 'absolute';
163
+ outer.style.top = '-9999px';
164
+ document.body.appendChild(outer);
165
+
166
+ // 计算无滚动条时的宽度
167
+ var widthNoScroll = outer.offsetWidth;
168
+ outer.style.overflow = 'scroll';
169
+
170
+ // 创建内部元素并计算有滚动条时的宽度
171
+ var inner = document.createElement('div');
172
+ inner.style.width = '100%';
173
+ outer.appendChild(inner);
174
+
175
+ var widthWithScroll = inner.offsetWidth;
176
+ // 清理DOM
177
+ outer.parentNode.removeChild(outer);
178
+ // 计算滚动条宽度
179
+ scrollBarWidth = widthNoScroll - widthWithScroll;
180
+
181
+ return scrollBarWidth;
182
+ };
183
+
184
+ /**
185
+ * 将指定元素滚动到容器视图中
186
+ * @param {HTMLElement} container - 容器元素
187
+ * @param {HTMLElement} selected - 要滚动到视图中的元素
188
+ * @example
189
+ * // 用法示例
190
+ * const container = document.querySelector('.container');
191
+ * const element = document.querySelector('.target-element');
192
+ * scrollIntoView(container, element);
193
+ */
194
+ function scrollIntoView(container, selected) {
195
+ // 服务器端渲染时不执行
196
+ if (vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer) return;
197
+
198
+ // 如果没有指定元素,滚动到顶部
199
+ if (!selected) {
200
+ container.scrollTop = 0;
201
+ return;
202
+ }
203
+
204
+ // 收集所有偏移父元素
205
+ var offsetParents = [];
206
+ var pointer = selected.offsetParent;
207
+ while (pointer && container !== pointer && container.contains(pointer)) {
208
+ offsetParents.push(pointer);
209
+ pointer = pointer.offsetParent;
210
+ }
211
+
212
+ // 计算元素相对于容器的顶部偏移量
213
+ var top = selected.offsetTop + offsetParents.reduce(function (prev, curr) {
214
+ return prev + curr.offsetTop;
215
+ }, 0);
216
+ var bottom = top + selected.offsetHeight;
217
+ var viewRectTop = container.scrollTop;
218
+ var viewRectBottom = viewRectTop + container.clientHeight;
219
+
220
+ // 调整滚动位置使元素可见
221
+ if (top < viewRectTop) {
222
+ container.scrollTop = top;
223
+ } else if (bottom > viewRectBottom) {
224
+ container.scrollTop = bottom - container.clientHeight;
225
+ }
226
+ }
227
+
228
+ // 获取滚动条大小
229
+ function getScrollSize(wrap) {
230
+ if (!wrap) {
231
+ return { width: '', height: '' };
232
+ };
233
+ var heightPercentage = 0;
234
+ var widthPercentage = 0;
235
+
236
+ // 修复滚动条尺寸计算逻辑
237
+ var scrollHeight = wrap.scrollHeight;
238
+ var scrollWidth = wrap.scrollWidth;
239
+ var clientHeight = wrap.clientHeight;
240
+ var clientWidth = wrap.clientWidth;
241
+ var sizes = {
242
+ width: '',
243
+ height: ''
244
+ };
245
+ // 只有当内容高度超过容器高度时才显示垂直滚动条
246
+ if (scrollHeight > clientHeight) {
247
+ heightPercentage = clientHeight * 100 / scrollHeight;
248
+ sizes.height = heightPercentage < 100 ? heightPercentage + '%' : '100%';
249
+ } else {
250
+ sizes.height = '';
251
+ }
252
+
253
+ // 只有当内容宽度超过容器宽度时才显示水平滚动条
254
+ if (scrollWidth > clientWidth) {
255
+ widthPercentage = clientWidth * 100 / scrollWidth;
256
+ sizes.width = widthPercentage < 100 ? widthPercentage + '%' : '100%';
257
+ } else {
258
+ sizes.width = '';
259
+ }
260
+ return sizes;
261
+ }
262
+
263
+ // 滚动条移动
264
+ function scrollMove(wrap) {
265
+ if (!wrap) return;
266
+
267
+ // 立即更新滚动条位置,不使用阈值判断
268
+ var y = wrap.scrollTop * 100 / wrap.clientHeight;
269
+ var x = wrap.scrollLeft * 100 / wrap.clientWidth;
270
+ return { y: y, x: x };
271
+ }
272
+
273
+ /***/ }),
274
+
275
+ /***/ 16:
131
276
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
132
277
 
133
278
  "use strict";
@@ -149,14 +294,14 @@ function _broadcast(componentName, eventName, params) {
149
294
 
150
295
  /***/ }),
151
296
 
152
- /***/ 189:
297
+ /***/ 193:
153
298
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
154
299
 
155
300
  "use strict";
156
301
  // ESM COMPAT FLAG
157
302
  __webpack_require__.r(__webpack_exports__);
158
303
 
159
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/drawer/src/drawer.vue?vue&type=template&id=297c55df&
304
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/drawer/src/drawer.vue?vue&type=template&id=5e536594&
160
305
  var render = function () {
161
306
  var _vm = this
162
307
  var _h = _vm.$createElement
@@ -282,10 +427,10 @@ var staticRenderFns = []
282
427
  render._withStripped = true
283
428
 
284
429
 
285
- // CONCATENATED MODULE: ./packages/drawer/src/drawer.vue?vue&type=template&id=297c55df&
430
+ // CONCATENATED MODULE: ./packages/drawer/src/drawer.vue?vue&type=template&id=5e536594&
286
431
 
287
432
  // EXTERNAL MODULE: ./src/utils/popup/index.js + 1 modules
288
- var popup = __webpack_require__(22);
433
+ var popup = __webpack_require__(23);
289
434
 
290
435
  // EXTERNAL MODULE: ./src/mixins/emitter.js
291
436
  var emitter = __webpack_require__(10);
@@ -347,6 +492,9 @@ var emitter = __webpack_require__(10);
347
492
  //
348
493
  //
349
494
  //
495
+ //
496
+ //
497
+ //
350
498
 
351
499
 
352
500
 
@@ -361,7 +509,7 @@ var emitter = __webpack_require__(10);
361
509
  mixins: [popup["b" /* default */], emitter["a" /* default */]],
362
510
  props: {
363
511
  /**
364
- * Drawer 自身是否插入至 body 元素上。嵌套的 Drawer 必须指定该属性并赋值为 true
512
+ * Drawer 自身是否插入至 body 元素上。
365
513
  */
366
514
  appendToBody: {
367
515
  type: Boolean,
@@ -423,7 +571,9 @@ var emitter = __webpack_require__(10);
423
571
  */
424
572
  modalAppendToBody: {
425
573
  type: Boolean,
426
- default: true
574
+ default: function _default() {
575
+ return this.appendToBody;
576
+ }
427
577
  },
428
578
  /**
429
579
  * 是否显示关闭按钮
@@ -581,6 +731,9 @@ var emitter = __webpack_require__(10);
581
731
  }
582
732
  },
583
733
  mounted: function mounted() {
734
+ if (!this.lazy) {
735
+ return;
736
+ }
584
737
  if (this.visible) {
585
738
  this.rendered = true;
586
739
  this.open();
@@ -598,194 +751,42 @@ var emitter = __webpack_require__(10);
598
751
  });
599
752
  // CONCATENATED MODULE: ./packages/drawer/src/drawer.vue?vue&type=script&lang=js&
600
753
  /* harmony default export */ var src_drawervue_type_script_lang_js_ = (drawervue_type_script_lang_js_);
601
- // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
602
- var componentNormalizer = __webpack_require__(5);
603
-
604
- // CONCATENATED MODULE: ./packages/drawer/src/drawer.vue
605
-
606
-
607
-
608
-
609
-
610
- /* normalize component */
611
-
612
- var component = Object(componentNormalizer["a" /* default */])(
613
- src_drawervue_type_script_lang_js_,
614
- render,
615
- staticRenderFns,
616
- false,
617
- null,
618
- null,
619
- null
620
-
621
- )
622
-
623
- /* harmony default export */ var drawer = (component.exports);
624
- // CONCATENATED MODULE: ./packages/drawer/index.js
625
-
626
-
627
- /* istanbul ignore next */
628
- drawer.install = function (Vue) {
629
- Vue.component(drawer.name, drawer);
630
- };
631
-
632
- /* harmony default export */ var packages_drawer = __webpack_exports__["default"] = (drawer);
633
-
634
- /***/ }),
635
-
636
- /***/ 19:
637
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
638
-
639
- "use strict";
640
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getScrollbarWidth; });
641
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return scrollIntoView; });
642
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getScrollSize; });
643
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return scrollMove; });
644
- /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
645
- /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
646
-
647
-
648
- /**
649
- * 缓存变量,用于存储计算过的滚动条宽度
650
- */
651
- var scrollBarWidth = void 0;
652
-
653
- /**
654
- * 计算并返回浏览器滚动条的宽度
655
- * @returns {number} 滚动条宽度(像素)
656
- */
657
- var getScrollbarWidth = function getScrollbarWidth() {
658
- // 服务器端渲染时返回0
659
- if (vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer) return 0;
660
- // 如果已经计算过,直接返回缓存值
661
- if (scrollBarWidth !== undefined) return scrollBarWidth;
662
-
663
- // 创建测试元素
664
- var outer = document.createElement('div');
665
- outer.className = 'es-scrollbar__wrap';
666
- outer.style.visibility = 'hidden';
667
- outer.style.width = '100px';
668
- outer.style.position = 'absolute';
669
- outer.style.top = '-9999px';
670
- document.body.appendChild(outer);
671
-
672
- // 计算无滚动条时的宽度
673
- var widthNoScroll = outer.offsetWidth;
674
- outer.style.overflow = 'scroll';
675
-
676
- // 创建内部元素并计算有滚动条时的宽度
677
- var inner = document.createElement('div');
678
- inner.style.width = '100%';
679
- outer.appendChild(inner);
680
-
681
- var widthWithScroll = inner.offsetWidth;
682
- // 清理DOM
683
- outer.parentNode.removeChild(outer);
684
- // 计算滚动条宽度
685
- scrollBarWidth = widthNoScroll - widthWithScroll;
686
-
687
- return scrollBarWidth;
688
- };
689
-
690
- /**
691
- * 将指定元素滚动到容器视图中
692
- * @param {HTMLElement} container - 容器元素
693
- * @param {HTMLElement} selected - 要滚动到视图中的元素
694
- * @example
695
- * // 用法示例
696
- * const container = document.querySelector('.container');
697
- * const element = document.querySelector('.target-element');
698
- * scrollIntoView(container, element);
699
- */
700
- function scrollIntoView(container, selected) {
701
- // 服务器端渲染时不执行
702
- if (vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer) return;
703
-
704
- // 如果没有指定元素,滚动到顶部
705
- if (!selected) {
706
- container.scrollTop = 0;
707
- return;
708
- }
709
-
710
- // 收集所有偏移父元素
711
- var offsetParents = [];
712
- var pointer = selected.offsetParent;
713
- while (pointer && container !== pointer && container.contains(pointer)) {
714
- offsetParents.push(pointer);
715
- pointer = pointer.offsetParent;
716
- }
717
-
718
- // 计算元素相对于容器的顶部偏移量
719
- var top = selected.offsetTop + offsetParents.reduce(function (prev, curr) {
720
- return prev + curr.offsetTop;
721
- }, 0);
722
- var bottom = top + selected.offsetHeight;
723
- var viewRectTop = container.scrollTop;
724
- var viewRectBottom = viewRectTop + container.clientHeight;
725
-
726
- // 调整滚动位置使元素可见
727
- if (top < viewRectTop) {
728
- container.scrollTop = top;
729
- } else if (bottom > viewRectBottom) {
730
- container.scrollTop = bottom - container.clientHeight;
731
- }
732
- }
733
-
734
- // 获取滚动条大小
735
- function getScrollSize(wrap) {
736
- if (!wrap) {
737
- return { width: '', height: '' };
738
- };
739
- var heightPercentage = 0;
740
- var widthPercentage = 0;
741
-
742
- // 修复滚动条尺寸计算逻辑
743
- var scrollHeight = wrap.scrollHeight;
744
- var scrollWidth = wrap.scrollWidth;
745
- var clientHeight = wrap.clientHeight;
746
- var clientWidth = wrap.clientWidth;
747
- var sizes = {
748
- width: '',
749
- height: ''
750
- };
751
- // 只有当内容高度超过容器高度时才显示垂直滚动条
752
- if (scrollHeight > clientHeight) {
753
- heightPercentage = clientHeight * 100 / scrollHeight;
754
- sizes.height = heightPercentage < 100 ? heightPercentage + '%' : '100%';
755
- } else {
756
- sizes.height = '';
757
- }
758
-
759
- // 只有当内容宽度超过容器宽度时才显示水平滚动条
760
- if (scrollWidth > clientWidth) {
761
- widthPercentage = clientWidth * 100 / scrollWidth;
762
- sizes.width = widthPercentage < 100 ? widthPercentage + '%' : '100%';
763
- } else {
764
- sizes.width = '';
765
- }
766
- return sizes;
767
- }
754
+ // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
755
+ var componentNormalizer = __webpack_require__(3);
768
756
 
769
- // 滚动条移动
770
- function scrollMove(wrap) {
771
- if (!wrap) return;
757
+ // CONCATENATED MODULE: ./packages/drawer/src/drawer.vue
772
758
 
773
- // 立即更新滚动条位置,不使用阈值判断
774
- var y = wrap.scrollTop * 100 / wrap.clientHeight;
775
- var x = wrap.scrollLeft * 100 / wrap.clientWidth;
776
- return { y: y, x: x };
777
- }
778
759
 
779
- /***/ }),
780
760
 
781
- /***/ 2:
782
- /***/ (function(module, exports) {
783
761
 
784
- module.exports = require("vue");
762
+
763
+ /* normalize component */
764
+
765
+ var component = Object(componentNormalizer["a" /* default */])(
766
+ src_drawervue_type_script_lang_js_,
767
+ render,
768
+ staticRenderFns,
769
+ false,
770
+ null,
771
+ null,
772
+ null
773
+
774
+ )
775
+
776
+ /* harmony default export */ var drawer = (component.exports);
777
+ // CONCATENATED MODULE: ./packages/drawer/index.js
778
+
779
+
780
+ /* istanbul ignore next */
781
+ drawer.install = function (Vue) {
782
+ Vue.component(drawer.name, drawer);
783
+ };
784
+
785
+ /* harmony default export */ var packages_drawer = __webpack_exports__["default"] = (drawer);
785
786
 
786
787
  /***/ }),
787
788
 
788
- /***/ 22:
789
+ /***/ 23:
789
790
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
790
791
 
791
792
  "use strict";
@@ -794,14 +795,14 @@ module.exports = require("vue");
794
795
  __webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ popup_manager; });
795
796
 
796
797
  // EXTERNAL MODULE: external "vue"
797
- var external_vue_ = __webpack_require__(2);
798
+ var external_vue_ = __webpack_require__(4);
798
799
  var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
799
800
 
800
801
  // EXTERNAL MODULE: ./src/utils/merge.js
801
- var merge = __webpack_require__(18);
802
+ var merge = __webpack_require__(16);
802
803
 
803
804
  // EXTERNAL MODULE: ./src/utils/dom.js
804
- var utils_dom = __webpack_require__(4);
805
+ var utils_dom = __webpack_require__(5);
805
806
 
806
807
  // CONCATENATED MODULE: ./src/utils/popup/popup-manager.js
807
808
 
@@ -1010,7 +1011,7 @@ if (!external_vue_default.a.prototype.$isServer) {
1010
1011
 
1011
1012
  /* harmony default export */ var popup_manager = (PopupManager);
1012
1013
  // EXTERNAL MODULE: ./src/utils/scrollbar.js
1013
- var scrollbar = __webpack_require__(19);
1014
+ var scrollbar = __webpack_require__(15);
1014
1015
 
1015
1016
  // CONCATENATED MODULE: ./src/utils/popup/index.js
1016
1017
 
@@ -1056,6 +1057,10 @@ var scrollBarWidth = void 0;
1056
1057
  closeOnClickModal: {
1057
1058
  type: Boolean,
1058
1059
  default: false
1060
+ },
1061
+ lazy: {
1062
+ type: Boolean,
1063
+ default: true
1059
1064
  }
1060
1065
  },
1061
1066
 
@@ -1085,7 +1090,7 @@ var scrollBarWidth = void 0;
1085
1090
  bodyPaddingRight: null,
1086
1091
  computedBodyPaddingRight: 0,
1087
1092
  withoutHiddenClass: true,
1088
- rendered: false
1093
+ rendered: !this.lazy
1089
1094
  };
1090
1095
  },
1091
1096
 
@@ -1234,9 +1239,121 @@ var scrollBarWidth = void 0;
1234
1239
 
1235
1240
 
1236
1241
 
1242
+ /***/ }),
1243
+
1244
+ /***/ 3:
1245
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1246
+
1247
+ "use strict";
1248
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
1249
+ /* globals __VUE_SSR_CONTEXT__ */
1250
+
1251
+ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
1252
+ // This module is a runtime utility for cleaner component module output and will
1253
+ // be included in the final webpack user bundle.
1254
+
1255
+ function normalizeComponent(
1256
+ scriptExports,
1257
+ render,
1258
+ staticRenderFns,
1259
+ functionalTemplate,
1260
+ injectStyles,
1261
+ scopeId,
1262
+ moduleIdentifier /* server only */,
1263
+ shadowMode /* vue-cli only */
1264
+ ) {
1265
+ // Vue.extend constructor export interop
1266
+ var options =
1267
+ typeof scriptExports === 'function' ? scriptExports.options : scriptExports
1268
+
1269
+ // render functions
1270
+ if (render) {
1271
+ options.render = render
1272
+ options.staticRenderFns = staticRenderFns
1273
+ options._compiled = true
1274
+ }
1275
+
1276
+ // functional template
1277
+ if (functionalTemplate) {
1278
+ options.functional = true
1279
+ }
1280
+
1281
+ // scopedId
1282
+ if (scopeId) {
1283
+ options._scopeId = 'data-v-' + scopeId
1284
+ }
1285
+
1286
+ var hook
1287
+ if (moduleIdentifier) {
1288
+ // server build
1289
+ hook = function (context) {
1290
+ // 2.3 injection
1291
+ context =
1292
+ context || // cached call
1293
+ (this.$vnode && this.$vnode.ssrContext) || // stateful
1294
+ (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
1295
+ // 2.2 with runInNewContext: true
1296
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
1297
+ context = __VUE_SSR_CONTEXT__
1298
+ }
1299
+ // inject component styles
1300
+ if (injectStyles) {
1301
+ injectStyles.call(this, context)
1302
+ }
1303
+ // register component module identifier for async chunk inferrence
1304
+ if (context && context._registeredComponents) {
1305
+ context._registeredComponents.add(moduleIdentifier)
1306
+ }
1307
+ }
1308
+ // used by ssr in case component is cached and beforeCreate
1309
+ // never gets called
1310
+ options._ssrRegister = hook
1311
+ } else if (injectStyles) {
1312
+ hook = shadowMode
1313
+ ? function () {
1314
+ injectStyles.call(
1315
+ this,
1316
+ (options.functional ? this.parent : this).$root.$options.shadowRoot
1317
+ )
1318
+ }
1319
+ : injectStyles
1320
+ }
1321
+
1322
+ if (hook) {
1323
+ if (options.functional) {
1324
+ // for template-only hot-reload because in that case the render fn doesn't
1325
+ // go through the normalizer
1326
+ options._injectStyles = hook
1327
+ // register for functional component in vue file
1328
+ var originalRender = options.render
1329
+ options.render = function renderWithStyleInjection(h, context) {
1330
+ hook.call(context)
1331
+ return originalRender(h, context)
1332
+ }
1333
+ } else {
1334
+ // inject component registration as beforeCreate hook
1335
+ var existing = options.beforeCreate
1336
+ options.beforeCreate = existing ? [].concat(existing, hook) : [hook]
1337
+ }
1338
+ }
1339
+
1340
+ return {
1341
+ exports: scriptExports,
1342
+ options: options
1343
+ }
1344
+ }
1345
+
1346
+
1237
1347
  /***/ }),
1238
1348
 
1239
1349
  /***/ 4:
1350
+ /***/ (function(module, exports) {
1351
+
1352
+ module.exports = require("vue");
1353
+
1354
+ /***/ }),
1355
+
1356
+ /***/ 5:
1240
1357
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1241
1358
 
1242
1359
  "use strict";
@@ -1252,7 +1369,7 @@ var scrollBarWidth = void 0;
1252
1369
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getScrollContainer; });
1253
1370
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isInContainer; });
1254
1371
  /* unused harmony export insertAfter */
1255
- /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
1372
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
1256
1373
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
1257
1374
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
1258
1375
 
@@ -1493,111 +1610,6 @@ function insertAfter(newEl, targetEl) {
1493
1610
  }
1494
1611
  }
1495
1612
 
1496
- /***/ }),
1497
-
1498
- /***/ 5:
1499
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
1500
-
1501
- "use strict";
1502
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
1503
- /* globals __VUE_SSR_CONTEXT__ */
1504
-
1505
- // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
1506
- // This module is a runtime utility for cleaner component module output and will
1507
- // be included in the final webpack user bundle.
1508
-
1509
- function normalizeComponent(
1510
- scriptExports,
1511
- render,
1512
- staticRenderFns,
1513
- functionalTemplate,
1514
- injectStyles,
1515
- scopeId,
1516
- moduleIdentifier /* server only */,
1517
- shadowMode /* vue-cli only */
1518
- ) {
1519
- // Vue.extend constructor export interop
1520
- var options =
1521
- typeof scriptExports === 'function' ? scriptExports.options : scriptExports
1522
-
1523
- // render functions
1524
- if (render) {
1525
- options.render = render
1526
- options.staticRenderFns = staticRenderFns
1527
- options._compiled = true
1528
- }
1529
-
1530
- // functional template
1531
- if (functionalTemplate) {
1532
- options.functional = true
1533
- }
1534
-
1535
- // scopedId
1536
- if (scopeId) {
1537
- options._scopeId = 'data-v-' + scopeId
1538
- }
1539
-
1540
- var hook
1541
- if (moduleIdentifier) {
1542
- // server build
1543
- hook = function (context) {
1544
- // 2.3 injection
1545
- context =
1546
- context || // cached call
1547
- (this.$vnode && this.$vnode.ssrContext) || // stateful
1548
- (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
1549
- // 2.2 with runInNewContext: true
1550
- if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
1551
- context = __VUE_SSR_CONTEXT__
1552
- }
1553
- // inject component styles
1554
- if (injectStyles) {
1555
- injectStyles.call(this, context)
1556
- }
1557
- // register component module identifier for async chunk inferrence
1558
- if (context && context._registeredComponents) {
1559
- context._registeredComponents.add(moduleIdentifier)
1560
- }
1561
- }
1562
- // used by ssr in case component is cached and beforeCreate
1563
- // never gets called
1564
- options._ssrRegister = hook
1565
- } else if (injectStyles) {
1566
- hook = shadowMode
1567
- ? function () {
1568
- injectStyles.call(
1569
- this,
1570
- (options.functional ? this.parent : this).$root.$options.shadowRoot
1571
- )
1572
- }
1573
- : injectStyles
1574
- }
1575
-
1576
- if (hook) {
1577
- if (options.functional) {
1578
- // for template-only hot-reload because in that case the render fn doesn't
1579
- // go through the normalizer
1580
- options._injectStyles = hook
1581
- // register for functional component in vue file
1582
- var originalRender = options.render
1583
- options.render = function renderWithStyleInjection(h, context) {
1584
- hook.call(context)
1585
- return originalRender(h, context)
1586
- }
1587
- } else {
1588
- // inject component registration as beforeCreate hook
1589
- var existing = options.beforeCreate
1590
- options.beforeCreate = existing ? [].concat(existing, hook) : [hook]
1591
- }
1592
- }
1593
-
1594
- return {
1595
- exports: scriptExports,
1596
- options: options
1597
- }
1598
- }
1599
-
1600
-
1601
1613
  /***/ })
1602
1614
 
1603
1615
  /******/ });