UNPKG

devextreme-react

Version:

DevExtreme React UI and Visualization Components

68 lines (66 loc) 1.81 kB
/*! * devextreme-react * Version: 24.2.6 * Build date: Mon Mar 17 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file in the root of the project for details. * * https://github.com/DevExpress/devextreme-react */ export function generateID() { return Math.random().toString(36).substring(2); } export class DoubleKeyMap { constructor() { this._map = new Map(); } set({ key1, key2 }, value) { let innerMap = this._map.get(key1); if (!innerMap) { innerMap = new Map(); this._map.set(key1, innerMap); } innerMap.set(key2, value); } get({ key1, key2 }) { const innerMap = this._map.get(key1); return innerMap ? innerMap.get(key2) : undefined; } delete({ key1, key2 }) { const innerMap = this._map.get(key1); if (!innerMap) { return; } innerMap.delete(key2); if (innerMap.size === 0) { this._map.delete(key1); } } clear() { this._map.clear(); } get empty() { return this._map.size === 0; } *[Symbol.iterator]() { for (const [key1, innerMap] of this._map) { for (const [key2, value] of innerMap) { yield [{ key1, key2 }, value]; } } } } export class TemplateInstantiationModels extends DoubleKeyMap { } export function capitalizeFirstLetter(text) { if (text.length) { return `${text[0].toUpperCase()}${text.substr(1)}`; } return ''; } export function hasExpectedChildren(elementDescriptor) { return !!Object.keys(elementDescriptor.ExpectedChildren || {}).length; }