{"version":3,"sources":["webpack:///../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///./src/components/shared/core/expansionPanel/ExpansionPanelsLayout.vue","webpack:///src/components/shared/core/expansionPanel/ExpansionPanelsLayout.vue","webpack:///./src/components/shared/core/expansionPanel/ExpansionPanelsLayout.vue?01af","webpack:///./src/components/shared/core/expansionPanel/ExpansionPanelsLayout.vue?119b","webpack:///../../../src/mixins/comparable/index.ts"],"names":["BaseItemGroup","extend","name","provide","expansionPanels","this","props","accordion","Boolean","disabled","flat","hover","focusable","inset","popout","readonly","tile","computed","classes","options","call","created","$attrs","hasOwnProperty","breaking","Array","isArray","value","length","methods","updateItem","item","index","getValue","nextValue","isActive","toggleMethod","nextIsActive","mixins","Comparable","Proxyable","Themeable","activeClass","type","String","default","mandatory","max","Number","multiple","tag","data","internalLazyValue","undefined","items","themeClasses","selectedIndex","selectedItem","indexOf","selectedItems","filter","selectedValues","internalValue","v","valueComparator","some","intern","watch","consoleWarn","genData","class","i","onClick","updateInternalValue","register","push","$on","updateMandatory","unregister","_isDestroyed","splice","valueIndex","updateItemsState","$nextTick","forEach","updateMultiple","updateSingle","last","slice","reverse","find","defaultValue","findIndex","val","isSame","render","h","getSlot","itemGroup","_c","_self","attrs","model","callback","panels","expression","iconName","scopedSlots","_vm","proxy","key","fn","staticRenderFns","inheritAttrs","slottableMixin","components","ExpansionPanelLayout","open","expanded","_this$panels$length","_this$panels","$emit","eventNames","newValue","component","Vue","Function","deepEqual"],"mappings":"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","file":"js/chunk-a912a4b8.5717f66d.js","sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-expansion-panels',\n\n provide (): object {\n return {\n expansionPanels: this,\n }\n },\n\n props: {\n accordion: Boolean,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n focusable: Boolean,\n inset: Boolean,\n popout: Boolean,\n readonly: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-expansion-panels': true,\n 'v-expansion-panels--accordion': this.accordion,\n 'v-expansion-panels--flat': this.flat,\n 'v-expansion-panels--hover': this.hover,\n 'v-expansion-panels--focusable': this.focusable,\n 'v-expansion-panels--inset': this.inset,\n 'v-expansion-panels--popout': this.popout,\n 'v-expansion-panels--tile': this.tile,\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('expand')) {\n breaking('expand', 'multiple', this)\n }\n\n /* istanbul ignore next */\n if (\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n typeof this.value[0] === 'boolean'\n ) {\n breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n }\n },\n\n methods: {\n updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n const value = this.getValue(item, index)\n const nextValue = this.getValue(item, index + 1)\n\n item.isActive = this.toggleMethod(value)\n item.nextIsActive = this.toggleMethod(nextValue)\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'\nimport { getSlot } from '../../util/helpers'\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(), getSlot(this))\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-expansion-panels',_vm._g(_vm._b({attrs:{\"inset\":_vm.inset,\"focusable\":\"\",\"multiple\":\"\"},model:{value:(_vm.panels),callback:function ($$v) {_vm.panels=$$v},expression:\"panels\"}},'v-expansion-panels',_vm.$attrs,false),_vm.$listeners),[_c('expansion-panel-layout',{attrs:{\"icon-name\":_vm.iconName},scopedSlots:_vm._u([(_vm.hasSlot('header'))?{key:\"header\",fn:function(){return [_vm._t(\"header\")]},proxy:true}:{key:\"default\",fn:function(){return [_vm._t(\"default\")]},proxy:true},{key:\"content\",fn:function(){return [_vm._t(\"content\")]},proxy:true}],null,true)})],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!./ExpansionPanelsLayout.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!./ExpansionPanelsLayout.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ExpansionPanelsLayout.vue?vue&type=template&id=f5ab7f02\"\nimport script from \"./ExpansionPanelsLayout.vue?vue&type=script&lang=js\"\nexport * from \"./ExpansionPanelsLayout.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","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"],"sourceRoot":""}