@vuu-ui/vuu-utils 0.8.23-debug → 0.8.24-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 +85 -25
- package/cjs/index.js.map +3 -3
- package/esm/index.js +85 -25
- package/esm/index.js.map +3 -3
- package/package.json +5 -5
- package/types/column-utils.d.ts +12 -0
- package/types/component-registry.d.ts +13 -4
- package/types/datasource-utils.d.ts +15 -4
- package/types/html-utils.d.ts +1 -0
package/esm/index.js
CHANGED
|
@@ -220,6 +220,15 @@ var numericTypes = ["int", "long", "double"];
|
|
|
220
220
|
var getDefaultAlignment = (serverDataType) => serverDataType === void 0 ? "left" : numericTypes.includes(serverDataType) ? "right" : "left";
|
|
221
221
|
var isValidColumnAlignment = (v) => v === "left" || v === "right";
|
|
222
222
|
var isValidPinLocation = (v) => isValidColumnAlignment(v) || v === "floating" || v === "";
|
|
223
|
+
var VUU_COLUMN_DATA_TYPES = [
|
|
224
|
+
"long",
|
|
225
|
+
"double",
|
|
226
|
+
"int",
|
|
227
|
+
"string",
|
|
228
|
+
"char",
|
|
229
|
+
"boolean"
|
|
230
|
+
];
|
|
231
|
+
var isVuuColumnDataType = (value) => VUU_COLUMN_DATA_TYPES.includes(value);
|
|
223
232
|
var fromServerDataType = (serverDataType) => {
|
|
224
233
|
switch (serverDataType) {
|
|
225
234
|
case "double":
|
|
@@ -284,6 +293,7 @@ function projectUpdates(updates) {
|
|
|
284
293
|
}
|
|
285
294
|
return results;
|
|
286
295
|
}
|
|
296
|
+
var KEY = 6;
|
|
287
297
|
var metadataKeys = {
|
|
288
298
|
IDX: 0,
|
|
289
299
|
RENDER_IDX: 1,
|
|
@@ -291,7 +301,7 @@ var metadataKeys = {
|
|
|
291
301
|
IS_EXPANDED: 3,
|
|
292
302
|
DEPTH: 4,
|
|
293
303
|
COUNT: 5,
|
|
294
|
-
KEY
|
|
304
|
+
KEY,
|
|
295
305
|
SELECTED: 7,
|
|
296
306
|
count: 8,
|
|
297
307
|
// TODO following only used in datamodel
|
|
@@ -974,6 +984,7 @@ function applyWidthToColumns(columns, options) {
|
|
|
974
984
|
return columns;
|
|
975
985
|
}
|
|
976
986
|
var dataAndColumnUnchanged = (p, p1) => p.column === p1.column && p.column.valueFormatter(p.row[p.columnMap[p.column.name]]) === p1.column.valueFormatter(p1.row[p1.columnMap[p1.column.name]]);
|
|
987
|
+
var dataColumnAndKeyUnchanged = (p, p1) => p.column === p1.column && p.row[KEY] === p1.row[KEY] && p.column.valueFormatter(p.row[p.columnMap[p.column.name]]) === p1.column.valueFormatter(p1.row[p1.columnMap[p1.column.name]]);
|
|
977
988
|
|
|
978
989
|
// src/cookie-utils.ts
|
|
979
990
|
var getCookieValue = (name) => {
|
|
@@ -990,6 +1001,7 @@ var configEditorsMap = /* @__PURE__ */ new Map();
|
|
|
990
1001
|
var cellConfigPanelsMap = /* @__PURE__ */ new Map();
|
|
991
1002
|
var editRuleValidatorsMap = /* @__PURE__ */ new Map();
|
|
992
1003
|
var optionsMap = /* @__PURE__ */ new Map();
|
|
1004
|
+
var rowClassGeneratorsMap = /* @__PURE__ */ new Map();
|
|
993
1005
|
var isTypeCompatible = (rendererType, serverDataType) => {
|
|
994
1006
|
if (rendererType === void 0 || rendererType === "private") {
|
|
995
1007
|
return true;
|
|
@@ -999,11 +1011,12 @@ var isTypeCompatible = (rendererType, serverDataType) => {
|
|
|
999
1011
|
return rendererType === serverDataType;
|
|
1000
1012
|
}
|
|
1001
1013
|
};
|
|
1002
|
-
var isCellRenderer = (type, component) => type === "cell-renderer";
|
|
1014
|
+
var isCellRenderer = (type, component) => component !== void 0 && type === "cell-renderer";
|
|
1003
1015
|
var isColumnHeaderContentRenderer = (type, component) => type === "column-header-content-renderer";
|
|
1004
1016
|
var isColumnHeaderLabelRenderer = (type, component) => type === "column-header-label-renderer";
|
|
1005
1017
|
var isCellConfigPanel = (type, component) => type === "cell-config-panel";
|
|
1006
1018
|
var isEditRuleValidator = (type, component) => type === "data-edit-validator";
|
|
1019
|
+
var isRowClassGenerator = (type, component) => type === "row-class-generator";
|
|
1007
1020
|
function registerComponent(componentName, component, type = "cell-renderer", options) {
|
|
1008
1021
|
if (isCellRenderer(type, component)) {
|
|
1009
1022
|
cellRenderersMap.set(componentName, component);
|
|
@@ -1015,6 +1028,9 @@ function registerComponent(componentName, component, type = "cell-renderer", opt
|
|
|
1015
1028
|
cellConfigPanelsMap.set(componentName, component);
|
|
1016
1029
|
} else if (isEditRuleValidator(type, component)) {
|
|
1017
1030
|
editRuleValidatorsMap.set(componentName, component);
|
|
1031
|
+
} else if (isRowClassGenerator(type, component)) {
|
|
1032
|
+
console.log(`register ${componentName}`);
|
|
1033
|
+
rowClassGeneratorsMap.set(componentName, component);
|
|
1018
1034
|
}
|
|
1019
1035
|
if (options) {
|
|
1020
1036
|
optionsMap.set(componentName, options);
|
|
@@ -1028,7 +1044,7 @@ var getRegisteredCellRenderers = (serverDataType) => {
|
|
|
1028
1044
|
const allRenderers = rendererNames.map((name) => ({
|
|
1029
1045
|
name,
|
|
1030
1046
|
...optionsMap.get(name)
|
|
1031
|
-
}));
|
|
1047
|
+
})).filter(({ userCanAssign }) => userCanAssign !== false);
|
|
1032
1048
|
if (serverDataType) {
|
|
1033
1049
|
return allRenderers.filter(
|
|
1034
1050
|
(renderer) => isTypeCompatible(renderer.serverDataType, serverDataType)
|
|
@@ -1051,6 +1067,7 @@ function getColumnHeaderLabelRenderer(column) {
|
|
|
1051
1067
|
return columnHeaderRenderersMap.get(column.colHeaderLabelRenderer);
|
|
1052
1068
|
}
|
|
1053
1069
|
}
|
|
1070
|
+
var getRowClassNameGenerator = (generatorId) => rowClassGeneratorsMap.get(generatorId);
|
|
1054
1071
|
function dataCellRenderer(column) {
|
|
1055
1072
|
if (isTypeDescriptor(column.type)) {
|
|
1056
1073
|
const { renderer } = column.type;
|
|
@@ -1139,7 +1156,7 @@ var WindowRange = class _WindowRange {
|
|
|
1139
1156
|
};
|
|
1140
1157
|
|
|
1141
1158
|
// src/DataWindow.ts
|
|
1142
|
-
var { KEY } = metadataKeys;
|
|
1159
|
+
var { KEY: KEY2 } = metadataKeys;
|
|
1143
1160
|
var DataWindow = class {
|
|
1144
1161
|
constructor({ from, to }) {
|
|
1145
1162
|
this.rowCount = 0;
|
|
@@ -1168,7 +1185,7 @@ var DataWindow = class {
|
|
|
1168
1185
|
return this.range.isWithin(index) && this.data[index - this.range.from] != null ? this.data[index - this.range.from] : void 0;
|
|
1169
1186
|
}
|
|
1170
1187
|
getByKey(key) {
|
|
1171
|
-
return this.data.find((row) => row[
|
|
1188
|
+
return this.data.find((row) => row[KEY2] === key);
|
|
1172
1189
|
}
|
|
1173
1190
|
isWithinRange(index) {
|
|
1174
1191
|
return this.range.isWithin(index) && index <= this.rowCount;
|
|
@@ -1296,7 +1313,7 @@ var exactlyTheSame = (a, b) => {
|
|
|
1296
1313
|
return false;
|
|
1297
1314
|
}
|
|
1298
1315
|
};
|
|
1299
|
-
var
|
|
1316
|
+
var isAggregationsChanged = (config, newConfig) => {
|
|
1300
1317
|
const { aggregations: agg1 } = config;
|
|
1301
1318
|
const { aggregations: agg2 } = newConfig;
|
|
1302
1319
|
if (exactlyTheSame(agg1, agg2) || equivalentAggregations(config, newConfig)) {
|
|
@@ -1310,7 +1327,7 @@ var aggregationsChanged = (config, newConfig) => {
|
|
|
1310
1327
|
({ column, aggType }, i) => column !== agg2[i].column || aggType !== agg2[i].aggType
|
|
1311
1328
|
);
|
|
1312
1329
|
};
|
|
1313
|
-
var
|
|
1330
|
+
var isColumnsChanged = (config, newConfig) => {
|
|
1314
1331
|
const { columns: cols1 } = config;
|
|
1315
1332
|
const { columns: cols2 } = newConfig;
|
|
1316
1333
|
if (exactlyTheSame(cols1, cols2) || equivalentColumns(config, newConfig)) {
|
|
@@ -1322,7 +1339,7 @@ var columnsChanged = (config, newConfig) => {
|
|
|
1322
1339
|
}
|
|
1323
1340
|
return cols1.some((column, i) => column !== (cols2 == null ? void 0 : cols2[i]));
|
|
1324
1341
|
};
|
|
1325
|
-
var
|
|
1342
|
+
var isFilterChanged = (c1, c2) => {
|
|
1326
1343
|
var _a, _b;
|
|
1327
1344
|
if (equivalentFilter(c1, c2)) {
|
|
1328
1345
|
return false;
|
|
@@ -1330,7 +1347,7 @@ var filterChanged = (c1, c2) => {
|
|
|
1330
1347
|
return ((_a = c1.filter) == null ? void 0 : _a.filter) !== ((_b = c2.filter) == null ? void 0 : _b.filter);
|
|
1331
1348
|
}
|
|
1332
1349
|
};
|
|
1333
|
-
var
|
|
1350
|
+
var isGroupByChanged = (config, newConfig) => {
|
|
1334
1351
|
const { groupBy: g1 } = config;
|
|
1335
1352
|
const { groupBy: g2 } = newConfig;
|
|
1336
1353
|
if (exactlyTheSame(g1, g2) || equivalentGroupBy(config, newConfig)) {
|
|
@@ -1342,7 +1359,7 @@ var groupByChanged = (config, newConfig) => {
|
|
|
1342
1359
|
}
|
|
1343
1360
|
return g1.some((column, i) => column !== (g2 == null ? void 0 : g2[i]));
|
|
1344
1361
|
};
|
|
1345
|
-
var
|
|
1362
|
+
var isSortChanged = (config, newConfig) => {
|
|
1346
1363
|
const { sort: s1 } = config;
|
|
1347
1364
|
const { sort: s2 } = newConfig;
|
|
1348
1365
|
if (exactlyTheSame(s1, s2) || equivalentSort(config, newConfig)) {
|
|
@@ -1356,17 +1373,45 @@ var sortChanged = (config, newConfig) => {
|
|
|
1356
1373
|
({ column, sortType }, i) => column !== s2.sortDefs[i].column || sortType !== s2.sortDefs[i].sortType
|
|
1357
1374
|
);
|
|
1358
1375
|
};
|
|
1359
|
-
var
|
|
1376
|
+
var isVisualLinkChanged = () => {
|
|
1360
1377
|
return false;
|
|
1361
1378
|
};
|
|
1362
|
-
var
|
|
1379
|
+
var NO_CONFIG_CHANGES = {
|
|
1380
|
+
aggregationsChanged: false,
|
|
1381
|
+
columnsChanged: false,
|
|
1382
|
+
filterChanged: false,
|
|
1383
|
+
groupByChanged: false,
|
|
1384
|
+
noChanges: true,
|
|
1385
|
+
sortChanged: false,
|
|
1386
|
+
visualLinkChanged: false
|
|
1387
|
+
};
|
|
1388
|
+
var isConfigChanged = (config, newConfig) => {
|
|
1363
1389
|
if (exactlyTheSame(config, newConfig)) {
|
|
1364
|
-
return
|
|
1365
|
-
}
|
|
1366
|
-
if (config === void 0
|
|
1367
|
-
return
|
|
1368
|
-
}
|
|
1369
|
-
|
|
1390
|
+
return NO_CONFIG_CHANGES;
|
|
1391
|
+
}
|
|
1392
|
+
if (config === void 0 && newConfig == void 0) {
|
|
1393
|
+
return NO_CONFIG_CHANGES;
|
|
1394
|
+
} else if (config === void 0) {
|
|
1395
|
+
return isConfigChanged({}, newConfig);
|
|
1396
|
+
} else if (newConfig === void 0) {
|
|
1397
|
+
return isConfigChanged(config, {});
|
|
1398
|
+
}
|
|
1399
|
+
const aggregationsChanged = isAggregationsChanged(config, newConfig);
|
|
1400
|
+
const columnsChanged = isColumnsChanged(config, newConfig);
|
|
1401
|
+
const filterChanged = isFilterChanged(config, newConfig);
|
|
1402
|
+
const groupByChanged = isGroupByChanged(config, newConfig);
|
|
1403
|
+
const sortChanged = isSortChanged(config, newConfig);
|
|
1404
|
+
const visualLinkChanged = isVisualLinkChanged(config, newConfig);
|
|
1405
|
+
const noChanges = !(aggregationsChanged || columnsChanged || filterChanged || groupByChanged || sortChanged || visualLinkChanged);
|
|
1406
|
+
return {
|
|
1407
|
+
aggregationsChanged,
|
|
1408
|
+
columnsChanged,
|
|
1409
|
+
filterChanged,
|
|
1410
|
+
groupByChanged,
|
|
1411
|
+
noChanges,
|
|
1412
|
+
sortChanged,
|
|
1413
|
+
visualLinkChanged
|
|
1414
|
+
};
|
|
1370
1415
|
};
|
|
1371
1416
|
var hasGroupBy = (config) => config !== void 0 && config.groupBy !== void 0 && config.groupBy.length > 0;
|
|
1372
1417
|
var hasFilter = (config) => (config == null ? void 0 : config.filter) !== void 0 && config.filter.filter.length > 0;
|
|
@@ -2431,7 +2476,8 @@ var getElementDataIndex = (el) => {
|
|
|
2431
2476
|
}
|
|
2432
2477
|
return -1;
|
|
2433
2478
|
};
|
|
2434
|
-
var
|
|
2479
|
+
var queryClosest = (el, cssQueryString) => el.closest(cssQueryString);
|
|
2480
|
+
var getClosest = (el, dataProperty) => queryClosest(el, `[data-${dataProperty}]`);
|
|
2435
2481
|
var getClosestIndexItem = (el) => getClosest(el, "index");
|
|
2436
2482
|
function getElementByDataIndex(container, index, throwIfNotFound = false) {
|
|
2437
2483
|
if (container === null && throwIfNotFound) {
|
|
@@ -3488,8 +3534,18 @@ ThemeProvider.displayName = "ThemeProvider";
|
|
|
3488
3534
|
|
|
3489
3535
|
// src/url-utils.ts
|
|
3490
3536
|
var getUrlParameter = (paramName, defaultValue) => {
|
|
3491
|
-
|
|
3492
|
-
|
|
3537
|
+
const url = new URL(document.location.href);
|
|
3538
|
+
const parameter = url.searchParams.get(paramName);
|
|
3539
|
+
if (parameter) {
|
|
3540
|
+
return parameter;
|
|
3541
|
+
}
|
|
3542
|
+
const hashParams = url.hash;
|
|
3543
|
+
const regex = new RegExp(`${paramName}=([a-zA-Z]*)`);
|
|
3544
|
+
const result = regex.exec(hashParams);
|
|
3545
|
+
if (result) {
|
|
3546
|
+
return result[1];
|
|
3547
|
+
}
|
|
3548
|
+
return defaultValue;
|
|
3493
3549
|
};
|
|
3494
3550
|
var hasUrlParameter = (paramName) => new URL(document.location.href).searchParams.has(paramName);
|
|
3495
3551
|
|
|
@@ -3529,6 +3585,7 @@ export {
|
|
|
3529
3585
|
Home,
|
|
3530
3586
|
KeySet,
|
|
3531
3587
|
MEASURES,
|
|
3588
|
+
NO_CONFIG_CHANGES,
|
|
3532
3589
|
NULL_RANGE,
|
|
3533
3590
|
NoFilter,
|
|
3534
3591
|
NoSort,
|
|
@@ -3557,10 +3614,9 @@ export {
|
|
|
3557
3614
|
assertModuleExportsAtLeastOneComponent,
|
|
3558
3615
|
boxContainsPoint,
|
|
3559
3616
|
buildColumnMap,
|
|
3560
|
-
columnsChanged,
|
|
3561
|
-
configChanged,
|
|
3562
3617
|
createEl,
|
|
3563
3618
|
dataAndColumnUnchanged,
|
|
3619
|
+
dataColumnAndKeyUnchanged,
|
|
3564
3620
|
dateTimePattern,
|
|
3565
3621
|
debounce,
|
|
3566
3622
|
defaultPatternsByType,
|
|
@@ -3573,7 +3629,6 @@ export {
|
|
|
3573
3629
|
extractGroupColumn,
|
|
3574
3630
|
fallbackDateTimePattern,
|
|
3575
3631
|
filterAsQuery,
|
|
3576
|
-
filterChanged,
|
|
3577
3632
|
findColumn,
|
|
3578
3633
|
flattenColumnGroup,
|
|
3579
3634
|
focusFirstFocusableElement,
|
|
@@ -3612,6 +3667,7 @@ export {
|
|
|
3612
3667
|
getMissingItems,
|
|
3613
3668
|
getMovingValueDirection,
|
|
3614
3669
|
getRegisteredCellRenderers,
|
|
3670
|
+
getRowClassNameGenerator,
|
|
3615
3671
|
getRowElementAtIndex,
|
|
3616
3672
|
getRowRecord,
|
|
3617
3673
|
getScrollbarSize,
|
|
@@ -3621,7 +3677,6 @@ export {
|
|
|
3621
3677
|
getUniqueId,
|
|
3622
3678
|
getUrlParameter,
|
|
3623
3679
|
getValueFormatter,
|
|
3624
|
-
groupByChanged,
|
|
3625
3680
|
hasAction,
|
|
3626
3681
|
hasFilter,
|
|
3627
3682
|
hasGroupBy,
|
|
@@ -3635,14 +3690,17 @@ export {
|
|
|
3635
3690
|
isCharacterKey,
|
|
3636
3691
|
isColumnTypeRenderer,
|
|
3637
3692
|
isCompleteFilter,
|
|
3693
|
+
isConfigChanged,
|
|
3638
3694
|
isConnectionQualityMetrics,
|
|
3639
3695
|
isConnectionStatusMessage,
|
|
3640
3696
|
isDataLoading,
|
|
3641
3697
|
isDateTimeColumn,
|
|
3642
3698
|
isDateTimePattern,
|
|
3643
3699
|
isErrorResponse,
|
|
3700
|
+
isFilterChanged,
|
|
3644
3701
|
isFilterClause,
|
|
3645
3702
|
isFilteredColumn,
|
|
3703
|
+
isGroupByChanged,
|
|
3646
3704
|
isGroupColumn,
|
|
3647
3705
|
isGroupMenuItemDescriptor,
|
|
3648
3706
|
isInFilter,
|
|
@@ -3681,6 +3739,7 @@ export {
|
|
|
3681
3739
|
isVisualLinkCreatedAction,
|
|
3682
3740
|
isVisualLinkRemovedAction,
|
|
3683
3741
|
isVisualLinksAction,
|
|
3742
|
+
isVuuColumnDataType,
|
|
3684
3743
|
isVuuFeatureAction,
|
|
3685
3744
|
itemToString,
|
|
3686
3745
|
itemsChanged,
|
|
@@ -3698,6 +3757,7 @@ export {
|
|
|
3698
3757
|
numericFormatter,
|
|
3699
3758
|
partition,
|
|
3700
3759
|
projectUpdates,
|
|
3760
|
+
queryClosest,
|
|
3701
3761
|
rangeNewItems,
|
|
3702
3762
|
rangesAreSame,
|
|
3703
3763
|
registerComponent,
|