{"version":3,"sources":["webpack:///./src/views/news/components/AddArticleButton.vue?c087","webpack:///./src/views/news/components/AddArticleButton.vue","webpack:///./src/views/news/components/AddArticleButton.vue?8569","webpack:///./src/views/news/components/AddArticleButton.vue?d848","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///./src/core/utils/getLinks.ts","webpack:///./node_modules/core-js/modules/es.string.match-all.js","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///../../../src/mixins/selectable/index.ts"],"names":["render","_vm","this","_h","$createElement","_c","_self","VDialog","attrs","scopedSlots","_u","key","fn","ref","on","VBtn","_g","addArticleLoading","_v","_s","$t","staticClass","VIcon","model","value","callback","$$v","addDialog","expression","VCard","VSpacer","$event","VDivider","preventDefault","addArticle","VImg","bannerImagePreview","_e","VTextField","textRules","title","VTextarea","previewLinks","body","links","length","_l","link","VSwitch","hasBannerImage","VFileInput","handleBannerImage","files","canSubmit","staticRenderFns","placeholderImage","AddArticleButton","bannerImage","v","toString","trim","getLinks","file","reader","FileReader","onload","result","readAsDataURL","data","FormData","append","forEach","addArticleAction","Vue","__decorate","Getter","Action","Watch","Component","components","LinkPreview","component","extend","name","directives","ripple","props","type","Boolean","Object","default","methods","genRipple","push","center","urlRegex","text","strs","matchAll","map","x","Set","$","createIteratorConstructor","requireObjectCoercible","toLength","aFunction","anObject","classof","isRegExp","getRegExpFlags","createNonEnumerableProperty","fails","wellKnownSymbol","speciesConstructor","advanceStringIndex","InternalStateModule","IS_PURE","MATCH_ALL","REGEXP_STRING","REGEXP_STRING_ITERATOR","setInternalState","set","getInternalState","getterFor","RegExpPrototype","RegExp","prototype","regExpBuiltinExec","exec","nativeMatchAll","WORKS_WITH_NON_GLOBAL_REGEX","regExpExec","R","S","call","TypeError","$RegExpStringIterator","regexp","string","global","fullUnicode","unicode","done","state","undefined","match","String","lastIndex","$matchAll","C","flagsValue","flags","matcher","source","indexOf","target","proto","forced","rx","O","apply","arguments","baseMixins","mixins","autoGrow","noResize","rowHeight","Number","validator","isNaN","parseFloat","rows","parseInt","computed","classes","noResizeHandle","options","watch","val","$nextTick","calculateInputHeight","$refs","input","_a","style","removeProperty","lazyValue","mounted","setTimeout","height","scrollHeight","minHeight","Math","max","genInput","tag","onInput","e","onKeyDown","isFocused","keyCode","stopPropagation","$emit","Selectable","Touch","inset","loading","flat","VInput","isActive","isDisabled","role","validationState","hasError","shouldValidate","hasSuccess","hasColor","computedColor","switchData","setTextColor","class","themeClasses","genDefaultSlot","genSwitch","genLabel","attrs$","switchAttrs","left","onSwipeLeft","right","onSwipeRight","genProgress","VFabTransition","$slots","progress","VProgressCircular","color","size","width","indeterminate","onChange","onKeydown","keyCodes","prevent","Rippleable","Comparable","prop","event","id","inputValue","falseValue","trueValue","multiple","label","isDark","appIsDark","isMultiple","Array","isArray","internalValue","some","item","valueComparator","isDirty","rippleState","click","assign","disabled","computedId","domProps","checked","blur","onBlur","change","focus","onFocus","keydown","onClick","isInteractive","filter","validate"],"mappings":"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","file":"assets/js/chunk-d867dcce.6b5f0e82.js","sourcesContent":["import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(VDialog,{attrs:{\"max-width\":\"800px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',[_c(VBtn,_vm._g({attrs:{\"text\":\"\",\"elevation\":\"0\",\"loading\":_vm.addArticleLoading,\"disabled\":_vm.addArticleLoading}},on),[_c('span',[_vm._v(_vm._s(_vm.$t(\"latestNewsSections.addArticleButton.addArticle\")))]),_c('div',{staticClass:\"mx-1\"}),_c('div',{staticClass:\"primary other--text pa-1 rounded-circle\"},[_c(VIcon,[_vm._v(\"mdi-plus\")])],1)])],1)]}}]),model:{value:(_vm.addDialog),callback:function ($$v) {_vm.addDialog=$$v},expression:\"addDialog\"}},[_c(VCard,[_c(VCardTitle,[_c('span',[_vm._v(_vm._s(_vm.$t(\"latestNewsSections.addArticleButton.addNewsArticle\")))]),_c(VSpacer),_c(VBtn,{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.addDialog = false}}},[_c(VIcon,[_vm._v(\"mdi-close\")])],1)],1),_c(VDivider),_c(VCardText,{staticClass:\"pa-6\"},[(_vm.addDialog)?_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.addArticle($event)}}},[(_vm.hasBannerImage)?_c(VImg,{staticClass:\"mb-4\",attrs:{\"src\":_vm.bannerImagePreview}}):_vm._e(),_c(VTextField,{attrs:{\"label\":_vm.$t('latestNewsSections.addArticleButton.articleTitle'),\"rules\":_vm.textRules},model:{value:(_vm.title),callback:function ($$v) {_vm.title=$$v},expression:\"title\"}}),_c(VTextarea,{attrs:{\"label\":_vm.$t('latestNewsSections.addArticleButton.articleBody'),\"rules\":_vm.textRules,\"clearable\":\"\",\"auto-grow\":\"\",\"rows\":\"2\"},on:{\"change\":_vm.previewLinks},model:{value:(_vm.body),callback:function ($$v) {_vm.body=$$v},expression:\"body\"}}),(_vm.links.length > 0)?_c('div',_vm._l((_vm.links),function(link){return _c('LinkPreview',{key:link,attrs:{\"link\":link}})}),1):_vm._e(),_c(VSwitch,{attrs:{\"label\":_vm.$t('latestNewsSections.addArticleButton.addBannerImage')},model:{value:(_vm.hasBannerImage),callback:function ($$v) {_vm.hasBannerImage=$$v},expression:\"hasBannerImage\"}}),(_vm.hasBannerImage)?_c(VFileInput,{attrs:{\"placeholder\":_vm.$t('latestNewsSections.addArticleButton.bannerImage'),\"accept\":\"image/*\"},on:{\"change\":_vm.handleBannerImage}}):_vm._e(),_c(VFileInput,{attrs:{\"placeholder\":_vm.$t('latestNewsSections.addArticleButton.otherFiles'),\"accept\":\"application/pdf, image/*, video/*\",\"show-size\":\"\",\"multiple\":\"\",\"counter\":\"\",\"chips\":\"\"},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}}),_c(VBtn,{staticClass:\"mt-6\",attrs:{\"disabled\":!_vm.canSubmit,\"color\":\"primary\",\"type\":\"submit\",\"elevation\":\"0\",\"block\":\"\"}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"latestNewsSections.addArticleButton.addArticle\")))])])],1):_vm._e()])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Action, Getter } from \"vuex-class\";\r\nimport { getLinks } from \"@/core/utils/getLinks\";\r\nimport { Component, Watch } from \"vue-property-decorator\";\r\nimport LinkPreview from \"@/components/common/LinkPreview.vue\";\r\n\r\nconst placeholderImage =\r\n \"https://www.geographicexperiences.com/wp-content/uploads/revslider/home5/placeholder-1200x500.png\";\r\n@Component({ components: { LinkPreview } })\r\nexport default class AddArticleButton extends Vue {\r\n @Getter(\"news/addArticleLoading\") addArticleLoading!: boolean;\r\n @Action(\"news/addArticle\") addArticleAction!: Function;\r\n\r\n body = \"\";\r\n title = \"\";\r\n addDialog = false;\r\n files: File[] = [];\r\n links: string[] = [];\r\n hasBannerImage = false;\r\n bannerImagePreview: any = \"\";\r\n bannerImage: File | null = null;\r\n\r\n previewLinks() {\r\n this.links = getLinks(this.body);\r\n }\r\n\r\n textRules = [\r\n (v: string) => {\r\n if (v == null) return this.$t(\"forms.reqfield\").toString();\r\n if (v.trim().length == 0) return this.$t(\"forms.reqfield\").toString();\r\n else return true;\r\n },\r\n ];\r\n\r\n get canSubmit() {\r\n return this.title.length > 0 && this.body.length > 0;\r\n }\r\n\r\n handleBannerImage(file: File) {\r\n this.bannerImage = file;\r\n if (!file) this.bannerImagePreview = placeholderImage;\r\n else {\r\n let reader = new FileReader();\r\n reader.onload = () => (this.bannerImagePreview = reader.result);\r\n reader.readAsDataURL(this.bannerImage);\r\n }\r\n }\r\n addArticle() {\r\n if (this.addArticleLoading) return;\r\n if (\r\n this.title.length == 0 ||\r\n this.body.length == 0 ||\r\n (this.hasBannerImage && this.bannerImage == null)\r\n )\r\n return;\r\n\r\n const data = new FormData();\r\n data.append(\"title\", this.title.trim());\r\n data.append(\"body\", this.body.trim());\r\n data.append(\"bannerImage\", this.bannerImage!);\r\n this.files.forEach(file => data.append(\"files\", file));\r\n this.addArticleAction(data);\r\n this.addDialog = false;\r\n }\r\n\r\n @Watch(\"addDialog\")\r\n toggleDialog() {\r\n this.title = \"\";\r\n this.body = \"\";\r\n this.hasBannerImage = false;\r\n this.bannerImage = null;\r\n this.bannerImagePreview = placeholderImage;\r\n this.files = [];\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddArticleButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddArticleButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddArticleButton.vue?vue&type=template&id=9ffc60bc&\"\nimport script from \"./AddArticleButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./AddArticleButton.vue?vue&type=script&lang=ts&\"\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","// 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","export const urlRegex = /(http(s)?:\\/\\/.)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/g;\r\nexport const getLinks = (text: string) => {\r\n const strs = [...text.matchAll(urlRegex)].map(x => x[0]);\r\n return [...new Set(strs)];\r\n};\r\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toLength = require('../internals/to-length');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof-raw');\nvar isRegExp = require('../internals/is-regexp');\nvar getRegExpFlags = require('../internals/regexp-flags');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar InternalStateModule = require('../internals/internal-state');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar regExpBuiltinExec = RegExpPrototype.exec;\nvar nativeMatchAll = ''.matchAll;\n\nvar WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {\n 'a'.matchAll(/./);\n});\n\nvar regExpExec = function (R, S) {\n var exec = R.exec;\n var result;\n if (typeof exec == 'function') {\n result = exec.call(R, S);\n if (typeof result != 'object') throw TypeError('Incorrect exec result');\n return result;\n } return regExpBuiltinExec.call(R, S);\n};\n\n// eslint-disable-next-line max-len\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {\n setInternalState(this, {\n type: REGEXP_STRING_ITERATOR,\n regexp: regexp,\n string: string,\n global: global,\n unicode: fullUnicode,\n done: false\n });\n}, REGEXP_STRING, function next() {\n var state = getInternalState(this);\n if (state.done) return { value: undefined, done: true };\n var R = state.regexp;\n var S = state.string;\n var match = regExpExec(R, S);\n if (match === null) return { value: undefined, done: state.done = true };\n if (state.global) {\n if (String(match[0]) == '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n return { value: match, done: false };\n }\n state.done = true;\n return { value: match, done: false };\n});\n\nvar $matchAll = function (string) {\n var R = anObject(this);\n var S = String(string);\n var C, flagsValue, flags, matcher, global, fullUnicode;\n C = speciesConstructor(R, RegExp);\n flagsValue = R.flags;\n if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype)) {\n flagsValue = getRegExpFlags.call(R);\n }\n flags = flagsValue === undefined ? '' : String(flagsValue);\n matcher = new C(C === RegExp ? R.source : R, flags);\n global = !!~flags.indexOf('g');\n fullUnicode = !!~flags.indexOf('u');\n matcher.lastIndex = toLength(R.lastIndex);\n return new $RegExpStringIterator(matcher, S, global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://github.com/tc39/proposal-string-matchall\n$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {\n matchAll: function matchAll(regexp) {\n var O = requireObjectCoercible(this);\n var flags, S, matcher, rx;\n if (regexp != null) {\n if (isRegExp(regexp)) {\n flags = String(requireObjectCoercible('flags' in RegExpPrototype\n ? regexp.flags\n : getRegExpFlags.call(regexp)\n ));\n if (!~flags.indexOf('g')) throw TypeError('`.matchAll` does not allow non-global regexes');\n }\n if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);\n matcher = regexp[MATCH_ALL];\n if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;\n if (matcher != null) return aFunction(matcher).call(regexp, O);\n } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);\n S = String(O);\n rx = new RegExp(regexp, 'g');\n return IS_PURE ? $matchAll.call(rx, S) : rx[MATCH_ALL](S);\n }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || createNonEnumerableProperty(RegExpPrototype, MATCH_ALL, $matchAll);\n","// 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 '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\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.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n const { title, ...switchAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...switchAttrs,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : this.$slots.progress || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\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":""}