@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
JavaScript
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