UNPKG

@sandlada/vue-mdc

Version:

![Vue MDC Logo](https://raw.githubusercontent.com/sandlada/vue-mdc/refs/heads/main/docs/vue-mdc-cover.png)

62 lines (61 loc) 1.9 kB
/** * @license * Copyright 2025 Sandlada & Kai Orion * SPDX-License-Identifier: MIT */ import { defineComponent, createVNode } from "vue"; import { componentNamePrefix } from "../../internals/component-name-prefix/component-name-prefix.js"; import { props } from "./linear-progress.definition.js"; import css from "./styles/progress.module.scss.js"; const LinearProgress = /* @__PURE__ */ defineComponent({ name: `${componentNamePrefix}-linear-progress`, props, slots: {}, computed: { progressStyles() { return { transform: `scaleX(${(this.indeterminate ? 1 : this.value / this.max) * 100}%)` }; }, dotStyles() { return { transform: `scaleX(${(this.indeterminate ? 1 : this.buffer / this.max) * 100}%)` }; }, shouldHideDots() { return this.indeterminate || this.buffer >= this.max || this.value >= this.max; } }, render() { return createVNode("div", { "data-component": "linear-progress", "class": [css["linear-progress"], this.indeterminate && css.indeterminate], "role": "progressbar", "aria-valuemin": "0", "aria-valuemax": this.max, "aria-valuenow": this.indeterminate ? 0 : this.value }, [createVNode("div", { "style": { display: this.shouldHideDots ? "block" : "none" }, "class": css.dots }, null), createVNode("div", { "class": css["inactive-track"], "style": this.dotStyles }, null), createVNode("div", { "class": [css.bar, css["primary-bar"]], "style": this.progressStyles }, [createVNode("div", { "class": css["bar-inner"] }, null)]), createVNode("div", { "class": [css.bar, css["secondary-bar"]] }, [createVNode("div", { "class": css["bar-inner"] }, null)])]); }, inheritAttrs: true }); export { LinearProgress }; //# sourceMappingURL=linear-progress.js.map