@revolist/revogrid 4.22.1 → 4.23.1
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-BQdEGQXP.js → cell-renderer-Dcz022q7.js} +9 -3
- package/dist/cjs/{column.drag.plugin-RDjQhKCH.js → column.drag.plugin-DJueWxN_.js} +391 -256
- package/dist/cjs/{column.service-DXYMehqK.js → column.service-C1Qvcf5l.js} +10 -1
- package/dist/cjs/{dimension.helpers-CiiNnlLa.js → dimension.helpers-B9HgANnM.js} +14 -145
- package/dist/cjs/{edit.utils-CecCfA4E.js → edit.utils-pKeiYFLJ.js} +1 -1
- package/dist/cjs/{header-cell-renderer-DGyBrK8I.js → header-cell-renderer-QrcXXSkF.js} +1 -1
- package/dist/cjs/index-DxaSE5uZ.js +136 -0
- package/dist/cjs/index.cjs.js +37 -32
- package/dist/cjs/revo-grid.cjs.entry.js +124 -18
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +43 -25
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +10 -8
- package/dist/cjs/revogr-data_4.cjs.entry.js +74 -32
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +2 -1
- package/dist/cjs/{text-editor-DnLZW1a-.js → text-editor-B4W-m-r-.js} +3 -3
- package/dist/cjs/{throttle-CfgQFkfR.js → throttle-BCwEuJJq.js} +59 -24
- package/dist/cjs/viewport.helpers-BND76K2j.js +140 -0
- package/dist/cjs/{viewport.store-q6YdR9mg.js → viewport.store-BlKQ4x9H.js} +16 -16
- package/dist/collection/components/data/revogr-data.js +5 -3
- package/dist/collection/components/header/header-group-renderer.js +1 -1
- package/dist/collection/components/header/header-renderer.js +1 -1
- package/dist/collection/components/header/revogr-header-style.css +13 -3
- package/dist/collection/components/header/revogr-header.js +53 -17
- package/dist/collection/components/order/order-row.service.js +6 -5
- package/dist/collection/components/overlay/keyboard.service.js +23 -1
- package/dist/collection/components/overlay/selection.utils.js +8 -6
- package/dist/collection/components/revoGrid/revo-grid.js +69 -5
- package/dist/collection/components/revoGrid/viewport.service.js +2 -1
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +10 -6
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js +4 -10
- package/dist/collection/plugins/filter/filter.panel.js +2 -1
- package/dist/collection/plugins/filter/filter.plugin.js +11 -4
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +25 -1
- package/dist/collection/plugins/groupingRow/grouping.service.js +9 -0
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js +4 -4
- package/dist/collection/plugins/sorting/sorting.func.js +173 -15
- package/dist/collection/plugins/sorting/sorting.plugin.js +167 -84
- package/dist/collection/plugins/sorting/sorting.sign.js +7 -1
- package/dist/collection/serve/controller.js +98 -37
- package/dist/collection/serve/data.js +273 -144
- package/dist/collection/services/dimension.provider.js +16 -1
- package/dist/collection/services/local.scroll.service.js +59 -24
- package/dist/collection/services/scroll.dimension.helpers.js +83 -0
- package/dist/collection/services/selection.store.connector.js +30 -4
- package/dist/collection/store/dimension/dimension.recalculate.plugin.js +22 -9
- package/dist/collection/store/dimension/dimension.store.js +4 -2
- package/dist/collection/store/vp/viewport.helpers.js +9 -0
- package/dist/collection/store/vp/viewport.store.js +5 -16
- package/dist/collection/utils/store.utils.js +3 -3
- package/dist/{revo-grid/cell-renderer-CALsEsnh.js → esm/cell-renderer-BtN-NGCk.js} +9 -3
- package/dist/esm/{column.drag.plugin-Dy5ztusn.js → column.drag.plugin-DCZW62Uc.js} +388 -255
- package/dist/esm/{column.service-CCvAi5l4.js → column.service-CC_SD8W3.js} +10 -1
- package/dist/{revo-grid/debounce-BfO9dz9v.js → esm/debounce-PCRWZliA.js} +1 -1
- package/dist/{revo-grid/dimension.helpers-DmIvjIa7.js → esm/dimension.helpers-CGKwSvw6.js} +7 -128
- package/dist/esm/{edit.utils-DYN6XZh8.js → edit.utils-Dnnbd0xG.js} +1 -1
- package/dist/{revo-grid/header-cell-renderer-DU8wKAbg.js → esm/header-cell-renderer-BsvUQ8GS.js} +1 -1
- package/dist/esm/index-Db3qZoW5.js +127 -0
- package/dist/esm/index.js +11 -10
- package/dist/esm/revo-grid.entry.js +123 -17
- package/dist/esm/revogr-attribution_7.entry.js +42 -24
- package/dist/esm/revogr-clipboard_3.entry.js +11 -9
- package/dist/esm/revogr-data_4.entry.js +75 -33
- package/dist/esm/revogr-filter-panel.entry.js +3 -2
- package/dist/esm/{text-editor-DpCnd6Fq.js → text-editor-C3RUSwH5.js} +2 -2
- package/dist/esm/{throttle-ERvyruXb.js → throttle-CaUDyxyU.js} +60 -25
- package/dist/esm/viewport.helpers-CoCAvmZs.js +133 -0
- package/dist/{revo-grid/viewport.store-CFjDW-3l.js → esm/viewport.store-COAfzAyu.js} +15 -17
- package/dist/{esm/cell-renderer-CALsEsnh.js → revo-grid/cell-renderer-BtN-NGCk.js} +9 -3
- package/dist/revo-grid/{column.drag.plugin-Dy5ztusn.js → column.drag.plugin-DCZW62Uc.js} +388 -255
- package/dist/revo-grid/{column.service-CCvAi5l4.js → column.service-CC_SD8W3.js} +10 -1
- package/dist/{esm/debounce-BfO9dz9v.js → revo-grid/debounce-PCRWZliA.js} +1 -1
- package/dist/{esm/dimension.helpers-DmIvjIa7.js → revo-grid/dimension.helpers-CGKwSvw6.js} +7 -128
- package/dist/revo-grid/{edit.utils-DYN6XZh8.js → edit.utils-Dnnbd0xG.js} +1 -1
- package/dist/{esm/header-cell-renderer-DU8wKAbg.js → revo-grid/header-cell-renderer-BsvUQ8GS.js} +1 -1
- package/dist/revo-grid/index-Db3qZoW5.js +127 -0
- package/dist/revo-grid/index.esm.js +11 -10
- package/dist/revo-grid/revo-grid.entry.js +123 -17
- package/dist/revo-grid/revogr-attribution_7.entry.js +42 -24
- package/dist/revo-grid/revogr-clipboard_3.entry.js +11 -9
- package/dist/revo-grid/revogr-data_4.entry.js +75 -33
- package/dist/revo-grid/revogr-filter-panel.entry.js +3 -2
- package/dist/revo-grid/{text-editor-DpCnd6Fq.js → text-editor-C3RUSwH5.js} +2 -2
- package/dist/revo-grid/{throttle-ERvyruXb.js → throttle-CaUDyxyU.js} +60 -25
- package/dist/revo-grid/viewport.helpers-CoCAvmZs.js +133 -0
- package/dist/{esm/viewport.store-CFjDW-3l.js → revo-grid/viewport.store-COAfzAyu.js} +15 -17
- package/dist/types/components/header/header-group-renderer.d.ts +2 -0
- package/dist/types/components/header/header-renderer.d.ts +1 -0
- package/dist/types/components/header/revogr-header.d.ts +2 -0
- package/dist/types/components/overlay/keyboard.service.d.ts +5 -0
- package/dist/types/components/revoGrid/revo-grid.d.ts +12 -0
- package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +8 -0
- package/dist/types/plugins/sorting/sorting.func.d.ts +25 -2
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +84 -9
- package/dist/types/plugins/sorting/sorting.sign.d.ts +5 -1
- package/dist/types/plugins/sorting/sorting.types.d.ts +46 -1
- package/dist/types/services/local.scroll.service.d.ts +10 -2
- package/dist/types/services/scroll.dimension.helpers.d.ts +20 -0
- package/dist/types/services/selection.store.connector.d.ts +6 -0
- package/dist/types/store/vp/viewport.helpers.d.ts +2 -0
- package/dist/types/types/interfaces.d.ts +11 -0
- package/dist/types/types/selection.d.ts +13 -0
- package/hydrate/index.js +795 -383
- package/hydrate/index.mjs +795 -383
- package/package.json +1 -1
- package/standalone/column.service.js +1 -1
- package/standalone/data.store.js +1 -1
- package/standalone/debounce.js +1 -1
- package/standalone/dimension.helpers.js +1 -1
- package/standalone/index.js +1 -1
- package/standalone/local.scroll.timer.js +1 -1
- package/standalone/revo-grid.js +1 -1
- package/standalone/revogr-data2.js +1 -1
- package/standalone/revogr-filter-panel.js +1 -1
- package/standalone/revogr-header2.js +1 -1
- package/standalone/revogr-order-editor2.js +1 -1
- package/standalone/revogr-overlay-selection2.js +1 -1
- package/standalone/revogr-row-headers.js +1 -1
- package/standalone/revogr-row-headers2.js +1 -1
- package/standalone/revogr-scroll-virtual2.js +1 -1
- package/standalone/revogr-viewport-scroll2.js +1 -1
- package/standalone/selection.utils.js +1 -1
- package/standalone/throttle.js +1 -1
- package/standalone/toNumber.js +1 -1
- package/dist/cjs/viewport.helpers-BAovztDd.js +0 -58
- package/dist/esm/viewport.helpers-VXhsJZtn.js +0 -52
- package/dist/revo-grid/viewport.helpers-VXhsJZtn.js +0 -52
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
4
|
import { r as registerInstance, h, e as Host, d as createEvent, g as getElement } from './index-Chp_81rd.js';
|
|
5
|
-
import { k as getItemByIndex, b as getSourceItem, j as getItemByPosition,
|
|
5
|
+
import { k as getItemByIndex, b as getSourceItem, j as getItemByPosition, F as FOCUS_CLASS, I as codesLetter, R as RESIZE_INTERVAL, y as MOBILE_CLASS, z as CELL_HANDLER_CLASS, S as SELECTION_BORDER_CLASS, D as DataStore, q as ROW_HEADER_TYPE, T as TMP_SELECTION_BG_CLASS } from './dimension.helpers-CGKwSvw6.js';
|
|
6
6
|
import { g as getPropertyFromEvent, v as verifyTouchTarget } from './events-BvSmBueA.js';
|
|
7
|
-
import { g as getRange, M as ColumnService, z as getCellData, N as getCellEditor, b as isRangeSingleCell } from './column.service-
|
|
8
|
-
import { c as isClear, d as isTab, f as isEnterKeyValue, h as isCopy, g as isCut, j as isPaste, k as isAll
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
7
|
+
import { g as getRange, M as ColumnService, z as getCellData, N as getCellEditor, b as isRangeSingleCell } from './column.service-CC_SD8W3.js';
|
|
8
|
+
import { l as isShortcutModifier, m as isEditInput, c as isClear, d as isTab, f as isEnterKeyValue, h as isCopy, g as isCut, j as isPaste, k as isAll } from './edit.utils-Dnnbd0xG.js';
|
|
9
|
+
import { t as timeout, g as getScrollbarSize } from './index-Db3qZoW5.js';
|
|
10
|
+
import { d as debounce } from './debounce-PCRWZliA.js';
|
|
11
|
+
import { V as ViewportStore, j as calculateRowHeaderSize } from './viewport.store-COAfzAyu.js';
|
|
12
|
+
import { H as HEADER_SLOT } from './viewport.helpers-CoCAvmZs.js';
|
|
13
|
+
import { L as LocalScrollTimer, a as LocalScrollService, g as getContentSize, t as throttle } from './throttle-CaUDyxyU.js';
|
|
13
14
|
|
|
14
15
|
const Attribution = class {
|
|
15
16
|
constructor(hostRef) {
|
|
@@ -107,8 +108,8 @@ function getCurrentCell({ x, y }, { el, rows, cols }) {
|
|
|
107
108
|
cellX = width - 1;
|
|
108
109
|
}
|
|
109
110
|
// Get the row and column items based on the cell position
|
|
110
|
-
const rgRow = getItemByPosition(rows, cellY);
|
|
111
|
-
const rgCol = getItemByPosition(cols, cellX);
|
|
111
|
+
const rgRow = getItemByPosition(rows, cellY + (rows.renderOffset || 0));
|
|
112
|
+
const rgCol = getItemByPosition(cols, cellX + (cols.renderOffset || 0));
|
|
112
113
|
// Set the row and column index to 0 if they are before the first item
|
|
113
114
|
if (rgCol.itemIndex < 0) {
|
|
114
115
|
rgCol.itemIndex = 0;
|
|
@@ -178,10 +179,12 @@ function styleByCellProps(styles) {
|
|
|
178
179
|
};
|
|
179
180
|
}
|
|
180
181
|
function getCell({ x, y, x1, y1 }, dimensionRow, dimensionCol) {
|
|
181
|
-
const
|
|
182
|
-
const
|
|
183
|
-
const
|
|
184
|
-
const
|
|
182
|
+
const rowOffset = dimensionRow.renderOffset || 0;
|
|
183
|
+
const colOffset = dimensionCol.renderOffset || 0;
|
|
184
|
+
const top = getItemByIndex(dimensionRow, y).start - rowOffset;
|
|
185
|
+
const left = getItemByIndex(dimensionCol, x).start - colOffset;
|
|
186
|
+
const bottom = getItemByIndex(dimensionRow, y1).end - rowOffset;
|
|
187
|
+
const right = getItemByIndex(dimensionCol, x1).end - colOffset;
|
|
185
188
|
return {
|
|
186
189
|
left,
|
|
187
190
|
right,
|
|
@@ -279,9 +282,29 @@ class KeyboardService {
|
|
|
279
282
|
constructor(sv) {
|
|
280
283
|
this.sv = sv;
|
|
281
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* Appends printable key input that arrives after edit mode was requested
|
|
287
|
+
* but before the editor input has mounted or received focus.
|
|
288
|
+
*/
|
|
289
|
+
appendPendingEditValue(e) {
|
|
290
|
+
if (isShortcutModifier(e) ||
|
|
291
|
+
e.key.length !== 1 ||
|
|
292
|
+
(e.target instanceof HTMLElement && isEditInput(e.target))) {
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
const editCell = this.sv.selectionStore.get('edit');
|
|
296
|
+
if (typeof (editCell === null || editCell === void 0 ? void 0 : editCell.val) !== 'string') {
|
|
297
|
+
return false;
|
|
298
|
+
}
|
|
299
|
+
this.sv.selectionStore.set('edit', Object.assign(Object.assign({}, editCell), { val: `${editCell.val}${e.key}` }));
|
|
300
|
+
return true;
|
|
301
|
+
}
|
|
282
302
|
async keyDown(e, canRange, isEditMode, { range, focus }) {
|
|
283
303
|
// IF EDIT MODE
|
|
284
304
|
if (isEditMode) {
|
|
305
|
+
if (this.appendPendingEditValue(e)) {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
285
308
|
switch (e.code) {
|
|
286
309
|
case codesLetter.ESCAPE:
|
|
287
310
|
this.sv.cancel();
|
|
@@ -375,7 +398,8 @@ class KeyboardService {
|
|
|
375
398
|
}
|
|
376
399
|
const eData = this.sv.getData();
|
|
377
400
|
if (isMulti) {
|
|
378
|
-
|
|
401
|
+
const isOutOfBounds = [data.start, data.end].some(cell => isAfterLast(cell, eData.lastCell) || isBeforeFirst(cell));
|
|
402
|
+
if (isOutOfBounds) {
|
|
379
403
|
return false;
|
|
380
404
|
}
|
|
381
405
|
const range = getRange(data.start, data.end);
|
|
@@ -1286,15 +1310,9 @@ const RevogrScrollVirtual = class {
|
|
|
1286
1310
|
*/
|
|
1287
1311
|
async changeScroll(e) {
|
|
1288
1312
|
if (e.delta) {
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
break;
|
|
1293
|
-
case 'rgRow':
|
|
1294
|
-
e.coordinate = this.element.scrollTop + e.delta;
|
|
1295
|
-
break;
|
|
1296
|
-
}
|
|
1297
|
-
this.setScroll(e);
|
|
1313
|
+
const scrollProperty = e.dimension === 'rgRow' ? 'scrollTop' : 'scrollLeft';
|
|
1314
|
+
const currentPhysicalCoordinate = this.element[scrollProperty];
|
|
1315
|
+
return this.localScrollService.setScrollByDelta(e, currentPhysicalCoordinate);
|
|
1298
1316
|
}
|
|
1299
1317
|
return e;
|
|
1300
1318
|
}
|
|
@@ -1357,7 +1375,7 @@ const RevogrScrollVirtual = class {
|
|
|
1357
1375
|
}
|
|
1358
1376
|
render() {
|
|
1359
1377
|
const size = getContentSize(this.realSize, this.dimension === 'rgRow' ? this.element.clientHeight : this.element.clientWidth, this.clientSize);
|
|
1360
|
-
return (h(Host, { key: '
|
|
1378
|
+
return (h(Host, { key: '7213817ef941eee4050b714266598ec0c2961ee9', onScroll: (e) => this.onScroll(e) }, h("div", { key: '501da49c63253ab943172494b9dbf5399be56cee', style: {
|
|
1361
1379
|
[this.dimension === 'rgRow' ? 'height' : 'width']: `${size}px`,
|
|
1362
1380
|
} })));
|
|
1363
1381
|
}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
4
|
import { r as registerInstance, d as createEvent, h, e as Host, g as getElement } from './index-Chp_81rd.js';
|
|
5
|
-
import {
|
|
6
|
-
import { T as TextEditor } from './text-editor-
|
|
7
|
-
import { n as isEditorCtrConstructible } from './edit.utils-
|
|
8
|
-
import { d as debounce } from './debounce-
|
|
5
|
+
import { E as EDIT_INPUT_WR, j as getItemByPosition, b as getSourceItem, A as DRAGG_TEXT } from './dimension.helpers-CGKwSvw6.js';
|
|
6
|
+
import { T as TextEditor } from './text-editor-C3RUSwH5.js';
|
|
7
|
+
import { n as isEditorCtrConstructible } from './edit.utils-Dnnbd0xG.js';
|
|
8
|
+
import { d as debounce } from './debounce-PCRWZliA.js';
|
|
9
|
+
import './index-Db3qZoW5.js';
|
|
9
10
|
|
|
10
11
|
const Clipboard = class {
|
|
11
12
|
constructor(hostRef) {
|
|
@@ -332,11 +333,12 @@ class RowOrderService {
|
|
|
332
333
|
getRow(y, { el, rows }) {
|
|
333
334
|
const { top } = el.getBoundingClientRect();
|
|
334
335
|
const topRelative = y - top;
|
|
335
|
-
const
|
|
336
|
+
const rowOffset = rows.renderOffset || 0;
|
|
337
|
+
const rgRow = getItemByPosition(rows, topRelative + rowOffset);
|
|
336
338
|
const absolutePosition = {
|
|
337
339
|
itemIndex: rgRow.itemIndex,
|
|
338
|
-
start: rgRow.start + top,
|
|
339
|
-
end: rgRow.end + top,
|
|
340
|
+
start: rgRow.start - rowOffset + top,
|
|
341
|
+
end: rgRow.end - rowOffset + top,
|
|
340
342
|
};
|
|
341
343
|
return absolutePosition;
|
|
342
344
|
}
|
|
@@ -345,8 +347,8 @@ class RowOrderService {
|
|
|
345
347
|
const { top, left } = el.getBoundingClientRect();
|
|
346
348
|
const topRelative = y - top;
|
|
347
349
|
const leftRelative = x - left;
|
|
348
|
-
const rgRow = getItemByPosition(rows, topRelative);
|
|
349
|
-
const rgCol = getItemByPosition(cols, leftRelative);
|
|
350
|
+
const rgRow = getItemByPosition(rows, topRelative + (rows.renderOffset || 0));
|
|
351
|
+
const rgCol = getItemByPosition(cols, leftRelative + (cols.renderOffset || 0));
|
|
350
352
|
return { x: rgCol.itemIndex, y: rgRow.itemIndex };
|
|
351
353
|
}
|
|
352
354
|
}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
4
|
import { r as registerInstance, d as createEvent, h, e as Host, g as getElement } from './index-Chp_81rd.js';
|
|
5
|
-
import { M as ColumnService, u as isGrouping } from './column.service-
|
|
6
|
-
import {
|
|
7
|
-
import { G as GroupingRowRenderer, C as CellRenderer, R as RowRenderer, P as PADDING_DEPTH, S as SortingSign } from './cell-renderer-
|
|
5
|
+
import { M as ColumnService, u as isGrouping } from './column.service-CC_SD8W3.js';
|
|
6
|
+
import { B as ROW_FOCUSED_CLASS, b as getSourceItem, n as DATA_ROW, m as DATA_COL, M as MIN_COL_SIZE, r as HEADER_SORTABLE_CLASS, H as HEADER_CLASS, F as FOCUS_CLASS, k as getItemByIndex, u as HEADER_ROW_CLASS, v as HEADER_ACTUAL_ROW_CLASS } from './dimension.helpers-CGKwSvw6.js';
|
|
7
|
+
import { G as GroupingRowRenderer, C as CellRenderer, R as RowRenderer, P as PADDING_DEPTH, S as SortingSign } from './cell-renderer-BtN-NGCk.js';
|
|
8
8
|
import { c as FilterButton } from './filter.button-C8XTWPU2.js';
|
|
9
|
-
import { H as HeaderCellRenderer } from './header-cell-renderer-
|
|
10
|
-
import { t as throttle, L as LocalScrollTimer, a as LocalScrollService } from './throttle-
|
|
11
|
-
import { H as HEADER_SLOT, C as CONTENT_SLOT, F as FOOTER_SLOT } from './viewport.helpers-
|
|
12
|
-
import './debounce-
|
|
9
|
+
import { H as HeaderCellRenderer } from './header-cell-renderer-BsvUQ8GS.js';
|
|
10
|
+
import { t as throttle, L as LocalScrollTimer, a as LocalScrollService, g as getContentSize } from './throttle-CaUDyxyU.js';
|
|
11
|
+
import { H as HEADER_SLOT, C as CONTENT_SLOT, F as FOOTER_SLOT } from './viewport.helpers-CoCAvmZs.js';
|
|
12
|
+
import './debounce-PCRWZliA.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Class is responsible for highlighting rows in a table.
|
|
@@ -168,11 +168,13 @@ const RevogrData = class {
|
|
|
168
168
|
const depth = this.dataStore.get('groupingDepth');
|
|
169
169
|
const groupingCustomRenderer = this.dataStore.get('groupingCustomRenderer');
|
|
170
170
|
const groupDepth = this.columnService.hasGrouping ? depth : 0;
|
|
171
|
+
const rowRenderOffset = this.viewportRow.get('renderOffset') || 0;
|
|
172
|
+
const colRenderOffset = this.viewportCol.get('renderOffset') || 0;
|
|
171
173
|
for (let rgRow of rows) {
|
|
172
174
|
const dataItem = getSourceItem(this.dataStore, rgRow.itemIndex);
|
|
173
175
|
// #region Grouping
|
|
174
176
|
if (isGrouping(dataItem)) {
|
|
175
|
-
const gmodel = Object.assign(Object.assign({}, rgRow), { index: rgRow.itemIndex, model: dataItem, groupingCustomRenderer,
|
|
177
|
+
const gmodel = Object.assign(Object.assign({}, rgRow), { start: rgRow.start - rowRenderOffset, index: rgRow.itemIndex, model: dataItem, groupingCustomRenderer,
|
|
176
178
|
// Only show expand button if grouping is enabled and not in row headers
|
|
177
179
|
hasExpand: this.columnService.hasGrouping && this.colType !== 'rowHeaders', columnItems: cols, providers: this.providers });
|
|
178
180
|
rowsEls.push(h(GroupingRowRenderer, Object.assign({}, gmodel)));
|
|
@@ -195,7 +197,7 @@ const RevogrData = class {
|
|
|
195
197
|
[DATA_ROW]: rowProps.itemIndex,
|
|
196
198
|
style: {
|
|
197
199
|
width: `${columnProps.size}px`,
|
|
198
|
-
transform: `translateX(${columnProps.start}px)`,
|
|
200
|
+
transform: `translateX(${columnProps.start - colRenderOffset}px)`,
|
|
199
201
|
height: rowProps.size ? `${rowProps.size}px` : undefined,
|
|
200
202
|
},
|
|
201
203
|
};
|
|
@@ -223,7 +225,7 @@ const RevogrData = class {
|
|
|
223
225
|
if (this.rowHighlightPlugin.isRowFocused(rgRow.itemIndex)) {
|
|
224
226
|
rowClass += ` ${ROW_FOCUSED_CLASS}`;
|
|
225
227
|
}
|
|
226
|
-
const row = (h(RowRenderer, { index: rgRow.itemIndex, rowClass: rowClass, size: rgRow.size, start: rgRow.start, groupingLevel: groupDepth || undefined }, cells));
|
|
228
|
+
const row = (h(RowRenderer, { index: rgRow.itemIndex, rowClass: rowClass, size: rgRow.size, start: rgRow.start - rowRenderOffset, groupingLevel: groupDepth || undefined }, cells));
|
|
227
229
|
this.beforerowrender.emit({
|
|
228
230
|
node: row,
|
|
229
231
|
item: rgRow,
|
|
@@ -278,7 +280,7 @@ const HeaderRenderer = (p) => {
|
|
|
278
280
|
class: cellClass,
|
|
279
281
|
style: {
|
|
280
282
|
width: `${p.column.size}px`,
|
|
281
|
-
transform: `translateX(${p.column.start}px)`,
|
|
283
|
+
transform: `translateX(${p.column.start - (p.renderOffset || 0)}px)`,
|
|
282
284
|
},
|
|
283
285
|
onResize: p.onResize,
|
|
284
286
|
onDblClick(originalEvent) {
|
|
@@ -323,7 +325,7 @@ const HeaderGroupRenderer = (p) => {
|
|
|
323
325
|
[HEADER_CLASS]: true,
|
|
324
326
|
},
|
|
325
327
|
style: {
|
|
326
|
-
transform: `translateX(${p.start}px)`,
|
|
328
|
+
transform: `translateX(${p.start - (p.renderOffset || 0)}px)`,
|
|
327
329
|
width: `${p.end - p.start}px`,
|
|
328
330
|
},
|
|
329
331
|
onResize: p.onResize,
|
|
@@ -331,7 +333,7 @@ const HeaderGroupRenderer = (p) => {
|
|
|
331
333
|
return (h(HeaderCellRenderer, { data: Object.assign(Object.assign({}, p.group), { prop: '', providers: p.providers, index: p.start }), props: groupProps, additionalData: p.additionalData }));
|
|
332
334
|
};
|
|
333
335
|
|
|
334
|
-
const revogrHeaderStyleCss = () => `@charset "UTF-8";revogr-header{position:relative;z-index:5;display:block}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative;overflow:hidden}revogr-header .rgHeaderCell{position:absolute;box-sizing:border-box;height:100%;z-index:1;display:flex}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell i.asc:after,revogr-header .rgHeaderCell i.desc:after{font-size:13px}revogr-header .rgHeaderCell i.asc:after{content:"↑"}revogr-header .rgHeaderCell i.desc:after{content:"↓"}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:deepskyblue}revogr-header .rgHeaderCell .header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell .resizable{display:block;position:absolute;z-index:90;touch-action:none;user-select:none}revogr-header .rgHeaderCell .resizable:hover{background-color:deepskyblue}revogr-header .rgHeaderCell>.resizable-r{cursor:ew-resize;width:6px;right:0;top:0;height:100%}revogr-header .rgHeaderCell>.resizable-rb{cursor:se-resize;width:6px;height:6px;right:0;bottom:0}revogr-header .rgHeaderCell>.resizable-b{cursor:s-resize;height:6px;bottom:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-lb{cursor:sw-resize;width:6px;height:6px;left:0;bottom:0}revogr-header .rgHeaderCell>.resizable-l{cursor:w-resize;width:6px;left:0;height:100%;top:0}revogr-header .rgHeaderCell>.resizable-lt{cursor:nw-resize;width:6px;height:6px;left:0;top:0}revogr-header .rgHeaderCell>.resizable-t{cursor:n-resize;height:6px;top:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-rt{cursor:ne-resize;width:6px;height:6px;right:0;top:0}revogr-header .rv-filter{visibility:hidden}`;
|
|
336
|
+
const revogrHeaderStyleCss = () => `@charset "UTF-8";revogr-header{position:relative;z-index:5;display:block}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative;overflow:hidden}revogr-header .rgHeaderCell{position:absolute;box-sizing:border-box;height:100%;z-index:1;display:flex}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell .sort-indicator{display:inline-flex;align-items:flex-start;gap:1px}revogr-header .rgHeaderCell .sort-indicator i.asc:after,revogr-header .rgHeaderCell .sort-indicator i.desc:after{font-size:13px}revogr-header .rgHeaderCell .sort-indicator i.asc:after{content:"↑"}revogr-header .rgHeaderCell .sort-indicator i.desc:after{content:"↓"}revogr-header .rgHeaderCell .sort-indicator .sort-order-index{font-size:10px;line-height:1;top:0}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:deepskyblue}revogr-header .rgHeaderCell .header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell .resizable{display:block;position:absolute;z-index:90;touch-action:none;user-select:none}revogr-header .rgHeaderCell .resizable:hover{background-color:deepskyblue}revogr-header .rgHeaderCell>.resizable-r{cursor:ew-resize;width:6px;right:0;top:0;height:100%}revogr-header .rgHeaderCell>.resizable-rb{cursor:se-resize;width:6px;height:6px;right:0;bottom:0}revogr-header .rgHeaderCell>.resizable-b{cursor:s-resize;height:6px;bottom:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-lb{cursor:sw-resize;width:6px;height:6px;left:0;bottom:0}revogr-header .rgHeaderCell>.resizable-l{cursor:w-resize;width:6px;left:0;height:100%;top:0}revogr-header .rgHeaderCell>.resizable-lt{cursor:nw-resize;width:6px;height:6px;left:0;top:0}revogr-header .rgHeaderCell>.resizable-t{cursor:n-resize;height:6px;top:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-rt{cursor:ne-resize;width:6px;height:6px;right:0;top:0}revogr-header .rv-filter{visibility:hidden}`;
|
|
335
337
|
|
|
336
338
|
const RevogrHeaderComponent = class {
|
|
337
339
|
constructor(hostRef) {
|
|
@@ -387,6 +389,7 @@ const RevogrHeaderComponent = class {
|
|
|
387
389
|
}
|
|
388
390
|
renderHeaderColumns(cols, range) {
|
|
389
391
|
const columnsToRender = [];
|
|
392
|
+
const renderOffset = this.viewportCol.get('renderOffset') || 0;
|
|
390
393
|
for (let rgCol of cols) {
|
|
391
394
|
const colData = this.colData[rgCol.itemIndex];
|
|
392
395
|
const props = {
|
|
@@ -395,6 +398,7 @@ const RevogrHeaderComponent = class {
|
|
|
395
398
|
data: Object.assign(Object.assign({}, colData), { index: rgCol.itemIndex, providers: this.providers }),
|
|
396
399
|
canFilter: !!this.columnFilter,
|
|
397
400
|
canResize: this.canResize,
|
|
401
|
+
renderOffset,
|
|
398
402
|
active: this.resizeHandler,
|
|
399
403
|
additionalData: this.additionalData,
|
|
400
404
|
onResize: e => this.onResize(e, rgCol.itemIndex),
|
|
@@ -430,37 +434,71 @@ const RevogrHeaderComponent = class {
|
|
|
430
434
|
];
|
|
431
435
|
}
|
|
432
436
|
renderGroupColumn(group, level, visibleGroupRange) {
|
|
433
|
-
|
|
434
|
-
const
|
|
435
|
-
if (groupStartIndex < 0) {
|
|
436
|
-
return;
|
|
437
|
-
}
|
|
438
|
-
const groupEndIndex = groupStartIndex + group.indexes.length - 1;
|
|
439
|
-
if (!visibleGroupRange ||
|
|
440
|
-
!isGroupInVisibleRange(groupStartIndex, groupEndIndex, visibleGroupRange)) {
|
|
441
|
-
return;
|
|
442
|
-
}
|
|
443
|
-
const groupStart = getItemByIndex(this.dimensionCol.state, groupStartIndex).start;
|
|
444
|
-
const groupEnd = getItemByIndex(this.dimensionCol.state, groupEndIndex).end;
|
|
437
|
+
const groupRange = this.getGroupIndexRange(group);
|
|
438
|
+
const groupBounds = this.getGroupBounds(groupRange);
|
|
445
439
|
const props = {
|
|
440
|
+
level,
|
|
446
441
|
providers: this.providers,
|
|
447
|
-
start:
|
|
448
|
-
end:
|
|
442
|
+
start: groupBounds.start,
|
|
443
|
+
end: groupBounds.end,
|
|
449
444
|
group,
|
|
445
|
+
renderOffset: this.viewportCol.get('renderOffset') || 0,
|
|
450
446
|
active: this.resizeHandler,
|
|
451
447
|
canResize: this.canResize,
|
|
452
448
|
additionalData: this.additionalData,
|
|
453
449
|
onResize: e => {
|
|
454
450
|
var _a;
|
|
455
|
-
return
|
|
451
|
+
return groupRange
|
|
452
|
+
? this.onResizeGroup((_a = e.changedX) !== null && _a !== void 0 ? _a : 0, groupRange.startIndex, groupRange.endIndex)
|
|
453
|
+
: undefined;
|
|
456
454
|
},
|
|
457
455
|
};
|
|
458
456
|
const event = this.beforeGroupHeaderRender.emit(props);
|
|
459
457
|
if (event.defaultPrevented) {
|
|
460
458
|
return;
|
|
461
459
|
}
|
|
460
|
+
const renderRange = this.getGroupIndexRange(event.detail.group);
|
|
461
|
+
if (!renderRange ||
|
|
462
|
+
!visibleGroupRange ||
|
|
463
|
+
!isGroupInVisibleRange(renderRange.startIndex, renderRange.endIndex, visibleGroupRange)) {
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
466
|
+
if (event.detail.onResize === props.onResize) {
|
|
467
|
+
event.detail.onResize = e => {
|
|
468
|
+
var _a;
|
|
469
|
+
return this.onResizeGroup((_a = e.changedX) !== null && _a !== void 0 ? _a : 0, renderRange.startIndex, renderRange.endIndex);
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
const renderBounds = this.getGroupBounds(renderRange);
|
|
473
|
+
if (event.detail.start === props.start) {
|
|
474
|
+
event.detail.start = renderBounds.start;
|
|
475
|
+
}
|
|
476
|
+
if (event.detail.end === props.end) {
|
|
477
|
+
event.detail.end = renderBounds.end;
|
|
478
|
+
}
|
|
462
479
|
return h(HeaderGroupRenderer, Object.assign({ key: this.getGroupHeaderCellKey(event.detail.group, level) }, event.detail));
|
|
463
480
|
}
|
|
481
|
+
getGroupIndexRange(group) {
|
|
482
|
+
var _a;
|
|
483
|
+
const startIndex = (_a = group.indexes[0]) !== null && _a !== void 0 ? _a : -1;
|
|
484
|
+
if (startIndex < 0) {
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
487
|
+
const endIndex = group.indexes[group.indexes.length - 1];
|
|
488
|
+
return {
|
|
489
|
+
startIndex,
|
|
490
|
+
endIndex,
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
getGroupBounds(range) {
|
|
494
|
+
if (!range) {
|
|
495
|
+
return { start: 0, end: 0 };
|
|
496
|
+
}
|
|
497
|
+
return {
|
|
498
|
+
start: getItemByIndex(this.dimensionCol.state, range.startIndex).start,
|
|
499
|
+
end: getItemByIndex(this.dimensionCol.state, range.endIndex).end,
|
|
500
|
+
};
|
|
501
|
+
}
|
|
464
502
|
getVisibleGroupRange() {
|
|
465
503
|
const visibleColumns = this.viewportCol.get('items');
|
|
466
504
|
if (!visibleColumns.length) {
|
|
@@ -601,7 +639,7 @@ const RevogrViewportScroll = class {
|
|
|
601
639
|
* @param e
|
|
602
640
|
*/
|
|
603
641
|
async changeScroll(e, silent = false) {
|
|
604
|
-
var _a, _b;
|
|
642
|
+
var _a, _b, _c, _d;
|
|
605
643
|
if (silent) {
|
|
606
644
|
if (e.coordinate && this.verticalScroll) {
|
|
607
645
|
switch (e.dimension) {
|
|
@@ -614,15 +652,16 @@ const RevogrViewportScroll = class {
|
|
|
614
652
|
return;
|
|
615
653
|
}
|
|
616
654
|
if (e.delta) {
|
|
655
|
+
let currentPhysicalCoordinate = 0;
|
|
617
656
|
switch (e.dimension) {
|
|
618
657
|
case 'rgCol':
|
|
619
|
-
|
|
658
|
+
currentPhysicalCoordinate = this.horizontalScroll.scrollLeft;
|
|
620
659
|
break;
|
|
621
660
|
case 'rgRow':
|
|
622
|
-
|
|
661
|
+
currentPhysicalCoordinate = (_b = (_a = this.verticalScroll) === null || _a === void 0 ? void 0 : _a.scrollTop) !== null && _b !== void 0 ? _b : 0;
|
|
623
662
|
break;
|
|
624
663
|
}
|
|
625
|
-
this.
|
|
664
|
+
return (_d = (_c = this.localScrollService) === null || _c === void 0 ? void 0 : _c.setScrollByDelta(e, currentPhysicalCoordinate)) !== null && _d !== void 0 ? _d : e;
|
|
626
665
|
}
|
|
627
666
|
return e;
|
|
628
667
|
}
|
|
@@ -774,7 +813,10 @@ const RevogrViewportScroll = class {
|
|
|
774
813
|
this.setScrollVisibility('rgCol', this.horizontalScroll.clientWidth, this.contentWidth);
|
|
775
814
|
}
|
|
776
815
|
render() {
|
|
777
|
-
|
|
816
|
+
var _a, _b, _c, _d;
|
|
817
|
+
const physicalContentHeight = getContentSize(this.contentHeight, (_b = (_a = this.verticalScroll) === null || _a === void 0 ? void 0 : _a.clientHeight) !== null && _b !== void 0 ? _b : 0);
|
|
818
|
+
const physicalContentWidth = getContentSize(this.contentWidth, (_d = (_c = this.horizontalScroll) === null || _c === void 0 ? void 0 : _c.clientWidth) !== null && _d !== void 0 ? _d : 0);
|
|
819
|
+
return (h(Host, { key: 'a0c47dede9d131dea8c8ca449e8a323f24d9b113', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, h("div", { key: '6c960e753ffe522ba4afb1c379264873b6c617f3', class: "inner-content-table", style: { width: `${physicalContentWidth}px` } }, h("div", { key: '1a6cbcbd3634e84756b54c8150aebd25c824e14a', class: "header-wrapper", ref: e => (this.header = e) }, h("slot", { key: 'e4202c687bc39b4f78f3ed9840e979b032f06af8', name: HEADER_SLOT })), h("div", { key: '651415b5b32e72735065b183317386a34042bb85', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, h("div", { key: 'e65623b78d80957d8676adb019618953ef267ec3', class: "content-wrapper", style: { height: `${physicalContentHeight}px` } }, h("slot", { key: '5af47b12ef1226587cf774233447b5252d65e836', name: CONTENT_SLOT }))), h("div", { key: 'cbc0fd64fbfb53d3b18e547bbe34e32b7bb9c043', class: "footer-wrapper", ref: e => (this.footer = e) }, h("slot", { key: 'a8e4bfaef400973121090bac3069eb85469a95f3', name: FOOTER_SLOT })))));
|
|
778
820
|
}
|
|
779
821
|
/**
|
|
780
822
|
* Extra layer for scroll event monitoring, where MouseWheel event is not passing
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
4
|
import { r as registerInstance, d as createEvent, h, e as Host, g as getElement } from './index-Chp_81rd.js';
|
|
5
|
-
import { d as debounce } from './debounce-
|
|
5
|
+
import { d as debounce } from './debounce-PCRWZliA.js';
|
|
6
6
|
import { i as isFilterBtn, e as AndOrButton, d as TrashButton } from './filter.button-C8XTWPU2.js';
|
|
7
7
|
|
|
8
8
|
(function closest() {
|
|
@@ -267,7 +267,8 @@ const FilterPanel = class {
|
|
|
267
267
|
const options = [];
|
|
268
268
|
const prop = this.changes.prop;
|
|
269
269
|
const hidden = new Set();
|
|
270
|
-
Object.
|
|
270
|
+
Object.keys(this.filterItems).forEach((prop) => {
|
|
271
|
+
const values = this.filterItems[prop];
|
|
271
272
|
values.forEach((filter) => {
|
|
272
273
|
if (filter.hidden) {
|
|
273
274
|
hidden.add(filter.type);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import { d as isTab, f as isEnterKeyValue } from './edit.utils-
|
|
5
|
-
import {
|
|
4
|
+
import { d as isTab, f as isEnterKeyValue } from './edit.utils-Dnnbd0xG.js';
|
|
5
|
+
import { t as timeout } from './index-Db3qZoW5.js';
|
|
6
6
|
|
|
7
7
|
class TextEditor {
|
|
8
8
|
constructor(data, saveCallback) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import { d as debounce,
|
|
4
|
+
import { g as getScrollDimension } from './viewport.helpers-CoCAvmZs.js';
|
|
5
|
+
import { d as debounce, i as isObject } from './debounce-PCRWZliA.js';
|
|
6
6
|
|
|
7
7
|
const initialParams = {
|
|
8
8
|
contentSize: 0,
|
|
@@ -16,10 +16,11 @@ const NO_COORDINATE = -1;
|
|
|
16
16
|
* return full size
|
|
17
17
|
*/
|
|
18
18
|
function getContentSize(contentSize, clientSize, virtualSize = 0) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
return getScrollDimension({
|
|
20
|
+
contentSize,
|
|
21
|
+
clientSize,
|
|
22
|
+
virtualSize,
|
|
23
|
+
}).physicalContentSize;
|
|
23
24
|
}
|
|
24
25
|
class LocalScrollService {
|
|
25
26
|
constructor(cfg) {
|
|
@@ -33,14 +34,20 @@ class LocalScrollService {
|
|
|
33
34
|
rgRow: NO_COORDINATE,
|
|
34
35
|
rgCol: NO_COORDINATE,
|
|
35
36
|
};
|
|
37
|
+
this.previousLogicalScroll = {
|
|
38
|
+
rgRow: 0,
|
|
39
|
+
rgCol: 0,
|
|
40
|
+
};
|
|
36
41
|
this.params = {
|
|
37
42
|
rgRow: Object.assign({}, initialParams),
|
|
38
43
|
rgCol: Object.assign({}, initialParams),
|
|
39
44
|
};
|
|
40
45
|
}
|
|
41
46
|
setParams(params, dimension) {
|
|
42
|
-
const
|
|
43
|
-
|
|
47
|
+
const scrollDimension = getScrollDimension(params);
|
|
48
|
+
const virtualContentSize = scrollDimension.physicalContentSize;
|
|
49
|
+
this.params[dimension] = Object.assign(Object.assign({}, params), { maxSize: virtualContentSize - params.clientSize, virtualContentSize,
|
|
50
|
+
scrollDimension });
|
|
44
51
|
}
|
|
45
52
|
// apply scroll values after scroll done
|
|
46
53
|
async setScroll(e) {
|
|
@@ -60,16 +67,27 @@ class LocalScrollService {
|
|
|
60
67
|
await frameAnimation;
|
|
61
68
|
const params = this.getParams(e.dimension);
|
|
62
69
|
e.coordinate = Math.ceil(e.coordinate);
|
|
63
|
-
this.
|
|
70
|
+
this.previousLogicalScroll[e.dimension] = this.wrapLogicalCoordinate(e.coordinate, params);
|
|
71
|
+
const physicalCoordinate = this.toPhysicalCoordinate(e.coordinate, params);
|
|
72
|
+
this.previousScroll[e.dimension] = this.wrapPhysicalCoordinate(physicalCoordinate, params);
|
|
64
73
|
this.preventArtificialScroll[e.dimension] = null;
|
|
65
|
-
this.cfg.applyScroll(Object.assign(Object.assign({}, e), { coordinate:
|
|
66
|
-
? this.convert(e.coordinate, params, false)
|
|
67
|
-
: e.coordinate }));
|
|
74
|
+
this.cfg.applyScroll(Object.assign(Object.assign({}, e), { coordinate: physicalCoordinate }));
|
|
68
75
|
}
|
|
69
76
|
catch (id) {
|
|
70
77
|
window.cancelAnimationFrame(id);
|
|
71
78
|
}
|
|
72
79
|
}
|
|
80
|
+
async setScrollByDelta(e, currentPhysicalCoordinate) {
|
|
81
|
+
var _a;
|
|
82
|
+
const params = this.getParams(e.dimension);
|
|
83
|
+
const baseCoordinate = this.previousScroll[e.dimension] === NO_COORDINATE
|
|
84
|
+
? this.toLogicalCoordinate(currentPhysicalCoordinate, params)
|
|
85
|
+
: this.previousLogicalScroll[e.dimension];
|
|
86
|
+
const coordinate = this.wrapLogicalCoordinate(baseCoordinate + ((_a = e.delta) !== null && _a !== void 0 ? _a : 0), params);
|
|
87
|
+
const nextEvent = Object.assign(Object.assign({}, e), { coordinate });
|
|
88
|
+
await this.setScroll(nextEvent);
|
|
89
|
+
return nextEvent;
|
|
90
|
+
}
|
|
73
91
|
/**
|
|
74
92
|
* On scroll event started
|
|
75
93
|
*/
|
|
@@ -82,21 +100,21 @@ class LocalScrollService {
|
|
|
82
100
|
return;
|
|
83
101
|
}
|
|
84
102
|
const param = this.getParams(dimension);
|
|
103
|
+
const logicalCoordinate = this.toLogicalScrollCoordinate(coordinate, dimension, param, delta);
|
|
85
104
|
// let component know about scroll event started
|
|
86
105
|
this.cfg.runScroll({
|
|
87
106
|
dimension: dimension,
|
|
88
|
-
coordinate:
|
|
89
|
-
? this.convert(coordinate, param)
|
|
90
|
-
: coordinate,
|
|
107
|
+
coordinate: logicalCoordinate,
|
|
91
108
|
delta,
|
|
92
109
|
outside,
|
|
93
110
|
});
|
|
111
|
+
this.previousLogicalScroll[dimension] = logicalCoordinate;
|
|
94
112
|
}
|
|
95
113
|
getParams(dimension) {
|
|
96
114
|
return this.params[dimension];
|
|
97
115
|
}
|
|
98
116
|
// check if scroll outside of region to avoid looping
|
|
99
|
-
|
|
117
|
+
wrapPhysicalCoordinate(c, param) {
|
|
100
118
|
if (c < 0) {
|
|
101
119
|
return NO_COORDINATE;
|
|
102
120
|
}
|
|
@@ -105,22 +123,39 @@ class LocalScrollService {
|
|
|
105
123
|
}
|
|
106
124
|
return c;
|
|
107
125
|
}
|
|
126
|
+
wrapLogicalCoordinate(c, param) {
|
|
127
|
+
var _a, _b;
|
|
128
|
+
if (c < 0) {
|
|
129
|
+
return 0;
|
|
130
|
+
}
|
|
131
|
+
return Math.min(c, (_b = (_a = param.scrollDimension) === null || _a === void 0 ? void 0 : _a.logicalScrollSize) !== null && _b !== void 0 ? _b : c);
|
|
132
|
+
}
|
|
108
133
|
// prevent already started scroll, performance optimization
|
|
109
134
|
cancelScroll(dimension) {
|
|
110
135
|
var _a, _b;
|
|
111
136
|
(_b = (_a = this.preventArtificialScroll)[dimension]) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
112
137
|
this.preventArtificialScroll[dimension] = null;
|
|
113
138
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
139
|
+
toLogicalScrollCoordinate(coordinate, dimension, param, delta) {
|
|
140
|
+
const scrollDimension = param.scrollDimension;
|
|
141
|
+
if (!scrollDimension) {
|
|
142
|
+
return coordinate;
|
|
143
|
+
}
|
|
144
|
+
if (typeof delta === 'number' && scrollDimension.isCompressed) {
|
|
145
|
+
const base = this.previousScroll[dimension] === NO_COORDINATE
|
|
146
|
+
? scrollDimension.toLogicalCoordinate(coordinate - delta)
|
|
147
|
+
: this.previousLogicalScroll[dimension];
|
|
148
|
+
return scrollDimension.toLogicalCoordinate(scrollDimension.toPhysicalCoordinate(base + delta));
|
|
122
149
|
}
|
|
123
|
-
return
|
|
150
|
+
return scrollDimension.toLogicalCoordinate(coordinate);
|
|
151
|
+
}
|
|
152
|
+
toPhysicalCoordinate(coordinate, param) {
|
|
153
|
+
var _a, _b;
|
|
154
|
+
return (_b = (_a = param.scrollDimension) === null || _a === void 0 ? void 0 : _a.toPhysicalCoordinate(coordinate)) !== null && _b !== void 0 ? _b : coordinate;
|
|
155
|
+
}
|
|
156
|
+
toLogicalCoordinate(coordinate, param) {
|
|
157
|
+
var _a, _b;
|
|
158
|
+
return (_b = (_a = param.scrollDimension) === null || _a === void 0 ? void 0 : _a.toLogicalCoordinate(coordinate)) !== null && _b !== void 0 ? _b : coordinate;
|
|
124
159
|
}
|
|
125
160
|
}
|
|
126
161
|
|