UNPKG

11.5 kBJavaScriptView Raw
1module.exports =
2/******/ (function(modules) { // webpackBootstrap
3/******/ // The module cache
4/******/ var installedModules = {};
5/******/
6/******/ // The require function
7/******/ function __webpack_require__(moduleId) {
8/******/
9/******/ // Check if module is in cache
10/******/ if(installedModules[moduleId]) {
11/******/ return installedModules[moduleId].exports;
12/******/ }
13/******/ // Create a new module (and put it into the cache)
14/******/ var module = installedModules[moduleId] = {
15/******/ i: moduleId,
16/******/ l: false,
17/******/ exports: {}
18/******/ };
19/******/
20/******/ // Execute the module function
21/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
22/******/
23/******/ // Flag the module as loaded
24/******/ module.l = true;
25/******/
26/******/ // Return the exports of the module
27/******/ return module.exports;
28/******/ }
29/******/
30/******/
31/******/ // expose the modules object (__webpack_modules__)
32/******/ __webpack_require__.m = modules;
33/******/
34/******/ // expose the module cache
35/******/ __webpack_require__.c = installedModules;
36/******/
37/******/ // define getter function for harmony exports
38/******/ __webpack_require__.d = function(exports, name, getter) {
39/******/ if(!__webpack_require__.o(exports, name)) {
40/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
41/******/ }
42/******/ };
43/******/
44/******/ // define __esModule on exports
45/******/ __webpack_require__.r = function(exports) {
46/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
47/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
48/******/ }
49/******/ Object.defineProperty(exports, '__esModule', { value: true });
50/******/ };
51/******/
52/******/ // create a fake namespace object
53/******/ // mode & 1: value is a module id, require it
54/******/ // mode & 2: merge all properties of value into the ns
55/******/ // mode & 4: return value when already ns object
56/******/ // mode & 8|1: behave like require
57/******/ __webpack_require__.t = function(value, mode) {
58/******/ if(mode & 1) value = __webpack_require__(value);
59/******/ if(mode & 8) return value;
60/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
61/******/ var ns = Object.create(null);
62/******/ __webpack_require__.r(ns);
63/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
64/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
65/******/ return ns;
66/******/ };
67/******/
68/******/ // getDefaultExport function for compatibility with non-harmony modules
69/******/ __webpack_require__.n = function(module) {
70/******/ var getter = module && module.__esModule ?
71/******/ function getDefault() { return module['default']; } :
72/******/ function getModuleExports() { return module; };
73/******/ __webpack_require__.d(getter, 'a', getter);
74/******/ return getter;
75/******/ };
76/******/
77/******/ // Object.prototype.hasOwnProperty.call
78/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
79/******/
80/******/ // __webpack_public_path__
81/******/ __webpack_require__.p = "/dist/";
82/******/
83/******/
84/******/ // Load entry module and return exports
85/******/ return __webpack_require__(__webpack_require__.s = 108);
86/******/ })
87/************************************************************************/
88/******/ ({
89
90/***/ 0:
91/***/ (function(module, __webpack_exports__, __webpack_require__) {
92
93"use strict";
94/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
95/* globals __VUE_SSR_CONTEXT__ */
96
97// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
98// This module is a runtime utility for cleaner component module output and will
99// be included in the final webpack user bundle.
100
101function normalizeComponent (
102 scriptExports,
103 render,
104 staticRenderFns,
105 functionalTemplate,
106 injectStyles,
107 scopeId,
108 moduleIdentifier, /* server only */
109 shadowMode /* vue-cli only */
110) {
111 // Vue.extend constructor export interop
112 var options = typeof scriptExports === 'function'
113 ? scriptExports.options
114 : scriptExports
115
116 // render functions
117 if (render) {
118 options.render = render
119 options.staticRenderFns = staticRenderFns
120 options._compiled = true
121 }
122
123 // functional template
124 if (functionalTemplate) {
125 options.functional = true
126 }
127
128 // scopedId
129 if (scopeId) {
130 options._scopeId = 'data-v-' + scopeId
131 }
132
133 var hook
134 if (moduleIdentifier) { // server build
135 hook = function (context) {
136 // 2.3 injection
137 context =
138 context || // cached call
139 (this.$vnode && this.$vnode.ssrContext) || // stateful
140 (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
141 // 2.2 with runInNewContext: true
142 if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
143 context = __VUE_SSR_CONTEXT__
144 }
145 // inject component styles
146 if (injectStyles) {
147 injectStyles.call(this, context)
148 }
149 // register component module identifier for async chunk inferrence
150 if (context && context._registeredComponents) {
151 context._registeredComponents.add(moduleIdentifier)
152 }
153 }
154 // used by ssr in case component is cached and beforeCreate
155 // never gets called
156 options._ssrRegister = hook
157 } else if (injectStyles) {
158 hook = shadowMode
159 ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
160 : injectStyles
161 }
162
163 if (hook) {
164 if (options.functional) {
165 // for template-only hot-reload because in that case the render fn doesn't
166 // go through the normalizer
167 options._injectStyles = hook
168 // register for functioal component in vue file
169 var originalRender = options.render
170 options.render = function renderWithStyleInjection (h, context) {
171 hook.call(context)
172 return originalRender(h, context)
173 }
174 } else {
175 // inject component registration as beforeCreate hook
176 var existing = options.beforeCreate
177 options.beforeCreate = existing
178 ? [].concat(existing, hook)
179 : [hook]
180 }
181 }
182
183 return {
184 exports: scriptExports,
185 options: options
186 }
187}
188
189
190/***/ }),
191
192/***/ 108:
193/***/ (function(module, __webpack_exports__, __webpack_require__) {
194
195"use strict";
196__webpack_require__.r(__webpack_exports__);
197
198// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/backtop/src/main.vue?vue&type=template&id=257dd4a9&
199var render = function() {
200 var _vm = this
201 var _h = _vm.$createElement
202 var _c = _vm._self._c || _h
203 return _c("transition", { attrs: { name: "el-fade-in" } }, [
204 _vm.visible
205 ? _c(
206 "div",
207 {
208 staticClass: "el-backtop",
209 style: {
210 right: _vm.styleRight,
211 bottom: _vm.styleBottom
212 },
213 on: {
214 click: function($event) {
215 $event.stopPropagation()
216 return _vm.handleClick($event)
217 }
218 }
219 },
220 [
221 _vm._t("default", [_c("el-icon", { attrs: { name: "caret-top" } })])
222 ],
223 2
224 )
225 : _vm._e()
226 ])
227}
228var staticRenderFns = []
229render._withStripped = true
230
231
232// CONCATENATED MODULE: ./packages/backtop/src/main.vue?vue&type=template&id=257dd4a9&
233
234// EXTERNAL MODULE: external "throttle-debounce/throttle"
235var throttle_ = __webpack_require__(25);
236var throttle_default = /*#__PURE__*/__webpack_require__.n(throttle_);
237
238// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/backtop/src/main.vue?vue&type=script&lang=js&
239//
240//
241//
242//
243//
244//
245//
246//
247//
248//
249//
250//
251//
252//
253//
254//
255//
256
257
258
259var cubic = function cubic(value) {
260 return Math.pow(value, 3);
261};
262var easeInOutCubic = function easeInOutCubic(value) {
263 return value < 0.5 ? cubic(value * 2) / 2 : 1 - cubic((1 - value) * 2) / 2;
264};
265
266/* harmony default export */ var mainvue_type_script_lang_js_ = ({
267 name: 'ElBacktop',
268
269 props: {
270 visibilityHeight: {
271 type: Number,
272 default: 200
273 },
274 target: [String],
275 right: {
276 type: Number,
277 default: 40
278 },
279 bottom: {
280 type: Number,
281 default: 40
282 }
283 },
284
285 data: function data() {
286 return {
287 el: null,
288 container: null,
289 visible: false
290 };
291 },
292
293
294 computed: {
295 styleBottom: function styleBottom() {
296 return this.bottom + 'px';
297 },
298 styleRight: function styleRight() {
299 return this.right + 'px';
300 }
301 },
302
303 mounted: function mounted() {
304 this.init();
305 this.throttledScrollHandler = throttle_default()(300, this.onScroll);
306 this.container.addEventListener('scroll', this.throttledScrollHandler);
307 },
308
309
310 methods: {
311 init: function init() {
312 this.container = document;
313 this.el = document.documentElement;
314 if (this.target) {
315 this.el = document.querySelector(this.target);
316 if (!this.el) {
317 throw new Error('target is not existed: ' + this.target);
318 }
319 this.container = this.el;
320 }
321 },
322 onScroll: function onScroll() {
323 var scrollTop = this.el.scrollTop;
324 this.visible = scrollTop >= this.visibilityHeight;
325 },
326 handleClick: function handleClick(e) {
327 this.scrollToTop();
328 this.$emit('click', e);
329 },
330 scrollToTop: function scrollToTop() {
331 var el = this.el;
332 var beginTime = Date.now();
333 var beginValue = el.scrollTop;
334 var rAF = window.requestAnimationFrame || function (func) {
335 return setTimeout(func, 16);
336 };
337 var frameFunc = function frameFunc() {
338 var progress = (Date.now() - beginTime) / 500;
339 if (progress < 1) {
340 el.scrollTop = beginValue * (1 - easeInOutCubic(progress));
341 rAF(frameFunc);
342 } else {
343 el.scrollTop = 0;
344 }
345 };
346 rAF(frameFunc);
347 }
348 },
349
350 beforeDestroy: function beforeDestroy() {
351 this.container.removeEventListener('scroll', this.throttledScrollHandler);
352 }
353});
354// CONCATENATED MODULE: ./packages/backtop/src/main.vue?vue&type=script&lang=js&
355 /* harmony default export */ var src_mainvue_type_script_lang_js_ = (mainvue_type_script_lang_js_);
356// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
357var componentNormalizer = __webpack_require__(0);
358
359// CONCATENATED MODULE: ./packages/backtop/src/main.vue
360
361
362
363
364
365/* normalize component */
366
367var component = Object(componentNormalizer["a" /* default */])(
368 src_mainvue_type_script_lang_js_,
369 render,
370 staticRenderFns,
371 false,
372 null,
373 null,
374 null
375
376)
377
378/* hot reload */
379if (false) { var api; }
380component.options.__file = "packages/backtop/src/main.vue"
381/* harmony default export */ var main = (component.exports);
382// CONCATENATED MODULE: ./packages/backtop/index.js
383
384
385/* istanbul ignore next */
386main.install = function (Vue) {
387 Vue.component(main.name, main);
388};
389
390/* harmony default export */ var backtop = __webpack_exports__["default"] = (main);
391
392/***/ }),
393
394/***/ 25:
395/***/ (function(module, exports) {
396
397module.exports = require("throttle-debounce/throttle");
398
399/***/ })
400
401/******/ });
\No newline at end of file