@progress/kendo-vue-indicators
Version:
90 lines (89 loc) • 2.43 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
import { defineComponent as t, createVNode as a } from "vue";
import { validatePackage as o } from "@progress/kendo-vue-common";
import { packageMetadata as l } from "../package-metadata.mjs";
const i = {
pulsing: 2,
"infinite-spinner": 3,
"converging-spinner": 4
}, u = /* @__PURE__ */ t({
name: "KendoLoader",
props: {
type: {
type: String,
default: "pulsing",
validator: function(e) {
return ["pulsing", "infinite-spinner", "converging-spinner"].includes(e);
}
},
size: {
type: String,
validator: function(e) {
return ["none", "small", "medium", "large"].includes(e);
}
},
themeColor: {
type: String,
default: void 0,
validator: function(e) {
return ["base", "primary", "secondary", "tertiary"].includes(e);
}
}
},
created() {
o(l);
},
computed: {
loaderClasses() {
const {
type: e,
size: r,
themeColor: n
} = this.$props;
return {
"k-loader": !0,
"k-loader-sm": r === "small",
"k-loader-md": r === "medium",
"k-loader-lg": r === "large",
"k-loader-primary": n === "primary",
"k-loader-secondary": n === "secondary",
"k-loader-tertiary": n === "tertiary",
"k-loader-base": n === "base",
"k-loader-pulsing-2": e === "pulsing",
"k-loader-spinner-3": e === "infinite-spinner",
"k-loader-spinner-4": e === "converging-spinner"
};
}
},
render() {
const {
type: e
} = this.$props, r = new Array(i[e]);
return r.fill(0, 0, i[e]), a("div", {
class: this.loaderClasses,
role: "status",
"aria-label": this.$attrs["aria-label"] || "Loading"
}, [a("div", {
class: "k-loader-canvas"
}, [r.map(function(n, s) {
return a("span", {
key: s,
class: "k-loader-segment"
}, null);
}, this)])]);
},
methods: {
focus(e) {
this.$el && this.$el.focus(e);
}
}
});
export {
u as Loader
};