@revolist/revogrid 4.22.1 → 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-BQdEGQXP.js → cell-renderer-DWJ9Px9f.js} +9 -3
- package/dist/cjs/{column.drag.plugin-RDjQhKCH.js → column.drag.plugin-CaEBDG-Q.js} +391 -256
- package/dist/cjs/{column.service-DXYMehqK.js → column.service-f612L4ql.js} +1 -1
- package/dist/cjs/{dimension.helpers-CiiNnlLa.js → dimension.helpers-B9HgANnM.js} +14 -145
- package/dist/cjs/{edit.utils-CecCfA4E.js → edit.utils-pKeiYFLJ.js} +1 -1
- package/dist/cjs/{header-cell-renderer-DGyBrK8I.js → header-cell-renderer-4yq9_WbM.js} +1 -1
- package/dist/cjs/index-DxaSE5uZ.js +136 -0
- package/dist/cjs/index.cjs.js +37 -32
- package/dist/cjs/revo-grid.cjs.entry.js +35 -15
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +43 -25
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +10 -8
- package/dist/cjs/revogr-data_4.cjs.entry.js +26 -17
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +2 -1
- package/dist/cjs/{text-editor-DnLZW1a-.js → text-editor-B4W-m-r-.js} +3 -3
- package/dist/cjs/{throttle-CfgQFkfR.js → throttle-BCwEuJJq.js} +59 -24
- package/dist/cjs/viewport.helpers-BND76K2j.js +140 -0
- package/dist/cjs/{viewport.store-q6YdR9mg.js → viewport.store-BlKQ4x9H.js} +16 -16
- package/dist/collection/components/data/revogr-data.js +5 -3
- package/dist/collection/components/header/header-group-renderer.js +1 -1
- package/dist/collection/components/header/header-renderer.js +1 -1
- package/dist/collection/components/header/revogr-header-style.css +13 -3
- package/dist/collection/components/header/revogr-header.js +5 -2
- package/dist/collection/components/order/order-row.service.js +6 -5
- package/dist/collection/components/overlay/keyboard.service.js +23 -1
- package/dist/collection/components/overlay/selection.utils.js +8 -6
- package/dist/collection/components/revoGrid/revo-grid.js +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 +4 -4
- package/dist/collection/plugins/sorting/sorting.func.js +173 -15
- package/dist/collection/plugins/sorting/sorting.plugin.js +167 -84
- package/dist/collection/plugins/sorting/sorting.sign.js +7 -1
- package/dist/collection/serve/controller.js +98 -37
- package/dist/collection/serve/data.js +273 -144
- package/dist/collection/services/dimension.provider.js +16 -1
- package/dist/collection/services/local.scroll.service.js +59 -24
- package/dist/collection/services/scroll.dimension.helpers.js +83 -0
- package/dist/collection/services/selection.store.connector.js +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/utils/store.utils.js +3 -3
- package/dist/{revo-grid/cell-renderer-CALsEsnh.js → esm/cell-renderer-8UiGd-s7.js} +9 -3
- package/dist/esm/{column.drag.plugin-Dy5ztusn.js → column.drag.plugin-BsfhsfmB.js} +388 -255
- package/dist/esm/{column.service-CCvAi5l4.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-DmIvjIa7.js → esm/dimension.helpers-CGKwSvw6.js} +7 -128
- package/dist/esm/{edit.utils-DYN6XZh8.js → edit.utils-Dnnbd0xG.js} +1 -1
- package/dist/{revo-grid/header-cell-renderer-DU8wKAbg.js → esm/header-cell-renderer-DGI2FAD8.js} +1 -1
- package/dist/esm/index-Db3qZoW5.js +127 -0
- package/dist/esm/index.js +11 -10
- package/dist/esm/revo-grid.entry.js +34 -14
- package/dist/esm/revogr-attribution_7.entry.js +42 -24
- package/dist/esm/revogr-clipboard_3.entry.js +11 -9
- package/dist/esm/revogr-data_4.entry.js +27 -18
- package/dist/esm/revogr-filter-panel.entry.js +3 -2
- package/dist/esm/{text-editor-DpCnd6Fq.js → text-editor-C3RUSwH5.js} +2 -2
- package/dist/esm/{throttle-ERvyruXb.js → throttle-CaUDyxyU.js} +60 -25
- package/dist/esm/viewport.helpers-CoCAvmZs.js +133 -0
- package/dist/{revo-grid/viewport.store-CFjDW-3l.js → esm/viewport.store-COAfzAyu.js} +15 -17
- package/dist/{esm/cell-renderer-CALsEsnh.js → revo-grid/cell-renderer-8UiGd-s7.js} +9 -3
- package/dist/revo-grid/{column.drag.plugin-Dy5ztusn.js → column.drag.plugin-BsfhsfmB.js} +388 -255
- package/dist/revo-grid/{column.service-CCvAi5l4.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-DmIvjIa7.js → revo-grid/dimension.helpers-CGKwSvw6.js} +7 -128
- package/dist/revo-grid/{edit.utils-DYN6XZh8.js → edit.utils-Dnnbd0xG.js} +1 -1
- package/dist/{esm/header-cell-renderer-DU8wKAbg.js → revo-grid/header-cell-renderer-DGI2FAD8.js} +1 -1
- package/dist/revo-grid/index-Db3qZoW5.js +127 -0
- package/dist/revo-grid/index.esm.js +11 -10
- package/dist/revo-grid/revo-grid.entry.js +34 -14
- package/dist/revo-grid/revogr-attribution_7.entry.js +42 -24
- package/dist/revo-grid/revogr-clipboard_3.entry.js +11 -9
- package/dist/revo-grid/revogr-data_4.entry.js +27 -18
- package/dist/revo-grid/revogr-filter-panel.entry.js +3 -2
- package/dist/revo-grid/{text-editor-DpCnd6Fq.js → text-editor-C3RUSwH5.js} +2 -2
- package/dist/revo-grid/{throttle-ERvyruXb.js → throttle-CaUDyxyU.js} +60 -25
- package/dist/revo-grid/viewport.helpers-CoCAvmZs.js +133 -0
- package/dist/{esm/viewport.store-CFjDW-3l.js → revo-grid/viewport.store-COAfzAyu.js} +15 -17
- package/dist/types/components/header/header-group-renderer.d.ts +1 -0
- package/dist/types/components/header/header-renderer.d.ts +1 -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/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/interfaces.d.ts +11 -0
- package/hydrate/index.js +649 -365
- package/hydrate/index.mjs +649 -365
- package/package.json +1 -1
- package/standalone/column.service.js +1 -1
- package/standalone/data.store.js +1 -1
- package/standalone/debounce.js +1 -1
- package/standalone/dimension.helpers.js +1 -1
- package/standalone/index.js +1 -1
- package/standalone/local.scroll.timer.js +1 -1
- package/standalone/revo-grid.js +1 -1
- package/standalone/revogr-data2.js +1 -1
- package/standalone/revogr-filter-panel.js +1 -1
- package/standalone/revogr-header2.js +1 -1
- package/standalone/revogr-order-editor2.js +1 -1
- package/standalone/revogr-overlay-selection2.js +1 -1
- package/standalone/revogr-row-headers.js +1 -1
- package/standalone/revogr-row-headers2.js +1 -1
- package/standalone/revogr-scroll-virtual2.js +1 -1
- package/standalone/revogr-viewport-scroll2.js +1 -1
- package/standalone/selection.utils.js +1 -1
- package/standalone/throttle.js +1 -1
- package/standalone/toNumber.js +1 -1
- package/dist/cjs/viewport.helpers-BAovztDd.js +0 -58
- package/dist/esm/viewport.helpers-VXhsJZtn.js +0 -52
- package/dist/revo-grid/viewport.helpers-VXhsJZtn.js +0 -52
|
@@ -1774,15 +1774,15 @@ var dataViewCtorString = toSource(DataView),
|
|
|
1774
1774
|
* @param {*} value The value to query.
|
|
1775
1775
|
* @returns {string} Returns the `toStringTag`.
|
|
1776
1776
|
*/
|
|
1777
|
-
|
|
1777
|
+
var getTag = debounce$1.baseGetTag;
|
|
1778
1778
|
|
|
1779
1779
|
// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
|
|
1780
|
-
if ((DataView &&
|
|
1781
|
-
(Map$1 &&
|
|
1782
|
-
(Promise$1 &&
|
|
1783
|
-
(Set$1 &&
|
|
1784
|
-
(WeakMap &&
|
|
1785
|
-
|
|
1780
|
+
if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
|
|
1781
|
+
(Map$1 && getTag(new Map$1) != mapTag) ||
|
|
1782
|
+
(Promise$1 && getTag(Promise$1.resolve()) != promiseTag) ||
|
|
1783
|
+
(Set$1 && getTag(new Set$1) != setTag) ||
|
|
1784
|
+
(WeakMap && getTag(new WeakMap) != weakMapTag)) {
|
|
1785
|
+
getTag = function(value) {
|
|
1786
1786
|
var result = debounce$1.baseGetTag(value),
|
|
1787
1787
|
Ctor = result == objectTag$1 ? value.constructor : undefined,
|
|
1788
1788
|
ctorString = Ctor ? toSource(Ctor) : '';
|
|
@@ -1831,8 +1831,8 @@ var hasOwnProperty = objectProto.hasOwnProperty;
|
|
|
1831
1831
|
function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
|
|
1832
1832
|
var objIsArr = isArray(object),
|
|
1833
1833
|
othIsArr = isArray(other),
|
|
1834
|
-
objTag = objIsArr ? arrayTag :
|
|
1835
|
-
othTag = othIsArr ? arrayTag :
|
|
1834
|
+
objTag = objIsArr ? arrayTag : getTag(object),
|
|
1835
|
+
othTag = othIsArr ? arrayTag : getTag(other);
|
|
1836
1836
|
|
|
1837
1837
|
objTag = objTag == argsTag ? objectTag : objTag;
|
|
1838
1838
|
othTag = othTag == argsTag ? objectTag : othTag;
|
|
@@ -2708,7 +2708,7 @@ function createRange(fromRight) {
|
|
|
2708
2708
|
* _.range(0);
|
|
2709
2709
|
* // => []
|
|
2710
2710
|
*/
|
|
2711
|
-
var range
|
|
2711
|
+
var range = createRange();
|
|
2712
2712
|
|
|
2713
2713
|
const appendToMap = (map, propName, value) => {
|
|
2714
2714
|
let refs = map.get(propName);
|
|
@@ -3023,9 +3023,9 @@ function gatherTrimmedItems(trimmedItems) {
|
|
|
3023
3023
|
* @param data - The data to set on the store.
|
|
3024
3024
|
*/
|
|
3025
3025
|
function setStore(store, data) {
|
|
3026
|
-
Object.
|
|
3027
|
-
store.set(key,
|
|
3028
|
-
}
|
|
3026
|
+
for (const key of Object.keys(data)) {
|
|
3027
|
+
store.set(key, data[key]);
|
|
3028
|
+
}
|
|
3029
3029
|
}
|
|
3030
3030
|
|
|
3031
3031
|
const MIN_COL_SIZE = 30;
|
|
@@ -3134,127 +3134,6 @@ var osPlatform;
|
|
|
3134
3134
|
})(osPlatform || (osPlatform = {}));
|
|
3135
3135
|
var OsPlatform = osPlatform;
|
|
3136
3136
|
|
|
3137
|
-
/* Generate range on size
|
|
3138
|
-
*/
|
|
3139
|
-
function range(size, startAt = 0) {
|
|
3140
|
-
const res = [];
|
|
3141
|
-
const end = startAt + size;
|
|
3142
|
-
for (let i = startAt; i < end; i++) {
|
|
3143
|
-
res.push(i);
|
|
3144
|
-
}
|
|
3145
|
-
return res;
|
|
3146
|
-
}
|
|
3147
|
-
/* Find index position in array */
|
|
3148
|
-
function findPositionInArray(el, compareFn) {
|
|
3149
|
-
return (function (arr) {
|
|
3150
|
-
let m = 0;
|
|
3151
|
-
let n = arr.length - 1;
|
|
3152
|
-
while (m <= n) {
|
|
3153
|
-
const k = (n + m) >> 1;
|
|
3154
|
-
const cmp = compareFn(el, arr[k]);
|
|
3155
|
-
if (cmp > 0) {
|
|
3156
|
-
m = k + 1;
|
|
3157
|
-
}
|
|
3158
|
-
else if (cmp < 0) {
|
|
3159
|
-
n = k - 1;
|
|
3160
|
-
}
|
|
3161
|
-
else {
|
|
3162
|
-
return k;
|
|
3163
|
-
}
|
|
3164
|
-
}
|
|
3165
|
-
return -m - 1;
|
|
3166
|
-
})(this);
|
|
3167
|
-
}
|
|
3168
|
-
/**
|
|
3169
|
-
* Sorted push
|
|
3170
|
-
*/
|
|
3171
|
-
function pushSorted(arr, el, fn) {
|
|
3172
|
-
arr.splice(findPositionInArray.bind(arr)(el, fn), 0, el);
|
|
3173
|
-
return arr;
|
|
3174
|
-
}
|
|
3175
|
-
// (arr1[index1] < arr2[index2])
|
|
3176
|
-
function simpleCompare(el1, el2) {
|
|
3177
|
-
return el1 < el2;
|
|
3178
|
-
}
|
|
3179
|
-
/**
|
|
3180
|
-
* Merge sorted array helper function
|
|
3181
|
-
*/
|
|
3182
|
-
function mergeSortedArray(arr1, arr2, compareFn = simpleCompare) {
|
|
3183
|
-
const merged = [];
|
|
3184
|
-
let index1 = 0;
|
|
3185
|
-
let index2 = 0;
|
|
3186
|
-
let current = 0;
|
|
3187
|
-
while (current < arr1.length + arr2.length) {
|
|
3188
|
-
let isArr1Depleted = index1 >= arr1.length;
|
|
3189
|
-
let isArr2Depleted = index2 >= arr2.length;
|
|
3190
|
-
if (!isArr1Depleted && (isArr2Depleted || compareFn(arr1[index1], arr2[index2]))) {
|
|
3191
|
-
merged[current] = arr1[index1];
|
|
3192
|
-
index1++;
|
|
3193
|
-
}
|
|
3194
|
-
else {
|
|
3195
|
-
merged[current] = arr2[index2];
|
|
3196
|
-
index2++;
|
|
3197
|
-
}
|
|
3198
|
-
current++;
|
|
3199
|
-
}
|
|
3200
|
-
return merged;
|
|
3201
|
-
}
|
|
3202
|
-
/**
|
|
3203
|
-
* Calculate system scrollbar size
|
|
3204
|
-
*/
|
|
3205
|
-
function getScrollbarSize(document) {
|
|
3206
|
-
// Create a temporary div container and append it to the body
|
|
3207
|
-
const container = document.createElement('div');
|
|
3208
|
-
// Apply styling to ensure the div is scrollable
|
|
3209
|
-
container.style.overflow = 'scroll';
|
|
3210
|
-
container.style.visibility = 'hidden'; // make sure the container isn't visible
|
|
3211
|
-
container.style.position = 'absolute';
|
|
3212
|
-
container.style.top = '-9999px'; // move it out of the screen
|
|
3213
|
-
container.style.width = '50px'; // arbitrary width
|
|
3214
|
-
container.style.height = '50px'; // arbitrary height
|
|
3215
|
-
// Append the div to the body
|
|
3216
|
-
document.body.appendChild(container);
|
|
3217
|
-
// Calculate the width of the scrollbar
|
|
3218
|
-
const scrollbarWidth = container.offsetWidth - container.clientWidth;
|
|
3219
|
-
// Remove the div from the body after calculation
|
|
3220
|
-
document.body.removeChild(container);
|
|
3221
|
-
// Return the calculated width of the scrollbar
|
|
3222
|
-
return scrollbarWidth;
|
|
3223
|
-
}
|
|
3224
|
-
/* Scale a value between 2 ranges
|
|
3225
|
-
*
|
|
3226
|
-
* Sample:
|
|
3227
|
-
* // 55 from a 0-100 range to a 0-1000 range (Ranges don't have to be positive)
|
|
3228
|
-
* const n = scaleValue(55, [0,100], [0,1000]);
|
|
3229
|
-
*
|
|
3230
|
-
* Ranges of two values
|
|
3231
|
-
* @from
|
|
3232
|
-
* @to
|
|
3233
|
-
*
|
|
3234
|
-
* ~~ return value does the equivalent of Math.floor but faster.
|
|
3235
|
-
*/
|
|
3236
|
-
function scaleValue(value, from, to) {
|
|
3237
|
-
return ((to[1] - to[0]) * (value - from[0])) / (from[1] - from[0]) + to[0];
|
|
3238
|
-
}
|
|
3239
|
-
/**
|
|
3240
|
-
* Async timeout
|
|
3241
|
-
*/
|
|
3242
|
-
async function timeout(delay = 0) {
|
|
3243
|
-
await new Promise((r) => {
|
|
3244
|
-
setTimeout(() => r(), delay);
|
|
3245
|
-
});
|
|
3246
|
-
}
|
|
3247
|
-
/**
|
|
3248
|
-
* Type script mixins
|
|
3249
|
-
*/
|
|
3250
|
-
function applyMixins(derivedCtor, constructors) {
|
|
3251
|
-
constructors.forEach(baseCtor => {
|
|
3252
|
-
Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
|
|
3253
|
-
Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name) || Object.create(null));
|
|
3254
|
-
});
|
|
3255
|
-
});
|
|
3256
|
-
}
|
|
3257
|
-
|
|
3258
3137
|
/**
|
|
3259
3138
|
* Data store
|
|
3260
3139
|
* Manage the state of a data source and provide methods for updating, adding, and refreshing the data.
|
|
@@ -3288,7 +3167,7 @@ class DataStore {
|
|
|
3288
3167
|
}
|
|
3289
3168
|
// clear items
|
|
3290
3169
|
this.store.set('items', []);
|
|
3291
|
-
const items = range
|
|
3170
|
+
const items = range(0, (source === null || source === void 0 ? void 0 : source.length) || 0);
|
|
3292
3171
|
// set proxy first
|
|
3293
3172
|
setStore(this.store, {
|
|
3294
3173
|
source,
|
|
@@ -3644,18 +3523,13 @@ exports.ROW_FOCUSED_CLASS = ROW_FOCUSED_CLASS;
|
|
|
3644
3523
|
exports.ROW_HEADER_TYPE = ROW_HEADER_TYPE;
|
|
3645
3524
|
exports.SELECTION_BORDER_CLASS = SELECTION_BORDER_CLASS;
|
|
3646
3525
|
exports.TMP_SELECTION_BG_CLASS = TMP_SELECTION_BG_CLASS;
|
|
3647
|
-
exports.applyMixins = applyMixins;
|
|
3648
3526
|
exports.baseIteratee = baseIteratee;
|
|
3649
|
-
exports.baseKeys = baseKeys;
|
|
3650
|
-
exports.baseProperty = baseProperty;
|
|
3651
3527
|
exports.calculateDimensionData = calculateDimensionData;
|
|
3652
3528
|
exports.createStore = createStore;
|
|
3653
|
-
exports.findPositionInArray = findPositionInArray;
|
|
3654
3529
|
exports.gatherTrimmedItems = gatherTrimmedItems;
|
|
3655
3530
|
exports.getItemByIndex = getItemByIndex;
|
|
3656
3531
|
exports.getItemByPosition = getItemByPosition;
|
|
3657
3532
|
exports.getPhysical = getPhysical;
|
|
3658
|
-
exports.getScrollbarSize = getScrollbarSize;
|
|
3659
3533
|
exports.getSourceItem = getSourceItem;
|
|
3660
3534
|
exports.getSourceItemVirtualIndexByProp = getSourceItemVirtualIndexByProp;
|
|
3661
3535
|
exports.getSourcePhysicalIndex = getSourcePhysicalIndex;
|
|
@@ -3665,15 +3539,10 @@ exports.isArray = isArray;
|
|
|
3665
3539
|
exports.isArrayLike = isArrayLike;
|
|
3666
3540
|
exports.isIterateeCall = isIterateeCall;
|
|
3667
3541
|
exports.keys = keys;
|
|
3668
|
-
exports.mergeSortedArray = mergeSortedArray;
|
|
3669
3542
|
exports.proxyPlugin = proxyPlugin;
|
|
3670
|
-
exports.pushSorted = pushSorted;
|
|
3671
|
-
exports.range = range;
|
|
3672
|
-
exports.scaleValue = scaleValue;
|
|
3673
3543
|
exports.setItems = setItems;
|
|
3674
3544
|
exports.setSourceByPhysicalIndex = setSourceByPhysicalIndex;
|
|
3675
3545
|
exports.setSourceByVirtualIndex = setSourceByVirtualIndex;
|
|
3676
3546
|
exports.setStore = setStore;
|
|
3677
|
-
exports.timeout = timeout;
|
|
3678
3547
|
exports.toFinite = toFinite;
|
|
3679
3548
|
exports.trimmedPlugin = trimmedPlugin;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist OU ❤️
|
|
3
|
+
*/
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
require('./dimension.helpers-B9HgANnM.js');
|
|
7
|
+
|
|
8
|
+
/* Generate range on size
|
|
9
|
+
*/
|
|
10
|
+
function range(size, startAt = 0) {
|
|
11
|
+
const res = [];
|
|
12
|
+
const end = startAt + size;
|
|
13
|
+
for (let i = startAt; i < end; i++) {
|
|
14
|
+
res.push(i);
|
|
15
|
+
}
|
|
16
|
+
return res;
|
|
17
|
+
}
|
|
18
|
+
/* Find index position in array */
|
|
19
|
+
function findPositionInArray(el, compareFn) {
|
|
20
|
+
return (function (arr) {
|
|
21
|
+
let m = 0;
|
|
22
|
+
let n = arr.length - 1;
|
|
23
|
+
while (m <= n) {
|
|
24
|
+
const k = (n + m) >> 1;
|
|
25
|
+
const cmp = compareFn(el, arr[k]);
|
|
26
|
+
if (cmp > 0) {
|
|
27
|
+
m = k + 1;
|
|
28
|
+
}
|
|
29
|
+
else if (cmp < 0) {
|
|
30
|
+
n = k - 1;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return k;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return -m - 1;
|
|
37
|
+
})(this);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Sorted push
|
|
41
|
+
*/
|
|
42
|
+
function pushSorted(arr, el, fn) {
|
|
43
|
+
arr.splice(findPositionInArray.bind(arr)(el, fn), 0, el);
|
|
44
|
+
return arr;
|
|
45
|
+
}
|
|
46
|
+
// (arr1[index1] < arr2[index2])
|
|
47
|
+
function simpleCompare(el1, el2) {
|
|
48
|
+
return el1 < el2;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Merge sorted array helper function
|
|
52
|
+
*/
|
|
53
|
+
function mergeSortedArray(arr1, arr2, compareFn = simpleCompare) {
|
|
54
|
+
const merged = [];
|
|
55
|
+
let index1 = 0;
|
|
56
|
+
let index2 = 0;
|
|
57
|
+
let current = 0;
|
|
58
|
+
while (current < arr1.length + arr2.length) {
|
|
59
|
+
let isArr1Depleted = index1 >= arr1.length;
|
|
60
|
+
let isArr2Depleted = index2 >= arr2.length;
|
|
61
|
+
if (!isArr1Depleted && (isArr2Depleted || compareFn(arr1[index1], arr2[index2]))) {
|
|
62
|
+
merged[current] = arr1[index1];
|
|
63
|
+
index1++;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
merged[current] = arr2[index2];
|
|
67
|
+
index2++;
|
|
68
|
+
}
|
|
69
|
+
current++;
|
|
70
|
+
}
|
|
71
|
+
return merged;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Calculate system scrollbar size
|
|
75
|
+
*/
|
|
76
|
+
function getScrollbarSize(document) {
|
|
77
|
+
// Create a temporary div container and append it to the body
|
|
78
|
+
const container = document.createElement('div');
|
|
79
|
+
// Apply styling to ensure the div is scrollable
|
|
80
|
+
container.style.overflow = 'scroll';
|
|
81
|
+
container.style.visibility = 'hidden'; // make sure the container isn't visible
|
|
82
|
+
container.style.position = 'absolute';
|
|
83
|
+
container.style.top = '-9999px'; // move it out of the screen
|
|
84
|
+
container.style.width = '50px'; // arbitrary width
|
|
85
|
+
container.style.height = '50px'; // arbitrary height
|
|
86
|
+
// Append the div to the body
|
|
87
|
+
document.body.appendChild(container);
|
|
88
|
+
// Calculate the width of the scrollbar
|
|
89
|
+
const scrollbarWidth = container.offsetWidth - container.clientWidth;
|
|
90
|
+
// Remove the div from the body after calculation
|
|
91
|
+
document.body.removeChild(container);
|
|
92
|
+
// Return the calculated width of the scrollbar
|
|
93
|
+
return scrollbarWidth;
|
|
94
|
+
}
|
|
95
|
+
/* Scale a value between 2 ranges
|
|
96
|
+
*
|
|
97
|
+
* Sample:
|
|
98
|
+
* // 55 from a 0-100 range to a 0-1000 range (Ranges don't have to be positive)
|
|
99
|
+
* const n = scaleValue(55, [0,100], [0,1000]);
|
|
100
|
+
*
|
|
101
|
+
* Ranges of two values
|
|
102
|
+
* @from
|
|
103
|
+
* @to
|
|
104
|
+
*
|
|
105
|
+
* ~~ return value does the equivalent of Math.floor but faster.
|
|
106
|
+
*/
|
|
107
|
+
function scaleValue(value, from, to) {
|
|
108
|
+
return ((to[1] - to[0]) * (value - from[0])) / (from[1] - from[0]) + to[0];
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Async timeout
|
|
112
|
+
*/
|
|
113
|
+
async function timeout(delay = 0) {
|
|
114
|
+
await new Promise((r) => {
|
|
115
|
+
setTimeout(() => r(), delay);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Type script mixins
|
|
120
|
+
*/
|
|
121
|
+
function applyMixins(derivedCtor, constructors) {
|
|
122
|
+
constructors.forEach(baseCtor => {
|
|
123
|
+
Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
|
|
124
|
+
Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name) || Object.create(null));
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
exports.applyMixins = applyMixins;
|
|
130
|
+
exports.findPositionInArray = findPositionInArray;
|
|
131
|
+
exports.getScrollbarSize = getScrollbarSize;
|
|
132
|
+
exports.mergeSortedArray = mergeSortedArray;
|
|
133
|
+
exports.pushSorted = pushSorted;
|
|
134
|
+
exports.range = range;
|
|
135
|
+
exports.scaleValue = scaleValue;
|
|
136
|
+
exports.timeout = timeout;
|
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -3,15 +3,16 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var column_service = require('./column.service-
|
|
7
|
-
var column_drag_plugin = require('./column.drag.plugin-
|
|
8
|
-
var headerCellRenderer = require('./header-cell-renderer-
|
|
9
|
-
var cellRenderer = require('./cell-renderer-
|
|
10
|
-
var
|
|
11
|
-
var textEditor = require('./text-editor-
|
|
12
|
-
var edit_utils = require('./edit.utils-
|
|
6
|
+
var column_service = require('./column.service-f612L4ql.js');
|
|
7
|
+
var column_drag_plugin = require('./column.drag.plugin-CaEBDG-Q.js');
|
|
8
|
+
var headerCellRenderer = require('./header-cell-renderer-4yq9_WbM.js');
|
|
9
|
+
var cellRenderer = require('./cell-renderer-DWJ9Px9f.js');
|
|
10
|
+
var index$1 = require('./index-DxaSE5uZ.js');
|
|
11
|
+
var textEditor = require('./text-editor-B4W-m-r-.js');
|
|
12
|
+
var edit_utils = require('./edit.utils-pKeiYFLJ.js');
|
|
13
13
|
var index = require('./index-Dq8Xzj5l.js');
|
|
14
|
-
var
|
|
14
|
+
var dimension_helpers = require('./dimension.helpers-B9HgANnM.js');
|
|
15
|
+
var viewport_store = require('./viewport.store-BlKQ4x9H.js');
|
|
15
16
|
var filter_button = require('./filter.button-w6LWnyhi.js');
|
|
16
17
|
require('./debounce-CcpHiH2p.js');
|
|
17
18
|
|
|
@@ -235,6 +236,8 @@ exports.filterTypes = column_drag_plugin.filterTypes;
|
|
|
235
236
|
exports.getComparer = column_drag_plugin.getComparer;
|
|
236
237
|
exports.getLeftRelative = column_drag_plugin.getLeftRelative;
|
|
237
238
|
exports.getNextOrder = column_drag_plugin.getNextOrder;
|
|
239
|
+
exports.getSortingIndex = column_drag_plugin.getSortingIndex;
|
|
240
|
+
exports.hasActiveSorting = column_drag_plugin.hasActiveSorting;
|
|
238
241
|
exports.isStretchPlugin = column_drag_plugin.isStretchPlugin;
|
|
239
242
|
exports.sortIndexByItems = column_drag_plugin.sortIndexByItems;
|
|
240
243
|
exports.dispatch = headerCellRenderer.dispatch;
|
|
@@ -244,6 +247,30 @@ exports.GroupingRowRenderer = cellRenderer.GroupingRowRenderer;
|
|
|
244
247
|
exports.SortingSign = cellRenderer.SortingSign;
|
|
245
248
|
exports.expandEvent = cellRenderer.expandEvent;
|
|
246
249
|
exports.expandSvgIconVNode = cellRenderer.expandSvgIconVNode;
|
|
250
|
+
exports.applyMixins = index$1.applyMixins;
|
|
251
|
+
exports.findPositionInArray = index$1.findPositionInArray;
|
|
252
|
+
exports.getScrollbarSize = index$1.getScrollbarSize;
|
|
253
|
+
exports.mergeSortedArray = index$1.mergeSortedArray;
|
|
254
|
+
exports.pushSorted = index$1.pushSorted;
|
|
255
|
+
exports.range = index$1.range;
|
|
256
|
+
exports.scaleValue = index$1.scaleValue;
|
|
257
|
+
exports.timeout = index$1.timeout;
|
|
258
|
+
exports.TextEditor = textEditor.TextEditor;
|
|
259
|
+
exports.isAll = edit_utils.isAll;
|
|
260
|
+
exports.isClear = edit_utils.isClear;
|
|
261
|
+
exports.isCopy = edit_utils.isCopy;
|
|
262
|
+
exports.isCtrlKey = edit_utils.isCtrlKey;
|
|
263
|
+
exports.isCtrlMetaKey = edit_utils.isCtrlMetaKey;
|
|
264
|
+
exports.isCut = edit_utils.isCut;
|
|
265
|
+
exports.isEditInput = edit_utils.isEditInput;
|
|
266
|
+
exports.isEditorCtrConstructible = edit_utils.isEditorCtrConstructible;
|
|
267
|
+
exports.isEnterKeyValue = edit_utils.isEnterKeyValue;
|
|
268
|
+
exports.isMetaKey = edit_utils.isMetaKey;
|
|
269
|
+
exports.isPaste = edit_utils.isPaste;
|
|
270
|
+
exports.isShortcutModifier = edit_utils.isShortcutModifier;
|
|
271
|
+
exports.isTab = edit_utils.isTab;
|
|
272
|
+
exports.isTabKeyValue = edit_utils.isTabKeyValue;
|
|
273
|
+
exports.h = index.h;
|
|
247
274
|
exports.CELL_CLASS = dimension_helpers.CELL_CLASS;
|
|
248
275
|
exports.CELL_HANDLER_CLASS = dimension_helpers.CELL_HANDLER_CLASS;
|
|
249
276
|
exports.DATA_COL = dimension_helpers.DATA_COL;
|
|
@@ -267,18 +294,15 @@ exports.ROW_FOCUSED_CLASS = dimension_helpers.ROW_FOCUSED_CLASS;
|
|
|
267
294
|
exports.ROW_HEADER_TYPE = dimension_helpers.ROW_HEADER_TYPE;
|
|
268
295
|
exports.SELECTION_BORDER_CLASS = dimension_helpers.SELECTION_BORDER_CLASS;
|
|
269
296
|
exports.TMP_SELECTION_BG_CLASS = dimension_helpers.TMP_SELECTION_BG_CLASS;
|
|
270
|
-
exports.applyMixins = dimension_helpers.applyMixins;
|
|
271
297
|
exports.calculateDimensionData = dimension_helpers.calculateDimensionData;
|
|
272
298
|
Object.defineProperty(exports, "codesLetter", {
|
|
273
299
|
enumerable: true,
|
|
274
300
|
get: function () { return dimension_helpers.codesLetter; }
|
|
275
301
|
});
|
|
276
|
-
exports.findPositionInArray = dimension_helpers.findPositionInArray;
|
|
277
302
|
exports.gatherTrimmedItems = dimension_helpers.gatherTrimmedItems;
|
|
278
303
|
exports.getItemByIndex = dimension_helpers.getItemByIndex;
|
|
279
304
|
exports.getItemByPosition = dimension_helpers.getItemByPosition;
|
|
280
305
|
exports.getPhysical = dimension_helpers.getPhysical;
|
|
281
|
-
exports.getScrollbarSize = dimension_helpers.getScrollbarSize;
|
|
282
306
|
exports.getSourceItem = dimension_helpers.getSourceItem;
|
|
283
307
|
exports.getSourceItemVirtualIndexByProp = dimension_helpers.getSourceItemVirtualIndexByProp;
|
|
284
308
|
exports.getSourcePhysicalIndex = dimension_helpers.getSourcePhysicalIndex;
|
|
@@ -287,40 +311,21 @@ Object.defineProperty(exports, "keyValues", {
|
|
|
287
311
|
enumerable: true,
|
|
288
312
|
get: function () { return dimension_helpers.keyValues; }
|
|
289
313
|
});
|
|
290
|
-
exports.mergeSortedArray = dimension_helpers.mergeSortedArray;
|
|
291
314
|
exports.proxyPlugin = dimension_helpers.proxyPlugin;
|
|
292
|
-
exports.pushSorted = dimension_helpers.pushSorted;
|
|
293
|
-
exports.range = dimension_helpers.range;
|
|
294
|
-
exports.scaleValue = dimension_helpers.scaleValue;
|
|
295
315
|
exports.setItems = dimension_helpers.setItems;
|
|
296
316
|
exports.setSourceByPhysicalIndex = dimension_helpers.setSourceByPhysicalIndex;
|
|
297
317
|
exports.setSourceByVirtualIndex = dimension_helpers.setSourceByVirtualIndex;
|
|
298
318
|
exports.setStore = dimension_helpers.setStore;
|
|
299
|
-
exports.timeout = dimension_helpers.timeout;
|
|
300
319
|
exports.trimmedPlugin = dimension_helpers.trimmedPlugin;
|
|
301
|
-
exports.TextEditor = textEditor.TextEditor;
|
|
302
|
-
exports.isAll = edit_utils.isAll;
|
|
303
|
-
exports.isClear = edit_utils.isClear;
|
|
304
|
-
exports.isCopy = edit_utils.isCopy;
|
|
305
|
-
exports.isCtrlKey = edit_utils.isCtrlKey;
|
|
306
|
-
exports.isCtrlMetaKey = edit_utils.isCtrlMetaKey;
|
|
307
|
-
exports.isCut = edit_utils.isCut;
|
|
308
|
-
exports.isEditInput = edit_utils.isEditInput;
|
|
309
|
-
exports.isEditorCtrConstructible = edit_utils.isEditorCtrConstructible;
|
|
310
|
-
exports.isEnterKeyValue = edit_utils.isEnterKeyValue;
|
|
311
|
-
exports.isMetaKey = edit_utils.isMetaKey;
|
|
312
|
-
exports.isPaste = edit_utils.isPaste;
|
|
313
|
-
exports.isShortcutModifier = edit_utils.isShortcutModifier;
|
|
314
|
-
exports.isTab = edit_utils.isTab;
|
|
315
|
-
exports.isTabKeyValue = edit_utils.isTabKeyValue;
|
|
316
|
-
exports.h = index.h;
|
|
317
320
|
exports.ViewportStore = viewport_store.ViewportStore;
|
|
318
321
|
exports.addMissingItems = viewport_store.addMissingItems;
|
|
319
322
|
exports.calculateRowHeaderSize = viewport_store.calculateRowHeaderSize;
|
|
323
|
+
exports.clampViewportCoordinate = viewport_store.clampViewportCoordinate;
|
|
320
324
|
exports.getFirstItem = viewport_store.getFirstItem;
|
|
321
325
|
exports.getItems = viewport_store.getItems;
|
|
322
326
|
exports.getLastItem = viewport_store.getLastItem;
|
|
323
327
|
exports.getUpdatedItemsByPosition = viewport_store.getUpdatedItemsByPosition;
|
|
328
|
+
exports.getViewportMaxCoordinate = viewport_store.getViewportMaxCoordinate;
|
|
324
329
|
exports.isActiveRange = viewport_store.isActiveRange;
|
|
325
330
|
exports.isActiveRangeOutsideLastItem = viewport_store.isActiveRangeOutsideLastItem;
|
|
326
331
|
exports.recombineByOffset = viewport_store.recombineByOffset;
|
|
@@ -4,16 +4,17 @@
|
|
|
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-
|
|
7
|
+
var column_service = require('./column.service-f612L4ql.js');
|
|
8
|
+
var dimension_helpers = require('./dimension.helpers-B9HgANnM.js');
|
|
9
9
|
var debounce = require('./debounce-CcpHiH2p.js');
|
|
10
|
-
var
|
|
11
|
-
var viewport_store = require('./viewport.store-
|
|
10
|
+
var viewport_helpers = require('./viewport.helpers-BND76K2j.js');
|
|
11
|
+
var viewport_store = require('./viewport.store-BlKQ4x9H.js');
|
|
12
|
+
var column_drag_plugin = require('./column.drag.plugin-CaEBDG-Q.js');
|
|
12
13
|
var theme_service = require('./theme.service-BgnxGIjK.js');
|
|
13
|
-
var
|
|
14
|
+
var index$1 = require('./index-DxaSE5uZ.js');
|
|
14
15
|
var events = require('./events-DeLDyZlb.js');
|
|
15
16
|
require('./filter.button-w6LWnyhi.js');
|
|
16
|
-
require('./header-cell-renderer-
|
|
17
|
+
require('./header-cell-renderer-4yq9_WbM.js');
|
|
17
18
|
|
|
18
19
|
class ColumnDataProvider {
|
|
19
20
|
get stores() {
|
|
@@ -365,6 +366,20 @@ class DimensionProvider {
|
|
|
365
366
|
}
|
|
366
367
|
setViewPortCoordinate({ type, coordinate = this.viewports.stores[type].lastCoordinate, force = false, }) {
|
|
367
368
|
const dimension = this.stores[type].getCurrentState();
|
|
369
|
+
const viewport = this.viewports.stores[type].store;
|
|
370
|
+
const clientSize = viewport.get('clientSize');
|
|
371
|
+
const viewportSize = viewport.get('virtualSize');
|
|
372
|
+
const scrollDimension = viewport_helpers.getScrollDimension({
|
|
373
|
+
contentSize: dimension.realSize,
|
|
374
|
+
clientSize,
|
|
375
|
+
virtualSize: viewportSize,
|
|
376
|
+
});
|
|
377
|
+
const renderCoordinate = viewport_store.clampViewportCoordinate(coordinate, dimension, viewportSize);
|
|
378
|
+
const renderOffset = clientSize && viewportSize
|
|
379
|
+
? scrollDimension.getRenderOffset(renderCoordinate)
|
|
380
|
+
: 0;
|
|
381
|
+
this.stores[type].setStore({ renderOffset });
|
|
382
|
+
this.viewports.stores[type].setViewport({ renderOffset });
|
|
368
383
|
this.viewports.stores[type].setViewPortCoordinate(coordinate, dimension, force);
|
|
369
384
|
}
|
|
370
385
|
getViewPortPos(e) {
|
|
@@ -513,7 +528,8 @@ class ViewportService {
|
|
|
513
528
|
(_a = this.config.dimensionProvider) === null || _a === void 0 ? void 0 : _a.setCustomSizes(type, detail, true);
|
|
514
529
|
// set resize event
|
|
515
530
|
const changedItems = {};
|
|
516
|
-
for (const
|
|
531
|
+
for (const i of Object.keys(detail || {})) {
|
|
532
|
+
const size = detail[i];
|
|
517
533
|
const virtualIndex = parseInt(i, 10);
|
|
518
534
|
const item = dimension_helpers.getSourceItem(store, virtualIndex);
|
|
519
535
|
if (item) {
|
|
@@ -916,7 +932,10 @@ class SelectionStoreConnector {
|
|
|
916
932
|
const nextItem = column_service.nextCell(focus, lastCell);
|
|
917
933
|
let nextStore;
|
|
918
934
|
if (nextItem) {
|
|
919
|
-
Object.
|
|
935
|
+
Object.keys(nextItem).forEach((t) => {
|
|
936
|
+
var _a;
|
|
937
|
+
const type = t;
|
|
938
|
+
const nextItemCoord = (_a = nextItem[type]) !== null && _a !== void 0 ? _a : 0;
|
|
920
939
|
let stores;
|
|
921
940
|
switch (type) {
|
|
922
941
|
case 'x':
|
|
@@ -1663,7 +1682,7 @@ const RevoGridComponent = class {
|
|
|
1663
1682
|
if (!rgCol) {
|
|
1664
1683
|
return;
|
|
1665
1684
|
}
|
|
1666
|
-
await
|
|
1685
|
+
await index$1.timeout();
|
|
1667
1686
|
const colGroup = rgCol.pin || 'rgCol';
|
|
1668
1687
|
if (!this.columnProvider) {
|
|
1669
1688
|
throw new Error('Not connected');
|
|
@@ -1875,7 +1894,7 @@ const RevoGridComponent = class {
|
|
|
1875
1894
|
async onCellEdit(e) {
|
|
1876
1895
|
var _a;
|
|
1877
1896
|
const { defaultPrevented, detail } = this.beforeedit.emit(e.detail);
|
|
1878
|
-
await
|
|
1897
|
+
await index$1.timeout();
|
|
1879
1898
|
// apply data
|
|
1880
1899
|
if (!defaultPrevented) {
|
|
1881
1900
|
(_a = this.dataProvider) === null || _a === void 0 ? void 0 : _a.setCellData(detail);
|
|
@@ -1958,12 +1977,13 @@ const RevoGridComponent = class {
|
|
|
1958
1977
|
return;
|
|
1959
1978
|
}
|
|
1960
1979
|
const columns = this.columnProvider.setColumns(beforeApplyEvent.detail);
|
|
1980
|
+
const order = {};
|
|
1981
|
+
for (const prop of Object.keys(beforeApplyEvent.detail.sort)) {
|
|
1982
|
+
order[prop] = beforeApplyEvent.detail.sort[prop].order;
|
|
1983
|
+
}
|
|
1961
1984
|
this.aftercolumnsset.emit({
|
|
1962
1985
|
columns,
|
|
1963
|
-
order
|
|
1964
|
-
acc[prop] = column.order;
|
|
1965
|
-
return acc;
|
|
1966
|
-
}, {}),
|
|
1986
|
+
order,
|
|
1967
1987
|
});
|
|
1968
1988
|
}
|
|
1969
1989
|
disableVirtualXChanged(newVal = false, prevVal = false) {
|
|
@@ -2252,7 +2272,7 @@ const RevoGridComponent = class {
|
|
|
2252
2272
|
if (Object.keys((_a = this.trimmedRows) !== null && _a !== void 0 ? _a : {}).length > 0) {
|
|
2253
2273
|
this.trimmedRowsChanged(this.trimmedRows);
|
|
2254
2274
|
}
|
|
2255
|
-
this.rowDefChanged(this.rowDefinitions);
|
|
2275
|
+
this.rowDefChanged(this.rowDefinitions, undefined, undefined, false);
|
|
2256
2276
|
// init grouping
|
|
2257
2277
|
if (this.grouping && Object.keys(this.grouping).length > 0) {
|
|
2258
2278
|
this.groupingChanged(this.grouping);
|