@nextgis/ngw-map 1.18.10 → 1.18.11

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.
@@ -1,4 +1,4 @@
1
- /** Bundle of @nextgis/ngw-map; version: 1.18.10; author: NextGIS */
1
+ /** Bundle of @nextgis/ngw-map; version: 1.18.11; author: NextGIS */
2
2
  import { EventEmitter } from 'events';
3
3
  import CancelablePromise from '@nextgis/cancelable-promise';
4
4
  import { deepmerge, deprecatedWarn, defined, isObject, getIdentifyRadius } from '@nextgis/utils';
@@ -1,4 +1,4 @@
1
- /** Bundle of @nextgis/ngw-map; version: 1.18.10; author: NextGIS */
1
+ /** Bundle of @nextgis/ngw-map; version: 1.18.11; author: NextGIS */
2
2
  var NgwMap = (function (exports) {
3
3
  'use strict';
4
4
 
@@ -1421,6 +1421,37 @@ var NgwMap = (function (exports) {
1421
1421
  }
1422
1422
  return value;
1423
1423
  };
1424
+ function typeOfValue(value) {
1425
+ if (value === null)
1426
+ return 'null';
1427
+ switch (typeof value) {
1428
+ case 'string':
1429
+ return 'string';
1430
+ case 'number':
1431
+ return 'number';
1432
+ case 'boolean':
1433
+ return 'boolean';
1434
+ case 'object':
1435
+ if (Array.isArray(value)) {
1436
+ var arrayType = 'value';
1437
+ if (value.every(function (item) { return typeof item === 'number'; })) {
1438
+ arrayType = 'number';
1439
+ }
1440
+ else if (value.every(function (item) { return typeof item === 'string'; })) {
1441
+ arrayType = 'string';
1442
+ }
1443
+ else if (value.every(function (item) { return typeof item === 'boolean'; })) {
1444
+ arrayType = 'boolean';
1445
+ }
1446
+ return "array<".concat(arrayType, ", ").concat(value.length, ">");
1447
+ }
1448
+ else {
1449
+ return 'object';
1450
+ }
1451
+ default:
1452
+ return 'undefined';
1453
+ }
1454
+ }
1424
1455
  var typeExpressions = {
1425
1456
  array: evaluateArgs(array),
1426
1457
  boolean: evaluateArgs(fallback(function (arg) { return (typeof arg === 'boolean' ? arg : undefined); })),
@@ -1440,7 +1471,7 @@ var NgwMap = (function (exports) {
1440
1471
  'to-string': evaluateArgs(fallback(String)),
1441
1472
  typeof: evaluateArgs(function (_a) {
1442
1473
  var arg = _a[0];
1443
- return typeof arg;
1474
+ return typeOfValue(arg);
1444
1475
  }),
1445
1476
  };
1446
1477
 
@@ -1546,42 +1577,39 @@ var NgwMap = (function (exports) {
1546
1577
  var expr = _a[0];
1547
1578
  return !expr;
1548
1579
  }
1549
- var checkCompareValues = function (_a) {
1550
- var a = _a[0], b = _a[1];
1551
- if (typeof a !== typeof b) {
1552
- throw new Error('Values have different types.');
1553
- }
1554
- };
1555
1580
  function notEqual(_a) {
1556
1581
  var a = _a[0], b = _a[1];
1557
- checkCompareValues([a, b]);
1558
1582
  return a !== b;
1559
1583
  }
1560
1584
  function lessThan(_a) {
1561
1585
  var left = _a[0], right = _a[1];
1562
- checkCompareValues([left, right]);
1563
1586
  return left < right;
1564
1587
  }
1565
1588
  function lessThanOrEqual(_a) {
1566
1589
  var left = _a[0], right = _a[1];
1567
- checkCompareValues([left, right]);
1568
1590
  return left <= right;
1569
1591
  }
1570
1592
  function equal(_a) {
1571
1593
  var left = _a[0], right = _a[1];
1572
- checkCompareValues([left, right]);
1573
1594
  return left === right;
1574
1595
  }
1575
1596
  function greaterThan(_a) {
1576
1597
  var left = _a[0], right = _a[1];
1577
- checkCompareValues([left, right]);
1578
1598
  return left > right;
1579
1599
  }
1580
1600
  function greaterThanOrEqual(_a) {
1581
1601
  var left = _a[0], right = _a[1];
1582
- checkCompareValues([left, right]);
1583
1602
  return left >= right;
1584
1603
  }
1604
+ var coalesce = function (args) {
1605
+ for (var i = 0; i < args.length; i++) {
1606
+ var arg = args[i]();
1607
+ if (arg !== null && arg !== undefined) {
1608
+ return arg;
1609
+ }
1610
+ }
1611
+ return null;
1612
+ };
1585
1613
  var all = function (args) {
1586
1614
  for (var i = 0; i < args.length; i++) {
1587
1615
  var arg = args[i]();
@@ -1638,6 +1666,7 @@ var NgwMap = (function (exports) {
1638
1666
  '==': evaluateArgs(equal),
1639
1667
  '>': evaluateArgs(greaterThan),
1640
1668
  '>=': evaluateArgs(greaterThanOrEqual),
1669
+ coalesce: coalesce,
1641
1670
  all: all,
1642
1671
  any: any,
1643
1672
  case: caseFunc,