UNPKG

zmp-vue

Version:

Build full featured iOS & Android apps using ZMP & Vue

52 lines (47 loc) 1.78 kB
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import { createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock } from "vue"; function render(_ctx, _cache) { return _openBlock(), _createBlock("span", { ref: "elRef", class: _ctx.classes, "data-progress": _ctx.progress }, [_createVNode("span", { style: _ctx.transformStyle }, null, 4)], 10, ["data-progress"]); } import { computed, ref } from 'vue'; import { classNames } from '../shared/utils'; import { colorClasses, colorProps } from '../shared/mixins'; import { zmp } from '../shared/zmp'; export default { name: 'zmp-progressbar', render: render, props: _extends({ progress: Number, infinite: Boolean }, colorProps), setup: function setup(props) { var elRef = ref(null); var set = function set(newProgress, speed) { if (!zmp) return; zmp.progressbar.set(elRef.value, newProgress, speed); }; var transformStyle = computed(function () { return { transform: props.progress ? "translate3d(" + (-100 + props.progress) + "%, 0, 0)" : '', WebkitTransform: props.progress ? "translate3d(" + (-100 + props.progress) + "%, 0, 0)" : '' }; }); var classes = computed(function () { return classNames('progressbar', { 'progressbar-infinite': props.infinite }, colorClasses(props)); }); return { classes: classes, set: set, transformStyle: transformStyle, elRef: elRef }; } };