{"version":3,"sources":["webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./src/mixins/FormService.js","webpack:///./src/pages/master/user/List.vue","webpack:///src/pages/master/user/List.vue","webpack:///./src/pages/master/user/List.vue?1f1a","webpack:///./src/pages/master/user/List.vue?5ae2","webpack:///./src/components/WidgetWrapper.vue","webpack:///src/components/WidgetWrapper.vue","webpack:///./src/components/WidgetWrapper.vue?822f","webpack:///./src/components/WidgetWrapper.vue?e3b8","webpack:///./src/components/WidgetWrapper.vue?9ccd","webpack:///./src/pages/master/user/form-helper.js"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","serviceForm","constructor","vue","helper","id","this","async","formData","$route","params","res","axios","get","apiGetById","data","assign","getEmptyData","redirect","put","apiPut","then","$router","go","catch","error","response","post","apiPost","e","extractErrMessage","push","name","query","ListIdUpload","delete","apiRemove","console","log","status","statusText","prototype","hasOwnProperty","call","message","title","render","_vm","_c","_self","directives","rawName","fullscreenLoading","expression","attrs","staticClass","headers","items","customizationPage","options","on","edit","remove","fetchData","staticRenderFns","service","components","SimpleTable","WidgetWrapper","mounted","type","text","cellTemplate","allowExporting","RecordsOnDuty","allowToAdd","allowToRefetch","methods","confirmButtonText","cancelButtonText","component","style","fullHeight","model","activeNames","callback","$$v","scopedSlots","_u","fn","_t","_e","_v","_s","proxy","props","icon","default","userId","passwordRequired","password","emptyData","Address","Username","Fullname","Email","Password","RolesName","CustomerName","validateName","idParam","router","history","current","appInfo","api","user","isAvailableUsername","validateUsername","rule","regexExpression","RegExp","Error","test","validateEmail","regexExp","validatePassword","length","validatePasswordConfirmation","validationRules","required","trigger","validator","PasswordVerified","Role","getValidationRule","setUserId","setPasswordRequired","isRequired"],"mappings":"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","file":"js/chunk-09c793c6.6b8dd168.js","sourcesContent":["export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import axios from 'axios'\n\nclass serviceForm {\n vue\n helper\n id\n\n constructor(vue, helper, id = null) {\n this.vue = vue\n this.helper = helper\n this.id = id\n }\n\n get initialFormData() {\n return async () => {\n let formData\n\n var id = this.vue.$route.params.id\n if (this.id) {\n id = this.id\n }\n\n if (id) {\n const res = await axios.get(`${this.vue.apiGetById}?id=${id}`)\n formData = res.data\n } else {\n formData = Object.assign({}, this.helper.getEmptyData())\n }\n\n return formData\n }\n }\n\n async submit(formData, redirect = true) {\n try {\n if (this.vue.$route.params.id || this.id) {\n await axios\n .put(`${this.vue.apiPut}`, formData)\n .then(() => {\n if (redirect) {\n this.vue.$router.go(-1)\n }\n })\n .catch((error) => {\n throw error.response\n })\n } else {\n await axios\n .post(`${this.vue.apiPost}`, formData)\n .then(() => {\n this.vue.$router.go(-1)\n })\n .catch((error) => {\n throw error.response\n })\n }\n } catch (e) {\n this.extractErrMessage(e)\n }\n }\n\n async customSubmit(formData) {\n try {\n if (this.vue.$route.params.id) {\n await axios\n .put(`${this.vue.apiPut}`, formData)\n .then(() => {\n this.vue.$router.push({\n name: 'docs-upload',\n query: { id: this.vue.$route.params.id }\n })\n })\n .catch((error) => {\n throw error.response\n })\n } else {\n await axios\n .post(`${this.vue.apiPost}`, formData)\n .then((response) => {\n this.vue.$router.push({\n name: 'docs-upload',\n params: { id: response.data.ListIdUpload }\n })\n })\n .catch((error) => {\n throw error.response\n })\n }\n } catch (e) {\n this.extractErrMessage(e)\n }\n }\n\n async remove(id) {\n try {\n await axios.delete(`${this.vue.apiRemove}?id=${id}`).catch((error) => {\n throw error.response\n })\n } catch (e) {\n this.extractErrMessage(e)\n }\n }\n\n extractErrMessage(response) {\n // display on console log\n console.log(response)\n\n if (response.status == 400) {\n if (Object.prototype.hasOwnProperty.call(response.data, 'message')) {\n throw response.data.message\n } else if (\n Object.prototype.hasOwnProperty.call(response.data.Object, 'title')\n ) {\n throw response.data.title\n }\n } else {\n throw response.statusText\n }\n }\n}\n\nexport default serviceForm\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('WidgetWrapper',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.fullscreenLoading),expression:\"fullscreenLoading\"}],attrs:{\"title\":_vm.title,\"full-height\":true}},[_c('hr',{staticClass:\"mb-2 -mt-2\"}),_c('SimpleTable',{attrs:{\"title\":'User',\"headers\":_vm.headers,\"items\":_vm.items,\"customizationPage\":_vm.customizationPage,\"options\":_vm.options},on:{\"edit-row\":_vm.edit,\"remove-row\":_vm.remove,\"fetchData\":_vm.fetchData}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n
\n \n \n\n\n\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!./List.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!./List.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./List.vue?vue&type=template&id=1be409c1&\"\nimport script from \"./List.vue?vue&type=script&lang=js&\"\nexport * from \"./List.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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-collapse',{staticClass:\"w-full h-auto rounded border border-primary-300 px-2 pb-2 bg-primary-300 shadow\",style:(!_vm.fullHeight ? 'height: min-content !important;' : ''),model:{value:(_vm.activeNames),callback:function ($$v) {_vm.activeNames=$$v},expression:\"activeNames\"}},[_c('el-collapse-item',{staticClass:\"border-b-0 pb-0\",attrs:{\"name\":\"def\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._t(\"title\"),(_vm.title)?_c('h4',{staticClass:\"text-gray-600 px-2 leading-none\"},[(false)?_c('i',{class:_vm.icon}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.title)+\" \")]):_vm._e()]},proxy:true}],null,true)},[_c('div',{staticClass:\"w-full h-full flex flex-col p-2 rounded border-gray-100\"},[_vm._t(\"default\")],2)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n {{ title }}\n
\n \n \n \n
\n \n \n\n\n\n\n\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!./WidgetWrapper.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!./WidgetWrapper.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WidgetWrapper.vue?vue&type=template&id=6085627b&\"\nimport script from \"./WidgetWrapper.vue?vue&type=script&lang=js&\"\nexport * from \"./WidgetWrapper.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WidgetWrapper.vue?vue&type=style&index=0&id=6085627b&prod&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 null,\n null\n \n)\n\nexport default component.exports","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!./WidgetWrapper.vue?vue&type=style&index=0&id=6085627b&prod&lang=css&\"","import appInfo from '@/app-info'\nimport axios from 'axios'\nimport router from '@/router'\n\nvar userId = ''\nvar passwordRequired = false\nvar password = ''\nvar passwordVerified = ''\n\nconst emptyData = {\n Address: '',\n Username: '',\n Fullname: '',\n Email: '',\n Password: '',\n RolesName: [],\n CustomerName: []\n}\n\nvar validateName = async (name) => {\n try {\n var idParam = ''\n var id = userId ? userId : router.history.current.params.id\n\n if (id) {\n idParam = `&userId=${id}`\n }\n const res = await axios.get(\n appInfo.api.user.isAvailableUsername + '?username=' + name + idParam\n )\n return res.data\n } catch (e) {\n console.log(e)\n }\n}\n\nvar validateUsername = async (rule, value, callback) => {\n var regexExpression = new RegExp('^[a-z0-9_A-Z-]{3,255}$')\n\n if (value == '') {\n callback(new Error('Username is required'))\n } else if (!(await validateName(value))) {\n callback(new Error('Username Already used'))\n } else if (!regexExpression.test(value)) {\n callback(\n new Error(\n 'Invalid Username, Min. 3 characters and Max. 255 characters, and cannot use special characters'\n )\n )\n } else {\n callback()\n }\n}\n\nvar validateEmail = async (rule, value, callback) => {\n const regexExp =\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n\n if (!regexExp.test(value)) {\n callback(new Error('Email format is incorrect'))\n } else if (value == '') {\n callback(new Error('Email is required'))\n } else {\n callback()\n }\n}\n\nvar validatePassword = async (rule, value, callback) => {\n const regexExp = new RegExp(\n '^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.* ).{8,255}$'\n )\n // assign password\n password = value\n\n if (!regexExp.test(value) && value.length > 0) {\n callback(\n new Error(\n 'Must have at least 8 characters, contain uppercase lowercase letters, numbers, and special characters'\n )\n )\n } else if (value == '' && passwordRequired) {\n callback(new Error('Password is required'))\n } else {\n callback()\n }\n}\n\nvar validatePasswordConfirmation = async (rule, value, callback) => {\n const regexExp = new RegExp(\n '^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.* ).{8,255}$'\n )\n // assign password\n passwordVerified = value\n\n if (value !== password && password !== '') {\n callback(new Error(\"Password confirmation doesn't match\"))\n } else if (!regexExp.test(value) && password !== '' && value !== '') {\n callback(\n new Error(\n 'Must have at least 8 characters, contain uppercase lowercase letters, numbers, and special characters'\n )\n )\n } else if (value === '' && passwordRequired) {\n callback(new Error('Password Confirmation is required'))\n } else {\n callback()\n }\n}\n\nvar validationRules = {\n Username: [\n {\n required: true,\n trigger: 'change',\n validator: validateUsername\n }\n ],\n Fullname: [\n {\n required: true,\n trigger: 'change'\n }\n ],\n Email: [\n {\n required: true,\n trigger: 'change',\n validator: validateEmail\n }\n ],\n Password: [\n {\n required: passwordRequired,\n trigger: 'change',\n validator: validatePassword\n }\n ],\n PasswordVerified: [\n {\n required: passwordRequired,\n trigger: 'change',\n validator: validatePasswordConfirmation\n }\n ],\n Role: [\n {\n required: true,\n trigger: 'blur'\n }\n ],\n RolesName: [\n {\n required: true,\n message: 'At least select one Role',\n trigger: 'blur'\n }\n ],\n CustomerName: []\n // CustomerName: [{\n // \trequired: true,\n // \tmessage: 'At least select one Tenant',\n // \ttrigger: 'change'\n // }],\n}\n\nexport default {\n getEmptyData() {\n return emptyData\n },\n getValidationRule() {\n return validationRules\n },\n setUserId(id) {\n userId = id\n },\n setPasswordRequired(isRequired = true) {\n passwordRequired = isRequired\n }\n}\n"],"sourceRoot":""}