var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __decorateClass = (decorators, target, key, kind) => { var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result; if (kind && result) __defProp(target, key, result); return result; }; var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index); // community-modules/core/src/utils/generic.ts var generic_exports = {}; __export(generic_exports, { attrToBoolean: () => attrToBoolean, attrToNumber: () => attrToNumber, attrToString: () => attrToString, defaultComparator: () => defaultComparator, exists: () => exists, jsonEquals: () => jsonEquals, makeNull: () => makeNull, missing: () => missing, missingOrEmpty: () => missingOrEmpty, toStringOrNull: () => toStringOrNull, values: () => values }); function makeNull(value) { if (value == null || value === "") { return null; } return value; } function exists(value, allowEmptyString = false) { return value != null && (value !== "" || allowEmptyString); } function missing(value) { return !exists(value); } function missingOrEmpty(value) { return value == null || value.length === 0; } function toStringOrNull(value) { return value != null && typeof value.toString === "function" ? value.toString() : null; } function attrToNumber(value) { if (value === void 0) { return; } if (value === null || value === "") { return null; } if (typeof value === "number") { return isNaN(value) ? void 0 : value; } const valueParsed = parseInt(value, 10); return isNaN(valueParsed) ? void 0 : valueParsed; } function attrToBoolean(value) { if (value === void 0) { return; } if (value === null || value === "") { return false; } if (typeof value === "boolean") { return value; } return /true/i.test(value); } function attrToString(value) { if (value == null || value === "") { return; } return value; } function jsonEquals(val1, val2) { const val1Json = val1 ? JSON.stringify(val1) : null; const val2Json = val2 ? JSON.stringify(val2) : null; return val1Json === val2Json; } function defaultComparator(valueA, valueB, accentedCompare = false) { const valueAMissing = valueA == null; const valueBMissing = valueB == null; if (valueA && valueA.toNumber) { valueA = valueA.toNumber(); } if (valueB && valueB.toNumber) { valueB = valueB.toNumber(); } if (valueAMissing && valueBMissing) { return 0; } if (valueAMissing) { return -1; } if (valueBMissing) { return 1; } function doQuickCompare(a, b) { return a > b ? 1 : a < b ? -1 : 0; } if (typeof valueA !== "string") { return doQuickCompare(valueA, valueB); } if (!accentedCompare) { return doQuickCompare(valueA, valueB); } try { return valueA.localeCompare(valueB); } catch (e) { return doQuickCompare(valueA, valueB); } } function values(object) { if (object instanceof Set || object instanceof Map) { const arr = []; object.forEach((value) => arr.push(value)); return arr; } return Object.values(object); } // community-modules/core/src/columns/columnKeyCreator.ts var ColumnKeyCreator = class { constructor() { this.existingKeys = {}; } addExistingKeys(keys2) { for (let i = 0; i < keys2.length; i++) { this.existingKeys[keys2[i]] = true; } } getUniqueKey(colId, colField) { colId = toStringOrNull(colId); let count = 0; while (true) { let idToTry; if (colId) { idToTry = colId; if (count !== 0) { idToTry += "_" + count; } } else if (colField) { idToTry = colField; if (count !== 0) { idToTry += "_" + count; } } else { idToTry = count; } if (!this.existingKeys[idToTry]) { this.existingKeys[idToTry] = true; return String(idToTry); } count++; } } }; // community-modules/core/src/utils/object.ts var object_exports = {}; __export(object_exports, { SKIP_JS_BUILTINS: () => SKIP_JS_BUILTINS, cloneObject: () => cloneObject, deepCloneDefinition: () => deepCloneDefinition, getAllValuesInObject: () => getAllValuesInObject, getValueUsingField: () => getValueUsingField, isNonNullObject: () => isNonNullObject, iterateObject: () => iterateObject, mergeDeep: () => mergeDeep, removeAllReferences: () => removeAllReferences }); var SKIP_JS_BUILTINS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]); function iterateObject(object, callback) { if (object == null) { return; } if (Array.isArray(object)) { for (let i = 0; i < object.length; i++) { callback(i.toString(), object[i]); } return; } for (const [key, value] of Object.entries(object)) { callback(key, value); } } function cloneObject(object) { const copy = {}; const keys2 = Object.keys(object); for (let i = 0; i < keys2.length; i++) { if (SKIP_JS_BUILTINS.has(keys2[i])) { continue; } const key = keys2[i]; const value = object[key]; copy[key] = value; } return copy; } function deepCloneDefinition(object, keysToSkip) { if (!object) { return; } const obj = object; const res = {}; Object.keys(obj).forEach((key) => { if (keysToSkip && keysToSkip.indexOf(key) >= 0 || SKIP_JS_BUILTINS.has(key)) { return; } const value = obj[key]; const sourceIsSimpleObject = isNonNullObject(value) && value.constructor === Object; if (sourceIsSimpleObject) { res[key] = deepCloneDefinition(value); } else { res[key] = value; } }); return res; } function getAllValuesInObject(obj) { if (!obj) { return []; } const anyObject = Object; if (typeof anyObject.values === "function") { return anyObject.values(obj); } const ret = []; for (const key in obj) { if (obj.hasOwnProperty(key) && obj.propertyIsEnumerable(key)) { ret.push(obj[key]); } } return ret; } function mergeDeep(dest, source, copyUndefined = true, makeCopyOfSimpleObjects = false) { if (!exists(source)) { return; } iterateObject(source, (key, sourceValue) => { if (SKIP_JS_BUILTINS.has(key)) { return; } let destValue = dest[key]; if (destValue === sourceValue) { return; } if (makeCopyOfSimpleObjects) { const objectIsDueToBeCopied = destValue == null && sourceValue != null; if (objectIsDueToBeCopied) { const sourceIsSimpleObject = typeof sourceValue === "object" && sourceValue.constructor === Object; const dontCopy = sourceIsSimpleObject; if (dontCopy) { destValue = {}; dest[key] = destValue; } } } if (isNonNullObject(sourceValue) && isNonNullObject(destValue) && !Array.isArray(destValue)) { mergeDeep(destValue, sourceValue, copyUndefined, makeCopyOfSimpleObjects); } else if (copyUndefined || sourceValue !== void 0) { dest[key] = sourceValue; } }); } function getValueUsingField(data, field, fieldContainsDots) { if (!field || !data) { return; } if (!fieldContainsDots) { return data[field]; } const fields = field.split("."); let currentObject = data; for (let i = 0; i < fields.length; i++) { if (currentObject == null) { return void 0; } currentObject = currentObject[fields[i]]; } return currentObject; } function removeAllReferences(obj, preserveKeys = [], preDestroyLink) { Object.keys(obj).forEach((key) => { const value = obj[key]; if (typeof value === "object" && !preserveKeys.includes(key)) { obj[key] = void 0; } }); const proto = Object.getPrototypeOf(obj); const properties = {}; const msgFunc = (key) => `AG Grid: Grid API function ${key}() cannot be called as the grid has been destroyed. It is recommended to remove local references to the grid api. Alternatively, check gridApi.isDestroyed() to avoid calling methods against a destroyed grid. To run logic when the grid is about to be destroyed use the gridPreDestroy event. See: ${preDestroyLink}`; Object.getOwnPropertyNames(proto).forEach((key) => { const value = proto[key]; if (typeof value === "function" && !preserveKeys.includes(key)) { const func = () => { console.warn(msgFunc(key)); }; properties[key] = { value: func, writable: true }; } }); Object.defineProperties(obj, properties); } function isNonNullObject(value) { return typeof value === "object" && value !== null; } // community-modules/core/src/utils/function.ts var function_exports = {}; __export(function_exports, { compose: () => compose, debounce: () => debounce, doOnce: () => doOnce, errorOnce: () => errorOnce, executeAfter: () => executeAfter, executeInAWhile: () => executeInAWhile, executeNextVMTurn: () => executeNextVMTurn, getFunctionName: () => getFunctionName, isFunction: () => isFunction, noop: () => noop, throttle: () => throttle, waitUntil: () => waitUntil, warnOnce: () => warnOnce }); var doOnceFlags = {}; function doOnce(func, key) { if (doOnceFlags[key]) { return; } func(); doOnceFlags[key] = true; } function warnOnce(msg) { doOnce(() => console.warn("AG Grid: " + msg), msg); } function errorOnce(msg) { doOnce(() => console.error("AG Grid: " + msg), msg); } function getFunctionName(funcConstructor) { if (funcConstructor.name) { return funcConstructor.name; } const matches = /function\s+([^\(]+)/.exec(funcConstructor.toString()); return matches && matches.length === 2 ? matches[1].trim() : null; } function isFunction(val) { return !!(val && val.constructor && val.call && val.apply); } function executeInAWhile(funcs) { executeAfter(funcs, 400); } var executeNextVMTurnFuncs = []; var executeNextVMTurnPending = false; function executeNextVMTurn(func) { executeNextVMTurnFuncs.push(func); if (executeNextVMTurnPending) { return; } executeNextVMTurnPending = true; window.setTimeout(() => { const funcsCopy = executeNextVMTurnFuncs.slice(); executeNextVMTurnFuncs.length = 0; executeNextVMTurnPending = false; funcsCopy.forEach((func2) => func2()); }, 0); } function executeAfter(funcs, milliseconds = 0) { if (funcs.length > 0) { window.setTimeout(() => funcs.forEach((func) => func()), milliseconds); } } function debounce(func, delay) { let timeout; return function(...args) { const context = this; window.clearTimeout(timeout); timeout = window.setTimeout(function() { func.apply(context, args); }, delay); }; } function throttle(func, wait) { let previousCall = 0; return function(...args) { const context = this; const currentCall = (/* @__PURE__ */ new Date()).getTime(); if (currentCall - previousCall < wait) { return; } previousCall = currentCall; func.apply(context, args); }; } function waitUntil(condition, callback, timeout = 100, timeoutMessage) { const timeStamp = (/* @__PURE__ */ new Date()).getTime(); let interval = null; let executed = false; const internalCallback = () => { const reachedTimeout = (/* @__PURE__ */ new Date()).getTime() - timeStamp > timeout; if (condition() || reachedTimeout) { callback(); executed = true; if (interval != null) { window.clearInterval(interval); interval = null; } if (reachedTimeout && timeoutMessage) { console.warn(timeoutMessage); } } }; internalCallback(); if (!executed) { interval = window.setInterval(internalCallback, 10); } } function compose(...fns) { return (arg) => fns.reduce((composed, f) => f(composed), arg); } var noop = () => { return; }; // community-modules/core/src/modules/moduleNames.ts var ModuleNames = /* @__PURE__ */ ((ModuleNames2) => { ModuleNames2["CommunityCoreModule"] = "@ag-grid-community/core"; ModuleNames2["InfiniteRowModelModule"] = "@ag-grid-community/infinite-row-model"; ModuleNames2["ClientSideRowModelModule"] = "@ag-grid-community/client-side-row-model"; ModuleNames2["CsvExportModule"] = "@ag-grid-community/csv-export"; ModuleNames2["EnterpriseCoreModule"] = "@ag-grid-enterprise/core"; ModuleNames2["RowGroupingModule"] = "@ag-grid-enterprise/row-grouping"; ModuleNames2["ColumnsToolPanelModule"] = "@ag-grid-enterprise/column-tool-panel"; ModuleNames2["FiltersToolPanelModule"] = "@ag-grid-enterprise/filter-tool-panel"; ModuleNames2["MenuModule"] = "@ag-grid-enterprise/menu"; ModuleNames2["SetFilterModule"] = "@ag-grid-enterprise/set-filter"; ModuleNames2["MultiFilterModule"] = "@ag-grid-enterprise/multi-filter"; ModuleNames2["StatusBarModule"] = "@ag-grid-enterprise/status-bar"; ModuleNames2["SideBarModule"] = "@ag-grid-enterprise/side-bar"; ModuleNames2["RangeSelectionModule"] = "@ag-grid-enterprise/range-selection"; ModuleNames2["MasterDetailModule"] = "@ag-grid-enterprise/master-detail"; ModuleNames2["RichSelectModule"] = "@ag-grid-enterprise/rich-select"; ModuleNames2["GridChartsModule"] = "@ag-grid-enterprise/charts"; ModuleNames2["ViewportRowModelModule"] = "@ag-grid-enterprise/viewport-row-model"; ModuleNames2["ServerSideRowModelModule"] = "@ag-grid-enterprise/server-side-row-model"; ModuleNames2["ExcelExportModule"] = "@ag-grid-enterprise/excel-export"; ModuleNames2["ClipboardModule"] = "@ag-grid-enterprise/clipboard"; ModuleNames2["SparklinesModule"] = "@ag-grid-enterprise/sparklines"; ModuleNames2["AdvancedFilterModule"] = "@ag-grid-enterprise/advanced-filter"; ModuleNames2["AngularModule"] = "@ag-grid-community/angular"; ModuleNames2["ReactModule"] = "@ag-grid-community/react"; ModuleNames2["VueModule"] = "@ag-grid-community/vue"; return ModuleNames2; })(ModuleNames || {}); // community-modules/core/src/modules/moduleRegistry.ts var _ModuleRegistry = class _ModuleRegistry { /** * Globally register the given module for all grids. * @param module - module to register */ static register(module) { _ModuleRegistry.__register(module, true, void 0); } /** * Globally register the given modules for all grids. * @param modules - modules to register */ static registerModules(modules) { _ModuleRegistry.__registerModules(modules, true, void 0); } /** AG GRID INTERNAL - Module registration helper. */ static __register(module, moduleBased, gridId) { _ModuleRegistry.runVersionChecks(module); if (gridId !== void 0) { _ModuleRegistry.areGridScopedModules = true; if (_ModuleRegistry.gridModulesMap[gridId] === void 0) { _ModuleRegistry.gridModulesMap[gridId] = {}; } _ModuleRegistry.gridModulesMap[gridId][module.moduleName] = module; } else { _ModuleRegistry.globalModulesMap[module.moduleName] = module; } _ModuleRegistry.setModuleBased(moduleBased); } /** AG GRID INTERNAL - Unregister grid scoped module. */ static __unRegisterGridModules(gridId) { delete _ModuleRegistry.gridModulesMap[gridId]; } /** AG GRID INTERNAL - Module registration helper. */ static __registerModules(modules, moduleBased, gridId) { _ModuleRegistry.setModuleBased(moduleBased); if (!modules) { return; } modules.forEach((module) => _ModuleRegistry.__register(module, moduleBased, gridId)); } static isValidModuleVersion(module) { const [moduleMajor, moduleMinor] = module.version.split(".") || []; const [currentModuleMajor, currentModuleMinor] = _ModuleRegistry.currentModuleVersion.split(".") || []; return moduleMajor === currentModuleMajor && moduleMinor === currentModuleMinor; } static runVersionChecks(module) { if (!_ModuleRegistry.currentModuleVersion) { _ModuleRegistry.currentModuleVersion = module.version; } if (!module.version) { console.error(`AG Grid: You are using incompatible versions of AG Grid modules. Major and minor versions should always match across modules. '${module.moduleName}' is incompatible. Please update all modules to the same version.`); } else if (!_ModuleRegistry.isValidModuleVersion(module)) { console.error(`AG Grid: You are using incompatible versions of AG Grid modules. Major and minor versions should always match across modules. '${module.moduleName}' is version ${module.version} but the other modules are version ${this.currentModuleVersion}. Please update all modules to the same version.`); } if (module.validate) { const result = module.validate(); if (!result.isValid) { const errorResult = result; console.error(`AG Grid: ${errorResult.message}`); } } } static setModuleBased(moduleBased) { if (_ModuleRegistry.moduleBased === void 0) { _ModuleRegistry.moduleBased = moduleBased; } else { if (_ModuleRegistry.moduleBased !== moduleBased) { doOnce( () => { console.warn(`AG Grid: You are mixing modules (i.e. @ag-grid-community/core) and packages (ag-grid-community) - you can only use one or the other of these mechanisms.`); console.warn("Please see https://www.ag-grid.com/javascript-grid/modules/ for more information."); }, "ModulePackageCheck" ); } } } /** * AG GRID INTERNAL - Set if files are being served from a single UMD bundle to provide accurate enterprise upgrade steps. */ static __setIsBundled() { _ModuleRegistry.isBundled = true; } /** AG GRID INTERNAL - Assert a given module has been register, globally or individually with this grid. */ static __assertRegistered(moduleName, reason, gridId) { var _a; if (this.__isRegistered(moduleName, gridId)) { return true; } const warningKey = reason + moduleName; let warningMessage; if (_ModuleRegistry.isBundled) { { warningMessage = `AG Grid: unable to use ${reason} as 'ag-grid-enterprise' has not been loaded. Check you are using the Enterprise bundle: