@basemaps/landing 6.38.0 → 6.40.0

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/build/attribution.d.ts +1 -0
  3. package/build/attribution.d.ts.map +1 -1
  4. package/build/attribution.js +12 -6
  5. package/build/attribution.js.map +1 -1
  6. package/build/components/daterange.d.ts +17 -0
  7. package/build/components/daterange.d.ts.map +1 -0
  8. package/build/components/daterange.js +47 -0
  9. package/build/components/daterange.js.map +1 -0
  10. package/build/components/debug.d.ts +2 -0
  11. package/build/components/debug.d.ts.map +1 -1
  12. package/build/components/debug.js +14 -2
  13. package/build/components/debug.js.map +1 -1
  14. package/build/components/layout.footer.d.ts.map +1 -1
  15. package/build/components/layout.footer.js +1 -1
  16. package/build/components/layout.footer.js.map +1 -1
  17. package/build/components/layout.header.d.ts.map +1 -1
  18. package/build/components/layout.header.js +3 -2
  19. package/build/components/layout.header.js.map +1 -1
  20. package/build/components/map.d.ts +2 -0
  21. package/build/components/map.d.ts.map +1 -1
  22. package/build/components/map.js +57 -3
  23. package/build/components/map.js.map +1 -1
  24. package/build/config.debug.d.ts +2 -0
  25. package/build/config.debug.d.ts.map +1 -1
  26. package/build/config.debug.js +2 -0
  27. package/build/config.debug.js.map +1 -1
  28. package/build/config.map.d.ts +12 -1
  29. package/build/config.map.d.ts.map +1 -1
  30. package/build/config.map.js +16 -3
  31. package/build/config.map.js.map +1 -1
  32. package/build/debug.map.d.ts.map +1 -1
  33. package/build/debug.map.js +11 -2
  34. package/build/debug.map.js.map +1 -1
  35. package/build/index.js.map +1 -1
  36. package/build/tile.matrix.d.ts +2 -1
  37. package/build/tile.matrix.d.ts.map +1 -1
  38. package/build/tile.matrix.js +9 -2
  39. package/build/tile.matrix.js.map +1 -1
  40. package/build/url.d.ts +10 -1
  41. package/build/url.d.ts.map +1 -1
  42. package/build/url.js +22 -17
  43. package/build/url.js.map +1 -1
  44. package/dist/examples/index.openlayers.attribution.wmts.3857.html +1 -1
  45. package/dist/{index-6.38.0-060503daa6c281f7.js → index-6.40.0-09b98e869fb042de.js} +18 -18
  46. package/dist/{index-6.38.0-40fc4132c6bdc9c0.css → index-6.40.0-95051f97078cfc18.css} +17 -0
  47. package/dist/{index-6.38.0-dc4e1ccdf5b05fd8.js → index-6.40.0-a7e278340e8278a5.js} +426 -228
  48. package/dist/index.css +17 -0
  49. package/dist/index.html +2 -2
  50. package/dist/index.js +18 -18
  51. package/dist/lib/{attribution-6.38.0-fc88f809368e4547.js → attribution-6.40.0-1f7ac3ac4d0bfdf9.js} +12 -4
  52. package/dist/lib/{attribution-6.38.0-b4a0b401b1a4cc45.js → attribution-6.40.0-5200e8ed396ff59a.js} +2 -2
  53. package/dist/lib/attribution.js +2 -2
  54. package/package.json +7 -7
@@ -178,20 +178,20 @@ var require_react_development = __commonJS({
178
178
  {
179
179
  Object.freeze(emptyObject);
180
180
  }
181
- function Component13(props, context, updater) {
181
+ function Component14(props, context, updater) {
182
182
  this.props = props;
183
183
  this.context = context;
184
184
  this.refs = emptyObject;
185
185
  this.updater = updater || ReactNoopUpdateQueue;
186
186
  }
187
- Component13.prototype.isReactComponent = {};
188
- Component13.prototype.setState = function(partialState, callback) {
187
+ Component14.prototype.isReactComponent = {};
188
+ Component14.prototype.setState = function(partialState, callback) {
189
189
  if (typeof partialState !== "object" && typeof partialState !== "function" && partialState != null) {
190
190
  throw new Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");
191
191
  }
192
192
  this.updater.enqueueSetState(this, partialState, callback, "setState");
193
193
  };
194
- Component13.prototype.forceUpdate = function(callback) {
194
+ Component14.prototype.forceUpdate = function(callback) {
195
195
  this.updater.enqueueForceUpdate(this, callback, "forceUpdate");
196
196
  };
197
197
  {
@@ -200,7 +200,7 @@ var require_react_development = __commonJS({
200
200
  replaceState: ["replaceState", "Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]
201
201
  };
202
202
  var defineDeprecationWarning = function(methodName, info) {
203
- Object.defineProperty(Component13.prototype, methodName, {
203
+ Object.defineProperty(Component14.prototype, methodName, {
204
204
  get: function() {
205
205
  warn("%s(...) is deprecated in plain JavaScript React classes. %s", info[0], info[1]);
206
206
  return void 0;
@@ -215,7 +215,7 @@ var require_react_development = __commonJS({
215
215
  }
216
216
  function ComponentDummy() {
217
217
  }
218
- ComponentDummy.prototype = Component13.prototype;
218
+ ComponentDummy.prototype = Component14.prototype;
219
219
  function PureComponent(props, context, updater) {
220
220
  this.props = props;
221
221
  this.context = context;
@@ -224,7 +224,7 @@ var require_react_development = __commonJS({
224
224
  }
225
225
  var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();
226
226
  pureComponentPrototype.constructor = PureComponent;
227
- assign(pureComponentPrototype, Component13.prototype);
227
+ assign(pureComponentPrototype, Component14.prototype);
228
228
  pureComponentPrototype.isPureReactComponent = true;
229
229
  function createRef() {
230
230
  var refObject = {
@@ -1265,8 +1265,8 @@ var require_react_development = __commonJS({
1265
1265
  return describeNativeComponentFrame(fn, false);
1266
1266
  }
1267
1267
  }
1268
- function shouldConstruct(Component14) {
1269
- var prototype = Component14.prototype;
1268
+ function shouldConstruct(Component15) {
1269
+ var prototype = Component15.prototype;
1270
1270
  return !!(prototype && prototype.isReactComponent);
1271
1271
  }
1272
1272
  function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
@@ -1770,7 +1770,7 @@ var require_react_development = __commonJS({
1770
1770
  only: onlyChild
1771
1771
  };
1772
1772
  exports4.Children = Children;
1773
- exports4.Component = Component13;
1773
+ exports4.Component = Component14;
1774
1774
  exports4.Fragment = REACT_FRAGMENT_TYPE;
1775
1775
  exports4.Profiler = REACT_PROFILER_TYPE;
1776
1776
  exports4.PureComponent = PureComponent;
@@ -3254,8 +3254,8 @@ var require_react_dom_development = __commonJS({
3254
3254
  return describeNativeComponentFrame(fn, false);
3255
3255
  }
3256
3256
  }
3257
- function shouldConstruct(Component13) {
3258
- var prototype = Component13.prototype;
3257
+ function shouldConstruct(Component14) {
3258
+ var prototype = Component14.prototype;
3259
3259
  return !!(prototype && prototype.isReactComponent);
3260
3260
  }
3261
3261
  function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
@@ -10408,9 +10408,9 @@ var require_react_dom_development = __commonJS({
10408
10408
  var contextStackCursor = createCursor(emptyContextObject);
10409
10409
  var didPerformWorkStackCursor = createCursor(false);
10410
10410
  var previousContext = emptyContextObject;
10411
- function getUnmaskedContext(workInProgress2, Component13, didPushOwnContextIfProvider) {
10411
+ function getUnmaskedContext(workInProgress2, Component14, didPushOwnContextIfProvider) {
10412
10412
  {
10413
- if (didPushOwnContextIfProvider && isContextProvider(Component13)) {
10413
+ if (didPushOwnContextIfProvider && isContextProvider(Component14)) {
10414
10414
  return previousContext;
10415
10415
  }
10416
10416
  return contextStackCursor.current;
@@ -10547,8 +10547,8 @@ var require_react_dom_development = __commonJS({
10547
10547
  case HostRoot:
10548
10548
  return node.stateNode.context;
10549
10549
  case ClassComponent: {
10550
- var Component13 = node.type;
10551
- if (isContextProvider(Component13)) {
10550
+ var Component14 = node.type;
10551
+ if (isContextProvider(Component14)) {
10552
10552
  return node.stateNode.__reactInternalMemoizedMergedChildContext;
10553
10553
  }
10554
10554
  break;
@@ -11304,10 +11304,10 @@ var require_react_dom_development = __commonJS({
11304
11304
  pendingLegacyContextWarning = /* @__PURE__ */ new Map();
11305
11305
  };
11306
11306
  }
11307
- function resolveDefaultProps(Component13, baseProps) {
11308
- if (Component13 && Component13.defaultProps) {
11307
+ function resolveDefaultProps(Component14, baseProps) {
11308
+ if (Component14 && Component14.defaultProps) {
11309
11309
  var props = assign({}, baseProps);
11310
- var defaultProps2 = Component13.defaultProps;
11310
+ var defaultProps2 = Component14.defaultProps;
11311
11311
  for (var propName in defaultProps2) {
11312
11312
  if (props[propName] === void 0) {
11313
11313
  props[propName] = defaultProps2[propName];
@@ -13559,7 +13559,7 @@ var require_react_dom_development = __commonJS({
13559
13559
  }
13560
13560
  return true;
13561
13561
  }
13562
- function renderWithHooks(current2, workInProgress2, Component13, props, secondArg, nextRenderLanes) {
13562
+ function renderWithHooks(current2, workInProgress2, Component14, props, secondArg, nextRenderLanes) {
13563
13563
  renderLanes = nextRenderLanes;
13564
13564
  currentlyRenderingFiber$1 = workInProgress2;
13565
13565
  {
@@ -13579,7 +13579,7 @@ var require_react_dom_development = __commonJS({
13579
13579
  ReactCurrentDispatcher$1.current = HooksDispatcherOnMountInDEV;
13580
13580
  }
13581
13581
  }
13582
- var children = Component13(props, secondArg);
13582
+ var children = Component14(props, secondArg);
13583
13583
  if (didScheduleRenderPhaseUpdateDuringThisPass) {
13584
13584
  var numberOfReRenders = 0;
13585
13585
  do {
@@ -13599,7 +13599,7 @@ var require_react_dom_development = __commonJS({
13599
13599
  hookTypesUpdateIndexDev = -1;
13600
13600
  }
13601
13601
  ReactCurrentDispatcher$1.current = HooksDispatcherOnRerenderInDEV;
13602
- children = Component13(props, secondArg);
13602
+ children = Component14(props, secondArg);
13603
13603
  } while (didScheduleRenderPhaseUpdateDuringThisPass);
13604
13604
  }
13605
13605
  ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;
@@ -15698,21 +15698,21 @@ var require_react_dom_development = __commonJS({
15698
15698
  workInProgress2.child = reconcileChildFibers(workInProgress2, current2.child, null, renderLanes2);
15699
15699
  workInProgress2.child = reconcileChildFibers(workInProgress2, null, nextChildren, renderLanes2);
15700
15700
  }
15701
- function updateForwardRef(current2, workInProgress2, Component13, nextProps, renderLanes2) {
15701
+ function updateForwardRef(current2, workInProgress2, Component14, nextProps, renderLanes2) {
15702
15702
  {
15703
15703
  if (workInProgress2.type !== workInProgress2.elementType) {
15704
- var innerPropTypes = Component13.propTypes;
15704
+ var innerPropTypes = Component14.propTypes;
15705
15705
  if (innerPropTypes) {
15706
15706
  checkPropTypes(
15707
15707
  innerPropTypes,
15708
15708
  nextProps,
15709
15709
  "prop",
15710
- getComponentNameFromType(Component13)
15710
+ getComponentNameFromType(Component14)
15711
15711
  );
15712
15712
  }
15713
15713
  }
15714
15714
  }
15715
- var render2 = Component13.render;
15715
+ var render2 = Component14.render;
15716
15716
  var ref = workInProgress2.ref;
15717
15717
  var nextChildren;
15718
15718
  var hasId;
@@ -15750,10 +15750,10 @@ var require_react_dom_development = __commonJS({
15750
15750
  reconcileChildren(current2, workInProgress2, nextChildren, renderLanes2);
15751
15751
  return workInProgress2.child;
15752
15752
  }
15753
- function updateMemoComponent(current2, workInProgress2, Component13, nextProps, renderLanes2) {
15753
+ function updateMemoComponent(current2, workInProgress2, Component14, nextProps, renderLanes2) {
15754
15754
  if (current2 === null) {
15755
- var type = Component13.type;
15756
- if (isSimpleFunctionComponent(type) && Component13.compare === null && Component13.defaultProps === void 0) {
15755
+ var type = Component14.type;
15756
+ if (isSimpleFunctionComponent(type) && Component14.compare === null && Component14.defaultProps === void 0) {
15757
15757
  var resolvedType = type;
15758
15758
  {
15759
15759
  resolvedType = resolveFunctionForHotReloading(type);
@@ -15776,14 +15776,14 @@ var require_react_dom_development = __commonJS({
15776
15776
  );
15777
15777
  }
15778
15778
  }
15779
- var child = createFiberFromTypeAndProps(Component13.type, null, nextProps, workInProgress2, workInProgress2.mode, renderLanes2);
15779
+ var child = createFiberFromTypeAndProps(Component14.type, null, nextProps, workInProgress2, workInProgress2.mode, renderLanes2);
15780
15780
  child.ref = workInProgress2.ref;
15781
15781
  child.return = workInProgress2;
15782
15782
  workInProgress2.child = child;
15783
15783
  return child;
15784
15784
  }
15785
15785
  {
15786
- var _type = Component13.type;
15786
+ var _type = Component14.type;
15787
15787
  var _innerPropTypes = _type.propTypes;
15788
15788
  if (_innerPropTypes) {
15789
15789
  checkPropTypes(
@@ -15798,7 +15798,7 @@ var require_react_dom_development = __commonJS({
15798
15798
  var hasScheduledUpdateOrContext = checkScheduledUpdateOrContext(current2, renderLanes2);
15799
15799
  if (!hasScheduledUpdateOrContext) {
15800
15800
  var prevProps = currentChild.memoizedProps;
15801
- var compare = Component13.compare;
15801
+ var compare = Component14.compare;
15802
15802
  compare = compare !== null ? compare : shallowEqual;
15803
15803
  if (compare(prevProps, nextProps) && current2.ref === workInProgress2.ref) {
15804
15804
  return bailoutOnAlreadyFinishedWork(current2, workInProgress2, renderLanes2);
@@ -15811,7 +15811,7 @@ var require_react_dom_development = __commonJS({
15811
15811
  workInProgress2.child = newChild;
15812
15812
  return newChild;
15813
15813
  }
15814
- function updateSimpleMemoComponent(current2, workInProgress2, Component13, nextProps, renderLanes2) {
15814
+ function updateSimpleMemoComponent(current2, workInProgress2, Component14, nextProps, renderLanes2) {
15815
15815
  {
15816
15816
  if (workInProgress2.type !== workInProgress2.elementType) {
15817
15817
  var outerMemoType = workInProgress2.elementType;
@@ -15849,7 +15849,7 @@ var require_react_dom_development = __commonJS({
15849
15849
  }
15850
15850
  }
15851
15851
  }
15852
- return updateFunctionComponent(current2, workInProgress2, Component13, nextProps, renderLanes2);
15852
+ return updateFunctionComponent(current2, workInProgress2, Component14, nextProps, renderLanes2);
15853
15853
  }
15854
15854
  function updateOffscreenComponent(current2, workInProgress2, renderLanes2) {
15855
15855
  var nextProps = workInProgress2.pendingProps;
@@ -15939,23 +15939,23 @@ var require_react_dom_development = __commonJS({
15939
15939
  }
15940
15940
  }
15941
15941
  }
15942
- function updateFunctionComponent(current2, workInProgress2, Component13, nextProps, renderLanes2) {
15942
+ function updateFunctionComponent(current2, workInProgress2, Component14, nextProps, renderLanes2) {
15943
15943
  {
15944
15944
  if (workInProgress2.type !== workInProgress2.elementType) {
15945
- var innerPropTypes = Component13.propTypes;
15945
+ var innerPropTypes = Component14.propTypes;
15946
15946
  if (innerPropTypes) {
15947
15947
  checkPropTypes(
15948
15948
  innerPropTypes,
15949
15949
  nextProps,
15950
15950
  "prop",
15951
- getComponentNameFromType(Component13)
15951
+ getComponentNameFromType(Component14)
15952
15952
  );
15953
15953
  }
15954
15954
  }
15955
15955
  }
15956
15956
  var context;
15957
15957
  {
15958
- var unmaskedContext = getUnmaskedContext(workInProgress2, Component13, true);
15958
+ var unmaskedContext = getUnmaskedContext(workInProgress2, Component14, true);
15959
15959
  context = getMaskedContext(workInProgress2, unmaskedContext);
15960
15960
  }
15961
15961
  var nextChildren;
@@ -15967,12 +15967,12 @@ var require_react_dom_development = __commonJS({
15967
15967
  {
15968
15968
  ReactCurrentOwner$1.current = workInProgress2;
15969
15969
  setIsRendering(true);
15970
- nextChildren = renderWithHooks(current2, workInProgress2, Component13, nextProps, context, renderLanes2);
15970
+ nextChildren = renderWithHooks(current2, workInProgress2, Component14, nextProps, context, renderLanes2);
15971
15971
  hasId = checkDidRenderIdHook();
15972
15972
  if (workInProgress2.mode & StrictLegacyMode) {
15973
15973
  setIsStrictModeForDevtools(true);
15974
15974
  try {
15975
- nextChildren = renderWithHooks(current2, workInProgress2, Component13, nextProps, context, renderLanes2);
15975
+ nextChildren = renderWithHooks(current2, workInProgress2, Component14, nextProps, context, renderLanes2);
15976
15976
  hasId = checkDidRenderIdHook();
15977
15977
  } finally {
15978
15978
  setIsStrictModeForDevtools(false);
@@ -15994,7 +15994,7 @@ var require_react_dom_development = __commonJS({
15994
15994
  reconcileChildren(current2, workInProgress2, nextChildren, renderLanes2);
15995
15995
  return workInProgress2.child;
15996
15996
  }
15997
- function updateClassComponent(current2, workInProgress2, Component13, nextProps, renderLanes2) {
15997
+ function updateClassComponent(current2, workInProgress2, Component14, nextProps, renderLanes2) {
15998
15998
  {
15999
15999
  switch (shouldError(workInProgress2)) {
16000
16000
  case false: {
@@ -16017,19 +16017,19 @@ var require_react_dom_development = __commonJS({
16017
16017
  }
16018
16018
  }
16019
16019
  if (workInProgress2.type !== workInProgress2.elementType) {
16020
- var innerPropTypes = Component13.propTypes;
16020
+ var innerPropTypes = Component14.propTypes;
16021
16021
  if (innerPropTypes) {
16022
16022
  checkPropTypes(
16023
16023
  innerPropTypes,
16024
16024
  nextProps,
16025
16025
  "prop",
16026
- getComponentNameFromType(Component13)
16026
+ getComponentNameFromType(Component14)
16027
16027
  );
16028
16028
  }
16029
16029
  }
16030
16030
  }
16031
16031
  var hasContext;
16032
- if (isContextProvider(Component13)) {
16032
+ if (isContextProvider(Component14)) {
16033
16033
  hasContext = true;
16034
16034
  pushContextProvider(workInProgress2);
16035
16035
  } else {
@@ -16040,15 +16040,15 @@ var require_react_dom_development = __commonJS({
16040
16040
  var shouldUpdate;
16041
16041
  if (instance === null) {
16042
16042
  resetSuspendedCurrentOnMountInLegacyMode(current2, workInProgress2);
16043
- constructClassInstance(workInProgress2, Component13, nextProps);
16044
- mountClassInstance(workInProgress2, Component13, nextProps, renderLanes2);
16043
+ constructClassInstance(workInProgress2, Component14, nextProps);
16044
+ mountClassInstance(workInProgress2, Component14, nextProps, renderLanes2);
16045
16045
  shouldUpdate = true;
16046
16046
  } else if (current2 === null) {
16047
- shouldUpdate = resumeMountClassInstance(workInProgress2, Component13, nextProps, renderLanes2);
16047
+ shouldUpdate = resumeMountClassInstance(workInProgress2, Component14, nextProps, renderLanes2);
16048
16048
  } else {
16049
- shouldUpdate = updateClassInstance(current2, workInProgress2, Component13, nextProps, renderLanes2);
16049
+ shouldUpdate = updateClassInstance(current2, workInProgress2, Component14, nextProps, renderLanes2);
16050
16050
  }
16051
- var nextUnitOfWork = finishClassComponent(current2, workInProgress2, Component13, shouldUpdate, hasContext, renderLanes2);
16051
+ var nextUnitOfWork = finishClassComponent(current2, workInProgress2, Component14, shouldUpdate, hasContext, renderLanes2);
16052
16052
  {
16053
16053
  var inst = workInProgress2.stateNode;
16054
16054
  if (shouldUpdate && inst.props !== nextProps) {
@@ -16060,19 +16060,19 @@ var require_react_dom_development = __commonJS({
16060
16060
  }
16061
16061
  return nextUnitOfWork;
16062
16062
  }
16063
- function finishClassComponent(current2, workInProgress2, Component13, shouldUpdate, hasContext, renderLanes2) {
16063
+ function finishClassComponent(current2, workInProgress2, Component14, shouldUpdate, hasContext, renderLanes2) {
16064
16064
  markRef(current2, workInProgress2);
16065
16065
  var didCaptureError = (workInProgress2.flags & DidCapture) !== NoFlags;
16066
16066
  if (!shouldUpdate && !didCaptureError) {
16067
16067
  if (hasContext) {
16068
- invalidateContextProvider(workInProgress2, Component13, false);
16068
+ invalidateContextProvider(workInProgress2, Component14, false);
16069
16069
  }
16070
16070
  return bailoutOnAlreadyFinishedWork(current2, workInProgress2, renderLanes2);
16071
16071
  }
16072
16072
  var instance = workInProgress2.stateNode;
16073
16073
  ReactCurrentOwner$1.current = workInProgress2;
16074
16074
  var nextChildren;
16075
- if (didCaptureError && typeof Component13.getDerivedStateFromError !== "function") {
16075
+ if (didCaptureError && typeof Component14.getDerivedStateFromError !== "function") {
16076
16076
  nextChildren = null;
16077
16077
  {
16078
16078
  stopProfilerTimerIfRunning();
@@ -16106,7 +16106,7 @@ var require_react_dom_development = __commonJS({
16106
16106
  }
16107
16107
  workInProgress2.memoizedState = instance.state;
16108
16108
  if (hasContext) {
16109
- invalidateContextProvider(workInProgress2, Component13, true);
16109
+ invalidateContextProvider(workInProgress2, Component14, true);
16110
16110
  }
16111
16111
  return workInProgress2.child;
16112
16112
  }
@@ -16206,44 +16206,44 @@ var require_react_dom_development = __commonJS({
16206
16206
  var lazyComponent = elementType;
16207
16207
  var payload = lazyComponent._payload;
16208
16208
  var init33 = lazyComponent._init;
16209
- var Component13 = init33(payload);
16210
- workInProgress2.type = Component13;
16211
- var resolvedTag = workInProgress2.tag = resolveLazyComponentTag(Component13);
16212
- var resolvedProps = resolveDefaultProps(Component13, props);
16209
+ var Component14 = init33(payload);
16210
+ workInProgress2.type = Component14;
16211
+ var resolvedTag = workInProgress2.tag = resolveLazyComponentTag(Component14);
16212
+ var resolvedProps = resolveDefaultProps(Component14, props);
16213
16213
  var child;
16214
16214
  switch (resolvedTag) {
16215
16215
  case FunctionComponent: {
16216
16216
  {
16217
- validateFunctionComponentInDev(workInProgress2, Component13);
16218
- workInProgress2.type = Component13 = resolveFunctionForHotReloading(Component13);
16217
+ validateFunctionComponentInDev(workInProgress2, Component14);
16218
+ workInProgress2.type = Component14 = resolveFunctionForHotReloading(Component14);
16219
16219
  }
16220
- child = updateFunctionComponent(null, workInProgress2, Component13, resolvedProps, renderLanes2);
16220
+ child = updateFunctionComponent(null, workInProgress2, Component14, resolvedProps, renderLanes2);
16221
16221
  return child;
16222
16222
  }
16223
16223
  case ClassComponent: {
16224
16224
  {
16225
- workInProgress2.type = Component13 = resolveClassForHotReloading(Component13);
16225
+ workInProgress2.type = Component14 = resolveClassForHotReloading(Component14);
16226
16226
  }
16227
- child = updateClassComponent(null, workInProgress2, Component13, resolvedProps, renderLanes2);
16227
+ child = updateClassComponent(null, workInProgress2, Component14, resolvedProps, renderLanes2);
16228
16228
  return child;
16229
16229
  }
16230
16230
  case ForwardRef: {
16231
16231
  {
16232
- workInProgress2.type = Component13 = resolveForwardRefForHotReloading(Component13);
16232
+ workInProgress2.type = Component14 = resolveForwardRefForHotReloading(Component14);
16233
16233
  }
16234
- child = updateForwardRef(null, workInProgress2, Component13, resolvedProps, renderLanes2);
16234
+ child = updateForwardRef(null, workInProgress2, Component14, resolvedProps, renderLanes2);
16235
16235
  return child;
16236
16236
  }
16237
16237
  case MemoComponent: {
16238
16238
  {
16239
16239
  if (workInProgress2.type !== workInProgress2.elementType) {
16240
- var outerPropTypes = Component13.propTypes;
16240
+ var outerPropTypes = Component14.propTypes;
16241
16241
  if (outerPropTypes) {
16242
16242
  checkPropTypes(
16243
16243
  outerPropTypes,
16244
16244
  resolvedProps,
16245
16245
  "prop",
16246
- getComponentNameFromType(Component13)
16246
+ getComponentNameFromType(Component14)
16247
16247
  );
16248
16248
  }
16249
16249
  }
@@ -16251,8 +16251,8 @@ var require_react_dom_development = __commonJS({
16251
16251
  child = updateMemoComponent(
16252
16252
  null,
16253
16253
  workInProgress2,
16254
- Component13,
16255
- resolveDefaultProps(Component13.type, resolvedProps),
16254
+ Component14,
16255
+ resolveDefaultProps(Component14.type, resolvedProps),
16256
16256
  renderLanes2
16257
16257
  );
16258
16258
  return child;
@@ -16260,33 +16260,33 @@ var require_react_dom_development = __commonJS({
16260
16260
  }
16261
16261
  var hint = "";
16262
16262
  {
16263
- if (Component13 !== null && typeof Component13 === "object" && Component13.$$typeof === REACT_LAZY_TYPE) {
16263
+ if (Component14 !== null && typeof Component14 === "object" && Component14.$$typeof === REACT_LAZY_TYPE) {
16264
16264
  hint = " Did you wrap a component in React.lazy() more than once?";
16265
16265
  }
16266
16266
  }
16267
- throw new Error("Element type is invalid. Received a promise that resolves to: " + Component13 + ". " + ("Lazy element type must resolve to a class or function." + hint));
16267
+ throw new Error("Element type is invalid. Received a promise that resolves to: " + Component14 + ". " + ("Lazy element type must resolve to a class or function." + hint));
16268
16268
  }
16269
- function mountIncompleteClassComponent(_current, workInProgress2, Component13, nextProps, renderLanes2) {
16269
+ function mountIncompleteClassComponent(_current, workInProgress2, Component14, nextProps, renderLanes2) {
16270
16270
  resetSuspendedCurrentOnMountInLegacyMode(_current, workInProgress2);
16271
16271
  workInProgress2.tag = ClassComponent;
16272
16272
  var hasContext;
16273
- if (isContextProvider(Component13)) {
16273
+ if (isContextProvider(Component14)) {
16274
16274
  hasContext = true;
16275
16275
  pushContextProvider(workInProgress2);
16276
16276
  } else {
16277
16277
  hasContext = false;
16278
16278
  }
16279
16279
  prepareToReadContext(workInProgress2, renderLanes2);
16280
- constructClassInstance(workInProgress2, Component13, nextProps);
16281
- mountClassInstance(workInProgress2, Component13, nextProps, renderLanes2);
16282
- return finishClassComponent(null, workInProgress2, Component13, true, hasContext, renderLanes2);
16280
+ constructClassInstance(workInProgress2, Component14, nextProps);
16281
+ mountClassInstance(workInProgress2, Component14, nextProps, renderLanes2);
16282
+ return finishClassComponent(null, workInProgress2, Component14, true, hasContext, renderLanes2);
16283
16283
  }
16284
- function mountIndeterminateComponent(_current, workInProgress2, Component13, renderLanes2) {
16284
+ function mountIndeterminateComponent(_current, workInProgress2, Component14, renderLanes2) {
16285
16285
  resetSuspendedCurrentOnMountInLegacyMode(_current, workInProgress2);
16286
16286
  var props = workInProgress2.pendingProps;
16287
16287
  var context;
16288
16288
  {
16289
- var unmaskedContext = getUnmaskedContext(workInProgress2, Component13, false);
16289
+ var unmaskedContext = getUnmaskedContext(workInProgress2, Component14, false);
16290
16290
  context = getMaskedContext(workInProgress2, unmaskedContext);
16291
16291
  }
16292
16292
  prepareToReadContext(workInProgress2, renderLanes2);
@@ -16296,8 +16296,8 @@ var require_react_dom_development = __commonJS({
16296
16296
  markComponentRenderStarted(workInProgress2);
16297
16297
  }
16298
16298
  {
16299
- if (Component13.prototype && typeof Component13.prototype.render === "function") {
16300
- var componentName = getComponentNameFromType(Component13) || "Unknown";
16299
+ if (Component14.prototype && typeof Component14.prototype.render === "function") {
16300
+ var componentName = getComponentNameFromType(Component14) || "Unknown";
16301
16301
  if (!didWarnAboutBadClass[componentName]) {
16302
16302
  error("The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.", componentName, componentName);
16303
16303
  didWarnAboutBadClass[componentName] = true;
@@ -16308,7 +16308,7 @@ var require_react_dom_development = __commonJS({
16308
16308
  }
16309
16309
  setIsRendering(true);
16310
16310
  ReactCurrentOwner$1.current = workInProgress2;
16311
- value = renderWithHooks(null, workInProgress2, Component13, props, context, renderLanes2);
16311
+ value = renderWithHooks(null, workInProgress2, Component14, props, context, renderLanes2);
16312
16312
  hasId = checkDidRenderIdHook();
16313
16313
  setIsRendering(false);
16314
16314
  }
@@ -16318,7 +16318,7 @@ var require_react_dom_development = __commonJS({
16318
16318
  workInProgress2.flags |= PerformedWork;
16319
16319
  {
16320
16320
  if (typeof value === "object" && value !== null && typeof value.render === "function" && value.$$typeof === void 0) {
16321
- var _componentName = getComponentNameFromType(Component13) || "Unknown";
16321
+ var _componentName = getComponentNameFromType(Component14) || "Unknown";
16322
16322
  if (!didWarnAboutModulePatternComponent[_componentName]) {
16323
16323
  error("The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.", _componentName, _componentName, _componentName);
16324
16324
  didWarnAboutModulePatternComponent[_componentName] = true;
@@ -16327,7 +16327,7 @@ var require_react_dom_development = __commonJS({
16327
16327
  }
16328
16328
  if (typeof value === "object" && value !== null && typeof value.render === "function" && value.$$typeof === void 0) {
16329
16329
  {
16330
- var _componentName2 = getComponentNameFromType(Component13) || "Unknown";
16330
+ var _componentName2 = getComponentNameFromType(Component14) || "Unknown";
16331
16331
  if (!didWarnAboutModulePatternComponent[_componentName2]) {
16332
16332
  error("The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.", _componentName2, _componentName2, _componentName2);
16333
16333
  didWarnAboutModulePatternComponent[_componentName2] = true;
@@ -16337,7 +16337,7 @@ var require_react_dom_development = __commonJS({
16337
16337
  workInProgress2.memoizedState = null;
16338
16338
  workInProgress2.updateQueue = null;
16339
16339
  var hasContext = false;
16340
- if (isContextProvider(Component13)) {
16340
+ if (isContextProvider(Component14)) {
16341
16341
  hasContext = true;
16342
16342
  pushContextProvider(workInProgress2);
16343
16343
  } else {
@@ -16346,15 +16346,15 @@ var require_react_dom_development = __commonJS({
16346
16346
  workInProgress2.memoizedState = value.state !== null && value.state !== void 0 ? value.state : null;
16347
16347
  initializeUpdateQueue(workInProgress2);
16348
16348
  adoptClassInstance(workInProgress2, value);
16349
- mountClassInstance(workInProgress2, Component13, props, renderLanes2);
16350
- return finishClassComponent(null, workInProgress2, Component13, true, hasContext, renderLanes2);
16349
+ mountClassInstance(workInProgress2, Component14, props, renderLanes2);
16350
+ return finishClassComponent(null, workInProgress2, Component14, true, hasContext, renderLanes2);
16351
16351
  } else {
16352
16352
  workInProgress2.tag = FunctionComponent;
16353
16353
  {
16354
16354
  if (workInProgress2.mode & StrictLegacyMode) {
16355
16355
  setIsStrictModeForDevtools(true);
16356
16356
  try {
16357
- value = renderWithHooks(null, workInProgress2, Component13, props, context, renderLanes2);
16357
+ value = renderWithHooks(null, workInProgress2, Component14, props, context, renderLanes2);
16358
16358
  hasId = checkDidRenderIdHook();
16359
16359
  } finally {
16360
16360
  setIsStrictModeForDevtools(false);
@@ -16366,16 +16366,16 @@ var require_react_dom_development = __commonJS({
16366
16366
  }
16367
16367
  reconcileChildren(null, workInProgress2, value, renderLanes2);
16368
16368
  {
16369
- validateFunctionComponentInDev(workInProgress2, Component13);
16369
+ validateFunctionComponentInDev(workInProgress2, Component14);
16370
16370
  }
16371
16371
  return workInProgress2.child;
16372
16372
  }
16373
16373
  }
16374
- function validateFunctionComponentInDev(workInProgress2, Component13) {
16374
+ function validateFunctionComponentInDev(workInProgress2, Component14) {
16375
16375
  {
16376
- if (Component13) {
16377
- if (Component13.childContextTypes) {
16378
- error("%s(...): childContextTypes cannot be defined on a function component.", Component13.displayName || Component13.name || "Component");
16376
+ if (Component14) {
16377
+ if (Component14.childContextTypes) {
16378
+ error("%s(...): childContextTypes cannot be defined on a function component.", Component14.displayName || Component14.name || "Component");
16379
16379
  }
16380
16380
  }
16381
16381
  if (workInProgress2.ref !== null) {
@@ -16394,15 +16394,15 @@ var require_react_dom_development = __commonJS({
16394
16394
  error("Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?%s", info);
16395
16395
  }
16396
16396
  }
16397
- if (typeof Component13.getDerivedStateFromProps === "function") {
16398
- var _componentName3 = getComponentNameFromType(Component13) || "Unknown";
16397
+ if (typeof Component14.getDerivedStateFromProps === "function") {
16398
+ var _componentName3 = getComponentNameFromType(Component14) || "Unknown";
16399
16399
  if (!didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3]) {
16400
16400
  error("%s: Function components do not support getDerivedStateFromProps.", _componentName3);
16401
16401
  didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3] = true;
16402
16402
  }
16403
16403
  }
16404
- if (typeof Component13.contextType === "object" && Component13.contextType !== null) {
16405
- var _componentName4 = getComponentNameFromType(Component13) || "Unknown";
16404
+ if (typeof Component14.contextType === "object" && Component14.contextType !== null) {
16405
+ var _componentName4 = getComponentNameFromType(Component14) || "Unknown";
16406
16406
  if (!didWarnAboutContextTypeOnFunctionComponent[_componentName4]) {
16407
16407
  error("%s: Function components do not support contextType.", _componentName4);
16408
16408
  didWarnAboutContextTypeOnFunctionComponent[_componentName4] = true;
@@ -17145,8 +17145,8 @@ var require_react_dom_development = __commonJS({
17145
17145
  pushHostContext(workInProgress2);
17146
17146
  break;
17147
17147
  case ClassComponent: {
17148
- var Component13 = workInProgress2.type;
17149
- if (isContextProvider(Component13)) {
17148
+ var Component14 = workInProgress2.type;
17149
+ if (isContextProvider(Component14)) {
17150
17150
  pushContextProvider(workInProgress2);
17151
17151
  }
17152
17152
  break;
@@ -17270,10 +17270,10 @@ var require_react_dom_development = __commonJS({
17270
17270
  return mountLazyComponent(current2, workInProgress2, elementType, renderLanes2);
17271
17271
  }
17272
17272
  case FunctionComponent: {
17273
- var Component13 = workInProgress2.type;
17273
+ var Component14 = workInProgress2.type;
17274
17274
  var unresolvedProps = workInProgress2.pendingProps;
17275
- var resolvedProps = workInProgress2.elementType === Component13 ? unresolvedProps : resolveDefaultProps(Component13, unresolvedProps);
17276
- return updateFunctionComponent(current2, workInProgress2, Component13, resolvedProps, renderLanes2);
17275
+ var resolvedProps = workInProgress2.elementType === Component14 ? unresolvedProps : resolveDefaultProps(Component14, unresolvedProps);
17276
+ return updateFunctionComponent(current2, workInProgress2, Component14, resolvedProps, renderLanes2);
17277
17277
  }
17278
17278
  case ClassComponent: {
17279
17279
  var _Component = workInProgress2.type;
@@ -17577,8 +17577,8 @@ var require_react_dom_development = __commonJS({
17577
17577
  bubbleProperties(workInProgress2);
17578
17578
  return null;
17579
17579
  case ClassComponent: {
17580
- var Component13 = workInProgress2.type;
17581
- if (isContextProvider(Component13)) {
17580
+ var Component14 = workInProgress2.type;
17581
+ if (isContextProvider(Component14)) {
17582
17582
  popContext(workInProgress2);
17583
17583
  }
17584
17584
  bubbleProperties(workInProgress2);
@@ -17886,8 +17886,8 @@ var require_react_dom_development = __commonJS({
17886
17886
  popTreeContext(workInProgress2);
17887
17887
  switch (workInProgress2.tag) {
17888
17888
  case ClassComponent: {
17889
- var Component13 = workInProgress2.type;
17890
- if (isContextProvider(Component13)) {
17889
+ var Component14 = workInProgress2.type;
17890
+ if (isContextProvider(Component14)) {
17891
17891
  popContext(workInProgress2);
17892
17892
  }
17893
17893
  var flags = workInProgress2.flags;
@@ -21539,18 +21539,18 @@ var require_react_dom_development = __commonJS({
21539
21539
  var createFiber = function(tag, pendingProps, key, mode2) {
21540
21540
  return new FiberNode(tag, pendingProps, key, mode2);
21541
21541
  };
21542
- function shouldConstruct$1(Component13) {
21543
- var prototype = Component13.prototype;
21542
+ function shouldConstruct$1(Component14) {
21543
+ var prototype = Component14.prototype;
21544
21544
  return !!(prototype && prototype.isReactComponent);
21545
21545
  }
21546
21546
  function isSimpleFunctionComponent(type) {
21547
21547
  return typeof type === "function" && !shouldConstruct$1(type) && type.defaultProps === void 0;
21548
21548
  }
21549
- function resolveLazyComponentTag(Component13) {
21550
- if (typeof Component13 === "function") {
21551
- return shouldConstruct$1(Component13) ? ClassComponent : FunctionComponent;
21552
- } else if (Component13 !== void 0 && Component13 !== null) {
21553
- var $$typeof = Component13.$$typeof;
21549
+ function resolveLazyComponentTag(Component14) {
21550
+ if (typeof Component14 === "function") {
21551
+ return shouldConstruct$1(Component14) ? ClassComponent : FunctionComponent;
21552
+ } else if (Component14 !== void 0 && Component14 !== null) {
21553
+ var $$typeof = Component14.$$typeof;
21554
21554
  if ($$typeof === REACT_FORWARD_REF_TYPE) {
21555
21555
  return ForwardRef;
21556
21556
  }
@@ -21984,9 +21984,9 @@ var require_react_dom_development = __commonJS({
21984
21984
  var fiber = get2(parentComponent);
21985
21985
  var parentContext = findCurrentUnmaskedContext(fiber);
21986
21986
  if (fiber.tag === ClassComponent) {
21987
- var Component13 = fiber.type;
21988
- if (isContextProvider(Component13)) {
21989
- return processChildContext(fiber, Component13, parentContext);
21987
+ var Component14 = fiber.type;
21988
+ if (isContextProvider(Component14)) {
21989
+ return processChildContext(fiber, Component14, parentContext);
21990
21990
  }
21991
21991
  }
21992
21992
  return parentContext;
@@ -25913,8 +25913,8 @@ var require_react_jsx_runtime_development = __commonJS({
25913
25913
  return describeNativeComponentFrame(fn, false);
25914
25914
  }
25915
25915
  }
25916
- function shouldConstruct(Component13) {
25917
- var prototype = Component13.prototype;
25916
+ function shouldConstruct(Component14) {
25917
+ var prototype = Component14.prototype;
25918
25918
  return !!(prototype && prototype.isReactComponent);
25919
25919
  }
25920
25920
  function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
@@ -26412,11 +26412,11 @@ var require_react_jsx_runtime_development = __commonJS({
26412
26412
  return jsxWithValidation(type, props, key, false);
26413
26413
  }
26414
26414
  }
26415
- var jsx12 = jsxWithValidationDynamic;
26416
- var jsxs9 = jsxWithValidationStatic;
26415
+ var jsx13 = jsxWithValidationDynamic;
26416
+ var jsxs10 = jsxWithValidationStatic;
26417
26417
  exports4.Fragment = REACT_FRAGMENT_TYPE;
26418
- exports4.jsx = jsx12;
26419
- exports4.jsxs = jsxs9;
26418
+ exports4.jsx = jsx13;
26419
+ exports4.jsxs = jsxs10;
26420
26420
  })();
26421
26421
  }
26422
26422
  }
@@ -28409,18 +28409,18 @@ var require_emotion_element_b63ca7c6_cjs_dev = __commonJS({
28409
28409
  value: theme
28410
28410
  }, props.children);
28411
28411
  };
28412
- function withTheme(Component13) {
28413
- var componentName = Component13.displayName || Component13.name || "Component";
28412
+ function withTheme(Component14) {
28413
+ var componentName = Component14.displayName || Component14.name || "Component";
28414
28414
  var render = function render2(props, ref) {
28415
28415
  var theme = React3.useContext(ThemeContext);
28416
- return /* @__PURE__ */ React3.createElement(Component13, _extends2({
28416
+ return /* @__PURE__ */ React3.createElement(Component14, _extends2({
28417
28417
  theme,
28418
28418
  ref
28419
28419
  }, props));
28420
28420
  };
28421
28421
  var WithTheme = /* @__PURE__ */ React3.forwardRef(render);
28422
28422
  WithTheme.displayName = "WithTheme(" + componentName + ")";
28423
- return _isolatedHnrs_dist_emotionReact_isolatedHnrs["default"](WithTheme, Component13);
28423
+ return _isolatedHnrs_dist_emotionReact_isolatedHnrs["default"](WithTheme, Component14);
28424
28424
  }
28425
28425
  var getLastPart = function getLastPart2(functionName) {
28426
28426
  var parts = functionName.split(".");
@@ -28682,7 +28682,7 @@ var require_emotion_react_cjs_dev = __commonJS({
28682
28682
  }
28683
28683
  }
28684
28684
  };
28685
- var jsx12 = function jsx13(type, props) {
28685
+ var jsx13 = function jsx14(type, props) {
28686
28686
  var args = arguments;
28687
28687
  if (props == null || !emotionElement.hasOwnProperty.call(props, "css")) {
28688
28688
  return React3.createElement.apply(void 0, args);
@@ -28931,9 +28931,9 @@ var require_emotion_react_cjs_dev = __commonJS({
28931
28931
  exports4.withTheme = emotionElement.withTheme;
28932
28932
  exports4.ClassNames = ClassNames2;
28933
28933
  exports4.Global = Global;
28934
- exports4.createElement = jsx12;
28934
+ exports4.createElement = jsx13;
28935
28935
  exports4.css = css5;
28936
- exports4.jsx = jsx12;
28936
+ exports4.jsx = jsx13;
28937
28937
  exports4.keyframes = keyframes2;
28938
28938
  }
28939
28939
  });
@@ -45654,7 +45654,7 @@ uniform ${i3} ${o3} u_${a3};
45654
45654
  });
45655
45655
 
45656
45656
  // src/index.tsx
45657
- var import_react15 = __toESM(require_react(), 1);
45657
+ var import_react16 = __toESM(require_react(), 1);
45658
45658
  var import_client = __toESM(require_client(), 1);
45659
45659
 
45660
45660
  // src/components/layout.footer.tsx
@@ -46531,7 +46531,8 @@ var DebugDefaults = {
46531
46531
  "debug.screenshot": false,
46532
46532
  "debug.layer.linz-aerial": 0,
46533
46533
  "debug.layer.linz-topographic": 0,
46534
- "debug.layer.osm": 0
46534
+ "debug.layer.osm": 0,
46535
+ "debug.date": false
46535
46536
  };
46536
46537
  var ConfigDebug = class {
46537
46538
  static toUrl(opt, url) {
@@ -46564,6 +46565,7 @@ var ConfigDebug = class {
46564
46565
  isChanged = setNum(opt, "debug.layer.linz-aerial", url.get("debug.layer.linz-aerial")) || isChanged;
46565
46566
  isChanged = setNum(opt, "debug.layer.linz-topographic", url.get("debug.layer.linz-topographic")) || isChanged;
46566
46567
  isChanged = setNum(opt, "debug.layer.osm", url.get("debug.layer.osm")) || isChanged;
46568
+ isChanged = setKey(opt, "debug.date", url.get("debug.date") != null) || isChanged;
46567
46569
  return isChanged;
46568
46570
  }
46569
46571
  };
@@ -53239,15 +53241,13 @@ var Projection2 = class {
53239
53241
  features: files.map((f) => this.boundsToGeoJsonFeature(f, { name: f.name }))
53240
53242
  };
53241
53243
  }
53242
- static getTiffResZoom(tms, gsd, blockFactor = 1) {
53243
- let z = 0;
53244
- for (; z < tms.zooms.length; ++z) {
53245
- if (tms.pixelScale(z) <= gsd * blockFactor)
53244
+ static getTiffResZoom(tms, pixelScale) {
53245
+ for (let z = 0; z < tms.zooms.length; z++) {
53246
+ const diff = tms.pixelScale(z) - pixelScale;
53247
+ if (diff < this.AllowedFloatingError)
53246
53248
  return z;
53247
53249
  }
53248
- if (z === tms.zooms.length)
53249
- return z - 1;
53250
- throw new Error("ResZoom not found");
53250
+ return tms.zooms.length - 1;
53251
53251
  }
53252
53252
  static tileToWgs84Bbox(tms, tile) {
53253
53253
  const ul = tms.tileToSource(tile);
@@ -53288,8 +53288,8 @@ var Projection2 = class {
53288
53288
  }
53289
53289
  return point;
53290
53290
  }
53291
- static findAlignmentLevels(tms, tile, gsd) {
53292
- return Math.max(0, this.getTiffResZoom(tms, gsd, 2) - tile.z);
53291
+ static findAlignmentLevels(tms, tile, gsd, blockFactor = 2) {
53292
+ return Math.max(0, this.getTiffResZoom(tms, gsd * blockFactor) - tile.z);
53293
53293
  }
53294
53294
  static getImagePixelWidth(tms, tile, targetZoom) {
53295
53295
  const ul = tms.tileToSource(tile);
@@ -53297,6 +53297,20 @@ var Projection2 = class {
53297
53297
  return Math.round((lr.x - ul.x) / tms.pixelScale(targetZoom)) * 2;
53298
53298
  }
53299
53299
  };
53300
+ Projection2.AllowedFloatingError = 1e-8;
53301
+
53302
+ // ../config/build/base58.js
53303
+ var import_base_x = __toESM(require_src2(), 1);
53304
+ var Base58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
53305
+ var base58 = (0, import_base_x.default)(Base58);
53306
+ var Base58ValidCharacters = new Set(Base58);
53307
+ function isBase58(s) {
53308
+ for (let i = 0; i < s.length; i++) {
53309
+ if (!Base58ValidCharacters.has(s.charAt(i)))
53310
+ return false;
53311
+ }
53312
+ return true;
53313
+ }
53300
53314
 
53301
53315
  // ../shared/build/url.js
53302
53316
  function toQueryString(r2) {
@@ -53316,19 +53330,6 @@ function toQueryString(r2) {
53316
53330
  return `?${query}`;
53317
53331
  }
53318
53332
 
53319
- // ../config/build/base58.js
53320
- var import_base_x = __toESM(require_src2(), 1);
53321
- var Base58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
53322
- var base58 = (0, import_base_x.default)(Base58);
53323
- var Base58ValidCharacters = new Set(Base58);
53324
- function isBase58(s) {
53325
- for (let i = 0; i < s.length; i++) {
53326
- if (!Base58ValidCharacters.has(s.charAt(i)))
53327
- return false;
53328
- }
53329
- return true;
53330
- }
53331
-
53332
53333
  // src/url.ts
53333
53334
  function ensureBase58(s) {
53334
53335
  if (s == null)
@@ -53384,34 +53385,38 @@ var WindowUrl = {
53384
53385
  toImageryUrl(layerId, imageryType) {
53385
53386
  return `${this.baseUrl()}/v1/imagery/${layerId}/${imageryType}`;
53386
53387
  },
53387
- toTileUrl(urlType, tileMatrix, layerId, style, config) {
53388
+ toTileUrl(params2) {
53388
53389
  const queryParams = new URLSearchParams();
53389
53390
  if (Config.ApiKey != null && Config.ApiKey !== "")
53390
53391
  queryParams.set("api", Config.ApiKey);
53391
- if (config != null)
53392
- queryParams.set("config", ensureBase58(config));
53393
- if (urlType === "style" /* Style */) {
53394
- if (tileMatrix.identifier !== GoogleTms.identifier)
53395
- queryParams.set("tileMatrix", tileMatrix.identifier);
53392
+ if (params2.config != null)
53393
+ queryParams.set("config", ensureBase58(params2.config));
53394
+ if (params2.date?.after != null)
53395
+ queryParams.set("date[after]", params2.date.after);
53396
+ if (params2.date?.before != null)
53397
+ queryParams.set("date[before]", params2.date.before);
53398
+ if (params2.urlType === "style" /* Style */) {
53399
+ if (params2.tileMatrix.identifier !== GoogleTms.identifier)
53400
+ queryParams.set("tileMatrix", params2.tileMatrix.identifier);
53396
53401
  if (WindowUrl.ImageFormat !== ImageFormat.Webp)
53397
53402
  queryParams.set("format", WindowUrl.ImageFormat);
53398
53403
  }
53399
53404
  const q = "?" + queryParams.toString();
53400
- const baseTileUrl = `${this.baseUrl()}/v1/tiles/${layerId}/${tileMatrix.identifier}`;
53401
- if (urlType === "raster" /* TileRaster */)
53405
+ const baseTileUrl = `${this.baseUrl()}/v1/tiles/${params2.layerId}/${params2.tileMatrix.identifier}`;
53406
+ if (params2.urlType === "raster" /* TileRaster */)
53402
53407
  return `${baseTileUrl}/{z}/{x}/{y}.${WindowUrl.ImageFormat}${q}`;
53403
- if (urlType === "vector-xyz" /* TileVectorXyz */)
53408
+ if (params2.urlType === "vector-xyz" /* TileVectorXyz */)
53404
53409
  return `${baseTileUrl}/{z}/{x}/{y}.pbf${q}`;
53405
- if (urlType === "style" /* Style */)
53406
- return `${this.baseUrl()}/v1/styles/${style ?? layerId}.json${q}`;
53407
- if (urlType === "wmts" /* Wmts */)
53410
+ if (params2.urlType === "style" /* Style */)
53411
+ return `${this.baseUrl()}/v1/styles/${params2.style ?? params2.layerId}.json${q}`;
53412
+ if (params2.urlType === "wmts" /* Wmts */)
53408
53413
  return `${baseTileUrl}/WMTSCapabilities.xml${q}`;
53409
- if (urlType === "attribution" /* Attribution */)
53414
+ if (params2.urlType === "attribution" /* Attribution */)
53410
53415
  return `${baseTileUrl}/attribution.json${q}`;
53411
- if (urlType === "tile-wmts" /* TileWmts */) {
53416
+ if (params2.urlType === "tile-wmts" /* TileWmts */) {
53412
53417
  return `${baseTileUrl}/{TileMatrix}/{TileCol}/{TileRow}.${WindowUrl.ImageFormat}${q}`;
53413
53418
  }
53414
- throw new Error("Unknown url type: " + urlType);
53419
+ throw new Error("Unknown url type: " + params2.urlType);
53415
53420
  },
53416
53421
  toConfigUrl(layerId, config = Config.map.config) {
53417
53422
  const query = toQueryString({ api: Config.ApiKey, config });
@@ -53429,8 +53434,15 @@ var TileGrid = class {
53429
53434
  this.tileMatrix = tileMatrix;
53430
53435
  this.extraZoomLevels = extraZoomLevels;
53431
53436
  }
53432
- getStyle(layerId, style, config = Config.map.config) {
53433
- return WindowUrl.toTileUrl("style" /* Style */, this.tileMatrix, layerId, style, config);
53437
+ getStyle(layerId, style, config = Config.map.config, date) {
53438
+ return WindowUrl.toTileUrl({
53439
+ urlType: "style" /* Style */,
53440
+ tileMatrix: this.tileMatrix,
53441
+ layerId,
53442
+ style,
53443
+ config,
53444
+ date
53445
+ });
53434
53446
  }
53435
53447
  };
53436
53448
  var Nztm2000TileGrid = new TileGrid(Nztm2000Tms, 2);
@@ -53491,6 +53503,7 @@ var MapConfig = class extends import_events.Emitter {
53491
53503
  this.layerId = "aerial";
53492
53504
  this.tileMatrix = GoogleTms;
53493
53505
  this.debug = { ...DebugDefaults };
53506
+ this.filter = { date: { after: void 0, before: void 0 } };
53494
53507
  }
53495
53508
  get layers() {
53496
53509
  if (this._layers == null)
@@ -53528,6 +53541,9 @@ var MapConfig = class extends import_events.Emitter {
53528
53541
  get layerKeyTms() {
53529
53542
  return `${this.layerKey}::${this.tileMatrix.identifier}`;
53530
53543
  }
53544
+ get styleId() {
53545
+ return `basemaps-${Config.map.layerId}`;
53546
+ }
53531
53547
  updateFromUrl(search = window.location.search) {
53532
53548
  const urlParams = new URLSearchParams(search);
53533
53549
  const style = urlParams.get("s") ?? urlParams.get("style");
@@ -53567,8 +53583,8 @@ var MapConfig = class extends import_events.Emitter {
53567
53583
  ConfigDebug.toUrl(opts.debug, urlParams);
53568
53584
  return urlParams.toString();
53569
53585
  }
53570
- toTileUrl(urlType, tileMatrix = this.tileMatrix, layerId = this.layerId, style = this.style, config = this.config) {
53571
- return WindowUrl.toTileUrl(urlType, tileMatrix, layerId, style, config);
53586
+ toTileUrl(urlType, tileMatrix = this.tileMatrix, layerId = this.layerId, style = this.style, config = this.config, date = this.filter.date) {
53587
+ return WindowUrl.toTileUrl({ urlType, tileMatrix, layerId, style, config, date });
53572
53588
  }
53573
53589
  getLocation(map) {
53574
53590
  const center = map.getCenter();
@@ -53595,6 +53611,14 @@ var MapConfig = class extends import_events.Emitter {
53595
53611
  this.emit("tileMatrix", this.tileMatrix);
53596
53612
  this.emit("change");
53597
53613
  }
53614
+ setFilterDateRange(after, before) {
53615
+ if (this.filter.date.after === after && this.filter.date.before === before)
53616
+ return;
53617
+ this.filter.date.after = after;
53618
+ this.filter.date.before = before;
53619
+ this.emit("filter", this.filter);
53620
+ this.emit("change");
53621
+ }
53598
53622
  setLayerId(layer, style) {
53599
53623
  if (this.layerId === layer && this.style === style)
53600
53624
  return;
@@ -53694,7 +53718,7 @@ var Config = {
53694
53718
  return "UA-23232486-4";
53695
53719
  },
53696
53720
  get Version() {
53697
- return "v6.38.0";
53721
+ return "v6.40.0";
53698
53722
  },
53699
53723
  map: new MapConfig()
53700
53724
  };
@@ -53784,10 +53808,6 @@ var Footer = class extends import_react2.Component {
53784
53808
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("ul", {
53785
53809
  className: "lui-footer-list",
53786
53810
  children: [
53787
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", {
53788
- className: "lui-footer-inline-list-item",
53789
- children: "\xA9 2021 Land Information New Zealand"
53790
- }),
53791
53811
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", {
53792
53812
  className: "lui-footer-inline-list-item",
53793
53813
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Link, {
@@ -53808,6 +53828,13 @@ var Footer = class extends import_react2.Component {
53808
53828
  href: "https://www.linz.govt.nz/data/linz-data/linz-basemaps/data-attribution",
53809
53829
  children: "Data Attribution"
53810
53830
  })
53831
+ }),
53832
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", {
53833
+ className: "lui-footer-inline-list-item",
53834
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Link, {
53835
+ href: "https://www.linz.govt.nz/copyright",
53836
+ children: "Copyright"
53837
+ })
53811
53838
  })
53812
53839
  ]
53813
53840
  })
@@ -57681,6 +57708,7 @@ Your Service/App URL:
57681
57708
  }
57682
57709
  componentDidMount() {
57683
57710
  this._events.push(Config.map.on("change", () => this.forceUpdate()));
57711
+ this._events.push(Config.map.on("filter", () => this.renderLinksTiles()));
57684
57712
  Config.map.layers.then((layers) => this.setState({ layers }));
57685
57713
  }
57686
57714
  componentWillUnmount() {
@@ -57861,14 +57889,28 @@ Your Service/App URL:
57861
57889
  const projections = this.validProjections();
57862
57890
  const children = [];
57863
57891
  if (projections.has(EpsgCode.Nztm2000)) {
57864
- const nztmTileUrl = Config.map.toTileUrl("wmts" /* Wmts */, Nztm2000QuadTms);
57892
+ const nztmTileUrl = Config.map.toTileUrl(
57893
+ "wmts" /* Wmts */,
57894
+ Nztm2000QuadTms,
57895
+ void 0,
57896
+ void 0,
57897
+ void 0,
57898
+ Config.map.filter.date
57899
+ );
57865
57900
  children.push(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Copyable, {
57866
57901
  header: "WMTS: NZTM2000Quad",
57867
57902
  value: nztmTileUrl
57868
57903
  }, "NZTM2000Quad"));
57869
57904
  }
57870
57905
  if (projections.has(EpsgCode.Google)) {
57871
- const googleTileUrl = Config.map.toTileUrl("wmts" /* Wmts */, GoogleTms);
57906
+ const googleTileUrl = Config.map.toTileUrl(
57907
+ "wmts" /* Wmts */,
57908
+ GoogleTms,
57909
+ void 0,
57910
+ void 0,
57911
+ void 0,
57912
+ Config.map.filter.date
57913
+ );
57872
57914
  const googleXyzTileUrl = Config.map.toTileUrl("raster" /* TileRaster */, GoogleTms);
57873
57915
  children.push(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Copyable, {
57874
57916
  header: "WMTS: WebMercatorQuad",
@@ -57887,7 +57929,7 @@ Your Service/App URL:
57887
57929
 
57888
57930
  // src/components/map.tsx
57889
57931
  var import_maplibre_gl3 = __toESM(require_maplibre_gl(), 1);
57890
- var import_react14 = __toESM(require_react(), 1);
57932
+ var import_react15 = __toESM(require_react(), 1);
57891
57933
 
57892
57934
  // ../attribution/build/attribution.js
57893
57935
  function escapeHtml(text) {
@@ -57897,16 +57939,25 @@ function escapeHtml(text) {
57897
57939
  }
57898
57940
  var AttributionBounds = class {
57899
57941
  constructor(collection) {
57942
+ var _a, _b;
57900
57943
  this.boundaries = [];
57901
57944
  this.collection = collection;
57902
57945
  const zoom = collection.summaries["linz:zoom"];
57903
57946
  this.minZoom = zoom.min;
57904
57947
  this.maxZoom = zoom.max;
57905
57948
  this.bbox = collection.extent.spatial.bbox[0];
57949
+ this.startDate = (_a = collection.extent.temporal) === null || _a === void 0 ? void 0 : _a.interval[0][0];
57950
+ this.endDate = (_b = collection.extent.temporal) === null || _b === void 0 ? void 0 : _b.interval[0][1];
57906
57951
  }
57907
- intersects(extent, zoom) {
57952
+ intersects(extent, zoom, dateAfter, dateBefore) {
57908
57953
  if (zoom > this.maxZoom || zoom < this.minZoom)
57909
57954
  return false;
57955
+ if (dateAfter && dateBefore && dateAfter > dateBefore)
57956
+ return false;
57957
+ if (dateAfter && this.endDate && dateAfter > this.endDate)
57958
+ return false;
57959
+ if (dateBefore && this.startDate && dateBefore < this.startDate)
57960
+ return false;
57910
57961
  if (!Wgs84.intersects(extent, this.bbox))
57911
57962
  return false;
57912
57963
  return this.intersection(Wgs84.bboxToMultiPolygon(extent));
@@ -57954,7 +58005,8 @@ function convertToBounds(stac) {
57954
58005
  return result;
57955
58006
  }
57956
58007
  function getYears(col) {
57957
- const { interval } = col.extent.temporal;
58008
+ var _a, _b;
58009
+ const interval = (_b = (_a = col.extent) === null || _a === void 0 ? void 0 : _a.temporal) === null || _b === void 0 ? void 0 : _b.interval;
57958
58010
  if (interval == null || interval.length === 0)
57959
58011
  return [-1, -1];
57960
58012
  const range = interval[0];
@@ -57977,7 +58029,7 @@ var Attribution = class {
57977
58029
  static fromStac(json) {
57978
58030
  return new Attribution(convertToBounds(json).reverse());
57979
58031
  }
57980
- filter(extent, zoom) {
58032
+ filter(extent, zoom, dateAfter, dateBefore) {
57981
58033
  zoom = Math.round(zoom);
57982
58034
  const filtered = [];
57983
58035
  const { attributions } = this;
@@ -57986,7 +58038,7 @@ var Attribution = class {
57986
58038
  for (const attr of attributions) {
57987
58039
  if (this.isIgnored != null && this.isIgnored(attr))
57988
58040
  continue;
57989
- if (attr.intersects(extent, zoom))
58041
+ if (attr.intersects(extent, zoom, dateAfter, dateBefore))
57990
58042
  filtered.push(attr.collection);
57991
58043
  }
57992
58044
  return filtered;
@@ -58030,6 +58082,7 @@ var MapAttribution = class {
58030
58082
  this.bounds = new import_maplibre_gl.LngLatBounds([0, 0, 0, 0]);
58031
58083
  this.zoom = -1;
58032
58084
  this.filteredRecords = [];
58085
+ this._events = [];
58033
58086
  this.resetAttribution = () => {
58034
58087
  this.attributionHtml = "";
58035
58088
  this.updateAttribution();
@@ -58037,16 +58090,16 @@ var MapAttribution = class {
58037
58090
  this.updateAttribution = () => {
58038
58091
  if (Config.map.isVector)
58039
58092
  return this.vectorAttribution();
58040
- const tmsId = Config.map.layerKeyTms;
58041
- let loader = Attributions.get(tmsId);
58093
+ const cacheKey = Config.map.layerKeyTms;
58094
+ let loader = Attributions.get(cacheKey);
58042
58095
  if (loader == null) {
58043
58096
  loader = Attribution.load(Config.map.toTileUrl("attribution" /* Attribution */)).catch(() => null);
58044
- Attributions.set(tmsId, loader);
58097
+ Attributions.set(cacheKey, loader);
58045
58098
  loader.then((attr) => {
58046
58099
  if (attr == null)
58047
58100
  return;
58048
58101
  attr.isIgnored = this.isIgnored;
58049
- AttributionSync.set(tmsId, attr);
58102
+ AttributionSync.set(cacheKey, attr);
58050
58103
  this.scheduleRender();
58051
58104
  });
58052
58105
  }
@@ -58065,7 +58118,9 @@ var MapAttribution = class {
58065
58118
  this.bounds = this.map.getBounds();
58066
58119
  this.zoom += 1;
58067
58120
  const bbox = this.mapboxBoundToBbox(this.bounds, Config.map.tileMatrix);
58068
- const filtered = attr.filter(bbox, this.zoom);
58121
+ const filtered = attr.filter(bbox, this.zoom, Config.map.filter.date.after, Config.map.filter.date.before);
58122
+ const filteredLayerIds = filtered.map((x) => x.id).join("_");
58123
+ Config.map.emit("visibleLayers", filteredLayerIds);
58069
58124
  let attributionHTML = attr.renderList(filtered);
58070
58125
  if (attributionHTML === "") {
58071
58126
  attributionHTML = Copyright;
@@ -58081,10 +58136,13 @@ var MapAttribution = class {
58081
58136
  this.filteredRecords = filtered;
58082
58137
  };
58083
58138
  this.map = map;
58084
- onMapLoaded(map, this.resetAttribution);
58085
58139
  map.on("move", this.updateAttribution);
58086
58140
  Config.map.on("tileMatrix", this.resetAttribution);
58087
58141
  Config.map.on("layer", this.resetAttribution);
58142
+ onMapLoaded(this.map, () => {
58143
+ this._events.push(Config.map.on("filter", this.updateAttribution));
58144
+ this.resetAttribution();
58145
+ });
58088
58146
  }
58089
58147
  scheduleRender() {
58090
58148
  if (this._scheduled != null || this._raf !== 0)
@@ -58122,8 +58180,85 @@ var MapAttribution = class {
58122
58180
  }
58123
58181
  };
58124
58182
 
58125
- // src/components/debug.tsx
58183
+ // src/components/daterange.tsx
58126
58184
  var import_react12 = __toESM(require_react(), 1);
58185
+ var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
58186
+ var minDate = "1950-01-01T00:00:00.000Z";
58187
+ var maxDate = `${new Date().getFullYear().toString()}-12-31T23:59:59.999Z`;
58188
+ var DateRange = class extends import_react12.Component {
58189
+ constructor() {
58190
+ super(...arguments);
58191
+ this.state = { after: minDate, before: maxDate };
58192
+ this._raf = 0;
58193
+ this.updateConfig = () => {
58194
+ this._raf = 0;
58195
+ Config.map.setFilterDateRange(this.state.after, this.state.before);
58196
+ };
58197
+ this.handleChange = (event, id) => {
58198
+ switch (id) {
58199
+ case "after":
58200
+ this.setState({ after: `${event.target.value}-01-01T00:00:00.000Z` });
58201
+ break;
58202
+ case "before":
58203
+ this.setState({ before: `${event.target.value}-12-31T23:59:59.999Z` });
58204
+ break;
58205
+ }
58206
+ this.scheduleUpdateConfig();
58207
+ };
58208
+ }
58209
+ get yearAfter() {
58210
+ return this.state.after?.slice(0, 4);
58211
+ }
58212
+ get yearBefore() {
58213
+ return this.state.before?.slice(0, 4);
58214
+ }
58215
+ scheduleUpdateConfig() {
58216
+ if (this._scheduled != null || this._raf !== 0)
58217
+ return;
58218
+ this._scheduled = setTimeout(() => {
58219
+ this._scheduled = void 0;
58220
+ this._raf = requestAnimationFrame(this.updateConfig);
58221
+ }, 200);
58222
+ }
58223
+ render() {
58224
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
58225
+ className: "date-range",
58226
+ children: [
58227
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
58228
+ children: [
58229
+ "After: ",
58230
+ this.yearAfter
58231
+ ]
58232
+ }),
58233
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", {
58234
+ type: "range",
58235
+ min: minDate.slice(0, 4),
58236
+ max: this.yearBefore,
58237
+ step: "1",
58238
+ value: this.yearAfter,
58239
+ onChange: (e) => this.handleChange(e, "after")
58240
+ }),
58241
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
58242
+ children: [
58243
+ "Before: ",
58244
+ this.yearBefore
58245
+ ]
58246
+ }),
58247
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", {
58248
+ type: "range",
58249
+ min: this.yearAfter,
58250
+ max: maxDate.slice(0, 4),
58251
+ step: "1",
58252
+ value: this.yearBefore,
58253
+ onChange: (e) => this.handleChange(e, "before")
58254
+ })
58255
+ ]
58256
+ });
58257
+ }
58258
+ };
58259
+
58260
+ // src/components/debug.tsx
58261
+ var import_react13 = __toESM(require_react(), 1);
58127
58262
 
58128
58263
  // src/config.layer.ts
58129
58264
  var ConfigData = class {
@@ -58242,7 +58377,12 @@ var DebugMap = class {
58242
58377
  get styleJson() {
58243
58378
  if (this._styleJson == null) {
58244
58379
  this._styleJson = fetch(
58245
- WindowUrl.toTileUrl("style" /* Style */, Config.map.tileMatrix, "topographic", "topographic", null)
58380
+ WindowUrl.toTileUrl({
58381
+ urlType: "style" /* Style */,
58382
+ tileMatrix: Config.map.tileMatrix,
58383
+ layerId: "topographic",
58384
+ style: "topographic"
58385
+ })
58246
58386
  ).then((f) => f.json());
58247
58387
  }
58248
58388
  return this._styleJson;
@@ -58341,7 +58481,11 @@ var DebugMap = class {
58341
58481
  if (tileServer === "osm")
58342
58482
  return "https://tile.openstreetmap.org/{z}/{x}/{y}.png";
58343
58483
  if (tileServer === "linz-aerial") {
58344
- return WindowUrl.toTileUrl("raster" /* TileRaster */, Config.map.tileMatrix, "aerial", void 0, null);
58484
+ return WindowUrl.toTileUrl({
58485
+ urlType: "raster" /* TileRaster */,
58486
+ tileMatrix: Config.map.tileMatrix,
58487
+ layerId: "aerial"
58488
+ });
58345
58489
  }
58346
58490
  throw new Error("Unknown tile server");
58347
58491
  }
@@ -58360,7 +58504,7 @@ function debugSlider(label, onInput) {
58360
58504
  onChange: onInput
58361
58505
  });
58362
58506
  }
58363
- var Debug = class extends import_react12.Component {
58507
+ var Debug = class extends import_react13.Component {
58364
58508
  constructor() {
58365
58509
  super(...arguments);
58366
58510
  this.debugMap = new DebugMap();
@@ -58436,6 +58580,7 @@ var Debug = class extends import_react12.Component {
58436
58580
  this.debugMap.adjustVector(this.props.map, Config.map.debug["debug.layer.linz-topographic"]);
58437
58581
  this.setVectorShown(Config.map.debug["debug.source"], "source");
58438
58582
  this.setVectorShown(Config.map.debug["debug.cog"], "cog");
58583
+ this.renderWMTS();
58439
58584
  }
58440
58585
  async loadConfig() {
58441
58586
  const tileSetId = Config.map.layerId;
@@ -58462,13 +58607,6 @@ var Debug = class extends import_react12.Component {
58462
58607
  render() {
58463
58608
  if (Config.map.debug["debug.screenshot"])
58464
58609
  return null;
58465
- const wmtsUrl = WindowUrl.toTileUrl(
58466
- "wmts" /* Wmts */,
58467
- Config.map.tileMatrix,
58468
- Config.map.layerId,
58469
- void 0,
58470
- Config.map.config
58471
- );
58472
58610
  const title = this.state.imagery?.title;
58473
58611
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
58474
58612
  className: "debug",
@@ -58499,25 +58637,7 @@ var Debug = class extends import_react12.Component {
58499
58637
  })
58500
58638
  ]
58501
58639
  }),
58502
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
58503
- className: "debug__info",
58504
- children: [
58505
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("label", {
58506
- className: "debug__label"
58507
- }),
58508
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
58509
- className: "debug__value",
58510
- children: [
58511
- Config.map.tileMatrix.projection.toEpsgString(),
58512
- " - ",
58513
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", {
58514
- href: wmtsUrl,
58515
- children: "WMTS"
58516
- })
58517
- ]
58518
- })
58519
- ]
58520
- }),
58640
+ this.renderWMTS(),
58521
58641
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
58522
58642
  className: "debug__info",
58523
58643
  children: [
@@ -58538,6 +58658,36 @@ var Debug = class extends import_react12.Component {
58538
58658
  ]
58539
58659
  });
58540
58660
  }
58661
+ getWMTSLink() {
58662
+ return WindowUrl.toTileUrl({
58663
+ urlType: "wmts" /* Wmts */,
58664
+ tileMatrix: Config.map.tileMatrix,
58665
+ layerId: Config.map.layerId,
58666
+ config: Config.map.config,
58667
+ date: Config.map.filter.date
58668
+ });
58669
+ }
58670
+ renderWMTS() {
58671
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
58672
+ className: "debug__info",
58673
+ children: [
58674
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("label", {
58675
+ className: "debug__label"
58676
+ }),
58677
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
58678
+ className: "debug__value",
58679
+ children: [
58680
+ Config.map.tileMatrix.projection.toEpsgString(),
58681
+ " - ",
58682
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", {
58683
+ href: this.getWMTSLink(),
58684
+ children: "WMTS"
58685
+ })
58686
+ ]
58687
+ })
58688
+ ]
58689
+ });
58690
+ }
58541
58691
  renderPurple() {
58542
58692
  if (Config.map.debug["debug.screenshot"])
58543
58693
  return;
@@ -58562,7 +58712,7 @@ var Debug = class extends import_react12.Component {
58562
58712
  const cogLocation = WindowUrl.toImageryUrl(this.state.imagery.id, "covering.geojson");
58563
58713
  if (!this.state.isCog)
58564
58714
  return;
58565
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react12.Fragment, {
58715
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react13.Fragment, {
58566
58716
  children: [
58567
58717
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
58568
58718
  className: "debug__info",
@@ -58599,7 +58749,7 @@ var Debug = class extends import_react12.Component {
58599
58749
  renderSourceToggle() {
58600
58750
  if (this.state.imagery == null)
58601
58751
  return null;
58602
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react12.Fragment, {
58752
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react13.Fragment, {
58603
58753
  children: [
58604
58754
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
58605
58755
  className: "debug__info",
@@ -58649,7 +58799,7 @@ var Debug = class extends import_react12.Component {
58649
58799
  ]
58650
58800
  });
58651
58801
  }
58652
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react12.Fragment, {
58802
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react13.Fragment, {
58653
58803
  children: [
58654
58804
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
58655
58805
  className: "debug__info",
@@ -58778,9 +58928,9 @@ var Debug = class extends import_react12.Component {
58778
58928
 
58779
58929
  // src/components/map.switcher.tsx
58780
58930
  var import_maplibre_gl2 = __toESM(require_maplibre_gl(), 1);
58781
- var import_react13 = __toESM(require_react(), 1);
58931
+ var import_react14 = __toESM(require_react(), 1);
58782
58932
  var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
58783
- var MapSwitcher = class extends import_react13.Component {
58933
+ var MapSwitcher = class extends import_react14.Component {
58784
58934
  constructor() {
58785
58935
  super(...arguments);
58786
58936
  this._events = [];
@@ -58868,12 +59018,13 @@ var MapSwitcher = class extends import_react13.Component {
58868
59018
 
58869
59019
  // src/components/map.tsx
58870
59020
  var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
59021
+ var LayerFadeTime = 750;
58871
59022
  function onMapLoaded(map, cb) {
58872
59023
  if (map.loaded())
58873
59024
  return cb();
58874
59025
  setTimeout(() => onMapLoaded(map, cb), 100);
58875
59026
  }
58876
- var Basemaps = class extends import_react14.Component {
59027
+ var Basemaps = class extends import_react15.Component {
58877
59028
  constructor() {
58878
59029
  super(...arguments);
58879
59030
  this.ignoreNextLocationUpdate = false;
@@ -58912,7 +59063,7 @@ var Basemaps = class extends import_react14.Component {
58912
59063
  this.updateStyle = () => {
58913
59064
  this.ensureGeoControl();
58914
59065
  const tileGrid = getTileGrid(Config.map.tileMatrix.identifier);
58915
- const style = tileGrid.getStyle(Config.map.layerId, Config.map.style);
59066
+ const style = tileGrid.getStyle(Config.map.layerId, Config.map.style, void 0, Config.map.filter.date);
58916
59067
  this.map.setStyle(style);
58917
59068
  if (Config.map.tileMatrix !== GoogleTms)
58918
59069
  this.map.setMaxBounds([-180, -85.06, 180, 85.06]);
@@ -58920,6 +59071,50 @@ var Basemaps = class extends import_react14.Component {
58920
59071
  this.map.setMaxBounds();
58921
59072
  this.forceUpdate();
58922
59073
  };
59074
+ this.updateVisibleLayers = (newLayers) => {
59075
+ if (!Config.map.visibleLayers)
59076
+ Config.map.visibleLayers = newLayers;
59077
+ if (newLayers !== Config.map.visibleLayers) {
59078
+ Config.map.visibleLayers = newLayers;
59079
+ const newStyleId = `${Config.map.styleId}_after=${Config.map.filter.date.after?.slice(0, 4)}&before=${Config.map.filter.date.before?.slice(0, 4)}`;
59080
+ if (this.map.getSource(newStyleId) == null) {
59081
+ this.map.addSource(newStyleId, {
59082
+ type: "raster",
59083
+ tiles: [
59084
+ WindowUrl.toTileUrl({
59085
+ urlType: "raster" /* TileRaster */,
59086
+ tileMatrix: Config.map.tileMatrix,
59087
+ layerId: Config.map.layerId,
59088
+ config: Config.map.config,
59089
+ date: Config.map.filter.date
59090
+ })
59091
+ ],
59092
+ tileSize: 256
59093
+ });
59094
+ this.map.addLayer({
59095
+ id: newStyleId,
59096
+ type: "raster",
59097
+ source: newStyleId,
59098
+ paint: { "raster-opacity": 0 }
59099
+ });
59100
+ this.map.moveLayer(newStyleId);
59101
+ this.map.setPaintProperty(newStyleId, "raster-opacity-transition", { duration: LayerFadeTime });
59102
+ this.map.setPaintProperty(newStyleId, "raster-opacity", 1);
59103
+ }
59104
+ }
59105
+ };
59106
+ this.removeOldLayers = () => {
59107
+ const filteredLayers = this.map.getStyle().layers.filter((layer) => layer.id.startsWith(Config.map.styleId));
59108
+ filteredLayers.pop();
59109
+ for (const layer of filteredLayers) {
59110
+ this.map.setPaintProperty(layer.id, "raster-opacity-transition", { duration: LayerFadeTime });
59111
+ this.map.setPaintProperty(layer.id, "raster-opacity", 0);
59112
+ setTimeout(() => {
59113
+ this.map.removeLayer(layer.id);
59114
+ this.map.removeSource(layer.source);
59115
+ }, LayerFadeTime);
59116
+ }
59117
+ };
58923
59118
  this._events = [];
58924
59119
  this.updateUrlTimer = null;
58925
59120
  this.onRender = () => {
@@ -58966,12 +59161,14 @@ var Basemaps = class extends import_react14.Component {
58966
59161
  this.map.addControl(new import_maplibre_gl3.default.FullscreenControl({ container: this.el }));
58967
59162
  }
58968
59163
  this.map.on("render", this.onRender);
59164
+ this.map.on("idle", this.removeOldLayers);
58969
59165
  onMapLoaded(this.map, () => {
58970
59166
  this._events.push(
58971
59167
  Config.map.on("location", this.updateLocation),
58972
59168
  Config.map.on("tileMatrix", this.updateStyle),
58973
59169
  Config.map.on("layer", this.updateStyle),
58974
- Config.map.on("bounds", this.updateBounds)
59170
+ Config.map.on("bounds", this.updateBounds),
59171
+ Config.map.on("visibleLayers", this.updateVisibleLayers)
58975
59172
  );
58976
59173
  this.updateStyle();
58977
59174
  this.forceUpdate();
@@ -58996,6 +59193,7 @@ var Basemaps = class extends import_react14.Component {
58996
59193
  Config.map.isDebug ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Debug, {
58997
59194
  map: this.map
58998
59195
  }) : void 0,
59196
+ Config.map.isDebug && !Config.map.debug["debug.screenshot"] && Config.map.debug["debug.date"] ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DateRange, {}) : void 0,
58999
59197
  isLayerSwitcherEnabled ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MapSwitcher, {}) : void 0
59000
59198
  ]
59001
59199
  });
@@ -59038,9 +59236,9 @@ function isWebpSupported() {
59038
59236
 
59039
59237
  // src/index.tsx
59040
59238
  var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
59041
- var Page = class extends import_react15.Component {
59239
+ var Page = class extends import_react16.Component {
59042
59240
  render() {
59043
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react15.Fragment, {
59241
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react16.Fragment, {
59044
59242
  children: [
59045
59243
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Header, {}),
59046
59244
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Basemaps, {}),