devextreme-react
Version:
DevExtreme React UI and Visualization Components
76 lines (74 loc) • 2.25 kB
JavaScript
/*!
* 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
*/
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.hasExpectedChildren = exports.capitalizeFirstLetter = exports.TemplateInstantiationModels = exports.DoubleKeyMap = exports.generateID = void 0;
function generateID() {
return Math.random().toString(36).substring(2);
}
exports.generateID = generateID;
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];
}
}
}
}
exports.DoubleKeyMap = DoubleKeyMap;
class TemplateInstantiationModels extends DoubleKeyMap {
}
exports.TemplateInstantiationModels = TemplateInstantiationModels;
function capitalizeFirstLetter(text) {
if (text.length) {
return `${text[0].toUpperCase()}${text.substr(1)}`;
}
return '';
}
exports.capitalizeFirstLetter = capitalizeFirstLetter;
function hasExpectedChildren(elementDescriptor) {
return !!Object.keys(elementDescriptor.ExpectedChildren || {}).length;
}
exports.hasExpectedChildren = hasExpectedChildren;