{"version":3,"sources":["webpack:///./node_modules/vuetify/lib/components/VGrid/VFlex.js","webpack:///./src/views/accounting/Budget.vue?08f9","webpack:///src/views/accounting/Budget.vue","webpack:///./src/views/accounting/Budget.vue?833d","webpack:///./src/views/accounting/Budget.vue?bd2f","webpack:///./node_modules/vuetify/lib/components/VDataTable/VSimpleTable.js","webpack:///./node_modules/vuetify/lib/components/VForm/VForm.js","webpack:///./node_modules/vuetify/lib/mixins/rippleable/index.js","webpack:///./src/views/accounting/Budget.vue?b80b","webpack:///./node_modules/vuetify/lib/components/VData/VData.js","webpack:///./node_modules/vuetify/lib/components/VDataIterator/VDataFooter.js","webpack:///./node_modules/vuetify/lib/components/VDataIterator/VDataIterator.js","webpack:///./node_modules/vuetify/lib/util/dedupeModelListeners.js","webpack:///./node_modules/vuetify/lib/util/rebuildFunctionalSlots.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/mixins/header.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/VDataTableHeaderMobile.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/VDataTableHeaderDesktop.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/VDataTableHeader.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/Row.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/RowGroup.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/MobileRow.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/VDataTable.js","webpack:///./node_modules/vuetify/lib/components/VCheckbox/VCheckbox.js","webpack:///./node_modules/vuetify/lib/components/VSwitch/VSwitch.js","webpack:///./node_modules/vuetify/lib/mixins/selectable/index.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","$router","currentRoute","meta","title","scopedSlots","_u","key","fn","ref","on","_g","_b","loading","model","value","callback","$$v","month","expression","monthMenu","maxDate","$event","reloadData","cancelBudgetEdit","_v","sendRequestLoading","isMassUpdate","sendForm","proxy","_e","tokenMissed","_s","massUpdateAllowPercentage","_l","clinic","index","staticStyle","id","massUpdateForm","$set","category","massUpdatePercentageHandler","budgetRules","inputFormData","percentageHandler","editorHandler","percentage","saveMassUpdate","xeroLoginHref","staticRenderFns","component","VBtn","VCheckbox","VContainer","VDataTable","VDatePicker","VFlex","VForm","VMenu","VProgressCircular","VSwitch","VTextField","extend","name","props","dense","Boolean","fixedHeader","height","Number","String","computed","themeClasses","methods","$slots","wrapper","style","default","h","class","classes","top","genWrapper","bottom","inheritAttrs","lazyValidation","data","inputs","watchers","errorBag","watch","val","errors","Object","values","includes","$emit","deep","immediate","input","watcher","$watch","_uid","valid","shouldValidate","hasOwnProperty","filter","validate","length","forEach","reset","resetErrorBag","setTimeout","resetValidation","push","watchInput","found","find","i","unwatch","$delete","novalidate","attrs$","submit","e","directives","ripple","type","center","assign","click","onChange","$listeners","items","Array","options","sortBy","sortDesc","customSort","Function","mustSort","multiSort","page","itemsPerPage","groupBy","groupDesc","customGroup","locale","disableSort","disablePagination","disableFiltering","search","customFilter","serverItemsLength","internalOptions","filteredItems","Math","ceil","itemsLength","min","pageStart","pageStop","pageCount","slice","sortItems","paginateItems","isGrouped","groupItems","computedItems","sort","sortArray","group","updateOptions","pagination","groupedItems","originalItemsLength","computedOptions","old","isArray","oldBy","oldDesc","by","desc","byIndex","findIndex","k","splice","toggle","map","s","max","$scopedSlots","scopedProps","required","itemsPerPageOptions","prevIcon","nextIcon","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","pageText","option","genDataItemsPerPageOption","obj","text","$vuetify","lang","t","computedIPPO","computedDataItemsPerPageOptions","ippo","VSelect","disabled","hideDetails","auto","minWidth","onChangeItemsPerPage","children","label","icon","VIcon","before","after","genIcon","onPreviousPage","rtl","onNextPage","disableNextPageIcon","unshift","onFirstPage","onLastPage","toString","genItemsPerPageSelect","genPaginationInfo","genIcons","VData","itemKey","singleSelect","expanded","mobileBreakpoint","singleExpand","noResultsText","noDataText","loadingText","hideDefaultFooter","footerProps","selectableKey","selection","expansion","internalCurrentItems","selectableItems","every","isSelected","some","item","isSelectable","breakpoint","width","parseInt","reduce","keys","breakingProps","original","replacement","$attrs","removedProps","prop","emit","select","v","expand","isExpanded","isMobile","content","filteredItemsLength","genEmptyWrapper","noData","noResults","empty","genEmpty","createItemProps","sanitizedFooterProps","outerProps","someItems","everyItem","toggleSelectAll","genItems","genFooter","$props","genDefaultScopedSlot","dedupeModelListeners","indexOf","rebuildFunctionalSlots","slots","slot","mixins","headers","sortIcon","showGroupBy","indeterminate","VSimpleCheckbox","size","sortByText","sortIndex","beingSorted","isDesc","sortable","active","asc","genSortIcon","VChip","nativeOn","stopPropagation","multiple","change","genSortChip","header","genSelectAll","sortHeaders","genSortSelect","th","tr","$t","ariaSort","ariaLabel","join","role","scope","align","divider","getAria","genGroupByToggle","genHeader","functional","mobile","VDataTableHeaderMobile","VDataTableHeaderDesktop","computedSlots","columns","slotName","scopedSlot","regularSlot","textAlign","headerClass","contentClass","summaryClass","mobileRowChildren","filterFn","searchTableItems","headersWithCustomFilters","headersWithoutCustomFilters","filtered","trim","VDataIterator","showSelect","showExpand","hideDefaultHeader","caption","headerProps","calculateWidths","headersLength","expandIcon","internalGroupBy","openCache","widths","undefined","defaultHeader","colspan","computedHeaders","acc","filterable","firstOption","window","addEventListener","calcWidths","removeEventListener","from","$el","querySelectorAll","clientWidth","columnSorters","call","progress","VProgressLinear","color","colspanAttrs","sanitizedHeaderProps","genLoading","genGroupedRows","genRows","genDefaultGroupedRow","isOpen","toggleFn","removeFn","remove","small","column","RowGroup","genScopedRows","genDefaultRows","rows","genDefaultExpandedRow","genDefaultSimpleRow","headerRow","expandedRow","MobileRow","Row","body","simpleProps","VSimpleTable","proxySlot","genCaption","genColgroup","genHeaders","genBody","genFooters","customFilterWithColumns","customSortWithHeaders","computedItemsPerPage","indeterminateIcon","offIcon","onIcon","inputIndeterminate","isActive","hasError","hasSuccess","hasColor","computedColor","$nextTick","setTextColor","validationState","dark","light","computedIcon","genInput","genRipple","rippleState","genCheckbox","genLabel","Touch","inset","flat","genSwitch","left","onSwipeLeft","right","onSwipeRight","switchData","genProgress","keyCode","event","inputValue","falseValue","trueValue","lazyValue","isDark","appIsDark","internalValue","isMultiple","valueComparator","preventDefault","isDisabled","computedId","domProps","checked","blur","onBlur","focus","onFocus","keydown","onKeydown","isFocused"],"mappings":"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","file":"js/chunk-453d2130.b52beae9.js","sourcesContent":["import \"../../../src/components/VGrid/_grid.sass\";\nimport Grid from './grid';\nexport default Grid('flex');\n//# sourceMappingURL=VFlex.js.map","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"white elevation-4 pt-0\",attrs:{\"fluid\":\"\"}},[_c('main-app-bar',{attrs:{\"title\":_vm.$router.currentRoute.meta.title},scopedSlots:_vm._u([{key:\"buttons\",fn:function(){return [_c('v-menu',{attrs:{\"close-on-content-click\":false,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"max-width\":\"290px\",\"min-width\":\"auto\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-text-field',_vm._g(_vm._b({staticClass:\"monthField\",attrs:{\"label\":\"Month\",\"readonly\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.loading},model:{value:(_vm.month),callback:function ($$v) {_vm.month=$$v},expression:\"month\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.monthMenu),callback:function ($$v) {_vm.monthMenu=$$v},expression:\"monthMenu\"}},[_c('v-date-picker',{attrs:{\"type\":\"month\",\"no-title\":\"\",\"max\":_vm.maxDate},on:{\"input\":function($event){_vm.monthMenu = false},\"change\":_vm.reloadData},model:{value:(_vm.month),callback:function ($$v) {_vm.month=$$v},expression:\"month\"}})],1),_c('v-btn',{staticClass:\"mx-4\",on:{\"click\":_vm.cancelBudgetEdit}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.sendRequestLoading,\"disabled\":_vm.isMassUpdate},on:{\"click\":_vm.sendForm}},[_vm._v(\"Save \")])]},proxy:true}])}),_c('v-flex',{staticClass:\"text-center\"},[(_vm.loading)?_c('v-progress-circular',{staticClass:\"mt-5\",attrs:{\"indeterminate\":\"\",\"color\":\"green\"}}):_vm._e()],1),(!_vm.tokenMissed && !_vm.loading)?_c('v-data-table',{staticClass:\"elevation-0 table-bordered pt-5\",attrs:{\"hide-default-header\":true,\"hide-default-footer\":true,\"item-key\":\"name\",\"show-expand\":\"\",\"fixed-header\":\"\",\"height\":\"calc(100vh - 100px)\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('thead',[_c('tr',[_c('th',{staticClass:\"text-center font-weight-bold body-2 sticky-column sticky-column-header\",attrs:{\"rowspan\":\"2\"}}),(_vm.isMassUpdate)?_c('th',{staticClass:\"text-center font-weight-bold body-2\"},[_vm._v(_vm._s(_vm.massUpdateAllowPercentage())+\"% \")]):_vm._e(),_vm._l((_vm.headers),function(clinic,index){return _c('th',{key:index},[_c('div',{staticClass:\"text-center body-2 text-uppercase font-weight-bold custom-years-title\"},[_vm._v(\" \"+_vm._s(clinic.title)+\" \")]),(_vm.isMassUpdate)?_c('div',{staticClass:\"d-flex justify-center align-center\",staticStyle:{\"margin-top\":\"-10px\"}},[_c('v-checkbox',{attrs:{\"multiple\":\"\",\"value\":clinic.id},model:{value:(_vm.massUpdateForm.clinics),callback:function ($$v) {_vm.$set(_vm.massUpdateForm, \"clinics\", $$v)},expression:\"massUpdateForm.clinics\"}})],1):_vm._e()])})],2)])]},proxy:true},{key:\"body\",fn:function(){return [_c('tbody',[_vm._l((_vm.tableData),function(category,index){return [_c('tr',{key:index},[_c('td',{staticClass:\"sticky-column\"},[_c('span',{staticClass:\"d-flex justify-space-between align-center \"},[_vm._v(\" \"+_vm._s(category.title)+\" \")])]),(_vm.isMassUpdate)?_c('td',[(_vm.isMassUpdate)?_c('v-text-field',{staticClass:\"inputMassUpdate\",attrs:{\"filled\":\"\",\"dense\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){return _vm.massUpdatePercentageHandler($event, category.title)}}}):_vm._e()],1):_vm._e(),_vm._l((category.clinics),function(clinic){return [_c('td',{key:index + 'clinic' + clinic.id,staticStyle:{\"text-align\":\"center\"}},[(clinic.editor)?_c('v-form',{staticClass:\"d-flex justify-center\"},[_c('v-text-field',{staticClass:\"inputInsideTable\",attrs:{\"rules\":_vm.budgetRules,\"placeholder\":\"Set percentage\"},model:{value:(_vm.inputFormData.percentage),callback:function ($$v) {_vm.$set(_vm.inputFormData, \"percentage\", $$v)},expression:\"inputFormData.percentage\"}}),_c('v-btn',{on:{\"click\":_vm.percentageHandler}},[_vm._v(\"Set\")])],1):_c('p',{staticClass:\"mb-0\",on:{\"click\":function($event){return _vm.editorHandler(true, category, clinic)}}},[_vm._v(_vm._s(clinic.percentage))])],1)]})],2)]})],2)]},proxy:true}],null,false,3282181792)}):_vm._e(),(!_vm.loading && !_vm.tokenMissed)?_c('v-flex',{staticClass:\"d-flex align-center\"},[_c('v-switch',{staticClass:\"pt-5 mr-5\",attrs:{\"label\":\"Mass update\"},model:{value:(_vm.isMassUpdate),callback:function ($$v) {_vm.isMassUpdate=$$v},expression:\"isMassUpdate\"}}),(_vm.isMassUpdate)?_c('v-btn',{staticClass:\"mx-4\",attrs:{\"color\":\"warning\"},on:{\"click\":_vm.saveMassUpdate}},[_vm._v(\"Apply\")]):_vm._e()],1):_vm._e(),(_vm.tokenMissed)?_c('div',{staticClass:\"text-center\"},[_c('h1',[_vm._v(\"Something wrong with your Xero access\")]),_c('v-btn',{staticClass:\"mt-5\",attrs:{\"href\":_vm.xeroLoginHref}},[_vm._v(\"Login\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/vuetify-loader/lib/loader.js??ref--17-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Budget.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vuetify-loader/lib/loader.js??ref--17-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Budget.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Budget.vue?vue&type=template&id=5e470660&scoped=true&\"\nimport script from \"./Budget.vue?vue&type=script&lang=js&\"\nexport * from \"./Budget.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Budget.vue?vue&type=style&index=0&id=5e470660&lang=scss&scoped=true&\"\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 \"5e470660\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VFlex } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCheckbox,VContainer,VDataTable,VDatePicker,VFlex,VForm,VMenu,VProgressCircular,VSwitch,VTextField})\n","import \"../../../src/components/VDataTable/VSimpleTable.sass\";\nimport { convertToUnit } from '../../util/helpers';\nimport Themeable from '../../mixins/themeable';\nimport mixins from '../../util/mixins';\nexport default mixins(Themeable).extend({\n name: 'v-simple-table',\n props: {\n dense: Boolean,\n fixedHeader: Boolean,\n height: [Number, String]\n },\n computed: {\n classes() {\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 ...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 }, [this.$createElement('table', this.$slots.default)]);\n }\n\n },\n\n render(h) {\n return h('div', {\n staticClass: 'v-data-table',\n class: this.classes\n }, [this.$slots.top, this.genWrapper(), this.$slots.bottom]);\n }\n\n});\n//# sourceMappingURL=VSimpleTable.js.map","// Mixins\nimport mixins from '../../util/mixins';\nimport BindsAttrs from '../../mixins/binds-attrs';\nimport { provide as RegistrableProvide } from '../../mixins/registrable';\n/* @vue/component */\n\nexport default mixins(BindsAttrs, RegistrableProvide('form')\n/* @vue/component */\n).extend({\n name: 'v-form',\n inheritAttrs: false,\n props: {\n lazyValidation: Boolean,\n value: Boolean\n },\n data: () => ({\n inputs: [],\n watchers: [],\n errorBag: {}\n }),\n watch: {\n errorBag: {\n handler(val) {\n const errors = Object.values(val).includes(true);\n this.$emit('input', !errors);\n },\n\n deep: true,\n immediate: true\n }\n },\n methods: {\n watchInput(input) {\n const watcher = input => {\n return input.$watch('hasError', val => {\n this.$set(this.errorBag, input._uid, val);\n }, {\n immediate: true\n });\n };\n\n const watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {}\n };\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', val => {\n if (!val) return; // Only watch if we're not already doing it\n\n if (this.errorBag.hasOwnProperty(input._uid)) return;\n watchers.valid = watcher(input);\n });\n } else {\n watchers.valid = watcher(input);\n }\n\n return watchers;\n },\n\n /** @public */\n validate() {\n return this.inputs.filter(input => !input.validate(true)).length === 0;\n },\n\n /** @public */\n reset() {\n this.inputs.forEach(input => input.reset());\n this.resetErrorBag();\n },\n\n resetErrorBag() {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {};\n }, 0);\n }\n },\n\n /** @public */\n resetValidation() {\n this.inputs.forEach(input => input.resetValidation());\n this.resetErrorBag();\n },\n\n register(input) {\n this.inputs.push(input);\n this.watchers.push(this.watchInput(input));\n },\n\n unregister(input) {\n const found = this.inputs.find(i => i._uid === input._uid);\n if (!found) return;\n const unwatch = this.watchers.find(i => i._uid === found._uid);\n\n if (unwatch) {\n unwatch.valid();\n unwatch.shouldValidate();\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid);\n this.inputs = this.inputs.filter(i => i._uid !== found._uid);\n this.$delete(this.errorBag, found._uid);\n }\n\n },\n\n render(h) {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$\n },\n on: {\n submit: e => this.$emit('submit', e)\n }\n }, this.$slots.default);\n }\n\n});\n//# sourceMappingURL=VForm.js.map","// Directives\nimport ripple from '../../directives/ripple'; // Types\n\nimport Vue from 'vue';\nexport default Vue.extend({\n name: 'rippleable',\n directives: {\n ripple\n },\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true\n }\n },\n methods: {\n genRipple(data = {}) {\n if (!this.ripple) return null;\n data.staticClass = 'v-input--selection-controls__ripple';\n data.directives = data.directives || [];\n data.directives.push({\n name: 'ripple',\n value: {\n center: true\n }\n });\n data.on = Object.assign({\n click: this.onChange\n }, this.$listeners);\n return this.$createElement('div', data);\n },\n\n onChange() {}\n\n }\n});\n//# sourceMappingURL=index.js.map","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--17-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Budget.vue?vue&type=style&index=0&id=5e470660&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/vuetify-loader/lib/loader.js??ref--17-0!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Budget.vue?vue&type=style&index=0&id=5e470660&lang=scss&scoped=true&\"","// Helpers\nimport { wrapInArray, sortItems, deepEqual, groupItems, searchItems } from '../../util/helpers';\nimport Vue from 'vue';\nexport default Vue.extend({\n name: 'v-data',\n inheritAttrs: false,\n props: {\n items: {\n type: Array,\n default: () => []\n },\n options: {\n type: Object,\n default: () => ({})\n },\n sortBy: {\n type: [String, Array],\n default: () => []\n },\n sortDesc: {\n type: [Boolean, Array],\n default: () => []\n },\n customSort: {\n type: Function,\n default: sortItems\n },\n mustSort: Boolean,\n multiSort: Boolean,\n page: {\n type: Number,\n default: 1\n },\n itemsPerPage: {\n type: Number,\n default: 10\n },\n groupBy: {\n type: [String, Array],\n default: () => []\n },\n groupDesc: {\n type: [Boolean, Array],\n default: () => []\n },\n customGroup: {\n type: Function,\n default: groupItems\n },\n locale: {\n type: String,\n default: 'en-US'\n },\n disableSort: Boolean,\n disablePagination: Boolean,\n disableFiltering: Boolean,\n search: String,\n customFilter: {\n type: Function,\n default: searchItems\n },\n serverItemsLength: {\n type: Number,\n default: -1\n }\n },\n\n data() {\n let internalOptions = {\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n sortBy: wrapInArray(this.sortBy),\n sortDesc: wrapInArray(this.sortDesc),\n groupBy: wrapInArray(this.groupBy),\n groupDesc: wrapInArray(this.groupDesc),\n mustSort: this.mustSort,\n multiSort: this.multiSort\n };\n\n if (this.options) {\n internalOptions = Object.assign(internalOptions, this.options);\n }\n\n return {\n internalOptions\n };\n },\n\n computed: {\n itemsLength() {\n return this.serverItemsLength >= 0 ? this.serverItemsLength : this.filteredItems.length;\n },\n\n pageCount() {\n return this.internalOptions.itemsPerPage <= 0 ? 1 : Math.ceil(this.itemsLength / this.internalOptions.itemsPerPage);\n },\n\n pageStart() {\n if (this.internalOptions.itemsPerPage === -1 || !this.items.length) return 0;\n return (this.internalOptions.page - 1) * this.internalOptions.itemsPerPage;\n },\n\n pageStop() {\n if (this.internalOptions.itemsPerPage === -1) return this.itemsLength;\n if (!this.items.length) return 0;\n return Math.min(this.itemsLength, this.internalOptions.page * this.internalOptions.itemsPerPage);\n },\n\n isGrouped() {\n return !!this.internalOptions.groupBy.length;\n },\n\n pagination() {\n return {\n page: this.internalOptions.page,\n itemsPerPage: this.internalOptions.itemsPerPage,\n pageStart: this.pageStart,\n pageStop: this.pageStop,\n pageCount: this.pageCount,\n itemsLength: this.itemsLength\n };\n },\n\n filteredItems() {\n let items = this.items.slice();\n\n if (!this.disableFiltering && this.serverItemsLength <= 0) {\n items = this.customFilter(items, this.search);\n }\n\n return items;\n },\n\n computedItems() {\n let items = this.filteredItems.slice();\n\n if (!this.disableSort && this.serverItemsLength <= 0) {\n items = this.sortItems(items);\n }\n\n if (!this.disablePagination && this.serverItemsLength <= 0) {\n items = this.paginateItems(items);\n }\n\n return items;\n },\n\n groupedItems() {\n return this.isGrouped ? this.groupItems(this.computedItems) : null;\n },\n\n scopedProps() {\n const props = {\n sort: this.sort,\n sortArray: this.sortArray,\n group: this.group,\n items: this.computedItems,\n options: this.internalOptions,\n updateOptions: this.updateOptions,\n pagination: this.pagination,\n groupedItems: this.groupedItems,\n originalItemsLength: this.items.length\n };\n return props;\n },\n\n computedOptions() {\n return { ...this.options\n };\n }\n\n },\n watch: {\n computedOptions: {\n handler(options, old) {\n if (deepEqual(options, old)) return;\n this.updateOptions(options);\n },\n\n deep: true,\n immediate: true\n },\n internalOptions: {\n handler(options, old) {\n if (deepEqual(options, old)) return;\n this.$emit('update:options', options);\n },\n\n deep: true,\n immediate: true\n },\n\n page(page) {\n this.updateOptions({\n page\n });\n },\n\n 'internalOptions.page'(page) {\n this.$emit('update:page', page);\n },\n\n itemsPerPage(itemsPerPage) {\n this.updateOptions({\n itemsPerPage\n });\n },\n\n 'internalOptions.itemsPerPage'(itemsPerPage) {\n this.$emit('update:items-per-page', itemsPerPage);\n },\n\n sortBy(sortBy) {\n this.updateOptions({\n sortBy: wrapInArray(sortBy)\n });\n },\n\n 'internalOptions.sortBy'(sortBy, old) {\n !deepEqual(sortBy, old) && this.$emit('update:sort-by', Array.isArray(this.sortBy) ? sortBy : sortBy[0]);\n },\n\n sortDesc(sortDesc) {\n this.updateOptions({\n sortDesc: wrapInArray(sortDesc)\n });\n },\n\n 'internalOptions.sortDesc'(sortDesc, old) {\n !deepEqual(sortDesc, old) && this.$emit('update:sort-desc', Array.isArray(this.sortDesc) ? sortDesc : sortDesc[0]);\n },\n\n groupBy(groupBy) {\n this.updateOptions({\n groupBy: wrapInArray(groupBy)\n });\n },\n\n 'internalOptions.groupBy'(groupBy, old) {\n !deepEqual(groupBy, old) && this.$emit('update:group-by', Array.isArray(this.groupBy) ? groupBy : groupBy[0]);\n },\n\n groupDesc(groupDesc) {\n this.updateOptions({\n groupDesc: wrapInArray(groupDesc)\n });\n },\n\n 'internalOptions.groupDesc'(groupDesc, old) {\n !deepEqual(groupDesc, old) && this.$emit('update:group-desc', Array.isArray(this.groupDesc) ? groupDesc : groupDesc[0]);\n },\n\n multiSort(multiSort) {\n this.updateOptions({\n multiSort\n });\n },\n\n 'internalOptions.multiSort'(multiSort) {\n this.$emit('update:multi-sort', multiSort);\n },\n\n mustSort(mustSort) {\n this.updateOptions({\n mustSort\n });\n },\n\n 'internalOptions.mustSort'(mustSort) {\n this.$emit('update:must-sort', mustSort);\n },\n\n pageCount: {\n handler(pageCount) {\n this.$emit('page-count', pageCount);\n },\n\n immediate: true\n },\n computedItems: {\n handler(computedItems) {\n this.$emit('current-items', computedItems);\n },\n\n immediate: true\n },\n pagination: {\n handler(pagination, old) {\n if (deepEqual(pagination, old)) return;\n this.$emit('pagination', this.pagination);\n },\n\n immediate: true\n }\n },\n methods: {\n toggle(key, oldBy, oldDesc, page, mustSort, multiSort) {\n let by = oldBy.slice();\n let desc = oldDesc.slice();\n const byIndex = by.findIndex(k => k === key);\n\n if (byIndex < 0) {\n if (!multiSort) {\n by = [];\n desc = [];\n }\n\n by.push(key);\n desc.push(false);\n } else if (byIndex >= 0 && !desc[byIndex]) {\n desc[byIndex] = true;\n } else if (!mustSort) {\n by.splice(byIndex, 1);\n desc.splice(byIndex, 1);\n } else {\n desc[byIndex] = false;\n } // Reset page to 1 if sortBy or sortDesc have changed\n\n\n if (!deepEqual(by, oldBy) || !deepEqual(desc, oldDesc)) {\n page = 1;\n }\n\n return {\n by,\n desc,\n page\n };\n },\n\n group(key) {\n const {\n by: groupBy,\n desc: groupDesc,\n page\n } = this.toggle(key, this.internalOptions.groupBy, this.internalOptions.groupDesc, this.internalOptions.page, true, false);\n this.updateOptions({\n groupBy,\n groupDesc,\n page\n });\n },\n\n sort(key) {\n if (Array.isArray(key)) return this.sortArray(key);\n const {\n by: sortBy,\n desc: sortDesc,\n page\n } = this.toggle(key, this.internalOptions.sortBy, this.internalOptions.sortDesc, this.internalOptions.page, this.mustSort, this.multiSort);\n this.updateOptions({\n sortBy,\n sortDesc,\n page\n });\n },\n\n sortArray(sortBy) {\n const sortDesc = sortBy.map(s => {\n const i = this.internalOptions.sortBy.findIndex(k => k === s);\n return i > -1 ? this.internalOptions.sortDesc[i] : false;\n });\n this.updateOptions({\n sortBy,\n sortDesc\n });\n },\n\n updateOptions(options) {\n this.internalOptions = { ...this.internalOptions,\n ...options,\n page: this.serverItemsLength < 0 ? Math.max(1, Math.min(options.page || this.internalOptions.page, this.pageCount)) : options.page || this.internalOptions.page\n };\n },\n\n sortItems(items) {\n let sortBy = this.internalOptions.sortBy;\n let sortDesc = this.internalOptions.sortDesc;\n\n if (this.internalOptions.groupBy.length) {\n sortBy = [...this.internalOptions.groupBy, ...sortBy];\n sortDesc = [...this.internalOptions.groupDesc, ...sortDesc];\n }\n\n return this.customSort(items, sortBy, sortDesc, this.locale);\n },\n\n groupItems(items) {\n return this.customGroup(items, this.internalOptions.groupBy, this.internalOptions.groupDesc);\n },\n\n paginateItems(items) {\n // Make sure we don't try to display non-existant page if items suddenly change\n // TODO: Could possibly move this to pageStart/pageStop?\n if (this.serverItemsLength === -1 && items.length <= this.pageStart) {\n this.internalOptions.page = Math.max(1, this.internalOptions.page - 1);\n }\n\n return items.slice(this.pageStart, this.pageStop);\n }\n\n },\n\n render() {\n return this.$scopedSlots.default && this.$scopedSlots.default(this.scopedProps);\n }\n\n});\n//# sourceMappingURL=VData.js.map","import \"../../../src/components/VDataIterator/VDataFooter.sass\"; // Components\n\nimport VSelect from '../VSelect/VSelect';\nimport VIcon from '../VIcon';\nimport VBtn from '../VBtn'; // Types\n\nimport Vue from 'vue';\nexport default Vue.extend({\n name: 'v-data-footer',\n props: {\n options: {\n type: Object,\n required: true\n },\n pagination: {\n type: Object,\n required: true\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => [5, 10, 15, -1]\n },\n prevIcon: {\n type: String,\n default: '$prev'\n },\n nextIcon: {\n type: String,\n default: '$next'\n },\n firstIcon: {\n type: String,\n default: '$first'\n },\n lastIcon: {\n type: String,\n default: '$last'\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText'\n },\n itemsPerPageAllText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageAll'\n },\n showFirstLastPage: Boolean,\n showCurrentPage: Boolean,\n disablePagination: Boolean,\n disableItemsPerPage: Boolean,\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText'\n }\n },\n computed: {\n disableNextPageIcon() {\n return this.options.itemsPerPage <= 0 || this.options.page * this.options.itemsPerPage >= this.pagination.itemsLength || this.pagination.pageStop < 0;\n },\n\n computedDataItemsPerPageOptions() {\n return this.itemsPerPageOptions.map(option => {\n if (typeof option === 'object') return option;else return this.genDataItemsPerPageOption(option);\n });\n }\n\n },\n methods: {\n updateOptions(obj) {\n this.$emit('update:options', Object.assign({}, this.options, obj));\n },\n\n onFirstPage() {\n this.updateOptions({\n page: 1\n });\n },\n\n onPreviousPage() {\n this.updateOptions({\n page: this.options.page - 1\n });\n },\n\n onNextPage() {\n this.updateOptions({\n page: this.options.page + 1\n });\n },\n\n onLastPage() {\n this.updateOptions({\n page: this.pagination.pageCount\n });\n },\n\n onChangeItemsPerPage(itemsPerPage) {\n this.updateOptions({\n itemsPerPage,\n page: 1\n });\n },\n\n genDataItemsPerPageOption(option) {\n return {\n text: option === -1 ? this.$vuetify.lang.t(this.itemsPerPageAllText) : String(option),\n value: option\n };\n },\n\n genItemsPerPageSelect() {\n let value = this.options.itemsPerPage;\n const computedIPPO = this.computedDataItemsPerPageOptions;\n if (computedIPPO.length <= 1) return null;\n if (!computedIPPO.find(ippo => ippo.value === value)) value = computedIPPO[0];\n return this.$createElement('div', {\n staticClass: 'v-data-footer__select'\n }, [this.$vuetify.lang.t(this.itemsPerPageText), this.$createElement(VSelect, {\n attrs: {\n 'aria-label': this.itemsPerPageText\n },\n props: {\n disabled: this.disableItemsPerPage,\n items: computedIPPO,\n value,\n hideDetails: true,\n auto: true,\n minWidth: '75px'\n },\n on: {\n input: this.onChangeItemsPerPage\n }\n })]);\n },\n\n genPaginationInfo() {\n let children = ['–'];\n\n if (this.pagination.itemsLength && this.pagination.itemsPerPage) {\n const itemsLength = this.pagination.itemsLength;\n const pageStart = this.pagination.pageStart + 1;\n const pageStop = itemsLength < this.pagination.pageStop || this.pagination.pageStop < 0 ? itemsLength : this.pagination.pageStop;\n children = this.$scopedSlots['page-text'] ? [this.$scopedSlots['page-text']({\n pageStart,\n pageStop,\n itemsLength\n })] : [this.$vuetify.lang.t(this.pageText, pageStart, pageStop, itemsLength)];\n }\n\n return this.$createElement('div', {\n class: 'v-data-footer__pagination'\n }, children);\n },\n\n genIcon(click, disabled, label, icon) {\n return this.$createElement(VBtn, {\n props: {\n disabled: disabled || this.disablePagination,\n icon: true,\n text: true\n },\n on: {\n click\n },\n attrs: {\n 'aria-label': label\n }\n }, [this.$createElement(VIcon, icon)]);\n },\n\n genIcons() {\n const before = [];\n const after = [];\n before.push(this.genIcon(this.onPreviousPage, this.options.page === 1, this.$vuetify.lang.t('$vuetify.dataFooter.prevPage'), this.$vuetify.rtl ? this.nextIcon : this.prevIcon));\n after.push(this.genIcon(this.onNextPage, this.disableNextPageIcon, this.$vuetify.lang.t('$vuetify.dataFooter.nextPage'), this.$vuetify.rtl ? this.prevIcon : this.nextIcon));\n\n if (this.showFirstLastPage) {\n before.unshift(this.genIcon(this.onFirstPage, this.options.page === 1, this.$vuetify.lang.t('$vuetify.dataFooter.firstPage'), this.$vuetify.rtl ? this.lastIcon : this.firstIcon));\n after.push(this.genIcon(this.onLastPage, this.options.page >= this.pagination.pageCount || this.options.itemsPerPage === -1, this.$vuetify.lang.t('$vuetify.dataFooter.lastPage'), this.$vuetify.rtl ? this.firstIcon : this.lastIcon));\n }\n\n return [this.$createElement('div', {\n staticClass: 'v-data-footer__icons-before'\n }, before), this.showCurrentPage && this.$createElement('span', [this.options.page.toString()]), this.$createElement('div', {\n staticClass: 'v-data-footer__icons-after'\n }, after)];\n }\n\n },\n\n render() {\n return this.$createElement('div', {\n staticClass: 'v-data-footer'\n }, [this.genItemsPerPageSelect(), this.genPaginationInfo(), this.genIcons()]);\n }\n\n});\n//# sourceMappingURL=VDataFooter.js.map","// Components\nimport { VData } from '../VData';\nimport VDataFooter from './VDataFooter'; // Mixins\n\nimport Themeable from '../../mixins/themeable'; // Helpers\n\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, camelizeObjectKeys } from '../../util/helpers';\nimport { breaking, removed } from '../../util/console';\n/* @vue/component */\n\nexport default Themeable.extend({\n name: 'v-data-iterator',\n props: { ...VData.options.props,\n itemKey: {\n type: String,\n default: 'id'\n },\n value: {\n type: Array,\n default: () => []\n },\n singleSelect: Boolean,\n expanded: {\n type: Array,\n default: () => []\n },\n mobileBreakpoint: {\n type: [Number, String],\n default: 600\n },\n singleExpand: Boolean,\n loading: [Boolean, String],\n noResultsText: {\n type: String,\n default: '$vuetify.dataIterator.noResultsText'\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText'\n },\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText'\n },\n hideDefaultFooter: Boolean,\n footerProps: Object,\n selectableKey: {\n type: String,\n default: 'isSelectable'\n }\n },\n data: () => ({\n selection: {},\n expansion: {},\n internalCurrentItems: []\n }),\n computed: {\n everyItem() {\n return !!this.selectableItems.length && this.selectableItems.every(i => this.isSelected(i));\n },\n\n someItems() {\n return this.selectableItems.some(i => this.isSelected(i));\n },\n\n sanitizedFooterProps() {\n return camelizeObjectKeys(this.footerProps);\n },\n\n selectableItems() {\n return this.internalCurrentItems.filter(item => this.isSelectable(item));\n },\n\n isMobile() {\n // Guard against SSR render\n // https://github.com/vuetifyjs/vuetify/issues/7410\n if (this.$vuetify.breakpoint.width === 0) return false;\n return this.$vuetify.breakpoint.width < parseInt(this.mobileBreakpoint, 10);\n }\n\n },\n watch: {\n value: {\n handler(value) {\n this.selection = value.reduce((selection, item) => {\n selection[getObjectValueByPath(item, this.itemKey)] = item;\n return selection;\n }, {});\n },\n\n immediate: true\n },\n\n selection(value, old) {\n if (deepEqual(Object.keys(value), Object.keys(old))) return;\n this.$emit('input', Object.values(value));\n },\n\n expanded: {\n handler(value) {\n this.expansion = value.reduce((expansion, item) => {\n expansion[getObjectValueByPath(item, this.itemKey)] = true;\n return expansion;\n }, {});\n },\n\n immediate: true\n },\n\n expansion(value, old) {\n if (deepEqual(value, old)) return;\n const keys = Object.keys(value).filter(k => value[k]);\n const expanded = !keys.length ? [] : this.items.filter(i => keys.includes(String(getObjectValueByPath(i, this.itemKey))));\n this.$emit('update:expanded', expanded);\n }\n\n },\n\n created() {\n const breakingProps = [['disable-initial-sort', 'sort-by'], ['filter', 'custom-filter'], ['pagination', 'options'], ['total-items', 'server-items-length'], ['hide-actions', 'hide-default-footer'], ['rows-per-page-items', 'footer-props.items-per-page-options'], ['rows-per-page-text', 'footer-props.items-per-page-text'], ['prev-icon', 'footer-props.prev-icon'], ['next-icon', 'footer-props.next-icon']];\n /* istanbul ignore next */\n\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this);\n });\n const removedProps = ['expand', 'content-class', 'content-props', 'content-tag'];\n /* istanbul ignore next */\n\n removedProps.forEach(prop => {\n if (this.$attrs.hasOwnProperty(prop)) removed(prop);\n });\n },\n\n methods: {\n toggleSelectAll(value) {\n const selection = Object.assign({}, this.selection);\n\n for (let i = 0; i < this.selectableItems.length; i++) {\n const item = this.selectableItems[i];\n if (!this.isSelectable(item)) continue;\n const key = getObjectValueByPath(item, this.itemKey);\n if (value) selection[key] = item;else delete selection[key];\n }\n\n this.selection = selection;\n this.$emit('toggle-select-all', {\n items: this.internalCurrentItems,\n value\n });\n },\n\n isSelectable(item) {\n return getObjectValueByPath(item, this.selectableKey) !== false;\n },\n\n isSelected(item) {\n return !!this.selection[getObjectValueByPath(item, this.itemKey)] || false;\n },\n\n select(item, value = true, emit = true) {\n if (!this.isSelectable(item)) return;\n const selection = this.singleSelect ? {} : Object.assign({}, this.selection);\n const key = getObjectValueByPath(item, this.itemKey);\n if (value) selection[key] = item;else delete selection[key];\n\n if (this.singleSelect && emit) {\n const keys = Object.keys(this.selection);\n const old = keys.length && getObjectValueByPath(this.selection[keys[0]], this.itemKey);\n old && old !== key && this.$emit('item-selected', {\n item: this.selection[old],\n value: false\n });\n }\n\n this.selection = selection;\n emit && this.$emit('item-selected', {\n item,\n value\n });\n },\n\n isExpanded(item) {\n return this.expansion[getObjectValueByPath(item, this.itemKey)] || false;\n },\n\n expand(item, value = true) {\n const expansion = this.singleExpand ? {} : Object.assign({}, this.expansion);\n const key = getObjectValueByPath(item, this.itemKey);\n if (value) expansion[key] = true;else delete expansion[key];\n this.expansion = expansion;\n this.$emit('item-expanded', {\n item,\n value\n });\n },\n\n createItemProps(item) {\n return {\n item,\n select: v => this.select(item, v),\n isSelected: this.isSelected(item),\n expand: v => this.expand(item, v),\n isExpanded: this.isExpanded(item),\n isMobile: this.isMobile\n };\n },\n\n genEmptyWrapper(content) {\n return this.$createElement('div', content);\n },\n\n genEmpty(originalItemsLength, filteredItemsLength) {\n if (originalItemsLength === 0 && this.loading) {\n const loading = this.$slots['loading'] || this.$vuetify.lang.t(this.loadingText);\n return this.genEmptyWrapper(loading);\n } else if (originalItemsLength === 0) {\n const noData = this.$slots['no-data'] || this.$vuetify.lang.t(this.noDataText);\n return this.genEmptyWrapper(noData);\n } else if (filteredItemsLength === 0) {\n const noResults = this.$slots['no-results'] || this.$vuetify.lang.t(this.noResultsText);\n return this.genEmptyWrapper(noResults);\n }\n\n return null;\n },\n\n genItems(props) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength);\n if (empty) return [empty];\n\n if (this.$scopedSlots.default) {\n return this.$scopedSlots.default({ ...props,\n isSelected: this.isSelected,\n select: this.select,\n isExpanded: this.isExpanded,\n expand: this.expand\n });\n }\n\n if (this.$scopedSlots.item) {\n return props.items.map(item => this.$scopedSlots.item(this.createItemProps(item)));\n }\n\n return [];\n },\n\n genFooter(props) {\n if (this.hideDefaultFooter) return null;\n const data = {\n props: { ...this.sanitizedFooterProps,\n options: props.options,\n pagination: props.pagination\n },\n on: {\n 'update:options': value => props.updateOptions(value)\n }\n };\n const scopedSlots = getPrefixedScopedSlots('footer.', this.$scopedSlots);\n return this.$createElement(VDataFooter, {\n scopedSlots,\n ...data\n });\n },\n\n genDefaultScopedSlot(props) {\n const outerProps = { ...props,\n someItems: this.someItems,\n everyItem: this.everyItem,\n toggleSelectAll: this.toggleSelectAll\n };\n return this.$createElement('div', {\n staticClass: 'v-data-iterator'\n }, [getSlot(this, 'header', outerProps, true), this.genItems(props), this.genFooter(props), getSlot(this, 'footer', outerProps, true)]);\n }\n\n },\n\n render() {\n return this.$createElement(VData, {\n props: this.$props,\n on: {\n 'update:options': (v, old) => !deepEqual(v, old) && this.$emit('update:options', v),\n 'update:page': v => this.$emit('update:page', v),\n 'update:items-per-page': v => this.$emit('update:items-per-page', v),\n 'update:sort-by': v => this.$emit('update:sort-by', v),\n 'update:sort-desc': v => this.$emit('update:sort-desc', v),\n 'update:group-by': v => this.$emit('update:group-by', v),\n 'update:group-desc': v => this.$emit('update:group-desc', v),\n pagination: (v, old) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'current-items': v => {\n this.internalCurrentItems = v;\n this.$emit('current-items', v);\n },\n 'page-count': v => this.$emit('page-count', v)\n },\n scopedSlots: {\n default: this.genDefaultScopedSlot\n }\n });\n }\n\n});\n//# sourceMappingURL=VDataIterator.js.map","/**\n * Removes duplicate `@input` listeners when\n * using v-model with functional components\n *\n * @see https://github.com/vuetifyjs/vuetify/issues/4460\n */\nexport default function dedupeModelListeners(data) {\n if (data.model && data.on && data.on.input) {\n if (Array.isArray(data.on.input)) {\n const i = data.on.input.indexOf(data.model.callback);\n if (i > -1) data.on.input.splice(i, 1);\n } else {\n delete data.on.input;\n }\n }\n}\n//# sourceMappingURL=dedupeModelListeners.js.map","export default function rebuildFunctionalSlots(slots, h) {\n const children = [];\n\n for (const slot in slots) {\n if (slots.hasOwnProperty(slot)) {\n children.push(h('template', {\n slot\n }, slots[slot]));\n }\n }\n\n return children;\n}\n//# sourceMappingURL=rebuildFunctionalSlots.js.map","import VIcon from '../../VIcon';\nimport VSimpleCheckbox from '../../VCheckbox/VSimpleCheckbox';\nimport ripple from '../../../directives/ripple';\nimport mixins from '../../../util/mixins';\nexport default mixins().extend({\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple\n },\n props: {\n headers: {\n type: Array,\n required: true\n },\n options: {\n type: Object,\n default: () => ({\n page: 1,\n itemsPerPage: 10,\n sortBy: [],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: false\n })\n },\n sortIcon: {\n type: String,\n default: '$sort'\n },\n everyItem: Boolean,\n someItems: Boolean,\n showGroupBy: Boolean,\n singleSelect: Boolean,\n disableSort: Boolean\n },\n methods: {\n genSelectAll() {\n const data = {\n props: {\n value: this.everyItem,\n indeterminate: !this.everyItem && this.someItems\n },\n on: {\n input: v => this.$emit('toggle-select-all', v)\n }\n };\n\n if (this.$scopedSlots['data-table-select']) {\n return this.$scopedSlots['data-table-select'](data);\n }\n\n return this.$createElement(VSimpleCheckbox, {\n staticClass: 'v-data-table__checkbox',\n ...data\n });\n },\n\n genSortIcon() {\n return this.$createElement(VIcon, {\n staticClass: 'v-data-table-header__icon',\n props: {\n size: 18\n }\n }, [this.sortIcon]);\n }\n\n }\n});\n//# sourceMappingURL=header.js.map","import mixins from '../../util/mixins';\nimport VSelect from '../VSelect/VSelect';\nimport VChip from '../VChip';\nimport header from './mixins/header';\nimport { wrapInArray } from '../../util/helpers';\nexport default mixins(header).extend({\n name: 'v-data-table-header-mobile',\n props: {\n sortByText: {\n type: String,\n default: '$vuetify.dataTable.sortBy'\n }\n },\n methods: {\n genSortChip(props) {\n const children = [props.item.text];\n const sortIndex = this.options.sortBy.findIndex(k => k === props.item.value);\n const beingSorted = sortIndex >= 0;\n const isDesc = this.options.sortDesc[sortIndex];\n children.push(this.$createElement('div', {\n staticClass: 'v-chip__close',\n class: {\n sortable: true,\n active: beingSorted,\n asc: beingSorted && !isDesc,\n desc: beingSorted && isDesc\n }\n }, [this.genSortIcon()]));\n return this.$createElement(VChip, {\n staticClass: 'sortable',\n nativeOn: {\n click: e => {\n e.stopPropagation();\n this.$emit('sort', props.item.value);\n }\n }\n }, children);\n },\n\n genSortSelect(items) {\n return this.$createElement(VSelect, {\n props: {\n label: this.$vuetify.lang.t(this.sortByText),\n items,\n hideDetails: true,\n multiple: this.options.multiSort,\n value: this.options.multiSort ? this.options.sortBy : this.options.sortBy[0]\n },\n on: {\n change: v => this.$emit('sort', v)\n },\n scopedSlots: {\n selection: props => this.genSortChip(props)\n }\n });\n }\n\n },\n\n render(h) {\n const children = [];\n const header = this.headers.find(h => h.value === 'data-table-select');\n\n if (header && !this.singleSelect) {\n children.push(this.$createElement('div', {\n class: ['v-data-table-header-mobile__select', ...wrapInArray(header.class)],\n attrs: {\n width: header.width\n }\n }, [this.genSelectAll()]));\n }\n\n const sortHeaders = this.headers.filter(h => h.sortable !== false && h.value !== 'data-table-select');\n\n if (!this.disableSort && sortHeaders.length) {\n children.push(this.genSortSelect(sortHeaders));\n }\n\n const th = h('th', [h('div', {\n staticClass: 'v-data-table-header-mobile__wrapper'\n }, children)]);\n const tr = h('tr', [th]);\n return h('thead', {\n staticClass: 'v-data-table-header v-data-table-header-mobile'\n }, [tr]);\n }\n\n});\n//# sourceMappingURL=VDataTableHeaderMobile.js.map","import mixins from '../../util/mixins';\nimport header from './mixins/header';\nimport { wrapInArray, convertToUnit } from '../../util/helpers';\nexport default mixins(header).extend({\n name: 'v-data-table-header-desktop',\n methods: {\n genGroupByToggle(header) {\n return this.$createElement('span', {\n on: {\n click: e => {\n e.stopPropagation();\n this.$emit('group', header.value);\n }\n }\n }, ['group']);\n },\n\n getAria(beingSorted, isDesc) {\n const $t = key => this.$vuetify.lang.t(`$vuetify.dataTable.ariaLabel.${key}`);\n\n let ariaSort = 'none';\n let ariaLabel = [$t('sortNone'), $t('activateAscending')];\n\n if (!beingSorted) {\n return {\n ariaSort,\n ariaLabel: ariaLabel.join(' ')\n };\n }\n\n if (isDesc) {\n ariaSort = 'descending';\n ariaLabel = [$t('sortDescending'), $t(this.options.mustSort ? 'activateAscending' : 'activateNone')];\n } else {\n ariaSort = 'ascending';\n ariaLabel = [$t('sortAscending'), $t('activateDescending')];\n }\n\n return {\n ariaSort,\n ariaLabel: ariaLabel.join(' ')\n };\n },\n\n genHeader(header) {\n const data = {\n attrs: {\n role: 'columnheader',\n scope: 'col',\n 'aria-label': header.text || ''\n },\n style: {\n width: convertToUnit(header.width),\n minWidth: convertToUnit(header.width)\n },\n class: [`text-${header.align || 'start'}`, ...wrapInArray(header.class), header.divider && 'v-data-table__divider'],\n on: {}\n };\n const children = [];\n\n if (header.value === 'data-table-select' && !this.singleSelect) {\n return this.$createElement('th', data, [this.genSelectAll()]);\n }\n\n children.push(this.$scopedSlots[header.value] ? this.$scopedSlots[header.value]({\n header\n }) : this.$createElement('span', [header.text]));\n\n if (!this.disableSort && (header.sortable || !header.hasOwnProperty('sortable'))) {\n data.on['click'] = () => this.$emit('sort', header.value);\n\n const sortIndex = this.options.sortBy.findIndex(k => k === header.value);\n const beingSorted = sortIndex >= 0;\n const isDesc = this.options.sortDesc[sortIndex];\n data.class.push('sortable');\n const {\n ariaLabel,\n ariaSort\n } = this.getAria(beingSorted, isDesc);\n data.attrs['aria-label'] += `${header.text ? ': ' : ''}${ariaLabel}`;\n data.attrs['aria-sort'] = ariaSort;\n\n if (beingSorted) {\n data.class.push('active');\n data.class.push(isDesc ? 'desc' : 'asc');\n }\n\n if (header.align === 'end') children.unshift(this.genSortIcon());else children.push(this.genSortIcon());\n\n if (this.options.multiSort && beingSorted) {\n children.push(this.$createElement('span', {\n class: 'v-data-table-header__sort-badge'\n }, [String(sortIndex + 1)]));\n }\n }\n\n if (this.showGroupBy) children.push(this.genGroupByToggle(header));\n return this.$createElement('th', data, children);\n }\n\n },\n\n render() {\n return this.$createElement('thead', {\n staticClass: 'v-data-table-header'\n }, [this.$createElement('tr', this.headers.map(header => this.genHeader(header)))]);\n }\n\n});\n//# sourceMappingURL=VDataTableHeaderDesktop.js.map","import \"../../../src/components/VDataTable/VDataTableHeader.sass\";\nimport Vue from 'vue';\nimport dedupeModelListeners from '../../util/dedupeModelListeners';\nimport rebuildSlots from '../../util/rebuildFunctionalSlots';\nimport VDataTableHeaderMobile from './VDataTableHeaderMobile';\nimport VDataTableHeaderDesktop from './VDataTableHeaderDesktop';\nexport default Vue.extend({\n name: 'v-data-table-header',\n functional: true,\n props: {\n mobile: Boolean\n },\n\n render(h, {\n props,\n data,\n slots\n }) {\n dedupeModelListeners(data);\n const children = rebuildSlots(slots(), h);\n\n if (props.mobile) {\n return h(VDataTableHeaderMobile, data, children);\n } else {\n return h(VDataTableHeaderDesktop, data, children);\n }\n }\n\n});\n//# sourceMappingURL=VDataTableHeader.js.map","// Types\nimport Vue from 'vue'; // Utils\n\nimport { getObjectValueByPath } from '../../util/helpers';\nexport default Vue.extend({\n name: 'row',\n functional: true,\n props: {\n headers: Array,\n item: Object,\n rtl: Boolean\n },\n\n render(h, {\n props,\n slots,\n data\n }) {\n const computedSlots = slots();\n const columns = props.headers.map(header => {\n const children = [];\n const value = getObjectValueByPath(props.item, header.value);\n const slotName = header.value;\n const scopedSlot = data.scopedSlots && data.scopedSlots[slotName];\n const regularSlot = computedSlots[slotName];\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n header,\n value\n }));\n } else if (regularSlot) {\n children.push(regularSlot);\n } else {\n children.push(value == null ? value : String(value));\n }\n\n const textAlign = `text-${header.align || 'start'}`;\n return h('td', {\n class: {\n [textAlign]: true,\n 'v-data-table__divider': header.divider\n }\n }, children);\n });\n return h('tr', data, columns);\n }\n\n});\n//# sourceMappingURL=Row.js.map","import Vue from 'vue';\nexport default Vue.extend({\n name: 'row-group',\n functional: true,\n props: {\n value: {\n type: Boolean,\n default: true\n },\n headerClass: {\n type: String,\n default: 'v-row-group__header'\n },\n contentClass: String,\n summaryClass: {\n type: String,\n default: 'v-row-group__summary'\n }\n },\n\n render(h, {\n slots,\n props\n }) {\n const computedSlots = slots();\n const children = [];\n\n if (computedSlots['column.header']) {\n children.push(h('tr', {\n staticClass: props.headerClass\n }, computedSlots['column.header']));\n } else if (computedSlots['row.header']) {\n children.push(...computedSlots['row.header']);\n }\n\n if (computedSlots['row.content'] && props.value) children.push(...computedSlots['row.content']);\n\n if (computedSlots['column.summary']) {\n children.push(h('tr', {\n staticClass: props.summaryClass\n }, computedSlots['column.summary']));\n } else if (computedSlots['row.summary']) {\n children.push(...computedSlots['row.summary']);\n }\n\n return children;\n }\n\n});\n//# sourceMappingURL=RowGroup.js.map","import Vue from 'vue';\nimport { getObjectValueByPath } from '../../util/helpers';\nexport default Vue.extend({\n name: 'row',\n functional: true,\n props: {\n headers: Array,\n item: Object,\n rtl: Boolean\n },\n\n render(h, {\n props,\n slots,\n data\n }) {\n const computedSlots = slots();\n const columns = props.headers.map(header => {\n const classes = {\n 'v-data-table__mobile-row': true\n };\n const children = [];\n const value = getObjectValueByPath(props.item, header.value);\n const slotName = header.value;\n const scopedSlot = data.scopedSlots && data.scopedSlots[slotName];\n const regularSlot = computedSlots[slotName];\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n header,\n value\n }));\n } else if (regularSlot) {\n children.push(regularSlot);\n } else {\n children.push(value == null ? value : String(value));\n }\n\n const mobileRowChildren = [h('div', {\n staticClass: 'v-data-table__mobile-row__cell'\n }, children)];\n\n if (header.value !== 'dataTableSelect') {\n mobileRowChildren.unshift(h('div', {\n staticClass: 'v-data-table__mobile-row__header'\n }, [header.text]));\n }\n\n return h('td', {\n class: classes\n }, mobileRowChildren);\n });\n return h('tr', { ...data,\n staticClass: 'v-data-table__mobile-table-row'\n }, columns);\n }\n\n});\n//# sourceMappingURL=MobileRow.js.map","import \"../../../src/components/VDataTable/VDataTable.sass\"; // Components\n\nimport { VData } from '../VData';\nimport { VDataFooter, VDataIterator } from '../VDataIterator';\nimport VBtn from '../VBtn';\nimport VDataTableHeader from './VDataTableHeader'; // import VVirtualTable from './VVirtualTable'\n\nimport VIcon from '../VIcon';\nimport VProgressLinear from '../VProgressLinear';\nimport Row from './Row';\nimport RowGroup from './RowGroup';\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox';\nimport VSimpleTable from './VSimpleTable';\nimport MobileRow from './MobileRow'; // Directives\n\nimport ripple from '../../directives/ripple'; // Helpers\n\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, defaultFilter, camelizeObjectKeys } from '../../util/helpers';\nimport { breaking } from '../../util/console';\n\nfunction filterFn(item, search, filter) {\n return header => {\n const value = getObjectValueByPath(item, header.value);\n return header.filter ? header.filter(value, search, item) : filter(value, search, item);\n };\n}\n\nfunction searchTableItems(items, search, headersWithCustomFilters, headersWithoutCustomFilters, customFilter) {\n let filtered = items;\n search = typeof search === 'string' ? search.trim() : null;\n\n if (search && headersWithoutCustomFilters.length) {\n filtered = items.filter(item => headersWithoutCustomFilters.some(filterFn(item, search, customFilter)));\n }\n\n if (headersWithCustomFilters.length) {\n filtered = filtered.filter(item => headersWithCustomFilters.every(filterFn(item, search, defaultFilter)));\n }\n\n return filtered;\n}\n/* @vue/component */\n\n\nexport default VDataIterator.extend({\n name: 'v-data-table',\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple\n },\n props: {\n headers: {\n type: Array,\n default: () => []\n },\n showSelect: Boolean,\n showExpand: Boolean,\n showGroupBy: Boolean,\n // TODO: Fix\n // virtualRows: Boolean,\n height: [Number, String],\n hideDefaultHeader: Boolean,\n caption: String,\n dense: Boolean,\n headerProps: Object,\n calculateWidths: Boolean,\n fixedHeader: Boolean,\n headersLength: Number,\n expandIcon: {\n type: String,\n default: '$expand'\n },\n customFilter: {\n type: Function,\n default: defaultFilter\n }\n },\n\n data() {\n return {\n internalGroupBy: [],\n openCache: {},\n widths: []\n };\n },\n\n computed: {\n computedHeaders() {\n if (!this.headers) return [];\n const headers = this.headers.filter(h => h.value === undefined || !this.internalGroupBy.find(v => v === h.value));\n const defaultHeader = {\n text: '',\n sortable: false,\n width: '1px'\n };\n\n if (this.showSelect) {\n const index = headers.findIndex(h => h.value === 'data-table-select');\n if (index < 0) headers.unshift({ ...defaultHeader,\n value: 'data-table-select'\n });else headers.splice(index, 1, { ...defaultHeader,\n ...headers[index]\n });\n }\n\n if (this.showExpand) {\n const index = headers.findIndex(h => h.value === 'data-table-expand');\n if (index < 0) headers.unshift({ ...defaultHeader,\n value: 'data-table-expand'\n });else headers.splice(index, 1, { ...defaultHeader,\n ...headers[index]\n });\n }\n\n return headers;\n },\n\n colspanAttrs() {\n return this.isMobile ? undefined : {\n colspan: this.headersLength || this.computedHeaders.length\n };\n },\n\n columnSorters() {\n return this.computedHeaders.reduce((acc, header) => {\n if (header.sort) acc[header.value] = header.sort;\n return acc;\n }, {});\n },\n\n headersWithCustomFilters() {\n return this.headers.filter(header => header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true));\n },\n\n headersWithoutCustomFilters() {\n return this.headers.filter(header => !header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true));\n },\n\n sanitizedHeaderProps() {\n return camelizeObjectKeys(this.headerProps);\n },\n\n computedItemsPerPage() {\n const itemsPerPage = this.options && this.options.itemsPerPage ? this.options.itemsPerPage : this.itemsPerPage;\n const itemsPerPageOptions = this.sanitizedFooterProps.itemsPerPageOptions;\n\n if (itemsPerPageOptions && !itemsPerPageOptions.find(item => typeof item === 'number' ? item === itemsPerPage : item.value === itemsPerPage)) {\n const firstOption = itemsPerPageOptions[0];\n return typeof firstOption === 'object' ? firstOption.value : firstOption;\n }\n\n return itemsPerPage;\n }\n\n },\n\n created() {\n const breakingProps = [['sort-icon', 'header-props.sort-icon'], ['hide-headers', 'hide-default-header'], ['select-all', 'show-select']];\n /* istanbul ignore next */\n\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this);\n });\n },\n\n mounted() {\n // if ((!this.sortBy || !this.sortBy.length) && (!this.options.sortBy || !this.options.sortBy.length)) {\n // const firstSortable = this.headers.find(h => !('sortable' in h) || !!h.sortable)\n // if (firstSortable) this.updateOptions({ sortBy: [firstSortable.value], sortDesc: [false] })\n // }\n if (this.calculateWidths) {\n window.addEventListener('resize', this.calcWidths);\n this.calcWidths();\n }\n },\n\n beforeDestroy() {\n if (this.calculateWidths) {\n window.removeEventListener('resize', this.calcWidths);\n }\n },\n\n methods: {\n calcWidths() {\n this.widths = Array.from(this.$el.querySelectorAll('th')).map(e => e.clientWidth);\n },\n\n customFilterWithColumns(items, search) {\n return searchTableItems(items, search, this.headersWithCustomFilters, this.headersWithoutCustomFilters, this.customFilter);\n },\n\n customSortWithHeaders(items, sortBy, sortDesc, locale) {\n return this.customSort(items, sortBy, sortDesc, locale, this.columnSorters);\n },\n\n createItemProps(item) {\n const props = VDataIterator.options.methods.createItemProps.call(this, item);\n return Object.assign(props, {\n headers: this.computedHeaders\n });\n },\n\n genCaption(props) {\n if (this.caption) return [this.$createElement('caption', [this.caption])];\n return getSlot(this, 'caption', props, true);\n },\n\n genColgroup(props) {\n return this.$createElement('colgroup', this.computedHeaders.map(header => {\n return this.$createElement('col', {\n class: {\n divider: header.divider\n }\n });\n }));\n },\n\n genLoading() {\n const progress = this.$slots['progress'] ? this.$slots.progress : this.$createElement(VProgressLinear, {\n props: {\n color: this.loading === true ? 'primary' : this.loading,\n height: 2,\n indeterminate: true\n }\n });\n const th = this.$createElement('th', {\n staticClass: 'column',\n attrs: this.colspanAttrs\n }, [progress]);\n const tr = this.$createElement('tr', {\n staticClass: 'v-data-table__progress'\n }, [th]);\n return this.$createElement('thead', [tr]);\n },\n\n genHeaders(props) {\n const data = {\n props: { ...this.sanitizedHeaderProps,\n headers: this.computedHeaders,\n options: props.options,\n mobile: this.isMobile,\n showGroupBy: this.showGroupBy,\n someItems: this.someItems,\n everyItem: this.everyItem,\n singleSelect: this.singleSelect,\n disableSort: this.disableSort\n },\n on: {\n sort: props.sort,\n group: props.group,\n 'toggle-select-all': this.toggleSelectAll\n }\n };\n const children = [getSlot(this, 'header', data)];\n\n if (!this.hideDefaultHeader) {\n const scopedSlots = getPrefixedScopedSlots('header.', this.$scopedSlots);\n children.push(this.$createElement(VDataTableHeader, { ...data,\n scopedSlots\n }));\n }\n\n if (this.loading) children.push(this.genLoading());\n return children;\n },\n\n genEmptyWrapper(content) {\n return this.$createElement('tr', {\n staticClass: 'v-data-table__empty-wrapper'\n }, [this.$createElement('td', {\n attrs: this.colspanAttrs\n }, content)]);\n },\n\n genItems(items, props) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength);\n if (empty) return [empty];\n return props.groupedItems ? this.genGroupedRows(props.groupedItems, props) : this.genRows(items, props);\n },\n\n genGroupedRows(groupedItems, props) {\n return groupedItems.map(group => {\n if (!this.openCache.hasOwnProperty(group.name)) this.$set(this.openCache, group.name, true);\n\n if (this.$scopedSlots.group) {\n return this.$scopedSlots.group({\n group: group.name,\n options: props.options,\n items: group.items,\n headers: this.computedHeaders\n });\n } else {\n return this.genDefaultGroupedRow(group.name, group.items, props);\n }\n });\n },\n\n genDefaultGroupedRow(group, items, props) {\n const isOpen = !!this.openCache[group];\n const children = [this.$createElement('template', {\n slot: 'row.content'\n }, this.genRows(items, props))];\n\n const toggleFn = () => this.$set(this.openCache, group, !this.openCache[group]);\n\n const removeFn = () => props.updateOptions({\n groupBy: [],\n groupDesc: []\n });\n\n if (this.$scopedSlots['group.header']) {\n children.unshift(this.$createElement('template', {\n slot: 'column.header'\n }, [this.$scopedSlots['group.header']({\n group,\n groupBy: props.options.groupBy,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n remove: removeFn\n })]));\n } else {\n const toggle = this.$createElement(VBtn, {\n staticClass: 'ma-0',\n props: {\n icon: true,\n small: true\n },\n on: {\n click: toggleFn\n }\n }, [this.$createElement(VIcon, [isOpen ? '$minus' : '$plus'])]);\n const remove = this.$createElement(VBtn, {\n staticClass: 'ma-0',\n props: {\n icon: true,\n small: true\n },\n on: {\n click: removeFn\n }\n }, [this.$createElement(VIcon, ['$close'])]);\n const column = this.$createElement('td', {\n staticClass: 'text-start',\n attrs: this.colspanAttrs\n }, [toggle, `${props.options.groupBy[0]}: ${group}`, remove]);\n children.unshift(this.$createElement('template', {\n slot: 'column.header'\n }, [column]));\n }\n\n if (this.$scopedSlots['group.summary']) {\n children.push(this.$createElement('template', {\n slot: 'column.summary'\n }, [this.$scopedSlots['group.summary']({\n group,\n groupBy: props.options.groupBy,\n items,\n headers: this.computedHeaders\n })]));\n }\n\n return this.$createElement(RowGroup, {\n key: group,\n props: {\n value: isOpen\n }\n }, children);\n },\n\n genRows(items, props) {\n return this.$scopedSlots.item ? this.genScopedRows(items, props) : this.genDefaultRows(items, props);\n },\n\n genScopedRows(items, props) {\n const rows = [];\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n rows.push(this.$scopedSlots.item({ ...this.createItemProps(item),\n index: i\n }));\n\n if (this.isExpanded(item)) {\n rows.push(this.$scopedSlots['expanded-item']({\n item,\n headers: this.computedHeaders\n }));\n }\n }\n\n return rows;\n },\n\n genDefaultRows(items, props) {\n return this.$scopedSlots['expanded-item'] ? items.map(item => this.genDefaultExpandedRow(item)) : items.map(item => this.genDefaultSimpleRow(item));\n },\n\n genDefaultExpandedRow(item) {\n const isExpanded = this.isExpanded(item);\n const classes = {\n 'v-data-table__expanded v-data-table__expanded__row': isExpanded\n };\n const headerRow = this.genDefaultSimpleRow(item, classes);\n const expandedRow = this.$createElement('tr', {\n staticClass: 'v-data-table__expanded v-data-table__expanded__content'\n }, [this.$scopedSlots['expanded-item']({\n item,\n headers: this.computedHeaders\n })]);\n return this.$createElement(RowGroup, {\n props: {\n value: isExpanded\n }\n }, [this.$createElement('template', {\n slot: 'row.header'\n }, [headerRow]), this.$createElement('template', {\n slot: 'row.content'\n }, [expandedRow])]);\n },\n\n genDefaultSimpleRow(item, classes = {}) {\n const scopedSlots = getPrefixedScopedSlots('item.', this.$scopedSlots);\n const data = this.createItemProps(item);\n\n if (this.showSelect) {\n const slot = scopedSlots['data-table-select'];\n scopedSlots['data-table-select'] = slot ? () => slot(data) : () => this.$createElement(VSimpleCheckbox, {\n staticClass: 'v-data-table__checkbox',\n props: {\n value: data.isSelected,\n disabled: !this.isSelectable(item)\n },\n on: {\n input: val => data.select(val)\n }\n });\n }\n\n if (this.showExpand) {\n const slot = scopedSlots['data-table-expand'];\n scopedSlots['data-table-expand'] = slot ? () => slot(data) : () => this.$createElement(VIcon, {\n staticClass: 'v-data-table__expand-icon',\n class: {\n 'v-data-table__expand-icon--active': data.isExpanded\n },\n on: {\n click: e => {\n e.stopPropagation();\n data.expand(!data.isExpanded);\n }\n }\n }, [this.expandIcon]);\n }\n\n return this.$createElement(this.isMobile ? MobileRow : Row, {\n key: getObjectValueByPath(item, this.itemKey),\n class: { ...classes,\n 'v-data-table__selected': data.isSelected\n },\n props: {\n headers: this.computedHeaders,\n item,\n rtl: this.$vuetify.rtl\n },\n scopedSlots,\n on: {\n // TODO: first argument should be the data object\n // but this is a breaking change so it's for v3\n click: () => this.$emit('click:row', item, data)\n }\n });\n },\n\n genBody(props) {\n const data = { ...props,\n expand: this.expand,\n headers: this.computedHeaders,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n isSelected: this.isSelected,\n select: this.select\n };\n\n if (this.$scopedSlots.body) {\n return this.$scopedSlots.body(data);\n }\n\n return this.$createElement('tbody', [getSlot(this, 'body.prepend', data, true), this.genItems(props.items, props), getSlot(this, 'body.append', data, true)]);\n },\n\n genFooters(props) {\n const data = {\n props: {\n options: props.options,\n pagination: props.pagination,\n itemsPerPageText: '$vuetify.dataTable.itemsPerPageText',\n ...this.sanitizedFooterProps\n },\n on: {\n 'update:options': value => props.updateOptions(value)\n },\n widths: this.widths,\n headers: this.computedHeaders\n };\n const children = [getSlot(this, 'footer', data, true)];\n\n if (!this.hideDefaultFooter) {\n children.push(this.$createElement(VDataFooter, { ...data,\n scopedSlots: getPrefixedScopedSlots('footer.', this.$scopedSlots)\n }));\n }\n\n return children;\n },\n\n genDefaultScopedSlot(props) {\n const simpleProps = {\n height: this.height,\n fixedHeader: this.fixedHeader,\n dense: this.dense\n }; // if (this.virtualRows) {\n // return this.$createElement(VVirtualTable, {\n // props: Object.assign(simpleProps, {\n // items: props.items,\n // height: this.height,\n // rowHeight: this.dense ? 24 : 48,\n // headerHeight: this.dense ? 32 : 48,\n // // TODO: expose rest of props from virtual table?\n // }),\n // scopedSlots: {\n // items: ({ items }) => this.genItems(items, props) as any,\n // },\n // }, [\n // this.proxySlot('body.before', [this.genCaption(props), this.genHeaders(props)]),\n // this.proxySlot('bottom', this.genFooters(props)),\n // ])\n // }\n\n return this.$createElement(VSimpleTable, {\n props: simpleProps\n }, [this.proxySlot('top', getSlot(this, 'top', props, true)), this.genCaption(props), this.genColgroup(props), this.genHeaders(props), this.genBody(props), this.proxySlot('bottom', this.genFooters(props))]);\n },\n\n proxySlot(slot, content) {\n return this.$createElement('template', {\n slot\n }, content);\n }\n\n },\n\n render() {\n return this.$createElement(VData, {\n props: { ...this.$props,\n customFilter: this.customFilterWithColumns,\n customSort: this.customSortWithHeaders,\n itemsPerPage: this.computedItemsPerPage\n },\n on: {\n 'update:options': (v, old) => {\n this.internalGroupBy = v.groupBy || [];\n !deepEqual(v, old) && this.$emit('update:options', v);\n },\n 'update:page': v => this.$emit('update:page', v),\n 'update:items-per-page': v => this.$emit('update:items-per-page', v),\n 'update:sort-by': v => this.$emit('update:sort-by', v),\n 'update:sort-desc': v => this.$emit('update:sort-desc', v),\n 'update:group-by': v => this.$emit('update:group-by', v),\n 'update:group-desc': v => this.$emit('update:group-desc', v),\n pagination: (v, old) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'current-items': v => {\n this.internalCurrentItems = v;\n this.$emit('current-items', v);\n },\n 'page-count': v => this.$emit('page-count', v)\n },\n scopedSlots: {\n default: this.genDefaultScopedSlot\n }\n });\n }\n\n});\n//# sourceMappingURL=VDataTable.js.map","// Styles\nimport \"../../../src/components/VCheckbox/VCheckbox.sass\";\nimport \"../../../src/styles/components/_selection-controls.sass\"; // Components\n\nimport VIcon from '../VIcon';\nimport VInput from '../VInput'; // Mixins\n\nimport Selectable from '../../mixins/selectable';\n/* @vue/component */\n\nexport default Selectable.extend({\n name: 'v-checkbox',\n props: {\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate'\n },\n offIcon: {\n type: String,\n default: '$checkboxOff'\n },\n onIcon: {\n type: String,\n default: '$checkboxOn'\n }\n },\n\n data() {\n return {\n inputIndeterminate: this.indeterminate\n };\n },\n\n computed: {\n classes() {\n return { ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls': true,\n 'v-input--checkbox': true,\n 'v-input--indeterminate': this.inputIndeterminate\n };\n },\n\n computedIcon() {\n if (this.inputIndeterminate) {\n return this.indeterminateIcon;\n } else if (this.isActive) {\n return this.onIcon;\n } else {\n return this.offIcon;\n }\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() {\n if (this.disabled && !this.inputIndeterminate) return 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\n },\n watch: {\n indeterminate(val) {\n // https://github.com/vuetifyjs/vuetify/issues/8270\n this.$nextTick(() => this.inputIndeterminate = val);\n },\n\n inputIndeterminate(val) {\n this.$emit('update:indeterminate', val);\n },\n\n isActive() {\n if (!this.indeterminate) return;\n this.inputIndeterminate = false;\n }\n\n },\n methods: {\n genCheckbox() {\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input'\n }, [this.$createElement(VIcon, this.setTextColor(this.validationState, {\n props: {\n dense: this.dense,\n dark: this.dark,\n light: this.light\n }\n }), this.computedIcon), this.genInput('checkbox', { ...this.attrs$,\n 'aria-checked': this.inputIndeterminate ? 'mixed' : this.isActive.toString()\n }), this.genRipple(this.setTextColor(this.rippleState))]);\n },\n\n genDefaultSlot() {\n return [this.genCheckbox(), this.genLabel()];\n }\n\n }\n});\n//# sourceMappingURL=VCheckbox.js.map","// Styles\nimport \"../../../src/styles/components/_selection-controls.sass\";\nimport \"../../../src/components/VSwitch/VSwitch.sass\"; // Mixins\n\nimport Selectable from '../../mixins/selectable';\nimport VInput from '../VInput'; // Directives\n\nimport Touch from '../../directives/touch'; // Components\n\nimport { VFabTransition } from '../transitions';\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'; // Helpers\n\nimport { keyCodes } from '../../util/helpers';\n/* @vue/component */\n\nexport default Selectable.extend({\n name: 'v-switch',\n directives: {\n 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 computed: {\n classes() {\n return { ...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\n attrs() {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.disabled),\n role: 'switch'\n };\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() {\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\n switchData() {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses\n });\n }\n\n },\n methods: {\n genDefaultSlot() {\n return [this.genSwitch(), this.genLabel()];\n },\n\n genSwitch() {\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input'\n }, [this.genInput('checkbox', { ...this.attrs,\n ...this.attrs$\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 })), this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData\n }), this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData\n }, [this.genProgress()])]);\n },\n\n genProgress() {\n return this.$createElement(VFabTransition, {}, [this.loading === false ? null : this.$slots.progress || this.$createElement(VProgressCircular, {\n props: {\n color: this.loading === true || this.loading === '' ? this.color || 'primary' : 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\n onSwipeRight() {\n if (!this.isActive) this.onChange();\n },\n\n onKeydown(e) {\n if (e.keyCode === keyCodes.left && this.isActive || e.keyCode === keyCodes.right && !this.isActive) this.onChange();\n }\n\n }\n});\n//# sourceMappingURL=VSwitch.js.map","// Components\nimport VInput from '../../components/VInput'; // Mixins\n\nimport Rippleable from '../rippleable';\nimport Comparable from '../comparable'; // Utilities\n\nimport mixins from '../../util/mixins';\n/* @vue/component */\n\nexport default mixins(VInput, Rippleable, Comparable).extend({\n name: 'selectable',\n model: {\n prop: 'inputValue',\n event: 'change'\n },\n props: {\n id: String,\n inputValue: null,\n falseValue: null,\n trueValue: null,\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() {\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\n isMultiple() {\n return this.multiple === true || this.multiple === null && Array.isArray(this.internalValue);\n },\n\n isActive() {\n const value = this.value;\n const input = this.internalValue;\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false;\n return input.some(item => this.valueComparator(item, value));\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value ? this.valueComparator(value, input) : Boolean(input);\n }\n\n return this.valueComparator(input, this.trueValue);\n },\n\n isDirty() {\n return this.isActive;\n },\n\n rippleState() {\n return !this.disabled && !this.validationState ? 'primary' : 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 if (!label) return label;\n label.data.on = {\n click: e => {\n // Prevent label from\n // causing the input\n // to focus\n e.preventDefault();\n this.onChange();\n }\n };\n return label;\n },\n\n genInput(type, attrs) {\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 },\n ref: 'input'\n });\n },\n\n onBlur() {\n this.isFocused = false;\n },\n\n onChange() {\n if (this.isDisabled) return;\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 input = input.filter(item => !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\n onFocus() {\n this.isFocused = true;\n },\n\n /** @abstract */\n onKeydown(e) {}\n\n }\n});\n//# sourceMappingURL=index.js.map"],"sourceRoot":""}