@revolist/revogrid 4.22.0 → 4.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{cell-renderer-uZmDBXz7.js → cell-renderer-DWJ9Px9f.js} +9 -3
- package/dist/cjs/{column.drag.plugin-CM_5mKV3.js → column.drag.plugin-CaEBDG-Q.js} +409 -267
- package/dist/cjs/{column.service-DvQDqxxx.js → column.service-f612L4ql.js} +1 -1
- package/dist/cjs/{dimension.helpers-CaIsYC99.js → dimension.helpers-B9HgANnM.js} +14 -146
- package/dist/cjs/{edit.utils-CwMzSIVF.js → edit.utils-pKeiYFLJ.js} +22 -1
- package/dist/cjs/{header-cell-renderer-B1dJwgTO.js → header-cell-renderer-4yq9_WbM.js} +1 -1
- package/dist/cjs/index-DxaSE5uZ.js +136 -0
- package/dist/cjs/index.cjs.js +45 -31
- package/dist/cjs/revo-grid.cjs.entry.js +35 -15
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +44 -26
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +11 -9
- package/dist/cjs/revogr-data_4.cjs.entry.js +132 -178
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +2 -1
- package/dist/cjs/{text-editor-BTnGaIl3.js → text-editor-B4W-m-r-.js} +3 -3
- package/dist/cjs/{throttle-CI4MsAqs.js → throttle-BCwEuJJq.js} +59 -24
- package/dist/cjs/viewport.helpers-BND76K2j.js +140 -0
- package/dist/cjs/{viewport.store-Dcjud-a-.js → viewport.store-BlKQ4x9H.js} +16 -16
- package/dist/collection/components/clipboard/revogr-clipboard.js +1 -1
- package/dist/collection/components/data/revogr-data.js +5 -3
- package/dist/collection/components/header/header-group-renderer.js +2 -1
- package/dist/collection/components/header/header-renderer.js +6 -5
- package/dist/collection/components/header/revogr-header-style.css +13 -3
- package/dist/collection/components/header/revogr-header.js +105 -42
- package/dist/collection/components/order/order-row.service.js +6 -5
- package/dist/collection/components/overlay/keyboard.service.js +25 -3
- package/dist/collection/components/overlay/selection.utils.js +8 -6
- package/dist/collection/components/revoGrid/revo-grid.js +6 -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/moveColumn/column.drag.plugin.js +18 -15
- 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 +4 -1
- 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/types/events.js +4 -0
- package/dist/collection/utils/key.utils.js +20 -0
- package/dist/collection/utils/store.utils.js +3 -3
- package/dist/{revo-grid/cell-renderer-K_BKH7Kx.js → esm/cell-renderer-8UiGd-s7.js} +9 -3
- package/dist/esm/{column.drag.plugin-DEqZ2qXJ.js → column.drag.plugin-BsfhsfmB.js} +402 -266
- package/dist/esm/{column.service-Cdz3dYqZ.js → column.service-DbpulTog.js} +1 -1
- package/dist/{revo-grid/debounce-BfO9dz9v.js → esm/debounce-PCRWZliA.js} +1 -1
- package/dist/{revo-grid/dimension.helpers-DzxqJQqN.js → esm/dimension.helpers-CGKwSvw6.js} +7 -128
- package/dist/esm/{edit.utils-CzfeG98N.js → edit.utils-Dnnbd0xG.js} +22 -2
- package/dist/{revo-grid/header-cell-renderer-DXhxZMly.js → esm/header-cell-renderer-DGI2FAD8.js} +1 -1
- package/dist/esm/index-Db3qZoW5.js +127 -0
- package/dist/esm/index.js +15 -10
- package/dist/esm/revo-grid.entry.js +34 -14
- package/dist/esm/revogr-attribution_7.entry.js +43 -25
- package/dist/esm/revogr-clipboard_3.entry.js +12 -10
- package/dist/esm/revogr-data_4.entry.js +133 -179
- package/dist/esm/revogr-filter-panel.entry.js +3 -2
- package/dist/esm/{text-editor-C1ks5eQ4.js → text-editor-C3RUSwH5.js} +2 -2
- package/dist/esm/{throttle-BEjFQa2l.js → throttle-CaUDyxyU.js} +60 -25
- package/dist/esm/viewport.helpers-CoCAvmZs.js +133 -0
- package/dist/{revo-grid/viewport.store-saAZJHRo.js → esm/viewport.store-COAfzAyu.js} +15 -17
- package/dist/{esm/cell-renderer-K_BKH7Kx.js → revo-grid/cell-renderer-8UiGd-s7.js} +9 -3
- package/dist/revo-grid/{column.drag.plugin-DEqZ2qXJ.js → column.drag.plugin-BsfhsfmB.js} +402 -266
- package/dist/revo-grid/{column.service-Cdz3dYqZ.js → column.service-DbpulTog.js} +1 -1
- package/dist/{esm/debounce-BfO9dz9v.js → revo-grid/debounce-PCRWZliA.js} +1 -1
- package/dist/{esm/dimension.helpers-DzxqJQqN.js → revo-grid/dimension.helpers-CGKwSvw6.js} +7 -128
- package/dist/revo-grid/{edit.utils-CzfeG98N.js → edit.utils-Dnnbd0xG.js} +22 -2
- package/dist/{esm/header-cell-renderer-DXhxZMly.js → revo-grid/header-cell-renderer-DGI2FAD8.js} +1 -1
- package/dist/revo-grid/index-Db3qZoW5.js +127 -0
- package/dist/revo-grid/index.esm.js +15 -10
- package/dist/revo-grid/revo-grid.entry.js +34 -14
- package/dist/revo-grid/revogr-attribution_7.entry.js +43 -25
- package/dist/revo-grid/revogr-clipboard_3.entry.js +12 -10
- package/dist/revo-grid/revogr-data_4.entry.js +133 -179
- package/dist/revo-grid/revogr-filter-panel.entry.js +3 -2
- package/dist/revo-grid/{text-editor-C1ks5eQ4.js → text-editor-C3RUSwH5.js} +2 -2
- package/dist/revo-grid/{throttle-BEjFQa2l.js → throttle-CaUDyxyU.js} +60 -25
- package/dist/revo-grid/viewport.helpers-CoCAvmZs.js +133 -0
- package/dist/{esm/viewport.store-saAZJHRo.js → revo-grid/viewport.store-COAfzAyu.js} +15 -17
- package/dist/types/components/header/header-group-renderer.d.ts +1 -0
- package/dist/types/components/header/header-renderer.d.ts +1 -0
- package/dist/types/components/header/revogr-header.d.ts +6 -0
- package/dist/types/components/overlay/keyboard.service.d.ts +5 -0
- package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +8 -0
- package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +29 -3
- 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/store/vp/viewport.helpers.d.ts +2 -0
- package/dist/types/types/events.d.ts +1 -1
- package/dist/types/types/interfaces.d.ts +11 -0
- package/dist/types/utils/key.utils.d.ts +8 -0
- package/hydrate/index.js +791 -539
- package/hydrate/index.mjs +791 -539
- 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-clipboard2.js +1 -1
- package/standalone/revogr-data2.js +1 -1
- package/standalone/revogr-edit.js +1 -1
- package/standalone/revogr-edit2.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
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
6
|
var index = require('./index-Dq8Xzj5l.js');
|
|
7
|
-
var column_service = require('./column.service-
|
|
8
|
-
var dimension_helpers = require('./dimension.helpers-
|
|
9
|
-
var cellRenderer = require('./cell-renderer-
|
|
7
|
+
var column_service = require('./column.service-f612L4ql.js');
|
|
8
|
+
var dimension_helpers = require('./dimension.helpers-B9HgANnM.js');
|
|
9
|
+
var cellRenderer = require('./cell-renderer-DWJ9Px9f.js');
|
|
10
10
|
var filter_button = require('./filter.button-w6LWnyhi.js');
|
|
11
|
-
var headerCellRenderer = require('./header-cell-renderer-
|
|
12
|
-
var throttle = require('./throttle-
|
|
13
|
-
var viewport_helpers = require('./viewport.helpers-
|
|
11
|
+
var headerCellRenderer = require('./header-cell-renderer-4yq9_WbM.js');
|
|
12
|
+
var throttle = require('./throttle-BCwEuJJq.js');
|
|
13
|
+
var viewport_helpers = require('./viewport.helpers-BND76K2j.js');
|
|
14
14
|
require('./debounce-CcpHiH2p.js');
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -170,11 +170,13 @@ const RevogrData = class {
|
|
|
170
170
|
const depth = this.dataStore.get('groupingDepth');
|
|
171
171
|
const groupingCustomRenderer = this.dataStore.get('groupingCustomRenderer');
|
|
172
172
|
const groupDepth = this.columnService.hasGrouping ? depth : 0;
|
|
173
|
+
const rowRenderOffset = this.viewportRow.get('renderOffset') || 0;
|
|
174
|
+
const colRenderOffset = this.viewportCol.get('renderOffset') || 0;
|
|
173
175
|
for (let rgRow of rows) {
|
|
174
176
|
const dataItem = dimension_helpers.getSourceItem(this.dataStore, rgRow.itemIndex);
|
|
175
177
|
// #region Grouping
|
|
176
178
|
if (column_service.isGrouping(dataItem)) {
|
|
177
|
-
const gmodel = Object.assign(Object.assign({}, rgRow), { index: rgRow.itemIndex, model: dataItem, groupingCustomRenderer,
|
|
179
|
+
const gmodel = Object.assign(Object.assign({}, rgRow), { start: rgRow.start - rowRenderOffset, index: rgRow.itemIndex, model: dataItem, groupingCustomRenderer,
|
|
178
180
|
// Only show expand button if grouping is enabled and not in row headers
|
|
179
181
|
hasExpand: this.columnService.hasGrouping && this.colType !== 'rowHeaders', columnItems: cols, providers: this.providers });
|
|
180
182
|
rowsEls.push(index.h(cellRenderer.GroupingRowRenderer, Object.assign({}, gmodel)));
|
|
@@ -197,7 +199,7 @@ const RevogrData = class {
|
|
|
197
199
|
[dimension_helpers.DATA_ROW]: rowProps.itemIndex,
|
|
198
200
|
style: {
|
|
199
201
|
width: `${columnProps.size}px`,
|
|
200
|
-
transform: `translateX(${columnProps.start}px)`,
|
|
202
|
+
transform: `translateX(${columnProps.start - colRenderOffset}px)`,
|
|
201
203
|
height: rowProps.size ? `${rowProps.size}px` : undefined,
|
|
202
204
|
},
|
|
203
205
|
};
|
|
@@ -225,7 +227,7 @@ const RevogrData = class {
|
|
|
225
227
|
if (this.rowHighlightPlugin.isRowFocused(rgRow.itemIndex)) {
|
|
226
228
|
rowClass += ` ${dimension_helpers.ROW_FOCUSED_CLASS}`;
|
|
227
229
|
}
|
|
228
|
-
const row = (index.h(cellRenderer.RowRenderer, { index: rgRow.itemIndex, rowClass: rowClass, size: rgRow.size, start: rgRow.start, groupingLevel: groupDepth || undefined }, cells));
|
|
230
|
+
const row = (index.h(cellRenderer.RowRenderer, { index: rgRow.itemIndex, rowClass: rowClass, size: rgRow.size, start: rgRow.start - rowRenderOffset, groupingLevel: groupDepth || undefined }, cells));
|
|
229
231
|
this.beforerowrender.emit({
|
|
230
232
|
node: row,
|
|
231
233
|
item: rgRow,
|
|
@@ -261,126 +263,8 @@ const RevogrData = class {
|
|
|
261
263
|
};
|
|
262
264
|
RevogrData.style = revogrDataStyleCss();
|
|
263
265
|
|
|
264
|
-
var defineProperty = (function() {
|
|
265
|
-
try {
|
|
266
|
-
var func = dimension_helpers.getNative(Object, 'defineProperty');
|
|
267
|
-
func({}, '', {});
|
|
268
|
-
return func;
|
|
269
|
-
} catch (e) {}
|
|
270
|
-
}());
|
|
271
|
-
|
|
272
|
-
/**
|
|
273
|
-
* The base implementation of `assignValue` and `assignMergeValue` without
|
|
274
|
-
* value checks.
|
|
275
|
-
*
|
|
276
|
-
* @private
|
|
277
|
-
* @param {Object} object The object to modify.
|
|
278
|
-
* @param {string} key The key of the property to assign.
|
|
279
|
-
* @param {*} value The value to assign.
|
|
280
|
-
*/
|
|
281
|
-
function baseAssignValue(object, key, value) {
|
|
282
|
-
if (key == '__proto__' && defineProperty) {
|
|
283
|
-
defineProperty(object, key, {
|
|
284
|
-
'configurable': true,
|
|
285
|
-
'enumerable': true,
|
|
286
|
-
'value': value,
|
|
287
|
-
'writable': true
|
|
288
|
-
});
|
|
289
|
-
} else {
|
|
290
|
-
object[key] = value;
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* A specialized version of `baseAggregator` for arrays.
|
|
296
|
-
*
|
|
297
|
-
* @private
|
|
298
|
-
* @param {Array} [array] The array to iterate over.
|
|
299
|
-
* @param {Function} setter The function to set `accumulator` values.
|
|
300
|
-
* @param {Function} iteratee The iteratee to transform keys.
|
|
301
|
-
* @param {Object} accumulator The initial aggregated object.
|
|
302
|
-
* @returns {Function} Returns `accumulator`.
|
|
303
|
-
*/
|
|
304
|
-
function arrayAggregator(array, setter, iteratee, accumulator) {
|
|
305
|
-
var index = -1,
|
|
306
|
-
length = array == null ? 0 : array.length;
|
|
307
|
-
|
|
308
|
-
while (++index < length) {
|
|
309
|
-
var value = array[index];
|
|
310
|
-
setter(accumulator, value, iteratee(value), array);
|
|
311
|
-
}
|
|
312
|
-
return accumulator;
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
/**
|
|
316
|
-
* Aggregates elements of `collection` on `accumulator` with keys transformed
|
|
317
|
-
* by `iteratee` and values set by `setter`.
|
|
318
|
-
*
|
|
319
|
-
* @private
|
|
320
|
-
* @param {Array|Object} collection The collection to iterate over.
|
|
321
|
-
* @param {Function} setter The function to set `accumulator` values.
|
|
322
|
-
* @param {Function} iteratee The iteratee to transform keys.
|
|
323
|
-
* @param {Object} accumulator The initial aggregated object.
|
|
324
|
-
* @returns {Function} Returns `accumulator`.
|
|
325
|
-
*/
|
|
326
|
-
function baseAggregator(collection, setter, iteratee, accumulator) {
|
|
327
|
-
column_service.baseEach(collection, function(value, key, collection) {
|
|
328
|
-
setter(accumulator, value, iteratee(value), collection);
|
|
329
|
-
});
|
|
330
|
-
return accumulator;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
/**
|
|
334
|
-
* Creates a function like `_.groupBy`.
|
|
335
|
-
*
|
|
336
|
-
* @private
|
|
337
|
-
* @param {Function} setter The function to set accumulator values.
|
|
338
|
-
* @param {Function} [initializer] The accumulator object initializer.
|
|
339
|
-
* @returns {Function} Returns the new aggregator function.
|
|
340
|
-
*/
|
|
341
|
-
function createAggregator(setter, initializer) {
|
|
342
|
-
return function(collection, iteratee) {
|
|
343
|
-
var func = dimension_helpers.isArray(collection) ? arrayAggregator : baseAggregator,
|
|
344
|
-
accumulator = {};
|
|
345
|
-
|
|
346
|
-
return func(collection, setter, dimension_helpers.baseIteratee(iteratee), accumulator);
|
|
347
|
-
};
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
/**
|
|
351
|
-
* Creates an object composed of keys generated from the results of running
|
|
352
|
-
* each element of `collection` thru `iteratee`. The corresponding value of
|
|
353
|
-
* each key is the last element responsible for generating the key. The
|
|
354
|
-
* iteratee is invoked with one argument: (value).
|
|
355
|
-
*
|
|
356
|
-
* @static
|
|
357
|
-
* @memberOf _
|
|
358
|
-
* @since 4.0.0
|
|
359
|
-
* @category Collection
|
|
360
|
-
* @param {Array|Object} collection The collection to iterate over.
|
|
361
|
-
* @param {Function} [iteratee=_.identity] The iteratee to transform keys.
|
|
362
|
-
* @returns {Object} Returns the composed aggregate object.
|
|
363
|
-
* @example
|
|
364
|
-
*
|
|
365
|
-
* var array = [
|
|
366
|
-
* { 'dir': 'left', 'code': 97 },
|
|
367
|
-
* { 'dir': 'right', 'code': 100 }
|
|
368
|
-
* ];
|
|
369
|
-
*
|
|
370
|
-
* _.keyBy(array, function(o) {
|
|
371
|
-
* return String.fromCharCode(o.code);
|
|
372
|
-
* });
|
|
373
|
-
* // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
|
|
374
|
-
*
|
|
375
|
-
* _.keyBy(array, 'dir');
|
|
376
|
-
* // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }
|
|
377
|
-
*/
|
|
378
|
-
var keyBy = createAggregator(function(result, value, key) {
|
|
379
|
-
baseAssignValue(result, key, value);
|
|
380
|
-
});
|
|
381
|
-
|
|
382
266
|
const HeaderRenderer = (p) => {
|
|
383
|
-
var _a, _b, _c, _d, _e;
|
|
267
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
384
268
|
const cellClass = {
|
|
385
269
|
[dimension_helpers.HEADER_CLASS]: true,
|
|
386
270
|
[dimension_helpers.HEADER_SORTABLE_CLASS]: !!((_a = p.data) === null || _a === void 0 ? void 0 : _a.sortable),
|
|
@@ -389,15 +273,16 @@ const HeaderRenderer = (p) => {
|
|
|
389
273
|
cellClass[p.data.order] = true;
|
|
390
274
|
}
|
|
391
275
|
const dataProps = {
|
|
276
|
+
key: String((_d = (_c = p.data) === null || _c === void 0 ? void 0 : _c.prop) !== null && _d !== void 0 ? _d : p.column.itemIndex),
|
|
392
277
|
[dimension_helpers.DATA_COL]: p.column.itemIndex,
|
|
393
278
|
canResize: p.canResize,
|
|
394
|
-
minWidth: ((
|
|
395
|
-
maxWidth: (
|
|
279
|
+
minWidth: ((_e = p.data) === null || _e === void 0 ? void 0 : _e.minSize) || dimension_helpers.MIN_COL_SIZE,
|
|
280
|
+
maxWidth: (_f = p.data) === null || _f === void 0 ? void 0 : _f.maxSize,
|
|
396
281
|
active: p.active || ['r'],
|
|
397
282
|
class: cellClass,
|
|
398
283
|
style: {
|
|
399
284
|
width: `${p.column.size}px`,
|
|
400
|
-
transform: `translateX(${p.column.start}px)`,
|
|
285
|
+
transform: `translateX(${p.column.start - (p.renderOffset || 0)}px)`,
|
|
401
286
|
},
|
|
402
287
|
onResize: p.onResize,
|
|
403
288
|
onDblClick(originalEvent) {
|
|
@@ -428,11 +313,12 @@ const HeaderRenderer = (p) => {
|
|
|
428
313
|
}
|
|
429
314
|
}
|
|
430
315
|
}
|
|
431
|
-
return (index.h(headerCellRenderer.HeaderCellRenderer, { data: p.data, props: dataProps, additionalData: p.additionalData }, index.h(cellRenderer.SortingSign, { column: p.data }), p.canFilter && ((
|
|
316
|
+
return (index.h(headerCellRenderer.HeaderCellRenderer, { data: p.data, props: dataProps, additionalData: p.additionalData }, index.h(cellRenderer.SortingSign, { column: p.data }), p.canFilter && ((_g = p.data) === null || _g === void 0 ? void 0 : _g.filter) !== false ? (index.h(filter_button.FilterButton, { column: p.data })) : ('')));
|
|
432
317
|
};
|
|
433
318
|
|
|
434
319
|
const HeaderGroupRenderer = (p) => {
|
|
435
320
|
const groupProps = {
|
|
321
|
+
key: `${p.group.name}-${p.group.indexes.join('-')}`,
|
|
436
322
|
canResize: p.canResize,
|
|
437
323
|
minWidth: p.group.indexes.length * dimension_helpers.MIN_COL_SIZE,
|
|
438
324
|
maxWidth: 0,
|
|
@@ -441,7 +327,7 @@ const HeaderGroupRenderer = (p) => {
|
|
|
441
327
|
[dimension_helpers.HEADER_CLASS]: true,
|
|
442
328
|
},
|
|
443
329
|
style: {
|
|
444
|
-
transform: `translateX(${p.start}px)`,
|
|
330
|
+
transform: `translateX(${p.start - (p.renderOffset || 0)}px)`,
|
|
445
331
|
width: `${p.end - p.start}px`,
|
|
446
332
|
},
|
|
447
333
|
onResize: p.onResize,
|
|
@@ -449,7 +335,7 @@ const HeaderGroupRenderer = (p) => {
|
|
|
449
335
|
return (index.h(headerCellRenderer.HeaderCellRenderer, { data: Object.assign(Object.assign({}, p.group), { prop: '', providers: p.providers, index: p.start }), props: groupProps, additionalData: p.additionalData }));
|
|
450
336
|
};
|
|
451
337
|
|
|
452
|
-
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}`;
|
|
338
|
+
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}`;
|
|
453
339
|
|
|
454
340
|
const RevogrHeaderComponent = class {
|
|
455
341
|
constructor(hostRef) {
|
|
@@ -482,13 +368,10 @@ const RevogrHeaderComponent = class {
|
|
|
482
368
|
}
|
|
483
369
|
onResizeGroup(changedX, startIndex, endIndex) {
|
|
484
370
|
const sizes = {};
|
|
485
|
-
const cols = keyBy(this.viewportCol.get('items'), 'itemIndex');
|
|
486
371
|
const change = changedX / (endIndex - startIndex + 1);
|
|
487
372
|
for (let i = startIndex; i <= endIndex; i++) {
|
|
488
|
-
const item =
|
|
489
|
-
|
|
490
|
-
sizes[i] = item.size + change;
|
|
491
|
-
}
|
|
373
|
+
const item = dimension_helpers.getItemByIndex(this.dimensionCol.state, i);
|
|
374
|
+
sizes[i] = item.end - item.start + change;
|
|
492
375
|
}
|
|
493
376
|
this.headerresize.emit(sizes);
|
|
494
377
|
}
|
|
@@ -502,12 +385,13 @@ const RevogrHeaderComponent = class {
|
|
|
502
385
|
const { cells } = this.renderHeaderColumns(cols, range);
|
|
503
386
|
const groupRow = this.renderGroupingColumns();
|
|
504
387
|
return [
|
|
505
|
-
index.h("div", { key: '
|
|
506
|
-
index.h("div", { key: '
|
|
388
|
+
index.h("div", { key: '3cc466db6bc4df0cd61c47a22c3a0473318e5dd8', class: "group-rgRow" }, groupRow),
|
|
389
|
+
index.h("div", { key: '9742a3fa4d4b75073aef5544806f42386ebffdea', class: `${dimension_helpers.HEADER_ROW_CLASS} ${dimension_helpers.HEADER_ACTUAL_ROW_CLASS}` }, cells),
|
|
507
390
|
];
|
|
508
391
|
}
|
|
509
392
|
renderHeaderColumns(cols, range) {
|
|
510
|
-
const
|
|
393
|
+
const columnsToRender = [];
|
|
394
|
+
const renderOffset = this.viewportCol.get('renderOffset') || 0;
|
|
511
395
|
for (let rgCol of cols) {
|
|
512
396
|
const colData = this.colData[rgCol.itemIndex];
|
|
513
397
|
const props = {
|
|
@@ -516,6 +400,7 @@ const RevogrHeaderComponent = class {
|
|
|
516
400
|
data: Object.assign(Object.assign({}, colData), { index: rgCol.itemIndex, providers: this.providers }),
|
|
517
401
|
canFilter: !!this.columnFilter,
|
|
518
402
|
canResize: this.canResize,
|
|
403
|
+
renderOffset,
|
|
519
404
|
active: this.resizeHandler,
|
|
520
405
|
additionalData: this.additionalData,
|
|
521
406
|
onResize: e => this.onResize(e, rgCol.itemIndex),
|
|
@@ -524,45 +409,106 @@ const RevogrHeaderComponent = class {
|
|
|
524
409
|
};
|
|
525
410
|
const event = this.beforeHeaderRender.emit(props);
|
|
526
411
|
if (!event.defaultPrevented) {
|
|
527
|
-
|
|
412
|
+
columnsToRender.push(event.detail);
|
|
528
413
|
}
|
|
529
414
|
}
|
|
415
|
+
const duplicateProps = this.getDuplicateHeaderProps(columnsToRender);
|
|
416
|
+
const cells = columnsToRender.map(detail => index.h(HeaderRenderer, Object.assign({ key: this.getHeaderCellKey(detail.data, this.type, duplicateProps) }, detail)));
|
|
530
417
|
return { cells };
|
|
531
418
|
}
|
|
532
419
|
renderGroupingColumns() {
|
|
420
|
+
const visibleGroupRange = this.getVisibleGroupRange();
|
|
421
|
+
return Array.from({ length: this.groupingDepth }, (_, level) => this.renderGroupRow(level, visibleGroupRange)).flat();
|
|
422
|
+
}
|
|
423
|
+
renderGroupRow(level, visibleGroupRange) {
|
|
424
|
+
const groupCells = (this.groups[level] || [])
|
|
425
|
+
.map(group => this.renderGroupColumn(group, level, visibleGroupRange))
|
|
426
|
+
.filter((cell) => !!cell);
|
|
427
|
+
return [
|
|
428
|
+
...groupCells,
|
|
429
|
+
index.h('div', {
|
|
430
|
+
key: `group-row-${level}`,
|
|
431
|
+
class: {
|
|
432
|
+
[dimension_helpers.HEADER_ROW_CLASS]: true,
|
|
433
|
+
group: true,
|
|
434
|
+
},
|
|
435
|
+
}),
|
|
436
|
+
];
|
|
437
|
+
}
|
|
438
|
+
renderGroupColumn(group, level, visibleGroupRange) {
|
|
533
439
|
var _a;
|
|
534
|
-
const
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
440
|
+
const groupStartIndex = (_a = group.indexes[0]) !== null && _a !== void 0 ? _a : -1;
|
|
441
|
+
if (groupStartIndex < 0) {
|
|
442
|
+
return;
|
|
443
|
+
}
|
|
444
|
+
const groupEndIndex = groupStartIndex + group.indexes.length - 1;
|
|
445
|
+
if (!visibleGroupRange ||
|
|
446
|
+
!isGroupInVisibleRange(groupStartIndex, groupEndIndex, visibleGroupRange)) {
|
|
447
|
+
return;
|
|
448
|
+
}
|
|
449
|
+
const groupStart = dimension_helpers.getItemByIndex(this.dimensionCol.state, groupStartIndex).start;
|
|
450
|
+
const groupEnd = dimension_helpers.getItemByIndex(this.dimensionCol.state, groupEndIndex).end;
|
|
451
|
+
const props = {
|
|
452
|
+
providers: this.providers,
|
|
453
|
+
start: groupStart,
|
|
454
|
+
end: groupEnd,
|
|
455
|
+
group,
|
|
456
|
+
renderOffset: this.viewportCol.get('renderOffset') || 0,
|
|
457
|
+
active: this.resizeHandler,
|
|
458
|
+
canResize: this.canResize,
|
|
459
|
+
additionalData: this.additionalData,
|
|
460
|
+
onResize: e => {
|
|
461
|
+
var _a;
|
|
462
|
+
return this.onResizeGroup((_a = e.changedX) !== null && _a !== void 0 ? _a : 0, groupStartIndex, groupEndIndex);
|
|
463
|
+
},
|
|
464
|
+
};
|
|
465
|
+
const event = this.beforeGroupHeaderRender.emit(props);
|
|
466
|
+
if (event.defaultPrevented) {
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
return index.h(HeaderGroupRenderer, Object.assign({ key: this.getGroupHeaderCellKey(event.detail.group, level) }, event.detail));
|
|
470
|
+
}
|
|
471
|
+
getVisibleGroupRange() {
|
|
472
|
+
const visibleColumns = this.viewportCol.get('items');
|
|
473
|
+
if (!visibleColumns.length) {
|
|
474
|
+
return;
|
|
475
|
+
}
|
|
476
|
+
return visibleColumns.reduce((range, column) => ({
|
|
477
|
+
start: Math.min(range.start, column.itemIndex),
|
|
478
|
+
end: Math.max(range.end, column.itemIndex),
|
|
479
|
+
}), {
|
|
480
|
+
start: visibleColumns[0].itemIndex,
|
|
481
|
+
end: visibleColumns[0].itemIndex,
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
getHeaderCellKey(column, type, duplicateProps) {
|
|
485
|
+
if ((column === null || column === void 0 ? void 0 : column.prop) === undefined) {
|
|
486
|
+
return `${type}-${String(column === null || column === void 0 ? void 0 : column.index)}`;
|
|
487
|
+
}
|
|
488
|
+
const propKey = String(column.prop);
|
|
489
|
+
if (duplicateProps.has(propKey)) {
|
|
490
|
+
return `${type}-${propKey}-${String(column.index)}`;
|
|
491
|
+
}
|
|
492
|
+
return `${type}-${propKey}`;
|
|
493
|
+
}
|
|
494
|
+
getDuplicateHeaderProps(columns) {
|
|
495
|
+
const seenProps = new Set();
|
|
496
|
+
const duplicateProps = new Set();
|
|
497
|
+
columns.forEach(({ data }) => {
|
|
498
|
+
if ((data === null || data === void 0 ? void 0 : data.prop) !== undefined) {
|
|
499
|
+
const propKey = String(data.prop);
|
|
500
|
+
if (seenProps.has(propKey)) {
|
|
501
|
+
duplicateProps.add(propKey);
|
|
502
|
+
}
|
|
503
|
+
else {
|
|
504
|
+
seenProps.add(propKey);
|
|
561
505
|
}
|
|
562
506
|
}
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
507
|
+
});
|
|
508
|
+
return duplicateProps;
|
|
509
|
+
}
|
|
510
|
+
getGroupHeaderCellKey(group, level) {
|
|
511
|
+
return `group-${level}-${group.name}-${group.indexes.join('-')}`;
|
|
566
512
|
}
|
|
567
513
|
get providers() {
|
|
568
514
|
return {
|
|
@@ -576,6 +522,10 @@ const RevogrHeaderComponent = class {
|
|
|
576
522
|
}
|
|
577
523
|
get element() { return index.getElement(this); }
|
|
578
524
|
};
|
|
525
|
+
function isGroupInVisibleRange(groupStartIndex, groupEndIndex, visibleRange) {
|
|
526
|
+
return (groupStartIndex <= visibleRange.end &&
|
|
527
|
+
groupEndIndex >= visibleRange.start);
|
|
528
|
+
}
|
|
579
529
|
RevogrHeaderComponent.style = revogrHeaderStyleCss();
|
|
580
530
|
|
|
581
531
|
class GridResizeService {
|
|
@@ -658,7 +608,7 @@ const RevogrViewportScroll = class {
|
|
|
658
608
|
* @param e
|
|
659
609
|
*/
|
|
660
610
|
async changeScroll(e, silent = false) {
|
|
661
|
-
var _a, _b;
|
|
611
|
+
var _a, _b, _c, _d;
|
|
662
612
|
if (silent) {
|
|
663
613
|
if (e.coordinate && this.verticalScroll) {
|
|
664
614
|
switch (e.dimension) {
|
|
@@ -671,15 +621,16 @@ const RevogrViewportScroll = class {
|
|
|
671
621
|
return;
|
|
672
622
|
}
|
|
673
623
|
if (e.delta) {
|
|
624
|
+
let currentPhysicalCoordinate = 0;
|
|
674
625
|
switch (e.dimension) {
|
|
675
626
|
case 'rgCol':
|
|
676
|
-
|
|
627
|
+
currentPhysicalCoordinate = this.horizontalScroll.scrollLeft;
|
|
677
628
|
break;
|
|
678
629
|
case 'rgRow':
|
|
679
|
-
|
|
630
|
+
currentPhysicalCoordinate = (_b = (_a = this.verticalScroll) === null || _a === void 0 ? void 0 : _a.scrollTop) !== null && _b !== void 0 ? _b : 0;
|
|
680
631
|
break;
|
|
681
632
|
}
|
|
682
|
-
this.
|
|
633
|
+
return (_d = (_c = this.localScrollService) === null || _c === void 0 ? void 0 : _c.setScrollByDelta(e, currentPhysicalCoordinate)) !== null && _d !== void 0 ? _d : e;
|
|
683
634
|
}
|
|
684
635
|
return e;
|
|
685
636
|
}
|
|
@@ -831,7 +782,10 @@ const RevogrViewportScroll = class {
|
|
|
831
782
|
this.setScrollVisibility('rgCol', this.horizontalScroll.clientWidth, this.contentWidth);
|
|
832
783
|
}
|
|
833
784
|
render() {
|
|
834
|
-
|
|
785
|
+
var _a, _b, _c, _d;
|
|
786
|
+
const physicalContentHeight = throttle.getContentSize(this.contentHeight, (_b = (_a = this.verticalScroll) === null || _a === void 0 ? void 0 : _a.clientHeight) !== null && _b !== void 0 ? _b : 0);
|
|
787
|
+
const physicalContentWidth = throttle.getContentSize(this.contentWidth, (_d = (_c = this.horizontalScroll) === null || _c === void 0 ? void 0 : _c.clientWidth) !== null && _d !== void 0 ? _d : 0);
|
|
788
|
+
return (index.h(index.Host, { key: 'a0c47dede9d131dea8c8ca449e8a323f24d9b113', onWheel: this.horizontalMouseWheel, onScroll: (e) => this.applyScroll('rgCol', e) }, index.h("div", { key: '6c960e753ffe522ba4afb1c379264873b6c617f3', class: "inner-content-table", style: { width: `${physicalContentWidth}px` } }, index.h("div", { key: '1a6cbcbd3634e84756b54c8150aebd25c824e14a', class: "header-wrapper", ref: e => (this.header = e) }, index.h("slot", { key: 'e4202c687bc39b4f78f3ed9840e979b032f06af8', name: viewport_helpers.HEADER_SLOT })), index.h("div", { key: '651415b5b32e72735065b183317386a34042bb85', class: "vertical-inner", ref: el => (this.verticalScroll = el), onWheel: this.verticalMouseWheel, onScroll: (e) => this.applyScroll('rgRow', e) }, index.h("div", { key: 'e65623b78d80957d8676adb019618953ef267ec3', class: "content-wrapper", style: { height: `${physicalContentHeight}px` } }, index.h("slot", { key: '5af47b12ef1226587cf774233447b5252d65e836', name: viewport_helpers.CONTENT_SLOT }))), index.h("div", { key: 'cbc0fd64fbfb53d3b18e547bbe34e32b7bb9c043', class: "footer-wrapper", ref: e => (this.footer = e) }, index.h("slot", { key: 'a8e4bfaef400973121090bac3069eb85469a95f3', name: viewport_helpers.FOOTER_SLOT })))));
|
|
835
789
|
}
|
|
836
790
|
/**
|
|
837
791
|
* Extra layer for scroll event monitoring, where MouseWheel event is not passing
|
|
@@ -269,7 +269,8 @@ const FilterPanel = class {
|
|
|
269
269
|
const options = [];
|
|
270
270
|
const prop = this.changes.prop;
|
|
271
271
|
const hidden = new Set();
|
|
272
|
-
Object.
|
|
272
|
+
Object.keys(this.filterItems).forEach((prop) => {
|
|
273
|
+
const values = this.filterItems[prop];
|
|
273
274
|
values.forEach((filter) => {
|
|
274
275
|
if (filter.hidden) {
|
|
275
276
|
hidden.add(filter.type);
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var edit_utils = require('./edit.utils-
|
|
7
|
-
var
|
|
6
|
+
var edit_utils = require('./edit.utils-pKeiYFLJ.js');
|
|
7
|
+
var index = require('./index-DxaSE5uZ.js');
|
|
8
8
|
|
|
9
9
|
class TextEditor {
|
|
10
10
|
constructor(data, saveCallback) {
|
|
@@ -20,7 +20,7 @@ class TextEditor {
|
|
|
20
20
|
async componentDidRender() {
|
|
21
21
|
var _a;
|
|
22
22
|
if (this.editInput) {
|
|
23
|
-
await
|
|
23
|
+
await index.timeout();
|
|
24
24
|
(_a = this.editInput) === null || _a === void 0 ? void 0 : _a.focus();
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var viewport_helpers = require('./viewport.helpers-BND76K2j.js');
|
|
7
7
|
var debounce = require('./debounce-CcpHiH2p.js');
|
|
8
8
|
|
|
9
9
|
const initialParams = {
|
|
@@ -18,10 +18,11 @@ const NO_COORDINATE = -1;
|
|
|
18
18
|
* return full size
|
|
19
19
|
*/
|
|
20
20
|
function getContentSize(contentSize, clientSize, virtualSize = 0) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
return viewport_helpers.getScrollDimension({
|
|
22
|
+
contentSize,
|
|
23
|
+
clientSize,
|
|
24
|
+
virtualSize,
|
|
25
|
+
}).physicalContentSize;
|
|
25
26
|
}
|
|
26
27
|
class LocalScrollService {
|
|
27
28
|
constructor(cfg) {
|
|
@@ -35,14 +36,20 @@ class LocalScrollService {
|
|
|
35
36
|
rgRow: NO_COORDINATE,
|
|
36
37
|
rgCol: NO_COORDINATE,
|
|
37
38
|
};
|
|
39
|
+
this.previousLogicalScroll = {
|
|
40
|
+
rgRow: 0,
|
|
41
|
+
rgCol: 0,
|
|
42
|
+
};
|
|
38
43
|
this.params = {
|
|
39
44
|
rgRow: Object.assign({}, initialParams),
|
|
40
45
|
rgCol: Object.assign({}, initialParams),
|
|
41
46
|
};
|
|
42
47
|
}
|
|
43
48
|
setParams(params, dimension) {
|
|
44
|
-
const
|
|
45
|
-
|
|
49
|
+
const scrollDimension = viewport_helpers.getScrollDimension(params);
|
|
50
|
+
const virtualContentSize = scrollDimension.physicalContentSize;
|
|
51
|
+
this.params[dimension] = Object.assign(Object.assign({}, params), { maxSize: virtualContentSize - params.clientSize, virtualContentSize,
|
|
52
|
+
scrollDimension });
|
|
46
53
|
}
|
|
47
54
|
// apply scroll values after scroll done
|
|
48
55
|
async setScroll(e) {
|
|
@@ -62,16 +69,27 @@ class LocalScrollService {
|
|
|
62
69
|
await frameAnimation;
|
|
63
70
|
const params = this.getParams(e.dimension);
|
|
64
71
|
e.coordinate = Math.ceil(e.coordinate);
|
|
65
|
-
this.
|
|
72
|
+
this.previousLogicalScroll[e.dimension] = this.wrapLogicalCoordinate(e.coordinate, params);
|
|
73
|
+
const physicalCoordinate = this.toPhysicalCoordinate(e.coordinate, params);
|
|
74
|
+
this.previousScroll[e.dimension] = this.wrapPhysicalCoordinate(physicalCoordinate, params);
|
|
66
75
|
this.preventArtificialScroll[e.dimension] = null;
|
|
67
|
-
this.cfg.applyScroll(Object.assign(Object.assign({}, e), { coordinate:
|
|
68
|
-
? this.convert(e.coordinate, params, false)
|
|
69
|
-
: e.coordinate }));
|
|
76
|
+
this.cfg.applyScroll(Object.assign(Object.assign({}, e), { coordinate: physicalCoordinate }));
|
|
70
77
|
}
|
|
71
78
|
catch (id) {
|
|
72
79
|
window.cancelAnimationFrame(id);
|
|
73
80
|
}
|
|
74
81
|
}
|
|
82
|
+
async setScrollByDelta(e, currentPhysicalCoordinate) {
|
|
83
|
+
var _a;
|
|
84
|
+
const params = this.getParams(e.dimension);
|
|
85
|
+
const baseCoordinate = this.previousScroll[e.dimension] === NO_COORDINATE
|
|
86
|
+
? this.toLogicalCoordinate(currentPhysicalCoordinate, params)
|
|
87
|
+
: this.previousLogicalScroll[e.dimension];
|
|
88
|
+
const coordinate = this.wrapLogicalCoordinate(baseCoordinate + ((_a = e.delta) !== null && _a !== void 0 ? _a : 0), params);
|
|
89
|
+
const nextEvent = Object.assign(Object.assign({}, e), { coordinate });
|
|
90
|
+
await this.setScroll(nextEvent);
|
|
91
|
+
return nextEvent;
|
|
92
|
+
}
|
|
75
93
|
/**
|
|
76
94
|
* On scroll event started
|
|
77
95
|
*/
|
|
@@ -84,21 +102,21 @@ class LocalScrollService {
|
|
|
84
102
|
return;
|
|
85
103
|
}
|
|
86
104
|
const param = this.getParams(dimension);
|
|
105
|
+
const logicalCoordinate = this.toLogicalScrollCoordinate(coordinate, dimension, param, delta);
|
|
87
106
|
// let component know about scroll event started
|
|
88
107
|
this.cfg.runScroll({
|
|
89
108
|
dimension: dimension,
|
|
90
|
-
coordinate:
|
|
91
|
-
? this.convert(coordinate, param)
|
|
92
|
-
: coordinate,
|
|
109
|
+
coordinate: logicalCoordinate,
|
|
93
110
|
delta,
|
|
94
111
|
outside,
|
|
95
112
|
});
|
|
113
|
+
this.previousLogicalScroll[dimension] = logicalCoordinate;
|
|
96
114
|
}
|
|
97
115
|
getParams(dimension) {
|
|
98
116
|
return this.params[dimension];
|
|
99
117
|
}
|
|
100
118
|
// check if scroll outside of region to avoid looping
|
|
101
|
-
|
|
119
|
+
wrapPhysicalCoordinate(c, param) {
|
|
102
120
|
if (c < 0) {
|
|
103
121
|
return NO_COORDINATE;
|
|
104
122
|
}
|
|
@@ -107,22 +125,39 @@ class LocalScrollService {
|
|
|
107
125
|
}
|
|
108
126
|
return c;
|
|
109
127
|
}
|
|
128
|
+
wrapLogicalCoordinate(c, param) {
|
|
129
|
+
var _a, _b;
|
|
130
|
+
if (c < 0) {
|
|
131
|
+
return 0;
|
|
132
|
+
}
|
|
133
|
+
return Math.min(c, (_b = (_a = param.scrollDimension) === null || _a === void 0 ? void 0 : _a.logicalScrollSize) !== null && _b !== void 0 ? _b : c);
|
|
134
|
+
}
|
|
110
135
|
// prevent already started scroll, performance optimization
|
|
111
136
|
cancelScroll(dimension) {
|
|
112
137
|
var _a, _b;
|
|
113
138
|
(_b = (_a = this.preventArtificialScroll)[dimension]) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
114
139
|
this.preventArtificialScroll[dimension] = null;
|
|
115
140
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
141
|
+
toLogicalScrollCoordinate(coordinate, dimension, param, delta) {
|
|
142
|
+
const scrollDimension = param.scrollDimension;
|
|
143
|
+
if (!scrollDimension) {
|
|
144
|
+
return coordinate;
|
|
145
|
+
}
|
|
146
|
+
if (typeof delta === 'number' && scrollDimension.isCompressed) {
|
|
147
|
+
const base = this.previousScroll[dimension] === NO_COORDINATE
|
|
148
|
+
? scrollDimension.toLogicalCoordinate(coordinate - delta)
|
|
149
|
+
: this.previousLogicalScroll[dimension];
|
|
150
|
+
return scrollDimension.toLogicalCoordinate(scrollDimension.toPhysicalCoordinate(base + delta));
|
|
124
151
|
}
|
|
125
|
-
return
|
|
152
|
+
return scrollDimension.toLogicalCoordinate(coordinate);
|
|
153
|
+
}
|
|
154
|
+
toPhysicalCoordinate(coordinate, param) {
|
|
155
|
+
var _a, _b;
|
|
156
|
+
return (_b = (_a = param.scrollDimension) === null || _a === void 0 ? void 0 : _a.toPhysicalCoordinate(coordinate)) !== null && _b !== void 0 ? _b : coordinate;
|
|
157
|
+
}
|
|
158
|
+
toLogicalCoordinate(coordinate, param) {
|
|
159
|
+
var _a, _b;
|
|
160
|
+
return (_b = (_a = param.scrollDimension) === null || _a === void 0 ? void 0 : _a.toLogicalCoordinate(coordinate)) !== null && _b !== void 0 ? _b : coordinate;
|
|
126
161
|
}
|
|
127
162
|
}
|
|
128
163
|
|