@mdsfe/mds-ui 0.2.0 → 0.2.9-rc.1

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 (131) hide show
  1. package/CHANGELOG.md +178 -0
  2. package/README.md +9 -9
  3. package/dist/_mixin/popper.js +1 -0
  4. package/dist/_util/_popper/dom-helper.js +284 -0
  5. package/dist/_util/_popper/popper-mixin.js +35 -0
  6. package/dist/_util/_popper/popper.js +1267 -0
  7. package/dist/_util/_popper/popup/popup-main.js +224 -0
  8. package/dist/_util/_popper/popup/popup-manager.js +205 -0
  9. package/dist/_util/_popper/vue-popper.js +204 -0
  10. package/dist/_util/popup/index.js +1 -1
  11. package/dist/_util/tree/node.js +2 -0
  12. package/dist/_util/tree/tree.js +65 -21
  13. package/dist/_util/util.js +29 -1
  14. package/dist/affix.js +18 -18
  15. package/dist/anchor.js +18 -18
  16. package/dist/avatar.js +17 -17
  17. package/dist/backtop.js +19 -19
  18. package/dist/badge.js +21 -21
  19. package/dist/bordershadow.js +20 -9
  20. package/dist/breadcrumb.js +18 -18
  21. package/dist/button.js +21 -21
  22. package/dist/card.js +18 -18
  23. package/dist/carousel.js +76 -76
  24. package/dist/cascader.js +4980 -0
  25. package/dist/cascaderpanel.js +645 -603
  26. package/dist/checkbox.js +23 -23
  27. package/dist/col.js +14 -14
  28. package/dist/collapse.js +6 -6
  29. package/dist/color.js +6 -6
  30. package/dist/datepicker.js +2487 -266
  31. package/dist/divider.js +19 -19
  32. package/dist/drawer.js +787 -37
  33. package/dist/dropdown.js +150 -104
  34. package/dist/empty.js +19 -19
  35. package/dist/font/iconfont.28359fa.ttf +0 -0
  36. package/dist/font/iconfont.486e3d3.woff2 +0 -0
  37. package/dist/font/iconfont.675049e.woff +0 -0
  38. package/dist/font.js +6 -6
  39. package/dist/form.js +28 -26
  40. package/dist/icon.js +55 -47
  41. package/dist/index.js +1 -1
  42. package/dist/input.js +65 -49
  43. package/dist/inputnumber.js +59 -39
  44. package/dist/layout.js +25 -25
  45. package/dist/list.js +17 -17
  46. package/dist/loading.js +21 -8
  47. package/dist/mds-ui.min.css +3 -3
  48. package/dist/mds-ui.min.js +19183 -15407
  49. package/dist/menu.js +31 -31
  50. package/dist/message.js +773 -24
  51. package/dist/modal.js +1146 -307
  52. package/dist/notification.js +27 -27
  53. package/dist/pagination.js +78 -55
  54. package/dist/popconfirm.js +36 -36
  55. package/dist/popover.js +2778 -48
  56. package/dist/progress.js +107 -65
  57. package/dist/radio.js +56 -54
  58. package/dist/rate.js +67 -59
  59. package/dist/row.js +14 -14
  60. package/dist/select.js +847 -503
  61. package/dist/slider.js +25 -25
  62. package/dist/slottable.js +2663 -129
  63. package/dist/steps.js +18 -18
  64. package/dist/style/affix.css +224 -2
  65. package/dist/style/anchor.css +224 -2
  66. package/dist/style/avatar.css +224 -2
  67. package/dist/style/badge.css +224 -2
  68. package/dist/style/bordershadow.css +236 -59
  69. package/dist/style/breadcrumb.css +224 -2
  70. package/dist/style/button.css +234 -5
  71. package/dist/style/card.css +224 -2
  72. package/dist/style/carousel.css +224 -2
  73. package/dist/style/cascader.css +214 -0
  74. package/dist/style/cascaderpanel.css +13 -16
  75. package/dist/style/checkbox.css +230 -8
  76. package/dist/style/col.css +225 -3
  77. package/dist/style/collapse.css +224 -2
  78. package/dist/style/color.css +224 -2
  79. package/dist/style/datepicker.css +236 -2
  80. package/dist/style/divider.css +227 -2
  81. package/dist/style/drawer.css +224 -2
  82. package/dist/style/dropdown.css +234 -5
  83. package/dist/style/empty.css +224 -2
  84. package/dist/style/font.css +226 -4
  85. package/dist/style/form.css +224 -2
  86. package/dist/style/icon.css +226 -3
  87. package/dist/style/input.css +231 -5
  88. package/dist/style/inputnumber.css +224 -2
  89. package/dist/style/layout.css +224 -2
  90. package/dist/style/list.css +224 -2
  91. package/dist/style/loading.css +2527 -2
  92. package/dist/style/menu.css +340 -129
  93. package/dist/style/message.css +1 -4
  94. package/dist/style/modal.css +247 -25
  95. package/dist/style/notification.css +224 -2
  96. package/dist/style/pagination.css +236 -7
  97. package/dist/style/popconfirm.css +334 -180
  98. package/dist/style/popover.css +324 -177
  99. package/dist/style/progress.css +226 -3
  100. package/dist/style/radio.css +225 -3
  101. package/dist/style/rate.css +226 -3
  102. package/dist/style/row.css +225 -3
  103. package/dist/style/select.css +240 -12
  104. package/dist/style/slider.css +224 -2
  105. package/dist/style/slottable.css +350 -149
  106. package/dist/style/steps.css +224 -2
  107. package/dist/style/switch.css +224 -2
  108. package/dist/style/table.css +458 -314
  109. package/dist/style/tabs.css +225 -18
  110. package/dist/style/tag.css +224 -2
  111. package/dist/style/text.css +224 -2
  112. package/dist/style/timeline.css +224 -2
  113. package/dist/style/timepicker.css +231 -6
  114. package/dist/style/tooltip.css +340 -129
  115. package/dist/style/tree.css +228 -6
  116. package/dist/style/typography.css +224 -2
  117. package/dist/style/upload.css +224 -2
  118. package/dist/switch.js +20 -20
  119. package/dist/table.js +3071 -201
  120. package/dist/tabs.js +24 -22
  121. package/dist/tag.js +17 -23
  122. package/dist/text.js +38 -22
  123. package/dist/timeline.js +14 -14
  124. package/dist/timepicker.js +3063 -172
  125. package/dist/tooltip.js +2550 -27
  126. package/dist/transfer.js +28 -28
  127. package/dist/transition.js +6 -6
  128. package/dist/tree.js +316 -171
  129. package/dist/typography.js +6 -6
  130. package/dist/upload.js +46 -38
  131. package/package.json +9 -5
package/dist/drawer.js CHANGED
@@ -1,13 +1,13 @@
1
1
  (function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
- module.exports = factory(require("./icon"), require("./_mixin/emitter"), require("./button"), require("./transition"), require("./_util/popup"));
3
+ module.exports = factory(require("vue"), require("./icon"), require("./transition"), require("./_mixin/emitter"), require("./button"));
4
4
  else if(typeof define === 'function' && define.amd)
5
- define(["./icon", "./_mixin/emitter", "./button", "./transition", "./_util/popup"], factory);
5
+ define(["vue", "./icon", "./transition", "./_mixin/emitter", "./button"], factory);
6
6
  else {
7
- var a = typeof exports === 'object' ? factory(require("./icon"), require("./_mixin/emitter"), require("./button"), require("./transition"), require("./_util/popup")) : factory(root["./icon"], root["./_mixin/emitter"], root["./button"], root["./transition"], root["./_util/popup"]);
7
+ var a = typeof exports === 'object' ? factory(require("vue"), require("./icon"), require("./transition"), require("./_mixin/emitter"), require("./button")) : factory(root["Vue"], root["./icon"], root["./transition"], root["./_mixin/emitter"], root["./button"]);
8
8
  for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
9
9
  }
10
- })(window, function(__WEBPACK_EXTERNAL_MODULE__4__, __WEBPACK_EXTERNAL_MODULE__6__, __WEBPACK_EXTERNAL_MODULE__7__, __WEBPACK_EXTERNAL_MODULE__13__, __WEBPACK_EXTERNAL_MODULE__68__) {
10
+ })(window, function(__WEBPACK_EXTERNAL_MODULE__2__, __WEBPACK_EXTERNAL_MODULE__8__, __WEBPACK_EXTERNAL_MODULE__11__, __WEBPACK_EXTERNAL_MODULE__12__, __WEBPACK_EXTERNAL_MODULE__13__) {
11
11
  return /******/ (function(modules) { // webpackBootstrap
12
12
  /******/ // The module cache
13
13
  /******/ var installedModules = {};
@@ -91,7 +91,7 @@ return /******/ (function(modules) { // webpackBootstrap
91
91
  /******/
92
92
  /******/
93
93
  /******/ // Load entry module and return exports
94
- /******/ return __webpack_require__(__webpack_require__.s = 121);
94
+ /******/ return __webpack_require__(__webpack_require__.s = 129);
95
95
  /******/ })
96
96
  /************************************************************************/
97
97
  /******/ ({
@@ -203,7 +203,310 @@ function normalizeComponent (
203
203
 
204
204
  /***/ }),
205
205
 
206
- /***/ 121:
206
+ /***/ 1:
207
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
208
+
209
+ "use strict";
210
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return on; });
211
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return off; });
212
+ /* unused harmony export once */
213
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return hasClass; });
214
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addClass; });
215
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return removeClass; });
216
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getStyle; });
217
+ /* unused harmony export setStyle */
218
+ /* unused harmony export isScroll */
219
+ /* unused harmony export getScrollContainer */
220
+ /* unused harmony export isInContainer */
221
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return merge; });
222
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getScrollBarWidth; });
223
+ /* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
224
+ /* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);
225
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
226
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__);
227
+
228
+
229
+
230
+ /* eslint-disable */
231
+ var isServer = vue__WEBPACK_IMPORTED_MODULE_1___default.a.prototype.$isServer;
232
+ var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
233
+ var MOZ_HACK_REGEXP = /^moz([A-Z])/;
234
+ var ieVersion = isServer ? 0 : Number(document.documentMode);
235
+
236
+ /* istanbul ignore next */
237
+ var trim = function trim(string) {
238
+ return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
239
+ };
240
+ /* istanbul ignore next */
241
+ var camelCase = function camelCase(name) {
242
+ return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) {
243
+ return offset ? letter.toUpperCase() : letter;
244
+ }).replace(MOZ_HACK_REGEXP, 'Moz$1');
245
+ };
246
+
247
+ /* istanbul ignore next */
248
+ var on = function () {
249
+ if (!isServer && document.addEventListener) {
250
+ return function (element, event, handler) {
251
+ if (element && event && handler) {
252
+ element.addEventListener(event, handler, false);
253
+ }
254
+ };
255
+ } else {
256
+ return function (element, event, handler) {
257
+ if (element && event && handler) {
258
+ element.attachEvent('on' + event, handler);
259
+ }
260
+ };
261
+ }
262
+ }();
263
+
264
+ /* istanbul ignore next */
265
+ var off = function () {
266
+ if (!isServer && document.removeEventListener) {
267
+ return function (element, event, handler) {
268
+ if (element && event) {
269
+ element.removeEventListener(event, handler, false);
270
+ }
271
+ };
272
+ } else {
273
+ return function (element, event, handler) {
274
+ if (element && event) {
275
+ element.detachEvent('on' + event, handler);
276
+ }
277
+ };
278
+ }
279
+ }();
280
+
281
+ /* istanbul ignore next */
282
+ var once = function once(el, event, fn) {
283
+ var listener = function listener() {
284
+ if (fn) {
285
+ fn.apply(this, arguments);
286
+ }
287
+ off(el, event, listener);
288
+ };
289
+ on(el, event, listener);
290
+ };
291
+
292
+ /* istanbul ignore next */
293
+ function hasClass(el, cls) {
294
+ if (!el || !cls) return false;
295
+ if (cls.indexOf(' ') !== -1) {
296
+ throw new Error('className should not contain space.');
297
+ }
298
+ if (el.classList) {
299
+ return el.classList.contains(cls);
300
+ } else {
301
+ return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;
302
+ }
303
+ }
304
+
305
+ /* istanbul ignore next */
306
+ function addClass(el, cls) {
307
+ if (!el) return;
308
+ var curClass = el.className;
309
+ var classes = (cls || '').split(' ');
310
+
311
+ for (var i = 0, j = classes.length; i < j; i++) {
312
+ var clsName = classes[i];
313
+ if (!clsName) continue;
314
+
315
+ if (el.classList) {
316
+ el.classList.add(clsName);
317
+ } else if (!hasClass(el, clsName)) {
318
+ curClass += ' ' + clsName;
319
+ }
320
+ }
321
+ if (!el.classList) {
322
+ el.setAttribute('class', curClass);
323
+ }
324
+ }
325
+
326
+ /* istanbul ignore next */
327
+ function removeClass(el, cls) {
328
+ if (!el || !cls) return;
329
+ var classes = cls.split(' ');
330
+ var curClass = ' ' + el.className + ' ';
331
+
332
+ for (var i = 0, j = classes.length; i < j; i++) {
333
+ var clsName = classes[i];
334
+ if (!clsName) continue;
335
+
336
+ if (el.classList) {
337
+ el.classList.remove(clsName);
338
+ } else if (hasClass(el, clsName)) {
339
+ curClass = curClass.replace(' ' + clsName + ' ', ' ');
340
+ }
341
+ }
342
+ if (!el.classList) {
343
+ el.setAttribute('class', trim(curClass));
344
+ }
345
+ }
346
+
347
+ /* istanbul ignore next */
348
+ var getStyle = ieVersion < 9 ? function (element, styleName) {
349
+ if (isServer) return;
350
+ if (!element || !styleName) return null;
351
+ styleName = camelCase(styleName);
352
+ if (styleName === 'float') {
353
+ styleName = 'styleFloat';
354
+ }
355
+ try {
356
+ switch (styleName) {
357
+ case 'opacity':
358
+ try {
359
+ return element.filters.item('alpha').opacity / 100;
360
+ } catch (e) {
361
+ return 1.0;
362
+ }
363
+ default:
364
+ return element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null;
365
+ }
366
+ } catch (e) {
367
+ return element.style[styleName];
368
+ }
369
+ } : function (element, styleName) {
370
+ if (isServer) return;
371
+ if (!element || !styleName) return null;
372
+ styleName = camelCase(styleName);
373
+ if (styleName === 'float') {
374
+ styleName = 'cssFloat';
375
+ }
376
+ try {
377
+ var computed = document.defaultView.getComputedStyle(element, '');
378
+ return element.style[styleName] || computed ? computed[styleName] : null;
379
+ } catch (e) {
380
+ return element.style[styleName];
381
+ }
382
+ };
383
+
384
+ /* istanbul ignore next */
385
+ function setStyle(element, styleName, value) {
386
+ if (!element || !styleName) return;
387
+
388
+ if ((typeof styleName === 'undefined' ? 'undefined' : babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(styleName)) === 'object') {
389
+ for (var prop in styleName) {
390
+ if (styleName.hasOwnProperty(prop)) {
391
+ setStyle(element, prop, styleName[prop]);
392
+ }
393
+ }
394
+ } else {
395
+ styleName = camelCase(styleName);
396
+ if (styleName === 'opacity' && ieVersion < 9) {
397
+ element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';
398
+ } else {
399
+ element.style[styleName] = value;
400
+ }
401
+ }
402
+ }
403
+
404
+ var isScroll = function isScroll(el, vertical) {
405
+ if (isServer) return;
406
+
407
+ var determinedDirection = vertical !== null && vertical !== undefined;
408
+ var overflow = determinedDirection ? vertical ? getStyle(el, 'overflow-y') : getStyle(el, 'overflow-x') : getStyle(el, 'overflow');
409
+
410
+ return overflow.match(/(scroll|auto|overlay)/);
411
+ };
412
+
413
+ var getScrollContainer = function getScrollContainer(el, vertical) {
414
+ if (isServer) return;
415
+
416
+ var parent = el;
417
+ while (parent) {
418
+ if ([window, document, document.documentElement].includes(parent)) {
419
+ return window;
420
+ }
421
+ if (isScroll(parent, vertical)) {
422
+ return parent;
423
+ }
424
+ parent = parent.parentNode;
425
+ }
426
+
427
+ return parent;
428
+ };
429
+
430
+ var isInContainer = function isInContainer(el, container) {
431
+ if (isServer || !el || !container) return false;
432
+
433
+ var elRect = el.getBoundingClientRect();
434
+ var containerRect = void 0;
435
+
436
+ if ([window, document, document.documentElement, null, undefined].includes(container)) {
437
+ containerRect = {
438
+ top: 0,
439
+ right: window.innerWidth,
440
+ bottom: window.innerHeight,
441
+ left: 0
442
+ };
443
+ } else {
444
+ containerRect = container.getBoundingClientRect();
445
+ }
446
+
447
+ return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right;
448
+ };
449
+
450
+ function merge(target) {
451
+ for (var i = 1, j = arguments.length; i < j; i++) {
452
+ var source = arguments[i] || {};
453
+ for (var prop in source) {
454
+ if (source.hasOwnProperty(prop)) {
455
+ var value = source[prop];
456
+ if (value !== undefined) {
457
+ target[prop] = value;
458
+ }
459
+ }
460
+ }
461
+ }
462
+
463
+ return target;
464
+ }
465
+
466
+ var scrollBarWidth = void 0;
467
+ function getScrollBarWidth() {
468
+ if (vue__WEBPACK_IMPORTED_MODULE_1___default.a.prototype.$isServer) return 0;
469
+ if (scrollBarWidth !== undefined) return scrollBarWidth;
470
+
471
+ var outer = document.createElement('div');
472
+ outer.className = 'el-scrollbar__wrap';
473
+ outer.style.visibility = 'hidden';
474
+ outer.style.width = '100px';
475
+ outer.style.position = 'absolute';
476
+ outer.style.top = '-9999px';
477
+ document.body.appendChild(outer);
478
+
479
+ var widthNoScroll = outer.offsetWidth;
480
+ outer.style.overflow = 'scroll';
481
+
482
+ var inner = document.createElement('div');
483
+ inner.style.width = '100%';
484
+ outer.appendChild(inner);
485
+
486
+ var widthWithScroll = inner.offsetWidth;
487
+ outer.parentNode.removeChild(outer);
488
+ scrollBarWidth = widthNoScroll - widthWithScroll;
489
+
490
+ return scrollBarWidth;
491
+ }
492
+
493
+ /***/ }),
494
+
495
+ /***/ 11:
496
+ /***/ (function(module, exports) {
497
+
498
+ module.exports = __WEBPACK_EXTERNAL_MODULE__11__;
499
+
500
+ /***/ }),
501
+
502
+ /***/ 12:
503
+ /***/ (function(module, exports) {
504
+
505
+ module.exports = __WEBPACK_EXTERNAL_MODULE__12__;
506
+
507
+ /***/ }),
508
+
509
+ /***/ 129:
207
510
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
208
511
 
209
512
  "use strict";
@@ -211,13 +514,13 @@ function normalizeComponent (
211
514
  __webpack_require__.r(__webpack_exports__);
212
515
 
213
516
  // EXTERNAL MODULE: ./components/style/index.less
214
- var style = __webpack_require__(131);
517
+ var style = __webpack_require__(139);
215
518
 
216
519
  // EXTERNAL MODULE: ./components/drawer/style/index.less
217
- var drawer_style = __webpack_require__(241);
520
+ var drawer_style = __webpack_require__(250);
218
521
 
219
522
  // EXTERNAL MODULE: ./components/_util/loaders/loaders.less
220
- var loaders = __webpack_require__(243);
523
+ var loaders = __webpack_require__(252);
221
524
 
222
525
  // CONCATENATED MODULE: ./components/drawer/style/index.js
223
526
 
@@ -240,7 +543,7 @@ var render = function () {
240
543
  },
241
544
  ],
242
545
  ref: "root",
243
- class: _vm.prefixClsContainer,
546
+ class: _vm.contentClasses,
244
547
  },
245
548
  [
246
549
  _c("div", {
@@ -253,7 +556,11 @@ var render = function () {
253
556
  },
254
557
  ],
255
558
  class: _vm.prefixClsMask,
256
- on: { click: _vm.handleClose },
559
+ on: {
560
+ click: function (e) {
561
+ return _vm.onMaskClick(e)
562
+ },
563
+ },
257
564
  }),
258
565
  _c(
259
566
  "div",
@@ -343,23 +650,22 @@ render._withStripped = true
343
650
  // CONCATENATED MODULE: ./components/drawer/drawer.vue?vue&type=template&id=1bd19f24&
344
651
 
345
652
  // EXTERNAL MODULE: external "./icon"
346
- var external_icon_ = __webpack_require__(4);
653
+ var external_icon_ = __webpack_require__(8);
347
654
  var external_icon_default = /*#__PURE__*/__webpack_require__.n(external_icon_);
348
655
 
349
656
  // EXTERNAL MODULE: external "./button"
350
- var external_button_ = __webpack_require__(7);
657
+ var external_button_ = __webpack_require__(13);
351
658
  var external_button_default = /*#__PURE__*/__webpack_require__.n(external_button_);
352
659
 
353
660
  // EXTERNAL MODULE: external "./transition"
354
- var external_transition_ = __webpack_require__(13);
661
+ var external_transition_ = __webpack_require__(11);
355
662
  var external_transition_default = /*#__PURE__*/__webpack_require__.n(external_transition_);
356
663
 
357
- // EXTERNAL MODULE: external "./_util/popup"
358
- var popup_ = __webpack_require__(68);
359
- var popup_default = /*#__PURE__*/__webpack_require__.n(popup_);
664
+ // EXTERNAL MODULE: ./components/_util/_popper/popup/popup-main.js
665
+ var popup_main = __webpack_require__(14);
360
666
 
361
667
  // EXTERNAL MODULE: external "./_mixin/emitter"
362
- var emitter_ = __webpack_require__(6);
668
+ var emitter_ = __webpack_require__(12);
363
669
  var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
364
670
 
365
671
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/drawer/drawer.vue?vue&type=script&lang=js&
@@ -389,6 +695,13 @@ var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
389
695
  //
390
696
  //
391
697
  //
698
+ //
699
+ //
700
+ //
701
+ //
702
+ //
703
+ //
704
+ //
392
705
 
393
706
 
394
707
 
@@ -399,7 +712,7 @@ var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
399
712
  var PREFIXCLS = 'mds-drawer';
400
713
  /* harmony default export */ var drawervue_type_script_lang_js_ = ({
401
714
  name: 'MdsDrawer',
402
- mixins: [popup_default.a, emitter_default.a],
715
+ mixins: [popup_main["b" /* default */], emitter_default.a],
403
716
  components: {
404
717
  MdsIcon: external_icon_default.a,
405
718
  MdsButton: external_button_default.a,
@@ -448,6 +761,11 @@ var PREFIXCLS = 'mds-drawer';
448
761
  default: function _default() {
449
762
  return false;
450
763
  }
764
+ },
765
+ customClass: String,
766
+ preFocus: {
767
+ type: Boolean,
768
+ default: true
451
769
  }
452
770
  },
453
771
  data: function data() {
@@ -486,19 +804,24 @@ var PREFIXCLS = 'mds-drawer';
486
804
  }
487
805
  this.open();
488
806
  this.stop();
489
- this.prevActiveElement = document.activeElement;
807
+ if (this.preFocus) {
808
+ this.prevActiveElement = document.activeElement;
809
+ }
490
810
  } else {
491
811
  if (!this.closed) this.$emit('close');
492
812
  this.move();
493
- this.$nextTick(function () {
494
- if (_this.prevActiveElement) {
813
+ if (this.prevActiveElement) {
814
+ this.$nextTick(function () {
495
815
  _this.prevActiveElement.focus();
496
- }
497
- });
816
+ });
817
+ }
498
818
  }
499
819
  }
500
820
  },
501
821
  computed: {
822
+ contentClasses: function contentClasses() {
823
+ return [this.prefixClsContainer].concat(this.customClass);
824
+ },
502
825
  isHorizontal: function isHorizontal() {
503
826
  return this.position === 'right' || this.position === 'left';
504
827
  }
@@ -549,6 +872,9 @@ var PREFIXCLS = 'mds-drawer';
549
872
  },
550
873
  mounted: function mounted() {
551
874
  if (this.visibility) {
875
+ if (this.appendToBody) {
876
+ document.body.appendChild(this.$el);
877
+ }
552
878
  this.open();
553
879
  }
554
880
  }
@@ -599,52 +925,476 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__13__;
599
925
 
600
926
  /***/ }),
601
927
 
602
- /***/ 131:
928
+ /***/ 139:
603
929
  /***/ (function(module, exports) {
604
930
 
605
931
  // removed by extract-text-webpack-plugin
606
932
 
607
933
  /***/ }),
608
934
 
609
- /***/ 241:
935
+ /***/ 14:
936
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
937
+
938
+ "use strict";
939
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
940
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
941
+ /* harmony import */ var _dom_helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
942
+ /* harmony import */ var _popup_manager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);
943
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _popup_manager__WEBPACK_IMPORTED_MODULE_2__["a"]; });
944
+
945
+
946
+
947
+
948
+
949
+ var idSeed = 1;
950
+
951
+ var scrollBarWidth = void 0;
952
+
953
+ /* harmony default export */ __webpack_exports__["b"] = ({
954
+ props: {
955
+ visibility: {
956
+ type: Boolean,
957
+ default: false
958
+ },
959
+ openDelay: {},
960
+ closeDelay: {},
961
+ zIndex: {},
962
+ modal: {
963
+ type: Boolean,
964
+ default: false
965
+ },
966
+ modalFade: {
967
+ type: Boolean,
968
+ default: true
969
+ },
970
+ modalClass: {},
971
+ modalAppendToBody: {
972
+ type: Boolean,
973
+ default: false
974
+ },
975
+ lockScroll: {
976
+ type: Boolean,
977
+ default: true
978
+ },
979
+ closeOnPressEscape: {
980
+ type: Boolean,
981
+ default: false
982
+ },
983
+ closeOnClickModal: {
984
+ type: Boolean,
985
+ default: false
986
+ }
987
+ },
988
+
989
+ beforeMount: function beforeMount() {
990
+ this._popupId = 'popup-' + idSeed++;
991
+ _popup_manager__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].register(this._popupId, this);
992
+ },
993
+ beforeDestroy: function beforeDestroy() {
994
+ _popup_manager__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].deregister(this._popupId);
995
+ _popup_manager__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].closeModal(this._popupId);
996
+
997
+ this.restoreBodyStyle();
998
+ },
999
+ data: function data() {
1000
+ return {
1001
+ opened: false,
1002
+ bodyPaddingRight: null,
1003
+ computedBodyPaddingRight: 0,
1004
+ withoutHiddenClass: true,
1005
+ rendered: false
1006
+ };
1007
+ },
1008
+
1009
+
1010
+ watch: {
1011
+ visibility: function visibility(val) {
1012
+ var _this = this;
1013
+
1014
+ if (val) {
1015
+ if (this._opening) return;
1016
+ if (!this.rendered) {
1017
+ this.rendered = true;
1018
+ vue__WEBPACK_IMPORTED_MODULE_0___default.a.nextTick(function () {
1019
+ _this.open();
1020
+ });
1021
+ } else {
1022
+ this.open();
1023
+ }
1024
+ } else {
1025
+ this.close();
1026
+ }
1027
+ }
1028
+ },
1029
+
1030
+ methods: {
1031
+ open: function open(options) {
1032
+ var _this2 = this;
1033
+
1034
+ if (!this.rendered) {
1035
+ this.rendered = true;
1036
+ }
1037
+ var props = Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* merge */ "e"])({}, this.$props || this, options);
1038
+
1039
+ if (this._closeTimer) {
1040
+ clearTimeout(this._closeTimer);
1041
+ this._closeTimer = null;
1042
+ }
1043
+ clearTimeout(this._openTimer);
1044
+
1045
+ var openDelay = Number(props.openDelay);
1046
+ if (openDelay > 0) {
1047
+ this._openTimer = setTimeout(function () {
1048
+ _this2._openTimer = null;
1049
+ _this2.doOpen(props);
1050
+ }, openDelay);
1051
+ } else {
1052
+ this.doOpen(props);
1053
+ }
1054
+ },
1055
+ doOpen: function doOpen(props) {
1056
+ if (this.$isServer) return;
1057
+ if (this.willOpen && !this.willOpen()) return;
1058
+ if (this.opened) return;
1059
+
1060
+ this._opening = true;
1061
+
1062
+ var dom = this.$el;
1063
+
1064
+ var modal = props.modal;
1065
+
1066
+ var zIndex = props.zIndex;
1067
+ if (zIndex) {
1068
+ _popup_manager__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].zIndex = zIndex;
1069
+ }
1070
+
1071
+ if (modal) {
1072
+ if (this._closing) {
1073
+ _popup_manager__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].closeModal(this._popupId);
1074
+ this._closing = false;
1075
+ }
1076
+ _popup_manager__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].openModal(this._popupId, _popup_manager__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade);
1077
+ if (props.lockScroll) {
1078
+ this.withoutHiddenClass = !Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* hasClass */ "d"])(document.body, 'mds-popup-parent--hidden');
1079
+ if (this.withoutHiddenClass) {
1080
+ this.bodyPaddingRight = document.body.style.paddingRight;
1081
+ this.computedBodyPaddingRight = parseInt(Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* getStyle */ "c"])(document.body, 'paddingRight'), 10);
1082
+ }
1083
+ scrollBarWidth = Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* getScrollBarWidth */ "b"])();
1084
+ var bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;
1085
+ var bodyOverflowY = Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* getStyle */ "c"])(document.body, 'overflowY');
1086
+ if (scrollBarWidth > 0 && (bodyHasOverflow || bodyOverflowY === 'scroll') && this.withoutHiddenClass) {
1087
+ document.body.style.paddingRight = this.computedBodyPaddingRight + scrollBarWidth + 'px';
1088
+ }
1089
+ Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* addClass */ "a"])(document.body, 'mds-popup-parent--hidden');
1090
+ }
1091
+ }
1092
+
1093
+ if (getComputedStyle(dom).position === 'static') {
1094
+ dom.style.position = 'absolute';
1095
+ }
1096
+
1097
+ dom.style.zIndex = _popup_manager__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].nextZIndex();
1098
+ this.opened = true;
1099
+
1100
+ this.onOpen && this.onOpen();
1101
+
1102
+ this.doAfterOpen();
1103
+ },
1104
+ doAfterOpen: function doAfterOpen() {
1105
+ this._opening = false;
1106
+ },
1107
+ close: function close() {
1108
+ var _this3 = this;
1109
+
1110
+ if (this.willClose && !this.willClose()) return;
1111
+
1112
+ if (this._openTimer !== null) {
1113
+ clearTimeout(this._openTimer);
1114
+ this._openTimer = null;
1115
+ }
1116
+ clearTimeout(this._closeTimer);
1117
+
1118
+ var closeDelay = Number(this.closeDelay);
1119
+
1120
+ if (closeDelay > 0) {
1121
+ this._closeTimer = setTimeout(function () {
1122
+ _this3._closeTimer = null;
1123
+ _this3.doClose();
1124
+ }, closeDelay);
1125
+ } else {
1126
+ this.doClose();
1127
+ }
1128
+ },
1129
+ doClose: function doClose() {
1130
+ this._closing = true;
1131
+
1132
+ this.onClose && this.onClose();
1133
+
1134
+ if (this.lockScroll) {
1135
+ setTimeout(this.restoreBodyStyle, 200);
1136
+ }
1137
+
1138
+ this.opened = false;
1139
+
1140
+ this.doAfterClose();
1141
+ },
1142
+ doAfterClose: function doAfterClose() {
1143
+ _popup_manager__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].closeModal(this._popupId);
1144
+ this._closing = false;
1145
+ },
1146
+ restoreBodyStyle: function restoreBodyStyle() {
1147
+ if (this.modal && this.withoutHiddenClass) {
1148
+ document.body.style.paddingRight = this.bodyPaddingRight;
1149
+ Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* removeClass */ "h"])(document.body, 'mds-popup-parent--hidden');
1150
+ }
1151
+ this.withoutHiddenClass = true;
1152
+ }
1153
+ }
1154
+ });
1155
+
1156
+
1157
+
1158
+ /***/ }),
1159
+
1160
+ /***/ 2:
610
1161
  /***/ (function(module, exports) {
611
1162
 
612
- // removed by extract-text-webpack-plugin
1163
+ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
613
1164
 
614
1165
  /***/ }),
615
1166
 
616
- /***/ 243:
1167
+ /***/ 250:
617
1168
  /***/ (function(module, exports) {
618
1169
 
619
1170
  // removed by extract-text-webpack-plugin
620
1171
 
621
1172
  /***/ }),
622
1173
 
623
- /***/ 4:
1174
+ /***/ 252:
624
1175
  /***/ (function(module, exports) {
625
1176
 
626
- module.exports = __WEBPACK_EXTERNAL_MODULE__4__;
1177
+ // removed by extract-text-webpack-plugin
627
1178
 
628
1179
  /***/ }),
629
1180
 
630
- /***/ 6:
631
- /***/ (function(module, exports) {
1181
+ /***/ 5:
1182
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1183
+
1184
+ "use strict";
1185
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
1186
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
1187
+ /* harmony import */ var _dom_helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
1188
+
1189
+
1190
+
1191
+ var hasModal = false;
1192
+ var hasInitZIndex = false;
1193
+ var zIndex = void 0;
1194
+
1195
+ var getModal = function getModal() {
1196
+ if (vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer) return;
1197
+ var modalDom = PopupManager.modalDom;
1198
+ if (modalDom) {
1199
+ hasModal = true;
1200
+ } else {
1201
+ hasModal = false;
1202
+ modalDom = document.createElement('div');
1203
+ PopupManager.modalDom = modalDom;
1204
+
1205
+ modalDom.addEventListener('touchmove', function (event) {
1206
+ event.preventDefault();
1207
+ event.stopPropagation();
1208
+ });
1209
+
1210
+ modalDom.addEventListener('click', function () {
1211
+ PopupManager.doOnModalClick && PopupManager.doOnModalClick();
1212
+ });
1213
+ }
1214
+
1215
+ return modalDom;
1216
+ };
1217
+
1218
+ var instances = {};
1219
+
1220
+ var PopupManager = {
1221
+ modalFade: true,
1222
+
1223
+ getInstance: function getInstance(id) {
1224
+ return instances[id];
1225
+ },
1226
+
1227
+ register: function register(id, instance) {
1228
+ if (id && instance) {
1229
+ instances[id] = instance;
1230
+ }
1231
+ },
1232
+
1233
+ deregister: function deregister(id) {
1234
+ if (id) {
1235
+ instances[id] = null;
1236
+ delete instances[id];
1237
+ }
1238
+ },
1239
+
1240
+ nextZIndex: function nextZIndex() {
1241
+ return PopupManager.zIndex++;
1242
+ },
1243
+
1244
+ modalStack: [],
1245
+
1246
+ doOnModalClick: function doOnModalClick() {
1247
+ var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];
1248
+ if (!topItem) return;
1249
+
1250
+ var instance = PopupManager.getInstance(topItem.id);
1251
+ if (instance && instance.closeOnClickModal) {
1252
+ instance.close();
1253
+ }
1254
+ },
1255
+
1256
+ openModal: function openModal(id, zIndex, dom, modalClass, modalFade) {
1257
+ if (vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer) return;
1258
+ if (!id || zIndex === undefined) return;
1259
+ this.modalFade = modalFade;
1260
+
1261
+ var modalStack = this.modalStack;
1262
+
1263
+ for (var i = 0, j = modalStack.length; i < j; i++) {
1264
+ var item = modalStack[i];
1265
+ if (item.id === id) {
1266
+ return;
1267
+ }
1268
+ }
1269
+
1270
+ var modalDom = getModal();
1271
+
1272
+ Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* addClass */ "a"])(modalDom, 'v-modal');
1273
+ if (this.modalFade && !hasModal) {
1274
+ Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* addClass */ "a"])(modalDom, 'v-modal-enter');
1275
+ }
1276
+ if (modalClass) {
1277
+ var classArr = modalClass.trim().split(/\s+/);
1278
+ classArr.forEach(function (item) {
1279
+ return Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* addClass */ "a"])(modalDom, item);
1280
+ });
1281
+ }
1282
+ setTimeout(function () {
1283
+ Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* removeClass */ "h"])(modalDom, 'v-modal-enter');
1284
+ }, 200);
1285
+
1286
+ if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {
1287
+ dom.parentNode.appendChild(modalDom);
1288
+ } else {
1289
+ document.body.appendChild(modalDom);
1290
+ }
1291
+
1292
+ if (zIndex) {
1293
+ modalDom.style.zIndex = zIndex;
1294
+ }
1295
+ modalDom.tabIndex = 0;
1296
+ modalDom.style.display = '';
1297
+
1298
+ this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass });
1299
+ },
1300
+
1301
+ closeModal: function closeModal(id) {
1302
+ var modalStack = this.modalStack;
1303
+ var modalDom = getModal();
1304
+
1305
+ if (modalStack.length > 0) {
1306
+ var topItem = modalStack[modalStack.length - 1];
1307
+ if (topItem.id === id) {
1308
+ if (topItem.modalClass) {
1309
+ var classArr = topItem.modalClass.trim().split(/\s+/);
1310
+ classArr.forEach(function (item) {
1311
+ return Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* removeClass */ "h"])(modalDom, item);
1312
+ });
1313
+ }
1314
+
1315
+ modalStack.pop();
1316
+ if (modalStack.length > 0) {
1317
+ modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;
1318
+ }
1319
+ } else {
1320
+ for (var i = modalStack.length - 1; i >= 0; i--) {
1321
+ if (modalStack[i].id === id) {
1322
+ modalStack.splice(i, 1);
1323
+ break;
1324
+ }
1325
+ }
1326
+ }
1327
+ }
1328
+
1329
+ if (modalStack.length === 0) {
1330
+ if (this.modalFade) {
1331
+ Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* addClass */ "a"])(modalDom, 'v-modal-leave');
1332
+ }
1333
+ setTimeout(function () {
1334
+ if (modalStack.length === 0) {
1335
+ if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);
1336
+ modalDom.style.display = 'none';
1337
+ PopupManager.modalDom = undefined;
1338
+ }
1339
+ Object(_dom_helper__WEBPACK_IMPORTED_MODULE_1__[/* removeClass */ "h"])(modalDom, 'v-modal-leave');
1340
+ }, 200);
1341
+ }
1342
+ }
1343
+ };
1344
+
1345
+ Object.defineProperty(PopupManager, 'zIndex', {
1346
+ configurable: true,
1347
+ get: function get() {
1348
+ if (!hasInitZIndex) {
1349
+ zIndex = zIndex || (vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$ELEMENT || {}).zIndex || 2000;
1350
+ hasInitZIndex = true;
1351
+ }
1352
+ return zIndex;
1353
+ },
1354
+ set: function set(value) {
1355
+ zIndex = value;
1356
+ }
1357
+ });
1358
+
1359
+ var getTopPopup = function getTopPopup() {
1360
+ if (vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer) return;
1361
+ if (PopupManager.modalStack.length > 0) {
1362
+ var topPopup = PopupManager.modalStack[PopupManager.modalStack.length - 1];
1363
+ if (!topPopup) return;
1364
+ var instance = PopupManager.getInstance(topPopup.id);
1365
+
1366
+ return instance;
1367
+ }
1368
+ };
1369
+
1370
+ if (!vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer) {
1371
+ // handle `esc` key when the popup is shown
1372
+ window.addEventListener('keydown', function (event) {
1373
+ if (event.keyCode === 27) {
1374
+ var topPopup = getTopPopup();
1375
+
1376
+ if (topPopup && topPopup.closeOnPressEscape) {
1377
+ topPopup.handleClose ? topPopup.handleClose() : topPopup.handleAction ? topPopup.handleAction('cancel') : topPopup.close();
1378
+ }
1379
+ }
1380
+ });
1381
+ }
632
1382
 
633
- module.exports = __WEBPACK_EXTERNAL_MODULE__6__;
1383
+ /* harmony default export */ __webpack_exports__["a"] = (PopupManager);
634
1384
 
635
1385
  /***/ }),
636
1386
 
637
- /***/ 68:
1387
+ /***/ 8:
638
1388
  /***/ (function(module, exports) {
639
1389
 
640
- module.exports = __WEBPACK_EXTERNAL_MODULE__68__;
1390
+ module.exports = __WEBPACK_EXTERNAL_MODULE__8__;
641
1391
 
642
1392
  /***/ }),
643
1393
 
644
- /***/ 7:
1394
+ /***/ 9:
645
1395
  /***/ (function(module, exports) {
646
1396
 
647
- module.exports = __WEBPACK_EXTERNAL_MODULE__7__;
1397
+ module.exports = require("babel-runtime/helpers/typeof");
648
1398
 
649
1399
  /***/ })
650
1400