@revolist/revogrid 4.25.2 → 4.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/hydrate/index.mjs CHANGED
@@ -16156,8 +16156,84 @@ const lsEq = function (value, extra) {
16156
16156
  };
16157
16157
  lsEq.extra = 'input';
16158
16158
 
16159
- const set = (value) => !(value === '' || value === null || value === void 0);
16160
- const notSet = (value) => !set(value);
16159
+ const DEFAULT_BLANK_SEMANTICS = Object.freeze({
16160
+ null: true,
16161
+ undefined: true,
16162
+ emptyString: true,
16163
+ whitespaceOnlyString: false,
16164
+ emptyArray: false,
16165
+ missingProperty: true,
16166
+ });
16167
+ const BOOLEAN_FIELDS = [
16168
+ 'null',
16169
+ 'undefined',
16170
+ 'emptyString',
16171
+ 'whitespaceOnlyString',
16172
+ 'emptyArray',
16173
+ 'missingProperty',
16174
+ ];
16175
+ /** Merge a grid policy and a partial column policy over Core defaults. */
16176
+ function resolveBlankSemantics(gridPolicy, columnPolicy) {
16177
+ const resolved = Object.assign({}, DEFAULT_BLANK_SEMANTICS);
16178
+ for (const policy of [gridPolicy, columnPolicy]) {
16179
+ if (!policy) {
16180
+ continue;
16181
+ }
16182
+ for (const field of BOOLEAN_FIELDS) {
16183
+ if (policy[field] !== undefined) {
16184
+ resolved[field] = policy[field];
16185
+ }
16186
+ }
16187
+ if (policy.isBlank !== undefined) {
16188
+ resolved.isBlank = policy.isBlank;
16189
+ }
16190
+ }
16191
+ return resolved;
16192
+ }
16193
+ /** Evaluate blankness from the unparsed source value and property presence. */
16194
+ function isBlankValue(value, context) {
16195
+ const policy = context.blankSemantics;
16196
+ let fallbackResult;
16197
+ if (!context.hasOwnProperty) {
16198
+ fallbackResult = policy.missingProperty === true;
16199
+ }
16200
+ else if (value === null) {
16201
+ fallbackResult = policy.null === true;
16202
+ }
16203
+ else if (value === undefined) {
16204
+ fallbackResult = policy.undefined === true;
16205
+ }
16206
+ else if (value === '') {
16207
+ fallbackResult = policy.emptyString === true;
16208
+ }
16209
+ else if (typeof value === 'string' &&
16210
+ value.length > 0 &&
16211
+ value.trim() === '') {
16212
+ fallbackResult = policy.whitespaceOnlyString === true;
16213
+ }
16214
+ else if (Array.isArray(value) && value.length === 0) {
16215
+ fallbackResult = policy.emptyArray === true;
16216
+ }
16217
+ else {
16218
+ fallbackResult = false;
16219
+ }
16220
+ return policy.isBlank
16221
+ ? policy.isBlank(value, context, fallbackResult)
16222
+ : fallbackResult;
16223
+ }
16224
+
16225
+ function blankContext(value, context) {
16226
+ return context !== null && context !== void 0 ? context : {
16227
+ model: {},
16228
+ property: '',
16229
+ sourceValue: value,
16230
+ parsedValue: value,
16231
+ hasOwnProperty: true,
16232
+ blankSemantics: DEFAULT_BLANK_SEMANTICS,
16233
+ };
16234
+ }
16235
+ const notSet = (value, _extra, context) => isBlankValue(context ? context.sourceValue : value, blankContext(value, context));
16236
+ const set = (value, _extra, context) => !notSet(value, _extra, context);
16161
16237
 
16162
16238
  const beginsWith = (value, extra) => {
16163
16239
  if (!value) {
@@ -16217,11 +16293,13 @@ const filterCoreFunctionsIndexedByType = {
16217
16293
  const filterTypes = {
16218
16294
  string: ['notEmpty', 'empty', 'eq', 'notEq', 'begins', 'contains', 'notContains'],
16219
16295
  number: ['notEmpty', 'empty', 'eqN', 'neqN', 'gt', 'gte', 'lt', 'lte'],
16296
+ boolean: ['notEmpty', 'empty'],
16297
+ array: ['notEmpty', 'empty'],
16220
16298
  };
16221
16299
  const filterNames = {
16222
16300
  none: 'None',
16223
- empty: 'Not set',
16224
- notEmpty: 'Set',
16301
+ empty: 'Is blank',
16302
+ notEmpty: 'Is not blank',
16225
16303
  eq: 'Equal',
16226
16304
  notEq: 'Not equal',
16227
16305
  begins: 'Begins with',
@@ -16344,6 +16422,7 @@ class FilterPlugin extends BasePlugin {
16344
16422
  }
16345
16423
  initConfig(config) {
16346
16424
  var _a;
16425
+ this.config = config;
16347
16426
  this.allowDuplicateOperators = (_a = config.allowDuplicateOperators) !== null && _a !== void 0 ? _a : true;
16348
16427
  if (this.pop) {
16349
16428
  this.pop.allowDuplicateOperators = this.allowDuplicateOperators;
@@ -16560,38 +16639,56 @@ class FilterPlugin extends BasePlugin {
16560
16639
  * Get trimmed rows based on filter
16561
16640
  */
16562
16641
  getRowFilter(rows, filterItems, columnByProp) {
16642
+ var _a, _b;
16563
16643
  const propKeys = Object.keys(filterItems);
16644
+ const blankSemanticsByProp = {};
16645
+ for (const prop of propKeys) {
16646
+ blankSemanticsByProp[prop] = resolveBlankSemantics((_a = this.config) === null || _a === void 0 ? void 0 : _a.blankSemantics, (_b = columnByProp[prop]) === null || _b === void 0 ? void 0 : _b.blankSemantics);
16647
+ }
16564
16648
  const trimmed = {};
16565
16649
  // each rows
16566
16650
  for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {
16567
16651
  // check filter by column properties
16568
16652
  for (const prop of propKeys) {
16569
16653
  // add to the list of removed/trimmed rows of filter condition is satisfied
16570
- if (this.shouldTrimRow(filterItems[prop], prop, columnByProp[prop], rows[rowIndex])) {
16654
+ if (this.shouldTrimRow(filterItems[prop], prop, blankSemanticsByProp[prop], columnByProp[prop], rows[rowIndex])) {
16571
16655
  trimmed[rowIndex] = true;
16572
16656
  }
16573
16657
  } // end of for-of propKeys
16574
16658
  }
16575
16659
  return trimmed;
16576
16660
  }
16577
- shouldTrimRow(propFilters, prop, column, model = {}) {
16661
+ shouldTrimRow(propFilters, prop, blankSemantics, column, model = {}) {
16578
16662
  // reset the count of satisfied filters
16579
16663
  let propFilterSatisfiedCount = 0;
16580
16664
  // reset the array of last filter results
16581
16665
  let lastFilterResults = [];
16666
+ // THE MAGIC OF FILTERING IS HERE
16667
+ // If there is no column but user wants to filter by a property
16668
+ const hasOwnProperty = Object.hasOwn(model, prop);
16669
+ const sourceValue = model[prop];
16670
+ const parsedValue = (column === null || column === void 0 ? void 0 : column.cellParser)
16671
+ ? column.cellParser(model, column)
16672
+ : sourceValue;
16673
+ const context = {
16674
+ model,
16675
+ column,
16676
+ property: prop,
16677
+ sourceValue,
16678
+ parsedValue,
16679
+ hasOwnProperty,
16680
+ blankSemantics,
16681
+ };
16582
16682
  // testing each filter for a prop
16583
16683
  for (const [filterIndex, filterData] of propFilters.entries()) {
16584
16684
  // the filter LogicFunction based on the type
16585
16685
  const filterFunc = this.filterFunctionsIndexedByType[filterData.type];
16586
- // THE MAGIC OF FILTERING IS HERE
16587
- // If there is no column but user wants to filter by a property
16588
- const value = column ? getCellDataParsed(model, column) : model[prop];
16589
16686
  // OR relation
16590
16687
  if (filterData.relation === 'or') {
16591
16688
  // reset the array of last filter results
16592
16689
  lastFilterResults = [];
16593
16690
  // if the filter is satisfied, continue to the next filter
16594
- if (filterFunc(value, filterData.value)) {
16691
+ if (filterFunc(parsedValue, filterData.value, context)) {
16595
16692
  continue;
16596
16693
  }
16597
16694
  // if the filter is not satisfied, count it
@@ -16601,7 +16698,7 @@ class FilterPlugin extends BasePlugin {
16601
16698
  else {
16602
16699
  // 'and' relation will need to know the next filter
16603
16700
  // so we save this current filter to include it in the next filter
16604
- lastFilterResults.push(!filterFunc(value, filterData.value));
16701
+ lastFilterResults.push(!filterFunc(parsedValue, filterData.value, context));
16605
16702
  if (isFinalAndFilter(filterIndex, propFilters)) {
16606
16703
  // let's just continue since for sure propFilterSatisfiedCount cannot be satisfied
16607
16704
  if (allAndConditionsSatisfied(lastFilterResults)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revolist/revogrid",
3
- "version": "4.25.2",
3
+ "version": "4.26.0",
4
4
  "type": "module",
5
5
  "description": "Virtual reactive data grid spreadsheet component - RevoGrid.",
6
6
  "license": "MIT",
package/readme.md CHANGED
@@ -74,6 +74,40 @@ Used by some of the largest companies in Europe and the United States.
74
74
  - Header filtering.
75
75
  - Custom filters to extend system filters with your own set.
76
76
 
77
+ Blank filters preserve source-value identity and own-property presence. By default,
78
+ `null`, owned `undefined`, exactly `""`, and missing own properties are blank;
79
+ whitespace-only strings, `false`, `0`, `NaN`, arrays, and objects are not. The
80
+ policy can be configured at grid level and overridden field-by-field per column
81
+ with `blankSemantics`. Existing saved `empty` and `notEmpty` operator IDs remain
82
+ compatible and are labeled “Is blank” and “Is not blank.”
83
+
84
+ ```ts
85
+ const filter = {
86
+ blankSemantics: {
87
+ whitespaceOnlyString: true,
88
+ emptyArray: true,
89
+ isBlank(value, context, fallbackResult) {
90
+ return value === 'N/A' || fallbackResult;
91
+ },
92
+ },
93
+ };
94
+
95
+ const columns = [{
96
+ prop: 'tags',
97
+ filter: 'array',
98
+ // Partial column policy; other fields inherit the grid policy.
99
+ blankSemantics: { emptyArray: false },
100
+ }];
101
+ ```
102
+
103
+ An inherited property counts as missing. A `cellParser` supplies the value for
104
+ ordinary comparisons but does not replace the raw value used for blank checks.
105
+ The callback receives the source value, row model, column, property, parsed
106
+ value, own-property status, effective policy, and fallback result. “Is not
107
+ blank” is the exact inverse of the resolved blank predicate. Typed operators
108
+ remain strict; blank configuration never normalizes `false`, `0`, or arrays
109
+ into another source value.
110
+
77
111
  - **[Export](https://rv-grid.com/guide/export.plugin)**:
78
112
  - **[CSV](https://rv-grid.com/guide/export.plugin)**: Built-in file export for core RevoGrid data workflows.
79
113
  - **[PDF](https://rv-grid.com/guide/pdf-export)**: Browser-side PDF export with the lightweight [`@revolist/revogrid-pdf-export`](https://www.npmjs.com/package/@revolist/revogrid-pdf-export) plugin.
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- export{getAssetPath,h,render,setAssetPath,setNonce,setPlatformOptions}from"@stencil/core/internal/client";import{d as _,B as O}from"./revo-grid.js";export{A as AutoSizeColumnPlugin,o as BEFORE_COLUMN_DRAG_END_EVENT,n as COLUMN_DRAG_END_EVENT,m as COLUMN_DRAG_MOVE_EVENT,p as COLUMN_DRAG_START_EVENT,C as ColumnAutoSizeMode,q as ColumnMovePlugin,D as DimensionStore,b as ExportCsv,E as ExportFilePlugin,c as FILTER_CONFIG_CHANGED_EVENT,F as FILTER_TRIMMED_TYPE,e as FILTE_PANEL,f as FilterPlugin,G as GroupingRowPlugin,RevoGrid,S as SelectionStore,u as SortingPlugin,a as StretchColumn,y as defaultCellCompare,defineCustomElement as defineCustomElementRevoGrid,z as descCellCompare,k as doCollapse,l as doExpand,g as filterCoreFunctionsIndexedByType,j as filterNames,h as filterTypes,s as getColumnDragPosition,I as getComparer,r as getLeftRelative,H as getNextOrder,w as getSortingIndex,v as hasActiveSorting,i as isStretchPlugin,x as sortIndexByItems,t as themeTokenCssVariables}from"./revo-grid.js";export{o as GROUPING_ROW_TYPE,j as GROUP_COLUMN_PROP,G as GROUP_DEPTH,h as GROUP_EXPANDED,l as GROUP_EXPAND_BTN,m as GROUP_EXPAND_EVENT,k as GROUP_ORIGINAL_INDEX,f as PSEUDO_GROUP_COLUMN,P as PSEUDO_GROUP_ITEM,d as PSEUDO_GROUP_ITEM_ID,e as PSEUDO_GROUP_ITEM_VALUE,c as columnTypes,a as cropCellToMax,H as gatherGroup,s as gatherGrouping,z as getCellData,B as getCellDataParsed,A as getCellRaw,I as getColumnByProp,D as getColumnSizes,C as getColumnType,F as getColumns,q as getExpanded,t as getGroupingName,x as getParsedGroup,g as getRange,p as getSource,E as isColGrouping,u as isGrouping,v as isGroupingColumn,b as isRangeSingleCell,i as isRowType,y as isSameGroup,w as measureEqualDepth,n as nextCell,r as rowTypes}from"./column.service.js";export{S as SortingSign,d as dispatch,a as dispatchByEvent}from"./revogr-header2.js";export{a as applyMixins,f as findPositionInArray,g as getScrollbarSize,m as mergeSortedArray,p as pushSorted,r as range,s as scaleValue,t as timeout}from"./index2.js";export{C as CellRenderer,G as GroupingRowRenderer,e as expandEvent,a as expandSvgIconVNode,r as renderGroupCells}from"./revogr-data2.js";export{T as TextEditor,k as isAll,c as isClear,h as isCopy,a as isCtrlKey,b as isCtrlMetaKey,g as isCut,m as isEditInput,n as isEditorCtrConstructible,f as isEnterKeyValue,i as isMetaKey,j as isPaste,l as isShortcutModifier,d as isTab,e as isTabKeyValue}from"./revogr-edit2.js";export{RevogrAttribution,defineCustomElement as defineCustomElementRevogrAttribution}from"./revogr-attribution.js";export{RevogrClipboard,defineCustomElement as defineCustomElementRevogrClipboard}from"./revogr-clipboard.js";export{RevogrData,defineCustomElement as defineCustomElementRevogrData}from"./revogr-data.js";export{RevogrEdit,defineCustomElement as defineCustomElementRevogrEdit}from"./revogr-edit.js";export{RevogrExtra,defineCustomElement as defineCustomElementRevogrExtra}from"./revogr-extra.js";export{RevogrFilterPanel,defineCustomElement as defineCustomElementRevogrFilterPanel}from"./revogr-filter-panel.js";export{RevogrFocus,defineCustomElement as defineCustomElementRevogrFocus}from"./revogr-focus.js";export{RevogrHeader,defineCustomElement as defineCustomElementRevogrHeader}from"./revogr-header.js";export{RevogrOrderEditor,defineCustomElement as defineCustomElementRevogrOrderEditor}from"./revogr-order-editor.js";export{RevogrOverlaySelection,defineCustomElement as defineCustomElementRevogrOverlaySelection}from"./revogr-overlay-selection.js";export{RevogrRowHeaders,defineCustomElement as defineCustomElementRevogrRowHeaders}from"./revogr-row-headers.js";export{RevogrScrollVirtual,defineCustomElement as defineCustomElementRevogrScrollVirtual}from"./revogr-scroll-virtual.js";export{RevogrTempRange,defineCustomElement as defineCustomElementRevogrTempRange}from"./revogr-temp-range.js";export{RevogrViewportScroll,defineCustomElement as defineCustomElementRevogrViewportScroll}from"./revogr-viewport-scroll.js";export{VnodeHtml,defineCustomElement as defineCustomElementVnodeHtml}from"./vnode-html.js";export{D as DataStore,h as gatherTrimmedItems,g as getPhysical,b as getSourceItem,f as getSourceItemVirtualIndexByProp,c as getSourcePhysicalIndex,a as getVisibleSourceItem,p as proxyPlugin,e as setItems,d as setSourceByPhysicalIndex,s as setSourceByVirtualIndex,i as setStore,t as trimmedPlugin}from"./data.store.js";export{c as calculateDimensionData,a as getItemByIndex,g as getItemByPosition}from"./dimension.helpers.js";export{V as ViewportStore,b as addMissingItems,j as calculateRowHeaderSize,c as clampViewportCoordinate,f as getFirstItem,d as getItems,h as getLastItem,a as getUpdatedItemsByPosition,g as getViewportMaxCoordinate,i as isActiveRange,e as isActiveRangeOutsideLastItem,r as recombineByOffset,s as setItemSizes,u as updateMissingAndRange}from"./revogr-row-headers2.js";export{A as AND_OR_BUTTON,e as AndOrButton,a as FILTER_BUTTON_ACTIVE,F as FILTER_BUTTON_CLASS,b as FILTER_PROP,c as FilterButton,R as REORDER_BUTTON,f as ReorderButton,T as TRASH_BUTTON,d as TrashButton,i as isFilterBtn}from"./filter.button.js";export{C as CELL_CLASS,j as CELL_HANDLER_CLASS,D as DATA_COL,a as DATA_ROW,b as DISABLED_CLASS,h as DRAGGABLE_CLASS,k as DRAGG_TEXT,g as DRAG_ICON_CLASS,E as EDIT_INPUT_WR,F as FOCUS_CLASS,G as GRID_INTERNALS,f as HEADER_ACTUAL_ROW_CLASS,H as HEADER_CLASS,e as HEADER_ROW_CLASS,d as HEADER_SORTABLE_CLASS,M as MIN_COL_SIZE,i as MOBILE_CLASS,R as RESIZE_INTERVAL,l as ROW_FOCUSED_CLASS,c as ROW_HEADER_TYPE,S as SELECTION_BORDER_CLASS,T as TMP_SELECTION_BG_CLASS}from"./consts.js";export{c as codesLetter,k as keyValues}from"./platform.js";const L=new Map([["contentsizechanged","contentsizechanged"],["beforeedit","beforeedit"],["beforerangeedit","beforerangeedit"],["afteredit","afteredit"],["beforeautofill","beforeautofill"],["beforerange","beforerange"],["afterfocus","afterfocus"],["roworderchanged","roworderchanged"],["beforesorting","beforesorting"],["beforesourcesortingapply","beforesourcesortingapply"],["beforesortingapply","beforesortingapply"],["aftersortingapply","aftersortingapply"],["rowdragstart","rowdragstart"],["headerclick","headerclick"],["beforecellfocus","beforecellfocus"],["beforefocuslost","beforefocuslost"],["beforesourceset","beforesourceset"],["beforeanysource","beforeanysource"],["aftersourceset","aftersourceset"],["afteranysource","afteranysource"],["beforecolumnsgather","beforecolumnsgather"],["beforecolumnsset","beforecolumnsset"],["beforecolumnapplied","beforecolumnapplied"],["aftercolumnsset","aftercolumnsset"],["beforefilterapply","beforefilterapply"],["beforefiltertrimmed","beforefiltertrimmed"],["beforetrimmed","beforetrimmed"],["aftertrimmed","aftertrimmed"],["viewportscroll","viewportscroll"],["beforeexport","beforeexport"],["beforeeditstart","beforeeditstart"],["aftercolumnresize","aftercolumnresize"],["beforerowdefinition","beforerowdefinition"],["filterconfigchanged","filterconfigchanged"],["sortingconfigchanged","sortingconfigchanged"],["rowheaderschanged","rowheaderschanged"],["beforegridrender","beforegridrender"],["aftergridrender","aftergridrender"],["aftergridinit","aftergridinit"],["additionaldatachanged","additionaldatachanged"],["afterthemechanged","afterthemechanged"],["created","created"],["beforepaste","beforepaste"],["beforepasteapply","beforepasteapply"],["pasteregion","pasteregion"],["afterpasteapply","afterpasteapply"],["beforecut","beforecut"],["clearregion","clearregion"],["beforecopy","beforecopy"],["beforecopyapply","beforecopyapply"],["copyregion","copyregion"],["beforerowrender","beforerowrender"],["afterrender","afterrender"],["beforecellrender","beforecellrender"],["beforedatarender","beforedatarender"],["dragstartcell","dragstartcell"],["celleditinit","celleditinit"],["closeedit","closeedit"],["filterChange","filterChange"],["resetChange","resetChange"],["beforefocusrender","beforefocusrender"],["beforescrollintoview","beforescrollintoview"],["afterfocus","afterfocus"],["beforeheaderclick","beforeheaderclick"],["headerresize","headerresize"],["beforeheaderresize","beforeheaderresize"],["headerdblclick","headerdblclick"],["beforeheaderrender","beforeheaderrender"],["beforegroupheaderrender","beforegroupheaderrender"],["afterheaderrender","afterheaderrender"],["columndragstart","columndragstart"],["columndragmousemove","columndragmousemove"],["beforecolumndragend","beforecolumndragend"],["columndragend","columndragend"],["rowdragstartinit","rowdragstartinit"],["rowdragendinit","rowdragendinit"],["rowdragmoveinit","rowdragmoveinit"],["rowdragmousemove","rowdragmousemove"],["rowdropinit","rowdropinit"],["roworderchange","roworderchange"],["beforecopyregion","beforecopyregion"],["beforepasteregion","beforepasteregion"],["celleditapply","celleditapply"],["beforecellfocusinit","beforecellfocusinit"],["beforenextvpfocus","beforenextvpfocus"],["setedit","setedit"],["beforeapplyrange","beforeapplyrange"],["beforesetrange","beforesetrange"],["setrange","setrange"],["beforeeditrender","beforeeditrender"],["selectall","selectall"],["canceledit","canceledit"],["settemprange","settemprange"],["beforesettemprange","beforesettemprange"],["applyfocus","applyfocus"],["focuscell","focuscell"],["beforerangedataapply","beforerangedataapply"],["selectionchangeinit","selectionchangeinit"],["beforerangecopyapply","beforerangecopyapply"],["rangeeditapply","rangeeditapply"],["clipboardrangecopy","clipboardrangecopy"],["clipboardrangepaste","clipboardrangepaste"],["beforekeydown","beforekeydown"],["beforekeyup","beforekeyup"],["beforecellsave","beforecellsave"],["celledit","celledit"],["scrollview","scrollview"],["ref","ref"],["scrollvirtual","scrollvirtual"],["scrollviewport","scrollviewport"],["resizeviewport","resizeviewport"],["scrollchange","scrollchange"],["scrollviewportsilent","scrollviewportsilent"],["html","html"]]);function N({foundation:e,grid:r,filterPanel:a,typography:o,selection:t,buttons:s}){const[f,n,l,i,d,g,c,p]=e,[b,u,m,E,h,C,R,S,y,x,v,_]=r,[P,T,A,w,O,I,B,D,L,N,G,j,U,F]=a,[V,H,M,k,z,W,K,X,q]=o,[Y,Z,J,Q,$,ee,re,ae]=t,[oe,te,se,fe,ne,le]=s;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({primary:f,primaryTransparent:n,background:l,foreground:i,divider:d,shadow:g,text:c,border:p,headerBg:b,headerColor:u,headerBorder:m},E?{headerFocusedBg:E}:{}),h?{headerHoverBg:h}:{}),{cellBorder:C}),R?{cellVerticalBorder:R}:{}),{focusedBg:S,rowHover:y,rowHeadersBg:x,rowHeadersColor:v,cellDisabledBg:_,filterPanelBg:P,filterPanelBorder:T,filterPanelShadow:A,filterPanelInputBg:w,filterPanelDivider:O,filterPanelSelectBorder:I,filterPanelSelectBorderHover:B,filterPanelReorderAccent:D,filterPanelReorderColor:L,filterPanelText:N,filterPanelMutedText:G,filterPanelFocusRing:j,filterPanelIcon:U,filterPanelIconActive:F,fontFamily:"Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",fontSize:V,headerHeight:H,headerFontSize:M,headerFontWeight:k,headerTextTransform:z,headerTextAlign:W,cellTextAlign:K,headerPadding:X,cellPadding:q,selectionBorder:Y,selectionBg:Z,autofillHandleBg:J,autofillHandleBorder:Q,rangeHandleBg:$,temporaryRangeBorder:ee,temporarySelectionBorder:re,headerResizeHover:ae,buttonText:oe,buttonBg:te,buttonSuccessBg:se,buttonDangerBg:fe,buttonOutlineBorder:ne,buttonOutlineText:le})}const U=_({name:"ocean",colorScheme:"light",defaultRowSize:38,tokens:N({foundation:["#2563eb","rgba(37, 99, 235, 0.88)","#f8fafc","#0f172a","#cbd5e1","rgba(15, 23, 42, 0.16)","#334155","#d8e2ee"],grid:["#eef4fb","#0f172a","#d7e2ee",null,null,"#e5edf5",null,"#dbeafe","#eff6ff","#e7f0fa","#475569","#f1f5f9"],filterPanel:["#ffffff","#dbe4ef","rgba(15, 23, 42, 0.18)","#f1f5f9","#e2e8f0","#cbd5e1","#2563eb","#2563eb","#64748b","#334155","#64748b","0 0 0 3px rgba(37, 99, 235, 0.2)","#64748b","#2563eb"],typography:["13px","44px","12px","650","none","left","left","0 14px","0 14px"],selection:["#2563eb","rgba(37, 99, 235, 0.1)","#2563eb","#ffffff","rgba(37, 99, 235, 0.22)","#f97316","#64748b","#3b82f6"],buttons:["#ffffff","#2563eb","#059669","#dc2626","#cbd5e1","#334155"]})}),W=_({name:"midnight",colorScheme:"dark",defaultRowSize:40,tokens:N({foundation:["#8b5cf6","rgba(139, 92, 246, 0.9)","#0b1020","#f8fafc","#334155","rgba(0, 0, 0, 0.5)","#dbeafe","#25324d"],grid:["#121a2f","#e2e8f0","#2a3855",null,null,"#202c46",null,"#172554","#111c35","#10182b","#94a3b8","rgba(100, 116, 139, 0.12)"],filterPanel:["#111827","#334155","rgba(0, 0, 0, 0.55)","#1e293b","#334155","#475569","#22d3ee","#22d3ee","#94a3b8","#e2e8f0","#94a3b8","0 0 0 3px rgba(34, 211, 238, 0.2)","#94a3b8","#22d3ee"],typography:["13px","46px","12px","650","none","left","left","0 14px","0 14px"],selection:["#22d3ee","rgba(34, 211, 238, 0.12)","#22d3ee","#0b1020","rgba(34, 211, 238, 0.24)","#f472b6","#a78bfa","#22d3ee"],buttons:["#ffffff","#7c3aed","#059669","#e11d48","#475569","#e2e8f0"]})}),K=_({name:"aurora",colorScheme:"dark",defaultRowSize:34,tokens:N({foundation:["#34d399","rgba(52, 211, 153, 0.88)","#071714","#ecfdf5","#285047","rgba(0, 0, 0, 0.5)","#d1fae5","#1c3d36"],grid:["#0c2420","#ecfdf5","#245047",null,null,"#17352f",null,"#103d34","#0d2e28","#0a201c","#86cbb8","rgba(110, 231, 183, 0.08)"],filterPanel:["#0b201c","#285047","rgba(0, 0, 0, 0.52)","#12352e","#23483f","#37695d","#34d399","#2dd4bf","#86cbb8","#d1fae5","#86a89f","0 0 0 3px rgba(52, 211, 153, 0.2)","#86a89f","#5eead4"],typography:["12px","42px","11px","650","uppercase","left","left","0 12px","0 12px"],selection:["#34d399","rgba(52, 211, 153, 0.12)","#34d399","#071714","rgba(45, 212, 191, 0.22)","#fbbf24","#5eead4","#2dd4bf"],buttons:["#052e27","#34d399","#10b981","#fb7185","#37695d","#d1fae5"]})}),X=_({name:"highContrast",colorScheme:"light",defaultRowSize:40,tokens:N({foundation:["#003eaa","rgba(0, 62, 170, 0.92)","#ffffff","#000000","#374151","rgba(0, 0, 0, 0.35)","#111827","#374151"],grid:["#111827","#ffffff","#ffffff","#003eaa","#1f2937","#6b7280","#6b7280","#d6e9ff","#e8f2ff","#e5e7eb","#000000","#d1d5db"],filterPanel:["#ffffff","#111827","rgba(0, 0, 0, 0.4)","#ffffff","#4b5563","#111827","#003eaa","#003eaa","#374151","#000000","#374151","0 0 0 3px #ffbf00","#111827","#003eaa"],typography:["14px","48px","13px","700","none","left","left","0 14px","0 14px"],selection:["#003eaa","rgba(0, 95, 204, 0.2)","#003eaa","#ffffff","rgba(0, 95, 204, 0.3)","#a61b1b","#5b21b6","#ffbf00"],buttons:["#ffffff","#003eaa","#006b3c","#b91c1c","#111827","#111827"]})}),Y=_({name:"highContrastDark",colorScheme:"dark",defaultRowSize:40,tokens:N({foundation:["#ffd400","rgba(255, 212, 0, 0.94)","#050505","#ffffff","#d1d5db","rgba(0, 0, 0, 0.8)","#ffffff","#bfc7d5"],grid:["#171717","#ffffff","#e5e7eb","#005f73","#303030","#737b87","#737b87","#182c3f","#202a33","#222222","#ffffff","#303030"],filterPanel:["#0a0a0a","#ffffff","rgba(0, 0, 0, 0.85)","#171717","#d1d5db","#e5e7eb","#ffd400","#00e5ff","#e5e7eb","#ffffff","#d1d5db","0 0 0 3px #ffd400","#e5e7eb","#ffd400"],typography:["14px","48px","13px","700","none","left","left","0 14px","0 14px"],selection:["#00e5ff","rgba(0, 229, 255, 0.2)","#ffd400","#000000","rgba(0, 229, 255, 0.32)","#ffd400","#ff7ad9","#ffd400"],buttons:["#000000","#ffd400","#7cfc00","#ff8080","#ffffff","#ffffff"]})}),Z=[X,Y],J=[U,W,K,...Z];class Q extends O{constructor(e,r){super(e,r),this.addEventListener("beforepasteapply",(e=>this.handleBeforePasteApply(e)))}handleBeforePasteApply(e){const r=this.providers.selection.focused;if(!r||null!=this.providers.selection.edit)return;const a=this.providers.data.stores.rgRow.store.get("items").length,o=r.y+e.detail.parsed.length;if(a<o){const e=Array.from({length:o-a},((e,r)=>({index:a+r,data:{}}))),r=this.emit("newRows",{newRows:e});if(r.defaultPrevented)return;const t=[...this.providers.data.stores.rgRow.store.get("source"),...r.detail.newRows.map((e=>e.data))];this.providers.data.setData(t)}}}export{Q as AutoAddRowsPlugin,O as BasePlugin,L as REVOGRID_EVENTS,K as auroraTheme,_ as defineTheme,Y as highContrastDarkTheme,X as highContrastTheme,Z as highContrastThemeDefinitions,W as midnightTheme,J as modernThemeDefinitions,U as oceanTheme}
4
+ export{getAssetPath,h,render,setAssetPath,setNonce,setPlatformOptions}from"@stencil/core/internal/client";import{d as _,B as O}from"./revo-grid.js";export{A as AutoSizeColumnPlugin,q as BEFORE_COLUMN_DRAG_END_EVENT,p as COLUMN_DRAG_END_EVENT,o as COLUMN_DRAG_MOVE_EVENT,s as COLUMN_DRAG_START_EVENT,C as ColumnAutoSizeMode,u as ColumnMovePlugin,k as DEFAULT_BLANK_SEMANTICS,D as DimensionStore,b as ExportCsv,E as ExportFilePlugin,c as FILTER_CONFIG_CHANGED_EVENT,F as FILTER_TRIMMED_TYPE,e as FILTE_PANEL,f as FilterPlugin,G as GroupingRowPlugin,RevoGrid,S as SelectionStore,x as SortingPlugin,a as StretchColumn,I as defaultCellCompare,defineCustomElement as defineCustomElementRevoGrid,J as descCellCompare,m as doCollapse,n as doExpand,g as filterCoreFunctionsIndexedByType,j as filterNames,h as filterTypes,w as getColumnDragPosition,L as getComparer,v as getLeftRelative,K as getNextOrder,z as getSortingIndex,y as hasActiveSorting,l as isBlankValue,i as isStretchPlugin,r as resolveBlankSemantics,H as sortIndexByItems,t as themeTokenCssVariables}from"./revo-grid.js";export{o as GROUPING_ROW_TYPE,j as GROUP_COLUMN_PROP,G as GROUP_DEPTH,h as GROUP_EXPANDED,l as GROUP_EXPAND_BTN,m as GROUP_EXPAND_EVENT,k as GROUP_ORIGINAL_INDEX,f as PSEUDO_GROUP_COLUMN,P as PSEUDO_GROUP_ITEM,d as PSEUDO_GROUP_ITEM_ID,e as PSEUDO_GROUP_ITEM_VALUE,c as columnTypes,a as cropCellToMax,H as gatherGroup,s as gatherGrouping,z as getCellData,B as getCellDataParsed,A as getCellRaw,I as getColumnByProp,D as getColumnSizes,C as getColumnType,F as getColumns,q as getExpanded,t as getGroupingName,x as getParsedGroup,g as getRange,p as getSource,E as isColGrouping,u as isGrouping,v as isGroupingColumn,b as isRangeSingleCell,i as isRowType,y as isSameGroup,w as measureEqualDepth,n as nextCell,r as rowTypes}from"./column.service.js";export{S as SortingSign,d as dispatch,a as dispatchByEvent}from"./revogr-header2.js";export{a as applyMixins,f as findPositionInArray,g as getScrollbarSize,m as mergeSortedArray,p as pushSorted,r as range,s as scaleValue,t as timeout}from"./index2.js";export{C as CellRenderer,G as GroupingRowRenderer,e as expandEvent,a as expandSvgIconVNode,r as renderGroupCells}from"./revogr-data2.js";export{T as TextEditor,k as isAll,c as isClear,h as isCopy,a as isCtrlKey,b as isCtrlMetaKey,g as isCut,m as isEditInput,n as isEditorCtrConstructible,f as isEnterKeyValue,i as isMetaKey,j as isPaste,l as isShortcutModifier,d as isTab,e as isTabKeyValue}from"./revogr-edit2.js";export{RevogrAttribution,defineCustomElement as defineCustomElementRevogrAttribution}from"./revogr-attribution.js";export{RevogrClipboard,defineCustomElement as defineCustomElementRevogrClipboard}from"./revogr-clipboard.js";export{RevogrData,defineCustomElement as defineCustomElementRevogrData}from"./revogr-data.js";export{RevogrEdit,defineCustomElement as defineCustomElementRevogrEdit}from"./revogr-edit.js";export{RevogrExtra,defineCustomElement as defineCustomElementRevogrExtra}from"./revogr-extra.js";export{RevogrFilterPanel,defineCustomElement as defineCustomElementRevogrFilterPanel}from"./revogr-filter-panel.js";export{RevogrFocus,defineCustomElement as defineCustomElementRevogrFocus}from"./revogr-focus.js";export{RevogrHeader,defineCustomElement as defineCustomElementRevogrHeader}from"./revogr-header.js";export{RevogrOrderEditor,defineCustomElement as defineCustomElementRevogrOrderEditor}from"./revogr-order-editor.js";export{RevogrOverlaySelection,defineCustomElement as defineCustomElementRevogrOverlaySelection}from"./revogr-overlay-selection.js";export{RevogrRowHeaders,defineCustomElement as defineCustomElementRevogrRowHeaders}from"./revogr-row-headers.js";export{RevogrScrollVirtual,defineCustomElement as defineCustomElementRevogrScrollVirtual}from"./revogr-scroll-virtual.js";export{RevogrTempRange,defineCustomElement as defineCustomElementRevogrTempRange}from"./revogr-temp-range.js";export{RevogrViewportScroll,defineCustomElement as defineCustomElementRevogrViewportScroll}from"./revogr-viewport-scroll.js";export{VnodeHtml,defineCustomElement as defineCustomElementVnodeHtml}from"./vnode-html.js";export{D as DataStore,h as gatherTrimmedItems,g as getPhysical,b as getSourceItem,f as getSourceItemVirtualIndexByProp,c as getSourcePhysicalIndex,a as getVisibleSourceItem,p as proxyPlugin,e as setItems,d as setSourceByPhysicalIndex,s as setSourceByVirtualIndex,i as setStore,t as trimmedPlugin}from"./data.store.js";export{c as calculateDimensionData,a as getItemByIndex,g as getItemByPosition}from"./dimension.helpers.js";export{V as ViewportStore,b as addMissingItems,j as calculateRowHeaderSize,c as clampViewportCoordinate,f as getFirstItem,d as getItems,h as getLastItem,a as getUpdatedItemsByPosition,g as getViewportMaxCoordinate,i as isActiveRange,e as isActiveRangeOutsideLastItem,r as recombineByOffset,s as setItemSizes,u as updateMissingAndRange}from"./revogr-row-headers2.js";export{A as AND_OR_BUTTON,e as AndOrButton,a as FILTER_BUTTON_ACTIVE,F as FILTER_BUTTON_CLASS,b as FILTER_PROP,c as FilterButton,R as REORDER_BUTTON,f as ReorderButton,T as TRASH_BUTTON,d as TrashButton,i as isFilterBtn}from"./filter.button.js";export{C as CELL_CLASS,j as CELL_HANDLER_CLASS,D as DATA_COL,a as DATA_ROW,b as DISABLED_CLASS,h as DRAGGABLE_CLASS,k as DRAGG_TEXT,g as DRAG_ICON_CLASS,E as EDIT_INPUT_WR,F as FOCUS_CLASS,G as GRID_INTERNALS,f as HEADER_ACTUAL_ROW_CLASS,H as HEADER_CLASS,e as HEADER_ROW_CLASS,d as HEADER_SORTABLE_CLASS,M as MIN_COL_SIZE,i as MOBILE_CLASS,R as RESIZE_INTERVAL,l as ROW_FOCUSED_CLASS,c as ROW_HEADER_TYPE,S as SELECTION_BORDER_CLASS,T as TMP_SELECTION_BG_CLASS}from"./consts.js";export{c as codesLetter,k as keyValues}from"./platform.js";const N=new Map([["contentsizechanged","contentsizechanged"],["beforeedit","beforeedit"],["beforerangeedit","beforerangeedit"],["afteredit","afteredit"],["beforeautofill","beforeautofill"],["beforerange","beforerange"],["afterfocus","afterfocus"],["roworderchanged","roworderchanged"],["beforesorting","beforesorting"],["beforesourcesortingapply","beforesourcesortingapply"],["beforesortingapply","beforesortingapply"],["aftersortingapply","aftersortingapply"],["rowdragstart","rowdragstart"],["headerclick","headerclick"],["beforecellfocus","beforecellfocus"],["beforefocuslost","beforefocuslost"],["beforesourceset","beforesourceset"],["beforeanysource","beforeanysource"],["aftersourceset","aftersourceset"],["afteranysource","afteranysource"],["beforecolumnsgather","beforecolumnsgather"],["beforecolumnsset","beforecolumnsset"],["beforecolumnapplied","beforecolumnapplied"],["aftercolumnsset","aftercolumnsset"],["beforefilterapply","beforefilterapply"],["beforefiltertrimmed","beforefiltertrimmed"],["beforetrimmed","beforetrimmed"],["aftertrimmed","aftertrimmed"],["viewportscroll","viewportscroll"],["beforeexport","beforeexport"],["beforeeditstart","beforeeditstart"],["aftercolumnresize","aftercolumnresize"],["beforerowdefinition","beforerowdefinition"],["filterconfigchanged","filterconfigchanged"],["sortingconfigchanged","sortingconfigchanged"],["rowheaderschanged","rowheaderschanged"],["beforegridrender","beforegridrender"],["aftergridrender","aftergridrender"],["aftergridinit","aftergridinit"],["additionaldatachanged","additionaldatachanged"],["afterthemechanged","afterthemechanged"],["created","created"],["beforepaste","beforepaste"],["beforepasteapply","beforepasteapply"],["pasteregion","pasteregion"],["afterpasteapply","afterpasteapply"],["beforecut","beforecut"],["clearregion","clearregion"],["beforecopy","beforecopy"],["beforecopyapply","beforecopyapply"],["copyregion","copyregion"],["beforerowrender","beforerowrender"],["afterrender","afterrender"],["beforecellrender","beforecellrender"],["beforedatarender","beforedatarender"],["dragstartcell","dragstartcell"],["celleditinit","celleditinit"],["closeedit","closeedit"],["filterChange","filterChange"],["resetChange","resetChange"],["beforefocusrender","beforefocusrender"],["beforescrollintoview","beforescrollintoview"],["afterfocus","afterfocus"],["beforeheaderclick","beforeheaderclick"],["headerresize","headerresize"],["beforeheaderresize","beforeheaderresize"],["headerdblclick","headerdblclick"],["beforeheaderrender","beforeheaderrender"],["beforegroupheaderrender","beforegroupheaderrender"],["afterheaderrender","afterheaderrender"],["columndragstart","columndragstart"],["columndragmousemove","columndragmousemove"],["beforecolumndragend","beforecolumndragend"],["columndragend","columndragend"],["rowdragstartinit","rowdragstartinit"],["rowdragendinit","rowdragendinit"],["rowdragmoveinit","rowdragmoveinit"],["rowdragmousemove","rowdragmousemove"],["rowdropinit","rowdropinit"],["roworderchange","roworderchange"],["beforecopyregion","beforecopyregion"],["beforepasteregion","beforepasteregion"],["celleditapply","celleditapply"],["beforecellfocusinit","beforecellfocusinit"],["beforenextvpfocus","beforenextvpfocus"],["setedit","setedit"],["beforeapplyrange","beforeapplyrange"],["beforesetrange","beforesetrange"],["setrange","setrange"],["beforeeditrender","beforeeditrender"],["selectall","selectall"],["canceledit","canceledit"],["settemprange","settemprange"],["beforesettemprange","beforesettemprange"],["applyfocus","applyfocus"],["focuscell","focuscell"],["beforerangedataapply","beforerangedataapply"],["selectionchangeinit","selectionchangeinit"],["beforerangecopyapply","beforerangecopyapply"],["rangeeditapply","rangeeditapply"],["clipboardrangecopy","clipboardrangecopy"],["clipboardrangepaste","clipboardrangepaste"],["beforekeydown","beforekeydown"],["beforekeyup","beforekeyup"],["beforecellsave","beforecellsave"],["celledit","celledit"],["scrollview","scrollview"],["ref","ref"],["scrollvirtual","scrollvirtual"],["scrollviewport","scrollviewport"],["resizeviewport","resizeviewport"],["scrollchange","scrollchange"],["scrollviewportsilent","scrollviewportsilent"],["html","html"]]);function U({foundation:e,grid:r,filterPanel:a,typography:o,selection:t,buttons:s}){const[f,n,l,i,d,g,c,p]=e,[b,u,m,E,h,C,R,S,y,v,x,_]=r,[P,T,A,w,O,I,B,D,L,N,G,j,U,F]=a,[V,k,M,H,z,W,K,X,q]=o,[Y,Z,J,Q,$,ee,re,ae]=t,[oe,te,se,fe,ne,le]=s;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({primary:f,primaryTransparent:n,background:l,foreground:i,divider:d,shadow:g,text:c,border:p,headerBg:b,headerColor:u,headerBorder:m},E?{headerFocusedBg:E}:{}),h?{headerHoverBg:h}:{}),{cellBorder:C}),R?{cellVerticalBorder:R}:{}),{focusedBg:S,rowHover:y,rowHeadersBg:v,rowHeadersColor:x,cellDisabledBg:_,filterPanelBg:P,filterPanelBorder:T,filterPanelShadow:A,filterPanelInputBg:w,filterPanelDivider:O,filterPanelSelectBorder:I,filterPanelSelectBorderHover:B,filterPanelReorderAccent:D,filterPanelReorderColor:L,filterPanelText:N,filterPanelMutedText:G,filterPanelFocusRing:j,filterPanelIcon:U,filterPanelIconActive:F,fontFamily:"Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",fontSize:V,headerHeight:k,headerFontSize:M,headerFontWeight:H,headerTextTransform:z,headerTextAlign:W,cellTextAlign:K,headerPadding:X,cellPadding:q,selectionBorder:Y,selectionBg:Z,autofillHandleBg:J,autofillHandleBorder:Q,rangeHandleBg:$,temporaryRangeBorder:ee,temporarySelectionBorder:re,headerResizeHover:ae,buttonText:oe,buttonBg:te,buttonSuccessBg:se,buttonDangerBg:fe,buttonOutlineBorder:ne,buttonOutlineText:le})}const W=_({name:"ocean",colorScheme:"light",defaultRowSize:38,tokens:U({foundation:["#2563eb","rgba(37, 99, 235, 0.88)","#f8fafc","#0f172a","#cbd5e1","rgba(15, 23, 42, 0.16)","#334155","#d8e2ee"],grid:["#eef4fb","#0f172a","#d7e2ee",null,null,"#e5edf5",null,"#dbeafe","#eff6ff","#e7f0fa","#475569","#f1f5f9"],filterPanel:["#ffffff","#dbe4ef","rgba(15, 23, 42, 0.18)","#f1f5f9","#e2e8f0","#cbd5e1","#2563eb","#2563eb","#64748b","#334155","#64748b","0 0 0 3px rgba(37, 99, 235, 0.2)","#64748b","#2563eb"],typography:["13px","44px","12px","650","none","left","left","0 14px","0 14px"],selection:["#2563eb","rgba(37, 99, 235, 0.1)","#2563eb","#ffffff","rgba(37, 99, 235, 0.22)","#f97316","#64748b","#3b82f6"],buttons:["#ffffff","#2563eb","#059669","#dc2626","#cbd5e1","#334155"]})}),X=_({name:"midnight",colorScheme:"dark",defaultRowSize:40,tokens:U({foundation:["#8b5cf6","rgba(139, 92, 246, 0.9)","#0b1020","#f8fafc","#334155","rgba(0, 0, 0, 0.5)","#dbeafe","#25324d"],grid:["#121a2f","#e2e8f0","#2a3855",null,null,"#202c46",null,"#172554","#111c35","#10182b","#94a3b8","rgba(100, 116, 139, 0.12)"],filterPanel:["#111827","#334155","rgba(0, 0, 0, 0.55)","#1e293b","#334155","#475569","#22d3ee","#22d3ee","#94a3b8","#e2e8f0","#94a3b8","0 0 0 3px rgba(34, 211, 238, 0.2)","#94a3b8","#22d3ee"],typography:["13px","46px","12px","650","none","left","left","0 14px","0 14px"],selection:["#22d3ee","rgba(34, 211, 238, 0.12)","#22d3ee","#0b1020","rgba(34, 211, 238, 0.24)","#f472b6","#a78bfa","#22d3ee"],buttons:["#ffffff","#7c3aed","#059669","#e11d48","#475569","#e2e8f0"]})}),Y=_({name:"aurora",colorScheme:"dark",defaultRowSize:34,tokens:U({foundation:["#34d399","rgba(52, 211, 153, 0.88)","#071714","#ecfdf5","#285047","rgba(0, 0, 0, 0.5)","#d1fae5","#1c3d36"],grid:["#0c2420","#ecfdf5","#245047",null,null,"#17352f",null,"#103d34","#0d2e28","#0a201c","#86cbb8","rgba(110, 231, 183, 0.08)"],filterPanel:["#0b201c","#285047","rgba(0, 0, 0, 0.52)","#12352e","#23483f","#37695d","#34d399","#2dd4bf","#86cbb8","#d1fae5","#86a89f","0 0 0 3px rgba(52, 211, 153, 0.2)","#86a89f","#5eead4"],typography:["12px","42px","11px","650","uppercase","left","left","0 12px","0 12px"],selection:["#34d399","rgba(52, 211, 153, 0.12)","#34d399","#071714","rgba(45, 212, 191, 0.22)","#fbbf24","#5eead4","#2dd4bf"],buttons:["#052e27","#34d399","#10b981","#fb7185","#37695d","#d1fae5"]})}),Z=_({name:"highContrast",colorScheme:"light",defaultRowSize:40,tokens:U({foundation:["#003eaa","rgba(0, 62, 170, 0.92)","#ffffff","#000000","#374151","rgba(0, 0, 0, 0.35)","#111827","#374151"],grid:["#111827","#ffffff","#ffffff","#003eaa","#1f2937","#6b7280","#6b7280","#d6e9ff","#e8f2ff","#e5e7eb","#000000","#d1d5db"],filterPanel:["#ffffff","#111827","rgba(0, 0, 0, 0.4)","#ffffff","#4b5563","#111827","#003eaa","#003eaa","#374151","#000000","#374151","0 0 0 3px #ffbf00","#111827","#003eaa"],typography:["14px","48px","13px","700","none","left","left","0 14px","0 14px"],selection:["#003eaa","rgba(0, 95, 204, 0.2)","#003eaa","#ffffff","rgba(0, 95, 204, 0.3)","#a61b1b","#5b21b6","#ffbf00"],buttons:["#ffffff","#003eaa","#006b3c","#b91c1c","#111827","#111827"]})}),Q=_({name:"highContrastDark",colorScheme:"dark",defaultRowSize:40,tokens:U({foundation:["#ffd400","rgba(255, 212, 0, 0.94)","#050505","#ffffff","#d1d5db","rgba(0, 0, 0, 0.8)","#ffffff","#bfc7d5"],grid:["#171717","#ffffff","#e5e7eb","#005f73","#303030","#737b87","#737b87","#182c3f","#202a33","#222222","#ffffff","#303030"],filterPanel:["#0a0a0a","#ffffff","rgba(0, 0, 0, 0.85)","#171717","#d1d5db","#e5e7eb","#ffd400","#00e5ff","#e5e7eb","#ffffff","#d1d5db","0 0 0 3px #ffd400","#e5e7eb","#ffd400"],typography:["14px","48px","13px","700","none","left","left","0 14px","0 14px"],selection:["#00e5ff","rgba(0, 229, 255, 0.2)","#ffd400","#000000","rgba(0, 229, 255, 0.32)","#ffd400","#ff7ad9","#ffd400"],buttons:["#000000","#ffd400","#7cfc00","#ff8080","#ffffff","#ffffff"]})}),$=[Z,Q],ee=[W,X,Y,...$];class re extends O{constructor(e,r){super(e,r),this.addEventListener("beforepasteapply",(e=>this.handleBeforePasteApply(e)))}handleBeforePasteApply(e){const r=this.providers.selection.focused;if(!r||null!=this.providers.selection.edit)return;const a=this.providers.data.stores.rgRow.store.get("items").length,o=r.y+e.detail.parsed.length;if(a<o){const e=Array.from({length:o-a},((e,r)=>({index:a+r,data:{}}))),r=this.emit("newRows",{newRows:e});if(r.defaultPrevented)return;const t=[...this.providers.data.stores.rgRow.store.get("source"),...r.detail.newRows.map((e=>e.data))];this.providers.data.setData(t)}}}export{re as AutoAddRowsPlugin,O as BasePlugin,N as REVOGRID_EVENTS,Y as auroraTheme,_ as defineTheme,Q as highContrastDarkTheme,Z as highContrastTheme,$ as highContrastThemeDefinitions,X as midnightTheme,ee as modernThemeDefinitions,W as oceanTheme}