vue3-infinite-viewer
Version:
Vue 3 Infinite Viewer is Document Viewer Component with infinite scrolling.
156 lines (133 loc) • 4.53 kB
JavaScript
/*
Copyright (c) Daybrush
name: vue3-infinite-viewer
license: MIT
author: Daybrush
repository: https://github.com/daybrush/infinite-viewer/blob/master/packages/vue-infinite-viewer
version: 0.17.1
*/
;
var VanillaInfiniteViewer = require('infinite-viewer');
var utils = require('@daybrush/utils');
var vue = require('vue');
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
var __assign = function () {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var methods = {};
VanillaInfiniteViewer.METHODS.forEach(function (name) {
methods[name] = function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return (_a = this.infiniteViewer)[name].apply(_a, args);
};
});
var script = {
name: "infinite-viewer",
methods: methods,
props: VanillaInfiniteViewer.OPTIONS,
mounted: function () {
var _this = this;
var options = {};
var props = this.$props;
VanillaInfiniteViewer.OPTIONS.forEach(function (name) {
var value = props[name];
if (!utils.isUndefined(value)) {
options[name] = props[name];
}
});
var refs = this.$refs;
this.infiniteViewer = new VanillaInfiniteViewer(refs.containerElement, refs.scrollAreaElement.nextElementSibling, __assign(__assign({}, options), {
wrapperElement: refs.wrapperElement,
scrollAreaElement: refs.scrollAreaElement,
horizontalScrollElement: refs.horizontalScrollElement,
verticalScrollElement: refs.verticalScrollElement
}));
var infiniteViewer = this.infiniteViewer;
VanillaInfiniteViewer.EVENTS.forEach(function (name) {
infiniteViewer.on(name, function (e) {
_this.$emit(name, __assign({}, e));
});
});
},
updated: function () {
var props = this.$props;
var infiniteViewer = this.infiniteViewer;
VanillaInfiniteViewer.PROPERTIES.forEach(function (name) {
var value = props[name];
if (infiniteViewer[name] !== value && !utils.isUndefined(value)) {
infiniteViewer[name] = props[name];
}
});
},
beforeUnmount: function () {
this.infiniteViewer.destroy();
}
};
const _hoisted_1 = {
ref: "containerElement"
};
const _hoisted_2 = {
ref: "wrapperElement"
};
const _hoisted_3 = {
ref: "scrollAreaElement"
};
const _hoisted_4 = {
ref: "horizontalScrollElement"
};
const _hoisted_5 = /*#__PURE__*/vue.createElementVNode("div", {
class: "infinite-viewer-scroll-thumb"
}, null, -1
/* HOISTED */
);
const _hoisted_6 = [_hoisted_5];
const _hoisted_7 = {
ref: "verticalScrollElement"
};
const _hoisted_8 = /*#__PURE__*/vue.createElementVNode("div", {
class: "infinite-viewer-scroll-thumb"
}, null, -1
/* HOISTED */
);
const _hoisted_9 = [_hoisted_8];
function render(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [vue.createElementVNode("div", _hoisted_2, [vue.createElementVNode("div", _hoisted_3, null, 512
/* NEED_PATCH */
), vue.renderSlot(_ctx.$slots, "default")], 512
/* NEED_PATCH */
), vue.createElementVNode("div", _hoisted_4, _hoisted_6, 512
/* NEED_PATCH */
), vue.createElementVNode("div", _hoisted_7, _hoisted_9, 512
/* NEED_PATCH */
)], 512
/* NEED_PATCH */
);
}
script.render = render;
script.__file = "src/InfiniteViewer.vue";
// import VueInfiniteViewer from './VueInfiniteViewer';
exports.VueInfiniteViewer = script;
exports.default = script;
//# sourceMappingURL=infinite-viewer.cjs.js.map