\r\n \r\n \r\n
\r\n\r\n\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!./LpNumberUnit.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!./LpNumberUnit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LpNumberUnit.vue?vue&type=template&id=46928c52&scoped=true&\"\nimport script from \"./LpNumberUnit.vue?vue&type=script&lang=js&\"\nexport * from \"./LpNumberUnit.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LpNumberUnit.vue?vue&type=style&index=0&id=46928c52&lang=stylus&scoped=true&\"\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 \"46928c52\",\n null\n \n)\n\nexport default component.exports","function find(item, key, val) {\r\n function findVal(item) {\r\n return item[key] === val;\r\n }\r\n return item.find(findVal);\r\n}\r\n\r\nfunction removeIndex(array, from, to) {\r\n let rest = array.slice((to || from) + 1 || array.length);\r\n array.length = from < 0 ? array.length + from : from;\r\n return array.push.apply(array, rest);\r\n}\r\n\r\nfunction isEmptyObj(obj) {\r\n for(var prop in obj) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (obj.hasOwnProperty(prop)) return false;\r\n }\r\n return JSON.stringify(obj) === JSON.stringify({});\r\n}\r\n\r\nexport {\r\n find, removeIndex, isEmptyObj\r\n};","import josa from \"josa-js\";\r\nimport {isEmptyObj} from \"../../../public/static/js/common\"\r\n\r\nfunction isValid(properties, label) {\r\n if(!properties.validate.required) {\r\n return '';\r\n }\r\n let msg = '';\r\n if (\r\n properties.validate.valid_required &&\r\n [\r\n \"text\",\r\n \"email\",\r\n \"number\",\r\n \"phone\",\r\n \"password\",\r\n \"editor\",\r\n \"number-unit\",\r\n \"dropdown\",\r\n ].indexOf(properties.component_name.replace(\"lp-\", \"\")) > -1\r\n ) {\r\n if (label === undefined || label === \"\") label = \"항목\";\r\n let patternNum = /[0-9]/; // 숫자\r\n let patternC = /[a-zA-Z]/; // 문자(대소문자)\r\n let patternS = /[a-z]/; // 소문자\r\n let patternB = /[A-Z]/; // 대문자\r\n let patternSpecial = /[~!@#$%^&*()_+|<>?:{}]/; // 특수문자\r\n let patternEmail = /[0-9a-zA-Z][_0-9a-zA-Z-]*@[_0-9a-zA-Z-]+(\\.[_0-9a-zA-Z-]+){1,2}$/; //이메일\r\n\r\n // 빈문자 일 경우\r\n if (properties.value === \"\") {\r\n msg = label + josa.c(label, \"을/를\") + \" 입력해주세요.\";\r\n }\r\n\r\n // 숫자인 경우\r\n else if (properties.type === \"number\") {\r\n properties.value = Number(properties.value);\r\n // if (properties.value === 0)\r\n // msg = label + josa.c(label, '을/를') + ' 입력해주세요.';\r\n\r\n if (properties.value < properties.validate.min_length)\r\n msg =\r\n label +\r\n josa.c(label, \"을/를\") +\r\n \" 최소 %d 이상 입력해주세요.\".format(properties.validate.min_length);\r\n else if (properties.value > properties.validate.max_length)\r\n msg =\r\n label +\r\n josa.c(label, \"을/를\") +\r\n \" 최대 %d 이하로 입력해주세요.\".format(\r\n properties.validate.max_length\r\n );\r\n else if (properties.value < properties.validate.min)\r\n msg =\r\n label +\r\n josa.c(label, \"을/를\") +\r\n \" 최소 %d 이상 입력해주세요.\".format(properties.validate.min);\r\n else if (properties.value > properties.validate.max)\r\n msg =\r\n label +\r\n josa.c(label, \"을/를\") +\r\n \" 최대 %d 이하로 입력해주세요.\".format(properties.validate.max);\r\n }\r\n\r\n // 텍스트인 경우\r\n else if (\r\n properties.type.search(\"text\") > -1 &&\r\n typeof properties.value === \"string\"\r\n ) {\r\n // if(properties.value === '')\r\n // msg = label + josa.c(label, '을/를') + ' 입력해주세요.';\r\n\r\n if (properties.value.length < properties.validate.min_length)\r\n msg = `(${properties.value.length}/${\r\n properties.validate.max_length\r\n }) ${label + josa.c(label, \"을/를\")} 최소 ${\r\n properties.validate.min_length\r\n }자 이상 입력해주세요.`;\r\n else if (properties.value.length > properties.validate.max_length)\r\n msg = `(${properties.value.length}/${\r\n properties.validate.max_length\r\n }) ${label + josa.c(label, \"을/를\")} 최대 ${\r\n properties.validate.max_length\r\n }자 이하로 입력해주세요.`;\r\n\r\n if (msg === \"\") {\r\n let msgVal = \"\";\r\n // 소문자 사용 안함\r\n if (\r\n properties.validate.alpha_s === false &&\r\n patternS.test(properties.value)\r\n )\r\n msgVal = \"알파벳 소문자\";\r\n\r\n // 대문자 사용 안함\r\n if (\r\n properties.validate.alpha_g === false &&\r\n patternB.test(properties.value)\r\n ) {\r\n if (msgVal !== \"\") msgVal += \", \";\r\n msgVal += \"알파벳 대문자\";\r\n }\r\n // 특수문자 사용 안함\r\n if (\r\n properties.validate.special === false &&\r\n patternSpecial.test(properties.value)\r\n ) {\r\n if (msgVal !== \"\") msgVal += \", \";\r\n msgVal += \"특수문자\";\r\n }\r\n\r\n // 숫자 사용 안함\r\n if (\r\n properties.validate.num === false &&\r\n patternNum.test(properties.value)\r\n ) {\r\n if (msgVal !== \"\") msgVal += \", \";\r\n msgVal += \"숫자\";\r\n }\r\n if (msgVal !== \"\" && msgVal !== undefined)\r\n msg = msgVal + \"는 사용할 수 없습니다.\";\r\n }\r\n }\r\n\r\n // email\r\n else if (\r\n properties.type === \"email\" &&\r\n !patternEmail.test(properties.value)\r\n ) {\r\n msg = \"올바른 이메일 형식이 아닙니다.\";\r\n }\r\n\r\n // 휴대폰번호\r\n else if (properties.type === \"phone\" && properties.value.length < 11) {\r\n msg = label + josa.c(label, \"을/를\") + \" 정확히 입력해주세요.\";\r\n } else if (properties.type === \"password\") {\r\n if (\r\n !patternC.test(properties.value) ||\r\n !patternNum.test(properties.value) ||\r\n properties.value.length < 4\r\n ) {\r\n msg = \"비밀번호는 4자리 이상 문자, 숫자로 구성되어야 합니다.\";\r\n }\r\n } else if (properties.type === \"password_new\") {\r\n if (\r\n !patternC.test(properties.new_password) ||\r\n !patternNum.test(properties.new_password) ||\r\n properties.new_password.length < 4\r\n ) {\r\n msg = \"비밀번호는 4자리 이상 문자, 숫자로 구성되어야 합니다.\";\r\n }\r\n }\r\n } else {\r\n if (properties.component_name === \"lp-drop-down\") {\r\n if (\r\n properties.validate.required &&\r\n (isEmptyObj(properties.value) || properties.value === \"\")\r\n ) {\r\n msg = label + \"\";\r\n }\r\n }\r\n // c-input-radiobuttonGroup\r\n else if (properties.component_name === \"lp-radio\") {\r\n if (\r\n properties.validate.required &&\r\n (properties.value === undefined || properties.value === \"\")\r\n ) {\r\n msg = label + \"\";\r\n }\r\n }\r\n // else if(properties.component_name === 'input-single-file') {\r\n\r\n // }\r\n }\r\n // validation 필수\r\n if (properties.validate.valid_required) {\r\n // 빈값 체크\r\n if (!properties.value || (Array.isArray(properties.value) && properties.value.length === 0)) {\r\n if(['imgs','files'].indexOf(properties.type)>-1) {\r\n msg = label + josa.c(label, '을/를') + ' 첨부해주세요.';\r\n }\r\n else if(properties.type === 'dropdown') {\r\n msg = label + josa.c(label, '을/를') + ' 선택해주세요.';\r\n } else if(properties.type === 'check') {\r\n msg = label + josa.c(label, '을/를') + ' 체크해주세요.';\r\n } else {\r\n msg = label + josa.c(label, '을/를') + ' 입력해주세요.';\r\n }\r\n }\r\n }\r\n\r\n return msg;\r\n}\r\n\r\nexport {\r\n isValid\r\n}\r\n","import { isValid } from '@/utils/helper/form-helper'\r\n\r\nexport default {\r\n methods: {\r\n // formdata의 value 값이 있을 경우 유효성 체크\r\n isValid(properties, label) {\r\n return isValid(properties, label);\r\n },\r\n getParamData(formData) {\r\n let enable = true;\r\n let params = {};\r\n let msg = '';\r\n formData.some(item=>{\r\n // 유효성 체크\r\n msg = this.isValid(item, item.label);\r\n if(msg) {\r\n enable = false;\r\n this.toast(msg);\r\n item.errorMsg = msg;\r\n return true;\r\n }\r\n if (item.field === \"funnel\") {\r\n params[item.field] = item.options.find(o => o.value === item.value).label;\r\n if (params[item.field] === '기타') {\r\n params[item.field] = item.etc;\r\n }\r\n } else {\r\n params[item.field] = item.value;\r\n }\r\n })\r\n return { 'enable': enable, 'params': params }\r\n }\r\n }\r\n}","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LpNumberUnit.vue?vue&type=style&index=0&id=46928c52&lang=stylus&scoped=true&\""],"sourceRoot":""}