@angular/cdk
Version:
Angular Material Component Development Kit
40 lines (37 loc) • 1.57 kB
JavaScript
export { c as coerceBooleanProperty } from './boolean-property-DaaVhX5A.mjs';
export { _ as _isNumberValue, a as coerceElement, c as coerceNumberProperty } from './element-x4z00URv.mjs';
export { c as coerceArray } from './array-I1yfCXUO.mjs';
export { c as coerceCssPixelValue } from './css-pixel-value-C_HEqLhI.mjs';
import '@angular/core';
/**
* Coerces a value to an array of trimmed non-empty strings.
* Any input that is not an array, `null` or `undefined` will be turned into a string
* via `toString()` and subsequently split with the given separator.
* `null` and `undefined` will result in an empty array.
* This results in the following outcomes:
* - `null` -> `[]`
* - `[null]` -> `["null"]`
* - `["a", "b ", " "]` -> `["a", "b"]`
* - `[1, [2, 3]]` -> `["1", "2,3"]`
* - `[{ a: 0 }]` -> `["[object Object]"]`
* - `{ a: 0 }` -> `["[object", "Object]"]`
*
* Useful for defining CSS classes or table columns.
* @param value the value to coerce into an array of strings
* @param separator split-separator if value isn't an array
*/
function coerceStringArray(value, separator = /\s+/) {
const result = [];
if (value != null) {
const sourceValues = Array.isArray(value) ? value : `${value}`.split(separator);
for (const sourceValue of sourceValues) {
const trimmedString = `${sourceValue}`.trim();
if (trimmedString) {
result.push(trimmedString);
}
}
}
return result;
}
export { coerceStringArray };
//# sourceMappingURL=coercion.mjs.map