123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; // Styles
- // import '../../stylus/components/_calendar-daily.styl'
- // Mixins
-
- // Util
-
- // Calendars
-
-
- var _calendarBase = require('./mixins/calendar-base');
-
- var _calendarBase2 = _interopRequireDefault(_calendarBase);
-
- var _props = require('./util/props');
-
- var _props2 = _interopRequireDefault(_props);
-
- var _timestamp = require('./util/timestamp');
-
- var _VCalendarMonthly = require('./VCalendarMonthly');
-
- var _VCalendarMonthly2 = _interopRequireDefault(_VCalendarMonthly);
-
- var _VCalendarDaily = require('./VCalendarDaily');
-
- var _VCalendarDaily2 = _interopRequireDefault(_VCalendarDaily);
-
- var _VCalendarWeekly = require('./VCalendarWeekly');
-
- var _VCalendarWeekly2 = _interopRequireDefault(_VCalendarWeekly);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- /* @vue/component */
- exports.default = _calendarBase2.default.extend({
- name: 'v-calendar',
- props: _extends({}, _props2.default.calendar, _props2.default.weeks, _props2.default.intervals),
- data: function data() {
- return {
- lastStart: null,
- lastEnd: null
- };
- },
- computed: {
- parsedValue: function parsedValue() {
- return (0, _timestamp.parseTimestamp)(this.value) || this.parsedStart || this.times.today;
- },
- renderProps: function renderProps() {
- var around = this.parsedValue;
- var component = 'div';
- var maxDays = this.maxDays;
- var start = around;
- var end = around;
- switch (this.type) {
- case 'month':
- component = _VCalendarMonthly2.default;
- start = (0, _timestamp.getStartOfMonth)(around);
- end = (0, _timestamp.getEndOfMonth)(around);
- break;
- case 'week':
- component = _VCalendarDaily2.default;
- start = this.getStartOfWeek(around);
- end = this.getEndOfWeek(around);
- maxDays = 7;
- break;
- case 'day':
- component = _VCalendarDaily2.default;
- maxDays = 1;
- break;
- case '4day':
- component = _VCalendarDaily2.default;
- end = (0, _timestamp.relativeDays)((0, _timestamp.copyTimestamp)(end), _timestamp.nextDay, 4);
- (0, _timestamp.updateFormatted)(end);
- maxDays = 4;
- break;
- case 'custom-weekly':
- component = _VCalendarWeekly2.default;
- start = this.parsedStart || around;
- end = this.parsedEnd;
- break;
- case 'custom-daily':
- component = _VCalendarDaily2.default;
- start = this.parsedStart || around;
- end = this.parsedEnd;
- break;
- }
- return { component: component, start: start, end: end, maxDays: maxDays };
- }
- },
- watch: {
- renderProps: 'checkChange'
- },
- methods: {
- checkChange: function checkChange() {
- var _renderProps = this.renderProps,
- start = _renderProps.start,
- end = _renderProps.end;
-
- if (start !== this.lastStart || end !== this.lastEnd) {
- this.lastStart = start;
- this.lastEnd = end;
- this.$emit('change', { start: start, end: end });
- }
- },
- move: function move() {
- var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
-
- var moved = (0, _timestamp.copyTimestamp)(this.parsedValue);
- var forward = amount > 0;
- var mover = forward ? _timestamp.nextDay : _timestamp.prevDay;
- var limit = forward ? _timestamp.DAYS_IN_MONTH_MAX : _timestamp.DAY_MIN;
- var times = forward ? amount : -amount;
- while (--times >= 0) {
- switch (this.type) {
- case 'month':
- moved.day = limit;
- mover(moved);
- break;
- case 'week':
- (0, _timestamp.relativeDays)(moved, mover, _timestamp.DAYS_IN_WEEK);
- break;
- case 'day':
- mover(moved);
- break;
- case '4day':
- (0, _timestamp.relativeDays)(moved, mover, 4);
- break;
- }
- }
- (0, _timestamp.updateWeekday)(moved);
- (0, _timestamp.updateFormatted)(moved);
- (0, _timestamp.updateRelative)(moved, this.times.now);
- this.$emit('input', moved.date);
- this.$emit('moved', moved);
- },
- next: function next() {
- var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
-
- this.move(amount);
- },
- prev: function prev() {
- var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
-
- this.move(-amount);
- },
- timeToY: function timeToY(time) {
- var clamp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
-
- var c = this.$children[0];
- if (c && c.timeToY) {
- return c.timeToY(time, clamp);
- } else {
- return false;
- }
- },
- minutesToPixels: function minutesToPixels(minutes) {
- var c = this.$children[0];
- if (c && c.minutesToPixels) {
- return c.minutesToPixels(minutes);
- } else {
- return -1;
- }
- },
- scrollToTime: function scrollToTime(time) {
- var c = this.$children[0];
- if (c && c.scrollToTime) {
- return c.scrollToTime(time);
- } else {
- return false;
- }
- }
- },
- render: function render(h) {
- var _this = this;
-
- var _renderProps2 = this.renderProps,
- start = _renderProps2.start,
- end = _renderProps2.end,
- maxDays = _renderProps2.maxDays,
- component = _renderProps2.component;
-
- return h(component, {
- staticClass: 'v-calendar',
- props: _extends({}, this.$props, {
- start: start.date,
- end: end.date,
- maxDays: maxDays
- }),
- on: _extends({}, this.$listeners, {
- 'click:date': function clickDate(day) {
- if (_this.$listeners['input']) {
- _this.$emit('input', day.date);
- }
- if (_this.$listeners['click:date']) {
- _this.$emit('click:date', day);
- }
- }
- }),
- scopedSlots: this.$scopedSlots
- });
- }
- });
- //# sourceMappingURL=VCalendar.js.map
|