playable
Version:
Video player based on HTML5Video
48 lines • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var getQueriesForElement_1 = (0, tslib_1.__importDefault)(require("./getQueriesForElement"));
var DEFAULT_QUERY_PREFIX = 'data-playable';
var ElementQueries = /** @class */ (function () {
function ElementQueries(element, _a) {
var _b = _a === void 0 ? {} : _a, _c = _b.prefix, prefix = _c === void 0 ? DEFAULT_QUERY_PREFIX : _c;
this._element = element;
this._queryPrefix = prefix;
this._queries = [];
}
ElementQueries.prototype._getQueryAttributeValue = function (mode, elementWidth) {
return this._queries
.filter(function (query) {
return query.mode === mode &&
((mode === 'max' && query.width >= elementWidth) ||
(mode === 'min' && query.width <= elementWidth));
})
.map(function (query) { return "".concat(query.width, "px"); })
.join(' ');
};
ElementQueries.prototype._setQueryAttribute = function (mode, elementWidth) {
var attributeName = this._queryPrefix
? "".concat(this._queryPrefix, "-").concat(mode, "-width")
: "".concat(mode, "-width");
var attributeValue = this._getQueryAttributeValue(mode, elementWidth);
if (attributeValue) {
this._element.setAttribute(attributeName, attributeValue);
}
else {
this._element.removeAttribute(attributeName);
}
};
ElementQueries.prototype.getQueries = function () {
this._queries = (0, getQueriesForElement_1.default)(this._element, this._queryPrefix);
};
ElementQueries.prototype.setWidth = function (width) {
this._setQueryAttribute('min', width);
this._setQueryAttribute('max', width);
};
ElementQueries.prototype.destroy = function () {
this._element = null;
};
return ElementQueries;
}());
exports.default = ElementQueries;
//# sourceMappingURL=element-queries.js.map