@revolist/revogrid 4.9.3 → 4.9.5
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/{column.service-01f4a6c7.js → column.service-08df359f.js} +3 -3
- package/dist/cjs/{column.service-01f4a6c7.js.map → column.service-08df359f.js.map} +1 -1
- package/dist/cjs/{base.plugin-bf5f43a0.js → column.utils-0f0f4dc4.js} +127 -2
- package/dist/cjs/column.utils-0f0f4dc4.js.map +1 -0
- package/dist/cjs/{dimension.helpers-a6788214.js → dimension.helpers-85294778.js} +1 -2
- package/dist/cjs/dimension.helpers-85294778.js.map +1 -0
- package/dist/cjs/{header-cell-renderer-3bc70679.js → header-cell-renderer-fb2f9a2d.js} +2 -2
- package/dist/cjs/{header-cell-renderer-3bc70679.js.map → header-cell-renderer-fb2f9a2d.js.map} +1 -1
- package/dist/cjs/index.cjs.js +15 -9
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/revo-grid.cjs.entry.js +80 -250
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-attribution_6.cjs.entry.js +8 -7
- package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +3 -3
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +4 -4
- package/dist/cjs/{selection.helpers-1a8c8d49.js → selection.helpers-371a38aa.js} +2 -2
- package/dist/cjs/{selection.helpers-1a8c8d49.js.map → selection.helpers-371a38aa.js.map} +1 -1
- package/dist/cjs/{viewport.store-35a3e7ee.js → viewport.store-300977e4.js} +2 -2
- package/dist/cjs/{viewport.store-35a3e7ee.js.map → viewport.store-300977e4.js.map} +1 -1
- package/dist/collection/components/clipboard/revogr-clipboard.js +2 -2
- package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
- package/dist/collection/components/editors/revogr-edit.js +1 -1
- package/dist/collection/components/overlay/revogr-overlay-selection.js +19 -8
- package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
- package/dist/collection/components/overlay/selection.utils.js.map +1 -1
- package/dist/collection/components/revoGrid/revo-grid.js +12 -11
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/plugins/base.plugin.js.map +1 -1
- package/dist/collection/plugins/column.auto-size.plugin.js +2 -2
- package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -1
- package/dist/collection/plugins/column.stretch.plugin.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js +1 -1
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -1
- package/dist/collection/plugins/sorting/sorting.plugin.js +2 -2
- package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
- package/dist/collection/services/column.data.provider.js +32 -88
- package/dist/collection/services/column.data.provider.js.map +1 -1
- package/dist/collection/services/dimension.provider.js +2 -2
- package/dist/collection/services/dimension.provider.js.map +1 -1
- package/dist/collection/types/interfaces.js.map +1 -1
- package/dist/collection/utils/column.utils.js +124 -0
- package/dist/collection/utils/column.utils.js.map +1 -0
- package/dist/esm/{column.service-5d14e7e9.js → column.service-cfc1149b.js} +3 -3
- package/dist/esm/{column.service-5d14e7e9.js.map → column.service-cfc1149b.js.map} +1 -1
- package/dist/esm/{base.plugin-5e7a3c51.js → column.utils-f6300fb5.js} +122 -3
- package/dist/esm/column.utils-f6300fb5.js.map +1 -0
- package/dist/esm/{dimension.helpers-56298828.js → dimension.helpers-938ea850.js} +2 -2
- package/dist/esm/dimension.helpers-938ea850.js.map +1 -0
- package/dist/esm/{header-cell-renderer-fc999784.js → header-cell-renderer-6f8eb067.js} +2 -2
- package/dist/esm/{header-cell-renderer-fc999784.js.map → header-cell-renderer-6f8eb067.js.map} +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/revo-grid.entry.js +49 -219
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/esm/revogr-attribution_6.entry.js +8 -7
- package/dist/esm/revogr-attribution_6.entry.js.map +1 -1
- package/dist/esm/revogr-clipboard_3.entry.js +3 -3
- package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
- package/dist/esm/revogr-data_4.entry.js +4 -4
- package/dist/esm/{selection.helpers-accaad4a.js → selection.helpers-a49a3d09.js} +2 -2
- package/dist/esm/{selection.helpers-accaad4a.js.map → selection.helpers-a49a3d09.js.map} +1 -1
- package/dist/esm/{viewport.store-d8e03528.js → viewport.store-a690096b.js} +2 -2
- package/dist/esm/{viewport.store-d8e03528.js.map → viewport.store-a690096b.js.map} +1 -1
- package/dist/revo-grid/{column.service-5d14e7e9.js → column.service-cfc1149b.js} +2 -2
- package/dist/revo-grid/column.utils-f6300fb5.js +5 -0
- package/dist/revo-grid/column.utils-f6300fb5.js.map +1 -0
- package/dist/revo-grid/{dimension.helpers-56298828.js → dimension.helpers-938ea850.js} +2 -2
- package/dist/revo-grid/{header-cell-renderer-fc999784.js → header-cell-renderer-6f8eb067.js} +2 -2
- package/dist/revo-grid/index.esm.js +1 -1
- package/dist/revo-grid/revo-grid.entry.js +1 -1
- package/dist/revo-grid/revo-grid.entry.js.map +1 -1
- package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
- package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js +1 -1
- package/dist/revo-grid/{selection.helpers-accaad4a.js → selection.helpers-a49a3d09.js} +2 -2
- package/dist/revo-grid/{viewport.store-d8e03528.js → viewport.store-a690096b.js} +2 -2
- package/dist/types/components/overlay/revogr-overlay-selection.d.ts +6 -2
- package/dist/types/components/overlay/selection.utils.d.ts +2 -1
- package/dist/types/components/revoGrid/revo-grid.d.ts +2 -1
- package/dist/types/components.d.ts +8 -6
- package/dist/types/index.d.ts +1 -0
- package/dist/types/plugins/base.plugin.d.ts +1 -1
- package/dist/types/plugins/column.auto-size.plugin.d.ts +1 -2
- package/dist/types/plugins/column.stretch.plugin.d.ts +2 -4
- package/dist/types/services/column.data.provider.d.ts +2 -13
- package/dist/types/services/dimension.provider.d.ts +0 -1
- package/dist/types/types/interfaces.d.ts +11 -11
- package/dist/types/utils/column.utils.d.ts +46 -0
- package/hydrate/index.js +304 -354
- package/hydrate/index.mjs +304 -354
- package/package.json +1 -1
- package/standalone/column.service.js +1 -1
- package/standalone/data.store.js +1 -1
- package/standalone/data.store.js.map +1 -1
- package/standalone/dimension.helpers.js +1 -1
- package/standalone/index.js +1 -1
- package/standalone/revo-grid.js +165 -216
- package/standalone/revo-grid.js.map +1 -1
- package/standalone/revogr-clipboard2.js +2 -2
- package/standalone/revogr-clipboard2.js.map +1 -1
- package/standalone/revogr-header2.js +1 -1
- package/standalone/revogr-overlay-selection2.js +4 -3
- package/standalone/revogr-overlay-selection2.js.map +1 -1
- package/standalone/selection.utils.js.map +1 -1
- package/dist/cjs/base.plugin-bf5f43a0.js.map +0 -1
- package/dist/cjs/dimension.helpers-a6788214.js.map +0 -1
- package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +0 -43
- package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +0 -1
- package/dist/esm/base.plugin-5e7a3c51.js.map +0 -1
- package/dist/esm/dimension.helpers-56298828.js.map +0 -1
- package/dist/revo-grid/base.plugin-5e7a3c51.js +0 -5
- package/dist/revo-grid/base.plugin-5e7a3c51.js.map +0 -1
- package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +0 -17
- /package/dist/revo-grid/{column.service-5d14e7e9.js.map → column.service-cfc1149b.js.map} +0 -0
- /package/dist/revo-grid/{dimension.helpers-56298828.js.map → dimension.helpers-938ea850.js.map} +0 -0
- /package/dist/revo-grid/{header-cell-renderer-fc999784.js.map → header-cell-renderer-6f8eb067.js.map} +0 -0
- /package/dist/revo-grid/{selection.helpers-accaad4a.js.map → selection.helpers-a49a3d09.js.map} +0 -0
- /package/dist/revo-grid/{viewport.store-d8e03528.js.map → viewport.store-a690096b.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { l as keys_1, k as isArrayLike_1, _ as _baseIteratee, j as isArray_1, x as identity_1 } from './data.store.js';
|
|
5
5
|
import { e as isSymbol_1 } from './toNumber.js';
|
|
6
6
|
|
|
7
7
|
/**
|
package/standalone/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { setMode } from '@stencil/core/internal/client';
|
|
5
5
|
export { getAssetPath, h, setAssetPath, setNonce, setPlatformOptions } from '@stencil/core/internal/client';
|
|
6
6
|
import { T as ThemeService } from './revo-grid.js';
|
|
7
|
-
export { B as BasePlugin, D as DimensionStore, RevoGrid, c as columnTypes, defineCustomElement as defineCustomElementRevoGrid, i as isRowType, r as rowTypes } from './revo-grid.js';
|
|
7
|
+
export { B as BasePlugin, D as DimensionStore, RevoGrid, c as columnTypes, defineCustomElement as defineCustomElementRevoGrid, e as gatherGroup, f as getColumnByProp, a as getColumnSizes, g as getColumnType, d as getColumns, b as isColGrouping, i as isRowType, r as rowTypes } from './revo-grid.js';
|
|
8
8
|
export { d as dispatch, a as dispatchByEvent } from './revogr-header2.js';
|
|
9
9
|
export { D as DataStore, f as gatherTrimmedItems, g as getPhysical, b as getSourceItem, e as getSourceItemVirtualIndexByProp, a as getVisibleSourceItem, p as proxyPlugin, d as setItems, c as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, h as setStore, t as trimmedPlugin } from './data.store.js';
|
|
10
10
|
export { RevogrAttribution, defineCustomElement as defineCustomElementRevogrAttribution } from './revogr-attribution.js';
|
package/standalone/revo-grid.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
4
|
import { h, proxyCustomElement, HTMLElement, createEvent, Host } from '@stencil/core/internal/client';
|
|
5
|
-
import { r as reduce_1, c as calculateDimensionData,
|
|
6
|
-
import { i as createStore, h as setStore,
|
|
5
|
+
import { r as reduce_1, c as calculateDimensionData, e as each, a as getItemByIndex, g as getItemByPosition } from './dimension.helpers.js';
|
|
6
|
+
import { i as createStore, h as setStore, j as isArray_1, _ as _baseIteratee, k as isArrayLike_1, l as keys_1, m as findIndex_1, D as DataStore, b as getSourceItem, e as getSourceItemVirtualIndexByProp, s as setSourceByVirtualIndex, a as getVisibleSourceItem, f as gatherTrimmedItems, n as _baseProperty, o as _baseKeys, q as _getTag, r as range_1, u as toInteger_1, v as _isIterateeCall, g as getPhysical, d as setItems } from './data.store.js';
|
|
7
7
|
import { _ as _baseGetTag, i as isObjectLike_1 } from './toNumber.js';
|
|
8
8
|
import { b as isGrouping, d as getGroupingName, G as GROUP_EXPANDED, e as getParsedGroup, f as isSameGroup, h as GROUP_DEPTH, P as PSEUDO_GROUP_ITEM_VALUE, j as PSEUDO_GROUP_ITEM_ID, k as GROUPING_ROW_TYPE, l as PSEUDO_GROUP_COLUMN, m as GROUP_EXPAND_EVENT, o as gatherGrouping, p as isGroupingColumn, E as EMPTY_INDEX, q as SelectionStoreConnector } from './column.service.js';
|
|
9
9
|
import { d as debounce_1 } from './debounce.js';
|
|
@@ -294,8 +294,127 @@ class BasePlugin {
|
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
296
|
|
|
297
|
-
|
|
298
|
-
|
|
297
|
+
function getColumnType(rgCol) {
|
|
298
|
+
if (rgCol.pin) {
|
|
299
|
+
return rgCol.pin;
|
|
300
|
+
}
|
|
301
|
+
return 'rgCol';
|
|
302
|
+
}
|
|
303
|
+
function getColumnSizes(cols) {
|
|
304
|
+
const res = {};
|
|
305
|
+
for (const [i, c] of cols.entries()) {
|
|
306
|
+
if (c.size) {
|
|
307
|
+
res[i] = c.size;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
return res;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Check if column is grouping column
|
|
314
|
+
*/
|
|
315
|
+
function isColGrouping(colData) {
|
|
316
|
+
return !!colData.children;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* This function is used to create a collection of columns.
|
|
320
|
+
*/
|
|
321
|
+
function getColumns(columns, level = 0, types) {
|
|
322
|
+
const collection = {
|
|
323
|
+
// columns as they are in stores per type
|
|
324
|
+
columns: {
|
|
325
|
+
rgCol: [],
|
|
326
|
+
colPinStart: [],
|
|
327
|
+
colPinEnd: [],
|
|
328
|
+
},
|
|
329
|
+
// columns indexed by prop for quick access
|
|
330
|
+
columnByProp: {},
|
|
331
|
+
// column grouping
|
|
332
|
+
columnGrouping: {
|
|
333
|
+
rgCol: [],
|
|
334
|
+
colPinStart: [],
|
|
335
|
+
colPinEnd: [],
|
|
336
|
+
},
|
|
337
|
+
// max depth level for column grouping
|
|
338
|
+
maxLevel: level,
|
|
339
|
+
// sorting
|
|
340
|
+
sort: {},
|
|
341
|
+
};
|
|
342
|
+
return reduce_1(columns, (res, colData) => {
|
|
343
|
+
// Grouped column
|
|
344
|
+
if (isColGrouping(colData)) {
|
|
345
|
+
return gatherGroup(res, colData, getColumns(colData.children, level + 1, types), level);
|
|
346
|
+
}
|
|
347
|
+
// Regular column
|
|
348
|
+
const regularColumn = Object.assign(Object.assign({}, (colData.columnType && types && types[colData.columnType])), colData);
|
|
349
|
+
// Regular column, no Pin
|
|
350
|
+
if (!regularColumn.pin) {
|
|
351
|
+
res.columns.rgCol.push(regularColumn);
|
|
352
|
+
// Pin
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
res.columns[regularColumn.pin].push(regularColumn);
|
|
356
|
+
}
|
|
357
|
+
if (regularColumn.order) {
|
|
358
|
+
res.sort[regularColumn.prop] = regularColumn;
|
|
359
|
+
}
|
|
360
|
+
// it's possible that some columns have same prop, but better to avoid it
|
|
361
|
+
if (!res.columnByProp[regularColumn.prop]) {
|
|
362
|
+
res.columnByProp[regularColumn.prop] = [];
|
|
363
|
+
}
|
|
364
|
+
res.columnByProp[regularColumn.prop].push(regularColumn);
|
|
365
|
+
// trigger setup hook if present
|
|
366
|
+
regularColumn.beforeSetup && regularColumn.beforeSetup(regularColumn);
|
|
367
|
+
return res;
|
|
368
|
+
}, collection);
|
|
369
|
+
}
|
|
370
|
+
function gatherGroup(res, colData, collection, level = 0) {
|
|
371
|
+
// group template
|
|
372
|
+
const group = Object.assign(Object.assign({}, colData), { level, ids: [] });
|
|
373
|
+
// check columns for update
|
|
374
|
+
for (let k in collection.columns) {
|
|
375
|
+
const key = k;
|
|
376
|
+
const resultItem = res.columns[key];
|
|
377
|
+
const collectionItem = collection.columns[key];
|
|
378
|
+
// if column data
|
|
379
|
+
if (isArray_1(resultItem) && isArray_1(collectionItem)) {
|
|
380
|
+
// fill columns
|
|
381
|
+
resultItem.push(...collectionItem);
|
|
382
|
+
// fill grouping
|
|
383
|
+
if (collectionItem.length) {
|
|
384
|
+
res.columnGrouping[key].push(Object.assign(Object.assign({}, group), { ids: collectionItem.map(item => item.prop) }));
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
// merge column groupings
|
|
389
|
+
for (let k in collection.columnGrouping) {
|
|
390
|
+
const key = k;
|
|
391
|
+
const collectionItem = collection.columnGrouping[key];
|
|
392
|
+
res.columnGrouping[key].push(...collectionItem);
|
|
393
|
+
}
|
|
394
|
+
res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);
|
|
395
|
+
res.sort = Object.assign(Object.assign({}, res.sort), collection.sort);
|
|
396
|
+
return res;
|
|
397
|
+
}
|
|
398
|
+
function findColumn(columns, prop) {
|
|
399
|
+
for (const c of columns) {
|
|
400
|
+
if (isColGrouping(c)) {
|
|
401
|
+
const found = findColumn(c.children, prop);
|
|
402
|
+
if (found) {
|
|
403
|
+
return found;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
else if (c.prop === prop) {
|
|
407
|
+
return c;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
return undefined;
|
|
411
|
+
}
|
|
412
|
+
function getColumnByProp(columns, prop) {
|
|
413
|
+
return findColumn(columns, prop);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
var baseIteratee = _baseIteratee,
|
|
417
|
+
isArrayLike$1 = isArrayLike_1,
|
|
299
418
|
keys = keys_1;
|
|
300
419
|
|
|
301
420
|
/**
|
|
@@ -308,8 +427,8 @@ var baseIteratee$1 = _baseIteratee,
|
|
|
308
427
|
function createFind$1(findIndexFunc) {
|
|
309
428
|
return function(collection, predicate, fromIndex) {
|
|
310
429
|
var iterable = Object(collection);
|
|
311
|
-
if (!isArrayLike$
|
|
312
|
-
var iteratee = baseIteratee
|
|
430
|
+
if (!isArrayLike$1(collection)) {
|
|
431
|
+
var iteratee = baseIteratee(predicate);
|
|
313
432
|
collection = keys(collection);
|
|
314
433
|
predicate = function(key) { return iteratee(iterable[key], key, iterable); };
|
|
315
434
|
}
|
|
@@ -363,133 +482,23 @@ var find = createFind(findIndex);
|
|
|
363
482
|
|
|
364
483
|
var find_1 = find;
|
|
365
484
|
|
|
366
|
-
var baseEach = _baseEach,
|
|
367
|
-
isArrayLike$1 = isArrayLike_1;
|
|
368
|
-
|
|
369
|
-
/**
|
|
370
|
-
* The base implementation of `_.map` without support for iteratee shorthands.
|
|
371
|
-
*
|
|
372
|
-
* @private
|
|
373
|
-
* @param {Array|Object} collection The collection to iterate over.
|
|
374
|
-
* @param {Function} iteratee The function invoked per iteration.
|
|
375
|
-
* @returns {Array} Returns the new mapped array.
|
|
376
|
-
*/
|
|
377
|
-
function baseMap$1(collection, iteratee) {
|
|
378
|
-
var index = -1,
|
|
379
|
-
result = isArrayLike$1(collection) ? Array(collection.length) : [];
|
|
380
|
-
|
|
381
|
-
baseEach(collection, function(value, key, collection) {
|
|
382
|
-
result[++index] = iteratee(value, key, collection);
|
|
383
|
-
});
|
|
384
|
-
return result;
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
var _baseMap = baseMap$1;
|
|
388
|
-
|
|
389
|
-
var arrayMap = _arrayMap,
|
|
390
|
-
baseIteratee = _baseIteratee,
|
|
391
|
-
baseMap = _baseMap,
|
|
392
|
-
isArray$1 = isArray_1;
|
|
393
|
-
|
|
394
|
-
/**
|
|
395
|
-
* Creates an array of values by running each element in `collection` thru
|
|
396
|
-
* `iteratee`. The iteratee is invoked with three arguments:
|
|
397
|
-
* (value, index|key, collection).
|
|
398
|
-
*
|
|
399
|
-
* Many lodash methods are guarded to work as iteratees for methods like
|
|
400
|
-
* `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
|
|
401
|
-
*
|
|
402
|
-
* The guarded methods are:
|
|
403
|
-
* `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
|
|
404
|
-
* `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
|
|
405
|
-
* `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
|
|
406
|
-
* `template`, `trim`, `trimEnd`, `trimStart`, and `words`
|
|
407
|
-
*
|
|
408
|
-
* @static
|
|
409
|
-
* @memberOf _
|
|
410
|
-
* @since 0.1.0
|
|
411
|
-
* @category Collection
|
|
412
|
-
* @param {Array|Object} collection The collection to iterate over.
|
|
413
|
-
* @param {Function} [iteratee=_.identity] The function invoked per iteration.
|
|
414
|
-
* @returns {Array} Returns the new mapped array.
|
|
415
|
-
* @example
|
|
416
|
-
*
|
|
417
|
-
* function square(n) {
|
|
418
|
-
* return n * n;
|
|
419
|
-
* }
|
|
420
|
-
*
|
|
421
|
-
* _.map([4, 8], square);
|
|
422
|
-
* // => [16, 64]
|
|
423
|
-
*
|
|
424
|
-
* _.map({ 'a': 4, 'b': 8 }, square);
|
|
425
|
-
* // => [16, 64] (iteration order is not guaranteed)
|
|
426
|
-
*
|
|
427
|
-
* var users = [
|
|
428
|
-
* { 'user': 'barney' },
|
|
429
|
-
* { 'user': 'fred' }
|
|
430
|
-
* ];
|
|
431
|
-
*
|
|
432
|
-
* // The `_.property` iteratee shorthand.
|
|
433
|
-
* _.map(users, 'user');
|
|
434
|
-
* // => ['barney', 'fred']
|
|
435
|
-
*/
|
|
436
|
-
function map(collection, iteratee) {
|
|
437
|
-
var func = isArray$1(collection) ? arrayMap : baseMap;
|
|
438
|
-
return func(collection, baseIteratee(iteratee));
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
var map_1 = map;
|
|
442
|
-
|
|
443
|
-
class GroupingColumnPlugin extends BasePlugin {
|
|
444
|
-
static gatherGroup(res, colData, collection, level = 0) {
|
|
445
|
-
// group template
|
|
446
|
-
const group = Object.assign(Object.assign({}, colData), { level, ids: [] });
|
|
447
|
-
// check columns for update
|
|
448
|
-
for (let k in collection.columns) {
|
|
449
|
-
const key = k;
|
|
450
|
-
const resultItem = res.columns[key];
|
|
451
|
-
const collectionItem = collection.columns[key];
|
|
452
|
-
// if column data
|
|
453
|
-
if (isArray_1(resultItem) && isArray_1(collectionItem)) {
|
|
454
|
-
// fill columns
|
|
455
|
-
resultItem.push(...collectionItem);
|
|
456
|
-
// fill grouping
|
|
457
|
-
if (collectionItem.length) {
|
|
458
|
-
res.columnGrouping[key].push(Object.assign(Object.assign({}, group), { ids: map_1(collectionItem, 'prop') }));
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
// merge column groupings
|
|
463
|
-
for (let k in collection.columnGrouping) {
|
|
464
|
-
const key = k;
|
|
465
|
-
const collectionItem = collection.columnGrouping[key];
|
|
466
|
-
res.columnGrouping[key].push(...collectionItem);
|
|
467
|
-
}
|
|
468
|
-
res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);
|
|
469
|
-
res.sort = Object.assign(Object.assign({}, res.sort), collection.sort);
|
|
470
|
-
return res;
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
/**
|
|
474
|
-
* Check if column is grouping column
|
|
475
|
-
*/
|
|
476
|
-
function isColGrouping(colData) {
|
|
477
|
-
return !!colData.children;
|
|
478
|
-
}
|
|
479
|
-
|
|
480
485
|
class ColumnDataProvider {
|
|
481
486
|
get order() {
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
487
|
+
const order = {};
|
|
488
|
+
const sorting = this.sorting;
|
|
489
|
+
if (sorting) {
|
|
490
|
+
Object.keys(sorting).forEach((prop) => {
|
|
491
|
+
order[prop] = sorting[prop].order;
|
|
492
|
+
});
|
|
493
|
+
}
|
|
494
|
+
return order;
|
|
486
495
|
}
|
|
487
496
|
get stores() {
|
|
488
497
|
return this.dataSources;
|
|
489
498
|
}
|
|
490
499
|
constructor() {
|
|
491
500
|
this.sorting = null;
|
|
492
|
-
this.dataSources =
|
|
501
|
+
this.dataSources = columnTypes.reduce((sources, k) => {
|
|
493
502
|
sources[k] = new DataStore(k);
|
|
494
503
|
return sources;
|
|
495
504
|
}, {});
|
|
@@ -551,7 +560,7 @@ class ColumnDataProvider {
|
|
|
551
560
|
updateColumns(cols) {
|
|
552
561
|
// collect column by type and propert
|
|
553
562
|
const columnByKey = cols.reduce((res, c) => {
|
|
554
|
-
const type =
|
|
563
|
+
const type = getColumnType(c);
|
|
555
564
|
if (!res[type]) {
|
|
556
565
|
res[type] = {};
|
|
557
566
|
}
|
|
@@ -560,20 +569,32 @@ class ColumnDataProvider {
|
|
|
560
569
|
}, {});
|
|
561
570
|
// find indexes in source
|
|
562
571
|
const colByIndex = {};
|
|
563
|
-
|
|
572
|
+
for (const t in columnByKey) {
|
|
573
|
+
if (!columnByKey.hasOwnProperty(t)) {
|
|
574
|
+
continue;
|
|
575
|
+
}
|
|
576
|
+
const type = t;
|
|
577
|
+
const colsToUpdate = columnByKey[type];
|
|
564
578
|
const items = this.dataSources[type].store.get('source');
|
|
565
|
-
colByIndex[type] =
|
|
579
|
+
colByIndex[type] = {};
|
|
580
|
+
for (let i = 0; i < items.length; i++) {
|
|
581
|
+
const rgCol = items[i];
|
|
566
582
|
const colToUpdateIfExists = colsToUpdate === null || colsToUpdate === void 0 ? void 0 : colsToUpdate[rgCol.prop];
|
|
567
583
|
if (colToUpdateIfExists) {
|
|
568
|
-
|
|
584
|
+
colByIndex[type][i] = colToUpdateIfExists;
|
|
569
585
|
}
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
for (const t in colByIndex) {
|
|
589
|
+
if (!colByIndex.hasOwnProperty(t)) {
|
|
590
|
+
continue;
|
|
591
|
+
}
|
|
592
|
+
const type = t;
|
|
593
|
+
setSourceByVirtualIndex(this.dataSources[type].store, colByIndex[type] || {});
|
|
594
|
+
}
|
|
574
595
|
}
|
|
575
596
|
updateColumn(column, index) {
|
|
576
|
-
const type =
|
|
597
|
+
const type = getColumnType(column);
|
|
577
598
|
setSourceByVirtualIndex(this.dataSources[type].store, { [index]: column });
|
|
578
599
|
}
|
|
579
600
|
updateColumnSorting(column, index, sorting, additive) {
|
|
@@ -590,7 +611,7 @@ class ColumnDataProvider {
|
|
|
590
611
|
}
|
|
591
612
|
clearSorting() {
|
|
592
613
|
const types = reduce_1(this.sorting, (r, c) => {
|
|
593
|
-
const k =
|
|
614
|
+
const k = getColumnType(c);
|
|
594
615
|
r[k] = true;
|
|
595
616
|
return r;
|
|
596
617
|
}, {});
|
|
@@ -601,78 +622,6 @@ class ColumnDataProvider {
|
|
|
601
622
|
});
|
|
602
623
|
this.sorting = {};
|
|
603
624
|
}
|
|
604
|
-
static getSizes(cols) {
|
|
605
|
-
return reduce_1(cols, (res, c, i) => {
|
|
606
|
-
if (c.size) {
|
|
607
|
-
res[i] = c.size;
|
|
608
|
-
}
|
|
609
|
-
return res;
|
|
610
|
-
}, {});
|
|
611
|
-
}
|
|
612
|
-
static getColumnByProp(columns, prop) {
|
|
613
|
-
return find_1(columns, c => {
|
|
614
|
-
if (isColGrouping(c)) {
|
|
615
|
-
return ColumnDataProvider.getColumnByProp(c.children, prop);
|
|
616
|
-
}
|
|
617
|
-
return c.prop === prop;
|
|
618
|
-
});
|
|
619
|
-
}
|
|
620
|
-
// columns processing
|
|
621
|
-
static getColumns(columns, level = 0, types) {
|
|
622
|
-
const collection = {
|
|
623
|
-
// columns as they are in stores per type
|
|
624
|
-
columns: {
|
|
625
|
-
rgCol: [],
|
|
626
|
-
colPinStart: [],
|
|
627
|
-
colPinEnd: [],
|
|
628
|
-
},
|
|
629
|
-
// columns grouped by prop for quick access
|
|
630
|
-
columnByProp: {},
|
|
631
|
-
// column grouping
|
|
632
|
-
columnGrouping: {
|
|
633
|
-
rgCol: [],
|
|
634
|
-
colPinStart: [],
|
|
635
|
-
colPinEnd: [],
|
|
636
|
-
},
|
|
637
|
-
// max depth level for column grouping
|
|
638
|
-
maxLevel: level,
|
|
639
|
-
// sorting
|
|
640
|
-
sort: {},
|
|
641
|
-
};
|
|
642
|
-
return reduce_1(columns, (res, colData) => {
|
|
643
|
-
// Grouped column
|
|
644
|
-
if (isColGrouping(colData)) {
|
|
645
|
-
return GroupingColumnPlugin.gatherGroup(res, colData, ColumnDataProvider.getColumns(colData.children, level + 1, types), level);
|
|
646
|
-
}
|
|
647
|
-
// Regular column
|
|
648
|
-
const regularColumn = Object.assign(Object.assign({}, (colData.columnType && types && types[colData.columnType])), colData);
|
|
649
|
-
// Regular column, no Pin
|
|
650
|
-
if (!regularColumn.pin) {
|
|
651
|
-
res.columns.rgCol.push(regularColumn);
|
|
652
|
-
// Pin
|
|
653
|
-
}
|
|
654
|
-
else {
|
|
655
|
-
res.columns[regularColumn.pin].push(regularColumn);
|
|
656
|
-
}
|
|
657
|
-
if (regularColumn.order) {
|
|
658
|
-
res.sort[regularColumn.prop] = regularColumn;
|
|
659
|
-
}
|
|
660
|
-
// technically it's possible that some columns have same prop, but better to avoid it
|
|
661
|
-
if (!res.columnByProp[regularColumn.prop]) {
|
|
662
|
-
res.columnByProp[regularColumn.prop] = [];
|
|
663
|
-
}
|
|
664
|
-
res.columnByProp[regularColumn.prop].push(regularColumn);
|
|
665
|
-
// trigger setup hook if present
|
|
666
|
-
regularColumn.beforeSetup && regularColumn.beforeSetup(regularColumn);
|
|
667
|
-
return res;
|
|
668
|
-
}, collection);
|
|
669
|
-
}
|
|
670
|
-
static getColumnType(rgCol) {
|
|
671
|
-
if (rgCol.pin) {
|
|
672
|
-
return rgCol.pin;
|
|
673
|
-
}
|
|
674
|
-
return 'rgCol';
|
|
675
|
-
}
|
|
676
625
|
}
|
|
677
626
|
|
|
678
627
|
/**
|
|
@@ -823,7 +772,7 @@ class DimensionProvider {
|
|
|
823
772
|
// setItemCount
|
|
824
773
|
this.stores[type].setStore({ count: items.length });
|
|
825
774
|
// setCustomSizes
|
|
826
|
-
const newSizes =
|
|
775
|
+
const newSizes = getColumnSizes(items);
|
|
827
776
|
this.stores[type].setDimensionSize(newSizes);
|
|
828
777
|
const vpUpdate = {
|
|
829
778
|
// this triggers drop on realCount change
|
|
@@ -938,7 +887,7 @@ class AutoSizeColumnPlugin extends BasePlugin {
|
|
|
938
887
|
this.columnSet(columns);
|
|
939
888
|
};
|
|
940
889
|
const headerDblClick = ({ detail }) => {
|
|
941
|
-
const type =
|
|
890
|
+
const type = getColumnType(detail.column);
|
|
942
891
|
const size = this.getColumnSize(detail.index, type);
|
|
943
892
|
if (size) {
|
|
944
893
|
this.providers.dimension.setCustomSizes(type, {
|
|
@@ -1761,7 +1710,7 @@ class SortingPlugin extends BasePlugin {
|
|
|
1761
1710
|
const columns = (await this.revogrid.getColumns());
|
|
1762
1711
|
const sortingFunc = {};
|
|
1763
1712
|
for (let prop in order) {
|
|
1764
|
-
const cmp = this.getComparer(
|
|
1713
|
+
const cmp = this.getComparer(getColumnByProp(columns, prop), order[prop]);
|
|
1765
1714
|
sortingFunc[prop] = cmp;
|
|
1766
1715
|
}
|
|
1767
1716
|
this.runSorting(order, sortingFunc);
|
|
@@ -3550,7 +3499,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
|
|
|
3550
3499
|
/** Open editor for cell. */
|
|
3551
3500
|
async setCellEdit(rgRow, prop, rowSource = 'rgRow') {
|
|
3552
3501
|
var _a;
|
|
3553
|
-
const rgCol =
|
|
3502
|
+
const rgCol = getColumnByProp(this.columns, prop);
|
|
3554
3503
|
if (!rgCol) {
|
|
3555
3504
|
return;
|
|
3556
3505
|
}
|
|
@@ -3774,7 +3723,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
|
|
|
3774
3723
|
this.columnChanged(this.columns);
|
|
3775
3724
|
}
|
|
3776
3725
|
columnChanged(newVal = []) {
|
|
3777
|
-
const columnGather =
|
|
3726
|
+
const columnGather = getColumns(newVal, 0, this.columnTypes);
|
|
3778
3727
|
this.beforecolumnsset.emit(columnGather);
|
|
3779
3728
|
this.dimensionProvider.applyNewColumns(columnGather.columns, this.disableVirtualX);
|
|
3780
3729
|
this.beforecolumnapplied.emit(columnGather);
|
|
@@ -4084,7 +4033,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
|
|
|
4084
4033
|
const headerProperties = Object.assign(Object.assign({}, view.headerProp), { type: view.type, additionalData: this.additionalData, viewportCol: view.viewportCol, selectionStore: view.columnSelectionStore, canResize: this.resize, readonly: this.readonly, columnFilter: !!this.filter });
|
|
4085
4034
|
// Column headers
|
|
4086
4035
|
const dataViews = [
|
|
4087
|
-
h("revogr-header", Object.assign({ key: '
|
|
4036
|
+
h("revogr-header", Object.assign({ key: 'bada77126c317da09a9826312186c16617c7b0af' }, headerProperties, { slot: HEADER_SLOT })),
|
|
4088
4037
|
];
|
|
4089
4038
|
// Render viewport data (vertical sections)
|
|
4090
4039
|
view.dataPorts.forEach(data => {
|
|
@@ -4106,12 +4055,12 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
|
|
|
4106
4055
|
const typeCol = 'rgCol';
|
|
4107
4056
|
const viewports = this.viewportProvider.stores;
|
|
4108
4057
|
const dimensions = this.dimensionProvider.stores;
|
|
4109
|
-
return (h(Host, { key: '
|
|
4058
|
+
return (h(Host, { key: '9b95aef4de8af770036a733986e7e0fe2dd3ffda' }, this.hideAttribution ? null : (h("revogr-attribution", { class: "attribution" })), h("div", { key: '68dbc0fca826a0089402157d301c49a0776e9007', class: "main-viewport", onClick: (e) => {
|
|
4110
4059
|
var _a;
|
|
4111
4060
|
if (e.currentTarget === e.target) {
|
|
4112
4061
|
(_a = this.viewport) === null || _a === void 0 ? void 0 : _a.clearEdit();
|
|
4113
4062
|
}
|
|
4114
|
-
} }, h("div", { key: '
|
|
4063
|
+
} }, h("div", { key: '6f927e04dd8c7e542a87fdc0a4f6d74248c65ccb', class: "viewports" }, h("slot", { key: 'b6d421fa412b34ce9821cd1fa30a80ae37282f37', name: "viewport" }), viewportSections, h("revogr-scroll-virtual", { key: '4ce3045201685f6c6c617c84fddc5a3d531034bd', class: "vertical", dimension: typeRow, viewportStore: viewports[typeRow].store, dimensionStore: dimensions[typeRow].store, ref: el => this.scrollingService.registerElement(el, 'rowScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), h(OrderRenderer, { key: 'e5bd92c37bdc31f0601a4d4cf4a62026e0e25406', ref: e => (this.orderService = e) }))), h("revogr-scroll-virtual", { key: 'dbda0fb90cf6a9eb6ac66ca16bcff30cf254b1e1', class: "horizontal", dimension: typeCol, viewportStore: viewports[typeCol].store, dimensionStore: dimensions[typeCol].store, ref: el => this.scrollingService.registerElement(el, 'colScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), this.extraElements));
|
|
4115
4064
|
}
|
|
4116
4065
|
disconnectedCallback() {
|
|
4117
4066
|
// Remove all plugins, to avoid memory leaks and unexpected behaviour when the component is removed
|
|
@@ -4296,6 +4245,6 @@ function defineCustomElement$1() {
|
|
|
4296
4245
|
const RevoGrid = RevoGridComponent;
|
|
4297
4246
|
const defineCustomElement = defineCustomElement$1;
|
|
4298
4247
|
|
|
4299
|
-
export { BasePlugin as B, DimensionStore as D, RevoGrid, ThemeService as T, columnTypes as c, defineCustomElement, isRowType as i, rowTypes as r };
|
|
4248
|
+
export { BasePlugin as B, DimensionStore as D, RevoGrid, ThemeService as T, getColumnSizes as a, isColGrouping as b, columnTypes as c, getColumns as d, defineCustomElement, gatherGroup as e, getColumnByProp as f, getColumnType as g, isRowType as i, rowTypes as r };
|
|
4300
4249
|
|
|
4301
4250
|
//# sourceMappingURL=revo-grid.js.map
|