@revolist/revogrid 4.23.7 → 4.23.9
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/dist/cjs/{cell-renderer-Dcz022q7.js → cell-renderer-Dl9kKeKp.js} +1 -1
- package/dist/cjs/{column.drag.plugin-yUSx3qoN.js → column.drag.plugin-BRraLvz3.js} +34 -5
- package/dist/cjs/{column.service-C1Qvcf5l.js → column.service-BNWNiJW3.js} +62 -23
- package/dist/cjs/{header-cell-renderer-vVr4IWNV.js → header-cell-renderer-DyjOxArm.js} +1 -1
- package/dist/cjs/index.cjs.js +5 -4
- package/dist/cjs/revo-grid.cjs.entry.js +5 -5
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +40 -4
- package/dist/cjs/revogr-data_4.cjs.entry.js +3 -3
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +2 -2
- package/dist/collection/components/data/column.service.js +62 -23
- package/dist/collection/components/overlay/clipboard.utils.js +26 -0
- package/dist/collection/components/overlay/revogr-overlay-selection.js +27 -7
- package/dist/collection/components/revoGrid/revo-grid.js +14 -7
- package/dist/collection/plugins/filter/filter.panel.js +2 -2
- package/dist/collection/plugins/filter/filter.plugin.js +1 -1
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js +30 -2
- package/dist/collection/serve/controller.js +1 -0
- package/dist/esm/{cell-renderer-BtN-NGCk.js → cell-renderer-CdF2Jm3B.js} +1 -1
- package/dist/esm/{column.drag.plugin-Cg2U-91C.js → column.drag.plugin-V9DDE3mU.js} +34 -6
- package/dist/esm/{column.service-CC_SD8W3.js → column.service-C6hByxPy.js} +62 -23
- package/dist/esm/{header-cell-renderer-B-LX2sgu.js → header-cell-renderer-BMmXRsd_.js} +1 -1
- package/dist/esm/index.js +5 -5
- package/dist/esm/revo-grid.entry.js +5 -5
- package/dist/esm/revogr-attribution_7.entry.js +40 -4
- package/dist/esm/revogr-data_4.entry.js +3 -3
- package/dist/esm/revogr-filter-panel.entry.js +2 -2
- package/dist/revo-grid/{cell-renderer-BtN-NGCk.js → cell-renderer-CdF2Jm3B.js} +1 -1
- package/dist/revo-grid/{column.drag.plugin-Cg2U-91C.js → column.drag.plugin-V9DDE3mU.js} +34 -6
- package/dist/revo-grid/{column.service-CC_SD8W3.js → column.service-C6hByxPy.js} +62 -23
- package/dist/revo-grid/{header-cell-renderer-B-LX2sgu.js → header-cell-renderer-BMmXRsd_.js} +1 -1
- package/dist/revo-grid/index.esm.js +5 -5
- package/dist/revo-grid/revo-grid.entry.js +5 -5
- package/dist/revo-grid/revogr-attribution_7.entry.js +40 -4
- package/dist/revo-grid/revogr-data_4.entry.js +3 -3
- package/dist/revo-grid/revogr-filter-panel.entry.js +2 -2
- package/dist/types/components/data/column.service.d.ts +10 -1
- package/dist/types/components/overlay/clipboard.utils.d.ts +3 -0
- package/dist/types/components/overlay/revogr-overlay-selection.d.ts +4 -3
- package/dist/types/components/revoGrid/revo-grid.d.ts +4 -4
- package/dist/types/components.d.ts +14 -14
- package/dist/types/plugins/filter/filter.plugin.d.ts +1 -0
- package/dist/types/plugins/filter/filter.types.d.ts +1 -0
- package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +4 -0
- package/dist/types/types/interfaces.d.ts +8 -0
- package/hydrate/index.js +136 -33
- package/hydrate/index.mjs +136 -33
- package/package.json +1 -1
- package/readme.md +20 -1
- package/standalone/column.service.js +1 -1
- package/standalone/index.js +1 -1
- package/standalone/revo-grid.js +1 -1
- package/standalone/revogr-filter-panel.js +1 -1
- package/standalone/revogr-overlay-selection2.js +1 -1
package/hydrate/index.mjs
CHANGED
|
@@ -7723,7 +7723,7 @@ class FilterPanel {
|
|
|
7723
7723
|
} }));
|
|
7724
7724
|
}
|
|
7725
7725
|
render() {
|
|
7726
|
-
var _a, _b, _c;
|
|
7726
|
+
var _a, _b, _c, _d, _e;
|
|
7727
7727
|
if (!this.changes) {
|
|
7728
7728
|
return hAsync(Host, { style: { display: 'none' } });
|
|
7729
7729
|
}
|
|
@@ -7740,7 +7740,7 @@ class FilterPanel {
|
|
|
7740
7740
|
hAsync("label", null, capts.title),
|
|
7741
7741
|
hAsync("div", { class: "filter-holder" }, this.getFilterItemsList()),
|
|
7742
7742
|
hAsync("div", { class: "add-filter" }, hAsync("select", { id: FILTER_ID, class: "select-css", onChange: e => this.onAddNewFilter(e) }, this.renderSelectOptions(this.currentFilterType)))
|
|
7743
|
-
]), hAsync("slot", null), hAsync("div", { class: "filter-actions" }, this.disableDynamicFiltering && [
|
|
7743
|
+
]), hAsync("slot", null), ((_e = (_d = this.changes).extraBottomContent) === null || _e === void 0 ? void 0 : _e.call(_d, this.changes)) || '', hAsync("div", { class: "filter-actions" }, this.disableDynamicFiltering && [
|
|
7744
7744
|
hAsync("button", { id: "revo-button-save", "aria-label": "save", class: "revo-button green", onClick: () => this.onSave() }, capts.save),
|
|
7745
7745
|
hAsync("button", { id: "revo-button-ok", "aria-label": "ok", class: "revo-button green", onClick: () => this.onCancel() }, capts.cancel),
|
|
7746
7746
|
], !this.disableDynamicFiltering && [
|
|
@@ -13046,43 +13046,82 @@ class ColumnService {
|
|
|
13046
13046
|
mapping,
|
|
13047
13047
|
};
|
|
13048
13048
|
}
|
|
13049
|
-
getTransformedDataToApply(start, data) {
|
|
13049
|
+
getTransformedDataToApply({ start, data, targetRange, }) {
|
|
13050
13050
|
const changed = {};
|
|
13051
13051
|
const copyRowLength = data.length;
|
|
13052
|
+
if (!copyRowLength) {
|
|
13053
|
+
return {
|
|
13054
|
+
changed,
|
|
13055
|
+
range: null,
|
|
13056
|
+
};
|
|
13057
|
+
}
|
|
13052
13058
|
const colLength = this.columns.length;
|
|
13053
13059
|
const rowLength = this.dataStore.get('items').length;
|
|
13060
|
+
const bounds = this.getDataApplyBounds(start, targetRange, copyRowLength, rowLength, colLength);
|
|
13061
|
+
if (!bounds) {
|
|
13062
|
+
return {
|
|
13063
|
+
changed,
|
|
13064
|
+
range: null,
|
|
13065
|
+
};
|
|
13066
|
+
}
|
|
13067
|
+
const { startRow, startCol, endRow } = bounds;
|
|
13068
|
+
let maxCol = startCol - 1;
|
|
13069
|
+
let lastRow = startRow - 1;
|
|
13054
13070
|
// rows
|
|
13055
|
-
let rowIndex =
|
|
13056
|
-
let maxCol = 0;
|
|
13057
|
-
for (let i = 0; rowIndex < rowLength && i < copyRowLength; rowIndex++, i++) {
|
|
13071
|
+
for (let rowIndex = startRow, i = 0; rowIndex <= endRow; rowIndex++, i++) {
|
|
13058
13072
|
// copy original data link
|
|
13059
13073
|
const copyRow = data[i % copyRowLength];
|
|
13060
13074
|
const copyColLength = (copyRow === null || copyRow === void 0 ? void 0 : copyRow.length) || 0;
|
|
13061
|
-
|
|
13062
|
-
|
|
13063
|
-
for (let j = 0; colIndex < colLength && j < copyColLength; colIndex++, j++) {
|
|
13064
|
-
const p = this.columns[colIndex].prop;
|
|
13065
|
-
const currentCol = j % colLength;
|
|
13066
|
-
/** if can write */
|
|
13067
|
-
if (!this.isReadOnly(rowIndex, colIndex)) {
|
|
13068
|
-
/** to show before save */
|
|
13069
|
-
if (!changed[rowIndex]) {
|
|
13070
|
-
changed[rowIndex] = {};
|
|
13071
|
-
}
|
|
13072
|
-
changed[rowIndex][p] = copyRow[currentCol];
|
|
13073
|
-
}
|
|
13075
|
+
if (!copyColLength) {
|
|
13076
|
+
continue;
|
|
13074
13077
|
}
|
|
13075
|
-
maxCol = Math.max(maxCol,
|
|
13078
|
+
maxCol = Math.max(maxCol, this.applyClipboardRow(changed, {
|
|
13079
|
+
bounds,
|
|
13080
|
+
copyColLength,
|
|
13081
|
+
copyRow,
|
|
13082
|
+
rowIndex,
|
|
13083
|
+
start,
|
|
13084
|
+
targetRange,
|
|
13085
|
+
}));
|
|
13086
|
+
lastRow = rowIndex;
|
|
13076
13087
|
}
|
|
13077
|
-
const range = getRange(start, {
|
|
13078
|
-
y: rowIndex - 1,
|
|
13079
|
-
x: maxCol,
|
|
13080
|
-
});
|
|
13081
13088
|
return {
|
|
13082
13089
|
changed,
|
|
13083
|
-
range,
|
|
13090
|
+
range: this.getAppliedRange(bounds, lastRow, maxCol),
|
|
13084
13091
|
};
|
|
13085
13092
|
}
|
|
13093
|
+
getDataApplyBounds(start, targetRange, copyRowLength, rowLength, colLength) {
|
|
13094
|
+
var _a, _b, _c;
|
|
13095
|
+
const startRow = (_a = targetRange === null || targetRange === void 0 ? void 0 : targetRange.y) !== null && _a !== void 0 ? _a : start.y;
|
|
13096
|
+
const startCol = (_b = targetRange === null || targetRange === void 0 ? void 0 : targetRange.x) !== null && _b !== void 0 ? _b : start.x;
|
|
13097
|
+
const endRow = Math.min(rowLength - 1, (_c = targetRange === null || targetRange === void 0 ? void 0 : targetRange.y1) !== null && _c !== void 0 ? _c : start.y + copyRowLength - 1);
|
|
13098
|
+
if (endRow < startRow || startCol >= colLength) {
|
|
13099
|
+
return null;
|
|
13100
|
+
}
|
|
13101
|
+
return { startRow, startCol, endRow, colLength };
|
|
13102
|
+
}
|
|
13103
|
+
applyClipboardRow(changed, { bounds, copyColLength, copyRow, rowIndex, start, targetRange, }) {
|
|
13104
|
+
var _a;
|
|
13105
|
+
const endCol = Math.min(bounds.colLength - 1, (_a = targetRange === null || targetRange === void 0 ? void 0 : targetRange.x1) !== null && _a !== void 0 ? _a : start.x + copyColLength - 1);
|
|
13106
|
+
for (let colIndex = bounds.startCol, j = 0; colIndex <= endCol; colIndex++, j++) {
|
|
13107
|
+
if (this.isReadOnly(rowIndex, colIndex)) {
|
|
13108
|
+
continue;
|
|
13109
|
+
}
|
|
13110
|
+
const prop = this.columns[colIndex].prop;
|
|
13111
|
+
changed[rowIndex] = changed[rowIndex] || {};
|
|
13112
|
+
changed[rowIndex][prop] = copyRow[j % copyColLength];
|
|
13113
|
+
}
|
|
13114
|
+
return endCol;
|
|
13115
|
+
}
|
|
13116
|
+
getAppliedRange({ startRow, startCol }, lastRow, maxCol) {
|
|
13117
|
+
if (lastRow < startRow || maxCol < startCol) {
|
|
13118
|
+
return null;
|
|
13119
|
+
}
|
|
13120
|
+
return getRange({ x: startCol, y: startRow }, {
|
|
13121
|
+
y: lastRow,
|
|
13122
|
+
x: maxCol,
|
|
13123
|
+
});
|
|
13124
|
+
}
|
|
13086
13125
|
getRangeStaticData(d, value) {
|
|
13087
13126
|
const changed = {};
|
|
13088
13127
|
// rows
|
|
@@ -13749,6 +13788,30 @@ class AutoFillService {
|
|
|
13749
13788
|
}
|
|
13750
13789
|
}
|
|
13751
13790
|
|
|
13791
|
+
function getRangeFillClipboardData(data, useClipboard) {
|
|
13792
|
+
var _a;
|
|
13793
|
+
if (!isClipboardRangeFillEnabled(useClipboard)) {
|
|
13794
|
+
return null;
|
|
13795
|
+
}
|
|
13796
|
+
const normalized = trimTrailingEmptyClipboardRows(data);
|
|
13797
|
+
return normalized.length === 1 && ((_a = normalized[0]) === null || _a === void 0 ? void 0 : _a.length) === 1
|
|
13798
|
+
? normalized
|
|
13799
|
+
: null;
|
|
13800
|
+
}
|
|
13801
|
+
function isClipboardRangeFillEnabled(useClipboard) {
|
|
13802
|
+
return (typeof useClipboard === 'object' && useClipboard.rangeFill === true);
|
|
13803
|
+
}
|
|
13804
|
+
function trimTrailingEmptyClipboardRows(data) {
|
|
13805
|
+
const rows = [...data];
|
|
13806
|
+
while (rows.length > 1 && isEmptyClipboardRow(rows[rows.length - 1])) {
|
|
13807
|
+
rows.pop();
|
|
13808
|
+
}
|
|
13809
|
+
return rows;
|
|
13810
|
+
}
|
|
13811
|
+
function isEmptyClipboardRow(row) {
|
|
13812
|
+
return !row || row.every(cell => cell === '');
|
|
13813
|
+
}
|
|
13814
|
+
|
|
13752
13815
|
const revogrOverlayStyleCss = () => `revogr-overlay-selection{display:block;position:relative;width:100%}revogr-overlay-selection .autofill-handle{position:absolute;width:14px;height:14px;margin-left:-13px;margin-top:-13px;z-index:10;cursor:crosshair}revogr-overlay-selection .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:10px;height:10px;background:#0d63e8;border:1px solid white;box-sizing:border-box}revogr-overlay-selection.mobile .autofill-handle{position:absolute;width:30px;height:30px;margin-left:-29px;margin-top:-29px;z-index:10;cursor:crosshair}revogr-overlay-selection.mobile .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:12px;height:12px;background:#0d63e8;border:1px solid white;box-sizing:border-box}revogr-overlay-selection .selection-border-range{position:absolute;pointer-events:none;z-index:9;box-shadow:-1px 0 0 #0d63e8 inset, 1px 0 0 #0d63e8 inset, 0 -1px 0 #0d63e8 inset, 0 1px 0 #0d63e8 inset}revogr-overlay-selection .selection-border-range .range-handlers{height:100%;background-color:transparent;width:75%;max-width:50px;min-width:20px;left:50%;transform:translateX(-50%);position:absolute}revogr-overlay-selection .selection-border-range .range-handlers>span{pointer-events:auto;height:20px;width:20px;position:absolute;left:50%;transform:translateX(-50%)}revogr-overlay-selection .selection-border-range .range-handlers>span:before,revogr-overlay-selection .selection-border-range .range-handlers>span:after{position:absolute;border-radius:5px;width:15px;height:5px;left:50%;transform:translateX(-50%);background-color:rgba(0, 0, 0, 0.2)}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child{top:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child:before{content:"";top:0}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child{bottom:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child:after{content:"";bottom:0}revogr-overlay-selection revogr-edit{z-index:10}`;
|
|
13753
13816
|
|
|
13754
13817
|
/**
|
|
@@ -13999,9 +14062,9 @@ class OverlaySelection {
|
|
|
13999
14062
|
nodes.push(hAsync("revogr-order-editor", { ref: e => (this.orderEditor = e), dataStore: this.dataStore, dimensionRow: this.dimensionRow, dimensionCol: this.dimensionCol, parent: this.element, rowType: this.types.rowType, onRowdragstartinit: e => this.rowDragStart(e) }));
|
|
14000
14063
|
}
|
|
14001
14064
|
}
|
|
14002
|
-
return (hAsync(Host, { key: '
|
|
14065
|
+
return (hAsync(Host, { key: 'ff303c39d59e4ef217421fa11b9a80de07311b07', class: { mobile: this.isMobileDevice }, onDblClick: (e) => this.onElementDblClick(e), onMouseDown: (e) => this.onElementMouseDown(e), onTouchStart: (e) => this.onElementMouseDown(e, true), onCloseedit: (e) => this.closeEdit(e),
|
|
14003
14066
|
// it's done to be able to throw events from different levels, not just from editor
|
|
14004
|
-
onCelledit: (e) => this.onEditCell(e) }, nodes, hAsync("slot", { key: '
|
|
14067
|
+
onCelledit: (e) => this.onEditCell(e) }, nodes, hAsync("slot", { key: '3cbe4c3ad7d447f779e9e20f73eec2e3107275e0', name: "data" })));
|
|
14005
14068
|
}
|
|
14006
14069
|
/**
|
|
14007
14070
|
* Executes the focus operation on the specified range of cells.
|
|
@@ -14166,13 +14229,25 @@ class OverlaySelection {
|
|
|
14166
14229
|
if (!focus || isEditing) {
|
|
14167
14230
|
return;
|
|
14168
14231
|
}
|
|
14169
|
-
|
|
14232
|
+
const rangeFillData = getRangeFillClipboardData(data, this.useClipboard);
|
|
14233
|
+
const targetRange = rangeFillData
|
|
14234
|
+
? this.getClipboardPasteTargetRange()
|
|
14235
|
+
: null;
|
|
14236
|
+
let { changed, range } = this.columnService.getTransformedDataToApply({
|
|
14237
|
+
start: focus,
|
|
14238
|
+
data: rangeFillData || data,
|
|
14239
|
+
targetRange,
|
|
14240
|
+
});
|
|
14170
14241
|
const { defaultPrevented: canPaste } = this.rangeClipboardPaste.emit(Object.assign({ data: changed, models: collectModelsOfRange(changed, this.dataStore), range }, this.types));
|
|
14171
14242
|
if (canPaste) {
|
|
14172
14243
|
return;
|
|
14173
14244
|
}
|
|
14174
14245
|
(_a = this.autoFillService) === null || _a === void 0 ? void 0 : _a.onRangeApply(changed, range, range);
|
|
14175
14246
|
}
|
|
14247
|
+
getClipboardPasteTargetRange() {
|
|
14248
|
+
const range = this.selectionStore.get('range');
|
|
14249
|
+
return range && !isRangeSingleCell(range) ? range : null;
|
|
14250
|
+
}
|
|
14176
14251
|
async focusNext() {
|
|
14177
14252
|
var _a;
|
|
14178
14253
|
const canFocus = await ((_a = this.keyboardService) === null || _a === void 0 ? void 0 : _a.keyChangeSelection(new KeyboardEvent('keydown', {
|
|
@@ -15720,7 +15795,7 @@ class FilterPlugin extends BasePlugin {
|
|
|
15720
15795
|
// filter button clicked, open filter dialog
|
|
15721
15796
|
const gridPos = this.revogrid.getBoundingClientRect();
|
|
15722
15797
|
const buttonPos = el.getBoundingClientRect();
|
|
15723
|
-
const data = Object.assign(Object.assign(Object.assign({}, e.detail), this.filterCollection[prop]), { x: buttonPos.x - gridPos.x, y: buttonPos.y - gridPos.y + buttonPos.height, autoCorrect: true, filterTypes: this.getColumnFilter(e.detail.filter), filterItems: this.multiFilterItems, extraContent: this.extraHyperContent });
|
|
15798
|
+
const data = Object.assign(Object.assign(Object.assign({}, e.detail), this.filterCollection[prop]), { x: buttonPos.x - gridPos.x, y: buttonPos.y - gridPos.y + buttonPos.height, autoCorrect: true, filterTypes: this.getColumnFilter(e.detail.filter), filterItems: this.multiFilterItems, extraContent: this.extraHyperContent, extraBottomContent: this.extraBottomHyperContent });
|
|
15724
15799
|
(_b = this.beforeshow) === null || _b === void 0 ? void 0 : _b.call(this, data);
|
|
15725
15800
|
this.pop.show(data);
|
|
15726
15801
|
}
|
|
@@ -18485,8 +18560,17 @@ class ColumnMovePlugin extends BasePlugin {
|
|
|
18485
18560
|
constructor(revogrid, providers) {
|
|
18486
18561
|
super(revogrid, providers);
|
|
18487
18562
|
this.moveFunc = debounce$1((e) => this.doMove(e), 5);
|
|
18563
|
+
this.preventHeaderClickAfterDrag = (event) => {
|
|
18564
|
+
if (!this.preventNextHeaderClick) {
|
|
18565
|
+
return;
|
|
18566
|
+
}
|
|
18567
|
+
this.preventNextHeaderClick = false;
|
|
18568
|
+
event.preventDefault();
|
|
18569
|
+
};
|
|
18488
18570
|
this.staticDragData = null;
|
|
18489
18571
|
this.dragData = null;
|
|
18572
|
+
this.columnDragMoved = false;
|
|
18573
|
+
this.preventNextHeaderClick = false;
|
|
18490
18574
|
this.localSubscriptions = {};
|
|
18491
18575
|
this.orderUi = new ColumnOrderHandler();
|
|
18492
18576
|
revogrid.appendChild(this.orderUi.render());
|
|
@@ -18505,11 +18589,13 @@ class ColumnMovePlugin extends BasePlugin {
|
|
|
18505
18589
|
callback: (e) => this.move(e),
|
|
18506
18590
|
};
|
|
18507
18591
|
this.addEventListener(COLUMN_CLICK, ({ detail }) => this.dragStart(detail));
|
|
18592
|
+
this.revogrid.addEventListener('beforeheaderclick', this.preventHeaderClickAfterDrag, { capture: true });
|
|
18508
18593
|
}
|
|
18509
18594
|
dragStart({ event, data }) {
|
|
18510
18595
|
if (event.defaultPrevented) {
|
|
18511
18596
|
return;
|
|
18512
18597
|
}
|
|
18598
|
+
this.preventNextHeaderClick = false;
|
|
18513
18599
|
const { defaultPrevented } = dispatch(this.revogrid, COLUMN_DRAG_START_EVENT, data);
|
|
18514
18600
|
// check if allowed to drag particulat column
|
|
18515
18601
|
if (defaultPrevented) {
|
|
@@ -18531,7 +18617,8 @@ class ColumnMovePlugin extends BasePlugin {
|
|
|
18531
18617
|
const cols = this.getDimension(data.pin || 'rgCol');
|
|
18532
18618
|
const gridRect = this.revogrid.getBoundingClientRect();
|
|
18533
18619
|
const elRect = dataEl.getBoundingClientRect();
|
|
18534
|
-
const startItem = getItemByPosition(cols, getLeftRelative(event.x, gridRect.left, elRect.left - gridRect.left) +
|
|
18620
|
+
const startItem = getItemByPosition(cols, getLeftRelative(event.x, gridRect.left, elRect.left - gridRect.left) +
|
|
18621
|
+
(cols.renderOffset || 0));
|
|
18535
18622
|
this.staticDragData = {
|
|
18536
18623
|
startPos: event.x,
|
|
18537
18624
|
startItem,
|
|
@@ -18562,10 +18649,14 @@ class ColumnMovePlugin extends BasePlugin {
|
|
|
18562
18649
|
if (rgCol.itemIndex >= this.staticDragData.cols.count) {
|
|
18563
18650
|
return;
|
|
18564
18651
|
}
|
|
18565
|
-
this.orderUi.showHandler(rgCol.
|
|
18652
|
+
this.orderUi.showHandler(getColumnDragPosition(rgCol, this.staticDragData.startItem, this.staticDragData.cols.renderOffset || 0, dragData.scrollOffset), dragData.gridRect.width);
|
|
18566
18653
|
}
|
|
18567
18654
|
}
|
|
18568
18655
|
move(e) {
|
|
18656
|
+
if (this.staticDragData &&
|
|
18657
|
+
Math.abs(this.staticDragData.startPos - e.x) > 10) {
|
|
18658
|
+
this.columnDragMoved = true;
|
|
18659
|
+
}
|
|
18569
18660
|
dispatch(this.revogrid, COLUMN_DRAG_MOVE_EVENT, e);
|
|
18570
18661
|
// then do move
|
|
18571
18662
|
this.moveFunc(e);
|
|
@@ -18574,6 +18665,7 @@ class ColumnMovePlugin extends BasePlugin {
|
|
|
18574
18665
|
this.clearOrder();
|
|
18575
18666
|
}
|
|
18576
18667
|
onMouseUp(e) {
|
|
18668
|
+
const suppressClick = this.columnDragMoved;
|
|
18577
18669
|
// apply new positions
|
|
18578
18670
|
if (this.dragData && this.staticDragData) {
|
|
18579
18671
|
let relativePos = getLeftRelative(e.x, this.dragData.gridRect.left, this.dragData.scrollOffset);
|
|
@@ -18596,6 +18688,9 @@ class ColumnMovePlugin extends BasePlugin {
|
|
|
18596
18688
|
}
|
|
18597
18689
|
dispatch(this.revogrid, COLUMN_DRAG_END_EVENT, this.getData(this.staticDragData, newItems, source));
|
|
18598
18690
|
}
|
|
18691
|
+
if (suppressClick) {
|
|
18692
|
+
this.preventNextHeaderClick = !!e.target.closest('revogr-header');
|
|
18693
|
+
}
|
|
18599
18694
|
this.clearOrder();
|
|
18600
18695
|
}
|
|
18601
18696
|
clearLocalSubscriptions() {
|
|
@@ -18604,6 +18699,7 @@ class ColumnMovePlugin extends BasePlugin {
|
|
|
18604
18699
|
clearOrder() {
|
|
18605
18700
|
this.staticDragData = null;
|
|
18606
18701
|
this.dragData = null;
|
|
18702
|
+
this.columnDragMoved = false;
|
|
18607
18703
|
this.clearLocalSubscriptions();
|
|
18608
18704
|
this.orderUi.stop(this.revogrid);
|
|
18609
18705
|
}
|
|
@@ -18613,6 +18709,7 @@ class ColumnMovePlugin extends BasePlugin {
|
|
|
18613
18709
|
clearSubscriptions() {
|
|
18614
18710
|
super.clearSubscriptions();
|
|
18615
18711
|
this.clearLocalSubscriptions();
|
|
18712
|
+
this.revogrid.removeEventListener('beforeheaderclick', this.preventHeaderClickAfterDrag, { capture: true });
|
|
18616
18713
|
}
|
|
18617
18714
|
getData({ gridEl, dataEl, pin }, order, source = []) {
|
|
18618
18715
|
const gridRect = gridEl.getBoundingClientRect();
|
|
@@ -18634,6 +18731,12 @@ class ColumnMovePlugin extends BasePlugin {
|
|
|
18634
18731
|
function getLeftRelative(absoluteX, gridPos, offset) {
|
|
18635
18732
|
return absoluteX - gridPos - offset;
|
|
18636
18733
|
}
|
|
18734
|
+
function getColumnDragPosition(targetItem, startItem, renderOffset, scrollOffset) {
|
|
18735
|
+
const insertionEdge = startItem.itemIndex > targetItem.itemIndex
|
|
18736
|
+
? targetItem.start
|
|
18737
|
+
: targetItem.end;
|
|
18738
|
+
return insertionEdge - renderOffset + scrollOffset;
|
|
18739
|
+
}
|
|
18637
18740
|
|
|
18638
18741
|
function isMobileDevice() {
|
|
18639
18742
|
return /Mobi/i.test(navigator.userAgent) || /Android/i.test(navigator.userAgent) || navigator.maxTouchPoints > 0;
|
|
@@ -18983,7 +19086,7 @@ class RevoGridComponent {
|
|
|
18983
19086
|
this.rowSize = 0;
|
|
18984
19087
|
/** Indicates default column size. */
|
|
18985
19088
|
this.colSize = 100;
|
|
18986
|
-
/** When true, user can range
|
|
19089
|
+
/** When true, user can select a cell range. Required for range-based clipboard fill. */
|
|
18987
19090
|
this.range = false;
|
|
18988
19091
|
/** When true, grid in read only mode. */
|
|
18989
19092
|
this.readonly = false;
|
|
@@ -18995,7 +19098,7 @@ class RevoGridComponent {
|
|
|
18995
19098
|
this.noHorizontalScrollTransfer = false;
|
|
18996
19099
|
/** When true cell focus appear. */
|
|
18997
19100
|
this.canFocus = true;
|
|
18998
|
-
/** When true enable clipboard. */
|
|
19101
|
+
/** When true enable clipboard. Can be boolean or clipboard config. */
|
|
18999
19102
|
this.useClipboard = true;
|
|
19000
19103
|
/**
|
|
19001
19104
|
* Columns - defines an array of grid columns.
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -76,7 +76,10 @@ Used by some of the largest companies in Europe and the United States.
|
|
|
76
76
|
- Header filtering.
|
|
77
77
|
- Custom filters to extend system filters with your own set.
|
|
78
78
|
|
|
79
|
-
- **[Export](https://rv-grid.com/guide/export.plugin)**:
|
|
79
|
+
- **[Export](https://rv-grid.com/guide/export.plugin)**:
|
|
80
|
+
- **[CSV](https://rv-grid.com/guide/export.plugin)**: Built-in file export for core RevoGrid data workflows.
|
|
81
|
+
- **[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.
|
|
82
|
+
- **[Excel (Pro)](https://rv-grid.com/guide/data-grid-export-excel)**: Workbook export for RevoGrid Pro with layout, styles, frozen panes, merged cells, and formulas.
|
|
80
83
|
|
|
81
84
|
- **Custom Sizes**: Define custom sizes for [columns](https://rv-grid.com/guide/column/#Column-Size) and [rows](https://rv-grid.com/guide/row/height). Automatic sizing based on content.
|
|
82
85
|
|
|
@@ -428,6 +431,22 @@ npm run test:e2e
|
|
|
428
431
|
|
|
429
432
|
Test files live in `e2e/` and share helpers from `e2e/helpers.ts`:
|
|
430
433
|
|
|
434
|
+
### Local startup troubleshooting
|
|
435
|
+
|
|
436
|
+
For targeted local work, confirm a new or changed test is discoverable before starting the dev server:
|
|
437
|
+
|
|
438
|
+
```bash
|
|
439
|
+
./node_modules/.bin/playwright test e2e/pinning.spec.ts --grep "test name" --list
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
Then run a non-watch Stencil build to catch compile errors without invoking the Playwright web-server lifecycle:
|
|
443
|
+
|
|
444
|
+
```bash
|
|
445
|
+
./node_modules/.bin/stencil build --dev --serve --no-open
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
If Playwright fails before any tests run with a Stencil dev-server startup error such as `ERR_SOCKET_BAD_PORT` and port `65536`, treat it as an environment/startup issue rather than an e2e assertion failure. Check `node -v` and whether another local server is already using `localhost:3333`, then retry only after changing that environment state.
|
|
449
|
+
|
|
431
450
|
|
|
432
451
|
## Contributing
|
|
433
452
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{m as t,n,o as e,q as r,l as o,r as s,a as i,b as c}from"./data.store.js";import"@stencil/core/internal/client";import"./platform.js";import{G as u,b as a,C as l}from"./consts.js";function f(n){var e=t(n),r=e%1;return e==e?r?e-r:e:0}function d(t,n,e,r){var o=-1,s=null==t?0:t.length;for(r&&s&&(e=t[++o]);++o<s;)e=n(e,t[o],o,t);return e}var p,v=(p=function(t,e){return t&&function(t,n,e){for(var r=-1,o=Object(t),s=e(t),i=s.length;i--;){var c=s[++r];if(!1===n(o[c],c,o))break}return t}(t,e,n)},function(t,n){if(null==t)return t;if(!e(t))return p(t,n);for(var r=t.length,o=-1,s=Object(t);++o<r&&!1!==n(s[o],o,s););return t});function h(t,n,e,r,o){return o(t,(function(t,o,s){e=r?(r=!1,t):n(e,t,o,s)})),e}function x(t,n,e){var s=o(t)?d:h,i=arguments.length<3;return s(t,r(n),e,i,v)}function m(t){return null==t?"":t}function b(t={},n){if(n)return n.cellParser?n.cellParser(t,n):t[n.prop]}function g(t,n){return m(b(t,n))}function j(t){return t.pin?t.pin:"rgCol"}function O(t){const n={};for(const[e,r]of t.entries())r.size&&(n[e]=r.size);return n}function y(t){return!!t.children}function I(t,n=0,e,r){return x(t,((t,o)=>{var s;if(y(o))return w(t,o,I(o.children,n+1,e,t),null==r?void 0:r.columns,n);const i=Object.assign(Object.assign({},o.columnType&&(null==e?void 0:e[o.columnType])),o);return i.pin?t.columns[i.pin].push(i):t.columns.rgCol.push(i),i.order&&(t.sort[i.prop]=i),t.columnByProp[i.prop]||(t.columnByProp[i.prop]=[]),t.columnByProp[i.prop].push(i),null===(s=i.beforeSetup)||void 0===s||s.call(i,i),t}),{columns:{rgCol:[],colPinStart:[],colPinEnd:[]},columnByProp:{},columnGrouping:{rgCol:[],colPinStart:[],colPinEnd:[]},sort:{},maxLevel:n})}function w(t,n,e,r,s=0){const i=Object.assign(Object.assign({},n),{level:s,indexes:[]});C.forEach((n=>{const s=t.columns[n],c=e.columns[n];if(o(s)&&o(c)){const e=c.length;if(e){const o=[...(null==r?void 0:r[n])||[],...s].length;s.push(...c),t.columnGrouping[n].push(Object.assign(Object.assign({},i),{indexes:Array(e).fill(o).map(((t,n)=>t+n))}))}}}));for(let n in e.columnGrouping){const o=n,s=e.columnGrouping[o],i=((null==r?void 0:r[o])||[]).length,c=i>0?s.map((t=>Object.assign(Object.assign({},t),{indexes:t.indexes.map((t=>t+i))}))):s;t.columnGrouping[o].push(...c)}return t.maxLevel=Math.max(t.maxLevel,e.maxLevel),t.sort=Object.assign(Object.assign({},t.sort),e.sort),t.columnByProp=Object.assign(Object.assign({},t.columnByProp),e.columnByProp),t}function P(t,n){for(const e of t)if(y(e)){const t=P(e.children,n);if(t)return t}else if(e.prop===n)return e}function E(t,n){return P(t,n)}function M(t,n){const e={};let r=["x","y"];for(let n of r)if(t[n]<0)return e[n]=t[n],e;for(let o of r)if(t[o]>=n[o])return e[o]=t[o]-n[o],e;return null}function A(t,n){const e=Object.assign({},t),r=["x","y"];for(const o of r)t[o]<0?e[o]=0:t[o]>=n[o]&&(e[o]=n[o]-1);return e}function R(t,n){return t&&n?{x:Math.min(t.x,n.x),y:Math.min(t.y,n.y),x1:Math.max(t.x,n.x),y1:Math.max(t.y,n.y)}:null}function S(t){return t.x===t.x1&&t.y===t.y1}const $=["rowPinStart","rgRow","rowPinEnd"],C=["colPinStart","rgCol","colPinEnd"];function N(t){return $.indexOf(t)>-1}const D=`${u}-depth`,G=`${u}-name`,T=`${u}-id`,k=`${u}-value`,V=`${u}-column`,J=`${u}-expanded`,q=`${u}-prop`,B=`${u}-original-index`,L="group-expand",z="groupexpandclick",F="rgRow";function H(t,n){return t[n]||null}function K(t){return null!=t}function Q(t,n,e=!1){let r=0;const o={source:[],prevExpanded:{},oldNewIndexes:{}};return n.forEach((n=>{const s=t[n];if(e)if(Z(s))W(s)&&(o.prevExpanded[s[k]]=!0);else{if(!K(s))return;o.source.push(s),o.oldNewIndexes[n]=r,r++}else o.source.push(s)})),o}function W(t={}){return t[J]}function U({groupedValues:t,parentIds:n,isExpanded:e,itemIndex:r,expandedAll:o,prevExpanded:s,columnProps:i}){const c=n.length,u=[];let a={},l={};return t.forEach(((t,f)=>{const d=[...n,f],p=d.join(","),v=e&&(!!o||!!s[p]);if(u.push({[G]:f,[D]:c,[T]:JSON.stringify(d),[k]:p,[J]:v,[q]:i[c],[i[c]]:f}),r+=1,!e&&c&&(a[r]=!0),Array.isArray(t))t.forEach((t=>{r+=1,v||(a[r]=!0),l[t[B]]=r})),u.push(...t);else{const n=U({groupedValues:t,parentIds:d,isExpanded:v,itemIndex:r,expandedAll:o,prevExpanded:s,columnProps:i});u.push(...n.source),a=Object.assign(Object.assign({},n.trimmed),a),l=Object.assign(Object.assign({},n.oldNewIndexMap),l),r=n.itemIndex}})),{source:u,oldNewIndexMap:l,trimmed:a,itemIndex:r}}function X(t,n,{prevExpanded:e={},expandedAll:r=!1,getGroupValue:o=H}){const s=new Map;t.forEach(((t,e)=>{if(!K(t))return;const r=n.map((n=>o(t,n))),i=r.pop();let c=s;r.forEach((t=>{c.has(t)||c.set(t,new Map),c=c.get(t)})),c.has(i)||c.set(i,[]),c.get(i).push(Object.assign(Object.assign({},t),{[B]:e}))}));const i=n.length,{source:c,trimmed:u,oldNewIndexMap:a}=U({groupedValues:s,parentIds:[],isExpanded:!0,itemIndex:-1,expandedAll:r,prevExpanded:e,columnProps:n});return{sourceWithGroups:c,depth:i,trimmed:u,oldNewIndexMap:a}}function Y(t){return null==t?void 0:t[G]}function Z(t){return void 0!==(null==t?void 0:t[G])}function _(t){return void 0!==(null==t?void 0:t[V])}function tt(t,n){const e=t.length;let r=0;for(;r<e;r++)if(t[r]!==n[r])return r;return r}function nt(t){const n=JSON.parse(t);return Array.isArray(n)?n:null}function et(t,n,e){const r=nt(e[T]);if(!r)return!1;const o=tt(t,r);return n[D]<o}function rt(t,n={}){const e=null==t?void 0:t.editor;if(e)return"string"==typeof e?n[e]:e}class ot{get columns(){return i(this.source)}constructor(t,n){this.dataStore=t,this.source=n,this.unsubscribe=[],this.hasGrouping=!1,this.unsubscribe.push(n.onChange("source",(t=>this.checkGrouping(t)))),this.checkGrouping(n.get("source")),this.type=n.get("type")}checkGrouping(t){for(let n of t){if(_(n))return void(this.hasGrouping=!0);this.hasGrouping=!1}}isReadOnly(t,n){var e;const r=null===(e=this.columns[n])||void 0===e?void 0:e.readonly;return"function"==typeof r?r(this.rowDataModel(t,n)):!!r}mergeProperties(t,n,e,r){var o,s;const i=Object.assign({},e);i.class=Object.assign(Object.assign({},"string"==typeof i.class?{[i.class]:!0}:i.class),{[l]:!0,[a]:this.isReadOnly(t,n)});const c=null===(s=null===(o=r.column)||void 0===o?void 0:o.cellProperties)||void 0===s?void 0:s.call(o,r);return c?ct(i,c):i}getRowClass(t,n){return(c(this.dataStore,t)||{})[n]||""}getSaveData(t,n,e){const r=this.rowDataModel(t,n);return void 0===e&&(e=m(r.value)),Object.assign(Object.assign({},r),{val:e})}rowDataModel(t,n){const e=this.columns[n],r=null==e?void 0:e.prop,o=c(this.dataStore,t)||{},s=this.dataStore.get("type");return{prop:r,model:o,data:this.dataStore.get("source"),column:e,rowIndex:t,colIndex:n,colType:this.type,type:s,value:b(o,e)}}getRangeData(t,n){var e;const r={},o=t.oldRange.x1-t.oldRange.x+1,s=t.oldRange.y1-t.oldRange.y+1,i={};for(let u=t.newRange.y,a=0;u<t.newRange.y1+1;u++,a++){const l=t.oldRange.y+a%s,f=c(this.dataStore,l)||{};for(let s=t.newRange.x,c=0;s<t.newRange.x1+1;s++,c++){if(u>=t.oldRange.y&&u<=t.oldRange.y1&&s>=t.oldRange.x&&s<=t.oldRange.x1)continue;if(!this.columns[s])continue;const a=null===(e=this.columns[s])||void 0===e?void 0:e.prop,d=t.oldRange.x+c%o,p=n[d].prop;this.isReadOnly(u,s)||(r[u]||(r[u]={}),r[u][a]=f[p],i[u]||(i[u]={}),i[u][a]={colIndex:d,colProp:p,rowIndex:l})}}return{changed:r,mapping:i}}getTransformedDataToApply(t,n){const e={},r=n.length,o=this.columns.length,s=this.dataStore.get("items").length;let i=t.y,c=0;for(let u=0;i<s&&u<r;i++,u++){const s=n[u%r],a=(null==s?void 0:s.length)||0;let l=t.x;for(let t=0;l<o&&t<a;l++,t++){const n=this.columns[l].prop,r=t%o;this.isReadOnly(i,l)||(e[i]||(e[i]={}),e[i][n]=s[r])}c=Math.max(c,l-1)}return{changed:e,range:R(t,{y:i-1,x:c})}}getRangeStaticData(t,n){const e={};for(let r=t.y,o=0;r<t.y1+1;r++,o++)for(let o=t.x,s=0;o<t.x1+1;o++,s++){if(!this.columns[o])continue;const t=this.columns[o].prop;this.isReadOnly(r,o)||(e[r]||(e[r]={}),e[r][t]=n)}return e}getRangeTransformedToProps(t,n){var e;const r=[],o=this.dataStore.get("type");for(let s=t.y,i=0;s<t.y1+1;s++,i++)for(let i=t.x,u=0;i<t.x1+1;i++,u++){const t=null===(e=this.columns[i])||void 0===e?void 0:e.prop;r.push({prop:t,rowIndex:s,colIndex:i,model:c(n,s),type:o,colType:this.type})}return r}copyRangeArray(t,n){const e=(i=[...this.columns],u=t.x,a=t.x1+1,l=null==i?0:i.length,l?(a&&"number"!=typeof a&&s(i,u,a)?(u=0,a=l):(u=null==u?0:f(u),a=void 0===a?l:f(a)),function(t,n,e){var r=-1,o=t.length;n<0&&(n=-n>o?0:o+n),(e=e>o?o:e)<0&&(e+=o),o=n>e?0:e-n>>>0,n>>>=0;for(var s=Array(o);++r<o;)s[r]=t[r+n];return s}(i,u,a)):[]).map((t=>t.prop)),r=[],o={};var i,u,a,l;for(let s=t.y;s<=t.y1;s++){const t=[];o[s]={};for(let r of e){const e=c(n,s);if(!e)continue;const i=e[r];t.push(i),o[s][r]=i}r.push(t)}return{data:r,mapping:o}}destroy(){this.unsubscribe.forEach((t=>t()))}}function st(t,n){return"function"==typeof t?t(n):!!t}function it(t={},n={}){return"string"==typeof t&&(t={[t]:!0}),"string"==typeof n&&(n={[n]:!0}),Object.assign(Object.assign({},t),n)}function ct(t,n){n.className&&(n.class=it(n.class,n.className),delete n.className);let e=Object.assign(Object.assign({},n),t);return n.class&&(e.class=it(e.class,n.class)),n.style&&(e.style=Object.assign(Object.assign({},n.style),e.style)),e}export{b as A,g as B,j as C,O as D,y as E,I as F,D as G,w as H,E as I,x as J,v as K,f as L,ot as M,rt as N,st as O,G as P,ct as Q,A as a,S as b,C as c,T as d,k as e,V as f,R as g,J as h,N as i,q as j,B as k,L as l,z as m,M as n,F as o,Q as p,W as q,$ as r,X as s,Y as t,Z as u,_ as v,tt as w,nt as x,et as y,m as z}
|
|
4
|
+
import{m as t,n,o as e,q as r,l as o,r as s,a as i,b as u}from"./data.store.js";import"@stencil/core/internal/client";import"./platform.js";import{G as a,b as c,C as l}from"./consts.js";function d(n){var e=t(n),r=e%1;return e==e?r?e-r:e:0}function f(t,n,e,r){var o=-1,s=null==t?0:t.length;for(r&&s&&(e=t[++o]);++o<s;)e=n(e,t[o],o,t);return e}var p,v=(p=function(t,e){return t&&function(t,n,e){for(var r=-1,o=Object(t),s=e(t),i=s.length;i--;){var u=s[++r];if(!1===n(o[u],u,o))break}return t}(t,e,n)},function(t,n){if(null==t)return t;if(!e(t))return p(t,n);for(var r=t.length,o=-1,s=Object(t);++o<r&&!1!==n(s[o],o,s););return t});function h(t,n,e,r,o){return o(t,(function(t,o,s){e=r?(r=!1,t):n(e,t,o,s)})),e}function g(t,n,e){var s=o(t)?f:h,i=arguments.length<3;return s(t,r(n),e,i,v)}function x(t){return null==t?"":t}function b(t={},n){if(n)return n.cellParser?n.cellParser(t,n):t[n.prop]}function m(t,n){return x(b(t,n))}function y(t){return t.pin?t.pin:"rgCol"}function j(t){const n={};for(const[e,r]of t.entries())r.size&&(n[e]=r.size);return n}function O(t){return!!t.children}function w(t,n=0,e,r){return g(t,((t,o)=>{var s;if(O(o))return I(t,o,w(o.children,n+1,e,t),null==r?void 0:r.columns,n);const i=Object.assign(Object.assign({},o.columnType&&(null==e?void 0:e[o.columnType])),o);return i.pin?t.columns[i.pin].push(i):t.columns.rgCol.push(i),i.order&&(t.sort[i.prop]=i),t.columnByProp[i.prop]||(t.columnByProp[i.prop]=[]),t.columnByProp[i.prop].push(i),null===(s=i.beforeSetup)||void 0===s||s.call(i,i),t}),{columns:{rgCol:[],colPinStart:[],colPinEnd:[]},columnByProp:{},columnGrouping:{rgCol:[],colPinStart:[],colPinEnd:[]},sort:{},maxLevel:n})}function I(t,n,e,r,s=0){const i=Object.assign(Object.assign({},n),{level:s,indexes:[]});$.forEach((n=>{const s=t.columns[n],u=e.columns[n];if(o(s)&&o(u)){const e=u.length;if(e){const o=[...(null==r?void 0:r[n])||[],...s].length;s.push(...u),t.columnGrouping[n].push(Object.assign(Object.assign({},i),{indexes:Array(e).fill(o).map(((t,n)=>t+n))}))}}}));for(let n in e.columnGrouping){const o=n,s=e.columnGrouping[o],i=((null==r?void 0:r[o])||[]).length,u=i>0?s.map((t=>Object.assign(Object.assign({},t),{indexes:t.indexes.map((t=>t+i))}))):s;t.columnGrouping[o].push(...u)}return t.maxLevel=Math.max(t.maxLevel,e.maxLevel),t.sort=Object.assign(Object.assign({},t.sort),e.sort),t.columnByProp=Object.assign(Object.assign({},t.columnByProp),e.columnByProp),t}function R(t,n){for(const e of t)if(O(e)){const t=R(e.children,n);if(t)return t}else if(e.prop===n)return e}function P(t,n){return R(t,n)}function M(t,n){const e={};let r=["x","y"];for(let n of r)if(t[n]<0)return e[n]=t[n],e;for(let o of r)if(t[o]>=n[o])return e[o]=t[o]-n[o],e;return null}function A(t,n){const e=Object.assign({},t),r=["x","y"];for(const o of r)t[o]<0?e[o]=0:t[o]>=n[o]&&(e[o]=n[o]-1);return e}function C(t,n){return t&&n?{x:Math.min(t.x,n.x),y:Math.min(t.y,n.y),x1:Math.max(t.x,n.x),y1:Math.max(t.y,n.y)}:null}function E(t){return t.x===t.x1&&t.y===t.y1}const S=["rowPinStart","rgRow","rowPinEnd"],$=["colPinStart","rgCol","colPinEnd"];function D(t){return S.indexOf(t)>-1}const N=`${a}-depth`,G=`${a}-name`,T=`${a}-id`,L=`${a}-value`,k=`${a}-column`,V=`${a}-expanded`,B=`${a}-prop`,J=`${a}-original-index`,q="group-expand",z="groupexpandclick",F="rgRow";function H(t,n){return t[n]||null}function K(t){return null!=t}function Q(t,n,e=!1){let r=0;const o={source:[],prevExpanded:{},oldNewIndexes:{}};return n.forEach((n=>{const s=t[n];if(e)if(Z(s))W(s)&&(o.prevExpanded[s[L]]=!0);else{if(!K(s))return;o.source.push(s),o.oldNewIndexes[n]=r,r++}else o.source.push(s)})),o}function W(t={}){return t[V]}function U({groupedValues:t,parentIds:n,isExpanded:e,itemIndex:r,expandedAll:o,prevExpanded:s,columnProps:i}){const u=n.length,a=[];let c={},l={};return t.forEach(((t,d)=>{const f=[...n,d],p=f.join(","),v=e&&(!!o||!!s[p]);if(a.push({[G]:d,[N]:u,[T]:JSON.stringify(f),[L]:p,[V]:v,[B]:i[u],[i[u]]:d}),r+=1,!e&&u&&(c[r]=!0),Array.isArray(t))t.forEach((t=>{r+=1,v||(c[r]=!0),l[t[J]]=r})),a.push(...t);else{const n=U({groupedValues:t,parentIds:f,isExpanded:v,itemIndex:r,expandedAll:o,prevExpanded:s,columnProps:i});a.push(...n.source),c=Object.assign(Object.assign({},n.trimmed),c),l=Object.assign(Object.assign({},n.oldNewIndexMap),l),r=n.itemIndex}})),{source:a,oldNewIndexMap:l,trimmed:c,itemIndex:r}}function X(t,n,{prevExpanded:e={},expandedAll:r=!1,getGroupValue:o=H}){const s=new Map;t.forEach(((t,e)=>{if(!K(t))return;const r=n.map((n=>o(t,n))),i=r.pop();let u=s;r.forEach((t=>{u.has(t)||u.set(t,new Map),u=u.get(t)})),u.has(i)||u.set(i,[]),u.get(i).push(Object.assign(Object.assign({},t),{[J]:e}))}));const i=n.length,{source:u,trimmed:a,oldNewIndexMap:c}=U({groupedValues:s,parentIds:[],isExpanded:!0,itemIndex:-1,expandedAll:r,prevExpanded:e,columnProps:n});return{sourceWithGroups:u,depth:i,trimmed:a,oldNewIndexMap:c}}function Y(t){return null==t?void 0:t[G]}function Z(t){return void 0!==(null==t?void 0:t[G])}function _(t){return void 0!==(null==t?void 0:t[k])}function tt(t,n){const e=t.length;let r=0;for(;r<e;r++)if(t[r]!==n[r])return r;return r}function nt(t){const n=JSON.parse(t);return Array.isArray(n)?n:null}function et(t,n,e){const r=nt(e[T]);if(!r)return!1;const o=tt(t,r);return n[N]<o}function rt(t,n={}){const e=null==t?void 0:t.editor;if(e)return"string"==typeof e?n[e]:e}class ot{get columns(){return i(this.source)}constructor(t,n){this.dataStore=t,this.source=n,this.unsubscribe=[],this.hasGrouping=!1,this.unsubscribe.push(n.onChange("source",(t=>this.checkGrouping(t)))),this.checkGrouping(n.get("source")),this.type=n.get("type")}checkGrouping(t){for(let n of t){if(_(n))return void(this.hasGrouping=!0);this.hasGrouping=!1}}isReadOnly(t,n){var e;const r=null===(e=this.columns[n])||void 0===e?void 0:e.readonly;return"function"==typeof r?r(this.rowDataModel(t,n)):!!r}mergeProperties(t,n,e,r){var o,s;const i=Object.assign({},e);i.class=Object.assign(Object.assign({},"string"==typeof i.class?{[i.class]:!0}:i.class),{[l]:!0,[c]:this.isReadOnly(t,n)});const u=null===(s=null===(o=r.column)||void 0===o?void 0:o.cellProperties)||void 0===s?void 0:s.call(o,r);return u?ut(i,u):i}getRowClass(t,n){return(u(this.dataStore,t)||{})[n]||""}getSaveData(t,n,e){const r=this.rowDataModel(t,n);return void 0===e&&(e=x(r.value)),Object.assign(Object.assign({},r),{val:e})}rowDataModel(t,n){const e=this.columns[n],r=null==e?void 0:e.prop,o=u(this.dataStore,t)||{},s=this.dataStore.get("type");return{prop:r,model:o,data:this.dataStore.get("source"),column:e,rowIndex:t,colIndex:n,colType:this.type,type:s,value:b(o,e)}}getRangeData(t,n){var e;const r={},o=t.oldRange.x1-t.oldRange.x+1,s=t.oldRange.y1-t.oldRange.y+1,i={};for(let a=t.newRange.y,c=0;a<t.newRange.y1+1;a++,c++){const l=t.oldRange.y+c%s,d=u(this.dataStore,l)||{};for(let s=t.newRange.x,u=0;s<t.newRange.x1+1;s++,u++){if(a>=t.oldRange.y&&a<=t.oldRange.y1&&s>=t.oldRange.x&&s<=t.oldRange.x1)continue;if(!this.columns[s])continue;const c=null===(e=this.columns[s])||void 0===e?void 0:e.prop,f=t.oldRange.x+u%o,p=n[f].prop;this.isReadOnly(a,s)||(r[a]||(r[a]={}),r[a][c]=d[p],i[a]||(i[a]={}),i[a][c]={colIndex:f,colProp:p,rowIndex:l})}}return{changed:r,mapping:i}}getTransformedDataToApply({start:t,data:n,targetRange:e}){const r={},o=n.length;if(!o)return{changed:r,range:null};const s=this.columns.length,i=this.dataStore.get("items").length,u=this.getDataApplyBounds(t,e,o,i,s);if(!u)return{changed:r,range:null};const{startRow:a,startCol:c,endRow:l}=u;let d=c-1,f=a-1;for(let s=a,i=0;s<=l;s++,i++){const a=n[i%o],c=(null==a?void 0:a.length)||0;c&&(d=Math.max(d,this.applyClipboardRow(r,{bounds:u,copyColLength:c,copyRow:a,rowIndex:s,start:t,targetRange:e})),f=s)}return{changed:r,range:this.getAppliedRange(u,f,d)}}getDataApplyBounds(t,n,e,r,o){var s,i,u;const a=null!==(s=null==n?void 0:n.y)&&void 0!==s?s:t.y,c=null!==(i=null==n?void 0:n.x)&&void 0!==i?i:t.x,l=Math.min(r-1,null!==(u=null==n?void 0:n.y1)&&void 0!==u?u:t.y+e-1);return l<a||c>=o?null:{startRow:a,startCol:c,endRow:l,colLength:o}}applyClipboardRow(t,{bounds:n,copyColLength:e,copyRow:r,rowIndex:o,start:s,targetRange:i}){var u;const a=Math.min(n.colLength-1,null!==(u=null==i?void 0:i.x1)&&void 0!==u?u:s.x+e-1);for(let s=n.startCol,i=0;s<=a;s++,i++){if(this.isReadOnly(o,s))continue;const n=this.columns[s].prop;t[o]=t[o]||{},t[o][n]=r[i%e]}return a}getAppliedRange({startRow:t,startCol:n},e,r){return e<t||r<n?null:C({x:n,y:t},{y:e,x:r})}getRangeStaticData(t,n){const e={};for(let r=t.y,o=0;r<t.y1+1;r++,o++)for(let o=t.x,s=0;o<t.x1+1;o++,s++){if(!this.columns[o])continue;const t=this.columns[o].prop;this.isReadOnly(r,o)||(e[r]||(e[r]={}),e[r][t]=n)}return e}getRangeTransformedToProps(t,n){var e;const r=[],o=this.dataStore.get("type");for(let s=t.y,i=0;s<t.y1+1;s++,i++)for(let i=t.x,a=0;i<t.x1+1;i++,a++){const t=null===(e=this.columns[i])||void 0===e?void 0:e.prop;r.push({prop:t,rowIndex:s,colIndex:i,model:u(n,s),type:o,colType:this.type})}return r}copyRangeArray(t,n){const e=(i=[...this.columns],a=t.x,c=t.x1+1,l=null==i?0:i.length,l?(c&&"number"!=typeof c&&s(i,a,c)?(a=0,c=l):(a=null==a?0:d(a),c=void 0===c?l:d(c)),function(t,n,e){var r=-1,o=t.length;n<0&&(n=-n>o?0:o+n),(e=e>o?o:e)<0&&(e+=o),o=n>e?0:e-n>>>0,n>>>=0;for(var s=Array(o);++r<o;)s[r]=t[r+n];return s}(i,a,c)):[]).map((t=>t.prop)),r=[],o={};var i,a,c,l;for(let s=t.y;s<=t.y1;s++){const t=[];o[s]={};for(let r of e){const e=u(n,s);if(!e)continue;const i=e[r];t.push(i),o[s][r]=i}r.push(t)}return{data:r,mapping:o}}destroy(){this.unsubscribe.forEach((t=>t()))}}function st(t,n){return"function"==typeof t?t(n):!!t}function it(t={},n={}){return"string"==typeof t&&(t={[t]:!0}),"string"==typeof n&&(n={[n]:!0}),Object.assign(Object.assign({},t),n)}function ut(t,n){n.className&&(n.class=it(n.class,n.className),delete n.className);let e=Object.assign(Object.assign({},n),t);return n.class&&(e.class=it(e.class,n.class)),n.style&&(e.style=Object.assign(Object.assign({},n.style),e.style)),e}export{b as A,m as B,y as C,j as D,O as E,w as F,N as G,I as H,P as I,g as J,v as K,d as L,ot as M,rt as N,st as O,G as P,ut as Q,A as a,E as b,$ as c,T as d,L as e,k as f,C as g,V as h,D as i,B as j,J as k,q as l,z as m,M as n,F as o,Q as p,W as q,S as r,X as s,Y as t,Z as u,_ as v,tt as w,nt as x,et as y,x as z}
|
package/standalone/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{setMode as _}from"@stencil/core/internal/client";export{getAssetPath,h,render,setAssetPath,setNonce,setPlatformOptions}from"@stencil/core/internal/client";import{g as O,B as L}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,d as FILTE_PANEL,e as FilterPlugin,G as GroupingRowPlugin,RevoGrid,S as SelectionStore,s as SortingPlugin,a as StretchColumn,w as defaultCellCompare,defineCustomElement as defineCustomElementRevoGrid,x as descCellCompare,k as doCollapse,l as doExpand,f as filterCoreFunctionsIndexedByType,j as filterNames,h as filterTypes,z as getComparer,r as getLeftRelative,y as getNextOrder,u as getSortingIndex,t as hasActiveSorting,i as isStretchPlugin,v as sortIndexByItems}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}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,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=function(){_((e=>{let r=e.theme||e.getAttribute("theme");"string"==typeof r&&(r=r.trim());const o=O(r);return o!==r&&e.setAttribute("theme",o),o}))}||(()=>{}),U=new Map([["contentsizechanged","contentsizechanged"],["beforeedit","beforeedit"],["beforerangeedit","beforerangeedit"],["afteredit","afteredit"],["beforeautofill","beforeautofill"],["beforerange","beforerange"],["afterfocus","afterfocus"],["roworderchanged","roworderchanged"],["beforesorting","beforesorting"],["beforesourcesortingapply","beforesourcesortingapply"],["beforesortingapply","beforesortingapply"],["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"]]);class W extends L{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 o=this.providers.data.stores.rgRow.store.get("items").length,t=r.y+e.detail.parsed.length;if(o<t){const e=Array.from({length:t-o},((e,r)=>({index:o+r,data:{}}))),r=this.emit("newRows",{newRows:e});if(r.defaultPrevented)return;const a=[...this.providers.data.stores.rgRow.store.get("source"),...r.detail.newRows.map((e=>e.data))];this.providers.data.setData(a)}}}N();export{W as AutoAddRowsPlugin,L as BasePlugin,U as REVOGRID_EVENTS}
|
|
4
|
+
import{setMode as _}from"@stencil/core/internal/client";export{getAssetPath,h,render,setAssetPath,setNonce,setPlatformOptions}from"@stencil/core/internal/client";import{g as O,B as L}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,d as FILTE_PANEL,e as FilterPlugin,G as GroupingRowPlugin,RevoGrid,S as SelectionStore,t as SortingPlugin,a as StretchColumn,x as defaultCellCompare,defineCustomElement as defineCustomElementRevoGrid,y as descCellCompare,k as doCollapse,l as doExpand,f as filterCoreFunctionsIndexedByType,j as filterNames,h as filterTypes,s as getColumnDragPosition,H as getComparer,r as getLeftRelative,z as getNextOrder,v as getSortingIndex,u as hasActiveSorting,i as isStretchPlugin,w as sortIndexByItems}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}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,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=function(){_((e=>{let r=e.theme||e.getAttribute("theme");"string"==typeof r&&(r=r.trim());const o=O(r);return o!==r&&e.setAttribute("theme",o),o}))}||(()=>{}),U=new Map([["contentsizechanged","contentsizechanged"],["beforeedit","beforeedit"],["beforerangeedit","beforerangeedit"],["afteredit","afteredit"],["beforeautofill","beforeautofill"],["beforerange","beforerange"],["afterfocus","afterfocus"],["roworderchanged","roworderchanged"],["beforesorting","beforesorting"],["beforesourcesortingapply","beforesourcesortingapply"],["beforesortingapply","beforesortingapply"],["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"]]);class W extends L{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 o=this.providers.data.stores.rgRow.store.get("items").length,t=r.y+e.detail.parsed.length;if(o<t){const e=Array.from({length:t-o},((e,r)=>({index:o+r,data:{}}))),r=this.emit("newRows",{newRows:e});if(r.defaultPrevented)return;const a=[...this.providers.data.stores.rgRow.store.get("source"),...r.detail.newRows.map((e=>e.data))];this.providers.data.setData(a)}}}N();export{W as AutoAddRowsPlugin,L as BasePlugin,U as REVOGRID_EVENTS}
|