{"version":3,"sources":["webpack:///./src/_features/modules/materials/materials.vue?1430","webpack:///./src/_features/modules/materials/materials.vue?0238","webpack:///./src/_features/modules/materials/materials.vue?bf2e","webpack:///./src/_features/modules/materials/materials.vue","webpack:///./src/_features/modules/materials/materials.vue?db30"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","tableHeaders","materials","selected","on","onCloseModal","staticClass","staticRenderFns","actions","title","action","onSelectEdit","onSelectUpdate","label","field","type","validate","format","value","toFixed","replace","onSelectDelete","onCancel","isEquipment","materialID","query","$route","projectID","t","deleteAction","getAction","console","error","column","$validator","items","errors","Object","assign","length","m","payload","materialName","note","qty","totalPrice","unitPrice","addUpdateAction","log","$router","currentRoute","name","fetchingMaterialsInterval","setInterval","filtered","filter","fields","undefined","includes","clearInterval","components","EditableTable","EditMaterial","component"],"mappings":"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","file":"js/chunk-73e07288.e518bcd7.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\":'materialID',\"headers\":_vm.tableHeaders,\"columns\":_vm.materials,\"selected\":_vm.selected}}),_c('modal',{attrs:{\"name\":\"edit-material\",\"adaptive\":true,\"width\":\"60%\",\"height\":\"auto\"},on:{\"closed\":_vm.onCloseModal}},[_c('div',{staticClass:\"modal-container\"},[_c('EditMaterial')],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport { Action, Getter, Mutation, State } from \"vuex-class\";\r\nimport { dispatchHideNav, dispatchShowNav } from \"@/_shared/actions\";\r\n// import BasicTable, { TableHeader } from \"@/_shared/tables/basic-table.vue\";\r\nimport EditableTable, {\r\n TableHeader\r\n} from \"@/_shared/tables/editable-table.vue\";\r\n\r\nimport materials, { Material } from \"../../../store/modules/materials\";\r\nimport EditMaterial from \"./add-new.vue\";\r\n\r\n@Component({\r\n components: {\r\n EditableTable,\r\n EditMaterial\r\n }\r\n})\r\nexport default class Materials extends Vue {\r\n @Action(\"addUpdateMaterialAction\") private addUpdateAction!: any;\r\n @Action(\"getMaterialsAction\") private getAction!: any;\r\n @Action(\"deleteMaterialAction\") private deleteAction!: any;\r\n\r\n @Getter(\"getMaterials\") private materials!: Material[];\r\n\r\n private tableHeaders: TableHeader[] = [\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.onSelectUpdate\r\n }\r\n ]\r\n },\r\n {\r\n label: \"Item Name\",\r\n field: \"materialName\",\r\n type: \"text\",\r\n validate: \"required\"\r\n },\r\n {\r\n label: \"Quantity\",\r\n field: \"qty\",\r\n type: \"number\",\r\n validate: \"required|min_value:1\"\r\n },\r\n {\r\n label: \"Unit Cost\",\r\n field: \"unitPrice\",\r\n format: value => {\r\n return `$${value.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1,\")}`;\r\n },\r\n type: \"number\",\r\n validate: \"required|min_value:1\"\r\n },\r\n {\r\n label: \"Total Price\",\r\n field: \"totalPrice\",\r\n format: value =>\r\n `$${value.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1,\")}`,\r\n type: \"hidden\",\r\n validate: \"required|min_value:1\"\r\n },\r\n {\r\n label: \"Note\",\r\n field: \"note\"\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 private fetchingMaterialsInterval: any;\r\n private isEquipment: boolean = false;\r\n\r\n private selected: Material | null = null;\r\n\r\n private async onSelectDelete({ materialID }: Material) {\r\n try {\r\n const { query } = this.$route;\r\n const { projectID, t, type } = query;\r\n await this.deleteAction({ materialID, t, type });\r\n await this.getAction(query);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n private async onSelectUpdate(column: Material) {\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 try {\r\n const m = { ...column };\r\n const { query } = this.$route;\r\n const { t, type, projectID } = query;\r\n let payload = {};\r\n\r\n if (this.isEquipment) {\r\n payload = {\r\n materialID: m.materialID,\r\n materialName: m.materialName,\r\n note: m.note,\r\n projectID,\r\n type,\r\n t\r\n };\r\n } else {\r\n payload = {\r\n materialID: m.materialID,\r\n materialName: m.materialName,\r\n note: m.note,\r\n qty: m.qty,\r\n totalPrice: m.totalPrice,\r\n unitPrice: m.unitPrice,\r\n projectID,\r\n type,\r\n t\r\n };\r\n }\r\n await this.addUpdateAction(payload);\r\n\r\n this.selected = null;\r\n this.getAction(query);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n private onSelectEdit(column: Material) {\r\n this.selected = column;\r\n }\r\n\r\n private onCancel() {\r\n this.selected = null;\r\n }\r\n\r\n private onCloseModal() {\r\n const { query } = this.$route;\r\n this.getAction(query);\r\n }\r\n\r\n private created() {\r\n dispatchHideNav(this);\r\n console.log(\"MATERIAL LIST - BEFORE IFF\");\r\n if (this.$router.currentRoute.name === \"material_lists\") {\r\n console.log(\"MATERIAL LIST - IN IFF BLOCK\");\r\n const { query } = this.$route;\r\n this.getAction(query);\r\n\r\n this.isEquipment = query.type === \"equipment\";\r\n this.fetchingMaterialsInterval = setInterval(\r\n (): void => this.getAction(query),\r\n 3000\r\n );\r\n\r\n if (this.isEquipment) {\r\n const filtered = this.tableHeaders.filter(value => {\r\n const fields: any = [undefined, \"materialName\", \"note\"];\r\n return fields.includes(value.field);\r\n });\r\n this.tableHeaders = filtered;\r\n }\r\n }\r\n }\r\n\r\n private beforeRouteUpdate() {\r\n clearInterval(this.fetchingMaterialsInterval);\r\n }\r\n\r\n private beforeDestroy() {\r\n dispatchShowNav(this);\r\n clearInterval(this.fetchingMaterialsInterval);\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!./materials.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!./materials.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./materials.vue?vue&type=template&id=49208d0a&scoped=true&\"\nimport script from \"./materials.vue?vue&type=script&lang=ts&\"\nexport * from \"./materials.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./materials.vue?vue&type=style&index=0&id=49208d0a&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 \"49208d0a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./materials.vue?vue&type=style&index=0&id=49208d0a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./materials.vue?vue&type=style&index=0&id=49208d0a&scoped=true&lang=css&\""],"sourceRoot":""}