@progress/kendo-angular-common
Version:
Kendo UI for Angular - Utility Package
72 lines (71 loc) • 2.21 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* 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;
};