@revolist/revogrid 4.9.4 → 4.9.6
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-0615a373.js} +11 -12
- package/dist/cjs/column.service-0615a373.js.map +1 -0
- package/dist/cjs/{base.plugin-bf5f43a0.js → column.utils-694677fa.js} +136 -11
- package/dist/cjs/column.utils-694677fa.js.map +1 -0
- package/dist/cjs/edit.utils-2e1f4278.js +20 -0
- package/dist/cjs/edit.utils-2e1f4278.js.map +1 -0
- package/dist/cjs/{events-b28cc194.js → events-af8f6914.js} +1 -8
- package/dist/cjs/events-af8f6914.js.map +1 -0
- package/dist/cjs/{header-cell-renderer-3bc70679.js → header-cell-renderer-360528aa.js} +2 -2
- package/dist/cjs/{header-cell-renderer-3bc70679.js.map → header-cell-renderer-360528aa.js.map} +1 -1
- package/dist/cjs/{dimension.helpers-a6788214.js → index-2991afbb.js} +262 -4
- package/dist/cjs/index-2991afbb.js.map +1 -0
- package/dist/cjs/index.cjs.js +97 -35
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/key.utils-b84b0eba.js +111 -0
- package/dist/cjs/key.utils-b84b0eba.js.map +1 -0
- package/dist/cjs/revo-grid.cjs.entry.js +140 -311
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-attribution_6.cjs.entry.js +37 -37
- package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +10 -10
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +13 -14
- package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
- package/dist/cjs/{viewport.store-35a3e7ee.js → row-header-utils-b5266b12.js} +13 -6
- package/dist/cjs/row-header-utils-b5266b12.js.map +1 -0
- package/dist/cjs/{selection.helpers-1a8c8d49.js → selection.helpers-4374518f.js} +13 -13
- package/dist/cjs/selection.helpers-4374518f.js.map +1 -0
- package/dist/cjs/{throttle-52be9e67.js → throttle-8885fd65.js} +2 -2
- package/dist/cjs/{throttle-52be9e67.js.map → throttle-8885fd65.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/header/revogr-header.js +1 -1
- package/dist/collection/components/overlay/revogr-overlay-selection.js +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 -1
- 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/collection/utils/index.js +7 -0
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/esm/{column.service-5d14e7e9.js → column.service-af0694c5.js} +3 -4
- package/dist/esm/column.service-af0694c5.js.map +1 -0
- package/dist/esm/{base.plugin-5e7a3c51.js → column.utils-78dd3ef2.js} +122 -3
- package/dist/esm/column.utils-78dd3ef2.js.map +1 -0
- package/dist/esm/edit.utils-ca303802.js +17 -0
- package/dist/esm/edit.utils-ca303802.js.map +1 -0
- package/dist/esm/{events-77b43b40.js → events-cf0893a3.js} +2 -8
- package/dist/esm/events-cf0893a3.js.map +1 -0
- package/dist/esm/{header-cell-renderer-fc999784.js → header-cell-renderer-261317c3.js} +2 -2
- package/dist/esm/{header-cell-renderer-fc999784.js.map → header-cell-renderer-261317c3.js.map} +1 -1
- package/dist/esm/{dimension.helpers-56298828.js → index-f65def08.js} +231 -4
- package/dist/esm/index-f65def08.js.map +1 -0
- package/dist/esm/index.js +5 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/key.utils-4b0093d5.js +98 -0
- package/dist/esm/key.utils-4b0093d5.js.map +1 -0
- package/dist/esm/revo-grid.entry.js +50 -221
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/esm/revogr-attribution_6.entry.js +8 -8
- package/dist/esm/revogr-clipboard_3.entry.js +5 -5
- package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
- package/dist/esm/revogr-data_4.entry.js +5 -6
- package/dist/esm/revogr-data_4.entry.js.map +1 -1
- package/dist/esm/{viewport.store-d8e03528.js → row-header-utils-6081260c.js} +9 -3
- package/dist/esm/row-header-utils-6081260c.js.map +1 -0
- package/dist/esm/{selection.helpers-accaad4a.js → selection.helpers-d92697e1.js} +2 -2
- package/dist/esm/{selection.helpers-accaad4a.js.map → selection.helpers-d92697e1.js.map} +1 -1
- package/dist/esm/{throttle-7283692c.js → throttle-041ded8e.js} +2 -2
- package/dist/esm/{throttle-7283692c.js.map → throttle-041ded8e.js.map} +1 -1
- package/dist/revo-grid/column.service-af0694c5.js +5 -0
- package/dist/revo-grid/{column.service-5d14e7e9.js.map → column.service-af0694c5.js.map} +1 -1
- package/dist/revo-grid/column.utils-78dd3ef2.js +5 -0
- package/dist/revo-grid/column.utils-78dd3ef2.js.map +1 -0
- package/dist/revo-grid/edit.utils-ca303802.js +5 -0
- package/dist/revo-grid/edit.utils-ca303802.js.map +1 -0
- package/dist/revo-grid/events-cf0893a3.js +5 -0
- package/dist/revo-grid/events-cf0893a3.js.map +1 -0
- package/dist/revo-grid/{header-cell-renderer-fc999784.js → header-cell-renderer-261317c3.js} +2 -2
- package/dist/revo-grid/index-f65def08.js +5 -0
- package/dist/revo-grid/index-f65def08.js.map +1 -0
- package/dist/revo-grid/index.esm.js +1 -1
- package/dist/revo-grid/key.utils-4b0093d5.js +5 -0
- package/dist/revo-grid/key.utils-4b0093d5.js.map +1 -0
- 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-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/revogr-data_4.entry.js.map +1 -1
- package/dist/revo-grid/row-header-utils-6081260c.js +5 -0
- package/dist/revo-grid/row-header-utils-6081260c.js.map +1 -0
- package/dist/revo-grid/selection.helpers-d92697e1.js +5 -0
- package/dist/revo-grid/{selection.helpers-accaad4a.js.map → selection.helpers-d92697e1.js.map} +1 -1
- package/dist/revo-grid/{throttle-7283692c.js → throttle-041ded8e.js} +2 -2
- package/dist/types/components/revoGrid/revo-grid.d.ts +2 -1
- package/dist/types/components.d.ts +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/plugins/base.plugin.d.ts +1 -1
- package/dist/types/plugins/column.auto-size.plugin.d.ts +2 -4
- 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/dist/types/utils/index.d.ts +7 -0
- package/hydrate/index.js +304 -357
- package/hydrate/index.mjs +304 -357
- package/package.json +2 -2
- package/standalone/_stringToPath.js +1389 -0
- package/standalone/_stringToPath.js.map +1 -0
- package/standalone/column.service.js +4 -3
- package/standalone/column.service.js.map +1 -1
- package/standalone/consts.js +1 -1
- package/standalone/data.store.js +31 -1410
- package/standalone/data.store.js.map +1 -1
- package/standalone/debounce.js +2 -1
- package/standalone/debounce.js.map +1 -1
- package/standalone/dimension.helpers.js +2 -2
- package/standalone/index.js +6 -3
- package/standalone/index.js.map +1 -1
- package/standalone/index2.js +160 -1
- package/standalone/index2.js.map +1 -1
- package/standalone/isObjectLike.js +195 -0
- package/standalone/isObjectLike.js.map +1 -0
- package/standalone/revo-grid.js +168 -218
- 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-data2.js +3 -2
- package/standalone/revogr-data2.js.map +1 -1
- package/standalone/revogr-edit.js +1 -1
- package/standalone/revogr-edit2.js +57 -83
- package/standalone/revogr-edit2.js.map +1 -1
- package/standalone/revogr-focus2.js +2 -1
- package/standalone/revogr-focus2.js.map +1 -1
- package/standalone/revogr-header2.js +4 -3
- package/standalone/revogr-header2.js.map +1 -1
- package/standalone/revogr-order-editor2.js +3 -2
- package/standalone/revogr-order-editor2.js.map +1 -1
- package/standalone/revogr-overlay-selection2.js +5 -5
- package/standalone/revogr-row-headers2.js +3 -2
- package/standalone/revogr-row-headers2.js.map +1 -1
- package/standalone/selection.utils.js +2 -1
- package/standalone/selection.utils.js.map +1 -1
- package/standalone/throttle.js +1 -1
- package/standalone/toNumber.js +2 -189
- package/standalone/toNumber.js.map +1 -1
- package/dist/cjs/base.plugin-bf5f43a0.js.map +0 -1
- package/dist/cjs/column.service-01f4a6c7.js.map +0 -1
- package/dist/cjs/dimension.helpers-a6788214.js.map +0 -1
- package/dist/cjs/events-b28cc194.js.map +0 -1
- package/dist/cjs/index-2410bbd9.js +0 -103
- package/dist/cjs/index-2410bbd9.js.map +0 -1
- package/dist/cjs/key.utils-1e48ab8f.js +0 -144
- package/dist/cjs/key.utils-1e48ab8f.js.map +0 -1
- package/dist/cjs/selection.helpers-1a8c8d49.js.map +0 -1
- package/dist/cjs/viewport.store-35a3e7ee.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/column.service-5d14e7e9.js.map +0 -1
- package/dist/esm/dimension.helpers-56298828.js.map +0 -1
- package/dist/esm/events-77b43b40.js.map +0 -1
- package/dist/esm/index-4e881436.js +0 -77
- package/dist/esm/index-4e881436.js.map +0 -1
- package/dist/esm/key.utils-425c987d.js +0 -133
- package/dist/esm/key.utils-425c987d.js.map +0 -1
- package/dist/esm/viewport.store-d8e03528.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/revo-grid/column.service-5d14e7e9.js +0 -5
- package/dist/revo-grid/dimension.helpers-56298828.js +0 -5
- package/dist/revo-grid/dimension.helpers-56298828.js.map +0 -1
- package/dist/revo-grid/events-77b43b40.js +0 -5
- package/dist/revo-grid/events-77b43b40.js.map +0 -1
- package/dist/revo-grid/index-4e881436.js +0 -5
- package/dist/revo-grid/index-4e881436.js.map +0 -1
- package/dist/revo-grid/key.utils-425c987d.js +0 -5
- package/dist/revo-grid/key.utils-425c987d.js.map +0 -1
- package/dist/revo-grid/selection.helpers-accaad4a.js +0 -5
- package/dist/revo-grid/viewport.store-d8e03528.js +0 -5
- package/dist/revo-grid/viewport.store-d8e03528.js.map +0 -1
- package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +0 -17
- /package/dist/revo-grid/{header-cell-renderer-fc999784.js.map → header-cell-renderer-261317c3.js.map} +0 -0
- /package/dist/revo-grid/{throttle-7283692c.js.map → throttle-041ded8e.js.map} +0 -0
package/standalone/revo-grid.js
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
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,
|
|
7
|
-
import { _ as
|
|
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, r as range_1, q as toInteger_1, u as _isIterateeCall, g as getPhysical, d as setItems } from './data.store.js';
|
|
7
|
+
import { _ as _getTag } from './_stringToPath.js';
|
|
8
|
+
import { _ as _baseGetTag, i as isObjectLike_1 } from './isObjectLike.js';
|
|
8
9
|
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
10
|
import { d as debounce_1 } from './debounce.js';
|
|
10
11
|
import { R as RESIZE_INTERVAL } from './consts.js';
|
|
@@ -17,7 +18,7 @@ import { g as getPropertyFromEvent } from './selection.utils.js';
|
|
|
17
18
|
import { d as defineCustomElement$e } from './revogr-attribution2.js';
|
|
18
19
|
import { d as defineCustomElement$d } from './revogr-clipboard2.js';
|
|
19
20
|
import { d as defineCustomElement$c } from './revogr-data2.js';
|
|
20
|
-
import {
|
|
21
|
+
import { m as defineCustomElement$b } from './revogr-edit2.js';
|
|
21
22
|
import { d as defineCustomElement$a } from './revogr-focus2.js';
|
|
22
23
|
import { d as defineCustomElement$8 } from './revogr-order-editor2.js';
|
|
23
24
|
import { d as defineCustomElement$7 } from './revogr-overlay-selection2.js';
|
|
@@ -294,8 +295,127 @@ class BasePlugin {
|
|
|
294
295
|
}
|
|
295
296
|
}
|
|
296
297
|
|
|
297
|
-
|
|
298
|
-
|
|
298
|
+
function getColumnType(rgCol) {
|
|
299
|
+
if (rgCol.pin) {
|
|
300
|
+
return rgCol.pin;
|
|
301
|
+
}
|
|
302
|
+
return 'rgCol';
|
|
303
|
+
}
|
|
304
|
+
function getColumnSizes(cols) {
|
|
305
|
+
const res = {};
|
|
306
|
+
for (const [i, c] of cols.entries()) {
|
|
307
|
+
if (c.size) {
|
|
308
|
+
res[i] = c.size;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
return res;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Check if column is grouping column
|
|
315
|
+
*/
|
|
316
|
+
function isColGrouping(colData) {
|
|
317
|
+
return !!colData.children;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* This function is used to create a collection of columns.
|
|
321
|
+
*/
|
|
322
|
+
function getColumns(columns, level = 0, types) {
|
|
323
|
+
const collection = {
|
|
324
|
+
// columns as they are in stores per type
|
|
325
|
+
columns: {
|
|
326
|
+
rgCol: [],
|
|
327
|
+
colPinStart: [],
|
|
328
|
+
colPinEnd: [],
|
|
329
|
+
},
|
|
330
|
+
// columns indexed by prop for quick access
|
|
331
|
+
columnByProp: {},
|
|
332
|
+
// column grouping
|
|
333
|
+
columnGrouping: {
|
|
334
|
+
rgCol: [],
|
|
335
|
+
colPinStart: [],
|
|
336
|
+
colPinEnd: [],
|
|
337
|
+
},
|
|
338
|
+
// max depth level for column grouping
|
|
339
|
+
maxLevel: level,
|
|
340
|
+
// sorting
|
|
341
|
+
sort: {},
|
|
342
|
+
};
|
|
343
|
+
return reduce_1(columns, (res, colData) => {
|
|
344
|
+
// Grouped column
|
|
345
|
+
if (isColGrouping(colData)) {
|
|
346
|
+
return gatherGroup(res, colData, getColumns(colData.children, level + 1, types), level);
|
|
347
|
+
}
|
|
348
|
+
// Regular column
|
|
349
|
+
const regularColumn = Object.assign(Object.assign({}, (colData.columnType && types && types[colData.columnType])), colData);
|
|
350
|
+
// Regular column, no Pin
|
|
351
|
+
if (!regularColumn.pin) {
|
|
352
|
+
res.columns.rgCol.push(regularColumn);
|
|
353
|
+
// Pin
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
res.columns[regularColumn.pin].push(regularColumn);
|
|
357
|
+
}
|
|
358
|
+
if (regularColumn.order) {
|
|
359
|
+
res.sort[regularColumn.prop] = regularColumn;
|
|
360
|
+
}
|
|
361
|
+
// it's possible that some columns have same prop, but better to avoid it
|
|
362
|
+
if (!res.columnByProp[regularColumn.prop]) {
|
|
363
|
+
res.columnByProp[regularColumn.prop] = [];
|
|
364
|
+
}
|
|
365
|
+
res.columnByProp[regularColumn.prop].push(regularColumn);
|
|
366
|
+
// trigger setup hook if present
|
|
367
|
+
regularColumn.beforeSetup && regularColumn.beforeSetup(regularColumn);
|
|
368
|
+
return res;
|
|
369
|
+
}, collection);
|
|
370
|
+
}
|
|
371
|
+
function gatherGroup(res, colData, collection, level = 0) {
|
|
372
|
+
// group template
|
|
373
|
+
const group = Object.assign(Object.assign({}, colData), { level, ids: [] });
|
|
374
|
+
// check columns for update
|
|
375
|
+
for (let k in collection.columns) {
|
|
376
|
+
const key = k;
|
|
377
|
+
const resultItem = res.columns[key];
|
|
378
|
+
const collectionItem = collection.columns[key];
|
|
379
|
+
// if column data
|
|
380
|
+
if (isArray_1(resultItem) && isArray_1(collectionItem)) {
|
|
381
|
+
// fill columns
|
|
382
|
+
resultItem.push(...collectionItem);
|
|
383
|
+
// fill grouping
|
|
384
|
+
if (collectionItem.length) {
|
|
385
|
+
res.columnGrouping[key].push(Object.assign(Object.assign({}, group), { ids: collectionItem.map(item => item.prop) }));
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
// merge column groupings
|
|
390
|
+
for (let k in collection.columnGrouping) {
|
|
391
|
+
const key = k;
|
|
392
|
+
const collectionItem = collection.columnGrouping[key];
|
|
393
|
+
res.columnGrouping[key].push(...collectionItem);
|
|
394
|
+
}
|
|
395
|
+
res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);
|
|
396
|
+
res.sort = Object.assign(Object.assign({}, res.sort), collection.sort);
|
|
397
|
+
return res;
|
|
398
|
+
}
|
|
399
|
+
function findColumn(columns, prop) {
|
|
400
|
+
for (const c of columns) {
|
|
401
|
+
if (isColGrouping(c)) {
|
|
402
|
+
const found = findColumn(c.children, prop);
|
|
403
|
+
if (found) {
|
|
404
|
+
return found;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
else if (c.prop === prop) {
|
|
408
|
+
return c;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
return undefined;
|
|
412
|
+
}
|
|
413
|
+
function getColumnByProp(columns, prop) {
|
|
414
|
+
return findColumn(columns, prop);
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
var baseIteratee = _baseIteratee,
|
|
418
|
+
isArrayLike$1 = isArrayLike_1,
|
|
299
419
|
keys = keys_1;
|
|
300
420
|
|
|
301
421
|
/**
|
|
@@ -308,8 +428,8 @@ var baseIteratee$1 = _baseIteratee,
|
|
|
308
428
|
function createFind$1(findIndexFunc) {
|
|
309
429
|
return function(collection, predicate, fromIndex) {
|
|
310
430
|
var iterable = Object(collection);
|
|
311
|
-
if (!isArrayLike$
|
|
312
|
-
var iteratee = baseIteratee
|
|
431
|
+
if (!isArrayLike$1(collection)) {
|
|
432
|
+
var iteratee = baseIteratee(predicate);
|
|
313
433
|
collection = keys(collection);
|
|
314
434
|
predicate = function(key) { return iteratee(iterable[key], key, iterable); };
|
|
315
435
|
}
|
|
@@ -363,133 +483,23 @@ var find = createFind(findIndex);
|
|
|
363
483
|
|
|
364
484
|
var find_1 = find;
|
|
365
485
|
|
|
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
486
|
class ColumnDataProvider {
|
|
481
487
|
get order() {
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
488
|
+
const order = {};
|
|
489
|
+
const sorting = this.sorting;
|
|
490
|
+
if (sorting) {
|
|
491
|
+
Object.keys(sorting).forEach((prop) => {
|
|
492
|
+
order[prop] = sorting[prop].order;
|
|
493
|
+
});
|
|
494
|
+
}
|
|
495
|
+
return order;
|
|
486
496
|
}
|
|
487
497
|
get stores() {
|
|
488
498
|
return this.dataSources;
|
|
489
499
|
}
|
|
490
500
|
constructor() {
|
|
491
501
|
this.sorting = null;
|
|
492
|
-
this.dataSources =
|
|
502
|
+
this.dataSources = columnTypes.reduce((sources, k) => {
|
|
493
503
|
sources[k] = new DataStore(k);
|
|
494
504
|
return sources;
|
|
495
505
|
}, {});
|
|
@@ -551,7 +561,7 @@ class ColumnDataProvider {
|
|
|
551
561
|
updateColumns(cols) {
|
|
552
562
|
// collect column by type and propert
|
|
553
563
|
const columnByKey = cols.reduce((res, c) => {
|
|
554
|
-
const type =
|
|
564
|
+
const type = getColumnType(c);
|
|
555
565
|
if (!res[type]) {
|
|
556
566
|
res[type] = {};
|
|
557
567
|
}
|
|
@@ -560,20 +570,32 @@ class ColumnDataProvider {
|
|
|
560
570
|
}, {});
|
|
561
571
|
// find indexes in source
|
|
562
572
|
const colByIndex = {};
|
|
563
|
-
|
|
573
|
+
for (const t in columnByKey) {
|
|
574
|
+
if (!columnByKey.hasOwnProperty(t)) {
|
|
575
|
+
continue;
|
|
576
|
+
}
|
|
577
|
+
const type = t;
|
|
578
|
+
const colsToUpdate = columnByKey[type];
|
|
564
579
|
const items = this.dataSources[type].store.get('source');
|
|
565
|
-
colByIndex[type] =
|
|
580
|
+
colByIndex[type] = {};
|
|
581
|
+
for (let i = 0; i < items.length; i++) {
|
|
582
|
+
const rgCol = items[i];
|
|
566
583
|
const colToUpdateIfExists = colsToUpdate === null || colsToUpdate === void 0 ? void 0 : colsToUpdate[rgCol.prop];
|
|
567
584
|
if (colToUpdateIfExists) {
|
|
568
|
-
|
|
585
|
+
colByIndex[type][i] = colToUpdateIfExists;
|
|
569
586
|
}
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
for (const t in colByIndex) {
|
|
590
|
+
if (!colByIndex.hasOwnProperty(t)) {
|
|
591
|
+
continue;
|
|
592
|
+
}
|
|
593
|
+
const type = t;
|
|
594
|
+
setSourceByVirtualIndex(this.dataSources[type].store, colByIndex[type] || {});
|
|
595
|
+
}
|
|
574
596
|
}
|
|
575
597
|
updateColumn(column, index) {
|
|
576
|
-
const type =
|
|
598
|
+
const type = getColumnType(column);
|
|
577
599
|
setSourceByVirtualIndex(this.dataSources[type].store, { [index]: column });
|
|
578
600
|
}
|
|
579
601
|
updateColumnSorting(column, index, sorting, additive) {
|
|
@@ -590,7 +612,7 @@ class ColumnDataProvider {
|
|
|
590
612
|
}
|
|
591
613
|
clearSorting() {
|
|
592
614
|
const types = reduce_1(this.sorting, (r, c) => {
|
|
593
|
-
const k =
|
|
615
|
+
const k = getColumnType(c);
|
|
594
616
|
r[k] = true;
|
|
595
617
|
return r;
|
|
596
618
|
}, {});
|
|
@@ -601,78 +623,6 @@ class ColumnDataProvider {
|
|
|
601
623
|
});
|
|
602
624
|
this.sorting = {};
|
|
603
625
|
}
|
|
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
626
|
}
|
|
677
627
|
|
|
678
628
|
/**
|
|
@@ -823,7 +773,7 @@ class DimensionProvider {
|
|
|
823
773
|
// setItemCount
|
|
824
774
|
this.stores[type].setStore({ count: items.length });
|
|
825
775
|
// setCustomSizes
|
|
826
|
-
const newSizes =
|
|
776
|
+
const newSizes = getColumnSizes(items);
|
|
827
777
|
this.stores[type].setDimensionSize(newSizes);
|
|
828
778
|
const vpUpdate = {
|
|
829
779
|
// this triggers drop on realCount change
|
|
@@ -938,7 +888,7 @@ class AutoSizeColumnPlugin extends BasePlugin {
|
|
|
938
888
|
this.columnSet(columns);
|
|
939
889
|
};
|
|
940
890
|
const headerDblClick = ({ detail }) => {
|
|
941
|
-
const type =
|
|
891
|
+
const type = getColumnType(detail.column);
|
|
942
892
|
const size = this.getColumnSize(detail.index, type);
|
|
943
893
|
if (size) {
|
|
944
894
|
this.providers.dimension.setCustomSizes(type, {
|
|
@@ -1761,7 +1711,7 @@ class SortingPlugin extends BasePlugin {
|
|
|
1761
1711
|
const columns = (await this.revogrid.getColumns());
|
|
1762
1712
|
const sortingFunc = {};
|
|
1763
1713
|
for (let prop in order) {
|
|
1764
|
-
const cmp = this.getComparer(
|
|
1714
|
+
const cmp = this.getComparer(getColumnByProp(columns, prop), order[prop]);
|
|
1765
1715
|
sortingFunc[prop] = cmp;
|
|
1766
1716
|
}
|
|
1767
1717
|
this.runSorting(order, sortingFunc);
|
|
@@ -3550,7 +3500,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
|
|
|
3550
3500
|
/** Open editor for cell. */
|
|
3551
3501
|
async setCellEdit(rgRow, prop, rowSource = 'rgRow') {
|
|
3552
3502
|
var _a;
|
|
3553
|
-
const rgCol =
|
|
3503
|
+
const rgCol = getColumnByProp(this.columns, prop);
|
|
3554
3504
|
if (!rgCol) {
|
|
3555
3505
|
return;
|
|
3556
3506
|
}
|
|
@@ -3774,7 +3724,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
|
|
|
3774
3724
|
this.columnChanged(this.columns);
|
|
3775
3725
|
}
|
|
3776
3726
|
columnChanged(newVal = []) {
|
|
3777
|
-
const columnGather =
|
|
3727
|
+
const columnGather = getColumns(newVal, 0, this.columnTypes);
|
|
3778
3728
|
this.beforecolumnsset.emit(columnGather);
|
|
3779
3729
|
this.dimensionProvider.applyNewColumns(columnGather.columns, this.disableVirtualX);
|
|
3780
3730
|
this.beforecolumnapplied.emit(columnGather);
|
|
@@ -4084,7 +4034,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
|
|
|
4084
4034
|
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
4035
|
// Column headers
|
|
4086
4036
|
const dataViews = [
|
|
4087
|
-
h("revogr-header", Object.assign({ key: '
|
|
4037
|
+
h("revogr-header", Object.assign({ key: 'bada77126c317da09a9826312186c16617c7b0af' }, headerProperties, { slot: HEADER_SLOT })),
|
|
4088
4038
|
];
|
|
4089
4039
|
// Render viewport data (vertical sections)
|
|
4090
4040
|
view.dataPorts.forEach(data => {
|
|
@@ -4106,12 +4056,12 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
|
|
|
4106
4056
|
const typeCol = 'rgCol';
|
|
4107
4057
|
const viewports = this.viewportProvider.stores;
|
|
4108
4058
|
const dimensions = this.dimensionProvider.stores;
|
|
4109
|
-
return (h(Host, { key: '
|
|
4059
|
+
return (h(Host, { key: '9b95aef4de8af770036a733986e7e0fe2dd3ffda' }, this.hideAttribution ? null : (h("revogr-attribution", { class: "attribution" })), h("div", { key: '68dbc0fca826a0089402157d301c49a0776e9007', class: "main-viewport", onClick: (e) => {
|
|
4110
4060
|
var _a;
|
|
4111
4061
|
if (e.currentTarget === e.target) {
|
|
4112
4062
|
(_a = this.viewport) === null || _a === void 0 ? void 0 : _a.clearEdit();
|
|
4113
4063
|
}
|
|
4114
|
-
} }, h("div", { key: '
|
|
4064
|
+
} }, 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
4065
|
}
|
|
4116
4066
|
disconnectedCallback() {
|
|
4117
4067
|
// Remove all plugins, to avoid memory leaks and unexpected behaviour when the component is removed
|
|
@@ -4296,6 +4246,6 @@ function defineCustomElement$1() {
|
|
|
4296
4246
|
const RevoGrid = RevoGridComponent;
|
|
4297
4247
|
const defineCustomElement = defineCustomElement$1;
|
|
4298
4248
|
|
|
4299
|
-
export { BasePlugin as B, DimensionStore as D, RevoGrid, ThemeService as T, columnTypes as c, defineCustomElement, isRowType as i, rowTypes as r };
|
|
4249
|
+
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
4250
|
|
|
4301
4251
|
//# sourceMappingURL=revo-grid.js.map
|