vuetify
Version:
Vue Material Component Framework
1 lines • 17.8 kB
Source Map (JSON)
{"version":3,"file":"date-picker-table.mjs","names":["Touch","Colorable","Localable","Themeable","createItemTypeNativeListeners","sanitizeDateString","isDateAllowed","mergeListeners","mixins","throttle","extend","directives","props","allowedDates","Function","current","String","disabled","Boolean","format","events","type","Array","Object","default","eventColor","min","max","range","readonly","scrollable","tableDate","required","value","data","isReversing","wheelThrottle","computed","computedTransition","$vuetify","rtl","displayedMonth","Number","split","displayedYear","watch","newVal","oldVal","mounted","wheel","methods","genButtonClasses","isAllowed","isFloating","isSelected","isCurrent","isFirst","isLast","themeClasses","genButtonEvents","mouseEventType","undefined","click","$emit","genButton","formatter","isOtherMonth","setColor","setBackgroundColor","setTextColor","color","isArray","length","$createElement","staticClass","class","attrs","domProps","on","genEvents","getEventColors","date","arrayize","v","eventData","eventColors","includes","filter","map","isValidScroll","calculateTableDate","sanitizeType","e","deltaY","touch","genTable","children","transition","name","key","touchDirective","left","offsetX","right","preventDefault","from","to","sort","indexOf"],"sources":["../../../../src/components/VDatePicker/mixins/date-picker-table.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport '../VDatePickerTable.sass'\n\n// Directives\nimport Touch from '../../../directives/touch'\n\n// Mixins\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Themeable from '../../../mixins/themeable'\n\n// Utils\nimport { createItemTypeNativeListeners, sanitizeDateString } from '../util'\nimport isDateAllowed from '../util/isDateAllowed'\nimport { mergeListeners } from '../../../util/mergeData'\nimport mixins from '../../../util/mixins'\nimport { throttle } from '../../../util/helpers'\n\n// Types\nimport {\n PropType,\n VNodeChildren,\n} from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEventColorValue,\n DatePickerEvents,\n DatePickerFormatter,\n TouchWrapper,\n} from 'vuetify/types'\n\ntype CalculateTableDateFunction = (v: number) => string\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n directives: { Touch },\n\n props: {\n allowedDates: Function as PropType<DatePickerAllowedDatesFunction | undefined>,\n current: String,\n disabled: Boolean,\n format: Function as PropType<DatePickerFormatter | undefined>,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator<DatePickerEvents | null>,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator<DatePickerEventColors>,\n min: String,\n max: String,\n range: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n tableDate: {\n type: String,\n required: true,\n },\n value: [String, Array] as PropType<string | string[]>,\n },\n\n data: () => ({\n isReversing: false,\n wheelThrottle: null as any,\n }),\n\n computed: {\n computedTransition (): string {\n return (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition'\n },\n displayedMonth (): number {\n return Number(this.tableDate.split('-')[1]) - 1\n },\n displayedYear (): number {\n return Number(this.tableDate.split('-')[0])\n },\n },\n\n watch: {\n tableDate (newVal: string, oldVal: string) {\n this.isReversing = newVal < oldVal\n },\n },\n\n mounted () {\n this.wheelThrottle = throttle(this.wheel, 250)\n },\n\n methods: {\n genButtonClasses (\n isAllowed: boolean,\n isFloating: boolean,\n isSelected: boolean,\n isCurrent: boolean,\n isFirst: boolean,\n isLast: boolean,\n ) {\n return {\n 'v-size--default': !isFloating,\n 'v-date-picker-table__current': isCurrent,\n 'v-btn--active': isSelected,\n 'v-btn--flat': !isAllowed || this.disabled,\n 'v-btn--text': isSelected === isCurrent,\n 'v-btn--rounded': isFloating,\n 'v-btn--disabled': !isAllowed || this.disabled,\n 'v-btn--outlined': isCurrent && !isSelected,\n 'v-date-picker--first-in-range': isFirst,\n 'v-date-picker--last-in-range': isLast,\n ...this.themeClasses,\n }\n },\n genButtonEvents (value: string, isAllowed: boolean, mouseEventType: string) {\n if (this.disabled) return undefined\n\n return mergeListeners({\n click: () => {\n if (isAllowed && !this.readonly) this.$emit('input', value)\n },\n }, createItemTypeNativeListeners(this, `:${mouseEventType}`, value))\n },\n genButton (value: string, isFloating: boolean, mouseEventType: string, formatter: DatePickerFormatter, isOtherMonth = false) {\n const isAllowed = isDateAllowed(value, this.min, this.max, this.allowedDates)\n const isSelected = this.isSelected(value) && isAllowed\n const isCurrent = value === this.current\n const setColor = isSelected ? this.setBackgroundColor : this.setTextColor\n const color = (isSelected || isCurrent) && (this.color || 'accent')\n let isFirst = false\n let isLast = false\n if (this.range && !!this.value && Array.isArray(this.value)) {\n isFirst = value === this.value[0]\n isLast = value === this.value[this.value.length - 1]\n }\n\n return this.$createElement('button', setColor(color, {\n staticClass: 'v-btn',\n class: this.genButtonClasses(\n isAllowed && !isOtherMonth,\n isFloating,\n isSelected,\n isCurrent,\n isFirst,\n isLast,\n ),\n attrs: {\n type: 'button',\n },\n domProps: {\n disabled: this.disabled || !isAllowed || isOtherMonth,\n },\n on: this.genButtonEvents(value, isAllowed, mouseEventType),\n }), [\n this.$createElement('div', {\n staticClass: 'v-btn__content',\n }, [formatter(value)]),\n this.genEvents(value),\n ])\n },\n getEventColors (date: string) {\n const arrayize = (v: string | string[]) => Array.isArray(v) ? v : [v]\n let eventData: boolean | DatePickerEventColorValue\n let eventColors: string[] = []\n\n if (Array.isArray(this.events)) {\n eventData = this.events.includes(date)\n } else if (this.events instanceof Function) {\n eventData = this.events(date) || false\n } else if (this.events) {\n eventData = this.events[date] || false\n } else {\n eventData = false\n }\n\n if (!eventData) {\n return []\n } else if (eventData !== true) {\n eventColors = arrayize(eventData)\n } else if (typeof this.eventColor === 'string') {\n eventColors = [this.eventColor]\n } else if (typeof this.eventColor === 'function') {\n eventColors = arrayize(this.eventColor(date))\n } else if (Array.isArray(this.eventColor)) {\n eventColors = this.eventColor\n } else {\n eventColors = arrayize(this.eventColor[date])\n }\n\n return eventColors.filter(v => v)\n },\n genEvents (date: string) {\n const eventColors = this.getEventColors(date)\n\n return eventColors.length ? this.$createElement('div', {\n staticClass: 'v-date-picker-table__events',\n }, eventColors.map(color => this.$createElement('div', this.setBackgroundColor(color)))) : null\n },\n isValidScroll (value: number, calculateTableDate: CalculateTableDateFunction) {\n const tableDate = calculateTableDate(value)\n // tableDate is 'YYYY-MM' for DateTable and 'YYYY' for MonthTable\n const sanitizeType = tableDate.split('-').length === 1 ? 'year' : 'month'\n return (value < 0 && (this.min ? tableDate >= sanitizeDateString(this.min, sanitizeType) : true)) ||\n (value > 0 && (this.max ? tableDate <= sanitizeDateString(this.max, sanitizeType) : true))\n },\n wheel (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(e.deltaY))\n },\n touch (value: number, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(value))\n },\n genTable (staticClass: string, children: VNodeChildren, calculateTableDate: CalculateTableDateFunction) {\n const transition = this.$createElement('transition', {\n props: { name: this.computedTransition },\n }, [this.$createElement('table', { key: this.tableDate }, children)])\n\n const touchDirective = {\n name: 'touch',\n value: {\n left: (e: TouchWrapper) => (e.offsetX < -15) &&\n (this.isValidScroll(1, calculateTableDate) && this.touch(1, calculateTableDate)),\n right: (e: TouchWrapper) => (e.offsetX > 15) &&\n (this.isValidScroll(-1, calculateTableDate) && this.touch(-1, calculateTableDate)),\n },\n }\n\n return this.$createElement('div', {\n staticClass,\n class: {\n 'v-date-picker-table--disabled': this.disabled,\n ...this.themeClasses,\n },\n on: (!this.disabled && this.scrollable) ? {\n wheel: (e: WheelEvent) => {\n e.preventDefault()\n if (this.isValidScroll(e.deltaY, calculateTableDate)) { this.wheelThrottle(e, calculateTableDate) }\n },\n } : undefined,\n directives: [touchDirective],\n }, [transition])\n },\n isSelected (value: string): boolean {\n if (Array.isArray(this.value)) {\n if (this.range && this.value.length === 2) {\n const [from, to] = [...this.value].sort()\n return from <= value && value <= to\n } else {\n return this.value.indexOf(value) !== -1\n }\n }\n\n return value === this.value\n },\n },\n})\n"],"mappings":"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"}