UNPKG

@terminus/ngx-tools

Version:

[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github

18 lines 3.4 kB
export function coerceNumberProperty(value, fallbackValue) { if (fallbackValue === void 0) { fallbackValue = 0; } return isNumberValue(value) ? Number(value) : fallbackValue; } /** * Whether the provided value is considered a number. * * ParseFloat(value) handles most of the cases we're interested in (it treats null, empty string, * and other non-number values as NaN, where Number just uses 0) but it considers the string * '123hello' to be a valid number. Therefore we also check if Number(value) is NaN. * NOTE: TypeScript seems to consider `parseFloat(value)` unsafe. In my tests there are no values which `parseFloat` * cannot handle safely. * * @private * @param value */ export var isNumberValue = function (value) { return !isNaN(parseFloat(value)) && !isNaN(Number(value)); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRlcm1pbnVzL25neC10b29scy9jb2VyY2lvbi8iLCJzb3VyY2VzIjpbIm51bWJlci9udW1iZXItcHJvcGVydHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQVUsRUFBRSxhQUFpQjtJQUFqQiw4QkFBQSxFQUFBLGlCQUFpQjtJQUNoRSxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7QUFDOUQsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sYUFBYSxHQUFHLFVBQUMsS0FBVSxJQUFjLE9BQUEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQWxELENBQWtELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LCBqc2RvYy9yZXF1aXJlLWpzZG9jLCBwcmVmZXItYXJyb3cvcHJlZmVyLWFycm93LWZ1bmN0aW9ucyAqL1xuLyoqXG4gKiBDb2VyY2VzIGEgZGF0YS1ib3VuZCB2YWx1ZSAodHlwaWNhbGx5IGEgc3RyaW5nKSB0byBhIG51bWJlci5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY29lcmNlIHRvIGEgbnVtYmVyXG4gKiBAcGFyYW0gZmFsbGJhY2tWYWx1ZSAtIFRoZSB2YWx1ZSB0byByZXR1cm4gaWYgdGhlIHZhbHVlIGlzIG5vdCBhIHZhbGlkIG51bWJlclxuICpcbiAqIEBleGFtcGxlXG4gKiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSgnMTInKTsgICAgICAgICAgICAgICAgICAvLyBSZXR1cm5zOiAxMlxuICogY29lcmNlTnVtYmVyUHJvcGVydHk8Ym9vbGVhbj4oJ2ZvbycsIGZhbHNlKTsgLy8gUmV0dXJuczogZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlOiBhbnkpOiBudW1iZXI7XG5leHBvcnQgZnVuY3Rpb24gY29lcmNlTnVtYmVyUHJvcGVydHk8RD4odmFsdWU6IGFueSwgZmFsbGJhY2s6IEQpOiBudW1iZXIgfCBEO1xuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlOiBhbnksIGZhbGxiYWNrVmFsdWUgPSAwKSB7XG4gIHJldHVybiBpc051bWJlclZhbHVlKHZhbHVlKSA/IE51bWJlcih2YWx1ZSkgOiBmYWxsYmFja1ZhbHVlO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdGhlIHByb3ZpZGVkIHZhbHVlIGlzIGNvbnNpZGVyZWQgYSBudW1iZXIuXG4gKlxuICogUGFyc2VGbG9hdCh2YWx1ZSkgaGFuZGxlcyBtb3N0IG9mIHRoZSBjYXNlcyB3ZSdyZSBpbnRlcmVzdGVkIGluIChpdCB0cmVhdHMgbnVsbCwgZW1wdHkgc3RyaW5nLFxuICogYW5kIG90aGVyIG5vbi1udW1iZXIgdmFsdWVzIGFzIE5hTiwgd2hlcmUgTnVtYmVyIGp1c3QgdXNlcyAwKSBidXQgaXQgY29uc2lkZXJzIHRoZSBzdHJpbmdcbiAqICcxMjNoZWxsbycgdG8gYmUgYSB2YWxpZCBudW1iZXIuIFRoZXJlZm9yZSB3ZSBhbHNvIGNoZWNrIGlmIE51bWJlcih2YWx1ZSkgaXMgTmFOLlxuICogTk9URTogVHlwZVNjcmlwdCBzZWVtcyB0byBjb25zaWRlciBgcGFyc2VGbG9hdCh2YWx1ZSlgIHVuc2FmZS4gSW4gbXkgdGVzdHMgdGhlcmUgYXJlIG5vIHZhbHVlcyB3aGljaCBgcGFyc2VGbG9hdGBcbiAqIGNhbm5vdCBoYW5kbGUgc2FmZWx5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuZXhwb3J0IGNvbnN0IGlzTnVtYmVyVmFsdWUgPSAodmFsdWU6IGFueSk6IGJvb2xlYW4gPT4gIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUpKSAmJiAhaXNOYU4oTnVtYmVyKHZhbHVlKSk7XG4iXX0=