@nextgis/ngw-leaflet 1.18.9 → 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-leaflet; version: 1.18.9; author: NextGIS */
1
+ /** Bundle of @nextgis/ngw-leaflet; version: 1.18.11; author: NextGIS */
2
2
  import 'leaflet/dist/leaflet.css';
3
3
  import { Icon } from 'leaflet';
4
4
  import { NgwMap } from '@nextgis/ngw-map';
@@ -1,4 +1,4 @@
1
- /** Bundle of @nextgis/ngw-leaflet; version: 1.18.9; author: NextGIS */
1
+ /** Bundle of @nextgis/ngw-leaflet; version: 1.18.11; author: NextGIS */
2
2
  var NgwLeaflet = (function () {
3
3
  'use strict';
4
4
 
@@ -15475,6 +15475,13 @@ var NgwLeaflet = (function () {
15475
15475
  };
15476
15476
  }
15477
15477
 
15478
+ function evaluateArgs(cb) {
15479
+ return function (args, data) {
15480
+ var unwrap = args.map(function (a) { return a(); });
15481
+ return cb(unwrap, data);
15482
+ };
15483
+ }
15484
+
15478
15485
  var array = function (args) {
15479
15486
  var firstArg = args[0], secondArg = args[1], thirdArg = args[2];
15480
15487
  var requiredType = undefined;
@@ -15505,55 +15512,86 @@ var NgwLeaflet = (function () {
15505
15512
  }
15506
15513
  return value;
15507
15514
  };
15515
+ function typeOfValue(value) {
15516
+ if (value === null)
15517
+ return 'null';
15518
+ switch (typeof value) {
15519
+ case 'string':
15520
+ return 'string';
15521
+ case 'number':
15522
+ return 'number';
15523
+ case 'boolean':
15524
+ return 'boolean';
15525
+ case 'object':
15526
+ if (Array.isArray(value)) {
15527
+ var arrayType = 'value';
15528
+ if (value.every(function (item) { return typeof item === 'number'; })) {
15529
+ arrayType = 'number';
15530
+ }
15531
+ else if (value.every(function (item) { return typeof item === 'string'; })) {
15532
+ arrayType = 'string';
15533
+ }
15534
+ else if (value.every(function (item) { return typeof item === 'boolean'; })) {
15535
+ arrayType = 'boolean';
15536
+ }
15537
+ return "array<".concat(arrayType, ", ").concat(value.length, ">");
15538
+ }
15539
+ else {
15540
+ return 'object';
15541
+ }
15542
+ default:
15543
+ return 'undefined';
15544
+ }
15545
+ }
15508
15546
  var typeExpressions = {
15509
- array: array,
15510
- boolean: fallback(function (arg) { return (typeof arg === 'boolean' ? arg : undefined); }),
15511
- literal: function (_a) {
15547
+ array: evaluateArgs(array),
15548
+ boolean: evaluateArgs(fallback(function (arg) { return (typeof arg === 'boolean' ? arg : undefined); })),
15549
+ literal: evaluateArgs(function (_a) {
15512
15550
  var arg = _a[0];
15513
15551
  return arg;
15514
- },
15515
- number: fallback(function (arg) { return (typeof arg === 'number' ? arg : undefined); }),
15516
- object: fallback(function (arg) {
15552
+ }),
15553
+ number: evaluateArgs(fallback(function (arg) { return (typeof arg === 'number' ? arg : undefined); })),
15554
+ object: evaluateArgs(fallback(function (arg) {
15517
15555
  return arg !== null && typeof arg === 'object' && !Array.isArray(arg)
15518
15556
  ? arg
15519
15557
  : undefined;
15520
- }),
15521
- string: fallback(function (arg) { return (typeof arg === 'string' ? arg : undefined); }),
15522
- 'to-boolean': fallback(Boolean),
15523
- 'to-number': fallback(Number),
15524
- 'to-string': fallback(String),
15525
- typeof: function (_a) {
15558
+ })),
15559
+ string: evaluateArgs(fallback(function (arg) { return (typeof arg === 'string' ? arg : undefined); })),
15560
+ 'to-boolean': evaluateArgs(fallback(Boolean)),
15561
+ 'to-number': evaluateArgs(fallback(Number)),
15562
+ 'to-string': evaluateArgs(fallback(String)),
15563
+ typeof: evaluateArgs(function (_a) {
15526
15564
  var arg = _a[0];
15527
- return typeof arg;
15528
- },
15565
+ return typeOfValue(arg);
15566
+ }),
15529
15567
  };
15530
15568
 
15531
15569
  var mathExpressions = {
15532
- '+': function (args) { return args.reduce(function (a, b) { return a + b; }, 0); },
15533
- '-': function (args) { return args.reduce(function (a, b) { return a - b; }); },
15534
- '*': function (args) { return args.reduce(function (a, b) { return a * b; }, 1); },
15535
- '/': function (args) { return args.reduce(function (a, b) { return a / b; }); },
15536
- '%': function (args) { return args[0] % args[1]; },
15537
- '^': function (args) { return Math.pow(args[0], args[1]); },
15538
- abs: function (args) { return Math.abs(args[0]); },
15539
- acos: function (args) { return Math.acos(args[0]); },
15540
- asin: function (args) { return Math.asin(args[0]); },
15541
- atan: function (args) { return Math.atan(args[0]); },
15542
- ceil: function (args) { return Math.ceil(args[0]); },
15543
- cos: function (args) { return Math.cos(args[0]); },
15570
+ '+': evaluateArgs(function (args) { return args.reduce(function (a, b) { return a + b; }, 0); }),
15571
+ '-': evaluateArgs(function (args) { return args.reduce(function (a, b) { return a - b; }); }),
15572
+ '*': evaluateArgs(function (args) { return args.reduce(function (a, b) { return a * b; }, 1); }),
15573
+ '/': evaluateArgs(function (args) { return args.reduce(function (a, b) { return a / b; }); }),
15574
+ '%': evaluateArgs(function (args) { return args[0] % args[1]; }),
15575
+ '^': evaluateArgs(function (args) { return Math.pow(args[0], args[1]); }),
15576
+ abs: evaluateArgs(function (args) { return Math.abs(args[0]); }),
15577
+ acos: evaluateArgs(function (args) { return Math.acos(args[0]); }),
15578
+ asin: evaluateArgs(function (args) { return Math.asin(args[0]); }),
15579
+ atan: evaluateArgs(function (args) { return Math.atan(args[0]); }),
15580
+ ceil: evaluateArgs(function (args) { return Math.ceil(args[0]); }),
15581
+ cos: evaluateArgs(function (args) { return Math.cos(args[0]); }),
15544
15582
  e: function () { return Math.E; },
15545
- floor: function (args) { return Math.floor(args[0]); },
15546
- ln: function (args) { return Math.log(args[0]); },
15583
+ floor: evaluateArgs(function (args) { return Math.floor(args[0]); }),
15584
+ ln: evaluateArgs(function (args) { return Math.log(args[0]); }),
15547
15585
  ln2: function () { return Math.LN2; },
15548
- log10: function (args) { return Math.log10(args[0]); },
15549
- log2: function (args) { return Math.log2(args[0]); },
15550
- max: function (args) { return Math.max.apply(Math, args); },
15551
- min: function (args) { return Math.min.apply(Math, args); },
15586
+ log10: evaluateArgs(function (args) { return Math.log10(args[0]); }),
15587
+ log2: evaluateArgs(function (args) { return Math.log2(args[0]); }),
15588
+ max: evaluateArgs(function (args) { return Math.max.apply(Math, args); }),
15589
+ min: evaluateArgs(function (args) { return Math.min.apply(Math, args); }),
15552
15590
  pi: function () { return Math.PI; },
15553
- round: function (args) { return Math.round(args[0]); },
15554
- sin: function (args) { return Math.sin(args[0]); },
15555
- sqrt: function (args) { return Math.sqrt(args[0]); },
15556
- tan: function (args) { return Math.tan(args[0]); },
15591
+ round: evaluateArgs(function (args) { return Math.round(args[0]); }),
15592
+ sin: evaluateArgs(function (args) { return Math.sin(args[0]); }),
15593
+ sqrt: evaluateArgs(function (args) { return Math.sqrt(args[0]); }),
15594
+ tan: evaluateArgs(function (args) { return Math.tan(args[0]); }),
15557
15595
  };
15558
15596
 
15559
15597
  function get(_a, data) {
@@ -15611,140 +15649,140 @@ var NgwLeaflet = (function () {
15611
15649
  throw new Error("Invalid input type for 'slice'. Expected string or array, got ".concat(typeof input, "."));
15612
15650
  }
15613
15651
  var lookupExpressions = {
15614
- get: get,
15615
- length: length,
15616
- at: at,
15617
- has: has,
15618
- in: inFunc,
15619
- 'index-of': indexOf,
15620
- slice: slice,
15652
+ get: evaluateArgs(get),
15653
+ length: evaluateArgs(length),
15654
+ at: evaluateArgs(at),
15655
+ has: evaluateArgs(has),
15656
+ in: evaluateArgs(inFunc),
15657
+ 'index-of': evaluateArgs(indexOf),
15658
+ slice: evaluateArgs(slice),
15621
15659
  };
15622
15660
 
15623
15661
  var stringExpressions = {
15624
- concat: function (args) { return args.reduce(function (a, b) { return String(a) + String(b); }, ''); },
15625
- downcase: function (args) { return String(args[0]).toLowerCase(); },
15626
- upcase: function (args) { return String(args[0]).toUpperCase(); },
15662
+ concat: evaluateArgs(function (args) { return args.reduce(function (a, b) { return String(a) + String(b); }, ''); }),
15663
+ downcase: evaluateArgs(function (args) { return String(args[0]).toLowerCase(); }),
15664
+ upcase: evaluateArgs(function (args) { return String(args[0]).toUpperCase(); }),
15627
15665
  };
15628
15666
 
15629
15667
  function not(_a) {
15630
15668
  var expr = _a[0];
15631
15669
  return !expr;
15632
15670
  }
15633
- var checkCompareValues = function (_a) {
15634
- var a = _a[0], b = _a[1];
15635
- if (typeof a !== typeof b) {
15636
- throw new Error('Values have different types.');
15637
- }
15638
- };
15639
15671
  function notEqual(_a) {
15640
15672
  var a = _a[0], b = _a[1];
15641
- checkCompareValues([a, b]);
15642
15673
  return a !== b;
15643
15674
  }
15644
15675
  function lessThan(_a) {
15645
15676
  var left = _a[0], right = _a[1];
15646
- checkCompareValues([left, right]);
15647
15677
  return left < right;
15648
15678
  }
15649
15679
  function lessThanOrEqual(_a) {
15650
15680
  var left = _a[0], right = _a[1];
15651
- checkCompareValues([left, right]);
15652
15681
  return left <= right;
15653
15682
  }
15654
15683
  function equal(_a) {
15655
15684
  var left = _a[0], right = _a[1];
15656
- checkCompareValues([left, right]);
15657
15685
  return left === right;
15658
15686
  }
15659
15687
  function greaterThan(_a) {
15660
15688
  var left = _a[0], right = _a[1];
15661
- checkCompareValues([left, right]);
15662
15689
  return left > right;
15663
15690
  }
15664
15691
  function greaterThanOrEqual(_a) {
15665
15692
  var left = _a[0], right = _a[1];
15666
- checkCompareValues([left, right]);
15667
15693
  return left >= right;
15668
15694
  }
15669
- function all(args) {
15695
+ var coalesce = function (args) {
15670
15696
  for (var i = 0; i < args.length; i++) {
15671
- var arg = args[i];
15697
+ var arg = args[i]();
15698
+ if (arg !== null && arg !== undefined) {
15699
+ return arg;
15700
+ }
15701
+ }
15702
+ return null;
15703
+ };
15704
+ var all = function (args) {
15705
+ for (var i = 0; i < args.length; i++) {
15706
+ var arg = args[i]();
15672
15707
  if (!arg) {
15673
15708
  return false;
15674
15709
  }
15675
15710
  }
15676
15711
  return true;
15677
- }
15678
- function any(args) {
15712
+ };
15713
+ var any = function (args) {
15679
15714
  for (var i = 0; i < args.length; i++) {
15680
- var arg = args[i];
15715
+ var arg = args[i]();
15681
15716
  if (arg) {
15682
15717
  return true;
15683
15718
  }
15684
15719
  }
15685
15720
  return false;
15686
- }
15687
- function match(args) {
15688
- var lookup = args[0], cases = args.slice(1);
15721
+ };
15722
+ var match = function (args) {
15723
+ var lookupFn = args[0], cases = args.slice(1);
15724
+ var lookup = lookupFn();
15689
15725
  // remove last odd item from cases array
15690
15726
  var defValue = cases.splice(-1, cases.length % 2)[0];
15691
15727
  for (var fry = 0; fry < cases.length - 1; fry += 2) {
15692
- var key = cases[fry];
15728
+ var key = cases[fry]();
15693
15729
  if (key === lookup) {
15694
- return cases[fry + 1];
15730
+ return cases[fry + 1]();
15695
15731
  }
15696
15732
  }
15697
- return defValue;
15698
- }
15699
- function caseFunc(args) {
15733
+ return defValue();
15734
+ };
15735
+ var caseFunc = function (args) {
15700
15736
  if (args.length < 2) {
15701
15737
  throw new Error('The "case" function requires at least a condition and a corresponding output.');
15702
15738
  }
15703
- var fallback = args[args.length - 1];
15704
15739
  if (args.length % 2 === 0) {
15705
15740
  throw new Error('Missing a fallback value or unmatched condition-output pair.');
15706
15741
  }
15707
15742
  for (var i = 0; i < args.length - 1; i += 2) {
15708
- var condition = args[i];
15709
- var value = args[i + 1];
15743
+ var condition = args[i]();
15744
+ var value = args[i + 1]();
15710
15745
  if (condition) {
15711
15746
  return value;
15712
15747
  }
15713
15748
  }
15714
- return fallback;
15715
- }
15749
+ var fallback = args[args.length - 1];
15750
+ return fallback();
15751
+ };
15716
15752
  var decisionExpressions = {
15717
- '!': not,
15718
- '!=': notEqual,
15719
- '<': lessThan,
15720
- '<=': lessThanOrEqual,
15721
- '==': equal,
15722
- '>': greaterThan,
15723
- '>=': greaterThanOrEqual,
15753
+ '!': evaluateArgs(not),
15754
+ '!=': evaluateArgs(notEqual),
15755
+ '<': evaluateArgs(lessThan),
15756
+ '<=': evaluateArgs(lessThanOrEqual),
15757
+ '==': evaluateArgs(equal),
15758
+ '>': evaluateArgs(greaterThan),
15759
+ '>=': evaluateArgs(greaterThanOrEqual),
15760
+ coalesce: coalesce,
15724
15761
  all: all,
15725
15762
  any: any,
15726
15763
  case: caseFunc,
15727
15764
  match: match,
15728
15765
  };
15729
15766
 
15730
- function step(args) {
15731
- var input = args[0], defaultValue = args[1], stops = args.slice(2);
15767
+ var step = function (args) {
15768
+ var inputFn = args[0], defaultValue = args[1], stops = args.slice(2);
15769
+ var input = inputFn();
15732
15770
  if (typeof input !== 'number') {
15733
- return defaultValue;
15771
+ return defaultValue();
15734
15772
  }
15735
15773
  for (var i = 0; i < stops.length - 2; i += 2) {
15736
- var stopInput = stops[i];
15737
- var stopOutput = stops[i + 1];
15738
- var nextStopInput = stops[i + 2];
15774
+ var stopInput = stops[i]();
15775
+ var stopOutput = stops[i + 1]();
15776
+ var nextStopInput = stops[i + 2]();
15739
15777
  if (input >= stopInput && input < nextStopInput) {
15740
15778
  return stopOutput;
15741
15779
  }
15742
15780
  }
15743
- if (input >= stops[stops.length - 2]) {
15744
- return stops[stops.length - 1];
15781
+ if (input >= stops[stops.length - 2]()) {
15782
+ return stops[stops.length - 1]();
15745
15783
  }
15746
- return defaultValue;
15747
- }
15784
+ return defaultValue();
15785
+ };
15748
15786
 
15749
15787
  var COLORS = {
15750
15788
  aliceblue: '#f0f8ff',
@@ -16014,22 +16052,24 @@ var NgwLeaflet = (function () {
16014
16052
  }
16015
16053
  throw new Error('Unsupported output type for linear interpolation.');
16016
16054
  }
16017
- function interpolate(_a) {
16018
- var interpolation = _a[0], input = _a[1], stops = _a.slice(2);
16055
+ var interpolate = function (_a) {
16056
+ var interpolationFn = _a[0], inputFn = _a[1], stops = _a.slice(2);
16019
16057
  if (stops.length < 2) {
16020
16058
  throw new Error('At least two stops are required');
16021
16059
  }
16022
- if (typeof input !== 'number') {
16023
- throw new Error('Input must be a number.');
16024
- }
16025
16060
  if (stops.length < 2 || stops.length % 2 !== 0) {
16026
16061
  throw new Error('Invalid stops provided.');
16027
16062
  }
16063
+ var input = inputFn();
16064
+ if (typeof input !== 'number') {
16065
+ throw new Error('Input must be a number.');
16066
+ }
16067
+ var interpolation = interpolationFn();
16028
16068
  for (var i = 0; i < stops.length - 2; i += 2) {
16029
- var stopInput1 = stops[i];
16030
- var stopOutput1 = stops[i + 1];
16031
- var stopInput2 = stops[i + 2];
16032
- var stopOutput2 = stops[i + 3];
16069
+ var stopInput1 = stops[i]();
16070
+ var stopOutput1 = stops[i + 1]();
16071
+ var stopInput2 = stops[i + 2]();
16072
+ var stopOutput2 = stops[i + 3]();
16033
16073
  if (input >= stopInput1 && input <= stopInput2) {
16034
16074
  if (interpolation[0] === 'linear') {
16035
16075
  return linearInterpolation(input, stopInput1, stopOutput1, stopInput2, stopOutput2);
@@ -16048,7 +16088,7 @@ var NgwLeaflet = (function () {
16048
16088
  }
16049
16089
  }
16050
16090
  throw new Error('Invalid interpolation type.');
16051
- }
16091
+ };
16052
16092
 
16053
16093
  var interpolationExpressions = {
16054
16094
  step: step,
@@ -16072,7 +16112,7 @@ var NgwLeaflet = (function () {
16072
16112
  var name = expression[0], args = expression.slice(1);
16073
16113
  var expressionFun = expressions[name];
16074
16114
  if (expressionFun) {
16075
- return expressionFun(args.map(function (arg) { return (isExpression(arg) ? evaluate(arg, data) : arg); }), data);
16115
+ return expressionFun(args.map(function (arg) { return function () { return isExpression(arg) ? evaluate(arg, data) : arg; }; }), data);
16076
16116
  }
16077
16117
  throw new Error("Expression \"".concat(name, "\" is not supported."));
16078
16118
  }