{"version":3,"sources":["webpack:///./src/components/shared/core/chipGroup/CoreChipGroup.vue","webpack:///src/components/shared/core/chipGroup/CoreChipGroup.vue","webpack:///./src/components/shared/core/chipGroup/CoreChipGroup.vue?4501","webpack:///./src/components/shared/core/chipGroup/CoreChipGroup.vue?170d","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///./src/mixins/shared/slottable/slottableMixin.js","webpack:///../../../src/directives/touch/index.ts","webpack:///../../../src/components/VChipGroup/VChipGroup.ts"],"names":["attrs","computedShowArrows","chipClose","_vm","item","staticRenderFns","name","inheritAttrs","mixins","slottableMixin","props","items","type","Array","required","showArrows","Boolean","default","undefined","column","chipSmall","computed","computedColumn","methods","onChipRemoved","$emit","eventNames","onSearchChipRemoved","getChipItem","value","component","bias","val","c","x","Math","abs","sign","calculateUpdatedOffset","selectedElement","widths","rtl","currentScrollOffset","clientWidth","offsetLeft","content","totalWidth","wrapper","itemOffset","additionalOffset","max","min","calculateCenteredOffset","offsetCentered","BaseSlideGroup","BaseItemGroup","Mobile","extend","directives","Resize","Touch","activeClass","String","centerActive","nextIcon","prevIcon","validator","v","includes","data","isOverflowing","resizeTimeout","startX","isSwipingHorizontal","isSwiping","scrollOffset","canTouch","window","__cachedNext","this","genTransition","__cachedPrev","classes","options","call","hasAffixes","isMobile","hasNext","hasPrev","watch","internalValue","$vuetify","scroll","$refs","style","transform","mounted","ResizeObserver","obs","onResize","observe","$el","$on","disconnect","itemsLength","_a","children","length","setWidths","onScroll","scrollLeft","onFocusin","e","el","composedPath","vm","genNext","slot","$scopedSlots","next","getSlot","$createElement","staticClass","class","on","click","onAffixClick","key","genContent","ref","focusin","genData","genIcon","location","icon","upperLocation","toUpperCase","slice","hasAffix","VIcon","disabled","genPrev","prev","VFadeTransition","genWrapper","start","overflowCheck","onTouchStart","move","onTouchMove","end","onTouchEnd","calculateNewOffset","direction","newAbosluteOffset","scrollTo","_isDestroyed","touchstartX","setProperty","diffX","touchmoveX","diffY","touchmoveY","touchstartY","document","documentElement","overflowY","maxScrollOffset","removeProperty","fn","stopPropagation","scrollIntoView","selectedItem","lastItemPosition","getBoundingClientRect","wrapperPosition","right","left","selectedIndex","requestAnimationFrame","render","h","provide","slideGroup","hasSlot","$slots","handleGesture","touchendX","touchendY","dirRatio","minDistance","offsetX","offsetY","up","down","touchstart","event","touch","changedTouches","clientX","clientY","Object","assign","touchend","touchmove","createHandlers","inserted","binding","vnode","target","parent","parentElement","passive","handlers","_touchHandlers","context","_uid","keys","forEach","eventName","addEventListener","unbind","removeEventListener","Colorable","chipGroup","$nextTick","setTextColor","color"],"mappings":"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","file":"js/chunk-5ede0940.016b2523.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-chip-group',_vm._g(_vm._b({attrs:{\"column\":_vm.computedColumn,\"show-arrows\":_vm.computedShowArrows}},'v-chip-group',_vm.$attrs,false),_vm.$listeners),_vm._l((_vm.items),function(item,index){return _c('v-chip',{key:index,attrs:{\"close\":_vm.chipClose,\"small\":_vm.chipSmall},on:{\"click:close\":function($event){return _vm.onChipRemoved(item)}}},[_vm._t(\"default\",function(){return [_vm._v(\" \"+_vm._s(_vm.getChipItem(item))+\" \")]},{\"item\":item})],2)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./CoreChipGroup.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!./CoreChipGroup.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CoreChipGroup.vue?vue&type=template&id=f8d89e10\"\nimport script from \"./CoreChipGroup.vue?vue&type=script&lang=js\"\nexport * from \"./CoreChipGroup.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 './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { composedPath, getSlot } from '../../util/helpers'\n\ninterface TouchEvent {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nfunction bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean,\n currentScrollOffset: number\n): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : selectedElement.offsetLeft\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset\n const itemOffset = clientWidth + offsetLeft\n const additionalOffset = clientWidth * 0.4\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean\n): number {\n const { offsetLeft, clientWidth } = selectedElement\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n }\n}\n\nexport const BaseSlideGroup = mixins\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'never',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n isSwipingHorizontal: false,\n isSwiping: false,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\n canTouch (): boolean {\n return typeof window !== 'undefined'\n },\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing,\n }\n },\n hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n\n // Always hide arrows\n case 'never': return false\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\n return this.hasAffixes && this.scrollOffset !== 0\n },\n },\n\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n scrollOffset (val) {\n if (this.$vuetify.rtl) val = -val\n\n let scroll =\n val <= 0\n ? bias(-val)\n : val > this.widths.content - this.widths.wrapper\n ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val)\n : -val\n\n if (this.$vuetify.rtl) scroll = -scroll\n\n this.$refs.content.style.transform = `translateX(${scroll}px)`\n },\n },\n\n mounted () {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n obs.observe(this.$refs.content)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n } else {\n let itemsLength = 0\n this.$on('hook:beforeUpdate', () => {\n itemsLength = (this.$refs.content?.children || []).length\n })\n this.$on('hook:updated', () => {\n if (itemsLength === (this.$refs.content?.children || []).length) return\n this.setWidths()\n })\n }\n },\n\n methods: {\n onScroll () {\n this.$refs.wrapper.scrollLeft = 0\n },\n onFocusin (e: FocusEvent) {\n if (!this.isOverflowing) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of composedPath(e)) {\n for (const vm of this.items) {\n if (vm.$el === el) {\n this.scrollOffset = calculateUpdatedOffset(\n vm.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n return\n }\n }\n }\n },\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : getSlot(this, 'next') || this.__cachedNext\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext,\n },\n on: {\n click: () => this.onAffixClick('next'),\n },\n key: 'next',\n }, [slot])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n on: {\n focusin: this.onFocusin,\n },\n }, getSlot(this))\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\n let icon = location\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next'\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev'\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n const hasAffix = (this as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : getSlot(this, 'prev') || this.__cachedPrev\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev,\n },\n on: {\n click: () => this.onAffixClick('prev'),\n },\n key: 'prev',\n }, [slot])\n },\n genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n on: {\n scroll: this.onScroll,\n },\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\n if (!this.canTouch) return\n\n if (!this.isSwiping) {\n // only calculate disableSwipeHorizontal during the first onTouchMove invoke\n // in order to ensure disableSwipeHorizontal value is consistent between onTouchStart and onTouchEnd\n const diffX = e.touchmoveX - e.touchstartX\n const diffY = e.touchmoveY - e.touchstartY\n this.isSwipingHorizontal = Math.abs(diffX) > Math.abs(diffY)\n this.isSwiping = true\n }\n\n if (this.isSwipingHorizontal) {\n // sliding horizontally\n this.scrollOffset = this.startX - e.touchmoveX\n // temporarily disable window vertical scrolling\n document.documentElement.style.overflowY = 'hidden'\n }\n },\n onTouchEnd () {\n if (!this.canTouch) return\n\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n content.style.setProperty('transition', null)\n content.style.setProperty('willChange', null)\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n\n this.isSwiping = false\n // rollback whole page scrolling to default\n document.documentElement.style.removeProperty('overflow-y')\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\n if (!this.selectedItem && this.items.length) {\n const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect()\n const wrapperPosition = this.$refs.wrapper.getBoundingClientRect()\n\n if (\n (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n ) {\n this.scrollTo('prev')\n }\n }\n\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n }, this.$vuetify.rtl, this.scrollOffset)\n },\n setWidths () {\n window.requestAnimationFrame(() => {\n if (this._isDestroyed) return\n\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\n // https://github.com/vuetifyjs/vuetify/issues/13212\n // We add +1 to the wrappers width to prevent an issue where the `clientWidth`\n // gets calculated wrongly by the browser if using a different zoom-level.\n this.isOverflowing = this.widths.wrapper + 1 < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n","export const slottableMixin = {\r\n methods: {\r\n /**\r\n * has Slot\r\n * @param {string} name\r\n * @return {boolean}\r\n */\r\n hasSlot(name) {\r\n return !!this.$slots[name];\r\n }\r\n }\r\n};\r\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","// Styles\nimport './VChipGroup.sass'\n\n// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n BaseSlideGroup,\n Colorable\n).extend({\n name: 'v-chip-group',\n\n provide () {\n return {\n chipGroup: this,\n }\n },\n\n props: {\n column: Boolean,\n },\n\n computed: {\n classes () {\n return {\n ...BaseSlideGroup.options.computed.classes.call(this),\n 'v-chip-group': true,\n 'v-chip-group--column': this.column,\n }\n },\n },\n\n watch: {\n column (val) {\n if (val) this.scrollOffset = 0\n\n this.$nextTick(this.onResize)\n },\n },\n\n methods: {\n genData () {\n return this.setTextColor(this.color, {\n ...BaseSlideGroup.options.methods.genData.call(this),\n })\n },\n },\n})\n"],"sourceRoot":""}