zmp-vue
Version:
Build full featured iOS & Android apps using ZMP & Vue
52 lines (47 loc) • 1.78 kB
JavaScript
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
};
}
};