UNPKG

@lxlib/seed

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.1.

209 lines (201 loc) 7.09 kB
import { __assign, __read } from 'tslib'; import { Pipe, NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; /** * @fileoverview added by tsickle * Generated from: number-to-chinese.interfaces.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * 额外参数选项 * @record */ function NumberToChineseOptions() { } if (false) { /** * 指定负数符号,默认:`负` * @type {?|undefined} */ NumberToChineseOptions.prototype.minusSymbol; /** * 当传递值无法数值时抛出异常,默认:`false` * @type {?|undefined} */ NumberToChineseOptions.prototype.validThrow; } /** * @fileoverview added by tsickle * Generated from: number-to-chinese.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @param {?} value * @param {?=} rmb * @param {?=} options * @return {?} */ function numberToChinese(value, rmb, options) { var _a; if (rmb === void 0) { rmb = true; } options = __assign({ minusSymbol: '负', validThrow: false }, options); if (typeof value === 'number') value = value.toString(); if (!/^-?\d+(\.\d+)?$/.test(value) && options.validThrow) throw new Error(value + " is invalid number type"); /** @type {?} */ var integer; /** @type {?} */ var decimal; _a = __read(value.split('.'), 2), integer = _a[0], decimal = _a[1]; /** @type {?} */ var symbol = ''; if (integer.startsWith('-')) { symbol = (/** @type {?} */ (options.minusSymbol)); integer = integer.substr(1); } if (/^-?\d+$/.test(value)) decimal = null; integer = (+integer).toString(); /** @type {?} */ var unit = { num: rmb ? ['', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '点'] : ['', '一', '二', '三', '四', '五', '六', '七', '八', '九', '点'], radice: rmb ? ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟', '万亿', '拾', '佰', '仟', '兆', '拾', '佰', '仟'] : ['', '十', '百', '千', '万', '十', '百', '千', '亿', '十', '百', '千', '万亿', '十', '百', '千', '兆', '十', '百', '千'], dec: ['角', '分', '厘', '毫'], }; if (rmb) value = (+value).toFixed(5).toString(); /** @type {?} */ var integerRes = ''; /** @type {?} */ var integerCount = integer.length; if (integer === '0' || integerCount === 0) { integerRes = '零'; } else { /** @type {?} */ var cnDesc = ''; for (var i = 0; i < integerCount; i++) { /** @type {?} */ var n = +integer[i]; /** @type {?} */ var j = integerCount - i - 1; /** @type {?} */ var isZero = i > 1 && n !== 0 && integer[i - 1] === '0'; /** @type {?} */ var cnZero = isZero ? '零' : ''; /** @type {?} */ var isEmpptyUnit = (n === 0 && j % 4 !== 0) || integer.substr(i - 3, 4) === '0000'; /** @type {?} */ var descMark = cnDesc; /** @type {?} */ var cnNum = unit.num[n]; cnDesc = isEmpptyUnit ? '' : unit.radice[j]; // 第一位是一十 if (i === 0 && cnNum === '一' && cnDesc === '十') cnNum = ''; /** @type {?} */ var isChangeEr = n > 1 && cnNum === '二' && // 去除首位 ['', '十', '百'].indexOf(cnDesc) === -1 && // 不读两\两十\两百 descMark !== '十'; if (isChangeEr) cnNum = '两'; integerRes += cnZero + cnNum + cnDesc; } } // 小数部分拼接 /** @type {?} */ var decimalRes = ''; /** @type {?} */ var decimalCount = decimal ? decimal.toString().length : 0; if (decimal === null) { decimalRes = rmb ? '整' : ''; } else if (decimal === '0') { decimalRes = '零'; } else { for (var i = 0; i < decimalCount; i++) { if (rmb && i > unit.dec.length - 1) break; /** @type {?} */ var n = decimal[i]; /** @type {?} */ var cnZero = n === '0' ? '零' : ''; /** @type {?} */ var cnNum = ((/** @type {?} */ (unit.num)))[n]; /** @type {?} */ var cnDesc = rmb ? unit.dec[i] : ''; decimalRes += cnZero + cnNum + cnDesc; } } /** @type {?} */ var ret = symbol + (rmb ? integerRes + (decimalRes === '零' ? '元整' : "\u5143" + decimalRes) : integerRes + (decimalRes === '' ? '' : "\u70B9" + decimalRes)); return ret; } /** * @fileoverview added by tsickle * Generated from: number-to-chinese.pipe.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var NaNumberToChinesePipe = /** @class */ (function () { function NaNumberToChinesePipe() { } /** * @param {?} value * @param {?=} rmb * @param {?=} minusSymbol * @return {?} */ NaNumberToChinesePipe.prototype.transform = /** * @param {?} value * @param {?=} rmb * @param {?=} minusSymbol * @return {?} */ function (value, rmb, minusSymbol) { if (rmb === void 0) { rmb = true; } if (minusSymbol === void 0) { minusSymbol = '负'; } return numberToChinese(value, rmb, { minusSymbol: minusSymbol }); }; NaNumberToChinesePipe.decorators = [ { type: Pipe, args: [{ name: 'n2c' },] } ]; return NaNumberToChinesePipe; }()); /** * @fileoverview added by tsickle * Generated from: number-to-chinese.module.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ var PIPES = [NaNumberToChinesePipe]; var NumberToChineseModule = /** @class */ (function () { function NumberToChineseModule() { } NumberToChineseModule.decorators = [ { type: NgModule, args: [{ imports: [CommonModule], declarations: PIPES, exports: PIPES, },] } ]; return NumberToChineseModule; }()); /** * @fileoverview added by tsickle * Generated from: public_api.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * Generated from: numberToChinese.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ export { NaNumberToChinesePipe, NumberToChineseModule, numberToChinese }; //# sourceMappingURL=numberToChinese.js.map