1 line
18 KiB
Plaintext
1 line
18 KiB
Plaintext
{"version":3,"file":"VTimePickerClock.mjs","names":["Colorable","Themeable","mixins","extend","name","props","allowedValues","Function","ampm","Boolean","disabled","double","format","type","default","val","max","Number","required","min","scrollable","readonly","rotate","step","value","data","inputValue","isDragging","valueOnMouseDown","valueOnMouseUp","computed","count","degreesPerUnit","roundCount","degrees","Math","PI","displayedValue","innerRadiusScale","watch","methods","wheel","e","preventDefault","delta","sign","deltaY","isAllowed","update","isInner","handScale","genValues","children","color","push","$createElement","setBackgroundColor","staticClass","class","style","getTransform","domProps","innerHTML","genHand","scale","angle","transform","i","x","y","getPosition","left","top","rotateRadians","sin","cos","onMouseDown","onDragMove","onMouseUp","stopPropagation","$emit","$refs","clock","width","getBoundingClientRect","innerWidth","innerClock","clientX","clientY","touches","center","coords","handAngle","round","insideClick","euclidean","checksCount","ceil","angleToValue","setMouseDownValue","p0","p1","dx","dy","sqrt","atan2","abs","render","h","themeClasses","on","undefined","mousedown","mouseup","mouseleave","touchstart","touchend","mousemove","touchmove","ref"],"sources":["../../../src/components/VTimePicker/VTimePickerClock.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport './VTimePickerClock.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Vue, { VNode, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ninterface Point {\n x: number\n y: number\n}\n\ninterface options extends Vue {\n $refs: {\n clock: HTMLElement\n innerClock: HTMLElement\n }\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof Colorable,\n typeof Themeable\n ]>\n/* eslint-enable indent */\n>(\n Colorable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-time-picker-clock',\n\n props: {\n allowedValues: Function as PropType<(value: number) => boolean>,\n ampm: Boolean,\n disabled: Boolean,\n double: Boolean,\n format: {\n type: Function,\n default: (val: string | number) => val,\n } as PropValidator<(val: string | number) => string | number>,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n scrollable: Boolean,\n readonly: Boolean,\n rotate: {\n type: Number,\n default: 0,\n },\n step: {\n type: Number,\n default: 1,\n },\n value: Number,\n },\n\n data () {\n return {\n inputValue: this.value,\n isDragging: false,\n valueOnMouseDown: null as number | null,\n valueOnMouseUp: null as number | null,\n }\n },\n\n computed: {\n count (): number {\n return this.max - this.min + 1\n },\n degreesPerUnit (): number {\n return 360 / this.roundCount\n },\n degrees (): number {\n return this.degreesPerUnit * Math.PI / 180\n },\n displayedValue (): number {\n return this.value == null ? this.min : this.value\n },\n innerRadiusScale (): number {\n return 0.62\n },\n roundCount (): number {\n return this.double ? (this.count / 2) : this.count\n },\n },\n\n watch: {\n value (value) {\n this.inputValue = value\n },\n },\n\n methods: {\n wheel (e: WheelEvent) {\n e.preventDefault()\n\n const delta = Math.sign(-e.deltaY || 1)\n let value = this.displayedValue\n do {\n value = value + delta\n value = (value - this.min + this.count) % this.count + this.min\n } while (!this.isAllowed(value) && value !== this.displayedValue)\n\n if (value !== this.displayedValue) {\n this.update(value)\n }\n },\n isInner (value: number) {\n return this.double && (value - this.min >= this.roundCount)\n },\n handScale (value: number) {\n return this.isInner(value) ? this.innerRadiusScale : 1\n },\n isAllowed (value: number) {\n return !this.allowedValues || this.allowedValues(value)\n },\n genValues () {\n const children: VNode[] = []\n\n for (let value = this.min; value <= this.max; value = value + this.step) {\n const color = value === this.value && (this.color || 'accent')\n children.push(this.$createElement('span', this.setBackgroundColor(color, {\n staticClass: 'v-time-picker-clock__item',\n class: {\n 'v-time-picker-clock__item--active': value === this.displayedValue,\n 'v-time-picker-clock__item--disabled': this.disabled || !this.isAllowed(value),\n },\n style: this.getTransform(value),\n domProps: { innerHTML: `<span>${this.format(value)}</span>` },\n })))\n }\n\n return children\n },\n genHand () {\n const scale = `scaleY(${this.handScale(this.displayedValue)})`\n const angle = this.rotate + this.degreesPerUnit * (this.displayedValue - this.min)\n const color = (this.value != null) && (this.color || 'accent')\n return this.$createElement('div', this.setBackgroundColor(color, {\n staticClass: 'v-time-picker-clock__hand',\n class: {\n 'v-time-picker-clock__hand--inner': this.isInner(this.value),\n },\n style: {\n transform: `rotate(${angle}deg) ${scale}`,\n },\n }))\n },\n getTransform (i: number) {\n const { x, y } = this.getPosition(i)\n return {\n left: `${50 + x * 50}%`,\n top: `${50 + y * 50}%`,\n }\n },\n getPosition (value: number) {\n const rotateRadians = this.rotate * Math.PI / 180\n return {\n x: Math.sin((value - this.min) * this.degrees + rotateRadians) * this.handScale(value),\n y: -Math.cos((value - this.min) * this.degrees + rotateRadians) * this.handScale(value),\n }\n },\n onMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.valueOnMouseDown = null\n this.valueOnMouseUp = null\n this.isDragging = true\n this.onDragMove(e)\n },\n onMouseUp (e: MouseEvent | TouchEvent) {\n e.stopPropagation()\n\n this.isDragging = false\n if (this.valueOnMouseUp !== null && this.isAllowed(this.valueOnMouseUp)) {\n this.$emit('change', this.valueOnMouseUp)\n }\n },\n onDragMove (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n if ((!this.isDragging && e.type !== 'click') || !this.$refs.clock) return\n\n const { width, top, left } = this.$refs.clock.getBoundingClientRect()\n const { width: innerWidth } = this.$refs.innerClock.getBoundingClientRect()\n const { clientX, clientY } = 'touches' in e ? e.touches[0] : e\n const center = { x: width / 2, y: -width / 2 }\n const coords = { x: clientX - left, y: top - clientY }\n const handAngle = Math.round(this.angle(center, coords) - this.rotate + 360) % 360\n const insideClick = this.double && this.euclidean(center, coords) < (innerWidth + innerWidth * this.innerRadiusScale) / 4\n const checksCount = Math.ceil(15 / this.degreesPerUnit)\n let value\n\n for (let i = 0; i < checksCount; i++) {\n value = this.angleToValue(handAngle + i * this.degreesPerUnit, insideClick)\n if (this.isAllowed(value)) return this.setMouseDownValue(value)\n\n value = this.angleToValue(handAngle - i * this.degreesPerUnit, insideClick)\n if (this.isAllowed(value)) return this.setMouseDownValue(value)\n }\n },\n angleToValue (angle: number, insideClick: boolean): number {\n const value = (\n Math.round(angle / this.degreesPerUnit) +\n (insideClick ? this.roundCount : 0)\n ) % this.count + this.min\n\n // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock\n if (angle < (360 - this.degreesPerUnit / 2)) return value\n\n return insideClick ? this.max - this.roundCount + 1 : this.min\n },\n setMouseDownValue (value: number) {\n if (this.valueOnMouseDown === null) {\n this.valueOnMouseDown = value\n }\n\n this.valueOnMouseUp = value\n this.update(value)\n },\n update (value: number) {\n if (this.inputValue !== value) {\n this.inputValue = value\n this.$emit('input', value)\n }\n },\n euclidean (p0: Point, p1: Point) {\n const dx = p1.x - p0.x\n const dy = p1.y - p0.y\n\n return Math.sqrt(dx * dx + dy * dy)\n },\n angle (center: Point, p1: Point) {\n const value = 2 * Math.atan2(p1.y - center.y - this.euclidean(center, p1), p1.x - center.x)\n return Math.abs(value * 180 / Math.PI)\n },\n },\n\n render (h): VNode {\n const data: VNodeData = {\n staticClass: 'v-time-picker-clock',\n class: {\n 'v-time-picker-clock--indeterminate': this.value == null,\n ...this.themeClasses,\n },\n on: (this.readonly || this.disabled) ? undefined : {\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n mouseleave: (e: MouseEvent) => (this.isDragging && this.onMouseUp(e)),\n touchstart: this.onMouseDown,\n touchend: this.onMouseUp,\n mousemove: this.onDragMove,\n touchmove: this.onDragMove,\n },\n ref: 'clock',\n }\n\n if (this.scrollable && data.on) {\n data.on.wheel = this.wheel\n }\n\n return h('div', data, [\n h('div', {\n staticClass: 'v-time-picker-clock__inner',\n ref: 'innerClock',\n }, [\n this.genHand(),\n this.genValues(),\n ]),\n ])\n },\n})\n"],"mappings":"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"} |