{"version":3,"sources":["webpack:///../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack:///../../../src/components/VDataTable/VSimpleTable.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack:///./src/javascript/widgetManager.js","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanel.ts"],"names":["name","provide","expansionPanels","this","props","accordion","disabled","flat","hover","focusable","inset","popout","readonly","tile","Boolean","computed","classes","created","$attrs","hasOwnProperty","Array","value","length","methods","updateItem","getValue","item","nextValue","index","toggleMethod","dense","fixedHeader","height","Number","String","$slots","themeClasses","genWrapper","wrapper","$createElement","staticClass","style","render","h","class","baseMixins","data","isActive","parentIsActive","expansionPanel","watch","immediate","handler","isBooted","oldVal","$nextTick","beforeDestroy","showLazyContent","directives","widgetManager","tableData","tableTotal","itemsMinusDeleted","tableRow","percentage","clearTableRow","buildTable","period","i","isItemWithinPeriod","transactionBalances","transactionDate","convertToTableRow","addToTableData","calculatePercentages","parseFloat","toFixed","push","globalFunctions","stringify","category","transactionAmount","clearOldData","itemDate","start","end","date","Date","returnFormattedDateFromCalendar","dateSplit","split","parseInt","buildIncomeCategoryTotals","getIncomeItemsFromStoreAndRemoveDeletedItems","items","getIncomeTransactions","store","state","Transactions","removeDeletedObjectsFromItems","incomes","transactionType","buildExpenseCategoryTotals","getExpenseItemsFromStoreAndRemoveDeletedItems","getExpenseTransactions","expenses","buildBudgetTotals","getBudgetItemsFromStoreAndRemoveDeletedItems","createTableRows","buildBudgetTable","buildSingleBudgetTotals","budgetId","buildSingleBudgetTable","budgetManager","findBudgetById","Budgets","budgetBalance","getActiveBudgetBalance","addToBudgetTableData","budget","budgetName","amountSpent","budgetAmount","returnIncomeCategoriesAndThereItems","buildJsonObject","jsonObject","k","returnExpenseCategoriesAndThereItems","ripple","disableIconRotate","expandIcon","type","default","hideActions","hasMousedown","isDisabled","isReadonly","onClick","genIcon","icon","setBackgroundColor","attrs","tabindex","on","click","mousedown","mouseup","open","content","header","nextIsActive","groupClasses","registerContent","unregisterContent","registerHeader","vm","unregisterHeader","e","toggle"],"mappings":"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","file":"js/chunk-cf79b014.acdf382f.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","import './VSimpleTable.sass'\n\nimport { convertToUnit } from '../../util/helpers'\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\n\nexport default mixins(Themeable).extend({\n name: 'v-simple-table',\n\n props: {\n dense: Boolean,\n fixedHeader: Boolean,\n height: [Number, String],\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-data-table--dense': this.dense,\n 'v-data-table--fixed-height': !!this.height && !this.fixedHeader,\n 'v-data-table--fixed-header': this.fixedHeader,\n 'v-data-table--has-top': !!this.$slots.top,\n 'v-data-table--has-bottom': !!this.$slots.bottom,\n ...this.themeClasses,\n }\n },\n },\n\n methods: {\n genWrapper () {\n return this.$slots.wrapper || this.$createElement('div', {\n staticClass: 'v-data-table__wrapper',\n style: {\n height: convertToUnit(this.height),\n },\n }, [\n this.$createElement('table', this.$slots.default),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-data-table',\n class: this.classes,\n }, [\n this.$slots.top,\n this.genWrapper(),\n this.$slots.bottom,\n ])\n },\n})\n","// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n expansionPanel: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-content',\n\n data: () => ({\n isActive: false,\n }),\n\n computed: {\n parentIsActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n watch: {\n parentIsActive: {\n immediate: true,\n handler (val, oldVal) {\n if (val) this.isBooted = true\n\n if (oldVal == null) this.isActive = val\n else this.$nextTick(() => this.isActive = val)\n },\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterContent()\n },\n\n render (h): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-content',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this)),\n ]),\n ]))\n },\n})\n","import { store } from '../store/storeMain'\r\n//import { transactionManager } from './transactionManager'\r\nimport { globalFunctions } from './globalFunctions'\r\nimport { budgetManager } from './budgetManager'\r\n\r\nexport const widgetManager = {\r\n tableData: [],\r\n tableTotal: 0,\r\n itemsMinusDeleted: [],\r\n tableRow: {\r\n name: '',\r\n value: 0,\r\n percentage: 0\r\n },\r\n clearTableRow: function () {\r\n this.tableRow.name = ''\r\n this.tableRow.value = 0\r\n this.tableRow.percentage = 0\r\n },\r\n buildTable: function (period) {\r\n for (let i = 0; i < this.itemsMinusDeleted.length; i++) {\r\n\r\n if (this.isItemWithinPeriod(\r\n this.itemsMinusDeleted[i].transactionBalances[this.itemsMinusDeleted[i].transactionBalances.length - 1].transactionDate,\r\n period)) {\r\n\r\n this.convertToTableRow(this.itemsMinusDeleted[i])\r\n\r\n this.addToTableData()\r\n\r\n this.calculatePercentages()\r\n }\r\n }\r\n },\r\n calculatePercentages: function () {\r\n for (let i = 0; i < this.tableData.length; i++) {\r\n this.tableData[i].percentage = ((parseFloat(this.tableData[i].value) / parseFloat(this.tableTotal)) * 100).toFixed(2)\r\n }\r\n },\r\n addToTableData: function () {\r\n let item = this.tableRow\r\n\r\n if (this.tableData.length === 0) {\r\n this.tableData.push(globalFunctions.stringify(item))\r\n this.tableTotal = parseFloat(this.tableTotal) + parseFloat(item.value)\r\n }\r\n else {\r\n for (let i = 0; i < this.tableData.length; i++) {\r\n if (this.tableData[i].name === item.name) {\r\n this.tableData[i].value = parseFloat(this.tableData[i].value) + parseFloat(item.value)\r\n this.tableTotal = parseFloat(this.tableTotal) + parseFloat(item.value)\r\n break\r\n }\r\n else if (i === this.tableData.length - 1) {\r\n this.tableData.push(globalFunctions.stringify(item))\r\n this.tableTotal = parseFloat(this.tableTotal) + parseFloat(item.value)\r\n break\r\n }\r\n }\r\n }\r\n },\r\n convertToTableRow: function (item) {\r\n this.clearTableRow()\r\n\r\n this.tableRow.name = item.category\r\n\r\n for (let i = 0; i < item.transactionBalances.length; i++) {\r\n this.tableRow.value = parseFloat(this.tableRow.value) + parseFloat(item.transactionBalances[i].transactionAmount)\r\n }\r\n },\r\n clearOldData: function () {\r\n this.tableData = []\r\n this.tableTotal = 0,\r\n this.itemsMinusDeleted = []\r\n },\r\n isItemWithinPeriod: function (itemDate, period) {\r\n let start = ''\r\n let end = ''\r\n let date = new Date(this.returnFormattedDateFromCalendar(itemDate))\r\n\r\n let dateSplit = period.split(\" - \")\r\n\r\n start = new Date(dateSplit[0])\r\n end = new Date(dateSplit[1])\r\n\r\n if (date >= start && date <= end) {\r\n return true\r\n }\r\n\r\n return false\r\n },\r\n returnFormattedDateFromCalendar(date) {\r\n let dateSplit = date.split(\"-\")\r\n\r\n return (dateSplit[0] + \"-\" + parseInt(dateSplit[1]) + \"-\" + (parseInt(dateSplit[2])))\r\n },\r\n \r\n\r\n ///////////////////////////////////////////////////////////////////////\r\n //Income Specific\r\n ///////////////////////////////////////////////////////////////////////\r\n\r\n buildIncomeCategoryTotals: function (period) {\r\n this.clearOldData()\r\n this.getIncomeItemsFromStoreAndRemoveDeletedItems()\r\n\r\n this.buildTable(period)\r\n\r\n return {\r\n tableData: this.tableData,\r\n tableTotal: this.tableTotal\r\n }\r\n },\r\n getIncomeItemsFromStoreAndRemoveDeletedItems: function () {\r\n this.items = this.getIncomeTransactions(store.state.Transactions)\r\n\r\n\r\n ///Remove deleted items from items array\r\n this.itemsMinusDeleted = globalFunctions.removeDeletedObjectsFromItems(this.items)\r\n },\r\n getIncomeTransactions: function (items) {\r\n let incomes = []\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].transactionType === \"income\") {\r\n incomes.push(items[i])\r\n }\r\n }\r\n\r\n return incomes\r\n },\r\n\r\n\r\n ///////////////////////////////////////////////////////////////////////\r\n //Expense Specific\r\n ///////////////////////////////////////////////////////////////////////\r\n\r\n buildExpenseCategoryTotals: function (period) {\r\n this.clearOldData()\r\n this.getExpenseItemsFromStoreAndRemoveDeletedItems()\r\n\r\n this.buildTable(period)\r\n\r\n return {\r\n tableData: this.tableData,\r\n tableTotal: this.tableTotal\r\n }\r\n },\r\n getExpenseItemsFromStoreAndRemoveDeletedItems: function () {\r\n this.items = this.getExpenseTransactions(store.state.Transactions)\r\n\r\n ///Remove deleted items from items array\r\n this.itemsMinusDeleted = globalFunctions.removeDeletedObjectsFromItems(this.items)\r\n },\r\n getExpenseTransactions: function (items) {\r\n let expenses = []\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].transactionType === \"expense\") {\r\n expenses.push(items[i])\r\n }\r\n }\r\n\r\n return expenses\r\n },\r\n\r\n\r\n ///////////////////////////////////////////////////////////////////////\r\n //Budget Specific\r\n ///////////////////////////////////////////////////////////////////////\r\n\r\n buildBudgetTotals: function (date) {\r\n this.clearOldData()\r\n this.getBudgetItemsFromStoreAndRemoveDeletedItems()\r\n\r\n this.createTableRows()\r\n\r\n this.buildBudgetTable(date)\r\n\r\n if (this.tableData[0].value === 0 && this.tableData[1].value === 0) {\r\n this.tableData = []\r\n }\r\n\r\n return {\r\n tableData: this.tableData,\r\n tableTotal: this.tableTotal\r\n }\r\n },\r\n buildSingleBudgetTotals: function (budgetId, date) {\r\n this.clearOldData()\r\n this.getBudgetItemsFromStoreAndRemoveDeletedItems()\r\n\r\n this.createTableRows()\r\n\r\n this.buildSingleBudgetTable(budgetManager.findBudgetById(budgetId), date)\r\n\r\n if (this.tableData[0].value === 0 && this.tableData[1].value === 0) {\r\n this.tableData = []\r\n }\r\n\r\n return {\r\n tableData: this.tableData,\r\n tableTotal: this.tableTotal\r\n }\r\n },\r\n getBudgetItemsFromStoreAndRemoveDeletedItems: function () {\r\n this.items = store.state.Budgets\r\n\r\n\r\n ///Remove deleted items from items array\r\n this.itemsMinusDeleted = globalFunctions.removeDeletedObjectsFromItems(this.items)\r\n },\r\n createTableRows: function () {\r\n this.tableData.push({\r\n name: 'Spent',\r\n value: 0,\r\n percentage: 0\r\n },\r\n {\r\n name: 'Remaining',\r\n value: 0,\r\n percentage: 0\r\n })\r\n },\r\n buildBudgetTable: function (date) {\r\n for (let i = 0; i < this.itemsMinusDeleted.length; i++) {\r\n let budgetBalance = budgetManager.getActiveBudgetBalance(this.itemsMinusDeleted[i], date)\r\n\r\n this.addToBudgetTableData(budgetBalance)\r\n\r\n this.calculatePercentages()\r\n }\r\n },\r\n buildSingleBudgetTable: function (budget, date) {\r\n for (let i = 0; i < this.itemsMinusDeleted.length; i++) {\r\n if (this.itemsMinusDeleted[i].budgetName === budget.budgetName) {\r\n let budgetBalance = budgetManager.getActiveBudgetBalance(this.itemsMinusDeleted[i], date)\r\n\r\n this.addToBudgetTableData(budgetBalance)\r\n\r\n this.calculatePercentages()\r\n }\r\n }\r\n },\r\n addToBudgetTableData: function (item) {\r\n //Update Spent\r\n this.tableData[0].value = parseFloat(this.tableData[0].value) + parseFloat(item.amountSpent)\r\n\r\n //Update Remaining\r\n this.tableData[1].value = parseFloat(this.tableData[1].value) + (parseFloat(item.budgetAmount) - parseFloat(item.amountSpent))\r\n\r\n this.tableTotal = parseFloat(this.tableTotal) + parseFloat(item.budgetAmount)\r\n },\r\n\r\n}\r\n\r\n\r\n///////////////////////////////////////////////////////////////////////\r\n//Income Items By Category Functions\r\n///////////////////////////////////////////////////////////////////////\r\n\r\nexport const returnIncomeCategoriesAndThereItems = (period) => {\r\n let items = getIncomeItemsFromStoreAndRemoveDeletedItems()\r\n\r\n return buildJsonObject(period, items)\r\n}\r\n\r\nexport const getIncomeItemsFromStoreAndRemoveDeletedItems = () => {\r\n let items = widgetManager.getIncomeTransactions(store.state.Transactions)\r\n\r\n ///Remove deleted items from items array\r\n return globalFunctions.removeDeletedObjectsFromItems(items)\r\n}\r\n\r\nexport const buildJsonObject = (period, items) => {\r\n let jsonObject = []\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n\r\n if (widgetManager.isItemWithinPeriod(\r\n items[i].transactionBalances[items[0].transactionBalances.length - 1].transactionDate,\r\n period)) {\r\n\r\n if (jsonObject.length === 0) {\r\n jsonObject[0] = [items[i].category, [items[i]]]\r\n\r\n continue\r\n }\r\n\r\n for (let k = 0; k < jsonObject.length; k++) {\r\n if (jsonObject[k][0] === items[i].category) {\r\n jsonObject[k][1].push(items[i])\r\n\r\n continue\r\n } else if (k === jsonObject.length - 1) {\r\n jsonObject.push([items[i].category, [items[i]]])\r\n break\r\n }\r\n }\r\n }\r\n }\r\n\r\n return jsonObject\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////////\r\n//End Of Income Items By Category Functions\r\n///////////////////////////////////////////////////////////////////////\r\n\r\n\r\n///////////////////////////////////////////////////////////////////////\r\n//Expense Items By Category Functions\r\n///////////////////////////////////////////////////////////////////////\r\n\r\nexport const returnExpenseCategoriesAndThereItems = (period) => {\r\n let items = getExpenseItemsFromStoreAndRemoveDeletedItems()\r\n\r\n return buildJsonObject(period, items)\r\n}\r\n\r\nexport const getExpenseItemsFromStoreAndRemoveDeletedItems = () => {\r\n let items = widgetManager.getExpenseTransactions(store.state.Transactions)\r\n\r\n ///Remove deleted items from items array\r\n return globalFunctions.removeDeletedObjectsFromItems(items)\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////////\r\n//End Of Expense Items By Category Functions\r\n///////////////////////////////////////////////////////////////////////\r\n\r\n","// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n expansionPanel: InstanceType\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions') ||\n [this.$createElement(VIcon, this.expandIcon)]\n\n return this.$createElement(VFadeTransition, [\n this.$createElement('div', {\n staticClass: 'v-expansion-panel-header__icon',\n class: {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n },\n directives: [{\n name: 'show',\n value: !this.isDisabled,\n }],\n }, icon),\n ])\n },\n },\n\n render (h): VNode {\n return h('button', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-header',\n class: this.classes,\n attrs: {\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n 'aria-expanded': this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.$listeners,\n click: this.onClick,\n mousedown: () => (this.hasMousedown = true),\n mouseup: () => (this.hasMousedown = false),\n },\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ])\n },\n})\n","// Components\nimport VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\nimport VExpansionPanelContent from './VExpansionPanelContent'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VExpansionPanelHeaderInstance = InstanceType\ntype VExpansionPanelContentInstance = InstanceType\n\nexport default mixins(\n GroupableFactory<'expansionPanels', typeof VExpansionPanels>('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'),\n RegistrableProvide('expansionPanel', true)\n /* @vue/component */\n).extend({\n name: 'v-expansion-panel',\n\n props: {\n disabled: Boolean,\n readonly: Boolean,\n },\n\n data () {\n return {\n content: null as VExpansionPanelContentInstance | null,\n header: null as VExpansionPanelHeaderInstance | null,\n nextIsActive: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel--active': this.isActive,\n 'v-expansion-panel--next-active': this.nextIsActive,\n 'v-expansion-panel--disabled': this.isDisabled,\n ...this.groupClasses,\n }\n },\n isDisabled (): boolean {\n return this.expansionPanels.disabled || this.disabled\n },\n isReadonly (): boolean {\n return this.expansionPanels.readonly || this.readonly\n },\n },\n\n methods: {\n registerContent (vm: VExpansionPanelContentInstance) {\n this.content = vm\n },\n unregisterContent () {\n this.content = null\n },\n registerHeader (vm: VExpansionPanelHeaderInstance) {\n this.header = vm\n vm.$on('click', this.onClick)\n },\n unregisterHeader () {\n this.header = null\n },\n onClick (e: MouseEvent) {\n if (e.detail) this.header!.$el.blur()\n\n this.$emit('click', e)\n\n this.isReadonly || this.isDisabled || this.toggle()\n },\n toggle () {\n this.$nextTick(() => this.$emit('change'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-expansion-panel',\n class: this.classes,\n attrs: {\n 'aria-expanded': String(this.isActive),\n },\n }, getSlot(this))\n },\n})\n"],"sourceRoot":""}