{"version":3,"sources":["webpack:///./src/components/hoursInput.vue?2cf8","webpack:///src/components/hoursInput.vue","webpack:///./src/components/hoursInput.vue?182a","webpack:///./src/components/hoursInput.vue","webpack:///../../../src/components/VForm/VForm.ts","webpack:///./node_modules/dayjs/plugin/weekday.js","webpack:///./src/components/time/timesheetDetails.vue?0602","webpack:///src/components/time/timesheetDetails.vue","webpack:///./src/components/time/timesheetDetails.vue?b73e","webpack:///./src/components/time/timesheetDetails.vue","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///./src/validation/rules.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","VTextField","attrs","hoursTimeFormatted","label","disabled","placeholder","rules","hoursGreaterThanZero","hoursValidTime","readonly","on","$event","staticRenderFns","component","extend","name","provide","form","inheritAttrs","props","Boolean","lazyValidation","value","data","inputs","watchers","errorBag","watch","handler","val","errors","Object","values","includes","$emit","deep","immediate","methods","watchInput","input","watcher","$watch","$set","_uid","valid","shouldValidate","hasOwnProperty","validate","filter","length","reset","forEach","resetErrorBag","setTimeout","resetValidation","register","push","unregister","found","find","i","unwatch","$delete","h","staticClass","novalidate","attrs$","submit","e","$slots","default","t","_typeof","exports","module","define","prototype","weekday","$locale","weekStart","$W","n","$utils","u","subtract","add","VRow","VCol","VCard","VListItem","VList","_v","VDataTable","headers","timesheetEntriesResult","scopedSlots","_u","key","fn","ref","item","_s","_f","EntryHours","functional","id","String","tag","type","fluid","classes","children","keys","startsWith","domProps","class","Array","concat","baseMixins","autoGrow","noResize","rowHeight","Number","validator","v","isNaN","parseFloat","rows","parseInt","computed","noResizeHandle","options","call","$nextTick","calculateInputHeight","$refs","style","removeProperty","lazyValue","mounted","height","scrollHeight","minHeight","Math","max","genInput","onInput","onKeyDown","isFocused","keyCode","stopPropagation","Rules","namePattern","pattern","test","emailPattern","yearPattern","novcNumberPattern","numberPattern","zipPattern","hoursLessThan24","time","split","replace","hours","m","minutes","toString","newTime","partial","toFixed","amountSeparatorPattern","amountPattern"],"mappings":"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","file":"js/chunk-2e4161e4.a4a0a452.js","sourcesContent":["import { VTextField } from 'vuetify/lib/components/VTextField';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(VTextField,{attrs:{\"value\":_vm.hoursTimeFormatted,\"label\":_vm.label,\"disabled\":_vm.disabled,\"placeholder\":_vm.placeholder,\"rules\":[_vm.rules.hoursGreaterThanZero, _vm.rules.hoursValidTime],\"readonly\":_vm.readonly},on:{\"change\":function($event){_vm.hoursTimeFormatted = $event}}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./hoursInput.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!./hoursInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./hoursInput.vue?vue&type=template&id=6a0fe168&scoped=true&\"\nimport script from \"./hoursInput.vue?vue&type=script&lang=js&\"\nexport * from \"./hoursInput.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6a0fe168\",\n null\n \n)\n\nexport default component.exports","// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: 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: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\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 render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, this.$slots.default)\n },\n})\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i\r\n \r\n \r\n \r\n \r\n \r\n Timesheet Details\r\n \r\n \r\n \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!./timesheetDetails.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!./timesheetDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./timesheetDetails.vue?vue&type=template&id=24f73df4&scoped=true&\"\nimport script from \"./timesheetDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./timesheetDetails.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24f73df4\",\n null\n \n)\n\nexport default component.exports","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","// Styles\nimport './VTextarea.sass'\n\n// Extensions\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport Vue from 'vue'\n\ninterface options extends Vue {\n $refs: {\n input: HTMLTextAreaElement\n }\n}\n\nconst baseMixins = mixins\n>(\n VTextField\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-textarea',\n\n props: {\n autoGrow: Boolean,\n noResize: Boolean,\n rowHeight: {\n type: [Number, String],\n default: 24,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseInt(v, 10)),\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-textarea': true,\n 'v-textarea--auto-grow': this.autoGrow,\n 'v-textarea--no-resize': this.noResizeHandle,\n ...VTextField.options.computed.classes.call(this),\n }\n },\n noResizeHandle (): boolean {\n return this.noResize || this.autoGrow\n },\n },\n\n watch: {\n autoGrow (val: boolean) {\n this.$nextTick(() => {\n val\n ? this.calculateInputHeight()\n : this.$refs.input?.style.removeProperty('height')\n })\n },\n lazyValue () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n rowHeight () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n },\n\n mounted () {\n setTimeout(() => {\n this.autoGrow && this.calculateInputHeight()\n }, 0)\n },\n\n methods: {\n calculateInputHeight () {\n const input = this.$refs.input\n if (!input) return\n\n input.style.height = '0'\n const height = input.scrollHeight\n const minHeight = parseInt(this.rows, 10) * parseFloat(this.rowHeight)\n // This has to be done ASAP, waiting for Vue\n // to update the DOM causes ugly layout jumping\n input.style.height = Math.max(minHeight, height) + 'px'\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.tag = 'textarea'\n delete input.data!.attrs!.type\n input.data!.attrs!.rows = this.rows\n\n return input\n },\n onInput (e: Event) {\n VTextField.options.methods.onInput.call(this, e)\n this.autoGrow && this.calculateInputHeight()\n },\n onKeyDown (e: KeyboardEvent) {\n // Prevents closing of a\n // dialog when pressing\n // enter\n if (this.isFocused && e.keyCode === 13) {\n e.stopPropagation()\n }\n\n this.$emit('keydown', e)\n },\n },\n})\n","const Rules = {\r\n namePattern: (value) => {\r\n const pattern = /[A-Za-z]/\r\n return pattern.test(value) || 'Invalid format.'\r\n },\r\n emailPattern: (value) => {\r\n const pattern = /((?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])|none|n\\/a)/\r\n return (\r\n !value || pattern.test(value) || 'Invalid format. e.g. email@address.com'\r\n )\r\n },\r\n yearPattern: (value) => {\r\n const pattern = /^\\d{4}$/\r\n return !value || pattern.test(value) || 'Invalid Year.'\r\n },\r\n novcNumberPattern: (value) => {\r\n const pattern = /^[\\d-\\s]+$/\r\n return !value || pattern.test(value) || 'Invalid Number.'\r\n },\r\n numberPattern: (value) => {\r\n const pattern = /^\\d{3}-\\d{3}-\\d{4}$/\r\n return !value || pattern.test(value) || 'Invalid Phone Number.'\r\n },\r\n zipPattern: (value) => {\r\n const pattern = /^\\d{5}$/\r\n return pattern.test(value) || 'Invalid zip format.'\r\n },\r\n hoursLessThan24: (v) => {\r\n if (v && v.includes(':')) {\r\n let time = v.split(':')\r\n let h = time[0].replace(/[^0-9.]/g, '')\r\n let hours = 0\r\n if (h.length > 0) {\r\n hours = parseInt(h, 10)\r\n }\r\n let m = time[1].replace(/[^0-9]/g, '')\r\n let minutes = 0\r\n //if they enter hours:minutes like 1:3 we are going to assume they mean 1:30 not 1:03\r\n if (m.length > 1) {\r\n minutes = parseInt(m, 10)\r\n } else if (m.length > 0) {\r\n minutes = parseInt(m.toString() + '0', 10)\r\n }\r\n //make sure that it was able to parse and both are not 0\r\n if (hours < 24 || (hours == 24 && minutes == 0)) {\r\n return true\r\n } else {\r\n // we have an invalid or 0 time\r\n return false\r\n }\r\n } else {\r\n let newTime = parseFloat(v)\r\n if (newTime <= 24) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n },\r\n hoursGreaterThanZero: (v) => {\r\n if (v && v.includes(':')) {\r\n let time = v.split(':')\r\n let h = time[0].replace(/[^0-9.]/g, '')\r\n let hours = 0\r\n if (h.length > 0) {\r\n hours = parseInt(h, 10)\r\n }\r\n let m = time[1].replace(/[^0-9]/g, '')\r\n let minutes = 0\r\n //if they enter hours:minutes like 1:3 we are going to assume they mean 1:30 not 1:03\r\n if (m.length > 1) {\r\n minutes = parseInt(m, 10)\r\n } else if (m.length > 0) {\r\n minutes = parseInt(m.toString() + '0', 10)\r\n }\r\n //make sure that it was able to parse and both are not 0\r\n if (hours > 0 || minutes > 0) {\r\n return true\r\n } else {\r\n // we have an invalid or 0 time\r\n return 'hours must be greater than 0'\r\n }\r\n } else {\r\n let newTime = parseFloat(v)\r\n if (newTime > 0) {\r\n return true\r\n } else {\r\n return 'hours must be greater than 0'\r\n }\r\n }\r\n },\r\n hoursValidTime: (v) => {\r\n if (v) {\r\n if (v.includes(':')) {\r\n let time = v.split(':')\r\n let h = time[0].replace(/[^0-9.]/g, '')\r\n let hours = 0\r\n if (h.length > 0) {\r\n hours = parseInt(h, 10)\r\n }\r\n let m = time[1].replace(/[^0-9]/g, '')\r\n let minutes = 0\r\n //if they enter hours:minutes like 1:3 we are going to assume they mean 1:30 not 1:03\r\n if (m.length > 1) {\r\n minutes = parseInt(m, 10)\r\n } else if (m.length > 0) {\r\n minutes = parseInt(m.toString() + '0', 10)\r\n }\r\n //make sure that it was able to parse\r\n if (\r\n hours >= 0 &&\r\n (minutes == 0 || minutes == 15 || minutes == 30 || minutes == 45)\r\n ) {\r\n return true\r\n } else {\r\n // we have an invalid time. changing it to -1 and back on next tick resets it to the previous value\r\n return 'Minutes must be in 15 min increments'\r\n }\r\n } else {\r\n let newTime = parseFloat(v.replace(/[^0-9.]/g, ''))\r\n let partial = (newTime % 1).toFixed(2)\r\n if (\r\n newTime &&\r\n newTime >= 0 &&\r\n (partial == 0.0 ||\r\n partial == 0.25 ||\r\n partial == 0.5 ||\r\n partial == 0.75)\r\n ) {\r\n return true\r\n } else {\r\n // we have an invalid number. changing it to -1 and back on next tick resets it to the previous value\r\n return 'Time must be in .25 increments'\r\n }\r\n }\r\n } else {\r\n return 'Hours is required'\r\n }\r\n },\r\n amountSeparatorPattern: (value) => {\r\n const pattern = /^-?[\\d,]{0,12}(\\.[\\d]{0,2})?$/\r\n return pattern.test(value) || 'Invalid amount.'\r\n },\r\n amountPattern: (value) => {\r\n const pattern = /^-?[\\d]{0,10}(\\.[\\d]{0,2})?$/\r\n return pattern.test(value) || 'Invalid amount.'\r\n },\r\n numberPattern: (value) => {\r\n const pattern = /[0-9]/\r\n return pattern.test(value) || 'Invalid entry.'\r\n },\r\n fieldRequired: (value) => !!value || 'Required.',\r\n}\r\nexport default Rules\r\n"],"sourceRoot":""}