{"version":3,"sources":["webpack:///../../../src/mixins/validatable/index.ts","webpack:///./src/modules/snapshot/components/TheSnapshotAssignmentSubmitDialog.vue","webpack:///src/modules/snapshot/components/TheSnapshotAssignmentSubmitDialog.vue","webpack:///./src/modules/snapshot/components/TheSnapshotAssignmentSubmitDialog.vue?a78f","webpack:///./src/modules/snapshot/components/TheSnapshotAssignmentSubmitDialog.vue?386e","webpack:///../../../src/components/VMessages/VMessages.ts","webpack:///../../../src/components/VMessages/index.ts","webpack:///../../../src/components/VInput/VInput.ts","webpack:///../../../src/components/VLabel/VLabel.ts","webpack:///../../../src/components/VLabel/index.ts","webpack:///../../../src/components/VInput/index.ts"],"names":["baseMixins","mixins","Colorable","RegistrableInject","Themeable","extend","name","props","disabled","Boolean","error","errorCount","type","Number","String","default","errorMessages","Array","messages","readonly","rules","success","successMessages","validateOnBlur","value","required","data","errorBucket","hasColor","hasFocused","hasInput","isFocused","isResetting","lazyValue","this","valid","computed","computedColor","isDisabled","color","isDark","appIsDark","hasError","internalErrorMessages","length","hasSuccess","internalSuccessMessages","externalError","hasMessages","validationTarget","hasState","shouldValidate","genInternalMessages","internalMessages","internalValue","get","set","val","$emit","form","isInteractive","isReadonly","validations","slice","validationState","watch","handler","newVal","oldVal","deepEqual","validate","deep","$nextTick","setTimeout","beforeMount","created","register","beforeDestroy","unregister","methods","isArray","reset","resetValidation","force","index","rule","push","consoleError","submitDialog","expression","attrs","staticClass","_c","_vm","bundleData","_v","staticStyle","model","callback","handinIdentifier","on","staticRenderFns","assignmentShortId","currentInstance","mounted","assignmentLoading","component","genChildren","$createElement","tag","map","genMessage","message","key","getSlot","render","h","setTextColor","class","themeClasses","VMessages","BindsAttrs","Validatable","inheritAttrs","appendIcon","backgroundColor","dense","height","hideDetails","hideSpinButtons","hint","id","label","loading","persistentHint","prependIcon","hasMouseDown","classes","showDetails","isLabelActive","isDirty","computedId","_uid","hasDetails","messagesToDisplay","hasHint","hasLabel","$slots","$_modelEvent","validation","validationResult","filter","beforeCreate","$options","event","genContent","genPrependSlot","genControl","genAppendSlot","title","attrs$","genInputSlot","genMessages","genDefaultSlot","genLabel","genIcon","cb","extraData","icon","eventName","kebabCase","hasListener","listeners$","mergeData","split","undefined","dark","light","tabindex","click","e","preventDefault","stopPropagation","mouseup","VIcon","setBackgroundColor","style","convertToUnit","onClick","mousedown","onMouseDown","onMouseUp","ref","VLabel","focused","for","role","scopedSlots","genSlot","location","slot","prepend","append","functional","absolute","left","right","ctx","children","listeners","functionalThemeClasses","position","options","VInput"],"mappings":"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","file":"static/js/chunk-0cb1715a.363f788a.js","sourcesContent":["// Mixins\nimport Colorable from '../colorable'\nimport Themeable from '../themeable'\nimport { inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { deepEqual } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\nimport { InputMessage, InputValidationRules } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'form', any>('form'),\n Themeable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'validatable',\n\n props: {\n disabled: Boolean,\n error: Boolean,\n errorCount: {\n type: [Number, String],\n default: 1,\n },\n errorMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n messages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n readonly: Boolean,\n rules: {\n type: Array,\n default: () => [],\n } as PropValidator,\n success: Boolean,\n successMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n validateOnBlur: Boolean,\n value: { required: false },\n },\n\n data () {\n return {\n errorBucket: [] as string[],\n hasColor: false,\n hasFocused: false,\n hasInput: false,\n isFocused: false,\n isResetting: false,\n lazyValue: this.value,\n valid: false,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.color) return this.color\n // It's assumed that if the input is on a\n // dark background, the user will want to\n // have a white color. If the entire app\n // is setup to be dark, then they will\n // like want to use their primary color\n if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n hasError (): boolean {\n return (\n this.internalErrorMessages.length > 0 ||\n this.errorBucket.length > 0 ||\n this.error\n )\n },\n // TODO: Add logic that allows the user to enable based\n // upon a good validation\n hasSuccess (): boolean {\n return (\n this.internalSuccessMessages.length > 0 ||\n this.success\n )\n },\n externalError (): boolean {\n return this.internalErrorMessages.length > 0 || this.error\n },\n hasMessages (): boolean {\n return this.validationTarget.length > 0\n },\n hasState (): boolean {\n if (this.isDisabled) return false\n\n return (\n this.hasSuccess ||\n (this.shouldValidate && this.hasError)\n )\n },\n internalErrorMessages (): InputValidationRules {\n return this.genInternalMessages(this.errorMessages)\n },\n internalMessages (): InputValidationRules {\n return this.genInternalMessages(this.messages)\n },\n internalSuccessMessages (): InputValidationRules {\n return this.genInternalMessages(this.successMessages)\n },\n internalValue: {\n get (): unknown {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n\n this.$emit('input', val)\n },\n },\n isDisabled (): boolean {\n return this.disabled || (\n !!this.form &&\n this.form.disabled\n )\n },\n isInteractive (): boolean {\n return !this.isDisabled && !this.isReadonly\n },\n isReadonly (): boolean {\n return this.readonly || (\n !!this.form &&\n this.form.readonly\n )\n },\n shouldValidate (): boolean {\n if (this.externalError) return true\n if (this.isResetting) return false\n\n return this.validateOnBlur\n ? this.hasFocused && !this.isFocused\n : (this.hasInput || this.hasFocused)\n },\n validations (): InputValidationRules {\n return this.validationTarget.slice(0, Number(this.errorCount))\n },\n validationState (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor) return this.computedColor\n return undefined\n },\n validationTarget (): InputValidationRules {\n if (this.internalErrorMessages.length > 0) {\n return this.internalErrorMessages\n } else if (this.successMessages && this.successMessages.length > 0) {\n return this.internalSuccessMessages\n } else if (this.messages && this.messages.length > 0) {\n return this.internalMessages\n } else if (this.shouldValidate) {\n return this.errorBucket\n } else return []\n },\n },\n\n watch: {\n rules: {\n handler (newVal, oldVal) {\n if (deepEqual(newVal, oldVal)) return\n this.validate()\n },\n deep: true,\n },\n internalValue () {\n // If it's the first time we're setting input,\n // mark it with hasInput\n this.hasInput = true\n this.validateOnBlur || this.$nextTick(this.validate)\n },\n isFocused (val) {\n // Should not check validation\n // if disabled\n if (\n !val &&\n !this.isDisabled\n ) {\n this.hasFocused = true\n this.validateOnBlur && this.$nextTick(this.validate)\n }\n },\n isResetting () {\n setTimeout(() => {\n this.hasInput = false\n this.hasFocused = false\n this.isResetting = false\n this.validate()\n }, 0)\n },\n hasError (val) {\n if (this.shouldValidate) {\n this.$emit('update:error', val)\n }\n },\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeMount () {\n this.validate()\n },\n\n created () {\n this.form && this.form.register(this)\n },\n\n beforeDestroy () {\n this.form && this.form.unregister(this)\n },\n\n methods: {\n genInternalMessages (messages: InputMessage | null): InputValidationRules {\n if (!messages) return []\n else if (Array.isArray(messages)) return messages\n else return [messages]\n },\n /** @public */\n reset () {\n this.isResetting = true\n this.internalValue = Array.isArray(this.internalValue)\n ? []\n : null\n },\n /** @public */\n resetValidation () {\n this.isResetting = true\n },\n /** @public */\n validate (force = false, value?: any): boolean {\n const errorBucket = []\n value = value || this.internalValue\n\n if (force) this.hasInput = this.hasFocused = true\n\n for (let index = 0; index < this.rules.length; index++) {\n const rule = this.rules[index]\n const valid = typeof rule === 'function' ? rule(value) : rule\n\n if (valid === false || typeof valid === 'string') {\n errorBucket.push(valid || '')\n } else if (typeof valid !== 'boolean') {\n consoleError(`Rules should return a string or boolean, received '${typeof valid}' instead`, this)\n }\n }\n\n this.errorBucket = errorBucket\n this.valid = errorBucket.length === 0\n\n return this.valid\n },\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"persistent\":_vm.assignmentLoading,\"max-width\":\"700\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"color\":\"primary\"}},on),[_vm._v(\"Hand-in\")])]}}]),model:{value:(_vm.submitDialog),callback:function ($$v) {_vm.submitDialog=$$v},expression:\"submitDialog\"}},[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',[_c('div',{staticClass:\"d-flex align-center w-100\"},[_c('span',{staticClass:\"text-uppercase secondary--text ml-1\"},[_vm._v(_vm._s(_vm.bundleData.long_id))]),_c('v-spacer')],1)]),_c('v-divider'),_c('v-card-text',[_c('div',{staticClass:\"d-flex flex-column mt-3\"},[_c('v-alert',{attrs:{\"type\":\"info\",\"outlined\":\"\"}},[_vm._v(\" The content of the following files / folders will be handed in, please make sure they exist otherwise hand-in will not succeed! \"),_c('v-expansion-panels',{staticClass:\"w-100\",attrs:{\"value\":[0],\"flat\":\"\",\"multiple\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"px-0\"},[_c('span',{staticClass:\"secondary--text font-weight-bold\"},[_vm._v(\"Files (\"+_vm._s(_vm.bundleData.objects.files.length)+\")\")])]),_c('v-expansion-panel-content',[_c('v-list',{staticClass:\"pa-0\",attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{staticClass:\"pa-0 ma-0\",attrs:{\"color\":\"secondary\"}},_vm._l((_vm.bundleData.objects.files),function(file){return _c('v-list-item',{key:file,staticClass:\"pa-0\",staticStyle:{\"max-height\":\"5px\"}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-file-outline\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"subtitle-2\"},[_vm._v(_vm._s(file.slice(6)))])],1)],1)}),1)],1)],1)],1)],1)],1),_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\" Please provide a hand-in identifier (e.g. exam code, email address, etc..) that is in line with your course policy and allows the instructor to match your work with your identifier. If unsure, please discuss the appropriate identifier with your instructor. \")]),_c('v-text-field',{staticClass:\"mt-3\",attrs:{\"autofocus\":\"\",\"label\":\"Hand-in identifier\",\"outlined\":\"\"},model:{value:(_vm.handinIdentifier),callback:function ($$v) {_vm.handinIdentifier=$$v},expression:\"handinIdentifier\"}})],1)]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"disabled\":!_vm.handinIdentifier,\"loading\":_vm.assignmentLoading,\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.submitAssignment(_vm.handinIdentifier, _vm.assignmentShortId, _vm.bundleData.bid)}}},[_vm._v(\" Hand-in \")]),_c('v-btn',{attrs:{\"disabled\":_vm.assignmentLoading,\"color\":\"secondary\",\"text\":\"\"},on:{\"click\":function($event){_vm.submitDialog = false}}},[_vm._v(\"Close\")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??ref--13-1!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSnapshotAssignmentSubmitDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??ref--13-1!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSnapshotAssignmentSubmitDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TheSnapshotAssignmentSubmitDialog.vue?vue&type=template&id=dca69798&\"\nimport script from \"./TheSnapshotAssignmentSubmitDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./TheSnapshotAssignmentSubmitDialog.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-messages',\n\n props: {\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n },\n\n methods: {\n genChildren () {\n return this.$createElement('transition-group', {\n staticClass: 'v-messages__wrapper',\n attrs: {\n name: 'message-transition',\n tag: 'div',\n },\n }, this.value.map(this.genMessage))\n },\n genMessage (message: string, key: number) {\n return this.$createElement('div', {\n staticClass: 'v-messages__message',\n key,\n }, getSlot(this, 'default', { message, key }) || [message])\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-messages',\n class: this.themeClasses,\n }), [this.genChildren()])\n },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // .loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n this.$slots.default,\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const data = mergeData({\n attrs: {\n 'aria-label': hasListener ? kebabCase(type).split('-')[0] + ' icon' : undefined,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n tabindex: type === 'clear' ? -1 : undefined,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, this.$slots.label || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (h, ctx): VNode {\n const { children, listeners, props } = ctx\n const data = {\n staticClass: 'v-label',\n class: {\n 'v-label--active': props.value,\n 'v-label--is-disabled': props.disabled,\n ...functionalThemeClasses(ctx),\n },\n attrs: {\n for: props.for,\n 'aria-hidden': !props.for,\n },\n on: listeners,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }\n\n return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, data), children)\n },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n"],"sourceRoot":""}