{"version":3,"sources":["webpack:///./src/views/job_quotes/Index.vue?79bb","webpack:///./src/views/job_quotes/DeleteQuoteModal.vue?e9c4","webpack:///./src/views/job_quotes/DeleteQuoteModal.vue","webpack:///./src/views/job_quotes/DeleteQuoteModal.vue?597e","webpack:///./src/views/job_quotes/Index.vue","webpack:///./src/views/job_quotes/Index.vue?4dee","webpack:///./src/components/pagination/Pagination.vue?f9f9","webpack:///./src/components/pagination/Pagination.vue","webpack:///./src/components/pagination/Pagination.vue?f35f"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","style","_hoisted_7","_hoisted_8","role","_hoisted_9","_hoisted_10","key","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","render","_ctx","_cache","$props","$setup","$data","$options","_component_DeleteQuoteModal","_component_router_link","_component_Pagination","_directive_loading","onDeleted","updateRows","ref","quotes","quote","id","title","company","address","disabled","isGenerating","type","onClick","$event","handleGenerate","to","default","_","handleDelete","currentPage","pagination","current","totalPages","total","onChangeCurrentPage","handleChangePage","loading","toggleModal","args","name","emits","setup","props","emit","element","modal","store","setLoading","state","value","toggle","jobQuote","show","hide","dispatch","then","catch","document","getElementById","__exports__","components","DeleteQuoteModal","Pagination","getters","generating","deleteQuoteModal","fetchQuotes","data","current_page","last_page","page","unshiftLoading","quoteId","index","findIndex","i","splice","push","href","onclick","areThereLessThanEightPages","shouldBackArrowBeVisible","backButtonClicked","shownPageCollection","pageNumber","changeCurrentPage","shouldNextArrowBeVisible","nextButtonClicked","Number","maxPages","AllpageCollection","selectedPage","lastPageOfCurrentShownCollection","methods","this","$emit","undefined","filter","n","watch","length","computed"],"mappings":"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","file":"js/chunk-18c0496e.15f0f0ec.js","sourcesContent":["import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = { class: \"card mb-5 mb-xl-8\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"card-header border-0 pt-5\" }, [\n /*#__PURE__*/_createElementVNode(\"h3\", { class: \"card-title align-items-start flex-column\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"card-label fw-bolder fs-3 mb-1\" }, \"View job quotes\"),\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-muted mt-1 fw-bold fs-7\" }, \"List of all saved job quotes\")\n ])\n], -1)\nconst _hoisted_3 = { class: \"card-body py-3\" }\nconst _hoisted_4 = { class: \"table-responsive w-100\" }\nconst _hoisted_5 = { class: \"table table-row-dashed table-row-gray-300 align-middle gs-0 gy-4\" }\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", { class: \"fw-bolder text-muted\" }, [\n /*#__PURE__*/_createElementVNode(\"th\", { style: {\"width\":\"15%\"} }, \"Title\"),\n /*#__PURE__*/_createElementVNode(\"th\", { style: {\"width\":\"15%\"} }, \" Company \"),\n /*#__PURE__*/_createElementVNode(\"th\", { class: \"min-w-lg-100px\" }, \"Address\"),\n /*#__PURE__*/_createElementVNode(\"th\", { class: \"min-w-120px text-end\" }, \"Actions\")\n ])\n], -1)\nconst _hoisted_7 = { class: \"text-end\" }\nconst _hoisted_8 = {\n class: \"btn-group btn-group-sm pb-2 pt-1\",\n role: \"group\"\n}\nconst _hoisted_9 = [\"disabled\", \"onClick\"]\nconst _hoisted_10 = {\n key: 0,\n class: \"spinner-border spinner-border-sm align-middle me-2\"\n}\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\" Generate \")\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\"Edit\")\nconst _hoisted_13 = [\"onClick\"]\nconst _hoisted_14 = { class: \"w-100 mt-4 d-flex justify-content-end\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DeleteQuoteModal = _resolveComponent(\"DeleteQuoteModal\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Pagination = _resolveComponent(\"Pagination\")!\n const _directive_loading = _resolveDirective(\"loading\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_DeleteQuoteModal, {\n onDeleted: _ctx.updateRows,\n ref: \"deleteQuoteModal\"\n }, null, 8, [\"onDeleted\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"table\", _hoisted_5, [\n _hoisted_6,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.quotes, (quote) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: quote.id\n }, [\n _createElementVNode(\"td\", null, _toDisplayString(quote.title), 1),\n _createElementVNode(\"td\", null, _toDisplayString(quote.company), 1),\n _createElementVNode(\"td\", null, _toDisplayString(quote.address), 1),\n _createElementVNode(\"td\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"button\", {\n disabled: _ctx.isGenerating(quote.id),\n type: \"button\",\n onClick: ($event: any) => (_ctx.handleGenerate(quote.id)),\n class: \"btn btn-sm btn-success\"\n }, [\n (_ctx.isGenerating(quote.id))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10))\n : _createCommentVNode(\"\", true),\n _hoisted_11\n ], 8, _hoisted_9),\n _createVNode(_component_router_link, {\n to: `/edit-quote/${quote.id}`,\n class: \"btn btn-sm btn-warning\"\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createElementVNode(\"button\", {\n onClick: ($event: any) => (_ctx.handleDelete(quote)),\n class: \"btn btn-sm btn-danger\"\n }, \" Delete \", 8, _hoisted_13)\n ])\n ])\n ]))\n }), 128))\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_Pagination, {\n currentPage: _ctx.pagination.current,\n totalPages: _ctx.pagination.total,\n onChangeCurrentPage: _ctx.handleChangePage\n }, null, 8, [\"currentPage\", \"totalPages\", \"onChangeCurrentPage\"])\n ])\n ])), [\n [_directive_loading, _ctx.loading]\n ])\n ])\n ], 64))\n}","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"modal fade\",\n id: \"delete-quote-modal\",\n \"data-toggle\": \"modal\"\n}\nconst _hoisted_2 = { class: \"modal-dialog\" }\nconst _hoisted_3 = { class: \"modal-content\" }\nconst _hoisted_4 = { class: \"modal-header\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"h5\", {\n class: \"modal-title\",\n id: \"delete-quote-modal=label\"\n}, \" Are you sure? \", -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"svg-icon svg-icon-2x\" }, null, -1)\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = { class: \"modal-body\" }\nconst _hoisted_9 = { class: \"modal-footer\" }\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = {\n key: 0,\n class: \"spinner-border me-2 spinner-border-sm\"\n}\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\" Delete \")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", {\n class: \"btn btn-icon btn-sm btn-active-light-primary ms-2\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.toggleModal(false, null))),\n \"aria-label\": \"Close\"\n }, _hoisted_7)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", null, \"Delete quote \" + _toDisplayString(_ctx.quote ? _ctx.quote.title : \"\") + \" ?\", 1)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", {\n type: \"button\",\n class: \"btn btn-light\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.toggleModal(false, null)))\n }, \" Close \"),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.handleDelete && _ctx.handleDelete(...args))),\n disabled: _ctx.loading,\n type: \"button\",\n class: \"btn btn-danger\"\n }, [\n (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11))\n : _createCommentVNode(\"\", true),\n _hoisted_12\n ], 8, _hoisted_10)\n ])\n ])\n ])\n ]))\n}","\nimport { JobQuoteListing } from \"@/views/job_quotes/Index.vue\";\nimport { defineComponent, onMounted, ref } from \"vue\";\nimport { Modal } from \"bootstrap\";\nimport { useStore } from \"vuex\";\nimport { fireToast } from \"@/core/helpers/swal\";\n\nexport default defineComponent({\n name: \"delete-quote-modal\",\n emits: [\"deleted\"],\n setup: function(props, { emit }) {\n const element = ref(null);\n const modal = ref(null);\n const quote = ref(null);\n const store = useStore();\n const loading = ref(false);\n\n function setLoading(state: boolean): void {\n loading.value = state;\n }\n\n onMounted((): void => {\n element.value = document.getElementById(\"delete-quote-modal\");\n if (element.value) {\n modal.value = new Modal(element.value);\n }\n });\n\n function toggleModal(toggle: boolean, jobQuote: null | JobQuoteListing) {\n if (toggle && quote) {\n quote.value = jobQuote;\n modal.value?.show();\n } else {\n modal.value?.hide();\n }\n }\n\n function handleDelete(): void {\n setLoading(true);\n store\n .dispatch(\"JobQuotesModule/deleteJobQuote\", quote.value?.id)\n .then(() => {\n toggleModal(false, null);\n fireToast(\"Job quote deleted successfully\", true);\n setLoading(false);\n emit(\"deleted\");\n })\n .catch(() => {\n fireToast(\"An error occurred while trying to delete quote\", false);\n setLoading(false);\n });\n }\n\n return {\n handleDelete,\n toggleModal,\n loading,\n quote\n };\n }\n});\n","import { render } from \"./DeleteQuoteModal.vue?vue&type=template&id=33a60caf&ts=true\"\nimport script from \"./DeleteQuoteModal.vue?vue&type=script&lang=ts\"\nexport * from \"./DeleteQuoteModal.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { computed, defineComponent, onMounted, reactive, ref } from \"vue\";\nimport { useStore } from \"vuex\";\nimport Pagination from \"@/components/pagination/Pagination.vue\";\nimport DeleteQuoteModal from \"@/views/job_quotes/DeleteQuoteModal.vue\";\n\nexport interface JobQuoteListing {\n id: number;\n title: string;\n address: string;\n company: string;\n}\n\nexport default defineComponent({\n name: \"job-quotes-index\",\n components: { DeleteQuoteModal, Pagination },\n setup: function() {\n const store = useStore();\n const quotes = computed(\n (): JobQuoteListing[] => store.getters[\"JobQuotesModule/quotes\"]\n );\n const loading = ref(false);\n const generating = ref([]);\n const deleteQuoteModal = ref>();\n const pagination = reactive({\n current: 1,\n total: 1\n });\n\n function setLoading(value: boolean): void {\n loading.value = value;\n }\n\n function fetchQuotes() {\n setLoading(true);\n store\n .dispatch(\"JobQuotesModule/fetchQuotes\", pagination)\n .then(data => {\n pagination.current = data.current_page;\n pagination.total = data.last_page;\n setLoading(false);\n })\n .catch(() => {\n setLoading(false);\n });\n }\n\n function handleChangePage(page: number): void {\n pagination.current = page;\n fetchQuotes();\n }\n\n onMounted((): void => {\n fetchQuotes();\n });\n\n function handleDelete(jobQuote: JobQuoteListing): void {\n deleteQuoteModal.value?.toggleModal(true, jobQuote);\n }\n\n function unshiftLoading(quoteId: number): void {\n const index = generating.value.findIndex(i => i == quoteId);\n if (-1 !== index) {\n generating.value.splice(index, 1);\n }\n }\n\n function handleGenerate(quoteId: number): void {\n generating.value.push(quoteId);\n store\n .dispatch(\"JobQuotesModule/downloadJobQuote\", quoteId)\n .then(() => {\n unshiftLoading(quoteId);\n })\n .catch(() => {\n unshiftLoading(quoteId);\n });\n }\n\n function isGenerating(quoteId: number): boolean {\n return generating.value.findIndex(i => i == quoteId) !== -1;\n }\n\n function updateRows(): void {\n pagination.current = 1;\n fetchQuotes();\n }\n\n return {\n deleteQuoteModal,\n handleChangePage,\n handleGenerate,\n handleDelete,\n isGenerating,\n generating,\n updateRows,\n pagination,\n loading,\n quotes\n };\n }\n});\n","import { render } from \"./Index.vue?vue&type=template&id=50406a01&ts=true\"\nimport script from \"./Index.vue?vue&type=script&lang=ts\"\nexport * from \"./Index.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"pagination\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"page-item previous\"\n}\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"bi bi-arrow-left\" }, null, -1)\nconst _hoisted_4 = [\n _hoisted_3\n]\nconst _hoisted_5 = [\"onClick\"]\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"a\", {\n class: \"page-link\",\n href: \"#\",\n onclick: \"return false\"\n}, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"bi bi-arrow-right\" })\n], -1)\nconst _hoisted_7 = [\n _hoisted_6\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.totalPages > 1)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_1, [\n (!_ctx.areThereLessThanEightPages && _ctx.shouldBackArrowBeVisible)\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_2, [\n _createElementVNode(\"a\", {\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.backButtonClicked()), [\"prevent\"])),\n class: \"page-link\",\n href: \"#\"\n }, _hoisted_4)\n ]))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.shownPageCollection, (pageNumber, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"page-item\", _ctx.currentPage == pageNumber ? 'active' : '']),\n key: index\n }, [\n _createElementVNode(\"a\", {\n class: \"page-link\",\n onClick: _withModifiers(($event: any) => (_ctx.changeCurrentPage(pageNumber)), [\"prevent\"]),\n href: \"#\"\n }, _toDisplayString(pageNumber), 9, _hoisted_5)\n ], 2))\n }), 128)),\n (!_ctx.areThereLessThanEightPages && _ctx.shouldNextArrowBeVisible)\n ? (_openBlock(), _createElementBlock(\"li\", {\n key: 1,\n class: \"page-item next\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.nextButtonClicked()))\n }, _hoisted_7))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n}","\nimport { defineComponent } from \"vue\";\n\nexport default defineComponent({\n name: \"Pagination\",\n components: {},\n props: {\n currentPage: {\n type: Number\n },\n totalPages: {\n type: Number\n },\n maxPages: {\n type: Number,\n default: 8\n }\n },\n data() {\n return {\n AllpageCollection: [1],\n shownPageCollection: [1],\n areThereLessThanEightPages: true,\n selectedPage: 1,\n lastPageOfCurrentShownCollection: 1\n };\n },\n methods: {\n changeCurrentPage(pageNumber) {\n this.selectedPage = pageNumber;\n this.$emit(\"changeCurrentPage\", this.selectedPage);\n },\n nextButtonClicked() {\n if (this.totalPages != undefined && this.selectedPage < this.totalPages) {\n this.selectedPage++;\n this.changeCurrentPage(this.selectedPage);\n if (this.selectedPage > this.lastPageOfCurrentShownCollection) {\n this.shownPageCollection = this.AllpageCollection.filter(\n n =>\n n >= this.selectedPage && n <= this.selectedPage + this.maxPages\n );\n }\n }\n },\n backButtonClicked() {\n if (this.selectedPage > 1) {\n this.selectedPage--;\n this.changeCurrentPage(this.selectedPage);\n if (this.selectedPage < this.shownPageCollection[0]) {\n this.shownPageCollection = this.AllpageCollection.filter(\n n =>\n n >= this.selectedPage - this.maxPages && n <= this.selectedPage\n );\n }\n }\n }\n },\n watch: {\n totalPages() {\n this.selectedPage = 1;\n this.AllpageCollection = [1];\n if (this.totalPages !== undefined && this.totalPages !== 1) {\n for (let i = 1; i < this.totalPages; i++) {\n this.AllpageCollection.push(i + 1);\n }\n }\n if (this.AllpageCollection.length > this.maxPages) {\n this.areThereLessThanEightPages = false;\n this.shownPageCollection = this.AllpageCollection.filter(\n n => n >= 1 && n <= this.maxPages\n );\n } else {\n this.areThereLessThanEightPages = true;\n this.shownPageCollection = this.AllpageCollection;\n }\n },\n shownPageCollection() {\n this.lastPageOfCurrentShownCollection = this.shownPageCollection[\n this.shownPageCollection.length - 1\n ];\n }\n },\n computed: {\n shouldNextArrowBeVisible() {\n if (\n this.totalPages != undefined &&\n this.lastPageOfCurrentShownCollection == this.totalPages\n )\n return false;\n else return true;\n },\n shouldBackArrowBeVisible() {\n if (this.shownPageCollection[0] == 1) return false;\n else return true;\n }\n }\n});\n","import { render } from \"./Pagination.vue?vue&type=template&id=2a88c04e&ts=true\"\nimport script from \"./Pagination.vue?vue&type=script&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"sourceRoot":""}