UNPKG

create-expo-cljs-app

Version:

Create a react native application with Expo and Shadow-CLJS!

114 lines (96 loc) 3.38 kB
/** * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos * @license BSD-3-Clause (see LICENSE in the root directory of this source tree) */ export class DecimalStyle { /** * * @param zeroChar * @param positiveSignChar * @param negativeSignChar * @param decimalPointChar * @private */ constructor(zeroChar, positiveSignChar, negativeSignChar, decimalPointChar) { this._zeroDigit = zeroChar; this._zeroDigitCharCode = zeroChar.charCodeAt(0); this._positiveSign = positiveSignChar; this._negativeSign = negativeSignChar; this._decimalSeparator = decimalPointChar; } positiveSign(){ return this._positiveSign; } withPositiveSign(positiveSign) { if (positiveSign === this._positiveSign) { return this; } return new DecimalStyle(this._zeroDigit, positiveSign, this._negativeSign, this._decimalSeparator); } negativeSign(){ return this._negativeSign; } withNegativeSign(negativeSign) { if (negativeSign === this._negativeSign) { return this; } return new DecimalStyle(this._zeroDigit, this._positiveSign, negativeSign, this._decimalSeparator); } zeroDigit(){ return this._zeroDigit; } withZeroDigit(zeroDigit) { if (zeroDigit === this._zeroDigit) { return this; } return new DecimalStyle(zeroDigit, this._positiveSign, this._negativeSign, this._decimalSeparator); } decimalSeparator(){ return this._decimalSeparator; } withDecimalSeparator(decimalSeparator) { if (decimalSeparator === this._decimalSeparator) { return this; } return new DecimalStyle(this._zeroDigit, this._positiveSign, this._negativeSign, decimalSeparator); } convertToDigit(char){ const val = char.charCodeAt(0) - this._zeroDigitCharCode; return (val >= 0 && val <= 9) ? val : -1; } convertNumberToI18N(numericText) { if (this._zeroDigit === '0') { return numericText; } const diff = this._zeroDigitCharCode - '0'.charCodeAt(0); let convertedText = ''; for (let i = 0; i < numericText.length; i++) { convertedText += String.fromCharCode(numericText.charCodeAt(i) + diff); } return convertedText; } equals(other) { if (this === other) { return true; } if (other instanceof DecimalStyle) { return (this._zeroDigit === other._zeroDigit && this._positiveSign === other._positiveSign && this._negativeSign === other._negativeSign && this._decimalSeparator === other._decimalSeparator); } return false; } hashCode() { return this._zeroDigit + this._positiveSign + this._negativeSign + this._decimalSeparator; } toString() { return 'DecimalStyle[' + this._zeroDigit + this._positiveSign + this._negativeSign + this._decimalSeparator + ']'; } static of(){ throw new Error('not yet supported'); } static availableLocales(){ throw new Error('not yet supported'); } } DecimalStyle.STANDARD = new DecimalStyle('0', '+', '-', '.');