UNPKG

@progress/kendo-angular-menu

Version:

Kendo UI Angular Menu component

32 lines (31 loc) 1.11 kB
/**----------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ const FIELD_REGEX = /\[(?:(\d+)|['"](.*?)['"])\]|((?:(?!\[.*?\]|\.).)+)/g; const getterCache = {}; getterCache['undefined'] = (obj) => obj; /** * @hidden */ export const getter = (field) => { if (getterCache[field]) { return getterCache[field]; } const fields = []; field.replace(FIELD_REGEX, (_match, index, indexAccessor, name) => { fields.push(index !== undefined ? index : (indexAccessor || name)); }); getterCache[field] = (obj) => { let result = obj; for (let idx = 0; idx < fields.length && result; idx++) { result = result[fields[idx]]; } return result; }; return getterCache[field]; }; /** * @hidden */ export const last = (arr) => arr[arr.length - 1];