@dialpad/dialtone
Version:
Dialpad's Dialtone design system monorepo
149 lines (148 loc) • 4.1 kB
JavaScript
import MonthYearPicker from "./modules/month-year-picker.vue.js";
import Calendar from "./modules/calendar.vue.js";
import DtStack from "../stack/stack.vue.js";
import { warnIfUnmounted } from "../../common/utils.js";
import normalizeComponent from "../../_virtual/_plugin-vue2_normalizer.js";
const _sfc_main = {
name: "DtDatepicker",
components: { DtStack, MonthYearPicker, Calendar },
props: {
/**
* Label for the previous month button
*
* @type {String}
* @example 'Previous month'
*/
prevMonthLabel: {
type: String,
required: true
},
/**
* Label for the next month button
*
* @type {String}
* @example 'Next month'
*/
nextMonthLabel: {
type: String,
required: true
},
/**
* Label for the previous year button
*
* @type {String}
* @example 'Previous year'
*/
prevYearLabel: {
type: String,
required: true
},
/**
* Label for the next year button
*
* @type {String}
* @example 'Next year'
*/
nextYearLabel: {
type: String,
required: true
},
/**
* Label for the select day button
*
* @type {String}
* @example 'Select day'
*/
selectDayLabel: {
type: String,
required: true
},
/**
* Label for the change to button
*
* @type {String}
* @example 'Change to'
*/
changeToLabel: {
type: String,
required: true
},
/**
* Locale for the calendar
*
* @type {String}
*/
locale: {
type: String,
default: "en-US"
},
/**
* Selected date
*
* @type {Date}
*/
selectedDate: {
type: Date,
default: () => /* @__PURE__ */ new Date()
}
},
emits: [
/**
* Event fired when a date is selected
*
* @event selected-date
* @type {Date}
*/
"selected-date",
/**
* Event fired when user presses the esc key
*
* @event close-datepicker
*/
"close-datepicker"
],
data() {
return {
calendarDays: []
};
},
mounted() {
warnIfUnmounted(this.$el, this.$options.name);
},
methods: {
updateCalendarDays(days) {
this.calendarDays = days;
}
}
};
var _sfc_render = function render() {
var _vm = this, _c = _vm._self._c;
return _c("dt-stack", { staticClass: "d-datepicker", attrs: { "gap": "400" } }, [_c("div", { staticClass: "d-datepicker__hd" }, [_c("month-year-picker", { ref: "monthYearPicker", attrs: { "locale": _vm.locale, "prev-month-label": _vm.prevMonthLabel, "next-month-label": _vm.nextMonthLabel, "prev-year-label": _vm.prevYearLabel, "next-year-label": _vm.nextYearLabel, "change-to-label": _vm.changeToLabel, "selected-date": _vm.selectedDate }, on: { "calendar-days": _vm.updateCalendarDays, "focus-first-day": function($event) {
return _vm.$refs.calendar.focusFirstDay();
}, "focus-last-day": function($event) {
return _vm.$refs.calendar.focusLastDay();
}, "close-datepicker": function($event) {
return _vm.$emit("close-datepicker");
} } })], 1), _c("div", { staticClass: "d-datepicker__bd" }, [_c("calendar", { ref: "calendar", attrs: { "locale": _vm.locale, "calendar-days": _vm.calendarDays, "select-day-label": _vm.selectDayLabel }, on: { "select-date": function($event) {
return _vm.$emit("selected-date", $event);
}, "focus-month-year-picker": function($event) {
return _vm.$refs.monthYearPicker.focusMonthYearPicker();
}, "close-datepicker": function($event) {
return _vm.$emit("close-datepicker");
}, "go-to-next-month": function($event) {
return _vm.$refs.monthYearPicker.goToNextMonth();
}, "go-to-prev-month": function($event) {
return _vm.$refs.monthYearPicker.goToPrevMonth();
} } })], 1)]);
};
var _sfc_staticRenderFns = [];
var __component__ = /* @__PURE__ */ normalizeComponent(
_sfc_main,
_sfc_render,
_sfc_staticRenderFns
);
const datepicker = __component__.exports;
export {
datepicker as default
};
//# sourceMappingURL=datepicker.vue.js.map