@ag-grid-community/core
Version:
Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
1,386 lines (1,376 loc) • 1.56 MB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod2) => __copyProps(__defProp({}, "__esModule", { value: true }), mod2);
// community-modules/core/src/main.ts
var main_exports = {};
__export(main_exports, {
ALWAYS_SYNC_GLOBAL_EVENTS: () => ALWAYS_SYNC_GLOBAL_EVENTS,
AbstractHeaderCellCtrl: () => AbstractHeaderCellCtrl,
AgAbstractField: () => AgAbstractField,
AgAbstractInputField: () => AgAbstractInputField,
AgAbstractLabel: () => AgAbstractLabel,
AgCheckbox: () => AgCheckbox,
AgCheckboxSelector: () => AgCheckboxSelector,
AgColumn: () => AgColumn,
AgColumnGroup: () => AgColumnGroup,
AgInputDateField: () => AgInputDateField,
AgInputNumberField: () => AgInputNumberField,
AgInputNumberFieldSelector: () => AgInputNumberFieldSelector,
AgInputTextArea: () => AgInputTextArea,
AgInputTextField: () => AgInputTextField,
AgInputTextFieldSelector: () => AgInputTextFieldSelector,
AgPickerField: () => AgPickerField,
AgPromise: () => AgPromise,
AgProvidedColumnGroup: () => AgProvidedColumnGroup,
AgRadioButton: () => AgRadioButton,
AgSelect: () => AgSelect,
AgSelectSelector: () => AgSelectSelector,
AgToggleButton: () => AgToggleButton,
AgToggleButtonSelector: () => AgToggleButtonSelector,
AnimateShowChangeCellRenderer: () => AnimateShowChangeCellRenderer,
AnimateSlideCellRenderer: () => AnimateSlideCellRenderer,
AnimationFrameService: () => AnimationFrameService,
AriaAnnouncementService: () => AriaAnnouncementService,
AutoScrollService: () => AutoScrollService,
AutoWidthCalculator: () => AutoWidthCalculator,
BarColumnLabelPlacement: () => BarColumnLabelPlacement,
BaseComponentWrapper: () => BaseComponentWrapper,
BeanStub: () => BeanStub,
BodyDropPivotTarget: () => BodyDropPivotTarget,
BodyDropTarget: () => BodyDropTarget,
CellComp: () => CellComp,
CellCtrl: () => CellCtrl,
CellNavigationService: () => CellNavigationService,
CellPositionUtils: () => CellPositionUtils,
CellRangeType: () => CellRangeType,
ChangedPath: () => ChangedPath,
ChartMappings: () => ChartMappings,
CheckboxCellEditor: () => CheckboxCellEditor,
CheckboxCellRenderer: () => CheckboxCellRenderer,
CheckboxSelectionComponent: () => CheckboxSelectionComponent,
ClientSideRowModelSteps: () => ClientSideRowModelSteps,
ColumnApplyStateService: () => ColumnApplyStateService,
ColumnAutosizeService: () => ColumnAutosizeService,
ColumnFactory: () => ColumnFactory,
ColumnKeyCreator: () => ColumnKeyCreator,
ColumnModel: () => ColumnModel,
ColumnMoveService: () => ColumnMoveService,
ColumnNameService: () => ColumnNameService,
ColumnSizeService: () => ColumnSizeService,
CommunityFeaturesModule: () => CommunityFeaturesModule,
Component: () => Component,
ComponentUtil: () => ComponentUtil,
Context: () => Context,
CssClassManager: () => CssClassManager,
CtrlsService: () => CtrlsService,
DataTypeService: () => DataTypeService,
DateCellEditor: () => DateCellEditor,
DateFilter: () => DateFilter,
DateStringCellEditor: () => DateStringCellEditor,
DragAndDropService: () => DragAndDropService,
DragService: () => DragService,
DragSourceType: () => DragSourceType,
Environment: () => Environment,
EventService: () => EventService,
ExcelFactoryMode: () => ExcelFactoryMode,
ExpansionService: () => ExpansionService,
ExpressionService: () => ExpressionService,
FakeHScrollComp: () => FakeHScrollComp,
FakeVScrollComp: () => FakeVScrollComp,
FilterManager: () => FilterManager,
FilterWrapperComp: () => FilterWrapperComp,
FocusService: () => FocusService,
FuncColsService: () => FuncColsService,
GROUP_AUTO_COLUMN_ID: () => GROUP_AUTO_COLUMN_ID,
Grid: () => Grid,
GridBodyComp: () => GridBodyComp,
GridBodyCtrl: () => GridBodyCtrl,
GridComp: () => GridComp,
GridCoreCreator: () => GridCoreCreator,
GridCoreModule: () => GridCoreModule,
GridCtrl: () => GridCtrl,
GridHeaderComp: () => GridHeaderComp,
GridHeaderCtrl: () => GridHeaderCtrl,
GridOptionsService: () => GridOptionsService,
GroupInstanceIdCreator: () => GroupInstanceIdCreator,
HeaderCellCtrl: () => HeaderCellCtrl,
HeaderFilterCellComp: () => HeaderFilterCellComp,
HeaderFilterCellCtrl: () => HeaderFilterCellCtrl,
HeaderGroupCellCtrl: () => HeaderGroupCellCtrl,
HeaderNavigationDirection: () => HeaderNavigationDirection,
HeaderNavigationService: () => HeaderNavigationService,
HeaderPositionUtils: () => HeaderPositionUtils,
HeaderRowComp: () => HeaderRowComp,
HeaderRowContainerComp: () => HeaderRowContainerComp,
HeaderRowContainerCtrl: () => HeaderRowContainerCtrl,
HeaderRowCtrl: () => HeaderRowCtrl,
HeaderRowType: () => HeaderRowType,
HorizontalDirection: () => HorizontalDirection,
HorizontalResizeService: () => HorizontalResizeService,
KeyCode: () => KeyCode,
LargeTextCellEditor: () => LargeTextCellEditor,
LayoutCssClasses: () => LayoutCssClasses,
LocalEventService: () => LocalEventService,
LocaleService: () => LocaleService,
ManagedFocusFeature: () => ManagedFocusFeature,
MenuService: () => MenuService,
ModuleNames: () => ModuleNames,
ModuleRegistry: () => ModuleRegistry,
MouseEventService: () => MouseEventService,
MoveColumnFeature: () => MoveColumnFeature,
NavigationService: () => NavigationService,
NumberCellEditor: () => NumberCellEditor,
NumberFilter: () => NumberFilter,
NumberSequence: () => NumberSequence,
OverlayWrapperComponent: () => OverlayWrapperComponent,
PinnedRowModel: () => PinnedRowModel,
PivotResultColsService: () => PivotResultColsService,
PopupComponent: () => PopupComponent,
PopupEditorWrapper: () => PopupEditorWrapper,
PopupService: () => PopupService,
PositionableFeature: () => PositionableFeature,
PropertyKeys: () => PropertyKeys,
ProvidedFilter: () => ProvidedFilter,
RefPlaceholder: () => RefPlaceholder,
ResizeObserverService: () => ResizeObserverService,
RowContainerComp: () => RowContainerComp,
RowContainerCtrl: () => RowContainerCtrl,
RowCtrl: () => RowCtrl,
RowDragComp: () => RowDragComp,
RowHighlightPosition: () => RowHighlightPosition,
RowModelHelperService: () => RowModelHelperService,
RowNode: () => RowNode,
RowNodeBlock: () => RowNodeBlock,
RowNodeBlockLoader: () => RowNodeBlockLoader,
RowNodeSorter: () => RowNodeSorter,
RowPositionUtils: () => RowPositionUtils,
RowRenderer: () => RowRenderer,
ScalarFilter: () => ScalarFilter,
ScrollVisibleService: () => ScrollVisibleService,
SelectCellEditor: () => SelectCellEditor,
SelectableService: () => SelectableService,
SelectionHandleType: () => SelectionHandleType,
ServerSideTransactionResultStatus: () => ServerSideTransactionResultStatus,
SetLeftFeature: () => SetLeftFeature,
SimpleFilter: () => SimpleFilter,
SortController: () => SortController,
SortIndicatorComp: () => SortIndicatorComp,
SortIndicatorSelector: () => SortIndicatorSelector,
StandardMenuFactory: () => StandardMenuFactory,
StylingService: () => StylingService,
TabGuardClassNames: () => TabGuardClassNames,
TabGuardComp: () => TabGuardComp,
TabGuardCtrl: () => TabGuardCtrl,
TabGuardFeature: () => TabGuardFeature,
TextCellEditor: () => TextCellEditor,
TextFilter: () => TextFilter,
TextFloatingFilter: () => TextFloatingFilter,
TooltipFeature: () => TooltipFeature,
TooltipStateManager: () => TooltipStateManager,
TouchListener: () => TouchListener,
UserComponentFactory: () => UserComponentFactory,
UserComponentRegistry: () => UserComponentRegistry,
ValueCache: () => ValueCache,
ValueService: () => ValueService,
VanillaFrameworkOverrides: () => VanillaFrameworkOverrides,
VerticalDirection: () => VerticalDirection,
VisibleColsService: () => VisibleColsService,
_ColumnFilterModule: () => ColumnFilterModule,
_CommunityMenuApiModule: () => CommunityMenuApiModule,
_CsrmSsrmSharedApiModule: () => CsrmSsrmSharedApiModule,
_EditCoreModule: () => EditCoreModule,
_EmptyBean: () => EmptyBean,
_FilterCoreModule: () => FilterCoreModule,
_FloatingFilterModule: () => FloatingFilterModule,
_ReadOnlyFloatingFilterModule: () => ReadOnlyFloatingFilterModule,
_RowNodeBlockModule: () => RowNodeBlockModule,
_SsrmInfiniteSharedApiModule: () => SsrmInfiniteSharedApiModule,
_addFocusableContainerListener: () => _addFocusableContainerListener,
_areEqual: () => _areEqual,
_bindCellRendererToHtmlElement: () => _bindCellRendererToHtmlElement,
_capitalise: () => _capitalise,
_clearElement: () => _clearElement,
_cloneObject: () => _cloneObject,
_combineAttributesAndGridOptions: () => _combineAttributesAndGridOptions,
_compose: () => _compose,
_createIcon: () => _createIcon,
_createIconNoSpan: () => _createIconNoSpan,
_debounce: () => _debounce,
_defaultComparator: () => _defaultComparator,
_defineModule: () => _defineModule,
_doOnce: () => _doOnce,
_errorOnce: () => _errorOnce,
_escapeString: () => _escapeString,
_exists: () => _exists,
_existsAndNotEmpty: () => _existsAndNotEmpty,
_flatten: () => _flatten,
_forEachReverse: () => _forEachReverse,
_formatNumberCommas: () => _formatNumberCommas,
_formatNumberTwoDecimalPlacesAndCommas: () => _formatNumberTwoDecimalPlacesAndCommas,
_fuzzySuggestions: () => _fuzzySuggestions,
_getAbsoluteHeight: () => _getAbsoluteHeight,
_getAbsoluteWidth: () => _getAbsoluteWidth,
_getActiveDomElement: () => _getActiveDomElement,
_getAllValuesInObject: () => _getAllValuesInObject,
_getAriaPosInSet: () => _getAriaPosInSet,
_getCtrlForEventTarget: () => _getCtrlForEventTarget,
_getDocument: () => _getDocument,
_getFillHandle: () => _getFillHandle,
_getGlobalGridOption: () => _getGlobalGridOption,
_getGrandTotalRow: () => _getGrandTotalRow,
_getGroupAggFiltering: () => _getGroupAggFiltering,
_getGroupSelection: () => _getGroupSelection,
_getGroupSelectsDescendants: () => _getGroupSelectsDescendants,
_getGroupTotalRowCallback: () => _getGroupTotalRowCallback,
_getHeaderCheckbox: () => _getHeaderCheckbox,
_getHeaderClassesFromColDef: () => _getHeaderClassesFromColDef,
_getInnerHeight: () => _getInnerHeight,
_getInnerWidth: () => _getInnerWidth,
_getIsRowSelectable: () => _getIsRowSelectable,
_getRowContainerOptions: () => _getRowContainerOptions,
_getRowHeightAsNumber: () => _getRowHeightAsNumber,
_getRowHeightForNode: () => _getRowHeightForNode,
_getRowIdCallback: () => _getRowIdCallback,
_getRowSelectionMode: () => _getRowSelectionMode,
_getSuppressMultiRanges: () => _getSuppressMultiRanges,
_getToolPanelClassesFromColDef: () => _getToolPanelClassesFromColDef,
_includes: () => _includes,
_insertArrayIntoArray: () => _insertArrayIntoArray,
_insertIntoArray: () => _insertIntoArray,
_isAnimateRows: () => _isAnimateRows,
_isCellSelectionEnabled: () => _isCellSelectionEnabled,
_isClientSideRowModel: () => _isClientSideRowModel,
_isColumnsSortingCoupledToGroup: () => _isColumnsSortingCoupledToGroup,
_isDomLayout: () => _isDomLayout,
_isElementInEventPath: () => _isElementInEventPath,
_isEventFromPrintableCharacter: () => _isEventFromPrintableCharacter,
_isGetRowHeightFunction: () => _isGetRowHeightFunction,
_isGroupMultiAutoColumn: () => _isGroupMultiAutoColumn,
_isGroupUseEntireRow: () => _isGroupUseEntireRow,
_isIOSUserAgent: () => _isIOSUserAgent,
_isMultiRowSelection: () => _isMultiRowSelection,
_isNodeOrElement: () => _isNodeOrElement,
_isNothingFocused: () => _isNothingFocused,
_isRowSelection: () => _isRowSelection,
_isServerSideRowModel: () => _isServerSideRowModel,
_isStopPropagationForAgGrid: () => _isStopPropagationForAgGrid,
_isUsingNewCellSelectionAPI: () => _isUsingNewCellSelectionAPI,
_isUsingNewRowSelectionAPI: () => _isUsingNewRowSelectionAPI,
_isVisible: () => _isVisible,
_iterateObject: () => _iterateObject,
_jsonEquals: () => _jsonEquals,
_last: () => _last,
_loadTemplate: () => _loadTemplate,
_log: () => _log,
_makeNull: () => _makeNull,
_mergeDeep: () => _mergeDeep,
_missing: () => _missing,
_missingOrEmpty: () => _missingOrEmpty,
_parseDateTimeFromString: () => _parseDateTimeFromString,
_processOnChange: () => _processOnChange,
_radioCssClass: () => _radioCssClass,
_removeAriaExpanded: () => _removeAriaExpanded,
_removeAriaSort: () => _removeAriaSort,
_removeFromArray: () => _removeFromArray,
_removeFromParent: () => _removeFromParent,
_removeRepeatsFromArray: () => _removeRepeatsFromArray,
_serialiseDate: () => _serialiseDate,
_setAriaActiveDescendant: () => _setAriaActiveDescendant,
_setAriaChecked: () => _setAriaChecked,
_setAriaColCount: () => _setAriaColCount,
_setAriaColIndex: () => _setAriaColIndex,
_setAriaColSpan: () => _setAriaColSpan,
_setAriaControls: () => _setAriaControls,
_setAriaDescribedBy: () => _setAriaDescribedBy,
_setAriaDisabled: () => _setAriaDisabled,
_setAriaExpanded: () => _setAriaExpanded,
_setAriaHidden: () => _setAriaHidden,
_setAriaLabel: () => _setAriaLabel,
_setAriaLabelledBy: () => _setAriaLabelledBy,
_setAriaLevel: () => _setAriaLevel,
_setAriaPosInSet: () => _setAriaPosInSet,
_setAriaRole: () => _setAriaRole,
_setAriaRowCount: () => _setAriaRowCount,
_setAriaRowIndex: () => _setAriaRowIndex,
_setAriaSelected: () => _setAriaSelected,
_setAriaSetSize: () => _setAriaSetSize,
_setAriaSort: () => _setAriaSort,
_setDisabled: () => _setDisabled,
_setDisplayed: () => _setDisplayed,
_setFixedWidth: () => _setFixedWidth,
_setVisible: () => _setVisible,
_shallowCompare: () => _shallowCompare,
_stopPropagationForAgGrid: () => _stopPropagationForAgGrid,
_toStringOrNull: () => _toStringOrNull,
_unwrapUserComp: () => _unwrapUserComp,
_utf8_encode: () => _utf8_encode,
_values: () => _values,
_waitUntil: () => _waitUntil,
_warnOnce: () => _warnOnce,
createGrid: () => createGrid,
getDefaultFloatingFilterType: () => getDefaultFloatingFilterType,
isColumn: () => isColumn,
isColumnControlsCol: () => isColumnControlsCol,
isColumnGroup: () => isColumnGroup,
isColumnGroupAutoCol: () => isColumnGroupAutoCol,
isProvidedColumnGroup: () => isProvidedColumnGroup,
isSelectionUIEvent: () => isSelectionUIEvent,
provideGlobalGridOptions: () => provideGlobalGridOptions
});
module.exports = __toCommonJS(main_exports);
// community-modules/core/src/localEventService.ts
var LocalEventService = class {
constructor() {
this.allSyncListeners = /* @__PURE__ */ new Map();
this.allAsyncListeners = /* @__PURE__ */ new Map();
this.globalSyncListeners = /* @__PURE__ */ new Set();
this.globalAsyncListeners = /* @__PURE__ */ new Set();
this.asyncFunctionsQueue = [];
this.scheduled = false;
// using an object performs better than a Set for the number of different events we have
this.firedEvents = {};
}
setFrameworkOverrides(frameworkOverrides) {
this.frameworkOverrides = frameworkOverrides;
}
getListeners(eventType, async, autoCreateListenerCollection) {
const listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;
let listeners = listenerMap.get(eventType);
if (!listeners && autoCreateListenerCollection) {
listeners = /* @__PURE__ */ new Set();
listenerMap.set(eventType, listeners);
}
return listeners;
}
noRegisteredListenersExist() {
return this.allSyncListeners.size === 0 && this.allAsyncListeners.size === 0 && this.globalSyncListeners.size === 0 && this.globalAsyncListeners.size === 0;
}
addEventListener(eventType, listener, async = false) {
this.getListeners(eventType, async, true).add(listener);
}
removeEventListener(eventType, listener, async = false) {
const listeners = this.getListeners(eventType, async, false);
if (!listeners) {
return;
}
listeners.delete(listener);
if (listeners.size === 0) {
const listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;
listenerMap.delete(eventType);
}
}
addGlobalListener(listener, async = false) {
(async ? this.globalAsyncListeners : this.globalSyncListeners).add(listener);
}
removeGlobalListener(listener, async = false) {
(async ? this.globalAsyncListeners : this.globalSyncListeners).delete(listener);
}
dispatchEvent(event) {
const agEvent = event;
this.dispatchToListeners(agEvent, true);
this.dispatchToListeners(agEvent, false);
this.firedEvents[agEvent.type] = true;
}
dispatchEventOnce(event) {
if (!this.firedEvents[event.type]) {
this.dispatchEvent(event);
}
}
dispatchToListeners(event, async) {
const eventType = event.type;
if (async && "event" in event) {
const browserEvent = event.event;
if (browserEvent instanceof Event) {
event.eventPath = browserEvent.composedPath();
}
}
const processEventListeners = (listeners2, originalListeners2) => listeners2.forEach((listener) => {
if (!originalListeners2.has(listener)) {
return;
}
const callback = this.frameworkOverrides ? () => this.frameworkOverrides.wrapIncoming(() => listener(event)) : () => listener(event);
if (async) {
this.dispatchAsync(callback);
} else {
callback();
}
});
const originalListeners = this.getListeners(eventType, async, false) ?? /* @__PURE__ */ new Set();
const listeners = new Set(originalListeners);
if (listeners.size > 0) {
processEventListeners(listeners, originalListeners);
}
const globalListeners = new Set(
async ? this.globalAsyncListeners : this.globalSyncListeners
);
globalListeners.forEach((listener) => {
const callback = this.frameworkOverrides ? () => this.frameworkOverrides.wrapIncoming(() => listener(eventType, event)) : () => listener(eventType, event);
if (async) {
this.dispatchAsync(callback);
} else {
callback();
}
});
}
// this gets called inside the grid's thread, for each event that it
// wants to set async. the grid then batches the events into one setTimeout()
// because setTimeout() is an expensive operation. ideally we would have
// each event in it's own setTimeout(), but we batch for performance.
dispatchAsync(func) {
this.asyncFunctionsQueue.push(func);
if (!this.scheduled) {
const flush = () => {
window.setTimeout(this.flushAsyncQueue.bind(this), 0);
};
this.frameworkOverrides ? this.frameworkOverrides.wrapIncoming(flush) : flush();
this.scheduled = true;
}
}
// this happens in the next VM turn only, and empties the queue of events
flushAsyncQueue() {
this.scheduled = false;
const queueCopy = this.asyncFunctionsQueue.slice();
this.asyncFunctionsQueue = [];
queueCopy.forEach((func) => func());
}
};
// 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/utils/function.ts
var doOnceFlags = {};
function _doOnce(func, key) {
if (doOnceFlags[key]) {
return;
}
func();
doOnceFlags[key] = true;
}
function _log(message, ...args) {
console.log("AG Grid: " + message, ...args);
}
function _warnOnce(msg, ...args) {
_doOnce(() => console.warn("AG Grid: " + msg, ...args), msg + args?.join(""));
}
function _errorOnce(msg, ...args) {
_doOnce(() => console.error("AG Grid: " + msg, ...args), msg + args?.join(""));
}
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) {
_warnOnce(timeoutMessage);
}
}
};
internalCallback();
if (!executed) {
interval = window.setInterval(internalCallback, 10);
}
}
function _compose(...fns) {
return (arg) => fns.reduce((composed, f) => f(composed), arg);
}
// community-modules/core/src/utils/generic.ts
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;
}
return toBoolean(value);
}
function toBoolean(value) {
if (typeof value === "boolean") {
return value;
}
if (typeof value === "string") {
return value.toUpperCase() === "TRUE" || value == "";
}
return false;
}
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/gridOptionsUtils.ts
function isRowModelType(gos, rowModelType) {
return gos.get("rowModelType") === rowModelType;
}
function _isClientSideRowModel(gos) {
return isRowModelType(gos, "clientSide");
}
function _isServerSideRowModel(gos) {
return isRowModelType(gos, "serverSide");
}
function _isDomLayout(gos, domLayout) {
return gos.get("domLayout") === domLayout;
}
function _isRowSelection(gos) {
return _getRowSelectionMode(gos) !== void 0;
}
function _useAsyncEvents(gos) {
return !gos.get("suppressAsyncEvents");
}
function _isGetRowHeightFunction(gos) {
return typeof gos.get("getRowHeight") === "function";
}
function _shouldMaintainColumnOrder(gos, isPivotColumns) {
if (isPivotColumns) {
return !gos.get("enableStrictPivotColumnOrder");
}
return gos.get("maintainColumnOrder");
}
function _getRowHeightForNode(gos, rowNode, allowEstimate = false, defaultRowHeight) {
if (defaultRowHeight == null) {
defaultRowHeight = gos.environment.getDefaultRowHeight();
}
if (_isGetRowHeightFunction(gos)) {
if (allowEstimate) {
return { height: defaultRowHeight, estimated: true };
}
const params = {
node: rowNode,
data: rowNode.data
};
const height = gos.getCallback("getRowHeight")(params);
if (isNumeric(height)) {
if (height === 0) {
_warnOnce(
"The return of `getRowHeight` cannot be zero. If the intention is to hide rows, use a filter instead."
);
}
return { height: Math.max(1, height), estimated: false };
}
}
if (rowNode.detail && gos.get("masterDetail")) {
return getMasterDetailRowHeight(gos);
}
const gridOptionsRowHeight = gos.get("rowHeight");
const rowHeight = gridOptionsRowHeight && isNumeric(gridOptionsRowHeight) ? gridOptionsRowHeight : defaultRowHeight;
return { height: rowHeight, estimated: false };
}
function getMasterDetailRowHeight(gos) {
if (gos.get("detailRowAutoHeight")) {
return { height: 1, estimated: false };
}
const defaultRowHeight = gos.get("detailRowHeight");
if (isNumeric(defaultRowHeight)) {
return { height: defaultRowHeight, estimated: false };
}
return { height: 300, estimated: false };
}
function _getRowHeightAsNumber(gos) {
const { environment } = gos;
const gridOptionsRowHeight = gos.get("rowHeight");
if (!gridOptionsRowHeight || _missing(gridOptionsRowHeight)) {
return environment.getDefaultRowHeight();
}
const rowHeight = environment.refreshRowHeightVariable();
if (rowHeight !== -1) {
return rowHeight;
}
_warnOnce("row height must be a number if not using standard row model");
return environment.getDefaultRowHeight();
}
function isNumeric(value) {
return !isNaN(value) && typeof value === "number" && isFinite(value);
}
function _getDomData(gos, element, key) {
const domData = element[gos.getDomDataKey()];
return domData ? domData[key] : void 0;
}
function _setDomData(gos, element, key, value) {
const domDataKey = gos.getDomDataKey();
let domData = element[domDataKey];
if (_missing(domData)) {
domData = {};
element[domDataKey] = domData;
}
domData[key] = value;
}
function _getDocument(gos) {
let result = null;
const gridOptionsGetDocument = gos.get("getDocument");
if (gridOptionsGetDocument && _exists(gridOptionsGetDocument)) {
result = gridOptionsGetDocument();
} else if (gos.eGridDiv) {
result = gos.eGridDiv.ownerDocument;
}
if (result && _exists(result)) {
return result;
}
return document;
}
function _getWindow(gos) {
const eDocument = _getDocument(gos);
return eDocument.defaultView || window;
}
function _getRootNode(gos) {
return gos.eGridDiv.getRootNode();
}
function _getActiveDomElement(gos) {
return _getRootNode(gos).activeElement;
}
function _isNothingFocused(gos) {
const eDocument = _getDocument(gos);
const activeEl = _getActiveDomElement(gos);
return activeEl === null || activeEl === eDocument.body;
}
function _isAnimateRows(gos) {
if (gos.get("ensureDomOrder")) {
return false;
}
return gos.get("animateRows");
}
function _isGroupRowsSticky(gos) {
if (gos.get("paginateChildRows") || gos.get("groupHideOpenParents") || _isDomLayout(gos, "print")) {
return false;
}
return true;
}
function _isColumnsSortingCoupledToGroup(gos) {
const autoGroupColumnDef = gos.get("autoGroupColumnDef");
return !autoGroupColumnDef?.comparator && !gos.get("treeData");
}
function _getGroupAggFiltering(gos) {
const userValue = gos.get("groupAggFiltering");
if (typeof userValue === "function") {
return gos.getCallback("groupAggFiltering");
}
if (userValue === true) {
return () => true;
}
return void 0;
}
function _getGrandTotalRow(gos) {
const userValue = gos.get("grandTotalRow");
if (userValue) {
return userValue;
}
const legacyValue = gos.get("groupIncludeTotalFooter");
if (legacyValue) {
return "bottom";
}
return void 0;
}
function _getGroupTotalRowCallback(gos) {
const userValue = gos.get("groupTotalRow");
if (typeof userValue === "function") {
return gos.getCallback("groupTotalRow");
}
if (userValue) {
return () => userValue;
}
const legacyValue = gos.get("groupIncludeFooter");
if (typeof legacyValue === "function") {
const legacyCallback = gos.getCallback("groupIncludeFooter");
return (p) => {
return legacyCallback(p) ? "bottom" : void 0;
};
}
return () => legacyValue ? "bottom" : void 0;
}
function _isGroupMultiAutoColumn(gos) {
if (gos.exists("groupDisplayType")) {
return gos.get("groupDisplayType") === "multipleColumns";
}
return gos.get("groupHideOpenParents");
}
function _isGroupUseEntireRow(gos, pivotMode) {
if (pivotMode) {
return false;
}
return gos.get("groupDisplayType") === "groupRows";
}
function _getRowIdCallback(gos) {
const getRowId = gos.getCallback("getRowId");
if (getRowId === void 0) {
return getRowId;
}
return (params) => {
let id = getRowId(params);
if (typeof id !== "string") {
_warnOnce(`The getRowId callback must return a string. The ID `, id, ` is being cast to a string.`);
id = String(id);
}
return id;
};
}
function _getCheckboxes(selection) {
return selection?.checkboxes ?? true;
}
function _getHeaderCheckbox(selection) {
return selection?.mode === "multiRow" && (selection.headerCheckbox ?? true);
}
function _getHideDisabledCheckboxes(selection) {
return selection?.hideDisabledCheckboxes ?? false;
}
function _isUsingNewRowSelectionAPI(gos) {
const rowSelection = gos.get("rowSelection");
return typeof rowSelection !== "string";
}
function _isUsingNewCellSelectionAPI(gos) {
return gos.get("cellSelection") !== void 0;
}
function _getSuppressMultiRanges(gos) {
const selection = gos.get("cellSelection");
const useNewAPI = selection !== void 0;
if (!useNewAPI) {
return gos.get("suppressMultiRangeSelection");
}
return typeof selection !== "boolean" ? selection?.suppressMultiRanges ?? false : false;
}
function _isCellSelectionEnabled(gos) {
const selection = gos.get("cellSelection");
const useNewAPI = selection !== void 0;
return useNewAPI ? !!selection : gos.get("enableRangeSelection");
}
function _isRangeHandleEnabled(gos) {
const selection = gos.get("cellSelection");
const useNewAPI = selection !== void 0;
if (!useNewAPI) {
return gos.get("enableRangeHandle");
}
return typeof selection !== "boolean" ? selection.handle?.mode === "range" : false;
}
function _isFillHandleEnabled(gos) {
const selection = gos.get("cellSelection");
const useNewAPI = selection !== void 0;
if (!useNewAPI) {
return gos.get("enableFillHandle");
}
return typeof selection !== "boolean" ? selection.handle?.mode === "fill" : false;
}
function _getFillHandle(gos) {
const selection = gos.get("cellSelection");
const useNewAPI = selection !== void 0;
if (!useNewAPI) {
return {
mode: "fill",
setFillValue: gos.get("fillOperation"),
direction: gos.get("fillHandleDirection"),
suppressClearOnFillReduction: gos.get("suppressClearOnFillReduction")
};
}
return typeof selection !== "boolean" && selection.handle?.mode === "fill" ? selection.handle : void 0;
}
function _getEnableClickSelection(gos) {
const selection = gos.get("rowSelection") ?? "single";
if (typeof selection === "string") {
const suppressRowClickSelection = gos.get("suppressRowClickSelection");
const suppressRowDeselection = gos.get("suppressRowDeselection");
if (suppressRowClickSelection && suppressRowDeselection) {
return false;
} else if (suppressRowClickSelection) {
return "enableDeselection";
} else if (suppressRowDeselection) {
return "enableSelection";
} else {
return true;
}
}
return selection.mode === "singleRow" || selection.mode === "multiRow" ? selection.enableClickSelection ?? false : false;
}
function _getEnableSelection(gos) {
const enableClickSelection = _getEnableClickSelection(gos);
return enableClickSelection === true || enableClickSelection === "enableSelection";
}
function _getEnableDeselection(gos) {
const enableClickSelection = _getEnableClickSelection(gos);
return enableClickSelection === true || enableClickSelection === "enableDeselection";
}
function _getIsRowSelectable(gos) {
const selection = gos.get("rowSelection");
if (typeof selection === "string") {
return gos.get("isRowSelectable");
}
return selection?.isRowSelectable;
}
function _getRowSelectionMode(gos) {
const selection = gos.get("rowSelection");
if (typeof selection === "string") {
switch (selection) {
case "multiple":
return "multiRow";
case "single":
return "singleRow";
default:
return;
}
}
return selection?.mode;
}
function _isMultiRowSelection(gos) {
const mode = _getRowSelectionMode(gos);
return mode === "multiRow";
}
function _getEnableSelectionWithoutKeys(gos) {
const selection = gos.get("rowSelection");
if (typeof selection === "string") {
return gos.get("rowMultiSelectWithClick");
}
return selection?.enableSelectionWithoutKeys ?? false;
}
function _getGroupSelection(gos) {
const selection = gos.get("rowSelection");
if (typeof selection === "string") {
const groupSelectsChildren = gos.get("groupSelectsChildren");
const groupSelectsFiltered = gos.get("groupSelectsFiltered");
if (groupSelectsChildren && groupSelectsFiltered) {
return "filteredDescendants";
} else if (groupSelectsChildren) {
return "descendants";
} else {
return "self";
}
}
return selection?.mode === "multiRow" ? selection.groupSelects : void 0;
}
function _getGroupSelectsDescendants(gos) {
const groupSelection = _getGroupSelection(gos);
return groupSelection === "descendants" || groupSelection === "filteredDescendants";
}
function _isSetFilterByDefault(gos) {
return gos.isModuleRegistered("@ag-grid-enterprise/set-filter" /* SetFilterModule */) && !gos.get("suppressSetFilterByDefault");
}
// community-modules/core/src/utils/array.ts
function _existsAndNotEmpty(value) {
return value != null && value.length > 0;
}
function _last(arr) {
if (!arr || !arr.length) {
return;
}
return arr[arr.length - 1];
}
function _areEqual(a, b, comparator) {
if (a == null && b == null) {
return true;
}
return a != null && b != null && a.length === b.length && a.every((value, index) => comparator ? comparator(value, b[index]) : b[index] === value);
}
function _shallowCompare(arr1, arr2) {
return _areEqual(arr1, arr2);
}
function _sortNumerically(array) {
return array.sort((a, b) => a - b);
}
function _removeRepeatsFromArray(array, object) {
if (!array) {
return;
}
for (let index = array.length - 2; index >= 0; index--) {
const thisOneMatches = array[index] === object;
const nextOneMatches = array[index + 1] === object;
if (thisOneMatches && nextOneMatches) {
array.splice(index + 1, 1);
}
}
}
function _removeFromUnorderedArray(array, object) {
const index = array.indexOf(object);
if (index >= 0) {
array[index] = array[array.length - 1];
array.pop();
}
}
function _removeFromArray(array, object) {
const index = array.indexOf(object);
if (index >= 0) {
array.splice(index, 1);
}
}
function _removeAllFromUnorderedArray(array, toRemove) {
for (let i = 0; i < toRemove.length; i++) {
_removeFromUnorderedArray(array, toRemove[i]);
}
}
function _removeAllFromArray(array, toRemove) {
for (let i = 0; i < toRemove.length; i++) {
_removeFromArray(array, toRemove[i]);
}
}
function _insertIntoArray(array, object, toIndex) {
array.splice(toIndex, 0, object);
}
function _insertArrayIntoArray(dest, src, toIndex) {
if (dest == null || src == null) {
return;
}
for (let i = src.length - 1; i >= 0; i--) {
const item = src[i];
_insertIntoArray(dest, item, toIndex);
}
}
function _moveInArray(array, objectsToMove, toIndex) {
_removeAllFromArray(array, objectsToMove);
objectsToMove.slice().reverse().forEach((obj) => _insertIntoArray(array, obj, toIndex));
}
function _includes(array, value) {
return array.indexOf(value) > -1;
}
function _flatten(arrayOfArrays) {
return arrayOfArrays?.flatMap((t) => t) ?? [];
}
function _pushAll(target, source) {
if (source == null || target == null) {
return;
}
source.forEach((value) => target.push(value));
}
function _forEachReverse(list, action) {
if (list == null) {
return;
}
for (let i = list.length - 1; i >= 0; i--) {
action(list[i], i);
}
}
// community-modules/core/src/utils/event.ts
var AG_GRID_STOP_PROPAGATION = "__ag_Grid_Stop_Propagation";
var PASSIVE_EVENTS = ["touchstart", "touchend", "touchmove", "touchcancel", "scroll"];
var supports = {};
function _stopPropagationForAgGrid(event) {
event[AG_GRID_STOP_PROPAGATION] = true;
}
function _isStopPropagationForAgGrid(event) {
return event[AG_GRID_STOP_PROPAGATION] === true;
}
var _isEventSupported = /* @__PURE__ */ (() => {
const tags = {
select: "input",
change: "input",
submit: "form",
reset: "form",
error: "img",
load: "img",
abort: "img"
};
const eventChecker = (eventName) => {
if (typeof supports[eventName] === "boolean") {
return supports[eventName];
}
const el = document.createElement(tags[eventName] || "div");
eventName = "on" + eventName;
return supports[eventName] = eventName in el;
};
return eventChecker;
})();
function _getCtrlForEventTarget(gos, eventTarget, type) {
let sourceElement = eventTarget;
while (sourceElement) {
const renderedComp = _getDomData(gos, sourceElement, type);
if (renderedComp) {
return renderedComp;
}
sourceElement = sourceElement.parentElement;
}
return null;
}
function _isElementInEventPath(element, event) {
if (!event || !element) {
return false;
}
return _getEventPath(event).indexOf(element) >= 0;
}
function _createEventPath(event) {
const res = [];
let pointer = event.target;
while (pointer) {
res.push(pointer);
pointer = pointer.parentElement;
}
return res;
}
function _getEventPath(event) {
const eventNoType = event;
if (eventNoType.path) {
return eventNoType.path;
}
if (eventNoType.composedPath) {
return eventNoType.composedPath();
}
return _createEventPath(eventNoType);
}
function _addSafePassiveEventListener(frameworkOverrides, eElement, event, listener) {
const isPassive = _includes(PASSIVE_EVENTS, event);
const options = isPassive ? { passive: true } : void 0;
if (frameworkOverrides && frameworkOverrides.addEventListener) {
frameworkOverrides.addEventListener(eElement, event, listener, options);
}
}
// community-modules/core/src/context/beanStub.ts
var BeanStub = class {
constructor() {
// not named context to allow children to use 'context' as a variable name
this.destroyFunctions = [];
this.destroyed = false;
// for vue 3 - prevents Vue from trying to make this (and obviously any sub classes) from being reactive
// prevents vue from creating proxies for created objects and prevents identity related issues
this.__v_skip = true;
this.propertyListenerId = 0;
// Enable multiple grid properties to be updated together by the user but only trigger shared logic once.
// Closely related to logic in ComponentUtil.ts
this.lastChangeSetIdLookup = {};
this.isAlive = () => !this.destroyed;
}
preWireBeans(beans) {
this.frameworkOverrides = beans.frameworkOverrides;
this.stubContext = beans.context;
this.eventService = beans.eventService;
this.gos = beans.gos;
this.localeService = beans.localeService;
}
// this was a test constructor niall built, when active, it prints after 5 seconds all beans/components that are
// not destroyed. to use, create a new grid, then api.destroy() before 5 seconds. then anything that gets printed
// points to a bean or component that was not properly disposed of.
// constructor() {
// setTimeout(()=> {
// if (this.isAlive()) {
// let prototype: any = Object.getPrototypeOf(this);
// const constructor: any = prototype.constructor;
// const constructorString = constructor.toString();
// const beanName = constructorString.substring(9, constructorString.indexOf("("));
// console.log('is alive ' + beanName);
// }
// }, 5000);
// }
// CellComp and GridComp and override this because they get the FrameworkOverrides from the Beans bean
getFrameworkOverrides() {
return this.frameworkOverrides;
}
destroy() {
for (let i = 0; i < this.destroyFunctions.length; i++) {
this.destroyFunctions[i]();
}
this.destroyFunctions.length = 0;
this.destroyed = true;
this.dispatchLocalEvent({ type: "destroyed" });
}
// The typing of AgEventListener<any, any, any> is not ideal, but it's the best we can do at the moment to enable
// eventService to have the best typing at the expense of BeanStub local events
/** Add a local event listener against this BeanStub */
addEventListener(eventType, listener, async) {
if (!this.localEventService) {
this.localEventService = new LocalEventService();
}
this.localEventService.addEventListener(eventType, listener, async);
}
/** Remove a local event listener from this BeanStub */
removeEventListener(eventType, listener, async) {
if (this.localEventService) {
this.localEventService.removeEventListener(eventType, listener, async);
}
}
dispatchLocalEvent(event) {
if (this.localEventService) {
this.localEventService.dispatchEvent(event);
}
}
addManagedElementListeners(object, handlers) {
return this._setupListeners(object, handlers);
}
addManagedEventListeners(handlers) {
return this._setupListeners(this.eventService, handlers);
}
addManagedListeners(object, handlers) {
return this._setupListeners(object, handlers);
}
_setupListeners(object, handlers) {
const destroyFuncs = [];
for (const k in handlers) {
const handler = handlers[k];
if (handler) {
destroyFuncs.push(this._setupListener(object, k, handler));
}
}
return destroyFuncs;
}
_setupListener(object, event, listener) {
if (this.destroyed) {
return () => null;
}
if (object instanceof HTMLElement) {
_addSafePassiveEventListener(this.getFrameworkOverrides(), object, event, listener);
} else {
object.addEventListener(event, listener);
}
const destroyFunc = () => {
object.removeEventListener(event, listener);
return null;
};
this.destroyFunctions.push(destroyFunc);
return () => {
destroyFunc();
this.destroyFunctions = this.destroyFunctions.filter((fn) => fn !== destroyFunc);
return null;
};
}
/**
* Setup a managed property listener for the given GridOption property.
* However, stores the destroy function in the beanStub so that if this bean
* is a component the destroy function will be called when the component is destroyed
* as opposed to being cleaned up only when the GridOptionsService is destroyed.
*/
setupGridOptionListener(event, listener) {
this.gos.addPropertyEventListener(event, listener);
const destroyFunc = () => {
this.gos.removePropertyEventListener(event, listener);
return null;
};
this.destroyFunctions.push(destroyFunc);
return () => {
destroyFunc();
this.destroyFunctions = this.destroyFunctions.filter((fn) => fn !== destroyFunc);
return null;
};
}
/**
* Setup a managed property listener for the given GridOption property.
* @param event GridOption property to listen to changes for.
* @param listener Listener to run when property value changes
*/
addManagedPropertyListener(event, listener) {
if (this.destroyed) {
return () => null;
}
return this.setupGridOptionListener(event, listener);
}
/**
* Setup managed property listeners for the given set of GridOption properties.
* The listener will be run if any of the property changes but will only run once if
* multiple of the properties change within the same framework lifecycle event.
* Works on the basis that GridOptionsService updates all properties *before* any property change events are fired.
* @param events Array of GridOption properties to listen for changes too.
* @param listener Shared listener to run if any of the properties change
*/
addManagedPropertyListeners(events, listener) {
if (this.destroyed) {
return;
}
const eventsKey = events.join("-") + this.propertyListenerId++;
const wrappedListener = (event) => {
if (event.changeSet) {
if (event.changeSet && event.changeSet.id === this.lastChangeSetIdLookup[eventsKey]) {
return;
}
this.lastChangeSetIdLookup[eventsKey] = event.changeSet.id;
}
const propertiesChangeEvent = {
type: "gridPropertyChanged",
changeSet: event.changeSet,
source: event.source
};
listener(propertiesChangeEvent);
};
events.forEach((event) => this.setupGridOptionListener(event, wrappedListener));
}
addDestroyFunc(func) {
if (this.isAlive()) {
this.destroyFunctions.push(func);
} else {
func();
}
}
createManagedBean(bean, context) {
const res = this.createBean(bean, context);
this.addDestroyFunc(this.destroyBean.bind(this, bean, context));
return res;
}
createBean(bean, context, afterPreCreateCallback) {
return (context || this.stubContext).createBean(bean, afterPreCreateCallback);
}
/**
* Destroys a bean and returns undefined to support destruction and clean up in a single line.
* this.dateComp = this.context.destroyBean(this.dateComp);
*/
destroyBean(bean, context) {
return (context || this.stubContext).destroyBean(bean);
}
/**
* Destroys an array of beans and returns an empty array to support destruction and clean up in a single line.
* this.dateComps = this.context.destroyBeans(this.dateComps);
*/
destroyBeans(beans, context) {
return (context || this.stubContext).destroyBeans(beans);
}
};
// community-modules/core/src/entities/agProvidedColumnGroup.ts
function isProvidedColumnGroup(col) {
return col instanceof AgProvidedColumnGroup;
}
var AgProvidedCo