{"version":3,"sources":["webpack:///./assets/common/logos/wps.svg","webpack:///./assets/common/logos/pdf.svg","webpack:///./assets/common/logos/ciba.svg","webpack:///./components/home/banner.vue?4133","webpack:///./assets/common/logos/drive.svg","webpack:///./assets/home/devices.png","webpack:///./components/home/apps.vue?855b","webpack:///./assets/home/feature@2x.jpg","webpack:///./assets/home/genuine.png","webpack:///./assets/home/mobile.png","webpack:///./assets/home/safety.png","webpack:///./assets/home/financial.png","webpack:///./assets/home/energy.png","webpack:///./components/home/feature.vue?9cd1","webpack:///./components/home/more.vue?8f97","webpack:///./pages/index.vue?5281","webpack:///./components/home/banner.vue","webpack:///./components/home/banner.vue?1286","webpack:///./components/home/apps.vue?0ff5","webpack:///./components/home/apps.vue","webpack:///./node_modules/@glidejs/glide/dist/glide.modular.esm.js","webpack:///./components/home/feature.vue?b224","webpack:///components/home/feature.vue","webpack:///./components/home/feature.vue","webpack:///./components/home/feature.vue?648f","webpack:///./pages/index.vue?ff57","webpack:///pages/index.vue","webpack:///./components/home/more.vue","webpack:///./components/home/more.vue?759d","webpack:///./pages/index.vue"],"names":["module","exports","_h","this","$createElement","_c","_self","staticClass","_m","_v","directives","name","rawName","value","expression","arg","attrs","_vm","key","defaults","type","startAt","perView","focusAt","gap","autoplay","hoverpause","keyboard","bound","swipeThreshold","dragThreshold","perTouch","touchRatio","touchAngle","animationDuration","rewind","rewindDuration","animationTimingFunc","throttle","direction","peek","breakpoints","classes","ltr","rtl","slider","carousel","swipeable","dragging","cloneSlide","activeNav","activeSlide","disabledArrow","warn","msg","console","error","_typeof","Symbol","iterator","obj","constructor","prototype","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","protoProps","staticProps","_extends","assign","arguments","source","hasOwnProperty","call","get","object","property","receiver","Function","desc","getOwnPropertyDescriptor","undefined","parent","getPrototypeOf","getter","possibleConstructorReturn","self","ReferenceError","toInt","parseInt","isString","isObject","isFunction","isUndefined","isArray","Array","mount","glide","extensions","events","components","_name","define","prop","definition","mergeOptions","settings","options","EventsBus","hop","event","handler","on","index","push","remove","context","emit","forEach","item","Glide","selector","_t","_e","disabled","transformers","pattern","Run","make","distance","Transition","disable","Move","interval","_o","set","o","_i","_d","status","now","Date","getTime","func","wait","timeout","args","result","previous","later","leading","apply","throttled","at","remaining","clearTimeout","trailing","setTimeout","cancel","MARGIN_TYPE","siblings","node","parentNode","n","firstChild","matched","nextSibling","nodeType","exist","window","HTMLElement","TRACK_SELECTOR","EventsBinder","listeners","el","closure","capture","addEventListener","removeEventListener","VALID_DIRECTIONS","FLIPED_MOVEMENTS","Rtl","Components","modify","translate","Direction","is","Gap","Gaps","Grow","Clones","grow","Peeking","Peek","before","Focusing","width","Sizes","slideWidth","supportsPassive","opts","e","supportsPassive$1","NAV_SELECTOR","CONTROLS_SELECTOR","controls","Events","Binder","passive","Controls","_n","Html","root","querySelectorAll","addBindings","setActive","addClass","children","removeActive","removeClass","classList","add","sibling","bind","removeBindings","unbind","elements","click","off","preventDefault","resolve","currentTarget","getAttribute","destroy","Autoplay","start","_this","setInterval","stop","time","clearInterval","_this2","slides","COMPONENTS","track","querySelector","slice","wrapper","filter","slide","contains","_r","r","document","t","Translate","transform","TRANSFORMERS","concat","mutate","transformer","mutator","style","isType","isOffset","after","movement","compose","duration","transition","callback","enable","offset","token","split","join","indexOf","setupSlides","setupWrapper","dimention","wrapperSize","offsetWidth","reductor","len","marginLeft","marginRight","items","collect","_Glide$settings","peekIncrementer","part","end","Math","max","floor","clone","cloneNode","_clone","unshift","append","_Components$Html","half","prepend","reverse","appendChild","_i2","insertBefore","_i3","removeChild","Resize","Build","typeClass","activeClass","removeClasses","move","calculate","isStart","isEnd","steps","countableSteps","min","step","substr","_Core","Glide$$1","__proto__","subClass","superClass","create","setPrototypeOf","inherits","data","features","mounted","$refs","label","$Lazyload","$once","$event","go","ref","_l","link","title","bg","_s","banner","apps","feature","more"],"mappings":"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","file":"encs/ep_site/c49a727d.js","sourcesContent":["module.exports = __webpack_public_path__ + \"encs/ep_site/images/208482f.svg\";","module.exports = __webpack_public_path__ + \"encs/ep_site/images/4255837.svg\";","module.exports = __webpack_public_path__ + \"encs/ep_site/images/143d0ae.svg\";","import mod from \"-!../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./banner.vue?vue&type=style&index=0&id=5ffae08c&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./banner.vue?vue&type=style&index=0&id=5ffae08c&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"encs/ep_site/images/715577b.svg\";","module.exports = __webpack_public_path__ + \"encs/ep_site/images/8fd8367.png\";","import mod from \"-!../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apps.vue?vue&type=style&index=0&id=1f4fc744&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apps.vue?vue&type=style&index=0&id=1f4fc744&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"encs/ep_site/images/6468671.jpg\";","module.exports = __webpack_public_path__ + \"encs/ep_site/images/8a1b7a4.png\";","module.exports = __webpack_public_path__ + \"encs/ep_site/images/6cdda1a.png\";","module.exports = __webpack_public_path__ + \"encs/ep_site/images/17f85f5.png\";","module.exports = __webpack_public_path__ + \"encs/ep_site/images/b4ff64c.png\";","module.exports = __webpack_public_path__ + \"encs/ep_site/images/cb3e663.png\";","import mod from \"-!../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./feature.vue?vue&type=style&index=0&id=e3c52a54&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./feature.vue?vue&type=style&index=0&id=e3c52a54&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./more.vue?vue&type=style&index=0&id=4f86e22d&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/extract-css-chunks-webpack-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./more.vue?vue&type=style&index=0&id=4f86e22d&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"home\"}},[_c('banner'),_c('apps'),_c('feature'),_c('more')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./banner.vue?vue&type=template&id=5ffae08c&scoped=true&lang=pug&\"\nvar script = {}\nimport style0 from \"./banner.vue?vue&type=style&index=0&id=5ffae08c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ffae08c\",\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:\"banner\"},[_vm._m(0),_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"slogon\"},[_vm._m(1),_c('div',{staticClass:\"desc\"},[_vm._v(\"专注为企业打造云端文档服务平台\")]),_c('nuxt-link',{directives:[{name:\"cnzz\",rawName:\"v-cnzz:click\",value:(['首页_banner', '$action', '下载试用-btn']),expression:\"['首页_banner', '$action', '下载试用-btn']\",arg:\"click\"}],attrs:{\"to\":\"/download\"}},[_c('div',{staticClass:\"download feedback\"},[_vm._v(\"下载试用\")])]),_c('a',{directives:[{name:\"cnzz\",rawName:\"v-cnzz:click\",value:(['首页_banner', '$action', '立即购买']),expression:\"['首页_banner', '$action', '立即购买']\",arg:\"click\"}],attrs:{\"href\":\"https://plus.wps.cn/govBuy?utm_buysource=buy&utm_medium=home&utm_source=ep\",\"target\":\"_blank\"}},[_c('div',{staticClass:\"downloadenterprise feedback\"},[_vm._v(\"立即购买\")])])],1),_c('div',{staticClass:\"cover\"})])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"box\"},[_c('div',{staticClass:\"bg\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"title\"},[_vm._v(\"让企业 \"),_c('br'),_vm._v(\" 办公从此变得不一样\")])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"apps\"},[_vm._m(0),_c('div',{staticClass:\"container\"},[_vm._m(1),_c('div',{staticClass:\"desc-list\"},[_c('div',{staticClass:\"item\"},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(require('~/assets/common/logos/wps.svg')),expression:\"require('~/assets/common/logos/wps.svg')\"}],key:1,staticClass:\"logo lazyload\",attrs:{\"alt\":\"WPS Office\"}}),_c('div',{staticClass:\"title\"},[_vm._v(\"WPS Office\")]),_c('div',{staticClass:\"desc\"},[_vm._v(\"集文字处理、电子表格、电子文档演示为一体的信息化办公平台,秉承兼容、开放、高效、安全的原则,拥有强大的文档处理能力,符合现代中文办公的需求\")])]),_c('div',{staticClass:\"item\"},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(require('~/assets/common/logos/drive.svg')),expression:\"require('~/assets/common/logos/drive.svg')\"}],key:2,staticClass:\"logo lazyload\",attrs:{\"alt\":\"WPS 云文档\"}}),_c('div',{staticClass:\"title\"},[_vm._v(\"WPS 云文档\")]),_c('div',{staticClass:\"desc\"},[_vm._v(\"围绕文档存储、文档权限管理、在线文档处理的全平台文档管理系统,帮助企业实现文档云端统一管理,确保稳定安全\")])]),_c('div',{staticClass:\"item\"},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(require('~/assets/common/logos/pdf.svg')),expression:\"require('~/assets/common/logos/pdf.svg')\"}],key:3,staticClass:\"logo lazyload\",attrs:{\"alt\":\"金山PDF专业版\"}}),_c('div',{staticClass:\"title\"},[_vm._v(\"金山PDF专业版\")]),_c('div',{staticClass:\"desc\"},[_vm._v(\"一款精巧稳定的PDF工具,提供更快速、舒适的阅读体验,具有优异的转换效果,启动迅速,简洁易用,能够提供高效的PDF服务\")])]),_c('div',{staticClass:\"item\"},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(require('~/assets/common/logos/ciba.svg')),expression:\"require('~/assets/common/logos/ciba.svg')\"}],key:4,staticClass:\"logo lazyload\",attrs:{\"alt\":\"金山词霸企业版\"}}),_c('div',{staticClass:\"title\"},[_vm._v(\"金山词霸企业版\")]),_vm._m(2)])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"main-title\"},[_vm._v(\"多产品、多平台\")]),_c('div',{staticClass:\"sub-title\"},[_vm._v(\"支持PC、手机等多种设备,满足企业日常办公需求\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"devices\"},[_c('img',{attrs:{\"src\":require(\"assets/home/devices.png\"),\"alt\":\"多终端\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"desc\"},[_c('p',[_vm._v(\"内含海量权威词典\")]),_c('p',[_vm._v(\"可自编辑、定制化的词库\")]),_c('p',[_vm._v(\"强大的屏幕取词功能,随时随手取词翻译\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./apps.vue?vue&type=template&id=1f4fc744&scoped=true&lang=pug&\"\nvar script = {}\nimport style0 from \"./apps.vue?vue&type=style&index=0&id=1f4fc744&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f4fc744\",\n null\n \n)\n\nexport default component.exports","/*!\n * Glide.js v3.3.0\n * (c) 2013-2019 Jędrzej Chałubek (http://jedrzejchalubek.com/)\n * Released under the MIT License.\n */\n\nvar defaults = {\n /**\n * Type of the movement.\n *\n * Available types:\n * `slider` - Rewinds slider to the start/end when it reaches the first or last slide.\n * `carousel` - Changes slides without starting over when it reaches the first or last slide.\n *\n * @type {String}\n */\n type: 'slider',\n\n /**\n * Start at specific slide number defined with zero-based index.\n *\n * @type {Number}\n */\n startAt: 0,\n\n /**\n * A number of slides visible on the single viewport.\n *\n * @type {Number}\n */\n perView: 1,\n\n /**\n * Focus currently active slide at a specified position in the track.\n *\n * Available inputs:\n * `center` - Current slide will be always focused at the center of a track.\n * `0,1,2,3...` - Current slide will be focused on the specified zero-based index.\n *\n * @type {String|Number}\n */\n focusAt: 0,\n\n /**\n * A size of the gap added between slides.\n *\n * @type {Number}\n */\n gap: 10,\n\n /**\n * Change slides after a specified interval. Use `false` for turning off autoplay.\n *\n * @type {Number|Boolean}\n */\n autoplay: false,\n\n /**\n * Stop autoplay on mouseover event.\n *\n * @type {Boolean}\n */\n hoverpause: true,\n\n /**\n * Allow for changing slides with left and right keyboard arrows.\n *\n * @type {Boolean}\n */\n keyboard: true,\n\n /**\n * Stop running `perView` number of slides from the end. Use this\n * option if you don't want to have an empty space after\n * a slider. Works only with `slider` type and a\n * non-centered `focusAt` setting.\n *\n * @type {Boolean}\n */\n bound: false,\n\n /**\n * Minimal swipe distance needed to change the slide. Use `false` for turning off a swiping.\n *\n * @type {Number|Boolean}\n */\n swipeThreshold: 80,\n\n /**\n * Minimal mouse drag distance needed to change the slide. Use `false` for turning off a dragging.\n *\n * @type {Number|Boolean}\n */\n dragThreshold: 120,\n\n /**\n * A maximum number of slides to which movement will be made on swiping or dragging. Use `false` for unlimited.\n *\n * @type {Number|Boolean}\n */\n perTouch: false,\n\n /**\n * Moving distance ratio of the slides on a swiping and dragging.\n *\n * @type {Number}\n */\n touchRatio: 0.5,\n\n /**\n * Angle required to activate slides moving on swiping or dragging.\n *\n * @type {Number}\n */\n touchAngle: 45,\n\n /**\n * Duration of the animation in milliseconds.\n *\n * @type {Number}\n */\n animationDuration: 400,\n\n /**\n * Allows looping the `slider` type. Slider will rewind to the first/last slide when it's at the start/end.\n *\n * @type {Boolean}\n */\n rewind: true,\n\n /**\n * Duration of the rewinding animation of the `slider` type in milliseconds.\n *\n * @type {Number}\n */\n rewindDuration: 800,\n\n /**\n * Easing function for the animation.\n *\n * @type {String}\n */\n animationTimingFunc: 'cubic-bezier(.165, .840, .440, 1)',\n\n /**\n * Throttle costly events at most once per every wait milliseconds.\n *\n * @type {Number}\n */\n throttle: 10,\n\n /**\n * Moving direction mode.\n *\n * Available inputs:\n * - 'ltr' - left to right movement,\n * - 'rtl' - right to left movement.\n *\n * @type {String}\n */\n direction: 'ltr',\n\n /**\n * The distance value of the next and previous viewports which\n * have to peek in the current view. Accepts number and\n * pixels as a string. Left and right peeking can be\n * set up separately with a directions object.\n *\n * For example:\n * `100` - Peek 100px on the both sides.\n * { before: 100, after: 50 }` - Peek 100px on the left side and 50px on the right side.\n *\n * @type {Number|String|Object}\n */\n peek: 0,\n\n /**\n * Collection of options applied at specified media breakpoints.\n * For example: display two slides per view under 800px.\n * `{\n * '800px': {\n * perView: 2\n * }\n * }`\n */\n breakpoints: {},\n\n /**\n * Collection of internally used HTML classes.\n *\n * @todo Refactor `slider` and `carousel` properties to single `type: { slider: '', carousel: '' }` object\n * @type {Object}\n */\n classes: {\n direction: {\n ltr: 'glide--ltr',\n rtl: 'glide--rtl'\n },\n slider: 'glide--slider',\n carousel: 'glide--carousel',\n swipeable: 'glide--swipeable',\n dragging: 'glide--dragging',\n cloneSlide: 'glide__slide--clone',\n activeNav: 'glide__bullet--active',\n activeSlide: 'glide__slide--active',\n disabledArrow: 'glide__arrow--disabled'\n }\n};\n\n/**\n * Outputs warning message to the bowser console.\n *\n * @param {String} msg\n * @return {Void}\n */\nfunction warn(msg) {\n console.error(\"[Glide warn]: \" + msg);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n/**\n * Converts value entered as number\n * or string to integer value.\n *\n * @param {String} value\n * @returns {Number}\n */\nfunction toInt(value) {\n return parseInt(value);\n}\n\n/**\n * Converts value entered as number\n * or string to flat value.\n *\n * @param {String} value\n * @returns {Number}\n */\nfunction toFloat(value) {\n return parseFloat(value);\n}\n\n/**\n * Indicates whether the specified value is a string.\n *\n * @param {*} value\n * @return {Boolean}\n */\nfunction isString(value) {\n return typeof value === 'string';\n}\n\n/**\n * Indicates whether the specified value is an object.\n *\n * @param {*} value\n * @return {Boolean}\n *\n * @see https://github.com/jashkenas/underscore\n */\nfunction isObject(value) {\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\n return type === 'function' || type === 'object' && !!value; // eslint-disable-line no-mixed-operators\n}\n\n/**\n * Indicates whether the specified value is a number.\n *\n * @param {*} value\n * @return {Boolean}\n */\nfunction isNumber(value) {\n return typeof value === 'number';\n}\n\n/**\n * Indicates whether the specified value is a function.\n *\n * @param {*} value\n * @return {Boolean}\n */\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\n/**\n * Indicates whether the specified value is undefined.\n *\n * @param {*} value\n * @return {Boolean}\n */\nfunction isUndefined(value) {\n return typeof value === 'undefined';\n}\n\n/**\n * Indicates whether the specified value is an array.\n *\n * @param {*} value\n * @return {Boolean}\n */\nfunction isArray(value) {\n return value.constructor === Array;\n}\n\n/**\n * Creates and initializes specified collection of extensions.\n * Each extension receives access to instance of glide and rest of components.\n *\n * @param {Object} glide\n * @param {Object} extensions\n *\n * @returns {Object}\n */\nfunction mount(glide, extensions, events) {\n var components = {};\n\n for (var name in extensions) {\n if (isFunction(extensions[name])) {\n components[name] = extensions[name](glide, components, events);\n } else {\n warn('Extension must be a function');\n }\n }\n\n for (var _name in components) {\n if (isFunction(components[_name].mount)) {\n components[_name].mount();\n }\n }\n\n return components;\n}\n\n/**\n * Defines getter and setter property on the specified object.\n *\n * @param {Object} obj Object where property has to be defined.\n * @param {String} prop Name of the defined property.\n * @param {Object} definition Get and set definitions for the property.\n * @return {Void}\n */\nfunction define(obj, prop, definition) {\n Object.defineProperty(obj, prop, definition);\n}\n\n/**\n * Sorts aphabetically object keys.\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction sortKeys(obj) {\n return Object.keys(obj).sort().reduce(function (r, k) {\n r[k] = obj[k];\n\n return r[k], r;\n }, {});\n}\n\n/**\n * Merges passed settings object with default options.\n *\n * @param {Object} defaults\n * @param {Object} settings\n * @return {Object}\n */\nfunction mergeOptions(defaults, settings) {\n var options = _extends({}, defaults, settings);\n\n // `Object.assign` do not deeply merge objects, so we\n // have to do it manually for every nested object\n // in options. Although it does not look smart,\n // it's smaller and faster than some fancy\n // merging deep-merge algorithm script.\n if (settings.hasOwnProperty('classes')) {\n options.classes = _extends({}, defaults.classes, settings.classes);\n\n if (settings.classes.hasOwnProperty('direction')) {\n options.classes.direction = _extends({}, defaults.classes.direction, settings.classes.direction);\n }\n }\n\n if (settings.hasOwnProperty('breakpoints')) {\n options.breakpoints = _extends({}, defaults.breakpoints, settings.breakpoints);\n }\n\n return options;\n}\n\nvar EventsBus = function () {\n /**\n * Construct a EventBus instance.\n *\n * @param {Object} events\n */\n function EventsBus() {\n var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n classCallCheck(this, EventsBus);\n\n this.events = events;\n this.hop = events.hasOwnProperty;\n }\n\n /**\n * Adds listener to the specifed event.\n *\n * @param {String|Array} event\n * @param {Function} handler\n */\n\n\n createClass(EventsBus, [{\n key: 'on',\n value: function on(event, handler) {\n if (isArray(event)) {\n for (var i = 0; i < event.length; i++) {\n this.on(event[i], handler);\n }\n }\n\n // Create the event's object if not yet created\n if (!this.hop.call(this.events, event)) {\n this.events[event] = [];\n }\n\n // Add the handler to queue\n var index = this.events[event].push(handler) - 1;\n\n // Provide handle back for removal of event\n return {\n remove: function remove() {\n delete this.events[event][index];\n }\n };\n }\n\n /**\n * Runs registered handlers for specified event.\n *\n * @param {String|Array} event\n * @param {Object=} context\n */\n\n }, {\n key: 'emit',\n value: function emit(event, context) {\n if (isArray(event)) {\n for (var i = 0; i < event.length; i++) {\n this.emit(event[i], context);\n }\n }\n\n // If the event doesn't exist, or there's no handlers in queue, just leave\n if (!this.hop.call(this.events, event)) {\n return;\n }\n\n // Cycle through events queue, fire!\n this.events[event].forEach(function (item) {\n item(context || {});\n });\n }\n }]);\n return EventsBus;\n}();\n\nvar Glide = function () {\n /**\r\n * Construct glide.\r\n *\r\n * @param {String} selector\r\n * @param {Object} options\r\n */\n function Glide(selector) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, Glide);\n\n this._c = {};\n this._t = [];\n this._e = new EventsBus();\n\n this.disabled = false;\n this.selector = selector;\n this.settings = mergeOptions(defaults, options);\n this.index = this.settings.startAt;\n }\n\n /**\r\n * Initializes glide.\r\n *\r\n * @param {Object} extensions Collection of extensions to initialize.\r\n * @return {Glide}\r\n */\n\n\n createClass(Glide, [{\n key: 'mount',\n value: function mount$$1() {\n var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this._e.emit('mount.before');\n\n if (isObject(extensions)) {\n this._c = mount(this, extensions, this._e);\n } else {\n warn('You need to provide a object on `mount()`');\n }\n\n this._e.emit('mount.after');\n\n return this;\n }\n\n /**\r\n * Collects an instance `translate` transformers.\r\n *\r\n * @param {Array} transformers Collection of transformers.\r\n * @return {Void}\r\n */\n\n }, {\n key: 'mutate',\n value: function mutate() {\n var transformers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (isArray(transformers)) {\n this._t = transformers;\n } else {\n warn('You need to provide a array on `mutate()`');\n }\n\n return this;\n }\n\n /**\r\n * Updates glide with specified settings.\r\n *\r\n * @param {Object} settings\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'update',\n value: function update() {\n var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.settings = mergeOptions(this.settings, settings);\n\n if (settings.hasOwnProperty('startAt')) {\n this.index = settings.startAt;\n }\n\n this._e.emit('update');\n\n return this;\n }\n\n /**\r\n * Change slide with specified pattern. A pattern must be in the special format:\r\n * `>` - Move one forward\r\n * `<` - Move one backward\r\n * `={i}` - Go to {i} zero-based slide (eq. '=1', will go to second slide)\r\n * `>>` - Rewinds to end (last slide)\r\n * `<<` - Rewinds to start (first slide)\r\n *\r\n * @param {String} pattern\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'go',\n value: function go(pattern) {\n this._c.Run.make(pattern);\n\n return this;\n }\n\n /**\r\n * Move track by specified distance.\r\n *\r\n * @param {String} distance\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'move',\n value: function move(distance) {\n this._c.Transition.disable();\n this._c.Move.make(distance);\n\n return this;\n }\n\n /**\r\n * Destroy instance and revert all changes done by this._c.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this._e.emit('destroy');\n\n return this;\n }\n\n /**\r\n * Start instance autoplaying.\r\n *\r\n * @param {Boolean|Number} interval Run autoplaying with passed interval regardless of `autoplay` settings\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'play',\n value: function play() {\n var interval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (interval) {\n this.settings.autoplay = interval;\n }\n\n this._e.emit('play');\n\n return this;\n }\n\n /**\r\n * Stop instance autoplaying.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'pause',\n value: function pause() {\n this._e.emit('pause');\n\n return this;\n }\n\n /**\r\n * Sets glide into a idle status.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'disable',\n value: function disable() {\n this.disabled = true;\n\n return this;\n }\n\n /**\r\n * Sets glide into a active status.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'enable',\n value: function enable() {\n this.disabled = false;\n\n return this;\n }\n\n /**\r\n * Adds cuutom event listener with handler.\r\n *\r\n * @param {String|Array} event\r\n * @param {Function} handler\r\n * @return {Glide}\r\n */\n\n }, {\n key: 'on',\n value: function on(event, handler) {\n this._e.on(event, handler);\n\n return this;\n }\n\n /**\r\n * Checks if glide is a precised type.\r\n *\r\n * @param {String} name\r\n * @return {Boolean}\r\n */\n\n }, {\n key: 'isType',\n value: function isType(name) {\n return this.settings.type === name;\n }\n\n /**\r\n * Gets value of the core options.\r\n *\r\n * @return {Object}\r\n */\n\n }, {\n key: 'settings',\n get: function get$$1() {\n return this._o;\n }\n\n /**\r\n * Sets value of the core options.\r\n *\r\n * @param {Object} o\r\n * @return {Void}\r\n */\n ,\n set: function set$$1(o) {\n if (isObject(o)) {\n this._o = o;\n } else {\n warn('Options must be an `object` instance.');\n }\n }\n\n /**\r\n * Gets current index of the slider.\r\n *\r\n * @return {Object}\r\n */\n\n }, {\n key: 'index',\n get: function get$$1() {\n return this._i;\n }\n\n /**\r\n * Sets current index a slider.\r\n *\r\n * @return {Object}\r\n */\n ,\n set: function set$$1(i) {\n this._i = toInt(i);\n }\n\n /**\r\n * Gets type name of the slider.\r\n *\r\n * @return {String}\r\n */\n\n }, {\n key: 'type',\n get: function get$$1() {\n return this.settings.type;\n }\n\n /**\r\n * Gets value of the idle status.\r\n *\r\n * @return {Boolean}\r\n */\n\n }, {\n key: 'disabled',\n get: function get$$1() {\n return this._d;\n }\n\n /**\r\n * Sets value of the idle status.\r\n *\r\n * @return {Boolean}\r\n */\n ,\n set: function set$$1(status) {\n this._d = !!status;\n }\n }]);\n return Glide;\n}();\n\nfunction Run (Glide, Components, Events) {\n var Run = {\n /**\n * Initializes autorunning of the glide.\n *\n * @return {Void}\n */\n mount: function mount() {\n this._o = false;\n },\n\n\n /**\n * Makes glides running based on the passed moving schema.\n *\n * @param {String} move\n */\n make: function make(move) {\n var _this = this;\n\n if (!Glide.disabled) {\n Glide.disable();\n\n this.move = move;\n\n Events.emit('run.before', this.move);\n\n this.calculate();\n\n Events.emit('run', this.move);\n\n Components.Transition.after(function () {\n if (_this.isStart()) {\n Events.emit('run.start', _this.move);\n }\n\n if (_this.isEnd()) {\n Events.emit('run.end', _this.move);\n }\n\n if (_this.isOffset('<') || _this.isOffset('>')) {\n _this._o = false;\n\n Events.emit('run.offset', _this.move);\n }\n\n Events.emit('run.after', _this.move);\n\n Glide.enable();\n });\n }\n },\n\n\n /**\n * Calculates current index based on defined move.\n *\n * @return {Void}\n */\n calculate: function calculate() {\n var move = this.move,\n length = this.length;\n var steps = move.steps,\n direction = move.direction;\n\n\n var countableSteps = isNumber(toInt(steps)) && toInt(steps) !== 0;\n\n switch (direction) {\n case '>':\n if (steps === '>') {\n Glide.index = length;\n } else if (this.isEnd()) {\n if (!(Glide.isType('slider') && !Glide.settings.rewind)) {\n this._o = true;\n\n Glide.index = 0;\n }\n } else if (countableSteps) {\n Glide.index += Math.min(length - Glide.index, -toInt(steps));\n } else {\n Glide.index++;\n }\n break;\n\n case '<':\n if (steps === '<') {\n Glide.index = 0;\n } else if (this.isStart()) {\n if (!(Glide.isType('slider') && !Glide.settings.rewind)) {\n this._o = true;\n\n Glide.index = length;\n }\n } else if (countableSteps) {\n Glide.index -= Math.min(Glide.index, toInt(steps));\n } else {\n Glide.index--;\n }\n break;\n\n case '=':\n Glide.index = steps;\n break;\n\n default:\n warn('Invalid direction pattern [' + direction + steps + '] has been used');\n break;\n }\n },\n\n\n /**\n * Checks if we are on the first slide.\n *\n * @return {Boolean}\n */\n isStart: function isStart() {\n return Glide.index === 0;\n },\n\n\n /**\n * Checks if we are on the last slide.\n *\n * @return {Boolean}\n */\n isEnd: function isEnd() {\n return Glide.index === this.length;\n },\n\n\n /**\n * Checks if we are making a offset run.\n *\n * @param {String} direction\n * @return {Boolean}\n */\n isOffset: function isOffset(direction) {\n return this._o && this.move.direction === direction;\n }\n };\n\n define(Run, 'move', {\n /**\n * Gets value of the move schema.\n *\n * @returns {Object}\n */\n get: function get() {\n return this._m;\n },\n\n\n /**\n * Sets value of the move schema.\n *\n * @returns {Object}\n */\n set: function set(value) {\n var step = value.substr(1);\n\n this._m = {\n direction: value.substr(0, 1),\n steps: step ? toInt(step) ? toInt(step) : step : 0\n };\n }\n });\n\n define(Run, 'length', {\n /**\n * Gets value of the running distance based\n * on zero-indexing number of slides.\n *\n * @return {Number}\n */\n get: function get() {\n var settings = Glide.settings;\n var length = Components.Html.slides.length;\n\n // If the `bound` option is acitve, a maximum running distance should be\n // reduced by `perView` and `focusAt` settings. Running distance\n // should end before creating an empty space after instance.\n\n if (Glide.isType('slider') && settings.focusAt !== 'center' && settings.bound) {\n return length - 1 - (toInt(settings.perView) - 1) + toInt(settings.focusAt);\n }\n\n return length - 1;\n }\n });\n\n define(Run, 'offset', {\n /**\n * Gets status of the offsetting flag.\n *\n * @return {Boolean}\n */\n get: function get() {\n return this._o;\n }\n });\n\n return Run;\n}\n\n/**\n * Returns a current time.\n *\n * @return {Number}\n */\nfunction now() {\n return new Date().getTime();\n}\n\n/**\n * Returns a function, that, when invoked, will only be triggered\n * at most once during a given window of time.\n *\n * @param {Function} func\n * @param {Number} wait\n * @param {Object=} options\n * @return {Function}\n *\n * @see https://github.com/jashkenas/underscore\n */\nfunction throttle(func, wait, options) {\n var timeout = void 0,\n context = void 0,\n args = void 0,\n result = void 0;\n var previous = 0;\n if (!options) options = {};\n\n var later = function later() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function throttled() {\n var at = now();\n if (!previous && options.leading === false) previous = at;\n var remaining = wait - (at - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = at;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function () {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\nvar MARGIN_TYPE = {\n ltr: ['marginLeft', 'marginRight'],\n rtl: ['marginRight', 'marginLeft']\n};\n\nfunction Gaps (Glide, Components, Events) {\n var Gaps = {\n /**\n * Applies gaps between slides. First and last\n * slides do not receive it's edge margins.\n *\n * @param {HTMLCollection} slides\n * @return {Void}\n */\n apply: function apply(slides) {\n for (var i = 0, len = slides.length; i < len; i++) {\n var style = slides[i].style;\n var direction = Components.Direction.value;\n\n if (i !== 0) {\n style[MARGIN_TYPE[direction][0]] = this.value / 2 + 'px';\n } else {\n style[MARGIN_TYPE[direction][0]] = '';\n }\n\n if (i !== slides.length - 1) {\n style[MARGIN_TYPE[direction][1]] = this.value / 2 + 'px';\n } else {\n style[MARGIN_TYPE[direction][1]] = '';\n }\n }\n },\n\n\n /**\n * Removes gaps from the slides.\n *\n * @param {HTMLCollection} slides\n * @returns {Void}\n */\n remove: function remove(slides) {\n for (var i = 0, len = slides.length; i < len; i++) {\n var style = slides[i].style;\n\n style.marginLeft = '';\n style.marginRight = '';\n }\n }\n };\n\n define(Gaps, 'value', {\n /**\n * Gets value of the gap.\n *\n * @returns {Number}\n */\n get: function get() {\n return toInt(Glide.settings.gap);\n }\n });\n\n define(Gaps, 'grow', {\n /**\n * Gets additional dimentions value caused by gaps.\n * Used to increase width of the slides wrapper.\n *\n * @returns {Number}\n */\n get: function get() {\n return Gaps.value * (Components.Sizes.length - 1);\n }\n });\n\n define(Gaps, 'reductor', {\n /**\n * Gets reduction value caused by gaps.\n * Used to subtract width of the slides.\n *\n * @returns {Number}\n */\n get: function get() {\n var perView = Glide.settings.perView;\n\n return Gaps.value * (perView - 1) / perView;\n }\n });\n\n /**\n * Apply calculated gaps:\n * - after building, so slides (including clones) will receive proper margins\n * - on updating via API, to recalculate gaps with new options\n */\n Events.on(['build.after', 'update'], throttle(function () {\n Gaps.apply(Components.Html.wrapper.children);\n }, 30));\n\n /**\n * Remove gaps:\n * - on destroying to bring markup to its inital state\n */\n Events.on('destroy', function () {\n Gaps.remove(Components.Html.wrapper.children);\n });\n\n return Gaps;\n}\n\n/**\n * Finds siblings nodes of the passed node.\n *\n * @param {Element} node\n * @return {Array}\n */\nfunction siblings(node) {\n if (node && node.parentNode) {\n var n = node.parentNode.firstChild;\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== node) {\n matched.push(n);\n }\n }\n\n return matched;\n }\n\n return [];\n}\n\n/**\n * Checks if passed node exist and is a valid element.\n *\n * @param {Element} node\n * @return {Boolean}\n */\nfunction exist(node) {\n if (node && node instanceof window.HTMLElement) {\n return true;\n }\n\n return false;\n}\n\nvar TRACK_SELECTOR = '[data-glide-el=\"track\"]';\n\nfunction Html (Glide, Components) {\n var Html = {\n /**\n * Setup slider HTML nodes.\n *\n * @param {Glide} glide\n */\n mount: function mount() {\n this.root = Glide.selector;\n this.track = this.root.querySelector(TRACK_SELECTOR);\n this.slides = Array.prototype.slice.call(this.wrapper.children).filter(function (slide) {\n return !slide.classList.contains(Glide.settings.classes.cloneSlide);\n });\n }\n };\n\n define(Html, 'root', {\n /**\n * Gets node of the glide main element.\n *\n * @return {Object}\n */\n get: function get() {\n return Html._r;\n },\n\n\n /**\n * Sets node of the glide main element.\n *\n * @return {Object}\n */\n set: function set(r) {\n if (isString(r)) {\n r = document.querySelector(r);\n }\n\n if (exist(r)) {\n Html._r = r;\n } else {\n warn('Root element must be a existing Html node');\n }\n }\n });\n\n define(Html, 'track', {\n /**\n * Gets node of the glide track with slides.\n *\n * @return {Object}\n */\n get: function get() {\n return Html._t;\n },\n\n\n /**\n * Sets node of the glide track with slides.\n *\n * @return {Object}\n */\n set: function set(t) {\n if (exist(t)) {\n Html._t = t;\n } else {\n warn('Could not find track element. Please use ' + TRACK_SELECTOR + ' attribute.');\n }\n }\n });\n\n define(Html, 'wrapper', {\n /**\n * Gets node of the slides wrapper.\n *\n * @return {Object}\n */\n get: function get() {\n return Html.track.children[0];\n }\n });\n\n return Html;\n}\n\nfunction Peek (Glide, Components, Events) {\n var Peek = {\n /**\n * Setups how much to peek based on settings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.value = Glide.settings.peek;\n }\n };\n\n define(Peek, 'value', {\n /**\n * Gets value of the peek.\n *\n * @returns {Number|Object}\n */\n get: function get() {\n return Peek._v;\n },\n\n\n /**\n * Sets value of the peek.\n *\n * @param {Number|Object} value\n * @return {Void}\n */\n set: function set(value) {\n if (isObject(value)) {\n value.before = toInt(value.before);\n value.after = toInt(value.after);\n } else {\n value = toInt(value);\n }\n\n Peek._v = value;\n }\n });\n\n define(Peek, 'reductor', {\n /**\n * Gets reduction value caused by peek.\n *\n * @returns {Number}\n */\n get: function get() {\n var value = Peek.value;\n var perView = Glide.settings.perView;\n\n if (isObject(value)) {\n return value.before / perView + value.after / perView;\n }\n\n return value * 2 / perView;\n }\n });\n\n /**\n * Recalculate peeking sizes on:\n * - when resizing window to update to proper percents\n */\n Events.on(['resize', 'update'], function () {\n Peek.mount();\n });\n\n return Peek;\n}\n\nfunction Move (Glide, Components, Events) {\n var Move = {\n /**\n * Constructs move component.\n *\n * @returns {Void}\n */\n mount: function mount() {\n this._o = 0;\n },\n\n\n /**\n * Calculates a movement value based on passed offset and currently active index.\n *\n * @param {Number} offset\n * @return {Void}\n */\n make: function make() {\n var _this = this;\n\n var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n this.offset = offset;\n\n Events.emit('move', {\n movement: this.value\n });\n\n Components.Transition.after(function () {\n Events.emit('move.after', {\n movement: _this.value\n });\n });\n }\n };\n\n define(Move, 'offset', {\n /**\n * Gets an offset value used to modify current translate.\n *\n * @return {Object}\n */\n get: function get() {\n return Move._o;\n },\n\n\n /**\n * Sets an offset value used to modify current translate.\n *\n * @return {Object}\n */\n set: function set(value) {\n Move._o = !isUndefined(value) ? toInt(value) : 0;\n }\n });\n\n define(Move, 'translate', {\n /**\n * Gets a raw movement value.\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Sizes.slideWidth * Glide.index;\n }\n });\n\n define(Move, 'value', {\n /**\n * Gets an actual movement value corrected by offset.\n *\n * @return {Number}\n */\n get: function get() {\n var offset = this.offset;\n var translate = this.translate;\n\n if (Components.Direction.is('rtl')) {\n return translate + offset;\n }\n\n return translate - offset;\n }\n });\n\n /**\n * Make movement to proper slide on:\n * - before build, so glide will start at `startAt` index\n * - on each standard run to move to newly calculated index\n */\n Events.on(['build.before', 'run'], function () {\n Move.make();\n });\n\n return Move;\n}\n\nfunction Sizes (Glide, Components, Events) {\n var Sizes = {\n /**\n * Setups dimentions of slides.\n *\n * @return {Void}\n */\n setupSlides: function setupSlides() {\n var width = this.slideWidth + 'px';\n var slides = Components.Html.slides;\n\n for (var i = 0; i < slides.length; i++) {\n slides[i].style.width = width;\n }\n },\n\n\n /**\n * Setups dimentions of slides wrapper.\n *\n * @return {Void}\n */\n setupWrapper: function setupWrapper(dimention) {\n Components.Html.wrapper.style.width = this.wrapperSize + 'px';\n },\n\n\n /**\n * Removes applied styles from HTML elements.\n *\n * @returns {Void}\n */\n remove: function remove() {\n var slides = Components.Html.slides;\n\n for (var i = 0; i < slides.length; i++) {\n slides[i].style.width = '';\n }\n\n Components.Html.wrapper.style.width = '';\n }\n };\n\n define(Sizes, 'length', {\n /**\n * Gets count number of the slides.\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Html.slides.length;\n }\n });\n\n define(Sizes, 'width', {\n /**\n * Gets width value of the glide.\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Html.root.offsetWidth;\n }\n });\n\n define(Sizes, 'wrapperSize', {\n /**\n * Gets size of the slides wrapper.\n *\n * @return {Number}\n */\n get: function get() {\n return Sizes.slideWidth * Sizes.length + Components.Gaps.grow + Components.Clones.grow;\n }\n });\n\n define(Sizes, 'slideWidth', {\n /**\n * Gets width value of the single slide.\n *\n * @return {Number}\n */\n get: function get() {\n return Sizes.width / Glide.settings.perView - Components.Peek.reductor - Components.Gaps.reductor;\n }\n });\n\n /**\n * Apply calculated glide's dimensions:\n * - before building, so other dimentions (e.g. translate) will be calculated propertly\n * - when resizing window to recalculate sildes dimensions\n * - on updating via API, to calculate dimensions based on new options\n */\n Events.on(['build.before', 'resize', 'update'], function () {\n Sizes.setupSlides();\n Sizes.setupWrapper();\n });\n\n /**\n * Remove calculated glide's dimensions:\n * - on destoting to bring markup to its inital state\n */\n Events.on('destroy', function () {\n Sizes.remove();\n });\n\n return Sizes;\n}\n\nfunction Build (Glide, Components, Events) {\n var Build = {\n /**\n * Init glide building. Adds classes, sets\n * dimensions and setups initial state.\n *\n * @return {Void}\n */\n mount: function mount() {\n Events.emit('build.before');\n\n this.typeClass();\n this.activeClass();\n\n Events.emit('build.after');\n },\n\n\n /**\n * Adds `type` class to the glide element.\n *\n * @return {Void}\n */\n typeClass: function typeClass() {\n Components.Html.root.classList.add(Glide.settings.classes[Glide.settings.type]);\n },\n\n\n /**\n * Sets active class to current slide.\n *\n * @return {Void}\n */\n activeClass: function activeClass() {\n var classes = Glide.settings.classes;\n var slide = Components.Html.slides[Glide.index];\n\n if (slide) {\n slide.classList.add(classes.activeSlide);\n\n siblings(slide).forEach(function (sibling) {\n sibling.classList.remove(classes.activeSlide);\n });\n }\n },\n\n\n /**\n * Removes HTML classes applied at building.\n *\n * @return {Void}\n */\n removeClasses: function removeClasses() {\n var classes = Glide.settings.classes;\n\n Components.Html.root.classList.remove(classes[Glide.settings.type]);\n\n Components.Html.slides.forEach(function (sibling) {\n sibling.classList.remove(classes.activeSlide);\n });\n }\n };\n\n /**\n * Clear building classes:\n * - on destroying to bring HTML to its initial state\n * - on updating to remove classes before remounting component\n */\n Events.on(['destroy', 'update'], function () {\n Build.removeClasses();\n });\n\n /**\n * Remount component:\n * - on resizing of the window to calculate new dimentions\n * - on updating settings via API\n */\n Events.on(['resize', 'update'], function () {\n Build.mount();\n });\n\n /**\n * Swap active class of current slide:\n * - after each move to the new index\n */\n Events.on('move.after', function () {\n Build.activeClass();\n });\n\n return Build;\n}\n\nfunction Clones (Glide, Components, Events) {\n var Clones = {\n /**\n * Create pattern map and collect slides to be cloned.\n */\n mount: function mount() {\n this.items = [];\n\n if (Glide.isType('carousel')) {\n this.items = this.collect();\n }\n },\n\n\n /**\n * Collect clones with pattern.\n *\n * @return {Void}\n */\n collect: function collect() {\n var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var slides = Components.Html.slides;\n var _Glide$settings = Glide.settings,\n perView = _Glide$settings.perView,\n classes = _Glide$settings.classes;\n\n\n var peekIncrementer = +!!Glide.settings.peek;\n var part = perView + peekIncrementer;\n var start = slides.slice(0, part);\n var end = slides.slice(-part);\n\n for (var r = 0; r < Math.max(1, Math.floor(perView / slides.length)); r++) {\n for (var i = 0; i < start.length; i++) {\n var clone = start[i].cloneNode(true);\n\n clone.classList.add(classes.cloneSlide);\n\n items.push(clone);\n }\n\n for (var _i = 0; _i < end.length; _i++) {\n var _clone = end[_i].cloneNode(true);\n\n _clone.classList.add(classes.cloneSlide);\n\n items.unshift(_clone);\n }\n }\n\n return items;\n },\n\n\n /**\n * Append cloned slides with generated pattern.\n *\n * @return {Void}\n */\n append: function append() {\n var items = this.items;\n var _Components$Html = Components.Html,\n wrapper = _Components$Html.wrapper,\n slides = _Components$Html.slides;\n\n\n var half = Math.floor(items.length / 2);\n var prepend = items.slice(0, half).reverse();\n var append = items.slice(half, items.length);\n var width = Components.Sizes.slideWidth + 'px';\n\n for (var i = 0; i < append.length; i++) {\n wrapper.appendChild(append[i]);\n }\n\n for (var _i2 = 0; _i2 < prepend.length; _i2++) {\n wrapper.insertBefore(prepend[_i2], slides[0]);\n }\n\n for (var _i3 = 0; _i3 < items.length; _i3++) {\n items[_i3].style.width = width;\n }\n },\n\n\n /**\n * Remove all cloned slides.\n *\n * @return {Void}\n */\n remove: function remove() {\n var items = this.items;\n\n\n for (var i = 0; i < items.length; i++) {\n Components.Html.wrapper.removeChild(items[i]);\n }\n }\n };\n\n define(Clones, 'grow', {\n /**\n * Gets additional dimentions value caused by clones.\n *\n * @return {Number}\n */\n get: function get() {\n return (Components.Sizes.slideWidth + Components.Gaps.value) * Clones.items.length;\n }\n });\n\n /**\n * Append additional slide's clones:\n * - while glide's type is `carousel`\n */\n Events.on('update', function () {\n Clones.remove();\n Clones.mount();\n Clones.append();\n });\n\n /**\n * Append additional slide's clones:\n * - while glide's type is `carousel`\n */\n Events.on('build.before', function () {\n if (Glide.isType('carousel')) {\n Clones.append();\n }\n });\n\n /**\n * Remove clones HTMLElements:\n * - on destroying, to bring HTML to its initial state\n */\n Events.on('destroy', function () {\n Clones.remove();\n });\n\n return Clones;\n}\n\nvar EventsBinder = function () {\n /**\n * Construct a EventsBinder instance.\n */\n function EventsBinder() {\n var listeners = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n classCallCheck(this, EventsBinder);\n\n this.listeners = listeners;\n }\n\n /**\n * Adds events listeners to arrows HTML elements.\n *\n * @param {String|Array} events\n * @param {Element|Window|Document} el\n * @param {Function} closure\n * @param {Boolean|Object} capture\n * @return {Void}\n */\n\n\n createClass(EventsBinder, [{\n key: 'on',\n value: function on(events, el, closure) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (isString(events)) {\n events = [events];\n }\n\n for (var i = 0; i < events.length; i++) {\n this.listeners[events[i]] = closure;\n\n el.addEventListener(events[i], this.listeners[events[i]], capture);\n }\n }\n\n /**\n * Removes event listeners from arrows HTML elements.\n *\n * @param {String|Array} events\n * @param {Element|Window|Document} el\n * @param {Boolean|Object} capture\n * @return {Void}\n */\n\n }, {\n key: 'off',\n value: function off(events, el) {\n var capture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (isString(events)) {\n events = [events];\n }\n\n for (var i = 0; i < events.length; i++) {\n el.removeEventListener(events[i], this.listeners[events[i]], capture);\n }\n }\n\n /**\n * Destroy collected listeners.\n *\n * @returns {Void}\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n delete this.listeners;\n }\n }]);\n return EventsBinder;\n}();\n\nfunction Resize (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n var Resize = {\n /**\n * Initializes window bindings.\n */\n mount: function mount() {\n this.bind();\n },\n\n\n /**\n * Binds `rezsize` listener to the window.\n * It's a costly event, so we are debouncing it.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('resize', window, throttle(function () {\n Events.emit('resize');\n }, Glide.settings.throttle));\n },\n\n\n /**\n * Unbinds listeners from the window.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('resize', window);\n }\n };\n\n /**\n * Remove bindings from window:\n * - on destroying, to remove added EventListener\n */\n Events.on('destroy', function () {\n Resize.unbind();\n Binder.destroy();\n });\n\n return Resize;\n}\n\nvar VALID_DIRECTIONS = ['ltr', 'rtl'];\nvar FLIPED_MOVEMENTS = {\n '>': '<',\n '<': '>',\n '=': '='\n};\n\nfunction Direction (Glide, Components, Events) {\n var Direction = {\n /**\n * Setups gap value based on settings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.value = Glide.settings.direction;\n },\n\n\n /**\n * Resolves pattern based on direction value\n *\n * @param {String} pattern\n * @returns {String}\n */\n resolve: function resolve(pattern) {\n var token = pattern.slice(0, 1);\n\n if (this.is('rtl')) {\n return pattern.split(token).join(FLIPED_MOVEMENTS[token]);\n }\n\n return pattern;\n },\n\n\n /**\n * Checks value of direction mode.\n *\n * @param {String} direction\n * @returns {Boolean}\n */\n is: function is(direction) {\n return this.value === direction;\n },\n\n\n /**\n * Applies direction class to the root HTML element.\n *\n * @return {Void}\n */\n addClass: function addClass() {\n Components.Html.root.classList.add(Glide.settings.classes.direction[this.value]);\n },\n\n\n /**\n * Removes direction class from the root HTML element.\n *\n * @return {Void}\n */\n removeClass: function removeClass() {\n Components.Html.root.classList.remove(Glide.settings.classes.direction[this.value]);\n }\n };\n\n define(Direction, 'value', {\n /**\n * Gets value of the direction.\n *\n * @returns {Number}\n */\n get: function get() {\n return Direction._v;\n },\n\n\n /**\n * Sets value of the direction.\n *\n * @param {String} value\n * @return {Void}\n */\n set: function set(value) {\n if (VALID_DIRECTIONS.indexOf(value) > -1) {\n Direction._v = value;\n } else {\n warn('Direction value must be `ltr` or `rtl`');\n }\n }\n });\n\n /**\n * Clear direction class:\n * - on destroy to bring HTML to its initial state\n * - on update to remove class before reappling bellow\n */\n Events.on(['destroy', 'update'], function () {\n Direction.removeClass();\n });\n\n /**\n * Remount component:\n * - on update to reflect changes in direction value\n */\n Events.on('update', function () {\n Direction.mount();\n });\n\n /**\n * Apply direction class:\n * - before building to apply class for the first time\n * - on updating to reapply direction class that may changed\n */\n Events.on(['build.before', 'update'], function () {\n Direction.addClass();\n });\n\n return Direction;\n}\n\n/**\n * Reflects value of glide movement.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Rtl (Glide, Components) {\n return {\n /**\n * Negates the passed translate if glide is in RTL option.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n if (Components.Direction.is('rtl')) {\n return -translate;\n }\n\n return translate;\n }\n };\n}\n\n/**\n * Updates glide movement with a `gap` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Gap (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with number in the `gap` settings.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n return translate + Components.Gaps.value * Glide.index;\n }\n };\n}\n\n/**\n * Updates glide movement with width of additional clones width.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Grow (Glide, Components) {\n return {\n /**\n * Adds to the passed translate width of the half of clones.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n return translate + Components.Clones.grow / 2;\n }\n };\n}\n\n/**\n * Updates glide movement with a `peek` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Peeking (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with a `peek` setting.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n if (Glide.settings.focusAt >= 0) {\n var peek = Components.Peek.value;\n\n if (isObject(peek)) {\n return translate - peek.before;\n }\n\n return translate - peek;\n }\n\n return translate;\n }\n };\n}\n\n/**\n * Updates glide movement with a `focusAt` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Focusing (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with index in the `focusAt` setting.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n var gap = Components.Gaps.value;\n var width = Components.Sizes.width;\n var focusAt = Glide.settings.focusAt;\n var slideWidth = Components.Sizes.slideWidth;\n\n if (focusAt === 'center') {\n return translate - (width / 2 - slideWidth / 2);\n }\n\n return translate - slideWidth * focusAt - gap * focusAt;\n }\n };\n}\n\n/**\n * Applies diffrent transformers on translate value.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction mutator (Glide, Components, Events) {\n /**\n * Merge instance transformers with collection of default transformers.\n * It's important that the Rtl component be last on the list,\n * so it reflects all previous transformations.\n *\n * @type {Array}\n */\n var TRANSFORMERS = [Gap, Grow, Peeking, Focusing].concat(Glide._t, [Rtl]);\n\n return {\n /**\n * Piplines translate value with registered transformers.\n *\n * @param {Number} translate\n * @return {Number}\n */\n mutate: function mutate(translate) {\n for (var i = 0; i < TRANSFORMERS.length; i++) {\n var transformer = TRANSFORMERS[i];\n\n if (isFunction(transformer) && isFunction(transformer().modify)) {\n translate = transformer(Glide, Components, Events).modify(translate);\n } else {\n warn('Transformer should be a function that returns an object with `modify()` method');\n }\n }\n\n return translate;\n }\n };\n}\n\nfunction Translate (Glide, Components, Events) {\n var Translate = {\n /**\n * Sets value of translate on HTML element.\n *\n * @param {Number} value\n * @return {Void}\n */\n set: function set(value) {\n var transform = mutator(Glide, Components).mutate(value);\n\n Components.Html.wrapper.style.transform = 'translate3d(' + -1 * transform + 'px, 0px, 0px)';\n },\n\n\n /**\n * Removes value of translate from HTML element.\n *\n * @return {Void}\n */\n remove: function remove() {\n Components.Html.wrapper.style.transform = '';\n }\n };\n\n /**\n * Set new translate value:\n * - on move to reflect index change\n * - on updating via API to reflect possible changes in options\n */\n Events.on('move', function (context) {\n var gap = Components.Gaps.value;\n var length = Components.Sizes.length;\n var width = Components.Sizes.slideWidth;\n\n if (Glide.isType('carousel') && Components.Run.isOffset('<')) {\n Components.Transition.after(function () {\n Events.emit('translate.jump');\n\n Translate.set(width * (length - 1));\n });\n\n return Translate.set(-width - gap * length);\n }\n\n if (Glide.isType('carousel') && Components.Run.isOffset('>')) {\n Components.Transition.after(function () {\n Events.emit('translate.jump');\n\n Translate.set(0);\n });\n\n return Translate.set(width * length + gap * length);\n }\n\n return Translate.set(context.movement);\n });\n\n /**\n * Remove translate:\n * - on destroying to bring markup to its inital state\n */\n Events.on('destroy', function () {\n Translate.remove();\n });\n\n return Translate;\n}\n\nfunction Transition (Glide, Components, Events) {\n /**\n * Holds inactivity status of transition.\n * When true transition is not applied.\n *\n * @type {Boolean}\n */\n var disabled = false;\n\n var Transition = {\n /**\n * Composes string of the CSS transition.\n *\n * @param {String} property\n * @return {String}\n */\n compose: function compose(property) {\n var settings = Glide.settings;\n\n if (!disabled) {\n return property + ' ' + this.duration + 'ms ' + settings.animationTimingFunc;\n }\n\n return property + ' 0ms ' + settings.animationTimingFunc;\n },\n\n\n /**\n * Sets value of transition on HTML element.\n *\n * @param {String=} property\n * @return {Void}\n */\n set: function set() {\n var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n\n Components.Html.wrapper.style.transition = this.compose(property);\n },\n\n\n /**\n * Removes value of transition from HTML element.\n *\n * @return {Void}\n */\n remove: function remove() {\n Components.Html.wrapper.style.transition = '';\n },\n\n\n /**\n * Runs callback after animation.\n *\n * @param {Function} callback\n * @return {Void}\n */\n after: function after(callback) {\n setTimeout(function () {\n callback();\n }, this.duration);\n },\n\n\n /**\n * Enable transition.\n *\n * @return {Void}\n */\n enable: function enable() {\n disabled = false;\n\n this.set();\n },\n\n\n /**\n * Disable transition.\n *\n * @return {Void}\n */\n disable: function disable() {\n disabled = true;\n\n this.set();\n }\n };\n\n define(Transition, 'duration', {\n /**\n * Gets duration of the transition based\n * on currently running animation type.\n *\n * @return {Number}\n */\n get: function get() {\n var settings = Glide.settings;\n\n if (Glide.isType('slider') && Components.Run.offset) {\n return settings.rewindDuration;\n }\n\n return settings.animationDuration;\n }\n });\n\n /**\n * Set transition `style` value:\n * - on each moving, because it may be cleared by offset move\n */\n Events.on('move', function () {\n Transition.set();\n });\n\n /**\n * Disable transition:\n * - before initial build to avoid transitioning from `0` to `startAt` index\n * - while resizing window and recalculating dimentions\n * - on jumping from offset transition at start and end edges in `carousel` type\n */\n Events.on(['build.before', 'resize', 'translate.jump'], function () {\n Transition.disable();\n });\n\n /**\n * Enable transition:\n * - on each running, because it may be disabled by offset move\n */\n Events.on('run', function () {\n Transition.enable();\n });\n\n /**\n * Remove transition:\n * - on destroying to bring markup to its inital state\n */\n Events.on('destroy', function () {\n Transition.remove();\n });\n\n return Transition;\n}\n\n/**\n * Test via a getter in the options object to see\n * if the passive property is accessed.\n *\n * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n */\n\nvar supportsPassive = false;\n\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n\n window.addEventListener('testPassive', null, opts);\n window.removeEventListener('testPassive', null, opts);\n} catch (e) {}\n\nvar supportsPassive$1 = supportsPassive;\n\nvar START_EVENTS = ['touchstart', 'mousedown'];\nvar MOVE_EVENTS = ['touchmove', 'mousemove'];\nvar END_EVENTS = ['touchend', 'touchcancel', 'mouseup', 'mouseleave'];\nvar MOUSE_EVENTS = ['mousedown', 'mousemove', 'mouseup', 'mouseleave'];\n\nfunction swipe (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n var swipeSin = 0;\n var swipeStartX = 0;\n var swipeStartY = 0;\n var disabled = false;\n var capture = supportsPassive$1 ? { passive: true } : false;\n\n var Swipe = {\n /**\n * Initializes swipe bindings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.bindSwipeStart();\n },\n\n\n /**\n * Handler for `swipestart` event. Calculates entry points of the user's tap.\n *\n * @param {Object} event\n * @return {Void}\n */\n start: function start(event) {\n if (!disabled && !Glide.disabled) {\n this.disable();\n\n var swipe = this.touches(event);\n\n swipeSin = null;\n swipeStartX = toInt(swipe.pageX);\n swipeStartY = toInt(swipe.pageY);\n\n this.bindSwipeMove();\n this.bindSwipeEnd();\n\n Events.emit('swipe.start');\n }\n },\n\n\n /**\n * Handler for `swipemove` event. Calculates user's tap angle and distance.\n *\n * @param {Object} event\n */\n move: function move(event) {\n if (!Glide.disabled) {\n var _Glide$settings = Glide.settings,\n touchAngle = _Glide$settings.touchAngle,\n touchRatio = _Glide$settings.touchRatio,\n classes = _Glide$settings.classes;\n\n\n var swipe = this.touches(event);\n\n var subExSx = toInt(swipe.pageX) - swipeStartX;\n var subEySy = toInt(swipe.pageY) - swipeStartY;\n var powEX = Math.abs(subExSx << 2);\n var powEY = Math.abs(subEySy << 2);\n var swipeHypotenuse = Math.sqrt(powEX + powEY);\n var swipeCathetus = Math.sqrt(powEY);\n\n swipeSin = Math.asin(swipeCathetus / swipeHypotenuse);\n\n if (swipeSin * 180 / Math.PI < touchAngle) {\n event.stopPropagation();\n\n Components.Move.make(subExSx * toFloat(touchRatio));\n\n Components.Html.root.classList.add(classes.dragging);\n\n Events.emit('swipe.move');\n } else {\n return false;\n }\n }\n },\n\n\n /**\n * Handler for `swipeend` event. Finitializes user's tap and decides about glide move.\n *\n * @param {Object} event\n * @return {Void}\n */\n end: function end(event) {\n if (!Glide.disabled) {\n var settings = Glide.settings;\n\n var swipe = this.touches(event);\n var threshold = this.threshold(event);\n\n var swipeDistance = swipe.pageX - swipeStartX;\n var swipeDeg = swipeSin * 180 / Math.PI;\n var steps = Math.round(swipeDistance / Components.Sizes.slideWidth);\n\n this.enable();\n\n if (swipeDistance > threshold && swipeDeg < settings.touchAngle) {\n // While swipe is positive and greater than threshold move backward.\n if (settings.perTouch) {\n steps = Math.min(steps, toInt(settings.perTouch));\n }\n\n if (Components.Direction.is('rtl')) {\n steps = -steps;\n }\n\n Components.Run.make(Components.Direction.resolve('<' + steps));\n } else if (swipeDistance < -threshold && swipeDeg < settings.touchAngle) {\n // While swipe is negative and lower than negative threshold move forward.\n if (settings.perTouch) {\n steps = Math.max(steps, -toInt(settings.perTouch));\n }\n\n if (Components.Direction.is('rtl')) {\n steps = -steps;\n }\n\n Components.Run.make(Components.Direction.resolve('>' + steps));\n } else {\n // While swipe don't reach distance apply previous transform.\n Components.Move.make();\n }\n\n Components.Html.root.classList.remove(settings.classes.dragging);\n\n this.unbindSwipeMove();\n this.unbindSwipeEnd();\n\n Events.emit('swipe.end');\n }\n },\n\n\n /**\n * Binds swipe's starting event.\n *\n * @return {Void}\n */\n bindSwipeStart: function bindSwipeStart() {\n var _this = this;\n\n var settings = Glide.settings;\n\n if (settings.swipeThreshold) {\n Binder.on(START_EVENTS[0], Components.Html.wrapper, function (event) {\n _this.start(event);\n }, capture);\n }\n\n if (settings.dragThreshold) {\n Binder.on(START_EVENTS[1], Components.Html.wrapper, function (event) {\n _this.start(event);\n }, capture);\n }\n },\n\n\n /**\n * Unbinds swipe's starting event.\n *\n * @return {Void}\n */\n unbindSwipeStart: function unbindSwipeStart() {\n Binder.off(START_EVENTS[0], Components.Html.wrapper, capture);\n Binder.off(START_EVENTS[1], Components.Html.wrapper, capture);\n },\n\n\n /**\n * Binds swipe's moving event.\n *\n * @return {Void}\n */\n bindSwipeMove: function bindSwipeMove() {\n var _this2 = this;\n\n Binder.on(MOVE_EVENTS, Components.Html.wrapper, throttle(function (event) {\n _this2.move(event);\n }, Glide.settings.throttle), capture);\n },\n\n\n /**\n * Unbinds swipe's moving event.\n *\n * @return {Void}\n */\n unbindSwipeMove: function unbindSwipeMove() {\n Binder.off(MOVE_EVENTS, Components.Html.wrapper, capture);\n },\n\n\n /**\n * Binds swipe's ending event.\n *\n * @return {Void}\n */\n bindSwipeEnd: function bindSwipeEnd() {\n var _this3 = this;\n\n Binder.on(END_EVENTS, Components.Html.wrapper, function (event) {\n _this3.end(event);\n });\n },\n\n\n /**\n * Unbinds swipe's ending event.\n *\n * @return {Void}\n */\n unbindSwipeEnd: function unbindSwipeEnd() {\n Binder.off(END_EVENTS, Components.Html.wrapper);\n },\n\n\n /**\n * Normalizes event touches points accorting to different types.\n *\n * @param {Object} event\n */\n touches: function touches(event) {\n if (MOUSE_EVENTS.indexOf(event.type) > -1) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n\n /**\n * Gets value of minimum swipe distance settings based on event type.\n *\n * @return {Number}\n */\n threshold: function threshold(event) {\n var settings = Glide.settings;\n\n if (MOUSE_EVENTS.indexOf(event.type) > -1) {\n return settings.dragThreshold;\n }\n\n return settings.swipeThreshold;\n },\n\n\n /**\n * Enables swipe event.\n *\n * @return {self}\n */\n enable: function enable() {\n disabled = false;\n\n Components.Transition.enable();\n\n return this;\n },\n\n\n /**\n * Disables swipe event.\n *\n * @return {self}\n */\n disable: function disable() {\n disabled = true;\n\n Components.Transition.disable();\n\n return this;\n }\n };\n\n /**\n * Add component class:\n * - after initial building\n */\n Events.on('build.after', function () {\n Components.Html.root.classList.add(Glide.settings.classes.swipeable);\n });\n\n /**\n * Remove swiping bindings:\n * - on destroying, to remove added EventListeners\n */\n Events.on('destroy', function () {\n Swipe.unbindSwipeStart();\n Swipe.unbindSwipeMove();\n Swipe.unbindSwipeEnd();\n Binder.destroy();\n });\n\n return Swipe;\n}\n\nfunction images (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n var Images = {\n /**\n * Binds listener to glide wrapper.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.bind();\n },\n\n\n /**\n * Binds `dragstart` event on wrapper to prevent dragging images.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('dragstart', Components.Html.wrapper, this.dragstart);\n },\n\n\n /**\n * Unbinds `dragstart` event on wrapper.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('dragstart', Components.Html.wrapper);\n },\n\n\n /**\n * Event handler. Prevents dragging.\n *\n * @return {Void}\n */\n dragstart: function dragstart(event) {\n event.preventDefault();\n }\n };\n\n /**\n * Remove bindings from images:\n * - on destroying, to remove added EventListeners\n */\n Events.on('destroy', function () {\n Images.unbind();\n Binder.destroy();\n });\n\n return Images;\n}\n\nfunction anchors (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n /**\n * Holds detaching status of anchors.\n * Prevents detaching of already detached anchors.\n *\n * @private\n * @type {Boolean}\n */\n var detached = false;\n\n /**\n * Holds preventing status of anchors.\n * If `true` redirection after click will be disabled.\n *\n * @private\n * @type {Boolean}\n */\n var prevented = false;\n\n var Anchors = {\n /**\n * Setups a initial state of anchors component.\n *\n * @returns {Void}\n */\n mount: function mount() {\n /**\n * Holds collection of anchors elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n this._a = Components.Html.wrapper.querySelectorAll('a');\n\n this.bind();\n },\n\n\n /**\n * Binds events to anchors inside a track.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('click', Components.Html.wrapper, this.click);\n },\n\n\n /**\n * Unbinds events attached to anchors inside a track.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('click', Components.Html.wrapper);\n },\n\n\n /**\n * Handler for click event. Prevents clicks when glide is in `prevent` status.\n *\n * @param {Object} event\n * @return {Void}\n */\n click: function click(event) {\n if (prevented) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n\n\n /**\n * Detaches anchors click event inside glide.\n *\n * @return {self}\n */\n detach: function detach() {\n prevented = true;\n\n if (!detached) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].draggable = false;\n\n this.items[i].setAttribute('data-href', this.items[i].getAttribute('href'));\n\n this.items[i].removeAttribute('href');\n }\n\n detached = true;\n }\n\n return this;\n },\n\n\n /**\n * Attaches anchors click events inside glide.\n *\n * @return {self}\n */\n attach: function attach() {\n prevented = false;\n\n if (detached) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].draggable = true;\n\n this.items[i].setAttribute('href', this.items[i].getAttribute('data-href'));\n }\n\n detached = false;\n }\n\n return this;\n }\n };\n\n define(Anchors, 'items', {\n /**\n * Gets collection of the arrows HTML elements.\n *\n * @return {HTMLElement[]}\n */\n get: function get() {\n return Anchors._a;\n }\n });\n\n /**\n * Detach anchors inside slides:\n * - on swiping, so they won't redirect to its `href` attributes\n */\n Events.on('swipe.move', function () {\n Anchors.detach();\n });\n\n /**\n * Attach anchors inside slides:\n * - after swiping and transitions ends, so they can redirect after click again\n */\n Events.on('swipe.end', function () {\n Components.Transition.after(function () {\n Anchors.attach();\n });\n });\n\n /**\n * Unbind anchors inside slides:\n * - on destroying, to bring anchors to its initial state\n */\n Events.on('destroy', function () {\n Anchors.attach();\n Anchors.unbind();\n Binder.destroy();\n });\n\n return Anchors;\n}\n\nvar NAV_SELECTOR = '[data-glide-el=\"controls[nav]\"]';\nvar CONTROLS_SELECTOR = '[data-glide-el^=\"controls\"]';\n\nfunction controls (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n var capture = supportsPassive$1 ? { passive: true } : false;\n\n var Controls = {\n /**\n * Inits arrows. Binds events listeners\n * to the arrows HTML elements.\n *\n * @return {Void}\n */\n mount: function mount() {\n /**\n * Collection of navigation HTML elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n this._n = Components.Html.root.querySelectorAll(NAV_SELECTOR);\n\n /**\n * Collection of controls HTML elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n this._c = Components.Html.root.querySelectorAll(CONTROLS_SELECTOR);\n\n this.addBindings();\n },\n\n\n /**\n * Sets active class to current slide.\n *\n * @return {Void}\n */\n setActive: function setActive() {\n for (var i = 0; i < this._n.length; i++) {\n this.addClass(this._n[i].children);\n }\n },\n\n\n /**\n * Removes active class to current slide.\n *\n * @return {Void}\n */\n removeActive: function removeActive() {\n for (var i = 0; i < this._n.length; i++) {\n this.removeClass(this._n[i].children);\n }\n },\n\n\n /**\n * Toggles active class on items inside navigation.\n *\n * @param {HTMLElement} controls\n * @return {Void}\n */\n addClass: function addClass(controls) {\n var settings = Glide.settings;\n var item = controls[Glide.index];\n\n if (item) {\n item.classList.add(settings.classes.activeNav);\n\n siblings(item).forEach(function (sibling) {\n sibling.classList.remove(settings.classes.activeNav);\n });\n }\n },\n\n\n /**\n * Removes active class from active control.\n *\n * @param {HTMLElement} controls\n * @return {Void}\n */\n removeClass: function removeClass(controls) {\n var item = controls[Glide.index];\n\n if (item) {\n item.classList.remove(Glide.settings.classes.activeNav);\n }\n },\n\n\n /**\n * Adds handles to the each group of controls.\n *\n * @return {Void}\n */\n addBindings: function addBindings() {\n for (var i = 0; i < this._c.length; i++) {\n this.bind(this._c[i].children);\n }\n },\n\n\n /**\n * Removes handles from the each group of controls.\n *\n * @return {Void}\n */\n removeBindings: function removeBindings() {\n for (var i = 0; i < this._c.length; i++) {\n this.unbind(this._c[i].children);\n }\n },\n\n\n /**\n * Binds events to arrows HTML elements.\n *\n * @param {HTMLCollection} elements\n * @return {Void}\n */\n bind: function bind(elements) {\n for (var i = 0; i < elements.length; i++) {\n Binder.on('click', elements[i], this.click);\n Binder.on('touchstart', elements[i], this.click, capture);\n }\n },\n\n\n /**\n * Unbinds events binded to the arrows HTML elements.\n *\n * @param {HTMLCollection} elements\n * @return {Void}\n */\n unbind: function unbind(elements) {\n for (var i = 0; i < elements.length; i++) {\n Binder.off(['click', 'touchstart'], elements[i]);\n }\n },\n\n\n /**\n * Handles `click` event on the arrows HTML elements.\n * Moves slider in driection precised in\n * `data-glide-dir` attribute.\n *\n * @param {Object} event\n * @return {Void}\n */\n click: function click(event) {\n event.preventDefault();\n\n Components.Run.make(Components.Direction.resolve(event.currentTarget.getAttribute('data-glide-dir')));\n }\n };\n\n define(Controls, 'items', {\n /**\n * Gets collection of the controls HTML elements.\n *\n * @return {HTMLElement[]}\n */\n get: function get() {\n return Controls._c;\n }\n });\n\n /**\n * Swap active class of current navigation item:\n * - after mounting to set it to initial index\n * - after each move to the new index\n */\n Events.on(['mount.after', 'move.after'], function () {\n Controls.setActive();\n });\n\n /**\n * Remove bindings and HTML Classes:\n * - on destroying, to bring markup to its initial state\n */\n Events.on('destroy', function () {\n Controls.removeBindings();\n Controls.removeActive();\n Binder.destroy();\n });\n\n return Controls;\n}\n\nfunction keyboard (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n var Keyboard = {\n /**\n * Binds keyboard events on component mount.\n *\n * @return {Void}\n */\n mount: function mount() {\n if (Glide.settings.keyboard) {\n this.bind();\n }\n },\n\n\n /**\n * Adds keyboard press events.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('keyup', document, this.press);\n },\n\n\n /**\n * Removes keyboard press events.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('keyup', document);\n },\n\n\n /**\n * Handles keyboard's arrows press and moving glide foward and backward.\n *\n * @param {Object} event\n * @return {Void}\n */\n press: function press(event) {\n if (event.keyCode === 39) {\n Components.Run.make(Components.Direction.resolve('>'));\n }\n\n if (event.keyCode === 37) {\n Components.Run.make(Components.Direction.resolve('<'));\n }\n }\n };\n\n /**\n * Remove bindings from keyboard:\n * - on destroying to remove added events\n * - on updating to remove events before remounting\n */\n Events.on(['destroy', 'update'], function () {\n Keyboard.unbind();\n });\n\n /**\n * Remount component\n * - on updating to reflect potential changes in settings\n */\n Events.on('update', function () {\n Keyboard.mount();\n });\n\n /**\n * Destroy binder:\n * - on destroying to remove listeners\n */\n Events.on('destroy', function () {\n Binder.destroy();\n });\n\n return Keyboard;\n}\n\nfunction autoplay (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n var Autoplay = {\n /**\n * Initializes autoplaying and events.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.start();\n\n if (Glide.settings.hoverpause) {\n this.bind();\n }\n },\n\n\n /**\n * Starts autoplaying in configured interval.\n *\n * @param {Boolean|Number} force Run autoplaying with passed interval regardless of `autoplay` settings\n * @return {Void}\n */\n start: function start() {\n var _this = this;\n\n if (Glide.settings.autoplay) {\n if (isUndefined(this._i)) {\n this._i = setInterval(function () {\n _this.stop();\n\n Components.Run.make('>');\n\n _this.start();\n }, this.time);\n }\n }\n },\n\n\n /**\n * Stops autorunning of the glide.\n *\n * @return {Void}\n */\n stop: function stop() {\n this._i = clearInterval(this._i);\n },\n\n\n /**\n * Stops autoplaying while mouse is over glide's area.\n *\n * @return {Void}\n */\n bind: function bind() {\n var _this2 = this;\n\n Binder.on('mouseover', Components.Html.root, function () {\n _this2.stop();\n });\n\n Binder.on('mouseout', Components.Html.root, function () {\n _this2.start();\n });\n },\n\n\n /**\n * Unbind mouseover events.\n *\n * @returns {Void}\n */\n unbind: function unbind() {\n Binder.off(['mouseover', 'mouseout'], Components.Html.root);\n }\n };\n\n define(Autoplay, 'time', {\n /**\n * Gets time period value for the autoplay interval. Prioritizes\n * times in `data-glide-autoplay` attrubutes over options.\n *\n * @return {Number}\n */\n get: function get() {\n var autoplay = Components.Html.slides[Glide.index].getAttribute('data-glide-autoplay');\n\n if (autoplay) {\n return toInt(autoplay);\n }\n\n return toInt(Glide.settings.autoplay);\n }\n });\n\n /**\n * Stop autoplaying and unbind events:\n * - on destroying, to clear defined interval\n * - on updating via API to reset interval that may changed\n */\n Events.on(['destroy', 'update'], function () {\n Autoplay.unbind();\n });\n\n /**\n * Stop autoplaying:\n * - before each run, to restart autoplaying\n * - on pausing via API\n * - on destroying, to clear defined interval\n * - while starting a swipe\n * - on updating via API to reset interval that may changed\n */\n Events.on(['run.before', 'pause', 'destroy', 'swipe.start', 'update'], function () {\n Autoplay.stop();\n });\n\n /**\n * Start autoplaying:\n * - after each run, to restart autoplaying\n * - on playing via API\n * - while ending a swipe\n */\n Events.on(['run.after', 'play', 'swipe.end'], function () {\n Autoplay.start();\n });\n\n /**\n * Remount autoplaying:\n * - on updating via API to reset interval that may changed\n */\n Events.on('update', function () {\n Autoplay.mount();\n });\n\n /**\n * Destroy a binder:\n * - on destroying glide instance to clearup listeners\n */\n Events.on('destroy', function () {\n Binder.destroy();\n });\n\n return Autoplay;\n}\n\n/**\n * Sorts keys of breakpoint object so they will be ordered from lower to bigger.\n *\n * @param {Object} points\n * @returns {Object}\n */\nfunction sortBreakpoints(points) {\n if (isObject(points)) {\n return sortKeys(points);\n } else {\n warn('Breakpoints option must be an object');\n }\n\n return {};\n}\n\nfunction breakpoints (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n\n /**\n * Holds reference to settings.\n *\n * @type {Object}\n */\n var settings = Glide.settings;\n\n /**\n * Holds reference to breakpoints object in settings. Sorts breakpoints\n * from smaller to larger. It is required in order to proper\n * matching currently active breakpoint settings.\n *\n * @type {Object}\n */\n var points = sortBreakpoints(settings.breakpoints);\n\n /**\n * Cache initial settings before overwritting.\n *\n * @type {Object}\n */\n var defaults = _extends({}, settings);\n\n var Breakpoints = {\n /**\n * Matches settings for currectly matching media breakpoint.\n *\n * @param {Object} points\n * @returns {Object}\n */\n match: function match(points) {\n if (typeof window.matchMedia !== 'undefined') {\n for (var point in points) {\n if (points.hasOwnProperty(point)) {\n if (window.matchMedia('(max-width: ' + point + 'px)').matches) {\n return points[point];\n }\n }\n }\n }\n\n return defaults;\n }\n };\n\n /**\n * Overwrite instance settings with currently matching breakpoint settings.\n * This happens right after component initialization.\n */\n _extends(settings, Breakpoints.match(points));\n\n /**\n * Update glide with settings of matched brekpoint:\n * - window resize to update slider\n */\n Binder.on('resize', window, throttle(function () {\n Glide.settings = mergeOptions(settings, Breakpoints.match(points));\n }, Glide.settings.throttle));\n\n /**\n * Resort and update default settings:\n * - on reinit via API, so breakpoint matching will be performed with options\n */\n Events.on('update', function () {\n points = sortBreakpoints(points);\n\n defaults = _extends({}, settings);\n });\n\n /**\n * Unbind resize listener:\n * - on destroying, to bring markup to its initial state\n */\n Events.on('destroy', function () {\n Binder.off('resize', window);\n });\n\n return Breakpoints;\n}\n\nvar COMPONENTS = {\n Html: Html,\n Translate: Translate,\n Transition: Transition,\n Direction: Direction,\n Peek: Peek,\n Sizes: Sizes,\n Gaps: Gaps,\n Move: Move,\n Clones: Clones,\n Resize: Resize,\n Build: Build,\n Run: Run\n};\n\nvar Glide$1 = function (_Core) {\n inherits(Glide$$1, _Core);\n\n function Glide$$1() {\n classCallCheck(this, Glide$$1);\n return possibleConstructorReturn(this, (Glide$$1.__proto__ || Object.getPrototypeOf(Glide$$1)).apply(this, arguments));\n }\n\n createClass(Glide$$1, [{\n key: 'mount',\n value: function mount() {\n var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return get(Glide$$1.prototype.__proto__ || Object.getPrototypeOf(Glide$$1.prototype), 'mount', this).call(this, _extends({}, COMPONENTS, extensions));\n }\n }]);\n return Glide$$1;\n}(Glide);\n\nexport default Glide$1;\nexport { swipe as Swipe, images as Images, anchors as Anchors, controls as Controls, keyboard as Keyboard, autoplay as Autoplay, breakpoints as Breakpoints };\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--2-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./feature.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--2-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./feature.vue?vue&type=script&lang=js&\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./feature.vue?vue&type=template&id=e3c52a54&scoped=true&lang=pug&\"\nimport script from \"./feature.vue?vue&type=script&lang=js&\"\nexport * from \"./feature.vue?vue&type=script&lang=js&\"\nimport style0 from \"./feature.vue?vue&type=style&index=0&id=e3c52a54&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e3c52a54\",\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',{directives:[{name:\"lazy\",rawName:\"v-lazy:background-image\",value:(require('~/assets/home/feature@2x.jpg')),expression:\"require('~/assets/home/feature@2x.jpg')\",arg:\"background-image\"}],staticClass:\"features\"},[_c('div',{staticClass:\"left-padding\"},[_c('div',{staticClass:\"prev\",on:{\"click\":function($event){return _vm.glide.go('<')}}})]),_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"main-title\"},[_vm._v(\"值得信赖的企业办公平台\")]),_c('div',{staticClass:\"sub-title\"},[_vm._v(\"深入了解企业文档管理痛点和现状,帮助企业加速信息化办公水平\")]),_c('div',{staticClass:\"glide\"},[_c('div',{staticClass:\"feature-box\",attrs:{\"data-glide-el\":\"track\"}},[_c('div',{directives:[{name:\"lazy-container\",rawName:\"v-lazy-container\",value:({ selector: 'img' }),expression:\"{ selector: 'img' }\"},{name:\"show\",rawName:\"v-show\",value:(_vm.glide),expression:\"glide\"}],ref:\"slides\",staticClass:\"glide__slides\"},_vm._l((_vm.features),function(i){return _c('div',{staticClass:\"feature glide__slide feedback\"},[_c('nuxt-link',{attrs:{\"to\":i.link,\"alt\":i.title}},[_c('img',{staticClass:\"bg\",attrs:{\"data-src\":i.bg,\"alt\":i.title,\"data-label\":((i.title) + \"-img\")}})]),_c('div',{staticClass:\"content\"},[_c('nuxt-link',{attrs:{\"to\":i.link,\"alt\":i.title}},[_c('div',{staticClass:\"title\",attrs:{\"data-label\":((i.title) + \"-title\")}},[_vm._v(_vm._s(i.title))])]),_c('nuxt-link',{attrs:{\"to\":i.link,\"alt\":i.title}},[_c('div',{staticClass:\"desc\",attrs:{\"data-label\":((i.title) + \"-content\")}},[_vm._v(_vm._s(i.desc))])])],1)],1)}),0)])])]),_c('div',{staticClass:\"right-padding\"},[_c('div',{staticClass:\"next\",on:{\"click\":function($event){return _vm.glide.go('>')}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../node_modules/babel-loader/lib/index.js??ref--2-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js??ref--2-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./more.vue?vue&type=template&id=4f86e22d&scoped=true&lang=pug&\"\nvar script = {}\nimport style0 from \"./more.vue?vue&type=style&index=0&id=4f86e22d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f86e22d\",\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:\"more\"},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"main-title\"},[_vm._v(\"更多企业产品\")]),_c('div',{staticClass:\"sub-title\"},[_vm._v(\"改变企业办公方式,提升企业办公效率\")]),_c('nuxt-link',{directives:[{name:\"cnzz\",rawName:\"v-cnzz:click\",value:(['首页_更多企业产品', '$action', '下载试用-btn']),expression:\"['首页_更多企业产品', '$action', '下载试用-btn']\",arg:\"click\"}],attrs:{\"to\":\"/download\"}},[_c('button',{staticClass:\"download feedback\"},[_vm._v(\"下载试用\")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=15cc1f5e&lang=pug&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.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"],"sourceRoot":""}