"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("../../../src/components/VProgressLinear/VProgressLinear.sass"); var _transitions = require("../transitions"); var _colorable = _interopRequireDefault(require("../../mixins/colorable")); var _positionable = require("../../mixins/positionable"); var _proxyable = _interopRequireDefault(require("../../mixins/proxyable")); var _themeable = _interopRequireDefault(require("../../mixins/themeable")); var _helpers = require("../../util/helpers"); var _mixins = _interopRequireDefault(require("../../util/mixins")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var baseMixins = (0, _mixins.default)(_colorable.default, (0, _positionable.factory)(['absolute', 'fixed', 'top', 'bottom']), _proxyable.default, _themeable.default); /* @vue/component */ var _default = baseMixins.extend({ name: 'v-progress-linear', props: { active: { type: Boolean, default: true }, backgroundColor: { type: String, default: null }, backgroundOpacity: { type: [Number, String], default: null }, bufferValue: { type: [Number, String], default: 100 }, color: { type: String, default: 'primary' }, height: { type: [Number, String], default: 4 }, indeterminate: Boolean, query: Boolean, rounded: Boolean, stream: Boolean, striped: Boolean, value: { type: [Number, String], default: 0 } }, data: function data() { return { internalLazyValue: this.value || 0 }; }, computed: { __cachedBackground: function __cachedBackground() { return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, { staticClass: 'v-progress-linear__background', style: this.backgroundStyle })); }, __cachedBar: function __cachedBar() { return this.$createElement(this.computedTransition, [this.__cachedBarType]); }, __cachedBarType: function __cachedBarType() { return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate; }, __cachedBuffer: function __cachedBuffer() { return this.$createElement('div', { staticClass: 'v-progress-linear__buffer', style: this.styles }); }, __cachedDeterminate: function __cachedDeterminate() { return this.$createElement('div', this.setBackgroundColor(this.color, { staticClass: "v-progress-linear__determinate", style: { width: (0, _helpers.convertToUnit)(this.normalizedValue, '%') } })); }, __cachedIndeterminate: function __cachedIndeterminate() { return this.$createElement('div', { staticClass: 'v-progress-linear__indeterminate', class: { 'v-progress-linear__indeterminate--active': this.active } }, [this.genProgressBar('long'), this.genProgressBar('short')]); }, __cachedStream: function __cachedStream() { if (!this.stream) return null; return this.$createElement('div', this.setTextColor(this.color, { staticClass: 'v-progress-linear__stream', style: { width: (0, _helpers.convertToUnit)(100 - this.normalizedBuffer, '%') } })); }, backgroundStyle: function backgroundStyle() { var backgroundOpacity = this.backgroundOpacity == null ? this.backgroundColor ? 1 : 0.3 : parseFloat(this.backgroundOpacity); return { opacity: backgroundOpacity, width: (0, _helpers.convertToUnit)(this.normalizedBuffer, '%') }; }, classes: function classes() { return _objectSpread({ 'v-progress-linear--absolute': this.absolute, 'v-progress-linear--fixed': this.fixed, 'v-progress-linear--query': this.query, 'v-progress-linear--reactive': this.reactive, 'v-progress-linear--rounded': this.rounded, 'v-progress-linear--striped': this.striped }, this.themeClasses); }, computedTransition: function computedTransition() { return this.indeterminate ? _transitions.VFadeTransition : _transitions.VSlideXTransition; }, normalizedBuffer: function normalizedBuffer() { return this.normalize(this.bufferValue); }, normalizedValue: function normalizedValue() { return this.normalize(this.internalLazyValue); }, reactive: function reactive() { return Boolean(this.$listeners.change); }, styles: function styles() { var styles = {}; if (!this.active) { styles.height = 0; } if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) { styles.width = (0, _helpers.convertToUnit)(this.normalizedBuffer, '%'); } return styles; } }, methods: { genContent: function genContent() { var slot = (0, _helpers.getSlot)(this, 'default', { value: this.internalLazyValue }); if (!slot) return null; return this.$createElement('div', { staticClass: 'v-progress-linear__content' }, slot); }, genListeners: function genListeners() { var listeners = this.$listeners; if (this.reactive) { listeners.click = this.onClick; } return listeners; }, genProgressBar: function genProgressBar(name) { return this.$createElement('div', this.setBackgroundColor(this.color, { staticClass: 'v-progress-linear__indeterminate', class: _defineProperty({}, name, true) })); }, onClick: function onClick(e) { if (!this.reactive) return; var _this$$el$getBounding = this.$el.getBoundingClientRect(), width = _this$$el$getBounding.width; this.internalValue = e.offsetX / width * 100; }, normalize: function normalize(value) { if (value < 0) return 0; if (value > 100) return 100; return parseFloat(value); } }, render: function render(h) { var data = { staticClass: 'v-progress-linear', attrs: { role: 'progressbar', 'aria-valuemin': 0, 'aria-valuemax': this.normalizedBuffer, 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue }, class: this.classes, style: { bottom: this.bottom ? 0 : undefined, height: this.active ? (0, _helpers.convertToUnit)(this.height) : 0, top: this.top ? 0 : undefined }, on: this.genListeners() }; return h('div', data, [this.__cachedStream, this.__cachedBackground, this.__cachedBuffer, this.__cachedBar, this.genContent()]); } }); exports.default = _default; //# sourceMappingURL=VProgressLinear.js.map