UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

78 lines (76 loc) 2.31 kB
/** * DevExtreme (cjs/__internal/viz/translators/translator1d.js) * Version: 25.2.5 * Build date: Fri Feb 20 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Translator1D = Translator1D; const _Number = Number; function Translator1D() { this.setDomain(arguments[0], arguments[1]).setCodomain(arguments[2], arguments[3]).setInverted(false) } Translator1D.prototype = { constructor: Translator1D, setDomain(domain1, domain2) { this._domain1 = _Number(domain1); this._domain2 = _Number(domain2); this._domainDelta = this._domain2 - this._domain1; return this }, setCodomain(codomain1, codomain2) { this._codomain1 = _Number(codomain1); this._codomain2 = _Number(codomain2); this._codomainDelta = this._codomain2 - this._codomain1; return this }, setInverted(state) { this.inverted = state }, getDomain() { return [this._domain1, this._domain2] }, getCodomain() { return [this._codomain1, this._codomain2] }, getDomainStart() { return this._domain1 }, getDomainEnd() { return this._domain2 }, getCodomainStart() { return this._codomain1 }, getCodomainEnd() { return this._codomain2 }, getDomainRange() { return this._domainDelta }, getCodomainRange() { return this._codomainDelta }, translate(value) { let ratio = (_Number(value) - this._domain1) / this._domainDelta; this.inverted && (ratio = 1 - ratio); return ratio >= 0 && ratio <= 1 ? this._codomain1 + ratio * this._codomainDelta : NaN }, adjust(value) { const ratio = (_Number(value) - this._domain1) / this._domainDelta; let result = NaN; if (ratio < 0) { result = this._domain1 } else if (ratio > 1) { result = this._domain2 } else if (ratio >= 0 && ratio <= 1) { result = _Number(value) } return result } };