{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?4199","webpack:///./src/App.vue?6b6a","webpack:///./src/App.vue","webpack:///./src/router.js","webpack:///./src/common/math_util.js","webpack:///./src/store/perfect.js","webpack:///./src/store/common.js","webpack:///./src/store/data_structure.js","webpack:///./src/store/modules/h5book.js","webpack:///./src/store/modules/editor.js","webpack:///./src/store/modules/book-info.js","webpack:///./src/store/index.js","webpack:///./src/api.js","webpack:///./src/eventhub.js","webpack:///./src/plugins/vtip/main.vue?a347","webpack:///./src/plugins/vtip/util.js","webpack:///src/plugins/vtip/main.vue","webpack:///./src/plugins/vtip/main.vue?d1e5","webpack:///./src/plugins/vtip/main.vue","webpack:///./src/plugins/vtip/tip.js","webpack:///./src/plugins/vtip/directive.js","webpack:///./src/plugins/vtip/index.js","webpack:///./src/main.js","webpack:///./src/store/mutation-types.js","webpack:///./src/http.js","webpack:///./src/common/platform_util.js"],"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","installedCssChunks","app","jsonpScriptSrc","p","about","editor~frontend","editor","frontend","chunk-c86fd492","chunk-453fe4db","chunk-407a8c9f","chunk-735c121f","chunk-0a2ee3de","chunk-13f53731","chunk-9d5648a2","chunk-252c26e5","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","clearTimeout","chunk","errorType","realSrc","error","undefined","setTimeout","all","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_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_lib_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_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__","_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_lib_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_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default","Appvue_type_template_id_cabf09d6_render","_vm","this","_h","$createElement","_c","_self","staticRenderFns","component","componentNormalizer","options","__file","App","H5BookCropImage","H5BookTurnJs","H5BookEditor","Vue","use","Router","router","routes","path","math_util","deg2arc","angle","Math","PI","arc2deg","GenNonDuplicateID","randomLength","Number","random","toString","substr","Date","now","generateId","ceil","perfectPageNo","pageJson","index","page","doublePage","num","perfectJson","elements","forEach","ele","perfectComp","keys","parseInt","properties","textAlign","isDownload","VusObjectAssign","key1","set","PageGetters","getPageIndexById","pageId","getPageById","find","ElementGetters","getElementIndexById","eleId","id","getEleById","data_structure","img","css","link","width","height","left","top","backgroundColor","goto","text","download","video","richText","html","state","windowWidth","windowHeight","isPhone","zoom","getters","pageCount","getPageByIndex","pageIndex","rootState","rootGetters","getEleByIndex","eleindex","pageRatio","fontSizeRatio","pageSize","padded","Platform","isMobile","round","pageWidth","pageHeight","pageMode","bookWidth","actions","ADD_NEW_LINK","_ref","commit","mutations","SET_IS_PHONE","isphone","_mutations","UPDATE_ELE_CSS","payload","curPage","UPDATE_ELE_PROPS","props","UPDATE_ELE_VALUE","newLink","JSON","parse","stringify","DATA_STRUCTURE","MathUtil","ADD_NEW_RICHTEXT","newRichText","ADD_NEW_BACKGROUND","newImg","ADD_NEW_VIDEO","newVideo","ADD_NEW_BLANK_PAGE","newPage","pos","ADD_NEW_SINGLE_PAGE","newEle1","ADD_NEW_DOUBLE_PAGE","newPage2","newEle2","DELETE_PAGE","DELETE_ELE","COPY_ELE","copy","h5book","isInEditMode","curPageId","selectedEleIds","curSelectedEle","getIsInEditMode","editorZoom","selectedEles","filter","indexOf","SET_IS_IN_EDIT_MODE","is","editor_mutations","SET_CURPAGE_ID","SET_SELECTED_ELEMENT_IDS","eleIds","SET_EDITOR_ZOOM","bookInfo","book_info","Vuex","debug","process","store","Store","strict","$api","eventhub","$eventHub","log","mainvue_type_template_id_3d68ec60_render","attrs","directives","rawName","expression","staticClass","class","boxClass","style","on","mouseenter","showTip","mouseleave","$event","hiddenTip","placement","_v","_s","title","_e","content","customComponent","_g","_b","hidden-tip","update-tip","updateTip","customProps","customListeners","mainvue_type_template_id_3d68ec60_staticRenderFns","OVERFLOW_PROPERTYS","SCROLL_TYPES","ROOT","body","VERTICAL","HORIZONTAL","DEFAULT_PLACEMENT_QUEUE","MAX","getBoxMargin","el","parent","eBox","getBoundingClientRect","pBox","vw","vh","right","bottom","midX","midY","vertex","tl","x","y","tr","br","bl","margin","size","start","mid","end","getBestPlacement","queue","sort","a","b","weight","checkScrollable","element","getComputedStyle","some","getScrollContainer","parentNode","computeCoordinateBaseMid","placementInfo","offset","tw","th","computeCoordinateBaseEdge","dHor","dVer","ew","eh","nearRight","nearBottom","arrowsOffset","computePlacementInfo","ref","container","limitQueue","placementQueue","_getBoxMargin","_target$getBoundingCl","dw","dh","queueLen","processedQueue","map","placementItem","verSingleBiasCheck","verFullBiasCheck","horSingleBiasCheck","horFullBiasCheck","mod","assign","computeArrowPos","posMap","top-start","top-mid","top-end","bottom-start","bottom-mid","bottom-end","left-start","left-mid","left-end","right-start","right-mid","right-end","debounce","fn","delay","timer","context","args","arguments","supportsPassive","addEventListener","passive","mainvue_type_script_lang_js_","String","default","Function","placements","Array","duration","transition","Boolean","arrowsSize","zIndex","theme","customClass","containerNode","targetParentNode","visibleTimer","visible","arrowsPos","computed","arrowBox","borderWidth","concat","boxStyle","tsClass","contentHeight","methods","immedia","setVisible","setContainerNode","asynSetCoordinate","$el","oldNode","newNode","position","removeEventListener","scrollHandler","setCoordinate","coordinate","setArrowsPos","scrollLeft","scrollTop","transform","$nextTick","v","_this","clearScrollEvent","removeParentNode","removeChild","destroy","$destroy","vtip_mainvue_type_script_lang_js_","main_component","main","VtipConstructor","extend","defaultOptions","prop","dv","vtipInstance","tip","propsData","$mount","clearEvent","_tipHandler","_tipMouseleaveHandler","_tipOptions","_tipInstance","directive","install","directiveName","allPlacements","binding","_binding$modifiers","modifiers","click","dark","limitPlacementQueue","mix","tipOptions","es6_typeof","Tip","update","oldValue","unbind","instance","vtip","VueLazyload","Vtip","VueTippy","axios","config","productionTip","$tip","render","h","__webpack_exports__","axios__WEBPACK_IMPORTED_MODULE_0__","axios__WEBPACK_IMPORTED_MODULE_0___default","qs__WEBPACK_IMPORTED_MODULE_1__","qs__WEBPACK_IMPORTED_MODULE_1___default","defaults","withCredentials","$http","interceptors","response","transformRequest","FormData","qs","test","navigator","userAgent","screen","isWeixin","isAndroidPhone","isAndroid","appVersion","UaCheck","isIos","isPc","isIOS","isSafari","getAndroidVersion","ua","parseFloat","mobilecheck","tabletCheck","iphoneCheck"],"mappings":"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","file":"js/app.b8f0513f.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 CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\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// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"about\":\"about\",\"editor~frontend\":\"editor~frontend\",\"editor\":\"editor\",\"frontend\":\"frontend\"}[chunkId]||chunkId) + \".\" + {\"about\":\"7bcda629\",\"chunk-c86fd492\":\"328112e6\",\"chunk-453fe4db\":\"df7a632e\",\"editor~frontend\":\"00fdbe75\",\"editor\":\"386e5975\",\"frontend\":\"13b88d2e\",\"chunk-407a8c9f\":\"0cb097e1\",\"chunk-735c121f\":\"57a91819\",\"chunk-0a2ee3de\":\"f2f4a84e\",\"chunk-13f53731\":\"be215864\",\"chunk-9d5648a2\":\"0516f781\",\"chunk-252c26e5\":\"af1b0556\"}[chunkId] + \".js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-c86fd492\":1,\"editor~frontend\":1,\"editor\":1,\"frontend\":1,\"chunk-407a8c9f\":1,\"chunk-735c121f\":1,\"chunk-0a2ee3de\":1,\"chunk-13f53731\":1,\"chunk-9d5648a2\":1,\"chunk-252c26e5\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"about\":\"about\",\"editor~frontend\":\"editor~frontend\",\"editor\":\"editor\",\"frontend\":\"frontend\"}[chunkId]||chunkId) + \".\" + {\"about\":\"31d6cfe0\",\"chunk-c86fd492\":\"671150c2\",\"chunk-453fe4db\":\"31d6cfe0\",\"editor~frontend\":\"218bfa7d\",\"editor\":\"ebcdc0d3\",\"frontend\":\"00a00bd3\",\"chunk-407a8c9f\":\"88a70305\",\"chunk-735c121f\":\"1edd7294\",\"chunk-0a2ee3de\":\"9231fdfe\",\"chunk-13f53731\":\"17d86c88\",\"chunk-9d5648a2\":\"991f45ed\",\"chunk-252c26e5\":\"c2002c36\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.request = request;\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\thead.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\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","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/lib/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!./App.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/lib/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!./App.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=cabf09d6&\"\nvar script = {}\nimport style0 from \"./App.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\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\n// import Home from './views/Home.vue'\r\n\r\nconst H5BookCropImage = () => import('./editor/components/H5BookCropImage');\r\nconst H5BookTurnJs = () => import(/* webpackChunkName: \"frontend\" */ './views/H5BookTurnJs.vue');\r\nconst H5BookEditor = () => import(/* webpackChunkName: \"editor\" */ './editor/H5BookEditor.vue');\r\n\r\nVue.use(Router)\r\n\r\nexport default new Router({\r\n routes: [\r\n {\r\n path: '/',\r\n name: 'H5BookTurnJs',\r\n component: H5BookTurnJs\r\n },\r\n {\r\n path: '/edit',\r\n name: 'H5BookEditor',\r\n component: H5BookEditor\r\n },\r\n {\r\n path: '/crop',\r\n name: 'H5BookCropImage',\r\n component: H5BookCropImage\r\n },\r\n {\r\n path: '/about',\r\n name: 'about',\r\n // route level code-splitting\r\n // this generates a separate chunk (about.[hash].js) for this route\r\n // which is lazy-loaded when the route is visited.\r\n component: () => import(/* webpackChunkName: \"about\" */ './views/About.vue')\r\n }\r\n ]\r\n})\r\n","'use strict';\r\n\r\nexport default {\r\n deg2arc: function (angle) {\r\n return angle / 180 * Math.PI;\r\n },\r\n arc2deg: function (angle) {\r\n return 180 * angle / Math.PI;\r\n },\r\n /**\r\n * 生成一个用不重复的ID\r\n * @return {string}\r\n */\r\n GenNonDuplicateID(randomLength) {\r\n return Number(Math.random().toString().substr(3, randomLength) + Date.now()).toString(36)\r\n },\r\n /** 易企秀用的id */\r\n generateId() {\r\n return Math.ceil(1e10 * Math.random());\r\n }\r\n};","export function perfectPageNo(pageJson) {\r\n\r\n let index = 1;\r\n for (let i = 0; i < pageJson.length; i++) {\r\n let page = pageJson[i];\r\n if (page.doublePage) {\r\n page.num = index + '-' + (index + 1);\r\n index += 2;\r\n } else {\r\n page.num = index + '';\r\n index++;\r\n }\r\n }\r\n\r\n}\r\n\r\nexport function perfectJson(pageJson) {\r\n for (let i = 0; i < pageJson.length; i++) {\r\n let page = pageJson[i];\r\n page.elements.forEach(ele => {\r\n\r\n perfectComp(ele);\r\n\r\n let keys = ['width', 'height', 'left', 'top'];\r\n keys.forEach(key => {\r\n if (typeof ele[key] === \"string\") {\r\n ele[key] = parseInt(ele[key]);\r\n }\r\n });\r\n\r\n });\r\n }\r\n}\r\n\r\nexport function perfectComp(ele) {\r\n if (ele.type === 2) {\r\n if (!ele.properties.textAlign) {\r\n ele.properties.textAlign = 'center';\r\n }\r\n if (!ele.properties.isDownload) {\r\n ele.properties.isDownload = false;\r\n }\r\n }\r\n}","import Vue from 'vue'\r\n\r\nexport function VusObjectAssign(target, data) {\r\n // Vue深入响应式原理\r\n // https://cn.vuejs.org/v2/guide/reactivity.html\r\n for (let key1 in data) {\r\n if (data.hasOwnProperty(key1)) {\r\n Vue.set(target, key1, data[key1]);\r\n }\r\n }\r\n}\r\n\r\nexport const PageGetters = {\r\n getPageIndexById: function (pageJson, pageId) {\r\n // let pageJson = state.h5book.pageJson;\r\n if (pageJson) {\r\n for (let i = 0; i < pageJson.length; i++) {\r\n let page = pageJson[i];\r\n if (page.pageId === pageId) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n },\r\n getPageById: function (pageJson, pageId) {\r\n // let pageJson = state.h5book.pageJson;\r\n if (pageJson) {\r\n return pageJson.find(page => {\r\n return page.pageId === pageId;\r\n });\r\n }\r\n return null;\r\n }\r\n};\r\n\r\nexport const ElementGetters = {\r\n getElementIndexById: function (elements, eleId) {\r\n if (elements) {\r\n for (let i = 0; i < elements.length; i++) {\r\n let ele = elements[i];\r\n if (ele.id === eleId) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n },\r\n getEleById: function (elements, eleId) {\r\n if (elements) {\r\n return elements.find(ele => {\r\n return ele.id === eleId;\r\n });\r\n }\r\n return null;\r\n }\r\n}\r\n","export default {\r\n page: {\r\n pageId: -1,\r\n elements: []\r\n },\r\n img: {\r\n id: -1,\r\n type: 1,\r\n doublePage: \"\",\r\n css: {},\r\n properties: {\r\n src: \"./201809/0-完美9月刊封面.jpg\"\r\n }\r\n },\r\n link: {\r\n id: -1,\r\n type: 2,\r\n css: {\r\n width: \"30%\",\r\n height: \"10%\",\r\n left: \"30%\",\r\n top: \"45%\",\r\n backgroundColor: \"rgb(158,78,178)\"\r\n },\r\n properties: {\r\n type: 'page',\r\n target: '_blank',\r\n goto: 1,\r\n text: '',\r\n isDownload: false,\r\n download: '',\r\n textAlign: 'center',\r\n href: \"http://www.perfect99.com/WebPage/default.aspx\"\r\n }\r\n },\r\n video: {\r\n id: -1,\r\n type: 4,\r\n css: {\r\n width: \"80%\",\r\n height: \"40%\",\r\n left: \"10%\",\r\n top: \"30%\",\r\n },\r\n properties: {\r\n src: \"./201809/2015tgbcz.mp4\"\r\n }\r\n },\r\n richText: {\r\n id: -1,\r\n type: 3,\r\n css: {\r\n width: \"60%\",\r\n height: \"20%\",\r\n left: \"20%\",\r\n top: \"40%\",\r\n },\r\n properties: {\r\n html: '
双击编辑文本内容
',\r\n }\r\n }\r\n};","import Platform from '../../common/platform_util'\r\nimport MathUtil from '../../common/math_util';\r\nimport {perfectPageNo, perfectJson} from '../perfect';\r\nimport {PageGetters, ElementGetters, VusObjectAssign} from '../common'\r\nimport {\r\n SET_IS_PHONE,\r\n UPDATE_ELE_CSS,\r\n UPDATE_ELE_PROPS,\r\n UPDATE_ELE_VALUE,\r\n ADD_NEW_LINK,\r\n ADD_NEW_RICHTEXT,\r\n ADD_NEW_BACKGROUND,\r\n ADD_NEW_VIDEO,\r\n ADD_NEW_BLANK_PAGE,\r\n ADD_NEW_SINGLE_PAGE,\r\n ADD_NEW_DOUBLE_PAGE,\r\n DELETE_PAGE,\r\n DELETE_ELE,\r\n COPY_ELE\r\n} from \"../mutation-types\";\r\nimport DATA_STRUCTURE from '../data_structure';\r\n\r\nconst state = {\r\n pageJson: [],\r\n windowWidth: 0,\r\n windowHeight: 0,\r\n isPhone: false, // 是否手机\r\n zoom: 1 // 缩放倍数\r\n};\r\n\r\n// getters\r\nconst getters = {\r\n isPhone: state => state.isPhone,\r\n\r\n pageJson: state => state.pageJson,\r\n pageCount: state => state.pageJson.length,\r\n /*allPages(state) {\r\n let newArr = [];\r\n state.pageJson.forEach(page => {\r\n if (page.doublePage) {\r\n let newPage = JSON.parse(JSON.stringify(page));\r\n\r\n // left\r\n page.pageId = page.pageId + '_left';\r\n page.pagePos = 'left';\r\n newArr.push(page);\r\n // right\r\n newPage.pageId = newPage.pageId + '_right';\r\n newPage.pagePos = 'right';\r\n newArr.push(newPage);\r\n } else {\r\n newArr.push(page);\r\n }\r\n });\r\n\r\n // todo 第一页是双页的情况处理\r\n let first = newArr.shift();\r\n if (first) {\r\n newArr.push(first);\r\n }\r\n\r\n return newArr;\r\n },*/\r\n getPageByIndex(state) {\r\n return function (pageIndex) {\r\n return state.pageJson[pageIndex];\r\n }\r\n },\r\n getPageIndexById(state, getters, rootState, rootGetters) {\r\n return function (pageId) {\r\n return PageGetters.getPageIndexById(state.pageJson, pageId)\r\n };\r\n },\r\n getPageById(state) {\r\n return function (pageId) {\r\n return PageGetters.getPageById(state.pageJson, pageId)\r\n }\r\n },\r\n\r\n getEleByIndex(state) {\r\n return function (pageId, eleindex) {\r\n let page = PageGetters.getPageById(state.pageJson, pageId);\r\n return page.elements[eleindex];\r\n };\r\n },\r\n getElementIndexById(state, getters, rootState, rootGetters) {\r\n return function (pageId, eleId) {\r\n let page = PageGetters.getPageById(state.pageJson, pageId);\r\n return ElementGetters.getElementIndexById(page.elements, eleId);\r\n };\r\n },\r\n getEleById(state) {\r\n return function (pageId, eleId) {\r\n let page = PageGetters.getPageById(state.pageJson, pageId);\r\n return ElementGetters.getEleById(page.elements, eleId)\r\n }\r\n },\r\n\r\n windowWidth: state => state.windowWidth,\r\n windowHeight: state => state.windowHeight,\r\n pageRatio() {\r\n // return 663 / 468;\r\n return 1275 / 1121;\r\n },\r\n fontSizeRatio() {\r\n return 16 / 468;\r\n },\r\n pageSize(state, getters) {\r\n\r\n let width = 0;\r\n let height = 0;\r\n let windowWidth = state.windowWidth;\r\n let padded = state.windowHeight * 0.9;\r\n\r\n if (Platform.isMobile()) { // 手机单页\r\n\r\n width = windowWidth;\r\n\r\n } else {\r\n\r\n if (windowWidth > 768) {// 电脑双页\r\n\r\n width = windowWidth * 0.4;\r\n\r\n } else { // 电脑单页\r\n if (windowWidth > 500) {\r\n width = 468// 固定宽度468\r\n } else {\r\n width = windowWidth * 0.8;\r\n }\r\n }\r\n\r\n }\r\n\r\n height = width * getters.pageRatio;\r\n if (height > padded) {\r\n height = padded;\r\n width = height / getters.pageRatio;\r\n }\r\n\r\n return {\r\n width: Math.round(width * state.zoom),\r\n height: Math.round(height * state.zoom)\r\n }\r\n },\r\n pageWidth(state, getters) {\r\n return getters.pageSize.width\r\n },\r\n pageHeight(state, getters) {\r\n // return getters.pageWidth / 468 * 663\r\n return getters.pageSize.height;\r\n },\r\n zoom: state => state.zoom,\r\n pageMode(state, getters) {\r\n if (getters.isPhone) {\r\n\r\n // 手机版特殊对待\r\n if (state.windowWidth > state.windowHeight) {\r\n return 'double';\r\n\r\n } else {\r\n return 'single';\r\n\r\n }\r\n\r\n }\r\n\r\n // 电脑板配置\r\n if (state.windowWidth > 768) {\r\n return 'double';\r\n // 显示双页\r\n } else {\r\n return 'single';\r\n // 显示单页\r\n }\r\n },\r\n bookWidth(state, getters) {\r\n if (getters.pageMode === 'double') {\r\n return 2 * getters.pageWidth;\r\n }\r\n return getters.pageWidth;\r\n }\r\n};\r\n\r\n// actions\r\nconst actions = {\r\n [ADD_NEW_LINK]({commit,}) {\r\n\r\n }\r\n};\r\n\r\n// mutations\r\nconst mutations = {\r\n [SET_IS_PHONE](state, isphone) {\r\n state.isPhone = isphone;\r\n },\r\n setPageJson(state, pageJson) {\r\n perfectPageNo(pageJson);\r\n perfectJson(pageJson);\r\n state.pageJson = pageJson;\r\n },\r\n setWindowWidth(state, windowWidth) {\r\n state.windowWidth = windowWidth\r\n },\r\n setWindowHeight(state, windowHeight) {\r\n state.windowHeight = windowHeight\r\n },\r\n setZoom(state, zoom) {\r\n state.zoom = zoom\r\n },\r\n [UPDATE_ELE_CSS](state, payload) {\r\n let curPage = PageGetters.getPageById(state.pageJson, payload.pageId);\r\n let ele = curPage.elements.find(ele => {\r\n return ele.id === payload.eleId;\r\n });\r\n if (ele) {\r\n VusObjectAssign(ele.css, payload.css);\r\n }\r\n },\r\n [UPDATE_ELE_PROPS](state, payload) {\r\n let curPage = PageGetters.getPageById(state.pageJson, payload.pageId);\r\n let ele = curPage.elements.find(ele => {\r\n return ele.id === payload.eleId;\r\n });\r\n if (ele) {\r\n VusObjectAssign(ele.properties, payload.props);\r\n }\r\n },\r\n [UPDATE_ELE_VALUE](state, payload) {\r\n let curPage = PageGetters.getPageById(state.pageJson, payload.pageId);\r\n let ele = curPage.elements.find(ele => {\r\n return ele.id === payload.eleId;\r\n });\r\n if (ele) {\r\n VusObjectAssign(ele, payload.data);\r\n }\r\n },\r\n [ADD_NEW_LINK](state, payload) {\r\n // 添加透明超链接\r\n let curPage = PageGetters.getPageById(state.pageJson, payload.pageId);\r\n let newLink = JSON.parse(JSON.stringify(DATA_STRUCTURE.link));\r\n newLink.id = MathUtil.generateId();\r\n curPage.elements.push(newLink);\r\n },\r\n [ADD_NEW_RICHTEXT](state, payload) {\r\n // 添加富文本组件\r\n let curPage = PageGetters.getPageById(state.pageJson, payload.pageId);\r\n let newRichText = JSON.parse(JSON.stringify(DATA_STRUCTURE.richText));\r\n newRichText.id = MathUtil.generateId();\r\n curPage.elements.push(newRichText);\r\n },\r\n [ADD_NEW_BACKGROUND](state, payload) {\r\n // 添加背景\r\n let curPage = PageGetters.getPageById(state.pageJson, payload.pageId);\r\n let newImg = JSON.parse(JSON.stringify(DATA_STRUCTURE.img));\r\n newImg.id = MathUtil.generateId();\r\n newImg.properties.src = payload.src;\r\n curPage.elements.push(newImg);\r\n },\r\n [ADD_NEW_VIDEO](state, payload) {\r\n // 添加视频\r\n let curPage = PageGetters.getPageById(state.pageJson, payload.pageId);\r\n let newVideo = JSON.parse(JSON.stringify(DATA_STRUCTURE.video));\r\n newVideo.id = MathUtil.generateId();\r\n if (payload.src) {\r\n newVideo.properties.src = payload.src;\r\n }\r\n curPage.elements.push(newVideo);\r\n },\r\n [ADD_NEW_BLANK_PAGE](state, payload) {\r\n let newPage = JSON.parse(JSON.stringify(DATA_STRUCTURE.page));\r\n newPage.pageId = MathUtil.generateId();\r\n state.pageJson.splice(payload && payload.pos || -1, 0, newPage);\r\n },\r\n [ADD_NEW_SINGLE_PAGE](state, payload) {\r\n let newPage = JSON.parse(JSON.stringify(DATA_STRUCTURE.page));\r\n let newEle1 = JSON.parse(JSON.stringify(DATA_STRUCTURE.img));\r\n let src = payload.src;\r\n newPage.pageId = MathUtil.generateId();\r\n newEle1.id = MathUtil.generateId();\r\n newEle1.properties.src = src;\r\n newPage.elements.push(newEle1);\r\n state.pageJson.splice(payload.pos || -1, 0, newPage);\r\n },\r\n [ADD_NEW_DOUBLE_PAGE](state, payload) {\r\n let newPage = JSON.parse(JSON.stringify(DATA_STRUCTURE.page));\r\n let newPage2 = JSON.parse(JSON.stringify(DATA_STRUCTURE.page));\r\n let src = payload.src;\r\n let newEle1 = JSON.parse(JSON.stringify(DATA_STRUCTURE.img));\r\n let newEle2 = JSON.parse(JSON.stringify(DATA_STRUCTURE.img));\r\n\r\n newPage.pageId = MathUtil.generateId();\r\n newPage2.pageId = MathUtil.generateId();\r\n newEle1.id = MathUtil.generateId();\r\n newEle2.id = MathUtil.generateId();\r\n\r\n newEle1.properties.src = src;\r\n newEle2.properties.src = src;\r\n\r\n newEle1.doublePage = 'left';\r\n newEle2.doublePage = 'right';\r\n\r\n newPage.elements.push(newEle1);\r\n newPage2.elements.push(newEle2);\r\n\r\n state.pageJson.splice(payload.pos || -1, 0, newPage, newPage2);\r\n },\r\n [DELETE_PAGE](state, payload) {\r\n state.pageJson.splice(payload.pos, 1);\r\n },\r\n [DELETE_ELE](state, payload) {\r\n let page = PageGetters.getPageById(state.pageJson, payload.pageId);\r\n let pos = ElementGetters.getElementIndexById(page.elements, payload.id);\r\n page.elements.splice(pos, 1);\r\n },\r\n [COPY_ELE](state, payload) {\r\n let page = PageGetters.getPageById(state.pageJson, payload.pageId);\r\n let ele = ElementGetters.getEleById(page.elements, payload.id);\r\n let pos = ElementGetters.getElementIndexById(page.elements, payload.id)\r\n let copy = JSON.parse(JSON.stringify(ele)); //this.templateData是父组件传递的对象\r\n\r\n copy.css.left = parseInt(copy.css.left) + 5;\r\n copy.css.top = parseInt(copy.css.top) + 5;\r\n\r\n copy.id = MathUtil.generateId();\r\n\r\n page.elements.splice(pos, 0, copy);\r\n },\r\n}\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}\r\n","import {VusObjectAssign, PageGetters} from '../common'\r\nimport {SET_IS_IN_EDIT_MODE, SET_EDITOR_ZOOM, SET_CURPAGE_ID, SET_SELECTED_ELEMENT_IDS} from \"../mutation-types\";\r\n\r\nconst state = {\r\n isInEditMode: false,// 是否在editor模式\r\n curPageId: undefined, // 当前选择的页面id\r\n zoom: 1, // viewport的缩放倍数\r\n\r\n selectedEleIds: [], // 当前选择的元素id数组\r\n curSelectedEle: undefined\r\n};\r\n\r\n\r\n// getters\r\nconst getters = {\r\n getIsInEditMode: state => state.isInEditMode,\r\n\r\n editorZoom: state => state.zoom,\r\n curPageId: state => state.curPageId,\r\n curPage: (state, getters, rootState, rootGetters) => {\r\n // return PageGetters.getPageById(rootState.h5book.pageJson, state.curPageId);\r\n return rootGetters.getPageById(state.curPageId);\r\n },\r\n\r\n selectedEleIds: state => state.selectedEleIds,\r\n selectedEles: (state, getters, rootState, rootGetters) => {\r\n // 限制在同一个页面\r\n let curPage = getters.curPage;\r\n if (curPage) {\r\n return curPage.elements.filter(ele => {\r\n return state.selectedEleIds.indexOf(ele.id) > -1;\r\n });\r\n }\r\n return [];\r\n },\r\n curSelectedEle(state, getters) {\r\n if (getters.selectedEles.length === 1) {\r\n return getters.selectedEles[0];\r\n }\r\n return null;\r\n }\r\n}\r\n\r\n// actions\r\nconst actions = {\r\n /*[UPDATE_ELE_CSS]({state, rootState, commit, getters, rootGetters}, payload) {\r\n payload.curPageId = state.curPageId;\r\n commit(UPDATE_ELE_CSS, payload)\r\n }*/\r\n};\r\n\r\n// mutations\r\nconst mutations = {\r\n [SET_IS_IN_EDIT_MODE](state, is) {\r\n state.isInEditMode = is\r\n },\r\n\r\n [SET_CURPAGE_ID](state, curPageId) {\r\n state.curPageId = curPageId;\r\n },\r\n [SET_SELECTED_ELEMENT_IDS](state, eleIds) {\r\n state.selectedEleIds = eleIds;\r\n },\r\n [SET_EDITOR_ZOOM](state, zoom) {\r\n state.zoom = zoom;\r\n },\r\n\r\n}\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","const state = {\r\n bookInfo:{},\r\n // bookTitle: '',// 书本标题\r\n // bookTime: ''\r\n};\r\n\r\n\r\n// getters\r\nconst getters = {\r\n // bookTitle: state => state.bookTitle,\r\n // bookTime: state => state.bookTime,\r\n bookInfo: state => state.bookInfo,\r\n}\r\n\r\n// actions\r\nconst actions = {\r\n\r\n};\r\n\r\n// mutations\r\nconst mutations = {\r\n\r\n}\r\n\r\nexport default {\r\n state,\r\n getters,\r\n actions,\r\n mutations\r\n}","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport h5book from './modules/h5book';\r\nimport editor from './modules/editor';\r\nimport bookInfo from './modules/book-info';\r\n\r\n\r\nVue.use(Vuex);\r\n\r\nconst debug = process.env.NODE_ENV !== 'production';\r\n\r\n\r\nlet store = new Vuex.Store({\r\n modules: {\r\n h5book, editor, bookInfo\r\n },\r\n strict: debug\r\n});\r\n\r\nexport default store","import Vue from 'vue'\r\n\r\nlet $api = {};\r\n$api.pageJson = '/201809/allpage.json';\r\n\r\nVue.prototype.$api = $api;","// 事件总线\r\n// https://cn.vuejs.org/v2/guide/migration.html#dispatch-%E5%92%8C-broadcast-%E6%9B%BF%E6%8D%A2\r\n\r\nimport Vue from 'vue'\r\nimport $store from './store';\r\n\r\nlet eventhub = new Vue();\r\nVue.prototype.$eventHub = Vue.prototype.$eventHub || eventhub; // 事件分发\r\n\r\n/*class EventType {\r\n static get OnPageChange() {\r\n return 'OnPageChange';\r\n }\r\n}\r\nVue.prototype.$eventHub = EventType.onPageStart();*/\r\n\r\nconsole.log('事件总线初始化');\r\n\r\n/*export function EventPageChange(pageIndex) {\r\n let page = $store.getters.getPageByIndex(pageIndex);\r\n if (page) {\r\n eventhub.$emit('onPageStart', page);\r\n }\r\n}\r\n\r\nexport function EmitLoadImg(pageIndex) {\r\n eventhub.$emit('onPageStart', page);\r\n}*/\r\n\r\n\r\nexport default eventhub;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"v-tip-fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"v-tip-container\",class:_vm.boxClass,style:(_vm.boxStyle),on:{\"mouseenter\":_vm.showTip,\"mouseleave\":function($event){_vm.hiddenTip(true)}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.placement),expression:\"placement\"}],staticClass:\"v-tip-arrows\",class:_vm.placement,style:(_vm.arrowBox)}),(_vm.title)?_c('span',{staticClass:\"v-tip-title\"},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]):_vm._e(),(_vm.content)?_c('p',{staticClass:\"v-tip-content\",style:(_vm.contentHeight)},[_vm._v(\"\\n \"+_vm._s(_vm.content)+\"\\n \")]):_vm._e(),(_vm.customComponent)?_c(_vm.customComponent,_vm._g(_vm._b({tag:\"component\",on:{\"hidden-tip\":_vm.hiddenTip,\"update-tip\":_vm.updateTip}},'component',_vm.customProps,false),_vm.customListeners)):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","const OVERFLOW_PROPERTYS = ['overflow', 'overflow-x', 'overflow-y']\r\n\r\nconst SCROLL_TYPES = ['scroll', 'auto']\r\n\r\n// 根元素\r\nconst ROOT = document.body\r\n\r\n// 竖直方向\r\nconst VERTICAL = ['top', 'bottom']\r\n// 水平方向\r\nconst HORIZONTAL = ['left', 'right']\r\n\r\n// 默认限制显示方向如下,显示优先级按顺序以此递减\r\nconst DEFAULT_PLACEMENT_QUEUE = ['top', 'right', 'bottom', 'left']\r\n\r\n// 最大值\r\nconst MAX = 4\r\n\r\n// 获取目标元素相对于参考容器的位置信息\r\nfunction getBoxMargin (el, parent) {\r\n if (!el) return\r\n const eBox = el.getBoundingClientRect()\r\n const pBox = parent.getBoundingClientRect()\r\n\r\n const { width: vw, height: vh } = pBox\r\n const { width, height } = eBox\r\n\r\n const top = eBox.top - pBox.top\r\n const left = eBox.left - pBox.left\r\n const right = eBox.right - pBox.left\r\n const bottom = eBox.bottom - pBox.top\r\n\r\n const midX = left + width / 2\r\n const midY = top + height / 2\r\n\r\n // 目标的顶点坐标 [top-left, top-right, bottom-right, botton-left]\r\n const vertex = {\r\n tl: { x: left, y: top },\r\n tr: { x: right, y: top },\r\n br: { x: right, y: bottom },\r\n bl: { x: left, y: bottom }\r\n }\r\n\r\n return {\r\n width,\r\n height,\r\n margin: {\r\n top: {\r\n placement: 'top',\r\n size: top,\r\n start: vertex.tl,\r\n mid: { x: midX, y: top },\r\n end: vertex.tr\r\n },\r\n bottom: {\r\n placement: 'bottom',\r\n size: vh - bottom,\r\n start: vertex.bl,\r\n mid: { x: midX, y: bottom },\r\n end: vertex.br\r\n },\r\n left: {\r\n placement: 'left',\r\n size: left,\r\n start: vertex.tl,\r\n mid: { x: left, y: midY },\r\n end: vertex.bl\r\n },\r\n right: {\r\n placement: 'right',\r\n size: vw - right,\r\n start: vertex.tr,\r\n mid: { x: right, y: midY },\r\n end: vertex.br\r\n }\r\n }\r\n }\r\n}\r\n\r\n// 获取最优展示方向,weight 越大对应方向的优先级越高\r\nfunction getBestPlacement (queue) {\r\n return queue.sort((a, b) => b.weight - a.weight)[0]\r\n}\r\n\r\n// 是否是个可滚动的元素\r\nexport function checkScrollable (element) {\r\n const css = window.getComputedStyle(element, null)\r\n return OVERFLOW_PROPERTYS.some(property => {\r\n return ~SCROLL_TYPES.indexOf(css[property])\r\n })\r\n}\r\n\r\n// 获取参考元素第一个可滚动的元素\r\nexport function getScrollContainer (el) {\r\n if (!el) return ROOT\r\n let parent = el.parentNode\r\n while (parent && parent !== ROOT) {\r\n if (checkScrollable(parent)) {\r\n return parent\r\n }\r\n parent = parent.parentNode\r\n }\r\n return ROOT\r\n}\r\n\r\n// 基于参考元素的某一侧的中点来计算目标元素的坐标\r\nexport function computeCoordinateBaseMid (placementInfo, offset) {\r\n const { placement, mid, tw, th } = placementInfo\r\n switch (placement) {\r\n case 'top': return {\r\n placement: 'top-mid',\r\n x: mid.x - tw / 2,\r\n y: mid.y - th - offset\r\n }\r\n case 'bottom': return {\r\n placement: 'bottom-mid',\r\n x: mid.x - tw / 2,\r\n y: mid.y + offset\r\n }\r\n case 'left': return {\r\n placement: 'left-mid',\r\n x: mid.x - tw - offset,\r\n y: mid.y - th / 2\r\n }\r\n case 'right': return {\r\n placement: 'right-mid',\r\n x: mid.x + offset,\r\n y: mid.y - th / 2\r\n }\r\n }\r\n}\r\n\r\n// 基于参考元素某一侧的边界来计算目标元素位置\r\nexport function computeCoordinateBaseEdge (placementInfo, offset) {\r\n const { placement, start, end, dHor, dVer, tw, th, ew, eh } = placementInfo\r\n const nearRight = dHor > 0\r\n const nearBottom = dVer > 0\r\n switch (placement) {\r\n case 'top': return {\r\n placement: nearRight ? 'top-end' : 'top-start',\r\n x: nearRight ? end.x - tw : start.x,\r\n y: start.y - th - offset,\r\n arrowsOffset: ew / 2\r\n }\r\n case 'bottom': return {\r\n placement: nearRight ? 'bottom-end' : 'bottom-start',\r\n x: nearRight ? end.x - tw : start.x,\r\n y: end.y + offset,\r\n arrowsOffset: ew / 2\r\n }\r\n case 'left': return {\r\n placement: nearBottom ? 'left-end' : 'left-start',\r\n x: start.x - tw - offset,\r\n y: nearBottom ? end.y - th : start.y,\r\n arrowsOffset: eh / 2\r\n }\r\n case 'right': return {\r\n placement: nearBottom ? 'right-end' : 'right-start',\r\n x: end.x + offset,\r\n y: nearBottom ? end.y - th : start.y,\r\n arrowsOffset: eh / 2\r\n }\r\n }\r\n}\r\n\r\n// ref 参考元素,container 容器, target 需要动态计算坐标的元素,limitQueue 限制展示方向\r\nexport function computePlacementInfo (ref, container, target, limitQueue, offset) {\r\n if (!ref || !target) return\r\n const placementQueue = limitQueue && limitQueue.length\r\n ? limitQueue : DEFAULT_PLACEMENT_QUEUE\r\n const { width: ew, height: eh, margin } = getBoxMargin(ref, container)\r\n const { width: tw, height: th } = target.getBoundingClientRect()\r\n\r\n const dw = (tw - ew) / 2\r\n const dh = (th - eh) / 2\r\n\r\n const queueLen = placementQueue.length\r\n const processedQueue = Object.keys(margin)\r\n .map(key => {\r\n const placementItem = margin[key]\r\n // 这里 index 可以用来标记显示方向的优先级 index 越大,优先级越高\r\n const index = placementQueue.indexOf(placementItem.placement)\r\n placementItem.weight = index > -1 ? MAX - index : MAX - queueLen\r\n\r\n // 上下方向上可容纳目标元素\r\n const verSingleBiasCheck = (\r\n ~VERTICAL.indexOf(placementItem.placement) &&\r\n placementItem.size > th + offset\r\n )\r\n // 上下方向上可容纳目标元素 && 目标元素上下显示时左右也可完整显示目标元素\r\n const verFullBiasCheck = (\r\n verSingleBiasCheck &&\r\n margin.left.size > dw &&\r\n margin.right.size > dw\r\n )\r\n // 左右方向上可容纳目标元素\r\n const horSingleBiasCheck = (\r\n HORIZONTAL.indexOf(placementItem.placement) > -1 &&\r\n placementItem.size > tw + offset\r\n )\r\n // 左右方向上可容纳目标元素 && 显示时上下也可完整显示目标元素\r\n const horFullBiasCheck = (\r\n horSingleBiasCheck &&\r\n margin.top.size > dh &&\r\n margin.bottom.size > dh\r\n )\r\n // 竖直方向上的 top 与 bottom 的间距差值\r\n placementItem.dVer = margin.top.size - margin.bottom.size\r\n // 水平方向上的 left 与 right 的间距差值\r\n placementItem.dHor = margin.left.size - margin.right.size\r\n placementItem.mod = 'edge'\r\n\r\n if (verFullBiasCheck || horFullBiasCheck) {\r\n placementItem.mod = 'mid'\r\n placementItem.weight += 3 + placementItem.weight / MAX\r\n return placementItem\r\n }\r\n if (verSingleBiasCheck || horSingleBiasCheck) {\r\n placementItem.weight += 2 + placementItem.weight / MAX\r\n }\r\n return placementItem\r\n })\r\n return Object.assign({ ew, eh, tw, th, dw, dh }, getBestPlacement(processedQueue))\r\n}\r\n\r\n// 用于计算小三角形在 tip 窗口中的位置\r\nexport function computeArrowPos (placement, offset, size) {\r\n const start = offset + 'px'\r\n const end = offset - size * 2 + 'px'\r\n const posMap = {\r\n 'top-start': { top: '100%', left: start },\r\n 'top-mid': { top: '100%', left: '50%' },\r\n 'top-end': { top: '100%', right: end },\r\n\r\n 'bottom-start': { top: '0', left: start },\r\n 'bottom-mid': { top: '0', left: '50%' },\r\n 'bottom-end': { top: '0', right: end },\r\n\r\n 'left-start': { top: start, left: '100%' },\r\n 'left-mid': { top: '50%', left: '100%' },\r\n 'left-end': { bottom: end, left: '100%' },\r\n\r\n 'right-start': { top: start, left: '0' },\r\n 'right-mid': { top: '50%', left: '0' },\r\n 'right-end': { bottom: end, left: '0' }\r\n }\r\n return posMap[placement]\r\n}\r\n\r\nexport function debounce (fn, delay) {\r\n let timer\r\n return function () {\r\n const context = this\r\n const args = arguments\r\n clearTimeout(timer)\r\n timer = setTimeout(function () {\r\n fn.apply(context, args)\r\n }, delay)\r\n }\r\n}\r\n","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./main.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!./main.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./main.vue?vue&type=template&id=3d68ec60&\"\nimport script from \"./main.vue?vue&type=script&lang=js&\"\nexport * from \"./main.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\ncomponent.options.__file = \"main.vue\"\nexport default component.exports","import Vue from 'vue'\r\nimport main from './main.vue'\r\n\r\nconst VtipConstructor = Vue.extend(main)\r\n\r\nconst props = main.props\r\nconst defaultOptions = {}\r\nObject.keys(props).forEach(key => {\r\n const prop = props[key]\r\n const dv = prop.default\r\n if (prop && prop.default != null) {\r\n defaultOptions[key] = typeof dv === 'function' ? dv() : dv\r\n }\r\n})\r\n\r\nlet vtipInstance = null\r\n\r\nexport default function tip (options) {\r\n options = options || {}\r\n // 如果已经存在 tip 的实例,直接更新属性值\r\n if (vtipInstance && vtipInstance.$el.parentNode) {\r\n Object.assign(vtipInstance, defaultOptions, options)\r\n if (vtipInstance.target) {\r\n vtipInstance.updateTip()\r\n } else {\r\n vtipInstance.hiddenTip()\r\n }\r\n return vtipInstance\r\n }\r\n // 否则创建一个 tip 实例\r\n vtipInstance = new VtipConstructor({\r\n propsData: options\r\n }).$mount()\r\n vtipInstance.updateTip()\r\n return vtipInstance\r\n}\r\n","import Tip from './tip'\r\n\r\nfunction clearEvent (el) {\r\n if (el._tipHandler) {\r\n el.removeEventListener('click', el._tipHandler)\r\n el.removeEventListener('mouseenter', el._tipHandler)\r\n }\r\n if (el._tipMouseleaveHandler) {\r\n el.removeEventListener('mouseleave', el._tipMouseleaveHandler)\r\n }\r\n delete el._tipHandler\r\n delete el._tipMouseleaveHandler\r\n delete el._tipOptions\r\n delete el._tipInstance\r\n}\r\n\r\nexport default {\r\n install (Vue, options) {\r\n options = options || {}\r\n // 自定义指令的名字,默认为 tip\r\n const name = options.directiveName || 'tip'\r\n // tip 的展示方向\r\n const allPlacements = ['top', 'right', 'bottom', 'left']\r\n\r\n Vue.directive(name, {\r\n bind (el, binding) {\r\n clearEvent(el)\r\n const { click, dark, transition } = binding.modifiers\r\n const limitPlacementQueue = allPlacements.filter(placement => binding.modifiers[placement])\r\n el._tipOptions = binding.value\r\n el._tipHandler = function tipHandler () {\r\n if (this._tipOptions == null) return\r\n const options = this._tipOptions\r\n const placements = limitPlacementQueue.length\r\n ? limitPlacementQueue : allPlacements\r\n const mix = {\r\n placements,\r\n transition,\r\n theme: dark ? 'dark' : 'light'\r\n }\r\n // 一般情况为 v-tip 绑定需要显示的内容\r\n // 需要配置时可以直接绑定一个配置对象\r\n const tipOptions = typeof options === 'object'\r\n ? Object.assign(mix, options, { target: this })\r\n : Object.assign(mix, { content: String(options), target: this })\r\n this._tipInstance = Tip(tipOptions)\r\n }\r\n el._tipMouseleaveHandler = function tipMouseleaveHandler () {\r\n if (this._tipInstance) {\r\n this._tipInstance.hiddenTip()\r\n }\r\n }\r\n // 默认触发方式为 hover 触发\r\n if (click) {\r\n el.addEventListener('click', el._tipHandler)\r\n } else {\r\n el.addEventListener('mouseenter', el._tipHandler)\r\n }\r\n el.addEventListener('mouseleave', el._tipMouseleaveHandler)\r\n },\r\n\r\n update (el, { value, oldValue }) {\r\n if (value === oldValue) return\r\n el._tipOptions = value\r\n },\r\n\r\n unbind (el) {\r\n const instance = el._tipInstance\r\n if (instance && instance.destroy) {\r\n instance.destroy()\r\n }\r\n clearEvent(el)\r\n }\r\n })\r\n }\r\n}\r\n","import tip from './tip.js'\r\nimport directive from './directive.js'\r\nexport default { tip, directive }\r\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router';\r\nimport store from './store';\r\n\r\nimport './api';\r\nimport './eventhub';\r\n\r\nimport Vtip from './plugins/vtip';\r\nimport VueTippy from 'vue-tippy'\r\n\r\nimport './plugins/vtip/main.scss';\r\nimport axios from './http.js'\r\nimport VueLazyload from 'vue-lazyload'\r\n\r\nimport 'loaders.css';\r\n\r\nVue.use(VueLazyload)\r\nVue.use(Vtip.directive);\r\nVue.use(VueTippy)\r\nVue.use(axios);\r\n\r\nVue.config.productionTip = false\r\nVue.prototype.$tip = Vtip.tip;\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n","export const SET_IS_PHONE = 'SET_IS_PHONE';\r\n\r\nexport const SET_IS_IN_EDIT_MODE = 'SET_IS_IN_EDIT_MODE';\r\nexport const SET_EDITOR_ZOOM = 'SET_EDITOR_ZOOM';\r\n\r\nexport const SET_CURPAGE_ID = 'SET_CURPAGE_ID';\r\nexport const SET_SELECTED_ELEMENT_IDS = 'SET_SELECTED_ELEMENT_IDS';\r\n\r\nexport const UPDATE_ELE_CSS = 'UPDATE_ELE_CSS';\r\nexport const UPDATE_ELE_PROPS = 'UPDATE_ELE_PROPS';\r\nexport const UPDATE_ELE_VALUE = 'UPDATE_ELE_VALUE';\r\nexport const ADD_NEW_LINK = 'ADD_NEW_LINK';\r\nexport const ADD_NEW_RICHTEXT = 'ADD_NEW_RICHTEXT';\r\nexport const ADD_NEW_BACKGROUND = 'ADD_NEW_BACKGROUND';\r\nexport const ADD_NEW_VIDEO = 'ADD_NEW_VIDEO';\r\n\r\nexport const ADD_NEW_BLANK_PAGE = 'ADD_NEW_BLANK_PAGE';\r\nexport const ADD_NEW_SINGLE_PAGE = 'ADD_NEW_SINGLE_PAGE';\r\nexport const ADD_NEW_DOUBLE_PAGE = 'ADD_NEW_DOUBLE_PAGE';\r\n\r\nexport const DELETE_PAGE = 'DELETE_PAGE';\r\nexport const DELETE_ELE = 'DELETE_ELE';\r\nexport const COPY_ELE = 'COPY_ELE';\r\n\r\n\r\n\r\n\r\n\r\n\r\n","/**\r\n * Created by superman on 17/2/16.\r\n * axio 中文文档\r\n * https://ykloveyxk.github.io/2017/02/25/axios%E5%85%A8%E6%94%BB%E7%95%A5/\r\n * http配置\r\n */\r\n\r\nimport axios from 'axios'\r\nimport qs from 'qs'\r\n\r\n// axios 配置\r\naxios.defaults.timeout = 15000;\r\naxios.defaults.withCredentials = true;\r\n\r\n// let myaxios = {}\r\naxios.install = function (Vue, options) {\r\n Vue.prototype.$http = axios;\r\n};\r\n\r\n// http response 拦截器\r\naxios.interceptors.response.use(\r\n response => {\r\n\r\n /*if (typeof response.data.result !== \"undefined\" && response.data.result <= 0) {\r\n let msg = response.data.msg || '服务器错误';\r\n throw new Error(msg);\r\n }*/\r\n\r\n return response.data;\r\n },\r\n error => {\r\n return Promise.reject(error.response ? error.response.data : error);\r\n });\r\n\r\n// `transformRequest`允许在请求数据发送到服务器之前对其进行更改\r\n// 这只适用于请求方法'PUT','POST'和'PATCH'\r\naxios.defaults.transformRequest = [function (data) {\r\n if (data instanceof FormData) {\r\n return data;\r\n }\r\n // 做任何你想要的数据转换\r\n return qs.stringify(data);\r\n}];\r\n\r\nexport default axios;\r\n","function isMobile() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobi/i.test(navigator.userAgent) || window.screen.width < 500;\r\n}\r\n\r\nfunction isWeixin() {\r\n return window.top === window && /MicroMessenger/i.test(navigator.userAgent);\r\n}\r\n\r\nfunction isAndroidPhone() {\r\n return isMobile() && isAndroid();\r\n}\r\n\r\nfunction isAndroid() {\r\n return /Android/i.test(navigator.userAgent) || /Linux/i.test(navigator.appVersion);\r\n}\r\n\r\nfunction UaCheck() {\r\n return /ipad|android|android 3.0|xoom|sch-i800|playbook|tablet|kindle/i.test(navigator.userAgent);\r\n}\r\n\r\nfunction isIos() {\r\n return /iPhone/i.test(navigator.userAgent);\r\n}\r\n\r\nexport function isPc() {\r\n return !(isMobile() || UaCheck() && window === window.top);\r\n}\r\n\r\nfunction isIOS() {\r\n return /ipad|iphone/i.test(navigator.userAgent);\r\n}\r\n\r\nfunction isSafari() {\r\n return /msie|applewebkit.+safari/i.test(navigator.userAgent);\r\n}\r\n\r\nfunction getAndroidVersion() {\r\n /** @type {string} */\r\n const ua = window.navigator.userAgent;\r\n return parseFloat(ua.substr(ua.indexOf(\"Android\") + 8, 3));\r\n}\r\n\r\nexport default {\r\n mobilecheck: isMobile,\r\n isMobile: isMobile,\r\n isWeixin: isWeixin,\r\n isAndroidPhone: isAndroidPhone,\r\n isAndroid: isAndroid,\r\n tabletCheck: UaCheck,\r\n iphoneCheck: isIos,\r\n isPc: isPc,\r\n isIOS: isIOS,\r\n isSafari: isSafari,\r\n getAndroidVersion: getAndroidVersion\r\n};\r\n"],"sourceRoot":""}