{"version":3,"sources":["webpack:///../../../src/components/VTimePicker/SelectingTimes.ts","webpack:///../../../src/components/VTimePicker/VTimePickerTitle.ts","webpack:///../../../src/components/VTimePicker/VTimePickerClock.ts","webpack:///../../../src/components/VTimePicker/VTimePicker.ts","webpack:///../../../src/components/VTreeview/VTreeviewNode.ts","webpack:///../../../../src/components/VTreeview/util/filterTreeItems.ts","webpack:///../../../src/components/VTreeview/VTreeview.ts","webpack:///../../../src/components/VWindow/VWindowItem.ts","webpack:///../../../src/components/VTimeline/VTimeline.ts","webpack:///../../../src/components/VTimeline/VTimelineItem.ts","webpack:///../../../src/components/VToolbar/index.ts","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///../../../src/components/VThemeProvider/index.ts","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///../../../src/components/VWindow/index.ts","webpack:///../../../src/components/VTooltip/VTooltip.ts","webpack:///../../../src/components/VVirtualScroll/VVirtualScroll.ts","webpack:///../../../src/components/VWindow/VWindow.ts"],"names":["SelectingTimes","mixins","name","props","ampm","ampmReadonly","disabled","hour","minute","second","period","type","validator","readonly","useSeconds","selecting","Number","methods","genTime","this","displayedHour","String","pad","displayedMinute","titleContent","genPickerButton","$createElement","displayedSecond","class","genAmPm","staticClass","$vuetify","lang","t","render","children","h","allowedValues","double","format","default","val","max","required","min","scrollable","rotate","step","value","data","inputValue","isDragging","valueOnMouseDown","valueOnMouseUp","computed","count","degreesPerUnit","degrees","Math","displayedValue","innerRadiusScale","roundCount","watch","wheel","e","delta","isAllowed","isInner","handScale","genValues","color","setBackgroundColor","style","getTransform","domProps","innerHTML","genHand","scale","angle","transform","getPosition","y","left","x","top","rotateRadians","onMouseDown","onMouseUp","onDragMove","$refs","clock","innerClock","innerWidth","width","clientY","center","coords","clientX","handAngle","insideClick","euclidean","checksCount","i","angleToValue","setMouseDownValue","update","dx","p1","p0","dy","themeClasses","on","mousedown","mouseup","mouseleave","touchstart","touchend","mousemove","touchmove","ref","rangeHours24","rangeHours12am","rangeHours12pm","v","range60","selectingNames","1","2","3","allowedHours","Function","allowedMinutes","allowedSeconds","includes","ampmInTitle","Boolean","inputHour","inputMinute","inputSecond","lazyInputHour","lazyInputMinute","lazyInputSecond","Hour","selectingHour","get","set","selectingMinute","selectingSecond","isAllowedHourCb","cb","minHour","split","maxHour","isAllowedMinuteCb","isHourAllowed","map","minTime","minMinute","maxTime","maxMinute","time","isAllowedSecondCb","isMinuteAllowed","minSecond","maxSecond","isAmPm","mounted","genValue","emitValue","$emit","setPeriod","newHour","firstAllowed","setInputData","Array","convert12to24","parseInt","convert24to12","onInput","onChange","emitChange","allowedFn","range","first","genClock","dark","light","size","input","change","genClockAmPm","setTextColor","genPickerBody","key","genPickerTitle","slot","genPicker","baseMixins","VTreeviewNodeProps","activatable","activeClass","expandIcon","indeterminateIcon","itemChildren","itemDisabled","itemKey","itemText","loadChildren","loadingIcon","offIcon","onIcon","openOnClick","rounded","selectable","selectedColor","shaped","transition","selectionType","VTreeviewNode","inject","treeview","level","item","parentIsDisabled","hasLoaded","isActive","isIndeterminate","isLoading","isOpen","isSelected","child","text","scopedProps","leaf","selected","indeterminate","active","open","computedIcon","hasChildren","created","beforeDestroy","checkChildren","Promise","resolve","genLabel","$scopedSlots","label","genPrependSlot","prepend","genAppendSlot","append","genContent","genToggle","VIcon","click","genCheckbox","genLevel","genNode","genChild","scopedSlots","genChildrenWrapper","c","genTransition","attrs","search","filter","match","filterTreeItems","excluded","provide","dense","hoverable","items","multipleActive","openAll","returnObject","activeCache","nodes","openCache","selectedCache","Set","excludedItems","handler","oldKeys","Object","k","newKeys","getKeys","diff","oldSelectedCache","emitSelected","deep","getValue","$slots","console","updateAll","keys","buildTree","parent","oldNode","hasOwnProperty","vnode","node","calculateState","add","state","counts","emitOpen","emitActive","emitNodeCache","handleNodeCacheWatcher","old","updateFn","emitFn","getDescendants","descendants","getParents","parents","register","unregister","isParent","updateActive","delete","updateSelected","isForced","changed","descendant","calculated","updateOpen","updateVnodeState","isExcluded","has","length","directives","Touch","reverseTransition","undefined","inTransition","classes","computedTransition","windowGroup","genDefaultSlot","genWindowItem","$listeners","onAfterTransition","transitionCount","onBeforeTransition","$el","onTransitionCancelled","onEnter","el","beforeEnter","afterEnter","enterCancelled","beforeLeave","afterLeave","leaveCancelled","enter","showLazyContent","timeline","alignTop","reverse","fillDot","hideDot","icon","iconColor","large","right","small","hasIcon","genBody","genIcon","theme","genInnerDot","genDot","genDivider","genOpposite","VToolbarTitle","VToolbarItems","root","isDark","absolute","bottom","collapse","extended","extensionHeight","flat","floating","prominent","short","src","tag","isExtended","computedHeight","height","isCollapsed","isNaN","computedContentHeight","isProminent","breakpoint","styles","breakingProps","original","replacement","genBackground","image","img","genExtension","closeDelay","fixed","openDelay","openOnHover","calculatedMinWidth","closeDependents","calculatedLeft","content","unknown","activatorLeft","attach","activator","calcXOverflow","dimensions","calculatedTop","activatorTop","calcYOverflow","offsetY","offsetX","maxWidth","minWidth","opacity","zIndex","activeZIndex","beforeMount","activate","requestAnimationFrame","deactivate","genActivatorListeners","listeners","genActivatorAttributes","activatorFixed","isContentActive","Scroll","bench","itemHeight","last","scrollTop","__bench","__itemHeight","firstToRender","lastToRender","getLast","getChildren","slice","index","getFirst","onScroll","modifiers","self","continuous","mandatory","nextIcon","prevIcon","showArrows","showArrowsOnHover","touch","touchless","vertical","changedByDelimiters","internalHeight","transitionHeight","isBooted","isReverse","axis","internalReverse","direction","hasActiveItems","find","hasNext","internalIndex","hasPrev","findIndex","rtl","updateReverse","window","genContainer","genControlIcons","icons","getNextIndex","nextIndex","getPrevIndex","prevIndex","next","prev","lastIndex","itemsLength","oldVal","end","start"],"mappings":"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","file":"js/chunk-vendors~d7a415c4.f76fa17a.js","sourcesContent":["enum SelectingTimes {\n Hour = 1,\n Minute = 2,\n Second = 3\n}\n\nexport { SelectingTimes }\n","import './VTimePickerTitle.sass'\n\n// Mixins\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport { pad } from '../VDatePicker/util'\nimport mixins from '../../util/mixins'\n\nimport { SelectingTimes } from './SelectingTimes'\nimport { VNode, PropType } from 'vue'\n\nexport default mixins(\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-time-picker-title',\n\n props: {\n ampm: Boolean,\n ampmReadonly: Boolean,\n disabled: Boolean,\n hour: Number,\n minute: Number,\n second: Number,\n period: {\n type: String as PropType<'am' | 'pm'>,\n validator: period => period === 'am' || period === 'pm',\n },\n readonly: Boolean,\n useSeconds: Boolean,\n selecting: Number,\n },\n\n methods: {\n genTime () {\n let hour = this.hour\n if (this.ampm) {\n hour = hour ? ((hour - 1) % 12 + 1) : 12\n }\n\n const displayedHour = this.hour == null ? '--' : this.ampm ? String(hour) : pad(hour)\n const displayedMinute = this.minute == null ? '--' : pad(this.minute)\n const titleContent = [\n this.genPickerButton('selecting', SelectingTimes.Hour, displayedHour, this.disabled),\n this.$createElement('span', ':'),\n this.genPickerButton('selecting', SelectingTimes.Minute, displayedMinute, this.disabled),\n ]\n\n if (this.useSeconds) {\n const displayedSecond = this.second == null ? '--' : pad(this.second)\n titleContent.push(this.$createElement('span', ':'))\n titleContent.push(this.genPickerButton('selecting', SelectingTimes.Second, displayedSecond, this.disabled))\n }\n return this.$createElement('div', {\n class: 'v-time-picker-title__time',\n }, titleContent)\n },\n genAmPm () {\n return this.$createElement('div', {\n staticClass: 'v-time-picker-title__ampm',\n class: {\n 'v-time-picker-title__ampm--readonly': this.ampmReadonly,\n },\n }, [\n (!this.ampmReadonly || this.period === 'am') ? this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly) : null,\n (!this.ampmReadonly || this.period === 'pm') ? this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly) : null,\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genTime()]\n\n this.ampm && children.push(this.genAmPm())\n\n return h('div', {\n staticClass: 'v-time-picker-title',\n }, children)\n },\n})\n","import './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\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: `${this.format(value)}` },\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","// Components\nimport VTimePickerTitle from './VTimePickerTitle'\nimport VTimePickerClock from './VTimePickerClock'\n\n// Mixins\nimport Picker from '../../mixins/picker'\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport { createRange } from '../../util/helpers'\nimport pad from '../VDatePicker/util/pad'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { SelectingTimes } from './SelectingTimes'\n\nconst rangeHours24 = createRange(24)\nconst rangeHours12am = createRange(12)\nconst rangeHours12pm = rangeHours12am.map(v => v + 12)\nconst range60 = createRange(60)\nconst selectingNames = { 1: 'hour', 2: 'minute', 3: 'second' }\nexport { SelectingTimes }\n\ntype Period = 'am' | 'pm'\ntype AllowFunction = (val: number) => boolean\n\nexport default mixins(\n Picker,\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-time-picker',\n\n props: {\n allowedHours: [Function, Array] as PropType,\n allowedMinutes: [Function, Array] as PropType,\n allowedSeconds: [Function, Array] as PropType,\n disabled: Boolean,\n format: {\n type: String as PropType<'ampm' | '24hr'>,\n default: 'ampm',\n validator (val) {\n return ['ampm', '24hr'].includes(val)\n },\n },\n min: String,\n max: String,\n readonly: Boolean,\n scrollable: Boolean,\n useSeconds: Boolean,\n value: null as any as PropType,\n ampmInTitle: Boolean,\n },\n\n data () {\n return {\n inputHour: null as number | null,\n inputMinute: null as number | null,\n inputSecond: null as number | null,\n lazyInputHour: null as number | null,\n lazyInputMinute: null as number | null,\n lazyInputSecond: null as number | null,\n period: 'am' as Period,\n selecting: SelectingTimes.Hour,\n }\n },\n\n computed: {\n selectingHour: {\n get (): boolean {\n return this.selecting === SelectingTimes.Hour\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Hour\n },\n },\n selectingMinute: {\n get (): boolean {\n return this.selecting === SelectingTimes.Minute\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Minute\n },\n },\n selectingSecond: {\n get (): boolean {\n return this.selecting === SelectingTimes.Second\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Second\n },\n },\n isAllowedHourCb (): AllowFunction {\n let cb: AllowFunction\n\n if (this.allowedHours instanceof Array) {\n cb = (val: number) => (this.allowedHours as number[]).includes(val)\n } else {\n cb = this.allowedHours\n }\n\n if (!this.min && !this.max) return cb\n\n const minHour = this.min ? Number(this.min.split(':')[0]) : 0\n const maxHour = this.max ? Number(this.max.split(':')[0]) : 23\n\n return (val: number) => {\n return val >= minHour * 1 &&\n val <= maxHour * 1 &&\n (!cb || cb(val))\n }\n },\n isAllowedMinuteCb (): AllowFunction {\n let cb: AllowFunction\n\n const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour)\n if (this.allowedMinutes instanceof Array) {\n cb = (val: number) => (this.allowedMinutes as number[]).includes(val)\n } else {\n cb = this.allowedMinutes\n }\n\n if (!this.min && !this.max) {\n return isHourAllowed ? cb : () => false\n }\n\n const [minHour, minMinute] = this.min ? this.min.split(':').map(Number) : [0, 0]\n const [maxHour, maxMinute] = this.max ? this.max.split(':').map(Number) : [23, 59]\n const minTime = minHour * 60 + minMinute * 1\n const maxTime = maxHour * 60 + maxMinute * 1\n\n return (val: number) => {\n const time = 60 * this.inputHour! + val\n return time >= minTime &&\n time <= maxTime &&\n isHourAllowed &&\n (!cb || cb(val))\n }\n },\n isAllowedSecondCb (): AllowFunction {\n let cb: AllowFunction\n\n const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour)\n const isMinuteAllowed = isHourAllowed &&\n (!this.isAllowedMinuteCb ||\n this.inputMinute === null ||\n this.isAllowedMinuteCb(this.inputMinute)\n )\n\n if (this.allowedSeconds instanceof Array) {\n cb = (val: number) => (this.allowedSeconds as number[]).includes(val)\n } else {\n cb = this.allowedSeconds\n }\n\n if (!this.min && !this.max) {\n return isMinuteAllowed ? cb : () => false\n }\n\n const [minHour, minMinute, minSecond] = this.min ? this.min.split(':').map(Number) : [0, 0, 0]\n const [maxHour, maxMinute, maxSecond] = this.max ? this.max.split(':').map(Number) : [23, 59, 59]\n const minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0) * 1\n const maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0) * 1\n\n return (val: number) => {\n const time = 3600 * this.inputHour! + 60 * this.inputMinute! + val\n return time >= minTime &&\n time <= maxTime &&\n isMinuteAllowed &&\n (!cb || cb(val))\n }\n },\n isAmPm (): boolean {\n return this.format === 'ampm'\n },\n },\n\n watch: {\n value: 'setInputData',\n },\n\n mounted () {\n this.setInputData(this.value)\n this.$on('update:period', this.setPeriod)\n },\n\n methods: {\n genValue () {\n if (this.inputHour != null && this.inputMinute != null && (!this.useSeconds || this.inputSecond != null)) {\n return `${pad(this.inputHour)}:${pad(this.inputMinute)}` + (this.useSeconds ? `:${pad(this.inputSecond!)}` : '')\n }\n\n return null\n },\n emitValue () {\n const value = this.genValue()\n if (value !== null) this.$emit('input', value)\n },\n setPeriod (period: Period) {\n this.period = period\n if (this.inputHour != null) {\n const newHour = this.inputHour! + (period === 'am' ? -12 : 12)\n this.inputHour = this.firstAllowed('hour', newHour)\n this.emitValue()\n }\n },\n setInputData (value: string | null | Date) {\n if (value == null || value === '') {\n this.inputHour = null\n this.inputMinute = null\n this.inputSecond = null\n } else if (value instanceof Date) {\n this.inputHour = value.getHours()\n this.inputMinute = value.getMinutes()\n this.inputSecond = value.getSeconds()\n } else {\n const [, hour, minute, , second, period] = value.trim().toLowerCase().match(/^(\\d+):(\\d+)(:(\\d+))?([ap]m)?$/) || new Array(6)\n\n this.inputHour = period ? this.convert12to24(parseInt(hour, 10), period as Period) : parseInt(hour, 10)\n this.inputMinute = parseInt(minute, 10)\n this.inputSecond = parseInt(second || 0, 10)\n }\n\n this.period = (this.inputHour == null || this.inputHour < 12) ? 'am' : 'pm'\n },\n convert24to12 (hour: number) {\n return hour ? ((hour - 1) % 12 + 1) : 12\n },\n convert12to24 (hour: number, period: Period) {\n return hour % 12 + (period === 'pm' ? 12 : 0)\n },\n onInput (value: number) {\n if (this.selecting === SelectingTimes.Hour) {\n this.inputHour = this.isAmPm ? this.convert12to24(value, this.period) : value\n } else if (this.selecting === SelectingTimes.Minute) {\n this.inputMinute = value\n } else {\n this.inputSecond = value\n }\n this.emitValue()\n },\n onChange (value: number) {\n this.$emit(`click:${selectingNames[this.selecting]}`, value)\n\n const emitChange = this.selecting === (this.useSeconds ? SelectingTimes.Second : SelectingTimes.Minute)\n\n if (this.selecting === SelectingTimes.Hour) {\n this.selecting = SelectingTimes.Minute\n } else if (this.useSeconds && this.selecting === SelectingTimes.Minute) {\n this.selecting = SelectingTimes.Second\n }\n\n if (this.inputHour === this.lazyInputHour &&\n this.inputMinute === this.lazyInputMinute &&\n (!this.useSeconds || this.inputSecond === this.lazyInputSecond)\n ) return\n\n const time = this.genValue()\n if (time === null) return\n\n this.lazyInputHour = this.inputHour\n this.lazyInputMinute = this.inputMinute\n this.useSeconds && (this.lazyInputSecond = this.inputSecond)\n\n emitChange && this.$emit('change', time)\n },\n firstAllowed (type: 'hour' | 'minute' | 'second', value: number) {\n const allowedFn = type === 'hour' ? this.isAllowedHourCb : (type === 'minute' ? this.isAllowedMinuteCb : this.isAllowedSecondCb)\n if (!allowedFn) return value\n\n // TODO: clean up\n const range = type === 'minute'\n ? range60\n : (type === 'second'\n ? range60\n : (this.isAmPm\n ? (value < 12\n ? rangeHours12am\n : rangeHours12pm)\n : rangeHours24))\n const first = range.find(v => allowedFn((v + value) % range.length + range[0]))\n return ((first || 0) + value) % range.length + range[0]\n },\n genClock () {\n return this.$createElement(VTimePickerClock, {\n props: {\n allowedValues:\n this.selecting === SelectingTimes.Hour\n ? this.isAllowedHourCb\n : (this.selecting === SelectingTimes.Minute\n ? this.isAllowedMinuteCb\n : this.isAllowedSecondCb),\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n double: this.selecting === SelectingTimes.Hour && !this.isAmPm,\n format: this.selecting === SelectingTimes.Hour\n ? (this.isAmPm ? this.convert24to12 : (val: number) => val)\n : (val: number) => pad(val, 2),\n light: this.light,\n max: this.selecting === SelectingTimes.Hour ? (this.isAmPm && this.period === 'am' ? 11 : 23) : 59,\n min: this.selecting === SelectingTimes.Hour && this.isAmPm && this.period === 'pm' ? 12 : 0,\n readonly: this.readonly,\n scrollable: this.scrollable,\n size: Number(this.width) - ((!this.fullWidth && this.landscape) ? 80 : 20),\n step: this.selecting === SelectingTimes.Hour ? 1 : 5,\n value: this.selecting === SelectingTimes.Hour\n ? this.inputHour\n : (this.selecting === SelectingTimes.Minute\n ? this.inputMinute\n : this.inputSecond),\n },\n on: {\n input: this.onInput,\n change: this.onChange,\n },\n ref: 'clock',\n })\n },\n genClockAmPm () {\n return this.$createElement('div', this.setTextColor(this.color || 'primary', {\n staticClass: 'v-time-picker-clock__ampm',\n }), [\n this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly),\n this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly),\n ])\n },\n genPickerBody () {\n return this.$createElement('div', {\n staticClass: 'v-time-picker-clock__container',\n key: this.selecting,\n }, [\n !this.ampmInTitle && this.isAmPm && this.genClockAmPm(),\n this.genClock(),\n ])\n },\n genPickerTitle () {\n return this.$createElement(VTimePickerTitle, {\n props: {\n ampm: this.isAmPm,\n ampmReadonly: this.isAmPm && !this.ampmInTitle,\n disabled: this.disabled,\n hour: this.inputHour,\n minute: this.inputMinute,\n second: this.inputSecond,\n period: this.period,\n readonly: this.readonly,\n useSeconds: this.useSeconds,\n selecting: this.selecting,\n },\n on: {\n 'update:selecting': (value: 1 | 2 | 3) => (this.selecting = value),\n 'update:period': (period: string) => this.$emit('update:period', period),\n },\n ref: 'title',\n slot: 'title',\n })\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--time')\n },\n})\n","// Components\nimport { VExpandTransition } from '../transitions'\nimport { VIcon } from '../VIcon'\nimport VTreeview from './VTreeview'\n\n// Mixins\nimport { inject as RegistrableInject } from '../../mixins/registrable'\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getObjectValueByPath, createRange } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ntype VTreeViewInstance = InstanceType\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject('treeview')\n)\n\ninterface options extends ExtractVue {\n treeview: VTreeViewInstance\n}\n\nexport const VTreeviewNodeProps = {\n activatable: Boolean,\n activeClass: {\n type: String,\n default: 'v-treeview-node--active',\n },\n color: {\n type: String,\n default: 'primary',\n },\n expandIcon: {\n type: String,\n default: '$subgroup',\n },\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n itemChildren: {\n type: String,\n default: 'children',\n },\n itemDisabled: {\n type: String,\n default: 'disabled',\n },\n itemKey: {\n type: String,\n default: 'id',\n },\n itemText: {\n type: String,\n default: 'name',\n },\n loadChildren: Function as PropType<(item: any) => Promise>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n openOnClick: Boolean,\n rounded: Boolean,\n selectable: Boolean,\n selectedColor: {\n type: String,\n default: 'accent',\n },\n shaped: Boolean,\n transition: Boolean,\n selectionType: {\n type: String as PropType<'leaf' | 'independent'>,\n default: 'leaf',\n validator: (v: string) => ['leaf', 'independent'].includes(v),\n },\n}\n\n/* @vue/component */\nconst VTreeviewNode = baseMixins.extend().extend({\n name: 'v-treeview-node',\n\n inject: {\n treeview: {\n default: null,\n },\n },\n\n props: {\n level: Number,\n item: {\n type: Object,\n default: () => null,\n } as PropValidator | null>,\n parentIsDisabled: Boolean,\n ...VTreeviewNodeProps,\n },\n\n data: () => ({\n hasLoaded: false,\n isActive: false, // Node is selected (row)\n isIndeterminate: false, // Node has at least one selected child\n isLoading: false,\n isOpen: false, // Node is open/expanded\n isSelected: false, // Node is selected (checkbox)\n }),\n\n computed: {\n disabled (): boolean {\n return (\n getObjectValueByPath(this.item, this.itemDisabled) ||\n (this.parentIsDisabled && this.selectionType === 'leaf')\n )\n },\n key (): string {\n return getObjectValueByPath(this.item, this.itemKey)\n },\n children (): any[] | null {\n const children = getObjectValueByPath(this.item, this.itemChildren)\n return children && children.filter((child: any) => !this.treeview.isExcluded(getObjectValueByPath(child, this.itemKey)))\n },\n text (): string {\n return getObjectValueByPath(this.item, this.itemText)\n },\n scopedProps (): object {\n return {\n item: this.item,\n leaf: !this.children,\n selected: this.isSelected,\n indeterminate: this.isIndeterminate,\n active: this.isActive,\n open: this.isOpen,\n }\n },\n computedIcon (): string {\n if (this.isIndeterminate) return this.indeterminateIcon\n else if (this.isSelected) return this.onIcon\n else return this.offIcon\n },\n hasChildren (): boolean {\n return !!this.children && (!!this.children.length || !!this.loadChildren)\n },\n },\n\n created () {\n this.treeview.register(this)\n },\n\n beforeDestroy () {\n this.treeview.unregister(this)\n },\n\n methods: {\n checkChildren (): Promise {\n return new Promise(resolve => {\n // TODO: Potential issue with always trying\n // to load children if response is empty?\n if (!this.children || this.children.length || !this.loadChildren || this.hasLoaded) return resolve()\n\n this.isLoading = true\n resolve(this.loadChildren(this.item))\n }).then(() => {\n this.isLoading = false\n this.hasLoaded = true\n })\n },\n open () {\n this.isOpen = !this.isOpen\n this.treeview.updateOpen(this.key, this.isOpen)\n this.treeview.emitOpen()\n },\n genLabel () {\n const children = []\n\n if (this.$scopedSlots.label) children.push(this.$scopedSlots.label(this.scopedProps))\n else children.push(this.text)\n\n return this.$createElement('div', {\n slot: 'label',\n staticClass: 'v-treeview-node__label',\n }, children)\n },\n genPrependSlot () {\n if (!this.$scopedSlots.prepend) return null\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__prepend',\n }, this.$scopedSlots.prepend(this.scopedProps))\n },\n genAppendSlot () {\n if (!this.$scopedSlots.append) return null\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__append',\n }, this.$scopedSlots.append(this.scopedProps))\n },\n genContent () {\n const children = [\n this.genPrependSlot(),\n this.genLabel(),\n this.genAppendSlot(),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__content',\n }, children)\n },\n genToggle () {\n return this.$createElement(VIcon, {\n staticClass: 'v-treeview-node__toggle',\n class: {\n 'v-treeview-node__toggle--open': this.isOpen,\n 'v-treeview-node__toggle--loading': this.isLoading,\n },\n slot: 'prepend',\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => this.open())\n },\n },\n }, [this.isLoading ? this.loadingIcon : this.expandIcon])\n },\n genCheckbox () {\n return this.$createElement(VIcon, {\n staticClass: 'v-treeview-node__checkbox',\n props: {\n color: this.isSelected || this.isIndeterminate ? this.selectedColor : undefined,\n disabled: this.disabled,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => {\n // We nextTick here so that items watch in VTreeview has a chance to run first\n this.$nextTick(() => {\n this.isSelected = !this.isSelected\n this.isIndeterminate = false\n\n this.treeview.updateSelected(this.key, this.isSelected)\n this.treeview.emitSelected()\n })\n })\n },\n },\n }, [this.computedIcon])\n },\n genLevel (level: number) {\n return createRange(level).map(() => this.$createElement('div', {\n staticClass: 'v-treeview-node__level',\n }))\n },\n genNode () {\n const children = [this.genContent()]\n\n if (this.selectable) children.unshift(this.genCheckbox())\n\n if (this.hasChildren) {\n children.unshift(this.genToggle())\n } else {\n children.unshift(...this.genLevel(1))\n }\n\n children.unshift(...this.genLevel(this.level))\n\n return this.$createElement('div', this.setTextColor(this.isActive && this.color, {\n staticClass: 'v-treeview-node__root',\n class: {\n [this.activeClass]: this.isActive,\n },\n on: {\n click: () => {\n if (this.openOnClick && this.hasChildren) {\n this.checkChildren().then(this.open)\n } else if (this.activatable && !this.disabled) {\n this.isActive = !this.isActive\n this.treeview.updateActive(this.key, this.isActive)\n this.treeview.emitActive()\n }\n },\n },\n }), children)\n },\n genChild (item: any, parentIsDisabled: boolean) {\n return this.$createElement(VTreeviewNode, {\n key: getObjectValueByPath(item, this.itemKey),\n props: {\n activatable: this.activatable,\n activeClass: this.activeClass,\n item,\n selectable: this.selectable,\n selectedColor: this.selectedColor,\n color: this.color,\n expandIcon: this.expandIcon,\n indeterminateIcon: this.indeterminateIcon,\n offIcon: this.offIcon,\n onIcon: this.onIcon,\n loadingIcon: this.loadingIcon,\n itemKey: this.itemKey,\n itemText: this.itemText,\n itemDisabled: this.itemDisabled,\n itemChildren: this.itemChildren,\n loadChildren: this.loadChildren,\n transition: this.transition,\n openOnClick: this.openOnClick,\n rounded: this.rounded,\n shaped: this.shaped,\n level: this.level + 1,\n selectionType: this.selectionType,\n parentIsDisabled,\n },\n scopedSlots: this.$scopedSlots,\n })\n },\n genChildrenWrapper () {\n if (!this.isOpen || !this.children) return null\n\n const children = [this.children.map(c => this.genChild(c, this.disabled))]\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__children',\n }, children)\n },\n genTransition () {\n return this.$createElement(VExpandTransition, [this.genChildrenWrapper()])\n },\n },\n\n render (h): VNode {\n const children: VNodeChildren = [this.genNode()]\n\n if (this.transition) children.push(this.genTransition())\n else children.push(this.genChildrenWrapper())\n\n return h('div', {\n staticClass: 'v-treeview-node',\n class: {\n 'v-treeview-node--leaf': !this.hasChildren,\n 'v-treeview-node--click': this.openOnClick,\n 'v-treeview-node--disabled': this.disabled,\n 'v-treeview-node--rounded': this.rounded,\n 'v-treeview-node--shaped': this.shaped,\n 'v-treeview-node--selected': this.isSelected,\n },\n attrs: {\n 'aria-expanded': String(this.isOpen),\n },\n }, children)\n },\n})\n\nexport default VTreeviewNode\n","import { getObjectValueByPath } from '../../../util/helpers'\nimport { TreeviewItemFunction } from 'vuetify/types'\n\nexport function filterTreeItem (item: object, search: string, textKey: string): boolean {\n const text = getObjectValueByPath(item, textKey)\n\n return text.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1\n}\n\nexport function filterTreeItems (\n filter: TreeviewItemFunction,\n item: any,\n search: string,\n idKey: string,\n textKey: string,\n childrenKey: string,\n excluded: Set\n): boolean {\n if (filter(item, search, textKey)) {\n return true\n }\n\n const children = getObjectValueByPath(item, childrenKey)\n\n if (children) {\n let match = false\n for (let i = 0; i < children.length; i++) {\n if (filterTreeItems(filter, children[i], search, idKey, textKey, childrenKey, excluded)) {\n match = true\n }\n }\n\n if (match) return true\n }\n\n excluded.add(getObjectValueByPath(item, idKey))\n\n return false\n}\n","// Styles\nimport './VTreeview.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { TreeviewItemFunction } from 'vuetify/types'\n\n// Components\nimport VTreeviewNode, { VTreeviewNodeProps } from './VTreeviewNode'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utils\nimport {\n arrayDiff,\n deepEqual,\n getObjectValueByPath,\n} from '../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\nimport {\n filterTreeItems,\n filterTreeItem,\n} from './util/filterTreeItems'\n\ntype VTreeviewNodeInstance = InstanceType\n\ntype NodeCache = Set\ntype NodeArray = (string | number)[]\n\ntype NodeState = {\n parent: number | string | null\n children: (number | string)[]\n vnode: VTreeviewNodeInstance | null\n isActive: boolean\n isSelected: boolean\n isIndeterminate: boolean\n isOpen: boolean\n item: any\n}\n\nexport default mixins(\n RegistrableProvide('treeview'),\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-treeview',\n\n provide (): object {\n return { treeview: this }\n },\n\n props: {\n active: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n dense: Boolean,\n filter: Function as PropType,\n hoverable: Boolean,\n items: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n multipleActive: Boolean,\n open: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n openAll: Boolean,\n returnObject: {\n type: Boolean,\n default: false, // TODO: Should be true in next major\n },\n search: String,\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n ...VTreeviewNodeProps,\n },\n\n data: () => ({\n level: -1,\n activeCache: new Set() as NodeCache,\n nodes: {} as Record,\n openCache: new Set() as NodeCache,\n selectedCache: new Set() as NodeCache,\n }),\n\n computed: {\n excludedItems (): Set {\n const excluded = new Set()\n\n if (!this.search) return excluded\n\n for (let i = 0; i < this.items.length; i++) {\n filterTreeItems(\n this.filter || filterTreeItem,\n this.items[i],\n this.search,\n this.itemKey,\n this.itemText,\n this.itemChildren,\n excluded\n )\n }\n\n return excluded\n },\n },\n\n watch: {\n items: {\n handler () {\n const oldKeys = Object.keys(this.nodes).map(k => getObjectValueByPath(this.nodes[k].item, this.itemKey))\n const newKeys = this.getKeys(this.items)\n const diff = arrayDiff(newKeys, oldKeys)\n\n // We only want to do stuff if items have changed\n if (!diff.length && newKeys.length < oldKeys.length) return\n\n // If nodes are removed we need to clear them from this.nodes\n diff.forEach(k => delete this.nodes[k])\n\n const oldSelectedCache = [...this.selectedCache]\n this.selectedCache = new Set()\n this.activeCache = new Set()\n this.openCache = new Set()\n this.buildTree(this.items)\n\n // Only emit selected if selection has changed\n // as a result of items changing. This fixes a\n // potential double emit when selecting a node\n // with dynamic children\n if (!deepEqual(oldSelectedCache, [...this.selectedCache])) this.emitSelected()\n },\n deep: true,\n },\n active (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.activeCache, this.updateActive, this.emitActive)\n },\n value (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.selectedCache, this.updateSelected, this.emitSelected)\n },\n open (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.openCache, this.updateOpen, this.emitOpen)\n },\n },\n\n created () {\n const getValue = (key: string | number) => this.returnObject ? getObjectValueByPath(key, this.itemKey) : key\n\n this.buildTree(this.items)\n\n for (const value of this.value.map(getValue)) {\n this.updateSelected(value, true, true)\n }\n\n for (const active of this.active.map(getValue)) {\n this.updateActive(active, true)\n }\n },\n\n mounted () {\n // Save the developer from themselves\n if (this.$slots.prepend || this.$slots.append) {\n consoleWarn('The prepend and append slots require a slot-scope attribute', this)\n }\n\n if (this.openAll) {\n this.updateAll(true)\n } else {\n this.open.forEach(key => this.updateOpen(this.returnObject ? getObjectValueByPath(key, this.itemKey) : key, true))\n this.emitOpen()\n }\n },\n\n methods: {\n /** @public */\n updateAll (value: boolean) {\n Object.keys(this.nodes).forEach(key => this.updateOpen(getObjectValueByPath(this.nodes[key].item, this.itemKey), value))\n this.emitOpen()\n },\n getKeys (items: any[], keys: any[] = []) {\n for (let i = 0; i < items.length; i++) {\n const key = getObjectValueByPath(items[i], this.itemKey)\n keys.push(key)\n const children = getObjectValueByPath(items[i], this.itemChildren)\n if (children) {\n keys.push(...this.getKeys(children))\n }\n }\n\n return keys\n },\n buildTree (items: any[], parent: (string | number | null) = null) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const key = getObjectValueByPath(item, this.itemKey)\n const children = getObjectValueByPath(item, this.itemChildren, [])\n const oldNode = this.nodes.hasOwnProperty(key) ? this.nodes[key] : {\n isSelected: false, isIndeterminate: false, isActive: false, isOpen: false, vnode: null,\n } as NodeState\n\n const node: any = {\n vnode: oldNode.vnode,\n parent,\n children: children.map((c: any) => getObjectValueByPath(c, this.itemKey)),\n item,\n }\n\n this.buildTree(children, key)\n\n // This fixed bug with dynamic children resetting selected parent state\n if (!this.nodes.hasOwnProperty(key) && parent !== null && this.nodes.hasOwnProperty(parent)) {\n node.isSelected = this.nodes[parent].isSelected\n } else {\n node.isSelected = oldNode.isSelected\n node.isIndeterminate = oldNode.isIndeterminate\n }\n\n node.isActive = oldNode.isActive\n node.isOpen = oldNode.isOpen\n\n this.nodes[key] = node\n\n if (children.length) {\n const { isSelected, isIndeterminate } = this.calculateState(key, this.nodes)\n\n node.isSelected = isSelected\n node.isIndeterminate = isIndeterminate\n }\n\n // Don't forget to rebuild cache\n if (this.nodes[key].isSelected && (this.selectionType === 'independent' || node.children.length === 0)) this.selectedCache.add(key)\n if (this.nodes[key].isActive) this.activeCache.add(key)\n if (this.nodes[key].isOpen) this.openCache.add(key)\n\n this.updateVnodeState(key)\n }\n },\n calculateState (node: string | number, state: Record) {\n const children = state[node].children\n const counts = children.reduce((counts: number[], child: string | number) => {\n counts[0] += +Boolean(state[child].isSelected)\n counts[1] += +Boolean(state[child].isIndeterminate)\n\n return counts\n }, [0, 0])\n\n const isSelected = !!children.length && counts[0] === children.length\n const isIndeterminate = !isSelected && (counts[0] > 0 || counts[1] > 0)\n\n return {\n isSelected,\n isIndeterminate,\n }\n },\n emitOpen () {\n this.emitNodeCache('update:open', this.openCache)\n },\n emitSelected () {\n this.emitNodeCache('input', this.selectedCache)\n },\n emitActive () {\n this.emitNodeCache('update:active', this.activeCache)\n },\n emitNodeCache (event: string, cache: NodeCache) {\n this.$emit(event, this.returnObject ? [...cache].map(key => this.nodes[key].item) : [...cache])\n },\n handleNodeCacheWatcher (value: any[], cache: NodeCache, updateFn: Function, emitFn: Function) {\n value = this.returnObject ? value.map(v => getObjectValueByPath(v, this.itemKey)) : value\n const old = [...cache]\n if (deepEqual(old, value)) return\n\n old.forEach(key => updateFn(key, false))\n value.forEach(key => updateFn(key, true))\n\n emitFn()\n },\n getDescendants (key: string | number, descendants: NodeArray = []) {\n const children = this.nodes[key].children\n\n descendants.push(...children)\n\n for (let i = 0; i < children.length; i++) {\n descendants = this.getDescendants(children[i], descendants)\n }\n\n return descendants\n },\n getParents (key: string | number) {\n let parent = this.nodes[key].parent\n\n const parents = []\n while (parent !== null) {\n parents.push(parent)\n parent = this.nodes[parent].parent\n }\n\n return parents\n },\n register (node: VTreeviewNodeInstance) {\n const key = getObjectValueByPath(node.item, this.itemKey)\n this.nodes[key].vnode = node\n\n this.updateVnodeState(key)\n },\n unregister (node: VTreeviewNodeInstance) {\n const key = getObjectValueByPath(node.item, this.itemKey)\n if (this.nodes[key]) this.nodes[key].vnode = null\n },\n isParent (key: string | number) {\n return this.nodes[key].children && this.nodes[key].children.length\n },\n updateActive (key: string | number, isActive: boolean) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n if (!this.multipleActive) {\n this.activeCache.forEach(active => {\n this.nodes[active].isActive = false\n this.updateVnodeState(active)\n this.activeCache.delete(active)\n })\n }\n\n const node = this.nodes[key]\n if (!node) return\n\n if (isActive) this.activeCache.add(key)\n else this.activeCache.delete(key)\n\n node.isActive = isActive\n\n this.updateVnodeState(key)\n },\n updateSelected (key: string | number, isSelected: boolean, isForced = false) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n const changed = new Map()\n\n if (this.selectionType !== 'independent') {\n for (const descendant of this.getDescendants(key)) {\n if (!getObjectValueByPath(this.nodes[descendant].item, this.itemDisabled) || isForced) {\n this.nodes[descendant].isSelected = isSelected\n this.nodes[descendant].isIndeterminate = false\n changed.set(descendant, isSelected)\n }\n }\n\n const calculated = this.calculateState(key, this.nodes)\n this.nodes[key].isSelected = isSelected\n this.nodes[key].isIndeterminate = calculated.isIndeterminate\n changed.set(key, isSelected)\n\n for (const parent of this.getParents(key)) {\n const calculated = this.calculateState(parent, this.nodes)\n this.nodes[parent].isSelected = calculated.isSelected\n this.nodes[parent].isIndeterminate = calculated.isIndeterminate\n changed.set(parent, calculated.isSelected)\n }\n } else {\n this.nodes[key].isSelected = isSelected\n this.nodes[key].isIndeterminate = false\n changed.set(key, isSelected)\n }\n\n for (const [key, value] of changed.entries()) {\n this.updateVnodeState(key)\n\n if (this.selectionType === 'leaf' && this.isParent(key)) continue\n\n value === true ? this.selectedCache.add(key) : this.selectedCache.delete(key)\n }\n },\n updateOpen (key: string | number, isOpen: boolean) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n const node = this.nodes[key]\n const children = getObjectValueByPath(node.item, this.itemChildren)\n\n if (children && !children.length && node.vnode && !node.vnode.hasLoaded) {\n node.vnode.checkChildren().then(() => this.updateOpen(key, isOpen))\n } else if (children && children.length) {\n node.isOpen = isOpen\n\n node.isOpen ? this.openCache.add(key) : this.openCache.delete(key)\n\n this.updateVnodeState(key)\n }\n },\n updateVnodeState (key: string | number) {\n const node = this.nodes[key]\n\n if (node && node.vnode) {\n node.vnode.isSelected = node.isSelected\n node.vnode.isIndeterminate = node.isIndeterminate\n node.vnode.isActive = node.isActive\n node.vnode.isOpen = node.isOpen\n }\n },\n isExcluded (key: string | number) {\n return !!this.search && this.excludedItems.has(key)\n },\n },\n\n render (h): VNode {\n const children: VNodeChildrenArrayContents = this.items.length\n ? this.items.filter(item => {\n return !this.isExcluded(getObjectValueByPath(item, this.itemKey))\n }).map(item => {\n const genChild = VTreeviewNode.options.methods.genChild.bind(this)\n\n return genChild(item, getObjectValueByPath(item, this.itemDisabled))\n })\n /* istanbul ignore next */\n : this.$slots.default! // TODO: remove type annotation with TS 3.2\n\n return h('div', {\n staticClass: 'v-treeview',\n class: {\n 'v-treeview--hoverable': this.hoverable,\n 'v-treeview--dense': this.dense,\n ...this.themeClasses,\n },\n }, children)\n },\n})\n","// Components\nimport VWindow from './VWindow'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n GroupableFactory('windowGroup', 'v-window-item', 'v-window')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n windowGroup: InstanceType\n}\n\nexport default baseMixins.extend().extend(\n /* @vue/component */\n).extend({\n name: 'v-window-item',\n\n directives: {\n Touch,\n },\n\n props: {\n disabled: Boolean,\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n value: {\n required: false,\n },\n },\n\n data () {\n return {\n isActive: false,\n inTransition: false,\n }\n },\n\n computed: {\n classes (): object {\n return this.groupClasses\n },\n computedTransition (): string | boolean {\n if (!this.windowGroup.internalReverse) {\n return typeof this.transition !== 'undefined'\n ? this.transition || ''\n : this.windowGroup.computedTransition\n }\n\n return typeof this.reverseTransition !== 'undefined'\n ? this.reverseTransition || ''\n : this.windowGroup.computedTransition\n },\n },\n\n methods: {\n genDefaultSlot () {\n return this.$slots.default\n },\n genWindowItem () {\n return this.$createElement('div', {\n staticClass: 'v-window-item',\n class: this.classes,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: this.$listeners,\n }, this.genDefaultSlot())\n },\n onAfterTransition () {\n if (!this.inTransition) {\n return\n }\n\n // Finalize transition state.\n this.inTransition = false\n if (this.windowGroup.transitionCount > 0) {\n this.windowGroup.transitionCount--\n\n // Remove container height if we are out of transition.\n if (this.windowGroup.transitionCount === 0) {\n this.windowGroup.transitionHeight = undefined\n }\n }\n },\n onBeforeTransition () {\n if (this.inTransition) {\n return\n }\n\n // Initialize transition state here.\n this.inTransition = true\n if (this.windowGroup.transitionCount === 0) {\n // Set initial height for height transition.\n this.windowGroup.transitionHeight = convertToUnit(this.windowGroup.$el.clientHeight)\n }\n this.windowGroup.transitionCount++\n },\n onTransitionCancelled () {\n this.onAfterTransition() // This should have the same path as normal transition end.\n },\n onEnter (el: HTMLElement) {\n if (!this.inTransition) {\n return\n }\n\n this.$nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!this.computedTransition || !this.inTransition) {\n return\n }\n\n // Set transition target height.\n this.windowGroup.transitionHeight = convertToUnit(el.clientHeight)\n })\n },\n },\n\n render (h): VNode {\n return h('transition', {\n props: {\n name: this.computedTransition,\n },\n on: {\n // Handlers for enter windows.\n beforeEnter: this.onBeforeTransition,\n afterEnter: this.onAfterTransition,\n enterCancelled: this.onTransitionCancelled,\n\n // Handlers for leave windows.\n beforeLeave: this.onBeforeTransition,\n afterLeave: this.onAfterTransition,\n leaveCancelled: this.onTransitionCancelled,\n\n // Enter handler for height transition.\n enter: this.onEnter,\n },\n }, this.showLazyContent(() => [this.genWindowItem()]))\n },\n})\n","// Styles\nimport './VTimeline.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default mixins(\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-timeline',\n\n provide (): object {\n return { timeline: this }\n },\n\n props: {\n alignTop: Boolean,\n dense: Boolean,\n reverse: Boolean,\n },\n\n computed: {\n classes (): {} {\n return {\n 'v-timeline--align-top': this.alignTop,\n 'v-timeline--dense': this.dense,\n 'v-timeline--reverse': this.reverse,\n ...this.themeClasses,\n }\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-timeline',\n class: this.classes,\n }, this.$slots.default)\n },\n})\n","// Types\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { VNode, VNodeData } from 'vue'\n\n// Components\nimport VTimeline from './VTimeline'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport Colorable from '../../mixins/colorable'\n\nconst baseMixins = mixins(\n Colorable,\n Themeable\n/* @vue/component */\n)\n\ntype VTimelineInstance = InstanceType\n\ninterface options extends ExtractVue {\n timeline: VTimelineInstance\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-timeline-item',\n\n inject: ['timeline'],\n\n props: {\n color: {\n type: String,\n default: 'primary',\n },\n fillDot: Boolean,\n hideDot: Boolean,\n icon: String,\n iconColor: String,\n large: Boolean,\n left: Boolean,\n right: Boolean,\n small: Boolean,\n },\n\n computed: {\n hasIcon (): boolean {\n return !!this.icon || !!this.$slots.icon\n },\n },\n\n methods: {\n genBody () {\n return this.$createElement('div', {\n staticClass: 'v-timeline-item__body',\n }, this.$slots.default)\n },\n genIcon (): VNode | VNode[] {\n if (this.$slots.icon) {\n return this.$slots.icon\n }\n\n return this.$createElement(VIcon, {\n props: {\n color: this.iconColor,\n dark: !this.theme.isDark,\n small: this.small,\n },\n }, this.icon)\n },\n genInnerDot () {\n const data: VNodeData = this.setBackgroundColor(this.color)\n\n return this.$createElement('div', {\n staticClass: 'v-timeline-item__inner-dot',\n ...data,\n }, [this.hasIcon && this.genIcon()])\n },\n genDot () {\n return this.$createElement('div', {\n staticClass: 'v-timeline-item__dot',\n class: {\n 'v-timeline-item__dot--small': this.small,\n 'v-timeline-item__dot--large': this.large,\n },\n }, [this.genInnerDot()])\n },\n genDivider () {\n const children = []\n\n if (!this.hideDot) children.push(this.genDot())\n\n return this.$createElement('div', {\n staticClass: 'v-timeline-item__divider',\n }, children)\n },\n genOpposite () {\n return this.$createElement('div', {\n staticClass: 'v-timeline-item__opposite',\n }, this.$slots.opposite)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genBody(),\n this.genDivider(),\n ]\n\n if (this.$slots.opposite) children.push(this.genOpposite())\n\n return h('div', {\n staticClass: 'v-timeline-item',\n class: {\n 'v-timeline-item--fill-dot': this.fillDot,\n 'v-timeline-item--before': this.timeline.reverse ? this.right : this.left,\n 'v-timeline-item--after': this.timeline.reverse ? this.left : this.right,\n ...this.themeClasses,\n },\n }, children)\n },\n})\n","// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n },\n}\n","// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default Themeable.extend({\n name: 'v-theme-provider',\n\n props: { root: Boolean },\n\n computed: {\n isDark (): boolean {\n return this.root\n ? this.rootIsDark\n : Themeable.options.computed.isDark.call(this)\n },\n },\n\n render (): VNode {\n /* istanbul ignore next */\n return (\n this.$slots.default! &&\n this.$slots.default!.find(node => !node.isComment && node.text !== ' ')!\n )\n },\n})\n","import VThemeProvider from './VThemeProvider'\n\nexport { VThemeProvider }\nexport default VThemeProvider\n","// Styles\nimport './VToolbar.sass'\n\n// Extensions\nimport VSheet from '../VSheet/VSheet'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\n/* @vue/component */\nexport default VSheet.extend({\n name: 'v-toolbar',\n\n props: {\n absolute: Boolean,\n bottom: Boolean,\n collapse: Boolean,\n dense: Boolean,\n extended: Boolean,\n extensionHeight: {\n default: 48,\n type: [Number, String],\n },\n flat: Boolean,\n floating: Boolean,\n prominent: Boolean,\n short: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n tag: {\n type: String,\n default: 'header',\n },\n },\n\n data: () => ({\n isExtended: false,\n }),\n\n computed: {\n computedHeight (): number {\n const height = this.computedContentHeight\n\n if (!this.isExtended) return height\n\n const extensionHeight = parseInt(this.extensionHeight)\n\n return this.isCollapsed\n ? height\n : height + (!isNaN(extensionHeight) ? extensionHeight : 0)\n },\n computedContentHeight (): number {\n if (this.height) return parseInt(this.height)\n if (this.isProminent && this.dense) return 96\n if (this.isProminent && this.short) return 112\n if (this.isProminent) return 128\n if (this.dense) return 48\n if (this.short || this.$vuetify.breakpoint.smAndDown) return 56\n return 64\n },\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-toolbar': true,\n 'v-toolbar--absolute': this.absolute,\n 'v-toolbar--bottom': this.bottom,\n 'v-toolbar--collapse': this.collapse,\n 'v-toolbar--collapsed': this.isCollapsed,\n 'v-toolbar--dense': this.dense,\n 'v-toolbar--extended': this.isExtended,\n 'v-toolbar--flat': this.flat,\n 'v-toolbar--floating': this.floating,\n 'v-toolbar--prominent': this.isProminent,\n }\n },\n isCollapsed (): boolean {\n return this.collapse\n },\n isProminent (): boolean {\n return this.prominent\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n height: convertToUnit(this.computedHeight),\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['app', ''],\n ['manual-scroll', ''],\n ['clipped-left', ''],\n ['clipped-right', ''],\n ['inverted-scroll', ''],\n ['scroll-off-screen', ''],\n ['scroll-target', ''],\n ['scroll-threshold', ''],\n ['card', ''],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n genBackground () {\n const props = {\n height: convertToUnit(this.computedHeight),\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img({ props })\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-toolbar__image',\n }, [image])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__content',\n style: {\n height: convertToUnit(this.computedContentHeight),\n },\n }, getSlot(this))\n },\n genExtension () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__extension',\n style: {\n height: convertToUnit(this.extensionHeight),\n },\n }, getSlot(this, 'extension'))\n },\n },\n\n render (h): VNode {\n this.isExtended = this.extended || !!this.$scopedSlots.extension\n\n const children = [this.genContent()]\n const data = this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n })\n\n if (this.isExtended) children.push(this.genExtension())\n if (this.src || this.$scopedSlots.img) children.unshift(this.genBackground())\n\n return h(this.tag, data, children)\n },\n})\n","import VWindow from './VWindow'\nimport VWindowItem from './VWindowItem'\n\nexport { VWindow, VWindowItem }\n\nexport default {\n $_vuetify_subcomponents: {\n VWindow,\n VWindowItem,\n },\n}\n","import './VTooltip.sass'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Colorable from '../../mixins/colorable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Menuable from '../../mixins/menuable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Helpers\nimport { convertToUnit, keyCodes, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Colorable, Delayable, Dependent, Detachable, Menuable, Toggleable).extend({\n name: 'v-tooltip',\n\n props: {\n closeDelay: {\n type: [Number, String],\n default: 0,\n },\n disabled: Boolean,\n fixed: {\n type: Boolean,\n default: true,\n },\n openDelay: {\n type: [Number, String],\n default: 0,\n },\n openOnHover: {\n type: Boolean,\n default: true,\n },\n tag: {\n type: String,\n default: 'span',\n },\n transition: String,\n },\n\n data: () => ({\n calculatedMinWidth: 0,\n closeDependents: false,\n }),\n\n computed: {\n calculatedLeft (): string {\n const { activator, content } = this.dimensions\n const unknown = !this.bottom && !this.left && !this.top && !this.right\n const activatorLeft = this.attach !== false ? activator.offsetLeft : activator.left\n let left = 0\n\n if (this.top || this.bottom || unknown) {\n left = (\n activatorLeft +\n (activator.width / 2) -\n (content.width / 2)\n )\n } else if (this.left || this.right) {\n left = (\n activatorLeft +\n (this.right ? activator.width : -content.width) +\n (this.right ? 10 : -10)\n )\n }\n\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return `${this.calcXOverflow(left, this.dimensions.content.width)}px`\n },\n calculatedTop (): string {\n const { activator, content } = this.dimensions\n const activatorTop = this.attach !== false ? activator.offsetTop : activator.top\n let top = 0\n\n if (this.top || this.bottom) {\n top = (\n activatorTop +\n (this.bottom ? activator.height : -content.height) +\n (this.bottom ? 10 : -10)\n )\n } else if (this.left || this.right) {\n top = (\n activatorTop +\n (activator.height / 2) -\n (content.height / 2)\n )\n }\n\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n\n return `${this.calcYOverflow(top + this.pageYOffset)}px`\n },\n classes (): object {\n return {\n 'v-tooltip--top': this.top,\n 'v-tooltip--right': this.right,\n 'v-tooltip--bottom': this.bottom,\n 'v-tooltip--left': this.left,\n 'v-tooltip--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }\n },\n computedTransition (): string {\n if (this.transition) return this.transition\n\n return this.isActive ? 'scale-transition' : 'fade-transition'\n },\n offsetY (): boolean {\n return this.top || this.bottom\n },\n offsetX (): boolean {\n return this.left || this.right\n },\n styles (): object {\n return {\n left: this.calculatedLeft,\n maxWidth: convertToUnit(this.maxWidth),\n minWidth: convertToUnit(this.minWidth),\n opacity: this.isActive ? 0.9 : 0,\n top: this.calculatedTop,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.value && this.callActivate()\n })\n },\n\n mounted () {\n if (getSlotType(this, 'activator', true) === 'v-slot') {\n consoleError(`v-tooltip's activator slot must be bound, try '