UNPKG

@progress/kendo-angular-common

Version:

Kendo UI for Angular - Utility Package

72 lines (71 loc) 2.21 kB
/**----------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ /* eslint-disable @typescript-eslint/no-explicit-any */ /** * @hidden */ export const isPresent = (value) => value !== null && value !== undefined; /** * @hidden */ export const isObjectPresent = (value) => { return isObject(value) && Object.keys(value).length > 0; }; /** * @hidden */ export const isString = (value) => value instanceof String || typeof value === 'string'; /** * @hidden */ export const isObject = (value) => isPresent(value) && !Array.isArray(value) && typeof value === 'object'; /** * @hidden */ export const splitStringToArray = (value) => value.trim().replace(/\s+/g, " ").split(' '); /** * Receives CSS class declarations either as an object, string or array and returns an array of the class names. * * @hidden */ export const parseCSSClassNames = (value) => { if (Array.isArray(value)) { return parseArrayClassNames(value); } if (isObject(value)) { return parseObjectClassNames(value); } if (isString(value)) { return parseStringClassNames(value); } }; const parseObjectClassNames = (value) => { const classes = []; Object.keys(value).forEach((className) => { const currentClassName = splitStringToArray(className); if (value[className] && currentClassName.length) { classes.push(...currentClassName); } }); return classes; }; const parseStringClassNames = (value) => { const classes = []; const classesArray = splitStringToArray(value); classesArray.forEach((className) => { classes.push(className); }); return classes; }; const parseArrayClassNames = (value) => { const classes = []; value.forEach((className) => { const current = splitStringToArray(className); if (current[0]) { classes.push(...current); } }); return classes; };