Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@youngbeen/angle-util

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@youngbeen/angle-util - npm Package Compare versions

Comparing version
1.3.18
to
1.4.0
+110
coverage/lcov-report/moneyUtil/index.html
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for moneyUtil</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\prettify.css" />
<link rel="stylesheet" href="..\base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(..\sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\index.html">All files</a> moneyUtil</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>14/14</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>3/3</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>4/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>14/14</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<div class="pad1">
<table class="coverage-summary">
<thead>
<tr>
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="MoneyUtil.ts"><a href="MoneyUtil.ts.html">MoneyUtil.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="14" class="abs high">14/14</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="3" class="abs high">3/3</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="14" class="abs high">14/14</td>
</tr>
</tbody>
</table>
</div>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>
</div>
<script src="..\prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="..\sorter.js"></script>
<script src="..\block-navigation.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for moneyUtil/MoneyUtil.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\prettify.css" />
<link rel="stylesheet" href="..\base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(..\sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\index.html">All files</a> / <a href="index.html">moneyUtil</a> MoneyUtil.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>14/14</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>3/3</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>4/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>14/14</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a>
<a name='L9'></a><a href='#L9'>9</a>
<a name='L10'></a><a href='#L10'>10</a>
<a name='L11'></a><a href='#L11'>11</a>
<a name='L12'></a><a href='#L12'>12</a>
<a name='L13'></a><a href='#L13'>13</a>
<a name='L14'></a><a href='#L14'>14</a>
<a name='L15'></a><a href='#L15'>15</a>
<a name='L16'></a><a href='#L16'>16</a>
<a name='L17'></a><a href='#L17'>17</a>
<a name='L18'></a><a href='#L18'>18</a>
<a name='L19'></a><a href='#L19'>19</a>
<a name='L20'></a><a href='#L20'>20</a>
<a name='L21'></a><a href='#L21'>21</a>
<a name='L22'></a><a href='#L22'>22</a>
<a name='L23'></a><a href='#L23'>23</a>
<a name='L24'></a><a href='#L24'>24</a>
<a name='L25'></a><a href='#L25'>25</a>
<a name='L26'></a><a href='#L26'>26</a>
<a name='L27'></a><a href='#L27'>27</a>
<a name='L28'></a><a href='#L28'>28</a>
<a name='L29'></a><a href='#L29'>29</a>
<a name='L30'></a><a href='#L30'>30</a>
<a name='L31'></a><a href='#L31'>31</a>
<a name='L32'></a><a href='#L32'>32</a>
<a name='L33'></a><a href='#L33'>33</a>
<a name='L34'></a><a href='#L34'>34</a>
<a name='L35'></a><a href='#L35'>35</a>
<a name='L36'></a><a href='#L36'>36</a>
<a name='L37'></a><a href='#L37'>37</a>
<a name='L38'></a><a href='#L38'>38</a>
<a name='L39'></a><a href='#L39'>39</a>
<a name='L40'></a><a href='#L40'>40</a>
<a name='L41'></a><a href='#L41'>41</a>
<a name='L42'></a><a href='#L42'>42</a>
<a name='L43'></a><a href='#L43'>43</a>
<a name='L44'></a><a href='#L44'>44</a>
<a name='L45'></a><a href='#L45'>45</a>
<a name='L46'></a><a href='#L46'>46</a>
<a name='L47'></a><a href='#L47'>47</a>
<a name='L48'></a><a href='#L48'>48</a>
<a name='L49'></a><a href='#L49'>49</a>
<a name='L50'></a><a href='#L50'>50</a>
<a name='L51'></a><a href='#L51'>51</a>
<a name='L52'></a><a href='#L52'>52</a>
<a name='L53'></a><a href='#L53'>53</a>
<a name='L54'></a><a href='#L54'>54</a>
<a name='L55'></a><a href='#L55'>55</a>
<a name='L56'></a><a href='#L56'>56</a>
<a name='L57'></a><a href='#L57'>57</a>
<a name='L58'></a><a href='#L58'>58</a>
<a name='L59'></a><a href='#L59'>59</a>
<a name='L60'></a><a href='#L60'>60</a>
<a name='L61'></a><a href='#L61'>61</a>
<a name='L62'></a><a href='#L62'>62</a>
<a name='L63'></a><a href='#L63'>63</a>
<a name='L64'></a><a href='#L64'>64</a>
<a name='L65'></a><a href='#L65'>65</a>
<a name='L66'></a><a href='#L66'>66</a>
<a name='L67'></a><a href='#L67'>67</a>
<a name='L68'></a><a href='#L68'>68</a>
<a name='L69'></a><a href='#L69'>69</a>
<a name='L70'></a><a href='#L70'>70</a>
<a name='L71'></a><a href='#L71'>71</a>
<a name='L72'></a><a href='#L72'>72</a>
<a name='L73'></a><a href='#L73'>73</a>
<a name='L74'></a><a href='#L74'>74</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">10x</span>
<span class="cline-any cline-yes">10x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">12x</span>
<span class="cline-any cline-yes">12x</span>
<span class="cline-any cline-yes">12x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">17x</span>
<span class="cline-any cline-yes">17x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">11x</span>
<span class="cline-any cline-yes">11x</span>
<span class="cline-any cline-yes">11x</span>
<span class="cline-any cline-yes">11x</span>
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">11x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
* this util module is about to provide money support utils
* @module angle-util/moneyUtil
*/
export default {
/**
* 分转元
* @author youngbeen
* @param { integer | string } [val] - 传入的待转内容,可传入整形或者字符串
* @return { string } 转换后的元字符串
* @example
* console.log(moneyUtil.fenToYuan(100)) // '1.00'
* console.log(moneyUtil.fenToYuan(100.12)) // '1.00'
* console.log(moneyUtil.fenToYuan('100')) // '1.00'
* console.log(moneyUtil.fenToYuan('100.12')) // '1.00'
*/
fenToYuan (val: number | string): string {
const validVal: string = (val + '').replace(/[^\d.]/g, '')
return (Number(validVal) / 100).toFixed(2)
},
/**
* 元转分
* @author youngbeen
* @param { integer | string } [val] - 传入的待转内容,可传入整形或者字符串
* @return { string } 转换后的分字符串
* @example
* console.log(moneyUtil.yuanToFen(1)) // '100'
* console.log(moneyUtil.yuanToFen(1.00)) // '100'
* console.log(moneyUtil.yuanToFen('1')) // '100'
* console.log(moneyUtil.yuanToFen('1.00')) // '100'
*/
yuanToFen (val: number | string): string {
let validVal: number | string = (val + '').replace(/[^\d.]/g, '')
validVal = Number(validVal)
return Math.round(validVal * 100).toString()
},
/**
* 元转万元
* @author youngbeen
* @param { integer | string } [val] - 传入的待转内容,可传入整形或者字符串
* @return { string } 转换后的字符串
* @example
* console.log(moneyUtil.yuanToWan('100')) // '0.01'
* console.log(moneyUtil.yuanToWan(12345.01)) // '1.23'
* console.log(moneyUtil.yuanToWan('12345.01', 3)) // '1.234'
*/
yuanToWan (val: number | string, decimal: number = 2): string {
const validVal: string = (val + '').replace(/[^\d.]/g, '')
return (Number(validVal) / 10000).toFixed(decimal)
},
/**
* 金额格式化
* @author youngbeen
* @param { integer | string } [val] - 传入的待转内容,可传入整形或者字符串
* @return { string } 转换后的字符串
* @example
* console.log(moneyUtil.moneyStyle(1)) // '1'
* console.log(moneyUtil.moneyStyle(1.00)) // '1.00'
* console.log(moneyUtil.moneyStyle(1234)) // '1,234'
* console.log(moneyUtil.moneyStyle('1234.00')) // '1,234.00'
*/
moneyStyle (val: number | string): string {
let validVal: string = (val + '').replace(/[^\d.]/g, '')
let [ prefix, suffix ] = validVal.split('.')
prefix = prefix.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')
if (suffix) {
suffix = '.' + suffix
} else {
suffix = ''
}
return prefix + suffix
}
}
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>
</div>
<script src="..\prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="..\sorter.js"></script>
<script src="..\block-navigation.js"></script>
</body>
</html>
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var _default = {
fenToYuan: function fenToYuan(val) {
var validVal = (val + '').replace(/[^\d.]/g, '');
return (Number(validVal) / 100).toFixed(2);
},
yuanToFen: function yuanToFen(val) {
var validVal = (val + '').replace(/[^\d.]/g, '');
validVal = Number(validVal);
return Math.round(validVal * 100).toString();
},
yuanToWan: function yuanToWan(val) {
var decimal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
var validVal = (val + '').replace(/[^\d.]/g, '');
return (Number(validVal) / 10000).toFixed(decimal);
},
moneyStyle: function moneyStyle(val) {
var validVal = (val + '').replace(/[^\d.]/g, '');
var _validVal$split = validVal.split('.'),
_validVal$split2 = _slicedToArray(_validVal$split, 2),
prefix = _validVal$split2[0],
suffix = _validVal$split2[1];
prefix = prefix.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
if (suffix) {
suffix = '.' + suffix;
} else {
suffix = '';
}
return prefix + suffix;
}
};
exports["default"] = _default;
"use strict";
var _MoneyUtil = _interopRequireDefault(require("./MoneyUtil.ts"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
describe('fenToYuan(val)', function () {
test('test correct', function () {
expect(_MoneyUtil["default"].fenToYuan(1.23)).toBe('0.01');
expect(_MoneyUtil["default"].fenToYuan(1.2)).toBe('0.01');
expect(_MoneyUtil["default"].fenToYuan(12.3)).toBe('0.12');
expect(_MoneyUtil["default"].fenToYuan(100.12)).toBe('1.00');
expect(_MoneyUtil["default"].fenToYuan(120)).toBe('1.20');
expect(_MoneyUtil["default"].fenToYuan('123')).toBe('1.23');
expect(_MoneyUtil["default"].fenToYuan(123.45)).toBe('1.23');
expect(_MoneyUtil["default"].fenToYuan(12345.4)).toBe('123.45');
expect(_MoneyUtil["default"].fenToYuan('12345.4')).toBe('123.45');
expect(_MoneyUtil["default"].fenToYuan('12abx*34.5(6')).toBe('12.35');
});
});
describe('yuanToFen(val)', function () {
test('test correct', function () {
expect(_MoneyUtil["default"].yuanToFen(1.23)).toBe('123');
expect(_MoneyUtil["default"].yuanToFen(1.234)).toBe('123');
expect(_MoneyUtil["default"].yuanToFen(1.235)).toBe('124');
expect(_MoneyUtil["default"].yuanToFen(1.2)).toBe('120');
expect(_MoneyUtil["default"].yuanToFen(12.3)).toBe('1230');
expect(_MoneyUtil["default"].yuanToFen(100.12)).toBe('10012');
expect(_MoneyUtil["default"].yuanToFen(120)).toBe('12000');
expect(_MoneyUtil["default"].yuanToFen('123')).toBe('12300');
expect(_MoneyUtil["default"].yuanToFen(123.45)).toBe('12345');
expect(_MoneyUtil["default"].yuanToFen(12345.4)).toBe('1234540');
expect(_MoneyUtil["default"].yuanToFen('12345.4')).toBe('1234540');
expect(_MoneyUtil["default"].yuanToFen('12abx*34.5(6')).toBe('123456');
});
});
describe('yuanToWan(val, decimal = 2)', function () {
test('test correct', function () {
expect(_MoneyUtil["default"].yuanToWan(1.23)).toBe('0.00');
expect(_MoneyUtil["default"].yuanToWan(1.234)).toBe('0.00');
expect(_MoneyUtil["default"].yuanToWan(100.12)).toBe('0.01');
expect(_MoneyUtil["default"].yuanToWan(120)).toBe('0.01');
expect(_MoneyUtil["default"].yuanToWan(123)).toBe('0.01');
expect(_MoneyUtil["default"].yuanToWan(123.45)).toBe('0.01');
expect(_MoneyUtil["default"].yuanToWan(12345.4)).toBe('1.23');
expect(_MoneyUtil["default"].yuanToWan(12345.4, 0)).toBe('1');
expect(_MoneyUtil["default"].yuanToWan(12345.4, 1)).toBe('1.2');
expect(_MoneyUtil["default"].yuanToWan(12345.4, 3)).toBe('1.235');
expect(_MoneyUtil["default"].yuanToWan('12345.4')).toBe('1.23');
expect(_MoneyUtil["default"].yuanToWan(12345.4)).toBe('1.23');
expect(_MoneyUtil["default"].yuanToWan('1234540')).toBe('123.45');
expect(_MoneyUtil["default"].yuanToWan('12abx*34.5(6')).toBe('0.12');
expect(_MoneyUtil["default"].yuanToWan('12abx*34.5(6', 0)).toBe('0');
expect(_MoneyUtil["default"].yuanToWan('12abx*34.5(6', 1)).toBe('0.1');
expect(_MoneyUtil["default"].yuanToWan('12abx*34.5(6', 3)).toBe('0.123');
});
});
describe('moneyStyle(val)', function () {
test('test correct', function () {
expect(_MoneyUtil["default"].moneyStyle(1.23)).toBe('1.23');
expect(_MoneyUtil["default"].moneyStyle(1.234)).toBe('1.234');
expect(_MoneyUtil["default"].moneyStyle(1.2)).toBe('1.2');
expect(_MoneyUtil["default"].moneyStyle(12.3)).toBe('12.3');
expect(_MoneyUtil["default"].moneyStyle(100.12)).toBe('100.12');
expect(_MoneyUtil["default"].moneyStyle(120)).toBe('120');
expect(_MoneyUtil["default"].moneyStyle('123')).toBe('123');
expect(_MoneyUtil["default"].moneyStyle(12345.4)).toBe('12,345.4');
expect(_MoneyUtil["default"].moneyStyle('12345.4')).toBe('12,345.4');
expect(_MoneyUtil["default"].moneyStyle('12abx*34.5(6')).toBe('1,234.56');
expect(_MoneyUtil["default"].moneyStyle(123456789)).toBe('123,456,789');
});
});
declare const _default: {
fenToYuan(val: number | string): string;
yuanToFen(val: number | string): string;
yuanToWan(val: number | string, decimal?: number): string;
moneyStyle(val: number | string): string;
};
export default _default;
export default {
fenToYuan(val) {
const validVal = (val + '').replace(/[^\d.]/g, '');
return (Number(validVal) / 100).toFixed(2);
},
yuanToFen(val) {
let validVal = (val + '').replace(/[^\d.]/g, '');
validVal = Number(validVal);
return Math.round(validVal * 100).toString();
},
yuanToWan(val, decimal = 2) {
const validVal = (val + '').replace(/[^\d.]/g, '');
return (Number(validVal) / 10000).toFixed(decimal);
},
moneyStyle(val) {
let validVal = (val + '').replace(/[^\d.]/g, '');
let [prefix, suffix] = validVal.split('.');
prefix = prefix.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
if (suffix) {
suffix = '.' + suffix;
}
else {
suffix = '';
}
return prefix + suffix;
}
};
import moneyUtil from './MoneyUtil.ts'
describe('fenToYuan(val)', () => {
test('test correct', () => {
expect(moneyUtil.fenToYuan(1.23)).toBe('0.01')
expect(moneyUtil.fenToYuan(1.2)).toBe('0.01')
expect(moneyUtil.fenToYuan(12.3)).toBe('0.12')
expect(moneyUtil.fenToYuan(100.12)).toBe('1.00')
expect(moneyUtil.fenToYuan(120)).toBe('1.20')
expect(moneyUtil.fenToYuan('123')).toBe('1.23')
expect(moneyUtil.fenToYuan(123.45)).toBe('1.23')
expect(moneyUtil.fenToYuan(12345.4)).toBe('123.45')
expect(moneyUtil.fenToYuan('12345.4')).toBe('123.45')
expect(moneyUtil.fenToYuan('12abx*34.5(6')).toBe('12.35')
})
})
describe('yuanToFen(val)', () => {
test('test correct', () => {
expect(moneyUtil.yuanToFen(1.23)).toBe('123')
expect(moneyUtil.yuanToFen(1.234)).toBe('123')
expect(moneyUtil.yuanToFen(1.235)).toBe('124')
expect(moneyUtil.yuanToFen(1.2)).toBe('120')
expect(moneyUtil.yuanToFen(12.3)).toBe('1230')
expect(moneyUtil.yuanToFen(100.12)).toBe('10012')
expect(moneyUtil.yuanToFen(120)).toBe('12000')
expect(moneyUtil.yuanToFen('123')).toBe('12300')
expect(moneyUtil.yuanToFen(123.45)).toBe('12345')
expect(moneyUtil.yuanToFen(12345.4)).toBe('1234540')
expect(moneyUtil.yuanToFen('12345.4')).toBe('1234540')
expect(moneyUtil.yuanToFen('12abx*34.5(6')).toBe('123456')
})
})
describe('yuanToWan(val, decimal = 2)', () => {
test('test correct', () => {
expect(moneyUtil.yuanToWan(1.23)).toBe('0.00')
expect(moneyUtil.yuanToWan(1.234)).toBe('0.00')
expect(moneyUtil.yuanToWan(100.12)).toBe('0.01')
expect(moneyUtil.yuanToWan(120)).toBe('0.01')
expect(moneyUtil.yuanToWan(123)).toBe('0.01')
expect(moneyUtil.yuanToWan(123.45)).toBe('0.01')
expect(moneyUtil.yuanToWan(12345.4)).toBe('1.23')
expect(moneyUtil.yuanToWan(12345.4, 0)).toBe('1')
expect(moneyUtil.yuanToWan(12345.4, 1)).toBe('1.2')
expect(moneyUtil.yuanToWan(12345.4, 3)).toBe('1.235')
expect(moneyUtil.yuanToWan('12345.4')).toBe('1.23')
expect(moneyUtil.yuanToWan(12345.4)).toBe('1.23')
expect(moneyUtil.yuanToWan('1234540')).toBe('123.45')
expect(moneyUtil.yuanToWan('12abx*34.5(6')).toBe('0.12')
expect(moneyUtil.yuanToWan('12abx*34.5(6', 0)).toBe('0')
expect(moneyUtil.yuanToWan('12abx*34.5(6', 1)).toBe('0.1')
expect(moneyUtil.yuanToWan('12abx*34.5(6', 3)).toBe('0.123')
})
})
describe('moneyStyle(val)', () => {
test('test correct', () => {
expect(moneyUtil.moneyStyle(1.23)).toBe('1.23')
expect(moneyUtil.moneyStyle(1.234)).toBe('1.234')
expect(moneyUtil.moneyStyle(1.2)).toBe('1.2')
expect(moneyUtil.moneyStyle(12.3)).toBe('12.3')
expect(moneyUtil.moneyStyle(100.12)).toBe('100.12')
expect(moneyUtil.moneyStyle(120)).toBe('120')
expect(moneyUtil.moneyStyle('123')).toBe('123')
expect(moneyUtil.moneyStyle(12345.4)).toBe('12,345.4')
expect(moneyUtil.moneyStyle('12345.4')).toBe('12,345.4')
expect(moneyUtil.moneyStyle('12abx*34.5(6')).toBe('1,234.56')
expect(moneyUtil.moneyStyle(123456789)).toBe('123,456,789')
})
})
/**
* this util module is about to provide money support utils
* @module angle-util/moneyUtil
*/
export default {
/**
* 分转元
* @author youngbeen
* @param { integer | string } [val] - 传入的待转内容,可传入整形或者字符串
* @return { string } 转换后的元字符串
* @example
* console.log(moneyUtil.fenToYuan(100)) // '1.00'
* console.log(moneyUtil.fenToYuan(100.12)) // '1.00'
* console.log(moneyUtil.fenToYuan('100')) // '1.00'
* console.log(moneyUtil.fenToYuan('100.12')) // '1.00'
*/
fenToYuan (val: number | string): string {
const validVal: string = (val + '').replace(/[^\d.]/g, '')
return (Number(validVal) / 100).toFixed(2)
},
/**
* 元转分
* @author youngbeen
* @param { integer | string } [val] - 传入的待转内容,可传入整形或者字符串
* @return { string } 转换后的分字符串
* @example
* console.log(moneyUtil.yuanToFen(1)) // '100'
* console.log(moneyUtil.yuanToFen(1.00)) // '100'
* console.log(moneyUtil.yuanToFen('1')) // '100'
* console.log(moneyUtil.yuanToFen('1.00')) // '100'
*/
yuanToFen (val: number | string): string {
let validVal: number | string = (val + '').replace(/[^\d.]/g, '')
validVal = Number(validVal)
return Math.round(validVal * 100).toString()
},
/**
* 元转万元
* @author youngbeen
* @param { integer | string } [val] - 传入的待转内容,可传入整形或者字符串
* @return { string } 转换后的字符串
* @example
* console.log(moneyUtil.yuanToWan('100')) // '0.01'
* console.log(moneyUtil.yuanToWan(12345.01)) // '1.23'
* console.log(moneyUtil.yuanToWan('12345.01', 3)) // '1.234'
*/
yuanToWan (val: number | string, decimal: number = 2): string {
const validVal: string = (val + '').replace(/[^\d.]/g, '')
return (Number(validVal) / 10000).toFixed(decimal)
},
/**
* 金额格式化
* @author youngbeen
* @param { integer | string } [val] - 传入的待转内容,可传入整形或者字符串
* @return { string } 转换后的字符串
* @example
* console.log(moneyUtil.moneyStyle(1)) // '1'
* console.log(moneyUtil.moneyStyle(1.00)) // '1.00'
* console.log(moneyUtil.moneyStyle(1234)) // '1,234'
* console.log(moneyUtil.moneyStyle('1234.00')) // '1,234.00'
*/
moneyStyle (val: number | string): string {
let validVal: string = (val + '').replace(/[^\d.]/g, '')
let [ prefix, suffix ] = validVal.split('.')
prefix = prefix.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')
if (suffix) {
suffix = '.' + suffix
} else {
suffix = ''
}
return prefix + suffix
}
}
+30
-10
<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1693286146371" clover="3.2.0">
<project timestamp="1693286146371" name="All files">
<metrics statements="319" coveredstatements="311" conditionals="323" coveredconditionals="304" methods="44" coveredmethods="44" elements="686" coveredelements="659" complexity="0" loc="319" ncloc="319" packages="5" files="5" classes="5"/>
<coverage generated="1693907195265" clover="3.2.0">
<project timestamp="1693907195265" name="All files">
<metrics statements="333" coveredstatements="325" conditionals="326" coveredconditionals="307" methods="48" coveredmethods="48" elements="707" coveredelements="680" complexity="0" loc="333" ncloc="333" packages="6" files="6" classes="6"/>
<package name="anonymizer">

@@ -172,2 +172,22 @@ <metrics statements="50" coveredstatements="50" conditionals="33" coveredconditionals="33" methods="5" coveredmethods="5"/>

</package>
<package name="moneyUtil">
<metrics statements="14" coveredstatements="14" conditionals="3" coveredconditionals="3" methods="4" coveredmethods="4"/>
<file name="MoneyUtil.ts" path="D:\Work\angle-common\angle-util\src\moneyUtil\MoneyUtil.ts">
<metrics statements="14" coveredstatements="14" conditionals="3" coveredconditionals="3" methods="4" coveredmethods="4"/>
<line num="18" count="10" type="stmt"/>
<line num="19" count="10" type="stmt"/>
<line num="33" count="12" type="stmt"/>
<line num="34" count="12" type="stmt"/>
<line num="35" count="12" type="stmt"/>
<line num="48" count="17" type="stmt"/>
<line num="49" count="17" type="stmt"/>
<line num="63" count="11" type="stmt"/>
<line num="64" count="11" type="stmt"/>
<line num="65" count="11" type="stmt"/>
<line num="66" count="11" type="cond" truecount="2" falsecount="0"/>
<line num="67" count="8" type="stmt"/>
<line num="69" count="3" type="stmt"/>
<line num="71" count="11" type="stmt"/>
</file>
</package>
<package name="numberUtil">

@@ -181,11 +201,11 @@ <metrics statements="17" coveredstatements="16" conditionals="17" coveredconditionals="16" methods="3" coveredmethods="3"/>

<line num="13" count="4" type="stmt"/>
<line num="31" count="30" type="cond" truecount="2" falsecount="0"/>
<line num="33" count="30" type="stmt"/>
<line num="35" count="30" type="stmt"/>
<line num="36" count="30" type="stmt"/>
<line num="31" count="26" type="cond" truecount="2" falsecount="0"/>
<line num="33" count="26" type="stmt"/>
<line num="35" count="26" type="stmt"/>
<line num="36" count="26" type="stmt"/>
<line num="54" count="4" type="stmt"/>
<line num="56" count="4" type="stmt"/>
<line num="58" count="24" type="stmt"/>
<line num="59" count="24" type="cond" truecount="4" falsecount="0"/>
<line num="62" count="5" type="stmt"/>
<line num="58" count="20" type="stmt"/>
<line num="59" count="20" type="cond" truecount="4" falsecount="0"/>
<line num="62" count="1" type="stmt"/>
<line num="65" count="19" type="stmt"/>

@@ -192,0 +212,0 @@ <line num="70" count="4" type="cond" truecount="1" falsecount="1"/>

@@ -363,3 +363,3 @@

<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Aug 29 2023 13:15:46 GMT+0800 (中国标准时间)
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>

@@ -366,0 +366,0 @@ </div>

@@ -97,3 +97,3 @@

<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Aug 29 2023 13:15:46 GMT+0800 (中国标准时间)
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>

@@ -100,0 +100,0 @@ </div>

@@ -1029,3 +1029,3 @@

<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Aug 29 2023 13:15:46 GMT+0800 (中国标准时间)
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>

@@ -1032,0 +1032,0 @@ </div>

@@ -97,3 +97,3 @@

<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Aug 29 2023 13:15:46 GMT+0800 (中国标准时间)
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>

@@ -100,0 +100,0 @@ </div>

@@ -25,5 +25,5 @@

<div class='fl pad1y space-right2'>
<span class="strong">97.5% </span>
<span class="strong">97.6% </span>
<span class="quiet">Statements</span>
<span class='fraction'>312/320</span>
<span class='fraction'>326/334</span>
</div>

@@ -33,5 +33,5 @@

<div class='fl pad1y space-right2'>
<span class="strong">94.12% </span>
<span class="strong">94.17% </span>
<span class="quiet">Branches</span>
<span class='fraction'>304/323</span>
<span class='fraction'>307/326</span>
</div>

@@ -43,3 +43,3 @@

<span class="quiet">Functions</span>
<span class='fraction'>44/44</span>
<span class='fraction'>48/48</span>
</div>

@@ -49,5 +49,5 @@

<div class='fl pad1y space-right2'>
<span class="strong">97.49% </span>
<span class="strong">97.6% </span>
<span class="quiet">Lines</span>
<span class='fraction'>311/319</span>
<span class='fraction'>325/333</span>
</div>

@@ -109,2 +109,17 @@

<tr>
<td class="file high" data-value="moneyUtil"><a href="moneyUtil\index.html">moneyUtil</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="14" class="abs high">14/14</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="3" class="abs high">3/3</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="14" class="abs high">14/14</td>
</tr>
<tr>
<td class="file high" data-value="numberUtil"><a href="numberUtil\index.html">numberUtil</a></td>

@@ -162,3 +177,3 @@ <td data-value="94.44" class="pic high">

<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Aug 29 2023 13:15:46 GMT+0800 (中国标准时间)
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>

@@ -165,0 +180,0 @@ </div>

@@ -97,3 +97,3 @@

<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Aug 29 2023 13:15:46 GMT+0800 (中国标准时间)
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>

@@ -100,0 +100,0 @@ </div>

@@ -165,8 +165,8 @@

<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">30x</span>
<span class="cline-any cline-yes">26x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">30x</span>
<span class="cline-any cline-yes">26x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">30x</span>
<span class="cline-any cline-yes">30x</span>
<span class="cline-any cline-yes">26x</span>
<span class="cline-any cline-yes">26x</span>
<span class="cline-any cline-neutral">&nbsp;</span>

@@ -193,7 +193,7 @@ <span class="cline-any cline-neutral">&nbsp;</span>

<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">24x</span>
<span class="cline-any cline-yes">24x</span>
<span class="cline-any cline-yes">20x</span>
<span class="cline-any cline-yes">20x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">5x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>

@@ -296,3 +296,3 @@ <span class="cline-any cline-neutral">&nbsp;</span>

<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Aug 29 2023 13:15:46 GMT+0800 (中国标准时间)
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>

@@ -299,0 +299,0 @@ </div>

@@ -97,3 +97,3 @@

<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Aug 29 2023 13:15:46 GMT+0800 (中国标准时间)
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>

@@ -100,0 +100,0 @@ </div>

@@ -144,3 +144,3 @@

<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Aug 29 2023 13:15:46 GMT+0800 (中国标准时间)
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>

@@ -147,0 +147,0 @@ </div>

@@ -97,3 +97,3 @@

<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Aug 29 2023 13:15:46 GMT+0800 (中国标准时间)
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>

@@ -100,0 +100,0 @@ </div>

@@ -1584,3 +1584,3 @@

<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Tue Aug 29 2023 13:15:46 GMT+0800 (中国标准时间)
at Tue Sep 05 2023 17:46:34 GMT+0800 (中国标准时间)
</div>

@@ -1587,0 +1587,0 @@ </div>

@@ -174,2 +174,7 @@ "use strict";

expect(_DateUtil["default"].formatDateTime('MM/YYYY hh', 1552592930000)).toBe('03/2019 03');
expect(_DateUtil["default"].formatDateTime('YYYY-MM-DD HH:mm:ss', '2023/08')).toBe('2023-08-01 00:00:00');
expect(_DateUtil["default"].formatDateTime('YYYY-MM-DD HH:mm:ss', '2023/08/29')).toBe('2023-08-29 00:00:00');
expect(_DateUtil["default"].formatDateTime('YYYY-MM-DD HH:mm:ss', '2023/08/29 10:00:00')).toBe('2023-08-29 10:00:00');
expect(_DateUtil["default"].formatDateTime('YYYY-MM-DD HH:mm:ss', '2023-08')).toBe('2023-08-01 00:00:00');
expect(_DateUtil["default"].formatDateTime('YYYY-MM-DD HH:mm:ss', '2023-08-29')).toBe('2023-08-29 00:00:00');
});

@@ -176,0 +181,0 @@ });

@@ -6,3 +6,3 @@ "use strict";

});
exports.validator = exports.textUtil = exports.numberUtil = exports.imageUtil = exports.deviceUtil = exports.dateUtil = exports.arrayUtil = exports.anonymizer = void 0;
exports.validator = exports.textUtil = exports.numberUtil = exports.moneyUtil = exports.imageUtil = exports.deviceUtil = exports.dateUtil = exports.arrayUtil = exports.anonymizer = void 0;

@@ -13,2 +13,4 @@ var _TextUtil = _interopRequireDefault(require("./textUtil/TextUtil"));

var _MoneyUtil = _interopRequireDefault(require("./moneyUtil/MoneyUtil"));
var _DateUtil = _interopRequireDefault(require("./dateUtil/DateUtil"));

@@ -32,2 +34,4 @@

exports.numberUtil = numberUtil;
var moneyUtil = _MoneyUtil["default"];
exports.moneyUtil = moneyUtil;
var dateUtil = _DateUtil["default"];

@@ -34,0 +38,0 @@ exports.dateUtil = dateUtil;

{
"name": "@youngbeen/angle-util",
"version": "1.3.18",
"version": "1.4.0",
"description": "The utils used in angle-FE team",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -145,2 +145,4 @@ ## [@youngbeen/angle-util](https://www.npmjs.com/package/@youngbeen/angle-util)

---
### deviceUtil

@@ -367,1 +369,55 @@

---
### moneyUtil
引用
```javascript
import { moneyUtil } from '@youngbeen/angle-util'
```
#### 分转元 `fenToYuan`
```javascript
// 可接收数字或者字符串
moneyUtil.fenToYuan(100) // '1.00'
moneyUtil.fenToYuan(100.12) // '1.00'
moneyUtil.fenToYuan(125) // '1.25'
moneyUtil.fenToYuan('125') // '1.25'
```
#### 元转分 `yuanToFen`
```javascript
// 可接收数字或者字符串
moneyUtil.yuanToFen(100) // '10000'
moneyUtil.yuanToFen(1.12) // '112'
moneyUtil.yuanToFen(1.123) // '112'
moneyUtil.yuanToFen('1.234') // '123'
```
#### 元转万 `yuanToWan`
```javascript
// 可接收数字或者字符串,可指定保留多少位小数,默认保留2位
moneyUtil.yuanToWan(100) // '0.01'
moneyUtil.yuanToWan(1.12) // '0.00'
moneyUtil.yuanToWan(12345.4) // '1.23'
moneyUtil.yuanToWan(12345.4, 0) // '1'
moneyUtil.yuanToWan(12345.4, 1) // '1.2'
moneyUtil.yuanToWan('12345.4', 3) // '1.235'
```
#### 金额格式化 `moneyStyle`
```javascript
// 可接收数字或者字符串
moneyUtil.moneyStyle(12345) // '12,345'
moneyUtil.moneyStyle(12345.4) // '12,345.4'
moneyUtil.moneyStyle(12345678) // '123,456,789'
moneyUtil.moneyStyle(1.2) // '1.2'
moneyUtil.moneyStyle(1.23) // '1.23'
moneyUtil.moneyStyle(100.12) // '100.12'
```
---

@@ -9,2 +9,8 @@ export declare const textUtil: {

};
export declare const moneyUtil: {
fenToYuan(val: string | number): string;
yuanToFen(val: string | number): string;
yuanToWan(val: string | number, decimal?: number): string;
moneyStyle(val: string | number): string;
};
export declare const dateUtil: {

@@ -11,0 +17,0 @@ getReadableTimeBySeconds(time: number, params?: import("./dateUtil/DateUtil").ReadableTimeParams): import("./dateUtil/DateUtil").ReadableTimeInfo;

import TextUtil from './textUtil/TextUtil';
import NumberUtil from './numberUtil/NumberUtil';
import MoneyUtil from './moneyUtil/MoneyUtil';
import DateUtil from './dateUtil/DateUtil';

@@ -11,2 +12,3 @@ import DeviceUtil from './deviceUtil/DeviceUtil';

export const numberUtil = NumberUtil;
export const moneyUtil = MoneyUtil;
export const dateUtil = DateUtil;

@@ -13,0 +15,0 @@ export const deviceUtil = DeviceUtil;

// entry js
import TextUtil from './textUtil/TextUtil'
import NumberUtil from './numberUtil/NumberUtil'
import MoneyUtil from './moneyUtil/MoneyUtil'
import DateUtil from './dateUtil/DateUtil'

@@ -13,2 +14,3 @@ import DeviceUtil from './deviceUtil/DeviceUtil'

export const numberUtil = NumberUtil
export const moneyUtil = MoneyUtil
export const dateUtil = DateUtil

@@ -15,0 +17,0 @@ export const deviceUtil = DeviceUtil

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet