{"version":3,"sources":["webpack:///./src/components/datatable/datatable.vue?8781","webpack:///./src/utils/errorMessage.js","webpack:///./src/components/upload-file.vue?2c6e","webpack:///src/components/upload-file.vue","webpack:///./src/components/upload-file.vue?1921","webpack:///./src/components/upload-file.vue","webpack:///./src/components/datatable/datatable.vue?b7bd","webpack:///src/components/datatable/datatable.vue","webpack:///./src/components/datatable/datatable.vue?aa5f","webpack:///./src/components/datatable/datatable.vue","webpack:///./src/components/upload-file.vue?440b","webpack:///./src/views/configuration/components/address-book.vue?3301","webpack:///src/views/configuration/components/address-book.vue","webpack:///./src/views/configuration/components/address-book.vue?178c","webpack:///./src/views/configuration/components/address-book.vue"],"names":["showError","err","response","data","message","this","$createElement","Toast","danger","autoHideDelay","$router","push","isPageLoading","render","_vm","_h","_c","_self","staticClass","attrs","id","class","fileUploaded","directives","name","rawName","value","expression","ref","errors","has","fileAcceptTypes","displayName","on","uploadFile","_v","_s","_e","first","$event","preventDefault","removeFile","staticRenderFns","require","component","_t","localDatasetTotal","isFirstPage","turnPage","currentPage","isLastPage","query","$$selectedVal","Array","prototype","filter","call","target","options","o","selected","map","val","_value","$set","multiple","onPageSizeChange","_l","size","key","domProps","column","field","isVisible","handleColumnSelection","checked","display","applyColumnVisibility","hasData","isAllCurrentPageRecordsSelected","checkAll","handleSortColumn","getSortDirection","isLocalData","filterable","item","handleFilterSelection","filterOptions","length","onFilter","visibleColumns","onRowClass","onRowClick","onRowDblClick","isSelected","selectRecord","props","columns","total","pageSizeOptions","selectedRows","selectable","Boolean","isLoading","columnFilter","rowClass","isOpen","columnChanges","filterChanges","localDataset","watch","values","page","forEach","computed","availableRecords","pageSize","selectableColumns","contentColumns","methods","$emit","getItemValue","columnSplit","shift","parentColumn","join","sortOrder","fieldName","sortDirection","document","querySelector","scrollTo","sort","value1","value2","find","records","pos","splice","isAllChecked","uncheckedItems","toggleColumnDropdown","i","generateColumnFilters","created","Object","keys","q","mounted","onSubmit","action","_m","addressBook","composing","isEdit","searchResults","results","searchCriteria","isDataLoading","scopedSlots","_u","fn","row","companyName","contactName","email","division","section","address","city","province","postalCode","phone","phoneExtension","fax","proxy","contactsFile","saveContacts","errorFromServer","closeModal"],"mappings":"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","file":"js/chunk-56902ddf.9f9d9edb.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.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!./datatable.vue?vue&type=style&index=0&id=4a015229&scoped=true&lang=css&\"","import Toast from \"@/utils/toast\";\r\n\r\nexport const showError = function (err) {\r\n    if (err && err.response && err.response.data && err.response.data.message && err.response.data.message === 'The request is invalid.') {\r\n        let message = this.$createElement('span', {}, ['Oops! You managed to get to an area you do not have permission to visit', this.$createElement('br'), 'Redirecting back to dashboard']);\r\n        Toast.danger(this, [message], { autoHideDelay: 7500 });\r\n\r\n        this.$router.push('/dashboard');\r\n        return;\r\n    }\r\n\r\n    this.isPageLoading = false;\r\n    let message = this.$createElement('span', {}, ['Oops! An error has occurred', this.$createElement('br'), 'Please contact an administrator']);\r\n    Toast.danger(this, [message], { autoHideDelay: 7500 });\r\n}\r\n\r\nexport default showError\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('div',{staticClass:\"form-group\",attrs:{\"id\":_vm.id}},[_c('div',{class:{'hidden': _vm.fileUploaded }},[_c('div',{staticClass:\"custom-file\"},[_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:(_vm.validationRules),expression:\"validationRules\"}],ref:\"uploadFile\",staticClass:\"custom-file-input\",class:{ 'is-invalid': _vm.errors.has(_vm.id) },attrs:{\"type\":\"file\",\"id\":_vm.id,\"name\":_vm.id,\"accept\":_vm.fileAcceptTypes,\"data-vv-as\":_vm.displayName},on:{\"change\":_vm.uploadFile}}),_c('label',{staticClass:\"custom-file-label\",attrs:{\"for\":_vm.id}},[_c('span',{ref:\"uploadLabel\",staticClass:\"custom-file-label-text\"},[_vm._v(\"Choose file...\")])]),(_vm.useCustomAcceptTypes)?_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Allowed File Types: \"+_vm._s(_vm.fileAcceptTypes)+\" \")]):_vm._e(),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(_vm._s(_vm.errors.first(_vm.id)))])])]),_c('div',{class:{'hidden': !_vm.fileUploaded }},[_c('div',{staticClass:\"d-flex flex-row bd-highlight mt-5 mb-3 align-items-center\"},[_c('div',{ref:\"preview\",staticClass:\" mr-5\",attrs:{\"id\":\"preview\"}}),_c('div',[_c('a',{staticClass:\"d-flex justify-content-between align-items-center flex-column\",attrs:{\"role\":\"button\",\"href\":\"#\",\"title\":\"Delete\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeFile()}}},[_c('img',{staticClass:\"mb-1\",attrs:{\"src\":require(\"@/assets/document.svg\"),\"alt\":\"\"}}),_c('span',{staticClass:\"small-grey\"},[_vm._v(\"Remove\")])])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <div class=\"form-group\" :id=\"id\">\r\n      <div :class=\"{'hidden': fileUploaded }\">\r\n        <div class=\"custom-file\">\r\n          <input type=\"file\" :id=\"id\" :name=\"id\" class=\"custom-file-input\"\r\n                 :accept=\"fileAcceptTypes\" @change=\"uploadFile\"\r\n                 :data-vv-as=\"displayName\"\r\n                 v-validate=\"validationRules\"\r\n                 :class=\"{ 'is-invalid': errors.has(id) }\"\r\n                 ref=\"uploadFile\">\r\n          <label class=\"custom-file-label\" :for=\"id\">\r\n            <span class=\"custom-file-label-text\" ref=\"uploadLabel\">Choose file...</span>\r\n          </label>\r\n          <small class=\"form-text text-muted\" v-if=\"useCustomAcceptTypes\">Allowed File Types: {{ fileAcceptTypes }} </small>\r\n          <div class=\"invalid-feedback\">{{ errors.first(id) }}</div>\r\n        </div>\r\n      </div>\r\n      <div :class=\"{'hidden': !fileUploaded }\">\r\n        <div class=\"d-flex flex-row bd-highlight mt-5 mb-3 align-items-center\">\r\n          <div class=\" mr-5\" id=\"preview\" ref=\"preview\"></div>\r\n          <div>\r\n            <a role=\"button\"\r\n               href=\"#\"\r\n               class=\"d-flex justify-content-between align-items-center flex-column\"\r\n               title=\"Delete\"\r\n               @click.prevent=\"removeFile()\">\r\n              <img class=\"mb-1\" src=\"@/assets/document.svg\" alt />\r\n              <span class=\"small-grey\">Remove</span>\r\n            </a>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </fragment>\r\n</template>\r\n\r\n<style lang=\"scss\">\r\n  .hidden {\r\n    display: none;\r\n  }\r\n</style>\r\n\r\n<script>\r\n  export default {\r\n    name: \"upload-file\",\r\n    //Injecting the parent's validator allows us to place the\r\n    //upload file component into another component and have\r\n    //it be validated at the same time as the parent's fields\r\n    inject: {\r\n      $validator: '$validator'\r\n    },\r\n    data: function () {\r\n      return {\r\n        fileUploaded: false,\r\n        isValid: true,\r\n      };\r\n    },\r\n    props: {\r\n      id: {type: String, require:true},\r\n      displayName: { type: String },\r\n      existingFile: { type: [File, Object], require: true },\r\n      required: {type: Boolean, require: false},\r\n      acceptTypes: { type: Array, require: false },\r\n      uploadMax: { type: Number, require: false },\r\n      type: {\r\n        default: \"image\",\r\n        validator: function (value) {\r\n          return [\"image\", \"document\"].indexOf(value) !== -1;\r\n        }\r\n      }\r\n    },\r\n    mounted: function () {\r\n      this.$nextTick(() => {\r\n        this.loadFile();\r\n      });\r\n    },\r\n    computed: {\r\n      isImageType() {\r\n        return this.type == \"image\";\r\n      },\r\n      useCustomAcceptTypes() {\r\n        return this.acceptTypes && this.acceptTypes.length > 0;\r\n      },\r\n      fileAcceptTypes() {\r\n        if (this.useCustomAcceptTypes) {\r\n          return this.acceptTypes.map(i => '.' + i).join(\", \");\r\n        }\r\n        else {\r\n          return this.isImageType ? \"image/*\" : \"*\";\r\n        }\r\n      },\r\n      errorMessage() {\r\n        if (this.useCustomAcceptTypes) {\r\n          return `Sorry, the file must be one of the following types: ${this.fileAcceptTypes}`;\r\n        }\r\n        else {\r\n          return \"Sorry, the file must be an image type.\";\r\n        }\r\n      },\r\n      validationRules() {\r\n        let rules = [];\r\n\r\n        if (this.required) {\r\n          rules.push('required');\r\n        }\r\n\r\n        if (this.uploadMax) {\r\n          rules.push('size:' + this.uploadMax);\r\n        }\r\n\r\n        if (this.useCustomAcceptTypes) {\r\n          rules.push('ext:' + this.acceptTypes);\r\n        }\r\n        else if (this.isImageType) {\r\n          rules.push('image');\r\n        }\r\n\r\n        return rules.join(\"|\");\r\n      }\r\n    },\r\n    methods: {\r\n      async uploadFile(e) {\r\n        //Only validate the upload portion, otherwise\r\n        //will be required to have all parent component fields\r\n        //valid before submitting a file\r\n\r\n        var isFormValid = await this.$validator.validate(this.id);\r\n\r\n        if (!isFormValid) {\r\n          return;\r\n        }\r\n\r\n        this.fileUploaded = true;\r\n        let file = e.target.files[0];\r\n\r\n        this.addContentToPreview(this.getUploadedContent(file));\r\n\r\n        this.$emit('saveFile', file);\r\n      },\r\n      loadFile() {\r\n        if (this.existingFile) {\r\n          this.fileUploaded = true;\r\n          this.addContentToPreview(this.getExistingContent(this.existingFile));\r\n        }\r\n        else {\r\n          this.fileUploaded = false;\r\n        }\r\n      },\r\n      addContentToPreview(content) {\r\n        if (this.$refs.preview.childNodes.length > 0) {\r\n          this.$refs.preview.replaceChild(content, this.$refs.preview.childNodes[0]);\r\n        }\r\n        else {\r\n          this.$refs.preview.appendChild(content);\r\n        }\r\n      },\r\n      getUploadedContent(file) {\r\n        return this.isImageType ? this.getImageContent(file, true) : this.getDocumentContent(file, true);\r\n      },\r\n      getExistingContent(file) {\r\n        return this.isImageType ? this.getImageContent(file) : this.getDocumentContent(file);\r\n      },\r\n      getImageContent(file, uploaded = false) {\r\n        let img = document.createElement(\"img\");\r\n        img.style.maxWidth = \"300px\";\r\n\r\n        if (uploaded) {\r\n          img.file = file;\r\n\r\n          const reader = new FileReader();\r\n          reader.onload = (function (aImg) { return function (e) { aImg.src = e.target.result; }; })(img);\r\n          reader.readAsDataURL(file);\r\n        }\r\n        else {\r\n          img.src = `${process.env.VUE_APP_API_URL}/api/v1/file/${file.id}`;\r\n        }\r\n\r\n        return img;\r\n      },\r\n      getDocumentContent(file, uploaded) {\r\n        let link = document.createElement(\"a\");\r\n\r\n        link.innerText = uploaded ? file.name : file.fileName;\r\n        link.target = \"_blank\";\r\n        link.download = link.innerText\r\n\r\n        if (uploaded) {\r\n          link.file = file;\r\n\r\n          const reader = new FileReader();\r\n          reader.onload = (function (alink) { return function (e) { alink.href = e.target.result; }; })(link);\r\n          reader.readAsDataURL(file);\r\n        }\r\n        else {\r\n          link.href = `${process.env.VUE_APP_API_URL}/api/v1/file/${file.id}`;\r\n        }\r\n\r\n        return link;\r\n      },\r\n      removeFile() {\r\n        this.$refs.uploadFile.value = '';\r\n        this.$emit('update:existingFile', null);\r\n        this.fileUploaded = false;\r\n      }\r\n    }\r\n  };\r\n</script>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./upload-file.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./upload-file.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./upload-file.vue?vue&type=template&id=2652991f&\"\nimport script from \"./upload-file.vue?vue&type=script&lang=js&\"\nexport * from \"./upload-file.vue?vue&type=script&lang=js&\"\nimport style0 from \"./upload-file.vue?vue&type=style&index=0&lang=scss&\"\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  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('div',{staticClass:\"row align-items-center btn-toolbar mt-3\",attrs:{\"role\":\"toolbar\"}},[_c('div',{staticClass:\"col-lg-auto d-flex justify-content-center justify-content-lg-start\"},[_c('div',{staticClass:\"btn-group mb-0 d-print-none\",attrs:{\"role\":\"group\"}},[_vm._t(\"header-custom-btns\")],2)]),_c('div',{staticClass:\"col py-3 text-center\"},[_vm._v(_vm._s(_vm.localDatasetTotal)+\" record(s) found\")]),_c('div',{staticClass:\"col-lg-auto d-flex flex-column flex-sm-row align-items-center justify-content-center justify-content-lg-end d-print-none\"},[_c('div',{staticClass:\"btn-group mr-2 mb-0 p-1\",attrs:{\"role\":\"group\"}},[_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\",\"disabled\":_vm.isFirstPage,\"aria-label\":\"Previous page\"},on:{\"click\":function($event){return _vm.turnPage(-1)}}},[_c('i',{staticClass:\"fa fa-angle-left fa-lg\"})]),_c('span',{staticClass:\"btn\"},[_vm._v(\"Page \"+_vm._s(_vm.currentPage))]),_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\",\"disabled\":_vm.isLastPage,\"aria-label\":\"Next page\"},on:{\"click\":function($event){return _vm.turnPage(1)}}},[_c('i',{staticClass:\"fa fa-angle-right fa-lg\"})])]),_c('div',{staticClass:\"mr-2 p-1\"},[_c('label',{staticClass:\"sr-only\",attrs:{\"for\":\"PageSize\"}},[_vm._v(\"Results per page\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.query.pageSize),expression:\"query.pageSize\"}],staticClass:\"form-control border-primary\",attrs:{\"id\":\"PageSize\",\"name\":\"PageSize\"},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.query, \"pageSize\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])},function($event){return _vm.onPageSizeChange()}]}},_vm._l((_vm.pageSizeOptions),function(size){return _c('option',{key:size,domProps:{\"value\":size}},[_vm._v(_vm._s(size)+\" / Page\")])}),0)]),(_vm.columnFilter)?_c('div',{staticClass:\"dropdown p-1\"},[_c('button',{staticClass:\"btn btn-outline-dark dropdown-toggle\",attrs:{\"type\":\"button\",\"id\":\"dropdownMenuButton\",\"data-toggle\":\"dropdown\",\"aria-label\":\"Edit columns\",\"aria-haspopup\":\"true\",\"aria-expanded\":\"false\"}},[_c('i',{staticClass:\"fa fa-columns\"}),_c('span',{staticClass:\"caret\"})]),_c('div',{staticClass:\"dropdown-menu dropdown-menu-right\"},[_c('h6',{staticClass:\"dropdown-header\"},[_vm._v(\"Toggle columns\")]),_vm._l((_vm.selectableColumns),function(column){return _c('div',{key:column.field,staticClass:\"dropdown-item\"},[_c('div',{staticClass:\"form-check\"},[_c('input',{staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\",\"id\":'-col-' + column.field,\"name\":'-col-' + column.field},domProps:{\"checked\":column.isVisible},on:{\"change\":function($event){return _vm.handleColumnSelection(column, $event.target.checked)}}}),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":'-col-' + column.field}},[_vm._v(_vm._s(column.display))])])])}),_c('div',{staticClass:\"dropdown-item\"},[_c('button',{staticClass:\"btn btn-primary btn-block\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.applyColumnVisibility}},[_vm._v(\"Apply\")])])],2)]):_vm._e()])]),_c('div',{staticClass:\"table-responsive mt-3 d-print-none\"},[_c('table',{class:['table', { 'table-hover': _vm.hasData }]},[_c('thead',[(_vm.selectable)?_c('th',{staticClass:\"check-all\"},[_c('label',{staticClass:\"control control-checkbox\",attrs:{\"for\":\"checkall\"}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Select all rows\")]),_c('input',{attrs:{\"id\":\"checkall\",\"type\":\"checkbox\",\"name\":\"checkall\"},domProps:{\"checked\":_vm.isAllCurrentPageRecordsSelected},on:{\"click\":_vm.checkAll}}),_c('div',{staticClass:\"control_indicator\"})])]):_vm._e(),_vm._l((_vm.visibleColumns),function(column){return _c('th',{key:column.field},[_vm._v(\" \"+_vm._s(column.display || ' ')+\" \"),(column.sortable)?_c('a',{attrs:{\"href\":\"#\",\"role\":\"button\",\"aria-label\":\"Sort\"},on:{\"click\":function($event){$event.preventDefault();return _vm.handleSortColumn(column.field)}}},[_c('i',{class:_vm.getSortDirection(column.field)})]):_vm._e(),(_vm.isLocalData && column.filterable)?_c('button',{staticClass:\"btn btn-link dropdown-toggle\",attrs:{\"id\":((column.field) + \"-filter\"),\"type\":\"button\",\"data-toggle\":\"dropdown\",\"aria-haspopup\":\"true\",\"aria-expanded\":\"false\"}},[_c('i',{staticClass:\"fas fa-filter\",attrs:{\"aria-label\":\"Filter\"}})]):_vm._e(),(_vm.isLocalData && column.filterable)?_c('div',{staticClass:\"dropdown-menu\",attrs:{\"aria-labelledby\":((column.field) + \"-filter\")}},[_vm._l((column.filterOptions),function(item){return _c('div',{key:(\"filter-\" + (column.field) + \"-\" + item),staticClass:\"dropdown-item\"},[_c('div',{staticClass:\"form-check\"},[_c('input',{staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\",\"id\":(\"filter-\" + (column.field) + \"-\" + item)},on:{\"change\":function($event){return _vm.handleFilterSelection(column.field, item, $event.target.checked)}}}),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":(\"filter-\" + (column.field) + \"-\" + item)}},[_vm._v(_vm._s(item))])])])}),(!column.filterOptions.length)?_c('div',{staticClass:\"dropdown-item\"},[_vm._v(\" No Filters \")]):_vm._e(),_c('div',{staticClass:\"dropdown-item\"},[_c('button',{staticClass:\"btn btn-primary btn-block\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onFilter()}}},[_vm._v(\"Apply\")])])],2):_vm._e()])})],2),(_vm.isLoading)?_c('tbody',[_c('tr',[_c('td',{attrs:{\"colspan\":_vm.visibleColumns.length + 1}},[_vm._t(\"loading\",[_c('div',{staticClass:\"alert alert-warning\",attrs:{\"role\":\"alert\"}},[_vm._v(\"Loading...\")])])],2)])]):(_vm.hasData)?_c('tbody',[_vm._l((_vm.availableRecords),function(item){return [_c('tr',{key:item.id,class:_vm.onRowClass(item),on:{\"click\":function($event){if (_vm.onRowClick) { _vm.onRowClick(item) }},\"dblclick\":function($event){if (_vm.onRowDblClick) { _vm.onRowDblClick(item) }}}},[(_vm.selectable)?_c('th',{attrs:{\"scope\":\"row\"}},[_c('label',{staticClass:\"control control-checkbox\",attrs:{\"for\":(\"check-\" + (item.id))}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Select row\")]),_c('input',{attrs:{\"id\":(\"check-\" + (item.id)),\"type\":\"checkbox\",\"name\":\"category\"},domProps:{\"value\":item.id,\"checked\":_vm.isSelected(item.id)},on:{\"change\":function($event){return _vm.selectRecord($event.target.value)}}}),_c('div',{staticClass:\"control_indicator\"})])]):_vm._e(),_vm._l((_vm.contentColumns),function(column){return _c('td',{key:column.field},[_vm._t(column.field,null,{\"row\":item})],2)}),_vm._t(\"default\",null,{\"row\":item})],2)]})],2):_c('tbody',[_c('tr',[_c('td',{attrs:{\"colspan\":_vm.visibleColumns.length + 1}},[_vm._t(\"no-records\",[_c('div',{staticClass:\"alert alert-warning\",attrs:{\"role\":\"alert\"}},[_vm._v(\"No records found.\")])])],2)])])])]),(_vm.hasData)?_c('div',{staticClass:\"mt-3 d-none d-print-block\"},[_vm._l((_vm.availableRecords),function(item){return [_c('dl',{key:item.id,class:_vm.onRowClass(item)},_vm._l((_vm.columns),function(column){return _c('fragment',{key:column.field},[_c('dt',[_vm._v(_vm._s(column.display || ' '))]),_c('dd',[_vm._t(column.field,null,{\"row\":item})],2)])}),1)]})],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <div class=\"row align-items-center btn-toolbar mt-3\" role=\"toolbar\">\r\n      <div class=\"col-lg-auto d-flex justify-content-center justify-content-lg-start\">\r\n        <div class=\"btn-group mb-0 d-print-none\" role=\"group\">\r\n          <slot name=\"header-custom-btns\"></slot>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"col py-3 text-center\">{{ localDatasetTotal }} record(s) found</div>\r\n\r\n      <div class=\"col-lg-auto d-flex flex-column flex-sm-row align-items-center justify-content-center justify-content-lg-end d-print-none\">\r\n        <div class=\"btn-group mr-2 mb-0 p-1\" role=\"group\">\r\n          <button\r\n            type=\"button\"\r\n            class=\"btn btn-link\"\r\n            @click=\"turnPage(-1)\"\r\n            :disabled=\"isFirstPage\"\r\n            aria-label=\"Previous page\"\r\n          >\r\n            <i class=\"fa fa-angle-left fa-lg\"></i>\r\n          </button>\r\n\r\n          <span class=\"btn\">Page {{ currentPage }}</span>\r\n\r\n          <button\r\n            type=\"button\"\r\n            class=\"btn btn-link\"\r\n            @click=\"turnPage(1)\"\r\n            :disabled=\"isLastPage\"\r\n            aria-label=\"Next page\"\r\n          >\r\n            <i class=\"fa fa-angle-right fa-lg\"></i>\r\n          </button>\r\n        </div>\r\n\r\n        <div class=\"mr-2 p-1\">\r\n          <label class=\"sr-only\" for=\"PageSize\">Results per page</label>\r\n          <select\r\n            id=\"PageSize\"\r\n            name=\"PageSize\"\r\n            class=\"form-control border-primary\"\r\n            v-model=\"query.pageSize\"\r\n            @change=\"onPageSizeChange()\"\r\n          >\r\n            <option v-for=\"size in pageSizeOptions\" :key=\"size\" :value=\"size\">{{ size }} / Page</option>\r\n          </select>\r\n        </div>\r\n\r\n        <div class=\"dropdown p-1\" v-if=\"columnFilter\">\r\n          <button\r\n            class=\"btn btn-outline-dark dropdown-toggle\"\r\n            type=\"button\"\r\n            id=\"dropdownMenuButton\"\r\n            data-toggle=\"dropdown\"\r\n            aria-label=\"Edit columns\"\r\n            aria-haspopup=\"true\"\r\n            aria-expanded=\"false\"\r\n          >\r\n            <i class=\"fa fa-columns\"></i>\r\n            <span class=\"caret\"></span>\r\n          </button>\r\n\r\n          <div class=\"dropdown-menu dropdown-menu-right\">\r\n            <h6 class=\"dropdown-header\">Toggle columns</h6>\r\n            <div class=\"dropdown-item\" v-for=\"column in selectableColumns\" :key=\"column.field\">\r\n              <div class=\"form-check\">\r\n                <input\r\n                  class=\"form-check-input\"\r\n                  type=\"checkbox\"\r\n                  :id=\"'-col-' + column.field\"\r\n                  :name=\"'-col-' + column.field\"\r\n                  :checked=\"column.isVisible\"\r\n                  @change=\"handleColumnSelection(column, $event.target.checked)\"\r\n                />\r\n                <label class=\"form-check-label\" :for=\"'-col-' + column.field\">{{ column.display }}</label>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"dropdown-item\">\r\n              <button type=\"button\" class=\"btn btn-primary btn-block\" @click=\"applyColumnVisibility\">Apply</button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n    <!-- Search results (hidden on print) -->\r\n    <div class=\"table-responsive mt-3 d-print-none\">\r\n      <table :class=\"['table', { 'table-hover': hasData }]\">\r\n        <thead>\r\n          <th v-if=\"selectable\" class=\"check-all\">\r\n            <label class=\"control control-checkbox\" for=\"checkall\">\r\n              <span class=\"sr-only\">Select all rows</span>\r\n              <input id=\"checkall\" type=\"checkbox\" name=\"checkall\" :checked=\"isAllCurrentPageRecordsSelected\" @click=\"checkAll\" />\r\n              <div class=\"control_indicator\"></div>\r\n            </label>\r\n          </th>\r\n          <th v-for=\"column in visibleColumns\" :key=\"column.field\">\r\n            {{ column.display || '&nbsp;' }}\r\n            <a\r\n              v-if=\"column.sortable\"\r\n              href=\"#\"\r\n              role=\"button\"\r\n              aria-label=\"Sort\"\r\n              @click.prevent=\"handleSortColumn(column.field)\"\r\n            >\r\n              <i :class=\"getSortDirection(column.field)\"></i>\r\n            </a>\r\n            <!-- filter start -->\r\n            <button\r\n              v-if=\"isLocalData && column.filterable\"\r\n              :id=\"`${column.field}-filter`\"\r\n              class=\"btn btn-link dropdown-toggle\"\r\n              type=\"button\"\r\n              data-toggle=\"dropdown\"\r\n              aria-haspopup=\"true\"\r\n              aria-expanded=\"false\"\r\n            >\r\n              <i class=\"fas fa-filter\" aria-label=\"Filter\"></i>\r\n            </button>\r\n            <div v-if=\"isLocalData && column.filterable\" class=\"dropdown-menu\" :aria-labelledby=\"`${column.field}-filter`\">\r\n              <!-- for each unique value in column -->\r\n              <div v-for=\"item in column.filterOptions\" :key=\"`filter-${column.field}-${item}`\" class=\"dropdown-item\">\r\n                <div class=\"form-check\">\r\n                  <input type=\"checkbox\" class=\"form-check-input\" :id=\"`filter-${column.field}-${item}`\" @change=\"handleFilterSelection(column.field, item, $event.target.checked)\">\r\n                  <label class=\"form-check-label\" :for=\"`filter-${column.field}-${item}`\">{{ item }}</label>\r\n                </div>\r\n              </div>\r\n              <div v-if=\"!column.filterOptions.length\" class=\"dropdown-item\">\r\n                No Filters\r\n              </div>\r\n              <!-- /for -->\r\n              <div class=\"dropdown-item\">\r\n                <button class=\"btn btn-primary btn-block\" type=\"button\" @click=\"onFilter()\">Apply</button>\r\n              </div>\r\n            </div>\r\n            <!-- filter end -->\r\n          </th>\r\n        </thead>\r\n\r\n        <tbody v-if=\"isLoading\">\r\n          <tr>\r\n            <td :colspan=\"visibleColumns.length + 1\">\r\n              <slot name=\"loading\">\r\n                <div class=\"alert alert-warning\" role=\"alert\">Loading...</div>\r\n              </slot>\r\n            </td>\r\n          </tr>\r\n        </tbody>\r\n        <tbody v-else-if=\"hasData\">\r\n          <template v-for=\"item in availableRecords\">\r\n            <tr :key=\"item.id\" :class=\"onRowClass(item)\" @click=\"if (onRowClick) onRowClick(item)\" @dblclick=\"if (onRowDblClick) onRowDblClick(item)\">\r\n              <th scope=\"row\" v-if=\"selectable\">\r\n                <label class=\"control control-checkbox\" :for=\"`check-${item.id}`\">\r\n                  <span class=\"sr-only\">Select row</span>\r\n                  <input\r\n                    :id=\"`check-${item.id}`\"\r\n                    type=\"checkbox\"\r\n                    name=\"category\"\r\n                    :value=\"item.id\"\r\n                    :checked=\"isSelected(item.id)\"\r\n                    @change=\"selectRecord($event.target.value)\"\r\n                  />\r\n                  <div class=\"control_indicator\"></div>\r\n                </label>\r\n              </th>\r\n              <td v-for=\"column in contentColumns\" :key=\"column.field\">\r\n                <slot :name=\"column.field\" v-bind:row=\"item\">\r\n                  <!-- {{ getItemValue(item, column.field) }} -->\r\n                </slot>\r\n              </td>\r\n              <slot v-bind:row=\"item\"></slot>\r\n            </tr>\r\n          </template>\r\n        </tbody>\r\n        <tbody v-else>\r\n          <tr>\r\n            <td :colspan=\"visibleColumns.length + 1\">\r\n              <slot name=\"no-records\">\r\n                <div class=\"alert alert-warning\" role=\"alert\">No records found.</div>\r\n              </slot>\r\n            </td>\r\n          </tr>\r\n        </tbody>\r\n      </table>\r\n    </div>\r\n\r\n    <!-- Search results (print only) -->\r\n    <div class=\"mt-3 d-none d-print-block\" v-if=\"hasData\">\r\n      <template v-for=\"item in availableRecords\">\r\n        <dl :key=\"item.id\" :class=\"onRowClass(item)\">\r\n          <fragment v-for=\"column in columns\" :key=\"column.field\">\r\n            <dt>{{ column.display || '&nbsp;' }}</dt>\r\n            <dd>\r\n              <slot :name=\"column.field\" v-bind:row=\"item\"></slot>\r\n            </dd>\r\n          </fragment>\r\n        </dl>\r\n      </template>\r\n    </div>\r\n  </fragment>\r\n</template>\r\n\r\n<style scoped>\r\n.check-all {\r\n  vertical-align: baseline;\r\n}\r\n</style>\r\n\r\n<script>\r\nexport default {\r\n  name: \"data-table\",\r\n  props: {\r\n    columns: { type: Array, required: true },\r\n    data: { type: Array, required: true },\r\n    query: { type: Object, required: true },\r\n    total: { type: Number, required: true },\r\n    pageSizeOptions: { type: Array, default: () => [10, 20, 50, 100] },\r\n    selectedRows: Array,\r\n    selectable: Boolean,\r\n    isLoading: { type: Boolean, default: () => false },\r\n    columnFilter: { type: Boolean, default: true },\r\n    onRowClick: { type: Function },\r\n    onRowDblClick: { type: Function },\r\n    rowClass: { type: [String, Function], default: '' },\r\n    isLocalData: { type: Boolean, default: false }\r\n  },\r\n  data: function() {\r\n    return {\r\n      isOpen: false,\r\n      columnChanges: [],\r\n      filterChanges: [],\r\n      localDataset: [],\r\n      localDatasetTotal: 0,\r\n    };\r\n  },\r\n  watch: {\r\n    data: function(values) {\r\n      this.localDataset = values;\r\n      this.localDatasetTotal = this.total;\r\n\r\n      if (this.isLocalData) {\r\n        this.query.page = 1;\r\n        this.localDatasetTotal = values.length;\r\n\r\n        this.columns.forEach(column => {\r\n          if (column.filterable) {\r\n            this.$set(column, \"filterOptions\", this.generateColumnFilters(column));\r\n          }\r\n        });\r\n      }\r\n    },\r\n  },\r\n  computed: {\r\n    isAllCurrentPageRecordsSelected() {\r\n      return this.availableRecords.length && this.availableRecords.map(i => i.id).filter(i => !this.selectedRows.includes(i)).length === 0;\r\n    },\r\n    availableRecords () {\r\n      if (this.isLocalData) {\r\n        return [...this.localDataset].splice((+this.query.page - 1) * +this.query.pageSize, +this.query.pageSize);\r\n      }\r\n      return this.localDataset;\r\n    },\r\n    currentPage() {\r\n      return this.query.page;\r\n    },\r\n    hasData () {\r\n      return this.data.length > 0;\r\n    },\r\n    isFirstPage() {\r\n      return +this.query.page === 1;\r\n    },\r\n    isLastPage() {\r\n      return +this.query.page * +this.query.pageSize >= this.localDatasetTotal;\r\n    },\r\n    selectableColumns() {\r\n      return this.columns.filter(column => !column.ignore);\r\n    },\r\n    visibleColumns() {\r\n      return this.columns.filter(column => column.isVisible);\r\n    },\r\n    contentColumns() {\r\n      return this.columns.filter(column => column.isVisible && !column.ignore);\r\n    }\r\n  },\r\n  methods: {\r\n    applyColumnVisibility() {\r\n      this.columnChanges.forEach(({ column, isChecked }) => {\r\n        this.$set(column, \"isVisible\", isChecked);\r\n      });\r\n      this.columnChanges = []; // don't forget to clear the stack\r\n      this.$emit('selected-columns-changed', this.columns);\r\n    },\r\n    getItemValue(item, columnField) {\r\n      let columnSplit = columnField.split(\".\");\r\n      let parentColumn = columnSplit[0];\r\n\r\n      if (columnSplit.length > 1) {\r\n        columnSplit.shift();\r\n        return this.getItemValue(item[parentColumn], columnSplit.join(\".\"));\r\n      }\r\n      return item[parentColumn];\r\n    },\r\n    getSortDirection(fieldName) {\r\n      let { sortOrder, sortDirection } = this.query;\r\n\r\n      if (sortOrder === fieldName) {\r\n        if (sortDirection === \"asc\") return \"fa fa-sort-up\";\r\n        if (sortDirection === \"desc\") return \"fa fa-sort-down\";\r\n      }\r\n      return \"fa fa-sort text-muted\";\r\n    },\r\n    handleColumnSelection(column, isChecked) {\r\n      this.columnChanges.push({ column, isChecked });\r\n    },\r\n    handleFilterSelection(field, value, isChecked) {\r\n      this.filterChanges = [...this.filterChanges.filter(i => i.field !== field || i.value !== value), { field, value, isChecked }];\r\n    },\r\n    handleSortColumn(fieldName) {\r\n      // reset the direction of new column is selected\r\n      if (this.query.sortOrder !== fieldName) {\r\n        this.query.sortDirection = null;\r\n      }\r\n\r\n      this.query.sortDirection = this.query.sortDirection === null ? \"asc\" : this.query.sortDirection === \"asc\" ? \"desc\" : null;\r\n      this.query.sortOrder = this.query.sortDirection === null ? null : fieldName;\r\n      this.query.page = 1;\r\n      document.querySelector(\".table-responsive.mt-3.d-print-none\").scrollTo(0,0)\r\n      this.$emit('column-sort-changed', { sortOrder: this.query.sortOrder, sortDirection: this.query.sortDirection });\r\n\r\n      if (this.isLocalData) {\r\n        this.localDataset.sort((cat1, cat2) => {\r\n          let value1 = (cat1[this.query.sortOrder] || '').toLowerCase();\r\n          let value2 = (cat2[this.query.sortOrder] || '').toLowerCase();\r\n\r\n          if (value1 < value2) {\r\n            return this.query.sortDirection === \"asc\" ? -1 : 1;\r\n          }\r\n          else if (value1 > value2) {\r\n            return this.query.sortDirection === \"asc\" ? 1 : -1;\r\n          }\r\n          else {\r\n            return 0;\r\n          }\r\n        });\r\n      }\r\n    },\r\n    isSelected(id) {\r\n      return !!this.selectedRows.find(row => row === id);\r\n    },\r\n    onFilter () {\r\n      let activeFilters = this.filterChanges\r\n        .filter(i => i.isChecked)\r\n        .reduce((acc, curr) => { acc[curr.field] = acc[curr.field] || []; acc[curr.field].push(curr.value); return acc; }, {});\r\n\r\n      let filterItems = (data, filters) => data.filter(value => Object.keys(filters).every(key => filters[key].includes(value[key])));\r\n      let records = filterItems(this.data, activeFilters);\r\n\r\n      this.localDataset = records;\r\n      this.localDatasetTotal = records.length;\r\n      this.query.page = 1; // reset the paging\r\n    },\r\n    onPageSizeChange () {\r\n      this.$emit('page-size-changed', { pageSize: this.query.pageSize });\r\n    },\r\n    onRowClass (item) {\r\n      if (typeof(this.rowClass) === 'function') {\r\n        return this.rowClass(item)\r\n      }\r\n      return this.rowClass\r\n    },\r\n    selectRecord(id) {\r\n      let pos = this.selectedRows.indexOf(id);\r\n      if (pos === -1) this.selectedRows.push(id);\r\n      if (pos >= 0) this.selectedRows.splice(pos, 1);\r\n    },\r\n    checkAll() {\r\n      let selectedItems = this.availableRecords;\r\n\r\n      let uncheckedItems = selectedItems.map(i => i.id).filter(i => !this.selectedRows.includes(i));\r\n      let isAllChecked = uncheckedItems.length === 0\r\n\r\n      if (isAllChecked) {\r\n        for (let record of selectedItems) {\r\n          let pos = this.selectedRows.indexOf(record.id);\r\n          this.selectedRows.splice(pos, 1)\r\n        }\r\n      }\r\n      else {\r\n        uncheckedItems.forEach(i => this.selectedRows.push(i));\r\n      }\r\n    },\r\n    toggleColumnDropdown() {\r\n      this.isOpen = !this.isOpen;\r\n    },\r\n    turnPage(i) {\r\n      this.query.page = +this.query.page + i;\r\n    },\r\n    generateColumnFilters(column) {\r\n      return this.data\r\n        .map(r => r[column.field])\r\n        .filter((value, index, self) => { if (!value) return false; return self.indexOf(value) === index })\r\n        .sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\r\n    }\r\n  },\r\n  created() {\r\n    const q = { }; // add values if need to default/set values on the component level\r\n    Object.keys(q).forEach(key => this.$set(this.query, key, q[key]));\r\n\r\n    this.columns.forEach(column => {\r\n      this.$set(column, \"isVisible\", typeof column.isVisible === \"boolean\" ? column.isVisible : true);\r\n\r\n      if (this.isLocalData && column.filterable) {\r\n        this.$set(column, \"filterOptions\", this.generateColumnFilters(column));\r\n      }\r\n    });\r\n  },\r\n  mounted () {\r\n    this.localDataset = this.data;\r\n    this.localDatasetTotal = this.total;\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./datatable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./datatable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./datatable.vue?vue&type=template&id=4a015229&scoped=true&\"\nimport script from \"./datatable.vue?vue&type=script&lang=js&\"\nexport * from \"./datatable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./datatable.vue?vue&type=style&index=0&id=4a015229&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  \"4a015229\",\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./upload-file.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('loading',{attrs:{\"active\":_vm.isPageLoading,\"is-full-page\":\"\"},on:{\"update:active\":function($event){_vm.isPageLoading=$event}}}),_c('div',{staticClass:\"modal-header\"},[_c('h4',{staticClass:\"modal-title\"},[_vm._v(_vm._s(_vm.action)+\" Address Book\")])]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_vm._m(0),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.addressBook.name),expression:\"addressBook.name\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('addressBookName') },attrs:{\"id\":\"addressBookName\",\"name\":\"addressBookName\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Name\",\"data-vv-as\":\"Name\"},domProps:{\"value\":(_vm.addressBook.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.addressBook, \"name\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Name field is required.\")])]),(!_vm.isEdit)?_c('div',{staticClass:\"form-group\"},[_vm._m(1),_vm._m(2),_c('UploadFile',{attrs:{\"id\":\"Contacts\",\"existingFile\":_vm.addressBook.contactsFile,\"type\":\"document\",\"acceptTypes\":['xls','xlsx'],\"required\":true},on:{\"update:existingFile\":function($event){return _vm.$set(_vm.addressBook, \"contactsFile\", $event)},\"update:existing-file\":function($event){return _vm.$set(_vm.addressBook, \"contactsFile\", $event)},\"saveFile\":_vm.saveContacts}})],1):_c('div',{staticClass:\"form-group\"},[_c('data-table',{attrs:{\"data\":_vm.searchResults.results,\"columns\":_vm.columns,\"query\":_vm.searchCriteria,\"total\":_vm.searchResults.total,\"isLoading\":_vm.isDataLoading},scopedSlots:_vm._u([{key:\"companyName\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.companyName)+\" \")]}},{key:\"contactName\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.contactName)+\" \")]}},{key:\"email\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.email)+\" \")]}},{key:\"division\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.division)+\" \")]}},{key:\"section\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.section)+\" \")]}},{key:\"address\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.address)+\" \")]}},{key:\"city\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.city)+\" \")]}},{key:\"province\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.province)+\" \")]}},{key:\"postalCode\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.postalCode)+\" \")]}},{key:\"phone\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.phone)+\" \")]}},{key:\"phoneExtension\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.phoneExtension)+\" \")]}},{key:\"fax\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.fax)+\" \")]}},{key:\"loading\",fn:function(){return [_c('loading',{attrs:{\"active\":_vm.isDataLoading,\"is-full-page\":false},on:{\"update:active\":function($event){_vm.isDataLoading=$event}}})]},proxy:true},{key:\"no-records\",fn:function(){return [_c('div',{staticClass:\"alert alert-warning\",attrs:{\"role\":\"alert\"}},[_vm._v(\"No records found.\")])]},proxy:true}])}),_c('div',{staticClass:\"mt-5\"},[_vm._v(\" If you would like to edit the contact list for this address book, please delete this address book and create a new one with the updated contact list. \")])],1)]),(_vm.errorFromServer.length > 0)?_c('div',{staticClass:\"alert alert-danger\"},[_vm._v(\" \"+_vm._s(_vm.errorFromServer)+\" \")]):_vm._e(),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")]),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Close\")])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{attrs:{\"for\":\"addressBookName\"}},[_vm._v(\"Name \"),_c('span',{staticClass:\"red-dot ml-3\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_c('strong',[_vm._v(\"Please use this document as a template for submitting your contacts:\")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"/documents/addressbooktemplate.xlsx\"}},[_vm._v(\"Address Book Contact List Template\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{attrs:{\"for\":\"contacts\"}},[_vm._v(\"Contacts \"),_c('span',{staticClass:\"red-dot ml-3\"})])}]\n\nexport { render, staticRenderFns }","<template>\r\n  <form v-on:submit.prevent=\"onSubmit\">\r\n    <loading :active.sync=\"isPageLoading\" is-full-page></loading>\r\n\r\n    <div class=\"modal-header\">\r\n      <h4 class=\"modal-title\">{{action}} Address Book</h4>\r\n    </div>\r\n\r\n    <div class=\"modal-body\">\r\n      <div class=\"form-group\">\r\n        <label for=\"addressBookName\">Name <span class=\"red-dot ml-3\"></span></label>\r\n        <input id=\"addressBookName\" name=\"addressBookName\" type=\"text\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('addressBookName') }\"\r\n               autocomplete=\"off\" placeholder=\"Name\" v-model=\"addressBook.name\" v-validate=\"'required'\" data-vv-as=\"Name\" />\r\n        <div class=\"invalid-feedback\">The Name field is required.</div>\r\n      </div>\r\n\r\n      <div class=\"form-group\" v-if=\"!isEdit\">\r\n        <p>\r\n          <strong>Please use this document as a template for submitting your contacts:</strong> <a href=\"/documents/addressbooktemplate.xlsx\">Address Book Contact List Template</a>\r\n        </p>\r\n\r\n        <label for=\"contacts\">Contacts <span class=\"red-dot ml-3\"></span></label>\r\n\r\n        <UploadFile id=\"Contacts\"\r\n                    :existingFile.sync=\"addressBook.contactsFile\"\r\n                    @saveFile=\"saveContacts\"\r\n                    type=\"document\"\r\n                    :acceptTypes=\"['xls','xlsx']\"\r\n                    :required=\"true\">\r\n        </UploadFile>\r\n\r\n\r\n      </div>\r\n      <div class=\"form-group\" v-else>\r\n\r\n        <data-table :data=\"searchResults.results\"\r\n                    :columns=\"columns\"\r\n                    :query=\"searchCriteria\"\r\n                    :total=\"searchResults.total\"\r\n                    :isLoading=\"isDataLoading\">\r\n          <template v-slot:companyName=\"{ row }\">\r\n            {{ row.companyName }}\r\n          </template>\r\n          <template v-slot:contactName=\"{ row }\">\r\n            {{ row.contactName }}\r\n          </template>\r\n          <template v-slot:email=\"{ row }\">\r\n            {{ row.email }}\r\n          </template>\r\n          <template v-slot:division=\"{ row }\">\r\n            {{ row.division }}\r\n          </template>\r\n          <template v-slot:section=\"{ row }\">\r\n            {{ row.section }}\r\n          </template>\r\n          <template v-slot:address=\"{ row }\">\r\n            {{ row.address }}\r\n          </template>\r\n          <template v-slot:city=\"{ row }\">\r\n            {{ row.city }}\r\n          </template>\r\n          <template v-slot:province=\"{ row }\">\r\n            {{ row.province }}\r\n          </template>\r\n          <template v-slot:postalCode=\"{ row }\">\r\n            {{ row.postalCode }}\r\n          </template>\r\n          <template v-slot:phone=\"{ row }\">\r\n            {{ row.phone }}\r\n          </template>\r\n          <template v-slot:phoneExtension=\"{ row }\">\r\n            {{ row.phoneExtension }}\r\n          </template>\r\n          <template v-slot:fax=\"{ row }\">\r\n            {{ row.fax }}\r\n          </template>\r\n          <template v-slot:loading>\r\n            <loading :active.sync=\"isDataLoading\" :is-full-page=\"false\"></loading>\r\n          </template>\r\n          <template v-slot:no-records>\r\n            <div class=\"alert alert-warning\" role=\"alert\">No records found.</div>\r\n          </template>\r\n        </data-table>\r\n\r\n        <div class=\"mt-5\">\r\n          If you would like to edit the contact list for this address book, please delete this address book and create a new one with the updated contact list.\r\n        </div>\r\n\r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"alert alert-danger\" v-if=\"errorFromServer.length > 0\">\r\n      {{errorFromServer}}\r\n    </div>\r\n\r\n    <div class=\"modal-footer\">\r\n      <button type=\"submit\" class=\"btn btn-success\">Save</button>\r\n      <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Close</button>\r\n    </div>\r\n  </form>\r\n</template>\r\n\r\n<script>\r\n  import { mapGetters, mapActions } from \"vuex\";\r\n  import Toast from \"@/utils/toast\";\r\n  import ShowError from \"@/utils/errorMessage\";\r\n  import { DataTable } from \"@/components/datatable/\";\r\n  import { AddressBookContactService } from \"@/services\";\r\n  import UploadFile from \"@/components/upload-file.vue\";\r\n\r\n  const defaultSearchCriteria = {\r\n    page: 1,\r\n    pageSize: 10,\r\n    sortOrder: null,\r\n    sortDirection: null\r\n  };\r\n\r\n  export default {\r\n    name: 'address-book',\r\n    components: {\r\n      UploadFile,\r\n      DataTable\r\n    },\r\n    watch: {\r\n      \"searchCriteria.page\": function (newValue, oldValue) {\r\n        if (typeof oldValue !== 'undefined' && newValue !== oldValue) {\r\n          this.getSearchResults();\r\n        }\r\n      },\r\n      \"searchCriteria.pageSize\": function (newValue, oldValue) {\r\n        if (typeof oldValue !== 'undefined' && newValue !== oldValue) {\r\n          this.getSearchResults();\r\n        }\r\n      },\r\n      \"searchCriteria.sortDirection\": function (newValue, oldValue) {\r\n        if (typeof oldValue !== 'undefined' && newValue !== oldValue) {\r\n          this.getSearchResults();\r\n        }\r\n      },\r\n      \"searchCriteria.sortOrder\": function (newValue, oldValue) {\r\n        if (typeof oldValue !== 'undefined' && newValue !== oldValue) {\r\n          this.getSearchResults();\r\n        }\r\n      }\r\n    },\r\n    data: function () {\r\n      return {\r\n        isEdit: false,\r\n        isPageLoading: false,\r\n        errorFromServer: \"\",\r\n        searchCriteria: {},\r\n        searchResults: { total: 0, results: [] },\r\n        addressBook: {\r\n          name: null,\r\n          contacts: [],\r\n          contactsFile: null\r\n        },\r\n        columns: [\r\n          { display: \"Company Name\", field: \"companyName\", exportFieldName: \"companyName\", sortable: true },\r\n          { display: \"Contact Name\", field: \"contactName\", exportFieldName: \"contactName\", sortable: true },\r\n          { display: \"Email Address\", field: \"email\", exportFieldName: \"email\", sortable: true },\r\n          { display: \"Division\", field: \"division\", exportFieldName: \"division\", sortable: true },\r\n          { display: \"Section\", field: \"section\", exportFieldName: \"section\", sortable: true },\r\n          { display: \"Address\", field: \"address\", exportFieldName: \"address\", sortable: true },\r\n          { display: \"City/Town\", field: \"city\", exportFieldName: \"city\", sortable: true },\r\n          { display: \"Province\", field: \"province\", exportFieldName: \"province\", sortable: true },\r\n          { display: \"Postal Code\", field: \"postalCode\", exportFieldName: \"postalCode\", sortable: true },\r\n          { display: \"Phone\", field: \"phone\", exportFieldName: \"phone\", sortable: true },\r\n          { display: \"Phone Extension\", field: \"phoneExtension\", exportFieldName: \"phoneExtension\", sortable: true },\r\n          { display: \"Fax\", field: \"fax\", exportFieldName: \"fax\", sortable: true }\r\n        ],\r\n        isDataLoading: true\r\n      }\r\n    },\r\n    computed: {\r\n      ...mapGetters([\"getAddressBook\"]),\r\n      action() {\r\n        return this.isEdit ? \"Edit\" : \"Add\";\r\n      }\r\n    },\r\n    mounted: function () {\r\n      this.addressBook = { ...this.getAddressBook };\r\n      this.isEdit = !!this.addressBook.id;\r\n      this.$validator.reset();\r\n\r\n      if (this.isEdit) {\r\n        this.searchCriteria = { ...defaultSearchCriteria };\r\n        this.getSearchResults();\r\n      }\r\n    },\r\n    methods: {\r\n      getSearchResults() {\r\n        AddressBookContactService.search({ addressBookId: this.addressBook.id, ...this.searchCriteria }).then(response => {\r\n          this.searchResults = response.data;\r\n          this.isDataLoading = false;\r\n        });\r\n      },\r\n      async onSubmit() {\r\n        var isFormValid = await this.$validator.validate();\r\n\r\n        if (!isFormValid) {\r\n          return;\r\n        }\r\n\r\n        this.isPageLoading = true;\r\n\r\n        this.saveAddressBook({ addressBook: this.addressBook, isEdit: this.isEdit })\r\n          .then(() => {\r\n            Toast.success(this, \"Successfully saved!\");\r\n            this.$bvModal.hide(\"bv-modal-address-book\");\r\n            this.closeModal();\r\n          })\r\n          .catch((err) => {\r\n            this.isPageLoading = false;\r\n\r\n            if (err.response && err.response.data.model && err.response.data.model.errors) {\r\n              this.errorFromServer = err.response.data.model.errors[0].errorMessage;\r\n            }\r\n            else {\r\n              ShowError.apply(this, err);\r\n              this.closeModal();\r\n            }\r\n          });\r\n      },\r\n      closeModal() {\r\n        this.$bvModal.hide(\"bv-modal-address-book\");\r\n      },\r\n      saveContacts(uploadedFile) {\r\n        this.addressBook.contactsFile = uploadedFile;\r\n      },\r\n      ...mapActions([\"saveAddressBook\"])\r\n    }\r\n  }\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./address-book.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./address-book.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./address-book.vue?vue&type=template&id=2272330a&\"\nimport script from \"./address-book.vue?vue&type=script&lang=js&\"\nexport * from \"./address-book.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  null,\n  null\n  \n)\n\nexport default component.exports"],"sourceRoot":""}