@nextgis/ngw-map 1.18.9 → 1.18.10

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.9; author: NextGIS */
1
+ /** Bundle of @nextgis/ngw-map; version: 1.18.10; 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.9; author: NextGIS */
1
+ /** Bundle of @nextgis/ngw-map; version: 1.18.10; author: NextGIS */
2
2
  var NgwMap = (function (exports) {
3
3
  'use strict';
4
4
 
@@ -1384,6 +1384,13 @@ var NgwMap = (function (exports) {
1384
1384
  };
1385
1385
  }
1386
1386
 
1387
+ function evaluateArgs(cb) {
1388
+ return function (args, data) {
1389
+ var unwrap = args.map(function (a) { return a(); });
1390
+ return cb(unwrap, data);
1391
+ };
1392
+ }
1393
+
1387
1394
  var array = function (args) {
1388
1395
  var firstArg = args[0], secondArg = args[1], thirdArg = args[2];
1389
1396
  var requiredType = undefined;
@@ -1415,54 +1422,54 @@ var NgwMap = (function (exports) {
1415
1422
  return value;
1416
1423
  };
1417
1424
  var typeExpressions = {
1418
- array: array,
1419
- boolean: fallback(function (arg) { return (typeof arg === 'boolean' ? arg : undefined); }),
1420
- literal: function (_a) {
1425
+ array: evaluateArgs(array),
1426
+ boolean: evaluateArgs(fallback(function (arg) { return (typeof arg === 'boolean' ? arg : undefined); })),
1427
+ literal: evaluateArgs(function (_a) {
1421
1428
  var arg = _a[0];
1422
1429
  return arg;
1423
- },
1424
- number: fallback(function (arg) { return (typeof arg === 'number' ? arg : undefined); }),
1425
- object: fallback(function (arg) {
1430
+ }),
1431
+ number: evaluateArgs(fallback(function (arg) { return (typeof arg === 'number' ? arg : undefined); })),
1432
+ object: evaluateArgs(fallback(function (arg) {
1426
1433
  return arg !== null && typeof arg === 'object' && !Array.isArray(arg)
1427
1434
  ? arg
1428
1435
  : undefined;
1429
- }),
1430
- string: fallback(function (arg) { return (typeof arg === 'string' ? arg : undefined); }),
1431
- 'to-boolean': fallback(Boolean),
1432
- 'to-number': fallback(Number),
1433
- 'to-string': fallback(String),
1434
- typeof: function (_a) {
1436
+ })),
1437
+ string: evaluateArgs(fallback(function (arg) { return (typeof arg === 'string' ? arg : undefined); })),
1438
+ 'to-boolean': evaluateArgs(fallback(Boolean)),
1439
+ 'to-number': evaluateArgs(fallback(Number)),
1440
+ 'to-string': evaluateArgs(fallback(String)),
1441
+ typeof: evaluateArgs(function (_a) {
1435
1442
  var arg = _a[0];
1436
1443
  return typeof arg;
1437
- },
1444
+ }),
1438
1445
  };
1439
1446
 
1440
1447
  var mathExpressions = {
1441
- '+': function (args) { return args.reduce(function (a, b) { return a + b; }, 0); },
1442
- '-': function (args) { return args.reduce(function (a, b) { return a - b; }); },
1443
- '*': function (args) { return args.reduce(function (a, b) { return a * b; }, 1); },
1444
- '/': function (args) { return args.reduce(function (a, b) { return a / b; }); },
1445
- '%': function (args) { return args[0] % args[1]; },
1446
- '^': function (args) { return Math.pow(args[0], args[1]); },
1447
- abs: function (args) { return Math.abs(args[0]); },
1448
- acos: function (args) { return Math.acos(args[0]); },
1449
- asin: function (args) { return Math.asin(args[0]); },
1450
- atan: function (args) { return Math.atan(args[0]); },
1451
- ceil: function (args) { return Math.ceil(args[0]); },
1452
- cos: function (args) { return Math.cos(args[0]); },
1448
+ '+': evaluateArgs(function (args) { return args.reduce(function (a, b) { return a + b; }, 0); }),
1449
+ '-': evaluateArgs(function (args) { return args.reduce(function (a, b) { return a - b; }); }),
1450
+ '*': evaluateArgs(function (args) { return args.reduce(function (a, b) { return a * b; }, 1); }),
1451
+ '/': evaluateArgs(function (args) { return args.reduce(function (a, b) { return a / b; }); }),
1452
+ '%': evaluateArgs(function (args) { return args[0] % args[1]; }),
1453
+ '^': evaluateArgs(function (args) { return Math.pow(args[0], args[1]); }),
1454
+ abs: evaluateArgs(function (args) { return Math.abs(args[0]); }),
1455
+ acos: evaluateArgs(function (args) { return Math.acos(args[0]); }),
1456
+ asin: evaluateArgs(function (args) { return Math.asin(args[0]); }),
1457
+ atan: evaluateArgs(function (args) { return Math.atan(args[0]); }),
1458
+ ceil: evaluateArgs(function (args) { return Math.ceil(args[0]); }),
1459
+ cos: evaluateArgs(function (args) { return Math.cos(args[0]); }),
1453
1460
  e: function () { return Math.E; },
1454
- floor: function (args) { return Math.floor(args[0]); },
1455
- ln: function (args) { return Math.log(args[0]); },
1461
+ floor: evaluateArgs(function (args) { return Math.floor(args[0]); }),
1462
+ ln: evaluateArgs(function (args) { return Math.log(args[0]); }),
1456
1463
  ln2: function () { return Math.LN2; },
1457
- log10: function (args) { return Math.log10(args[0]); },
1458
- log2: function (args) { return Math.log2(args[0]); },
1459
- max: function (args) { return Math.max.apply(Math, args); },
1460
- min: function (args) { return Math.min.apply(Math, args); },
1464
+ log10: evaluateArgs(function (args) { return Math.log10(args[0]); }),
1465
+ log2: evaluateArgs(function (args) { return Math.log2(args[0]); }),
1466
+ max: evaluateArgs(function (args) { return Math.max.apply(Math, args); }),
1467
+ min: evaluateArgs(function (args) { return Math.min.apply(Math, args); }),
1461
1468
  pi: function () { return Math.PI; },
1462
- round: function (args) { return Math.round(args[0]); },
1463
- sin: function (args) { return Math.sin(args[0]); },
1464
- sqrt: function (args) { return Math.sqrt(args[0]); },
1465
- tan: function (args) { return Math.tan(args[0]); },
1469
+ round: evaluateArgs(function (args) { return Math.round(args[0]); }),
1470
+ sin: evaluateArgs(function (args) { return Math.sin(args[0]); }),
1471
+ sqrt: evaluateArgs(function (args) { return Math.sqrt(args[0]); }),
1472
+ tan: evaluateArgs(function (args) { return Math.tan(args[0]); }),
1466
1473
  };
1467
1474
 
1468
1475
  function get(_a, data) {
@@ -1520,19 +1527,19 @@ var NgwMap = (function (exports) {
1520
1527
  throw new Error("Invalid input type for 'slice'. Expected string or array, got ".concat(typeof input, "."));
1521
1528
  }
1522
1529
  var lookupExpressions = {
1523
- get: get,
1524
- length: length,
1525
- at: at,
1526
- has: has,
1527
- in: inFunc,
1528
- 'index-of': indexOf,
1529
- slice: slice,
1530
+ get: evaluateArgs(get),
1531
+ length: evaluateArgs(length),
1532
+ at: evaluateArgs(at),
1533
+ has: evaluateArgs(has),
1534
+ in: evaluateArgs(inFunc),
1535
+ 'index-of': evaluateArgs(indexOf),
1536
+ slice: evaluateArgs(slice),
1530
1537
  };
1531
1538
 
1532
1539
  var stringExpressions = {
1533
- concat: function (args) { return args.reduce(function (a, b) { return String(a) + String(b); }, ''); },
1534
- downcase: function (args) { return String(args[0]).toLowerCase(); },
1535
- upcase: function (args) { return String(args[0]).toUpperCase(); },
1540
+ concat: evaluateArgs(function (args) { return args.reduce(function (a, b) { return String(a) + String(b); }, ''); }),
1541
+ downcase: evaluateArgs(function (args) { return String(args[0]).toLowerCase(); }),
1542
+ upcase: evaluateArgs(function (args) { return String(args[0]).toUpperCase(); }),
1536
1543
  };
1537
1544
 
1538
1545
  function not(_a) {
@@ -1575,85 +1582,87 @@ var NgwMap = (function (exports) {
1575
1582
  checkCompareValues([left, right]);
1576
1583
  return left >= right;
1577
1584
  }
1578
- function all(args) {
1585
+ var all = function (args) {
1579
1586
  for (var i = 0; i < args.length; i++) {
1580
- var arg = args[i];
1587
+ var arg = args[i]();
1581
1588
  if (!arg) {
1582
1589
  return false;
1583
1590
  }
1584
1591
  }
1585
1592
  return true;
1586
- }
1587
- function any(args) {
1593
+ };
1594
+ var any = function (args) {
1588
1595
  for (var i = 0; i < args.length; i++) {
1589
- var arg = args[i];
1596
+ var arg = args[i]();
1590
1597
  if (arg) {
1591
1598
  return true;
1592
1599
  }
1593
1600
  }
1594
1601
  return false;
1595
- }
1596
- function match(args) {
1597
- var lookup = args[0], cases = args.slice(1);
1602
+ };
1603
+ var match = function (args) {
1604
+ var lookupFn = args[0], cases = args.slice(1);
1605
+ var lookup = lookupFn();
1598
1606
  // remove last odd item from cases array
1599
1607
  var defValue = cases.splice(-1, cases.length % 2)[0];
1600
1608
  for (var fry = 0; fry < cases.length - 1; fry += 2) {
1601
- var key = cases[fry];
1609
+ var key = cases[fry]();
1602
1610
  if (key === lookup) {
1603
- return cases[fry + 1];
1611
+ return cases[fry + 1]();
1604
1612
  }
1605
1613
  }
1606
- return defValue;
1607
- }
1608
- function caseFunc(args) {
1614
+ return defValue();
1615
+ };
1616
+ var caseFunc = function (args) {
1609
1617
  if (args.length < 2) {
1610
1618
  throw new Error('The "case" function requires at least a condition and a corresponding output.');
1611
1619
  }
1612
- var fallback = args[args.length - 1];
1613
1620
  if (args.length % 2 === 0) {
1614
1621
  throw new Error('Missing a fallback value or unmatched condition-output pair.');
1615
1622
  }
1616
1623
  for (var i = 0; i < args.length - 1; i += 2) {
1617
- var condition = args[i];
1618
- var value = args[i + 1];
1624
+ var condition = args[i]();
1625
+ var value = args[i + 1]();
1619
1626
  if (condition) {
1620
1627
  return value;
1621
1628
  }
1622
1629
  }
1623
- return fallback;
1624
- }
1630
+ var fallback = args[args.length - 1];
1631
+ return fallback();
1632
+ };
1625
1633
  var decisionExpressions = {
1626
- '!': not,
1627
- '!=': notEqual,
1628
- '<': lessThan,
1629
- '<=': lessThanOrEqual,
1630
- '==': equal,
1631
- '>': greaterThan,
1632
- '>=': greaterThanOrEqual,
1634
+ '!': evaluateArgs(not),
1635
+ '!=': evaluateArgs(notEqual),
1636
+ '<': evaluateArgs(lessThan),
1637
+ '<=': evaluateArgs(lessThanOrEqual),
1638
+ '==': evaluateArgs(equal),
1639
+ '>': evaluateArgs(greaterThan),
1640
+ '>=': evaluateArgs(greaterThanOrEqual),
1633
1641
  all: all,
1634
1642
  any: any,
1635
1643
  case: caseFunc,
1636
1644
  match: match,
1637
1645
  };
1638
1646
 
1639
- function step(args) {
1640
- var input = args[0], defaultValue = args[1], stops = args.slice(2);
1647
+ var step = function (args) {
1648
+ var inputFn = args[0], defaultValue = args[1], stops = args.slice(2);
1649
+ var input = inputFn();
1641
1650
  if (typeof input !== 'number') {
1642
- return defaultValue;
1651
+ return defaultValue();
1643
1652
  }
1644
1653
  for (var i = 0; i < stops.length - 2; i += 2) {
1645
- var stopInput = stops[i];
1646
- var stopOutput = stops[i + 1];
1647
- var nextStopInput = stops[i + 2];
1654
+ var stopInput = stops[i]();
1655
+ var stopOutput = stops[i + 1]();
1656
+ var nextStopInput = stops[i + 2]();
1648
1657
  if (input >= stopInput && input < nextStopInput) {
1649
1658
  return stopOutput;
1650
1659
  }
1651
1660
  }
1652
- if (input >= stops[stops.length - 2]) {
1653
- return stops[stops.length - 1];
1661
+ if (input >= stops[stops.length - 2]()) {
1662
+ return stops[stops.length - 1]();
1654
1663
  }
1655
- return defaultValue;
1656
- }
1664
+ return defaultValue();
1665
+ };
1657
1666
 
1658
1667
  var COLORS = {
1659
1668
  aliceblue: '#f0f8ff',
@@ -1923,22 +1932,24 @@ var NgwMap = (function (exports) {
1923
1932
  }
1924
1933
  throw new Error('Unsupported output type for linear interpolation.');
1925
1934
  }
1926
- function interpolate(_a) {
1927
- var interpolation = _a[0], input = _a[1], stops = _a.slice(2);
1935
+ var interpolate = function (_a) {
1936
+ var interpolationFn = _a[0], inputFn = _a[1], stops = _a.slice(2);
1928
1937
  if (stops.length < 2) {
1929
1938
  throw new Error('At least two stops are required');
1930
1939
  }
1931
- if (typeof input !== 'number') {
1932
- throw new Error('Input must be a number.');
1933
- }
1934
1940
  if (stops.length < 2 || stops.length % 2 !== 0) {
1935
1941
  throw new Error('Invalid stops provided.');
1936
1942
  }
1943
+ var input = inputFn();
1944
+ if (typeof input !== 'number') {
1945
+ throw new Error('Input must be a number.');
1946
+ }
1947
+ var interpolation = interpolationFn();
1937
1948
  for (var i = 0; i < stops.length - 2; i += 2) {
1938
- var stopInput1 = stops[i];
1939
- var stopOutput1 = stops[i + 1];
1940
- var stopInput2 = stops[i + 2];
1941
- var stopOutput2 = stops[i + 3];
1949
+ var stopInput1 = stops[i]();
1950
+ var stopOutput1 = stops[i + 1]();
1951
+ var stopInput2 = stops[i + 2]();
1952
+ var stopOutput2 = stops[i + 3]();
1942
1953
  if (input >= stopInput1 && input <= stopInput2) {
1943
1954
  if (interpolation[0] === 'linear') {
1944
1955
  return linearInterpolation(input, stopInput1, stopOutput1, stopInput2, stopOutput2);
@@ -1957,7 +1968,7 @@ var NgwMap = (function (exports) {
1957
1968
  }
1958
1969
  }
1959
1970
  throw new Error('Invalid interpolation type.');
1960
- }
1971
+ };
1961
1972
 
1962
1973
  var interpolationExpressions = {
1963
1974
  step: step,
@@ -1981,7 +1992,7 @@ var NgwMap = (function (exports) {
1981
1992
  var name = expression[0], args = expression.slice(1);
1982
1993
  var expressionFun = expressions[name];
1983
1994
  if (expressionFun) {
1984
- return expressionFun(args.map(function (arg) { return (isExpression(arg) ? evaluate(arg, data) : arg); }), data);
1995
+ return expressionFun(args.map(function (arg) { return function () { return isExpression(arg) ? evaluate(arg, data) : arg; }; }), data);
1985
1996
  }
1986
1997
  throw new Error("Expression \"".concat(name, "\" is not supported."));
1987
1998
  }