UNPKG

framework7-vue

Version:

Build full featured iOS & Android apps using Framework7 & Vue

61 lines 2.57 kB
import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createStaticVNode as _createStaticVNode } from "vue"; const _hoisted_1 = { key: 0, class: "preloader-inner" }; const _hoisted_2 = { key: 1, class: "preloader-inner" }; const _hoisted_3 = { key: 2, class: "preloader-inner" }; function render(_ctx, _cache) { return _openBlock(), _createElementBlock("div", { class: _normalizeClass(_ctx.classes), style: _normalizeStyle(_ctx.style) }, [_ctx.theme && _ctx.theme.md ? (_openBlock(), _createElementBlock("span", _hoisted_1, [...(_cache[0] || (_cache[0] = [_createElementVNode("svg", { viewBox: "0 0 36 36" }, [_createElementVNode("circle", { cx: "18", cy: "18", r: "16" })], -1)]))])) : _ctx.theme && _ctx.theme.ios ? (_openBlock(), _createElementBlock("span", _hoisted_2, [...(_cache[1] || (_cache[1] = [_createStaticVNode("<span class=\"preloader-inner-line\"></span><span class=\"preloader-inner-line\"></span><span class=\"preloader-inner-line\"></span><span class=\"preloader-inner-line\"></span><span class=\"preloader-inner-line\"></span><span class=\"preloader-inner-line\"></span><span class=\"preloader-inner-line\"></span><span class=\"preloader-inner-line\"></span>", 8)]))])) : !_ctx.theme ? (_openBlock(), _createElementBlock("span", _hoisted_3)) : _createCommentVNode("", true)], 6); } import { computed } from 'vue'; import { classNames } from '../shared/utils.js'; import { colorClasses, colorProps } from '../shared/mixins.js'; import { useTheme } from '../shared/use-theme.js'; export default { name: 'f7-preloader', render, props: { size: [Number, String], ...colorProps }, setup(props) { const theme = useTheme(); const classes = computed(() => classNames('preloader', { preloader: true }, colorClasses(props))); const style = computed(() => { const preloaderStyle = {}; let sizeComputed = props.size; if (sizeComputed && typeof sizeComputed === 'string' && sizeComputed.indexOf('px') >= 0) { sizeComputed = sizeComputed.replace('px', ''); } if (sizeComputed) { preloaderStyle.width = `${sizeComputed}px`; preloaderStyle.height = `${sizeComputed}px`; preloaderStyle['--f7-preloader-size'] = `${sizeComputed}px`; } return preloaderStyle; }); return { classes, style, theme }; } };