@mdsfe/mds-ui 0.3.0-15 → 0.3.0-17

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 (120) hide show
  1. package/dist/_util/iconfont/index.js +7 -7
  2. package/dist/affix.js +6 -6
  3. package/dist/alert.js +6 -6
  4. package/dist/anchor.js +6 -6
  5. package/dist/avatar.js +6 -6
  6. package/dist/backtop.js +8 -8
  7. package/dist/badge.js +10 -10
  8. package/dist/bordershadow.js +6 -6
  9. package/dist/breadcrumb.js +6 -6
  10. package/dist/button.js +6 -6
  11. package/dist/card.js +6 -6
  12. package/dist/carousel.js +20 -20
  13. package/dist/cascader.js +30 -30
  14. package/dist/cascaderpanel.js +20 -20
  15. package/dist/checkbox.js +4 -4
  16. package/dist/col.js +16 -16
  17. package/dist/collapse.js +6 -6
  18. package/dist/color.js +6 -6
  19. package/dist/datepicker.js +655 -1011
  20. package/dist/divider.js +6 -6
  21. package/dist/drawer.js +16 -16
  22. package/dist/dropdown.js +15 -15
  23. package/dist/empty.js +15 -15
  24. package/dist/font/iconfont.08f1d29.woff +0 -0
  25. package/dist/font/iconfont.6addfa3.woff2 +0 -0
  26. package/dist/font/{iconfont.d4ec0db.ttf → iconfont.fbe81ba.ttf} +0 -0
  27. package/dist/font.js +6 -6
  28. package/dist/form.js +13 -13
  29. package/dist/icon.js +6 -6
  30. package/dist/index.js +1 -1
  31. package/dist/input.js +6 -6
  32. package/dist/inputnumber.js +10 -10
  33. package/dist/layout.js +6 -6
  34. package/dist/list.js +6 -6
  35. package/dist/loading.js +6 -6
  36. package/dist/mds-ui.min.css +1 -1
  37. package/dist/mds-ui.min.js +1728 -1606
  38. package/dist/menu.js +13 -13
  39. package/dist/message.js +1070 -1070
  40. package/dist/modal.js +16 -16
  41. package/dist/notification.js +10 -10
  42. package/dist/pagination.js +64 -64
  43. package/dist/popconfirm.js +33 -33
  44. package/dist/popover.js +28 -28
  45. package/dist/progress.js +25 -25
  46. package/dist/radio.js +14 -14
  47. package/dist/rate.js +6 -6
  48. package/dist/row.js +16 -16
  49. package/dist/select.js +27 -27
  50. package/dist/slider.js +22 -22
  51. package/dist/slottable.js +32 -32
  52. package/dist/steps.js +6 -6
  53. package/dist/style/affix.css +7 -1
  54. package/dist/style/alert.css +7 -1
  55. package/dist/style/anchor.css +7 -1
  56. package/dist/style/avatar.css +7 -1
  57. package/dist/style/badge.css +7 -1
  58. package/dist/style/bordershadow.css +7 -1
  59. package/dist/style/breadcrumb.css +7 -1
  60. package/dist/style/button.css +7 -1
  61. package/dist/style/card.css +7 -1
  62. package/dist/style/carousel.css +7 -1
  63. package/dist/style/checkbox.css +7 -1
  64. package/dist/style/col.css +7 -1
  65. package/dist/style/collapse.css +7 -1
  66. package/dist/style/color.css +7 -1
  67. package/dist/style/datepicker.css +67 -1
  68. package/dist/style/divider.css +7 -1
  69. package/dist/style/drawer.css +7 -1
  70. package/dist/style/dropdown.css +7 -1
  71. package/dist/style/empty.css +7 -1
  72. package/dist/style/font.css +7 -1
  73. package/dist/style/form.css +7 -1
  74. package/dist/style/icon.css +7 -1
  75. package/dist/style/input.css +7 -1
  76. package/dist/style/inputnumber.css +7 -1
  77. package/dist/style/layout.css +7 -1
  78. package/dist/style/list.css +7 -1
  79. package/dist/style/loading.css +7 -1
  80. package/dist/style/menu.css +7 -1
  81. package/dist/style/modal.css +7 -1
  82. package/dist/style/notification.css +7 -1
  83. package/dist/style/pagination.css +7 -1
  84. package/dist/style/popconfirm.css +7 -1
  85. package/dist/style/popover.css +7 -1
  86. package/dist/style/progress.css +7 -1
  87. package/dist/style/radio.css +7 -1
  88. package/dist/style/rate.css +7 -1
  89. package/dist/style/row.css +7 -1
  90. package/dist/style/select.css +7 -1
  91. package/dist/style/slider.css +7 -1
  92. package/dist/style/slottable.css +7 -1
  93. package/dist/style/steps.css +7 -1
  94. package/dist/style/switch.css +7 -1
  95. package/dist/style/table.css +7 -1
  96. package/dist/style/tabs.css +7 -1
  97. package/dist/style/tag.css +7 -1
  98. package/dist/style/text.css +7 -1
  99. package/dist/style/timeline.css +7 -1
  100. package/dist/style/timepicker.css +7 -1
  101. package/dist/style/tooltip.css +7 -1
  102. package/dist/style/tree.css +7 -1
  103. package/dist/style/typography.css +7 -1
  104. package/dist/style/upload.css +7 -1
  105. package/dist/switch.js +6 -6
  106. package/dist/table.js +378 -378
  107. package/dist/tabs.js +6 -6
  108. package/dist/tag.js +6 -6
  109. package/dist/text.js +6 -6
  110. package/dist/timeline.js +6 -6
  111. package/dist/timepicker.js +25 -25
  112. package/dist/tooltip.js +14 -14
  113. package/dist/transfer.js +18 -18
  114. package/dist/transition.js +4 -4
  115. package/dist/tree.js +14 -14
  116. package/dist/typography.js +6 -6
  117. package/dist/upload.js +19 -19
  118. package/package.json +1 -1
  119. package/dist/font/iconfont.9936847.woff2 +0 -0
  120. package/dist/font/iconfont.b0a8d88.woff +0 -0
@@ -7,7 +7,7 @@
7
7
  var a = typeof exports === 'object' ? factory(require("vue"), require("./_util/dateUtil"), require("./icon"), require("./_util/proptype"), require("./_mixin/locale"), require("./_mixin/emitter"), require("./button"), require("./input"), require("./_util/util"), require("./_util/clickoutside"), require("./_util/merge"), require("./_util/repeatClick"), require("./_util/dom")) : factory(root["Vue"], root["./_util/dateUtil"], root["./icon"], root["./_util/proptype"], root["./_mixin/locale"], root["./_mixin/emitter"], root["./button"], root["./input"], root["./_util/util"], root["./_util/clickoutside"], root["./_util/merge"], root["./_util/repeatClick"], root["./_util/dom"]);
8
8
  for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
9
9
  }
10
- })(window, function(__WEBPACK_EXTERNAL_MODULE__2__, __WEBPACK_EXTERNAL_MODULE__4__, __WEBPACK_EXTERNAL_MODULE__7__, __WEBPACK_EXTERNAL_MODULE__8__, __WEBPACK_EXTERNAL_MODULE__10__, __WEBPACK_EXTERNAL_MODULE__13__, __WEBPACK_EXTERNAL_MODULE__14__, __WEBPACK_EXTERNAL_MODULE__17__, __WEBPACK_EXTERNAL_MODULE__21__, __WEBPACK_EXTERNAL_MODULE__32__, __WEBPACK_EXTERNAL_MODULE__51__, __WEBPACK_EXTERNAL_MODULE__68__, __WEBPACK_EXTERNAL_MODULE__69__) {
10
+ })(window, function(__WEBPACK_EXTERNAL_MODULE__2__, __WEBPACK_EXTERNAL_MODULE__4__, __WEBPACK_EXTERNAL_MODULE__7__, __WEBPACK_EXTERNAL_MODULE__8__, __WEBPACK_EXTERNAL_MODULE__9__, __WEBPACK_EXTERNAL_MODULE__13__, __WEBPACK_EXTERNAL_MODULE__14__, __WEBPACK_EXTERNAL_MODULE__18__, __WEBPACK_EXTERNAL_MODULE__21__, __WEBPACK_EXTERNAL_MODULE__32__, __WEBPACK_EXTERNAL_MODULE__48__, __WEBPACK_EXTERNAL_MODULE__67__, __WEBPACK_EXTERNAL_MODULE__68__) {
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 = 91);
94
+ /******/ return __webpack_require__(__webpack_require__.s = 88);
95
95
  /******/ })
96
96
  /************************************************************************/
97
97
  /******/ ({
@@ -220,7 +220,7 @@ function normalizeComponent (
220
220
  /* unused harmony export isInContainer */
221
221
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return merge; });
222
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);
223
+ /* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
224
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
225
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
226
226
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__);
@@ -495,7 +495,7 @@ function getScrollBarWidth() {
495
495
  /***/ 10:
496
496
  /***/ (function(module, exports) {
497
497
 
498
- module.exports = __WEBPACK_EXTERNAL_MODULE__10__;
498
+ module.exports = require("babel-runtime/helpers/typeof");
499
499
 
500
500
  /***/ }),
501
501
 
@@ -520,7 +520,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__14__;
520
520
 
521
521
  /***/ }),
522
522
 
523
- /***/ 145:
523
+ /***/ 142:
524
524
  /***/ (function(module, exports) {
525
525
 
526
526
  // removed by extract-text-webpack-plugin
@@ -967,20 +967,6 @@ function hasOwn(obj, key) {
967
967
  /***/ }),
968
968
 
969
969
  /***/ 17:
970
- /***/ (function(module, exports) {
971
-
972
- module.exports = __WEBPACK_EXTERNAL_MODULE__17__;
973
-
974
- /***/ }),
975
-
976
- /***/ 179:
977
- /***/ (function(module, exports) {
978
-
979
- // removed by extract-text-webpack-plugin
980
-
981
- /***/ }),
982
-
983
- /***/ 18:
984
970
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
985
971
 
986
972
  "use strict";
@@ -2452,13 +2438,27 @@ var stop = function stop(e) {
2452
2438
 
2453
2439
  /***/ }),
2454
2440
 
2455
- /***/ 181:
2441
+ /***/ 176:
2442
+ /***/ (function(module, exports) {
2443
+
2444
+ // removed by extract-text-webpack-plugin
2445
+
2446
+ /***/ }),
2447
+
2448
+ /***/ 178:
2456
2449
  /***/ (function(module, exports) {
2457
2450
 
2458
2451
  // removed by extract-text-webpack-plugin
2459
2452
 
2460
2453
  /***/ }),
2461
2454
 
2455
+ /***/ 18:
2456
+ /***/ (function(module, exports) {
2457
+
2458
+ module.exports = __WEBPACK_EXTERNAL_MODULE__18__;
2459
+
2460
+ /***/ }),
2461
+
2462
2462
  /***/ 19:
2463
2463
  /***/ (function(module, exports) {
2464
2464
 
@@ -2495,7 +2495,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__21__;
2495
2495
  /* unused harmony export isScroll */
2496
2496
  /* unused harmony export getScrollContainer */
2497
2497
  /* unused harmony export isInContainer */
2498
- /* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
2498
+ /* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
2499
2499
  /* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);
2500
2500
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
2501
2501
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__);
@@ -2837,544 +2837,12 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__32__;
2837
2837
 
2838
2838
  module.exports = __WEBPACK_EXTERNAL_MODULE__4__;
2839
2839
 
2840
- /***/ }),
2841
-
2842
- /***/ 47:
2843
- /***/ (function(module, exports) {
2844
-
2845
- /*
2846
- MIT License http://www.opensource.org/licenses/mit-license.php
2847
- Author Tobias Koppers @sokra
2848
- */
2849
- // css base code, injected by the css-loader
2850
- module.exports = function(useSourceMap) {
2851
- var list = [];
2852
-
2853
- // return the list of modules as css string
2854
- list.toString = function toString() {
2855
- return this.map(function (item) {
2856
- var content = cssWithMappingToString(item, useSourceMap);
2857
- if(item[2]) {
2858
- return "@media " + item[2] + "{" + content + "}";
2859
- } else {
2860
- return content;
2861
- }
2862
- }).join("");
2863
- };
2864
-
2865
- // import a list of modules into the list
2866
- list.i = function(modules, mediaQuery) {
2867
- if(typeof modules === "string")
2868
- modules = [[null, modules, ""]];
2869
- var alreadyImportedModules = {};
2870
- for(var i = 0; i < this.length; i++) {
2871
- var id = this[i][0];
2872
- if(typeof id === "number")
2873
- alreadyImportedModules[id] = true;
2874
- }
2875
- for(i = 0; i < modules.length; i++) {
2876
- var item = modules[i];
2877
- // skip already imported module
2878
- // this implementation is not 100% perfect for weird media query combinations
2879
- // when a module is imported multiple times with different media queries.
2880
- // I hope this will never occur (Hey this way we have smaller bundles)
2881
- if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
2882
- if(mediaQuery && !item[2]) {
2883
- item[2] = mediaQuery;
2884
- } else if(mediaQuery) {
2885
- item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
2886
- }
2887
- list.push(item);
2888
- }
2889
- }
2890
- };
2891
- return list;
2892
- };
2893
-
2894
- function cssWithMappingToString(item, useSourceMap) {
2895
- var content = item[1] || '';
2896
- var cssMapping = item[3];
2897
- if (!cssMapping) {
2898
- return content;
2899
- }
2900
-
2901
- if (useSourceMap && typeof btoa === 'function') {
2902
- var sourceMapping = toComment(cssMapping);
2903
- var sourceURLs = cssMapping.sources.map(function (source) {
2904
- return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
2905
- });
2906
-
2907
- return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
2908
- }
2909
-
2910
- return [content].join('\n');
2911
- }
2912
-
2913
- // Adapted from convert-source-map (MIT)
2914
- function toComment(sourceMap) {
2915
- // eslint-disable-next-line no-undef
2916
- var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
2917
- var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
2918
-
2919
- return '/*# ' + data + ' */';
2920
- }
2921
-
2922
-
2923
2840
  /***/ }),
2924
2841
 
2925
2842
  /***/ 48:
2926
- /***/ (function(module, exports, __webpack_require__) {
2927
-
2928
- /*
2929
- MIT License http://www.opensource.org/licenses/mit-license.php
2930
- Author Tobias Koppers @sokra
2931
- */
2932
-
2933
- var stylesInDom = {};
2934
-
2935
- var memoize = function (fn) {
2936
- var memo;
2937
-
2938
- return function () {
2939
- if (typeof memo === "undefined") memo = fn.apply(this, arguments);
2940
- return memo;
2941
- };
2942
- };
2943
-
2944
- var isOldIE = memoize(function () {
2945
- // Test for IE <= 9 as proposed by Browserhacks
2946
- // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
2947
- // Tests for existence of standard globals is to allow style-loader
2948
- // to operate correctly into non-standard environments
2949
- // @see https://github.com/webpack-contrib/style-loader/issues/177
2950
- return window && document && document.all && !window.atob;
2951
- });
2952
-
2953
- var getElement = (function (fn) {
2954
- var memo = {};
2955
-
2956
- return function(selector) {
2957
- if (typeof memo[selector] === "undefined") {
2958
- memo[selector] = fn.call(this, selector);
2959
- }
2960
-
2961
- return memo[selector]
2962
- };
2963
- })(function (target) {
2964
- return document.querySelector(target)
2965
- });
2966
-
2967
- var singleton = null;
2968
- var singletonCounter = 0;
2969
- var stylesInsertedAtTop = [];
2970
-
2971
- var fixUrls = __webpack_require__(49);
2972
-
2973
- module.exports = function(list, options) {
2974
- if (typeof DEBUG !== "undefined" && DEBUG) {
2975
- if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
2976
- }
2977
-
2978
- options = options || {};
2979
-
2980
- options.attrs = typeof options.attrs === "object" ? options.attrs : {};
2981
-
2982
- // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
2983
- // tags it will allow on a page
2984
- if (!options.singleton) options.singleton = isOldIE();
2985
-
2986
- // By default, add <style> tags to the <head> element
2987
- if (!options.insertInto) options.insertInto = "head";
2988
-
2989
- // By default, add <style> tags to the bottom of the target
2990
- if (!options.insertAt) options.insertAt = "bottom";
2991
-
2992
- var styles = listToStyles(list, options);
2993
-
2994
- addStylesToDom(styles, options);
2995
-
2996
- return function update (newList) {
2997
- var mayRemove = [];
2998
-
2999
- for (var i = 0; i < styles.length; i++) {
3000
- var item = styles[i];
3001
- var domStyle = stylesInDom[item.id];
3002
-
3003
- domStyle.refs--;
3004
- mayRemove.push(domStyle);
3005
- }
3006
-
3007
- if(newList) {
3008
- var newStyles = listToStyles(newList, options);
3009
- addStylesToDom(newStyles, options);
3010
- }
3011
-
3012
- for (var i = 0; i < mayRemove.length; i++) {
3013
- var domStyle = mayRemove[i];
3014
-
3015
- if(domStyle.refs === 0) {
3016
- for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();
3017
-
3018
- delete stylesInDom[domStyle.id];
3019
- }
3020
- }
3021
- };
3022
- };
3023
-
3024
- function addStylesToDom (styles, options) {
3025
- for (var i = 0; i < styles.length; i++) {
3026
- var item = styles[i];
3027
- var domStyle = stylesInDom[item.id];
3028
-
3029
- if(domStyle) {
3030
- domStyle.refs++;
3031
-
3032
- for(var j = 0; j < domStyle.parts.length; j++) {
3033
- domStyle.parts[j](item.parts[j]);
3034
- }
3035
-
3036
- for(; j < item.parts.length; j++) {
3037
- domStyle.parts.push(addStyle(item.parts[j], options));
3038
- }
3039
- } else {
3040
- var parts = [];
3041
-
3042
- for(var j = 0; j < item.parts.length; j++) {
3043
- parts.push(addStyle(item.parts[j], options));
3044
- }
3045
-
3046
- stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
3047
- }
3048
- }
3049
- }
3050
-
3051
- function listToStyles (list, options) {
3052
- var styles = [];
3053
- var newStyles = {};
3054
-
3055
- for (var i = 0; i < list.length; i++) {
3056
- var item = list[i];
3057
- var id = options.base ? item[0] + options.base : item[0];
3058
- var css = item[1];
3059
- var media = item[2];
3060
- var sourceMap = item[3];
3061
- var part = {css: css, media: media, sourceMap: sourceMap};
3062
-
3063
- if(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});
3064
- else newStyles[id].parts.push(part);
3065
- }
3066
-
3067
- return styles;
3068
- }
3069
-
3070
- function insertStyleElement (options, style) {
3071
- var target = getElement(options.insertInto)
3072
-
3073
- if (!target) {
3074
- throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
3075
- }
3076
-
3077
- var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];
3078
-
3079
- if (options.insertAt === "top") {
3080
- if (!lastStyleElementInsertedAtTop) {
3081
- target.insertBefore(style, target.firstChild);
3082
- } else if (lastStyleElementInsertedAtTop.nextSibling) {
3083
- target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);
3084
- } else {
3085
- target.appendChild(style);
3086
- }
3087
- stylesInsertedAtTop.push(style);
3088
- } else if (options.insertAt === "bottom") {
3089
- target.appendChild(style);
3090
- } else {
3091
- throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
3092
- }
3093
- }
3094
-
3095
- function removeStyleElement (style) {
3096
- if (style.parentNode === null) return false;
3097
- style.parentNode.removeChild(style);
3098
-
3099
- var idx = stylesInsertedAtTop.indexOf(style);
3100
- if(idx >= 0) {
3101
- stylesInsertedAtTop.splice(idx, 1);
3102
- }
3103
- }
3104
-
3105
- function createStyleElement (options) {
3106
- var style = document.createElement("style");
3107
-
3108
- options.attrs.type = "text/css";
3109
-
3110
- addAttrs(style, options.attrs);
3111
- insertStyleElement(options, style);
3112
-
3113
- return style;
3114
- }
3115
-
3116
- function createLinkElement (options) {
3117
- var link = document.createElement("link");
3118
-
3119
- options.attrs.type = "text/css";
3120
- options.attrs.rel = "stylesheet";
3121
-
3122
- addAttrs(link, options.attrs);
3123
- insertStyleElement(options, link);
3124
-
3125
- return link;
3126
- }
3127
-
3128
- function addAttrs (el, attrs) {
3129
- Object.keys(attrs).forEach(function (key) {
3130
- el.setAttribute(key, attrs[key]);
3131
- });
3132
- }
3133
-
3134
- function addStyle (obj, options) {
3135
- var style, update, remove, result;
3136
-
3137
- // If a transform function was defined, run it on the css
3138
- if (options.transform && obj.css) {
3139
- result = options.transform(obj.css);
3140
-
3141
- if (result) {
3142
- // If transform returns a value, use that instead of the original css.
3143
- // This allows running runtime transformations on the css.
3144
- obj.css = result;
3145
- } else {
3146
- // If the transform function returns a falsy value, don't add this css.
3147
- // This allows conditional loading of css
3148
- return function() {
3149
- // noop
3150
- };
3151
- }
3152
- }
3153
-
3154
- if (options.singleton) {
3155
- var styleIndex = singletonCounter++;
3156
-
3157
- style = singleton || (singleton = createStyleElement(options));
3158
-
3159
- update = applyToSingletonTag.bind(null, style, styleIndex, false);
3160
- remove = applyToSingletonTag.bind(null, style, styleIndex, true);
3161
-
3162
- } else if (
3163
- obj.sourceMap &&
3164
- typeof URL === "function" &&
3165
- typeof URL.createObjectURL === "function" &&
3166
- typeof URL.revokeObjectURL === "function" &&
3167
- typeof Blob === "function" &&
3168
- typeof btoa === "function"
3169
- ) {
3170
- style = createLinkElement(options);
3171
- update = updateLink.bind(null, style, options);
3172
- remove = function () {
3173
- removeStyleElement(style);
3174
-
3175
- if(style.href) URL.revokeObjectURL(style.href);
3176
- };
3177
- } else {
3178
- style = createStyleElement(options);
3179
- update = applyToTag.bind(null, style);
3180
- remove = function () {
3181
- removeStyleElement(style);
3182
- };
3183
- }
3184
-
3185
- update(obj);
3186
-
3187
- return function updateStyle (newObj) {
3188
- if (newObj) {
3189
- if (
3190
- newObj.css === obj.css &&
3191
- newObj.media === obj.media &&
3192
- newObj.sourceMap === obj.sourceMap
3193
- ) {
3194
- return;
3195
- }
3196
-
3197
- update(obj = newObj);
3198
- } else {
3199
- remove();
3200
- }
3201
- };
3202
- }
3203
-
3204
- var replaceText = (function () {
3205
- var textStore = [];
3206
-
3207
- return function (index, replacement) {
3208
- textStore[index] = replacement;
3209
-
3210
- return textStore.filter(Boolean).join('\n');
3211
- };
3212
- })();
3213
-
3214
- function applyToSingletonTag (style, index, remove, obj) {
3215
- var css = remove ? "" : obj.css;
3216
-
3217
- if (style.styleSheet) {
3218
- style.styleSheet.cssText = replaceText(index, css);
3219
- } else {
3220
- var cssNode = document.createTextNode(css);
3221
- var childNodes = style.childNodes;
3222
-
3223
- if (childNodes[index]) style.removeChild(childNodes[index]);
3224
-
3225
- if (childNodes.length) {
3226
- style.insertBefore(cssNode, childNodes[index]);
3227
- } else {
3228
- style.appendChild(cssNode);
3229
- }
3230
- }
3231
- }
3232
-
3233
- function applyToTag (style, obj) {
3234
- var css = obj.css;
3235
- var media = obj.media;
3236
-
3237
- if(media) {
3238
- style.setAttribute("media", media)
3239
- }
3240
-
3241
- if(style.styleSheet) {
3242
- style.styleSheet.cssText = css;
3243
- } else {
3244
- while(style.firstChild) {
3245
- style.removeChild(style.firstChild);
3246
- }
3247
-
3248
- style.appendChild(document.createTextNode(css));
3249
- }
3250
- }
3251
-
3252
- function updateLink (link, options, obj) {
3253
- var css = obj.css;
3254
- var sourceMap = obj.sourceMap;
3255
-
3256
- /*
3257
- If convertToAbsoluteUrls isn't defined, but sourcemaps are enabled
3258
- and there is no publicPath defined then lets turn convertToAbsoluteUrls
3259
- on by default. Otherwise default to the convertToAbsoluteUrls option
3260
- directly
3261
- */
3262
- var autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;
3263
-
3264
- if (options.convertToAbsoluteUrls || autoFixUrls) {
3265
- css = fixUrls(css);
3266
- }
3267
-
3268
- if (sourceMap) {
3269
- // http://stackoverflow.com/a/26603875
3270
- css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
3271
- }
3272
-
3273
- var blob = new Blob([css], { type: "text/css" });
3274
-
3275
- var oldSrc = link.href;
3276
-
3277
- link.href = URL.createObjectURL(blob);
3278
-
3279
- if(oldSrc) URL.revokeObjectURL(oldSrc);
3280
- }
3281
-
3282
-
3283
- /***/ }),
3284
-
3285
- /***/ 49:
3286
2843
  /***/ (function(module, exports) {
3287
2844
 
3288
-
3289
- /**
3290
- * When source maps are enabled, `style-loader` uses a link element with a data-uri to
3291
- * embed the css on the page. This breaks all relative urls because now they are relative to a
3292
- * bundle instead of the current page.
3293
- *
3294
- * One solution is to only use full urls, but that may be impossible.
3295
- *
3296
- * Instead, this function "fixes" the relative urls to be absolute according to the current page location.
3297
- *
3298
- * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.
3299
- *
3300
- */
3301
-
3302
- module.exports = function (css) {
3303
- // get current location
3304
- var location = typeof window !== "undefined" && window.location;
3305
-
3306
- if (!location) {
3307
- throw new Error("fixUrls requires window.location");
3308
- }
3309
-
3310
- // blank or null?
3311
- if (!css || typeof css !== "string") {
3312
- return css;
3313
- }
3314
-
3315
- var baseUrl = location.protocol + "//" + location.host;
3316
- var currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/");
3317
-
3318
- // convert each url(...)
3319
- /*
3320
- This regular expression is just a way to recursively match brackets within
3321
- a string.
3322
-
3323
- /url\s*\( = Match on the word "url" with any whitespace after it and then a parens
3324
- ( = Start a capturing group
3325
- (?: = Start a non-capturing group
3326
- [^)(] = Match anything that isn't a parentheses
3327
- | = OR
3328
- \( = Match a start parentheses
3329
- (?: = Start another non-capturing groups
3330
- [^)(]+ = Match anything that isn't a parentheses
3331
- | = OR
3332
- \( = Match a start parentheses
3333
- [^)(]* = Match anything that isn't a parentheses
3334
- \) = Match a end parentheses
3335
- ) = End Group
3336
- *\) = Match anything and then a close parens
3337
- ) = Close non-capturing group
3338
- * = Match anything
3339
- ) = Close capturing group
3340
- \) = Match a close parens
3341
-
3342
- /gi = Get all matches, not the first. Be case insensitive.
3343
- */
3344
- var fixedCss = css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) {
3345
- // strip quotes (if they exist)
3346
- var unquotedOrigUrl = origUrl
3347
- .trim()
3348
- .replace(/^"(.*)"$/, function(o, $1){ return $1; })
3349
- .replace(/^'(.*)'$/, function(o, $1){ return $1; });
3350
-
3351
- // already a full url? no change
3352
- if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(unquotedOrigUrl)) {
3353
- return fullMatch;
3354
- }
3355
-
3356
- // convert the url to a full url
3357
- var newUrl;
3358
-
3359
- if (unquotedOrigUrl.indexOf("//") === 0) {
3360
- //TODO: should we add protocol?
3361
- newUrl = unquotedOrigUrl;
3362
- } else if (unquotedOrigUrl.indexOf("/") === 0) {
3363
- // path should be relative to the base url
3364
- newUrl = baseUrl + unquotedOrigUrl; // already starts with '/'
3365
- } else {
3366
- // path should be relative to current directory
3367
- newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, ""); // Strip leading './'
3368
- }
3369
-
3370
- // send back the fixed url(...)
3371
- return "url(" + JSON.stringify(newUrl) + ")";
3372
- });
3373
-
3374
- // send back the fixed css
3375
- return fixedCss;
3376
- };
3377
-
2845
+ module.exports = __WEBPACK_EXTERNAL_MODULE__48__;
3378
2846
 
3379
2847
  /***/ }),
3380
2848
 
@@ -3584,14 +3052,7 @@ if (!vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer) {
3584
3052
 
3585
3053
  /***/ }),
3586
3054
 
3587
- /***/ 51:
3588
- /***/ (function(module, exports) {
3589
-
3590
- module.exports = __WEBPACK_EXTERNAL_MODULE__51__;
3591
-
3592
- /***/ }),
3593
-
3594
- /***/ 55:
3055
+ /***/ 52:
3595
3056
  /***/ (function(module, exports, __webpack_require__) {
3596
3057
 
3597
3058
  var __WEBPACK_AMD_DEFINE_RESULT__;/* Modified from https://github.com/taylorhakes/fecha
@@ -3962,7 +3423,7 @@ var __WEBPACK_AMD_DEFINE_RESULT__;/* Modified from https://github.com/taylorhake
3962
3423
 
3963
3424
  /***/ }),
3964
3425
 
3965
- /***/ 58:
3426
+ /***/ 57:
3966
3427
  /***/ (function(module, exports) {
3967
3428
 
3968
3429
  module.exports = require("babel-runtime/helpers/slicedToArray");
@@ -3976,24 +3437,10 @@ module.exports = require("babel-runtime/core-js/object/assign");
3976
3437
 
3977
3438
  /***/ }),
3978
3439
 
3979
- /***/ 62:
3980
- /***/ (function(module, exports, __webpack_require__) {
3981
-
3982
- // style-loader: Adds some css to the DOM by adding a <style> tag
3983
-
3984
- // load the styles
3985
- var content = __webpack_require__(83);
3986
- if(typeof content === 'string') content = [[module.i, content, '']];
3987
- // Prepare cssTransformation
3988
- var transform;
3440
+ /***/ 67:
3441
+ /***/ (function(module, exports) {
3989
3442
 
3990
- var options = {}
3991
- options.transform = transform
3992
- // add the styles to the DOM
3993
- var update = __webpack_require__(48)(content, options);
3994
- if(content.locals) module.exports = content.locals;
3995
- // Hot Module Replacement
3996
- if(false) {}
3443
+ module.exports = __WEBPACK_EXTERNAL_MODULE__67__;
3997
3444
 
3998
3445
  /***/ }),
3999
3446
 
@@ -4004,13 +3451,6 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__68__;
4004
3451
 
4005
3452
  /***/ }),
4006
3453
 
4007
- /***/ 69:
4008
- /***/ (function(module, exports) {
4009
-
4010
- module.exports = __WEBPACK_EXTERNAL_MODULE__69__;
4011
-
4012
- /***/ }),
4013
-
4014
3454
  /***/ 7:
4015
3455
  /***/ (function(module, exports) {
4016
3456
 
@@ -4025,40 +3465,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__8__;
4025
3465
 
4026
3466
  /***/ }),
4027
3467
 
4028
- /***/ 82:
4029
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
4030
-
4031
- "use strict";
4032
- /* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_quarter_vue_vue_type_style_index_0_id_76a5899a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62);
4033
- /* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_index_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_quarter_vue_vue_type_style_index_0_id_76a5899a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_index_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_quarter_vue_vue_type_style_index_0_id_76a5899a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
4034
- /* unused harmony reexport * */
4035
-
4036
-
4037
- /***/ }),
4038
-
4039
- /***/ 83:
4040
- /***/ (function(module, exports, __webpack_require__) {
4041
-
4042
- exports = module.exports = __webpack_require__(47)(false);
4043
- // imports
4044
-
4045
-
4046
- // module
4047
- exports.push([module.i, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* 可以在这里添加一些基本样式,或者统一在 mds-ui/components/datepicker/style/index.js 中引入 */\n.mds-quarter-panel[data-v-76a5899a] {\n padding: 15px;\n background-color: #fff;\n border: 1px solid #e4e7ed;\n border-radius: 4px;\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n}\n.mds-quarter-panel__header[data-v-76a5899a] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 10px;\n font-weight: bold;\n}\n.mds-quarter-panel__header button[data-v-76a5899a] {\n background: none;\n border: none;\n cursor: pointer;\n padding: 5px 10px;\n font-size: 16px;\n color: #606266;\n}\n.mds-quarter-panel__header button[data-v-76a5899a]:hover {\n color: #409eff;\n}\n.mds-quarter-panel__body[data-v-76a5899a] {\n display: grid;\n grid-template-columns: repeat(2, 1fr); /* 两列布局 */\n gap: 10px;\n text-align: center;\n}\n.mds-quarter-panel__quarter[data-v-76a5899a] {\n padding: 15px 0;\n cursor: pointer;\n border-radius: 4px;\n transition: background-color 0.2s ease;\n font-size: 14px;\n}\n.mds-quarter-panel__quarter[data-v-76a5899a]:hover {\n background-color: #f0f0f0;\n}\n.mds-quarter-panel__quarter.is-selected[data-v-76a5899a] {\n background-color: #409eff; /* Element UI primary color */\n color: white;\n}\n", ""]);
4048
-
4049
- // exports
4050
-
4051
-
4052
- /***/ }),
4053
-
4054
- /***/ 9:
4055
- /***/ (function(module, exports) {
4056
-
4057
- module.exports = require("babel-runtime/helpers/typeof");
4058
-
4059
- /***/ }),
4060
-
4061
- /***/ 91:
3468
+ /***/ 88:
4062
3469
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4063
3470
 
4064
3471
  "use strict";
@@ -4066,13 +3473,13 @@ module.exports = require("babel-runtime/helpers/typeof");
4066
3473
  __webpack_require__.r(__webpack_exports__);
4067
3474
 
4068
3475
  // EXTERNAL MODULE: ./components/style/index.less
4069
- var components_style = __webpack_require__(145);
3476
+ var components_style = __webpack_require__(142);
4070
3477
 
4071
3478
  // EXTERNAL MODULE: ./components/datepicker/style/index.less
4072
- var datepicker_style = __webpack_require__(179);
3479
+ var datepicker_style = __webpack_require__(176);
4073
3480
 
4074
3481
  // EXTERNAL MODULE: ./components/datepicker/style/transition.less
4075
- var transition = __webpack_require__(181);
3482
+ var transition = __webpack_require__(178);
4076
3483
 
4077
3484
  // CONCATENATED MODULE: ./components/datepicker/style/index.js
4078
3485
 
@@ -4294,14 +3701,14 @@ var clickoutside_default = /*#__PURE__*/__webpack_require__.n(clickoutside_);
4294
3701
  var dateUtil_ = __webpack_require__(4);
4295
3702
 
4296
3703
  // EXTERNAL MODULE: ./components/_util/_popper/vue-popper.js + 1 modules
4297
- var vue_popper = __webpack_require__(18);
3704
+ var vue_popper = __webpack_require__(17);
4298
3705
 
4299
3706
  // EXTERNAL MODULE: external "./_mixin/emitter"
4300
3707
  var emitter_ = __webpack_require__(13);
4301
3708
  var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
4302
3709
 
4303
3710
  // EXTERNAL MODULE: external "./input"
4304
- var external_input_ = __webpack_require__(17);
3711
+ var external_input_ = __webpack_require__(18);
4305
3712
  var external_input_default = /*#__PURE__*/__webpack_require__.n(external_input_);
4306
3713
 
4307
3714
  // EXTERNAL MODULE: external "./icon"
@@ -4309,11 +3716,11 @@ var external_icon_ = __webpack_require__(7);
4309
3716
  var external_icon_default = /*#__PURE__*/__webpack_require__.n(external_icon_);
4310
3717
 
4311
3718
  // EXTERNAL MODULE: external "./_util/merge"
4312
- var merge_ = __webpack_require__(51);
3719
+ var merge_ = __webpack_require__(48);
4313
3720
  var merge_default = /*#__PURE__*/__webpack_require__.n(merge_);
4314
3721
 
4315
3722
  // EXTERNAL MODULE: external "./_mixin/locale"
4316
- var locale_ = __webpack_require__(10);
3723
+ var locale_ = __webpack_require__(9);
4317
3724
  var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);
4318
3725
 
4319
3726
  // EXTERNAL MODULE: external "./_util/proptype"
@@ -4449,7 +3856,7 @@ var DEFAULT_FORMATS = {
4449
3856
  datetimerangeflat: 'yyyy-MM-dd HH:mm:ss',
4450
3857
  year: 'yyyy'
4451
3858
  };
4452
- var HAVE_TRIGGER_TYPES = ['date', 'datetime', 'time', 'time-select', 'week', 'month', 'year', 'daterange', 'monthrange', 'timerange', 'datetimerange', 'dates', 'datetimerangeflat'];
3859
+ var HAVE_TRIGGER_TYPES = ['date', 'datetime', 'time', 'time-select', 'week', 'month', 'year', 'daterange', 'monthrange', 'timerange', 'datetimerange', 'dates', 'datetimerangeflat', 'quarter'];
4453
3860
  var pickervue_type_script_lang_js_DATE_FORMATTER = function DATE_FORMATTER(value, format) {
4454
3861
  if (format === 'timestamp') return value.getTime();
4455
3862
  return Object(dateUtil_["formatDate"])(value, format);
@@ -4577,6 +3984,31 @@ var TYPE_VALUE_RESOLVER_MAP = {
4577
3984
  return date instanceof Date ? date : pickervue_type_script_lang_js_DATE_PARSER(date, format);
4578
3985
  });
4579
3986
  }
3987
+ },
3988
+ quarter: {
3989
+ formatter: function formatter(value, format) {
3990
+ // value 是 Date
3991
+ if (!value) return '';
3992
+ var year = value.getFullYear();
3993
+ var month = value.getMonth();
3994
+ var quarter = Math.floor(month / 3) + 1;
3995
+ // 支持自定义格式,否则默认 'yyyy-Qn'
3996
+ if (format) {
3997
+ return format.replace('yyyy', year).replace('Q', quarter);
3998
+ }
3999
+ return year + '-Q' + quarter;
4000
+ },
4001
+ parser: function parser(text, format) {
4002
+ // 支持 'yyyy-Qn' 格式
4003
+ if (!text) return null;
4004
+ var match = text.match(/(\\d{4})-?Q(\\d)/);
4005
+ if (match) {
4006
+ var year = parseInt(match[1]);
4007
+ var quarter = parseInt(match[2]);
4008
+ return new Date(year, (quarter - 1) * 3, 1);
4009
+ }
4010
+ return new Date(text);
4011
+ }
4580
4012
  }
4581
4013
  };
4582
4014
  var PLACEMENT_MAP = {
@@ -4711,6 +4143,10 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
4711
4143
  validateEvent: {
4712
4144
  type: Boolean,
4713
4145
  default: true
4146
+ },
4147
+ pickerType: {
4148
+ type: String,
4149
+ default: 'date'
4714
4150
  }
4715
4151
  },
4716
4152
 
@@ -4825,6 +4261,8 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
4825
4261
  return 'year';
4826
4262
  } else if (this.type === 'dates') {
4827
4263
  return 'dates';
4264
+ } else if (this.type === 'quarter') {
4265
+ return 'quarter';
4828
4266
  }
4829
4267
 
4830
4268
  return 'day';
@@ -5039,8 +4477,7 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
5039
4477
  this.userInput = initialValue === '' ? null : initialValue;
5040
4478
  },
5041
4479
  handleFocus: function handleFocus() {
5042
- var type = this.type;
5043
- if (HAVE_TRIGGER_TYPES.indexOf(type) !== -1 && !this.pickerVisible) {
4480
+ if (HAVE_TRIGGER_TYPES.indexOf(this.type) !== -1 && !this.pickerVisible) {
5044
4481
  this.pickerVisible = true;
5045
4482
  }
5046
4483
  this.$emit('focus', this);
@@ -5135,7 +4572,20 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
5135
4572
  mountPicker: function mountPicker() {
5136
4573
  var _this3 = this;
5137
4574
 
5138
- this.picker = new external_root_Vue_commonjs_vue_commonjs2_vue_amd_vue_default.a(this.panel).$mount();
4575
+ var Panel = external_root_Vue_commonjs_vue_commonjs2_vue_amd_vue_default.a.extend(this.panel);
4576
+ this.picker = new Panel({
4577
+ propsData: {
4578
+ pickerType: this.type,
4579
+ referenceElm: this.reference, // 关键:传递 referenceElm
4580
+ popperClass: this.popperClass,
4581
+ appendToBody: true,
4582
+ placement: 'bottom-start' // 关键
4583
+ }
4584
+ }).$mount();
4585
+ // 只对非季度类型 appendChild
4586
+ if (this.type !== 'quarter') {
4587
+ this.$el.appendChild(this.picker.$el);
4588
+ }
5139
4589
  this.picker.defaultValue = this.defaultValue;
5140
4590
  this.picker.defaultTime = this.defaultTime;
5141
4591
  this.picker.popperClass = this.popperClass;
@@ -5147,7 +4597,6 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
5147
4597
  this.picker.arrowControl = this.arrowControl || this.timeArrowControl || false;
5148
4598
  this.picker.listenScroll = this.listenScroll;
5149
4599
  this.picker.step = this.step;
5150
- this.picker.pickerType = this.type;
5151
4600
  this.$watch('format', function (format) {
5152
4601
  _this3.picker.format = format;
5153
4602
  });
@@ -5183,7 +4632,7 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
5183
4632
  this.unwatchPickerOptions = this.$watch('pickerOptions', function () {
5184
4633
  return updateOptions();
5185
4634
  }, { deep: true });
5186
- this.$el.appendChild(this.picker.$el);
4635
+ // this.$el.appendChild(this.picker.$el)
5187
4636
  this.picker.resetView && this.picker.resetView();
5188
4637
 
5189
4638
  this.picker.$on('dodestroy', this.doDestroy);
@@ -5195,6 +4644,9 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
5195
4644
  _this3.pickerVisible = _this3.picker.visible = visible;
5196
4645
  _this3.emitInput(date);
5197
4646
  _this3.picker.resetView && _this3.picker.resetView();
4647
+ if (!visible) {
4648
+ _this3.unmountPicker();
4649
+ }
5198
4650
  });
5199
4651
 
5200
4652
  this.picker.$on('select-range', function (start, end, pos) {
@@ -5216,6 +4668,7 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
5216
4668
  this.unwatchPickerOptions();
5217
4669
  }
5218
4670
  if (this.picker.$el.parentNode) this.picker.$el.parentNode.removeChild(this.picker.$el);
4671
+ this.picker = null;
5219
4672
  }
5220
4673
  },
5221
4674
  emitChange: function emitChange(val) {
@@ -5242,6 +4695,26 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
5242
4695
  } else {
5243
4696
  return true;
5244
4697
  }
4698
+ },
4699
+ selectQuarter: function selectQuarter(quarter) {
4700
+ var selectedDate = new Date(this.currentYear, quarter.startMonth, 1);
4701
+ this.$emit('pick', selectedDate, false);
4702
+ },
4703
+ prevYear: function prevYear() {
4704
+ this.currentYear--;
4705
+ this.$emit('pick', new Date(this.currentYear, 0, 1));
4706
+ },
4707
+ nextYear: function nextYear() {
4708
+ this.currentYear++;
4709
+ this.$emit('pick', new Date(this.currentYear, 0, 1));
4710
+ },
4711
+ isSelected: function isSelected(quarter) {
4712
+ if (!this.value || !(this.value instanceof Date) || isNaN(this.value)) {
4713
+ return false;
4714
+ }
4715
+ var selectedYear = this.value.getFullYear();
4716
+ var selectedMonth = this.value.getMonth();
4717
+ return selectedYear === this.currentYear && selectedMonth >= quarter.startMonth && selectedMonth <= quarter.endMonth;
5245
4718
  }
5246
4719
  }
5247
4720
  });
@@ -5318,100 +4791,130 @@ var datevue_type_template_id_1a0bc492_render = function () {
5318
4791
  class: this.prefixCls + "-picker-panel-header",
5319
4792
  },
5320
4793
  [
5321
- _c("i", {
5322
- staticClass: "mdsicon mdsicon-line-caret-left-double",
5323
- class: [
5324
- _vm.prefixCls + "-picker-panel-header-base-icon",
5325
- _vm.prefixCls + "-prev-year",
5326
- _vm.prefixCls + "-other-icon",
5327
- _vm.prefixCls + "-picker-panel-header-base-left",
5328
- ],
5329
- attrs: { "aria-label": _vm.t("mds.datepicker.prevYear") },
5330
- on: { click: _vm.prevYear },
5331
- }),
5332
- _c("i", {
5333
- directives: [
5334
- {
5335
- name: "show",
5336
- rawName: "v-show",
5337
- value: _vm.currentView === "date",
5338
- expression: "currentView === 'date'",
5339
- },
5340
- ],
5341
- staticClass: "mdsicon mdsicon-line-caret-left",
5342
- class: [
5343
- _vm.prefixCls + "-picker-panel-header-base-icon",
5344
- _vm.prefixCls + "-prev-month",
5345
- _vm.prefixCls + "-other-icon",
5346
- _vm.prefixCls + "-picker-panel-header-base-left",
5347
- ],
5348
- attrs: { "aria-label": _vm.t("mds.datepicker.prevMonth") },
5349
- on: { click: _vm.prevMonth },
5350
- }),
5351
- _c(
5352
- "span",
5353
- {
5354
- class: _vm.prefixCls + "-picker-panel-header-label",
5355
- attrs: { role: "button" },
5356
- on: { click: _vm.showYearPicker },
5357
- },
5358
- [_vm._v(_vm._s(_vm.yearLabel))]
5359
- ),
5360
- _c(
5361
- "span",
5362
- {
5363
- directives: [
5364
- {
5365
- name: "show",
5366
- rawName: "v-show",
5367
- value: _vm.currentView === "date",
5368
- expression: "currentView === 'date'",
5369
- },
5370
- ],
5371
- class: [
5372
- _vm.prefixCls + "-picker-panel-header-label",
5373
- { active: _vm.currentView === "month" },
4794
+ _vm.pickerType === "quarter"
4795
+ ? [
4796
+ _c(
4797
+ "span",
4798
+ { staticClass: "mds-date-picker-quarter-header" },
4799
+ [
4800
+ _vm._v(
4801
+ "\n " +
4802
+ _vm._s(_vm.year) +
4803
+ " " +
4804
+ _vm._s(_vm.t("mds.datepicker.year")) +
4805
+ "\n "
4806
+ ),
4807
+ ]
4808
+ ),
4809
+ ]
4810
+ : [
4811
+ _c("i", {
4812
+ staticClass: "mdsicon mdsicon-line-caret-left-double",
4813
+ class: [
4814
+ _vm.prefixCls + "-picker-panel-header-base-icon",
4815
+ _vm.prefixCls + "-prev-year",
4816
+ _vm.prefixCls + "-other-icon",
4817
+ _vm.prefixCls + "-picker-panel-header-base-left",
4818
+ ],
4819
+ attrs: {
4820
+ "aria-label": _vm.t("mds.datepicker.prevYear"),
4821
+ },
4822
+ on: { click: _vm.prevYear },
4823
+ }),
4824
+ _c("i", {
4825
+ directives: [
4826
+ {
4827
+ name: "show",
4828
+ rawName: "v-show",
4829
+ value: _vm.currentView === "date",
4830
+ expression: "currentView === 'date'",
4831
+ },
4832
+ ],
4833
+ staticClass: "mdsicon mdsicon-line-caret-left",
4834
+ class: [
4835
+ _vm.prefixCls + "-picker-panel-header-base-icon",
4836
+ _vm.prefixCls + "-prev-month",
4837
+ _vm.prefixCls + "-other-icon",
4838
+ _vm.prefixCls + "-picker-panel-header-base-left",
4839
+ ],
4840
+ attrs: {
4841
+ "aria-label": _vm.t("mds.datepicker.prevMonth"),
4842
+ },
4843
+ on: { click: _vm.prevMonth },
4844
+ }),
4845
+ _c(
4846
+ "span",
4847
+ {
4848
+ class: _vm.prefixCls + "-picker-panel-header-label",
4849
+ attrs: { role: "button" },
4850
+ on: { click: _vm.showYearPicker },
4851
+ },
4852
+ [_vm._v(_vm._s(_vm.yearLabel))]
4853
+ ),
4854
+ _c(
4855
+ "span",
4856
+ {
4857
+ directives: [
4858
+ {
4859
+ name: "show",
4860
+ rawName: "v-show",
4861
+ value: _vm.currentView === "date",
4862
+ expression: "currentView === 'date'",
4863
+ },
4864
+ ],
4865
+ class: [
4866
+ _vm.prefixCls + "-picker-panel-header-label",
4867
+ { active: _vm.currentView === "month" },
4868
+ ],
4869
+ attrs: { role: "button" },
4870
+ on: { click: _vm.showMonthPicker },
4871
+ },
4872
+ [
4873
+ _vm._v(
4874
+ _vm._s(
4875
+ _vm.t("mds.datepicker.month" + (_vm.month + 1))
4876
+ )
4877
+ ),
4878
+ ]
4879
+ ),
4880
+ _c("i", {
4881
+ staticClass:
4882
+ "mdsicon mdsicon-line-caret-right-double",
4883
+ class: [
4884
+ _vm.prefixCls + "-picker-panel-header-base-icon",
4885
+ _vm.prefixCls + "-next-year",
4886
+ _vm.prefixCls + "-other-icon",
4887
+ _vm.prefixCls + "-picker-panel-header-base-right",
4888
+ ],
4889
+ attrs: {
4890
+ "aria-label": _vm.t("mds.datepicker.nextYear"),
4891
+ },
4892
+ on: { click: _vm.nextYear },
4893
+ }),
4894
+ _c("i", {
4895
+ directives: [
4896
+ {
4897
+ name: "show",
4898
+ rawName: "v-show",
4899
+ value: _vm.currentView === "date",
4900
+ expression: "currentView === 'date'",
4901
+ },
4902
+ ],
4903
+ staticClass: "mdsicon mdsicon-line-caret-right",
4904
+ class: [
4905
+ _vm.prefixCls + "-picker-panel-header-base-icon",
4906
+ _vm.prefixCls + "-next-month",
4907
+ _vm.prefixCls + "-other-icon",
4908
+ _vm.prefixCls + "-picker-panel-header-base-right",
4909
+ ],
4910
+ attrs: {
4911
+ "aria-label": _vm.t("mds.datepicker.nextMonth"),
4912
+ },
4913
+ on: { click: _vm.nextMonth },
4914
+ }),
5374
4915
  ],
5375
- attrs: { role: "button" },
5376
- on: { click: _vm.showMonthPicker },
5377
- },
5378
- [
5379
- _vm._v(
5380
- _vm._s(_vm.t("mds.datepicker.month" + (_vm.month + 1)))
5381
- ),
5382
- ]
5383
- ),
5384
- _c("i", {
5385
- staticClass: "mdsicon mdsicon-line-caret-right-double",
5386
- class: [
5387
- _vm.prefixCls + "-picker-panel-header-base-icon",
5388
- _vm.prefixCls + "-next-year",
5389
- _vm.prefixCls + "-other-icon",
5390
- _vm.prefixCls + "-picker-panel-header-base-right",
5391
- ],
5392
- attrs: { "aria-label": _vm.t("mds.datepicker.nextYear") },
5393
- on: { click: _vm.nextYear },
5394
- }),
5395
- _c("i", {
5396
- directives: [
5397
- {
5398
- name: "show",
5399
- rawName: "v-show",
5400
- value: _vm.currentView === "date",
5401
- expression: "currentView === 'date'",
5402
- },
5403
- ],
5404
- staticClass: "mdsicon mdsicon-line-caret-right",
5405
- class: [
5406
- _vm.prefixCls + "-picker-panel-header-base-icon",
5407
- _vm.prefixCls + "-next-month",
5408
- _vm.prefixCls + "-other-icon",
5409
- _vm.prefixCls + "-picker-panel-header-base-right",
5410
- ],
5411
- attrs: { "aria-label": _vm.t("mds.datepicker.nextMonth") },
5412
- on: { click: _vm.nextMonth },
5413
- }),
5414
- ]
4916
+ ],
4917
+ 2
5415
4918
  ),
5416
4919
  _vm.timePickerVisible
5417
4920
  ? _c(
@@ -5436,98 +4939,105 @@ var datevue_type_template_id_1a0bc492_render = function () {
5436
4939
  "div",
5437
4940
  { class: this.prefixCls + "-picker-panel-content" },
5438
4941
  [
5439
- _c("date-table", {
5440
- directives: [
5441
- {
5442
- name: "show",
5443
- rawName: "v-show",
5444
- value:
5445
- _vm.currentView === "date" &&
5446
- _vm.timePickerVisible === false,
5447
- expression:
5448
- "currentView === 'date' && timePickerVisible === false",
5449
- },
5450
- ],
5451
- attrs: {
5452
- "selection-mode": _vm.selectionMode,
5453
- "first-day-of-week": _vm.firstDayOfWeek,
5454
- value: _vm.value,
5455
- "default-value": _vm.defaultValue
5456
- ? new Date(_vm.defaultValue)
5457
- : null,
5458
- date: _vm.date,
5459
- "cell-class-name": _vm.cellClassName,
5460
- "disabled-date": _vm.disabledDate,
5461
- },
5462
- on: { pick: _vm.handleDatePick },
5463
- }),
5464
- _c("year-table", {
5465
- directives: [
5466
- {
5467
- name: "show",
5468
- rawName: "v-show",
5469
- value:
5470
- _vm.currentView === "year" &&
5471
- _vm.timePickerVisible === false,
5472
- expression:
5473
- "currentView === 'year' && timePickerVisible === false",
5474
- },
5475
- ],
5476
- attrs: {
5477
- value: _vm.value,
5478
- "default-value": _vm.defaultValue
5479
- ? new Date(_vm.defaultValue)
5480
- : null,
5481
- date: _vm.date,
5482
- "disabled-date": _vm.disabledDate,
5483
- },
5484
- on: { pick: _vm.handleYearPick },
5485
- }),
5486
- _c("month-table", {
5487
- directives: [
5488
- {
5489
- name: "show",
5490
- rawName: "v-show",
5491
- value:
5492
- _vm.currentView === "month" &&
5493
- _vm.timePickerVisible === false,
5494
- expression:
5495
- "currentView === 'month' && timePickerVisible === false",
5496
- },
5497
- ],
5498
- attrs: {
5499
- value: _vm.value,
5500
- "default-value": _vm.defaultValue
5501
- ? new Date(_vm.defaultValue)
5502
- : null,
5503
- date: _vm.date,
5504
- "disabled-date": _vm.disabledDate,
5505
- },
5506
- on: { pick: _vm.handleMonthPick },
5507
- }),
5508
- _c("time-picker", {
5509
- directives: [
5510
- {
5511
- name: "show",
5512
- rawName: "v-show",
5513
- value: _vm.timePickerVisible && _vm.showTime,
5514
- expression: "timePickerVisible && showTime",
5515
- },
5516
- ],
5517
- ref: "timepicker",
5518
- attrs: {
5519
- "time-arrow-control": _vm.arrowControl,
5520
- visible: true,
5521
- "listen-scroll": _vm.listenScroll,
5522
- step: _vm.step,
5523
- },
5524
- on: {
5525
- pick: _vm.handleTimePick,
5526
- mounted: _vm.proxyTimePickerDataProperties,
5527
- },
5528
- }),
4942
+ _vm.pickerType === "quarter"
4943
+ ? _c("quarter-panel", {
4944
+ attrs: { value: _vm.value, date: _vm.date },
4945
+ on: { pick: _vm.handleQuarterPick },
4946
+ })
4947
+ : [
4948
+ _c("date-table", {
4949
+ directives: [
4950
+ {
4951
+ name: "show",
4952
+ rawName: "v-show",
4953
+ value:
4954
+ _vm.currentView === "date" &&
4955
+ _vm.timePickerVisible === false,
4956
+ expression:
4957
+ "currentView === 'date' && timePickerVisible === false",
4958
+ },
4959
+ ],
4960
+ attrs: {
4961
+ "selection-mode": _vm.selectionMode,
4962
+ "first-day-of-week": _vm.firstDayOfWeek,
4963
+ value: _vm.value,
4964
+ "default-value": _vm.defaultValue
4965
+ ? new Date(_vm.defaultValue)
4966
+ : null,
4967
+ date: _vm.date,
4968
+ "cell-class-name": _vm.cellClassName,
4969
+ "disabled-date": _vm.disabledDate,
4970
+ },
4971
+ on: { pick: _vm.handleDatePick },
4972
+ }),
4973
+ _c("year-table", {
4974
+ directives: [
4975
+ {
4976
+ name: "show",
4977
+ rawName: "v-show",
4978
+ value:
4979
+ _vm.currentView === "year" &&
4980
+ _vm.timePickerVisible === false,
4981
+ expression:
4982
+ "currentView === 'year' && timePickerVisible === false",
4983
+ },
4984
+ ],
4985
+ attrs: {
4986
+ value: _vm.value,
4987
+ "default-value": _vm.defaultValue
4988
+ ? new Date(_vm.defaultValue)
4989
+ : null,
4990
+ date: _vm.date,
4991
+ "disabled-date": _vm.disabledDate,
4992
+ },
4993
+ on: { pick: _vm.handleYearPick },
4994
+ }),
4995
+ _c("month-table", {
4996
+ directives: [
4997
+ {
4998
+ name: "show",
4999
+ rawName: "v-show",
5000
+ value:
5001
+ _vm.currentView === "month" &&
5002
+ _vm.timePickerVisible === false,
5003
+ expression:
5004
+ "currentView === 'month' && timePickerVisible === false",
5005
+ },
5006
+ ],
5007
+ attrs: {
5008
+ value: _vm.value,
5009
+ "default-value": _vm.defaultValue
5010
+ ? new Date(_vm.defaultValue)
5011
+ : null,
5012
+ date: _vm.date,
5013
+ "disabled-date": _vm.disabledDate,
5014
+ },
5015
+ on: { pick: _vm.handleMonthPick },
5016
+ }),
5017
+ _c("time-picker", {
5018
+ directives: [
5019
+ {
5020
+ name: "show",
5021
+ rawName: "v-show",
5022
+ value: _vm.timePickerVisible && _vm.showTime,
5023
+ expression: "timePickerVisible && showTime",
5024
+ },
5025
+ ],
5026
+ ref: "timepicker",
5027
+ attrs: {
5028
+ "time-arrow-control": _vm.arrowControl,
5029
+ visible: true,
5030
+ "listen-scroll": _vm.listenScroll,
5031
+ step: _vm.step,
5032
+ },
5033
+ on: {
5034
+ pick: _vm.handleTimePick,
5035
+ mounted: _vm.proxyTimePickerDataProperties,
5036
+ },
5037
+ }),
5038
+ ],
5529
5039
  ],
5530
- 1
5040
+ 2
5531
5041
  ),
5532
5042
  ]),
5533
5043
  ]),
@@ -5538,8 +5048,12 @@ var datevue_type_template_id_1a0bc492_render = function () {
5538
5048
  {
5539
5049
  name: "show",
5540
5050
  rawName: "v-show",
5541
- value: _vm.footerVisible && _vm.currentView === "date",
5542
- expression: "footerVisible && currentView === 'date'",
5051
+ value:
5052
+ _vm.footerVisible &&
5053
+ _vm.currentView === "date" &&
5054
+ _vm.pickerType !== "quarter",
5055
+ expression:
5056
+ "footerVisible && currentView === 'date' && pickerType !== 'quarter'",
5543
5057
  },
5544
5058
  ],
5545
5059
  class: this.prefixCls + "-picker-panel-footer",
@@ -5875,7 +5389,7 @@ time_spinnervue_type_template_id_79c97ebf_render._withStripped = true
5875
5389
  // CONCATENATED MODULE: ./components/datepicker/base/time-spinner.vue?vue&type=template&id=79c97ebf&
5876
5390
 
5877
5391
  // EXTERNAL MODULE: ./components/_util/date.js
5878
- var _util_date = __webpack_require__(55);
5392
+ var _util_date = __webpack_require__(52);
5879
5393
  var date_default = /*#__PURE__*/__webpack_require__.n(_util_date);
5880
5394
 
5881
5395
  // CONCATENATED MODULE: ./components/_util/dateUtil.js
@@ -6185,7 +5699,7 @@ var validateRangeInOneMonth = function validateRangeInOneMonth(start, end) {
6185
5699
  var scroll_bar = __webpack_require__(27);
6186
5700
 
6187
5701
  // EXTERNAL MODULE: external "./_util/repeatClick"
6188
- var repeatClick_ = __webpack_require__(68);
5702
+ var repeatClick_ = __webpack_require__(67);
6189
5703
  var repeatClick_default = /*#__PURE__*/__webpack_require__.n(repeatClick_);
6190
5704
 
6191
5705
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/base/time-spinner.vue?vue&type=script&lang=js&
@@ -6886,7 +6400,7 @@ year_tablevue_type_template_id_aa64ca38_render._withStripped = true
6886
6400
  // CONCATENATED MODULE: ./components/datepicker/base/year-table.vue?vue&type=template&id=aa64ca38&
6887
6401
 
6888
6402
  // EXTERNAL MODULE: external "./_util/dom"
6889
- var dom_ = __webpack_require__(69);
6403
+ var dom_ = __webpack_require__(68);
6890
6404
 
6891
6405
  // EXTERNAL MODULE: external "./_util/util"
6892
6406
  var util_ = __webpack_require__(21);
@@ -7988,6 +7502,288 @@ var date_table_component = Object(componentNormalizer["a" /* default */])(
7988
7502
  if (false) { var date_table_api; }
7989
7503
  date_table_component.options.__file = "components/datepicker/base/date-table.vue"
7990
7504
  /* harmony default export */ var date_table = (date_table_component.exports);
7505
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/picker/quarter.vue?vue&type=template&id=76a5899a&
7506
+ var quartervue_type_template_id_76a5899a_render = function () {
7507
+ var _vm = this
7508
+ var _h = _vm.$createElement
7509
+ var _c = _vm._self._c || _h
7510
+ return _c(
7511
+ "div",
7512
+ {
7513
+ directives: [
7514
+ {
7515
+ name: "show",
7516
+ rawName: "v-show",
7517
+ value: _vm.visible,
7518
+ expression: "visible",
7519
+ },
7520
+ ],
7521
+ ref: "popper",
7522
+ class: ["mds-quarter-panel", _vm.popperClass],
7523
+ style: _vm.popperStyle,
7524
+ },
7525
+ [
7526
+ _c("div", { staticClass: "mds-quarter-panel__header" }, [
7527
+ _c("i", {
7528
+ staticClass: "mdsicon mdsicon-line-caret-left-double",
7529
+ class: [
7530
+ _vm.prefixCls + "-picker-panel-header-base-icon",
7531
+ _vm.prefixCls + "-left-prev-year",
7532
+ _vm.prefixCls + "-other-icon",
7533
+ _vm.prefixCls + "-picker-panel-header-base-left",
7534
+ ],
7535
+ attrs: { "aria-label": _vm.t("mds.datepicker.prevYear") },
7536
+ on: { click: _vm.prevYear },
7537
+ }),
7538
+ _c("span", [_vm._v(_vm._s(_vm.currentYear))]),
7539
+ _c("i", {
7540
+ staticClass: "mdsicon mdsicon-line-caret-right-double",
7541
+ class: [
7542
+ _vm.prefixCls + "-picker-panel-header-base-icon",
7543
+ _vm.prefixCls + "-next-year",
7544
+ _vm.prefixCls + "-other-icon",
7545
+ _vm.prefixCls + "-picker-panel-header-base-right",
7546
+ ],
7547
+ attrs: { "aria-label": _vm.t("mds.datepicker.nextYear") },
7548
+ on: { click: _vm.nextYear },
7549
+ }),
7550
+ ]),
7551
+ _c(
7552
+ "div",
7553
+ { staticClass: "mds-quarter-panel__body" },
7554
+ _vm._l(_vm.quarters, function (quarter) {
7555
+ return _c(
7556
+ "div",
7557
+ {
7558
+ key: quarter.value,
7559
+ class: [
7560
+ "mds-quarter-panel__quarter",
7561
+ {
7562
+ "is-selected": _vm.isSelected(quarter),
7563
+ today: _vm.isTodayQuarter(quarter), // 只判断是否今天
7564
+ },
7565
+ ],
7566
+ on: {
7567
+ click: function ($event) {
7568
+ return _vm.selectQuarter(quarter)
7569
+ },
7570
+ },
7571
+ },
7572
+ [_vm._v("\n " + _vm._s(quarter.label) + "\n ")]
7573
+ )
7574
+ }),
7575
+ 0
7576
+ ),
7577
+ ]
7578
+ )
7579
+ }
7580
+ var quartervue_type_template_id_76a5899a_staticRenderFns = []
7581
+ quartervue_type_template_id_76a5899a_render._withStripped = true
7582
+
7583
+
7584
+ // CONCATENATED MODULE: ./components/datepicker/picker/quarter.vue?vue&type=template&id=76a5899a&
7585
+
7586
+ // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/picker/quarter.vue?vue&type=script&lang=js&
7587
+ //
7588
+ //
7589
+ //
7590
+ //
7591
+ //
7592
+ //
7593
+ //
7594
+ //
7595
+ //
7596
+ //
7597
+ //
7598
+ //
7599
+ //
7600
+ //
7601
+ //
7602
+ //
7603
+ //
7604
+ //
7605
+ //
7606
+ //
7607
+ //
7608
+ //
7609
+ //
7610
+ //
7611
+ //
7612
+ //
7613
+ //
7614
+ //
7615
+ //
7616
+ //
7617
+ //
7618
+ //
7619
+ //
7620
+ //
7621
+ //
7622
+ //
7623
+ //
7624
+ //
7625
+ //
7626
+ //
7627
+ //
7628
+ //
7629
+ //
7630
+ //
7631
+ //
7632
+ //
7633
+ //
7634
+ //
7635
+ //
7636
+ //
7637
+ //
7638
+
7639
+
7640
+
7641
+
7642
+ /* harmony default export */ var quartervue_type_script_lang_js_ = ({
7643
+ mixins: [locale_default.a, vue_popper["a" /* default */]],
7644
+ name: 'QuarterPanel',
7645
+ props: {
7646
+ prefixCls: {
7647
+ type: String,
7648
+ default: 'mds-date'
7649
+ },
7650
+ value: {
7651
+ type: [Date, String],
7652
+ default: null
7653
+ },
7654
+ date: {
7655
+ type: Date,
7656
+ default: function _default() {
7657
+ return new Date();
7658
+ }
7659
+ },
7660
+ pickerType: {
7661
+ type: String,
7662
+ default: 'quarter'
7663
+ },
7664
+ popperClass: {
7665
+ type: String,
7666
+ default: ''
7667
+ },
7668
+ referenceElm: {
7669
+ type: null,
7670
+ default: null
7671
+ },
7672
+ appendToBody: {
7673
+ type: Boolean,
7674
+ default: true
7675
+ },
7676
+ placement: {
7677
+ type: String,
7678
+ default: 'bottom-start'
7679
+ }
7680
+ },
7681
+ data: function data() {
7682
+ return {
7683
+ currentYear: new Date().getFullYear(),
7684
+ visible: true // 控制面板显示
7685
+ };
7686
+ },
7687
+
7688
+ computed: {
7689
+ quarters: function quarters() {
7690
+ return [{ label: 'Q1', value: 1, startMonth: 0, endMonth: 2 }, { label: 'Q2', value: 2, startMonth: 3, endMonth: 5 }, { label: 'Q3', value: 3, startMonth: 6, endMonth: 8 }, { label: 'Q4', value: 4, startMonth: 9, endMonth: 11 }];
7691
+ },
7692
+ hasSelected: function hasSelected() {
7693
+ return this.value && this.value instanceof Date && !isNaN(this.value);
7694
+ }
7695
+ },
7696
+ watch: {
7697
+ date: {
7698
+ immediate: true,
7699
+ handler: function handler(newDate) {
7700
+ if (newDate instanceof Date && !isNaN(newDate)) {
7701
+ this.currentYear = newDate.getFullYear();
7702
+ }
7703
+ }
7704
+ },
7705
+ value: {
7706
+ immediate: true,
7707
+ handler: function handler(newValue) {
7708
+ if (newValue instanceof Date && !isNaN(newValue)) {
7709
+ this.currentYear = newValue.getFullYear();
7710
+ }
7711
+ }
7712
+ }
7713
+ },
7714
+ mounted: function mounted() {
7715
+ var _this = this;
7716
+
7717
+ if (this.appendToBody && this.$el.parentNode !== document.body) {
7718
+ document.body.appendChild(this.$el);
7719
+ }
7720
+ // 关键:必须在 append 到 body 后再 updatePopper
7721
+ this.$nextTick(function () {
7722
+ if (_this.referenceElm) {
7723
+ _this.updatePopper();
7724
+ }
7725
+ });
7726
+ },
7727
+ beforeDestroy: function beforeDestroy() {
7728
+ if (this.appendToBody && this.$el && this.$el.parentNode === document.body) {
7729
+ document.body.removeChild(this.$el);
7730
+ }
7731
+ },
7732
+
7733
+ methods: {
7734
+ prevYear: function prevYear() {
7735
+ this.currentYear--;
7736
+ // this.$emit('pick', new Date(this.currentYear, 0, 1))
7737
+ },
7738
+ nextYear: function nextYear() {
7739
+ this.currentYear++;
7740
+ // this.$emit('pick', new Date(this.currentYear, 0, 1))
7741
+ },
7742
+ selectQuarter: function selectQuarter(quarter) {
7743
+ var selectedDate = new Date(this.currentYear, quarter.startMonth, 1);
7744
+ this.$emit('pick', selectedDate, false); // 关键:false自动收起
7745
+ },
7746
+ isSelected: function isSelected(quarter) {
7747
+ if (this.hasSelected) {
7748
+ var selectedYear = this.value.getFullYear();
7749
+ var selectedMonth = this.value.getMonth();
7750
+ return selectedYear === this.currentYear && selectedMonth >= quarter.startMonth && selectedMonth <= quarter.endMonth;
7751
+ }
7752
+ return false;
7753
+ },
7754
+ isTodayQuarter: function isTodayQuarter(quarter) {
7755
+ var today = new Date();
7756
+ var year = today.getFullYear();
7757
+ var month = today.getMonth();
7758
+ return year === this.currentYear && month >= quarter.startMonth && month <= quarter.endMonth;
7759
+ }
7760
+ }
7761
+ });
7762
+ // CONCATENATED MODULE: ./components/datepicker/picker/quarter.vue?vue&type=script&lang=js&
7763
+ /* harmony default export */ var picker_quartervue_type_script_lang_js_ = (quartervue_type_script_lang_js_);
7764
+ // CONCATENATED MODULE: ./components/datepicker/picker/quarter.vue
7765
+
7766
+
7767
+
7768
+
7769
+
7770
+ /* normalize component */
7771
+
7772
+ var quarter_component = Object(componentNormalizer["a" /* default */])(
7773
+ picker_quartervue_type_script_lang_js_,
7774
+ quartervue_type_template_id_76a5899a_render,
7775
+ quartervue_type_template_id_76a5899a_staticRenderFns,
7776
+ false,
7777
+ null,
7778
+ null,
7779
+ null
7780
+
7781
+ )
7782
+
7783
+ /* hot reload */
7784
+ if (false) { var quarter_api; }
7785
+ quarter_component.options.__file = "components/datepicker/picker/quarter.vue"
7786
+ /* harmony default export */ var quarter = (quarter_component.exports);
7991
7787
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/picker/date.vue?vue&type=script&lang=js&
7992
7788
 
7993
7789
  //
@@ -8141,6 +7937,22 @@ date_table_component.options.__file = "components/datepicker/base/date-table.vue
8141
7937
  //
8142
7938
  //
8143
7939
  //
7940
+ //
7941
+ //
7942
+ //
7943
+ //
7944
+ //
7945
+ //
7946
+ //
7947
+ //
7948
+ //
7949
+ //
7950
+ //
7951
+ //
7952
+ //
7953
+ //
7954
+ //
7955
+
8144
7956
 
8145
7957
 
8146
7958
 
@@ -8158,6 +7970,10 @@ date_table_component.options.__file = "components/datepicker/base/date-table.vue
8158
7970
  prefixCls: {
8159
7971
  type: String,
8160
7972
  default: 'mds-date'
7973
+ },
7974
+ pickerType: {
7975
+ type: String,
7976
+ default: 'date'
8161
7977
  }
8162
7978
  },
8163
7979
  watch: {
@@ -8469,11 +8285,18 @@ date_table_component.options.__file = "components/datepicker/base/date-table.vue
8469
8285
  },
8470
8286
  checkDateWithinRange: function checkDateWithinRange(date) {
8471
8287
  return this.selectableRange.length > 0 ? Object(dateUtil_["timeWithinRange"])(date, this.selectableRange, this.format || 'HH:mm:ss') : true;
8288
+ },
8289
+ handleQuarterPick: function handleQuarterPick(date) {
8290
+ this.date = date;
8291
+ this.emit(date, false);
8292
+ },
8293
+ showQuarterPicker: function showQuarterPicker() {
8294
+ this.currentView = 'quarter';
8472
8295
  }
8473
8296
  },
8474
8297
 
8475
8298
  components: {
8476
- TimePicker: picker_time, YearTable: year_table, MonthTable: month_table, DateTable: date_table, MdsButton: external_button_default.a
8299
+ TimePicker: picker_time, YearTable: year_table, MonthTable: month_table, DateTable: date_table, MdsButton: external_button_default.a, QuarterPanel: quarter
8477
8300
  },
8478
8301
 
8479
8302
  data: function data() {
@@ -9067,7 +8890,7 @@ date_rangevue_type_template_id_6eca7cf8_render._withStripped = true
9067
8890
  // CONCATENATED MODULE: ./components/datepicker/range/date-range.vue?vue&type=template&id=6eca7cf8&
9068
8891
 
9069
8892
  // EXTERNAL MODULE: external "babel-runtime/helpers/slicedToArray"
9070
- var slicedToArray_ = __webpack_require__(58);
8893
+ var slicedToArray_ = __webpack_require__(57);
9071
8894
  var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray_);
9072
8895
 
9073
8896
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/picker/datetime-select.vue?vue&type=template&id=5b910c15&
@@ -10844,192 +10667,6 @@ var month_range_component = Object(componentNormalizer["a" /* default */])(
10844
10667
  if (false) { var month_range_api; }
10845
10668
  month_range_component.options.__file = "components/datepicker/range/month-range.vue"
10846
10669
  /* harmony default export */ var month_range = (month_range_component.exports);
10847
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/picker/quarter.vue?vue&type=template&id=76a5899a&scoped=true&
10848
- var quartervue_type_template_id_76a5899a_scoped_true_render = function () {
10849
- var _vm = this
10850
- var _h = _vm.$createElement
10851
- var _c = _vm._self._c || _h
10852
- return _c("div", { staticClass: "mds-quarter-panel" }, [
10853
- _c("div", { staticClass: "mds-quarter-panel__header" }, [
10854
- _c("button", { on: { click: _vm.prevYear } }, [_vm._v("<< 上一年")]),
10855
- _c("span", [_vm._v(_vm._s(_vm.currentYear))]),
10856
- _c("button", { on: { click: _vm.nextYear } }, [_vm._v("下一年 >>")]),
10857
- ]),
10858
- _c(
10859
- "div",
10860
- { staticClass: "mds-quarter-panel__body" },
10861
- _vm._l(_vm.quarters, function (quarter) {
10862
- return _c(
10863
- "div",
10864
- {
10865
- key: quarter.value,
10866
- class: [
10867
- "mds-quarter-panel__quarter",
10868
- { "is-selected": _vm.isSelected(quarter) },
10869
- ],
10870
- on: {
10871
- click: function ($event) {
10872
- return _vm.selectQuarter(quarter)
10873
- },
10874
- },
10875
- },
10876
- [_vm._v("\n " + _vm._s(quarter.label) + "\n ")]
10877
- )
10878
- }),
10879
- 0
10880
- ),
10881
- ])
10882
- }
10883
- var quartervue_type_template_id_76a5899a_scoped_true_staticRenderFns = []
10884
- quartervue_type_template_id_76a5899a_scoped_true_render._withStripped = true
10885
-
10886
-
10887
- // CONCATENATED MODULE: ./components/datepicker/picker/quarter.vue?vue&type=template&id=76a5899a&scoped=true&
10888
-
10889
- // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/picker/quarter.vue?vue&type=script&lang=js&
10890
- //
10891
- //
10892
- //
10893
- //
10894
- //
10895
- //
10896
- //
10897
- //
10898
- //
10899
- //
10900
- //
10901
- //
10902
- //
10903
- //
10904
- //
10905
- //
10906
- //
10907
- //
10908
- //
10909
- //
10910
-
10911
- // 假设 MdsDatePicker 的 Picker Mixin 会传入 'value' 和 'date' prop,并期望通过 'pick' 事件返回 Date 对象
10912
- // 请根据实际 mds-ui 内部使用的日期库进行调整 (如 Moment.js, Day.js 等)
10913
- // 此处示例使用原生 Date 对象
10914
-
10915
- /* harmony default export */ var quartervue_type_script_lang_js_ = ({
10916
- name: 'QuarterPanel',
10917
- props: {
10918
- // v-model 绑定的值,可能是一个 Date 对象 (代表季度第一天) 或 'YYYY-QQ' 字符串
10919
- value: {
10920
- type: [Date, String],
10921
- default: null
10922
- },
10923
- // Picker Mixin 传入的当前显示日期,用于初始化面板的年份
10924
- date: {
10925
- type: Date,
10926
- default: function _default() {
10927
- return new Date();
10928
- }
10929
- }
10930
- },
10931
- data: function data() {
10932
- return {
10933
- currentYear: new Date().getFullYear() // 当前面板显示的年份
10934
- };
10935
- },
10936
-
10937
- computed: {
10938
- quarters: function quarters() {
10939
- // 生成当前年份的四个季度数据
10940
- return [{ label: 'Q1', value: 1, startMonth: 0, endMonth: 2 }, // Jan-Mar
10941
- { label: 'Q2', value: 2, startMonth: 3, endMonth: 5 }, // Apr-Jun
10942
- { label: 'Q3', value: 3, startMonth: 6, endMonth: 8 }, // Jul-Sep
10943
- { label: 'Q4', value: 4, startMonth: 9, endMonth: 11 // Oct-Dec
10944
- }];
10945
- }
10946
- },
10947
- watch: {
10948
- // 监听传入的 date prop,更新面板显示的年份
10949
- date: {
10950
- immediate: true,
10951
- handler: function handler(newDate) {
10952
- if (newDate instanceof Date && !isNaN(newDate)) {
10953
- this.currentYear = newDate.getFullYear();
10954
- }
10955
- }
10956
- },
10957
- // 监听传入的 value prop,更新选中状态
10958
- value: {
10959
- immediate: true,
10960
- handler: function handler(newValue) {
10961
- // 当 value 变化时,确保 currentYear 与选中值匹配,以便面板正确显示选中状态
10962
- if (newValue instanceof Date && !isNaN(newValue)) {
10963
- this.currentYear = newValue.getFullYear();
10964
- }
10965
- }
10966
- }
10967
- },
10968
- methods: {
10969
- // 切换到上一年
10970
- prevYear: function prevYear() {
10971
- this.currentYear--;
10972
- // 触发 'pick' 事件,通知 Picker Mixin 更新内部日期
10973
- // 传递一个代表新年份开始的 Date 对象
10974
- this.$emit('pick', new Date(this.currentYear, 0, 1));
10975
- },
10976
-
10977
- // 切换到下一年
10978
- nextYear: function nextYear() {
10979
- this.currentYear++;
10980
- // 触发 'pick' 事件
10981
- this.$emit('pick', new Date(this.currentYear, 0, 1));
10982
- },
10983
-
10984
- // 选择某个季度
10985
- selectQuarter: function selectQuarter(quarter) {
10986
- // 构造代表选中季度第一天的 Date 对象
10987
- var selectedDate = new Date(this.currentYear, quarter.startMonth, 1);
10988
- // 触发 'pick' 事件,将选中的日期传回 Picker Mixin
10989
- this.$emit('pick', selectedDate);
10990
- },
10991
-
10992
- // 判断季度是否被选中
10993
- isSelected: function isSelected(quarter) {
10994
- if (!this.value || !(this.value instanceof Date) || isNaN(this.value)) {
10995
- return false;
10996
- }
10997
- var selectedYear = this.value.getFullYear();
10998
- var selectedMonth = this.value.getMonth();
10999
-
11000
- return selectedYear === this.currentYear && selectedMonth >= quarter.startMonth && selectedMonth <= quarter.endMonth;
11001
- }
11002
- }
11003
- });
11004
- // CONCATENATED MODULE: ./components/datepicker/picker/quarter.vue?vue&type=script&lang=js&
11005
- /* harmony default export */ var picker_quartervue_type_script_lang_js_ = (quartervue_type_script_lang_js_);
11006
- // EXTERNAL MODULE: ./components/datepicker/picker/quarter.vue?vue&type=style&index=0&id=76a5899a&scoped=true&lang=css&
11007
- var quartervue_type_style_index_0_id_76a5899a_scoped_true_lang_css_ = __webpack_require__(82);
11008
-
11009
- // CONCATENATED MODULE: ./components/datepicker/picker/quarter.vue
11010
-
11011
-
11012
-
11013
-
11014
-
11015
-
11016
- /* normalize component */
11017
-
11018
- var quarter_component = Object(componentNormalizer["a" /* default */])(
11019
- picker_quartervue_type_script_lang_js_,
11020
- quartervue_type_template_id_76a5899a_scoped_true_render,
11021
- quartervue_type_template_id_76a5899a_scoped_true_staticRenderFns,
11022
- false,
11023
- null,
11024
- "76a5899a",
11025
- null
11026
-
11027
- )
11028
-
11029
- /* hot reload */
11030
- if (false) { var quarter_api; }
11031
- quarter_component.options.__file = "components/datepicker/picker/quarter.vue"
11032
- /* harmony default export */ var quarter = (quarter_component.exports);
11033
10670
  // CONCATENATED MODULE: ./components/datepicker/picker/index.js
11034
10671
 
11035
10672
 
@@ -11091,6 +10728,13 @@ datepicker_picker.install = function (Vue) {
11091
10728
  };
11092
10729
  /* harmony default export */ var datepicker = __webpack_exports__["default"] = (datepicker_picker);
11093
10730
 
10731
+ /***/ }),
10732
+
10733
+ /***/ 9:
10734
+ /***/ (function(module, exports) {
10735
+
10736
+ module.exports = __WEBPACK_EXTERNAL_MODULE__9__;
10737
+
11094
10738
  /***/ })
11095
10739
 
11096
10740
  /******/ });