coercion.es5.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /**
  2. * @license
  3. * Copyright Google LLC All Rights Reserved.
  4. *
  5. * Use of this source code is governed by an MIT-style license that can be
  6. * found in the LICENSE file at https://angular.io/license
  7. */
  8. import { ElementRef } from '@angular/core';
  9. /**
  10. * @fileoverview added by tsickle
  11. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  12. */
  13. /**
  14. * Coerces a data-bound value (typically a string) to a boolean.
  15. * @param {?} value
  16. * @return {?}
  17. */
  18. function coerceBooleanProperty(value) {
  19. return value != null && "" + value !== 'false';
  20. }
  21. /**
  22. * @fileoverview added by tsickle
  23. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  24. */
  25. /**
  26. * @param {?} value
  27. * @param {?=} fallbackValue
  28. * @return {?}
  29. */
  30. function coerceNumberProperty(value, fallbackValue) {
  31. if (fallbackValue === void 0) { fallbackValue = 0; }
  32. return _isNumberValue(value) ? Number(value) : fallbackValue;
  33. }
  34. /**
  35. * Whether the provided value is considered a number.
  36. * \@docs-private
  37. * @param {?} value
  38. * @return {?}
  39. */
  40. function _isNumberValue(value) {
  41. // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,
  42. // and other non-number values as NaN, where Number just uses 0) but it considers the string
  43. // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.
  44. return !isNaN(parseFloat((/** @type {?} */ (value)))) && !isNaN(Number(value));
  45. }
  46. /**
  47. * @fileoverview added by tsickle
  48. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  49. */
  50. /**
  51. * Wraps the provided value in an array, unless the provided value is an array.
  52. * @template T
  53. * @param {?} value
  54. * @return {?}
  55. */
  56. function coerceArray(value) {
  57. return Array.isArray(value) ? value : [value];
  58. }
  59. /**
  60. * @fileoverview added by tsickle
  61. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  62. */
  63. /**
  64. * Coerces a value to a CSS pixel value.
  65. * @param {?} value
  66. * @return {?}
  67. */
  68. function coerceCssPixelValue(value) {
  69. if (value == null) {
  70. return '';
  71. }
  72. return typeof value === 'string' ? value : value + "px";
  73. }
  74. /**
  75. * @fileoverview added by tsickle
  76. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  77. */
  78. /**
  79. * Coerces an ElementRef or an Element into an element.
  80. * Useful for APIs that can accept either a ref or the native element itself.
  81. * @template T
  82. * @param {?} elementOrRef
  83. * @return {?}
  84. */
  85. function coerceElement(elementOrRef) {
  86. return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;
  87. }
  88. /**
  89. * @fileoverview added by tsickle
  90. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  91. */
  92. /**
  93. * @fileoverview added by tsickle
  94. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  95. */
  96. export { coerceBooleanProperty, coerceNumberProperty, _isNumberValue, coerceArray, coerceCssPixelValue, coerceElement };
  97. //# sourceMappingURL=coercion.es5.js.map