{"version":3,"sources":["webpack:///./node_modules/core-js/internals/string-pad.js","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VToolbar/index.ts","webpack:///./node_modules/core-js/modules/es.math.sign.js","webpack:///../../../src/components/VSnackbar/VSnackbar.ts","webpack:///../../../src/components/VDatePicker/VDatePickerTitle.ts","webpack:///../../../src/mixins/localable/index.ts","webpack:///../../../../src/components/VDatePicker/util/createNativeLocaleFormatter.ts","webpack:///../../../../src/components/VDatePicker/util/monthChange.ts","webpack:///../../../src/components/VDatePicker/VDatePickerHeader.ts","webpack:///../../../../src/components/VDatePicker/util/eventHelpers.ts","webpack:///../../../../src/components/VDatePicker/util/sanitizeDateString.ts","webpack:///../../../../src/components/VDatePicker/util/isDateAllowed.ts","webpack:///../../../../src/components/VDatePicker/mixins/date-picker-table.ts","webpack:///../../src/util/dateTimeUtils.ts","webpack:///../../../src/components/VDatePicker/VDatePickerDateTable.ts","webpack:///../../../src/components/VDatePicker/VDatePickerMonthTable.ts","webpack:///../../../src/components/VDatePicker/VDatePickerYears.ts","webpack:///../../../../src/components/VCalendar/util/timestamp.ts","webpack:///../../../src/components/VDatePicker/VDatePicker.ts","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///../../../src/components/VRadioGroup/VRadioGroup.ts","webpack:///../../../src/components/VPicker/VPicker.ts","webpack:///../../../src/components/VPicker/index.ts","webpack:///../../../src/mixins/picker/index.ts","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///./node_modules/core-js/modules/es.string.pad-start.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///../../../../src/components/VDatePicker/util/pad.ts","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///./src/modules/survey/Answers/QuestionList.vue?513d","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///../../../src/components/VRadioGroup/VRadio.ts","webpack:///./node_modules/core-js/internals/define-built-ins.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/modules/es.map.constructor.js","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///../../../src/mixins/comparable/index.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///./node_modules/core-js/internals/string-pad-webkit-bug.js","webpack:///../../../src/directives/click-outside/index.ts","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///../../../src/components/VContent/VContent.ts","webpack:///./src/modules/survey/Answers/QuestionList.vue","webpack:///src/modules/survey/Answers/QuestionList.vue","webpack:///./src/modules/survey/Answers/QuestionList.vue?43bf","webpack:///./src/modules/survey/Answers/QuestionList.vue?d658","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///../../../src/components/VCheckbox/VCheckbox.ts","webpack:///../../../src/components/VBtn/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///../../../src/mixins/ssr-bootable/index.ts","webpack:///../../../src/mixins/picker-button/index.ts","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/mixins/returnable/index.ts","webpack:///../../../src/mixins/menuable/index.ts","webpack:///../../../src/components/VMain/VMain.ts","webpack:///../../../src/mixins/selectable/index.ts"],"names":["uncurryThis","toLength","toString","$repeat","requireObjectCoercible","repeat","stringSlice","slice","ceil","Math","createMethod","IS_END","$this","maxLength","fillString","fillLen","stringFiller","S","intMaxLength","stringLength","length","fillStr","undefined","module","exports","start","end","breakpoints","ALIGNMENT","makeProps","prefix","def","reduce","props","val","upperFirst","alignValidator","str","includes","alignProps","type","String","default","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","Object","keys","justify","alignContent","classMap","breakpointClass","prop","className","breakpoint","replace","toLowerCase","cache","Map","Vue","extend","name","functional","tag","dense","Boolean","noGutters","render","h","data","children","cacheKey","classList","get","forEach","value","push","set","mergeData","staticClass","class","VToolbarTitle","createSimpleFunctional","VToolbarItems","VToolbar","$","sign","target","stat","mixins","VSheet","Colorable","Toggleable","PositionableFactory","app","centered","contentClass","multiLine","text","timeout","Number","transition","v","vertical","activeTimeout","computed","classes","this","absolute","isActive","bottom","top","hasBackground","left","right","outlined","isDark","light","Themeable","options","call","styles","$vuetify","application","bar","footer","insetFooter","paddingBottom","convertToUnit","paddingLeft","paddingRight","paddingTop","watch","mounted","setTimeout","created","$attrs","hasOwnProperty","removed","deprecate","methods","genActions","$createElement","getSlot","attrs","genContent","role","genWrapper","setColor","setBackgroundColor","setTextColor","color","style","directives","on","pointerenter","window","clearTimeout","pointerleave","genTransition","PickerButton","date","disabled","readonly","selectingYear","year","yearIcon","isReversing","computedTransition","prev","genYearIcon","VIcon","dark","getYearBtn","genPickerButton","genTitleText","domProps","innerHTML","key","genTitleDate","locale","currentLocale","lang","current","createNativeLocaleFormatter","substrOptions","makeIsoString","dateString","trim","split","month","pad","join","intlFormatter","Intl","DateTimeFormat","format","Date","e","substr","map","Localable","Function","min","max","nextAriaLabel","nextIcon","prevAriaLabel","prevIcon","required","formatter","timeZone","newVal","oldVal","genBtn","change","ariaLabelId","ariaLabel","t","calculateChange","VBtn","icon","click","stopPropagation","$emit","rtl","monthChange","genHeader","header","$slots","themeClasses","createItemTypeNativeListeners","instance","itemTypeSuffix","$listeners","eventName","endsWith","event","createItemTypeListeners","isDateAllowed","allowedFn","Touch","allowedDates","events","Array","eventColor","range","scrollable","tableDate","wheelThrottle","displayedMonth","displayedYear","throttle","wheel","genButtonClasses","isAllowed","isFloating","isSelected","isCurrent","isFirst","isLast","genButtonEvents","mouseEventType","mergeListeners","genButton","isOtherMonth","isArray","genEvents","getEventColors","eventData","arrayize","eventColors","filter","isValidScroll","calculateTableDate","sanitizeType","sanitizeDateString","deltaY","touch","genTable","touchDirective","offsetX","preventDefault","sort","from","to","indexOf","createUTCDate","day","UTC","isFinite","getUTCFullYear","setUTCFullYear","firstWeekOffset","firstDayOfWeek","firstDayOfYear","firstWeekDayInFirstWeek","firstWeekDayOfYear","getUTCDay","dayOfYear","isLeapYear","weeksInYear","weekOffset","weekOffsetNext","daysInYear","weekNumber","localeFirstDayOfYear","week","DatePickerTable","showAdjacentMonths","showWeek","weekdayFormat","weekdayFormatter","weekday","weekDays","first","parseInt","createRange","i","delta","genTHead","days","unshift","genTR","weekDaysBeforeFirstDayOfTheMonth","firstDayOfTheMonth","weekDay","getWeekNumber","dayInMonth","genWeekNumber","padStart","genTBody","daysInMonth","getDate","rows","prevMonthYear","prevMonth","firstDayFromPreviousMonth","cellsInRow","nextMonthYear","nextMonth","nextMonthDay","cols","fill","row","tds","_","col","defaultColor","activeItem","$el","getElementsByClassName","scrollTop","offsetTop","offsetHeight","scrollHeight","genYearItem","formatted","active","genYearItems","selectedYear","getFullYear","maxYear","minYear","ref","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP","Picker","activePicker","dayFormat","headerDateFormat","monthFormat","multiple","nextMonthAriaLabel","nextYearAriaLabel","pickerDate","prevMonthAriaLabel","prevYearAriaLabel","reactive","showCurrent","selectedItemsText","titleDateFormat","yearFormat","now","internalActivePicker","toUpperCase","inputDay","inputMonth","inputYear","multipleValue","wrapInArray","getMonth","isMultiple","lastValue","selectedMonths","inputDate","tableMonth","tableYear","minMonth","maxMonth","formatters","titleDate","defaultTitleMultipleDateFormatter","defaultTitleDateFormatter","dates","titleFormats","titleDateFormatter","landscapeFormatter","match","nonDigit","digit","landscape","immediate","handler","newValue","oldValue","checkMultipleProp","setInputDate","output","emitInput","newInput","concat","x","valueType","constructor","expected","consoleWarn","yearClick","monthClick","dateClick","genPickerTitle","VDatePickerTitle","slot","genTableHeader","VDatePickerHeader","toggle","input","genDateTable","VDatePickerDateTable","genMonthTable","VDatePickerMonthTable","genYears","VDatePickerYears","genPickerBody","array","genPicker","baseMixins","BaseItemGroup","VInput","provide","radioGroup","column","height","genDefaultSlot","id","computedId","genInputSlot","genLabel","label","for","onClick","vnode","_b","attrs$","Elevatable","flat","fullWidth","noTitle","width","computedTitleColor","defaultTitleColor","genTitle","title","genBodyTransition","genBody","actions","elevationClasses","VPicker","headerColor","genPickerActionsSlot","$scopedSlots","save","cancel","body","elevation","root","rootIsDark","find","node","isComment","$padStart","WEBKIT_BUG","proto","forced","arguments","string","targetLength","padString","n","ripple","genRipple","center","Comparable","Proxyable","activeClass","mandatory","internalLazyValue","items","selectedIndex","selectedItem","selectedItems","item","index","toggleMethod","getValue","selectedValues","internalValue","valueComparator","some","intern","genData","updateInternalValue","register","$on","updateMandatory","updateItem","unregister","_isDestroyed","splice","valueIndex","updateItemsState","$nextTick","updateMultiple","updateSingle","last","reverse","defaultValue","findIndex","isSame","itemGroup","breakpointProps","offsetProps","orderProps","offset","order","alignSelf","parent","hasColClasses","startsWith","defineProperty","f","create","defineBuiltIns","bind","anInstance","isNullOrUndefined","iterate","defineIterator","createIterResultObject","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","Constructor","that","iterable","Prototype","size","AS_ENTRIES","prototype","getInternalState","define","previous","state","entry","getEntry","next","clear","callbackfn","boundFunction","has","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","BindsAttrs","Rippleable","GroupableFactory","inheritAttrs","offIcon","onIcon","isFocused","isDisabled","groupClasses","computedColor","Selectable","computedIcon","hasLabel","hasState","isReadonly","computedName","_uid","rippleState","validationState","genInput","args","VLabel","prevent","focused","genRadio","radioAttrs","onFocus","onBlur","onChange","onKeydown","listeners$","defineBuiltIn","src","global","isForced","InternalMetadataModule","isCallable","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","uncurriedNativeMethod","REPLACE","entries","enable","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","collection","collectionStrong","init","collapse","extended","extensionHeight","floating","prominent","short","isExtended","computedHeight","computedContentHeight","isCollapsed","isNaN","isProminent","smAndDown","measurableStyles","breakingProps","original","replacement","breaking","genBackground","image","img","VImg","genExtension","extension","deepEqual","VCardActions","VCardSubtitle","VCardText","VCardTitle","VCard","userAgent","test","defaultConditional","checkEvent","el","binding","checkIsActive","attachedRoot","ShadowRoot","host","elements","include","contains","closeConditional","directive","_clickOutside","lastMousedownWasOutside","handleShadow","callback","document","ClickOutside","inserted","onMousedown","addEventListener","context","unbind","_a","removeEventListener","toObject","toAbsoluteIndex","toIntegerOrInfinity","lengthOfArrayLike","setArrayLength","doesNotExceedSafeInteger","arraySpeciesCreate","createProperty","deletePropertyOrThrow","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","deleteCount","insertCount","actualDeleteCount","A","k","O","len","actualStart","argumentsLength","VMain","_c","_vm","selectAll","model","selectAllOptions","choiceText","choice","individualOptionSelect","$set","expression","submitData","Answers","$$v","_l","scopedSlots","snackbar","_v","staticRenderFns","components","invalidIndexLower","invalidIndexUpper","questionData","totalData","isLoading","formModal","createFormComponent","editFormComponent","dialogDelete","dateMenu","breadcrumbItems","exact","servicesData","message","console","decreaseIndex","submit","axios","increaseIndex","loadItems","params","projectID","component","VTextField","autoGrow","noResize","rowHeight","parseFloat","noResizeHandle","calculateInputHeight","$refs","removeProperty","lazyValue","minHeight","onInput","onKeyDown","keyCode","indeterminate","indeterminateIcon","inputIndeterminate","hasError","shouldValidate","hasSuccess","hasColor","genCheckbox","checkboxAttrs","Loadable","Routable","hover","link","loaderHeight","raised","isClickable","loading","background","genProgress","generateRouteLink","tabindex","handleGesture","touchstartX","touchendX","touchstartY","touchendY","dirRatio","minDistance","offsetY","abs","up","down","touchstart","changedTouches","clientX","clientY","assign","touchend","touchmove","touchmoveX","touchmoveY","move","createHandlers","parentElement","passive","handlers","_touchHandlers","$findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","isBooted","requestAnimationFrame","setAttribute","content","kebabCase","Dependent","Delayable","Returnable","Roundable","Menuable","Resize","isInMenu","theme","auto","closeOnClick","closeOnContentClick","disableKeys","maxHeight","openOnHover","origin","calculatedTopAuto","defaultOffset","hasJustFocused","listIndex","resizeTimeout","tiles","activeTile","calculatedLeft","menuWidth","dimensions","calculatedMinWidth","calcXOverflow","calcLeftAuto","calcLeft","calculatedMaxHeight","calculatedMaxWidth","maxWidth","minWidth","activator","nudgeWidth","pageWidth","calculatedTop","calcYOverflow","calcTop","hasClickableTiles","tile","tabIndex","transformOrigin","zIndex","activeZIndex","isContentActive","contentHeight","clientHeight","goTo","appOffset","duration","container","remove","callActivate","activate","updateDimensions","startTransition","then","calcTopAuto","calcScrollPosition","querySelector","maxScrollTop","computedTop","tileDistanceFromMenuTop","firstTileOffsetTop","changeListIndex","getTiles","keyCodes","tab","nextTile","prevTile","lastTile","home","firstTile","enter","genActivatorAttributes","attributes","Activatable","genActivatorListeners","listeners","keydown","genDirectives","getOpenDependentElements","getScopeIdAttrs","rootThemeClasses","roundedClasses","activatorFixed","menuable__content__active","getAttribute","scroll","mouseenter","mouseEnterHandler","mouseleave","mouseLeaveHandler","getContentSlot","querySelectorAll","runDelay","relatedTarget","callDeactivate","esc","getActivator","focus","onResize","offsetWidth","attach","arg","genActivator","showLazyContent","VThemeProvider","returnValue","originalValue","Stackable","positionableFactory","Detachable","allowOverflow","nudgeBottom","nudgeLeft","nudgeRight","nudgeTop","offsetOverflow","positionX","positionY","activatorNode","absoluteX","absoluteY","activatedBy","offsetLeft","relativeYOffset","hasWindow","inputActivator","pageYOffset","stackClass","stackMinZIndex","computedLeft","a","c","activatorLeft","hasActivator","absoluteYOffset","beforeMount","beforeDestroy","absolutePosition","xOverflow","getOffsetLeft","documentHeight","getInnerHeight","toTop","totalHeight","isOverflowing","deactivate","checkForPageYOffset","getOffsetTop","checkActivatorFixed","getComputedStyle","position","offsetParent","openOnClick","innerHeight","documentElement","pageXOffset","scrollLeft","getRoundedBoundedClientRect","rect","getBoundingClientRect","round","measure","marginLeft","marginTop","sneakPeek","cb","display","Promise","resolve","clientWidth","offsetRect","SSRBootable","inputValue","falseValue","trueValue","appIsDark","isDirty","checked","blur","isInteractive","validate"],"mappings":"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","file":"js/chunk-cb242472.35801dc9.js","sourcesContent":["// https://github.com/tc39/proposal-string-pad-start-end\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var intMaxLength = toLength(maxLength);\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\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","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { deprecate, removed } from '../../util/console'\n\n// Types\nimport { PropType, VNode } from 'vue'\n\nexport default mixins(\n VSheet,\n Colorable,\n Toggleable,\n PositionableFactory([\n 'absolute',\n 'bottom',\n 'left',\n 'right',\n 'top',\n ])\n/* @vue/component */\n).extend({\n name: 'v-snackbar',\n\n props: {\n app: Boolean,\n centered: Boolean,\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n text: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n transition: {\n type: [Boolean, String] as PropType,\n default: 'v-snack-transition',\n validator: v => typeof v === 'string' || v === false,\n },\n vertical: Boolean,\n },\n\n data: () => ({\n activeTimeout: -1,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-snack--absolute': this.absolute,\n 'v-snack--active': this.isActive,\n 'v-snack--bottom': this.bottom || !this.top,\n 'v-snack--centered': this.centered,\n 'v-snack--has-background': this.hasBackground,\n 'v-snack--left': this.left,\n 'v-snack--multi-line': this.multiLine && !this.vertical,\n 'v-snack--right': this.right,\n 'v-snack--text': this.text,\n 'v-snack--top': this.top,\n 'v-snack--vertical': this.vertical,\n }\n },\n // Text and outlined styles both\n // use transparent backgrounds\n hasBackground (): boolean {\n return (\n !this.text &&\n !this.outlined\n )\n },\n // Snackbar is dark by default\n // override themeable logic.\n isDark (): boolean {\n return this.hasBackground\n ? !this.light\n : Themeable.options.computed.isDark.call(this)\n },\n styles (): object {\n if (this.absolute || !this.app) return {}\n\n const {\n bar,\n bottom,\n footer,\n insetFooter,\n left,\n right,\n top,\n } = this.$vuetify.application\n\n return {\n paddingBottom: convertToUnit(bottom + footer + insetFooter),\n paddingLeft: convertToUnit(left),\n paddingRight: convertToUnit(right),\n paddingTop: convertToUnit(bar + top),\n }\n },\n },\n\n watch: {\n isActive: 'setTimeout',\n timeout: 'setTimeout',\n },\n\n mounted () {\n if (this.isActive) this.setTimeout()\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('auto-height')) {\n removed('auto-height', this)\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line eqeqeq\n if (this.timeout == 0) {\n deprecate('timeout=\"0\"', '-1', this)\n }\n },\n\n methods: {\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-snack__action ',\n }, [\n getSlot(this, 'action', {\n attrs: { class: 'v-snack__btn' },\n }),\n ])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-snack__content',\n class: {\n [this.contentClass]: true,\n },\n attrs: {\n role: 'status',\n 'aria-live': 'polite',\n },\n }, [getSlot(this)])\n },\n genWrapper () {\n const setColor = this.hasBackground\n ? this.setBackgroundColor\n : this.setTextColor\n\n const data = setColor(this.color, {\n staticClass: 'v-snack__wrapper',\n class: VSheet.options.computed.classes.call(this),\n style: VSheet.options.computed.styles.call(this),\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: {\n pointerenter: () => window.clearTimeout(this.activeTimeout),\n pointerleave: this.setTimeout,\n },\n })\n\n return this.$createElement('div', data, [\n this.genContent(),\n this.genActions(),\n ])\n },\n genTransition () {\n return this.$createElement('transition', {\n props: { name: this.transition },\n }, [this.genWrapper()])\n },\n setTimeout () {\n window.clearTimeout(this.activeTimeout)\n\n const timeout = Number(this.timeout)\n\n if (\n !this.isActive ||\n // TODO: remove 0 in v3\n [0, -1].includes(timeout)\n ) {\n return\n }\n\n this.activeTimeout = window.setTimeout(() => {\n this.isActive = false\n }, timeout)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-snack',\n class: this.classes,\n style: this.styles,\n }, [\n this.transition !== false\n ? this.genTransition()\n : this.genWrapper(),\n ])\n },\n})\n","import './VDatePickerTitle.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Mixins\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-date-picker-title',\n\n props: {\n date: {\n type: String,\n default: '',\n },\n disabled: Boolean,\n readonly: Boolean,\n selectingYear: Boolean,\n value: {\n type: String,\n },\n year: {\n type: [Number, String],\n default: '',\n },\n yearIcon: {\n type: String,\n },\n },\n\n data: () => ({\n isReversing: false,\n }),\n\n computed: {\n computedTransition (): string {\n return this.isReversing ? 'picker-reverse-transition' : 'picker-transition'\n },\n },\n\n watch: {\n value (val: string, prev: string) {\n this.isReversing = val < prev\n },\n },\n\n methods: {\n genYearIcon (): VNode {\n return this.$createElement(VIcon, {\n props: {\n dark: true,\n },\n }, this.yearIcon)\n },\n getYearBtn (): VNode {\n return this.genPickerButton('selectingYear', true, [\n String(this.year),\n this.yearIcon ? this.genYearIcon() : null,\n ], false, 'v-date-picker-title__year')\n },\n genTitleText (): VNode {\n return this.$createElement('transition', {\n props: {\n name: this.computedTransition,\n },\n }, [\n this.$createElement('div', {\n domProps: { innerHTML: this.date || ' ' },\n key: this.value,\n }),\n ])\n },\n genTitleDate (): VNode {\n return this.genPickerButton('selectingYear', false, [this.genTitleText()], false, 'v-date-picker-title__date')\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-date-picker-title',\n class: {\n 'v-date-picker-title--disabled': this.disabled,\n },\n }, [\n this.getYearBtn(),\n this.genTitleDate(),\n ])\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'localable',\n\n props: {\n locale: String,\n },\n\n computed: {\n currentLocale (): string {\n return this.locale || this.$vuetify.lang.current\n },\n },\n})\n","import pad from './pad'\nimport { DatePickerFormatter } from 'vuetify/types'\n\ninterface SubstrOptions {\n start?: number\n length: number\n}\n\nfunction createNativeLocaleFormatter (\n local: string | undefined,\n options: Intl.DateTimeFormatOptions\n): DatePickerFormatter | undefined\n\nfunction createNativeLocaleFormatter (\n local: string | undefined,\n options: Intl.DateTimeFormatOptions,\n substrOptions: SubstrOptions\n): DatePickerFormatter\n\nfunction createNativeLocaleFormatter (\n locale: string | undefined,\n options: Intl.DateTimeFormatOptions,\n substrOptions: SubstrOptions = { start: 0, length: 0 }\n): DatePickerFormatter | undefined {\n const makeIsoString = (dateString: string) => {\n const [year, month, date] = dateString.trim().split(' ')[0].split('-')\n return [pad(year, 4), pad(month || 1), pad(date || 1)].join('-')\n }\n\n try {\n const intlFormatter = new Intl.DateTimeFormat(locale || undefined, options)\n return (dateString: string) => intlFormatter.format(new Date(`${makeIsoString(dateString)}T00:00:00+00:00`))\n } catch (e) {\n return (substrOptions.start || substrOptions.length)\n ? (dateString: string) => makeIsoString(dateString).substr(substrOptions.start || 0, substrOptions.length)\n : undefined\n }\n}\n\nexport default createNativeLocaleFormatter\n","import pad from './pad'\n\n/**\n * @param {String} value YYYY-MM format\n * @param {Number} sign -1 or +1\n */\nexport default (value: string, sign: number) => {\n const [year, month] = value.split('-').map(Number)\n\n if (month + sign === 0) {\n return `${year - 1}-12`\n } else if (month + sign === 13) {\n return `${year + 1}-01`\n } else {\n return `${year}-${pad(month + sign)}`\n }\n}\n","import './VDatePickerHeader.sass'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Localable from '../../mixins/localable'\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport { createNativeLocaleFormatter, monthChange } from './util'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-header',\n\n props: {\n disabled: Boolean,\n format: Function as PropType,\n min: String,\n max: String,\n nextAriaLabel: String,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevAriaLabel: String,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n readonly: Boolean,\n value: {\n type: [Number, String],\n required: true,\n },\n },\n\n data () {\n return {\n isReversing: false,\n }\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n if (this.format) {\n return this.format\n } else if (String(this.value).split('-')[1]) {\n return createNativeLocaleFormatter(this.currentLocale, { month: 'long', year: 'numeric', timeZone: 'UTC' }, { length: 7 })\n } else {\n return createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 })\n }\n },\n },\n\n watch: {\n value (newVal, oldVal) {\n this.isReversing = newVal < oldVal\n },\n },\n\n methods: {\n genBtn (change: number) {\n const ariaLabelId = change > 0 ? this.nextAriaLabel : this.prevAriaLabel\n const ariaLabel = ariaLabelId ? this.$vuetify.lang.t(ariaLabelId) : undefined\n const disabled = this.disabled ||\n (change < 0 && this.min && this.calculateChange(change) < this.min) ||\n (change > 0 && this.max && this.calculateChange(change) > this.max)\n\n return this.$createElement(VBtn, {\n attrs: { 'aria-label': ariaLabel },\n props: {\n dark: this.dark,\n disabled,\n icon: true,\n light: this.light,\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n this.$emit('input', this.calculateChange(change))\n },\n },\n }, [\n this.$createElement(VIcon, ((change < 0) === !this.$vuetify.rtl) ? this.prevIcon : this.nextIcon),\n ])\n },\n calculateChange (sign: number) {\n const [year, month] = String(this.value).split('-').map(Number)\n\n if (month == null) {\n return `${year + sign}`\n } else {\n return monthChange(String(this.value), sign)\n }\n },\n genHeader () {\n const color = !this.disabled && (this.color || 'accent')\n const header = this.$createElement('div', this.setTextColor(color, {\n key: String(this.value),\n }), [this.$createElement('button', {\n attrs: {\n type: 'button',\n },\n on: {\n click: () => this.$emit('toggle'),\n },\n }, [this.$slots.default || this.formatter(String(this.value))])])\n\n const transition = this.$createElement('transition', {\n props: {\n name: (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition',\n },\n }, [header])\n\n return this.$createElement('div', {\n staticClass: 'v-date-picker-header__value',\n class: {\n 'v-date-picker-header__value--disabled': this.disabled,\n },\n }, [transition])\n },\n },\n\n render (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-date-picker-header',\n class: {\n 'v-date-picker-header--disabled': this.disabled,\n ...this.themeClasses,\n },\n }, [\n this.genBtn(-1),\n this.genHeader(),\n this.genBtn(+1),\n ])\n },\n})\n","import Vue from 'vue'\n\nexport function createItemTypeNativeListeners (instance: Vue, itemTypeSuffix: string, value: any) {\n return Object.keys(instance.$listeners).reduce((on, eventName) => {\n if (eventName.endsWith(itemTypeSuffix)) {\n on[eventName.slice(0, -itemTypeSuffix.length)] = (event: Event) => instance.$emit(eventName, value, event)\n }\n\n return on\n }, {} as typeof instance.$listeners)\n}\n\nexport function createItemTypeListeners (instance: Vue, itemTypeSuffix: string) {\n return Object.keys(instance.$listeners).reduce((on, eventName) => {\n if (eventName.endsWith(itemTypeSuffix)) {\n on[eventName] = instance.$listeners[eventName]\n }\n\n return on\n }, {} as typeof instance.$listeners)\n}\n","// Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',\n// 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'\nimport pad from './pad'\n\nexport default (dateString: string, type: 'date' | 'month' | 'year'): string => {\n const [year, month = 1, date = 1] = dateString.split('-')\n return `${year}-${pad(month)}-${pad(date)}`.substr(0, { date: 10, month: 7, year: 4 }[type])\n}\n","import { DatePickerAllowedDatesFunction } from 'vuetify/types'\n\nexport default function isDateAllowed (date: string, min: string, max: string, allowedFn: DatePickerAllowedDatesFunction | undefined) {\n return (!allowedFn || allowedFn(date)) &&\n (!min || date >= min.substr(0, 10)) &&\n (!max || date <= max)\n}\n","import '../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,\n current: String,\n disabled: Boolean,\n format: Function as PropType,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator,\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,\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","function createUTCDate (year: number, month = 0, day = 1) {\n let date\n if (year < 100 && year >= 0) {\n date = new Date(Date.UTC(year, month, day))\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(year)\n }\n } else {\n date = new Date(Date.UTC(year, month, day))\n }\n\n return date\n}\n\nfunction firstWeekOffset (year: number, firstDayOfWeek: number, firstDayOfYear: number) {\n const firstWeekDayInFirstWeek = 7 + firstDayOfWeek - firstDayOfYear\n const firstWeekDayOfYear = (7 + createUTCDate(year, 0, firstWeekDayInFirstWeek).getUTCDay() - firstDayOfWeek) % 7\n\n return -firstWeekDayOfYear + firstWeekDayInFirstWeek - 1\n}\n\nfunction dayOfYear (year: number, month: number, day: number, firstDayOfWeek: number) {\n let dayOfYear = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334][month]\n if (month > 1 && isLeapYear(year)) {\n dayOfYear++\n }\n\n return dayOfYear + day\n}\n\nfunction weeksInYear (year: number, firstDayOfWeek: number, firstDayOfYear: number) {\n const weekOffset = firstWeekOffset(year, firstDayOfWeek, firstDayOfYear)\n const weekOffsetNext = firstWeekOffset(year + 1, firstDayOfWeek, firstDayOfYear)\n const daysInYear = isLeapYear(year) ? 366 : 365\n\n return (daysInYear - weekOffset + weekOffsetNext) / 7\n}\n\nexport function weekNumber (year: number, month: number, day: number, firstDayOfWeek: number, localeFirstDayOfYear: number): number {\n const weekOffset = firstWeekOffset(year, firstDayOfWeek, localeFirstDayOfYear)\n const week = Math.ceil((dayOfYear(year, month, day, firstDayOfWeek) - weekOffset) / 7)\n\n if (week < 1) {\n return week + weeksInYear(year - 1, firstDayOfWeek, localeFirstDayOfYear)\n } else if (week > weeksInYear(year, firstDayOfWeek, localeFirstDayOfYear)) {\n return week - weeksInYear(year, firstDayOfWeek, localeFirstDayOfYear)\n } else {\n return week\n }\n}\n\nexport function isLeapYear (year: number): boolean {\n return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)\n}\n","// Mixins\nimport DatePickerTable from './mixins/date-picker-table'\n\n// Utils\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport { pad, createNativeLocaleFormatter, monthChange } from './util'\nimport { createRange } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n DatePickerTable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-date-table',\n\n props: {\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n weekdayFormat: Function as PropType,\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { day: 'numeric', timeZone: 'UTC' }, { start: 8, length: 2 })\n },\n weekdayFormatter (): DatePickerFormatter | undefined {\n return this.weekdayFormat || createNativeLocaleFormatter(this.currentLocale, { weekday: 'narrow', timeZone: 'UTC' })\n },\n weekDays (): string[] {\n const first = parseInt(this.firstDayOfWeek, 10)\n\n return this.weekdayFormatter\n ? createRange(7).map(i => this.weekdayFormatter!(`2017-01-${first + i + 15}`)) // 2017-01-15 is Sunday\n : createRange(7).map(i => ['S', 'M', 'T', 'W', 'T', 'F', 'S'][(i + first) % 7])\n },\n },\n\n methods: {\n calculateTableDate (delta: number) {\n return monthChange(this.tableDate, Math.sign(delta || 1))\n },\n genTHead () {\n const days = this.weekDays.map(day => this.$createElement('th', day))\n if (this.showWeek) {\n days.unshift(this.$createElement('th'))\n }\n\n return this.$createElement('thead', this.genTR(days))\n },\n // Returns number of the days from the firstDayOfWeek to the first day of the current month\n weekDaysBeforeFirstDayOfTheMonth () {\n const firstDayOfTheMonth = new Date(`${this.displayedYear}-${pad(this.displayedMonth + 1)}-01T00:00:00+00:00`)\n const weekDay = firstDayOfTheMonth.getUTCDay()\n\n return (weekDay - parseInt(this.firstDayOfWeek) + 7) % 7\n },\n getWeekNumber (dayInMonth: number) {\n return weekNumber(\n this.displayedYear,\n this.displayedMonth,\n dayInMonth,\n parseInt(this.firstDayOfWeek),\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return this.$createElement('td', [\n this.$createElement('small', {\n staticClass: 'v-date-picker-table--date__week',\n }, String(weekNumber).padStart(2, '0')),\n ])\n },\n // eslint-disable-next-line max-statements\n genTBody () {\n const children = []\n const daysInMonth = new Date(this.displayedYear, this.displayedMonth + 1, 0).getDate()\n let rows = []\n let day = this.weekDaysBeforeFirstDayOfTheMonth()\n\n if (this.showWeek) {\n rows.push(this.genWeekNumber(this.getWeekNumber(1)))\n }\n\n const prevMonthYear = this.displayedMonth ? this.displayedYear : this.displayedYear - 1\n const prevMonth = (this.displayedMonth + 11) % 12\n const firstDayFromPreviousMonth = new Date(this.displayedYear, this.displayedMonth, 0).getDate()\n const cellsInRow = this.showWeek ? 8 : 7\n\n while (day--) {\n const date = `${prevMonthYear}-${pad(prevMonth + 1)}-${pad(firstDayFromPreviousMonth - day)}`\n\n rows.push(this.$createElement('td', this.showAdjacentMonths ? [\n this.genButton(date, true, 'date', this.formatter, true),\n ] : []))\n }\n\n for (day = 1; day <= daysInMonth; day++) {\n const date = `${this.displayedYear}-${pad(this.displayedMonth + 1)}-${pad(day)}`\n\n rows.push(this.$createElement('td', [\n this.genButton(date, true, 'date', this.formatter),\n ]))\n\n if (rows.length % cellsInRow === 0) {\n children.push(this.genTR(rows))\n rows = []\n if (this.showWeek && (day < daysInMonth || this.showAdjacentMonths)) {\n rows.push(this.genWeekNumber(this.getWeekNumber(day + 7)))\n }\n }\n }\n\n const nextMonthYear = this.displayedMonth === 11 ? this.displayedYear + 1 : this.displayedYear\n const nextMonth = (this.displayedMonth + 1) % 12\n let nextMonthDay = 1\n\n while (rows.length < cellsInRow) {\n const date = `${nextMonthYear}-${pad(nextMonth + 1)}-${pad(nextMonthDay++)}`\n\n rows.push(this.$createElement('td', this.showAdjacentMonths ? [\n this.genButton(date, true, 'date', this.formatter, true),\n ] : []))\n }\n\n if (rows.length) {\n children.push(this.genTR(rows))\n }\n\n return this.$createElement('tbody', children)\n },\n genTR (children: VNodeChildren) {\n return [this.$createElement('tr', children)]\n },\n },\n\n render (): VNode {\n return this.genTable('v-date-picker-table v-date-picker-table--date', [\n this.genTHead(),\n this.genTBody(),\n ], this.calculateTableDate)\n },\n})\n","// Mixins\nimport DatePickerTable from './mixins/date-picker-table'\n\n// Utils\nimport { pad, createNativeLocaleFormatter } from './util'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n DatePickerTable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-month-table',\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { month: 'short', timeZone: 'UTC' }, { start: 5, length: 2 })\n },\n },\n\n methods: {\n calculateTableDate (delta: number) {\n return `${parseInt(this.tableDate, 10) + Math.sign(delta || 1)}`\n },\n genTBody () {\n const children = []\n const cols = Array(3).fill(null)\n const rows = 12 / cols.length\n\n for (let row = 0; row < rows; row++) {\n const tds = cols.map((_, col) => {\n const month = row * cols.length + col\n const date = `${this.displayedYear}-${pad(month + 1)}`\n return this.$createElement('td', {\n key: month,\n }, [\n this.genButton(date, false, 'month', this.formatter),\n ])\n })\n\n children.push(this.$createElement('tr', {\n key: row,\n }, tds))\n }\n\n return this.$createElement('tbody', children)\n },\n },\n\n render (): VNode {\n return this.genTable('v-date-picker-table v-date-picker-table--month', [\n this.genTBody(),\n ], this.calculateTableDate)\n },\n})\n","import './VDatePickerYears.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Localable from '../../mixins/localable'\n\n// Utils\nimport {\n createItemTypeNativeListeners,\n createNativeLocaleFormatter,\n} from './util'\nimport { mergeListeners } from '../../util/mergeData'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\ninterface options extends Vue {\n $el: HTMLElement\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n Colorable,\n Localable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-years',\n\n props: {\n format: Function as PropType,\n min: [Number, String],\n max: [Number, String],\n readonly: Boolean,\n value: [Number, String],\n },\n\n data () {\n return {\n defaultColor: 'primary',\n }\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 })\n },\n },\n\n mounted () {\n setTimeout(() => {\n const activeItem = this.$el.getElementsByClassName('active')[0]\n if (activeItem) {\n this.$el.scrollTop = activeItem.offsetTop - this.$el.offsetHeight / 2 + activeItem.offsetHeight / 2\n } else if (this.min && !this.max) {\n this.$el.scrollTop = this.$el.scrollHeight\n } else if (!this.min && this.max) {\n this.$el.scrollTop = 0\n } else {\n this.$el.scrollTop = this.$el.scrollHeight / 2 - this.$el.offsetHeight / 2\n }\n })\n },\n\n methods: {\n genYearItem (year: number): VNode {\n const formatted = this.formatter(`${year}`)\n const active = parseInt(this.value, 10) === year\n const color = active && (this.color || 'primary')\n\n return this.$createElement('li', this.setTextColor(color, {\n key: year,\n class: { active },\n on: mergeListeners({\n click: () => this.$emit('input', year),\n }, createItemTypeNativeListeners(this, ':year', year)),\n }), formatted)\n },\n\n genYearItems (): VNode[] {\n const children = []\n const selectedYear = this.value ? parseInt(this.value, 10) : new Date().getFullYear()\n const maxYear = this.max ? parseInt(this.max, 10) : (selectedYear + 100)\n const minYear = Math.min(maxYear, this.min ? parseInt(this.min, 10) : (selectedYear - 100))\n\n for (let year = maxYear; year >= minYear; year--) {\n children.push(this.genYearItem(year))\n }\n\n return children\n },\n },\n\n render (): VNode {\n return this.$createElement('ul', {\n staticClass: 'v-date-picker-years',\n ref: 'years',\n }, this.genYearItems())\n },\n})\n","import { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\nimport { isLeapYear } from '../../../util/dateTimeUtils'\n\nexport const PARSE_REGEX = /^(\\d{4})-(\\d{1,2})(-(\\d{1,2}))?([^\\d]+(\\d{1,2}))?(:(\\d{1,2}))?(:(\\d{1,2}))?$/\nexport const PARSE_TIME = /(\\d\\d?)(:(\\d\\d?)|)(:(\\d\\d?)|)/\n\nexport const DAYS_IN_MONTH: number[] = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nexport const DAYS_IN_MONTH_LEAP: number[] = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nexport const DAYS_IN_MONTH_MIN = 28\nexport const DAYS_IN_MONTH_MAX = 31\nexport const MONTH_MAX = 12\nexport const MONTH_MIN = 1\nexport const DAY_MIN = 1\nexport const DAYS_IN_WEEK = 7\nexport const MINUTES_IN_HOUR = 60\nexport const MINUTE_MAX = 59\nexport const MINUTES_IN_DAY = 24 * 60\nexport const HOURS_IN_DAY = 24\nexport const HOUR_MAX = 23\nexport const FIRST_HOUR = 0\nexport const OFFSET_YEAR = 10000\nexport const OFFSET_MONTH = 100\nexport const OFFSET_HOUR = 100\nexport const OFFSET_TIME = 10000\n\ntype CalendarTimestampFormatOptions = (timestamp: CalendarTimestamp, short: boolean) => object\ntype CalendarTimestampOperation = (timestamp: CalendarTimestamp) => CalendarTimestamp\nexport type VTime = number | string | {\n hour: number\n minute: number\n}\n\nexport type VTimestampInput = number | string | Date;\n\nexport function getStartOfWeek (timestamp: CalendarTimestamp, weekdays: number[], today?: CalendarTimestamp): CalendarTimestamp {\n const start = copyTimestamp(timestamp)\n findWeekday(start, weekdays[0], prevDay)\n updateFormatted(start)\n if (today) {\n updateRelative(start, today, start.hasTime)\n }\n\n return start\n}\n\nexport function getEndOfWeek (timestamp: CalendarTimestamp, weekdays: number[], today?: CalendarTimestamp): CalendarTimestamp {\n const end = copyTimestamp(timestamp)\n findWeekday(end, weekdays[weekdays.length - 1])\n updateFormatted(end)\n if (today) {\n updateRelative(end, today, end.hasTime)\n }\n\n return end\n}\n\nexport function getStartOfMonth (timestamp: CalendarTimestamp): CalendarTimestamp {\n const start = copyTimestamp(timestamp)\n start.day = DAY_MIN\n updateWeekday(start)\n updateFormatted(start)\n\n return start\n}\n\nexport function getEndOfMonth (timestamp: CalendarTimestamp): CalendarTimestamp {\n const end = copyTimestamp(timestamp)\n end.day = daysInMonth(end.year, end.month)\n updateWeekday(end)\n updateFormatted(end)\n\n return end\n}\n\nexport function validateTime (input: any): input is VTime {\n return (typeof input === 'number' && isFinite(input)) ||\n (!!PARSE_TIME.exec(input)) ||\n (typeof input === 'object' && isFinite(input.hour) && isFinite(input.minute))\n}\n\nexport function parseTime (input: any): number | false {\n if (typeof input === 'number') {\n // when a number is given, it's minutes since 12:00am\n return input\n } else if (typeof input === 'string') {\n // when a string is given, it's a hh:mm:ss format where seconds are optional\n const parts = PARSE_TIME.exec(input)\n if (!parts) {\n return false\n }\n\n return parseInt(parts[1]) * 60 + parseInt(parts[3] || 0)\n } else if (typeof input === 'object') {\n // when an object is given, it must have hour and minute\n if (typeof input.hour !== 'number' || typeof input.minute !== 'number') {\n return false\n }\n\n return input.hour * 60 + input.minute\n } else {\n // unsupported type\n return false\n }\n}\n\nexport function validateTimestamp (input: any): input is VTimestampInput {\n return (typeof input === 'number' && isFinite(input)) ||\n (typeof input === 'string' && !!PARSE_REGEX.exec(input)) ||\n (input instanceof Date)\n}\n\nexport function parseTimestamp (input: VTimestampInput, required?: false, now?: CalendarTimestamp): CalendarTimestamp | null\nexport function parseTimestamp (input: VTimestampInput, required: true, now?: CalendarTimestamp): CalendarTimestamp\nexport function parseTimestamp (input: VTimestampInput, required = false, now?: CalendarTimestamp): CalendarTimestamp | null {\n if (typeof input === 'number' && isFinite(input)) {\n input = new Date(input)\n }\n\n if (input instanceof Date) {\n const date: CalendarTimestamp = parseDate(input)\n\n if (now) {\n updateRelative(date, now, date.hasTime)\n }\n\n return date\n }\n\n if (typeof input !== 'string') {\n if (required) {\n throw new Error(`${input} is not a valid timestamp. It must be a Date, number of milliseconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored.`)\n }\n return null\n }\n\n // YYYY-MM-DD hh:mm:ss\n const parts = PARSE_REGEX.exec(input)\n\n if (!parts) {\n if (required) {\n throw new Error(`${input} is not a valid timestamp. It must be a Date, number of milliseconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored.`)\n }\n\n return null\n }\n\n const timestamp: CalendarTimestamp = {\n date: input,\n time: '',\n year: parseInt(parts[1]),\n month: parseInt(parts[2]),\n day: parseInt(parts[4]) || 1,\n hour: parseInt(parts[6]) || 0,\n minute: parseInt(parts[8]) || 0,\n weekday: 0,\n hasDay: !!parts[4],\n hasTime: !!(parts[6] && parts[8]),\n past: false,\n present: false,\n future: false,\n }\n\n updateWeekday(timestamp)\n updateFormatted(timestamp)\n\n if (now) {\n updateRelative(timestamp, now, timestamp.hasTime)\n }\n\n return timestamp\n}\n\nexport function parseDate (date: Date): CalendarTimestamp {\n return updateFormatted({\n date: '',\n time: '',\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate(),\n weekday: date.getDay(),\n hour: date.getHours(),\n minute: date.getMinutes(),\n hasDay: true,\n hasTime: true,\n past: false,\n present: true,\n future: false,\n })\n}\n\nexport function getDayIdentifier (timestamp: { year: number, month: number, day: number }): number {\n return timestamp.year * OFFSET_YEAR + timestamp.month * OFFSET_MONTH + timestamp.day\n}\n\nexport function getTimeIdentifier (timestamp: { hour: number, minute: number }): number {\n return timestamp.hour * OFFSET_HOUR + timestamp.minute\n}\n\nexport function getTimestampIdentifier (timestamp: CalendarTimestamp): number {\n return getDayIdentifier(timestamp) * OFFSET_TIME + getTimeIdentifier(timestamp)\n}\n\nexport function updateRelative (timestamp: CalendarTimestamp, now: CalendarTimestamp, time = false): CalendarTimestamp {\n let a = getDayIdentifier(now)\n let b = getDayIdentifier(timestamp)\n let present = a === b\n\n if (timestamp.hasTime && time && present) {\n a = getTimeIdentifier(now)\n b = getTimeIdentifier(timestamp)\n present = a === b\n }\n\n timestamp.past = b < a\n timestamp.present = present\n timestamp.future = b > a\n\n return timestamp\n}\n\nexport function isTimedless (input: VTimestampInput): input is (Date | number) {\n return (input instanceof Date) || (typeof input === 'number' && isFinite(input))\n}\n\nexport function updateHasTime (timestamp: CalendarTimestamp, hasTime: boolean, now?: CalendarTimestamp): CalendarTimestamp {\n if (timestamp.hasTime !== hasTime) {\n timestamp.hasTime = hasTime\n if (!hasTime) {\n timestamp.hour = HOUR_MAX\n timestamp.minute = MINUTE_MAX\n timestamp.time = getTime(timestamp)\n }\n if (now) {\n updateRelative(timestamp, now, timestamp.hasTime)\n }\n }\n\n return timestamp\n}\n\nexport function updateMinutes (timestamp: CalendarTimestamp, minutes: number, now?: CalendarTimestamp): CalendarTimestamp {\n timestamp.hasTime = true\n timestamp.hour = Math.floor(minutes / MINUTES_IN_HOUR)\n timestamp.minute = minutes % MINUTES_IN_HOUR\n timestamp.time = getTime(timestamp)\n if (now) {\n updateRelative(timestamp, now, true)\n }\n\n return timestamp\n}\n\nexport function updateWeekday (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.weekday = getWeekday(timestamp)\n\n return timestamp\n}\n\nexport function updateFormatted (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.time = getTime(timestamp)\n timestamp.date = getDate(timestamp)\n\n return timestamp\n}\n\nexport function getWeekday (timestamp: CalendarTimestamp): number {\n if (timestamp.hasDay) {\n const _ = Math.floor\n const k = timestamp.day\n const m = ((timestamp.month + 9) % MONTH_MAX) + 1\n const C = _(timestamp.year / 100)\n const Y = (timestamp.year % 100) - (timestamp.month <= 2 ? 1 : 0)\n\n return (((k + _(2.6 * m - 0.2) - 2 * C + Y + _(Y / 4) + _(C / 4)) % 7) + 7) % 7\n }\n\n return timestamp.weekday\n}\n\nexport function daysInMonth (year: number, month: number) {\n return isLeapYear(year) ? DAYS_IN_MONTH_LEAP[month] : DAYS_IN_MONTH[month]\n}\n\nexport function copyTimestamp (timestamp: CalendarTimestamp): CalendarTimestamp {\n const { date, time, year, month, day, weekday, hour, minute, hasDay, hasTime, past, present, future } = timestamp\n\n return { date, time, year, month, day, weekday, hour, minute, hasDay, hasTime, past, present, future }\n}\n\nexport function padNumber (x: number, length: number): string {\n let padded = String(x)\n while (padded.length < length) {\n padded = '0' + padded\n }\n\n return padded\n}\n\nexport function getDate (timestamp: CalendarTimestamp): string {\n let str = `${padNumber(timestamp.year, 4)}-${padNumber(timestamp.month, 2)}`\n\n if (timestamp.hasDay) str += `-${padNumber(timestamp.day, 2)}`\n\n return str\n}\n\nexport function getTime (timestamp: CalendarTimestamp): string {\n if (!timestamp.hasTime) {\n return ''\n }\n\n return `${padNumber(timestamp.hour, 2)}:${padNumber(timestamp.minute, 2)}`\n}\n\nexport function nextMinutes (timestamp: CalendarTimestamp, minutes: number): CalendarTimestamp {\n timestamp.minute += minutes\n while (timestamp.minute > MINUTES_IN_HOUR) {\n timestamp.minute -= MINUTES_IN_HOUR\n timestamp.hour++\n if (timestamp.hour >= HOURS_IN_DAY) {\n nextDay(timestamp)\n timestamp.hour = FIRST_HOUR\n }\n }\n\n return timestamp\n}\n\nexport function nextDay (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.day++\n timestamp.weekday = (timestamp.weekday + 1) % DAYS_IN_WEEK\n if (timestamp.day > DAYS_IN_MONTH_MIN && timestamp.day > daysInMonth(timestamp.year, timestamp.month)) {\n timestamp.day = DAY_MIN\n timestamp.month++\n if (timestamp.month > MONTH_MAX) {\n timestamp.month = MONTH_MIN\n timestamp.year++\n }\n }\n\n return timestamp\n}\n\nexport function prevDay (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.day--\n timestamp.weekday = (timestamp.weekday + 6) % DAYS_IN_WEEK\n if (timestamp.day < DAY_MIN) {\n timestamp.month--\n if (timestamp.month < MONTH_MIN) {\n timestamp.year--\n timestamp.month = MONTH_MAX\n }\n timestamp.day = daysInMonth(timestamp.year, timestamp.month)\n }\n\n return timestamp\n}\n\nexport function relativeDays (\n timestamp: CalendarTimestamp,\n mover: CalendarTimestampOperation = nextDay,\n days = 1\n): CalendarTimestamp {\n while (--days >= 0) mover(timestamp)\n\n return timestamp\n}\n\nexport function diffMinutes (min: CalendarTimestamp, max: CalendarTimestamp) {\n const Y = (max.year - min.year) * 525600\n const M = (max.month - min.month) * 43800\n const D = (max.day - min.day) * 1440\n const h = (max.hour - min.hour) * 60\n const m = (max.minute - min.minute)\n\n return Y + M + D + h + m\n}\n\nexport function findWeekday (timestamp: CalendarTimestamp, weekday: number,\n mover: CalendarTimestampOperation = nextDay, maxDays = 6): CalendarTimestamp {\n while (timestamp.weekday !== weekday && --maxDays >= 0) mover(timestamp)\n\n return timestamp\n}\n\nexport function getWeekdaySkips (weekdays: number[]): number[] {\n const skips: number[] = [1, 1, 1, 1, 1, 1, 1]\n const filled: number[] = [0, 0, 0, 0, 0, 0, 0]\n for (let i = 0; i < weekdays.length; i++) {\n filled[weekdays[i]] = 1\n }\n for (let k = 0; k < DAYS_IN_WEEK; k++) {\n let skip = 1\n for (let j = 1; j < DAYS_IN_WEEK; j++) {\n const next = (k + j) % DAYS_IN_WEEK\n if (filled[next]) {\n break\n }\n skip++\n }\n skips[k] = filled[k] * skip\n }\n\n return skips\n}\n\nexport function timestampToDate (timestamp: CalendarTimestamp): Date {\n const time = `${padNumber(timestamp.hour, 2)}:${padNumber(timestamp.minute, 2)}`\n const date = timestamp.date\n\n return new Date(`${date}T${time}:00+00:00`)\n}\n\nexport function createDayList (\n start: CalendarTimestamp,\n end: CalendarTimestamp,\n now: CalendarTimestamp,\n weekdaySkips: number[],\n max = 42,\n min = 0\n): CalendarTimestamp[] {\n const stop = getDayIdentifier(end)\n const days: CalendarTimestamp[] = []\n let current = copyTimestamp(start)\n let currentIdentifier = 0\n let stopped = currentIdentifier === stop\n\n if (stop < getDayIdentifier(start)) {\n throw new Error('End date is earlier than start date.')\n }\n\n while ((!stopped || days.length < min) && days.length < max) {\n currentIdentifier = getDayIdentifier(current)\n stopped = stopped || currentIdentifier === stop\n if (weekdaySkips[current.weekday] === 0) {\n current = nextDay(current)\n continue\n }\n const day = copyTimestamp(current)\n updateFormatted(day)\n updateRelative(day, now)\n days.push(day)\n current = relativeDays(current, nextDay, weekdaySkips[current.weekday])\n }\n\n if (!days.length) throw new Error('No dates found using specified start date, end date, and weekdays.')\n\n return days\n}\n\nexport function createIntervalList (timestamp: CalendarTimestamp, first: number,\n minutes: number, count: number, now?: CalendarTimestamp): CalendarTimestamp[] {\n const intervals: CalendarTimestamp[] = []\n\n for (let i = 0; i < count; i++) {\n const mins = first + (i * minutes)\n const int = copyTimestamp(timestamp)\n intervals.push(updateMinutes(int, mins, now))\n }\n\n return intervals\n}\n\nexport function createNativeLocaleFormatter (locale: string, getOptions: CalendarTimestampFormatOptions): CalendarFormatter {\n const emptyFormatter: CalendarFormatter = (_t, _s) => ''\n\n if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') {\n return emptyFormatter\n }\n\n return (timestamp, short) => {\n try {\n const intlFormatter = new Intl.DateTimeFormat(locale || undefined, getOptions(timestamp, short))\n\n return intlFormatter.format(timestampToDate(timestamp))\n } catch (e) {\n return ''\n }\n }\n}\n","// Components\nimport VDatePickerTitle from './VDatePickerTitle'\nimport VDatePickerHeader from './VDatePickerHeader'\nimport VDatePickerDateTable from './VDatePickerDateTable'\nimport VDatePickerMonthTable from './VDatePickerMonthTable'\nimport VDatePickerYears from './VDatePickerYears'\n\n// Mixins\nimport Localable from '../../mixins/localable'\nimport Picker from '../../mixins/picker'\n\n// Utils\nimport isDateAllowed from './util/isDateAllowed'\nimport mixins from '../../util/mixins'\nimport { wrapInArray } from '../../util/helpers'\nimport { daysInMonth } from '../VCalendar/util/timestamp'\nimport { consoleWarn } from '../../util/console'\nimport {\n createItemTypeListeners,\n createNativeLocaleFormatter,\n pad,\n sanitizeDateString,\n} from './util'\n\n// Types\nimport {\n PropType,\n PropValidator,\n} from 'vue/types/options'\nimport { VNode } from 'vue'\nimport {\n DatePickerFormatter,\n DatePickerMultipleFormatter,\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEvents,\n DatePickerType,\n} from 'vuetify/types'\n\ntype DatePickerValue = string | string[] | undefined\ninterface Formatters {\n year: DatePickerFormatter\n titleDate: DatePickerFormatter | DatePickerMultipleFormatter\n}\n\ntype ActivePicker = 'DATE' | 'MONTH' | 'YEAR';\n\nexport default mixins(\n Localable,\n Picker,\n/* @vue/component */\n).extend({\n name: 'v-date-picker',\n\n props: {\n activePicker: String as PropType,\n allowedDates: Function as PropType,\n // Function formatting the day in date picker table\n dayFormat: Function as PropType,\n disabled: Boolean,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator,\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n // Function formatting the tableDate in the day/month table header\n headerDateFormat: Function as PropType,\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n max: String,\n min: String,\n // Function formatting month in the months table\n monthFormat: Function as PropType,\n multiple: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n nextMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextMonthAriaLabel',\n },\n nextYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextYearAriaLabel',\n },\n pickerDate: String,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n prevMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevMonthAriaLabel',\n },\n prevYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevYearAriaLabel',\n },\n range: Boolean,\n reactive: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n showCurrent: {\n type: [Boolean, String],\n default: true,\n },\n selectedItemsText: {\n type: String,\n default: '$vuetify.datePicker.itemsSelected',\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n // Function formatting currently selected date in the picker title\n titleDateFormat: Function as PropType,\n type: {\n type: String,\n default: 'date',\n validator: (type: any) => ['date', 'month'].includes(type), // TODO: year\n } as PropValidator,\n value: [Array, String] as PropType,\n weekdayFormat: Function as PropType,\n // Function formatting the year in table header and pickup title\n yearFormat: Function as PropType,\n yearIcon: String,\n },\n\n data () {\n const now = new Date()\n return {\n internalActivePicker: this.type.toUpperCase(),\n inputDay: null as number | null,\n inputMonth: null as number | null,\n inputYear: null as number | null,\n isReversing: false,\n now,\n // tableDate is a string in 'YYYY' / 'YYYY-M' format (leading zero for month is not required)\n tableDate: (() => {\n if (this.pickerDate) {\n return this.pickerDate\n }\n\n const multipleValue = wrapInArray(this.value)\n const date = multipleValue[multipleValue.length - 1] ||\n (typeof this.showCurrent === 'string' ? this.showCurrent : `${now.getFullYear()}-${now.getMonth() + 1}`)\n return sanitizeDateString(date as string, this.type === 'date' ? 'month' : 'year')\n })(),\n }\n },\n\n computed: {\n multipleValue (): string[] {\n return wrapInArray(this.value)\n },\n isMultiple (): boolean {\n return this.multiple || this.range\n },\n lastValue (): string | null {\n return this.isMultiple ? this.multipleValue[this.multipleValue.length - 1] : (this.value as string | null)\n },\n selectedMonths (): string | string[] | undefined {\n if (!this.value || this.type === 'month') {\n return this.value\n } else if (this.isMultiple) {\n return this.multipleValue.map(val => val.substr(0, 7))\n } else {\n return (this.value as string).substr(0, 7)\n }\n },\n current (): string | null {\n if (this.showCurrent === true) {\n return sanitizeDateString(`${this.now.getFullYear()}-${this.now.getMonth() + 1}-${this.now.getDate()}`, this.type)\n }\n\n return this.showCurrent || null\n },\n inputDate (): string {\n return this.type === 'date'\n ? `${this.inputYear}-${pad(this.inputMonth! + 1)}-${pad(this.inputDay!)}`\n : `${this.inputYear}-${pad(this.inputMonth! + 1)}`\n },\n tableMonth (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[1]) - 1\n },\n tableYear (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[0])\n },\n minMonth (): string | null {\n return this.min ? sanitizeDateString(this.min, 'month') : null\n },\n maxMonth (): string | null {\n return this.max ? sanitizeDateString(this.max, 'month') : null\n },\n minYear (): string | null {\n return this.min ? sanitizeDateString(this.min, 'year') : null\n },\n maxYear (): string | null {\n return this.max ? sanitizeDateString(this.max, 'year') : null\n },\n formatters (): Formatters {\n return {\n year: this.yearFormat || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 }),\n titleDate: this.titleDateFormat ||\n (this.isMultiple ? this.defaultTitleMultipleDateFormatter : this.defaultTitleDateFormatter),\n }\n },\n defaultTitleMultipleDateFormatter (): DatePickerMultipleFormatter {\n return dates => {\n if (!dates.length) {\n return '-'\n }\n\n if (dates.length === 1) {\n return this.defaultTitleDateFormatter(dates[0])\n }\n\n return this.$vuetify.lang.t(this.selectedItemsText, dates.length)\n }\n },\n defaultTitleDateFormatter (): DatePickerFormatter {\n const titleFormats = {\n year: { year: 'numeric', timeZone: 'UTC' },\n month: { month: 'long', timeZone: 'UTC' },\n date: { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' },\n } as const\n\n const titleDateFormatter = createNativeLocaleFormatter(this.currentLocale, titleFormats[this.type], {\n start: 0,\n length: { date: 10, month: 7, year: 4 }[this.type],\n })\n\n const landscapeFormatter = (date: string) => titleDateFormatter(date)\n .replace(/([^\\d\\s])([\\d])/g, (match, nonDigit, digit) => `${nonDigit} ${digit}`)\n .replace(', ', ',
')\n\n return this.landscape ? landscapeFormatter : titleDateFormatter\n },\n },\n\n watch: {\n internalActivePicker: {\n immediate: true,\n handler (val: ActivePicker) {\n this.$emit('update:active-picker', val)\n },\n },\n activePicker (val: ActivePicker) {\n this.internalActivePicker = val\n },\n tableDate (val: string, prev: string) {\n // Make a ISO 8601 strings from val and prev for comparision, otherwise it will incorrectly\n // compare for example '2000-9' and '2000-10'\n const sanitizeType = this.type === 'month' ? 'year' : 'month'\n this.isReversing = sanitizeDateString(val, sanitizeType) < sanitizeDateString(prev, sanitizeType)\n this.$emit('update:picker-date', val)\n },\n pickerDate (val: string | null) {\n if (val) {\n this.tableDate = val\n } else if (this.lastValue && this.type === 'date') {\n this.tableDate = sanitizeDateString(this.lastValue, 'month')\n } else if (this.lastValue && this.type === 'month') {\n this.tableDate = sanitizeDateString(this.lastValue, 'year')\n }\n },\n value (newValue: DatePickerValue, oldValue: DatePickerValue) {\n this.checkMultipleProp()\n this.setInputDate()\n\n if (\n (!this.isMultiple && this.value && !this.pickerDate) ||\n (this.isMultiple && this.multipleValue.length && (!oldValue || !oldValue.length) && !this.pickerDate)\n ) {\n this.tableDate = sanitizeDateString(this.inputDate, this.type === 'month' ? 'year' : 'month')\n }\n },\n type (type: DatePickerType) {\n this.internalActivePicker = type.toUpperCase()\n\n if (this.value && this.value.length) {\n const output = this.multipleValue\n .map((val: string) => sanitizeDateString(val, type))\n .filter(this.isDateAllowed)\n this.$emit('input', this.isMultiple ? output : output[0])\n }\n },\n },\n\n created () {\n this.checkMultipleProp()\n\n if (this.pickerDate !== this.tableDate) {\n this.$emit('update:picker-date', this.tableDate)\n }\n this.setInputDate()\n },\n\n methods: {\n emitInput (newInput: string) {\n if (this.range) {\n if (this.multipleValue.length !== 1) {\n this.$emit('input', [newInput])\n } else {\n const output = [this.multipleValue[0], newInput]\n this.$emit('input', output)\n this.$emit('change', output)\n }\n return\n }\n\n const output = this.multiple\n ? (\n this.multipleValue.indexOf(newInput) === -1\n ? this.multipleValue.concat([newInput])\n : this.multipleValue.filter(x => x !== newInput)\n )\n : newInput\n\n this.$emit('input', output)\n this.multiple || this.$emit('change', newInput)\n },\n checkMultipleProp () {\n if (this.value == null) return\n const valueType = this.value.constructor.name\n const expected = this.isMultiple ? 'Array' : 'String'\n if (valueType !== expected) {\n consoleWarn(`Value must be ${this.isMultiple ? 'an' : 'a'} ${expected}, got ${valueType}`, this)\n }\n },\n isDateAllowed (value: string): boolean {\n return isDateAllowed(value, this.min, this.max, this.allowedDates)\n },\n yearClick (value: number) {\n this.inputYear = value\n if (this.type === 'month') {\n this.tableDate = `${value}`\n } else {\n this.tableDate = `${value}-${pad((this.tableMonth || 0) + 1)}`\n }\n this.internalActivePicker = 'MONTH'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n },\n monthClick (value: string) {\n const [year, month] = value.split('-')\n\n this.inputYear = parseInt(year, 10)\n this.inputMonth = parseInt(month, 10) - 1\n\n if (this.type === 'date') {\n if (this.inputDay) {\n this.inputDay = Math.min(this.inputDay, daysInMonth(this.inputYear, this.inputMonth + 1))\n }\n\n this.tableDate = value\n this.internalActivePicker = 'DATE'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n } else {\n this.emitInput(this.inputDate)\n }\n },\n dateClick (value: string) {\n const [year, month, day] = value.split('-')\n\n this.inputYear = parseInt(year, 10)\n this.inputMonth = parseInt(month, 10) - 1\n this.inputDay = parseInt(day, 10)\n\n this.emitInput(this.inputDate)\n },\n genPickerTitle (): VNode {\n return this.$createElement(VDatePickerTitle, {\n props: {\n date: this.value ? (this.formatters.titleDate as (value: any) => string)(this.isMultiple ? this.multipleValue : this.value) : '',\n disabled: this.disabled,\n readonly: this.readonly,\n selectingYear: this.internalActivePicker === 'YEAR',\n year: this.formatters.year(this.multipleValue.length ? `${this.inputYear}` : this.tableDate),\n yearIcon: this.yearIcon,\n value: this.multipleValue[0],\n },\n slot: 'title',\n on: {\n 'update:selecting-year': (value: boolean) => this.internalActivePicker = value ? 'YEAR' : this.type.toUpperCase(),\n },\n })\n },\n genTableHeader (): VNode {\n return this.$createElement(VDatePickerHeader, {\n props: {\n nextIcon: this.nextIcon,\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n format: this.headerDateFormat,\n light: this.light,\n locale: this.locale,\n min: this.internalActivePicker === 'DATE' ? this.minMonth : this.minYear,\n max: this.internalActivePicker === 'DATE' ? this.maxMonth : this.maxYear,\n nextAriaLabel: this.internalActivePicker === 'DATE' ? this.nextMonthAriaLabel : this.nextYearAriaLabel,\n prevAriaLabel: this.internalActivePicker === 'DATE' ? this.prevMonthAriaLabel : this.prevYearAriaLabel,\n prevIcon: this.prevIcon,\n readonly: this.readonly,\n value: this.internalActivePicker === 'DATE' ? `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}` : `${pad(this.tableYear, 4)}`,\n },\n on: {\n toggle: () => this.internalActivePicker = (this.internalActivePicker === 'DATE' ? 'MONTH' : 'YEAR'),\n input: (value: string) => this.tableDate = value,\n },\n })\n },\n genDateTable (): VNode {\n return this.$createElement(VDatePickerDateTable, {\n props: {\n allowedDates: this.allowedDates,\n color: this.color,\n current: this.current,\n dark: this.dark,\n disabled: this.disabled,\n events: this.events,\n eventColor: this.eventColor,\n firstDayOfWeek: this.firstDayOfWeek,\n format: this.dayFormat,\n light: this.light,\n locale: this.locale,\n localeFirstDayOfYear: this.localeFirstDayOfYear,\n min: this.min,\n max: this.max,\n range: this.range,\n readonly: this.readonly,\n scrollable: this.scrollable,\n showAdjacentMonths: this.showAdjacentMonths,\n showWeek: this.showWeek,\n tableDate: `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}`,\n value: this.value,\n weekdayFormat: this.weekdayFormat,\n },\n ref: 'table',\n on: {\n input: this.dateClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':date'),\n },\n })\n },\n genMonthTable (): VNode {\n return this.$createElement(VDatePickerMonthTable, {\n props: {\n allowedDates: this.type === 'month' ? this.allowedDates : null,\n color: this.color,\n current: this.current ? sanitizeDateString(this.current, 'month') : null,\n dark: this.dark,\n disabled: this.disabled,\n events: this.type === 'month' ? this.events : null,\n eventColor: this.type === 'month' ? this.eventColor : null,\n format: this.monthFormat,\n light: this.light,\n locale: this.locale,\n min: this.minMonth,\n max: this.maxMonth,\n range: this.range,\n readonly: this.readonly && this.type === 'month',\n scrollable: this.scrollable,\n value: this.selectedMonths,\n tableDate: `${pad(this.tableYear, 4)}`,\n },\n ref: 'table',\n on: {\n input: this.monthClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':month'),\n },\n })\n },\n genYears (): VNode {\n return this.$createElement(VDatePickerYears, {\n props: {\n color: this.color,\n format: this.yearFormat,\n locale: this.locale,\n min: this.minYear,\n max: this.maxYear,\n value: this.tableYear,\n },\n on: {\n input: this.yearClick,\n ...createItemTypeListeners(this, ':year'),\n },\n })\n },\n genPickerBody (): VNode {\n const children = this.internalActivePicker === 'YEAR' ? [\n this.genYears(),\n ] : [\n this.genTableHeader(),\n this.internalActivePicker === 'DATE' ? this.genDateTable() : this.genMonthTable(),\n ]\n\n return this.$createElement('div', {\n key: this.internalActivePicker,\n }, children)\n },\n setInputDate () {\n if (this.lastValue) {\n const array = this.lastValue.split('-')\n this.inputYear = parseInt(array[0], 10)\n this.inputMonth = parseInt(array[1], 10) - 1\n if (this.type === 'date') {\n this.inputDay = parseInt(array[2], 10)\n }\n } else {\n this.inputYear = this.inputYear || this.now.getFullYear()\n this.inputMonth = this.inputMonth == null ? this.inputMonth : this.now.getMonth()\n this.inputDay = this.inputDay || this.now.getDate()\n }\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--date')\n },\n})\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VRadioGroup.sass'\n\n// Extensions\nimport VInput from '../VInput'\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { PropType } from 'vue'\n\nconst baseMixins = mixins(\n BaseItemGroup,\n VInput\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-radio-group',\n\n provide () {\n return {\n radioGroup: this,\n }\n },\n\n props: {\n column: {\n type: Boolean,\n default: true,\n },\n height: {\n type: [Number, String],\n default: 'auto',\n },\n name: String,\n row: Boolean,\n // If no value set on VRadio\n // will match valueComparator\n // force default to null\n value: null as unknown as PropType,\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--radio-group': true,\n 'v-input--radio-group--column': this.column && !this.row,\n 'v-input--radio-group--row': this.row,\n }\n },\n },\n\n methods: {\n genDefaultSlot () {\n return this.$createElement('div', {\n staticClass: 'v-input--radio-group__input',\n attrs: {\n id: this.id,\n role: 'radiogroup',\n 'aria-labelledby': this.computedId,\n },\n }, VInput.options.methods.genDefaultSlot.call(this))\n },\n genInputSlot () {\n const render = VInput.options.methods.genInputSlot.call(this)\n\n delete render.data!.on!.click\n\n return render\n },\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return null\n\n label.data!.attrs!.id = this.computedId\n // WAI considers this an orphaned label\n delete label.data!.attrs!.for\n label.tag = 'legend'\n\n return label\n },\n onClick: BaseItemGroup.options.methods.onClick,\n },\n\n render (h) {\n const vnode = VInput.options.render.call(this, h)\n\n this._b(vnode.data!, 'div', this.attrs$)\n\n return vnode\n },\n})\n","import './VPicker.sass'\nimport '../VCard/VCard.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Elevatable,\n Themeable\n).extend({\n name: 'v-picker',\n\n props: {\n flat: Boolean,\n fullWidth: Boolean,\n landscape: Boolean,\n noTitle: Boolean,\n transition: {\n type: String,\n default: 'fade-transition',\n },\n width: {\n type: [Number, String],\n default: 290,\n },\n },\n\n computed: {\n computedTitleColor (): string | false {\n const defaultTitleColor = this.isDark ? false : (this.color || 'primary')\n return this.color || defaultTitleColor\n },\n },\n\n methods: {\n genTitle () {\n return this.$createElement('div', this.setBackgroundColor(this.computedTitleColor, {\n staticClass: 'v-picker__title',\n class: {\n 'v-picker__title--landscape': this.landscape,\n },\n }), this.$slots.title)\n },\n genBodyTransition () {\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, this.$slots.default)\n },\n genBody () {\n return this.$createElement('div', {\n staticClass: 'v-picker__body',\n class: {\n 'v-picker__body--no-title': this.noTitle,\n ...this.themeClasses,\n },\n style: this.fullWidth ? undefined : {\n width: convertToUnit(this.width),\n },\n }, [\n this.genBodyTransition(),\n ])\n },\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-picker__actions v-card__actions',\n class: {\n 'v-picker__actions--no-title': this.noTitle,\n },\n }, this.$slots.actions)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-picker v-card',\n class: {\n 'v-picker--flat': this.flat,\n 'v-picker--landscape': this.landscape,\n 'v-picker--full-width': this.fullWidth,\n ...this.themeClasses,\n ...this.elevationClasses,\n },\n }, [\n this.$slots.title ? this.genTitle() : null,\n this.genBody(),\n this.$slots.actions ? this.genActions() : null,\n ])\n },\n})\n","import VPicker from './VPicker'\n\nexport { VPicker }\nexport default VPicker\n","// Components\nimport VPicker from '../../components/VPicker'\n\n// Mixins\nimport Colorable from '../colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Colorable,\n Elevatable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'picker',\n\n props: {\n flat: Boolean,\n fullWidth: Boolean,\n headerColor: String,\n landscape: Boolean,\n noTitle: Boolean,\n width: {\n type: [Number, String],\n default: 290,\n },\n },\n\n methods: {\n genPickerTitle (): VNode | null {\n return null\n },\n genPickerBody (): VNode | null {\n return null\n },\n genPickerActionsSlot () {\n return this.$scopedSlots.default ? this.$scopedSlots.default({\n save: (this as any).save,\n cancel: (this as any).cancel,\n }) : this.$slots.default\n },\n genPicker (staticClass: string) {\n const children: VNode[] = []\n\n if (!this.noTitle) {\n const title = this.genPickerTitle()\n title && children.push(title)\n }\n\n const body = this.genPickerBody()\n body && children.push(body)\n\n children.push(this.$createElement('template', { slot: 'actions' }, [this.genPickerActionsSlot()]))\n\n return this.$createElement(VPicker, {\n staticClass,\n props: {\n color: this.headerColor || this.color,\n dark: this.dark,\n elevation: this.elevation,\n flat: this.flat,\n fullWidth: this.fullWidth,\n landscape: this.landscape,\n light: this.light,\n width: this.width,\n noTitle: this.noTitle,\n },\n }, children)\n },\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","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","const padStart = (string: number | string, targetLength: number, padString: string) => {\n targetLength = targetLength >> 0\n string = String(string)\n padString = String(padString)\n if (string.length > targetLength) {\n return String(string)\n }\n\n targetLength = targetLength - string.length\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length)\n }\n return padString.slice(0, targetLength) + String(string)\n}\n\nexport default (n: string | number, length = 2) => padStart(n, length, '0')\n","// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Comparable,\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.valueComparator(this.internalValue, v)\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value === undefined\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => this.valueComparator(val, value))\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = this.valueComparator(this.internalValue, value)\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h(this.tag, this.genData(), this.$slots.default)\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionList.vue?vue&type=style&index=0&id=a116bb5a&prod&scoped=true&lang=scss&\"","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","// Styles\nimport './VRadio.sass'\n\n// Components\nimport VRadioGroup from './VRadioGroup'\nimport VLabel from '../VLabel'\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Rippleable from '../../mixins/rippleable'\nimport Themeable from '../../mixins/themeable'\nimport Selectable, { prevent } from '../../mixins/selectable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { mergeListeners } from '../../util/mergeData'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Colorable,\n Rippleable,\n GroupableFactory('radioGroup'),\n Themeable\n)\n\ninterface options extends InstanceType {\n radioGroup: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-radio',\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n id: String,\n label: String,\n name: String,\n offIcon: {\n type: String,\n default: '$radioOff',\n },\n onIcon: {\n type: String,\n default: '$radioOn',\n },\n readonly: Boolean,\n value: {\n default: null,\n },\n },\n\n data: () => ({\n isFocused: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-radio--is-disabled': this.isDisabled,\n 'v-radio--is-focused': this.isFocused,\n ...this.themeClasses,\n ...this.groupClasses,\n }\n },\n computedColor (): string | undefined {\n if (this.isDisabled) return undefined\n return Selectable.options.computed.computedColor.call(this)\n },\n computedIcon (): string {\n return this.isActive\n ? this.onIcon\n : this.offIcon\n },\n computedId (): string {\n return VInput.options.computed.computedId.call(this)\n },\n hasLabel: VInput.options.computed.hasLabel,\n hasState (): boolean {\n return (this.radioGroup || {}).hasState\n },\n isDisabled (): boolean {\n return this.disabled || (\n !!this.radioGroup &&\n this.radioGroup.isDisabled\n )\n },\n isReadonly (): boolean {\n return this.readonly || (\n !!this.radioGroup &&\n this.radioGroup.isReadonly\n )\n },\n computedName (): string {\n if (this.name || !this.radioGroup) {\n return this.name\n }\n\n return this.radioGroup.name || `radio-${this.radioGroup._uid}`\n },\n rippleState (): string | undefined {\n return Selectable.options.computed.rippleState.call(this)\n },\n validationState (): string | undefined {\n return (this.radioGroup || {}).validationState || this.computedColor\n },\n },\n\n methods: {\n genInput (args: any) {\n // We can't actually use the mixin directly because\n // it's made for standalone components, but its\n // genInput method is exactly what we need\n return Selectable.options.methods.genInput.call(this, 'radio', args)\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n on: {\n // Label shouldn't cause the input to focus\n click: prevent,\n },\n attrs: {\n for: this.computedId,\n },\n props: {\n color: this.validationState,\n focused: this.hasState,\n },\n }, getSlot(this, 'label') || this.label)\n },\n genRadio () {\n const { title, ...radioAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.$createElement(VIcon, this.setTextColor(this.validationState, {\n props: {\n dense: this.radioGroup && this.radioGroup.dense,\n },\n }), this.computedIcon),\n this.genInput({\n name: this.computedName,\n value: this.value,\n ...radioAttrs,\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n onFocus (e: Event) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: Event) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n onChange () {\n if (this.isDisabled || this.isReadonly || this.isActive) return\n\n this.toggle()\n },\n onKeydown: () => {}, // Override default with noop\n },\n\n render (h): VNode {\n const data: VNodeData = {\n staticClass: 'v-radio',\n class: this.classes,\n on: mergeListeners({\n click: this.onChange,\n }, this.listeners$),\n attrs: { title: this.attrs$.title },\n }\n\n return h('div', data, [\n this.genRadio(),\n this.genLabel(),\n ])\n },\n})\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\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 Vue from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { deepEqual } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'comparable',\n props: {\n valueComparator: {\n type: Function,\n default: deepEqual,\n } as PropValidator,\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","import { attachedRoot } from '../../util/dom'\nimport { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirective extends VNodeDirective {\n value?: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: PointerEvent, binding: ClickOutsideDirective): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value!.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n inserted (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as PointerEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: true,\n }\n }\n\n el._clickOutside[vnode.context!._uid] = {\n onClick,\n onMousedown,\n }\n },\n\n unbind (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[vnode.context!._uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[vnode.context!._uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[vnode.context!._uid]\n },\n}\n\nexport default ClickOutside\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","// Types\nimport { VNode } from 'vue'\n\n// Extensions\nimport VMain from '../VMain/VMain'\nimport { deprecate } from '../../util/console'\n\n/* @vue/component */\nexport default VMain.extend({\n name: 'v-main',\n\n created () {\n deprecate('v-content', 'v-main', this)\n },\n\n render (h): VNode {\n // Add the legacy class names\n const node = VMain.options.render.call(this, h)\n\n node.data!.staticClass += ' v-content'\n node.children![0]!.data!.staticClass += ' v-content__wrap'\n\n return h(node.tag, node.data, node.children)\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-content',[_c('div',{staticClass:\"container\"},[_c('v-row',{staticClass:\"grey lighten-5\",staticStyle:{\"height\":\"300px\"},attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"ma-3 pa-6\",attrs:{\"outlined\":\"\",\"tile\":\"\"}},[_c('v-toolbar',{staticClass:\"darken-1\",attrs:{\"dark\":\"\",\"color\":\"blue\"}},[_c('v-toolbar-title',[_vm._v(\" \"+_vm._s(_vm.index +1)+\" out of \"+_vm._s(_vm.totalData)+\" Questions \")]),_c('v-spacer'),_c('v-toolbar-title',[_vm._v(\" Survey \")]),_c('v-spacer'),_c('v-toolbar-items',[_c('v-btn',{attrs:{\"dark\":\"\",\"text\":\"\"},on:{\"click\":_vm.loadItems}},[_c('v-icon',[_vm._v(\"mdi-refresh\")])],1)],1)],1),_c('v-card-text',[_c('h2',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.questionData[_vm.index].questionText)+\" \")]),(_vm.questionData[_vm.index].questionType === 'multiple')?[_c('v-row',{attrs:{\"no-gutters\":\"\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"3\"}},[_c('v-checkbox',{staticClass:\"mx-2\",attrs:{\"label\":\"Select All\"},on:{\"change\":function($event){return _vm.selectAll(_vm.questionData[_vm.index].choices)}},model:{value:(_vm.selectAllOptions[_vm.index]),callback:function ($$v) {_vm.$set(_vm.selectAllOptions, _vm.index, $$v)},expression:\"selectAllOptions[index]\"}})],1),_vm._l((_vm.questionData[_vm.index].choices),function(choice,key){return _c('v-col',{key:key,attrs:{\"cols\":\"12\",\"sm\":\"3\"}},[_c('v-checkbox',{staticClass:\"mx-2\",attrs:{\"label\":choice.choiceText,\"value\":choice},on:{\"change\":function($event){return _vm.individualOptionSelect()}},model:{value:(_vm.submitData[_vm.index].Answers),callback:function ($$v) {_vm.$set(_vm.submitData[_vm.index], \"Answers\", $$v)},expression:\"submitData[index].Answers\"}})],1)})],2)]:_vm._e(),(_vm.questionData[_vm.index].questionType === 'single')?[_c('v-row',{attrs:{\"no-gutters\":\"\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-radio-group',{attrs:{\"row\":\"\"},model:{value:(_vm.submitData[_vm.index].Answers[0]),callback:function ($$v) {_vm.$set(_vm.submitData[_vm.index].Answers, 0, $$v)},expression:\"submitData[index].Answers[0]\"}},_vm._l((_vm.questionData[_vm.index].choices),function(choice,key){return _c('v-radio',{key:key,staticClass:\"pa-3\",attrs:{\"label\":choice.choiceText,\"value\":choice}})}),1)],1)],1)]:_vm._e(),(_vm.questionData[_vm.index].questionType === 'text')?[_c('v-row',{attrs:{\"no-gutters\":\"\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"name\":\"input-7-1\",\"label\":\"Type Your Answer\",\"value\":\"\"},model:{value:(_vm.submitData[_vm.index].Answers[0].choiceText),callback:function ($$v) {_vm.$set(_vm.submitData[_vm.index].Answers[0], \"choiceText\", $$v)},expression:\"submitData[index].Answers[0].choiceText\"}})],1)],1)]:_vm._e(),(_vm.questionData[_vm.index].questionType === 'date')?[_c('v-row',{attrs:{\"no-gutters\":\"\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-menu',{attrs:{\"nudge-right\":40,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-text-field',_vm._g({attrs:{\"label\":\"Choose Date\",\"clearable\":\"\",\"prepend-icon\":\"event\",\"readonly\":\"\"},model:{value:(_vm.submitData[_vm.index].Answers[0].choiceText),callback:function ($$v) {_vm.$set(_vm.submitData[_vm.index].Answers[0], \"choiceText\", $$v)},expression:\"submitData[index].Answers[0].choiceText\"}},on))]}}],null,false,1504237734),model:{value:(_vm.snackbar.dateMenu),callback:function ($$v) {_vm.$set(_vm.snackbar, \"dateMenu\", $$v)},expression:\"snackbar.dateMenu\"}},[_c('v-date-picker',{model:{value:(_vm.submitData[_vm.index].Answers[0].choiceText),callback:function ($$v) {_vm.$set(_vm.submitData[_vm.index].Answers[0], \"choiceText\", $$v)},expression:\"submitData[index].Answers[0].choiceText\"}})],1)],1)],1)]:_vm._e()],2),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"error\",\"disabled\":_vm.invalidIndexLower},on:{\"click\":_vm.decreaseIndex}},[_vm._v(\"Previous\")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.invalidIndexUpper},on:{\"click\":_vm.increaseIndex}},[_vm._v(\"Next \")]),_c('v-btn',{attrs:{\"color\":\"success\",\"disabled\":!_vm.invalidIndexUpper},on:{\"click\":_vm.submit}},[_vm._v(\"Submit \")]),_c('v-spacer')],1)],1)],1)],1),_c('v-snackbar',{attrs:{\"color\":_vm.snackbar.color,\"timeout\":_vm.snackbar.timeout,\"top\":\"\"},model:{value:(_vm.snackbar.snackbar),callback:function ($$v) {_vm.$set(_vm.snackbar, \"snackbar\", $$v)},expression:\"snackbar.snackbar\"}},[_vm._v(\" \"+_vm._s(_vm.snackbar.text)+\" \"),_c('v-btn',{attrs:{\"dark\":\"\",\"text\":\"\"},on:{\"click\":function($event){_vm.snackbar.snackbar = false}}},[_vm._v(\" Close \")])],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./QuestionList.vue?vue&type=template&id=a116bb5a&scoped=true&\"\nimport script from \"./QuestionList.vue?vue&type=script&lang=js&\"\nexport * from \"./QuestionList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./QuestionList.vue?vue&type=style&index=0&id=a116bb5a&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a116bb5a\",\n null\n \n)\n\nexport default component.exports","// Styles\nimport './VTextarea.sass'\n\n// Extensions\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport Vue from 'vue'\n\ninterface options extends Vue {\n $refs: {\n input: HTMLTextAreaElement\n }\n}\n\nconst baseMixins = mixins\n>(\n VTextField\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-textarea',\n\n props: {\n autoGrow: Boolean,\n noResize: Boolean,\n rowHeight: {\n type: [Number, String],\n default: 24,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseInt(v, 10)),\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-textarea': true,\n 'v-textarea--auto-grow': this.autoGrow,\n 'v-textarea--no-resize': this.noResizeHandle,\n ...VTextField.options.computed.classes.call(this),\n }\n },\n noResizeHandle (): boolean {\n return this.noResize || this.autoGrow\n },\n },\n\n watch: {\n autoGrow (val: boolean) {\n this.$nextTick(() => {\n val\n ? this.calculateInputHeight()\n : this.$refs.input?.style.removeProperty('height')\n })\n },\n lazyValue () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n rowHeight () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n },\n\n mounted () {\n setTimeout(() => {\n this.autoGrow && this.calculateInputHeight()\n }, 0)\n },\n\n methods: {\n calculateInputHeight () {\n const input = this.$refs.input\n if (!input) return\n\n input.style.height = '0'\n const height = input.scrollHeight\n const minHeight = parseInt(this.rows, 10) * parseFloat(this.rowHeight)\n // This has to be done ASAP, waiting for Vue\n // to update the DOM causes ugly layout jumping\n input.style.height = Math.max(minHeight, height) + 'px'\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.tag = 'textarea'\n delete input.data!.attrs!.type\n input.data!.attrs!.rows = this.rows\n\n return input\n },\n onInput (e: Event) {\n VTextField.options.methods.onInput.call(this, e)\n this.autoGrow && this.calculateInputHeight()\n },\n onKeyDown (e: KeyboardEvent) {\n // Prevents closing of a\n // dialog when pressing\n // enter\n if (this.isFocused && e.keyCode === 13) {\n e.stopPropagation()\n }\n\n this.$emit('keydown', e)\n },\n },\n})\n","// Styles\nimport './VCheckbox.sass'\nimport '../../styles/components/_selection-controls.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-checkbox',\n\n props: {\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n },\n\n data () {\n return {\n inputIndeterminate: this.indeterminate,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls': true,\n 'v-input--checkbox': true,\n 'v-input--indeterminate': this.inputIndeterminate,\n }\n },\n computedIcon (): string {\n if (this.inputIndeterminate) {\n return this.indeterminateIcon\n } else if (this.isActive) {\n return this.onIcon\n } else {\n return this.offIcon\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.isDisabled && !this.inputIndeterminate) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n },\n\n watch: {\n indeterminate (val) {\n // https://github.com/vuetifyjs/vuetify/issues/8270\n this.$nextTick(() => (this.inputIndeterminate = val))\n },\n inputIndeterminate (val) {\n this.$emit('update:indeterminate', val)\n },\n isActive () {\n if (!this.indeterminate) return\n this.inputIndeterminate = false\n },\n },\n\n methods: {\n genCheckbox () {\n const { title, ...checkboxAttrs } = this.attrs$\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.$createElement(VIcon, this.setTextColor(this.validationState, {\n props: {\n dense: this.dense,\n dark: this.dark,\n light: this.light,\n },\n }), this.computedIcon),\n this.genInput('checkbox', {\n ...checkboxAttrs,\n 'aria-checked': this.inputIndeterminate\n ? 'mixed'\n : this.isActive.toString(),\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n genDefaultSlot () {\n return [\n this.genCheckbox(),\n this.genLabel(),\n ]\n },\n },\n})\n","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","import Vue from 'vue'\n\n/**\n * SSRBootable\n *\n * @mixin\n *\n * Used in layout components (drawer, toolbar, content)\n * to avoid an entry animation when using SSR\n */\nexport default Vue.extend({\n name: 'ssr-bootable',\n\n data: () => ({\n isBooted: false,\n }),\n\n mounted () {\n // Use setAttribute instead of dataset\n // because dataset does not work well\n // with unit tests\n window.requestAnimationFrame(() => {\n this.$el.setAttribute('data-booted', 'true')\n this.isBooted = true\n })\n },\n})\n","// Mixins\nimport Colorable from '../colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { kebabCase } from '../../util/helpers'\n\n// Types\nimport { VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable\n).extend({\n methods: {\n genPickerButton (\n prop: string,\n value: any,\n content: VNodeChildren,\n readonly = false,\n staticClass = ''\n ) {\n const active = (this as any)[prop] === value\n const click = (event: Event) => {\n event.stopPropagation()\n this.$emit(`update:${kebabCase(prop)}`, value)\n }\n\n return this.$createElement('div', {\n staticClass: `v-picker__title__btn ${staticClass}`.trim(),\n class: {\n 'v-picker__title__btn--active': active,\n 'v-picker__title__btn--readonly': readonly,\n },\n on: (active || readonly) ? undefined : { click },\n }, Array.isArray(content) ? content : [content])\n },\n },\n})\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Returnable,\n Roundable,\n Themeable,\n Menuable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n const scrollTop = this.$refs.content.scrollTop\n const contentHeight = this.$refs.content.clientHeight\n\n if (scrollTop > tile.offsetTop - 8) {\n goTo(tile.offsetTop - tile.clientHeight, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n }\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.end) {\n this.lastTile()\n } else if (e.keyCode === keyCodes.home) {\n this.firstTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = this.onKeyDown\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n })\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n attrs: {\n ...this.getScopeIdAttrs(),\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n },\n style: this.styles,\n directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (this.$listeners.scroll) {\n options.on = options.on || {}\n options.on.scroll = this.$listeners.scroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'returnable',\n\n props: {\n returnValue: null as any,\n },\n\n data: () => ({\n isActive: false,\n originalValue: null as any,\n }),\n\n watch: {\n isActive (val) {\n if (val) {\n this.originalValue = this.returnValue\n } else {\n this.$emit('update:return-value', this.originalValue)\n }\n },\n },\n\n methods: {\n save (value: any) {\n this.originalValue = value\n setTimeout(() => {\n this.isActive = false\n })\n },\n },\n})\n","// Mixins\nimport Stackable from '../stackable'\nimport { factory as positionableFactory } from '../positionable'\nimport Activatable from '../activatable'\nimport Detachable from '../detachable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Stackable,\n positionableFactory(['top', 'right', 'bottom', 'left', 'absolute']),\n Activatable,\n Detachable,\n)\n\ninterface dimensions {\n top: number\n left: number\n bottom: number\n right: number\n width: number\n height: number\n offsetTop: number\n scrollHeight: number\n offsetLeft: number\n}\n\ninterface options extends ExtractVue {\n attach: boolean | string | Element\n offsetY: boolean\n offsetX: boolean\n dimensions: {\n activator: dimensions\n content: dimensions\n }\n $refs: {\n content: HTMLElement\n activator: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'menuable',\n\n props: {\n allowOverflow: Boolean,\n light: Boolean,\n dark: Boolean,\n maxWidth: {\n type: [Number, String],\n default: 'auto',\n },\n minWidth: [Number, String],\n nudgeBottom: {\n type: [Number, String],\n default: 0,\n },\n nudgeLeft: {\n type: [Number, String],\n default: 0,\n },\n nudgeRight: {\n type: [Number, String],\n default: 0,\n },\n nudgeTop: {\n type: [Number, String],\n default: 0,\n },\n nudgeWidth: {\n type: [Number, String],\n default: 0,\n },\n offsetOverflow: Boolean,\n positionX: {\n type: Number,\n default: null,\n },\n positionY: {\n type: Number,\n default: null,\n },\n zIndex: {\n type: [Number, String],\n default: null,\n },\n },\n\n data: () => ({\n activatorNode: [] as VNode[],\n absoluteX: 0,\n absoluteY: 0,\n activatedBy: null as EventTarget | null,\n activatorFixed: false,\n dimensions: {\n activator: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n offsetLeft: 0,\n },\n content: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n },\n },\n relativeYOffset: 0,\n hasJustFocused: false,\n hasWindow: false,\n inputActivator: false,\n isContentActive: false,\n pageWidth: 0,\n pageYOffset: 0,\n stackClass: 'v-menu__content--active',\n stackMinZIndex: 6,\n }),\n\n computed: {\n computedLeft () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n const activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0\n const minWidth = Math.max(a.width, c.width)\n let left = 0\n left += activatorLeft\n if (this.left || (this.$vuetify.rtl && !this.right)) left -= (minWidth - a.width)\n if (this.offsetX) {\n const maxWidth = isNaN(Number(this.maxWidth))\n ? a.width\n : Math.min(a.width, Number(this.maxWidth))\n\n left += this.left ? -maxWidth : a.width\n }\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return left\n },\n computedTop () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n let top = 0\n\n if (this.top) top += a.height - c.height\n if (this.attach !== false) top += a.offsetTop\n else top += a.top + this.pageYOffset\n if (this.offsetY) top += this.top ? -a.height : a.height\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n\n return top\n },\n hasActivator (): boolean {\n return !!this.$slots.activator || !!this.$scopedSlots.activator || !!this.activator || !!this.inputActivator\n },\n absoluteYOffset (): number {\n return this.pageYOffset - this.relativeYOffset\n },\n },\n\n watch: {\n disabled (val) {\n val && this.callDeactivate()\n },\n isActive (val) {\n if (this.disabled) return\n\n val ? this.callActivate() : this.callDeactivate()\n },\n positionX: 'updateDimensions',\n positionY: 'updateDimensions',\n },\n\n beforeMount () {\n this.hasWindow = typeof window !== 'undefined'\n\n if (this.hasWindow) {\n window.addEventListener('resize', this.updateDimensions, false)\n }\n },\n\n beforeDestroy () {\n if (this.hasWindow) {\n window.removeEventListener('resize', this.updateDimensions, false)\n }\n },\n\n methods: {\n absolutePosition () {\n return {\n offsetTop: this.positionY || this.absoluteY,\n offsetLeft: this.positionX || this.absoluteX,\n scrollHeight: 0,\n top: this.positionY || this.absoluteY,\n bottom: this.positionY || this.absoluteY,\n left: this.positionX || this.absoluteX,\n right: this.positionX || this.absoluteX,\n height: 0,\n width: 0,\n }\n },\n activate () {},\n calcLeft (menuWidth: number) {\n return convertToUnit(this.attach !== false\n ? this.computedLeft\n : this.calcXOverflow(this.computedLeft, menuWidth))\n },\n calcTop () {\n return convertToUnit(this.attach !== false\n ? this.computedTop\n : this.calcYOverflow(this.computedTop))\n },\n calcXOverflow (left: number, menuWidth: number) {\n const xOverflow = left + menuWidth - this.pageWidth + 12\n\n if ((!this.left || this.right) && xOverflow > 0) {\n left = Math.max(left - xOverflow, 0)\n } else {\n left = Math.max(left, 12)\n }\n\n return left + this.getOffsetLeft()\n },\n calcYOverflow (top: number) {\n const documentHeight = this.getInnerHeight()\n const toTop = this.absoluteYOffset + documentHeight\n const activator = this.dimensions.activator\n const contentHeight = this.dimensions.content.height\n const totalHeight = top + contentHeight\n const isOverflowing = toTop < totalHeight\n\n // If overflowing bottom and offset\n // TODO: set 'bottom' position instead of 'top'\n if (isOverflowing &&\n this.offsetOverflow &&\n // If we don't have enough room to offset\n // the overflow, don't offset\n activator.top > contentHeight\n ) {\n top = this.pageYOffset + (activator.top - contentHeight)\n // If overflowing bottom\n } else if (isOverflowing && !this.allowOverflow) {\n top = toTop - contentHeight - 12\n // If overflowing top\n } else if (top < this.absoluteYOffset && !this.allowOverflow) {\n top = this.absoluteYOffset + 12\n }\n\n return top < 12 ? 12 : top\n },\n callActivate () {\n if (!this.hasWindow) return\n\n this.activate()\n },\n callDeactivate () {\n this.isContentActive = false\n\n this.deactivate()\n },\n checkForPageYOffset () {\n if (this.hasWindow) {\n this.pageYOffset = this.activatorFixed ? 0 : this.getOffsetTop()\n }\n },\n checkActivatorFixed () {\n if (this.attach !== false) {\n this.activatorFixed = false\n return\n }\n let el = this.getActivator()\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n this.activatorFixed = true\n return\n }\n el = el.offsetParent as HTMLElement\n }\n this.activatorFixed = false\n },\n deactivate () {},\n genActivatorListeners () {\n const listeners = Activatable.options.methods.genActivatorListeners.call(this)\n\n const onClick = listeners.click\n\n if (onClick) {\n listeners.click = (e: MouseEvent & KeyboardEvent & FocusEvent) => {\n if (this.openOnClick) {\n onClick && onClick(e)\n }\n\n this.absoluteX = e.clientX\n this.absoluteY = e.clientY\n }\n }\n\n return listeners\n },\n getInnerHeight () {\n if (!this.hasWindow) return 0\n\n return window.innerHeight ||\n document.documentElement.clientHeight\n },\n getOffsetLeft () {\n if (!this.hasWindow) return 0\n\n return window.pageXOffset ||\n document.documentElement.scrollLeft\n },\n getOffsetTop () {\n if (!this.hasWindow) return 0\n\n return window.pageYOffset ||\n document.documentElement.scrollTop\n },\n getRoundedBoundedClientRect (el: Element) {\n const rect = el.getBoundingClientRect()\n return {\n top: Math.round(rect.top),\n left: Math.round(rect.left),\n bottom: Math.round(rect.bottom),\n right: Math.round(rect.right),\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n }\n },\n measure (el: HTMLElement) {\n if (!el || !this.hasWindow) return null\n\n const rect = this.getRoundedBoundedClientRect(el)\n\n // Account for activator margin\n if (this.attach !== false) {\n const style = window.getComputedStyle(el)\n\n rect.left = parseInt(style.marginLeft!)\n rect.top = parseInt(style.marginTop!)\n }\n\n return rect\n },\n sneakPeek (cb: () => void) {\n requestAnimationFrame(() => {\n const el = this.$refs.content\n\n if (!el || el.style.display !== 'none') {\n cb()\n return\n }\n\n el.style.display = 'inline-block'\n cb()\n el.style.display = 'none'\n })\n },\n startTransition () {\n return new Promise(resolve => requestAnimationFrame(() => {\n this.isContentActive = this.hasJustFocused = this.isActive\n resolve()\n }))\n },\n updateDimensions () {\n this.hasWindow = typeof window !== 'undefined'\n this.checkActivatorFixed()\n this.checkForPageYOffset()\n this.pageWidth = document.documentElement.clientWidth\n\n const dimensions: any = {\n activator: { ...this.dimensions.activator },\n content: { ...this.dimensions.content },\n }\n\n // Activator should already be shown\n if (!this.hasActivator || this.absolute) {\n dimensions.activator = this.absolutePosition()\n } else {\n const activator = this.getActivator()\n if (!activator) return\n\n dimensions.activator = this.measure(activator)\n dimensions.activator.offsetLeft = activator.offsetLeft\n if (this.attach !== false) {\n // account for css padding causing things to not line up\n // this is mostly for v-autocomplete, hopefully it won't break anything\n dimensions.activator.offsetTop = activator.offsetTop\n } else {\n dimensions.activator.offsetTop = 0\n }\n }\n\n // Display and hide to get dimensions\n this.sneakPeek(() => {\n if (this.$refs.content) {\n if (this.$refs.content.offsetParent) {\n const offsetRect = this.getRoundedBoundedClientRect(this.$refs.content.offsetParent)\n\n this.relativeYOffset = window.pageYOffset + offsetRect.top\n dimensions.activator.top -= this.relativeYOffset\n dimensions.activator.left -= window.pageXOffset + offsetRect.left\n }\n\n dimensions.content = this.measure(this.$refs.content)\n }\n\n this.dimensions = dimensions\n })\n },\n },\n})\n","// Styles\nimport './VMain.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n name: 'v-main',\n\n props: {\n tag: {\n type: String,\n default: 'main',\n },\n },\n\n computed: {\n styles (): object {\n const {\n bar, top, right, footer, insetFooter, bottom, left,\n } = this.$vuetify.application\n\n return {\n paddingTop: `${top + bar}px`,\n paddingRight: `${right}px`,\n paddingBottom: `${footer + insetFooter + bottom}px`,\n paddingLeft: `${left}px`,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-main',\n style: this.styles,\n ref: 'main',\n }\n\n return h(this.tag, data, [\n h(\n 'div',\n { staticClass: 'v-main__wrap' },\n this.$slots.default\n ),\n ])\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus (e: FocusEvent) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: FocusEvent) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":""}