@vuu-ui/vuu-utils 0.6.13-debug → 0.6.14-debug
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/cjs/index.js +359 -124
- package/cjs/index.js.map +4 -4
- package/esm/index.js +360 -124
- package/esm/index.js.map +4 -4
- package/package.json +5 -5
- package/types/column-utils.d.ts +9 -3
- package/types/component-registry.d.ts +1 -1
- package/types/cookie-utils.d.ts +1 -0
- package/types/debug-utils.d.ts +9 -0
- package/types/event-emitter.d.ts +12 -18
- package/types/index.d.ts +5 -1
- package/types/json-utils.d.ts +6 -0
- package/types/keyset.d.ts +11 -0
- package/types/logging-utils.d.ts +28 -24
- package/types/perf-utils.d.ts +5 -0
- package/types/logging-level.d.ts +0 -1
- package/types/row-utils.d.ts +0 -10
package/cjs/index.js
CHANGED
|
@@ -16,21 +16,34 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var __accessCheck = (obj, member, msg) => {
|
|
20
|
+
if (!member.has(obj))
|
|
21
|
+
throw TypeError("Cannot " + msg);
|
|
22
|
+
};
|
|
23
|
+
var __privateGet = (obj, member, getter) => {
|
|
24
|
+
__accessCheck(obj, member, "read from private field");
|
|
25
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
26
|
+
};
|
|
27
|
+
var __privateAdd = (obj, member, value) => {
|
|
28
|
+
if (member.has(obj))
|
|
29
|
+
throw TypeError("Cannot add the same private member more than once");
|
|
30
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
31
|
+
};
|
|
19
32
|
|
|
20
33
|
// src/index.ts
|
|
21
34
|
var src_exports = {};
|
|
22
35
|
__export(src_exports, {
|
|
23
36
|
AggregationType: () => AggregationType,
|
|
24
|
-
ConsoleLogger: () => ConsoleLogger,
|
|
25
37
|
DOWN1: () => DOWN1,
|
|
26
38
|
DOWN2: () => DOWN2,
|
|
27
39
|
DataWindow: () => DataWindow,
|
|
28
40
|
EventEmitter: () => EventEmitter,
|
|
41
|
+
KeySet: () => KeySet,
|
|
42
|
+
RangeMonitor: () => RangeMonitor,
|
|
29
43
|
UP1: () => UP1,
|
|
30
44
|
UP2: () => UP2,
|
|
31
45
|
WindowRange: () => WindowRange,
|
|
32
46
|
addGroupColumn: () => addGroupColumn,
|
|
33
|
-
addRowsToIndex: () => addRowsToIndex,
|
|
34
47
|
addSortColumn: () => addSortColumn,
|
|
35
48
|
applyFilterToColumns: () => applyFilterToColumns,
|
|
36
49
|
applyGroupByToColumns: () => applyGroupByToColumns,
|
|
@@ -38,11 +51,13 @@ __export(src_exports, {
|
|
|
38
51
|
applySortToColumns: () => applySortToColumns,
|
|
39
52
|
buildColumnMap: () => buildColumnMap,
|
|
40
53
|
createEl: () => createEl,
|
|
54
|
+
debounce: () => debounce,
|
|
41
55
|
defaultValueFormatter: () => defaultValueFormatter,
|
|
42
56
|
deselectItem: () => deselectItem,
|
|
43
57
|
expandSelection: () => expandSelection,
|
|
44
58
|
extractFilterForColumn: () => extractFilterForColumn,
|
|
45
59
|
extractGroupColumn: () => extractGroupColumn,
|
|
60
|
+
findColumn: () => findColumn,
|
|
46
61
|
flattenColumnGroup: () => flattenColumnGroup,
|
|
47
62
|
formatDate: () => formatDate,
|
|
48
63
|
fromServerDataType: () => fromServerDataType,
|
|
@@ -50,7 +65,10 @@ __export(src_exports, {
|
|
|
50
65
|
getCellRenderer: () => getCellRenderer,
|
|
51
66
|
getColumnName: () => getColumnName,
|
|
52
67
|
getColumnPinStyle: () => getColumnPinStyle,
|
|
68
|
+
getColumnsInViewport: () => getColumnsInViewport,
|
|
69
|
+
getCookieValue: () => getCookieValue,
|
|
53
70
|
getFullRange: () => getFullRange,
|
|
71
|
+
getLoggingConfig: () => getLoggingConfig,
|
|
54
72
|
getMovingValueDirection: () => getMovingValueDirection,
|
|
55
73
|
getRegisteredCellRenderers: () => getRegisteredCellRenderers,
|
|
56
74
|
getRowRecord: () => getRowRecord,
|
|
@@ -58,14 +76,16 @@ __export(src_exports, {
|
|
|
58
76
|
getUniqueId: () => getUniqueId,
|
|
59
77
|
getValueFormatter: () => getValueFormatter,
|
|
60
78
|
hasHeadings: () => hasHeadings,
|
|
61
|
-
indexRows: () => indexRows,
|
|
62
79
|
invariant: () => invariant,
|
|
63
80
|
isAndFilter: () => isAndFilter,
|
|
64
81
|
isCharacterKey: () => isCharacterKey,
|
|
65
|
-
|
|
82
|
+
isDataLoading: () => isDataLoading,
|
|
66
83
|
isFilterClause: () => isFilterClause,
|
|
67
84
|
isGroupColumn: () => isGroupColumn,
|
|
68
85
|
isInFilter: () => isInFilter,
|
|
86
|
+
isJsonAttribute: () => isJsonAttribute,
|
|
87
|
+
isJsonColumn: () => isJsonColumn,
|
|
88
|
+
isJsonGroup: () => isJsonGroup,
|
|
69
89
|
isKeyedColumn: () => isKeyedColumn,
|
|
70
90
|
isMultiClauseFilter: () => isMultiClauseFilter,
|
|
71
91
|
isMultiValueFilter: () => isMultiValueFilter,
|
|
@@ -80,6 +100,7 @@ __export(src_exports, {
|
|
|
80
100
|
isTypeDescriptor: () => isTypeDescriptor,
|
|
81
101
|
isValidNumber: () => isValidNumber,
|
|
82
102
|
itemsChanged: () => itemsChanged,
|
|
103
|
+
jsonToDataSourceRows: () => jsonToDataSourceRows,
|
|
83
104
|
lastWord: () => lastWord,
|
|
84
105
|
logger: () => logger,
|
|
85
106
|
mapSortCriteria: () => mapSortCriteria,
|
|
@@ -96,9 +117,9 @@ __export(src_exports, {
|
|
|
96
117
|
setAggregations: () => setAggregations,
|
|
97
118
|
setSortColumn: () => setSortColumn,
|
|
98
119
|
sortPinnedColumns: () => sortPinnedColumns,
|
|
120
|
+
throttle: () => throttle,
|
|
99
121
|
toColumnDescriptor: () => toColumnDescriptor,
|
|
100
122
|
toDataSourceColumns: () => toDataSourceColumns,
|
|
101
|
-
update: () => update,
|
|
102
123
|
uuid: () => uuid,
|
|
103
124
|
withinRange: () => withinRange
|
|
104
125
|
});
|
|
@@ -293,7 +314,7 @@ var flattenColumnGroup = (columns) => {
|
|
|
293
314
|
return columns;
|
|
294
315
|
}
|
|
295
316
|
};
|
|
296
|
-
function extractGroupColumn(columns, groupBy) {
|
|
317
|
+
function extractGroupColumn(columns, groupBy, confirmed = true) {
|
|
297
318
|
if (groupBy && groupBy.length > 0) {
|
|
298
319
|
const flattenedColumns = flattenColumnGroup(columns);
|
|
299
320
|
const [groupedColumns, rest] = flattenedColumns.reduce(
|
|
@@ -334,6 +355,7 @@ function extractGroupColumn(columns, groupBy) {
|
|
|
334
355
|
heading: ["group-col"],
|
|
335
356
|
isGroup: true,
|
|
336
357
|
columns: groupCols,
|
|
358
|
+
groupConfirmed: confirmed,
|
|
337
359
|
width: groupCols.map((c) => c.width).reduce((a, b) => a + b) + 100
|
|
338
360
|
};
|
|
339
361
|
return [groupCol, rest];
|
|
@@ -341,6 +363,15 @@ function extractGroupColumn(columns, groupBy) {
|
|
|
341
363
|
return [null, flattenColumnGroup(columns)];
|
|
342
364
|
}
|
|
343
365
|
var isGroupColumn = (column) => column.isGroup === true;
|
|
366
|
+
var isJsonAttribute = (value) => typeof value === "string" && value.endsWith("+");
|
|
367
|
+
var isJsonGroup = (column, row) => {
|
|
368
|
+
var _a;
|
|
369
|
+
return ((_a = column.type) == null ? void 0 : _a.name) === "json" && isJsonAttribute(row[column.key]);
|
|
370
|
+
};
|
|
371
|
+
var isJsonColumn = (column) => {
|
|
372
|
+
var _a;
|
|
373
|
+
return ((_a = column.type) == null ? void 0 : _a.name) === "json";
|
|
374
|
+
};
|
|
344
375
|
var sortPinnedColumns = (columns) => {
|
|
345
376
|
const leftPinnedColumns = [];
|
|
346
377
|
const rightPinnedColumns = [];
|
|
@@ -451,12 +482,13 @@ var collectFiltersForColumn = (filter, columnName) => {
|
|
|
451
482
|
filters: results
|
|
452
483
|
};
|
|
453
484
|
};
|
|
454
|
-
var applyGroupByToColumns = (columns, groupBy) => {
|
|
485
|
+
var applyGroupByToColumns = (columns, groupBy, confirmed = true) => {
|
|
455
486
|
var _a;
|
|
456
487
|
if (groupBy.length) {
|
|
457
488
|
const [groupColumn, nonGroupedColumns] = extractGroupColumn(
|
|
458
489
|
columns,
|
|
459
|
-
groupBy
|
|
490
|
+
groupBy,
|
|
491
|
+
confirmed
|
|
460
492
|
);
|
|
461
493
|
if (groupColumn) {
|
|
462
494
|
return [groupColumn].concat(nonGroupedColumns);
|
|
@@ -512,6 +544,19 @@ var getColumnName = (name) => {
|
|
|
512
544
|
return name.slice(0, pos);
|
|
513
545
|
}
|
|
514
546
|
};
|
|
547
|
+
var findColumn = (columns, columnName) => {
|
|
548
|
+
const column = columns.find((col) => col.name === columnName);
|
|
549
|
+
if (column) {
|
|
550
|
+
return column;
|
|
551
|
+
} else {
|
|
552
|
+
const groupColumn = columns.find(
|
|
553
|
+
(col) => col.isGroup
|
|
554
|
+
);
|
|
555
|
+
if (groupColumn) {
|
|
556
|
+
return findColumn(groupColumn.columns, columnName);
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
};
|
|
515
560
|
var toDataSourceColumns = (column) => column.expression ? `${column.name}:${column.serverDataType}:${column.expression}` : column.name;
|
|
516
561
|
var getRowRecord = (row, columnMap) => {
|
|
517
562
|
return Object.entries(columnMap).reduce(
|
|
@@ -522,6 +567,33 @@ var getRowRecord = (row, columnMap) => {
|
|
|
522
567
|
{}
|
|
523
568
|
);
|
|
524
569
|
};
|
|
570
|
+
var isDataLoading = (columns) => {
|
|
571
|
+
return isGroupColumn(columns[0]) && columns[0].groupConfirmed === false;
|
|
572
|
+
};
|
|
573
|
+
var getColumnsInViewport = (columns, vpStart, vpEnd) => {
|
|
574
|
+
var _a;
|
|
575
|
+
const visibleColumns = [];
|
|
576
|
+
let preSpan = 0;
|
|
577
|
+
for (let offset = 0, i = 0; i < columns.length; i++) {
|
|
578
|
+
const column = columns[i];
|
|
579
|
+
if (column.hidden) {
|
|
580
|
+
continue;
|
|
581
|
+
} else if (offset + column.width < vpStart) {
|
|
582
|
+
if (offset + column.width + ((_a = columns[i + 1]) == null ? void 0 : _a.width) > vpStart) {
|
|
583
|
+
visibleColumns.push(column);
|
|
584
|
+
} else {
|
|
585
|
+
preSpan += 1;
|
|
586
|
+
}
|
|
587
|
+
} else if (offset > vpEnd) {
|
|
588
|
+
visibleColumns.push(column);
|
|
589
|
+
break;
|
|
590
|
+
} else {
|
|
591
|
+
visibleColumns.push(column);
|
|
592
|
+
}
|
|
593
|
+
offset += column.width;
|
|
594
|
+
}
|
|
595
|
+
return [visibleColumns, preSpan];
|
|
596
|
+
};
|
|
525
597
|
|
|
526
598
|
// src/component-registry.ts
|
|
527
599
|
var cellRenderersMap = /* @__PURE__ */ new Map();
|
|
@@ -539,7 +611,6 @@ var isTypeCompatible = (rendererType, serverDataType) => {
|
|
|
539
611
|
var isCellRenderer = (type, component) => type === "cell-renderer";
|
|
540
612
|
var isCellConfigPanel = (type, component) => type === "cell-config-panel";
|
|
541
613
|
function registerComponent(componentName, component, type = "cell-renderer", options) {
|
|
542
|
-
console.log("registre component");
|
|
543
614
|
if (isCellRenderer(type, component)) {
|
|
544
615
|
cellRenderersMap.set(componentName, component);
|
|
545
616
|
} else if (isCellConfigPanel(type, component)) {
|
|
@@ -575,7 +646,11 @@ function getCellConfigPanelRenderer(name) {
|
|
|
575
646
|
// src/range-utils.ts
|
|
576
647
|
function getFullRange({ from, to }, bufferSize = 0, rowCount = Number.MAX_SAFE_INTEGER) {
|
|
577
648
|
if (bufferSize === 0) {
|
|
578
|
-
|
|
649
|
+
if (rowCount < from) {
|
|
650
|
+
return { from: 0, to: 0 };
|
|
651
|
+
} else {
|
|
652
|
+
return { from, to: Math.min(to, rowCount) };
|
|
653
|
+
}
|
|
579
654
|
} else if (from === 0) {
|
|
580
655
|
return { from, to: Math.min(to + bufferSize, rowCount) };
|
|
581
656
|
} else {
|
|
@@ -734,6 +809,76 @@ var formatDate = (date, format) => {
|
|
|
734
809
|
return date.toUTCString();
|
|
735
810
|
};
|
|
736
811
|
|
|
812
|
+
// src/cookie-utils.ts
|
|
813
|
+
var getCookieValue = (name) => {
|
|
814
|
+
var _a, _b;
|
|
815
|
+
if (((_a = globalThis.document) == null ? void 0 : _a.cookie) !== void 0) {
|
|
816
|
+
return (_b = globalThis.document.cookie.split("; ").find((row) => row.startsWith(`${name}=`))) == null ? void 0 : _b.split("=")[1];
|
|
817
|
+
}
|
|
818
|
+
};
|
|
819
|
+
|
|
820
|
+
// src/logging-utils.ts
|
|
821
|
+
var NO_OP = () => void 0;
|
|
822
|
+
var DEFAULT_DEBUG_LEVEL = false ? "error" : "info";
|
|
823
|
+
var { loggingLevel = DEFAULT_DEBUG_LEVEL } = typeof loggingSettings !== "undefined" ? loggingSettings : {};
|
|
824
|
+
var logger = (category) => {
|
|
825
|
+
const debugEnabled2 = loggingLevel === "debug";
|
|
826
|
+
const infoEnabled = debugEnabled2 || loggingLevel === "info";
|
|
827
|
+
const warnEnabled = infoEnabled || loggingLevel === "warn";
|
|
828
|
+
const errorEnabled = warnEnabled || loggingLevel === "error";
|
|
829
|
+
const info = infoEnabled ? (message) => console.info(`[${category}] ${message}`) : NO_OP;
|
|
830
|
+
const warn = warnEnabled ? (message) => console.warn(`[${category}] ${message}`) : NO_OP;
|
|
831
|
+
const debug2 = debugEnabled2 ? (message) => console.debug(`[${category}] ${message}`) : NO_OP;
|
|
832
|
+
const error = errorEnabled ? (message) => console.error(`[${category}] ${message}`) : NO_OP;
|
|
833
|
+
if (false) {
|
|
834
|
+
return {
|
|
835
|
+
errorEnabled,
|
|
836
|
+
error
|
|
837
|
+
};
|
|
838
|
+
} else {
|
|
839
|
+
return {
|
|
840
|
+
debugEnabled: debugEnabled2,
|
|
841
|
+
infoEnabled,
|
|
842
|
+
warnEnabled,
|
|
843
|
+
errorEnabled,
|
|
844
|
+
info,
|
|
845
|
+
warn,
|
|
846
|
+
debug: debug2,
|
|
847
|
+
error
|
|
848
|
+
};
|
|
849
|
+
}
|
|
850
|
+
};
|
|
851
|
+
var getLoggingConfig = () => {
|
|
852
|
+
const loggingLevel2 = getCookieValue("vuu-logging-level");
|
|
853
|
+
return `const loggingSettings = { loggingLevel: "${loggingLevel2}"};`;
|
|
854
|
+
};
|
|
855
|
+
|
|
856
|
+
// src/debug-utils.ts
|
|
857
|
+
var { debug, debugEnabled } = logger("range-monitor");
|
|
858
|
+
var RangeMonitor = class {
|
|
859
|
+
constructor(source) {
|
|
860
|
+
this.source = source;
|
|
861
|
+
this.range = { from: 0, to: 0 };
|
|
862
|
+
this.timestamp = 0;
|
|
863
|
+
}
|
|
864
|
+
isSet() {
|
|
865
|
+
return this.timestamp !== 0;
|
|
866
|
+
}
|
|
867
|
+
set({ from, to }) {
|
|
868
|
+
const { timestamp } = this;
|
|
869
|
+
this.range.from = from;
|
|
870
|
+
this.range.to = to;
|
|
871
|
+
this.timestamp = performance.now();
|
|
872
|
+
if (timestamp) {
|
|
873
|
+
debugEnabled && debug(
|
|
874
|
+
`<${this.source}> [${from}-${to}], ${(this.timestamp - timestamp).toFixed(0)} ms elapsed`
|
|
875
|
+
);
|
|
876
|
+
} else {
|
|
877
|
+
return 0;
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
};
|
|
881
|
+
|
|
737
882
|
// src/html-utils.ts
|
|
738
883
|
var createEl = (elementType, className, textContent) => {
|
|
739
884
|
const el = document.createElement(elementType);
|
|
@@ -753,31 +898,29 @@ function isArrayOfListeners(listeners) {
|
|
|
753
898
|
function isOnlyListener(listeners) {
|
|
754
899
|
return !Array.isArray(listeners);
|
|
755
900
|
}
|
|
901
|
+
var _events;
|
|
756
902
|
var EventEmitter = class {
|
|
757
903
|
constructor() {
|
|
758
|
-
this
|
|
904
|
+
__privateAdd(this, _events, /* @__PURE__ */ new Map());
|
|
759
905
|
}
|
|
760
|
-
addListener(
|
|
761
|
-
|
|
762
|
-
this._events = {};
|
|
763
|
-
}
|
|
764
|
-
const listeners = this._events[type];
|
|
906
|
+
addListener(event, listener) {
|
|
907
|
+
const listeners = __privateGet(this, _events).get(event);
|
|
765
908
|
if (!listeners) {
|
|
766
|
-
this.
|
|
909
|
+
__privateGet(this, _events).set(event, listener);
|
|
767
910
|
} else if (isArrayOfListeners(listeners)) {
|
|
768
911
|
listeners.push(listener);
|
|
769
912
|
} else if (isOnlyListener(listeners)) {
|
|
770
|
-
this.
|
|
913
|
+
__privateGet(this, _events).set(event, [listeners, listener]);
|
|
771
914
|
}
|
|
772
915
|
}
|
|
773
|
-
removeListener(
|
|
774
|
-
if (!this
|
|
916
|
+
removeListener(event, listener) {
|
|
917
|
+
if (!__privateGet(this, _events).has(event)) {
|
|
775
918
|
return;
|
|
776
919
|
}
|
|
777
|
-
const listenerOrListeners = this.
|
|
920
|
+
const listenerOrListeners = __privateGet(this, _events).get(event);
|
|
778
921
|
let position = -1;
|
|
779
922
|
if (listenerOrListeners === listener) {
|
|
780
|
-
|
|
923
|
+
__privateGet(this, _events).delete(event);
|
|
781
924
|
} else if (Array.isArray(listenerOrListeners)) {
|
|
782
925
|
for (let i = length; i-- > 0; ) {
|
|
783
926
|
if (listenerOrListeners[i] === listener) {
|
|
@@ -790,63 +933,58 @@ var EventEmitter = class {
|
|
|
790
933
|
}
|
|
791
934
|
if (listenerOrListeners.length === 1) {
|
|
792
935
|
listenerOrListeners.length = 0;
|
|
793
|
-
|
|
936
|
+
__privateGet(this, _events).delete(event);
|
|
794
937
|
} else {
|
|
795
938
|
listenerOrListeners.splice(position, 1);
|
|
796
939
|
}
|
|
797
940
|
}
|
|
798
941
|
}
|
|
799
|
-
removeAllListeners(
|
|
800
|
-
if (
|
|
801
|
-
|
|
802
|
-
} else if (
|
|
803
|
-
|
|
804
|
-
} else {
|
|
805
|
-
delete this._events[type];
|
|
942
|
+
removeAllListeners(event) {
|
|
943
|
+
if (event && __privateGet(this, _events).has(event)) {
|
|
944
|
+
__privateGet(this, _events).delete(event);
|
|
945
|
+
} else if (event === void 0) {
|
|
946
|
+
__privateGet(this, _events).clear();
|
|
806
947
|
}
|
|
807
948
|
}
|
|
808
|
-
emit(
|
|
809
|
-
if (this
|
|
810
|
-
const handler = this.
|
|
949
|
+
emit(event, ...args) {
|
|
950
|
+
if (__privateGet(this, _events)) {
|
|
951
|
+
const handler = __privateGet(this, _events).get(event);
|
|
811
952
|
if (handler) {
|
|
812
|
-
invokeHandler(handler,
|
|
813
|
-
}
|
|
814
|
-
const wildcardHandler = this._events["*"];
|
|
815
|
-
if (wildcardHandler) {
|
|
816
|
-
invokeHandler(wildcardHandler, type, args);
|
|
953
|
+
this.invokeHandler(handler, args);
|
|
817
954
|
}
|
|
818
955
|
}
|
|
819
956
|
}
|
|
820
|
-
once(
|
|
821
|
-
const handler = (
|
|
822
|
-
this.removeListener(
|
|
823
|
-
listener(
|
|
957
|
+
once(event, listener) {
|
|
958
|
+
const handler = (...args) => {
|
|
959
|
+
this.removeListener(event, handler);
|
|
960
|
+
listener(...args);
|
|
824
961
|
};
|
|
825
|
-
this.on(
|
|
962
|
+
this.on(event, handler);
|
|
826
963
|
}
|
|
827
|
-
on(
|
|
828
|
-
|
|
964
|
+
on(event, listener) {
|
|
965
|
+
this.addListener(event, listener);
|
|
829
966
|
}
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
967
|
+
invokeHandler(handler, args) {
|
|
968
|
+
if (isArrayOfListeners(handler)) {
|
|
969
|
+
handler.slice().forEach((listener) => this.invokeHandler(listener, args));
|
|
970
|
+
} else {
|
|
971
|
+
switch (args.length) {
|
|
972
|
+
case 0:
|
|
973
|
+
handler();
|
|
974
|
+
break;
|
|
975
|
+
case 1:
|
|
976
|
+
handler(args[0]);
|
|
977
|
+
break;
|
|
978
|
+
case 2:
|
|
979
|
+
handler(args[0], args[1]);
|
|
980
|
+
break;
|
|
981
|
+
default:
|
|
982
|
+
handler.call(null, ...args);
|
|
983
|
+
}
|
|
847
984
|
}
|
|
848
985
|
}
|
|
849
|
-
}
|
|
986
|
+
};
|
|
987
|
+
_events = new WeakMap();
|
|
850
988
|
|
|
851
989
|
// src/round-decimal.ts
|
|
852
990
|
var PUNCTUATION_STR = String.fromCharCode(8200);
|
|
@@ -1034,6 +1172,136 @@ function invariant(condition, message) {
|
|
|
1034
1172
|
}
|
|
1035
1173
|
}
|
|
1036
1174
|
|
|
1175
|
+
// src/json-utils.ts
|
|
1176
|
+
var { COUNT } = metadataKeys;
|
|
1177
|
+
var isJsonData = (value) => typeof value === "object" && value !== null;
|
|
1178
|
+
var vuuRowDataItemTypes = ["boolean", "number", "string"];
|
|
1179
|
+
var isVuuRowDataItem = (value) => vuuRowDataItemTypes.includes(typeof value);
|
|
1180
|
+
var typeofVuuDataItem = (value) => typeof value === "boolean" ? "boolean" : typeof value === "number" ? "number" : "string";
|
|
1181
|
+
var getCellValue = (attribute, attributeValue) => {
|
|
1182
|
+
if (isJsonData(attributeValue)) {
|
|
1183
|
+
return { attribute: `${attribute}+`, attributeValue: "", type: "json" };
|
|
1184
|
+
} else if (isVuuRowDataItem(attributeValue)) {
|
|
1185
|
+
return {
|
|
1186
|
+
attribute,
|
|
1187
|
+
attributeValue,
|
|
1188
|
+
type: typeofVuuDataItem(attributeValue)
|
|
1189
|
+
};
|
|
1190
|
+
} else {
|
|
1191
|
+
throw Error(`unsupported type ${typeof attributeValue} in JSON`);
|
|
1192
|
+
}
|
|
1193
|
+
};
|
|
1194
|
+
var jsonColumnType = {
|
|
1195
|
+
name: "json",
|
|
1196
|
+
renderer: {
|
|
1197
|
+
name: "json"
|
|
1198
|
+
}
|
|
1199
|
+
};
|
|
1200
|
+
var jsonToDataSourceRows = (json) => {
|
|
1201
|
+
const cols = [];
|
|
1202
|
+
cols.push(
|
|
1203
|
+
{
|
|
1204
|
+
name: "col 1",
|
|
1205
|
+
type: jsonColumnType
|
|
1206
|
+
},
|
|
1207
|
+
{
|
|
1208
|
+
name: "col 2",
|
|
1209
|
+
type: jsonColumnType
|
|
1210
|
+
}
|
|
1211
|
+
);
|
|
1212
|
+
const rows = [];
|
|
1213
|
+
addChildValues(rows, json, cols);
|
|
1214
|
+
return [cols, rows];
|
|
1215
|
+
};
|
|
1216
|
+
var addChildValues = (rows, json, cols, index = { value: 0 }, keyBase = "$root", depth = 0) => {
|
|
1217
|
+
let leafCount = 0;
|
|
1218
|
+
let rowCount = 0;
|
|
1219
|
+
if (depth === cols.length - 1) {
|
|
1220
|
+
cols.push({
|
|
1221
|
+
name: `col ${cols.length + 1}`,
|
|
1222
|
+
hidden: true,
|
|
1223
|
+
type: jsonColumnType
|
|
1224
|
+
});
|
|
1225
|
+
}
|
|
1226
|
+
const columnEntries = Object.entries(json);
|
|
1227
|
+
for (let i = 0; i < columnEntries.length; i++, index.value += 1) {
|
|
1228
|
+
const [key, value] = columnEntries[i];
|
|
1229
|
+
const { attribute, attributeValue, type } = getCellValue(key, value);
|
|
1230
|
+
const isLeaf = type !== "json";
|
|
1231
|
+
const blanks = Array(depth).fill("");
|
|
1232
|
+
const fullKey = `${keyBase}|${key}`;
|
|
1233
|
+
const row = [index.value, index.value, isLeaf, false, depth, 0, fullKey, 0, ...blanks, attribute, attributeValue];
|
|
1234
|
+
rows.push(row);
|
|
1235
|
+
rowCount += 1;
|
|
1236
|
+
if (isJsonData(value)) {
|
|
1237
|
+
const [nestedLeafCount, nestedRowCount] = addChildValues(
|
|
1238
|
+
rows,
|
|
1239
|
+
value,
|
|
1240
|
+
cols,
|
|
1241
|
+
{ value: index.value + 1 },
|
|
1242
|
+
fullKey,
|
|
1243
|
+
depth + 1
|
|
1244
|
+
);
|
|
1245
|
+
row[COUNT] = nestedLeafCount;
|
|
1246
|
+
leafCount += nestedLeafCount;
|
|
1247
|
+
rowCount += nestedRowCount;
|
|
1248
|
+
index.value += nestedRowCount;
|
|
1249
|
+
} else {
|
|
1250
|
+
leafCount += 1;
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
return [leafCount, rowCount];
|
|
1254
|
+
};
|
|
1255
|
+
|
|
1256
|
+
// src/keyset.ts
|
|
1257
|
+
var KeySet = class {
|
|
1258
|
+
constructor(range) {
|
|
1259
|
+
this.keys = /* @__PURE__ */ new Map();
|
|
1260
|
+
this.free = [];
|
|
1261
|
+
this.nextKeyValue = 0;
|
|
1262
|
+
this.reset(range);
|
|
1263
|
+
}
|
|
1264
|
+
next() {
|
|
1265
|
+
if (this.free.length > 0) {
|
|
1266
|
+
return this.free.pop();
|
|
1267
|
+
} else {
|
|
1268
|
+
return this.nextKeyValue++;
|
|
1269
|
+
}
|
|
1270
|
+
}
|
|
1271
|
+
reset({ from, to }) {
|
|
1272
|
+
this.keys.forEach((keyValue, rowIndex) => {
|
|
1273
|
+
if (rowIndex < from || rowIndex >= to) {
|
|
1274
|
+
this.free.push(keyValue);
|
|
1275
|
+
this.keys.delete(rowIndex);
|
|
1276
|
+
}
|
|
1277
|
+
});
|
|
1278
|
+
const size = to - from;
|
|
1279
|
+
if (this.keys.size + this.free.length > size) {
|
|
1280
|
+
this.free.length = size - this.keys.size;
|
|
1281
|
+
}
|
|
1282
|
+
for (let rowIndex = from; rowIndex < to; rowIndex++) {
|
|
1283
|
+
if (!this.keys.has(rowIndex)) {
|
|
1284
|
+
const nextKeyValue = this.next();
|
|
1285
|
+
this.keys.set(rowIndex, nextKeyValue);
|
|
1286
|
+
}
|
|
1287
|
+
}
|
|
1288
|
+
}
|
|
1289
|
+
keyFor(rowIndex) {
|
|
1290
|
+
const key = this.keys.get(rowIndex);
|
|
1291
|
+
if (key === void 0) {
|
|
1292
|
+
console.log(`key not found
|
|
1293
|
+
keys: ${this.toDebugString()}
|
|
1294
|
+
free : ${this.free.join(",")}
|
|
1295
|
+
`);
|
|
1296
|
+
throw Error(`KeySet, no key found for rowIndex ${rowIndex}`);
|
|
1297
|
+
}
|
|
1298
|
+
return key;
|
|
1299
|
+
}
|
|
1300
|
+
toDebugString() {
|
|
1301
|
+
return Array.from(this.keys.entries()).map((k, v) => `${k}=>${v}`).join(",");
|
|
1302
|
+
}
|
|
1303
|
+
};
|
|
1304
|
+
|
|
1037
1305
|
// src/nanoid/index.ts
|
|
1038
1306
|
var uuid = (size = 21) => {
|
|
1039
1307
|
let id = "";
|
|
@@ -1053,35 +1321,35 @@ var uuid = (size = 21) => {
|
|
|
1053
1321
|
return id;
|
|
1054
1322
|
};
|
|
1055
1323
|
|
|
1056
|
-
// src/
|
|
1057
|
-
function
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
}
|
|
1063
|
-
function indexRows(rows, indexField) {
|
|
1064
|
-
return addRowsToIndex(rows, {}, indexField);
|
|
1065
|
-
}
|
|
1066
|
-
function isEmptyRow(row) {
|
|
1067
|
-
return row[0] === void 0;
|
|
1324
|
+
// src/perf-utils.ts
|
|
1325
|
+
function debounce(callback, timeInterval) {
|
|
1326
|
+
let timeout;
|
|
1327
|
+
return (...args) => {
|
|
1328
|
+
clearTimeout(timeout);
|
|
1329
|
+
timeout = window.setTimeout(() => callback(...args), timeInterval);
|
|
1330
|
+
};
|
|
1068
1331
|
}
|
|
1069
|
-
function
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
const row = rows[idx].slice();
|
|
1076
|
-
for (let j = 1; j < updates[i].length; j += 3) {
|
|
1077
|
-
row[updates[i][j]] = updates[i][j + 2];
|
|
1078
|
-
}
|
|
1079
|
-
results[idx] = row;
|
|
1332
|
+
function throttle(callback, limit) {
|
|
1333
|
+
let wait = false;
|
|
1334
|
+
let lastArgs = void 0;
|
|
1335
|
+
function checkLastArgs() {
|
|
1336
|
+
if (lastArgs == void 0) {
|
|
1337
|
+
wait = false;
|
|
1080
1338
|
} else {
|
|
1081
|
-
|
|
1339
|
+
callback(...lastArgs);
|
|
1340
|
+
lastArgs = void 0;
|
|
1341
|
+
setTimeout(checkLastArgs, limit);
|
|
1082
1342
|
}
|
|
1083
1343
|
}
|
|
1084
|
-
return
|
|
1344
|
+
return (...args) => {
|
|
1345
|
+
if (wait) {
|
|
1346
|
+
lastArgs = args;
|
|
1347
|
+
} else {
|
|
1348
|
+
callback(...args);
|
|
1349
|
+
wait = true;
|
|
1350
|
+
setTimeout(checkLastArgs, limit);
|
|
1351
|
+
}
|
|
1352
|
+
};
|
|
1085
1353
|
}
|
|
1086
1354
|
|
|
1087
1355
|
// src/selection-utils.ts
|
|
@@ -1106,7 +1374,9 @@ var selectItem = (selectionModel, selected, itemIndex, rangeSelect, keepExisting
|
|
|
1106
1374
|
const singleSelect = selectionModel === "single";
|
|
1107
1375
|
const multiSelect = selectionModel === "extended" || selectionModel === "checkbox";
|
|
1108
1376
|
const actsLikeSingleSelect = singleSelect || multiSelect && !keepExistingSelection && !rangeSelect;
|
|
1109
|
-
if (
|
|
1377
|
+
if (selectionModel === "none") {
|
|
1378
|
+
return NO_SELECTION;
|
|
1379
|
+
} else if (actsLikeSingleSelect) {
|
|
1110
1380
|
return [itemIndex];
|
|
1111
1381
|
} else if (rangeSelect) {
|
|
1112
1382
|
if (selected.length === 0) {
|
|
@@ -1274,39 +1544,4 @@ var lastWord = (text) => {
|
|
|
1274
1544
|
return trimmedText.slice(pos + 1);
|
|
1275
1545
|
}
|
|
1276
1546
|
};
|
|
1277
|
-
|
|
1278
|
-
// src/logging-utils.ts
|
|
1279
|
-
var NO_OP = () => {
|
|
1280
|
-
};
|
|
1281
|
-
var ConsoleLogger = class {
|
|
1282
|
-
constructor(options, level) {
|
|
1283
|
-
const { buildEnv } = options || {};
|
|
1284
|
-
if (buildEnv === "production") {
|
|
1285
|
-
this.log = NO_OP;
|
|
1286
|
-
this.warn = NO_OP;
|
|
1287
|
-
this.error = NO_OP;
|
|
1288
|
-
this.group = NO_OP;
|
|
1289
|
-
this.groupCollapsed = NO_OP;
|
|
1290
|
-
this.groupEnd = NO_OP;
|
|
1291
|
-
this.assert = NO_OP;
|
|
1292
|
-
this.trace = NO_OP;
|
|
1293
|
-
this.debug = NO_OP;
|
|
1294
|
-
this.info = NO_OP;
|
|
1295
|
-
this.table = NO_OP;
|
|
1296
|
-
return;
|
|
1297
|
-
}
|
|
1298
|
-
this.log = console.log.bind(console);
|
|
1299
|
-
this.warn = console.warn.bind(console);
|
|
1300
|
-
this.error = console.error.bind(console);
|
|
1301
|
-
this.group = console.group.bind(console);
|
|
1302
|
-
this.groupEnd = console.groupEnd.bind(console);
|
|
1303
|
-
this.groupCollapsed = console.groupCollapsed.bind(console);
|
|
1304
|
-
this.assert = console.assert.bind(console);
|
|
1305
|
-
this.trace = console.trace.bind(console);
|
|
1306
|
-
this.debug = console.debug.bind(console);
|
|
1307
|
-
this.info = console.info.bind(console);
|
|
1308
|
-
this.table = console.table.bind(console);
|
|
1309
|
-
}
|
|
1310
|
-
};
|
|
1311
|
-
var logger = new ConsoleLogger({ buildEnv: "development" });
|
|
1312
1547
|
//# sourceMappingURL=index.js.map
|