{"version":3,"sources":["webpack:///./src/components/module/InputImgUploader.vue?f084","webpack:///src/components/module/InputImgUploader.vue","webpack:///./src/components/module/InputImgUploader.vue?9938","webpack:///./src/components/module/InputImgUploader.vue","webpack:///./src/mixins/ImageUploaderMixin.js","webpack:///./src/components/module/InputImgUploader.vue?8c57"],"names":["render","_vm","this","_h","$createElement","_c","_self","useLabel","label","staticClass","_v","_s","_e","staticStyle","style","undefined","file","attrs","uid","on","$event","stopPropagation","onFileChange","isImgDeletable","preventDefault","deleteImg","staticRenderFns","name","props","type","Boolean","default","isRequire","String","desc","value","Array","files","index","Number","limit","mixins","components","created","uuidv4","data","imageArray","methods","sloadFile","Promise","reader","readAsDataURL","onload","f","length","resolve","params","loadImage","image","src","target","result","self","push","resizeImg","$emit","console","log","err","computed","closeStyles","viewStyles","backgroundImage","watch","n","component","EXIF","require","getFixedImage","rawImage","getData","orientation","getTag","canvas","document","createElement","width","height","body","appendChild","ctx","getContext","translate","scale","rotate","Math","PI","drawImage","resizeImage","parentNode","removeChild","e","maxWidth","maxHeight","quality","getNewScale","scaledWidth","scaledHeight","context","toDataURL","isLandscape","dimension"],"mappings":"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","file":"js/chunk-10c47e6c.3087ae3a.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.useLabel && _vm.label!=='')?_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.label)+\" \"),(_vm.isRequire)?_c('span',{staticClass:\"require\"},[_vm._v(\"*\")]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"img-uploader p-border-brand flex-center\",staticStyle:{\"margin-top\":\"16px\"},style:(_vm.viewStyles)},[((_vm.file === undefined || _vm.file===''))?_c('input',{staticClass:\"imgUploader-input\",attrs:{\"type\":\"file\",\"accept\":\"image/jpeg, image/png\",\"id\":_vm.uid,\"multiple\":\"multiple\"},on:{\"click\":function($event){$event.stopPropagation();},\"change\":_vm.onFileChange}}):_vm._e(),((_vm.file === undefined || _vm.file===''))?_c('label',{staticClass:\"imgUploader-box unselect\",attrs:{\"for\":_vm.uid},on:{\"click\":function($event){$event.stopPropagation();}}},[_c('i',{staticClass:\"material-icons\"},[_vm._v(\"add\")])]):_vm._e(),(_vm.file && _vm.file!=='')?_c('div',{staticStyle:{\"position\":\"relative\",\"width\":\"100%\",\"height\":\"100%\"}},[(_vm.file && _vm.file!=='' && _vm.isImgDeletable)?_c('i',{staticClass:\"unselect imgUploader-close material-icons\",style:(_vm.closeStyles),on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.deleteImg($event)}}},[_vm._v(\"close\")]):_vm._e()]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./InputImgUploader.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!./InputImgUploader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputImgUploader.vue?vue&type=template&id=f38a7f9c&scoped=true&\"\nimport script from \"./InputImgUploader.vue?vue&type=script&lang=js&\"\nexport * from \"./InputImgUploader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InputImgUploader.vue?vue&type=style&index=0&id=f38a7f9c&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 \"f38a7f9c\",\n null\n \n)\n\nexport default component.exports","var EXIF = require('exif-js');\r\n\r\nexport default {\r\n methods: {\r\n getFixedImage(file, rawImage) {\r\n EXIF.getData(file, () => {\r\n try {\r\n let orientation = EXIF.getTag(file, \"Orientation\");\r\n const canvas = document.createElement('canvas');\r\n\r\n // 임시 설정(회전 관련 적용 안되도록 처리)\r\n if(orientation>5) {\r\n orientation = 1;\r\n }\r\n\r\n\r\n if(orientation < 5 || orientation ===undefined) {\r\n canvas.width = rawImage.width;\r\n canvas.height = rawImage.height;\r\n }\r\n else {\r\n canvas.width = rawImage.height;\r\n canvas.height = rawImage.width;\r\n }\r\n\r\n document.body.appendChild(canvas);\r\n\r\n const ctx = canvas.getContext('2d');\r\n\r\n // 파일 사본일경우 exif가 없어서 orientation이 undefined이다\r\n\r\n // orientation 없을 경우\r\n if(orientation !== undefined) {\r\n\r\n if (orientation < 5)\r\n ctx.translate(rawImage.width * 0.5, rawImage.height * 0.5);\r\n else if(orientation === 6)\r\n ctx.translate(rawImage.height , 0);\r\n else\r\n ctx.translate(0, rawImage.width);\r\n\r\n switch (orientation) {\r\n case 2:\r\n // horizontal flip\r\n ctx.scale(-1, 1);\r\n break\r\n case 3:\r\n // 180° rotate left\r\n // 임시 설정(회전 관련 적용 안되도록 처리)\r\n //ctx.rotate(Math.PI);\r\n break\r\n case 4:\r\n // vertical flip\r\n ctx.scale(1, -1);\r\n break\r\n case 5:\r\n // vertical flip + 90 rotate right\r\n ctx.rotate(0.5 * Math.PI);\r\n ctx.scale(1, -1);\r\n break\r\n case 6:\r\n // 90° rotate right\r\n ctx.rotate(0.5 * Math.PI);\r\n break\r\n case 7:\r\n // horizontal flip + 90 rotate right\r\n ctx.rotate(0.5 * Math.PI);\r\n ctx.scale(-1, 1);\r\n break\r\n case 8:\r\n // 90° rotate left\r\n ctx.rotate(-0.5 * Math.PI);\r\n break\r\n }\r\n if (orientation < 5)\r\n ctx.translate(-rawImage.width * 0.5, -rawImage.height * 0.5);\r\n }\r\n\r\n ctx.drawImage(rawImage, 0, 0);\r\n\r\n const resizeImg = this.resizeImage(canvas);\r\n //canvas.remove();\r\n canvas.parentNode.removeChild(canvas);\r\n\r\n // after action\r\n // CInputImgUpload\r\n this.file = resizeImg;\r\n this.$emit('update:value', this.file);\r\n } catch (e) {\r\n return console.log(e);\r\n }\r\n });\r\n },\r\n resizeImage(image){\r\n let maxWidth = 1200;\r\n let maxHeight = 1200;\r\n let quality = 1.0;\r\n\r\n const scale = this.getNewScale(image, maxWidth, maxHeight);\r\n const scaledWidth = image.width / scale;\r\n const scaledHeight = image.height / scale;\r\n\r\n const canvas = document.createElement('canvas');\r\n const context = canvas.getContext('2d');\r\n canvas.width = scaledWidth;\r\n canvas.height = scaledHeight;\r\n context.drawImage(image, 0, 0, scaledWidth, scaledHeight);\r\n return canvas.toDataURL('image/jpeg', quality)\r\n },\r\n getNewScale(image, maxWidth, maxHeight){\r\n if (image.width <= maxWidth && image.height <= maxHeight) {\r\n return 1\r\n }\r\n const isLandscape = image.width > image.height;\r\n const dimension = isLandscape ? image.width : image.height;\r\n return dimension / (isLandscape ? maxWidth : maxHeight)\r\n },\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!./InputImgUploader.vue?vue&type=style&index=0&id=f38a7f9c&lang=stylus&scoped=true&\""],"sourceRoot":""}