框架源码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

7500 lines
218 KiB

4 years ago
  1. module.exports =
  2. /******/ (function(modules) { // webpackBootstrap
  3. /******/ // The module cache
  4. /******/ var installedModules = {};
  5. /******/
  6. /******/ // The require function
  7. /******/ function __webpack_require__(moduleId) {
  8. /******/
  9. /******/ // Check if module is in cache
  10. /******/ if(installedModules[moduleId]) {
  11. /******/ return installedModules[moduleId].exports;
  12. /******/ }
  13. /******/ // Create a new module (and put it into the cache)
  14. /******/ var module = installedModules[moduleId] = {
  15. /******/ i: moduleId,
  16. /******/ l: false,
  17. /******/ exports: {}
  18. /******/ };
  19. /******/
  20. /******/ // Execute the module function
  21. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  22. /******/
  23. /******/ // Flag the module as loaded
  24. /******/ module.l = true;
  25. /******/
  26. /******/ // Return the exports of the module
  27. /******/ return module.exports;
  28. /******/ }
  29. /******/
  30. /******/
  31. /******/ // expose the modules object (__webpack_modules__)
  32. /******/ __webpack_require__.m = modules;
  33. /******/
  34. /******/ // expose the module cache
  35. /******/ __webpack_require__.c = installedModules;
  36. /******/
  37. /******/ // define getter function for harmony exports
  38. /******/ __webpack_require__.d = function(exports, name, getter) {
  39. /******/ if(!__webpack_require__.o(exports, name)) {
  40. /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
  41. /******/ }
  42. /******/ };
  43. /******/
  44. /******/ // define __esModule on exports
  45. /******/ __webpack_require__.r = function(exports) {
  46. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  47. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  48. /******/ }
  49. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  50. /******/ };
  51. /******/
  52. /******/ // create a fake namespace object
  53. /******/ // mode & 1: value is a module id, require it
  54. /******/ // mode & 2: merge all properties of value into the ns
  55. /******/ // mode & 4: return value when already ns object
  56. /******/ // mode & 8|1: behave like require
  57. /******/ __webpack_require__.t = function(value, mode) {
  58. /******/ if(mode & 1) value = __webpack_require__(value);
  59. /******/ if(mode & 8) return value;
  60. /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  61. /******/ var ns = Object.create(null);
  62. /******/ __webpack_require__.r(ns);
  63. /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  64. /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  65. /******/ return ns;
  66. /******/ };
  67. /******/
  68. /******/ // getDefaultExport function for compatibility with non-harmony modules
  69. /******/ __webpack_require__.n = function(module) {
  70. /******/ var getter = module && module.__esModule ?
  71. /******/ function getDefault() { return module['default']; } :
  72. /******/ function getModuleExports() { return module; };
  73. /******/ __webpack_require__.d(getter, 'a', getter);
  74. /******/ return getter;
  75. /******/ };
  76. /******/
  77. /******/ // Object.prototype.hasOwnProperty.call
  78. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  79. /******/
  80. /******/ // __webpack_public_path__
  81. /******/ __webpack_require__.p = "/dist/";
  82. /******/
  83. /******/
  84. /******/ // Load entry module and return exports
  85. /******/ return __webpack_require__(__webpack_require__.s = 516);
  86. /******/ })
  87. /************************************************************************/
  88. /******/ ({
  89. /***/ 10:
  90. /***/ (function(module, exports) {
  91. module.exports = require("tis-ui/lib/utils/util");
  92. /***/ }),
  93. /***/ 111:
  94. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  95. "use strict";
  96. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/time.vue?vue&type=template&id=3d939089&
  97. var render = function() {
  98. var _vm = this
  99. var _h = _vm.$createElement
  100. var _c = _vm._self._c || _h
  101. return _c(
  102. "transition",
  103. {
  104. attrs: { name: "el-zoom-in-top" },
  105. on: {
  106. "after-leave": function($event) {
  107. _vm.$emit("dodestroy")
  108. }
  109. }
  110. },
  111. [
  112. _c(
  113. "div",
  114. {
  115. directives: [
  116. {
  117. name: "show",
  118. rawName: "v-show",
  119. value: _vm.visible,
  120. expression: "visible"
  121. }
  122. ],
  123. staticClass: "el-time-panel el-popper",
  124. class: _vm.popperClass
  125. },
  126. [
  127. _c(
  128. "div",
  129. {
  130. staticClass: "el-time-panel__content",
  131. class: { "has-seconds": _vm.showSeconds }
  132. },
  133. [
  134. _c("time-spinner", {
  135. ref: "spinner",
  136. attrs: {
  137. "arrow-control": _vm.useArrow,
  138. "show-seconds": _vm.showSeconds,
  139. "am-pm-mode": _vm.amPmMode,
  140. date: _vm.date
  141. },
  142. on: {
  143. change: _vm.handleChange,
  144. "select-range": _vm.setSelectionRange
  145. }
  146. })
  147. ],
  148. 1
  149. ),
  150. _c("div", { staticClass: "el-time-panel__footer" }, [
  151. _c(
  152. "button",
  153. {
  154. staticClass: "el-time-panel__btn cancel",
  155. attrs: { type: "button" },
  156. on: { click: _vm.handleCancel }
  157. },
  158. [_vm._v(_vm._s(_vm.t("el.datepicker.cancel")))]
  159. ),
  160. _c(
  161. "button",
  162. {
  163. staticClass: "el-time-panel__btn",
  164. class: { confirm: !_vm.disabled },
  165. attrs: { type: "button" },
  166. on: {
  167. click: function($event) {
  168. _vm.handleConfirm()
  169. }
  170. }
  171. },
  172. [_vm._v(_vm._s(_vm.t("el.datepicker.confirm")))]
  173. )
  174. ])
  175. ]
  176. )
  177. ]
  178. )
  179. }
  180. var staticRenderFns = []
  181. render._withStripped = true
  182. // CONCATENATED MODULE: ./packages/date-picker/src/panel/time.vue?vue&type=template&id=3d939089&
  183. // EXTERNAL MODULE: external "tis-ui/lib/utils/date-util"
  184. var date_util_ = __webpack_require__(8);
  185. // EXTERNAL MODULE: external "tis-ui/lib/mixins/locale"
  186. var locale_ = __webpack_require__(38);
  187. var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);
  188. // EXTERNAL MODULE: ./packages/date-picker/src/basic/time-spinner.vue + 4 modules
  189. var time_spinner = __webpack_require__(122);
  190. // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/time.vue?vue&type=script&lang=js&
  191. //
  192. //
  193. //
  194. //
  195. //
  196. //
  197. //
  198. //
  199. //
  200. //
  201. //
  202. //
  203. //
  204. //
  205. //
  206. //
  207. //
  208. //
  209. //
  210. //
  211. //
  212. //
  213. //
  214. //
  215. //
  216. //
  217. //
  218. //
  219. //
  220. //
  221. //
  222. //
  223. /* harmony default export */ var timevue_type_script_lang_js_ = ({
  224. mixins: [locale_default.a],
  225. components: {
  226. TimeSpinner: time_spinner["a" /* default */]
  227. },
  228. props: {
  229. visible: Boolean,
  230. timeArrowControl: Boolean
  231. },
  232. watch: {
  233. visible: function visible(val) {
  234. var _this = this;
  235. if (val) {
  236. this.oldValue = this.value;
  237. this.$nextTick(function () {
  238. return _this.$refs.spinner.emitSelectRange('hours');
  239. });
  240. } else {
  241. this.needInitAdjust = true;
  242. }
  243. },
  244. value: function value(newVal) {
  245. var _this2 = this;
  246. var date = void 0;
  247. if (newVal instanceof Date) {
  248. date = Object(date_util_["limitTimeRange"])(newVal, this.selectableRange, this.format);
  249. } else if (!newVal) {
  250. date = this.defaultValue ? new Date(this.defaultValue) : new Date();
  251. }
  252. this.date = date;
  253. if (this.visible && this.needInitAdjust) {
  254. this.$nextTick(function (_) {
  255. return _this2.adjustSpinners();
  256. });
  257. this.needInitAdjust = false;
  258. }
  259. },
  260. selectableRange: function selectableRange(val) {
  261. this.$refs.spinner.selectableRange = val;
  262. },
  263. defaultValue: function defaultValue(val) {
  264. if (!Object(date_util_["isDate"])(this.value)) {
  265. this.date = val ? new Date(val) : new Date();
  266. }
  267. }
  268. },
  269. data: function data() {
  270. return {
  271. popperClass: '',
  272. format: 'HH:mm:ss',
  273. value: '',
  274. defaultValue: null,
  275. date: new Date(),
  276. oldValue: new Date(),
  277. selectableRange: [],
  278. selectionRange: [0, 2],
  279. disabled: false,
  280. arrowControl: false,
  281. needInitAdjust: true
  282. };
  283. },
  284. computed: {
  285. showSeconds: function showSeconds() {
  286. return (this.format || '').indexOf('ss') !== -1;
  287. },
  288. useArrow: function useArrow() {
  289. return this.arrowControl || this.timeArrowControl || false;
  290. },
  291. amPmMode: function amPmMode() {
  292. if ((this.format || '').indexOf('A') !== -1) return 'A';
  293. if ((this.format || '').indexOf('a') !== -1) return 'a';
  294. return '';
  295. }
  296. },
  297. methods: {
  298. handleCancel: function handleCancel() {
  299. this.$emit('pick', this.oldValue, false);
  300. },
  301. handleChange: function handleChange(date) {
  302. // this.visible avoids edge cases, when use scrolls during panel closing animation
  303. if (this.visible) {
  304. this.date = Object(date_util_["clearMilliseconds"])(date);
  305. // if date is out of range, do not emit
  306. if (this.isValidValue(this.date)) {
  307. this.$emit('pick', this.date, true);
  308. }
  309. }
  310. },
  311. setSelectionRange: function setSelectionRange(start, end) {
  312. this.$emit('select-range', start, end);
  313. this.selectionRange = [start, end];
  314. },
  315. handleConfirm: function handleConfirm() {
  316. var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  317. var first = arguments[1];
  318. if (first) return;
  319. var date = Object(date_util_["clearMilliseconds"])(Object(date_util_["limitTimeRange"])(this.date, this.selectableRange, this.format));
  320. this.$emit('pick', date, visible, first);
  321. },
  322. handleKeydown: function handleKeydown(event) {
  323. var keyCode = event.keyCode;
  324. var mapping = { 38: -1, 40: 1, 37: -1, 39: 1 };
  325. // Left or Right
  326. if (keyCode === 37 || keyCode === 39) {
  327. var step = mapping[keyCode];
  328. this.changeSelectionRange(step);
  329. event.preventDefault();
  330. return;
  331. }
  332. // Up or Down
  333. if (keyCode === 38 || keyCode === 40) {
  334. var _step = mapping[keyCode];
  335. this.$refs.spinner.scrollDown(_step);
  336. event.preventDefault();
  337. return;
  338. }
  339. },
  340. isValidValue: function isValidValue(date) {
  341. return Object(date_util_["timeWithinRange"])(date, this.selectableRange, this.format);
  342. },
  343. adjustSpinners: function adjustSpinners() {
  344. return this.$refs.spinner.adjustSpinners();
  345. },
  346. changeSelectionRange: function changeSelectionRange(step) {
  347. var list = [0, 3].concat(this.showSeconds ? [6] : []);
  348. var mapping = ['hours', 'minutes'].concat(this.showSeconds ? ['seconds'] : []);
  349. var index = list.indexOf(this.selectionRange[0]);
  350. var next = (index + step + list.length) % list.length;
  351. this.$refs.spinner.emitSelectRange(mapping[next]);
  352. }
  353. },
  354. mounted: function mounted() {
  355. var _this3 = this;
  356. this.$nextTick(function () {
  357. return _this3.handleConfirm(true, true);
  358. });
  359. this.$emit('mounted');
  360. }
  361. });
  362. // CONCATENATED MODULE: ./packages/date-picker/src/panel/time.vue?vue&type=script&lang=js&
  363. /* harmony default export */ var panel_timevue_type_script_lang_js_ = (timevue_type_script_lang_js_);
  364. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  365. var componentNormalizer = __webpack_require__(2);
  366. // CONCATENATED MODULE: ./packages/date-picker/src/panel/time.vue
  367. /* normalize component */
  368. var component = Object(componentNormalizer["a" /* default */])(
  369. panel_timevue_type_script_lang_js_,
  370. render,
  371. staticRenderFns,
  372. false,
  373. null,
  374. null,
  375. null
  376. )
  377. /* hot reload */
  378. if (false) { var api; }
  379. component.options.__file = "packages/date-picker/src/panel/time.vue"
  380. /* harmony default export */ var time = __webpack_exports__["a"] = (component.exports);
  381. /***/ }),
  382. /***/ 113:
  383. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  384. "use strict";
  385. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/picker.vue?vue&type=template&id=79ae069f&
  386. var render = function() {
  387. var _vm = this
  388. var _h = _vm.$createElement
  389. var _c = _vm._self._c || _h
  390. return !_vm.ranged
  391. ? _c(
  392. "tis-input",
  393. _vm._b(
  394. {
  395. directives: [
  396. {
  397. name: "clickoutside",
  398. rawName: "v-clickoutside",
  399. value: _vm.handleClose,
  400. expression: "handleClose"
  401. }
  402. ],
  403. ref: "reference",
  404. staticClass: "el-date-editor",
  405. class: "el-date-editor--" + _vm.type,
  406. attrs: {
  407. readonly:
  408. !_vm.editable ||
  409. _vm.readonly ||
  410. _vm.type === "dates" ||
  411. _vm.type === "week",
  412. disabled: _vm.pickerDisabled,
  413. size: _vm.pickerSize,
  414. name: _vm.name,
  415. placeholder: _vm.placeholder,
  416. value: _vm.displayValue,
  417. validateEvent: false
  418. },
  419. on: {
  420. focus: _vm.handleFocus,
  421. input: function(value) {
  422. return (_vm.userInput = value)
  423. },
  424. change: _vm.handleChange
  425. },
  426. nativeOn: {
  427. keydown: function($event) {
  428. return _vm.handleKeydown($event)
  429. },
  430. mouseenter: function($event) {
  431. return _vm.handleMouseEnter($event)
  432. },
  433. mouseleave: function($event) {
  434. _vm.showClose = false
  435. }
  436. }
  437. },
  438. "tis-input",
  439. _vm.firstInputId,
  440. false
  441. ),
  442. [
  443. _c("i", {
  444. staticClass: "el-input__icon",
  445. class: _vm.triggerClass,
  446. attrs: { slot: "prefix" },
  447. on: { click: _vm.handleFocus },
  448. slot: "prefix"
  449. }),
  450. _vm.haveTrigger
  451. ? _c("i", {
  452. staticClass: "el-input__icon",
  453. class: [_vm.showClose ? "" + _vm.clearIcon : ""],
  454. attrs: { slot: "suffix" },
  455. on: { click: _vm.handleClickIcon },
  456. slot: "suffix"
  457. })
  458. : _vm._e()
  459. ]
  460. )
  461. : _c(
  462. "div",
  463. {
  464. directives: [
  465. {
  466. name: "clickoutside",
  467. rawName: "v-clickoutside",
  468. value: _vm.handleClose,
  469. expression: "handleClose"
  470. }
  471. ],
  472. ref: "reference",
  473. staticClass: "el-date-editor el-range-editor el-input__inner",
  474. class: [
  475. "el-date-editor--" + _vm.type,
  476. _vm.pickerSize ? "el-range-editor--" + _vm.pickerSize : "",
  477. _vm.pickerDisabled ? "is-disabled" : "",
  478. _vm.pickerVisible ? "is-active" : ""
  479. ],
  480. on: {
  481. click: _vm.handleRangeClick,
  482. mouseenter: _vm.handleMouseEnter,
  483. mouseleave: function($event) {
  484. _vm.showClose = false
  485. },
  486. keydown: _vm.handleKeydown
  487. }
  488. },
  489. [
  490. _c("i", {
  491. class: ["el-input__icon", "el-range__icon", _vm.triggerClass]
  492. }),
  493. _c(
  494. "input",
  495. _vm._b(
  496. {
  497. staticClass: "el-range-input",
  498. attrs: {
  499. autocomplete: "off",
  500. placeholder: _vm.startPlaceholder,
  501. disabled: _vm.pickerDisabled,
  502. readonly: !_vm.editable || _vm.readonly,
  503. name: _vm.name && _vm.name[0]
  504. },
  505. domProps: { value: _vm.displayValue && _vm.displayValue[0] },
  506. on: {
  507. input: _vm.handleStartInput,
  508. change: _vm.handleStartChange,
  509. focus: _vm.handleFocus
  510. }
  511. },
  512. "input",
  513. _vm.firstInputId,
  514. false
  515. )
  516. ),
  517. _vm._t("range-separator", [
  518. _c("span", { staticClass: "el-range-separator" }, [
  519. _vm._v(_vm._s(_vm.rangeSeparator))
  520. ])
  521. ]),
  522. _c(
  523. "input",
  524. _vm._b(
  525. {
  526. staticClass: "el-range-input",
  527. attrs: {
  528. autocomplete: "off",
  529. placeholder: _vm.endPlaceholder,
  530. disabled: _vm.pickerDisabled,
  531. readonly: !_vm.editable || _vm.readonly,
  532. name: _vm.name && _vm.name[1]
  533. },
  534. domProps: { value: _vm.displayValue && _vm.displayValue[1] },
  535. on: {
  536. input: _vm.handleEndInput,
  537. change: _vm.handleEndChange,
  538. focus: _vm.handleFocus
  539. }
  540. },
  541. "input",
  542. _vm.secondInputId,
  543. false
  544. )
  545. ),
  546. _vm.haveTrigger
  547. ? _c("i", {
  548. staticClass: "el-input__icon el-range__close-icon",
  549. class: [_vm.showClose ? "" + _vm.clearIcon : ""],
  550. on: { click: _vm.handleClickIcon }
  551. })
  552. : _vm._e()
  553. ],
  554. 2
  555. )
  556. }
  557. var staticRenderFns = []
  558. render._withStripped = true
  559. // CONCATENATED MODULE: ./packages/date-picker/src/picker.vue?vue&type=template&id=79ae069f&
  560. // EXTERNAL MODULE: external "vue"
  561. var external_vue_ = __webpack_require__(4);
  562. var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
  563. // EXTERNAL MODULE: external "tis-ui/lib/utils/clickoutside"
  564. var clickoutside_ = __webpack_require__(61);
  565. var clickoutside_default = /*#__PURE__*/__webpack_require__.n(clickoutside_);
  566. // EXTERNAL MODULE: external "tis-ui/lib/utils/date-util"
  567. var date_util_ = __webpack_require__(8);
  568. // EXTERNAL MODULE: external "tis-ui/lib/utils/vue-popper"
  569. var vue_popper_ = __webpack_require__(34);
  570. var vue_popper_default = /*#__PURE__*/__webpack_require__.n(vue_popper_);
  571. // EXTERNAL MODULE: external "tis-ui/lib/mixins/emitter"
  572. var emitter_ = __webpack_require__(13);
  573. var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
  574. // EXTERNAL MODULE: ./packages/input/index.js + 6 modules
  575. var input = __webpack_require__(52);
  576. // EXTERNAL MODULE: external "tis-ui/lib/utils/merge"
  577. var merge_ = __webpack_require__(33);
  578. var merge_default = /*#__PURE__*/__webpack_require__.n(merge_);
  579. // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/picker.vue?vue&type=script&lang=js&
  580. //
  581. //
  582. //
  583. //
  584. //
  585. //
  586. //
  587. //
  588. //
  589. //
  590. //
  591. //
  592. //
  593. //
  594. //
  595. //
  596. //
  597. //
  598. //
  599. //
  600. //
  601. //
  602. //
  603. //
  604. //
  605. //
  606. //
  607. //
  608. //
  609. //
  610. //
  611. //
  612. //
  613. //
  614. //
  615. //
  616. //
  617. //
  618. //
  619. //
  620. //
  621. //
  622. //
  623. //
  624. //
  625. //
  626. //
  627. //
  628. //
  629. //
  630. //
  631. //
  632. //
  633. //
  634. //
  635. //
  636. //
  637. //
  638. //
  639. //
  640. //
  641. //
  642. //
  643. //
  644. //
  645. //
  646. //
  647. //
  648. //
  649. //
  650. //
  651. //
  652. //
  653. //
  654. //
  655. //
  656. //
  657. //
  658. //
  659. //
  660. //
  661. //
  662. //
  663. //
  664. //
  665. var NewPopper = {
  666. props: {
  667. appendToBody: vue_popper_default.a.props.appendToBody,
  668. offset: vue_popper_default.a.props.offset,
  669. boundariesPadding: vue_popper_default.a.props.boundariesPadding,
  670. arrowOffset: vue_popper_default.a.props.arrowOffset
  671. },
  672. methods: vue_popper_default.a.methods,
  673. data: function data() {
  674. return merge_default()({ visibleArrow: true }, vue_popper_default.a.data);
  675. },
  676. beforeDestroy: vue_popper_default.a.beforeDestroy
  677. };
  678. var DEFAULT_FORMATS = {
  679. date: 'yyyy-MM-dd',
  680. month: 'yyyy-MM',
  681. datetime: 'yyyy-MM-dd HH:mm:ss',
  682. time: 'HH:mm:ss',
  683. week: 'yyyywWW',
  684. timerange: 'HH:mm:ss',
  685. daterange: 'yyyy-MM-dd',
  686. monthrange: 'yyyy-MM',
  687. datetimerange: 'yyyy-MM-dd HH:mm:ss',
  688. year: 'yyyy'
  689. };
  690. var HAVE_TRIGGER_TYPES = ['date', 'datetime', 'time', 'time-select', 'week', 'month', 'year', 'daterange', 'monthrange', 'timerange', 'datetimerange', 'dates'];
  691. var pickervue_type_script_lang_js_DATE_FORMATTER = function DATE_FORMATTER(value, format) {
  692. if (format === 'timestamp') return value.getTime();
  693. return Object(date_util_["formatDate"])(value, format);
  694. };
  695. var pickervue_type_script_lang_js_DATE_PARSER = function DATE_PARSER(text, format) {
  696. if (format === 'timestamp') return new Date(Number(text));
  697. return Object(date_util_["parseDate"])(text, format);
  698. };
  699. var RANGE_FORMATTER = function RANGE_FORMATTER(value, format) {
  700. if (Array.isArray(value) && value.length === 2) {
  701. var start = value[0];
  702. var end = value[1];
  703. if (start && end) {
  704. return [pickervue_type_script_lang_js_DATE_FORMATTER(start, format), pickervue_type_script_lang_js_DATE_FORMATTER(end, format)];
  705. }
  706. }
  707. return '';
  708. };
  709. var RANGE_PARSER = function RANGE_PARSER(array, format, separator) {
  710. if (!Array.isArray(array)) {
  711. array = array.split(separator);
  712. }
  713. if (array.length === 2) {
  714. var range1 = array[0];
  715. var range2 = array[1];
  716. return [pickervue_type_script_lang_js_DATE_PARSER(range1, format), pickervue_type_script_lang_js_DATE_PARSER(range2, format)];
  717. }
  718. return [];
  719. };
  720. var TYPE_VALUE_RESOLVER_MAP = {
  721. default: {
  722. formatter: function formatter(value) {
  723. if (!value) return '';
  724. return '' + value;
  725. },
  726. parser: function parser(text) {
  727. if (text === undefined || text === '') return null;
  728. return text;
  729. }
  730. },
  731. week: {
  732. formatter: function formatter(value, format) {
  733. var week = Object(date_util_["getWeekNumber"])(value);
  734. var month = value.getMonth();
  735. var trueDate = new Date(value);
  736. if (week === 1 && month === 11) {
  737. trueDate.setHours(0, 0, 0, 0);
  738. trueDate.setDate(trueDate.getDate() + 3 - (trueDate.getDay() + 6) % 7);
  739. }
  740. var date = Object(date_util_["formatDate"])(trueDate, format);
  741. date = /WW/.test(date) ? date.replace(/WW/, week < 10 ? '0' + week : week) : date.replace(/W/, week);
  742. return date;
  743. },
  744. parser: function parser(text, format) {
  745. // parse as if a normal date
  746. return TYPE_VALUE_RESOLVER_MAP.date.parser(text, format);
  747. }
  748. },
  749. date: {
  750. formatter: pickervue_type_script_lang_js_DATE_FORMATTER,
  751. parser: pickervue_type_script_lang_js_DATE_PARSER
  752. },
  753. datetime: {
  754. formatter: pickervue_type_script_lang_js_DATE_FORMATTER,
  755. parser: pickervue_type_script_lang_js_DATE_PARSER
  756. },
  757. daterange: {
  758. formatter: RANGE_FORMATTER,
  759. parser: RANGE_PARSER
  760. },
  761. monthrange: {
  762. formatter: RANGE_FORMATTER,
  763. parser: RANGE_PARSER
  764. },
  765. datetimerange: {
  766. formatter: RANGE_FORMATTER,
  767. parser: RANGE_PARSER
  768. },
  769. timerange: {
  770. formatter: RANGE_FORMATTER,
  771. parser: RANGE_PARSER
  772. },
  773. time: {
  774. formatter: pickervue_type_script_lang_js_DATE_FORMATTER,
  775. parser: pickervue_type_script_lang_js_DATE_PARSER
  776. },
  777. month: {
  778. formatter: pickervue_type_script_lang_js_DATE_FORMATTER,
  779. parser: pickervue_type_script_lang_js_DATE_PARSER
  780. },
  781. year: {
  782. formatter: pickervue_type_script_lang_js_DATE_FORMATTER,
  783. parser: pickervue_type_script_lang_js_DATE_PARSER
  784. },
  785. number: {
  786. formatter: function formatter(value) {
  787. if (!value) return '';
  788. return '' + value;
  789. },
  790. parser: function parser(text) {
  791. var result = Number(text);
  792. if (!isNaN(text)) {
  793. return result;
  794. } else {
  795. return null;
  796. }
  797. }
  798. },
  799. dates: {
  800. formatter: function formatter(value, format) {
  801. return value.map(function (date) {
  802. return pickervue_type_script_lang_js_DATE_FORMATTER(date, format);
  803. });
  804. },
  805. parser: function parser(value, format) {
  806. return (typeof value === 'string' ? value.split(', ') : value).map(function (date) {
  807. return date instanceof Date ? date : pickervue_type_script_lang_js_DATE_PARSER(date, format);
  808. });
  809. }
  810. }
  811. };
  812. var PLACEMENT_MAP = {
  813. left: 'bottom-start',
  814. center: 'bottom',
  815. right: 'bottom-end'
  816. };
  817. var parseAsFormatAndType = function parseAsFormatAndType(value, customFormat, type) {
  818. var rangeSeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '-';
  819. if (!value) return null;
  820. var parser = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).parser;
  821. var format = customFormat || DEFAULT_FORMATS[type];
  822. return parser(value, format, rangeSeparator);
  823. };
  824. var formatAsFormatAndType = function formatAsFormatAndType(value, customFormat, type) {
  825. if (!value) return null;
  826. var formatter = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).formatter;
  827. var format = customFormat || DEFAULT_FORMATS[type];
  828. return formatter(value, format);
  829. };
  830. /*
  831. * Considers:
  832. * 1. Date object
  833. * 2. date string
  834. * 3. array of 1 or 2
  835. */
  836. var valueEquals = function valueEquals(a, b) {
  837. // considers Date object and string
  838. var dateEquals = function dateEquals(a, b) {
  839. var aIsDate = a instanceof Date;
  840. var bIsDate = b instanceof Date;
  841. if (aIsDate && bIsDate) {
  842. return a.getTime() === b.getTime();
  843. }
  844. if (!aIsDate && !bIsDate) {
  845. return a === b;
  846. }
  847. return false;
  848. };
  849. var aIsArray = a instanceof Array;
  850. var bIsArray = b instanceof Array;
  851. if (aIsArray && bIsArray) {
  852. if (a.length !== b.length) {
  853. return false;
  854. }
  855. return a.every(function (item, index) {
  856. return dateEquals(item, b[index]);
  857. });
  858. }
  859. if (!aIsArray && !bIsArray) {
  860. return dateEquals(a, b);
  861. }
  862. return false;
  863. };
  864. var isString = function isString(val) {
  865. return typeof val === 'string' || val instanceof String;
  866. };
  867. var validator = function validator(val) {
  868. // either: String, Array of String, null / undefined
  869. return val === null || val === undefined || isString(val) || Array.isArray(val) && val.length === 2 && val.every(isString);
  870. };
  871. /* harmony default export */ var pickervue_type_script_lang_js_ = ({
  872. mixins: [emitter_default.a, NewPopper],
  873. inject: {
  874. elForm: {
  875. default: ''
  876. },
  877. elFormItem: {
  878. default: ''
  879. }
  880. },
  881. props: {
  882. size: String,
  883. format: String,
  884. valueFormat: String,
  885. readonly: Boolean,
  886. placeholder: String,
  887. startPlaceholder: String,
  888. endPlaceholder: String,
  889. prefixIcon: String,
  890. clearIcon: {
  891. type: String,
  892. default: 'el-icon-circle-close'
  893. },
  894. name: {
  895. default: '',
  896. validator: validator
  897. },
  898. disabled: Boolean,
  899. clearable: {
  900. type: Boolean,
  901. default: true
  902. },
  903. id: {
  904. default: '',
  905. validator: validator
  906. },
  907. popperClass: String,
  908. editable: {
  909. type: Boolean,
  910. default: true
  911. },
  912. align: {
  913. type: String,
  914. default: 'left'
  915. },
  916. value: {},
  917. defaultValue: {},
  918. defaultTime: {},
  919. rangeSeparator: {
  920. default: '-'
  921. },
  922. pickerOptions: {},
  923. unlinkPanels: Boolean,
  924. validateEvent: {
  925. type: Boolean,
  926. default: true
  927. }
  928. },
  929. components: { ElInput: input["default"] },
  930. directives: { Clickoutside: clickoutside_default.a },
  931. data: function data() {
  932. return {
  933. pickerVisible: false,
  934. showClose: false,
  935. userInput: null,
  936. valueOnOpen: null, // value when picker opens, used to determine whether to emit change
  937. unwatchPickerOptions: null
  938. };
  939. },
  940. watch: {
  941. pickerVisible: function pickerVisible(val) {
  942. if (this.readonly || this.pickerDisabled) return;
  943. if (val) {
  944. this.showPicker();
  945. this.valueOnOpen = Array.isArray(this.value) ? [].concat(this.value) : this.value;
  946. } else {
  947. this.hidePicker();
  948. this.emitChange(this.value);
  949. this.userInput = null;
  950. if (this.validateEvent) {
  951. this.dispatch('ElFormItem', 'el.form.blur');
  952. }
  953. this.$emit('blur', this);
  954. this.blur();
  955. }
  956. },
  957. parsedValue: {
  958. immediate: true,
  959. handler: function handler(val) {
  960. if (this.picker) {
  961. this.picker.value = val;
  962. }
  963. }
  964. },
  965. defaultValue: function defaultValue(val) {
  966. // NOTE: should eventually move to jsx style picker + panel ?
  967. if (this.picker) {
  968. this.picker.defaultValue = val;
  969. }
  970. },
  971. value: function value(val, oldVal) {
  972. if (!valueEquals(val, oldVal) && !this.pickerVisible && this.validateEvent) {
  973. this.dispatch('ElFormItem', 'el.form.change', val);
  974. }
  975. }
  976. },
  977. computed: {
  978. ranged: function ranged() {
  979. return this.type.indexOf('range') > -1;
  980. },
  981. reference: function reference() {
  982. var reference = this.$refs.reference;
  983. return reference.$el || reference;
  984. },
  985. refInput: function refInput() {
  986. if (this.reference) {
  987. return [].slice.call(this.reference.querySelectorAll('input'));
  988. }
  989. return [];
  990. },
  991. valueIsEmpty: function valueIsEmpty() {
  992. var val = this.value;
  993. if (Array.isArray(val)) {
  994. for (var i = 0, len = val.length; i < len; i++) {
  995. if (val[i]) {
  996. return false;
  997. }
  998. }
  999. } else {
  1000. if (val) {
  1001. return false;
  1002. }
  1003. }
  1004. return true;
  1005. },
  1006. triggerClass: function triggerClass() {
  1007. return this.prefixIcon || (this.type.indexOf('time') !== -1 ? 'el-icon-time' : 'el-icon-date');
  1008. },
  1009. selectionMode: function selectionMode() {
  1010. if (this.type === 'week') {
  1011. return 'week';
  1012. } else if (this.type === 'month') {
  1013. return 'month';
  1014. } else if (this.type === 'year') {
  1015. return 'year';
  1016. } else if (this.type === 'dates') {
  1017. return 'dates';
  1018. }
  1019. return 'day';
  1020. },
  1021. haveTrigger: function haveTrigger() {
  1022. if (typeof this.showTrigger !== 'undefined') {
  1023. return this.showTrigger;
  1024. }
  1025. return HAVE_TRIGGER_TYPES.indexOf(this.type) !== -1;
  1026. },
  1027. displayValue: function displayValue() {
  1028. var formattedValue = formatAsFormatAndType(this.parsedValue, this.format, this.type, this.rangeSeparator);
  1029. if (Array.isArray(this.userInput)) {
  1030. return [this.userInput[0] || formattedValue && formattedValue[0] || '', this.userInput[1] || formattedValue && formattedValue[1] || ''];
  1031. } else if (this.userInput !== null) {
  1032. return this.userInput;
  1033. } else if (formattedValue) {
  1034. return this.type === 'dates' ? formattedValue.join(', ') : formattedValue;
  1035. } else {
  1036. return '';
  1037. }
  1038. },
  1039. parsedValue: function parsedValue() {
  1040. if (!this.value) return this.value; // component value is not set
  1041. if (this.type === 'time-select') return this.value; // time-select does not require parsing, this might change in next major version
  1042. var valueIsDateObject = Object(date_util_["isDateObject"])(this.value) || Array.isArray(this.value) && this.value.every(date_util_["isDateObject"]);
  1043. if (valueIsDateObject) {
  1044. return this.value;
  1045. }
  1046. if (this.valueFormat) {
  1047. return parseAsFormatAndType(this.value, this.valueFormat, this.type, this.rangeSeparator) || this.value;
  1048. }
  1049. // NOTE: deal with common but incorrect usage, should remove in next major version
  1050. // user might provide string / timestamp without value-format, coerce them into date (or array of date)
  1051. return Array.isArray(this.value) ? this.value.map(function (val) {
  1052. return new Date(val);
  1053. }) : new Date(this.value);
  1054. },
  1055. _elFormItemSize: function _elFormItemSize() {
  1056. return (this.elFormItem || {}).elFormItemSize;
  1057. },
  1058. pickerSize: function pickerSize() {
  1059. return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
  1060. },
  1061. pickerDisabled: function pickerDisabled() {
  1062. return this.disabled || (this.elForm || {}).disabled;
  1063. },
  1064. firstInputId: function firstInputId() {
  1065. var obj = {};
  1066. var id = void 0;
  1067. if (this.ranged) {
  1068. id = this.id && this.id[0];
  1069. } else {
  1070. id = this.id;
  1071. }
  1072. if (id) obj.id = id;
  1073. return obj;
  1074. },
  1075. secondInputId: function secondInputId() {
  1076. var obj = {};
  1077. var id = void 0;
  1078. if (this.ranged) {
  1079. id = this.id && this.id[1];
  1080. }
  1081. if (id) obj.id = id;
  1082. return obj;
  1083. }
  1084. },
  1085. created: function created() {
  1086. // vue-popper
  1087. this.popperOptions = {
  1088. boundariesPadding: 0,
  1089. gpuAcceleration: false
  1090. };
  1091. this.placement = PLACEMENT_MAP[this.align] || PLACEMENT_MAP.left;
  1092. this.$on('fieldReset', this.handleFieldReset);
  1093. },
  1094. methods: {
  1095. focus: function focus() {
  1096. if (!this.ranged) {
  1097. this.$refs.reference.focus();
  1098. } else {
  1099. this.handleFocus();
  1100. }
  1101. },
  1102. blur: function blur() {
  1103. this.refInput.forEach(function (input) {
  1104. return input.blur();
  1105. });
  1106. },
  1107. // {parse, formatTo} Value deals maps component value with internal Date
  1108. parseValue: function parseValue(value) {
  1109. var isParsed = Object(date_util_["isDateObject"])(value) || Array.isArray(value) && value.every(date_util_["isDateObject"]);
  1110. if (this.valueFormat && !isParsed) {
  1111. return parseAsFormatAndType(value, this.valueFormat, this.type, this.rangeSeparator) || value;
  1112. } else {
  1113. return value;
  1114. }
  1115. },
  1116. formatToValue: function formatToValue(date) {
  1117. var isFormattable = Object(date_util_["isDateObject"])(date) || Array.isArray(date) && date.every(date_util_["isDateObject"]);
  1118. if (this.valueFormat && isFormattable) {
  1119. return formatAsFormatAndType(date, this.valueFormat, this.type, this.rangeSeparator);
  1120. } else {
  1121. return date;
  1122. }
  1123. },
  1124. // {parse, formatTo} String deals with user input
  1125. parseString: function parseString(value) {
  1126. var type = Array.isArray(value) ? this.type : this.type.replace('range', '');
  1127. return parseAsFormatAndType(value, this.format, type);
  1128. },
  1129. formatToString: function formatToString(value) {
  1130. var type = Array.isArray(value) ? this.type : this.type.replace('range', '');
  1131. return formatAsFormatAndType(value, this.format, type);
  1132. },
  1133. handleMouseEnter: function handleMouseEnter() {
  1134. if (this.readonly || this.pickerDisabled) return;
  1135. if (!this.valueIsEmpty && this.clearable) {
  1136. this.showClose = true;
  1137. }
  1138. },
  1139. handleChange: function handleChange() {
  1140. if (this.userInput) {
  1141. var value = this.parseString(this.displayValue);
  1142. if (value) {
  1143. this.picker.value = value;
  1144. if (this.isValidValue(value)) {
  1145. this.emitInput(value);
  1146. this.userInput = null;
  1147. }
  1148. }
  1149. }
  1150. if (this.userInput === '') {
  1151. this.emitInput(null);
  1152. this.emitChange(null);
  1153. this.userInput = null;
  1154. }
  1155. },
  1156. handleStartInput: function handleStartInput(event) {
  1157. if (this.userInput) {
  1158. this.userInput = [event.target.value, this.userInput[1]];
  1159. } else {
  1160. this.userInput = [event.target.value, null];
  1161. }
  1162. },
  1163. handleEndInput: function handleEndInput(event) {
  1164. if (this.userInput) {
  1165. this.userInput = [this.userInput[0], event.target.value];
  1166. } else {
  1167. this.userInput = [null, event.target.value];
  1168. }
  1169. },
  1170. handleStartChange: function handleStartChange(event) {
  1171. var value = this.parseString(this.userInput && this.userInput[0]);
  1172. if (value) {
  1173. this.userInput = [this.formatToString(value), this.displayValue[1]];
  1174. var newValue = [value, this.picker.value && this.picker.value[1]];
  1175. this.picker.value = newValue;
  1176. if (this.isValidValue(newValue)) {
  1177. this.emitInput(newValue);
  1178. this.userInput = null;
  1179. }
  1180. }
  1181. },
  1182. handleEndChange: function handleEndChange(event) {
  1183. var value = this.parseString(this.userInput && this.userInput[1]);
  1184. if (value) {
  1185. this.userInput = [this.displayValue[0], this.formatToString(value)];
  1186. var newValue = [this.picker.value && this.picker.value[0], value];
  1187. this.picker.value = newValue;
  1188. if (this.isValidValue(newValue)) {
  1189. this.emitInput(newValue);
  1190. this.userInput = null;
  1191. }
  1192. }
  1193. },
  1194. handleClickIcon: function handleClickIcon(event) {
  1195. if (this.readonly || this.pickerDisabled) return;
  1196. if (this.showClose) {
  1197. this.valueOnOpen = this.value;
  1198. event.stopPropagation();
  1199. this.emitInput(null);
  1200. this.emitChange(null);
  1201. this.showClose = false;
  1202. if (this.picker && typeof this.picker.handleClear === 'function') {
  1203. this.picker.handleClear();
  1204. }
  1205. } else {
  1206. this.pickerVisible = !this.pickerVisible;
  1207. }
  1208. },
  1209. handleClose: function handleClose() {
  1210. if (!this.pickerVisible) return;
  1211. this.pickerVisible = false;
  1212. if (this.type === 'dates') {
  1213. // restore to former value
  1214. var oldValue = parseAsFormatAndType(this.valueOnOpen, this.valueFormat, this.type, this.rangeSeparator) || this.valueOnOpen;
  1215. this.emitInput(oldValue);
  1216. }
  1217. },
  1218. handleFieldReset: function handleFieldReset(initialValue) {
  1219. this.userInput = initialValue === '' ? null : initialValue;
  1220. },
  1221. handleFocus: function handleFocus() {
  1222. var type = this.type;
  1223. if (HAVE_TRIGGER_TYPES.indexOf(type) !== -1 && !this.pickerVisible) {
  1224. this.pickerVisible = true;
  1225. }
  1226. this.$emit('focus', this);
  1227. },
  1228. handleKeydown: function handleKeydown(event) {
  1229. var _this = this;
  1230. var keyCode = event.keyCode;
  1231. // ESC
  1232. if (keyCode === 27) {
  1233. this.pickerVisible = false;
  1234. event.stopPropagation();
  1235. return;
  1236. }
  1237. // Tab
  1238. if (keyCode === 9) {
  1239. if (!this.ranged) {
  1240. this.handleChange();
  1241. this.pickerVisible = this.picker.visible = false;
  1242. this.blur();
  1243. event.stopPropagation();
  1244. } else {
  1245. // user may change focus between two input
  1246. setTimeout(function () {
  1247. if (_this.refInput.indexOf(document.activeElement) === -1) {
  1248. _this.pickerVisible = false;
  1249. _this.blur();
  1250. event.stopPropagation();
  1251. }
  1252. }, 0);
  1253. }
  1254. return;
  1255. }
  1256. // Enter
  1257. if (keyCode === 13) {
  1258. if (this.userInput === '' || this.isValidValue(this.parseString(this.displayValue))) {
  1259. this.handleChange();
  1260. this.pickerVisible = this.picker.visible = false;
  1261. this.blur();
  1262. }
  1263. event.stopPropagation();
  1264. return;
  1265. }
  1266. // if user is typing, do not let picker handle key input
  1267. if (this.userInput) {
  1268. event.stopPropagation();
  1269. return;
  1270. }
  1271. // delegate other keys to panel
  1272. if (this.picker && this.picker.handleKeydown) {
  1273. this.picker.handleKeydown(event);
  1274. }
  1275. },
  1276. handleRangeClick: function handleRangeClick() {
  1277. var type = this.type;
  1278. if (HAVE_TRIGGER_TYPES.indexOf(type) !== -1 && !this.pickerVisible) {
  1279. this.pickerVisible = true;
  1280. }
  1281. this.$emit('focus', this);
  1282. },
  1283. hidePicker: function hidePicker() {
  1284. if (this.picker) {
  1285. this.picker.resetView && this.picker.resetView();
  1286. this.pickerVisible = this.picker.visible = false;
  1287. this.destroyPopper();
  1288. }
  1289. },
  1290. showPicker: function showPicker() {
  1291. var _this2 = this;
  1292. if (this.$isServer) return;
  1293. if (!this.picker) {
  1294. this.mountPicker();
  1295. }
  1296. this.pickerVisible = this.picker.visible = true;
  1297. this.updatePopper();
  1298. this.picker.value = this.parsedValue;
  1299. this.picker.resetView && this.picker.resetView();
  1300. this.$nextTick(function () {
  1301. _this2.picker.adjustSpinners && _this2.picker.adjustSpinners();
  1302. });
  1303. },
  1304. mountPicker: function mountPicker() {
  1305. var _this3 = this;
  1306. this.picker = new external_vue_default.a(this.panel).$mount();
  1307. this.picker.defaultValue = this.defaultValue;
  1308. this.picker.defaultTime = this.defaultTime;
  1309. this.picker.popperClass = this.popperClass;
  1310. this.popperElm = this.picker.$el;
  1311. this.picker.width = this.reference.getBoundingClientRect().width;
  1312. this.picker.showTime = this.type === 'datetime' || this.type === 'datetimerange';
  1313. this.picker.selectionMode = this.selectionMode;
  1314. this.picker.unlinkPanels = this.unlinkPanels;
  1315. this.picker.arrowControl = this.arrowControl || this.timeArrowControl || false;
  1316. this.$watch('format', function (format) {
  1317. _this3.picker.format = format;
  1318. });
  1319. var updateOptions = function updateOptions() {
  1320. var options = _this3.pickerOptions;
  1321. if (options && options.selectableRange) {
  1322. var ranges = options.selectableRange;
  1323. var parser = TYPE_VALUE_RESOLVER_MAP.datetimerange.parser;
  1324. var format = DEFAULT_FORMATS.timerange;
  1325. ranges = Array.isArray(ranges) ? ranges : [ranges];
  1326. _this3.picker.selectableRange = ranges.map(function (range) {
  1327. return parser(range, format, _this3.rangeSeparator);
  1328. });
  1329. }
  1330. for (var option in options) {
  1331. if (options.hasOwnProperty(option) &&
  1332. // 忽略 time-picker 的该配置项
  1333. option !== 'selectableRange') {
  1334. _this3.picker[option] = options[option];
  1335. }
  1336. }
  1337. // main format must prevail over undocumented pickerOptions.format
  1338. if (_this3.format) {
  1339. _this3.picker.format = _this3.format;
  1340. }
  1341. };
  1342. updateOptions();
  1343. this.unwatchPickerOptions = this.$watch('pickerOptions', function () {
  1344. return updateOptions();
  1345. }, { deep: true });
  1346. this.$el.appendChild(this.picker.$el);
  1347. this.picker.resetView && this.picker.resetView();
  1348. this.picker.$on('dodestroy', this.doDestroy);
  1349. this.picker.$on('pick', function () {
  1350. var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
  1351. var visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  1352. _this3.userInput = null;
  1353. _this3.pickerVisible = _this3.picker.visible = visible;
  1354. _this3.emitInput(date);
  1355. _this3.picker.resetView && _this3.picker.resetView();
  1356. });
  1357. this.picker.$on('select-range', function (start, end, pos) {
  1358. if (_this3.refInput.length === 0) return;
  1359. if (!pos || pos === 'min') {
  1360. _this3.refInput[0].setSelectionRange(start, end);
  1361. _this3.refInput[0].focus();
  1362. } else if (pos === 'max') {
  1363. _this3.refInput[1].setSelectionRange(start, end);
  1364. _this3.refInput[1].focus();
  1365. }
  1366. });
  1367. },
  1368. unmountPicker: function unmountPicker() {
  1369. if (this.picker) {
  1370. this.picker.$destroy();
  1371. this.picker.$off();
  1372. if (typeof this.unwatchPickerOptions === 'function') {
  1373. this.unwatchPickerOptions();
  1374. }
  1375. this.picker.$el.parentNode.removeChild(this.picker.$el);
  1376. }
  1377. },
  1378. emitChange: function emitChange(val) {
  1379. // determine user real change only
  1380. if (!valueEquals(val, this.valueOnOpen)) {
  1381. this.$emit('change', val);
  1382. this.valueOnOpen = val;
  1383. if (this.validateEvent) {
  1384. this.dispatch('ElFormItem', 'el.form.change', val);
  1385. }
  1386. }
  1387. },
  1388. emitInput: function emitInput(val) {
  1389. var formatted = this.formatToValue(val);
  1390. if (!valueEquals(this.value, formatted)) {
  1391. this.$emit('input', formatted);
  1392. }
  1393. },
  1394. isValidValue: function isValidValue(value) {
  1395. if (!this.picker) {
  1396. this.mountPicker();
  1397. }
  1398. if (this.picker.isValidValue) {
  1399. return value && this.picker.isValidValue(value);
  1400. } else {
  1401. return true;
  1402. }
  1403. }
  1404. }
  1405. });
  1406. // CONCATENATED MODULE: ./packages/date-picker/src/picker.vue?vue&type=script&lang=js&
  1407. /* harmony default export */ var src_pickervue_type_script_lang_js_ = (pickervue_type_script_lang_js_);
  1408. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  1409. var componentNormalizer = __webpack_require__(2);
  1410. // CONCATENATED MODULE: ./packages/date-picker/src/picker.vue
  1411. /* normalize component */
  1412. var component = Object(componentNormalizer["a" /* default */])(
  1413. src_pickervue_type_script_lang_js_,
  1414. render,
  1415. staticRenderFns,
  1416. false,
  1417. null,
  1418. null,
  1419. null
  1420. )
  1421. /* hot reload */
  1422. if (false) { var api; }
  1423. component.options.__file = "packages/date-picker/src/picker.vue"
  1424. /* harmony default export */ var picker = __webpack_exports__["a"] = (component.exports);
  1425. /***/ }),
  1426. /***/ 122:
  1427. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1428. "use strict";
  1429. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/time-spinner.vue?vue&type=template&id=1facadeb&
  1430. var render = function() {
  1431. var _vm = this
  1432. var _h = _vm.$createElement
  1433. var _c = _vm._self._c || _h
  1434. return _c(
  1435. "div",
  1436. {
  1437. staticClass: "el-time-spinner",
  1438. class: { "has-seconds": _vm.showSeconds }
  1439. },
  1440. [
  1441. !_vm.arrowControl
  1442. ? [
  1443. _c(
  1444. "tis-scrollbar",
  1445. {
  1446. ref: "hours",
  1447. staticClass: "el-time-spinner__wrapper",
  1448. attrs: {
  1449. "wrap-style": "max-height: inherit;",
  1450. "view-class": "el-time-spinner__list",
  1451. noresize: "",
  1452. tag: "ul"
  1453. },
  1454. nativeOn: {
  1455. mouseenter: function($event) {
  1456. _vm.emitSelectRange("hours")
  1457. },
  1458. mousemove: function($event) {
  1459. _vm.adjustCurrentSpinner("hours")
  1460. }
  1461. }
  1462. },
  1463. _vm._l(_vm.hoursList, function(disabled, hour) {
  1464. return _c(
  1465. "li",
  1466. {
  1467. key: hour,
  1468. staticClass: "el-time-spinner__item",
  1469. class: { active: hour === _vm.hours, disabled: disabled },
  1470. on: {
  1471. click: function($event) {
  1472. _vm.handleClick("hours", {
  1473. value: hour,
  1474. disabled: disabled
  1475. })
  1476. }
  1477. }
  1478. },
  1479. [
  1480. _vm._v(
  1481. _vm._s(
  1482. ("0" + (_vm.amPmMode ? hour % 12 || 12 : hour)).slice(
  1483. -2
  1484. )
  1485. ) + _vm._s(_vm.amPm(hour))
  1486. )
  1487. ]
  1488. )
  1489. }),
  1490. 0
  1491. ),
  1492. _c(
  1493. "tis-scrollbar",
  1494. {
  1495. ref: "minutes",
  1496. staticClass: "el-time-spinner__wrapper",
  1497. attrs: {
  1498. "wrap-style": "max-height: inherit;",
  1499. "view-class": "el-time-spinner__list",
  1500. noresize: "",
  1501. tag: "ul"
  1502. },
  1503. nativeOn: {
  1504. mouseenter: function($event) {
  1505. _vm.emitSelectRange("minutes")
  1506. },
  1507. mousemove: function($event) {
  1508. _vm.adjustCurrentSpinner("minutes")
  1509. }
  1510. }
  1511. },
  1512. _vm._l(_vm.minutesList, function(enabled, key) {
  1513. return _c(
  1514. "li",
  1515. {
  1516. key: key,
  1517. staticClass: "el-time-spinner__item",
  1518. class: { active: key === _vm.minutes, disabled: !enabled },
  1519. on: {
  1520. click: function($event) {
  1521. _vm.handleClick("minutes", {
  1522. value: key,
  1523. disabled: false
  1524. })
  1525. }
  1526. }
  1527. },
  1528. [_vm._v(_vm._s(("0" + key).slice(-2)))]
  1529. )
  1530. }),
  1531. 0
  1532. ),
  1533. _c(
  1534. "tis-scrollbar",
  1535. {
  1536. directives: [
  1537. {
  1538. name: "show",
  1539. rawName: "v-show",
  1540. value: _vm.showSeconds,
  1541. expression: "showSeconds"
  1542. }
  1543. ],
  1544. ref: "seconds",
  1545. staticClass: "el-time-spinner__wrapper",
  1546. attrs: {
  1547. "wrap-style": "max-height: inherit;",
  1548. "view-class": "el-time-spinner__list",
  1549. noresize: "",
  1550. tag: "ul"
  1551. },
  1552. nativeOn: {
  1553. mouseenter: function($event) {
  1554. _vm.emitSelectRange("seconds")
  1555. },
  1556. mousemove: function($event) {
  1557. _vm.adjustCurrentSpinner("seconds")
  1558. }
  1559. }
  1560. },
  1561. _vm._l(60, function(second, key) {
  1562. return _c(
  1563. "li",
  1564. {
  1565. key: key,
  1566. staticClass: "el-time-spinner__item",
  1567. class: { active: key === _vm.seconds },
  1568. on: {
  1569. click: function($event) {
  1570. _vm.handleClick("seconds", {
  1571. value: key,
  1572. disabled: false
  1573. })
  1574. }
  1575. }
  1576. },
  1577. [_vm._v(_vm._s(("0" + key).slice(-2)))]
  1578. )
  1579. }),
  1580. 0
  1581. )
  1582. ]
  1583. : _vm._e(),
  1584. _vm.arrowControl
  1585. ? [
  1586. _c(
  1587. "div",
  1588. {
  1589. staticClass: "el-time-spinner__wrapper is-arrow",
  1590. on: {
  1591. mouseenter: function($event) {
  1592. _vm.emitSelectRange("hours")
  1593. }
  1594. }
  1595. },
  1596. [
  1597. _c("i", {
  1598. directives: [
  1599. {
  1600. name: "repeat-click",
  1601. rawName: "v-repeat-click",
  1602. value: _vm.decrease,
  1603. expression: "decrease"
  1604. }
  1605. ],
  1606. staticClass: "el-time-spinner__arrow el-icon-arrow-up"
  1607. }),
  1608. _c("i", {
  1609. directives: [
  1610. {
  1611. name: "repeat-click",
  1612. rawName: "v-repeat-click",
  1613. value: _vm.increase,
  1614. expression: "increase"
  1615. }
  1616. ],
  1617. staticClass: "el-time-spinner__arrow el-icon-arrow-down"
  1618. }),
  1619. _c(
  1620. "ul",
  1621. { ref: "hours", staticClass: "el-time-spinner__list" },
  1622. _vm._l(_vm.arrowHourList, function(hour, key) {
  1623. return _c(
  1624. "li",
  1625. {
  1626. key: key,
  1627. staticClass: "el-time-spinner__item",
  1628. class: {
  1629. active: hour === _vm.hours,
  1630. disabled: _vm.hoursList[hour]
  1631. }
  1632. },
  1633. [
  1634. _vm._v(
  1635. _vm._s(
  1636. hour === undefined
  1637. ? ""
  1638. : (
  1639. "0" + (_vm.amPmMode ? hour % 12 || 12 : hour)
  1640. ).slice(-2) + _vm.amPm(hour)
  1641. )
  1642. )
  1643. ]
  1644. )
  1645. }),
  1646. 0
  1647. )
  1648. ]
  1649. ),
  1650. _c(
  1651. "div",
  1652. {
  1653. staticClass: "el-time-spinner__wrapper is-arrow",
  1654. on: {
  1655. mouseenter: function($event) {
  1656. _vm.emitSelectRange("minutes")
  1657. }
  1658. }
  1659. },
  1660. [
  1661. _c("i", {
  1662. directives: [
  1663. {
  1664. name: "repeat-click",
  1665. rawName: "v-repeat-click",
  1666. value: _vm.decrease,
  1667. expression: "decrease"
  1668. }
  1669. ],
  1670. staticClass: "el-time-spinner__arrow el-icon-arrow-up"
  1671. }),
  1672. _c("i", {
  1673. directives: [
  1674. {
  1675. name: "repeat-click",
  1676. rawName: "v-repeat-click",
  1677. value: _vm.increase,
  1678. expression: "increase"
  1679. }
  1680. ],
  1681. staticClass: "el-time-spinner__arrow el-icon-arrow-down"
  1682. }),
  1683. _c(
  1684. "ul",
  1685. { ref: "minutes", staticClass: "el-time-spinner__list" },
  1686. _vm._l(_vm.arrowMinuteList, function(minute, key) {
  1687. return _c(
  1688. "li",
  1689. {
  1690. key: key,
  1691. staticClass: "el-time-spinner__item",
  1692. class: { active: minute === _vm.minutes }
  1693. },
  1694. [
  1695. _vm._v(
  1696. "\n " +
  1697. _vm._s(
  1698. minute === undefined
  1699. ? ""
  1700. : ("0" + minute).slice(-2)
  1701. ) +
  1702. "\n "
  1703. )
  1704. ]
  1705. )
  1706. }),
  1707. 0
  1708. )
  1709. ]
  1710. ),
  1711. _vm.showSeconds
  1712. ? _c(
  1713. "div",
  1714. {
  1715. staticClass: "el-time-spinner__wrapper is-arrow",
  1716. on: {
  1717. mouseenter: function($event) {
  1718. _vm.emitSelectRange("seconds")
  1719. }
  1720. }
  1721. },
  1722. [
  1723. _c("i", {
  1724. directives: [
  1725. {
  1726. name: "repeat-click",
  1727. rawName: "v-repeat-click",
  1728. value: _vm.decrease,
  1729. expression: "decrease"
  1730. }
  1731. ],
  1732. staticClass: "el-time-spinner__arrow el-icon-arrow-up"
  1733. }),
  1734. _c("i", {
  1735. directives: [
  1736. {
  1737. name: "repeat-click",
  1738. rawName: "v-repeat-click",
  1739. value: _vm.increase,
  1740. expression: "increase"
  1741. }
  1742. ],
  1743. staticClass: "el-time-spinner__arrow el-icon-arrow-down"
  1744. }),
  1745. _c(
  1746. "ul",
  1747. { ref: "seconds", staticClass: "el-time-spinner__list" },
  1748. _vm._l(_vm.arrowSecondList, function(second, key) {
  1749. return _c(
  1750. "li",
  1751. {
  1752. key: key,
  1753. staticClass: "el-time-spinner__item",
  1754. class: { active: second === _vm.seconds }
  1755. },
  1756. [
  1757. _vm._v(
  1758. "\n " +
  1759. _vm._s(
  1760. second === undefined
  1761. ? ""
  1762. : ("0" + second).slice(-2)
  1763. ) +
  1764. "\n "
  1765. )
  1766. ]
  1767. )
  1768. }),
  1769. 0
  1770. )
  1771. ]
  1772. )
  1773. : _vm._e()
  1774. ]
  1775. : _vm._e()
  1776. ],
  1777. 2
  1778. )
  1779. }
  1780. var staticRenderFns = []
  1781. render._withStripped = true
  1782. // CONCATENATED MODULE: ./packages/date-picker/src/basic/time-spinner.vue?vue&type=template&id=1facadeb&
  1783. // EXTERNAL MODULE: external "tis-ui/lib/utils/date-util"
  1784. var date_util_ = __webpack_require__(8);
  1785. // EXTERNAL MODULE: ./packages/scrollbar/index.js + 3 modules
  1786. var scrollbar = __webpack_require__(66);
  1787. // EXTERNAL MODULE: ./src/directives/repeat-click.js
  1788. var repeat_click = __webpack_require__(99);
  1789. // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/time-spinner.vue?vue&type=script&lang=js&
  1790. //
  1791. //
  1792. //
  1793. //
  1794. //
  1795. //
  1796. //
  1797. //
  1798. //
  1799. //
  1800. //
  1801. //
  1802. //
  1803. //
  1804. //
  1805. //
  1806. //
  1807. //
  1808. //
  1809. //
  1810. //
  1811. //
  1812. //
  1813. //
  1814. //
  1815. //
  1816. //
  1817. //
  1818. //
  1819. //
  1820. //
  1821. //
  1822. //
  1823. //
  1824. //
  1825. //
  1826. //
  1827. //
  1828. //
  1829. //
  1830. //
  1831. //
  1832. //
  1833. //
  1834. //
  1835. //
  1836. //
  1837. //
  1838. //
  1839. //
  1840. //
  1841. //
  1842. //
  1843. //
  1844. //
  1845. //
  1846. //
  1847. //
  1848. //
  1849. //
  1850. //
  1851. //
  1852. //
  1853. //
  1854. //
  1855. //
  1856. //
  1857. //
  1858. //
  1859. //
  1860. //
  1861. //
  1862. //
  1863. //
  1864. //
  1865. //
  1866. //
  1867. //
  1868. //
  1869. //
  1870. //
  1871. //
  1872. //
  1873. //
  1874. //
  1875. //
  1876. //
  1877. //
  1878. //
  1879. //
  1880. //
  1881. //
  1882. //
  1883. //
  1884. //
  1885. //
  1886. //
  1887. //
  1888. //
  1889. //
  1890. //
  1891. //
  1892. /* harmony default export */ var time_spinnervue_type_script_lang_js_ = ({
  1893. components: { ElScrollbar: scrollbar["default"] },
  1894. directives: {
  1895. repeatClick: repeat_click["a" /* default */]
  1896. },
  1897. props: {
  1898. date: {},
  1899. defaultValue: {}, // reserved for future use
  1900. showSeconds: {
  1901. type: Boolean,
  1902. default: true
  1903. },
  1904. arrowControl: Boolean,
  1905. amPmMode: {
  1906. type: String,
  1907. default: '' // 'a': am/pm; 'A': AM/PM
  1908. }
  1909. },
  1910. computed: {
  1911. hours: function hours() {
  1912. return this.date.getHours();
  1913. },
  1914. minutes: function minutes() {
  1915. return this.date.getMinutes();
  1916. },
  1917. seconds: function seconds() {
  1918. return this.date.getSeconds();
  1919. },
  1920. hoursList: function hoursList() {
  1921. return Object(date_util_["getRangeHours"])(this.selectableRange);
  1922. },
  1923. minutesList: function minutesList() {
  1924. return Object(date_util_["getRangeMinutes"])(this.selectableRange, this.hours);
  1925. },
  1926. arrowHourList: function arrowHourList() {
  1927. var hours = this.hours;
  1928. return [hours > 0 ? hours - 1 : undefined, hours, hours < 23 ? hours + 1 : undefined];
  1929. },
  1930. arrowMinuteList: function arrowMinuteList() {
  1931. var minutes = this.minutes;
  1932. return [minutes > 0 ? minutes - 1 : undefined, minutes, minutes < 59 ? minutes + 1 : undefined];
  1933. },
  1934. arrowSecondList: function arrowSecondList() {
  1935. var seconds = this.seconds;
  1936. return [seconds > 0 ? seconds - 1 : undefined, seconds, seconds < 59 ? seconds + 1 : undefined];
  1937. }
  1938. },
  1939. data: function data() {
  1940. return {
  1941. selectableRange: [],
  1942. currentScrollbar: null
  1943. };
  1944. },
  1945. mounted: function mounted() {
  1946. var _this = this;
  1947. this.$nextTick(function () {
  1948. !_this.arrowControl && _this.bindScrollEvent();
  1949. });
  1950. },
  1951. methods: {
  1952. increase: function increase() {
  1953. this.scrollDown(1);
  1954. },
  1955. decrease: function decrease() {
  1956. this.scrollDown(-1);
  1957. },
  1958. modifyDateField: function modifyDateField(type, value) {
  1959. switch (type) {
  1960. case 'hours':
  1961. this.$emit('change', Object(date_util_["modifyTime"])(this.date, value, this.minutes, this.seconds));break;
  1962. case 'minutes':
  1963. this.$emit('change', Object(date_util_["modifyTime"])(this.date, this.hours, value, this.seconds));break;
  1964. case 'seconds':
  1965. this.$emit('change', Object(date_util_["modifyTime"])(this.date, this.hours, this.minutes, value));break;
  1966. }
  1967. },
  1968. handleClick: function handleClick(type, _ref) {
  1969. var value = _ref.value,
  1970. disabled = _ref.disabled;
  1971. if (!disabled) {
  1972. this.modifyDateField(type, value);
  1973. this.emitSelectRange(type);
  1974. this.adjustSpinner(type, value);
  1975. }
  1976. },
  1977. emitSelectRange: function emitSelectRange(type) {
  1978. if (type === 'hours') {
  1979. this.$emit('select-range', 0, 2);
  1980. } else if (type === 'minutes') {
  1981. this.$emit('select-range', 3, 5);
  1982. } else if (type === 'seconds') {
  1983. this.$emit('select-range', 6, 8);
  1984. }
  1985. this.currentScrollbar = type;
  1986. },
  1987. bindScrollEvent: function bindScrollEvent() {
  1988. var _this2 = this;
  1989. var bindFuntion = function bindFuntion(type) {
  1990. _this2.$refs[type].wrap.onscroll = function (e) {
  1991. // TODO: scroll is emitted when set scrollTop programatically
  1992. // should find better solutions in the future!
  1993. _this2.handleScroll(type, e);
  1994. };
  1995. };
  1996. bindFuntion('hours');
  1997. bindFuntion('minutes');
  1998. bindFuntion('seconds');
  1999. },
  2000. handleScroll: function handleScroll(type) {
  2001. var value = Math.min(Math.round((this.$refs[type].wrap.scrollTop - (this.scrollBarHeight(type) * 0.5 - 10) / this.typeItemHeight(type) + 3) / this.typeItemHeight(type)), type === 'hours' ? 23 : 59);
  2002. this.modifyDateField(type, value);
  2003. },
  2004. // NOTE: used by datetime / date-range panel
  2005. // renamed from adjustScrollTop
  2006. // should try to refactory it
  2007. adjustSpinners: function adjustSpinners() {
  2008. this.adjustSpinner('hours', this.hours);
  2009. this.adjustSpinner('minutes', this.minutes);
  2010. this.adjustSpinner('seconds', this.seconds);
  2011. },
  2012. adjustCurrentSpinner: function adjustCurrentSpinner(type) {
  2013. this.adjustSpinner(type, this[type]);
  2014. },
  2015. adjustSpinner: function adjustSpinner(type, value) {
  2016. if (this.arrowControl) return;
  2017. var el = this.$refs[type].wrap;
  2018. if (el) {
  2019. el.scrollTop = Math.max(0, value * this.typeItemHeight(type));
  2020. }
  2021. },
  2022. scrollDown: function scrollDown(step) {
  2023. var _this3 = this;
  2024. if (!this.currentScrollbar) {
  2025. this.emitSelectRange('hours');
  2026. }
  2027. var label = this.currentScrollbar;
  2028. var hoursList = this.hoursList;
  2029. var now = this[label];
  2030. if (this.currentScrollbar === 'hours') {
  2031. var total = Math.abs(step);
  2032. step = step > 0 ? 1 : -1;
  2033. var length = hoursList.length;
  2034. while (length-- && total) {
  2035. now = (now + step + hoursList.length) % hoursList.length;
  2036. if (hoursList[now]) {
  2037. continue;
  2038. }
  2039. total--;
  2040. }
  2041. if (hoursList[now]) return;
  2042. } else {
  2043. now = (now + step + 60) % 60;
  2044. }
  2045. this.modifyDateField(label, now);
  2046. this.adjustSpinner(label, now);
  2047. this.$nextTick(function () {
  2048. return _this3.emitSelectRange(_this3.currentScrollbar);
  2049. });
  2050. },
  2051. amPm: function amPm(hour) {
  2052. var shouldShowAmPm = this.amPmMode.toLowerCase() === 'a';
  2053. if (!shouldShowAmPm) return '';
  2054. var isCapital = this.amPmMode === 'A';
  2055. var content = hour < 12 ? ' am' : ' pm';
  2056. if (isCapital) content = content.toUpperCase();
  2057. return content;
  2058. },
  2059. typeItemHeight: function typeItemHeight(type) {
  2060. return this.$refs[type].$el.querySelector('li').offsetHeight;
  2061. },
  2062. scrollBarHeight: function scrollBarHeight(type) {
  2063. return this.$refs[type].$el.offsetHeight;
  2064. }
  2065. }
  2066. });
  2067. // CONCATENATED MODULE: ./packages/date-picker/src/basic/time-spinner.vue?vue&type=script&lang=js&
  2068. /* harmony default export */ var basic_time_spinnervue_type_script_lang_js_ = (time_spinnervue_type_script_lang_js_);
  2069. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  2070. var componentNormalizer = __webpack_require__(2);
  2071. // CONCATENATED MODULE: ./packages/date-picker/src/basic/time-spinner.vue
  2072. /* normalize component */
  2073. var component = Object(componentNormalizer["a" /* default */])(
  2074. basic_time_spinnervue_type_script_lang_js_,
  2075. render,
  2076. staticRenderFns,
  2077. false,
  2078. null,
  2079. null,
  2080. null
  2081. )
  2082. /* hot reload */
  2083. if (false) { var api; }
  2084. component.options.__file = "packages/date-picker/src/basic/time-spinner.vue"
  2085. /* harmony default export */ var time_spinner = __webpack_exports__["a"] = (component.exports);
  2086. /***/ }),
  2087. /***/ 13:
  2088. /***/ (function(module, exports) {
  2089. module.exports = require("tis-ui/lib/mixins/emitter");
  2090. /***/ }),
  2091. /***/ 2:
  2092. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2093. "use strict";
  2094. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
  2095. /* globals __VUE_SSR_CONTEXT__ */
  2096. // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
  2097. // This module is a runtime utility for cleaner component module output and will
  2098. // be included in the final webpack user bundle.
  2099. function normalizeComponent (
  2100. scriptExports,
  2101. render,
  2102. staticRenderFns,
  2103. functionalTemplate,
  2104. injectStyles,
  2105. scopeId,
  2106. moduleIdentifier, /* server only */
  2107. shadowMode /* vue-cli only */
  2108. ) {
  2109. // Vue.extend constructor export interop
  2110. var options = typeof scriptExports === 'function'
  2111. ? scriptExports.options
  2112. : scriptExports
  2113. // render functions
  2114. if (render) {
  2115. options.render = render
  2116. options.staticRenderFns = staticRenderFns
  2117. options._compiled = true
  2118. }
  2119. // functional template
  2120. if (functionalTemplate) {
  2121. options.functional = true
  2122. }
  2123. // scopedId
  2124. if (scopeId) {
  2125. options._scopeId = 'data-v-' + scopeId
  2126. }
  2127. var hook
  2128. if (moduleIdentifier) { // server build
  2129. hook = function (context) {
  2130. // 2.3 injection
  2131. context =
  2132. context || // cached call
  2133. (this.$vnode && this.$vnode.ssrContext) || // stateful
  2134. (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
  2135. // 2.2 with runInNewContext: true
  2136. if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
  2137. context = __VUE_SSR_CONTEXT__
  2138. }
  2139. // inject component styles
  2140. if (injectStyles) {
  2141. injectStyles.call(this, context)
  2142. }
  2143. // register component module identifier for async chunk inferrence
  2144. if (context && context._registeredComponents) {
  2145. context._registeredComponents.add(moduleIdentifier)
  2146. }
  2147. }
  2148. // used by ssr in case component is cached and beforeCreate
  2149. // never gets called
  2150. options._ssrRegister = hook
  2151. } else if (injectStyles) {
  2152. hook = shadowMode
  2153. ? function () {
  2154. injectStyles.call(
  2155. this,
  2156. (options.functional ? this.parent : this).$root.$options.shadowRoot
  2157. )
  2158. }
  2159. : injectStyles
  2160. }
  2161. if (hook) {
  2162. if (options.functional) {
  2163. // for template-only hot-reload because in that case the render fn doesn't
  2164. // go through the normalizer
  2165. options._injectStyles = hook
  2166. // register for functional component in vue file
  2167. var originalRender = options.render
  2168. options.render = function renderWithStyleInjection (h, context) {
  2169. hook.call(context)
  2170. return originalRender(h, context)
  2171. }
  2172. } else {
  2173. // inject component registration as beforeCreate hook
  2174. var existing = options.beforeCreate
  2175. options.beforeCreate = existing
  2176. ? [].concat(existing, hook)
  2177. : [hook]
  2178. }
  2179. }
  2180. return {
  2181. exports: scriptExports,
  2182. options: options
  2183. }
  2184. }
  2185. /***/ }),
  2186. /***/ 33:
  2187. /***/ (function(module, exports) {
  2188. module.exports = require("tis-ui/lib/utils/merge");
  2189. /***/ }),
  2190. /***/ 34:
  2191. /***/ (function(module, exports) {
  2192. module.exports = require("tis-ui/lib/utils/vue-popper");
  2193. /***/ }),
  2194. /***/ 36:
  2195. /***/ (function(module, exports) {
  2196. module.exports = require("tis-ui/lib/mixins/migrating");
  2197. /***/ }),
  2198. /***/ 38:
  2199. /***/ (function(module, exports) {
  2200. module.exports = require("tis-ui/lib/mixins/locale");
  2201. /***/ }),
  2202. /***/ 4:
  2203. /***/ (function(module, exports) {
  2204. module.exports = require("vue");
  2205. /***/ }),
  2206. /***/ 44:
  2207. /***/ (function(module, exports) {
  2208. module.exports = require("tis-ui/lib/utils/resize-event");
  2209. /***/ }),
  2210. /***/ 49:
  2211. /***/ (function(module, exports) {
  2212. module.exports = require("tis-ui/lib/utils/shared");
  2213. /***/ }),
  2214. /***/ 516:
  2215. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2216. "use strict";
  2217. // ESM COMPAT FLAG
  2218. __webpack_require__.r(__webpack_exports__);
  2219. // EXTERNAL MODULE: ./packages/date-picker/src/picker.vue + 4 modules
  2220. var picker = __webpack_require__(113);
  2221. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/date.vue?vue&type=template&id=2440d4ea&
  2222. var render = function() {
  2223. var _vm = this
  2224. var _h = _vm.$createElement
  2225. var _c = _vm._self._c || _h
  2226. return _c(
  2227. "transition",
  2228. {
  2229. attrs: { name: "el-zoom-in-top" },
  2230. on: { "after-enter": _vm.handleEnter, "after-leave": _vm.handleLeave }
  2231. },
  2232. [
  2233. _c(
  2234. "div",
  2235. {
  2236. directives: [
  2237. {
  2238. name: "show",
  2239. rawName: "v-show",
  2240. value: _vm.visible,
  2241. expression: "visible"
  2242. }
  2243. ],
  2244. staticClass: "el-picker-panel el-date-picker el-popper",
  2245. class: [
  2246. {
  2247. "has-sidebar": _vm.$slots.sidebar || _vm.shortcuts,
  2248. "has-time": _vm.showTime
  2249. },
  2250. _vm.popperClass
  2251. ]
  2252. },
  2253. [
  2254. _c(
  2255. "div",
  2256. { staticClass: "el-picker-panel__body-wrapper" },
  2257. [
  2258. _vm._t("sidebar"),
  2259. _vm.shortcuts
  2260. ? _c(
  2261. "div",
  2262. { staticClass: "el-picker-panel__sidebar" },
  2263. _vm._l(_vm.shortcuts, function(shortcut, key) {
  2264. return _c(
  2265. "button",
  2266. {
  2267. key: key,
  2268. staticClass: "el-picker-panel__shortcut",
  2269. attrs: { type: "button" },
  2270. on: {
  2271. click: function($event) {
  2272. _vm.handleShortcutClick(shortcut)
  2273. }
  2274. }
  2275. },
  2276. [_vm._v(_vm._s(shortcut.text))]
  2277. )
  2278. }),
  2279. 0
  2280. )
  2281. : _vm._e(),
  2282. _c("div", { staticClass: "el-picker-panel__body" }, [
  2283. _vm.showTime
  2284. ? _c("div", { staticClass: "el-date-picker__time-header" }, [
  2285. _c(
  2286. "span",
  2287. { staticClass: "el-date-picker__editor-wrap" },
  2288. [
  2289. _c("tis-input", {
  2290. attrs: {
  2291. placeholder: _vm.t("el.datepicker.selectDate"),
  2292. value: _vm.visibleDate,
  2293. size: "small"
  2294. },
  2295. on: {
  2296. input: function(val) {
  2297. return (_vm.userInputDate = val)
  2298. },
  2299. change: _vm.handleVisibleDateChange
  2300. }
  2301. })
  2302. ],
  2303. 1
  2304. ),
  2305. _c(
  2306. "span",
  2307. {
  2308. directives: [
  2309. {
  2310. name: "clickoutside",
  2311. rawName: "v-clickoutside",
  2312. value: _vm.handleTimePickClose,
  2313. expression: "handleTimePickClose"
  2314. }
  2315. ],
  2316. staticClass: "el-date-picker__editor-wrap"
  2317. },
  2318. [
  2319. _c("tis-input", {
  2320. ref: "input",
  2321. attrs: {
  2322. placeholder: _vm.t("el.datepicker.selectTime"),
  2323. value: _vm.visibleTime,
  2324. size: "small"
  2325. },
  2326. on: {
  2327. focus: function($event) {
  2328. _vm.timePickerVisible = true
  2329. },
  2330. input: function(val) {
  2331. return (_vm.userInputTime = val)
  2332. },
  2333. change: _vm.handleVisibleTimeChange
  2334. }
  2335. }),
  2336. _c("time-picker", {
  2337. ref: "timepicker",
  2338. attrs: {
  2339. "time-arrow-control": _vm.arrowControl,
  2340. visible: _vm.timePickerVisible
  2341. },
  2342. on: {
  2343. pick: _vm.handleTimePick,
  2344. mounted: _vm.proxyTimePickerDataProperties
  2345. }
  2346. })
  2347. ],
  2348. 1
  2349. )
  2350. ])
  2351. : _vm._e(),
  2352. _c(
  2353. "div",
  2354. {
  2355. directives: [
  2356. {
  2357. name: "show",
  2358. rawName: "v-show",
  2359. value: _vm.currentView !== "time",
  2360. expression: "currentView !== 'time'"
  2361. }
  2362. ],
  2363. staticClass: "el-date-picker__header",
  2364. class: {
  2365. "el-date-picker__header--bordered":
  2366. _vm.currentView === "year" ||
  2367. _vm.currentView === "month"
  2368. }
  2369. },
  2370. [
  2371. _c("button", {
  2372. staticClass:
  2373. "el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left",
  2374. attrs: {
  2375. type: "button",
  2376. "aria-label": _vm.t("el.datepicker.prevYear")
  2377. },
  2378. on: { click: _vm.prevYear }
  2379. }),
  2380. _c("button", {
  2381. directives: [
  2382. {
  2383. name: "show",
  2384. rawName: "v-show",
  2385. value: _vm.currentView === "date",
  2386. expression: "currentView === 'date'"
  2387. }
  2388. ],
  2389. staticClass:
  2390. "el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-arrow-left",
  2391. attrs: {
  2392. type: "button",
  2393. "aria-label": _vm.t("el.datepicker.prevMonth")
  2394. },
  2395. on: { click: _vm.prevMonth }
  2396. }),
  2397. _c(
  2398. "span",
  2399. {
  2400. staticClass: "el-date-picker__header-label",
  2401. attrs: { role: "button" },
  2402. on: { click: _vm.showYearPicker }
  2403. },
  2404. [_vm._v(_vm._s(_vm.yearLabel))]
  2405. ),
  2406. _c(
  2407. "span",
  2408. {
  2409. directives: [
  2410. {
  2411. name: "show",
  2412. rawName: "v-show",
  2413. value: _vm.currentView === "date",
  2414. expression: "currentView === 'date'"
  2415. }
  2416. ],
  2417. staticClass: "el-date-picker__header-label",
  2418. class: { active: _vm.currentView === "month" },
  2419. attrs: { role: "button" },
  2420. on: { click: _vm.showMonthPicker }
  2421. },
  2422. [
  2423. _vm._v(
  2424. _vm._s(_vm.t("el.datepicker.month" + (_vm.month + 1)))
  2425. )
  2426. ]
  2427. ),
  2428. _c("button", {
  2429. staticClass:
  2430. "el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right",
  2431. attrs: {
  2432. type: "button",
  2433. "aria-label": _vm.t("el.datepicker.nextYear")
  2434. },
  2435. on: { click: _vm.nextYear }
  2436. }),
  2437. _c("button", {
  2438. directives: [
  2439. {
  2440. name: "show",
  2441. rawName: "v-show",
  2442. value: _vm.currentView === "date",
  2443. expression: "currentView === 'date'"
  2444. }
  2445. ],
  2446. staticClass:
  2447. "el-picker-panel__icon-btn el-date-picker__next-btn el-icon-arrow-right",
  2448. attrs: {
  2449. type: "button",
  2450. "aria-label": _vm.t("el.datepicker.nextMonth")
  2451. },
  2452. on: { click: _vm.nextMonth }
  2453. })
  2454. ]
  2455. ),
  2456. _c(
  2457. "div",
  2458. { staticClass: "el-picker-panel__content" },
  2459. [
  2460. _c("date-table", {
  2461. directives: [
  2462. {
  2463. name: "show",
  2464. rawName: "v-show",
  2465. value: _vm.currentView === "date",
  2466. expression: "currentView === 'date'"
  2467. }
  2468. ],
  2469. attrs: {
  2470. "selection-mode": _vm.selectionMode,
  2471. "first-day-of-week": _vm.firstDayOfWeek,
  2472. value: _vm.value,
  2473. "default-value": _vm.defaultValue
  2474. ? new Date(_vm.defaultValue)
  2475. : null,
  2476. date: _vm.date,
  2477. "cell-class-name": _vm.cellClassName,
  2478. "disabled-date": _vm.disabledDate
  2479. },
  2480. on: { pick: _vm.handleDatePick }
  2481. }),
  2482. _c("year-table", {
  2483. directives: [
  2484. {
  2485. name: "show",
  2486. rawName: "v-show",
  2487. value: _vm.currentView === "year",
  2488. expression: "currentView === 'year'"
  2489. }
  2490. ],
  2491. attrs: {
  2492. value: _vm.value,
  2493. "default-value": _vm.defaultValue
  2494. ? new Date(_vm.defaultValue)
  2495. : null,
  2496. date: _vm.date,
  2497. "disabled-date": _vm.disabledDate
  2498. },
  2499. on: { pick: _vm.handleYearPick }
  2500. }),
  2501. _c("month-table", {
  2502. directives: [
  2503. {
  2504. name: "show",
  2505. rawName: "v-show",
  2506. value: _vm.currentView === "month",
  2507. expression: "currentView === 'month'"
  2508. }
  2509. ],
  2510. attrs: {
  2511. value: _vm.value,
  2512. "default-value": _vm.defaultValue
  2513. ? new Date(_vm.defaultValue)
  2514. : null,
  2515. date: _vm.date,
  2516. "disabled-date": _vm.disabledDate
  2517. },
  2518. on: { pick: _vm.handleMonthPick }
  2519. })
  2520. ],
  2521. 1
  2522. )
  2523. ])
  2524. ],
  2525. 2
  2526. ),
  2527. _c(
  2528. "div",
  2529. {
  2530. directives: [
  2531. {
  2532. name: "show",
  2533. rawName: "v-show",
  2534. value: _vm.footerVisible && _vm.currentView === "date",
  2535. expression: "footerVisible && currentView === 'date'"
  2536. }
  2537. ],
  2538. staticClass: "el-picker-panel__footer"
  2539. },
  2540. [
  2541. _c(
  2542. "tis-button",
  2543. {
  2544. directives: [
  2545. {
  2546. name: "show",
  2547. rawName: "v-show",
  2548. value: _vm.selectionMode !== "dates",
  2549. expression: "selectionMode !== 'dates'"
  2550. }
  2551. ],
  2552. staticClass: "el-picker-panel__link-btn",
  2553. attrs: { size: "mini", type: "text" },
  2554. on: { click: _vm.changeToNow }
  2555. },
  2556. [
  2557. _vm._v(
  2558. "\n " +
  2559. _vm._s(_vm.t("el.datepicker.now")) +
  2560. "\n "
  2561. )
  2562. ]
  2563. ),
  2564. _c(
  2565. "tis-button",
  2566. {
  2567. staticClass: "el-picker-panel__link-btn",
  2568. attrs: { plain: "", size: "mini" },
  2569. on: { click: _vm.confirm }
  2570. },
  2571. [
  2572. _vm._v(
  2573. "\n " +
  2574. _vm._s(_vm.t("el.datepicker.confirm")) +
  2575. "\n "
  2576. )
  2577. ]
  2578. )
  2579. ],
  2580. 1
  2581. )
  2582. ]
  2583. )
  2584. ]
  2585. )
  2586. }
  2587. var staticRenderFns = []
  2588. render._withStripped = true
  2589. // CONCATENATED MODULE: ./packages/date-picker/src/panel/date.vue?vue&type=template&id=2440d4ea&
  2590. // EXTERNAL MODULE: external "tis-ui/lib/utils/date-util"
  2591. var date_util_ = __webpack_require__(8);
  2592. // EXTERNAL MODULE: external "tis-ui/lib/utils/clickoutside"
  2593. var clickoutside_ = __webpack_require__(61);
  2594. var clickoutside_default = /*#__PURE__*/__webpack_require__.n(clickoutside_);
  2595. // EXTERNAL MODULE: external "tis-ui/lib/mixins/locale"
  2596. var locale_ = __webpack_require__(38);
  2597. var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);
  2598. // EXTERNAL MODULE: ./packages/input/index.js + 6 modules
  2599. var input = __webpack_require__(52);
  2600. // EXTERNAL MODULE: ./packages/button/index.js + 5 modules
  2601. var packages_button = __webpack_require__(70);
  2602. // EXTERNAL MODULE: ./packages/date-picker/src/panel/time.vue + 4 modules
  2603. var panel_time = __webpack_require__(111);
  2604. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/year-table.vue?vue&type=template&id=c86ab5e0&
  2605. var year_tablevue_type_template_id_c86ab5e0_render = function() {
  2606. var _vm = this
  2607. var _h = _vm.$createElement
  2608. var _c = _vm._self._c || _h
  2609. return _c(
  2610. "table",
  2611. { staticClass: "el-year-table", on: { click: _vm.handleYearTableClick } },
  2612. [
  2613. _c("tbody", [
  2614. _c("tr", [
  2615. _c(
  2616. "td",
  2617. {
  2618. staticClass: "available",
  2619. class: _vm.getCellStyle(_vm.startYear + 0)
  2620. },
  2621. [_c("a", { staticClass: "cell" }, [_vm._v(_vm._s(_vm.startYear))])]
  2622. ),
  2623. _c(
  2624. "td",
  2625. {
  2626. staticClass: "available",
  2627. class: _vm.getCellStyle(_vm.startYear + 1)
  2628. },
  2629. [
  2630. _c("a", { staticClass: "cell" }, [
  2631. _vm._v(_vm._s(_vm.startYear + 1))
  2632. ])
  2633. ]
  2634. ),
  2635. _c(
  2636. "td",
  2637. {
  2638. staticClass: "available",
  2639. class: _vm.getCellStyle(_vm.startYear + 2)
  2640. },
  2641. [
  2642. _c("a", { staticClass: "cell" }, [
  2643. _vm._v(_vm._s(_vm.startYear + 2))
  2644. ])
  2645. ]
  2646. ),
  2647. _c(
  2648. "td",
  2649. {
  2650. staticClass: "available",
  2651. class: _vm.getCellStyle(_vm.startYear + 3)
  2652. },
  2653. [
  2654. _c("a", { staticClass: "cell" }, [
  2655. _vm._v(_vm._s(_vm.startYear + 3))
  2656. ])
  2657. ]
  2658. )
  2659. ]),
  2660. _c("tr", [
  2661. _c(
  2662. "td",
  2663. {
  2664. staticClass: "available",
  2665. class: _vm.getCellStyle(_vm.startYear + 4)
  2666. },
  2667. [
  2668. _c("a", { staticClass: "cell" }, [
  2669. _vm._v(_vm._s(_vm.startYear + 4))
  2670. ])
  2671. ]
  2672. ),
  2673. _c(
  2674. "td",
  2675. {
  2676. staticClass: "available",
  2677. class: _vm.getCellStyle(_vm.startYear + 5)
  2678. },
  2679. [
  2680. _c("a", { staticClass: "cell" }, [
  2681. _vm._v(_vm._s(_vm.startYear + 5))
  2682. ])
  2683. ]
  2684. ),
  2685. _c(
  2686. "td",
  2687. {
  2688. staticClass: "available",
  2689. class: _vm.getCellStyle(_vm.startYear + 6)
  2690. },
  2691. [
  2692. _c("a", { staticClass: "cell" }, [
  2693. _vm._v(_vm._s(_vm.startYear + 6))
  2694. ])
  2695. ]
  2696. ),
  2697. _c(
  2698. "td",
  2699. {
  2700. staticClass: "available",
  2701. class: _vm.getCellStyle(_vm.startYear + 7)
  2702. },
  2703. [
  2704. _c("a", { staticClass: "cell" }, [
  2705. _vm._v(_vm._s(_vm.startYear + 7))
  2706. ])
  2707. ]
  2708. )
  2709. ]),
  2710. _c("tr", [
  2711. _c(
  2712. "td",
  2713. {
  2714. staticClass: "available",
  2715. class: _vm.getCellStyle(_vm.startYear + 8)
  2716. },
  2717. [
  2718. _c("a", { staticClass: "cell" }, [
  2719. _vm._v(_vm._s(_vm.startYear + 8))
  2720. ])
  2721. ]
  2722. ),
  2723. _c(
  2724. "td",
  2725. {
  2726. staticClass: "available",
  2727. class: _vm.getCellStyle(_vm.startYear + 9)
  2728. },
  2729. [
  2730. _c("a", { staticClass: "cell" }, [
  2731. _vm._v(_vm._s(_vm.startYear + 9))
  2732. ])
  2733. ]
  2734. ),
  2735. _c("td"),
  2736. _c("td")
  2737. ])
  2738. ])
  2739. ]
  2740. )
  2741. }
  2742. var year_tablevue_type_template_id_c86ab5e0_staticRenderFns = []
  2743. year_tablevue_type_template_id_c86ab5e0_render._withStripped = true
  2744. // CONCATENATED MODULE: ./packages/date-picker/src/basic/year-table.vue?vue&type=template&id=c86ab5e0&
  2745. // EXTERNAL MODULE: external "tis-ui/lib/utils/dom"
  2746. var dom_ = __webpack_require__(7);
  2747. // EXTERNAL MODULE: external "tis-ui/lib/utils/util"
  2748. var util_ = __webpack_require__(10);
  2749. // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/year-table.vue?vue&type=script&lang=js&
  2750. //
  2751. //
  2752. //
  2753. //
  2754. //
  2755. //
  2756. //
  2757. //
  2758. //
  2759. //
  2760. //
  2761. //
  2762. //
  2763. //
  2764. //
  2765. //
  2766. //
  2767. //
  2768. //
  2769. //
  2770. //
  2771. //
  2772. //
  2773. //
  2774. //
  2775. //
  2776. //
  2777. //
  2778. //
  2779. //
  2780. //
  2781. //
  2782. //
  2783. //
  2784. //
  2785. //
  2786. //
  2787. //
  2788. //
  2789. //
  2790. //
  2791. //
  2792. //
  2793. //
  2794. //
  2795. var year_tablevue_type_script_lang_js_datesInYear = function datesInYear(year) {
  2796. var numOfDays = Object(date_util_["getDayCountOfYear"])(year);
  2797. var firstDay = new Date(year, 0, 1);
  2798. return Object(date_util_["range"])(numOfDays).map(function (n) {
  2799. return Object(date_util_["nextDate"])(firstDay, n);
  2800. });
  2801. };
  2802. /* harmony default export */ var year_tablevue_type_script_lang_js_ = ({
  2803. props: {
  2804. disabledDate: {},
  2805. value: {},
  2806. defaultValue: {
  2807. validator: function validator(val) {
  2808. // null or valid Date Object
  2809. return val === null || val instanceof Date && Object(date_util_["isDate"])(val);
  2810. }
  2811. },
  2812. date: {}
  2813. },
  2814. computed: {
  2815. startYear: function startYear() {
  2816. return Math.floor(this.date.getFullYear() / 10) * 10;
  2817. }
  2818. },
  2819. methods: {
  2820. getCellStyle: function getCellStyle(year) {
  2821. var style = {};
  2822. var today = new Date();
  2823. style.disabled = typeof this.disabledDate === 'function' ? year_tablevue_type_script_lang_js_datesInYear(year).every(this.disabledDate) : false;
  2824. style.current = Object(util_["arrayFindIndex"])(Object(util_["coerceTruthyValueToArray"])(this.value), function (date) {
  2825. return date.getFullYear() === year;
  2826. }) >= 0;
  2827. style.today = today.getFullYear() === year;
  2828. style.default = this.defaultValue && this.defaultValue.getFullYear() === year;
  2829. return style;
  2830. },
  2831. handleYearTableClick: function handleYearTableClick(event) {
  2832. var target = event.target;
  2833. if (target.tagName === 'A') {
  2834. if (Object(dom_["hasClass"])(target.parentNode, 'disabled')) return;
  2835. var year = target.textContent || target.innerText;
  2836. this.$emit('pick', Number(year));
  2837. }
  2838. }
  2839. }
  2840. });
  2841. // CONCATENATED MODULE: ./packages/date-picker/src/basic/year-table.vue?vue&type=script&lang=js&
  2842. /* harmony default export */ var basic_year_tablevue_type_script_lang_js_ = (year_tablevue_type_script_lang_js_);
  2843. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  2844. var componentNormalizer = __webpack_require__(2);
  2845. // CONCATENATED MODULE: ./packages/date-picker/src/basic/year-table.vue
  2846. /* normalize component */
  2847. var component = Object(componentNormalizer["a" /* default */])(
  2848. basic_year_tablevue_type_script_lang_js_,
  2849. year_tablevue_type_template_id_c86ab5e0_render,
  2850. year_tablevue_type_template_id_c86ab5e0_staticRenderFns,
  2851. false,
  2852. null,
  2853. null,
  2854. null
  2855. )
  2856. /* hot reload */
  2857. if (false) { var api; }
  2858. component.options.__file = "packages/date-picker/src/basic/year-table.vue"
  2859. /* harmony default export */ var year_table = (component.exports);
  2860. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/month-table.vue?vue&type=template&id=654d4f42&
  2861. var month_tablevue_type_template_id_654d4f42_render = function() {
  2862. var _vm = this
  2863. var _h = _vm.$createElement
  2864. var _c = _vm._self._c || _h
  2865. return _c(
  2866. "table",
  2867. {
  2868. staticClass: "el-month-table",
  2869. on: { click: _vm.handleMonthTableClick, mousemove: _vm.handleMouseMove }
  2870. },
  2871. [
  2872. _c(
  2873. "tbody",
  2874. _vm._l(_vm.rows, function(row, key) {
  2875. return _c(
  2876. "tr",
  2877. { key: key },
  2878. _vm._l(row, function(cell, key) {
  2879. return _c("td", { key: key, class: _vm.getCellStyle(cell) }, [
  2880. _c("div", [
  2881. _c("a", { staticClass: "cell" }, [
  2882. _vm._v(
  2883. _vm._s(
  2884. _vm.t("el.datepicker.months." + _vm.months[cell.text])
  2885. )
  2886. )
  2887. ])
  2888. ])
  2889. ])
  2890. }),
  2891. 0
  2892. )
  2893. }),
  2894. 0
  2895. )
  2896. ]
  2897. )
  2898. }
  2899. var month_tablevue_type_template_id_654d4f42_staticRenderFns = []
  2900. month_tablevue_type_template_id_654d4f42_render._withStripped = true
  2901. // CONCATENATED MODULE: ./packages/date-picker/src/basic/month-table.vue?vue&type=template&id=654d4f42&
  2902. // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/month-table.vue?vue&type=script&lang=js&
  2903. //
  2904. //
  2905. //
  2906. //
  2907. //
  2908. //
  2909. //
  2910. //
  2911. //
  2912. //
  2913. //
  2914. //
  2915. //
  2916. //
  2917. var month_tablevue_type_script_lang_js_datesInMonth = function datesInMonth(year, month) {
  2918. var numOfDays = Object(date_util_["getDayCountOfMonth"])(year, month);
  2919. var firstDay = new Date(year, month, 1);
  2920. return Object(date_util_["range"])(numOfDays).map(function (n) {
  2921. return Object(date_util_["nextDate"])(firstDay, n);
  2922. });
  2923. };
  2924. var clearDate = function clearDate(date) {
  2925. return new Date(date.getFullYear(), date.getMonth());
  2926. };
  2927. var getMonthTimestamp = function getMonthTimestamp(time) {
  2928. if (typeof time === 'number' || typeof time === 'string') {
  2929. return clearDate(new Date(time)).getTime();
  2930. } else if (time instanceof Date) {
  2931. return clearDate(time).getTime();
  2932. } else {
  2933. return NaN;
  2934. }
  2935. };
  2936. /* harmony default export */ var month_tablevue_type_script_lang_js_ = ({
  2937. props: {
  2938. disabledDate: {},
  2939. value: {},
  2940. selectionMode: {
  2941. default: 'month'
  2942. },
  2943. minDate: {},
  2944. maxDate: {},
  2945. defaultValue: {
  2946. validator: function validator(val) {
  2947. // null or valid Date Object
  2948. return val === null || Object(date_util_["isDate"])(val) || Array.isArray(val) && val.every(date_util_["isDate"]);
  2949. }
  2950. },
  2951. date: {},
  2952. rangeState: {
  2953. default: function _default() {
  2954. return {
  2955. endDate: null,
  2956. selecting: false
  2957. };
  2958. }
  2959. }
  2960. },
  2961. mixins: [locale_default.a],
  2962. watch: {
  2963. 'rangeState.endDate': function rangeStateEndDate(newVal) {
  2964. this.markRange(this.minDate, newVal);
  2965. },
  2966. minDate: function minDate(newVal, oldVal) {
  2967. if (getMonthTimestamp(newVal) !== getMonthTimestamp(oldVal)) {
  2968. this.markRange(this.minDate, this.maxDate);
  2969. }
  2970. },
  2971. maxDate: function maxDate(newVal, oldVal) {
  2972. if (getMonthTimestamp(newVal) !== getMonthTimestamp(oldVal)) {
  2973. this.markRange(this.minDate, this.maxDate);
  2974. }
  2975. }
  2976. },
  2977. data: function data() {
  2978. return {
  2979. months: ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'],
  2980. tableRows: [[], [], []],
  2981. lastRow: null,
  2982. lastColumn: null
  2983. };
  2984. },
  2985. methods: {
  2986. cellMatchesDate: function cellMatchesDate(cell, date) {
  2987. var value = new Date(date);
  2988. return this.date.getFullYear() === value.getFullYear() && Number(cell.text) === value.getMonth();
  2989. },
  2990. getCellStyle: function getCellStyle(cell) {
  2991. var _this = this;
  2992. var style = {};
  2993. var year = this.date.getFullYear();
  2994. var today = new Date();
  2995. var month = cell.text;
  2996. var defaultValue = this.defaultValue ? Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue] : [];
  2997. style.disabled = typeof this.disabledDate === 'function' ? month_tablevue_type_script_lang_js_datesInMonth(year, month).every(this.disabledDate) : false;
  2998. style.current = Object(util_["arrayFindIndex"])(Object(util_["coerceTruthyValueToArray"])(this.value), function (date) {
  2999. return date.getFullYear() === year && date.getMonth() === month;
  3000. }) >= 0;
  3001. style.today = today.getFullYear() === year && today.getMonth() === month;
  3002. style.default = defaultValue.some(function (date) {
  3003. return _this.cellMatchesDate(cell, date);
  3004. });
  3005. if (cell.inRange) {
  3006. style['in-range'] = true;
  3007. if (cell.start) {
  3008. style['start-date'] = true;
  3009. }
  3010. if (cell.end) {
  3011. style['end-date'] = true;
  3012. }
  3013. }
  3014. return style;
  3015. },
  3016. getMonthOfCell: function getMonthOfCell(month) {
  3017. var year = this.date.getFullYear();
  3018. return new Date(year, month, 1);
  3019. },
  3020. markRange: function markRange(minDate, maxDate) {
  3021. minDate = getMonthTimestamp(minDate);
  3022. maxDate = getMonthTimestamp(maxDate) || minDate;
  3023. var _ref = [Math.min(minDate, maxDate), Math.max(minDate, maxDate)];
  3024. minDate = _ref[0];
  3025. maxDate = _ref[1];
  3026. var rows = this.rows;
  3027. for (var i = 0, k = rows.length; i < k; i++) {
  3028. var row = rows[i];
  3029. for (var j = 0, l = row.length; j < l; j++) {
  3030. var cell = row[j];
  3031. var index = i * 4 + j;
  3032. var time = new Date(this.date.getFullYear(), index).getTime();
  3033. cell.inRange = minDate && time >= minDate && time <= maxDate;
  3034. cell.start = minDate && time === minDate;
  3035. cell.end = maxDate && time === maxDate;
  3036. }
  3037. }
  3038. },
  3039. handleMouseMove: function handleMouseMove(event) {
  3040. if (!this.rangeState.selecting) return;
  3041. var target = event.target;
  3042. if (target.tagName === 'A') {
  3043. target = target.parentNode.parentNode;
  3044. }
  3045. if (target.tagName === 'DIV') {
  3046. target = target.parentNode;
  3047. }
  3048. if (target.tagName !== 'TD') return;
  3049. var row = target.parentNode.rowIndex;
  3050. var column = target.cellIndex;
  3051. // can not select disabled date
  3052. if (this.rows[row][column].disabled) return;
  3053. // only update rangeState when mouse moves to a new cell
  3054. // this avoids frequent Date object creation and improves performance
  3055. if (row !== this.lastRow || column !== this.lastColumn) {
  3056. this.lastRow = row;
  3057. this.lastColumn = column;
  3058. this.$emit('changerange', {
  3059. minDate: this.minDate,
  3060. maxDate: this.maxDate,
  3061. rangeState: {
  3062. selecting: true,
  3063. endDate: this.getMonthOfCell(row * 4 + column)
  3064. }
  3065. });
  3066. }
  3067. },
  3068. handleMonthTableClick: function handleMonthTableClick(event) {
  3069. var target = event.target;
  3070. if (target.tagName === 'A') {
  3071. target = target.parentNode.parentNode;
  3072. }
  3073. if (target.tagName === 'DIV') {
  3074. target = target.parentNode;
  3075. }
  3076. if (target.tagName !== 'TD') return;
  3077. if (Object(dom_["hasClass"])(target, 'disabled')) return;
  3078. var column = target.cellIndex;
  3079. var row = target.parentNode.rowIndex;
  3080. var month = row * 4 + column;
  3081. var newDate = this.getMonthOfCell(month);
  3082. if (this.selectionMode === 'range') {
  3083. if (!this.rangeState.selecting) {
  3084. this.$emit('pick', { minDate: newDate, maxDate: null });
  3085. this.rangeState.selecting = true;
  3086. } else {
  3087. if (newDate >= this.minDate) {
  3088. this.$emit('pick', { minDate: this.minDate, maxDate: newDate });
  3089. } else {
  3090. this.$emit('pick', { minDate: newDate, maxDate: this.minDate });
  3091. }
  3092. this.rangeState.selecting = false;
  3093. }
  3094. } else {
  3095. this.$emit('pick', month);
  3096. }
  3097. }
  3098. },
  3099. computed: {
  3100. rows: function rows() {
  3101. var _this2 = this;
  3102. // TODO: refactory rows / getCellClasses
  3103. var rows = this.tableRows;
  3104. var disabledDate = this.disabledDate;
  3105. var selectedDate = [];
  3106. var now = getMonthTimestamp(new Date());
  3107. for (var i = 0; i < 3; i++) {
  3108. var row = rows[i];
  3109. var _loop = function _loop(j) {
  3110. var cell = row[j];
  3111. if (!cell) {
  3112. cell = { row: i, column: j, type: 'normal', inRange: false, start: false, end: false };
  3113. }
  3114. cell.type = 'normal';
  3115. var index = i * 4 + j;
  3116. var time = new Date(_this2.date.getFullYear(), index).getTime();
  3117. cell.inRange = time >= getMonthTimestamp(_this2.minDate) && time <= getMonthTimestamp(_this2.maxDate);
  3118. cell.start = _this2.minDate && time === getMonthTimestamp(_this2.minDate);
  3119. cell.end = _this2.maxDate && time === getMonthTimestamp(_this2.maxDate);
  3120. var isToday = time === now;
  3121. if (isToday) {
  3122. cell.type = 'today';
  3123. }
  3124. cell.text = index;
  3125. var cellDate = new Date(time);
  3126. cell.disabled = typeof disabledDate === 'function' && disabledDate(cellDate);
  3127. cell.selected = Object(util_["arrayFind"])(selectedDate, function (date) {
  3128. return date.getTime() === cellDate.getTime();
  3129. });
  3130. _this2.$set(row, j, cell);
  3131. };
  3132. for (var j = 0; j < 4; j++) {
  3133. _loop(j);
  3134. }
  3135. }
  3136. return rows;
  3137. }
  3138. }
  3139. });
  3140. // CONCATENATED MODULE: ./packages/date-picker/src/basic/month-table.vue?vue&type=script&lang=js&
  3141. /* harmony default export */ var basic_month_tablevue_type_script_lang_js_ = (month_tablevue_type_script_lang_js_);
  3142. // CONCATENATED MODULE: ./packages/date-picker/src/basic/month-table.vue
  3143. /* normalize component */
  3144. var month_table_component = Object(componentNormalizer["a" /* default */])(
  3145. basic_month_tablevue_type_script_lang_js_,
  3146. month_tablevue_type_template_id_654d4f42_render,
  3147. month_tablevue_type_template_id_654d4f42_staticRenderFns,
  3148. false,
  3149. null,
  3150. null,
  3151. null
  3152. )
  3153. /* hot reload */
  3154. if (false) { var month_table_api; }
  3155. month_table_component.options.__file = "packages/date-picker/src/basic/month-table.vue"
  3156. /* harmony default export */ var month_table = (month_table_component.exports);
  3157. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/date-table.vue?vue&type=template&id=5d1f3341&
  3158. var date_tablevue_type_template_id_5d1f3341_render = function() {
  3159. var _vm = this
  3160. var _h = _vm.$createElement
  3161. var _c = _vm._self._c || _h
  3162. return _c(
  3163. "table",
  3164. {
  3165. staticClass: "el-date-table",
  3166. class: { "is-week-mode": _vm.selectionMode === "week" },
  3167. attrs: { cellspacing: "0", cellpadding: "0" },
  3168. on: { click: _vm.handleClick, mousemove: _vm.handleMouseMove }
  3169. },
  3170. [
  3171. _c(
  3172. "tbody",
  3173. [
  3174. _c(
  3175. "tr",
  3176. [
  3177. _vm.showWeekNumber
  3178. ? _c("th", [_vm._v(_vm._s(_vm.t("el.datepicker.week")))])
  3179. : _vm._e(),
  3180. _vm._l(_vm.WEEKS, function(week, key) {
  3181. return _c("th", { key: key }, [
  3182. _vm._v(_vm._s(_vm.t("el.datepicker.weeks." + week)))
  3183. ])
  3184. })
  3185. ],
  3186. 2
  3187. ),
  3188. _vm._l(_vm.rows, function(row, key) {
  3189. return _c(
  3190. "tr",
  3191. {
  3192. key: key,
  3193. staticClass: "el-date-table__row",
  3194. class: { current: _vm.isWeekActive(row[1]) }
  3195. },
  3196. _vm._l(row, function(cell, key) {
  3197. return _c("td", { key: key, class: _vm.getCellClasses(cell) }, [
  3198. _c("div", [
  3199. _c("span", [
  3200. _vm._v("\n " + _vm._s(cell.text) + "\n ")
  3201. ])
  3202. ])
  3203. ])
  3204. }),
  3205. 0
  3206. )
  3207. })
  3208. ],
  3209. 2
  3210. )
  3211. ]
  3212. )
  3213. }
  3214. var date_tablevue_type_template_id_5d1f3341_staticRenderFns = []
  3215. date_tablevue_type_template_id_5d1f3341_render._withStripped = true
  3216. // CONCATENATED MODULE: ./packages/date-picker/src/basic/date-table.vue?vue&type=template&id=5d1f3341&
  3217. // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/basic/date-table.vue?vue&type=script&lang=js&
  3218. //
  3219. //
  3220. //
  3221. //
  3222. //
  3223. //
  3224. //
  3225. //
  3226. //
  3227. //
  3228. //
  3229. //
  3230. //
  3231. //
  3232. //
  3233. //
  3234. //
  3235. //
  3236. //
  3237. //
  3238. //
  3239. //
  3240. //
  3241. //
  3242. //
  3243. //
  3244. //
  3245. //
  3246. //
  3247. //
  3248. //
  3249. //
  3250. //
  3251. var _WEEKS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
  3252. var date_tablevue_type_script_lang_js_getDateTimestamp = function getDateTimestamp(time) {
  3253. if (typeof time === 'number' || typeof time === 'string') {
  3254. return Object(date_util_["clearTime"])(new Date(time)).getTime();
  3255. } else if (time instanceof Date) {
  3256. return Object(date_util_["clearTime"])(time).getTime();
  3257. } else {
  3258. return NaN;
  3259. }
  3260. };
  3261. // remove the first element that satisfies `pred` from arr
  3262. // return a new array if modification occurs
  3263. // return the original array otherwise
  3264. var date_tablevue_type_script_lang_js_removeFromArray = function removeFromArray(arr, pred) {
  3265. var idx = typeof pred === 'function' ? Object(util_["arrayFindIndex"])(arr, pred) : arr.indexOf(pred);
  3266. return idx >= 0 ? [].concat(arr.slice(0, idx), arr.slice(idx + 1)) : arr;
  3267. };
  3268. /* harmony default export */ var date_tablevue_type_script_lang_js_ = ({
  3269. mixins: [locale_default.a],
  3270. props: {
  3271. firstDayOfWeek: {
  3272. default: 7,
  3273. type: Number,
  3274. validator: function validator(val) {
  3275. return val >= 1 && val <= 7;
  3276. }
  3277. },
  3278. value: {},
  3279. defaultValue: {
  3280. validator: function validator(val) {
  3281. // either: null, valid Date object, Array of valid Date objects
  3282. return val === null || Object(date_util_["isDate"])(val) || Array.isArray(val) && val.every(date_util_["isDate"]);
  3283. }
  3284. },
  3285. date: {},
  3286. selectionMode: {
  3287. default: 'day'
  3288. },
  3289. showWeekNumber: {
  3290. type: Boolean,
  3291. default: false
  3292. },
  3293. disabledDate: {},
  3294. cellClassName: {},
  3295. minDate: {},
  3296. maxDate: {},
  3297. rangeState: {
  3298. default: function _default() {
  3299. return {
  3300. endDate: null,
  3301. selecting: false
  3302. };
  3303. }
  3304. }
  3305. },
  3306. computed: {
  3307. offsetDay: function offsetDay() {
  3308. var week = this.firstDayOfWeek;
  3309. // 周日为界限,左右偏移的天数,3217654 例如周一就是 -1,目的是调整前两行日期的位置
  3310. return week > 3 ? 7 - week : -week;
  3311. },
  3312. WEEKS: function WEEKS() {
  3313. var week = this.firstDayOfWeek;
  3314. return _WEEKS.concat(_WEEKS).slice(week, week + 7);
  3315. },
  3316. year: function year() {
  3317. return this.date.getFullYear();
  3318. },
  3319. month: function month() {
  3320. return this.date.getMonth();
  3321. },
  3322. startDate: function startDate() {
  3323. return Object(date_util_["getStartDateOfMonth"])(this.year, this.month);
  3324. },
  3325. rows: function rows() {
  3326. var _this = this;
  3327. // TODO: refactory rows / getCellClasses
  3328. var date = new Date(this.year, this.month, 1);
  3329. var day = Object(date_util_["getFirstDayOfMonth"])(date); // day of first day
  3330. var dateCountOfMonth = Object(date_util_["getDayCountOfMonth"])(date.getFullYear(), date.getMonth());
  3331. var dateCountOfLastMonth = Object(date_util_["getDayCountOfMonth"])(date.getFullYear(), date.getMonth() === 0 ? 11 : date.getMonth() - 1);
  3332. day = day === 0 ? 7 : day;
  3333. var offset = this.offsetDay;
  3334. var rows = this.tableRows;
  3335. var count = 1;
  3336. var startDate = this.startDate;
  3337. var disabledDate = this.disabledDate;
  3338. var cellClassName = this.cellClassName;
  3339. var selectedDate = this.selectionMode === 'dates' ? Object(util_["coerceTruthyValueToArray"])(this.value) : [];
  3340. var now = date_tablevue_type_script_lang_js_getDateTimestamp(new Date());
  3341. for (var i = 0; i < 6; i++) {
  3342. var row = rows[i];
  3343. if (this.showWeekNumber) {
  3344. if (!row[0]) {
  3345. row[0] = { type: 'week', text: Object(date_util_["getWeekNumber"])(Object(date_util_["nextDate"])(startDate, i * 7 + 1)) };
  3346. }
  3347. }
  3348. var _loop = function _loop(j) {
  3349. var cell = row[_this.showWeekNumber ? j + 1 : j];
  3350. if (!cell) {
  3351. cell = { row: i, column: j, type: 'normal', inRange: false, start: false, end: false };
  3352. }
  3353. cell.type = 'normal';
  3354. var index = i * 7 + j;
  3355. var time = Object(date_util_["nextDate"])(startDate, index - offset).getTime();
  3356. cell.inRange = time >= date_tablevue_type_script_lang_js_getDateTimestamp(_this.minDate) && time <= date_tablevue_type_script_lang_js_getDateTimestamp(_this.maxDate);
  3357. cell.start = _this.minDate && time === date_tablevue_type_script_lang_js_getDateTimestamp(_this.minDate);
  3358. cell.end = _this.maxDate && time === date_tablevue_type_script_lang_js_getDateTimestamp(_this.maxDate);
  3359. var isToday = time === now;
  3360. if (isToday) {
  3361. cell.type = 'today';
  3362. }
  3363. if (i >= 0 && i <= 1) {
  3364. var numberOfDaysFromPreviousMonth = day + offset < 0 ? 7 + day + offset : day + offset;
  3365. if (j + i * 7 >= numberOfDaysFromPreviousMonth) {
  3366. cell.text = count++;
  3367. } else {
  3368. cell.text = dateCountOfLastMonth - (numberOfDaysFromPreviousMonth - j % 7) + 1 + i * 7;
  3369. cell.type = 'prev-month';
  3370. }
  3371. } else {
  3372. if (count <= dateCountOfMonth) {
  3373. cell.text = count++;
  3374. } else {
  3375. cell.text = count++ - dateCountOfMonth;
  3376. cell.type = 'next-month';
  3377. }
  3378. }
  3379. var cellDate = new Date(time);
  3380. cell.disabled = typeof disabledDate === 'function' && disabledDate(cellDate);
  3381. cell.selected = Object(util_["arrayFind"])(selectedDate, function (date) {
  3382. return date.getTime() === cellDate.getTime();
  3383. });
  3384. cell.customClass = typeof cellClassName === 'function' && cellClassName(cellDate);
  3385. _this.$set(row, _this.showWeekNumber ? j + 1 : j, cell);
  3386. };
  3387. for (var j = 0; j < 7; j++) {
  3388. _loop(j);
  3389. }
  3390. if (this.selectionMode === 'week') {
  3391. var start = this.showWeekNumber ? 1 : 0;
  3392. var end = this.showWeekNumber ? 7 : 6;
  3393. var isWeekActive = this.isWeekActive(row[start + 1]);
  3394. row[start].inRange = isWeekActive;
  3395. row[start].start = isWeekActive;
  3396. row[end].inRange = isWeekActive;
  3397. row[end].end = isWeekActive;
  3398. }
  3399. }
  3400. return rows;
  3401. }
  3402. },
  3403. watch: {
  3404. 'rangeState.endDate': function rangeStateEndDate(newVal) {
  3405. this.markRange(this.minDate, newVal);
  3406. },
  3407. minDate: function minDate(newVal, oldVal) {
  3408. if (date_tablevue_type_script_lang_js_getDateTimestamp(newVal) !== date_tablevue_type_script_lang_js_getDateTimestamp(oldVal)) {
  3409. this.markRange(this.minDate, this.maxDate);
  3410. }
  3411. },
  3412. maxDate: function maxDate(newVal, oldVal) {
  3413. if (date_tablevue_type_script_lang_js_getDateTimestamp(newVal) !== date_tablevue_type_script_lang_js_getDateTimestamp(oldVal)) {
  3414. this.markRange(this.minDate, this.maxDate);
  3415. }
  3416. }
  3417. },
  3418. data: function data() {
  3419. return {
  3420. tableRows: [[], [], [], [], [], []],
  3421. lastRow: null,
  3422. lastColumn: null
  3423. };
  3424. },
  3425. methods: {
  3426. cellMatchesDate: function cellMatchesDate(cell, date) {
  3427. var value = new Date(date);
  3428. return this.year === value.getFullYear() && this.month === value.getMonth() && Number(cell.text) === value.getDate();
  3429. },
  3430. getCellClasses: function getCellClasses(cell) {
  3431. var _this2 = this;
  3432. var selectionMode = this.selectionMode;
  3433. var defaultValue = this.defaultValue ? Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue] : [];
  3434. var classes = [];
  3435. if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {
  3436. classes.push('available');
  3437. if (cell.type === 'today') {
  3438. classes.push('today');
  3439. }
  3440. } else {
  3441. classes.push(cell.type);
  3442. }
  3443. if (cell.type === 'normal' && defaultValue.some(function (date) {
  3444. return _this2.cellMatchesDate(cell, date);
  3445. })) {
  3446. classes.push('default');
  3447. }
  3448. if (selectionMode === 'day' && (cell.type === 'normal' || cell.type === 'today') && this.cellMatchesDate(cell, this.value)) {
  3449. classes.push('current');
  3450. }
  3451. if (cell.inRange && (cell.type === 'normal' || cell.type === 'today' || this.selectionMode === 'week')) {
  3452. classes.push('in-range');
  3453. if (cell.start) {
  3454. classes.push('start-date');
  3455. }
  3456. if (cell.end) {
  3457. classes.push('end-date');
  3458. }
  3459. }
  3460. if (cell.disabled) {
  3461. classes.push('disabled');
  3462. }
  3463. if (cell.selected) {
  3464. classes.push('selected');
  3465. }
  3466. if (cell.customClass) {
  3467. classes.push(cell.customClass);
  3468. }
  3469. return classes.join(' ');
  3470. },
  3471. getDateOfCell: function getDateOfCell(row, column) {
  3472. var offsetFromStart = row * 7 + (column - (this.showWeekNumber ? 1 : 0)) - this.offsetDay;
  3473. return Object(date_util_["nextDate"])(this.startDate, offsetFromStart);
  3474. },
  3475. isWeekActive: function isWeekActive(cell) {
  3476. if (this.selectionMode !== 'week') return false;
  3477. var newDate = new Date(this.year, this.month, 1);
  3478. var year = newDate.getFullYear();
  3479. var month = newDate.getMonth();
  3480. if (cell.type === 'prev-month') {
  3481. newDate.setMonth(month === 0 ? 11 : month - 1);
  3482. newDate.setFullYear(month === 0 ? year - 1 : year);
  3483. }
  3484. if (cell.type === 'next-month') {
  3485. newDate.setMonth(month === 11 ? 0 : month + 1);
  3486. newDate.setFullYear(month === 11 ? year + 1 : year);
  3487. }
  3488. newDate.setDate(parseInt(cell.text, 10));
  3489. if (Object(date_util_["isDate"])(this.value)) {
  3490. var dayOffset = (this.value.getDay() - this.firstDayOfWeek + 7) % 7 - 1;
  3491. var weekDate = Object(date_util_["prevDate"])(this.value, dayOffset);
  3492. return weekDate.getTime() === newDate.getTime();
  3493. }
  3494. return false;
  3495. },
  3496. markRange: function markRange(minDate, maxDate) {
  3497. minDate = date_tablevue_type_script_lang_js_getDateTimestamp(minDate);
  3498. maxDate = date_tablevue_type_script_lang_js_getDateTimestamp(maxDate) || minDate;
  3499. var _ref = [Math.min(minDate, maxDate), Math.max(minDate, maxDate)];
  3500. minDate = _ref[0];
  3501. maxDate = _ref[1];
  3502. var startDate = this.startDate;
  3503. var rows = this.rows;
  3504. for (var i = 0, k = rows.length; i < k; i++) {
  3505. var row = rows[i];
  3506. for (var j = 0, l = row.length; j < l; j++) {
  3507. if (this.showWeekNumber && j === 0) continue;
  3508. var _cell = row[j];
  3509. var index = i * 7 + j + (this.showWeekNumber ? -1 : 0);
  3510. var time = Object(date_util_["nextDate"])(startDate, index - this.offsetDay).getTime();
  3511. _cell.inRange = minDate && time >= minDate && time <= maxDate;
  3512. _cell.start = minDate && time === minDate;
  3513. _cell.end = maxDate && time === maxDate;
  3514. }
  3515. }
  3516. },
  3517. handleMouseMove: function handleMouseMove(event) {
  3518. if (!this.rangeState.selecting) return;
  3519. var target = event.target;
  3520. if (target.tagName === 'SPAN') {
  3521. target = target.parentNode.parentNode;
  3522. }
  3523. if (target.tagName === 'DIV') {
  3524. target = target.parentNode;
  3525. }
  3526. if (target.tagName !== 'TD') return;
  3527. var row = target.parentNode.rowIndex - 1;
  3528. var column = target.cellIndex;
  3529. // can not select disabled date
  3530. if (this.rows[row][column].disabled) return;
  3531. // only update rangeState when mouse moves to a new cell
  3532. // this avoids frequent Date object creation and improves performance
  3533. if (row !== this.lastRow || column !== this.lastColumn) {
  3534. this.lastRow = row;
  3535. this.lastColumn = column;
  3536. this.$emit('changerange', {
  3537. minDate: this.minDate,
  3538. maxDate: this.maxDate,
  3539. rangeState: {
  3540. selecting: true,
  3541. endDate: this.getDateOfCell(row, column)
  3542. }
  3543. });
  3544. }
  3545. },
  3546. handleClick: function handleClick(event) {
  3547. var target = event.target;
  3548. if (target.tagName === 'SPAN') {
  3549. target = target.parentNode.parentNode;
  3550. }
  3551. if (target.tagName === 'DIV') {
  3552. target = target.parentNode;
  3553. }
  3554. if (target.tagName !== 'TD') return;
  3555. var row = target.parentNode.rowIndex - 1;
  3556. var column = this.selectionMode === 'week' ? 1 : target.cellIndex;
  3557. var cell = this.rows[row][column];
  3558. if (cell.disabled || cell.type === 'week') return;
  3559. var newDate = this.getDateOfCell(row, column);
  3560. if (this.selectionMode === 'range') {
  3561. if (!this.rangeState.selecting) {
  3562. this.$emit('pick', { minDate: newDate, maxDate: null });
  3563. this.rangeState.selecting = true;
  3564. } else {
  3565. if (newDate >= this.minDate) {
  3566. this.$emit('pick', { minDate: this.minDate, maxDate: newDate });
  3567. } else {
  3568. this.$emit('pick', { minDate: newDate, maxDate: this.minDate });
  3569. }
  3570. this.rangeState.selecting = false;
  3571. }
  3572. } else if (this.selectionMode === 'day') {
  3573. this.$emit('pick', newDate);
  3574. } else if (this.selectionMode === 'week') {
  3575. var weekNumber = Object(date_util_["getWeekNumber"])(newDate);
  3576. var value = newDate.getFullYear() + 'w' + weekNumber;
  3577. this.$emit('pick', {
  3578. year: newDate.getFullYear(),
  3579. week: weekNumber,
  3580. value: value,
  3581. date: newDate
  3582. });
  3583. } else if (this.selectionMode === 'dates') {
  3584. var _value = this.value || [];
  3585. var newValue = cell.selected ? date_tablevue_type_script_lang_js_removeFromArray(_value, function (date) {
  3586. return date.getTime() === newDate.getTime();
  3587. }) : [].concat(_value, [newDate]);
  3588. this.$emit('pick', newValue);
  3589. }
  3590. }
  3591. }
  3592. });
  3593. // CONCATENATED MODULE: ./packages/date-picker/src/basic/date-table.vue?vue&type=script&lang=js&
  3594. /* harmony default export */ var basic_date_tablevue_type_script_lang_js_ = (date_tablevue_type_script_lang_js_);
  3595. // CONCATENATED MODULE: ./packages/date-picker/src/basic/date-table.vue
  3596. /* normalize component */
  3597. var date_table_component = Object(componentNormalizer["a" /* default */])(
  3598. basic_date_tablevue_type_script_lang_js_,
  3599. date_tablevue_type_template_id_5d1f3341_render,
  3600. date_tablevue_type_template_id_5d1f3341_staticRenderFns,
  3601. false,
  3602. null,
  3603. null,
  3604. null
  3605. )
  3606. /* hot reload */
  3607. if (false) { var date_table_api; }
  3608. date_table_component.options.__file = "packages/date-picker/src/basic/date-table.vue"
  3609. /* harmony default export */ var date_table = (date_table_component.exports);
  3610. // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/date.vue?vue&type=script&lang=js&
  3611. //
  3612. //
  3613. //
  3614. //
  3615. //
  3616. //
  3617. //
  3618. //
  3619. //
  3620. //
  3621. //
  3622. //
  3623. //
  3624. //
  3625. //
  3626. //
  3627. //
  3628. //
  3629. //
  3630. //
  3631. //
  3632. //
  3633. //
  3634. //
  3635. //
  3636. //
  3637. //
  3638. //
  3639. //
  3640. //
  3641. //
  3642. //
  3643. //
  3644. //
  3645. //
  3646. //
  3647. //
  3648. //
  3649. //
  3650. //
  3651. //
  3652. //
  3653. //
  3654. //
  3655. //
  3656. //
  3657. //
  3658. //
  3659. //
  3660. //
  3661. //
  3662. //
  3663. //
  3664. //
  3665. //
  3666. //
  3667. //
  3668. //
  3669. //
  3670. //
  3671. //
  3672. //
  3673. //
  3674. //
  3675. //
  3676. //
  3677. //
  3678. //
  3679. //
  3680. //
  3681. //
  3682. //
  3683. //
  3684. //
  3685. //
  3686. //
  3687. //
  3688. //
  3689. //
  3690. //
  3691. //
  3692. //
  3693. //
  3694. //
  3695. //
  3696. //
  3697. //
  3698. //
  3699. //
  3700. //
  3701. //
  3702. //
  3703. //
  3704. //
  3705. //
  3706. //
  3707. //
  3708. //
  3709. //
  3710. //
  3711. //
  3712. //
  3713. //
  3714. //
  3715. //
  3716. //
  3717. //
  3718. //
  3719. //
  3720. //
  3721. //
  3722. //
  3723. //
  3724. //
  3725. //
  3726. //
  3727. //
  3728. //
  3729. //
  3730. //
  3731. //
  3732. //
  3733. //
  3734. //
  3735. //
  3736. //
  3737. //
  3738. //
  3739. //
  3740. //
  3741. //
  3742. //
  3743. //
  3744. //
  3745. //
  3746. //
  3747. //
  3748. //
  3749. //
  3750. //
  3751. //
  3752. //
  3753. //
  3754. //
  3755. /* harmony default export */ var datevue_type_script_lang_js_ = ({
  3756. mixins: [locale_default.a],
  3757. directives: { Clickoutside: clickoutside_default.a },
  3758. watch: {
  3759. showTime: function showTime(val) {
  3760. var _this = this;
  3761. /* istanbul ignore if */
  3762. if (!val) return;
  3763. this.$nextTick(function (_) {
  3764. var inputElm = _this.$refs.input.$el;
  3765. if (inputElm) {
  3766. _this.pickerWidth = inputElm.getBoundingClientRect().width + 10;
  3767. }
  3768. });
  3769. },
  3770. value: function value(val) {
  3771. if (this.selectionMode === 'dates' && this.value) return;
  3772. if (Object(date_util_["isDate"])(val)) {
  3773. this.date = new Date(val);
  3774. } else {
  3775. this.date = this.getDefaultValue();
  3776. }
  3777. },
  3778. defaultValue: function defaultValue(val) {
  3779. if (!Object(date_util_["isDate"])(this.value)) {
  3780. this.date = val ? new Date(val) : new Date();
  3781. }
  3782. },
  3783. timePickerVisible: function timePickerVisible(val) {
  3784. var _this2 = this;
  3785. if (val) this.$nextTick(function () {
  3786. return _this2.$refs.timepicker.adjustSpinners();
  3787. });
  3788. },
  3789. selectionMode: function selectionMode(newVal) {
  3790. if (newVal === 'month') {
  3791. /* istanbul ignore next */
  3792. if (this.currentView !== 'year' || this.currentView !== 'month') {
  3793. this.currentView = 'month';
  3794. }
  3795. } else if (newVal === 'dates') {
  3796. this.currentView = 'date';
  3797. }
  3798. }
  3799. },
  3800. methods: {
  3801. proxyTimePickerDataProperties: function proxyTimePickerDataProperties() {
  3802. var _this3 = this;
  3803. var format = function format(timeFormat) {
  3804. _this3.$refs.timepicker.format = timeFormat;
  3805. };
  3806. var value = function value(_value) {
  3807. _this3.$refs.timepicker.value = _value;
  3808. };
  3809. var date = function date(_date) {
  3810. _this3.$refs.timepicker.date = _date;
  3811. };
  3812. var selectableRange = function selectableRange(_selectableRange) {
  3813. _this3.$refs.timepicker.selectableRange = _selectableRange;
  3814. };
  3815. this.$watch('value', value);
  3816. this.$watch('date', date);
  3817. this.$watch('selectableRange', selectableRange);
  3818. format(this.timeFormat);
  3819. value(this.value);
  3820. date(this.date);
  3821. selectableRange(this.selectableRange);
  3822. },
  3823. handleClear: function handleClear() {
  3824. this.date = this.getDefaultValue();
  3825. this.$emit('pick', null);
  3826. },
  3827. emit: function emit(value) {
  3828. var _this4 = this;
  3829. for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  3830. args[_key - 1] = arguments[_key];
  3831. }
  3832. if (!value) {
  3833. this.$emit.apply(this, ['pick', value].concat(args));
  3834. } else if (Array.isArray(value)) {
  3835. var dates = value.map(function (date) {
  3836. return _this4.showTime ? Object(date_util_["clearMilliseconds"])(date) : Object(date_util_["clearTime"])(date);
  3837. });
  3838. this.$emit.apply(this, ['pick', dates].concat(args));
  3839. } else {
  3840. this.$emit.apply(this, ['pick', this.showTime ? Object(date_util_["clearMilliseconds"])(value) : Object(date_util_["clearTime"])(value)].concat(args));
  3841. }
  3842. this.userInputDate = null;
  3843. this.userInputTime = null;
  3844. },
  3845. // resetDate() {
  3846. // this.date = new Date(this.date);
  3847. // },
  3848. showMonthPicker: function showMonthPicker() {
  3849. this.currentView = 'month';
  3850. },
  3851. showYearPicker: function showYearPicker() {
  3852. this.currentView = 'year';
  3853. },
  3854. // XXX: 没用到
  3855. // handleLabelClick() {
  3856. // if (this.currentView === 'date') {
  3857. // this.showMonthPicker();
  3858. // } else if (this.currentView === 'month') {
  3859. // this.showYearPicker();
  3860. // }
  3861. // },
  3862. prevMonth: function prevMonth() {
  3863. this.date = Object(date_util_["prevMonth"])(this.date);
  3864. },
  3865. nextMonth: function nextMonth() {
  3866. this.date = Object(date_util_["nextMonth"])(this.date);
  3867. },
  3868. prevYear: function prevYear() {
  3869. if (this.currentView === 'year') {
  3870. this.date = Object(date_util_["prevYear"])(this.date, 10);
  3871. } else {
  3872. this.date = Object(date_util_["prevYear"])(this.date);
  3873. }
  3874. },
  3875. nextYear: function nextYear() {
  3876. if (this.currentView === 'year') {
  3877. this.date = Object(date_util_["nextYear"])(this.date, 10);
  3878. } else {
  3879. this.date = Object(date_util_["nextYear"])(this.date);
  3880. }
  3881. },
  3882. handleShortcutClick: function handleShortcutClick(shortcut) {
  3883. if (shortcut.onClick) {
  3884. shortcut.onClick(this);
  3885. }
  3886. },
  3887. handleTimePick: function handleTimePick(value, visible, first) {
  3888. if (Object(date_util_["isDate"])(value)) {
  3889. var newDate = this.value ? Object(date_util_["modifyTime"])(this.value, value.getHours(), value.getMinutes(), value.getSeconds()) : Object(date_util_["modifyWithTimeString"])(this.getDefaultValue(), this.defaultTime);
  3890. this.date = newDate;
  3891. this.emit(this.date, true);
  3892. } else {
  3893. this.emit(value, true);
  3894. }
  3895. if (!first) {
  3896. this.timePickerVisible = visible;
  3897. }
  3898. },
  3899. handleTimePickClose: function handleTimePickClose() {
  3900. this.timePickerVisible = false;
  3901. },
  3902. handleMonthPick: function handleMonthPick(month) {
  3903. if (this.selectionMode === 'month') {
  3904. this.date = Object(date_util_["modifyDate"])(this.date, this.year, month, 1);
  3905. this.emit(this.date);
  3906. } else {
  3907. this.date = Object(date_util_["changeYearMonthAndClampDate"])(this.date, this.year, month);
  3908. // TODO: should emit intermediate value ??
  3909. // this.emit(this.date);
  3910. this.currentView = 'date';
  3911. }
  3912. },
  3913. handleDatePick: function handleDatePick(value) {
  3914. if (this.selectionMode === 'day') {
  3915. var newDate = this.value ? Object(date_util_["modifyDate"])(this.value, value.getFullYear(), value.getMonth(), value.getDate()) : Object(date_util_["modifyWithTimeString"])(value, this.defaultTime);
  3916. // change default time while out of selectableRange
  3917. if (!this.checkDateWithinRange(newDate)) {
  3918. newDate = Object(date_util_["modifyDate"])(this.selectableRange[0][0], value.getFullYear(), value.getMonth(), value.getDate());
  3919. }
  3920. this.date = newDate;
  3921. this.emit(this.date, this.showTime);
  3922. } else if (this.selectionMode === 'week') {
  3923. this.emit(value.date);
  3924. } else if (this.selectionMode === 'dates') {
  3925. this.emit(value, true); // set false to keep panel open
  3926. }
  3927. },
  3928. handleYearPick: function handleYearPick(year) {
  3929. if (this.selectionMode === 'year') {
  3930. this.date = Object(date_util_["modifyDate"])(this.date, year, 0, 1);
  3931. this.emit(this.date);
  3932. } else {
  3933. this.date = Object(date_util_["changeYearMonthAndClampDate"])(this.date, year, this.month);
  3934. // TODO: should emit intermediate value ??
  3935. // this.emit(this.date, true);
  3936. this.currentView = 'month';
  3937. }
  3938. },
  3939. changeToNow: function changeToNow() {
  3940. // NOTE: not a permanent solution
  3941. // consider disable "now" button in the future
  3942. if ((!this.disabledDate || !this.disabledDate(new Date())) && this.checkDateWithinRange(new Date())) {
  3943. this.date = new Date();
  3944. this.emit(this.date);
  3945. }
  3946. },
  3947. confirm: function confirm() {
  3948. if (this.selectionMode === 'dates') {
  3949. this.emit(this.value);
  3950. } else {
  3951. // value were emitted in handle{Date,Time}Pick, nothing to update here
  3952. // deal with the scenario where: user opens the picker, then confirm without doing anything
  3953. var value = this.value ? this.value : Object(date_util_["modifyWithTimeString"])(this.getDefaultValue(), this.defaultTime);
  3954. this.date = new Date(value); // refresh date
  3955. this.emit(value);
  3956. }
  3957. },
  3958. resetView: function resetView() {
  3959. if (this.selectionMode === 'month') {
  3960. this.currentView = 'month';
  3961. } else if (this.selectionMode === 'year') {
  3962. this.currentView = 'year';
  3963. } else {
  3964. this.currentView = 'date';
  3965. }
  3966. },
  3967. handleEnter: function handleEnter() {
  3968. document.body.addEventListener('keydown', this.handleKeydown);
  3969. },
  3970. handleLeave: function handleLeave() {
  3971. this.$emit('dodestroy');
  3972. document.body.removeEventListener('keydown', this.handleKeydown);
  3973. },
  3974. handleKeydown: function handleKeydown(event) {
  3975. var keyCode = event.keyCode;
  3976. var list = [38, 40, 37, 39];
  3977. if (this.visible && !this.timePickerVisible) {
  3978. if (list.indexOf(keyCode) !== -1) {
  3979. this.handleKeyControl(keyCode);
  3980. event.stopPropagation();
  3981. event.preventDefault();
  3982. }
  3983. if (keyCode === 13 && this.userInputDate === null && this.userInputTime === null) {
  3984. // Enter
  3985. this.emit(this.date, false);
  3986. }
  3987. }
  3988. },
  3989. handleKeyControl: function handleKeyControl(keyCode) {
  3990. var mapping = {
  3991. 'year': {
  3992. 38: -4, 40: 4, 37: -1, 39: 1, offset: function offset(date, step) {
  3993. return date.setFullYear(date.getFullYear() + step);
  3994. }
  3995. },
  3996. 'month': {
  3997. 38: -4, 40: 4, 37: -1, 39: 1, offset: function offset(date, step) {
  3998. return date.setMonth(date.getMonth() + step);
  3999. }
  4000. },
  4001. 'week': {
  4002. 38: -1, 40: 1, 37: -1, 39: 1, offset: function offset(date, step) {
  4003. return date.setDate(date.getDate() + step * 7);
  4004. }
  4005. },
  4006. 'day': {
  4007. 38: -7, 40: 7, 37: -1, 39: 1, offset: function offset(date, step) {
  4008. return date.setDate(date.getDate() + step);
  4009. }
  4010. }
  4011. };
  4012. var mode = this.selectionMode;
  4013. var year = 3.1536e10;
  4014. var now = this.date.getTime();
  4015. var newDate = new Date(this.date.getTime());
  4016. while (Math.abs(now - newDate.getTime()) <= year) {
  4017. var map = mapping[mode];
  4018. map.offset(newDate, map[keyCode]);
  4019. if (typeof this.disabledDate === 'function' && this.disabledDate(newDate)) {
  4020. continue;
  4021. }
  4022. this.date = newDate;
  4023. this.$emit('pick', newDate, true);
  4024. break;
  4025. }
  4026. },
  4027. handleVisibleTimeChange: function handleVisibleTimeChange(value) {
  4028. var time = Object(date_util_["parseDate"])(value, this.timeFormat);
  4029. if (time && this.checkDateWithinRange(time)) {
  4030. this.date = Object(date_util_["modifyDate"])(time, this.year, this.month, this.monthDate);
  4031. this.userInputTime = null;
  4032. this.$refs.timepicker.value = this.date;
  4033. this.timePickerVisible = false;
  4034. this.emit(this.date, true);
  4035. }
  4036. },
  4037. handleVisibleDateChange: function handleVisibleDateChange(value) {
  4038. var date = Object(date_util_["parseDate"])(value, this.dateFormat);
  4039. if (date) {
  4040. if (typeof this.disabledDate === 'function' && this.disabledDate(date)) {
  4041. return;
  4042. }
  4043. this.date = Object(date_util_["modifyTime"])(date, this.date.getHours(), this.date.getMinutes(), this.date.getSeconds());
  4044. this.userInputDate = null;
  4045. this.resetView();
  4046. this.emit(this.date, true);
  4047. }
  4048. },
  4049. isValidValue: function isValidValue(value) {
  4050. return value && !isNaN(value) && (typeof this.disabledDate === 'function' ? !this.disabledDate(value) : true) && this.checkDateWithinRange(value);
  4051. },
  4052. getDefaultValue: function getDefaultValue() {
  4053. // if default-value is set, return it
  4054. // otherwise, return now (the moment this method gets called)
  4055. return this.defaultValue ? new Date(this.defaultValue) : new Date();
  4056. },
  4057. checkDateWithinRange: function checkDateWithinRange(date) {
  4058. return this.selectableRange.length > 0 ? Object(date_util_["timeWithinRange"])(date, this.selectableRange, this.format || 'HH:mm:ss') : true;
  4059. }
  4060. },
  4061. components: {
  4062. TimePicker: panel_time["a" /* default */], YearTable: year_table, MonthTable: month_table, DateTable: date_table, ElInput: input["default"], ElButton: packages_button["default"]
  4063. },
  4064. data: function data() {
  4065. return {
  4066. popperClass: '',
  4067. date: new Date(),
  4068. value: '',
  4069. defaultValue: null, // use getDefaultValue() for time computation
  4070. defaultTime: null,
  4071. showTime: false,
  4072. selectionMode: 'day',
  4073. shortcuts: '',
  4074. visible: false,
  4075. currentView: 'date',
  4076. disabledDate: '',
  4077. cellClassName: '',
  4078. selectableRange: [],
  4079. firstDayOfWeek: 7,
  4080. showWeekNumber: false,
  4081. timePickerVisible: false,
  4082. format: '',
  4083. arrowControl: false,
  4084. userInputDate: null,
  4085. userInputTime: null
  4086. };
  4087. },
  4088. computed: {
  4089. year: function year() {
  4090. return this.date.getFullYear();
  4091. },
  4092. month: function month() {
  4093. return this.date.getMonth();
  4094. },
  4095. week: function week() {
  4096. return Object(date_util_["getWeekNumber"])(this.date);
  4097. },
  4098. monthDate: function monthDate() {
  4099. return this.date.getDate();
  4100. },
  4101. footerVisible: function footerVisible() {
  4102. return this.showTime || this.selectionMode === 'dates';
  4103. },
  4104. visibleTime: function visibleTime() {
  4105. if (this.userInputTime !== null) {
  4106. return this.userInputTime;
  4107. } else {
  4108. return Object(date_util_["formatDate"])(this.value || this.defaultValue, this.timeFormat);
  4109. }
  4110. },
  4111. visibleDate: function visibleDate() {
  4112. if (this.userInputDate !== null) {
  4113. return this.userInputDate;
  4114. } else {
  4115. return Object(date_util_["formatDate"])(this.value || this.defaultValue, this.dateFormat);
  4116. }
  4117. },
  4118. yearLabel: function yearLabel() {
  4119. var yearTranslation = this.t('el.datepicker.year');
  4120. if (this.currentView === 'year') {
  4121. var startYear = Math.floor(this.year / 10) * 10;
  4122. if (yearTranslation) {
  4123. return startYear + ' ' + yearTranslation + ' - ' + (startYear + 9) + ' ' + yearTranslation;
  4124. }
  4125. return startYear + ' - ' + (startYear + 9);
  4126. }
  4127. return this.year + ' ' + yearTranslation;
  4128. },
  4129. timeFormat: function timeFormat() {
  4130. if (this.format) {
  4131. return Object(date_util_["extractTimeFormat"])(this.format);
  4132. } else {
  4133. return 'HH:mm:ss';
  4134. }
  4135. },
  4136. dateFormat: function dateFormat() {
  4137. if (this.format) {
  4138. return Object(date_util_["extractDateFormat"])(this.format);
  4139. } else {
  4140. return 'yyyy-MM-dd';
  4141. }
  4142. }
  4143. }
  4144. });
  4145. // CONCATENATED MODULE: ./packages/date-picker/src/panel/date.vue?vue&type=script&lang=js&
  4146. /* harmony default export */ var panel_datevue_type_script_lang_js_ = (datevue_type_script_lang_js_);
  4147. // CONCATENATED MODULE: ./packages/date-picker/src/panel/date.vue
  4148. /* normalize component */
  4149. var date_component = Object(componentNormalizer["a" /* default */])(
  4150. panel_datevue_type_script_lang_js_,
  4151. render,
  4152. staticRenderFns,
  4153. false,
  4154. null,
  4155. null,
  4156. null
  4157. )
  4158. /* hot reload */
  4159. if (false) { var date_api; }
  4160. date_component.options.__file = "packages/date-picker/src/panel/date.vue"
  4161. /* harmony default export */ var panel_date = (date_component.exports);
  4162. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/date-range.vue?vue&type=template&id=2652849a&
  4163. var date_rangevue_type_template_id_2652849a_render = function() {
  4164. var _vm = this
  4165. var _h = _vm.$createElement
  4166. var _c = _vm._self._c || _h
  4167. return _c(
  4168. "transition",
  4169. {
  4170. attrs: { name: "el-zoom-in-top" },
  4171. on: {
  4172. "after-leave": function($event) {
  4173. _vm.$emit("dodestroy")
  4174. }
  4175. }
  4176. },
  4177. [
  4178. _c(
  4179. "div",
  4180. {
  4181. directives: [
  4182. {
  4183. name: "show",
  4184. rawName: "v-show",
  4185. value: _vm.visible,
  4186. expression: "visible"
  4187. }
  4188. ],
  4189. staticClass: "el-picker-panel el-date-range-picker el-popper",
  4190. class: [
  4191. {
  4192. "has-sidebar": _vm.$slots.sidebar || _vm.shortcuts,
  4193. "has-time": _vm.showTime
  4194. },
  4195. _vm.popperClass
  4196. ]
  4197. },
  4198. [
  4199. _c(
  4200. "div",
  4201. { staticClass: "el-picker-panel__body-wrapper" },
  4202. [
  4203. _vm._t("sidebar"),
  4204. _vm.shortcuts
  4205. ? _c(
  4206. "div",
  4207. { staticClass: "el-picker-panel__sidebar" },
  4208. _vm._l(_vm.shortcuts, function(shortcut, key) {
  4209. return _c(
  4210. "button",
  4211. {
  4212. key: key,
  4213. staticClass: "el-picker-panel__shortcut",
  4214. attrs: { type: "button" },
  4215. on: {
  4216. click: function($event) {
  4217. _vm.handleShortcutClick(shortcut)
  4218. }
  4219. }
  4220. },
  4221. [_vm._v(_vm._s(shortcut.text))]
  4222. )
  4223. }),
  4224. 0
  4225. )
  4226. : _vm._e(),
  4227. _c("div", { staticClass: "el-picker-panel__body" }, [
  4228. _vm.showTime
  4229. ? _c(
  4230. "div",
  4231. { staticClass: "el-date-range-picker__time-header" },
  4232. [
  4233. _c(
  4234. "span",
  4235. { staticClass: "el-date-range-picker__editors-wrap" },
  4236. [
  4237. _c(
  4238. "span",
  4239. {
  4240. staticClass:
  4241. "el-date-range-picker__time-picker-wrap"
  4242. },
  4243. [
  4244. _c("tis-input", {
  4245. ref: "minInput",
  4246. staticClass: "el-date-range-picker__editor",
  4247. attrs: {
  4248. size: "small",
  4249. disabled: _vm.rangeState.selecting,
  4250. placeholder: _vm.t(
  4251. "el.datepicker.startDate"
  4252. ),
  4253. value: _vm.minVisibleDate
  4254. },
  4255. on: {
  4256. input: function(val) {
  4257. return _vm.handleDateInput(val, "min")
  4258. },
  4259. change: function(val) {
  4260. return _vm.handleDateChange(val, "min")
  4261. }
  4262. }
  4263. })
  4264. ],
  4265. 1
  4266. ),
  4267. _c(
  4268. "span",
  4269. {
  4270. directives: [
  4271. {
  4272. name: "clickoutside",
  4273. rawName: "v-clickoutside",
  4274. value: _vm.handleMinTimeClose,
  4275. expression: "handleMinTimeClose"
  4276. }
  4277. ],
  4278. staticClass:
  4279. "el-date-range-picker__time-picker-wrap"
  4280. },
  4281. [
  4282. _c("tis-input", {
  4283. staticClass: "el-date-range-picker__editor",
  4284. attrs: {
  4285. size: "small",
  4286. disabled: _vm.rangeState.selecting,
  4287. placeholder: _vm.t(
  4288. "el.datepicker.startTime"
  4289. ),
  4290. value: _vm.minVisibleTime
  4291. },
  4292. on: {
  4293. focus: function($event) {
  4294. _vm.minTimePickerVisible = true
  4295. },
  4296. input: function(val) {
  4297. return _vm.handleTimeInput(val, "min")
  4298. },
  4299. change: function(val) {
  4300. return _vm.handleTimeChange(val, "min")
  4301. }
  4302. }
  4303. }),
  4304. _c("time-picker", {
  4305. ref: "minTimePicker",
  4306. attrs: {
  4307. "time-arrow-control": _vm.arrowControl,
  4308. visible: _vm.minTimePickerVisible
  4309. },
  4310. on: {
  4311. pick: _vm.handleMinTimePick,
  4312. mounted: function($event) {
  4313. _vm.$refs.minTimePicker.format =
  4314. _vm.timeFormat
  4315. }
  4316. }
  4317. })
  4318. ],
  4319. 1
  4320. )
  4321. ]
  4322. ),
  4323. _c("span", { staticClass: "el-icon-arrow-right" }),
  4324. _c(
  4325. "span",
  4326. {
  4327. staticClass:
  4328. "el-date-range-picker__editors-wrap is-right"
  4329. },
  4330. [
  4331. _c(
  4332. "span",
  4333. {
  4334. staticClass:
  4335. "el-date-range-picker__time-picker-wrap"
  4336. },
  4337. [
  4338. _c("tis-input", {
  4339. staticClass: "el-date-range-picker__editor",
  4340. attrs: {
  4341. size: "small",
  4342. disabled: _vm.rangeState.selecting,
  4343. placeholder: _vm.t("el.datepicker.endDate"),
  4344. value: _vm.maxVisibleDate,
  4345. readonly: !_vm.minDate
  4346. },
  4347. on: {
  4348. input: function(val) {
  4349. return _vm.handleDateInput(val, "max")
  4350. },
  4351. change: function(val) {
  4352. return _vm.handleDateChange(val, "max")
  4353. }
  4354. }
  4355. })
  4356. ],
  4357. 1
  4358. ),
  4359. _c(
  4360. "span",
  4361. {
  4362. directives: [
  4363. {
  4364. name: "clickoutside",
  4365. rawName: "v-clickoutside",
  4366. value: _vm.handleMaxTimeClose,
  4367. expression: "handleMaxTimeClose"
  4368. }
  4369. ],
  4370. staticClass:
  4371. "el-date-range-picker__time-picker-wrap"
  4372. },
  4373. [
  4374. _c("tis-input", {
  4375. staticClass: "el-date-range-picker__editor",
  4376. attrs: {
  4377. size: "small",
  4378. disabled: _vm.rangeState.selecting,
  4379. placeholder: _vm.t("el.datepicker.endTime"),
  4380. value: _vm.maxVisibleTime,
  4381. readonly: !_vm.minDate
  4382. },
  4383. on: {
  4384. focus: function($event) {
  4385. _vm.minDate &&
  4386. (_vm.maxTimePickerVisible = true)
  4387. },
  4388. input: function(val) {
  4389. return _vm.handleTimeInput(val, "max")
  4390. },
  4391. change: function(val) {
  4392. return _vm.handleTimeChange(val, "max")
  4393. }
  4394. }
  4395. }),
  4396. _c("time-picker", {
  4397. ref: "maxTimePicker",
  4398. attrs: {
  4399. "time-arrow-control": _vm.arrowControl,
  4400. visible: _vm.maxTimePickerVisible
  4401. },
  4402. on: {
  4403. pick: _vm.handleMaxTimePick,
  4404. mounted: function($event) {
  4405. _vm.$refs.maxTimePicker.format =
  4406. _vm.timeFormat
  4407. }
  4408. }
  4409. })
  4410. ],
  4411. 1
  4412. )
  4413. ]
  4414. )
  4415. ]
  4416. )
  4417. : _vm._e(),
  4418. _c(
  4419. "div",
  4420. {
  4421. staticClass:
  4422. "el-picker-panel__content el-date-range-picker__content is-left"
  4423. },
  4424. [
  4425. _c("div", { staticClass: "el-date-range-picker__header" }, [
  4426. _c("button", {
  4427. staticClass:
  4428. "el-picker-panel__icon-btn el-icon-d-arrow-left",
  4429. attrs: { type: "button" },
  4430. on: { click: _vm.leftPrevYear }
  4431. }),
  4432. _c("button", {
  4433. staticClass:
  4434. "el-picker-panel__icon-btn el-icon-arrow-left",
  4435. attrs: { type: "button" },
  4436. on: { click: _vm.leftPrevMonth }
  4437. }),
  4438. _vm.unlinkPanels
  4439. ? _c("button", {
  4440. staticClass:
  4441. "el-picker-panel__icon-btn el-icon-d-arrow-right",
  4442. class: { "is-disabled": !_vm.enableYearArrow },
  4443. attrs: {
  4444. type: "button",
  4445. disabled: !_vm.enableYearArrow
  4446. },
  4447. on: { click: _vm.leftNextYear }
  4448. })
  4449. : _vm._e(),
  4450. _vm.unlinkPanels
  4451. ? _c("button", {
  4452. staticClass:
  4453. "el-picker-panel__icon-btn el-icon-arrow-right",
  4454. class: { "is-disabled": !_vm.enableMonthArrow },
  4455. attrs: {
  4456. type: "button",
  4457. disabled: !_vm.enableMonthArrow
  4458. },
  4459. on: { click: _vm.leftNextMonth }
  4460. })
  4461. : _vm._e(),
  4462. _c("div", [_vm._v(_vm._s(_vm.leftLabel))])
  4463. ]),
  4464. _c("date-table", {
  4465. attrs: {
  4466. "selection-mode": "range",
  4467. date: _vm.leftDate,
  4468. "default-value": _vm.defaultValue,
  4469. "min-date": _vm.minDate,
  4470. "max-date": _vm.maxDate,
  4471. "range-state": _vm.rangeState,
  4472. "disabled-date": _vm.disabledDate,
  4473. "cell-class-name": _vm.cellClassName,
  4474. "first-day-of-week": _vm.firstDayOfWeek
  4475. },
  4476. on: {
  4477. changerange: _vm.handleChangeRange,
  4478. pick: _vm.handleRangePick
  4479. }
  4480. })
  4481. ],
  4482. 1
  4483. ),
  4484. _c(
  4485. "div",
  4486. {
  4487. staticClass:
  4488. "el-picker-panel__content el-date-range-picker__content is-right"
  4489. },
  4490. [
  4491. _c("div", { staticClass: "el-date-range-picker__header" }, [
  4492. _vm.unlinkPanels
  4493. ? _c("button", {
  4494. staticClass:
  4495. "el-picker-panel__icon-btn el-icon-d-arrow-left",
  4496. class: { "is-disabled": !_vm.enableYearArrow },
  4497. attrs: {
  4498. type: "button",
  4499. disabled: !_vm.enableYearArrow
  4500. },
  4501. on: { click: _vm.rightPrevYear }
  4502. })
  4503. : _vm._e(),
  4504. _vm.unlinkPanels
  4505. ? _c("button", {
  4506. staticClass:
  4507. "el-picker-panel__icon-btn el-icon-arrow-left",
  4508. class: { "is-disabled": !_vm.enableMonthArrow },
  4509. attrs: {
  4510. type: "button",
  4511. disabled: !_vm.enableMonthArrow
  4512. },
  4513. on: { click: _vm.rightPrevMonth }
  4514. })
  4515. : _vm._e(),
  4516. _c("button", {
  4517. staticClass:
  4518. "el-picker-panel__icon-btn el-icon-d-arrow-right",
  4519. attrs: { type: "button" },
  4520. on: { click: _vm.rightNextYear }
  4521. }),
  4522. _c("button", {
  4523. staticClass:
  4524. "el-picker-panel__icon-btn el-icon-arrow-right",
  4525. attrs: { type: "button" },
  4526. on: { click: _vm.rightNextMonth }
  4527. }),
  4528. _c("div", [_vm._v(_vm._s(_vm.rightLabel))])
  4529. ]),
  4530. _c("date-table", {
  4531. attrs: {
  4532. "selection-mode": "range",
  4533. date: _vm.rightDate,
  4534. "default-value": _vm.defaultValue,
  4535. "min-date": _vm.minDate,
  4536. "max-date": _vm.maxDate,
  4537. "range-state": _vm.rangeState,
  4538. "disabled-date": _vm.disabledDate,
  4539. "cell-class-name": _vm.cellClassName,
  4540. "first-day-of-week": _vm.firstDayOfWeek
  4541. },
  4542. on: {
  4543. changerange: _vm.handleChangeRange,
  4544. pick: _vm.handleRangePick
  4545. }
  4546. })
  4547. ],
  4548. 1
  4549. )
  4550. ])
  4551. ],
  4552. 2
  4553. ),
  4554. _vm.showTime
  4555. ? _c(
  4556. "div",
  4557. { staticClass: "el-picker-panel__footer" },
  4558. [
  4559. _c(
  4560. "tis-button",
  4561. {
  4562. staticClass: "el-picker-panel__link-btn",
  4563. attrs: { size: "mini", type: "text" },
  4564. on: { click: _vm.handleClear }
  4565. },
  4566. [
  4567. _vm._v(
  4568. "\n " +
  4569. _vm._s(_vm.t("el.datepicker.clear")) +
  4570. "\n "
  4571. )
  4572. ]
  4573. ),
  4574. _c(
  4575. "tis-button",
  4576. {
  4577. staticClass: "el-picker-panel__link-btn",
  4578. attrs: {
  4579. plain: "",
  4580. size: "mini",
  4581. disabled: _vm.btnDisabled
  4582. },
  4583. on: {
  4584. click: function($event) {
  4585. _vm.handleConfirm(false)
  4586. }
  4587. }
  4588. },
  4589. [
  4590. _vm._v(
  4591. "\n " +
  4592. _vm._s(_vm.t("el.datepicker.confirm")) +
  4593. "\n "
  4594. )
  4595. ]
  4596. )
  4597. ],
  4598. 1
  4599. )
  4600. : _vm._e()
  4601. ]
  4602. )
  4603. ]
  4604. )
  4605. }
  4606. var date_rangevue_type_template_id_2652849a_staticRenderFns = []
  4607. date_rangevue_type_template_id_2652849a_render._withStripped = true
  4608. // CONCATENATED MODULE: ./packages/date-picker/src/panel/date-range.vue?vue&type=template&id=2652849a&
  4609. // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/date-range.vue?vue&type=script&lang=js&
  4610. //
  4611. //
  4612. //
  4613. //
  4614. //
  4615. //
  4616. //
  4617. //
  4618. //
  4619. //
  4620. //
  4621. //
  4622. //
  4623. //
  4624. //
  4625. //
  4626. //
  4627. //
  4628. //
  4629. //
  4630. //
  4631. //
  4632. //
  4633. //
  4634. //
  4635. //
  4636. //
  4637. //
  4638. //
  4639. //
  4640. //
  4641. //
  4642. //
  4643. //
  4644. //
  4645. //
  4646. //
  4647. //
  4648. //
  4649. //
  4650. //
  4651. //
  4652. //
  4653. //
  4654. //
  4655. //
  4656. //
  4657. //
  4658. //
  4659. //
  4660. //
  4661. //
  4662. //
  4663. //
  4664. //
  4665. //
  4666. //
  4667. //
  4668. //
  4669. //
  4670. //
  4671. //
  4672. //
  4673. //
  4674. //
  4675. //
  4676. //
  4677. //
  4678. //
  4679. //
  4680. //
  4681. //
  4682. //
  4683. //
  4684. //
  4685. //
  4686. //
  4687. //
  4688. //
  4689. //
  4690. //
  4691. //
  4692. //
  4693. //
  4694. //
  4695. //
  4696. //
  4697. //
  4698. //
  4699. //
  4700. //
  4701. //
  4702. //
  4703. //
  4704. //
  4705. //
  4706. //
  4707. //
  4708. //
  4709. //
  4710. //
  4711. //
  4712. //
  4713. //
  4714. //
  4715. //
  4716. //
  4717. //
  4718. //
  4719. //
  4720. //
  4721. //
  4722. //
  4723. //
  4724. //
  4725. //
  4726. //
  4727. //
  4728. //
  4729. //
  4730. //
  4731. //
  4732. //
  4733. //
  4734. //
  4735. //
  4736. //
  4737. //
  4738. //
  4739. //
  4740. //
  4741. //
  4742. //
  4743. //
  4744. //
  4745. //
  4746. //
  4747. //
  4748. //
  4749. //
  4750. //
  4751. //
  4752. //
  4753. //
  4754. //
  4755. //
  4756. //
  4757. //
  4758. //
  4759. //
  4760. //
  4761. //
  4762. //
  4763. //
  4764. //
  4765. //
  4766. //
  4767. //
  4768. //
  4769. //
  4770. //
  4771. //
  4772. //
  4773. //
  4774. //
  4775. //
  4776. //
  4777. //
  4778. //
  4779. //
  4780. //
  4781. //
  4782. //
  4783. //
  4784. //
  4785. //
  4786. //
  4787. //
  4788. //
  4789. //
  4790. //
  4791. //
  4792. //
  4793. //
  4794. //
  4795. //
  4796. //
  4797. //
  4798. //
  4799. var date_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultValue(defaultValue) {
  4800. if (Array.isArray(defaultValue)) {
  4801. return [new Date(defaultValue[0]), new Date(defaultValue[1])];
  4802. } else if (defaultValue) {
  4803. return [new Date(defaultValue), Object(date_util_["nextDate"])(new Date(defaultValue), 1)];
  4804. } else {
  4805. return [new Date(), Object(date_util_["nextDate"])(new Date(), 1)];
  4806. }
  4807. };
  4808. /* harmony default export */ var date_rangevue_type_script_lang_js_ = ({
  4809. mixins: [locale_default.a],
  4810. directives: { Clickoutside: clickoutside_default.a },
  4811. computed: {
  4812. btnDisabled: function btnDisabled() {
  4813. return !(this.minDate && this.maxDate && !this.selecting && this.isValidValue([this.minDate, this.maxDate]));
  4814. },
  4815. leftLabel: function leftLabel() {
  4816. return this.leftDate.getFullYear() + ' ' + this.t('el.datepicker.year') + ' ' + this.t('el.datepicker.month' + (this.leftDate.getMonth() + 1));
  4817. },
  4818. rightLabel: function rightLabel() {
  4819. return this.rightDate.getFullYear() + ' ' + this.t('el.datepicker.year') + ' ' + this.t('el.datepicker.month' + (this.rightDate.getMonth() + 1));
  4820. },
  4821. leftYear: function leftYear() {
  4822. return this.leftDate.getFullYear();
  4823. },
  4824. leftMonth: function leftMonth() {
  4825. return this.leftDate.getMonth();
  4826. },
  4827. leftMonthDate: function leftMonthDate() {
  4828. return this.leftDate.getDate();
  4829. },
  4830. rightYear: function rightYear() {
  4831. return this.rightDate.getFullYear();
  4832. },
  4833. rightMonth: function rightMonth() {
  4834. return this.rightDate.getMonth();
  4835. },
  4836. rightMonthDate: function rightMonthDate() {
  4837. return this.rightDate.getDate();
  4838. },
  4839. minVisibleDate: function minVisibleDate() {
  4840. if (this.dateUserInput.min !== null) return this.dateUserInput.min;
  4841. if (this.minDate) return Object(date_util_["formatDate"])(this.minDate, this.dateFormat);
  4842. return '';
  4843. },
  4844. maxVisibleDate: function maxVisibleDate() {
  4845. if (this.dateUserInput.max !== null) return this.dateUserInput.max;
  4846. if (this.maxDate || this.minDate) return Object(date_util_["formatDate"])(this.maxDate || this.minDate, this.dateFormat);
  4847. return '';
  4848. },
  4849. minVisibleTime: function minVisibleTime() {
  4850. if (this.timeUserInput.min !== null) return this.timeUserInput.min;
  4851. if (this.minDate) return Object(date_util_["formatDate"])(this.minDate, this.timeFormat);
  4852. return '';
  4853. },
  4854. maxVisibleTime: function maxVisibleTime() {
  4855. if (this.timeUserInput.max !== null) return this.timeUserInput.max;
  4856. if (this.maxDate || this.minDate) return Object(date_util_["formatDate"])(this.maxDate || this.minDate, this.timeFormat);
  4857. return '';
  4858. },
  4859. timeFormat: function timeFormat() {
  4860. if (this.format) {
  4861. return Object(date_util_["extractTimeFormat"])(this.format);
  4862. } else {
  4863. return 'HH:mm:ss';
  4864. }
  4865. },
  4866. dateFormat: function dateFormat() {
  4867. if (this.format) {
  4868. return Object(date_util_["extractDateFormat"])(this.format);
  4869. } else {
  4870. return 'yyyy-MM-dd';
  4871. }
  4872. },
  4873. enableMonthArrow: function enableMonthArrow() {
  4874. var nextMonth = (this.leftMonth + 1) % 12;
  4875. var yearOffset = this.leftMonth + 1 >= 12 ? 1 : 0;
  4876. return this.unlinkPanels && new Date(this.leftYear + yearOffset, nextMonth) < new Date(this.rightYear, this.rightMonth);
  4877. },
  4878. enableYearArrow: function enableYearArrow() {
  4879. return this.unlinkPanels && this.rightYear * 12 + this.rightMonth - (this.leftYear * 12 + this.leftMonth + 1) >= 12;
  4880. }
  4881. },
  4882. data: function data() {
  4883. return {
  4884. popperClass: '',
  4885. value: [],
  4886. defaultValue: null,
  4887. defaultTime: null,
  4888. minDate: '',
  4889. maxDate: '',
  4890. leftDate: new Date(),
  4891. rightDate: Object(date_util_["nextMonth"])(new Date()),
  4892. rangeState: {
  4893. endDate: null,
  4894. selecting: false,
  4895. row: null,
  4896. column: null
  4897. },
  4898. showTime: false,
  4899. shortcuts: '',
  4900. visible: '',
  4901. disabledDate: '',
  4902. cellClassName: '',
  4903. firstDayOfWeek: 7,
  4904. minTimePickerVisible: false,
  4905. maxTimePickerVisible: false,
  4906. format: '',
  4907. arrowControl: false,
  4908. unlinkPanels: false,
  4909. dateUserInput: {
  4910. min: null,
  4911. max: null
  4912. },
  4913. timeUserInput: {
  4914. min: null,
  4915. max: null
  4916. }
  4917. };
  4918. },
  4919. watch: {
  4920. minDate: function minDate(val) {
  4921. var _this = this;
  4922. this.dateUserInput.min = null;
  4923. this.timeUserInput.min = null;
  4924. this.$nextTick(function () {
  4925. if (_this.$refs.maxTimePicker && _this.maxDate && _this.maxDate < _this.minDate) {
  4926. var format = 'HH:mm:ss';
  4927. _this.$refs.maxTimePicker.selectableRange = [[Object(date_util_["parseDate"])(Object(date_util_["formatDate"])(_this.minDate, format), format), Object(date_util_["parseDate"])('23:59:59', format)]];
  4928. }
  4929. });
  4930. if (val && this.$refs.minTimePicker) {
  4931. this.$refs.minTimePicker.date = val;
  4932. this.$refs.minTimePicker.value = val;
  4933. }
  4934. },
  4935. maxDate: function maxDate(val) {
  4936. this.dateUserInput.max = null;
  4937. this.timeUserInput.max = null;
  4938. if (val && this.$refs.maxTimePicker) {
  4939. this.$refs.maxTimePicker.date = val;
  4940. this.$refs.maxTimePicker.value = val;
  4941. }
  4942. },
  4943. minTimePickerVisible: function minTimePickerVisible(val) {
  4944. var _this2 = this;
  4945. if (val) {
  4946. this.$nextTick(function () {
  4947. _this2.$refs.minTimePicker.date = _this2.minDate;
  4948. _this2.$refs.minTimePicker.value = _this2.minDate;
  4949. _this2.$refs.minTimePicker.adjustSpinners();
  4950. });
  4951. }
  4952. },
  4953. maxTimePickerVisible: function maxTimePickerVisible(val) {
  4954. var _this3 = this;
  4955. if (val) {
  4956. this.$nextTick(function () {
  4957. _this3.$refs.maxTimePicker.date = _this3.maxDate;
  4958. _this3.$refs.maxTimePicker.value = _this3.maxDate;
  4959. _this3.$refs.maxTimePicker.adjustSpinners();
  4960. });
  4961. }
  4962. },
  4963. value: function value(newVal) {
  4964. if (!newVal) {
  4965. this.minDate = null;
  4966. this.maxDate = null;
  4967. } else if (Array.isArray(newVal)) {
  4968. this.minDate = Object(date_util_["isDate"])(newVal[0]) ? new Date(newVal[0]) : null;
  4969. this.maxDate = Object(date_util_["isDate"])(newVal[1]) ? new Date(newVal[1]) : null;
  4970. if (this.minDate) {
  4971. this.leftDate = this.minDate;
  4972. if (this.unlinkPanels && this.maxDate) {
  4973. var minDateYear = this.minDate.getFullYear();
  4974. var minDateMonth = this.minDate.getMonth();
  4975. var maxDateYear = this.maxDate.getFullYear();
  4976. var maxDateMonth = this.maxDate.getMonth();
  4977. this.rightDate = minDateYear === maxDateYear && minDateMonth === maxDateMonth ? Object(date_util_["nextMonth"])(this.maxDate) : this.maxDate;
  4978. } else {
  4979. this.rightDate = Object(date_util_["nextMonth"])(this.leftDate);
  4980. }
  4981. } else {
  4982. this.leftDate = date_rangevue_type_script_lang_js_calcDefaultValue(this.defaultValue)[0];
  4983. this.rightDate = Object(date_util_["nextMonth"])(this.leftDate);
  4984. }
  4985. }
  4986. },
  4987. defaultValue: function defaultValue(val) {
  4988. if (!Array.isArray(this.value)) {
  4989. var _calcDefaultValue = date_rangevue_type_script_lang_js_calcDefaultValue(val),
  4990. left = _calcDefaultValue[0],
  4991. right = _calcDefaultValue[1];
  4992. this.leftDate = left;
  4993. this.rightDate = val && val[1] && this.unlinkPanels ? right : Object(date_util_["nextMonth"])(this.leftDate);
  4994. }
  4995. }
  4996. },
  4997. methods: {
  4998. handleClear: function handleClear() {
  4999. this.minDate = null;
  5000. this.maxDate = null;
  5001. this.leftDate = date_rangevue_type_script_lang_js_calcDefaultValue(this.defaultValue)[0];
  5002. this.rightDate = Object(date_util_["nextMonth"])(this.leftDate);
  5003. this.$emit('pick', null);
  5004. },
  5005. handleChangeRange: function handleChangeRange(val) {
  5006. this.minDate = val.minDate;
  5007. this.maxDate = val.maxDate;
  5008. this.rangeState = val.rangeState;
  5009. },
  5010. handleDateInput: function handleDateInput(value, type) {
  5011. this.dateUserInput[type] = value;
  5012. if (value.length !== this.dateFormat.length) return;
  5013. var parsedValue = Object(date_util_["parseDate"])(value, this.dateFormat);
  5014. if (parsedValue) {
  5015. if (typeof this.disabledDate === 'function' && this.disabledDate(new Date(parsedValue))) {
  5016. return;
  5017. }
  5018. if (type === 'min') {
  5019. this.minDate = Object(date_util_["modifyDate"])(this.minDate || new Date(), parsedValue.getFullYear(), parsedValue.getMonth(), parsedValue.getDate());
  5020. this.leftDate = new Date(parsedValue);
  5021. if (!this.unlinkPanels) {
  5022. this.rightDate = Object(date_util_["nextMonth"])(this.leftDate);
  5023. }
  5024. } else {
  5025. this.maxDate = Object(date_util_["modifyDate"])(this.maxDate || new Date(), parsedValue.getFullYear(), parsedValue.getMonth(), parsedValue.getDate());
  5026. this.rightDate = new Date(parsedValue);
  5027. if (!this.unlinkPanels) {
  5028. this.leftDate = Object(date_util_["prevMonth"])(parsedValue);
  5029. }
  5030. }
  5031. }
  5032. },
  5033. handleDateChange: function handleDateChange(value, type) {
  5034. var parsedValue = Object(date_util_["parseDate"])(value, this.dateFormat);
  5035. if (parsedValue) {
  5036. if (type === 'min') {
  5037. this.minDate = Object(date_util_["modifyDate"])(this.minDate, parsedValue.getFullYear(), parsedValue.getMonth(), parsedValue.getDate());
  5038. if (this.minDate > this.maxDate) {
  5039. this.maxDate = this.minDate;
  5040. }
  5041. } else {
  5042. this.maxDate = Object(date_util_["modifyDate"])(this.maxDate, parsedValue.getFullYear(), parsedValue.getMonth(), parsedValue.getDate());
  5043. if (this.maxDate < this.minDate) {
  5044. this.minDate = this.maxDate;
  5045. }
  5046. }
  5047. }
  5048. },
  5049. handleTimeInput: function handleTimeInput(value, type) {
  5050. var _this4 = this;
  5051. this.timeUserInput[type] = value;
  5052. if (value.length !== this.timeFormat.length) return;
  5053. var parsedValue = Object(date_util_["parseDate"])(value, this.timeFormat);
  5054. if (parsedValue) {
  5055. if (type === 'min') {
  5056. this.minDate = Object(date_util_["modifyTime"])(this.minDate, parsedValue.getHours(), parsedValue.getMinutes(), parsedValue.getSeconds());
  5057. this.$nextTick(function (_) {
  5058. return _this4.$refs.minTimePicker.adjustSpinners();
  5059. });
  5060. } else {
  5061. this.maxDate = Object(date_util_["modifyTime"])(this.maxDate, parsedValue.getHours(), parsedValue.getMinutes(), parsedValue.getSeconds());
  5062. this.$nextTick(function (_) {
  5063. return _this4.$refs.maxTimePicker.adjustSpinners();
  5064. });
  5065. }
  5066. }
  5067. },
  5068. handleTimeChange: function handleTimeChange(value, type) {
  5069. var parsedValue = Object(date_util_["parseDate"])(value, this.timeFormat);
  5070. if (parsedValue) {
  5071. if (type === 'min') {
  5072. this.minDate = Object(date_util_["modifyTime"])(this.minDate, parsedValue.getHours(), parsedValue.getMinutes(), parsedValue.getSeconds());
  5073. if (this.minDate > this.maxDate) {
  5074. this.maxDate = this.minDate;
  5075. }
  5076. this.$refs.minTimePicker.value = this.minDate;
  5077. this.minTimePickerVisible = false;
  5078. } else {
  5079. this.maxDate = Object(date_util_["modifyTime"])(this.maxDate, parsedValue.getHours(), parsedValue.getMinutes(), parsedValue.getSeconds());
  5080. if (this.maxDate < this.minDate) {
  5081. this.minDate = this.maxDate;
  5082. }
  5083. this.$refs.maxTimePicker.value = this.minDate;
  5084. this.maxTimePickerVisible = false;
  5085. }
  5086. }
  5087. },
  5088. handleRangePick: function handleRangePick(val) {
  5089. var _this5 = this;
  5090. var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
  5091. var defaultTime = this.defaultTime || [];
  5092. var minDate = Object(date_util_["modifyWithTimeString"])(val.minDate, defaultTime[0]);
  5093. var maxDate = Object(date_util_["modifyWithTimeString"])(val.maxDate, defaultTime[1]);
  5094. if (this.maxDate === maxDate && this.minDate === minDate) {
  5095. return;
  5096. }
  5097. this.onPick && this.onPick(val);
  5098. this.maxDate = maxDate;
  5099. this.minDate = minDate;
  5100. // workaround for https://github.com/ElemeFE/element/issues/7539, should remove this block when we don't have to care about Chromium 55 - 57
  5101. setTimeout(function () {
  5102. _this5.maxDate = maxDate;
  5103. _this5.minDate = minDate;
  5104. }, 10);
  5105. if (!close || this.showTime) return;
  5106. this.handleConfirm();
  5107. },
  5108. handleShortcutClick: function handleShortcutClick(shortcut) {
  5109. if (shortcut.onClick) {
  5110. shortcut.onClick(this);
  5111. }
  5112. },
  5113. handleMinTimePick: function handleMinTimePick(value, visible, first) {
  5114. this.minDate = this.minDate || new Date();
  5115. if (value) {
  5116. this.minDate = Object(date_util_["modifyTime"])(this.minDate, value.getHours(), value.getMinutes(), value.getSeconds());
  5117. }
  5118. if (!first) {
  5119. this.minTimePickerVisible = visible;
  5120. }
  5121. if (!this.maxDate || this.maxDate && this.maxDate.getTime() < this.minDate.getTime()) {
  5122. this.maxDate = new Date(this.minDate);
  5123. }
  5124. },
  5125. handleMinTimeClose: function handleMinTimeClose() {
  5126. this.minTimePickerVisible = false;
  5127. },
  5128. handleMaxTimePick: function handleMaxTimePick(value, visible, first) {
  5129. if (this.maxDate && value) {
  5130. this.maxDate = Object(date_util_["modifyTime"])(this.maxDate, value.getHours(), value.getMinutes(), value.getSeconds());
  5131. }
  5132. if (!first) {
  5133. this.maxTimePickerVisible = visible;
  5134. }
  5135. if (this.maxDate && this.minDate && this.minDate.getTime() > this.maxDate.getTime()) {
  5136. this.minDate = new Date(this.maxDate);
  5137. }
  5138. },
  5139. handleMaxTimeClose: function handleMaxTimeClose() {
  5140. this.maxTimePickerVisible = false;
  5141. },
  5142. // leftPrev*, rightNext* need to take care of `unlinkPanels`
  5143. leftPrevYear: function leftPrevYear() {
  5144. this.leftDate = Object(date_util_["prevYear"])(this.leftDate);
  5145. if (!this.unlinkPanels) {
  5146. this.rightDate = Object(date_util_["nextMonth"])(this.leftDate);
  5147. }
  5148. },
  5149. leftPrevMonth: function leftPrevMonth() {
  5150. this.leftDate = Object(date_util_["prevMonth"])(this.leftDate);
  5151. if (!this.unlinkPanels) {
  5152. this.rightDate = Object(date_util_["nextMonth"])(this.leftDate);
  5153. }
  5154. },
  5155. rightNextYear: function rightNextYear() {
  5156. if (!this.unlinkPanels) {
  5157. this.leftDate = Object(date_util_["nextYear"])(this.leftDate);
  5158. this.rightDate = Object(date_util_["nextMonth"])(this.leftDate);
  5159. } else {
  5160. this.rightDate = Object(date_util_["nextYear"])(this.rightDate);
  5161. }
  5162. },
  5163. rightNextMonth: function rightNextMonth() {
  5164. if (!this.unlinkPanels) {
  5165. this.leftDate = Object(date_util_["nextMonth"])(this.leftDate);
  5166. this.rightDate = Object(date_util_["nextMonth"])(this.leftDate);
  5167. } else {
  5168. this.rightDate = Object(date_util_["nextMonth"])(this.rightDate);
  5169. }
  5170. },
  5171. // leftNext*, rightPrev* are called when `unlinkPanels` is true
  5172. leftNextYear: function leftNextYear() {
  5173. this.leftDate = Object(date_util_["nextYear"])(this.leftDate);
  5174. },
  5175. leftNextMonth: function leftNextMonth() {
  5176. this.leftDate = Object(date_util_["nextMonth"])(this.leftDate);
  5177. },
  5178. rightPrevYear: function rightPrevYear() {
  5179. this.rightDate = Object(date_util_["prevYear"])(this.rightDate);
  5180. },
  5181. rightPrevMonth: function rightPrevMonth() {
  5182. this.rightDate = Object(date_util_["prevMonth"])(this.rightDate);
  5183. },
  5184. handleConfirm: function handleConfirm() {
  5185. var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  5186. if (this.isValidValue([this.minDate, this.maxDate])) {
  5187. this.$emit('pick', [this.minDate, this.maxDate], visible);
  5188. }
  5189. },
  5190. isValidValue: function isValidValue(value) {
  5191. return Array.isArray(value) && value && value[0] && value[1] && Object(date_util_["isDate"])(value[0]) && Object(date_util_["isDate"])(value[1]) && value[0].getTime() <= value[1].getTime() && (typeof this.disabledDate === 'function' ? !this.disabledDate(value[0]) && !this.disabledDate(value[1]) : true);
  5192. },
  5193. resetView: function resetView() {
  5194. // NOTE: this is a hack to reset {min, max}Date on picker open.
  5195. // TODO: correct way of doing so is to refactor {min, max}Date to be dependent on value and internal selection state
  5196. // an alternative would be resetView whenever picker becomes visible, should also investigate date-panel's resetView
  5197. if (this.minDate && this.maxDate == null) this.rangeState.selecting = false;
  5198. this.minDate = this.value && Object(date_util_["isDate"])(this.value[0]) ? new Date(this.value[0]) : null;
  5199. this.maxDate = this.value && Object(date_util_["isDate"])(this.value[0]) ? new Date(this.value[1]) : null;
  5200. }
  5201. },
  5202. components: { TimePicker: panel_time["a" /* default */], DateTable: date_table, ElInput: input["default"], ElButton: packages_button["default"] }
  5203. });
  5204. // CONCATENATED MODULE: ./packages/date-picker/src/panel/date-range.vue?vue&type=script&lang=js&
  5205. /* harmony default export */ var panel_date_rangevue_type_script_lang_js_ = (date_rangevue_type_script_lang_js_);
  5206. // CONCATENATED MODULE: ./packages/date-picker/src/panel/date-range.vue
  5207. /* normalize component */
  5208. var date_range_component = Object(componentNormalizer["a" /* default */])(
  5209. panel_date_rangevue_type_script_lang_js_,
  5210. date_rangevue_type_template_id_2652849a_render,
  5211. date_rangevue_type_template_id_2652849a_staticRenderFns,
  5212. false,
  5213. null,
  5214. null,
  5215. null
  5216. )
  5217. /* hot reload */
  5218. if (false) { var date_range_api; }
  5219. date_range_component.options.__file = "packages/date-picker/src/panel/date-range.vue"
  5220. /* harmony default export */ var date_range = (date_range_component.exports);
  5221. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/month-range.vue?vue&type=template&id=f2645fb8&
  5222. var month_rangevue_type_template_id_f2645fb8_render = function() {
  5223. var _vm = this
  5224. var _h = _vm.$createElement
  5225. var _c = _vm._self._c || _h
  5226. return _c(
  5227. "transition",
  5228. {
  5229. attrs: { name: "el-zoom-in-top" },
  5230. on: {
  5231. "after-leave": function($event) {
  5232. _vm.$emit("dodestroy")
  5233. }
  5234. }
  5235. },
  5236. [
  5237. _c(
  5238. "div",
  5239. {
  5240. directives: [
  5241. {
  5242. name: "show",
  5243. rawName: "v-show",
  5244. value: _vm.visible,
  5245. expression: "visible"
  5246. }
  5247. ],
  5248. staticClass: "el-picker-panel el-date-range-picker el-popper",
  5249. class: [
  5250. {
  5251. "has-sidebar": _vm.$slots.sidebar || _vm.shortcuts
  5252. },
  5253. _vm.popperClass
  5254. ]
  5255. },
  5256. [
  5257. _c(
  5258. "div",
  5259. { staticClass: "el-picker-panel__body-wrapper" },
  5260. [
  5261. _vm._t("sidebar"),
  5262. _vm.shortcuts
  5263. ? _c(
  5264. "div",
  5265. { staticClass: "el-picker-panel__sidebar" },
  5266. _vm._l(_vm.shortcuts, function(shortcut, key) {
  5267. return _c(
  5268. "button",
  5269. {
  5270. key: key,
  5271. staticClass: "el-picker-panel__shortcut",
  5272. attrs: { type: "button" },
  5273. on: {
  5274. click: function($event) {
  5275. _vm.handleShortcutClick(shortcut)
  5276. }
  5277. }
  5278. },
  5279. [_vm._v(_vm._s(shortcut.text))]
  5280. )
  5281. }),
  5282. 0
  5283. )
  5284. : _vm._e(),
  5285. _c("div", { staticClass: "el-picker-panel__body" }, [
  5286. _c(
  5287. "div",
  5288. {
  5289. staticClass:
  5290. "el-picker-panel__content el-date-range-picker__content is-left"
  5291. },
  5292. [
  5293. _c("div", { staticClass: "el-date-range-picker__header" }, [
  5294. _c("button", {
  5295. staticClass:
  5296. "el-picker-panel__icon-btn el-icon-d-arrow-left",
  5297. attrs: { type: "button" },
  5298. on: { click: _vm.leftPrevYear }
  5299. }),
  5300. _vm.unlinkPanels
  5301. ? _c("button", {
  5302. staticClass:
  5303. "el-picker-panel__icon-btn el-icon-d-arrow-right",
  5304. class: { "is-disabled": !_vm.enableYearArrow },
  5305. attrs: {
  5306. type: "button",
  5307. disabled: !_vm.enableYearArrow
  5308. },
  5309. on: { click: _vm.leftNextYear }
  5310. })
  5311. : _vm._e(),
  5312. _c("div", [_vm._v(_vm._s(_vm.leftLabel))])
  5313. ]),
  5314. _c("month-table", {
  5315. attrs: {
  5316. "selection-mode": "range",
  5317. date: _vm.leftDate,
  5318. "default-value": _vm.defaultValue,
  5319. "min-date": _vm.minDate,
  5320. "max-date": _vm.maxDate,
  5321. "range-state": _vm.rangeState,
  5322. "disabled-date": _vm.disabledDate
  5323. },
  5324. on: {
  5325. changerange: _vm.handleChangeRange,
  5326. pick: _vm.handleRangePick
  5327. }
  5328. })
  5329. ],
  5330. 1
  5331. ),
  5332. _c(
  5333. "div",
  5334. {
  5335. staticClass:
  5336. "el-picker-panel__content el-date-range-picker__content is-right"
  5337. },
  5338. [
  5339. _c("div", { staticClass: "el-date-range-picker__header" }, [
  5340. _vm.unlinkPanels
  5341. ? _c("button", {
  5342. staticClass:
  5343. "el-picker-panel__icon-btn el-icon-d-arrow-left",
  5344. class: { "is-disabled": !_vm.enableYearArrow },
  5345. attrs: {
  5346. type: "button",
  5347. disabled: !_vm.enableYearArrow
  5348. },
  5349. on: { click: _vm.rightPrevYear }
  5350. })
  5351. : _vm._e(),
  5352. _c("button", {
  5353. staticClass:
  5354. "el-picker-panel__icon-btn el-icon-d-arrow-right",
  5355. attrs: { type: "button" },
  5356. on: { click: _vm.rightNextYear }
  5357. }),
  5358. _c("div", [_vm._v(_vm._s(_vm.rightLabel))])
  5359. ]),
  5360. _c("month-table", {
  5361. attrs: {
  5362. "selection-mode": "range",
  5363. date: _vm.rightDate,
  5364. "default-value": _vm.defaultValue,
  5365. "min-date": _vm.minDate,
  5366. "max-date": _vm.maxDate,
  5367. "range-state": _vm.rangeState,
  5368. "disabled-date": _vm.disabledDate
  5369. },
  5370. on: {
  5371. changerange: _vm.handleChangeRange,
  5372. pick: _vm.handleRangePick
  5373. }
  5374. })
  5375. ],
  5376. 1
  5377. )
  5378. ])
  5379. ],
  5380. 2
  5381. )
  5382. ]
  5383. )
  5384. ]
  5385. )
  5386. }
  5387. var month_rangevue_type_template_id_f2645fb8_staticRenderFns = []
  5388. month_rangevue_type_template_id_f2645fb8_render._withStripped = true
  5389. // CONCATENATED MODULE: ./packages/date-picker/src/panel/month-range.vue?vue&type=template&id=f2645fb8&
  5390. // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/date-picker/src/panel/month-range.vue?vue&type=script&lang=js&
  5391. //
  5392. //
  5393. //
  5394. //
  5395. //
  5396. //
  5397. //
  5398. //
  5399. //
  5400. //
  5401. //
  5402. //
  5403. //
  5404. //
  5405. //
  5406. //
  5407. //
  5408. //
  5409. //
  5410. //
  5411. //
  5412. //
  5413. //
  5414. //
  5415. //
  5416. //
  5417. //
  5418. //
  5419. //
  5420. //
  5421. //
  5422. //
  5423. //
  5424. //
  5425. //
  5426. //
  5427. //
  5428. //
  5429. //
  5430. //
  5431. //
  5432. //
  5433. //
  5434. //
  5435. //
  5436. //
  5437. //
  5438. //
  5439. //
  5440. //
  5441. //
  5442. //
  5443. //
  5444. //
  5445. //
  5446. //
  5447. //
  5448. //
  5449. //
  5450. //
  5451. //
  5452. //
  5453. //
  5454. //
  5455. //
  5456. //
  5457. //
  5458. //
  5459. //
  5460. //
  5461. //
  5462. //
  5463. //
  5464. //
  5465. //
  5466. //
  5467. //
  5468. //
  5469. //
  5470. var month_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultValue(defaultValue) {
  5471. if (Array.isArray(defaultValue)) {
  5472. return [new Date(defaultValue[0]), new Date(defaultValue[1])];
  5473. } else if (defaultValue) {
  5474. return [new Date(defaultValue), Object(date_util_["nextMonth"])(new Date(defaultValue))];
  5475. } else {
  5476. return [new Date(), Object(date_util_["nextMonth"])(new Date())];
  5477. }
  5478. };
  5479. /* harmony default export */ var month_rangevue_type_script_lang_js_ = ({
  5480. mixins: [locale_default.a],
  5481. directives: { Clickoutside: clickoutside_default.a },
  5482. computed: {
  5483. btnDisabled: function btnDisabled() {
  5484. return !(this.minDate && this.maxDate && !this.selecting && this.isValidValue([this.minDate, this.maxDate]));
  5485. },
  5486. leftLabel: function leftLabel() {
  5487. return this.leftDate.getFullYear() + ' ' + this.t('el.datepicker.year');
  5488. },
  5489. rightLabel: function rightLabel() {
  5490. return this.rightDate.getFullYear() + ' ' + this.t('el.datepicker.year');
  5491. },
  5492. leftYear: function leftYear() {
  5493. return this.leftDate.getFullYear();
  5494. },
  5495. rightYear: function rightYear() {
  5496. return this.rightDate.getFullYear() === this.leftDate.getFullYear() ? this.leftDate.getFullYear() + 1 : this.rightDate.getFullYear();
  5497. },
  5498. enableYearArrow: function enableYearArrow() {
  5499. return this.unlinkPanels && this.rightYear > this.leftYear + 1;
  5500. }
  5501. },
  5502. data: function data() {
  5503. return {
  5504. popperClass: '',
  5505. value: [],
  5506. defaultValue: null,
  5507. defaultTime: null,
  5508. minDate: '',
  5509. maxDate: '',
  5510. leftDate: new Date(),
  5511. rightDate: Object(date_util_["nextYear"])(new Date()),
  5512. rangeState: {
  5513. endDate: null,
  5514. selecting: false,
  5515. row: null,
  5516. column: null
  5517. },
  5518. shortcuts: '',
  5519. visible: '',
  5520. disabledDate: '',
  5521. format: '',
  5522. arrowControl: false,
  5523. unlinkPanels: false
  5524. };
  5525. },
  5526. watch: {
  5527. value: function value(newVal) {
  5528. if (!newVal) {
  5529. this.minDate = null;
  5530. this.maxDate = null;
  5531. } else if (Array.isArray(newVal)) {
  5532. this.minDate = Object(date_util_["isDate"])(newVal[0]) ? new Date(newVal[0]) : null;
  5533. this.maxDate = Object(date_util_["isDate"])(newVal[1]) ? new Date(newVal[1]) : null;
  5534. if (this.minDate) {
  5535. this.leftDate = this.minDate;
  5536. if (this.unlinkPanels && this.maxDate) {
  5537. var minDateYear = this.minDate.getFullYear();
  5538. var maxDateYear = this.maxDate.getFullYear();
  5539. this.rightDate = minDateYear === maxDateYear ? Object(date_util_["nextYear"])(this.maxDate) : this.maxDate;
  5540. } else {
  5541. this.rightDate = Object(date_util_["nextYear"])(this.leftDate);
  5542. }
  5543. } else {
  5544. this.leftDate = month_rangevue_type_script_lang_js_calcDefaultValue(this.defaultValue)[0];
  5545. this.rightDate = Object(date_util_["nextYear"])(this.leftDate);
  5546. }
  5547. }
  5548. },
  5549. defaultValue: function defaultValue(val) {
  5550. if (!Array.isArray(this.value)) {
  5551. var _calcDefaultValue = month_rangevue_type_script_lang_js_calcDefaultValue(val),
  5552. left = _calcDefaultValue[0],
  5553. right = _calcDefaultValue[1];
  5554. this.leftDate = left;
  5555. this.rightDate = val && val[1] && left.getFullYear() !== right.getFullYear() && this.unlinkPanels ? right : Object(date_util_["nextYear"])(this.leftDate);
  5556. }
  5557. }
  5558. },
  5559. methods: {
  5560. handleClear: function handleClear() {
  5561. this.minDate = null;
  5562. this.maxDate = null;
  5563. this.leftDate = month_rangevue_type_script_lang_js_calcDefaultValue(this.defaultValue)[0];
  5564. this.rightDate = Object(date_util_["nextYear"])(this.leftDate);
  5565. this.$emit('pick', null);
  5566. },
  5567. handleChangeRange: function handleChangeRange(val) {
  5568. this.minDate = val.minDate;
  5569. this.maxDate = val.maxDate;
  5570. this.rangeState = val.rangeState;
  5571. },
  5572. handleRangePick: function handleRangePick(val) {
  5573. var _this = this;
  5574. var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
  5575. var defaultTime = this.defaultTime || [];
  5576. var minDate = Object(date_util_["modifyWithTimeString"])(val.minDate, defaultTime[0]);
  5577. var maxDate = Object(date_util_["modifyWithTimeString"])(val.maxDate, defaultTime[1]);
  5578. if (this.maxDate === maxDate && this.minDate === minDate) {
  5579. return;
  5580. }
  5581. this.onPick && this.onPick(val);
  5582. this.maxDate = maxDate;
  5583. this.minDate = minDate;
  5584. // workaround for https://github.com/ElemeFE/element/issues/7539, should remove this block when we don't have to care about Chromium 55 - 57
  5585. setTimeout(function () {
  5586. _this.maxDate = maxDate;
  5587. _this.minDate = minDate;
  5588. }, 10);
  5589. if (!close) return;
  5590. this.handleConfirm();
  5591. },
  5592. handleShortcutClick: function handleShortcutClick(shortcut) {
  5593. if (shortcut.onClick) {
  5594. shortcut.onClick(this);
  5595. }
  5596. },
  5597. // leftPrev*, rightNext* need to take care of `unlinkPanels`
  5598. leftPrevYear: function leftPrevYear() {
  5599. this.leftDate = Object(date_util_["prevYear"])(this.leftDate);
  5600. if (!this.unlinkPanels) {
  5601. this.rightDate = Object(date_util_["prevYear"])(this.rightDate);
  5602. }
  5603. },
  5604. rightNextYear: function rightNextYear() {
  5605. if (!this.unlinkPanels) {
  5606. this.leftDate = Object(date_util_["nextYear"])(this.leftDate);
  5607. }
  5608. this.rightDate = Object(date_util_["nextYear"])(this.rightDate);
  5609. },
  5610. // leftNext*, rightPrev* are called when `unlinkPanels` is true
  5611. leftNextYear: function leftNextYear() {
  5612. this.leftDate = Object(date_util_["nextYear"])(this.leftDate);
  5613. },
  5614. rightPrevYear: function rightPrevYear() {
  5615. this.rightDate = Object(date_util_["prevYear"])(this.rightDate);
  5616. },
  5617. handleConfirm: function handleConfirm() {
  5618. var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  5619. if (this.isValidValue([this.minDate, this.maxDate])) {
  5620. this.$emit('pick', [this.minDate, this.maxDate], visible);
  5621. }
  5622. },
  5623. isValidValue: function isValidValue(value) {
  5624. return Array.isArray(value) && value && value[0] && value[1] && Object(date_util_["isDate"])(value[0]) && Object(date_util_["isDate"])(value[1]) && value[0].getTime() <= value[1].getTime() && (typeof this.disabledDate === 'function' ? !this.disabledDate(value[0]) && !this.disabledDate(value[1]) : true);
  5625. },
  5626. resetView: function resetView() {
  5627. // NOTE: this is a hack to reset {min, max}Date on picker open.
  5628. // TODO: correct way of doing so is to refactor {min, max}Date to be dependent on value and internal selection state
  5629. // an alternative would be resetView whenever picker becomes visible, should also investigate date-panel's resetView
  5630. this.minDate = this.value && Object(date_util_["isDate"])(this.value[0]) ? new Date(this.value[0]) : null;
  5631. this.maxDate = this.value && Object(date_util_["isDate"])(this.value[0]) ? new Date(this.value[1]) : null;
  5632. }
  5633. },
  5634. components: { MonthTable: month_table, ElInput: input["default"], ElButton: packages_button["default"] }
  5635. });
  5636. // CONCATENATED MODULE: ./packages/date-picker/src/panel/month-range.vue?vue&type=script&lang=js&
  5637. /* harmony default export */ var panel_month_rangevue_type_script_lang_js_ = (month_rangevue_type_script_lang_js_);
  5638. // CONCATENATED MODULE: ./packages/date-picker/src/panel/month-range.vue
  5639. /* normalize component */
  5640. var month_range_component = Object(componentNormalizer["a" /* default */])(
  5641. panel_month_rangevue_type_script_lang_js_,
  5642. month_rangevue_type_template_id_f2645fb8_render,
  5643. month_rangevue_type_template_id_f2645fb8_staticRenderFns,
  5644. false,
  5645. null,
  5646. null,
  5647. null
  5648. )
  5649. /* hot reload */
  5650. if (false) { var month_range_api; }
  5651. month_range_component.options.__file = "packages/date-picker/src/panel/month-range.vue"
  5652. /* harmony default export */ var month_range = (month_range_component.exports);
  5653. // CONCATENATED MODULE: ./packages/date-picker/src/picker/date-picker.js
  5654. var date_picker_getPanel = function getPanel(type) {
  5655. if (type === 'daterange' || type === 'datetimerange') {
  5656. return date_range;
  5657. } else if (type === 'monthrange') {
  5658. return month_range;
  5659. }
  5660. return panel_date;
  5661. };
  5662. /* harmony default export */ var date_picker = ({
  5663. mixins: [picker["a" /* default */]],
  5664. name: 'TisDatePicker',
  5665. props: {
  5666. type: {
  5667. type: String,
  5668. default: 'date'
  5669. },
  5670. timeArrowControl: Boolean
  5671. },
  5672. watch: {
  5673. type: function type(_type) {
  5674. if (this.picker) {
  5675. this.unmountPicker();
  5676. this.panel = date_picker_getPanel(_type);
  5677. this.mountPicker();
  5678. } else {
  5679. this.panel = date_picker_getPanel(_type);
  5680. }
  5681. }
  5682. },
  5683. created: function created() {
  5684. this.panel = date_picker_getPanel(this.type);
  5685. }
  5686. });
  5687. // CONCATENATED MODULE: ./packages/date-picker/index.js
  5688. /* istanbul ignore next */
  5689. date_picker.install = function install(Vue) {
  5690. Vue.component(date_picker.name, date_picker);
  5691. };
  5692. /* harmony default export */ var packages_date_picker = __webpack_exports__["default"] = (date_picker);
  5693. /***/ }),
  5694. /***/ 52:
  5695. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5696. "use strict";
  5697. // ESM COMPAT FLAG
  5698. __webpack_require__.r(__webpack_exports__);
  5699. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/input/src/input.vue?vue&type=template&id=343dd774&
  5700. var render = function() {
  5701. var _vm = this
  5702. var _h = _vm.$createElement
  5703. var _c = _vm._self._c || _h
  5704. return _c(
  5705. "div",
  5706. {
  5707. class: [
  5708. _vm.type === "textarea" ? "el-textarea" : "el-input",
  5709. _vm.inputSize ? "el-input--" + _vm.inputSize : "",
  5710. {
  5711. "is-disabled": _vm.inputDisabled,
  5712. "is-exceed": _vm.inputExceed,
  5713. "el-input-group": _vm.$slots.prepend || _vm.$slots.append,
  5714. "el-input-group--append": _vm.$slots.append,
  5715. "el-input-group--prepend": _vm.$slots.prepend,
  5716. "el-input--prefix": _vm.$slots.prefix || _vm.prefixIcon,
  5717. "el-input--suffix":
  5718. _vm.$slots.suffix ||
  5719. _vm.suffixIcon ||
  5720. _vm.clearable ||
  5721. _vm.showPassword
  5722. }
  5723. ],
  5724. on: {
  5725. mouseenter: function($event) {
  5726. _vm.hovering = true
  5727. },
  5728. mouseleave: function($event) {
  5729. _vm.hovering = false
  5730. }
  5731. }
  5732. },
  5733. [
  5734. _vm.type !== "textarea"
  5735. ? [
  5736. _vm.$slots.prepend
  5737. ? _c(
  5738. "div",
  5739. { staticClass: "el-input-group__prepend" },
  5740. [_vm._t("prepend")],
  5741. 2
  5742. )
  5743. : _vm._e(),
  5744. _vm.type !== "textarea"
  5745. ? _c(
  5746. "input",
  5747. _vm._b(
  5748. {
  5749. ref: "input",
  5750. staticClass: "el-input__inner",
  5751. attrs: {
  5752. tabindex: _vm.tabindex,
  5753. type: _vm.showPassword
  5754. ? _vm.passwordVisible
  5755. ? "text"
  5756. : "password"
  5757. : _vm.type,
  5758. disabled: _vm.inputDisabled,
  5759. readonly: _vm.readonly,
  5760. autocomplete: _vm.autoComplete || _vm.autocomplete,
  5761. "aria-label": _vm.label
  5762. },
  5763. on: {
  5764. compositionstart: _vm.handleCompositionStart,
  5765. compositionupdate: _vm.handleCompositionUpdate,
  5766. compositionend: _vm.handleCompositionEnd,
  5767. input: _vm.handleInput,
  5768. focus: _vm.handleFocus,
  5769. blur: _vm.handleBlur,
  5770. change: _vm.handleChange
  5771. }
  5772. },
  5773. "input",
  5774. _vm.$attrs,
  5775. false
  5776. )
  5777. )
  5778. : _vm._e(),
  5779. _vm.$slots.prefix || _vm.prefixIcon
  5780. ? _c(
  5781. "span",
  5782. { staticClass: "el-input__prefix" },
  5783. [
  5784. _vm._t("prefix"),
  5785. _vm.prefixIcon
  5786. ? _c("i", {
  5787. staticClass: "el-input__icon",
  5788. class: _vm.prefixIcon
  5789. })
  5790. : _vm._e()
  5791. ],
  5792. 2
  5793. )
  5794. : _vm._e(),
  5795. _vm.getSuffixVisible()
  5796. ? _c("span", { staticClass: "el-input__suffix" }, [
  5797. _c(
  5798. "span",
  5799. { staticClass: "el-input__suffix-inner" },
  5800. [
  5801. !_vm.showClear ||
  5802. !_vm.showPwdVisible ||
  5803. !_vm.isWordLimitVisible
  5804. ? [
  5805. _vm._t("suffix"),
  5806. _vm.suffixIcon
  5807. ? _c("i", {
  5808. staticClass: "el-input__icon",
  5809. class: _vm.suffixIcon
  5810. })
  5811. : _vm._e()
  5812. ]
  5813. : _vm._e(),
  5814. _vm.showClear
  5815. ? _c("i", {
  5816. staticClass:
  5817. "el-input__icon el-icon-circle-close el-input__clear",
  5818. on: {
  5819. mousedown: function($event) {
  5820. $event.preventDefault()
  5821. },
  5822. click: _vm.clear
  5823. }
  5824. })
  5825. : _vm._e(),
  5826. _vm.showPwdVisible
  5827. ? _c("i", {
  5828. staticClass:
  5829. "el-input__icon el-icon-view el-input__clear",
  5830. on: { click: _vm.handlePasswordVisible }
  5831. })
  5832. : _vm._e(),
  5833. _vm.isWordLimitVisible
  5834. ? _c("span", { staticClass: "el-input__count" }, [
  5835. _c(
  5836. "span",
  5837. { staticClass: "el-input__count-inner" },
  5838. [
  5839. _vm._v(
  5840. "\n " +
  5841. _vm._s(_vm.textLength) +
  5842. "/" +
  5843. _vm._s(_vm.upperLimit) +
  5844. "\n "
  5845. )
  5846. ]
  5847. )
  5848. ])
  5849. : _vm._e()
  5850. ],
  5851. 2
  5852. ),
  5853. _vm.validateState
  5854. ? _c("i", {
  5855. staticClass: "el-input__icon",
  5856. class: ["el-input__validateIcon", _vm.validateIcon]
  5857. })
  5858. : _vm._e()
  5859. ])
  5860. : _vm._e(),
  5861. _vm.$slots.append
  5862. ? _c(
  5863. "div",
  5864. { staticClass: "el-input-group__append" },
  5865. [_vm._t("append")],
  5866. 2
  5867. )
  5868. : _vm._e()
  5869. ]
  5870. : _c(
  5871. "textarea",
  5872. _vm._b(
  5873. {
  5874. ref: "textarea",
  5875. staticClass: "el-textarea__inner",
  5876. style: _vm.textareaStyle,
  5877. attrs: {
  5878. tabindex: _vm.tabindex,
  5879. disabled: _vm.inputDisabled,
  5880. readonly: _vm.readonly,
  5881. autocomplete: _vm.autoComplete || _vm.autocomplete,
  5882. "aria-label": _vm.label
  5883. },
  5884. on: {
  5885. compositionstart: _vm.handleCompositionStart,
  5886. compositionupdate: _vm.handleCompositionUpdate,
  5887. compositionend: _vm.handleCompositionEnd,
  5888. input: _vm.handleInput,
  5889. focus: _vm.handleFocus,
  5890. blur: _vm.handleBlur,
  5891. change: _vm.handleChange
  5892. }
  5893. },
  5894. "textarea",
  5895. _vm.$attrs,
  5896. false
  5897. )
  5898. ),
  5899. _vm.isWordLimitVisible && _vm.type === "textarea"
  5900. ? _c("span", { staticClass: "el-input__count" }, [
  5901. _vm._v(_vm._s(_vm.textLength) + "/" + _vm._s(_vm.upperLimit))
  5902. ])
  5903. : _vm._e()
  5904. ],
  5905. 2
  5906. )
  5907. }
  5908. var staticRenderFns = []
  5909. render._withStripped = true
  5910. // CONCATENATED MODULE: ./packages/input/src/input.vue?vue&type=template&id=343dd774&
  5911. // EXTERNAL MODULE: external "tis-ui/lib/mixins/emitter"
  5912. var emitter_ = __webpack_require__(13);
  5913. var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
  5914. // EXTERNAL MODULE: external "tis-ui/lib/mixins/migrating"
  5915. var migrating_ = __webpack_require__(36);
  5916. var migrating_default = /*#__PURE__*/__webpack_require__.n(migrating_);
  5917. // CONCATENATED MODULE: ./packages/input/src/calcTextareaHeight.js
  5918. var hiddenTextarea = void 0;
  5919. var HIDDEN_STYLE = '\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n';
  5920. var CONTEXT_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing'];
  5921. function calculateNodeStyling(targetElement) {
  5922. var style = window.getComputedStyle(targetElement);
  5923. var boxSizing = style.getPropertyValue('box-sizing');
  5924. var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));
  5925. var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));
  5926. var contextStyle = CONTEXT_STYLE.map(function (name) {
  5927. return name + ':' + style.getPropertyValue(name);
  5928. }).join(';');
  5929. return { contextStyle: contextStyle, paddingSize: paddingSize, borderSize: borderSize, boxSizing: boxSizing };
  5930. }
  5931. function calcTextareaHeight(targetElement) {
  5932. var minRows = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
  5933. var maxRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
  5934. if (!hiddenTextarea) {
  5935. hiddenTextarea = document.createElement('textarea');
  5936. document.body.appendChild(hiddenTextarea);
  5937. }
  5938. var _calculateNodeStyling = calculateNodeStyling(targetElement),
  5939. paddingSize = _calculateNodeStyling.paddingSize,
  5940. borderSize = _calculateNodeStyling.borderSize,
  5941. boxSizing = _calculateNodeStyling.boxSizing,
  5942. contextStyle = _calculateNodeStyling.contextStyle;
  5943. hiddenTextarea.setAttribute('style', contextStyle + ';' + HIDDEN_STYLE);
  5944. hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';
  5945. var height = hiddenTextarea.scrollHeight;
  5946. var result = {};
  5947. if (boxSizing === 'border-box') {
  5948. height = height + borderSize;
  5949. } else if (boxSizing === 'content-box') {
  5950. height = height - paddingSize;
  5951. }
  5952. hiddenTextarea.value = '';
  5953. var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
  5954. if (minRows !== null) {
  5955. var minHeight = singleRowHeight * minRows;
  5956. if (boxSizing === 'border-box') {
  5957. minHeight = minHeight + paddingSize + borderSize;
  5958. }
  5959. height = Math.max(minHeight, height);
  5960. result.minHeight = minHeight + 'px';
  5961. }
  5962. if (maxRows !== null) {
  5963. var maxHeight = singleRowHeight * maxRows;
  5964. if (boxSizing === 'border-box') {
  5965. maxHeight = maxHeight + paddingSize + borderSize;
  5966. }
  5967. height = Math.min(maxHeight, height);
  5968. }
  5969. result.height = height + 'px';
  5970. hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);
  5971. hiddenTextarea = null;
  5972. return result;
  5973. };
  5974. // EXTERNAL MODULE: external "tis-ui/lib/utils/merge"
  5975. var merge_ = __webpack_require__(33);
  5976. var merge_default = /*#__PURE__*/__webpack_require__.n(merge_);
  5977. // EXTERNAL MODULE: external "tis-ui/lib/utils/shared"
  5978. var shared_ = __webpack_require__(49);
  5979. // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/input/src/input.vue?vue&type=script&lang=js&
  5980. //
  5981. //
  5982. //
  5983. //
  5984. //
  5985. //
  5986. //
  5987. //
  5988. //
  5989. //
  5990. //
  5991. //
  5992. //
  5993. //
  5994. //
  5995. //
  5996. //
  5997. //
  5998. //
  5999. //
  6000. //
  6001. //
  6002. //
  6003. //
  6004. //
  6005. //
  6006. //
  6007. //
  6008. //
  6009. //
  6010. //
  6011. //
  6012. //
  6013. //
  6014. //
  6015. //
  6016. //
  6017. //
  6018. //
  6019. //
  6020. //
  6021. //
  6022. //
  6023. //
  6024. //
  6025. //
  6026. //
  6027. //
  6028. //
  6029. //
  6030. //
  6031. //
  6032. //
  6033. //
  6034. //
  6035. //
  6036. //
  6037. //
  6038. //
  6039. //
  6040. //
  6041. //
  6042. //
  6043. //
  6044. //
  6045. //
  6046. //
  6047. //
  6048. //
  6049. //
  6050. //
  6051. //
  6052. //
  6053. //
  6054. //
  6055. //
  6056. //
  6057. //
  6058. //
  6059. //
  6060. //
  6061. //
  6062. //
  6063. //
  6064. //
  6065. //
  6066. //
  6067. //
  6068. //
  6069. //
  6070. //
  6071. //
  6072. //
  6073. //
  6074. //
  6075. //
  6076. //
  6077. //
  6078. //
  6079. //
  6080. //
  6081. //
  6082. //
  6083. //
  6084. //
  6085. //
  6086. //
  6087. //
  6088. //
  6089. /* harmony default export */ var inputvue_type_script_lang_js_ = ({
  6090. name: 'TisInput',
  6091. componentName: 'TisInput',
  6092. mixins: [emitter_default.a, migrating_default.a],
  6093. inheritAttrs: false,
  6094. inject: {
  6095. elForm: {
  6096. default: ''
  6097. },
  6098. elFormItem: {
  6099. default: ''
  6100. }
  6101. },
  6102. data: function data() {
  6103. return {
  6104. textareaCalcStyle: {},
  6105. hovering: false,
  6106. focused: false,
  6107. isComposing: false,
  6108. passwordVisible: false
  6109. };
  6110. },
  6111. props: {
  6112. value: [String, Number],
  6113. size: String,
  6114. resize: String,
  6115. form: String,
  6116. disabled: Boolean,
  6117. readonly: Boolean,
  6118. type: {
  6119. type: String,
  6120. default: 'text'
  6121. },
  6122. autosize: {
  6123. type: [Boolean, Object],
  6124. default: false
  6125. },
  6126. autocomplete: {
  6127. type: String,
  6128. default: 'off'
  6129. },
  6130. /** @Deprecated in next major version */
  6131. autoComplete: {
  6132. type: String,
  6133. validator: function validator(val) {
  6134. false && false;
  6135. return true;
  6136. }
  6137. },
  6138. validateEvent: {
  6139. type: Boolean,
  6140. default: true
  6141. },
  6142. suffixIcon: String,
  6143. prefixIcon: String,
  6144. label: String,
  6145. clearable: {
  6146. type: Boolean,
  6147. default: false
  6148. },
  6149. showPassword: {
  6150. type: Boolean,
  6151. default: false
  6152. },
  6153. showWordLimit: {
  6154. type: Boolean,
  6155. default: false
  6156. },
  6157. tabindex: String
  6158. },
  6159. computed: {
  6160. _elFormItemSize: function _elFormItemSize() {
  6161. return (this.elFormItem || {}).elFormItemSize;
  6162. },
  6163. validateState: function validateState() {
  6164. return this.elFormItem ? this.elFormItem.validateState : '';
  6165. },
  6166. needStatusIcon: function needStatusIcon() {
  6167. return this.elForm ? this.elForm.statusIcon : false;
  6168. },
  6169. validateIcon: function validateIcon() {
  6170. return {
  6171. validating: 'el-icon-loading',
  6172. success: 'el-icon-circle-check',
  6173. error: 'el-icon-circle-close'
  6174. }[this.validateState];
  6175. },
  6176. textareaStyle: function textareaStyle() {
  6177. return merge_default()({}, this.textareaCalcStyle, { resize: this.resize });
  6178. },
  6179. inputSize: function inputSize() {
  6180. return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
  6181. },
  6182. inputDisabled: function inputDisabled() {
  6183. return this.disabled || (this.elForm || {}).disabled;
  6184. },
  6185. nativeInputValue: function nativeInputValue() {
  6186. return this.value === null || this.value === undefined ? '' : String(this.value);
  6187. },
  6188. showClear: function showClear() {
  6189. return this.clearable && !this.inputDisabled && !this.readonly && this.nativeInputValue && (this.focused || this.hovering);
  6190. },
  6191. showPwdVisible: function showPwdVisible() {
  6192. return this.showPassword && !this.inputDisabled && !this.readonly && (!!this.nativeInputValue || this.focused);
  6193. },
  6194. isWordLimitVisible: function isWordLimitVisible() {
  6195. return this.showWordLimit && this.$attrs.maxlength && (this.type === 'text' || this.type === 'textarea') && !this.inputDisabled && !this.readonly && !this.showPassword;
  6196. },
  6197. upperLimit: function upperLimit() {
  6198. return this.$attrs.maxlength;
  6199. },
  6200. textLength: function textLength() {
  6201. if (typeof this.value === 'number') {
  6202. return String(this.value).length;
  6203. }
  6204. return (this.value || '').length;
  6205. },
  6206. inputExceed: function inputExceed() {
  6207. // show exceed style if length of initial value greater then maxlength
  6208. return this.isWordLimitVisible && this.textLength > this.upperLimit;
  6209. }
  6210. },
  6211. watch: {
  6212. value: function value(val) {
  6213. this.$nextTick(this.resizeTextarea);
  6214. if (this.validateEvent) {
  6215. this.dispatch('ElFormItem', 'el.form.change', [val]);
  6216. }
  6217. },
  6218. // native input value is set explicitly
  6219. // do not use v-model / :value in template
  6220. // see: https://github.com/ElemeFE/element/issues/14521
  6221. nativeInputValue: function nativeInputValue() {
  6222. this.setNativeInputValue();
  6223. },
  6224. // when change between <input> and <textarea>,
  6225. // update DOM dependent value and styles
  6226. // https://github.com/ElemeFE/element/issues/14857
  6227. type: function type() {
  6228. var _this = this;
  6229. this.$nextTick(function () {
  6230. _this.setNativeInputValue();
  6231. _this.resizeTextarea();
  6232. _this.updateIconOffset();
  6233. });
  6234. }
  6235. },
  6236. methods: {
  6237. focus: function focus() {
  6238. this.getInput().focus();
  6239. },
  6240. blur: function blur() {
  6241. this.getInput().blur();
  6242. },
  6243. getMigratingConfig: function getMigratingConfig() {
  6244. return {
  6245. props: {
  6246. 'icon': 'icon is removed, use suffix-icon / prefix-icon instead.',
  6247. 'on-icon-click': 'on-icon-click is removed.'
  6248. },
  6249. events: {
  6250. 'click': 'click is removed.'
  6251. }
  6252. };
  6253. },
  6254. handleBlur: function handleBlur(event) {
  6255. this.focused = false;
  6256. this.$emit('blur', event);
  6257. if (this.validateEvent) {
  6258. this.dispatch('ElFormItem', 'el.form.blur', [this.value]);
  6259. }
  6260. },
  6261. select: function select() {
  6262. this.getInput().select();
  6263. },
  6264. resizeTextarea: function resizeTextarea() {
  6265. if (this.$isServer) return;
  6266. var autosize = this.autosize,
  6267. type = this.type;
  6268. if (type !== 'textarea') return;
  6269. if (!autosize) {
  6270. this.textareaCalcStyle = {
  6271. minHeight: calcTextareaHeight(this.$refs.textarea).minHeight
  6272. };
  6273. return;
  6274. }
  6275. var minRows = autosize.minRows;
  6276. var maxRows = autosize.maxRows;
  6277. this.textareaCalcStyle = calcTextareaHeight(this.$refs.textarea, minRows, maxRows);
  6278. },
  6279. setNativeInputValue: function setNativeInputValue() {
  6280. var input = this.getInput();
  6281. if (!input) return;
  6282. if (input.value === this.nativeInputValue) return;
  6283. input.value = this.nativeInputValue;
  6284. },
  6285. handleFocus: function handleFocus(event) {
  6286. this.focused = true;
  6287. this.$emit('focus', event);
  6288. },
  6289. handleCompositionStart: function handleCompositionStart() {
  6290. this.isComposing = true;
  6291. },
  6292. handleCompositionUpdate: function handleCompositionUpdate(event) {
  6293. var text = event.target.value;
  6294. var lastCharacter = text[text.length - 1] || '';
  6295. this.isComposing = !Object(shared_["isKorean"])(lastCharacter);
  6296. },
  6297. handleCompositionEnd: function handleCompositionEnd(event) {
  6298. if (this.isComposing) {
  6299. this.isComposing = false;
  6300. this.handleInput(event);
  6301. }
  6302. },
  6303. handleInput: function handleInput(event) {
  6304. // should not emit input during composition
  6305. // see: https://github.com/ElemeFE/element/issues/10516
  6306. if (this.isComposing) return;
  6307. // hack for https://github.com/ElemeFE/element/issues/8548
  6308. // should remove the following line when we don't support IE
  6309. if (event.target.value === this.nativeInputValue) return;
  6310. this.$emit('input', event.target.value);
  6311. // ensure native input value is controlled
  6312. // see: https://github.com/ElemeFE/element/issues/12850
  6313. this.$nextTick(this.setNativeInputValue);
  6314. },
  6315. handleChange: function handleChange(event) {
  6316. this.$emit('change', event.target.value);
  6317. },
  6318. calcIconOffset: function calcIconOffset(place) {
  6319. var elList = [].slice.call(this.$el.querySelectorAll('.el-input__' + place) || []);
  6320. if (!elList.length) return;
  6321. var el = null;
  6322. for (var i = 0; i < elList.length; i++) {
  6323. if (elList[i].parentNode === this.$el) {
  6324. el = elList[i];
  6325. break;
  6326. }
  6327. }
  6328. if (!el) return;
  6329. var pendantMap = {
  6330. suffix: 'append',
  6331. prefix: 'prepend'
  6332. };
  6333. var pendant = pendantMap[place];
  6334. if (this.$slots[pendant]) {
  6335. el.style.transform = 'translateX(' + (place === 'suffix' ? '-' : '') + this.$el.querySelector('.el-input-group__' + pendant).offsetWidth + 'px)';
  6336. } else {
  6337. el.removeAttribute('style');
  6338. }
  6339. },
  6340. updateIconOffset: function updateIconOffset() {
  6341. this.calcIconOffset('prefix');
  6342. this.calcIconOffset('suffix');
  6343. },
  6344. clear: function clear() {
  6345. this.$emit('input', '');
  6346. this.$emit('change', '');
  6347. this.$emit('clear');
  6348. },
  6349. handlePasswordVisible: function handlePasswordVisible() {
  6350. this.passwordVisible = !this.passwordVisible;
  6351. this.focus();
  6352. },
  6353. getInput: function getInput() {
  6354. return this.$refs.input || this.$refs.textarea;
  6355. },
  6356. getSuffixVisible: function getSuffixVisible() {
  6357. return this.$slots.suffix || this.suffixIcon || this.showClear || this.showPassword || this.isWordLimitVisible || this.validateState && this.needStatusIcon;
  6358. }
  6359. },
  6360. created: function created() {
  6361. this.$on('inputSelect', this.select);
  6362. },
  6363. mounted: function mounted() {
  6364. this.setNativeInputValue();
  6365. this.resizeTextarea();
  6366. this.updateIconOffset();
  6367. },
  6368. updated: function updated() {
  6369. this.$nextTick(this.updateIconOffset);
  6370. }
  6371. });
  6372. // CONCATENATED MODULE: ./packages/input/src/input.vue?vue&type=script&lang=js&
  6373. /* harmony default export */ var src_inputvue_type_script_lang_js_ = (inputvue_type_script_lang_js_);
  6374. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  6375. var componentNormalizer = __webpack_require__(2);
  6376. // CONCATENATED MODULE: ./packages/input/src/input.vue
  6377. /* normalize component */
  6378. var component = Object(componentNormalizer["a" /* default */])(
  6379. src_inputvue_type_script_lang_js_,
  6380. render,
  6381. staticRenderFns,
  6382. false,
  6383. null,
  6384. null,
  6385. null
  6386. )
  6387. /* hot reload */
  6388. if (false) { var api; }
  6389. component.options.__file = "packages/input/src/input.vue"
  6390. /* harmony default export */ var input = (component.exports);
  6391. // CONCATENATED MODULE: ./packages/input/index.js
  6392. /* istanbul ignore next */
  6393. input.install = function (Vue) {
  6394. Vue.component(input.name, input);
  6395. };
  6396. /* harmony default export */ var packages_input = __webpack_exports__["default"] = (input);
  6397. /***/ }),
  6398. /***/ 61:
  6399. /***/ (function(module, exports) {
  6400. module.exports = require("tis-ui/lib/utils/clickoutside");
  6401. /***/ }),
  6402. /***/ 65:
  6403. /***/ (function(module, exports) {
  6404. module.exports = require("tis-ui/lib/utils/scrollbar-width");
  6405. /***/ }),
  6406. /***/ 66:
  6407. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6408. "use strict";
  6409. // ESM COMPAT FLAG
  6410. __webpack_require__.r(__webpack_exports__);
  6411. // EXTERNAL MODULE: external "tis-ui/lib/utils/resize-event"
  6412. var resize_event_ = __webpack_require__(44);
  6413. // EXTERNAL MODULE: external "tis-ui/lib/utils/scrollbar-width"
  6414. var scrollbar_width_ = __webpack_require__(65);
  6415. var scrollbar_width_default = /*#__PURE__*/__webpack_require__.n(scrollbar_width_);
  6416. // EXTERNAL MODULE: external "tis-ui/lib/utils/util"
  6417. var util_ = __webpack_require__(10);
  6418. // EXTERNAL MODULE: external "tis-ui/lib/utils/dom"
  6419. var dom_ = __webpack_require__(7);
  6420. // CONCATENATED MODULE: ./packages/scrollbar/src/util.js
  6421. var BAR_MAP = {
  6422. vertical: {
  6423. offset: 'offsetHeight',
  6424. scroll: 'scrollTop',
  6425. scrollSize: 'scrollHeight',
  6426. size: 'height',
  6427. key: 'vertical',
  6428. axis: 'Y',
  6429. client: 'clientY',
  6430. direction: 'top'
  6431. },
  6432. horizontal: {
  6433. offset: 'offsetWidth',
  6434. scroll: 'scrollLeft',
  6435. scrollSize: 'scrollWidth',
  6436. size: 'width',
  6437. key: 'horizontal',
  6438. axis: 'X',
  6439. client: 'clientX',
  6440. direction: 'left'
  6441. }
  6442. };
  6443. function renderThumbStyle(_ref) {
  6444. var move = _ref.move,
  6445. size = _ref.size,
  6446. bar = _ref.bar;
  6447. var style = {};
  6448. var translate = 'translate' + bar.axis + '(' + move + '%)';
  6449. style[bar.size] = size;
  6450. style.transform = translate;
  6451. style.msTransform = translate;
  6452. style.webkitTransform = translate;
  6453. return style;
  6454. };
  6455. // CONCATENATED MODULE: ./packages/scrollbar/src/bar.js
  6456. /* istanbul ignore next */
  6457. /* harmony default export */ var src_bar = ({
  6458. name: 'Bar',
  6459. props: {
  6460. vertical: Boolean,
  6461. size: String,
  6462. move: Number
  6463. },
  6464. computed: {
  6465. bar: function bar() {
  6466. return BAR_MAP[this.vertical ? 'vertical' : 'horizontal'];
  6467. },
  6468. wrap: function wrap() {
  6469. return this.$parent.wrap;
  6470. }
  6471. },
  6472. render: function render(h) {
  6473. var size = this.size,
  6474. move = this.move,
  6475. bar = this.bar;
  6476. return h(
  6477. 'div',
  6478. {
  6479. 'class': ['el-scrollbar__bar', 'is-' + bar.key],
  6480. on: {
  6481. 'mousedown': this.clickTrackHandler
  6482. }
  6483. },
  6484. [h('div', {
  6485. ref: 'thumb',
  6486. 'class': 'el-scrollbar__thumb',
  6487. on: {
  6488. 'mousedown': this.clickThumbHandler
  6489. },
  6490. style: renderThumbStyle({ size: size, move: move, bar: bar }) })]
  6491. );
  6492. },
  6493. methods: {
  6494. clickThumbHandler: function clickThumbHandler(e) {
  6495. // prevent click event of right button
  6496. if (e.ctrlKey || e.button === 2) {
  6497. return;
  6498. }
  6499. this.startDrag(e);
  6500. this[this.bar.axis] = e.currentTarget[this.bar.offset] - (e[this.bar.client] - e.currentTarget.getBoundingClientRect()[this.bar.direction]);
  6501. },
  6502. clickTrackHandler: function clickTrackHandler(e) {
  6503. var offset = Math.abs(e.target.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]);
  6504. var thumbHalf = this.$refs.thumb[this.bar.offset] / 2;
  6505. var thumbPositionPercentage = (offset - thumbHalf) * 100 / this.$el[this.bar.offset];
  6506. this.wrap[this.bar.scroll] = thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100;
  6507. },
  6508. startDrag: function startDrag(e) {
  6509. e.stopImmediatePropagation();
  6510. this.cursorDown = true;
  6511. Object(dom_["on"])(document, 'mousemove', this.mouseMoveDocumentHandler);
  6512. Object(dom_["on"])(document, 'mouseup', this.mouseUpDocumentHandler);
  6513. document.onselectstart = function () {
  6514. return false;
  6515. };
  6516. },
  6517. mouseMoveDocumentHandler: function mouseMoveDocumentHandler(e) {
  6518. if (this.cursorDown === false) return;
  6519. var prevPage = this[this.bar.axis];
  6520. if (!prevPage) return;
  6521. var offset = (this.$el.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]) * -1;
  6522. var thumbClickPosition = this.$refs.thumb[this.bar.offset] - prevPage;
  6523. var thumbPositionPercentage = (offset - thumbClickPosition) * 100 / this.$el[this.bar.offset];
  6524. this.wrap[this.bar.scroll] = thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100;
  6525. },
  6526. mouseUpDocumentHandler: function mouseUpDocumentHandler(e) {
  6527. this.cursorDown = false;
  6528. this[this.bar.axis] = 0;
  6529. Object(dom_["off"])(document, 'mousemove', this.mouseMoveDocumentHandler);
  6530. document.onselectstart = null;
  6531. }
  6532. },
  6533. destroyed: function destroyed() {
  6534. Object(dom_["off"])(document, 'mouseup', this.mouseUpDocumentHandler);
  6535. }
  6536. });
  6537. // CONCATENATED MODULE: ./packages/scrollbar/src/main.js
  6538. // reference https://github.com/noeldelgado/gemini-scrollbar/blob/master/index.js
  6539. /* istanbul ignore next */
  6540. /* harmony default export */ var main = ({
  6541. name: 'TisScrollbar',
  6542. components: { Bar: src_bar },
  6543. props: {
  6544. native: Boolean,
  6545. wrapStyle: {},
  6546. wrapClass: {},
  6547. viewClass: {},
  6548. viewStyle: {},
  6549. noresize: Boolean, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能
  6550. tag: {
  6551. type: String,
  6552. default: 'div'
  6553. }
  6554. },
  6555. data: function data() {
  6556. return {
  6557. sizeWidth: '0',
  6558. sizeHeight: '0',
  6559. moveX: 0,
  6560. moveY: 0
  6561. };
  6562. },
  6563. computed: {
  6564. wrap: function wrap() {
  6565. return this.$refs.wrap;
  6566. }
  6567. },
  6568. render: function render(h) {
  6569. var gutter = scrollbar_width_default()();
  6570. var style = this.wrapStyle;
  6571. if (gutter) {
  6572. var gutterWith = '-' + gutter + 'px';
  6573. var gutterStyle = 'margin-bottom: ' + gutterWith + '; margin-right: ' + gutterWith + ';';
  6574. if (Array.isArray(this.wrapStyle)) {
  6575. style = Object(util_["toObject"])(this.wrapStyle);
  6576. style.marginRight = style.marginBottom = gutterWith;
  6577. } else if (typeof this.wrapStyle === 'string') {
  6578. style += gutterStyle;
  6579. } else {
  6580. style = gutterStyle;
  6581. }
  6582. }
  6583. var view = h(this.tag, {
  6584. class: ['el-scrollbar__view', this.viewClass],
  6585. style: this.viewStyle,
  6586. ref: 'resize'
  6587. }, this.$slots.default);
  6588. var wrap = h(
  6589. 'div',
  6590. {
  6591. ref: 'wrap',
  6592. style: style,
  6593. on: {
  6594. 'scroll': this.handleScroll
  6595. },
  6596. 'class': [this.wrapClass, 'el-scrollbar__wrap', gutter ? '' : 'el-scrollbar__wrap--hidden-default'] },
  6597. [[view]]
  6598. );
  6599. var nodes = void 0;
  6600. if (!this.native) {
  6601. nodes = [wrap, h(src_bar, {
  6602. attrs: {
  6603. move: this.moveX,
  6604. size: this.sizeWidth }
  6605. }), h(src_bar, {
  6606. attrs: {
  6607. vertical: true,
  6608. move: this.moveY,
  6609. size: this.sizeHeight }
  6610. })];
  6611. } else {
  6612. nodes = [h(
  6613. 'div',
  6614. {
  6615. ref: 'wrap',
  6616. 'class': [this.wrapClass, 'el-scrollbar__wrap'],
  6617. style: style },
  6618. [[view]]
  6619. )];
  6620. }
  6621. return h('div', { class: 'el-scrollbar' }, nodes);
  6622. },
  6623. methods: {
  6624. handleScroll: function handleScroll() {
  6625. var wrap = this.wrap;
  6626. this.moveY = wrap.scrollTop * 100 / wrap.clientHeight;
  6627. this.moveX = wrap.scrollLeft * 100 / wrap.clientWidth;
  6628. },
  6629. update: function update() {
  6630. var heightPercentage = void 0,
  6631. widthPercentage = void 0;
  6632. var wrap = this.wrap;
  6633. if (!wrap) return;
  6634. heightPercentage = wrap.clientHeight * 100 / wrap.scrollHeight;
  6635. widthPercentage = wrap.clientWidth * 100 / wrap.scrollWidth;
  6636. this.sizeHeight = heightPercentage < 100 ? heightPercentage + '%' : '';
  6637. this.sizeWidth = widthPercentage < 100 ? widthPercentage + '%' : '';
  6638. }
  6639. },
  6640. mounted: function mounted() {
  6641. if (this.native) return;
  6642. this.$nextTick(this.update);
  6643. !this.noresize && Object(resize_event_["addResizeListener"])(this.$refs.resize, this.update);
  6644. },
  6645. beforeDestroy: function beforeDestroy() {
  6646. if (this.native) return;
  6647. !this.noresize && Object(resize_event_["removeResizeListener"])(this.$refs.resize, this.update);
  6648. }
  6649. });
  6650. // CONCATENATED MODULE: ./packages/scrollbar/index.js
  6651. /* istanbul ignore next */
  6652. main.install = function (Vue) {
  6653. Vue.component(main.name, main);
  6654. };
  6655. /* harmony default export */ var scrollbar = __webpack_exports__["default"] = (main);
  6656. /***/ }),
  6657. /***/ 7:
  6658. /***/ (function(module, exports) {
  6659. module.exports = require("tis-ui/lib/utils/dom");
  6660. /***/ }),
  6661. /***/ 70:
  6662. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6663. "use strict";
  6664. // ESM COMPAT FLAG
  6665. __webpack_require__.r(__webpack_exports__);
  6666. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/button/src/button.vue?vue&type=template&id=ca859fb4&
  6667. var render = function() {
  6668. var _vm = this
  6669. var _h = _vm.$createElement
  6670. var _c = _vm._self._c || _h
  6671. return _c(
  6672. "button",
  6673. {
  6674. staticClass: "el-button",
  6675. class: [
  6676. _vm.type ? "el-button--" + _vm.type : "",
  6677. _vm.buttonSize ? "el-button--" + _vm.buttonSize : "",
  6678. {
  6679. "is-disabled": _vm.buttonDisabled,
  6680. "is-loading": _vm.loading,
  6681. "is-plain": _vm.plain,
  6682. "is-round": _vm.round,
  6683. "is-circle": _vm.circle
  6684. }
  6685. ],
  6686. attrs: {
  6687. disabled: _vm.buttonDisabled || _vm.loading,
  6688. autofocus: _vm.autofocus,
  6689. type: _vm.nativeType
  6690. },
  6691. on: { click: _vm.handleClick }
  6692. },
  6693. [
  6694. _vm.loading ? _c("i", { staticClass: "el-icon-loading" }) : _vm._e(),
  6695. _vm.icon && !_vm.loading ? _c("i", { class: _vm.icon }) : _vm._e(),
  6696. _vm.$slots.default ? _c("span", [_vm._t("default")], 2) : _vm._e()
  6697. ]
  6698. )
  6699. }
  6700. var staticRenderFns = []
  6701. render._withStripped = true
  6702. // CONCATENATED MODULE: ./packages/button/src/button.vue?vue&type=template&id=ca859fb4&
  6703. // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/button/src/button.vue?vue&type=script&lang=js&
  6704. //
  6705. //
  6706. //
  6707. //
  6708. //
  6709. //
  6710. //
  6711. //
  6712. //
  6713. //
  6714. //
  6715. //
  6716. //
  6717. //
  6718. //
  6719. //
  6720. //
  6721. //
  6722. //
  6723. //
  6724. //
  6725. //
  6726. //
  6727. //
  6728. /* harmony default export */ var buttonvue_type_script_lang_js_ = ({
  6729. name: 'TisButton',
  6730. inject: {
  6731. elForm: {
  6732. default: ''
  6733. },
  6734. elFormItem: {
  6735. default: ''
  6736. }
  6737. },
  6738. props: {
  6739. type: {
  6740. type: String,
  6741. default: 'default'
  6742. },
  6743. size: String,
  6744. icon: {
  6745. type: String,
  6746. default: ''
  6747. },
  6748. nativeType: {
  6749. type: String,
  6750. default: 'button'
  6751. },
  6752. loading: Boolean,
  6753. disabled: Boolean,
  6754. plain: Boolean,
  6755. autofocus: Boolean,
  6756. round: Boolean,
  6757. circle: Boolean
  6758. },
  6759. computed: {
  6760. _elFormItemSize: function _elFormItemSize() {
  6761. return (this.elFormItem || {}).elFormItemSize;
  6762. },
  6763. buttonSize: function buttonSize() {
  6764. return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
  6765. },
  6766. buttonDisabled: function buttonDisabled() {
  6767. return this.disabled || (this.elForm || {}).disabled;
  6768. }
  6769. },
  6770. methods: {
  6771. handleClick: function handleClick(evt) {
  6772. this.$emit('click', evt);
  6773. }
  6774. }
  6775. });
  6776. // CONCATENATED MODULE: ./packages/button/src/button.vue?vue&type=script&lang=js&
  6777. /* harmony default export */ var src_buttonvue_type_script_lang_js_ = (buttonvue_type_script_lang_js_);
  6778. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  6779. var componentNormalizer = __webpack_require__(2);
  6780. // CONCATENATED MODULE: ./packages/button/src/button.vue
  6781. /* normalize component */
  6782. var component = Object(componentNormalizer["a" /* default */])(
  6783. src_buttonvue_type_script_lang_js_,
  6784. render,
  6785. staticRenderFns,
  6786. false,
  6787. null,
  6788. null,
  6789. null
  6790. )
  6791. /* hot reload */
  6792. if (false) { var api; }
  6793. component.options.__file = "packages/button/src/button.vue"
  6794. /* harmony default export */ var src_button = (component.exports);
  6795. // CONCATENATED MODULE: ./packages/button/index.js
  6796. /* istanbul ignore next */
  6797. src_button.install = function (Vue) {
  6798. Vue.component(src_button.name, src_button);
  6799. };
  6800. /* harmony default export */ var packages_button = __webpack_exports__["default"] = (src_button);
  6801. /***/ }),
  6802. /***/ 8:
  6803. /***/ (function(module, exports) {
  6804. module.exports = require("tis-ui/lib/utils/date-util");
  6805. /***/ }),
  6806. /***/ 99:
  6807. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6808. "use strict";
  6809. /* harmony import */ var tis_ui_src_utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
  6810. /* harmony import */ var tis_ui_src_utils_dom__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(tis_ui_src_utils_dom__WEBPACK_IMPORTED_MODULE_0__);
  6811. /* harmony default export */ __webpack_exports__["a"] = ({
  6812. bind: function bind(el, binding, vnode) {
  6813. var interval = null;
  6814. var startTime = void 0;
  6815. var handler = function handler() {
  6816. return vnode.context[binding.expression].apply();
  6817. };
  6818. var clear = function clear() {
  6819. if (Date.now() - startTime < 100) {
  6820. handler();
  6821. }
  6822. clearInterval(interval);
  6823. interval = null;
  6824. };
  6825. Object(tis_ui_src_utils_dom__WEBPACK_IMPORTED_MODULE_0__["on"])(el, 'mousedown', function (e) {
  6826. if (e.button !== 0) return;
  6827. startTime = Date.now();
  6828. Object(tis_ui_src_utils_dom__WEBPACK_IMPORTED_MODULE_0__["once"])(document, 'mouseup', clear);
  6829. clearInterval(interval);
  6830. interval = setInterval(handler, 100);
  6831. });
  6832. }
  6833. });
  6834. /***/ })
  6835. /******/ });