@progress/kendo-angular-layout
Version:
Kendo UI for Angular Layout Package - a collection of components to create professional application layoyts
86 lines (85 loc) • 2.48 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { Keys } from '@progress/kendo-angular-common';
let nextId = 0;
const SIZES = {
small: 'sm',
medium: 'md',
large: 'lg'
};
const ROUNDNESS = {
small: 'sm',
medium: 'md',
large: 'lg',
full: 'full'
};
const SHAPE_TO_ROUNDED = {
rounded: 'large',
circle: 'full'
};
/**
* @hidden
*/
export const parsePanelBarItems = (data) => {
return data.map((item) => {
if (!isPresent(item.id)) {
item.id = `default-${nextId++}`;
}
if (item.children) {
item.children = parsePanelBarItems(item.children);
}
return item;
});
};
/**
* @hidden
*/
export const isPresent = (value) => value !== null && value !== undefined;
/**
* @hidden
*/
export const isHorizontalArrowKey = keyCode => keyCode === Keys.ArrowLeft || keyCode === Keys.ArrowRight;
/**
* @hidden
*/
export const isVerticalArrowKey = keyCode => keyCode === Keys.ArrowUp || keyCode === Keys.ArrowDown;
/**
* @hidden
*/
export const isArrowKey = keyCode => isHorizontalArrowKey(keyCode) || isVerticalArrowKey(keyCode);
/**
* @hidden
*/
export const isNavigationKey = keyCode => keyCode === Keys.PageUp || keyCode === Keys.PageDown ||
keyCode === Keys.Home || keyCode === Keys.End;
/**
* @hidden
*
* Returns the styling classes to be added and removed
*/
export const getStylingClasses = (componentType, stylingOption, previousValue, newValue) => {
switch (stylingOption) {
case 'size':
return {
toRemove: `k-${componentType}-${SIZES[previousValue]}`,
toAdd: newValue !== 'none' ? `k-${componentType}-${SIZES[newValue]}` : ''
};
case 'rounded':
return {
toRemove: `k-rounded-${ROUNDNESS[previousValue]}`,
toAdd: newValue !== 'none' ? `k-rounded-${ROUNDNESS[newValue]}` : ''
};
default:
break;
}
};
/**
* @hidden
*/
export const mapShapeToRounded = (shape) => SHAPE_TO_ROUNDED[shape] || 'none';
/**
* @hidden
*/
export const isNumber = (value) => typeof value === 'number' && isFinite(value);