{"version":3,"sources":["webpack:///./src/_features/modules/timeTracking/table.vue?c11d","webpack:///./src/_features/modules/timeTracking/table.vue?dcdd","webpack:///./src/_features/modules/timeTracking/table.vue?adac","webpack:///./src/_features/modules/timeTracking/table.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","columnKey","header","columns","selected","staticRenderFns","column","$validator","items","errors","Object","assign","length","$route","query","t","projectID","payload","inTime","format","outTime","updateColumns","fetchData","onCancel","taskID","deleteColumns","console","error","employeeID","travel","premiumTime","emergency","description","date","params","fetchColumns","$router","currentRoute","name","fetchTechnicians","fetchingInterval","setInterval","actions","title","action","onSelectEdit","onUpdate","label","field","validate","value","data","technicians","find","technician","id","displayName","type","options","map","option","onSelectDelete","clearInterval","components","EditableTable","component"],"mappings":"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","file":"js/chunk-2d21ddb9.832b7d7a.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('EditableTable',{attrs:{\"columnKey\":_vm.columnKey,\"headers\":_vm.header,\"columns\":_vm.columns,\"selected\":_vm.selected}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport { Action, Getter } from \"vuex-class\";\r\nimport moment from \"moment\";\r\n\r\nimport EditableTable, {\r\n TableHeader,\r\n Option\r\n} from \"@/_shared/tables/editable-table.vue\";\r\nimport { dispatchHideNav } from \"@/_shared/actions\";\r\nimport {\r\n TechnicianLog,\r\n TechniciansLogParams,\r\n TechniciansParams,\r\n TechnicianLogDeleteParams,\r\n Technicians,\r\n TechnicianLogPayload\r\n} from \"@/store/modules/technicians\";\r\nimport { getOptions } from \"./form.vue\";\r\n\r\n@Component({\r\n components: {\r\n EditableTable\r\n }\r\n})\r\nexport default class Table extends Vue {\r\n @Action(\"fetchTechnicianLogs\") private fetchColumns!: (\r\n params: TechniciansLogParams\r\n ) => void;\r\n @Action(\"fetchTechnicians\") private fetchTechnicians!: (\r\n params: TechniciansParams\r\n ) => void;\r\n @Action(\"updateTechnicianLog\") private updateColumns!: (\r\n payload: TechnicianLogPayload\r\n ) => void;\r\n @Action(\"deleteTechnicianLog\") private deleteColumns!: (\r\n params: TechnicianLogDeleteParams\r\n ) => void;\r\n\r\n @Getter(\"getTechnicians\") private technicians!: Technicians[];\r\n @Getter(\"getTechnicianLogs\") private columns!: TechnicianLog[];\r\n\r\n private columnKey: string = \"taskID\";\r\n private header: TableHeader[] = [];\r\n\r\n private fetchingInterval!: number;\r\n private selected: TechnicianLog | null = null;\r\n\r\n private async onUpdate(column: TechnicianLog) {\r\n const {\r\n errors: { items }\r\n } = await this.$validator;\r\n if (Object.assign(items).length) {\r\n return false;\r\n }\r\n const {\r\n query: { t, projectID }\r\n }: any = this.$route;\r\n\r\n const payload: TechnicianLogPayload = {\r\n ...column,\r\n inTime: moment(column.inTime).format(\"YYYY-MM-DDTHH:mm:ss\"),\r\n outTime: moment(column.outTime).format(\"YYYY-MM-DDTHH:mm:ss\"),\r\n t,\r\n projectID\r\n };\r\n\r\n await this.updateColumns(payload);\r\n this.fetchData();\r\n this.onCancel();\r\n }\r\n\r\n private async onSelectDelete(column: TechnicianLog) {\r\n try {\r\n const {\r\n query: { t, projectID }\r\n }: any = this.$route;\r\n const { taskID } = column;\r\n const payload: TechnicianLogDeleteParams = {\r\n taskID,\r\n t,\r\n projectID\r\n };\r\n await this.deleteColumns(payload);\r\n await this.fetchData();\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n private onCancel() {\r\n this.selected = null;\r\n }\r\n\r\n private onSelectEdit(column: TechnicianLog) {\r\n const {\r\n taskID,\r\n employeeID,\r\n travel,\r\n premiumTime,\r\n emergency,\r\n description,\r\n date,\r\n inTime,\r\n outTime\r\n } = column;\r\n this.selected = {\r\n taskID,\r\n employeeID,\r\n date,\r\n inTime,\r\n outTime,\r\n travel,\r\n premiumTime,\r\n emergency,\r\n description\r\n };\r\n }\r\n\r\n private fetchData() {\r\n const {\r\n query: { t, projectID }\r\n }: any = this.$route;\r\n const params: TechniciansLogParams = {\r\n t,\r\n projectID\r\n };\r\n return this.fetchColumns(params);\r\n }\r\n\r\n private async mounted() {\r\n dispatchHideNav(this);\r\n if (this.$router.currentRoute.name === \"time_tracking_table\") {\r\n const {\r\n query: { t }\r\n }: any = this.$route;\r\n await this.fetchTechnicians({ t });\r\n this.fetchData();\r\n this.fetchingInterval = setInterval((): void => this.fetchData(), 3000);\r\n\r\n this.header = [\r\n {\r\n actions: [\r\n {\r\n title: \"Edit\",\r\n action: this.onSelectEdit\r\n },\r\n {\r\n title: \"Save\",\r\n action: this.onUpdate\r\n }\r\n ]\r\n },\r\n {\r\n label: \"Technicans / Equipment\",\r\n field: \"employeeID\",\r\n validate: \"required\",\r\n format: value => {\r\n const data: any =\r\n this.technicians.find(technician => technician.id === value) ||\r\n {};\r\n return data.displayName;\r\n },\r\n type: \"select\",\r\n options: this.technicians.map(\r\n ({ id, displayName }: Technicians): Option => ({\r\n value: id,\r\n label: displayName\r\n })\r\n )\r\n },\r\n {\r\n label: \"Date\",\r\n field: \"date\",\r\n format: value => moment(value).format(\"YYYY-MM-DD\"),\r\n type: \"date\",\r\n validate: \"required\"\r\n },\r\n {\r\n label: \"Time In\",\r\n field: \"inTime\",\r\n format: value => moment(value).format(\"hh:mm A\"),\r\n type: \"time\",\r\n validate: \"required\"\r\n },\r\n {\r\n label: \"Time Out\",\r\n field: \"outTime\",\r\n format: value => moment(value).format(\"hh:mm A\"),\r\n type: \"time\",\r\n validate: \"required\"\r\n },\r\n {\r\n label: \"Break Time\",\r\n field: \"breakTime\",\r\n format: value => {\r\n const { label }: any =\r\n getOptions().find(option => option.value === value) || {};\r\n return label;\r\n },\r\n type: \"select\",\r\n options: getOptions()\r\n },\r\n {\r\n label: \"Travel\",\r\n field: \"travel\",\r\n format: value => {\r\n const { label }: any =\r\n getOptions().find(option => option.value === value) || {};\r\n return label;\r\n },\r\n type: \"select\",\r\n options: getOptions()\r\n },\r\n {\r\n label: \"Premium Time\",\r\n field: \"premiumTime\",\r\n format: value => {\r\n const { label }: any =\r\n getOptions().find(option => option.value === value) || {};\r\n return label;\r\n },\r\n type: \"select\",\r\n options: getOptions()\r\n },\r\n {\r\n label: \"Total Hours\",\r\n field: \"totalHours\",\r\n type: \"hidden\"\r\n },\r\n {\r\n label: \"Emergency Call\",\r\n field: \"emergency\",\r\n format: value => {\r\n return value ? \"Yes\" : \"No\";\r\n },\r\n type: \"checkbox\"\r\n },\r\n {\r\n label: \"Description\",\r\n field: \"description\",\r\n type: \"text\"\r\n },\r\n {\r\n actions: [\r\n {\r\n title: \"Delete\",\r\n action: this.onSelectDelete\r\n },\r\n {\r\n title: \"Cancel\",\r\n action: this.onCancel\r\n }\r\n ]\r\n }\r\n ];\r\n }\r\n }\r\n\r\n private beforeRouteUpdate() {\r\n clearInterval(this.fetchingInterval);\r\n }\r\n\r\n private beforeDestroy() {\r\n clearInterval(this.fetchingInterval);\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/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=script&lang=ts&\"; 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/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./table.vue?vue&type=template&id=75afc490&scoped=true&\"\nimport script from \"./table.vue?vue&type=script&lang=ts&\"\nexport * from \"./table.vue?vue&type=script&lang=ts&\"\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 \"75afc490\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}