{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?e015","webpack:///./src/components/layouts/header_home.vue?eadc","webpack:///src/components/layouts/header_home.vue","webpack:///./src/components/layouts/header_home.vue?4d83","webpack:///./src/components/layouts/header_home.vue","webpack:///./src/components/layouts/header_sub.vue?7161","webpack:///./src/components/layouts/header_sub.vue","webpack:///src/App.vue","webpack:///./src/App.vue?a7d1","webpack:///./src/App.vue","webpack:///./src/views/Home.vue?bb5c","webpack:///./src/mixins/categories.js","webpack:///./src/components/layouts/category.vue?06db","webpack:///src/components/layouts/category.vue","webpack:///./src/components/layouts/category.vue?2fbb","webpack:///./src/components/layouts/category.vue","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?2b8c","webpack:///./src/views/Home.vue","webpack:///./src/views/Detail.vue?76e2","webpack:///src/views/Detail.vue","webpack:///./src/views/Detail.vue?73e2","webpack:///./src/views/Detail.vue","webpack:///./src/views/Category.vue?a99d","webpack:///src/views/Category.vue","webpack:///./src/views/Category.vue?37ac","webpack:///./src/views/Category.vue","webpack:///./src/views/Template.vue?53b5","webpack:///src/views/Template.vue","webpack:///./src/views/Template.vue?8ce2","webpack:///./src/views/Template.vue","webpack:///./src/views/Confirm.vue?54fd","webpack:///src/views/Confirm.vue","webpack:///./src/views/Confirm.vue?a757","webpack:///./src/views/Confirm.vue","webpack:///./src/views/SubTemplateEdit.vue?5e33","webpack:///./src/components/modals/ImageCropModal.vue?920a","webpack:///src/components/modals/ImageCropModal.vue","webpack:///./src/components/modals/ImageCropModal.vue?3dc0","webpack:///./src/components/modals/ImageCropModal.vue","webpack:///src/views/SubTemplateEdit.vue","webpack:///./src/views/SubTemplateEdit.vue?2aea","webpack:///./src/views/SubTemplateEdit.vue","webpack:///./src/views/Confirmed.vue?9cfe","webpack:///src/views/Confirmed.vue","webpack:///./src/views/Confirmed.vue?720c","webpack:///./src/views/Confirmed.vue","webpack:///./src/views/Edit.vue?f4d4","webpack:///src/views/Edit.vue","webpack:///./src/views/Edit.vue?b4d2","webpack:///./src/views/Edit.vue","webpack:///./src/router.js","webpack:///./src/modules/http.js","webpack:///./src/services/api.service.js","webpack:///./src/stores/main.store.js","webpack:///./src/main.js","webpack:///./src/views/SubTemplateEdit.vue?4b09","webpack:///./src/views/Category.vue?7620","webpack:///./src/views/Edit.vue?fe7a","webpack:///./src/components/layouts/header_sub.vue?7aad","webpack:///./src/views/Template.vue?faa2","webpack:///./src/components/modals/ImageCropModal.vue?6cf4","webpack:///./src/components/modals/ImageCropModal.vue?1262"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","attrs","$route","fullPath","staticRenderFns","staticClass","staticStyle","_v","on","logout","_m","directives","rawName","expression","domProps","$event","type","indexOf","_k","keyCode","search","target","composing","searchText","component","_s","$store","state","title","script","categoryObj","_l","item","$router","_id","temThumbnail","temTitle","temAuthor","categories","mxCategories","selected","path","code","category","ref","temPreviewVideo","needImage","needVideo","videoDuration","temContent","$refs","video","load","filter","class","params","id","x","status","go","template","style","workProgress","_e","resultVideo","confirmFilm","replace","percentage","currentIndex","sources","index","sceneIndex","sceneImage","sourceType","refInFor","sourceTextLength","patchSource","calcTextLength","area","$set","changeFile","uploadData","sourceWidth","sourceHeight","reDrawInputUI","showFilechoose","inputCountObject","V","active","total","I","T","makingFilm","resourceType","includes","rotate","scale","exit","ok","cropper","getCroppedCanvas","toBlob","event","files","fill","classList","add","createdSubtemplateId","uploadFile","Vue","use","Router","base","process","routes","Home","Detail","Confirm","Confirmed","Edit","SubtemplateEdit","Category","Template","http","url","param","method","accessToken","localStorage","getItem","axios","defaults","headers","common","option","console","error","fetchHomeData","fetchTemplateById","fetchSubtemplateByMe","createSubTemplate","templateId","fetchSubtemplateById","subtemplateId","patchSubTemplate","uploadImage","uploadVideo","modifyFilm","Vuex","HOME_DATA","SUB_HEADER_TITLE","store","Store","mutations","homeData","payload","actions","context","apiService","commit","log","getters","config","productionTip","$apiService","api","post","vueInstance","router","render","h","App","$mount","dispatch"],"mappings":"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","file":"js/app.83e6649d.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[(_vm.$route.name == 'home')?_c('main-header-component'):_c('sub-header-component'),_c('router-view',{key:_vm.$route.fullPath})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',[_c('div',{staticClass:\"header_visual\",staticStyle:{\"background-image\":\"url('/assets/image/header/bg.png')\"}},[_c('div',{staticClass:\"header_cont\"},[_c('div',{staticClass:\"header_top\"},[_c('div',{staticClass:\"header_logo\"},[_c('router-link',{attrs:{\"to\":\"/\"}},[_c('img',{staticClass:\"logo\",attrs:{\"src\":\"/assets/image/logo/logo.png\",\"alt\":\"로고\"}})])],1),_c('div',{staticClass:\"header_gnb\",attrs:{\"id\":\"right-side\"}},[_c('router-link',{attrs:{\"to\":\"/templates\"}},[_vm._v(\"나의 템플릿\")]),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":_vm.logout}},[_vm._v(\"로그아웃\")])],1)]),_vm._m(0),_c('div',{staticClass:\"header_search\"},[_c('div',{staticClass:\"hs_wr\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchText),expression:\"searchText\"}],staticClass:\"header_inp\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.searchText)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search($event)},\"input\":function($event){if($event.target.composing){ return; }_vm.searchText=$event.target.value}}}),_c('img',{staticClass:\"cursor\",attrs:{\"src\":\"/assets/image/icon/search_icon.png\"},on:{\"click\":_vm.search}})])]),_c('div',{staticClass:\"header_search\"})])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header_title\"},[_c('p',[_vm._v(\"\\n                    디지털 컨텐츠 제작의 패러다임을 바꾸다\\n                \")]),_c('h4',[_vm._v(\"\\n                    광고영상, 이제 쉽게 만드세요\\n                \")])])}]\n\nexport { render, staticRenderFns }","<template>\n    <header>\n        <div class=\"header_visual\" style=\"background-image: url('/assets/image/header/bg.png');\">\n            <div class=\"header_cont\">\n                <div class=\"header_top\">\n                    <div class=\"header_logo\">\n                        <router-link to=\"/\">\n                            <img src=\"/assets/image/logo/logo.png\" class=\"logo\" alt=\"로고\">\n                        </router-link>\n                    </div>\n                    <div id=\"right-side\" class=\"header_gnb\">\n                        <router-link to=\"/templates\">나의 템플릿</router-link>\n                        <a v-on:click=\"logout\" href=\"#\">로그아웃</a>\n                    </div>\n                </div>\n                <div class=\"header_title\">\n                    <p>\n                        디지털 컨텐츠 제작의 패러다임을 바꾸다\n                    </p>\n                    <h4>\n                        광고영상, 이제 쉽게 만드세요\n                    </h4>\n                </div>\n                <div class=\"header_search\">\n                    <div class=\"hs_wr\">\n                            <input type=\"text\" v-model=\"searchText\" class=\"header_inp\"\n                                   @keyup.enter=\"search\">\n                        <img src=\"/assets/image/icon/search_icon.png\" @click=\"search\" class=\"cursor\">\n                    </div>\n                </div>\n                <div class=\"header_search\">\n\n                </div>\n                <!--<div class=\"header_bot\">-->\n                    <!--<div class=\"header_bot_top\">-->\n                        <!--<p><span class=\"left_line\"></span>마음에 드는 템플릿을 발견하지 못하셨나요?<span class=\"right_line\"></span></p>-->\n                    <!--</div>-->\n                <!--</div>-->\n            </div>\n        </div>\n    </header>\n</template>\n<script>\n    export default{\n        data(){\n            return {\n                searchText: this.$route.query.keyword||''\n            }\n        },\n        methods: {\n            search(){\n                this.$router.push(`/?keyword=${encodeURI(this.searchText)}`)\n            },\n            logout(){\n                    localStorage.removeItem(\"TKN\");\n                    location.reload();\n            }\n        }\n    }\n</script>","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!./header_home.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!./header_home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./header_home.vue?vue&type=template&id=51161c14&\"\nimport script from \"./header_home.vue?vue&type=script&lang=js&\"\nexport * from \"./header_home.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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sub_header\"},[_c('div',{staticClass:\"sub_header_visual\",staticStyle:{\"background-image\":\"url('/assets/image/header/sub_bg.png')\"}},[_c('div',{staticClass:\"sub_header_cont\"},[_c('div',{staticClass:\"sub_header_top\"},[_c('div',{staticClass:\"sub_header_logo\"},[_c('router-link',{attrs:{\"to\":\"/\"}},[_c('img',{staticClass:\"logo\",attrs:{\"src\":\"/assets/image/logo/logo.png\",\"alt\":\"로고\"}})])],1),_c('div',{staticClass:\"sub_header_gnb\"},[_c('router-link',{attrs:{\"to\":\"/templates\"}},[_vm._v(\"나의 템플릿\")]),_c('a',{attrs:{\"href\":\"#\"}},[_vm._v(\"로그아웃\")])],1)]),_c('div',{staticClass:\"sub_header_title\"},[_c('h1',[_vm._v(_vm._s(_vm.$store.state.title))])])])]),_c('div',{staticClass:\"dim\",staticStyle:{\"display\":\"none\"}},[_vm._v(\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./header_sub.vue?vue&type=template&id=722636f8&\"\nvar script = {}\nimport style0 from \"./header_sub.vue?vue&type=style&index=0&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","<template>\n  <div id=\"app\">\n    <main-header-component v-if=\"$route.name == 'home'\"></main-header-component>\n    <sub-header-component v-else></sub-header-component>\n    <router-view :key=\"$route.fullPath\"/>\n  </div>\n</template>\n<script>\n  import mainHeaderComponent from '@/components/layouts/header_home'\n  import subHeaderComponent from '@/components/layouts/header_sub'\n  export default{\n    components:{\n      mainHeaderComponent,\n      subHeaderComponent\n    }\n  }\n</script>\n<style>\n</style>","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!./App.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!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=9ee64eb4&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{attrs:{\"id\":\"content\"}},[_c('div',{attrs:{\"id\":\"content_header\"}},[_c('category')],1),_c('div',{staticClass:\"sub_content\"},[_c('div',{staticClass:\"main_item\"},[_c('div',{staticClass:\"mi_title\"},[(!_vm.searchText)?_c('h3',[_c('b',[_vm._v(_vm._s(_vm.categoryObj.name)+\" 카테고리\")]),_vm._v(\"에서 가장 최신템플릿을 만나보세요!\")]):_c('h3',[_c('b',[_vm._v(_vm._s(_vm.searchText))]),_vm._v(\"검색 결과입니다.\")])]),_c('div',{staticClass:\"mi_list\"},[_c('ul',_vm._l((_vm.data),function(item){return _c('li',{key:item,staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.$router.push('/detail/'+item._id)}}},[_c('div',{staticClass:\"mil_img\"},[_c('img',{attrs:{\"src\":item.temThumbnail,\"alt\":\"\"}})]),_c('div',{staticClass:\"mil_desc\"},[_c('h6',[_vm._v(_vm._s(item.temTitle))]),_c('p',[_vm._v(_vm._s(item.temAuthor))])])])}),0)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * prefix mx = mixin\n */\nconst categories = {\n    data(){\n        return {\n            mxCategories : [\n                {selected:false, path: '/assets/image/navigation/chimg8.png', name: '스토리텔링', code: '10'},\n                {selected:false, path: '/assets/image/navigation/chimg9.png', name: '타이포그래피', code: '11'},\n                {selected:false, path: '/assets/image/navigation/chimg10.png', name: '상품소개', code: '12'},\n                {selected:false, path: '/assets/image/navigation/chimg11.png', name: '포스터', code: '13'}\n            ]\n        }\n    },\n}\nexport default categories","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',_vm._l((_vm.mxCategories),function(item){return _c('li',{key:item,staticStyle:{\"text-align\":\"center\"}},[_c('router-link',{attrs:{\"to\":'/categories/'+item.code}},[_c('div',{staticClass:\"ch_wr\"},[_c('div',{staticClass:\"ch_img\"},[_c('img',{attrs:{\"src\":item.path}})]),_c('div',{staticClass:\"ch_title\"},[_c('h6',{domProps:{\"textContent\":_vm._s(item.name)}})])])])],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <ul>\n        <li v-for=\"item in mxCategories\" style=\"text-align: center\" v-bind:key=\"item\">\n            <router-link :to=\"'/categories/'+item.code\">\n                <div class=\"ch_wr\">\n                    <div class=\"ch_img\">\n                        <img :src=\"item.path\">\n                    </div>\n                    <div class=\"ch_title\">\n                        <h6 v-text=\"item.name\"></h6>\n                    </div>\n                </div>\n            </router-link>\n        </li>\n    </ul>\n</template>\n<script>\n    import categories from '@/mixins/categories'\n    export default {\n        mixins: [categories]\n    }\n</script>","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!./category.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!./category.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./category.vue?vue&type=template&id=0cca612d&\"\nimport script from \"./category.vue?vue&type=script&lang=js&\"\nexport * from \"./category.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","<template>\n\n    <section id=\"content\">\n        <div id=\"content_header\">\n            <category></category>\n        </div>\n\n        <div class=\"sub_content\">\n            <div class=\"main_item\">\n                <div class=\"mi_title\">\n                    <h3 v-if=\"!searchText\"><b>{{categoryObj.name}} 카테고리</b>에서 가장 최신템플릿을 만나보세요!</h3>\n                    <h3 v-else><b>{{searchText}}</b>검색 결과입니다.</h3>\n                </div>\n                <div class=\"mi_list\">\n                    <ul>\n                        <li v-for=\"item in data\" @click=\"$router.push('/detail/'+item._id)\" style=\"cursor: pointer\" v-bind:key=\"item\">\n                            <div class=\"mil_img\">\n                                <img :src=\"item.temThumbnail\" alt=\"\">\n                            </div>\n                            <div class=\"mil_desc\">\n                                <h6>{{item.temTitle}}</h6>\n                                <p>{{item.temAuthor}}</p>\n                            </div>\n                        </li>\n                    </ul>\n                </div>\n\n            </div>\n        </div>\n\n    </section>\n</template>\n\n<script>\n    import {mapGetters} from 'vuex'\n    import mxCategories from '@/mixins/categories'\n    import category from '@/components/layouts/category'\n    export default {\n        name: 'home',\n        data(){\n            return {\n                data: [],\n                randomCategoryNo : '',\n                categoryObj: {},\n                searchText: this.$route.query.keyword,\n            }\n        },\n        components: {\n            category\n        },\n        mixins: [mxCategories],\n        computed: {\n            ...mapGetters(['homeData'])\n        },\n        watch: {\n            homeData(newValue, oldValue) {\n                if (newValue) {\n                    this.drawData()\n                }\n            }\n        },\n        created(){\n            this.generatedRandomCategory()\n            this.categoryObj\n                    = this.mxCategories.filter(x=>x.code == this.randomCategoryNo)[0]\n            this.drawData()\n        },\n        methods: {\n            generatedRandomCategory(){\n                this.randomCategoryNo = (Math.floor(Math.random()*(13-10+1)) + 10)\n            },\n            drawData(){\n                if (this.homeData) {\n\n                    if (this.searchText) {\n                        let items = this.$store.state.homeData.filter(x=> x.temTitle.toLowerCase().includes(this.searchText.toLowerCase()))\n                        if (items.length > 0){\n                            this.data = items\n                        }else{\n                            // mutation\n                            this.$router.replace('/')\n                        }\n                    }else {\n                        this.data = this.$store.state.homeData.filter(x=> x.categorize == this.randomCategoryNo)\n                    }\n\n                }\n            }\n        }\n    }\n</script>\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!./Home.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!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=370c4d34&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{attrs:{\"id\":\"content\"}},[_c('div',{staticClass:\"breadcrumb\"},[_c('ul',[_c('li',[_c('router-link',{attrs:{\"to\":\"/\"}},[_vm._v(\"홈\")])],1),_c('li',[_c('router-link',{attrs:{\"to\":'/categories/'+_vm.category.code}},[_vm._v(_vm._s(_vm.category.name))])],1)])]),_c('div',{staticClass:\"nedit_content\"},[_c('div',{staticClass:\"nec_video_wr\"},[_c('div',{staticClass:\"nec_video\"},[_c('video',{ref:\"video\",attrs:{\"controls\":\"\",\"autoplay\":\"\",\"poster\":_vm.data.temThumbnail}},[_c('source',{attrs:{\"src\":_vm.data.temPreviewVideo,\"type\":\"video/mp4\"}})])]),_c('div',{staticClass:\"nec_info\"},[_c('h2',{domProps:{\"textContent\":_vm._s(_vm.data.temTitle)}}),_c('p',{domProps:{\"textContent\":_vm._s(_vm.data.temAuthor)}}),_c('ul',[_vm._m(0),_c('li',{staticStyle:{\"margin-top\":\"10px\",\"margin-bottom\":\"10px\"}},[_vm._m(1),_c('span',{staticClass:\"float_right\"},[_c('b',[_vm._v(_vm._s(_vm.data.needImage))]),_vm._v(\"장\")])]),_c('li',{staticStyle:{\"margin-top\":\"10px\",\"margin-bottom\":\"10px\"}},[_vm._m(2),_c('span',{staticClass:\"float_right\"},[_c('b',[_vm._v(_vm._s(_vm.data.needVideo))]),_vm._v(\"장\")])]),_c('li',{staticStyle:{\"margin-top\":\"10px\",\"margin-bottom\":\"10px\"}},[_vm._m(3),_c('span',{staticClass:\"float_right\"},[_c('b',[_vm._v(\"00 : \"+_vm._s(_vm.data.videoDuration))])])])]),_c('div',{staticClass:\"nec_btn cursor\",staticStyle:{\"font-weight\":\"10 !important\"},on:{\"click\":function($event){return _vm.$router.push('/edits/'+ _vm.data._id)}}},[_c('a',[_vm._v(\"제작하기\")])])])]),_c('div',{staticClass:\"nec_desc\"},[_c('h3',[_vm._v(\"템플릿 설명\")]),_c('p',{domProps:{\"textContent\":_vm._s(_vm.data.temContent)}})])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[_c('h3',[_vm._v(\"필요한 미디어수\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"abs_img\"},[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit1.png\"}}),_vm._v(\"이미지\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"abs_img\"},[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit2.png\"}}),_vm._v(\"영상\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"abs_img\"},[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit3.png\"}}),_vm._v(\"시간\")])}]\n\nexport { render, staticRenderFns }","<template>\n\n    <section id=\"content\">\n        <div class=\"breadcrumb\">\n            <ul>\n                <li>\n                    <router-link to=\"/\">홈</router-link>\n                </li>\n                <li>\n                    <router-link :to=\"'/categories/'+category.code\">{{category.name}}</router-link>\n                </li>\n            </ul>\n        </div>\n\n        <div class=\"nedit_content\">\n\n            <div class=\"nec_video_wr\">\n                <div class=\"nec_video\">\n                    <video controls ref=\"video\" autoplay :poster=\"data.temThumbnail\">\n                        <source :src=\"data.temPreviewVideo\" type=\"video/mp4\">\n                    </video>\n                </div>\n\n                <div class=\"nec_info\">\n                    <h2 v-text=\"data.temTitle\"></h2>\n                    <p v-text=\"data.temAuthor\"></p>\n                    <ul>\n                        <li>\n                            <h3>필요한 미디어수</h3>\n                        </li>\n                        <li style=\"margin-top: 10px; margin-bottom: 10px;\">\n                            <span class=\"abs_img\"><img src=\"/assets/image/icon/nedit1.png\">이미지</span>\n                            <span class=\"float_right\"><b>{{data.needImage}}</b>장</span>\n                        </li>\n                        <li style=\"margin-top: 10px; margin-bottom: 10px;\">\n                            <span class=\"abs_img\"><img src=\"/assets/image/icon/nedit2.png\">영상</span>\n                            <span class=\"float_right\"><b>{{data.needVideo}}</b>장</span>\n                        </li>\n                        <li style=\"margin-top: 10px; margin-bottom: 10px;\">\n                            <span class=\"abs_img\"><img src=\"/assets/image/icon/nedit3.png\">시간</span>\n                            <span class=\"float_right\"><b>00 : {{data.videoDuration}}</b></span>\n                        </li>\n                    </ul>\n                    <div class=\"nec_btn cursor\" @click=\"$router.push('/edits/'+ data._id)\" style=\"font-weight: 10 !important;\">\n                        <a>제작하기</a>\n                    </div>\n                </div>\n            </div>\n            <div class=\"nec_desc\">\n                <h3>템플릿 설명</h3>\n                <p v-text=\"data.temContent\"></p>\n            </div>\n        </div>\n\n\n    </section>\n</template>\n\n<script>\n    import category from '@/components/layouts/category'\n    import mxCategories from '@/mixins/categories'\n    export default {\n        data(){\n            return {\n                id: this.$route.params.id,\n                category: {code: 'all', name: '미분류'},\n                data: {}\n            }\n        },\n        mixins: [mxCategories],\n        mounted(){\n            this.$store.commit('title', '템플릿 둘러보기')\n            this.fetchData()\n        },\n        methods: {\n            async fetchData(){\n                let {data} = await\n                this.$apiService.fetchTemplateById(this.id)\n                this.data = data\n                this.$refs.video.load()\n                if (this.mxCategories.filter(x => x.code == data.categorize).\n                length > 0\n            )\n                this.category = this.mxCategories.filter(x => x.code == data.categorize\n            )\n                [0]\n            }\n        }\n\n    }\n</script>\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!./Detail.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!./Detail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Detail.vue?vue&type=template&id=d94ec4f6&\"\nimport script from \"./Detail.vue?vue&type=script&lang=js&\"\nexport * from \"./Detail.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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"sc_wr\",attrs:{\"id\":\"content\"}},[_c('div',{staticClass:\"side_nav sc_left\"},[_c('h2',[_vm._v(\"카테고리\")]),_c('ul',[_c('li',[_c('router-link',{class:{'activation':_vm.$route.params.id == 'all'},attrs:{\"to\":\"/categories/all\"}},[_vm._v(\"전체\")])],1),_vm._l((_vm.mxCategories),function(item){return _c('li',[_c('router-link',{class:{'activation':item.selected},attrs:{\"to\":'/categories/'+item.code}},[_vm._v(_vm._s(item.name))])],1)})],2)]),_c('div',{staticClass:\"side_content sc_right\"},[_c('div',{staticClass:\"main_item\"},[_c('div',{staticClass:\"mi_list\"},[_c('ul',_vm._l((_vm.data),function(item){return _c('li',{staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.$router.push('/detail/'+item._id)}}},[_c('div',{staticClass:\"mil_img\"},[_c('img',{attrs:{\"src\":item.temThumbnail,\"alt\":\"\"}})]),_c('div',{staticClass:\"mil_desc\"},[_c('h6',[_vm._v(_vm._s(item.temTitle))]),_c('p',[_vm._v(_vm._s(item.temAuthor))])])])}),0)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <section id=\"content\" class=\"sc_wr\">\n        <div class=\"side_nav sc_left\">\n            <h2>카테고리</h2>\n            <ul>\n                <li>\n                    <router-link\n                            :class=\"{'activation':$route.params.id == 'all'}\"\n                            to=\"/categories/all\">전체</router-link>\n                </li>\n                <li v-for=\"item in mxCategories\">\n                    <router-link\n                            :class=\"{'activation':item.selected}\"\n                            :to=\"'/categories/'+item.code\">{{item.name}}</router-link>\n                </li>\n            </ul>\n        </div>\n\n        <div class=\"side_content sc_right\">\n\n            <div class=\"main_item\">\n                <div class=\"mi_list\">\n                    <ul>\n                        <li v-for=\"item in data\" @click=\"$router.push('/detail/'+item._id)\" style=\"cursor: pointer\">\n                            <div class=\"mil_img\">\n                                <img :src=\"item.temThumbnail\" alt=\"\">\n                            </div>\n                            <div class=\"mil_desc\">\n                                <h6>{{item.temTitle}}</h6>\n                                <p>{{item.temAuthor}}</p>\n                            </div>\n                        </li>\n                    </ul>\n                </div>\n            </div>\n        </div>\n    </section>\n</template>\n\n<script>\n    import {mapState} from 'vuex'\n    import category from '@/mixins/categories'\n    export default {\n        data(){\n            return {\n                data: [],\n                category: this.$route.params.id\n            }\n        },\n        computed: mapState(['homeData']),\n        mixins: [category],\n        watch: {\n            homeData(newValue, oldValue) {\n                if (oldValue) {\n                    // 필터 적용해야함\n                    this.data = this.$store.state.homeData.filter(x=>x.categorize == this.category)\n                }\n            }\n        },\n        created(){\n            this.$store.commit('title','템플릿 둘러보기')\n            if (this.$route.params.id == 'all') {\n                this.data = this.$store.state.homeData\n            } else {\n                this.mxCategories.map(x=> {\n                    if (x.code == this.category)\n                        x.selected = true\n                })\n                if (this.$store.state.homeData) {\n                    this.data = this.$store.state.homeData.filter(x=>x.categorize == this.category)\n                }\n            }\n        },\n    }\n</script>\n<style scoped>\n\n    .activation {\n        color: #8D6F4A;\n        border-bottom: 1px solid #8D6F4A;\n    }\n</style>\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!./Category.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!./Category.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Category.vue?vue&type=template&id=5011d83a&scoped=true&\"\nimport script from \"./Category.vue?vue&type=script&lang=js&\"\nexport * from \"./Category.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Category.vue?vue&type=style&index=0&id=5011d83a&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  \"5011d83a\",\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('section',{attrs:{\"id\":\"content\"}},[_c('div',{staticClass:\"sub_content\"},[_c('div',[_c('h1',[_vm._v(\"\\n                전체(\"),_c('span',{domProps:{\"textContent\":_vm._s(_vm.data.length)}}),_vm._v(\")    작업중(\"),_c('span',{domProps:{\"textContent\":_vm._s(_vm.data.filter(function (x){ return x.status < 3; }).length)}},[_vm._v(\"0\")]),_vm._v(\")    렌더링완료(\"),_c('span',{domProps:{\"textContent\":_vm._s(_vm.data.filter(function (x){ return x.status == 3; }).length)}},[_vm._v(\"0\")]),_vm._v(\")   \\n                확정(\"),_c('span',{domProps:{\"textContent\":_vm._s(_vm.data.filter(function (x){ return x.status == 4; }).length)}},[_vm._v(\"0\")]),_vm._v(\")\\n            \")])]),_c('br'),_c('br'),_c('br'),_c('div',{staticClass:\"main_item\"},[_c('div',{staticClass:\"mi_list\"},[_c('ul',_vm._l((_vm.data),function(item){return _c('li',{key:item,staticStyle:{\"height\":\"100%\",\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.go(item)}}},[_c('div',{staticClass:\"mil_img\"},[_c('img',{attrs:{\"src\":item.template? item.template.temThumbnail: '',\"alt\":\"\"}})]),_c('div',[_c('h3',{staticStyle:{\"text-align\":\"center\",\"margin\":\"20px 0 20px 0\"}},[_vm._v(_vm._s(item._id))]),_c('div',{staticClass:\"progressbar\",style:({'width':item.workProgress < 30 ? '30%' : item.workProgress + '%'})},[(item.status == 0 )?_c('span',[_vm._v(_vm._s(item.workProgress)+\"%\")]):_vm._e(),(item.status == 1 || item.status == 2 )?_c('span',[_vm._v(\"렌더링 중\")]):_vm._e(),(item.status == 3 )?_c('span',[_vm._v(\"렌더링 완료\")]):_vm._e(),(item.status == 4 )?_c('span',[_vm._v(\"확정\")]):_vm._e()])])])}),0)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <section id=\"content\">\n        <div class=\"sub_content\">\n            <div>\n                <h1>\n                    전체(<span v-text=\"data.length\"></span>) &nbsp;&nbsp; 작업중(<span\n                        v-text=\"data.filter(x=>x.status < 3).length\">0</span>) &nbsp;&nbsp; 렌더링완료(<span\n                        v-text=\"data.filter(x=>x.status == 3).length\">0</span>) &nbsp;&nbsp;\n                    확정(<span\n                        v-text=\"data.filter(x=>x.status == 4).length\">0</span>)\n                </h1>\n            </div>\n            <br><br><br>\n            <div class=\"main_item\">\n                <div class=\"mi_list\">\n                    <ul>\n                        <li style=\"height:100%;cursor: pointer\" v-for=\"item in data\" @click=\"go(item)\" v-bind:key=\"item\">\n                            <div class=\"mil_img\">\n                                <img :src=\"item.template? item.template.temThumbnail: ''\" alt=\"\">\n                            </div>\n                            <div>\n                                <h3 style=\"text-align: center; margin: 20px 0 20px 0\">{{item._id}}</h3>\n                                <div class=\"progressbar\" :style=\"{'width':item.workProgress < 30 ? '30%' : item.workProgress + '%'}\">\n                                    <span v-if=\"item.status == 0 \">{{item.workProgress}}%</span>\n                                    <span v-if=\"item.status == 1 || item.status == 2 \">렌더링 중</span>\n                                    <span v-if=\"item.status == 3 \">렌더링 완료</span>\n                                    <span v-if=\"item.status == 4 \">확정</span>\n                                </div>\n                            </div>\n\n                        </li>\n                    </ul>\n                </div>\n            </div>\n        </div>\n    </section>\n</template>\n\n<script>\n    export default {\n        data(){\n            return {\n                data: [],\n            }\n        },\n        created(){\n            this.$store.commit('title', '나의 템플릿')\n            this.fetchTemplateData()\n        },\n        methods: {\n            async fetchTemplateData(){\n                const {data} = await this.$apiService.fetchSubtemplateByMe()\n                this.data = data\n            },\n            go(item){\n                if (item.status==0) {\n                    this.$router.push({name:'subEdit', params:{id:item._id}})\n                }if (item.status==3){\n                    this.$router.push({name:'confirm', params:{id:item._id}})\n                } else if (item.status == 4) {\n                    this.$router.push({name:'thanks', params:{id:item._id}})\n                }\n            }\n        }\n    }\n</script>\n<style scoped>\n    .progressbar {\n        background-color: #8D6F4A;\n        height: 30px;\n        padding:10px;\n        color:white;\n        margin-left: 0px;\n        margin-right: 0px;\n        vertical-align: middle;\n        text-align: center;\n    }\n</style>\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!./Template.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!./Template.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Template.vue?vue&type=template&id=4dc09658&scoped=true&\"\nimport script from \"./Template.vue?vue&type=script&lang=js&\"\nexport * from \"./Template.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Template.vue?vue&type=style&index=0&id=4dc09658&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  \"4dc09658\",\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('section',{attrs:{\"id\":\"content\"}},[_c('div',{staticClass:\"edit_content\"},[_c('br'),_c('div',{staticClass:\"ec_video\"},[_c('video',{ref:\"video\",attrs:{\"controls\":\"\",\"autoplay\":\"\"}},[_c('source',{attrs:{\"src\":_vm.data.resultVideo,\"type\":\"video/mp4\"}})])]),_c('div',{staticClass:\"ec_title\"},[_c('h2',{domProps:{\"textContent\":_vm._s(_vm.data.temTitle)}}),_c('p',{domProps:{\"textContent\":_vm._s(_vm.data.temAuthor)}})]),_vm._m(0),_c('div',{staticClass:\"ec2_btn\"},[_c('router-link',{attrs:{\"to\":'/sub/edits/'+_vm.data._id}},[_vm._v(\"수정하기\")])],1),_c('div',{staticClass:\"ec_btn\"},[_c('a',{staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":_vm.confirmFilm}},[_vm._v(\"확정하기\")])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"text-align\":\"center\"}},[_c('div',{staticStyle:{\"font-size\":\"20px\"}},[_c('strong',[_vm._v(\"축하드립니다!\")])]),_c('br'),_c('span',[_vm._v(\"요청하신 영상이 완료되었습니다.\")]),_c('br'),_c('span',[_vm._v(\"수정을 원할 시 \"),_c('strong',[_vm._v(\"수정하기,\")])]),_c('br'),_c('span',[_vm._v(\"마음에 든다면 \"),_c('strong',[_vm._v(\"확정하기\")]),_vm._v(\"버튼을 선택해주세요\")])])}]\n\nexport { render, staticRenderFns }","<template>\n\n    <section id=\"content\">\n\n        <div class=\"edit_content\">\n            <br>\n            <div class=\"ec_video\">\n                <video controls ref=\"video\" autoplay>\n                    <source :src=\"data.resultVideo\" type=\"video/mp4\">\n                </video>\n            </div>\n\n            <div class=\"ec_title\">\n                <h2 v-text=\"data.temTitle\"></h2>\n                <p v-text=\"data.temAuthor\"></p>\n            </div>\n\n            <div class=\"\" style=\"text-align: center;\">\n                <div style=\"font-size: 20px\"><strong>축하드립니다!</strong></div><br>\n\n                <span>요청하신 영상이 완료되었습니다.</span><br>\n                <span>수정을 원할 시 <strong>수정하기,</strong></span><br>\n                <span>마음에 든다면 <strong>확정하기</strong>버튼을 선택해주세요</span>\n            </div>\n\n\n            <div class=\"ec2_btn\">\n                <router-link :to=\"'/sub/edits/'+data._id\">수정하기</router-link>\n            </div>\n            <div class=\"ec_btn\">\n                <a @click=\"confirmFilm\" style=\"cursor: pointer\">확정하기</a>\n            </div>\n\n        </div>\n\n    </section>\n</template>\n\n<script>\n    import category from '@/components/layouts/category'\n    import mxCategories from '@/mixins/categories'\n    export default {\n        data(){\n            return {\n                id: this.$route.params.id,\n                data: {}\n            }\n        },\n        mixins:[mxCategories],\n        mounted(){\n            this.$store.commit('title','템플릿 편집실')\n            this.fetchData()\n        },\n        methods:{\n            async fetchData(){\n                let {data} = await this.$apiService.fetchSubtemplateById(this.id)\n                this.data = data\n                this.$refs.video.load()\n            },\n            async confirmFilm(){\n                let {data} = await this.$apiService.confirmFilm(this.id)\n                this.$router.replace('/thanks/'+ this.id)\n            }\n        }\n    }\n</script>\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!./Confirm.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!./Confirm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Confirm.vue?vue&type=template&id=4311262e&\"\nimport script from \"./Confirm.vue?vue&type=script&lang=js&\"\nexport * from \"./Confirm.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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{attrs:{\"id\":\"content\"}},[_c('div',{staticClass:\"nedit_top\"},[_c('h1',[_vm._v(\"템플릿 완성도 \"),_c('strong',[_vm._v(_vm._s(_vm.percentage)+\" %\")])]),_c('a',{staticStyle:{\"border\":\"none\",\"color\":\"black\"},attrs:{\"href\":\"#\"}},[_c('h1',[_vm._v(\"Scene \"+_vm._s((_vm.currentIndex+1))+\"/\"+_vm._s(_vm.data.sources.length))])])]),_c('div',{staticClass:\"nedit_content\"},[_c('div',{staticClass:\"nec_slide\"},[_c('div',{staticClass:\"nec_container\"},[_c('div',{staticClass:\"nedit_row\"},_vm._l((_vm.sliders),function(item,index){return _c('div',{key:(item, index),staticClass:\"column\",on:{\"click\":function($event){_vm.currentIndex = item.sceneIndex}}},[_c('img',{staticClass:\"demo cursor\",class:{'active' : _vm.currentIndex == item.sceneIndex},staticStyle:{\"width\":\"100%\"},attrs:{\"src\":item.sceneImage,\"alt\":\"The Woods\"}})])}),0),_c('br'),_c('div',{staticClass:\"mySlides\"},[_c('img',{staticClass:\"slide_img\",staticStyle:{\"width\":\"100%\"},attrs:{\"src\":_vm.data.sources[_vm.currentIndex].sceneImage}}),_c('video',{ref:\"video\",staticStyle:{\"position\":\"absolute\",\"opacity\":\"0\"},attrs:{\"preload\":\"none\",\"controls\":\"true\"}}),_c('canvas',{ref:\"canvas\",staticStyle:{\"position\":\"absolute\",\"width\":\"100%\",\"height\":\"655px\",\"left\":\"0px\"},attrs:{\"id\":\"canvas\"}}),_c('svg',{staticStyle:{\"position\":\"absolute\",\"top\":\"150px\",\"left\":\"0px\",\"width\":\"100%\"},attrs:{\"id\":\"fillArea\",\"viewBox\":\"0 0 1280 720\"}},[_c('polygon',{staticClass:\"area_none\",attrs:{\"id\":\"realArea\"}})]),_c('div',{staticClass:\"nedit_num_text\",domProps:{\"textContent\":_vm._s('#'+(_vm.currentIndex+1))}})]),_c('a',{staticClass:\"prev\",on:{\"click\":function($event){_vm.currentIndex--}}},[_c('img',{staticStyle:{\"position\":\"relative\"},attrs:{\"src\":\"/assets/image/navigation/prev.png\"}})]),_c('a',{staticClass:\"next\",on:{\"click\":function($event){_vm.currentIndex++}}},[_c('img',{staticStyle:{\"position\":\"relative\"},attrs:{\"src\":\"/assets/image/navigation/next.png\"}})])])])]),_c('div',{staticClass:\"nedit_form\"},[_c('table',[_c('tbody',_vm._l((_vm.data.sources[_vm.currentIndex].source),function(item,index){return _c('tr',{key:(item, index),staticClass:\"tr_image\"},[(item.sourceType == 'T')?_c('th',[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit6.png\"}})]):_vm._e(),(item.sourceType == 'T')?_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(item.uploadData),expression:\"item.uploadData\"}],ref:'t_'+(index+1),refInFor:true,attrs:{\"type\":\"text\",\"placeholder\":\"텍스트를 입력해주세요\",\"name\":_vm.currentIndex+'_'+(index+1),\"maxlength\":item.sourceTextLength[2]},domProps:{\"value\":(item.uploadData)},on:{\"blur\":_vm.patchSource,\"keyup\":function($event){_vm.calcTextLength('t_'+(index+1))},\"click\":function($event){_vm.area('t_'+(index+1))},\"input\":function($event){if($event.target.composing){ return; }_vm.$set(item, \"uploadData\", $event.target.value)}}}),_c('button',{staticStyle:{\"background-color\":\"transparent\"},attrs:{\"disabled\":\"\"}},[_c('span',[_c('span',{ref:'c_t_'+(index+1),refInFor:true},[_vm._v(\"0\")]),_vm._v(\" / \"+_vm._s(item.sourceTextLength[2]))])])]):_vm._e(),(item.sourceType == 'I')?_c('th',[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit4.png\"}})]):_vm._e(),(item.sourceType == 'I')?_c('td',[_c('input',{ref:'i_file_'+(index+1),refInFor:true,staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"accept\":\"image/*\",\"name\":'i'+(index+1)},on:{\"change\":function($event){_vm.changeFile($event, 't_i_file_'+(index+1))}}}),_c('input',{ref:'t_i_file_'+(index+1),refInFor:true,attrs:{\"type\":\"text\",\"placeholder\":item.uploadData ? item.uploadData : '이미지를 등록해주세요',\"data-crop-w\":item.sourceWidth,\"data-crop-h\":item.sourceHeight,\"name\":_vm.currentIndex+'_'+(index+1),\"readonly\":\"\"},on:{\"click\":function($event){_vm.area('t_i_file_'+(index+1))}}}),(!item.uploadData)?_c('button',{on:{\"click\":function($event){_vm.showFilechoose('i_file_'+(index+1))}}},[_vm._v(\"첨부\")]):_c('button',{staticClass:\"delete_btn\",on:{\"click\":function($event){item.uploadData = ''; _vm.reDrawInputUI('t_i_file_'+(index+1))}}},[_vm._v(\"삭제\")])]):_vm._e(),(item.sourceType == 'V')?_c('th',[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit5.png\"}})]):_vm._e(),(item.sourceType == 'V')?_c('td',[_c('input',{ref:'v_file_'+(index+1),refInFor:true,staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"name\":'v_'+(index+1),\"accept\":\"video/mp4\"},on:{\"change\":function($event){_vm.changeFile($event, 't_v_file_'+(index+1))}}}),_c('input',{ref:'t_v_file_'+(index+1),refInFor:true,attrs:{\"type\":\"text\",\"placeholder\":item.uploadData ? item.uploadData : '영상을 등록해주세요',\"data-crop-w\":item.sourceWidth,\"data-crop-h\":item.sourceHeight,\"name\":_vm.currentIndex+'_'+(index+1),\"readonly\":\"\"},on:{\"click\":function($event){_vm.area('t_v_file_'+(index+1))}}}),(!item.uploadData)?_c('button',{on:{\"click\":function($event){_vm.showFilechoose('v_file_'+(index+1))}}},[_vm._v(\"첨부\")]):_c('button',{staticClass:\"delete_btn\",on:{\"click\":function($event){item.uploadData = ''; _vm.reDrawInputUI('t_v_file_'+(index+1));}}},[_vm._v(\"삭제\")])]):_vm._e()])}),0)]),_c('div',{staticClass:\"nec_res\"},[_c('ul',[_c('li',[_vm._m(0),_c('span',{staticClass:\"res_text\"},[_vm._v(_vm._s(_vm.inputCountObject.V.active)+\"/\"+_vm._s(_vm.inputCountObject.V.total))])]),_c('li',[_vm._m(1),_c('span',{staticClass:\"res_text\"},[_vm._v(_vm._s(_vm.inputCountObject.I.active)+\"/\"+_vm._s(_vm.inputCountObject.I.total))])]),_c('li',{staticClass:\"lst_icon\"},[_vm._m(2),_c('span',{staticClass:\"res_text\"},[_vm._v(_vm._s(_vm.inputCountObject.T.active)+\"/\"+_vm._s(_vm.inputCountObject.T.total))])])])]),(_vm.percentage != 100)?_c('div',{staticClass:\"nec_btn cursor\",on:{\"click\":function($event){_vm.currentIndex++}}},[_c('a',[_vm._v(\"다음\")])]):_c('div',{staticClass:\"nec_btn cursor\",on:{\"click\":_vm.makingFilm}},[_c('a',[_vm._v(\"영상제작하기\")])])]),_c('crop-modal',{ref:\"cropModal\"})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"res_img\"},[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit2.png\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"res_img\"},[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit1.png\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"res_img\"},[_c('img',{attrs:{\"src\":\"/assets/image/icon/t_icon.jpeg\"}})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShow),expression:\"isShow\"}],staticStyle:{\"position\":\"absolute\",\"width\":\"100%\",\"top\":\"400px\"}},[_c('div',{staticClass:\"template-area\"},[_c('div',{staticClass:\"in-template\"},[_c('div',{staticClass:\"img\",staticStyle:{\"max-height\":\"650px\",\"height\":\"650px\"}},[_c('img',{ref:\"img\",staticStyle:{\"width\":\"100%\"},attrs:{\"id\":\"img\"}})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.resourceType.includes('video')),expression:\"!resourceType.includes('video')\"}],staticClass:\"button\"},[_c('ul',[_c('li',{on:{\"click\":function($event){return _vm.rotate(90)}}},[_c('img',{attrs:{\"src\":\"/assets/image/edit/rotate.png\",\"alt\":\"\"}})]),_c('li',{on:{\"click\":function($event){return _vm.scale('x')}}},[_vm._m(0)]),_c('li',{on:{\"click\":function($event){return _vm.scale('y')}}},[_vm._m(1)])])]),_c('br'),_c('br'),_c('ul',{staticClass:\"pre-nt\"},[_c('li',{on:{\"click\":_vm.exit}},[_c('a',[_vm._v(\"나가기\")])]),_c('li',{on:{\"click\":_vm.ok}},[_c('a',[_vm._v(\"다음\")])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',[_c('img',{attrs:{\"src\":\"/assets/image/edit/leftright.png\",\"alt\":\"\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',[_c('img',{attrs:{\"src\":\"/assets/image/edit/topdown.png\",\"alt\":\"\"}})])}]\n\nexport { render, staticRenderFns }","<template>\n    <section v-show=\"isShow\" style=\"position:absolute; width:100%; top:400px\">\n        <div class=\"template-area\">\n            <div class=\"in-template\">\n                <div class=\"img\" style=\"max-height: 650px; height:650px;\">\n                    <img id=\"img\" ref=\"img\" style=\"width: 100%\">\n                </div>\n                <div class=\"button\" v-show=\"!resourceType.includes('video')\">\n                    <ul>\n                        <li @click=\"rotate(90)\">\n                            <img src=\"/assets/image/edit/rotate.png\" alt=\"\">\n                        </li>\n                        <li @click=\"scale('x')\"><a>\n                            <img src=\"/assets/image/edit/leftright.png\" alt=\"\">\n                        </a></li>\n                        <li @click=\"scale('y')\"><a>\n                            <img src=\"/assets/image/edit/topdown.png\" alt=\"\">\n                        </a></li>\n                    </ul>\n                </div>\n                <br><br>\n                <ul class=\"pre-nt\">\n                    <li @click=\"exit\"><a>나가기</a></li>\n                    <li @click=\"ok\"><a>다음</a></li>\n                </ul>\n            </div>\n        </div>\n    </section>\n</template>\n<script>\n    import Cropper from 'cropperjs'\n    const templateRatio = {\n        0:{image:NaN, video:{w:720,h:720}},\n        1:{image:1/1, video:{w:720,h:720}},\n        2:{image:9/16, video:{w:720,h:1280}},\n        3:{image:16/9, video:{w:1280,h:720}}\n    }\n    export default {\n        data(){\n            return {\n                videoSrc: {},\n                resourceType: '',\n                parent: {},\n                selectedRef: '',\n                isShow: false,\n                scaleX: 1,\n                scaleY: 1,\n                cropper: {}\n            }\n        },\n        methods: {\n            open(imageData, videoData, parent, resoureType, ref, minCropboxW = 1280, minCropboxH = 720){\n                const image = this.$refs.img\n                image.src = imageData\n                this.videoSrc = videoData\n                this.parent = parent\n                this.resourceType = resoureType\n                this.selectedRef = ref\n                this.isShow = true\n                try{\n                    this.cropper.destroy()\n                }catch (e){\n                }\n                document.getElementsByClassName('dim')[0].style.display = 'block'\n                this.cropper = new Cropper(image, {\n                    aspectRatio: parseInt(minCropboxW)/parseInt(minCropboxH),\n                    cropBoxResizable: false,\n                    dragMode: 'move',\n                    viewMode:1,\n                    ready(){\n                        scrollTo(0, 3)\n                    }\n                })\n            },\n            async ok(){\n                this.cropper.getCroppedCanvas().toBlob(async blob=> {\n                    let formData = new FormData()\n                    let data = {}\n                    if (this.resourceType.includes('video')) {\n                        formData.append('file', this.videoSrc)\n                        const cropData = this.cropper.getData()\n                        formData.append('cropWidth', cropData.width)\n                        formData.append('cropHeight', cropData.height)\n                        formData.append('cropX',cropData.x)\n                        formData.append('cropY', cropData.y)\n                        formData.append('scaleWidth', templateRatio[this.parent.data.templateRatio].video.w)\n                        formData.append('scaleHeight',templateRatio[this.parent.data.templateRatio].video.h)\n                        data = await this.$apiService.uploadVideo(formData)\n                    } else {\n                        formData.append('file', blob)\n                        data = await this.$apiService.uploadImage(formData)\n                    }\n                    this.isShow = false;\n                    this.parent.insertCroppedData(this.selectedRef, data.data.url)\n                    document.getElementsByClassName('dim')[0].style.display = 'none'\n                })\n            },\n            exit(){\n                if (!confirm('지금 나가시면 적용된 효과들이 모두 취소됩니다.정말 나가시겠습니까?')) return\n                document.getElementsByClassName('dim')[0].style.display = 'none'\n                this.parent.cancelUploadFile(this.selectedRef)\n                this.isShow = false\n            },\n            scale(mode){\n                if (mode == 'x') {\n                    this.scaleX = this.scaleX == -1 ? 1 : -1\n                    this.cropper.scaleX(this.scaleX)\n                } else {\n                    this.scaleY = this.scaleY == -1 ? 1 : -1\n                    this.cropper.scaleY(this.scaleY)\n                }\n            },\n            rotate(degree){\n                this.cropper.rotate(degree)\n            }\n        },\n    }\n</script>\n<style>\n    @import '../../../node_modules/cropperjs/dist/cropper.min.css';\n</style>\n<style scoped>\n    .template-area {\n        position: absolute;\n        width: 100%;\n        height: 100%;\n    }\n\n    .template-area .in-template {\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        width: 984px;\n        margin: -400px 0 0 -492px;\n        z-index: 100;\n    }\n\n    .template-area .in-template .img {\n        text-align: center;\n    }\n\n    .template-area .in-template .button {\n        width: 100%;\n        background: #000;\n        padding: 42px 0 44px;\n    }\n\n    .template-area .in-template .button ul {\n        overflow: hidden;\n        margin: 0 auto;\n        width: 355px;\n    }\n\n    .template-area .in-template .button ul li {\n        float: left;\n    }\n\n    .template-area .in-template .button ul li:nth-child(2n) {\n        padding: 0 73px 0 72px;\n    }\n\n    .template-area .pre-nt {\n        overflow: hidden;\n        z-index: 100;\n    }\n\n    .template-area .pre-nt li {\n        float: left;\n        width: 50%;\n        text-align: center;\n    }\n\n    .template-area .pre-nt li a {\n        display: block;\n        border: 1px solid #fff;\n        font-size: 25px;\n        width: 491px;\n        text-align: center;\n        padding: 25px 0;\n        color: #fff;\n        font-weight: bold;\n    }\n\n    .template-area .pre-nt li:nth-child(2n) a {\n        /*border-top: 1px solid #000;*/\n        /*border-bottom: 1px solid #000;*/\n        /*border-right: 1px solid #000;*/\n        width: 490px;\n    }\n\n    li {\n        cursor: pointer;\n    }\n</style>\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!./ImageCropModal.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!./ImageCropModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ImageCropModal.vue?vue&type=template&id=7b9e9e80&scoped=true&\"\nimport script from \"./ImageCropModal.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageCropModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ImageCropModal.vue?vue&type=style&index=0&lang=css&\"\nimport style1 from \"./ImageCropModal.vue?vue&type=style&index=1&id=7b9e9e80&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  \"7b9e9e80\",\n  null\n  \n)\n\nexport default component.exports","<template>\n    <section id=\"content\">\n        <div class=\"nedit_top\">\n            <h1>템플릿 완성도 <strong>{{percentage}} %</strong></h1>\n            <a href=\"#\" style=\"border: none; color:black\">\n                <h1>Scene {{(currentIndex+1)}}/{{data.sources.length}}</h1>\n            </a>\n        </div>\n\n        <div class=\"nedit_content\">\n            <div class=\"nec_slide\">\n                <div class=\"nec_container\">\n                    <div class=\"nedit_row\">\n                        <div class=\"column\" v-for=\"(item, index) in sliders\" @click=\"currentIndex = item.sceneIndex\" v-bind:key=\"(item, index)\">\n                            <img :class=\"{'active' : currentIndex == item.sceneIndex}\" class=\"demo cursor\" :src=\"item.sceneImage\"\n                                 style=\"width:100%\" alt=\"The Woods\">\n                        </div>\n                    </div>\n                    <br>\n\n                    <div class=\"mySlides\">\n                        <img :src=\"data.sources[currentIndex].sceneImage\" style=\"width:100%\" class=\"slide_img\">\n                        <video preload=\"none\" ref=\"video\" controls=\"true\" style=\"position: absolute; opacity: 0\" >\n                        </video>\n                        <canvas id=\"canvas\" ref=\"canvas\"\n                                style=\"position:absolute; width: 100%; height: 655px; left:0px\"></canvas>\n                        <svg id=\"fillArea\" style=\"position:absolute;top:150px;left:0px;width:100%;\" viewBox=\"0 0 1280 720\">\n                            <polygon id=\"realArea\" class=\"area_none\">\n                                </polygon>\n                            </svg>\n                        <div class=\"nedit_num_text\" v-text=\"'#'+(currentIndex+1)\"></div>\n                    </div>\n\n                    <a class=\"prev\" @click=\"currentIndex--\">\n                        <img src=\"/assets/image/navigation/prev.png\" style=\"position: relative;\">\n                    </a>\n                    <a class=\"next\" @click=\"currentIndex++\">\n                        <img src=\"/assets/image/navigation/next.png\" style=\"position: relative;\">\n                    </a>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"nedit_form\">\n            <table>\n                <tbody>\n                <tr class=\"tr_image\" v-for=\"(item, index) in data.sources[currentIndex].source\" v-bind:key=\"(item, index)\">\n                    <th v-if=\"item.sourceType == 'T'\">\n                        <img src=\"/assets/image/icon/nedit6.png\">\n                    </th>\n                    <td v-if=\"item.sourceType == 'T'\">\n                        <input\n                                type=\"text\"\n                                placeholder=\"텍스트를 입력해주세요\"\n                                v-model=\"item.uploadData\"\n                                @blur=\"patchSource\"\n                                @keyup=\"calcTextLength('t_'+(index+1))\"\n                                @click=\"area('t_'+(index+1))\"\n                                :name=\"currentIndex+'_'+(index+1)\"\n                                :ref=\"'t_'+(index+1)\"\n                                :maxlength=\"item.sourceTextLength[2]\"\n                        >\n                        <button disabled style=\"background-color: transparent;\">\n                            <span><span :ref=\"'c_t_'+(index+1)\">0</span> / {{item.sourceTextLength[2]}}</span>\n                        </button>\n                    </td>\n                    <th v-if=\"item.sourceType == 'I'\">\n                        <img src=\"/assets/image/icon/nedit4.png\">\n                    </th>\n                    <td v-if=\"item.sourceType == 'I'\">\n                        <input\n                                type=\"file\"\n                                accept=\"image/*\"\n                                @change=\"changeFile($event, 't_i_file_'+(index+1))\"\n                                :name=\"'i'+(index+1)\"\n                                :ref=\"'i_file_'+(index+1)\"\n                                style=\"display:none\">\n                        <input\n                                type=\"text\"\n                                :placeholder=\"item.uploadData ? item.uploadData : '이미지를 등록해주세요'\"\n                                :data-crop-w=\"item.sourceWidth\"\n                                :data-crop-h=\"item.sourceHeight\"\n                                @click=\"area('t_i_file_'+(index+1))\"\n                                :name=\"currentIndex+'_'+(index+1)\"\n                                :ref=\"'t_i_file_'+(index+1)\" readonly>\n                        <button v-if=\"!item.uploadData\" @click=\"showFilechoose('i_file_'+(index+1))\">첨부</button>\n                        <button v-else  class=\"delete_btn\" @click=\"item.uploadData = ''; reDrawInputUI('t_i_file_'+(index+1))\">삭제</button>\n                    </td>\n                    <th v-if=\"item.sourceType == 'V'\">\n                        <img src=\"/assets/image/icon/nedit5.png\">\n                    </th>\n                    <td v-if=\"item.sourceType == 'V'\">\n                        <input\n                                @change=\"changeFile($event, 't_v_file_'+(index+1))\"\n                                type=\"file\"\n                                :name=\"'v_'+(index+1)\"\n                                :ref=\"'v_file_'+(index+1)\"\n                                style=\"display:none\"\n                                accept=\"video/mp4\">\n                        <input type=\"text\"\n                               :placeholder=\"item.uploadData ? item.uploadData : '영상을 등록해주세요'\"\n                               :data-crop-w=\"item.sourceWidth\"\n                               :data-crop-h=\"item.sourceHeight\"\n                               @click=\"area('t_v_file_'+(index+1))\"\n                               :name=\"currentIndex+'_'+(index+1)\"\n                               :ref=\"'t_v_file_'+(index+1)\" readonly>\n                        <button v-if=\"!item.uploadData\" @click=\"showFilechoose('v_file_'+(index+1))\">첨부</button>\n                        <button class=\"delete_btn\" v-else @click=\"item.uploadData = ''; reDrawInputUI('t_v_file_'+(index+1));\">삭제</button>\n                    </td>\n                </tr>\n                </tbody>\n            </table>\n\n            <div class=\"nec_res\">\n                <ul>\n                    <li><div class=\"res_img\"><img src=\"/assets/image/icon/nedit2.png\"></div><span class=\"res_text\">{{inputCountObject.V.active}}/{{inputCountObject.V.total}}</span></li>\n                    <li><div class=\"res_img\"><img src=\"/assets/image/icon/nedit1.png\"></div><span class=\"res_text\">{{inputCountObject.I.active}}/{{inputCountObject.I.total}}</span></li>\n                    <li class=\"lst_icon\"><div class=\"res_img\"><img src=\"/assets/image/icon/t_icon.jpeg\"></div><span class=\"res_text\">{{inputCountObject.T.active}}/{{inputCountObject.T.total}}</span></li>\n                </ul>\n            </div>\n\n            <div v-if=\"percentage != 100\" @click=\"currentIndex++\" class=\"nec_btn cursor\">\n                <a>다음</a>\n            </div>\n            <div v-else @click=\"makingFilm\" class=\"nec_btn cursor\">\n                <a>영상제작하기</a>\n            </div>\n\n        </div>\n\n        <crop-modal ref=\"cropModal\"></crop-modal>\n    </section>\n\n</template>\n<script>\n    import CropModal from '@/components/modals/ImageCropModal'\n    export default {\n        data(){\n            return {\n                URL : window.URL || window.webkitURL,\n                inputCountObject:{\n                    T:{active:0, total:0},\n                    I:{active:0, total:0},\n                    V:{active:0, total:0}\n                },\n                percentage: 0,\n                id: '',\n                createdSubtemplateId: this.$route.params.id,\n                data: {},\n                itemTextLengths: [],\n                currentIndex: 0,\n            }\n        },\n        created(){\n            this.$apiService.modifyFilm(this.createdSubtemplateId)\n        },\n        components: {\n            CropModal\n        },\n        mounted(){\n            this.$store.commit('title','템플릿 편집실')\n            this.fetchData()\n        },\n        watch: {\n            currentIndex(v){\n                this.data.sources[this.currentIndex].source.forEach((obj,index)=>{\n                    if ( this.$refs[`t_i_file_${index+1}`] ) {\n                        this.$refs[`t_i_file_${index+1}`][0].value = ''\n                    }\n                    if ( this.$refs[`t_v_file_${index+1}`] ) {\n                        this.$refs[`t_v_file_${index+1}`][0].value = ''\n                    }\n                })\n\n                if (v < 0) {\n                    this.currentIndex = this.data.sources.length - 1\n                }\n                if ((this.data.sources.length - 1) < v) {\n                    this.currentIndex = 0\n                }\n            }\n        },\n        computed: {\n            sliders(){\n                let totalPages = this.data.sources.length / 6\n                if ( totalPages <= 1 ) {\n                    return this.data.sources\n                }\n                totalPages = Math.ceil(totalPages)\n                let offset = Math.floor(this.currentIndex / 6) * 6\n                return this.data.sources.slice( offset, offset+6)\n            }\n        },\n        methods: {\n            reDrawInputUI(ref){\n//                const canvas = this.$refs['canvas']\n//                const ctx = canvas.getContext('2d')\n//                ctx.clearRect(0, 0, 1200, 700);\n//                for (const item of this.data.sources[this.currentIndex].source) {\n//                    if ( item.sourceType != 'T') {\n//                        if ( item.uploadData)\n//                            this.drawSourceArea(item.sourceArea[0][0], item.sourceArea[0][1], 100, 100)\n//                    }\n//                }\n                this.$refs[ref][0]['value'] = ''\n                this.$refs[ref.replace('t_', '')][0]['value'] = ''\n                this.patchSource()\n            },\n            calcTextLength(ref){\n                this.$refs[`c_${ref}`][0].innerHTML = this.$refs[`${ref}`][0].value.length\n            },\n            async fetchData() {\n                let {data} = await this.$apiService.fetchSubtemplateById(this.createdSubtemplateId)\n                this.data = data.template\n\n                let index = 0\n                for (let sourceArray of this.data.sources) {\n                    let iindex = 0\n                    for (let sourceObject of sourceArray.source) {\n                        sourceObject['uploadData'] = data.sources[index][iindex]\n                        iindex++\n                    }\n                    index++\n                }\n\n                this.patchSource()\n            },\n            cancelUploadFile(ref){\n                this.$refs[ref][0].value = ''\n                this.$refs[ref.replace('t_', '')][0]['value'] = ''\n            },\n            area(ref){\n                var currentSelect = this.$refs[ref][0][\"attributes\"][\"name\"][\"value\"]\n                var currentScene = parseInt(currentSelect.split('_')[0]);\n                var currentNo = parseInt(currentSelect.split('_')[1]);\n                var theArea = this.data.sources[currentScene][\"source\"][currentNo-1][\"sourceArea\"];\n                var thisValue = this.$refs[ref][0][\"attributes\"][0][\"ownerElement\"][\"value\"];\n                var fill = document.getElementById(\"realArea\");\n                var a = theArea[0][0]\n                var b = theArea[0][1]\n                var c = theArea[1][0]\n                var d = theArea[1][1]\n                var e = theArea[2][0]\n                var f = theArea[2][1]\n                var g = theArea[3][0]\n                var h = theArea[3][1]\n                var location = `${a},${b} ${c},${d} ${e},${f} ${g},${h}`\n                fill.setAttribute(\"points\", location)\n                if(thisValue.length > 0){\n                    if(fill.classList[0] == \"area_none\"){\n                        fill.classList.remove(\"area_none\");\n                    }else if(fill.classList[0] == \"area_off\"){\n                        fill.classList.remove(\"area_off\");\n                    }\n                    fill.classList.add(\"area_value\")\n                }else{\n                    if(fill.classList[0] == \"area_value\"){\n                        fill.classList.remove(\"area_value\");\n                    }else if(fill.classList[0] == \"area_off\"){\n                        fill.classList.remove(\"area_off\");\n                    }\n                    fill.classList.add(\"area_none\");\n                }\n            },\n            showFilechoose(ref) {\n                this.$refs[ref][0].click()\n            },\n            async changeFile(event, ref) {\n                if (event.target.files.length == 0) return\n                this.$refs[ref][0].value = event.target.files[0].name\n                const uploadFile = event.target.files[0]\n                const cropwidth = this.$refs[ref][0].getAttribute('data-crop-w')\n                const cropheight = this.$refs[ref][0].getAttribute('data-crop-h')\n                if ( uploadFile.type.includes('video')){\n                    let videoNode = document.querySelector(\"video\")\n                    videoNode.canPlayType(uploadFile.type)\n                    videoNode.src = this.URL.createObjectURL(uploadFile)\n                    videoNode.onloadeddata = ()=>{\n                        let time = parseInt(videoNode.duration)\n                        videoNode.currentTime = Math.floor(Math.random()*time)+1\n                        let w = videoNode.videoWidth\n                        let h = videoNode.videoHeight\n                        let canvas = document.createElement('canvas')\n                        let ctx = canvas.getContext('2d')\n                        canvas.width  = w\n                        canvas.height = h\n                        ctx.drawImage(videoNode, 0, 0, w, h)\n                        this.$refs.cropModal.open(canvas.toDataURL(), uploadFile, this, uploadFile.type, ref,cropwidth, cropheight)\n                    }\n\n                } else {\n                    this.getBase64(uploadFile).then(data => {\n                        this.$refs.cropModal.open(data, null, this, uploadFile.type, ref,cropwidth, cropheight)\n                    })\n                }\n            },\n            insertCroppedData(ref, url){\n                let sourceIndex = parseInt(ref.substr(ref.length - 1)) - 1\n                this.data.sources[this.currentIndex].source[sourceIndex]['uploadData'] = url\n                this.$forceUpdate()\n//                const sourceArea = this.data.sources[this.currentIndex].source[sourceIndex].sourceArea\n//                const x = sourceArea[0][0]\n//                const y = sourceArea[0][1]\n//                this.drawSourceArea(x, y, 100, 100)\n            },\n            drawSourceArea(x, y, w, h){\n                //const canvas = this.$refs['canvas']\n                //const ctx = canvas.getContext('2d')\n                //ctx.globalAlpha = 0.8\n\n                //ctx.strokeStyle = 'white'\n                //ctx.strokeRect(x/10,y/10,w,h)\n\n                //ctx.globalAlpha = 0.2\n                //ctx.fillStyle = 'white'\n                //ctx.fillRect(x/10,y/10,w,h)\n\n                this.patchSource()\n            },\n            async patchSource(){\n                var fill = document.getElementById(\"realArea\")\n                if(fill.classList[0] === \"area_none\"){\n                    fill.classList.remove(\"area_none\");\n                }else if(fill.classList[0] === \"area_value\"){\n                    fill.classList.remove(\"area_value\");\n                }\n                fill.classList.add(\"area_off\");\n                let index = 0\n                const requestBody = []\n                for (let item of this.data.sources)\n                    requestBody[index++] = []\n                index = 0\n                this.inputCountObject = {\n                    T:{active:0, total:0},\n                    I:{active:0, total:0},\n                    V:{active:0, total:0}\n                }\n                for (let sourceArray of this.data.sources) {\n                    for (let sourceObject of sourceArray.source) {\n                        this.inputCountObject[sourceObject.sourceType].total++\n                        if (sourceObject.uploadData){\n                            this.inputCountObject[sourceObject.sourceType].active++\n                            requestBody[index].push(sourceObject.uploadData)\n                        } else {\n                            requestBody[index].push(null)\n                        }\n                    }\n                    index++;\n                }\n                const {data} = await this.$apiService.patchSubTemplate(this.createdSubtemplateId, requestBody)\n                this.percentage = data.workProgress\n            },\n            async makingFilm(){\n                try {\n                    if ( this.percentage != 100) return\n                    const {data} = await this.$apiService.makingFilm(this.createdSubtemplateId)\n                    if ( data.status == 1 )\n                        alert('렌더링이 시작되었습니다! 완료되면 바로 알려드릴께요')\n                    this.$router.replace('/')\n                }catch (e){\n                    alert('렌더링 요청 중 오류가 발생하였습니다. 잠시 후 다시 요청해주세요.')\n                }\n            },\n            getBase64(file) {\n                return new Promise((resolve, reject) => {\n                    const reader = new FileReader();\n                    reader.readAsDataURL(file);\n                    reader.onload = () => resolve(reader.result);\n                    reader.onerror = error => reject(error);\n                });\n            }\n        }\n    }\n</script>\n<style scoped>\n    .delete_btn{\n        border: 2px solid #8D6F4A !important;\n        color:#8D6F4A !important;\n        background-color: transparent !important;\n    }\n</style>\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!./SubTemplateEdit.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!./SubTemplateEdit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SubTemplateEdit.vue?vue&type=template&id=655594fb&scoped=true&\"\nimport script from \"./SubTemplateEdit.vue?vue&type=script&lang=js&\"\nexport * from \"./SubTemplateEdit.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SubTemplateEdit.vue?vue&type=style&index=0&id=655594fb&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  \"655594fb\",\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('section',{attrs:{\"id\":\"content\"}},[_c('div',{staticClass:\"edit_content\"},[_c('br'),_c('div',{staticClass:\"ec_video\"},[_c('video',{ref:\"video\",attrs:{\"controls\":\"\",\"autoplay\":\"\"}},[_c('source',{attrs:{\"src\":_vm.data.resultVideo,\"type\":\"video/mp4\"}})])]),_c('div',{staticClass:\"ec_title\"},[_c('h2',{domProps:{\"textContent\":_vm._s(_vm.data.temTitle)}}),_c('p',{domProps:{\"textContent\":_vm._s(_vm.data.temAuthor)}})]),_vm._m(0),_c('div',{staticClass:\"ec_btn\"},[_c('a',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"href\":_vm.data.resultVideo,\"download\":\"\"}},[_vm._v(\"저장하기\")])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"text-align\":\"center\"}},[_c('div',{staticStyle:{\"font-size\":\"20px\"}},[_c('strong',[_vm._v(\"감사합니다\")])]),_c('br'),_c('span',[_vm._v(\"요청하신 영상이 확정되었습니다.\")]),_c('br'),_c('span',[_vm._v(\"앨범에 저장하거나 바로 공유해보세요!\")])])}]\n\nexport { render, staticRenderFns }","<template>\n\n    <section id=\"content\">\n\n        <div class=\"edit_content\">\n            <br>\n            <div class=\"ec_video\">\n                <video controls ref=\"video\" autoplay>\n                    <source :src=\"data.resultVideo\" type=\"video/mp4\">\n                </video>\n            </div>\n\n            <div class=\"ec_title\">\n                <h2 v-text=\"data.temTitle\"></h2>\n                <p v-text=\"data.temAuthor\"></p>\n            </div>\n\n            <div class=\"\" style=\"text-align: center;\">\n                <div style=\"font-size: 20px\"><strong>감사합니다</strong></div><br>\n\n                <span>요청하신 영상이 확정되었습니다.</span><br>\n                <span>앨범에 저장하거나 바로 공유해보세요!</span>\n            </div>\n\n\n            <div class=\"ec_btn\">\n                <a :href=\"data.resultVideo\" download style=\"cursor: pointer\">저장하기</a>\n            </div>\n\n        </div>\n\n    </section>\n</template>\n\n<script>\n    import category from '@/components/layouts/category'\n    import mxCategories from '@/mixins/categories'\n    export default {\n        data(){\n            return {\n                id: this.$route.params.id,\n                data: {}\n            }\n        },\n        mixins:[mxCategories],\n        mounted(){\n            this.$store.commit('title','템플릿 편집실')\n            this.fetchData()\n        },\n        methods:{\n            async fetchData(){\n                let {data} = await this.$apiService.fetchSubtemplateById(this.id)\n                this.data = data\n                this.$refs.video.load()\n            },\n            async confirmFilm(){\n                let {data} = await this.$apiService.confirmFilm(this.id)\n                this.$router.replace('/confirmed/'+ this.id)\n            }\n        }\n    }\n</script>\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!./Confirmed.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!./Confirmed.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Confirmed.vue?vue&type=template&id=64ea1d10&\"\nimport script from \"./Confirmed.vue?vue&type=script&lang=js&\"\nexport * from \"./Confirmed.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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{attrs:{\"id\":\"content\"}},[_c('div',{staticClass:\"nedit_top\"},[_c('h1',[_vm._v(\"템플릿 완성도 \"),_c('strong',[_vm._v(_vm._s(_vm.percentage)+\" %\")])]),_c('a',{staticStyle:{\"border\":\"none\",\"color\":\"black\"},attrs:{\"href\":\"#\"}},[_c('h1',[_vm._v(\"Scene \"+_vm._s((_vm.currentIndex+1))+\"/\"+_vm._s(_vm.data.sources.length))])])]),_c('div',{staticClass:\"nedit_content\"},[_c('div',{staticClass:\"nec_slide\"},[_c('div',{staticClass:\"nec_container\"},[_c('div',{staticClass:\"nedit_row\"},_vm._l((_vm.sliders),function(item,index){return _c('div',{key:(item, index),staticClass:\"column\",on:{\"click\":function($event){_vm.currentIndex = item.sceneIndex}}},[_c('img',{staticClass:\"demo cursor\",class:{'active' : _vm.currentIndex == item.sceneIndex},staticStyle:{\"width\":\"100%\"},attrs:{\"src\":item.sceneImage,\"alt\":\"The Woods\"}})])}),0),_c('br'),_c('div',{staticClass:\"mySlides\"},[_c('img',{staticClass:\"slide_img\",staticStyle:{\"width\":\"100%\"},attrs:{\"src\":_vm.data.sources[_vm.currentIndex].sceneImage}}),_c('video',{ref:\"video\",staticStyle:{\"position\":\"absolute\",\"opacity\":\"0\"},attrs:{\"preload\":\"none\",\"controls\":\"true\"}}),_c('canvas',{ref:\"canvas\",staticStyle:{\"position\":\"absolute\",\"width\":\"100%\",\"height\":\"655px\",\"left\":\"0px\"},attrs:{\"id\":\"canvas\"}}),_c('div',{staticClass:\"nedit_num_text\",domProps:{\"textContent\":_vm._s('#'+(_vm.currentIndex+1))}})]),_c('a',{staticClass:\"prev\",on:{\"click\":function($event){_vm.currentIndex--}}},[_c('img',{staticStyle:{\"position\":\"relative\"},attrs:{\"src\":\"/assets/image/navigation/prev.png\"}})]),_c('a',{staticClass:\"next\",on:{\"click\":function($event){_vm.currentIndex++}}},[_c('img',{staticStyle:{\"position\":\"relative\"},attrs:{\"src\":\"/assets/image/navigation/next.png\"}})])])])]),_c('div',{staticClass:\"nedit_form\"},[_c('table',[_c('tbody',_vm._l((_vm.data.sources[_vm.currentIndex].source),function(item,index){return _c('tr',{key:(item, index),staticClass:\"tr_image\"},[(item.sourceType == 'T')?_c('th',[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit6.png\"}})]):_vm._e(),(item.sourceType == 'T')?_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(item.uploadData),expression:\"item.uploadData\"}],ref:'t_'+(index+1),refInFor:true,attrs:{\"type\":\"text\",\"placeholder\":\"텍스트를 입력해주세요\",\"name\":'t_'+(index+1),\"maxlength\":item.sourceTextLength[2]},domProps:{\"value\":(item.uploadData)},on:{\"blur\":_vm.patchSource,\"keyup\":function($event){_vm.calcTextLength('t_'+(index+1))},\"input\":function($event){if($event.target.composing){ return; }_vm.$set(item, \"uploadData\", $event.target.value)}}}),_c('button',{staticStyle:{\"background-color\":\"transparent\"},attrs:{\"disabled\":\"\"}},[_c('span',[_c('span',{ref:'c_t_'+(index+1),refInFor:true},[_vm._v(\"0\")]),_vm._v(\" / \"+_vm._s(item.sourceTextLength[2]))])])]):_vm._e(),(item.sourceType == 'I')?_c('th',[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit4.png\"}})]):_vm._e(),(item.sourceType == 'I')?_c('td',[_c('input',{ref:'i_file_'+(index+1),refInFor:true,staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"accept\":\"image/*\",\"name\":'i_file_'+(index+1)},on:{\"change\":function($event){_vm.changeFile($event, 't_i_file_'+(index+1))}}}),_c('input',{ref:'t_i_file_'+(index+1),refInFor:true,attrs:{\"placeholder\":item.uploadData ? item.uploadData : '이미지를 등록해주세요',\"type\":\"text\",\"data-crop-w\":item.sourceWidth,\"data-crop-h\":item.sourceHeight,\"readonly\":\"\",\"disabled\":\"\"}}),(!item.uploadData)?_c('button',{on:{\"click\":function($event){_vm.showFilechoose('i_file_'+(index+1))}}},[_vm._v(\"첨부\")]):_c('button',{staticClass:\"delete_btn\",on:{\"click\":function($event){item.uploadData = ''; _vm.reDrawInputUI('t_i_file_'+(index+1));}}},[_vm._v(\"삭제\")])]):_vm._e(),(item.sourceType == 'V')?_c('th',[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit5.png\"}})]):_vm._e(),(item.sourceType == 'V')?_c('td',[_c('input',{ref:'v_file_'+(index+1),refInFor:true,staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"name\":'v_file_'+(index+1),\"accept\":\"video/mp4\"},on:{\"change\":function($event){_vm.changeFile($event, 't_v_file_'+(index+1))}}}),_c('input',{ref:'t_v_file_'+(index+1),refInFor:true,attrs:{\"type\":\"text\",\"disabled\":\"\",\"placeholder\":item.uploadData ? item.uploadData : '영상을 등록해주세요',\"data-crop-w\":item.sourceWidth,\"data-crop-h\":item.sourceHeight,\"readonly\":\"\"}}),(!item.uploadData)?_c('button',{on:{\"click\":function($event){_vm.showFilechoose('v_file_'+(index+1))}}},[_vm._v(\"첨부\")]):_c('button',{staticClass:\"delete_btn\",on:{\"click\":function($event){item.uploadData = ''; _vm.reDrawInputUI('t_v_file_'+(index+1));}}},[_vm._v(\"삭제\")])]):_vm._e()])}),0)]),_c('div',{staticClass:\"nec_res\"},[_c('ul',[_c('li',[_vm._m(0),_c('span',{staticClass:\"res_text\"},[_vm._v(_vm._s(_vm.inputCountObject.V.active)+\"/\"+_vm._s(_vm.inputCountObject.V.total))])]),_c('li',[_vm._m(1),_c('span',{staticClass:\"res_text\"},[_vm._v(_vm._s(_vm.inputCountObject.I.active)+\"/\"+_vm._s(_vm.inputCountObject.I.total))])]),_c('li',{staticClass:\"lst_icon\"},[_vm._m(2),_c('span',{staticClass:\"res_text\"},[_vm._v(_vm._s(_vm.inputCountObject.T.active)+\"/\"+_vm._s(_vm.inputCountObject.T.total))])])])]),(_vm.percentage != 100)?_c('div',{staticClass:\"nec_btn cursor\",on:{\"click\":function($event){_vm.currentIndex++}}},[_c('a',[_vm._v(\"다음\")])]):_c('div',{staticClass:\"nec_btn cursor\",on:{\"click\":_vm.makingFilm}},[_c('a',[_vm._v(\"영상제작하기\")])])]),_c('crop-modal',{ref:\"cropModal\"})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"res_img\"},[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit2.png\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"res_img\"},[_c('img',{attrs:{\"src\":\"/assets/image/icon/nedit1.png\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"res_img\"},[_c('img',{attrs:{\"src\":\"/assets/image/icon/t_icon.jpeg\"}})])}]\n\nexport { render, staticRenderFns }","<template>\n    <section id=\"content\">\n        <div class=\"nedit_top\">\n            <h1>템플릿 완성도 <strong>{{percentage}} %</strong></h1>\n            <a href=\"#\" style=\"border: none; color:black\">\n                <h1>Scene {{(currentIndex+1)}}/{{data.sources.length}}</h1>\n            </a>\n        </div>\n\n        <div class=\"nedit_content\">\n            <div class=\"nec_slide\">\n                <div class=\"nec_container\">\n                    <div class=\"nedit_row\">\n                        <div class=\"column\" v-for=\"(item, index) in sliders\" @click=\"currentIndex = item.sceneIndex\" v-bind:key=\"(item, index)\">\n                            <img :class=\"{'active' : currentIndex == item.sceneIndex}\" class=\"demo cursor\" :src=\"item.sceneImage\"\n                                 style=\"width:100%\" alt=\"The Woods\">\n                        </div>\n                    </div>\n                    <br>\n\n                    <div class=\"mySlides\">\n                        <img :src=\"data.sources[currentIndex].sceneImage\" style=\"width:100%\" class=\"slide_img\">\n                        <video preload=\"none\" ref=\"video\" controls=\"true\" style=\"position: absolute; opacity: 0\" >\n                        </video>\n                        <canvas id=\"canvas\" ref=\"canvas\"\n                                style=\"position:absolute; width: 100%; height: 655px; left:0px\"></canvas>\n\n                        <div class=\"nedit_num_text\" v-text=\"'#'+(currentIndex+1)\"></div>\n                    </div>\n\n                    <a class=\"prev\" @click=\"currentIndex--\">\n                        <img src=\"/assets/image/navigation/prev.png\" style=\"position: relative;\">\n                    </a>\n                    <a class=\"next\" @click=\"currentIndex++\">\n                        <img src=\"/assets/image/navigation/next.png\" style=\"position: relative;\">\n                    </a>\n                </div>\n            </div>\n        </div>\n\n\n        <div class=\"nedit_form\">\n            <table>\n                <tbody>\n                <tr class=\"tr_image\" v-for=\"(item, index) in data.sources[currentIndex].source\" v-bind:key=\"(item, index)\">\n\n                    <th v-if=\"item.sourceType == 'T'\">\n                        <img src=\"/assets/image/icon/nedit6.png\">\n                    </th>\n                    <td v-if=\"item.sourceType == 'T'\">\n                        <input\n                                type=\"text\"\n                                placeholder=\"텍스트를 입력해주세요\"\n                                v-model=\"item.uploadData\"\n                                @blur=\"patchSource\"\n                                @keyup=\"calcTextLength('t_'+(index+1))\"\n                                :name=\"'t_'+(index+1)\"\n                                :ref=\"'t_'+(index+1)\"\n                                :maxlength=\"item.sourceTextLength[2]\"\n                        >\n                        <button disabled style=\"background-color: transparent;\">\n                            <span><span :ref=\"'c_t_'+(index+1)\">0</span> / {{item.sourceTextLength[2]}}</span>\n                        </button>\n\n                    </td>\n                    <th v-if=\"item.sourceType == 'I'\">\n                        <img src=\"/assets/image/icon/nedit4.png\">\n                    </th>\n                    <td v-if=\"item.sourceType == 'I'\">\n                        <input\n                                type=\"file\"\n                                accept=\"image/*\"\n                                @change=\"changeFile($event, 't_i_file_'+(index+1))\"\n                                :name=\"'i_file_'+(index+1)\"\n                                :ref=\"'i_file_'+(index+1)\"\n                                style=\"display:none\">\n                        <input\n                                :placeholder=\"item.uploadData ? item.uploadData : '이미지를 등록해주세요'\"\n                                type=\"text\"\n                                :data-crop-w=\"item.sourceWidth\"\n                                :data-crop-h=\"item.sourceHeight\"\n                                :ref=\"'t_i_file_'+(index+1)\" readonly disabled>\n                        <button v-if=\"!item.uploadData\" @click=\"showFilechoose('i_file_'+(index+1))\">첨부</button>\n                        <button class=\"delete_btn\" v-else @click=\"item.uploadData = ''; reDrawInputUI('t_i_file_'+(index+1));\">삭제</button>\n                    </td>\n                    <th v-if=\"item.sourceType == 'V'\">\n                        <img src=\"/assets/image/icon/nedit5.png\">\n                    </th>\n                    <td v-if=\"item.sourceType == 'V'\">\n                        <input\n                                @change=\"changeFile($event, 't_v_file_'+(index+1))\"\n                                type=\"file\"\n                                :name=\"'v_file_'+(index+1)\"\n                                :ref=\"'v_file_'+(index+1)\"\n                                style=\"display:none\"\n                                accept=\"video/mp4\">\n                        <input type=\"text\"\n                               disabled\n                               :placeholder=\"item.uploadData ? item.uploadData : '영상을 등록해주세요'\"\n                               :data-crop-w=\"item.sourceWidth\"\n                               :data-crop-h=\"item.sourceHeight\"\n                               :ref=\"'t_v_file_'+(index+1)\" readonly>\n                        <button v-if=\"!item.uploadData\" @click=\"showFilechoose('v_file_'+(index+1))\">첨부</button>\n                        <button class=\"delete_btn\" v-else @click=\"item.uploadData = ''; reDrawInputUI('t_v_file_'+(index+1));\">삭제</button>\n                    </td>\n                </tr>\n                </tbody>\n            </table>\n\n            <div class=\"nec_res\">\n                <ul>\n                    <li>\n                        <div class=\"res_img\"><img src=\"/assets/image/icon/nedit2.png\"></div>\n                        <span class=\"res_text\">{{inputCountObject.V.active}}/{{inputCountObject.V.total}}</span></li>\n                    <li>\n                        <div class=\"res_img\"><img src=\"/assets/image/icon/nedit1.png\"></div>\n                        <span class=\"res_text\">{{inputCountObject.I.active}}/{{inputCountObject.I.total}}</span></li>\n                    <li class=\"lst_icon\">\n                        <div class=\"res_img\"><img src=\"/assets/image/icon/t_icon.jpeg\"></div>\n                        <span class=\"res_text\">{{inputCountObject.T.active}}/{{inputCountObject.T.total}}</span></li>\n                </ul>\n            </div>\n\n            <div v-if=\"percentage != 100\" @click=\"currentIndex++\" class=\"nec_btn cursor\">\n                <a>다음</a>\n            </div>\n            <div v-else @click=\"makingFilm\" class=\"nec_btn cursor\">\n                <a>영상제작하기</a>\n            </div>\n\n\n        </div>\n        <crop-modal ref=\"cropModal\"></crop-modal>\n    </section>\n\n</template>\n<script>\n    import CropModal from '@/components/modals/ImageCropModal'\n    export default {\n\n        data(){\n            return {\n                URL : window.URL || window.webkitURL,\n                inputCountObject: {\n                    T: {active: 0, total: 0},\n                    I: {active: 0, total: 0},\n                    V: {active: 0, total: 0}\n                },\n                percentage: 0,\n                id: this.$route.params.id,\n                createdSubtemplateId: '',\n                data: {},\n                itemTextLengths: [],\n                currentIndex: 0,\n            }\n        },\n        components: {\n            CropModal\n        },\n        mounted(){\n            this.$store.commit('title', '템플릿 편집실')\n            if (this.createSubtemplate()) {\n                this.fetchData()\n            }\n        },\n        watch: {\n            currentIndex(v){\n                this.data.sources[this.currentIndex].source.forEach((obj,index)=>{\n                    if ( this.$refs[`t_i_file_${index+1}`] ) {\n                        this.$refs[`t_i_file_${index+1}`][0].value = ''\n                    }\n                    if ( this.$refs[`t_v_file_${index+1}`] ) {\n                        this.$refs[`t_v_file_${index+1}`][0].value = ''\n                    }\n                })\n                if (v < 0) {\n                    this.currentIndex = this.data.sources.length - 1\n                }\n                if ((this.data.sources.length - 1) < v) {\n                    this.currentIndex = 0\n                }\n            }\n        },\n        computed: {\n            sliders(){\n                let totalPages = this.data.sources.length / 6\n                if ( totalPages <= 1 ) {\n                    return this.data.sources\n                }\n                totalPages = Math.ceil(totalPages)\n                let offset = Math.floor(this.currentIndex / 6) * 6\n                return this.data.sources.slice( offset, offset+6)\n            }\n        },\n        methods: {\n            reDrawInputUI(ref){\n                this.$refs[ref][0]['value'] = ''\n                this.$refs[ref.replace('t_', '')][0]['value'] = ''\n                this.patchSource()\n            },\n            calcTextLength(ref){\n                this.$refs[`c_${ref}`][0].innerHTML = this.$refs[`${ref}`][0].value.length\n            },\n            async createSubtemplate(){\n                let {data} = await this.$apiService.createSubTemplate(this.id)\n                this.createdSubtemplateId = data._id\n            },\n            async fetchData() {\n                let {data} = await this.$apiService.fetchTemplateById(this.id)\n                this.data = data\n                this.patchSource()\n            },\n            cancelUploadFile(ref){\n                this.$refs[ref][0].value = ''\n                this.$refs[ref.replace('t_', '')][0]['value'] = ''\n            },\n            showFilechoose(ref) {\n                this.$refs[ref][0].click()\n            },\n            async changeFile(event, ref) {\n                if (event.target.files.length == 0) return\n                this.$refs[ref][0].value = event.target.files[0].name\n                const uploadFile = event.target.files[0]\n                const cropwidth = this.$refs[ref][0].getAttribute('data-crop-w')\n                const cropheight = this.$refs[ref][0].getAttribute('data-crop-h')\n                if (uploadFile.type.includes('video')) {\n                    let videoNode = document.querySelector(\"video\")\n                    videoNode.canPlayType(uploadFile.type)\n                    videoNode.src = this.URL.createObjectURL(uploadFile)\n                    videoNode.onloadeddata = ()=>{\n                        let time = parseInt(videoNode.duration)\n                        videoNode.currentTime = Math.floor(Math.random()*time)+1\n                        let w = videoNode.videoWidth;\n                        let h = videoNode.videoHeight;\n                        let canvas = document.createElement('canvas')\n                        let ctx = canvas.getContext('2d');\n                        canvas.width  = w;\n                        canvas.height = h;\n                        ctx.drawImage(videoNode, 0, 0, w, h)\n                        this.$refs.cropModal.open(canvas.toDataURL(), uploadFile, this, uploadFile.type, ref, cropwidth, cropheight)\n                    }\n                } else {\n                    this.getBase64(uploadFile).then(data => {\n                        this.$refs.cropModal.open(data, null, this, uploadFile.type, ref, cropwidth, cropheight)\n                    })\n                }\n            },\n            insertCroppedData(ref, url){\n                //console.log('insertCroppedData')\n                let sourceIndex = parseInt(ref.substr(ref.length - 1)) - 1\n                this.data.sources[this.currentIndex].source[sourceIndex]['uploadData'] = url\n                this.$forceUpdate()\n//                const sourceArea = this.data.sources[this.currentIndex].source[sourceIndex].sourceArea\n//                const x = sourceArea[0][0]\n//                const y = sourceArea[0][1]\n//                this.drawSourceArea(x, y, 100, 100)\n            },\n            drawSourceArea(ref){\n                //const canvas = this.$refs['canvas']\n                //const ctx = canvas.getContext('2d')\n                //ctx.globalAlpha = 0.8\n\n                //ctx.strokeStyle = 'white'\n                //ctx.strokeRect(x / 10, y / 10, w, h)\n\n                //ctx.globalAlpha = 0.2\n                //ctx.fillStyle = 'white'\n                //ctx.fillRect(x / 10, y / 10, w, h)\n            },\n            async patchSource(){\n                let index = 0\n                const requestBody = []\n                for (let item of this.data.sources)\n                    requestBody[index++] = []\n                index = 0\n\n                this.inputCountObject = {\n                    T: {active: 0, total: 0},\n                    I: {active: 0, total: 0},\n                    V: {active: 0, total: 0}\n                }\n                for (let sourceArray of this.data.sources) {\n                    for (let sourceObject of sourceArray.source) {\n                        this.inputCountObject[sourceObject.sourceType].total++\n                        if (sourceObject.uploadData) {\n                            this.inputCountObject[sourceObject.sourceType].active++\n                            requestBody[index].push(sourceObject.uploadData)\n                        } else {\n                            requestBody[index].push(null)\n                        }\n                    }\n                    index++;\n                }\n                if (this.createdSubtemplateId) {\n                    const {data} = await this.$apiService.patchSubTemplate(this.createdSubtemplateId, requestBody)\n                    this.percentage = data.workProgress\n                }\n            },\n            async makingFilm(){\n                try {\n                    if (this.percentage != 100) return\n                    const {data} = await this.$apiService.makingFilm(this.createdSubtemplateId)\n                    if (data.status == 1)\n                        alert('렌더링이 시작되었습니다! 완료되면 바로 알려드릴께요')\n                    this.$router.replace('/')\n                } catch (e) {\n                    alert('렌더링 요청 중 오류가 발생하였습니다. 잠시 후 다시 요청해주세요.')\n                }\n            },\n            getBase64(file) {\n                return new Promise((resolve, reject) => {\n                    const reader = new FileReader();\n                    reader.readAsDataURL(file);\n                    reader.onload = () => resolve(reader.result);\n                    reader.onerror = error => reject(error);\n                });\n            }\n        }\n    }\n</script>\n<style scoped>\n    .delete_btn{\n        border: 2px solid #8D6F4A !important;\n        color:#8D6F4A !important;\n        background-color: transparent !important;;\n    }\n</style>\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!./Edit.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!./Edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Edit.vue?vue&type=template&id=6a5a8a0e&scoped=true&\"\nimport script from \"./Edit.vue?vue&type=script&lang=js&\"\nexport * from \"./Edit.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Edit.vue?vue&type=style&index=0&id=6a5a8a0e&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  \"6a5a8a0e\",\n  null\n  \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport Router from \"vue-router\";\nimport Home from \"./views/Home\";\nimport Detail from \"./views/Detail\";\nimport Category from \"./views/Category\";\nimport Template from \"./views/Template\";\nimport Confirm from \"./views/Confirm\";\nimport SubtemplateEdit from \"./views/SubTemplateEdit\";\nimport Confirmed from \"./views/Confirmed\";\nimport Edit from \"./views/Edit\";\n//import ImageCrop from \"./components/modals/ImageCropModal.vue\";\n\nVue.use(Router)\n\nexport default new Router({\n  mode: 'history',\n  base: process.env.BASE_URL,\n  routes: [\n    {\n      path: '/',\n      name: 'home',\n      component: Home\n    },\n    {\n      path: '/detail/:id',\n      name: 'detail',\n      component: Detail\n    },\n    {\n      path: '/confirmation/:id',\n      name: 'confirm',\n      component: Confirm\n    },\n    {\n      path: '/thanks/:id',\n      name: 'thanks',\n      component: Confirmed\n    },\n    {\n      path: '/edits/:id',\n      name: 'edit',\n      component: Edit\n    },\n    {\n      path: '/sub/edits/:id',\n      name: 'subEdit',\n      component: SubtemplateEdit\n    },\n    {\n      path: '/categories/:id',\n      name: 'category',\n      component: Category\n    },\n    {\n      path: '/templates',\n      name: 'template',\n      component: Template\n    },\n\n  ]\n})\n","/**\n * Created by hucloud on 07/08/2019.\n */\nimport axios from 'axios'\n\nconst http = async(url, param, method)=> {\n    const accessToken = localStorage.getItem('TKN')\n    axios.defaults.headers.common['Authorization'] = `Bearer ${accessToken}`\n\n    if (process.env.NODE_ENV == 'development') {\n        console.log('========[Start][' + method + ']', url, '=========')\n        console.log(\"Parameter :: \", param)\n    }\n\n    let option = {\n        url: url,\n        method: method,\n        data: param,\n        headers: {\n            // \"Authorization\": auth.getToken()\n        }\n    }\n    try{\n        return await axios(option)\n    }catch (e){\n        console.error('HttpRequest Exception')\n        console.error(e)\n        return e\n    }\n\n}\n\nexport default http;\n","\nimport http from '../modules/http'\n\n\nexport default {\n    async fetchHomeData(){\n        return await http('https://api.vplate.io/template/', {}, 'get')\n    },\n    async fetchTemplateById(id){\n        return await http(`https://api.vplate.io/template/${id}/all/`, {}, 'get')\n    },\n    async fetchSubtemplateByMe(){\n        return await http('https://api.vplate.io/subtemplate/', {}, 'get')\n    },\n    async createSubTemplate(templateId){\n        return await http('https://api.vplate.io/subtemplate/', {templateId: templateId}, 'post')\n    },\n    async fetchSubtemplateById(subtemplateId){\n        return await http(`https://api.vplate.io/subtemplate/${subtemplateId}`, {}, 'get')\n    },\n    async patchSubTemplate(subtemplateId, data){\n        return await http(`https://api.vplate.io/subtemplate/${subtemplateId}/sources`, data, 'patch')\n    },\n    async uploadImage(data){\n        return await http(`https://file.vplate.io/upload/image`, data, 'post')\n    },\n    async uploadVideo(data){\n        return await http(`https://file.vplate.io/upload/video/withCrop`, data, 'post')\n    },\n    async makingFilm(subtemplateId){\n        return await http(`https://api.vplate.io/subtemplate/${subtemplateId}/status`, {status:1}, 'patch')\n    },\n    async modifyFilm(subtemplateId){\n        return await http(`https://api.vplate.io/subtemplate/${subtemplateId}/status`, {status:0}, 'patch')\n    },\n    async confirmFilm(subtemplateId){\n        return await http(`https://api.vplate.io/subtemplate/${subtemplateId}/status`, {status:4}, 'patch')\n    }\n}\n\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport apiService from '@/services/api.service'\nVue.use(Vuex)\n\nconst HOME_DATA = 'homeData';\nconst SUB_HEADER_TITLE = 'title';\n\nexport const store = new Vuex.Store({\n    state: {\n        'homeData':[],\n        'title':''\n    },\n    mutations: {\n        homeData(state, payload) {\n            this.state[HOME_DATA] = payload\n        },\n        title(state, payload){\n            this.state[SUB_HEADER_TITLE] = payload\n        }\n    },\n    actions: {\n        async homeData(context){\n            try {\n                const {data} = await apiService.fetchHomeData()\n                context.commit(HOME_DATA, data)\n            } catch (e) {\n                console.log(e)\n                console.log('fetchDataError')\n            }\n        }\n    },\n    getters: {\n        homeData(state){\n            return state.homeData\n        }\n    }\n})\nexport default store","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport axios from \"axios\";\nimport api from \"@/services/api.service\";\nimport {store} from '@/stores/main.store'\nVue.config.productionTip = false\nVue.prototype.$apiService = api\naxios.defaults.headers.post['Content-Type'] = 'application/json; charset=utf-8'\n\n\nconst vueInstance = new Vue({\n  router,\n  store,\n  render: h => h(App)\n}).$mount('#app')\n\n// 초기 목록 데이터 가져옴\nvueInstance.$store.dispatch('homeData')\n\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.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!./SubTemplateEdit.vue?vue&type=style&index=0&id=655594fb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.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!./SubTemplateEdit.vue?vue&type=style&index=0&id=655594fb&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.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!./Category.vue?vue&type=style&index=0&id=5011d83a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.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!./Category.vue?vue&type=style&index=0&id=5011d83a&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.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!./Edit.vue?vue&type=style&index=0&id=6a5a8a0e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.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!./Edit.vue?vue&type=style&index=0&id=6a5a8a0e&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.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!./header_sub.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.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!./header_sub.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.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!./Template.vue?vue&type=style&index=0&id=4dc09658&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.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!./Template.vue?vue&type=style&index=0&id=4dc09658&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.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!./ImageCropModal.vue?vue&type=style&index=1&id=7b9e9e80&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.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!./ImageCropModal.vue?vue&type=style&index=1&id=7b9e9e80&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.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!./ImageCropModal.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.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!./ImageCropModal.vue?vue&type=style&index=0&lang=css&\""],"sourceRoot":""}