{"version":3,"sources":["webpack:///./src/components/grid/ExciseExceptionsAdd.vue?c932","webpack:///../../../src/components/VVirtualScroll/VVirtualScroll.ts","webpack:///./src/components/grid/ExciseExceptionsAdd.vue?984a","webpack:///./src/composables/useExciseExceptionsValidation.js","webpack:///src/components/grid/ExciseExceptionsAdd.vue","webpack:///./src/components/grid/ExciseExceptionsAdd.vue?6e14","webpack:///./src/components/grid/ExciseExceptionsAdd.vue","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///../../../src/components/VWindow/VWindowItem.ts","webpack:///../../../src/components/VTabs/VTabItem.ts"],"names":["extend","name","directives","Scroll","props","bench","type","Number","String","default","itemHeight","required","items","Array","data","first","last","scrollTop","computed","__bench","parseInt","this","__itemHeight","firstToRender","Math","max","lastToRender","min","length","watch","height","mounted","getLast","methods","getChildren","slice","map","genChild","item","index","top","$createElement","staticClass","style","key","getFirst","floor","$el","clientHeight","ceil","onScroll","render","h","content","measurableStyles","modifiers","self","value","on","$listeners","_vm","_h","_c","_self","attrs","scopedSlots","_u","fn","VDialog","$event","indexOf","_k","keyCode","dialog","model","callback","$$v","expression","VForm","ref","preventDefault","VCard","_v","VProgressLinear","loadingDoc","_s","importHeaderList","join","getFiles","uploadList","_e","_l","VRow","VCol","VBtn","uploadDocument","savedItemsDialog","VList","VListItem","returnedItems","gridLimit","getExcelFields","fullHeaderList","fileName","showReturnedItemsInGrid","closeSavedItemsDialog","importValidationMessageDialog","invalidImported","validImported","row","entry","invalidEntries","validationExport","showInvalidInGrid","saveValidItems","closeImportValidationDialog","relationsDialog","VTabs","relationTab","VTab","replace","VTabsItems","VTabItem","VIcon","downloadImportFields","mode","exciseExceptions","itemAdded","itemModified","bulkSaveReturn","clearGrid","proxy","staticRenderFns","useExciseExceptionsValidation","store","useExciseTaxRates","getTaxRate","selectedProject","get","selectedProjectStartTime","dayjs","AuditStart","toDate","getTime","selectedProjectEndTime","AuditEnd","stratum","luCounty","filter","x","DORJurisdiction","luExciseIssues","IsActive","luExciseTransactionType","luExciseTaxTypes","availableTaxTypes","projectDetailsID","ProjectDetailsID","ProjectDetailID","validateString","canBeEmpty","toString","validateStringMaxLength","maxCharacters","validateValueIsInList","matchingIndex","list","i","ID","undefined","validateException","exception","valid","validationMessage","StratumID","StratumNumber","stratumMessage","push","dateTime","InvoiceDate","low","high","dateMessage","IssueID","issueMessage","TransactionTypeID","transactionMessage","TaxTypeID","taxMessage","DeliveredToCountyID","dtCountyMessage","cityList","matchingCountyIndex","countyList","Cities","DeliveredToCityID","dtCityMessage","sdList","SpecialDistricts","SpecialDistrictID","dtSDMessage","parseFloat","TaxableAmount","taxableAmountMessage","reconciliationIssues","AuditedTax","includes","taxRate","toFixed","TaxPaid","taxPaidMessage","ReportedTax","isActiveMessage","Description","descriptionMessage","Reference","referenceMessage","VendorCustomer","vendorCustomerMessage","DocumentNumber","documentNumberMessage","component","bias","val","c","abs","sign","calculateUpdatedOffset","selectedElement","widths","rtl","currentScrollOffset","clientWidth","offsetLeft","totalWidth","wrapper","itemOffset","additionalOffset","calculateCenteredOffset","offsetCentered","BaseSlideGroup","Resize","Touch","activeClass","centerActive","Boolean","nextIcon","prevIcon","showArrows","validator","v","isOverflowing","resizeTimeout","startX","isSwipingHorizontal","isSwiping","scrollOffset","canTouch","window","__cachedNext","genTransition","__cachedPrev","classes","options","call","hasAffixes","isMobile","hasNext","hasPrev","internalValue","$vuetify","scroll","$refs","transform","ResizeObserver","obs","onResize","observe","$on","disconnect","itemsLength","children","setWidths","scrollLeft","onFocusin","e","el","vm","genNext","slot","$scopedSlots","next","$slots","class","click","onAffixClick","genContent","focusin","genData","genIcon","location","icon","upperLocation","toUpperCase","hasAffix","disabled","genPrev","prev","genWrapper","start","overflowCheck","onTouchStart","move","onTouchMove","end","onTouchEnd","calculateNewOffset","direction","newAbosluteOffset","$emit","scrollTo","_isDestroyed","touchstartX","setProperty","diffX","touchmoveX","diffY","touchmoveY","touchstartY","document","documentElement","overflowY","maxScrollOffset","removeProperty","stopPropagation","scrollIntoView","selectedItem","lastItemPosition","getBoundingClientRect","wrapperPosition","right","left","selectedIndex","requestAnimationFrame","provide","slideGroup","baseMixins","mixins","reverseTransition","transition","isActive","inTransition","groupClasses","computedTransition","windowGroup","internalReverse","genDefaultSlot","genWindowItem","onAfterTransition","transitionCount","transitionHeight","onBeforeTransition","onTransitionCancelled","onEnter","$nextTick","beforeEnter","afterEnter","enterCancelled","beforeLeave","afterLeave","leaveCancelled","enter","showLazyContent","VWindowItem","id","domProps"],"mappings":"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eACA,KACA,cACA,gBAMA,qBACA,yBACA,mCAEA,oBACA,QACA,+CACA,sDACA,gBACA,4CAEA,oBACA,gBACA,0EACA,UACA,iBACA,0BAEA,4BACA,6CACA,OACA,UACA,sDAcA,aACA,2BACA,SAIA,OAHA,uBACA,UAEA,IAEA,iEACA,iDACA,qDACA,sCAEA,uBACA,SACA,+BACA,EAIA,oBAEA,oCAGA,kDANA,yCASA,MACA,kCAGA,qBAGA,aAFA,mBACA,cACA,eACA,wCAEA,2CACA,8DAGA,iCACA,0BAEA,mCACA,iEACA,0BAEA,uCACA,sCACA,wBACA,sBACA,yBAEA,0BACA,8CACA,uCAEA,6BACA,4DACA,cACA,YACA,eAGA,uCAEA,qCACA,mBACA,wBACA,sBACA,wBACA,8BACA,2BACA,yCACA,sBACA,iBACA,OACA,uBACA,qBAEA,sCACA,0CACA,6BAEA,gCACA,KACA,oCACA,mDACA,KAEA,QACA,QAEA,oBAEA,IADA,QACA,sBACA,MACA,EACA,kCAGA,KACA,SACA,+CAEA,aAIA,mBACA,2EAGA,SACA,8BAGA,6BACA,IACA,MAEA,SACA,WAGA,yBACA,gBACA,eACA,mBACA,QAIA,eACA,oBACA,mCACA,mBACA,yCAEA,oBACA,GACA,KACA,cACA,eACA,cACA,cAEA,mBACA,yCAEA,oBACA,GACA,KACA,cACA,eACA,WACA,cACA,cAEA,mBACA,yCAEA,oBACA,GACA,KACA,cACA,eACA,UACA,SACA,cACA,cAEA,mBACA,wCAEA,oBAuBA,OAPA,eACA,6EACA,8CACA,iCAEA,0BACA,iBArBA,GACA,KACA,cACA,eACA,UACA,SACA,WACA,cACA,cAEA,mBACA,oCAaA,mCACA,aAGA,IAFA,SACA,KACA,oBACA,8BACA,UACA,gCAGA,6BACA,WACA,OACA,iBACA,OACA,kBAEA,eAEA,UAGA,kBACA,oBACA,mCACA,qBAEA,gBACA,qBACA,+EAKA,mBAMA,sBACA,kBACA,mBAMA,IAHA,yCACA,KAEA,YACA,OACA,sDAGA,uBACA,gCAEA,0BAIA,yBACA,mCAEA,sBAEA,m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","file":"js/chunk-62a7c6d4.4180a86e.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExciseExceptionsAdd.vue?vue&type=style&index=0&id=acc1be0c&scoped=true&lang=css&\"","// Styles\nimport './VVirtualScroll.sass'\n\n// Mixins\nimport Measurable from '../../mixins/measurable'\n\n// Directives\nimport Scroll from '../../directives/scroll'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport default Measurable.extend({\n name: 'v-virtual-scroll',\n\n directives: { Scroll },\n\n props: {\n bench: {\n type: [Number, String],\n default: 0,\n },\n itemHeight: {\n type: [Number, String],\n required: true,\n },\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n },\n\n data: () => ({\n first: 0,\n last: 0,\n scrollTop: 0,\n }),\n\n computed: {\n __bench (): number {\n return parseInt(this.bench, 10)\n },\n __itemHeight (): number {\n return parseInt(this.itemHeight, 10)\n },\n firstToRender (): number {\n return Math.max(0, this.first - this.__bench)\n },\n lastToRender (): number {\n return Math.min(this.items.length, this.last + this.__bench)\n },\n },\n\n watch: {\n height: 'onScroll',\n itemHeight: 'onScroll',\n },\n\n mounted () {\n this.last = this.getLast(0)\n },\n\n methods: {\n getChildren (): VNode[] {\n return this.items.slice(\n this.firstToRender,\n this.lastToRender,\n ).map(this.genChild)\n },\n genChild (item: any, index: number) {\n index += this.firstToRender\n\n const top = convertToUnit(index * this.__itemHeight)\n\n return this.$createElement('div', {\n staticClass: 'v-virtual-scroll__item',\n style: { top },\n key: index,\n }, getSlot(this, 'default', { index, item }))\n },\n getFirst (): number {\n return Math.floor(this.scrollTop / this.__itemHeight)\n },\n getLast (first: number): number {\n const height = parseInt(this.height || 0, 10) || this.$el.clientHeight\n\n return first + Math.ceil(height / this.__itemHeight)\n },\n onScroll () {\n this.scrollTop = this.$el.scrollTop\n this.first = this.getFirst()\n this.last = this.getLast(this.first)\n },\n },\n\n render (h): VNode {\n const content = h('div', {\n staticClass: 'v-virtual-scroll__container',\n style: {\n height: convertToUnit((this.items.length * this.__itemHeight)),\n },\n }, this.getChildren())\n\n return h('div', {\n staticClass: 'v-virtual-scroll',\n style: this.measurableStyles,\n directives: [{\n name: 'scroll',\n modifiers: { self: true },\n value: this.onScroll,\n }],\n on: this.$listeners,\n }, [content])\n },\n})\n","import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VVirtualScroll } from 'vuetify/lib/components/VVirtualScroll';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('BasePanelWithHeader',{attrs:{\"headerText\":\"Exceptions\"},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c(VDialog,{attrs:{\"persistent\":\"\",\"width\":\"850\",\"scrollable\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }_vm.dialog = false}},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c(VForm,{ref:\"form\",on:{\"submit\":function($event){$event.preventDefault();}}},[_c(VCard,{staticClass:\"elevation-3\"},[_c(VCardTitle,{staticClass:\"primary text-h5 white--text\"},[_vm._v(\" Import \")]),_c(VCardText,{staticClass:\"pa-4\"},[_c(VProgressLinear,{attrs:{\"active\":_vm.loadingDoc,\"indeterminate\":_vm.loadingDoc}}),_c('div',[_vm._v(\" Importing from an excel file will clear the grid of any existing rows, Make sure to save any unsaved items before uploading \")]),_c('br'),_c('div',[_vm._v(\"If you do not provide a Stratum ID, the system will attempt to find it for you based on the Stratum Number column. If a Stratum ID is specified in the row any Stratum Number in that row will not be used.\")]),_c('br'),_c('div',[_vm._v(\"If you are entering reconciliations, you may enter the Audited Tax and Reported Tax instead of the Taxable Amount and Tax Paid.\")]),_c('br'),_c('div',[_vm._v(\" The following headers can be used in any order, and the header text can contain spaces, a header row must be used if using a stratum number instead of the stratum id, or if using the reconciliation fields. \")]),_c('br'),_c('div',[_vm._v(_vm._s(_vm.importHeaderList.join(', ')))]),_c('div',{staticClass:\"dropbox\"},[_c('input',{staticClass:\"input-file\",attrs:{\"type\":\"file\"},on:{\"change\":_vm.getFiles}}),(_vm.uploadList.length == 0)?_c('p',{staticClass:\"extra-margin\"},[_vm._v(\" Drag file to upload or click to browse \")]):_vm._e(),(_vm.uploadList.length > 0)?_c('div',{staticClass:\"extra-margin\"},_vm._l((_vm.items),function(item,index){return _c('p',{key:index,staticClass:\"uploadList\"},[_vm._v(\" \"+_vm._s(item.name)+\" \")])}),0):_vm._e()]),_c(VRow,[_c(VCol,{attrs:{\"sm\":\"12\"}})],1)],1),_c(VCardActions,[_c(VBtn,{attrs:{\"disabled\":_vm.loadingDoc,\"color\":\"primary\"},on:{\"click\":_vm.uploadDocument}},[_vm._v(\"Upload\")]),_c(VBtn,{attrs:{\"outlined\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\"Cancel\")])],1)],1)],1)],1),_c(VDialog,{attrs:{\"persistent\":\"\",\"scrollable\":\"\",\"max-width\":\"1250\"},model:{value:(_vm.savedItemsDialog),callback:function ($$v) {_vm.savedItemsDialog=$$v},expression:\"savedItemsDialog\"}},[_c(VCard,{staticClass:\"elevation-3\"},[_c(VCardTitle,{staticClass:\"white--text text-h5 primary\"},[_vm._v(\"Exceptions saved\")]),_c(VCardText,{staticClass:\"pa-4\"},[_c(VList,[_c(VListItem,[_vm._v(\" \"+_vm._s(_vm.returnedItems.length)+\" items saved.\")]),(_vm.returnedItems.length > _vm.gridLimit)?_c(VListItem,{staticClass:\"warning\"},[_vm._v(\" if shown in grid, only the first \"+_vm._s(_vm.gridLimit)+\" items will be displayed\")]):_vm._e()],1)],1),_c(VCardActions,[_c('excelExport',{attrs:{\"data\":_vm.returnedItems,\"exportFields\":_vm.getExcelFields(_vm.fullHeaderList),\"worksheet\":\"Excise Exceptions\",\"name\":(_vm.fileName + \".xlsx\")}},[_vm._v(\"Download Saved Items\")]),_c(VBtn,{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.showReturnedItemsInGrid}},[_vm._v(\"Show in grid\")]),_c(VBtn,{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.closeSavedItemsDialog}},[_vm._v(\"Close\")])],1)],1)],1),_c(VDialog,{attrs:{\"persistent\":\"\",\"max-width\":\"950\",\"scrollable\":\"\"},model:{value:(_vm.importValidationMessageDialog),callback:function ($$v) {_vm.importValidationMessageDialog=$$v},expression:\"importValidationMessageDialog\"}},[_c(VCard,{staticClass:\"elevation-3\"},[_c(VCardTitle,{staticClass:\"white--text text-h5 primary\"},[_vm._v(\"Exception Summary\")]),_c(VCardText,{staticClass:\"pa-4\"},[(_vm.invalidImported.length > 0)?_c('div',[_c('div',[_vm._v(\" \"+_vm._s(_vm.validImported.length)+\" items out of \"+_vm._s(_vm.validImported.length + _vm.invalidImported.length)+\" have been validated. \")]),_c('div',[_vm._v(\" There are \"+_vm._s(_vm.invalidImported.length)+\" invalid rows in the imported file. \")]),(_vm.invalidImported.length > _vm.gridLimit)?_c('div',{staticClass:\"warning\"},[_vm._v(\" Please review the invalid items and retry the upload. \")]):_vm._e(),_c(VVirtualScroll,{attrs:{\"items\":_vm.invalidImported,\"height\":\"300\",\"item-height\":\"40\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar item = ref.item;\nreturn [_c(VList,[_c(VListItem,{key:item.row},[_vm._v(\" row \"+_vm._s(item.row)+\": \"),_vm._l((item.invalidEntries),function(entry,index){return _c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(entry)+_vm._s(index == item.invalidEntries.length - 1 ? '' : ', ')+\" \")])})],2)],1)]}}],null,false,283935050)})],1):_c('div',[_vm._v(\" \"+_vm._s(_vm.validImported.length)+\" items have been validated. \")])]),_c(VCardActions,[(_vm.invalidImported.length > 0)?_c('excelExport',{attrs:{\"data\":_vm.validationExport,\"exportFields\":_vm.getExcelFields(['row', 'validationMessages']),\"worksheet\":\"Excise Exceptions Validation\",\"name\":\"Exception validation summary.xlsx\"}},[_vm._v(\"Download Invalid Item Summary\")]):_vm._e(),(\n _vm.invalidImported.length < _vm.gridLimit && _vm.invalidImported.length > 0\n )?_c(VBtn,{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.showInvalidInGrid}},[_vm._v(\"Review Invalid in grid\")]):_vm._e(),(_vm.invalidImported.length == 0)?_c(VBtn,{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.saveValidItems}},[_vm._v(\"Import Items\")]):_vm._e(),_c(VBtn,{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.closeImportValidationDialog}},[_vm._v(\"Cancel\")])],1)],1)],1),_c(VDialog,{attrs:{\"scrollable\":\"\",\"max-width\":\"1250\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }_vm.relationsDialog = false}},model:{value:(_vm.relationsDialog),callback:function ($$v) {_vm.relationsDialog=$$v},expression:\"relationsDialog\"}},[_c(VCard,{staticClass:\"elevation-3\"},[_c(VCardTitle,{staticClass:\"white--text text-h5 primary\"},[_vm._v(\"Item Options\")]),_c(VCardText,{staticClass:\"pa-4\"},[_c(VTabs,{model:{value:(_vm.relationTab),callback:function ($$v) {_vm.relationTab=$$v},expression:\"relationTab\"}},_vm._l((_vm.relations),function(item,key,index){return _c(VTab,{key:index},[_vm._v(\" \"+_vm._s(key.replace(/([A-Z][a-z])/g, ' $1').replace(/(\\d)/g, ' $1'))+\" \")])}),1),_c(VTabsItems,{model:{value:(_vm.relationTab),callback:function ($$v) {_vm.relationTab=$$v},expression:\"relationTab\"}},_vm._l((_vm.relations),function(items,key,index){return _c(VTabItem,{key:index},[_c('BaseSimpleDataTable',{attrs:{\"items\":items,\"search\":\"\"}})],1)}),1)],1),_c(VCardActions,[_c(VBtn,{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.relationsDialog = false}}},[_vm._v(\"Close\")])],1)],1)],1),_c(VRow,[_c(VCol,{staticClass:\"mr-auto\"},[_c(VBtn,{staticClass:\"primary\",on:{\"click\":function($event){_vm.dialog = true}}},[_c(VIcon,{staticClass:\"pr-2\"},[_vm._v(\"mdi-microsoft-excel\")]),_vm._v(\"Import\")],1),_c(VBtn,{staticClass:\"ml-3\",attrs:{\"outlined\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.downloadImportFields}},[_vm._v(\"Download Import Template\")]),_c(VBtn,{staticClass:\"ml-3\",attrs:{\"outlined\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.relationsDialog = true}}},[_vm._v(\"View Available Options\")]),(_vm.invalidImported.length > 0)?_c('BaseHelpTooltip',{attrs:{\"icon\":\"mdi-alert-circle-check-outline\",\"iconColor\":\"primary\",\"tooltipText\":\"Review import validation messages\",\"header\":\"Validation messages\",\"maxWidth\":850}},[_c(VRow,[_c(VCol,[(_vm.invalidImported.length > 0)?_c('div',[_vm._v(\" There were \"+_vm._s(_vm.invalidImported.length)+\" invalid rows in the imported file. \"),_c(VVirtualScroll,{attrs:{\"items\":_vm.invalidImported,\"height\":\"300\",\"item-height\":\"40\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var item = ref.item;\nreturn [_c(VList,[_c(VListItem,{key:item.row},[_vm._v(\" row \"+_vm._s(item.row)+\": \"),_vm._l((item.invalidEntries),function(entry,index){return _c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(entry)+\" \"),(!index == item.invalidEntries.length - 1)?_c('span',[_vm._v(\", \")]):_vm._e()])})],2)],1)]}}],null,false,1370230280)})],1):_vm._e()])],1)],1):_vm._e()],1)],1),_c('ExciseExceptionsToastGrid',{ref:\"exceptionGrid\",attrs:{\"mode\":_vm.mode,\"items\":_vm.exciseExceptions,\"additionalItems\":_vm.validImported},on:{\"itemAdded\":_vm.itemAdded,\"itemModified\":_vm.itemModified,\"bulkSave\":_vm.bulkSaveReturn,\"clearGrid\":_vm.clearGrid}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import {ref, onMounted, computed} from 'vue'\r\nimport {get, sync, commit, call} from 'vuex-pathify'\r\nimport {useStore} from 'vuex'\r\nimport dayjs from 'dayjs'\r\nimport useExciseTaxRates from '@composables/useExciseTaxRates'\r\n\r\nexport default function useExciseExceptionsValidation(store) {\r\n const {getTaxRate} = useExciseTaxRates(store)\r\n const selectedProject = computed(() => store.get('project/selectedProject'))\r\n const selectedProjectStartTime = computed(() =>\r\n dayjs(selectedProject.value.AuditStart)\r\n .toDate()\r\n .getTime()\r\n )\r\n const selectedProjectEndTime = computed(() =>\r\n dayjs(selectedProject.value.AuditEnd)\r\n .toDate()\r\n .getTime()\r\n )\r\n\r\n const stratum = computed(() =>\r\n store.get('project/selectedProjectExciseStratum')\r\n )\r\n const luCounty = computed(() =>\r\n store.get('luCounty/luCounty').filter((x) => x.DORJurisdiction != null)\r\n )\r\n // const luCity = computed(() => store.get('luCity/luCity'))\r\n // const luSpecialDistrict = computed(() =>\r\n // store\r\n // .get('luSpecialDistrict/luSpecialDistrict')\r\n // .filter((x) => x.IsActive && x.DORJurisdiction != null)\r\n // )\r\n const luExciseIssues = computed(() =>\r\n store.get('luExciseIssues/luExciseIssues').filter((x) => x.IsActive)\r\n )\r\n const luExciseTransactionType = computed(() =>\r\n store\r\n .get('luExciseTransactionType/luExciseTransactionType')\r\n .filter((x) => x.IsActive)\r\n )\r\n\r\n const luExciseTaxTypes = computed(() =>\r\n store.get('luExciseTaxTypes/luExciseTaxTypes')\r\n )\r\n const availableTaxTypes = computed(() => {\r\n var projectDetailsID = selectedProject.value.ProjectDetailsID\r\n return luExciseTaxTypes.value.filter((item) => {\r\n return item.IsActive && item.ProjectDetailID == projectDetailsID\r\n })\r\n })\r\n const validateString = (value, canBeEmpty) => {\r\n if (\r\n typeof value == 'string' ||\r\n typeof value == 'number' ||\r\n typeof value == 'boolean'\r\n ) {\r\n return canBeEmpty || value.toString().length > 0\r\n } else {\r\n return false\r\n }\r\n }\r\n const validateStringMaxLength = (value, maxCharacters) => {\r\n if (\r\n typeof value == 'string' ||\r\n typeof value == 'number' ||\r\n typeof value == 'boolean'\r\n ) {\r\n return value.toString().length < maxCharacters\r\n } else {\r\n return false\r\n }\r\n }\r\n const validateValueIsInList = (value, items, required) => {\r\n let matchingIndex = -1\r\n let list = items.value ? items.value : items\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i].ID == value) {\r\n matchingIndex = i\r\n break\r\n }\r\n }\r\n if (required) {\r\n return matchingIndex > -1\r\n } else {\r\n return (\r\n value == 0 || value == null || value == undefined || matchingIndex > -1\r\n )\r\n }\r\n }\r\n const validateException = (exception) => {\r\n let valid = true\r\n var validationMessage = []\r\n //validate stratum\r\n //map stratumId from stratumNumber if stratumId is not defined\r\n if (!(exception.StratumID > 0) && exception.StratumNumber != null) {\r\n let matchingIndex = -1\r\n // let stratum = items.value ? items.value : items\r\n for (var i = 0; i < stratum.value.length; i++) {\r\n if (stratum.value[i].StratumNumber == exception.StratumNumber) {\r\n matchingIndex = i\r\n break\r\n }\r\n }\r\n if (matchingIndex != -1) {\r\n exception.StratumID = stratum.value[matchingIndex].ID\r\n }\r\n }\r\n if (!validateValueIsInList(exception.StratumID, stratum, true)) {\r\n valid = false\r\n let stratumMessage = !exception.StratumID\r\n ? 'no stratum id'\r\n : 'stratum id is not in project'\r\n validationMessage.push(stratumMessage)\r\n }\r\n //validate date\r\n let dateTime = dayjs(exception.InvoiceDate)\r\n .toDate()\r\n .getTime()\r\n var low = dateTime < selectedProjectStartTime.value\r\n var high = dateTime > selectedProjectEndTime.value\r\n if (high || low || dateTime != dateTime) {\r\n valid = false\r\n var dateMessage = high\r\n ? 'date is after audit end'\r\n : low\r\n ? 'date is before audit start'\r\n : 'date is not valid'\r\n validationMessage.push(dateMessage)\r\n }\r\n //validate issue\r\n if (!validateValueIsInList(exception.IssueID, luExciseIssues, true)) {\r\n valid = false\r\n var issueMessage = !exception.IssueID\r\n ? 'no issue selected'\r\n : 'invalid issue selected'\r\n validationMessage.push(issueMessage)\r\n }\r\n // validate transaction type\r\n if (\r\n !validateValueIsInList(\r\n exception.TransactionTypeID,\r\n luExciseTransactionType,\r\n true\r\n )\r\n ) {\r\n valid = false\r\n var transactionMessage = !exception.TransactionTypeID\r\n ? 'no transaction type selected'\r\n : 'invalid transaction type selected'\r\n validationMessage.push(transactionMessage)\r\n }\r\n // validate tax type\r\n if (!validateValueIsInList(exception.TaxTypeID, availableTaxTypes, true)) {\r\n valid = false\r\n var taxMessage = !exception.TaxTypeID\r\n ? 'no tax type selected'\r\n : 'invalid tax type selected'\r\n validationMessage.push(taxMessage)\r\n }\r\n // validate sold from county\r\n // if (!validateValueIsInList(exception.SoldFromCountyID, luCounty, true)) {\r\n // valid = false\r\n // var sfCountyMessage = !exception.SoldFromCountyID\r\n // ? 'no sold from county selected'\r\n // : 'invalid sold from county selected'\r\n // validationMessage.push(sfCountyMessage)\r\n // }\r\n // validate delivered to County\r\n if (!validateValueIsInList(exception.DeliveredToCountyID, luCounty, true)) {\r\n valid = false\r\n var dtCountyMessage = !exception.DeliveredToCountyID\r\n ? 'no delivered to county selected'\r\n : 'invalid delivered to county selected'\r\n validationMessage.push(dtCountyMessage)\r\n }\r\n // validate city\r\n let cityList = []\r\n let matchingCountyIndex = -1\r\n let countyList = luCounty.value\r\n for (var i = 0; i < countyList.length; i++) {\r\n if (countyList[i].ID == exception.DeliveredToCountyID) {\r\n matchingCountyIndex = i\r\n break\r\n }\r\n }\r\n if (matchingCountyIndex > -1) {\r\n cityList = countyList[matchingCountyIndex].Cities.filter(\r\n (x) => x.IsActive && x.DORJurisdiction != null\r\n )\r\n }\r\n if (!validateValueIsInList(exception.DeliveredToCityID, cityList)) {\r\n valid = false\r\n var dtCityMessage = 'invalid delivered to city selected'\r\n validationMessage.push(dtCityMessage)\r\n }\r\n // Validate special district\r\n let sdList = []\r\n if (matchingCountyIndex > -1) {\r\n sdList = countyList[matchingCountyIndex].SpecialDistricts.filter(\r\n (x) => x.IsActive && x.DORJurisdiction != null\r\n )\r\n }\r\n if (!validateValueIsInList(exception.SpecialDistrictID, sdList)) {\r\n valid = false\r\n var dtSDMessage = 'invalid special district selected'\r\n validationMessage.push(dtSDMessage)\r\n }\r\n // validate taxable amount\r\n if (\r\n parseFloat(exception.TaxableAmount) != parseFloat(exception.TaxableAmount)\r\n ) {\r\n valid = false\r\n var taxableAmountMessage = 'invalid taxable amount'\r\n validationMessage.push(taxableAmountMessage)\r\n }\r\n var reconciliationIssues = [8, 10]\r\n if (exception.TaxableAmount == 0) {\r\n //parse AuditedTax and ReportedTax for reconciliation issues to taxable amount and tax paid\r\n if (\r\n parseFloat(exception.AuditedTax) == parseFloat(exception.AuditedTax) &&\r\n reconciliationIssues.includes(exception.IssueID)\r\n ) {\r\n if (\r\n !exception.IssueID ||\r\n !exception.InvoiceDate ||\r\n !exception.DeliveredToCountyID ||\r\n !exception.TaxTypeID\r\n ) {\r\n valid = false\r\n var taxableAmountMessage = 'unable to determine taxable amount'\r\n validationMessage.push(taxableAmountMessage)\r\n }\r\n var taxRate = parseFloat(\r\n getTaxRate(\r\n exception.IssueID,\r\n exception.InvoiceDate,\r\n exception.DeliveredToCountyID,\r\n exception.TaxTypeID,\r\n exception.DeliveredToCityID,\r\n exception.SpecialDistrictID\r\n ).toFixed(4)\r\n )\r\n exception.TaxableAmount = parseFloat(\r\n (exception.AuditedTax / taxRate).toFixed(2)\r\n )\r\n }\r\n }\r\n // validate tax paid\r\n if (parseFloat(exception.TaxPaid) != parseFloat(exception.TaxPaid)) {\r\n valid = false\r\n var taxPaidMessage = 'invalid tax paid'\r\n validationMessage.push(taxPaidMessage)\r\n }\r\n if (\r\n exception.TaxPaid == 0 &&\r\n reconciliationIssues.includes(exception.IssueID) &&\r\n parseFloat(exception.ReportedTax) == parseFloat(exception.ReportedTax)\r\n ) {\r\n exception.TaxPaid = exception.ReportedTax\r\n }\r\n // validate isActive\r\n if (!exception.IsActive === true && !exception.IsActive === false) {\r\n valid = false\r\n var isActiveMessage = 'invalid is active'\r\n validationMessage.push(isActiveMessage)\r\n }\r\n // validate description\r\n if (!validateString(exception.Description, true)) {\r\n valid = false\r\n var descriptionMessage = 'invalid description'\r\n validationMessage.push(descriptionMessage)\r\n }\r\n // validate reference\r\n if (!validateString(exception.Reference)) {\r\n valid = false\r\n var referenceMessage = 'invalid reference'\r\n validationMessage.push(referenceMessage)\r\n }\r\n // validate sub description\r\n // if (!validateString(exception.SubDescription, true)) {\r\n // valid = false\r\n // var subDescriptionMessage = 'invalid sub description'\r\n // validationMessage.push(subDescriptionMessage)\r\n // }\r\n // validate vendorCustomer\r\n if (!validateString(exception.VendorCustomer, true)) {\r\n valid = false\r\n var vendorCustomerMessage = 'invalid vendor / customer'\r\n validationMessage.push(vendorCustomerMessage)\r\n }\r\n // validate document number\r\n if (!validateString(exception.DocumentNumber, true)) {\r\n valid = false\r\n var documentNumberMessage = 'invalid document number'\r\n validationMessage.push(documentNumberMessage)\r\n } else if (!validateStringMaxLength(exception.DocumentNumber, 50)) {\r\n valid = false\r\n var documentNumberMessage =\r\n 'document number must be 50 characters or less'\r\n validationMessage.push(documentNumberMessage)\r\n }\r\n if (valid) {\r\n return valid\r\n } else {\r\n // console.orange(exception, validationMessage)\r\n return validationMessage\r\n }\r\n }\r\n\r\n return {\r\n validateException,\r\n }\r\n}\r\n","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/babel-loader/lib/index.js??ref--14!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExciseExceptionsAdd.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/babel-loader/lib/index.js??ref--14!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExciseExceptionsAdd.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ExciseExceptionsAdd.vue?vue&type=template&id=acc1be0c&scoped=true&\"\nimport script from \"./ExciseExceptionsAdd.vue?vue&type=script&lang=js&\"\nexport * from \"./ExciseExceptionsAdd.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ExciseExceptionsAdd.vue?vue&type=style&index=0&id=acc1be0c&scoped=true&lang=css&\"\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 \"acc1be0c\",\n null\n \n)\n\nexport default component.exports","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { composedPath } from '../../util/helpers'\n\ninterface TouchEvent {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nfunction bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean,\n currentScrollOffset: number\n): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : selectedElement.offsetLeft\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset\n const itemOffset = clientWidth + offsetLeft\n const additionalOffset = clientWidth * 0.4\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean\n): number {\n const { offsetLeft, clientWidth } = selectedElement\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n }\n}\n\nexport const BaseSlideGroup = mixins\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'never',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n isSwipingHorizontal: false,\n isSwiping: false,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\n canTouch (): boolean {\n return typeof window !== 'undefined'\n },\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing,\n }\n },\n hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n\n // Always hide arrows\n case 'never': return false\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\n return this.hasAffixes && this.scrollOffset !== 0\n },\n },\n\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n scrollOffset (val) {\n if (this.$vuetify.rtl) val = -val\n\n let scroll =\n val <= 0\n ? bias(-val)\n : val > this.widths.content - this.widths.wrapper\n ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val)\n : -val\n\n if (this.$vuetify.rtl) scroll = -scroll\n\n this.$refs.content.style.transform = `translateX(${scroll}px)`\n },\n },\n\n mounted () {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n obs.observe(this.$refs.content)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n } else {\n let itemsLength = 0\n this.$on('hook:beforeUpdate', () => {\n itemsLength = (this.$refs.content?.children || []).length\n })\n this.$on('hook:updated', () => {\n if (itemsLength === (this.$refs.content?.children || []).length) return\n this.setWidths()\n })\n }\n },\n\n methods: {\n onScroll () {\n this.$refs.wrapper.scrollLeft = 0\n },\n onFocusin (e: FocusEvent) {\n if (!this.isOverflowing) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of composedPath(e)) {\n for (const vm of this.items) {\n if (vm.$el === el) {\n this.scrollOffset = calculateUpdatedOffset(\n vm.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n return\n }\n }\n }\n },\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : this.$slots.next || this.__cachedNext\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext,\n },\n on: {\n click: () => this.onAffixClick('next'),\n },\n key: 'next',\n }, [slot])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n on: {\n focusin: this.onFocusin,\n },\n }, this.$slots.default)\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\n let icon = location\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next'\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev'\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n const hasAffix = (this as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : this.$slots.prev || this.__cachedPrev\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev,\n },\n on: {\n click: () => this.onAffixClick('prev'),\n },\n key: 'prev',\n }, [slot])\n },\n genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n on: {\n scroll: this.onScroll,\n },\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\n if (!this.canTouch) return\n\n if (!this.isSwiping) {\n // only calculate disableSwipeHorizontal during the first onTouchMove invoke\n // in order to ensure disableSwipeHorizontal value is consistent between onTouchStart and onTouchEnd\n const diffX = e.touchmoveX - e.touchstartX\n const diffY = e.touchmoveY - e.touchstartY\n this.isSwipingHorizontal = Math.abs(diffX) > Math.abs(diffY)\n this.isSwiping = true\n }\n\n if (this.isSwipingHorizontal) {\n // sliding horizontally\n this.scrollOffset = this.startX - e.touchmoveX\n // temporarily disable window vertical scrolling\n document.documentElement.style.overflowY = 'hidden'\n }\n },\n onTouchEnd () {\n if (!this.canTouch) return\n\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n content.style.setProperty('transition', null)\n content.style.setProperty('willChange', null)\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n\n this.isSwiping = false\n // rollback whole page scrolling to default\n document.documentElement.style.removeProperty('overflow-y')\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\n if (!this.selectedItem && this.items.length) {\n const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect()\n const wrapperPosition = this.$refs.wrapper.getBoundingClientRect()\n\n if (\n (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n ) {\n this.scrollTo('prev')\n }\n }\n\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n }, this.$vuetify.rtl, this.scrollOffset)\n },\n setWidths () {\n window.requestAnimationFrame(() => {\n if (this._isDestroyed) return\n\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\n // https://github.com/vuetifyjs/vuetify/issues/13212\n // We add +1 to the wrappers width to prevent an issue where the `clientWidth`\n // gets calculated wrongly by the browser if using a different zoom-level.\n this.isOverflowing = this.widths.wrapper + 1 < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n","// Components\nimport VWindow from './VWindow'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n GroupableFactory('windowGroup', 'v-window-item', 'v-window')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n windowGroup: InstanceType\n}\n\nexport default baseMixins.extend().extend(\n /* @vue/component */\n).extend({\n name: 'v-window-item',\n\n directives: {\n Touch,\n },\n\n props: {\n disabled: Boolean,\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n value: {\n required: false,\n },\n },\n\n data () {\n return {\n isActive: false,\n inTransition: false,\n }\n },\n\n computed: {\n classes (): object {\n return this.groupClasses\n },\n computedTransition (): string | boolean {\n if (!this.windowGroup.internalReverse) {\n return typeof this.transition !== 'undefined'\n ? this.transition || ''\n : this.windowGroup.computedTransition\n }\n\n return typeof this.reverseTransition !== 'undefined'\n ? this.reverseTransition || ''\n : this.windowGroup.computedTransition\n },\n },\n\n methods: {\n genDefaultSlot () {\n return this.$slots.default\n },\n genWindowItem () {\n return this.$createElement('div', {\n staticClass: 'v-window-item',\n class: this.classes,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: this.$listeners,\n }, this.genDefaultSlot())\n },\n onAfterTransition () {\n if (!this.inTransition) {\n return\n }\n\n // Finalize transition state.\n this.inTransition = false\n if (this.windowGroup.transitionCount > 0) {\n this.windowGroup.transitionCount--\n\n // Remove container height if we are out of transition.\n if (this.windowGroup.transitionCount === 0) {\n this.windowGroup.transitionHeight = undefined\n }\n }\n },\n onBeforeTransition () {\n if (this.inTransition) {\n return\n }\n\n // Initialize transition state here.\n this.inTransition = true\n if (this.windowGroup.transitionCount === 0) {\n // Set initial height for height transition.\n this.windowGroup.transitionHeight = convertToUnit(this.windowGroup.$el.clientHeight)\n }\n this.windowGroup.transitionCount++\n },\n onTransitionCancelled () {\n this.onAfterTransition() // This should have the same path as normal transition end.\n },\n onEnter (el: HTMLElement) {\n if (!this.inTransition) {\n return\n }\n\n this.$nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!this.computedTransition || !this.inTransition) {\n return\n }\n\n // Set transition target height.\n this.windowGroup.transitionHeight = convertToUnit(el.clientHeight)\n })\n },\n },\n\n render (h): VNode {\n return h('transition', {\n props: {\n name: this.computedTransition,\n },\n on: {\n // Handlers for enter windows.\n beforeEnter: this.onBeforeTransition,\n afterEnter: this.onAfterTransition,\n enterCancelled: this.onTransitionCancelled,\n\n // Handlers for leave windows.\n beforeLeave: this.onBeforeTransition,\n afterLeave: this.onAfterTransition,\n leaveCancelled: this.onTransitionCancelled,\n\n // Enter handler for height transition.\n enter: this.onEnter,\n },\n }, this.showLazyContent(() => [this.genWindowItem()]))\n },\n})\n","// Extensions\nimport VWindowItem from '../VWindow/VWindowItem'\n\n/* @vue/component */\nexport default VWindowItem.extend({\n name: 'v-tab-item',\n\n props: {\n id: String,\n },\n\n methods: {\n genWindowItem () {\n const item = VWindowItem.options.methods.genWindowItem.call(this)\n\n item.data!.domProps = item.data!.domProps || {}\n item.data!.domProps.id = this.id || this.value\n\n return item\n },\n },\n})\n"],"sourceRoot":""}