@opengeoweb/sigmet-airmet 5.2.1 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,17 +1,18 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { createContext, version, useContext, useRef, useCallback, useDebugValue, forwardRef, createElement, Fragment } from 'react';
3
- import { Box as Box$2, Button, FormControlLabel, Radio, Grid, Typography, Checkbox, MenuItem, FormHelperText, useTheme as useTheme$2, Dialog, DialogTitle, DialogContent, Card, LinearProgress, List, ListItemButton, Backdrop, CircularProgress } from '@mui/material';
3
+ import { FormControlLabel, Radio, Grid, Typography, Box as Box$2, Button, Checkbox, MenuItem, FormHelperText, useTheme as useTheme$2, Dialog, DialogTitle, DialogContent, Card, LinearProgress, List, ListItemButton, Backdrop, CircularProgress } from '@mui/material';
4
4
  import { useFormContext } from 'react-hook-form';
5
5
  import { useDraftFormHelpers, ReactHookFormRadioGroup, ReactHookFormSelect, ReactHookFormNumberField, isInteger, isValidMax, isValidMin, isEmpty, ReactHookFormDateTime, isValidDate, isBefore, isBetween, hasMaxFeaturePoints, hasMulitpleIntersections, ReactHookFormHiddenInput, isMaximumOneDrawing, hasIntersectionWithFIR, isValidGeoJsonCoordinates, isXHoursBefore, isAfter, isXHoursAfter, ReactHookFormTextField, isLatitude, isNonOrBothCoordinates, isLongitude, ReactHookFormFormControl, isGeometryDirty, ReactHookFormProvider, defaultFormOptions } from '@opengeoweb/form-fields';
6
6
  import { useApiContext, useApi, createApiInstance, createNonAuthApiInstance, createFakeApiInstance, ApiProvider } from '@opengeoweb/api';
7
- import * as turf from '@turf/turf';
8
- import { polygonToLineString, booleanClockwise, rewind } from '@turf/turf';
7
+ import { defaultStyleProperties, defaultIntersectionStyleProperties, defaultPoint, defaultBox, defaultPolygon, DRAWMODE, addFeatureProperties, defaultDelete, MapControls, LayerManagerMapButtonConnect, LegendMapButtonConnect, MultiDimensionSelectMapButtonsConnect, MapViewConnect, MapViewLayer, TimeSliderConnect, LegendConnect, LayerManagerConnect, useMapDrawTool } from '@opengeoweb/core';
8
+ import { CustomTooltip, ToggleMenu, useIsMounted, StatusTag, AlertBanner, ConfirmationServiceProvider, usePreventBrowserClose, useConfirmationDialog, isAxiosError, getAxiosErrorMessage, usePoller, ErrorBoundary } from '@opengeoweb/shared';
9
9
  import moment from 'moment';
10
- import { ToggleMenu, CustomTooltip, useIsMounted, StatusTag, AlertBanner, ConfirmationServiceProvider, usePreventBrowserClose, useConfirmationDialog, isAxiosError, getAxiosErrorMessage, usePoller, ErrorBoundary } from '@opengeoweb/shared';
11
- import { layerTypes, mapSelectors, generateMapId, generateTimesliderId, SyncGroups, generateLayerId, mapActions, publicLayers, MapControls, LayerManagerMapButtonConnect, LegendMapButtonConnect, MultiDimensionSelectMapButtonsConnect, MapViewConnect, MapViewLayer, TimeSliderConnect, LegendConnect, LayerManagerConnect } from '@opengeoweb/core';
12
- import { Location, DrawRegion, DrawPolygon, DrawFIRLand, Delete, ChevronLeft, Edit, Success, Clock } from '@opengeoweb/theme';
10
+ import { polygonToLineString, booleanClockwise, rewind } from '@turf/turf';
11
+ import { layerTypes, mapSelectors, syncGroupsActions, mapStoreActions, defaultLayers, syncConstants } from '@opengeoweb/store';
12
+ import { DrawFIRLand, ChevronLeft, Edit, Success, Clock } from '@opengeoweb/theme';
13
13
  import { debounce } from 'lodash';
14
14
  import 'react-dom';
15
+ import { webmapUtils } from '@opengeoweb/webmap';
15
16
  import { jsx } from 'react/jsx-runtime';
16
17
 
17
18
  function _iterableToArrayLimit(arr, i) {
@@ -147,7 +148,10 @@ function _regeneratorRuntime() {
147
148
  if ("executing" === state) throw new Error("Generator is already running");
148
149
  if ("completed" === state) {
149
150
  if ("throw" === method) throw arg;
150
- return doneResult();
151
+ return {
152
+ value: void 0,
153
+ done: !0
154
+ };
151
155
  }
152
156
  for (context.method = method, context.arg = arg;;) {
153
157
  var delegate = context.delegate;
@@ -200,7 +204,7 @@ function _regeneratorRuntime() {
200
204
  }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);
201
205
  }
202
206
  function values(iterable) {
203
- if (iterable) {
207
+ if (iterable || "" === iterable) {
204
208
  var iteratorMethod = iterable[iteratorSymbol];
205
209
  if (iteratorMethod) return iteratorMethod.call(iterable);
206
210
  if ("function" == typeof iterable.next) return iterable;
@@ -213,15 +217,7 @@ function _regeneratorRuntime() {
213
217
  return next.next = next;
214
218
  }
215
219
  }
216
- return {
217
- next: doneResult
218
- };
219
- }
220
- function doneResult() {
221
- return {
222
- value: undefined,
223
- done: !0
224
- };
220
+ throw new TypeError(typeof iterable + " is not iterable");
225
221
  }
226
222
  return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", {
227
223
  value: GeneratorFunctionPrototype,
@@ -414,8 +410,6 @@ function _toPropertyKey(arg) {
414
410
  return typeof key === "symbol" ? key : String(key);
415
411
  }
416
412
 
417
- function n$5(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if("production"!==process.env.NODE_ENV){var i=Y[n],o=i?"function"==typeof i?i.apply(null,t):i:"unknown error nr: "+n;throw Error("[Immer] "+o)}throw Error("[Immer] minified error nr: "+n+(t.length?" "+t.map((function(n){return "'"+n+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function r$5(n){return !!n&&!!n[Q]}function t$5(n){var r;return !!n&&(function(n){if(!n||"object"!=typeof n)return !1;var r=Object.getPrototypeOf(n);if(null===r)return !0;var t=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return t===Object||"function"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!(null===(r=n.constructor)||void 0===r?void 0:r[L])||s(n)||v$4(n))}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&"symbol"==typeof e||r(e,n[e],n);})):n.forEach((function(t,e){return r(e,t,n)}));}function o(n){var r=n[Q];return r?r.i>3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v$4(n)?3:0}function u$3(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f$3(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?n.add(t):n[r]=t;}function c$3(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v$4(n){return q$5&&n instanceof Set}function p$5(n){return n.o||n.t}function l$4(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]});}return Object.create(Object.getPrototypeOf(n),r)}function d$3(n,e){return void 0===e&&(e=!1),y$2(n)||r$5(n)||!t$5(n)||(o(n)>1&&(n.set=n.add=n.clear=n.delete=h$5),Object.freeze(n),e&&i(n,(function(n,r){return d$3(r,!0)}),!0)),n}function h$5(){n$5(2);}function y$2(n){return null==n||"object"!=typeof n||Object.isFrozen(n)}function b$3(r){var t=tn[r];return t||n$5(18,r),t}function _(){return "production"===process.env.NODE_ENV||U||n$5(0),U}function j(n,r){r&&(b$3("Patches"),n.u=[],n.s=[],n.v=r);}function g$3(n){O(n),n.p.forEach(S),n.p=null;}function O(n){n===U&&(U=n.l);}function w$3(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.g=!0;}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.O||b$3("ES5").S(e,r,o),o?(i[Q].P&&(g$3(e),n$5(4)),t$5(r)&&(r=M(e,r),e.l||x$2(e,r)),e.u&&b$3("Patches").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),g$3(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y$2(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A$2(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x$2(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l$4(e.k):e.o,u=o,a=!1;3===e.i&&(u=new Set(o),o.clear(),a=!0),i(u,(function(r,i){return A$2(n,e,o,r,i,t,a)})),x$2(n,o,!1),t&&n.u&&b$3("Patches").N(e,t,n.u,n.s);}return e.o}function A$2(e,i,o,a,c,s,v){if("production"!==process.env.NODE_ENV&&c===o&&n$5(5),r$5(c)){var p=M(e,c,s&&i&&3!==i.i&&!u$3(i.R,a)?s.concat(a):void 0);if(f$3(o,a,p),!r$5(p))return;e.m=!1;}else v&&o.add(c);if(t$5(c)&&!y$2(c)){if(!e.h.D&&e._<1)return;M(e,c),i&&i.A.l||x$2(e,c);}}function x$2(n,r,t){void 0===t&&(t=!1),!n.l&&n.h.D&&n.m&&d$3(r,t);}function z$2(n,r){var t=n[Q];return (t?p$5(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t);}}function k$4(n){n.P||(n.P=!0,n.l&&k$4(n.l));}function E(n){n.o||(n.o=l$4(n.t));}function N(n,r,t){var e=s(r)?b$3("MapSet").F(r,t):v$4(r)?b$3("MapSet").T(r,t):n.O?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b$3("ES5").J(r,t);return (t?t.A:_()).p.push(e),e}function R(e){return r$5(e)||n$5(22,e),function n(r){if(!t$5(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b$3("ES5").K(u)))return u.t;u.I=!0,e=D(r,c),u.I=!1;}else e=D(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f$3(e,r,n(t));})),3===c?new Set(e):e}(e)}function D(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l$4(n)}var G,U,W="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),X="undefined"!=typeof Map,q$5="undefined"!=typeof Set,B="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,H=W?Symbol.for("immer-nothing"):((G={})["immer-nothing"]=!0,G),L=W?Symbol.for("immer-draftable"):"__$immer_draftable",Q=W?Symbol.for("immer-state"):"__$immer_state",Y={0:"Illegal state",1:"Immer drafts cannot have computed properties",2:"This object has been frozen and should not be mutated",3:function(n){return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+n},4:"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",5:"Immer forbids circular references",6:"The first or second argument to `produce` must be a function",7:"The third argument to `produce` must be a function or undefined",8:"First argument to `createDraft` must be a plain object, an array, or an immerable object",9:"First argument to `finishDraft` must be a draft returned by `createDraft`",10:"The given draft is already finalized",11:"Object.defineProperty() cannot be used on an Immer draft",12:"Object.setPrototypeOf() cannot be used on an Immer draft",13:"Immer only supports deleting array indices",14:"Immer only supports setting array indices and the 'length' property",15:function(n){return "Cannot apply patch, path doesn't resolve: "+n},16:'Sets cannot have "replace" patches.',17:function(n){return "Unsupported patch operation: "+n},18:function(n){return "The plugin for '"+n+"' has not been loaded into Immer. To enable the plugin, import and call `enable"+n+"()` when initializing your application."},20:"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available",21:function(n){return "produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '"+n+"'"},22:function(n){return "'current' expects a draft, got: "+n},23:function(n){return "'original' expects a draft, got: "+n},24:"Patching reserved attributes like __proto__, prototype and constructor is not allowed"},Z=""+Object.prototype.constructor,nn="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t);})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p$5(n);if(!u$3(e,r))return function(n,r,t){var e,i=I(r,t);return i?"value"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t$5(i)?i:i===z$2(n.t,r)?(E(n),n.o[r]=N(n.A.h,i,n)):i},has:function(n,r){return r in p$5(n)},ownKeys:function(n){return Reflect.ownKeys(p$5(n))},set:function(n,r,t){var e=I(p$5(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z$2(p$5(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.R[r]=!1,!0;if(c$3(t,i)&&(void 0!==t||u$3(n.t,r)))return !0;E(n),k$4(n);}return n.o[r]===t&&(void 0!==t||r in n.o)||Number.isNaN(t)&&Number.isNaN(n.o[r])||(n.o[r]=t,n.R[r]=!0),!0},deleteProperty:function(n,r){return void 0!==z$2(n.t,r)||r in n.t?(n.R[r]=!1,E(n),k$4(n)):delete n.R[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p$5(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||"length"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n$5(11);},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n$5(12);}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)};})),on.deleteProperty=function(r,t){return "production"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&n$5(13),on.set.call(this,r,t,void 0)},on.set=function(r,t,e){return "production"!==process.env.NODE_ENV&&"length"!==t&&isNaN(parseInt(t))&&n$5(14),en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.O=B,this.D=!0,this.produce=function(r,i,o){if("function"==typeof r&&"function"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return (t=i).call.apply(t,[r,n].concat(e))}))}}var f;if("function"!=typeof i&&n$5(6),void 0!==o&&"function"!=typeof o&&n$5(7),t$5(r)){var c=w$3(e),s=N(e,r,void 0),v=!0;try{f=i(s),v=!1;}finally{v?g$3(c):O(c);}return "undefined"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw g$3(c),n})):(j(c,o),P(f,c))}if(!r||"object"!=typeof r){if(void 0===(f=i(r))&&(f=r),f===H&&(f=void 0),e.D&&d$3(f,!0),o){var p=[],l=[];b$3("Patches").M(r,f,p,l),o(p,l);}return f}n$5(21,r);},this.produceWithPatches=function(n,r){if("function"==typeof n)return function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))};var t,i,o=e.produce(n,r,(function(n,r){t=n,i=r;}));return "undefined"!=typeof Promise&&o instanceof Promise?o.then((function(n){return [n,t,i]})):[o,t,i]},"boolean"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),"boolean"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze);}var i=e.prototype;return i.createDraft=function(e){t$5(e)||n$5(8),r$5(e)&&(e=R(e));var i=w$3(this),o=N(this,e,void 0);return o[Q].C=!0,O(i),o},i.finishDraft=function(r,t){var e=r&&r[Q];"production"!==process.env.NODE_ENV&&(e&&e.C||n$5(9),e.I&&n$5(10));var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.D=n;},i.setUseProxies=function(r){r&&!B&&n$5(20),this.O=r;},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=0;e--){var i=t[e];if(0===i.path.length&&"replace"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b$3("Patches").$;return r$5(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce;an.produceWithPatches.bind(an);an.setAutoFreeze.bind(an);an.setUseProxies.bind(an);an.applyPatches.bind(an);an.createDraft.bind(an);an.finishDraft.bind(an);
418
-
419
413
  /**
420
414
  * The possible phenomena for the sigmet
421
415
  */
@@ -551,217 +545,377 @@ var isInstanceOfSigmetOrAirmet = function isInstanceOfSigmetOrAirmet(obj) {
551
545
  var isInstanceOfCancelSigmetOrAirmet = function isInstanceOfCancelSigmetOrAirmet(obj) {
552
546
  return 'cancelsSigmetSequenceId' in obj || 'cancelsAirmetSequenceId' in obj;
553
547
  };
554
- var MapDrawMode;
555
- (function (MapDrawMode) {
556
- MapDrawMode["POINT"] = "POINT";
557
- MapDrawMode["BOX"] = "BOX";
558
- MapDrawMode["POLYGON"] = "POLYGON";
559
- MapDrawMode["FIR"] = "FIR";
560
- MapDrawMode["DELETE"] = "DELETE";
561
- })(MapDrawMode || (MapDrawMode = {}));
562
548
  var StartOrEndDrawing;
563
549
  (function (StartOrEndDrawing) {
564
550
  StartOrEndDrawing["start"] = "start";
565
551
  StartOrEndDrawing["end"] = "end";
566
552
  })(StartOrEndDrawing || (StartOrEndDrawing = {}));
567
553
 
568
- var srsAndBboxDefault = {
569
- bbox: {
570
- left: -911501,
571
- right: 3738819,
572
- top: 11688874,
573
- bottom: 5930186
554
+ /* *
555
+ * Licensed under the Apache License, Version 2.0 (the "License");
556
+ * you may not use this file except in compliance with the License.
557
+ * You may obtain a copy of the License at
558
+ *
559
+ * http://www.apache.org/licenses/LICENSE-2.0
560
+ *
561
+ * Unless required by applicable law or agreed to in writing, software
562
+ * distributed under the License is distributed on an "AS IS" BASIS,
563
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
564
+ * See the License for the specific language governing permissions and
565
+ * limitations under the License.
566
+ *
567
+ * Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
568
+ * Copyright 2021 - Finnish Meteorological Institute (FMI)
569
+ * */
570
+ var styles$2 = {
571
+ label: {
572
+ fontSize: '0.875rem',
573
+ marginTop: 2,
574
+ textAlign: 'right'
574
575
  },
575
- srs: 'EPSG:3857'
576
- };
577
- var featurePropsStart = {
578
- stroke: '#f24a00',
579
- 'stroke-width': 1.5,
580
- 'stroke-opacity': 1,
581
- fill: '#f24a00',
582
- 'fill-opacity': 0.25
583
- };
584
- var featurePropsEnd = {
585
- stroke: '#6e1e91',
586
- 'stroke-width': 1.5,
587
- 'stroke-opacity': 1,
588
- fill: '#6e1e91',
589
- 'fill-opacity': 0.25
590
- };
591
- var featurePropsIntersectionStart = {
592
- stroke: '#f24a00',
593
- 'stroke-width': 1.5,
594
- 'stroke-opacity': 1,
595
- fill: '#f24a00',
596
- 'fill-opacity': 0.5
597
- };
598
- var featurePropsIntersectionEnd = {
599
- stroke: '#6e1e91',
600
- 'stroke-width': 1.5,
601
- 'stroke-opacity': 1,
602
- fill: '#6e1e91',
603
- 'fill-opacity': 0.5
604
- };
605
- var featurePropsFIR = {
606
- stroke: '#0075a9',
607
- 'stroke-width': 1.5,
608
- 'stroke-opacity': 1,
609
- fill: '#0075a9',
610
- 'fill-opacity': 0.0
611
- };
612
- var featurePropsUnStyled = {
613
- stroke: '#FF0000',
614
- 'stroke-width': 10.0,
615
- 'stroke-opacity': 1,
616
- fill: '#0000FF',
617
- 'fill-opacity': 1.0
618
- };
619
- var emptyPolygonGeoJSONStart = {
620
- type: 'FeatureCollection',
621
- features: [{
622
- type: 'Feature',
623
- properties: Object.assign(Object.assign({}, featurePropsUnStyled), {
624
- selectionType: 'poly'
625
- }),
626
- geometry: {
627
- type: 'Polygon',
628
- coordinates: [[]]
629
- }
630
- }]
631
- };
632
- var emptyPolygonGeoJSONEnd = {
633
- type: 'FeatureCollection',
634
- features: [{
635
- type: 'Feature',
636
- properties: Object.assign(Object.assign({}, featurePropsUnStyled), {
637
- selectionType: 'poly'
638
- }),
639
- geometry: {
640
- type: 'Polygon',
641
- coordinates: [[]]
642
- }
643
- }]
644
- };
645
- var emptyBoxGeoJSONStart = {
646
- type: 'FeatureCollection',
647
- features: [{
648
- type: 'Feature',
649
- properties: Object.assign({
650
- _adaguctype: 'box',
651
- selectionType: 'box'
652
- }, featurePropsUnStyled),
653
- geometry: {
654
- type: 'Polygon',
655
- coordinates: [[]]
656
- }
657
- }]
658
- };
659
- var emptyBoxGeoJSONEnd = {
660
- type: 'FeatureCollection',
661
- features: [{
662
- type: 'Feature',
663
- properties: Object.assign({
664
- _adaguctype: 'box',
665
- selectionType: 'box'
666
- }, featurePropsUnStyled),
667
- geometry: {
668
- type: 'Polygon',
669
- coordinates: [[]]
670
- }
671
- }]
672
- };
673
- var emptyPointsGeojsonStart = {
674
- type: 'FeatureCollection',
675
- features: [{
676
- type: 'Feature',
677
- properties: Object.assign(Object.assign({}, featurePropsUnStyled), {
678
- selectionType: 'point'
679
- }),
680
- geometry: {
681
- type: 'Point',
682
- coordinates: []
683
- }
684
- }]
685
- };
686
- var emptyPointsGeojsonEnd = {
687
- type: 'FeatureCollection',
688
- features: [{
689
- type: 'Feature',
690
- properties: Object.assign(Object.assign({}, featurePropsUnStyled), {
691
- selectionType: 'point'
692
- }),
693
- geometry: {
694
- type: 'Point',
695
- coordinates: []
576
+ body: {
577
+ paddingTop: '17px'
578
+ },
579
+ containerItem: {
580
+ ' .MuiTypography-subtitle1': {
581
+ marginTop: 1
696
582
  }
697
- }]
698
- };
699
- var geoJSONTemplate = {
700
- POINT: {
701
- start: emptyPointsGeojsonStart,
702
- end: emptyPointsGeojsonEnd
703
583
  },
704
- BOX: {
705
- start: emptyBoxGeoJSONStart,
706
- end: emptyBoxGeoJSONEnd
584
+ volcanicField: {
585
+ marginBottom: 2
586
+ },
587
+ surfaceVisibility: {
588
+ marginBottom: 2
589
+ },
590
+ surfaceWind: {
591
+ marginBottom: 2
592
+ },
593
+ levelField: {
594
+ marginBottom: 2
595
+ },
596
+ movement: {
597
+ marginBottom: 2
598
+ },
599
+ latitude: {
600
+ width: '97%'
601
+ },
602
+ unit: {
603
+ width: '95%'
604
+ },
605
+ quitDrawModeMessage: {
606
+ paddingBottom: '10px',
607
+ opacity: '1'
707
608
  },
708
- POLYGON: {
709
- start: emptyPolygonGeoJSONStart,
710
- end: emptyPolygonGeoJSONEnd
609
+ drawSection: {
610
+ '+ .MuiGrid-item': {
611
+ paddingTop: 5
612
+ },
613
+ ' .MuiTypography-subtitle1': {
614
+ marginTop: 1
615
+ }
711
616
  },
712
- FIR: {
713
- start: null,
714
- end: null
617
+ helperText: {
618
+ ' .MuiFormHelperText-root': {
619
+ position: 'absolute',
620
+ top: 56,
621
+ '&.Mui-error': {
622
+ top: 'auto',
623
+ position: 'relative'
624
+ }
625
+ }
715
626
  }
716
627
  };
717
628
 
718
- var getHoursBeforeValidity = function getHoursBeforeValidity(phenomenon, fir, config) {
719
- if (!fir) {
720
- return 4;
721
- }
722
- var _config$fir_areas$fir = config.fir_areas[fir],
723
- hours_before_validity = _config$fir_areas$fir.hours_before_validity,
724
- va_hours_before_validity = _config$fir_areas$fir.va_hours_before_validity,
725
- tc_hours_before_validity = _config$fir_areas$fir.tc_hours_before_validity;
726
- switch (phenomenon) {
727
- // Tropical Cyclone
728
- case 'TC':
729
- return tc_hours_before_validity;
730
- // Volcanic ash cloud
731
- case 'VA_CLD':
732
- return va_hours_before_validity;
733
- default:
734
- return hours_before_validity;
735
- }
736
- };
737
- var getMaxHoursOfValidity = function getMaxHoursOfValidity(phenomenon, fir, config) {
738
- if (!fir) {
739
- return 4;
740
- }
741
- var _config$fir_areas$fir2 = config.fir_areas[fir],
742
- max_hours_of_validity = _config$fir_areas$fir2.max_hours_of_validity,
743
- va_max_hours_of_validity = _config$fir_areas$fir2.va_max_hours_of_validity,
744
- tc_max_hours_of_validity = _config$fir_areas$fir2.tc_max_hours_of_validity;
745
- switch (phenomenon) {
746
- // Tropical Cyclone
747
- case 'TC':
748
- return tc_max_hours_of_validity;
749
- // Volcanic ash cloud
750
- case 'VA_CLD':
751
- return va_max_hours_of_validity;
752
- default:
753
- return max_hours_of_validity;
754
- }
755
- };
756
- var getValidFromDelayTimeMinutesFromConfig = function getValidFromDelayTimeMinutesFromConfig(config) {
757
- return config.valid_from_delay_minutes;
629
+ /******************************************************************************
630
+ Copyright (c) Microsoft Corporation.
631
+
632
+ Permission to use, copy, modify, and/or distribute this software for any
633
+ purpose with or without fee is hereby granted.
634
+
635
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
636
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
637
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
638
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
639
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
640
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
641
+ PERFORMANCE OF THIS SOFTWARE.
642
+ ***************************************************************************** */
643
+
644
+ function __rest(s, e) {
645
+ var t = {};
646
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
647
+ t[p] = s[p];
648
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
649
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
650
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
651
+ t[p[i]] = s[p[i]];
652
+ }
653
+ return t;
654
+ }
655
+
656
+ function __awaiter(thisArg, _arguments, P, generator) {
657
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
658
+ return new (P || (P = Promise))(function (resolve, reject) {
659
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
660
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
661
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
662
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
663
+ });
664
+ }
665
+
666
+ // A version of a radio button with label where the label and surrounding white space is not clickable
667
+ var RadioButtonAndLabel = function RadioButtonAndLabel(props) {
668
+ var value = props.value,
669
+ label = props.label,
670
+ _props$disabled = props.disabled,
671
+ disabled = _props$disabled === void 0 ? true : _props$disabled,
672
+ restProps = __rest(props, ["value", "label", "disabled"]);
673
+ return /*#__PURE__*/React__default.createElement(FormControlLabel, Object.assign({
674
+ style: {
675
+ pointerEvents: 'none'
676
+ },
677
+ value: value,
678
+ control: /*#__PURE__*/React__default.createElement(Radio, {
679
+ style: {
680
+ pointerEvents: 'auto'
681
+ }
682
+ }),
683
+ label: label,
684
+ disabled: disabled
685
+ }, restProps));
758
686
  };
759
- var getDefaultValidityMinutesFromConfig = function getDefaultValidityMinutesFromConfig(config) {
760
- return config.default_validity_minutes;
687
+
688
+ var ProductFormFieldLayout = function ProductFormFieldLayout(_a) {
689
+ var title = _a.title,
690
+ children = _a.children,
691
+ props = __rest(_a, ["title", "children"]);
692
+ return /*#__PURE__*/React__default.createElement(Grid, Object.assign({
693
+ item: true,
694
+ container: true,
695
+ spacing: 3
696
+ }, props), /*#__PURE__*/React__default.createElement(Grid, {
697
+ item: true,
698
+ xs: 4,
699
+ container: true,
700
+ justifyContent: "flex-end"
701
+ }, title && /*#__PURE__*/React__default.createElement(Typography, {
702
+ variant: "subtitle1",
703
+ sx: styles$2.label
704
+ }, title)), /*#__PURE__*/React__default.createElement(Grid, {
705
+ item: true,
706
+ xs: 8,
707
+ container: true,
708
+ justifyContent: "flex-start"
709
+ }, children));
761
710
  };
762
- var getFirArea = function getFirArea(selectedFIR, productConfig) {
763
- // If no FIR selected or FIR doesn't exist in list, select first FIR
764
- return selectedFIR && productConfig.fir_areas[selectedFIR] !== undefined ? selectedFIR : productConfig.active_firs[0];
711
+
712
+ /* *
713
+ * Licensed under the Apache License, Version 2.0 (the "License");
714
+ * you may not use this file except in compliance with the License.
715
+ * You may obtain a copy of the License at
716
+ *
717
+ * http://www.apache.org/licenses/LICENSE-2.0
718
+ *
719
+ * Unless required by applicable law or agreed to in writing, software
720
+ * distributed under the License is distributed on an "AS IS" BASIS,
721
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
722
+ * See the License for the specific language governing permissions and
723
+ * limitations under the License.
724
+ *
725
+ * Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
726
+ * Copyright 2022 - Finnish Meteorological Institute (FMI)
727
+ * */
728
+ var Change = function Change(_ref) {
729
+ var isDisabled = _ref.isDisabled,
730
+ isReadOnly = _ref.isReadOnly;
731
+ var _useDraftFormHelpers = useDraftFormHelpers(),
732
+ isRequired = _useDraftFormHelpers.isRequired;
733
+ return /*#__PURE__*/React__default.createElement(ProductFormFieldLayout, {
734
+ title: "Change",
735
+ sx: styles$2.containerItem
736
+ }, /*#__PURE__*/React__default.createElement(Grid, {
737
+ item: true,
738
+ xs: 12
739
+ }, /*#__PURE__*/React__default.createElement(ReactHookFormRadioGroup, {
740
+ name: "change",
741
+ rules: {
742
+ validate: {
743
+ isRequired: isRequired
744
+ }
745
+ },
746
+ disabled: isDisabled,
747
+ isReadOnly: isReadOnly
748
+ }, /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
749
+ value: "WKN",
750
+ label: "Weakening",
751
+ disabled: isDisabled,
752
+ "data-testid": "change-WKN"
753
+ }), /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
754
+ value: "NC",
755
+ label: "No change",
756
+ disabled: isDisabled,
757
+ "data-testid": "change-NC"
758
+ }), /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
759
+ value: "INTSF",
760
+ label: "Intensifying",
761
+ disabled: isDisabled,
762
+ "data-testid": "change-INTSF"
763
+ }))));
764
+ };
765
+
766
+ /* *
767
+ * Licensed under the Apache License, Version 2.0 (the "License");
768
+ * you may not use this file except in compliance with the License.
769
+ * You may obtain a copy of the License at
770
+ *
771
+ * http://www.apache.org/licenses/LICENSE-2.0
772
+ *
773
+ * Unless required by applicable law or agreed to in writing, software
774
+ * distributed under the License is distributed on an "AS IS" BASIS,
775
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
776
+ * See the License for the specific language governing permissions and
777
+ * limitations under the License.
778
+ *
779
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
780
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
781
+ * */
782
+ var styles$1 = {
783
+ radioInput: {
784
+ padding: 1,
785
+ borderRadius: '5px',
786
+ backgroundColor: 'geowebColors.buttons.tool.default.fill',
787
+ color: 'geowebColors.buttons.tool.default.color',
788
+ '&.Mui-checked': {
789
+ backgroundColor: 'geowebColors.buttons.primary.default.fill',
790
+ color: 'geowebColors.buttons.primary.default.color'
791
+ }
792
+ }
793
+ };
794
+ var DrawTools = function DrawTools(_ref) {
795
+ var activeTool = _ref.activeTool,
796
+ tools = _ref.tools,
797
+ onChangeTool = _ref.onChangeTool;
798
+ return /*#__PURE__*/React__default.createElement(Grid, {
799
+ item: true,
800
+ xs: 12,
801
+ container: true,
802
+ justifyContent: "space-between",
803
+ "data-testid": "drawtools",
804
+ spacing: 1
805
+ }, tools.map(function (tool) {
806
+ return /*#__PURE__*/React__default.createElement(Grid, {
807
+ key: tool.id,
808
+ item: true
809
+ }, /*#__PURE__*/React__default.createElement(CustomTooltip, {
810
+ title: tool.title
811
+ }, /*#__PURE__*/React__default.createElement(Radio, {
812
+ icon: tool.icon,
813
+ value: true,
814
+ checkedIcon: tool.icon,
815
+ checked: tool.isSelectable && activeTool === tool.id,
816
+ onChange: function onChange() {
817
+ onChangeTool(tool);
818
+ },
819
+ "data-testid": tool.id,
820
+ sx: styles$1.radioInput
821
+ })));
822
+ }));
823
+ };
824
+
825
+ function n$5(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if("production"!==process.env.NODE_ENV){var i=Y[n],o=i?"function"==typeof i?i.apply(null,t):i:"unknown error nr: "+n;throw Error("[Immer] "+o)}throw Error("[Immer] minified error nr: "+n+(t.length?" "+t.map((function(n){return "'"+n+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function r$5(n){return !!n&&!!n[Q]}function t$5(n){var r;return !!n&&(function(n){if(!n||"object"!=typeof n)return !1;var r=Object.getPrototypeOf(n);if(null===r)return !0;var t=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return t===Object||"function"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!(null===(r=n.constructor)||void 0===r?void 0:r[L])||s(n)||v$4(n))}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&"symbol"==typeof e||r(e,n[e],n);})):n.forEach((function(t,e){return r(e,t,n)}));}function o(n){var r=n[Q];return r?r.i>3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v$4(n)?3:0}function u$3(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f$3(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?n.add(t):n[r]=t;}function c$3(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v$4(n){return q$5&&n instanceof Set}function p$5(n){return n.o||n.t}function l$4(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]});}return Object.create(Object.getPrototypeOf(n),r)}function d$3(n,e){return void 0===e&&(e=!1),y$2(n)||r$5(n)||!t$5(n)||(o(n)>1&&(n.set=n.add=n.clear=n.delete=h$5),Object.freeze(n),e&&i(n,(function(n,r){return d$3(r,!0)}),!0)),n}function h$5(){n$5(2);}function y$2(n){return null==n||"object"!=typeof n||Object.isFrozen(n)}function b$3(r){var t=tn[r];return t||n$5(18,r),t}function _(){return "production"===process.env.NODE_ENV||U||n$5(0),U}function j(n,r){r&&(b$3("Patches"),n.u=[],n.s=[],n.v=r);}function g$3(n){O(n),n.p.forEach(S),n.p=null;}function O(n){n===U&&(U=n.l);}function w$3(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.g=!0;}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.O||b$3("ES5").S(e,r,o),o?(i[Q].P&&(g$3(e),n$5(4)),t$5(r)&&(r=M(e,r),e.l||x$2(e,r)),e.u&&b$3("Patches").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),g$3(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y$2(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A$2(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x$2(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l$4(e.k):e.o,u=o,a=!1;3===e.i&&(u=new Set(o),o.clear(),a=!0),i(u,(function(r,i){return A$2(n,e,o,r,i,t,a)})),x$2(n,o,!1),t&&n.u&&b$3("Patches").N(e,t,n.u,n.s);}return e.o}function A$2(e,i,o,a,c,s,v){if("production"!==process.env.NODE_ENV&&c===o&&n$5(5),r$5(c)){var p=M(e,c,s&&i&&3!==i.i&&!u$3(i.R,a)?s.concat(a):void 0);if(f$3(o,a,p),!r$5(p))return;e.m=!1;}else v&&o.add(c);if(t$5(c)&&!y$2(c)){if(!e.h.D&&e._<1)return;M(e,c),i&&i.A.l||x$2(e,c);}}function x$2(n,r,t){void 0===t&&(t=!1),!n.l&&n.h.D&&n.m&&d$3(r,t);}function z$2(n,r){var t=n[Q];return (t?p$5(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t);}}function k$4(n){n.P||(n.P=!0,n.l&&k$4(n.l));}function E(n){n.o||(n.o=l$4(n.t));}function N(n,r,t){var e=s(r)?b$3("MapSet").F(r,t):v$4(r)?b$3("MapSet").T(r,t):n.O?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b$3("ES5").J(r,t);return (t?t.A:_()).p.push(e),e}function R(e){return r$5(e)||n$5(22,e),function n(r){if(!t$5(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b$3("ES5").K(u)))return u.t;u.I=!0,e=D(r,c),u.I=!1;}else e=D(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f$3(e,r,n(t));})),3===c?new Set(e):e}(e)}function D(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l$4(n)}var G,U,W="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),X="undefined"!=typeof Map,q$5="undefined"!=typeof Set,B="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,H=W?Symbol.for("immer-nothing"):((G={})["immer-nothing"]=!0,G),L=W?Symbol.for("immer-draftable"):"__$immer_draftable",Q=W?Symbol.for("immer-state"):"__$immer_state",Y={0:"Illegal state",1:"Immer drafts cannot have computed properties",2:"This object has been frozen and should not be mutated",3:function(n){return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+n},4:"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",5:"Immer forbids circular references",6:"The first or second argument to `produce` must be a function",7:"The third argument to `produce` must be a function or undefined",8:"First argument to `createDraft` must be a plain object, an array, or an immerable object",9:"First argument to `finishDraft` must be a draft returned by `createDraft`",10:"The given draft is already finalized",11:"Object.defineProperty() cannot be used on an Immer draft",12:"Object.setPrototypeOf() cannot be used on an Immer draft",13:"Immer only supports deleting array indices",14:"Immer only supports setting array indices and the 'length' property",15:function(n){return "Cannot apply patch, path doesn't resolve: "+n},16:'Sets cannot have "replace" patches.',17:function(n){return "Unsupported patch operation: "+n},18:function(n){return "The plugin for '"+n+"' has not been loaded into Immer. To enable the plugin, import and call `enable"+n+"()` when initializing your application."},20:"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available",21:function(n){return "produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '"+n+"'"},22:function(n){return "'current' expects a draft, got: "+n},23:function(n){return "'original' expects a draft, got: "+n},24:"Patching reserved attributes like __proto__, prototype and constructor is not allowed"},Z=""+Object.prototype.constructor,nn="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t);})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p$5(n);if(!u$3(e,r))return function(n,r,t){var e,i=I(r,t);return i?"value"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t$5(i)?i:i===z$2(n.t,r)?(E(n),n.o[r]=N(n.A.h,i,n)):i},has:function(n,r){return r in p$5(n)},ownKeys:function(n){return Reflect.ownKeys(p$5(n))},set:function(n,r,t){var e=I(p$5(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z$2(p$5(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.R[r]=!1,!0;if(c$3(t,i)&&(void 0!==t||u$3(n.t,r)))return !0;E(n),k$4(n);}return n.o[r]===t&&(void 0!==t||r in n.o)||Number.isNaN(t)&&Number.isNaN(n.o[r])||(n.o[r]=t,n.R[r]=!0),!0},deleteProperty:function(n,r){return void 0!==z$2(n.t,r)||r in n.t?(n.R[r]=!1,E(n),k$4(n)):delete n.R[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p$5(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||"length"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n$5(11);},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n$5(12);}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)};})),on.deleteProperty=function(r,t){return "production"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&n$5(13),on.set.call(this,r,t,void 0)},on.set=function(r,t,e){return "production"!==process.env.NODE_ENV&&"length"!==t&&isNaN(parseInt(t))&&n$5(14),en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.O=B,this.D=!0,this.produce=function(r,i,o){if("function"==typeof r&&"function"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return (t=i).call.apply(t,[r,n].concat(e))}))}}var f;if("function"!=typeof i&&n$5(6),void 0!==o&&"function"!=typeof o&&n$5(7),t$5(r)){var c=w$3(e),s=N(e,r,void 0),v=!0;try{f=i(s),v=!1;}finally{v?g$3(c):O(c);}return "undefined"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw g$3(c),n})):(j(c,o),P(f,c))}if(!r||"object"!=typeof r){if(void 0===(f=i(r))&&(f=r),f===H&&(f=void 0),e.D&&d$3(f,!0),o){var p=[],l=[];b$3("Patches").M(r,f,p,l),o(p,l);}return f}n$5(21,r);},this.produceWithPatches=function(n,r){if("function"==typeof n)return function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))};var t,i,o=e.produce(n,r,(function(n,r){t=n,i=r;}));return "undefined"!=typeof Promise&&o instanceof Promise?o.then((function(n){return [n,t,i]})):[o,t,i]},"boolean"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),"boolean"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze);}var i=e.prototype;return i.createDraft=function(e){t$5(e)||n$5(8),r$5(e)&&(e=R(e));var i=w$3(this),o=N(this,e,void 0);return o[Q].C=!0,O(i),o},i.finishDraft=function(r,t){var e=r&&r[Q];"production"!==process.env.NODE_ENV&&(e&&e.C||n$5(9),e.I&&n$5(10));var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.D=n;},i.setUseProxies=function(r){r&&!B&&n$5(20),this.O=r;},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=0;e--){var i=t[e];if(0===i.path.length&&"replace"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b$3("Patches").$;return r$5(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce;an.produceWithPatches.bind(an);an.setAutoFreeze.bind(an);an.setUseProxies.bind(an);an.applyPatches.bind(an);an.createDraft.bind(an);an.finishDraft.bind(an);
826
+
827
+ /* *
828
+ * Licensed under the Apache License, Version 2.0 (the "License");
829
+ * you may not use this file except in compliance with the License.
830
+ * You may obtain a copy of the License at
831
+ *
832
+ * http://www.apache.org/licenses/LICENSE-2.0
833
+ *
834
+ * Unless required by applicable law or agreed to in writing, software
835
+ * distributed under the License is distributed on an "AS IS" BASIS,
836
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
837
+ * See the License for the specific language governing permissions and
838
+ * limitations under the License.
839
+ *
840
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
841
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
842
+ * */
843
+ var srsAndBboxDefault = {
844
+ bbox: {
845
+ left: -911501,
846
+ right: 3738819,
847
+ top: 11688874,
848
+ bottom: 5930186
849
+ },
850
+ srs: 'EPSG:3857'
851
+ };
852
+ var featurePropsStart = defaultStyleProperties;
853
+ var featurePropsEnd = {
854
+ stroke: '#6e1e91',
855
+ 'stroke-width': 1.5,
856
+ 'stroke-opacity': 1,
857
+ fill: '#6e1e91',
858
+ 'fill-opacity': 0.25
859
+ };
860
+ var featurePropsIntersectionStart = defaultIntersectionStyleProperties;
861
+ var featurePropsIntersectionEnd = Object.assign(Object.assign({}, featurePropsEnd), {
862
+ 'fill-opacity': 0.5
863
+ });
864
+ var featurePropsFIR = {
865
+ stroke: '#0075a9',
866
+ 'stroke-width': 1.5,
867
+ 'stroke-opacity': 1,
868
+ fill: '#0075a9',
869
+ 'fill-opacity': 0.0
870
+ };
871
+
872
+ var getHoursBeforeValidity = function getHoursBeforeValidity(phenomenon, fir, config) {
873
+ if (!fir) {
874
+ return 4;
875
+ }
876
+ var _config$fir_areas$fir = config.fir_areas[fir],
877
+ hours_before_validity = _config$fir_areas$fir.hours_before_validity,
878
+ va_hours_before_validity = _config$fir_areas$fir.va_hours_before_validity,
879
+ tc_hours_before_validity = _config$fir_areas$fir.tc_hours_before_validity;
880
+ switch (phenomenon) {
881
+ // Tropical Cyclone
882
+ case 'TC':
883
+ return tc_hours_before_validity;
884
+ // Volcanic ash cloud
885
+ case 'VA_CLD':
886
+ return va_hours_before_validity;
887
+ default:
888
+ return hours_before_validity;
889
+ }
890
+ };
891
+ var getMaxHoursOfValidity = function getMaxHoursOfValidity(phenomenon, fir, config) {
892
+ if (!fir) {
893
+ return 4;
894
+ }
895
+ var _config$fir_areas$fir2 = config.fir_areas[fir],
896
+ max_hours_of_validity = _config$fir_areas$fir2.max_hours_of_validity,
897
+ va_max_hours_of_validity = _config$fir_areas$fir2.va_max_hours_of_validity,
898
+ tc_max_hours_of_validity = _config$fir_areas$fir2.tc_max_hours_of_validity;
899
+ switch (phenomenon) {
900
+ // Tropical Cyclone
901
+ case 'TC':
902
+ return tc_max_hours_of_validity;
903
+ // Volcanic ash cloud
904
+ case 'VA_CLD':
905
+ return va_max_hours_of_validity;
906
+ default:
907
+ return max_hours_of_validity;
908
+ }
909
+ };
910
+ var getValidFromDelayTimeMinutesFromConfig = function getValidFromDelayTimeMinutesFromConfig(config) {
911
+ return config.valid_from_delay_minutes;
912
+ };
913
+ var getDefaultValidityMinutesFromConfig = function getDefaultValidityMinutesFromConfig(config) {
914
+ return config.default_validity_minutes;
915
+ };
916
+ var getFirArea = function getFirArea(selectedFIR, productConfig) {
917
+ // If no FIR selected or FIR doesn't exist in list, select first FIR
918
+ return selectedFIR && productConfig.fir_areas[selectedFIR] !== undefined ? selectedFIR : productConfig.active_firs[0];
765
919
  };
766
920
  var getActiveFIRArea = function getActiveFIRArea(selectedFIR, productConfig) {
767
921
  var FIR = getFirArea(selectedFIR, productConfig);
@@ -982,10 +1136,10 @@ var prepareFormValues = function prepareFormValues(product) {
982
1136
  }
983
1137
  // remove geometry if empty coordinates
984
1138
  if (key === 'endGeometry' || key === 'endGeometryIntersect' || key === 'startGeometry' || key === 'startGeometryIntersect') {
985
- if ((value === null || value === void 0 ? void 0 : value.features[0].geometry.type) === 'Polygon' && (value === null || value === void 0 ? void 0 : value.features[0].geometry.coordinates[0].length)) {
1139
+ if ((value === null || value === void 0 ? void 0 : value.features.length) > 0 && (value === null || value === void 0 ? void 0 : value.features[0].geometry.type) === 'Polygon' && (value === null || value === void 0 ? void 0 : value.features[0].geometry.coordinates[0].length)) {
986
1140
  return Object.assign(Object.assign({}, list), _defineProperty({}, key, value));
987
1141
  }
988
- if ((value === null || value === void 0 ? void 0 : value.features[0].geometry.type) === 'Point' && (value === null || value === void 0 ? void 0 : value.features[0].geometry.coordinates.length)) {
1142
+ if ((value === null || value === void 0 ? void 0 : value.features.length) > 0 && (value === null || value === void 0 ? void 0 : value.features[0].geometry.type) === 'Point' && (value === null || value === void 0 ? void 0 : value.features[0].geometry.coordinates.length)) {
989
1143
  return Object.assign(Object.assign({}, list), _defineProperty({}, key, value));
990
1144
  }
991
1145
  return list;
@@ -1107,602 +1261,97 @@ var getFir = function getFir(productConfig, firName) {
1107
1261
  var currentFIRName = firName || productConfig.active_firs[0];
1108
1262
  return productConfig.fir_areas[currentFIRName].fir_location;
1109
1263
  };
1110
- /**
1111
- * Function to check if the given geojson object has 'fir' selectionType property
1112
- */
1113
- var isFir = function isFir(geojson) {
1114
- return geojson && geojson.features && geojson.features[0].properties['selectionType'] === 'fir';
1115
- };
1116
- var rewindGeometry = function rewindGeometry(geoJSON) {
1117
- return fn(geoJSON, function (geoJSONDraft) {
1118
- if (geoJSONDraft && geoJSONDraft.features[0].geometry.type === 'Polygon' && geoJSONDraft.features[0].geometry.coordinates[0].length > 1) {
1119
- var geometry = geoJSON.features[0].geometry;
1120
- var lineString = polygonToLineString(geometry);
1121
- if (booleanClockwise(lineString.geometry.coordinates)) {
1122
- // eslint-disable-next-line no-param-reassign
1123
- geoJSONDraft.features[0].geometry = rewind(geoJSONDraft.features[0].geometry);
1124
- }
1125
- }
1126
- });
1127
- };
1128
- var getFieldLabel = function getFieldLabel(title, isDisabled) {
1129
- var action = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Select';
1130
- return isDisabled ? title : "".concat(action, " ").concat(title.toLowerCase());
1131
- };
1132
- var getBaseLayers = function getBaseLayers(productConfig) {
1133
- var _a, _b;
1134
- return ((_b = (_a = productConfig.mapPreset) === null || _a === void 0 ? void 0 : _a.layers) === null || _b === void 0 ? void 0 : _b.filter(function (layer) {
1135
- return layer.layerType === layerTypes.LayerType.baseLayer || layer.layerType === layerTypes.LayerType.overLayer;
1136
- })) || [];
1137
- };
1138
- var getMaxMovementSpeedValue = function getMaxMovementSpeedValue(unit, selectedFIR, productConfig) {
1139
- var _getActiveFIRArea11 = getActiveFIRArea(selectedFIR, productConfig),
1140
- movement_max = _getActiveFIRArea11.movement_max;
1141
- // Return max value for selected unit - if not present in list, return null
1142
- return movement_max !== undefined && movement_max[unit] ? movement_max[unit] : null;
1143
- };
1144
- var DEFAULT_MIN_MOVEMENT_SPEED = 0;
1145
- var getMinMovementSpeedValue = function getMinMovementSpeedValue(unit, selectedFIR, productConfig) {
1146
- var _getActiveFIRArea12 = getActiveFIRArea(selectedFIR, productConfig),
1147
- movement_min = _getActiveFIRArea12.movement_min;
1148
- // Return min value for selected unit - if not present in list, return DEFAULT_MIN_MOVEMENT_SPEED (zero, no negative speeds)
1149
- return movement_min !== undefined && movement_min[unit] ? movement_min[unit] : DEFAULT_MIN_MOVEMENT_SPEED;
1150
- };
1151
- /** Trigger form validations for given list of field names if field has a value */
1152
- var triggerValidations = function triggerValidations(fieldNames, getValues, trigger) {
1153
- fieldNames.forEach(function (field) {
1154
- var value = getValues(field);
1155
- if (value || value === 0) {
1156
- trigger(field);
1157
- }
1158
- });
1159
- };
1160
- var getProjection = function getProjection(productConfig) {
1161
- var _a;
1162
- return ((_a = productConfig.mapPreset) === null || _a === void 0 ? void 0 : _a.proj) || undefined;
1163
- };
1164
-
1165
- var getDrawModeFromSelectionType = function getDrawModeFromSelectionType(selectionType) {
1166
- switch (selectionType) {
1167
- case 'point':
1168
- return MapDrawMode.POINT;
1169
- case 'box':
1170
- return MapDrawMode.BOX;
1171
- case 'fir':
1172
- return MapDrawMode.FIR;
1173
- case 'poly':
1174
- default:
1175
- return MapDrawMode.POLYGON;
1176
- }
1177
- };
1178
- /**
1179
- * Adds properties to the first geojson feature based on the given property object.
1180
- * It only extends or changes the properties which are defined in styleConfig,
1181
- * all other properties in the geojson are left unchanged.
1182
- * @param geojson
1183
- * @param featureProperties
1184
- */
1185
- var addFeatureProperties = function addFeatureProperties(geojson, featureProperties) {
1186
- if (!geojson) {
1187
- return null;
1188
- }
1189
- return fn(geojson, function (draft) {
1190
- if (draft.features && draft.features.length > 0 && draft.features[0].properties) {
1191
- Object.keys(featureProperties).forEach(function (key) {
1192
- draft.features[0].properties[key] = featureProperties[key];
1193
- });
1194
- }
1195
- });
1196
- };
1197
- var getInitialGeoJSONState = function getInitialGeoJSONState(productConfig, currentSelectedFIR, initialGeometry) {
1198
- var startGeometry = initialGeometry && initialGeometry.start ? initialGeometry.start : geoJSONTemplate['BOX']['start'];
1199
- var endGeometry = initialGeometry && initialGeometry.end ? initialGeometry.end : geoJSONTemplate['BOX']['end'];
1200
- return {
1201
- start: addFeatureProperties(startGeometry, featurePropsStart),
1202
- end: addFeatureProperties(endGeometry, featurePropsEnd),
1203
- intersectionStart: addFeatureProperties(initialGeometry === null || initialGeometry === void 0 ? void 0 : initialGeometry.intersectionStart, featurePropsIntersectionStart),
1204
- intersectionEnd: addFeatureProperties(initialGeometry === null || initialGeometry === void 0 ? void 0 : initialGeometry.intersectionEnd, featurePropsIntersectionEnd),
1205
- fir: addFeatureProperties(getFir(productConfig, currentSelectedFIR), featurePropsFIR)
1206
- };
1207
- };
1208
- var useDrawMode = function useDrawMode(productConfig, initialGeometry, currentSelectedFIR) {
1209
- var getInitialLayerDrawModes = function getInitialLayerDrawModes(startorEnd) {
1210
- return initialGeometry && initialGeometry[startorEnd] ? getDrawModeFromSelectionType(initialGeometry[startorEnd].features[0].properties.selectionType) : null;
1211
- };
1212
- /* For the radio buttons */
1213
- var _React$useState = React.useState({
1214
- start: null,
1215
- end: null
1216
- }),
1217
- _React$useState2 = _slicedToArray(_React$useState, 2),
1218
- drawMode = _React$useState2[0],
1219
- setDrawMode = _React$useState2[1];
1220
- /* Drawmode for the layers */
1221
- var _React$useState3 = React.useState({
1222
- start: getInitialLayerDrawModes('start'),
1223
- end: getInitialLayerDrawModes('end')
1224
- }),
1225
- _React$useState4 = _slicedToArray(_React$useState3, 2),
1226
- layerDrawModes = _React$useState4[0],
1227
- setLayersDrawModes = _React$useState4[1];
1228
- /* GeoJSONs for the layers */
1229
- var _React$useState5 = React.useState(function () {
1230
- return getInitialGeoJSONState(productConfig, currentSelectedFIR, initialGeometry);
1231
- }),
1232
- _React$useState6 = _slicedToArray(_React$useState5, 2),
1233
- geoJSONs = _React$useState6[0],
1234
- setLayerGeoJSONs = _React$useState6[1];
1235
- /**
1236
- *
1237
- * @param mapDrawMode Can be 'POINT' | 'BOX' | 'POLYGON' | 'FIR' | 'DELETE'
1238
- * @param startOrEnd Can be 'start' | 'end'
1239
- */
1240
- var setDrawModeType = function setDrawModeType(mapDrawMode, startOrEnd, updateCallback) {
1241
- var newGeoJSONDrawMode = Object.assign({}, layerDrawModes);
1242
- var featureStyleProperties = startOrEnd === StartOrEndDrawing.start ? featurePropsStart : featurePropsEnd;
1243
- /* Switch on the mapdrawmode type for either start or end */
1244
- switch (mapDrawMode) {
1245
- /* Set draw modes point, box, polygon for either start or end layer */
1246
- case MapDrawMode.POINT:
1247
- case MapDrawMode.BOX:
1248
- case MapDrawMode.POLYGON:
1249
- {
1250
- if (newGeoJSONDrawMode[startOrEnd] !== mapDrawMode) {
1251
- /* Set for either start or end GeoJSON; key is the same as in the MapDrawMode ENUM */
1252
- var cleanGeoJSON = fn(geoJSONs, function (draft) {
1253
- draft[startOrEnd] = addFeatureProperties(geoJSONTemplate[mapDrawMode][startOrEnd], featureStyleProperties);
1254
- });
1255
- setLayerGeoJSONs(createInterSections(cleanGeoJSON));
1256
- }
1257
- newGeoJSONDrawMode[startOrEnd] = mapDrawMode;
1258
- setLayersDrawModes(newGeoJSONDrawMode);
1259
- setDrawMode(startOrEnd === StartOrEndDrawing.start ? {
1260
- start: mapDrawMode,
1261
- end: null
1262
- } : {
1263
- start: null,
1264
- end: mapDrawMode
1265
- });
1266
- break;
1267
- }
1268
- /* Set complete fir for either start or end layer */
1269
- case MapDrawMode.FIR:
1270
- {
1271
- newGeoJSONDrawMode[startOrEnd] = mapDrawMode;
1272
- var _cleanGeoJSON = fn(geoJSONs, function (draft) {
1273
- draft[startOrEnd] = addFeatureProperties(getFir(productConfig, currentSelectedFIR), Object.assign(Object.assign({}, featureStyleProperties), {
1274
- selectionType: 'fir'
1275
- }));
1276
- });
1277
- setDrawMode({
1278
- start: null,
1279
- end: null
1280
- });
1281
- setLayersDrawModes(newGeoJSONDrawMode);
1282
- var intersections = createInterSections(_cleanGeoJSON);
1283
- setLayerGeoJSONs(intersections);
1284
- if (updateCallback) {
1285
- updateCallback(intersections);
1286
- }
1287
- break;
1288
- }
1289
- /* Clear the map for either start or end layer */
1290
- case MapDrawMode.DELETE:
1291
- {
1292
- var newDrawMode = Object.assign({}, drawMode);
1293
- newDrawMode[startOrEnd] = null;
1294
- setDrawMode(newDrawMode);
1295
- switch (newGeoJSONDrawMode[startOrEnd]) {
1296
- case MapDrawMode.POINT:
1297
- case MapDrawMode.BOX:
1298
- {
1299
- var _cleanGeoJSON2 = fn(geoJSONs, function (draft) {
1300
- draft[startOrEnd] = addFeatureProperties(geoJSONTemplate[newGeoJSONDrawMode[startOrEnd]][startOrEnd], featureStyleProperties);
1301
- });
1302
- var _intersections = createInterSections(_cleanGeoJSON2);
1303
- setLayerGeoJSONs(_intersections);
1304
- if (updateCallback) {
1305
- updateCallback(_intersections);
1306
- }
1307
- break;
1308
- }
1309
- default:
1310
- {
1311
- var _cleanGeoJSON3 = fn(geoJSONs, function (draft) {
1312
- draft[startOrEnd] = addFeatureProperties(geoJSONTemplate['POLYGON'][startOrEnd], featureStyleProperties);
1313
- });
1314
- var _intersections2 = createInterSections(_cleanGeoJSON3);
1315
- setLayerGeoJSONs(_intersections2);
1316
- if (updateCallback) {
1317
- updateCallback(_intersections2);
1318
- }
1319
- break;
1320
- }
1321
- }
1322
- break;
1323
- }
1324
- }
1325
- };
1326
- return {
1327
- drawMode: drawMode,
1328
- setDrawMode: setDrawMode,
1329
- layerDrawModes: layerDrawModes,
1330
- setLayersDrawModes: setLayersDrawModes,
1331
- geoJSONs: geoJSONs,
1332
- setLayerGeoJSONs: setLayerGeoJSONs,
1333
- setDrawModeType: setDrawModeType
1334
- };
1335
- };
1336
- /**
1337
- * Returns the intersection of two features. In case of a polygon, only the first feature is used.
1338
- * @param a Feature A
1339
- * @param b Feature B
1340
- * @returns The intersection of the two features.
1341
- */
1342
- var intersectGeoJSONS = function intersectGeoJSONS(a, b) {
1343
- var featureA = turf.feature(a.features[0].geometry);
1344
- var featureB = turf.feature(b.features[0].geometry);
1345
- var options = {
1346
- tolerance: 0.001,
1347
- highQuality: true
1348
- };
1349
- var simplifiedA = turf.simplify(featureA, options);
1350
- var simplifiedB = turf.simplify(featureB, options);
1351
- var intersection = turf.intersect(simplifiedA, simplifiedB);
1352
- return addFeatureProperties({
1353
- type: 'FeatureCollection',
1354
- features: intersection === null ? [{
1355
- type: 'Feature',
1356
- properties: {
1357
- selectionType: 'poly'
1358
- },
1359
- geometry: {
1360
- type: 'Polygon',
1361
- coordinates: [[]]
1362
- }
1363
- }] : [intersection]
1364
- }, featurePropsUnStyled);
1365
- };
1366
- /**
1367
- * Adds the intersectionStart and intersectionEnd properties to the GeoJSONS structure
1368
- * @param geoJSONs
1369
- * @returns GeoJSONS extend with intersections
1370
- */
1371
- var createInterSections = function createInterSections(geoJSONs) {
1372
- var intersections = fn(geoJSONs, function (draft) {
1373
- try {
1374
- draft.intersectionStart = addFeatureProperties(intersectGeoJSONS(geoJSONs.start, geoJSONs.fir), featurePropsIntersectionStart);
1375
- } catch (e) {
1376
- draft.intersectionStart = addFeatureProperties(geoJSONs.start, featurePropsIntersectionStart);
1377
- }
1378
- try {
1379
- draft.intersectionEnd = addFeatureProperties(intersectGeoJSONS(geoJSONs.end, geoJSONs.fir), featurePropsIntersectionEnd);
1380
- } catch (e) {
1381
- draft.intersectionEnd = addFeatureProperties(geoJSONs.end, featurePropsIntersectionEnd);
1382
- }
1383
- });
1384
- return intersections;
1385
- };
1386
-
1387
- /* *
1388
- * Licensed under the Apache License, Version 2.0 (the "License");
1389
- * you may not use this file except in compliance with the License.
1390
- * You may obtain a copy of the License at
1391
- *
1392
- * http://www.apache.org/licenses/LICENSE-2.0
1393
- *
1394
- * Unless required by applicable law or agreed to in writing, software
1395
- * distributed under the License is distributed on an "AS IS" BASIS,
1396
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1397
- * See the License for the specific language governing permissions and
1398
- * limitations under the License.
1399
- *
1400
- * Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
1401
- * Copyright 2021 - Finnish Meteorological Institute (FMI)
1402
- * */
1403
- var styles$2 = {
1404
- label: {
1405
- fontSize: '0.875rem',
1406
- marginTop: 2,
1407
- textAlign: 'right'
1408
- },
1409
- body: {
1410
- paddingTop: '17px'
1411
- },
1412
- containerItem: {
1413
- ' .MuiTypography-subtitle1': {
1414
- marginTop: 1
1415
- }
1416
- },
1417
- volcanicField: {
1418
- marginBottom: 2
1419
- },
1420
- surfaceVisibility: {
1421
- marginBottom: 2
1422
- },
1423
- surfaceWind: {
1424
- marginBottom: 2
1425
- },
1426
- levelField: {
1427
- marginBottom: 2
1428
- },
1429
- movement: {
1430
- marginBottom: 2
1431
- },
1432
- latitude: {
1433
- width: '97%'
1434
- },
1435
- unit: {
1436
- width: '95%'
1437
- },
1438
- quitDrawModeMessage: {
1439
- paddingBottom: '10px',
1440
- opacity: '1'
1441
- },
1442
- drawSection: {
1443
- '+ .MuiGrid-item': {
1444
- paddingTop: 5
1445
- },
1446
- ' .MuiTypography-subtitle1': {
1447
- marginTop: 1
1448
- }
1449
- },
1450
- helperText: {
1451
- ' .MuiFormHelperText-root': {
1452
- position: 'absolute',
1453
- top: 56,
1454
- '&.Mui-error': {
1455
- top: 'auto',
1456
- position: 'relative'
1457
- }
1458
- }
1459
- }
1460
- };
1461
-
1462
- /******************************************************************************
1463
- Copyright (c) Microsoft Corporation.
1464
-
1465
- Permission to use, copy, modify, and/or distribute this software for any
1466
- purpose with or without fee is hereby granted.
1467
-
1468
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
1469
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1470
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
1471
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1472
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1473
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1474
- PERFORMANCE OF THIS SOFTWARE.
1475
- ***************************************************************************** */
1476
-
1477
- function __rest(s, e) {
1478
- var t = {};
1479
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
1480
- t[p] = s[p];
1481
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
1482
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1483
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
1484
- t[p[i]] = s[p[i]];
1485
- }
1486
- return t;
1487
- }
1488
-
1489
- function __awaiter(thisArg, _arguments, P, generator) {
1490
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1491
- return new (P || (P = Promise))(function (resolve, reject) {
1492
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
1493
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
1494
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
1495
- step((generator = generator.apply(thisArg, _arguments || [])).next());
1496
- });
1497
- }
1498
-
1499
- // A version of a radio button with label where the label and surrounding white space is not clickable
1500
- var RadioButtonAndLabel = function RadioButtonAndLabel(props) {
1501
- var value = props.value,
1502
- label = props.label,
1503
- _props$disabled = props.disabled,
1504
- disabled = _props$disabled === void 0 ? true : _props$disabled,
1505
- restProps = __rest(props, ["value", "label", "disabled"]);
1506
- return /*#__PURE__*/React__default.createElement(FormControlLabel, Object.assign({
1507
- style: {
1508
- pointerEvents: 'none'
1509
- },
1510
- value: value,
1511
- control: /*#__PURE__*/React__default.createElement(Radio, {
1512
- style: {
1513
- pointerEvents: 'auto'
1514
- }
1515
- }),
1516
- label: label,
1517
- disabled: disabled
1518
- }, restProps));
1519
- };
1520
-
1521
- var ProductFormFieldLayout = function ProductFormFieldLayout(_a) {
1522
- var title = _a.title,
1523
- children = _a.children,
1524
- props = __rest(_a, ["title", "children"]);
1525
- return /*#__PURE__*/React__default.createElement(Grid, Object.assign({
1526
- item: true,
1527
- container: true,
1528
- spacing: 3
1529
- }, props), /*#__PURE__*/React__default.createElement(Grid, {
1530
- item: true,
1531
- xs: 4,
1532
- container: true,
1533
- justifyContent: "flex-end"
1534
- }, title && /*#__PURE__*/React__default.createElement(Typography, {
1535
- variant: "subtitle1",
1536
- sx: styles$2.label
1537
- }, title)), /*#__PURE__*/React__default.createElement(Grid, {
1538
- item: true,
1539
- xs: 8,
1540
- container: true,
1541
- justifyContent: "flex-start"
1542
- }, children));
1264
+ /**
1265
+ * Function to check if the given geojson object has 'fir' selectionType property
1266
+ */
1267
+ var isFir = function isFir(geojson) {
1268
+ return geojson && geojson.features && geojson.features.length > 0 && geojson.features[0].properties['selectionType'] === 'fir';
1543
1269
  };
1544
-
1545
- /* *
1546
- * Licensed under the Apache License, Version 2.0 (the "License");
1547
- * you may not use this file except in compliance with the License.
1548
- * You may obtain a copy of the License at
1549
- *
1550
- * http://www.apache.org/licenses/LICENSE-2.0
1551
- *
1552
- * Unless required by applicable law or agreed to in writing, software
1553
- * distributed under the License is distributed on an "AS IS" BASIS,
1554
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1555
- * See the License for the specific language governing permissions and
1556
- * limitations under the License.
1557
- *
1558
- * Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
1559
- * Copyright 2022 - Finnish Meteorological Institute (FMI)
1560
- * */
1561
- var Change = function Change(_ref) {
1562
- var isDisabled = _ref.isDisabled,
1563
- isReadOnly = _ref.isReadOnly;
1564
- var _useDraftFormHelpers = useDraftFormHelpers(),
1565
- isRequired = _useDraftFormHelpers.isRequired;
1566
- return /*#__PURE__*/React__default.createElement(ProductFormFieldLayout, {
1567
- title: "Change",
1568
- sx: styles$2.containerItem
1569
- }, /*#__PURE__*/React__default.createElement(Grid, {
1570
- item: true,
1571
- xs: 12
1572
- }, /*#__PURE__*/React__default.createElement(ReactHookFormRadioGroup, {
1573
- name: "change",
1574
- rules: {
1575
- validate: {
1576
- isRequired: isRequired
1270
+ var rewindGeometry = function rewindGeometry(geoJSON) {
1271
+ return fn(geoJSON, function (geoJSONDraft) {
1272
+ if (geoJSONDraft && geoJSONDraft.features.length > 0 && geoJSONDraft.features[0].geometry.type === 'Polygon' && geoJSONDraft.features[0].geometry.coordinates[0].length > 1) {
1273
+ var geometry = geoJSON.features[0].geometry;
1274
+ var lineString = polygonToLineString(geometry);
1275
+ if (booleanClockwise(lineString.geometry.coordinates)) {
1276
+ // eslint-disable-next-line no-param-reassign
1277
+ geoJSONDraft.features[0].geometry = rewind(geoJSONDraft.features[0].geometry);
1577
1278
  }
1578
- },
1579
- disabled: isDisabled,
1580
- isReadOnly: isReadOnly
1581
- }, /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
1582
- value: "WKN",
1583
- label: "Weakening",
1584
- disabled: isDisabled,
1585
- "data-testid": "change-WKN"
1586
- }), /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
1587
- value: "NC",
1588
- label: "No change",
1589
- disabled: isDisabled,
1590
- "data-testid": "change-NC"
1591
- }), /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
1592
- value: "INTSF",
1593
- label: "Intensifying",
1594
- disabled: isDisabled,
1595
- "data-testid": "change-INTSF"
1596
- }))));
1279
+ }
1280
+ });
1597
1281
  };
1598
-
1599
- /* *
1600
- * Licensed under the Apache License, Version 2.0 (the "License");
1601
- * you may not use this file except in compliance with the License.
1602
- * You may obtain a copy of the License at
1603
- *
1604
- * http://www.apache.org/licenses/LICENSE-2.0
1605
- *
1606
- * Unless required by applicable law or agreed to in writing, software
1607
- * distributed under the License is distributed on an "AS IS" BASIS,
1608
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1609
- * See the License for the specific language governing permissions and
1610
- * limitations under the License.
1611
- *
1612
- * Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
1613
- * Copyright 2022 - Finnish Meteorological Institute (FMI)
1614
- * */
1615
- var styles$1 = {
1616
- radioInput: {
1617
- padding: 1,
1618
- borderRadius: '5px',
1619
- backgroundColor: 'geowebColors.buttons.tool.default.fill',
1620
- color: 'geowebColors.buttons.tool.default.color',
1621
- '&.Mui-checked': {
1622
- backgroundColor: 'geowebColors.buttons.primary.default.fill',
1623
- color: 'geowebColors.buttons.primary.default.color'
1282
+ var getFieldLabel = function getFieldLabel(title, isDisabled) {
1283
+ var action = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Select';
1284
+ return isDisabled ? title : "".concat(action, " ").concat(title.toLowerCase());
1285
+ };
1286
+ var getBaseLayers = function getBaseLayers(productConfig) {
1287
+ var _a, _b;
1288
+ return ((_b = (_a = productConfig.mapPreset) === null || _a === void 0 ? void 0 : _a.layers) === null || _b === void 0 ? void 0 : _b.filter(function (layer) {
1289
+ return layer.layerType === layerTypes.LayerType.baseLayer || layer.layerType === layerTypes.LayerType.overLayer;
1290
+ })) || [];
1291
+ };
1292
+ var getMaxMovementSpeedValue = function getMaxMovementSpeedValue(unit, selectedFIR, productConfig) {
1293
+ var _getActiveFIRArea11 = getActiveFIRArea(selectedFIR, productConfig),
1294
+ movement_max = _getActiveFIRArea11.movement_max;
1295
+ // Return max value for selected unit - if not present in list, return null
1296
+ return movement_max !== undefined && movement_max[unit] ? movement_max[unit] : null;
1297
+ };
1298
+ var DEFAULT_MIN_MOVEMENT_SPEED = 0;
1299
+ var getMinMovementSpeedValue = function getMinMovementSpeedValue(unit, selectedFIR, productConfig) {
1300
+ var _getActiveFIRArea12 = getActiveFIRArea(selectedFIR, productConfig),
1301
+ movement_min = _getActiveFIRArea12.movement_min;
1302
+ // Return min value for selected unit - if not present in list, return DEFAULT_MIN_MOVEMENT_SPEED (zero, no negative speeds)
1303
+ return movement_min !== undefined && movement_min[unit] ? movement_min[unit] : DEFAULT_MIN_MOVEMENT_SPEED;
1304
+ };
1305
+ /** Trigger form validations for given list of field names if field has a value */
1306
+ var triggerValidations = function triggerValidations(fieldNames, getValues, trigger) {
1307
+ fieldNames.forEach(function (field) {
1308
+ var value = getValues(field);
1309
+ if (value || value === 0) {
1310
+ trigger(field);
1624
1311
  }
1625
- }
1312
+ });
1626
1313
  };
1627
- var DrawTools = function DrawTools(_ref) {
1628
- var _ref$type = _ref.type,
1629
- type = _ref$type === void 0 ? '' : _ref$type,
1630
- drawMode = _ref.drawMode,
1631
- setDrawMode = _ref.setDrawMode;
1632
- return /*#__PURE__*/React__default.createElement(Grid, {
1633
- item: true,
1634
- xs: 12,
1635
- container: true,
1636
- justifyContent: "space-between",
1637
- "data-testid": "drawtools",
1638
- spacing: 1
1639
- }, /*#__PURE__*/React__default.createElement(Grid, {
1640
- item: true
1641
- }, /*#__PURE__*/React__default.createElement(CustomTooltip, {
1642
- title: "Drop a point as ".concat(type, " position")
1643
- }, /*#__PURE__*/React__default.createElement(Radio, {
1644
- icon: /*#__PURE__*/React__default.createElement(Location, null),
1645
- value: true,
1646
- checkedIcon: /*#__PURE__*/React__default.createElement(Location, null),
1647
- checked: drawMode === MapDrawMode.POINT,
1648
- onChange: function onChange() {
1649
- setDrawMode(MapDrawMode.POINT);
1650
- },
1651
- "data-testid": "drawtools-point",
1652
- sx: styles$1.radioInput
1653
- }))), /*#__PURE__*/React__default.createElement(Grid, {
1654
- item: true
1655
- }, /*#__PURE__*/React__default.createElement(CustomTooltip, {
1656
- title: "Draw a box as ".concat(type, " position")
1657
- }, /*#__PURE__*/React__default.createElement(Radio, {
1658
- icon: /*#__PURE__*/React__default.createElement(DrawRegion, null),
1659
- checkedIcon: /*#__PURE__*/React__default.createElement(DrawRegion, null),
1660
- checked: drawMode === MapDrawMode.BOX,
1661
- onChange: function onChange() {
1662
- setDrawMode(MapDrawMode.BOX);
1663
- },
1664
- "data-testid": "drawtools-box",
1665
- sx: styles$1.radioInput
1666
- }))), /*#__PURE__*/React__default.createElement(Grid, {
1667
- item: true
1668
- }, /*#__PURE__*/React__default.createElement(CustomTooltip, {
1669
- title: "Draw a shape as ".concat(type, " position")
1670
- }, /*#__PURE__*/React__default.createElement(Radio, {
1671
- icon: /*#__PURE__*/React__default.createElement(DrawPolygon, null),
1672
- checkedIcon: /*#__PURE__*/React__default.createElement(DrawPolygon, null),
1673
- checked: drawMode === MapDrawMode.POLYGON,
1674
- onChange: function onChange() {
1675
- setDrawMode(MapDrawMode.POLYGON);
1676
- },
1677
- "data-testid": "drawtools-polygon",
1678
- sx: styles$1.radioInput
1679
- }))), /*#__PURE__*/React__default.createElement(Grid, {
1680
- item: true
1681
- }, /*#__PURE__*/React__default.createElement(CustomTooltip, {
1682
- title: "Set FIR as ".concat(type, " position")
1683
- }, /*#__PURE__*/React__default.createElement(Radio, {
1684
- icon: /*#__PURE__*/React__default.createElement(DrawFIRLand, null),
1685
- checkedIcon: /*#__PURE__*/React__default.createElement(DrawFIRLand, null),
1686
- checked: drawMode === MapDrawMode.FIR,
1687
- onChange: function onChange() {
1688
- setDrawMode(MapDrawMode.FIR);
1689
- },
1690
- "data-testid": "drawtools-fir",
1691
- sx: styles$1.radioInput
1692
- }))), /*#__PURE__*/React__default.createElement(Grid, {
1693
- item: true
1694
- }, /*#__PURE__*/React__default.createElement(CustomTooltip, {
1695
- title: "Remove geometry"
1696
- }, /*#__PURE__*/React__default.createElement(Radio, {
1697
- icon: /*#__PURE__*/React__default.createElement(Delete, null),
1698
- checkedIcon: /*#__PURE__*/React__default.createElement(Delete, null),
1699
- checked: drawMode === MapDrawMode.DELETE,
1700
- onChange: function onChange() {
1701
- setDrawMode(MapDrawMode.DELETE);
1702
- },
1703
- "data-testid": "drawtools-delete",
1704
- sx: styles$1.radioInput
1705
- }))));
1314
+ var getProjection = function getProjection(productConfig) {
1315
+ var _a;
1316
+ return ((_a = productConfig.mapPreset) === null || _a === void 0 ? void 0 : _a.proj) || undefined;
1317
+ };
1318
+ var getShapeWithProperties = function getShapeWithProperties(shape, properties) {
1319
+ return Object.assign(Object.assign({}, shape), {
1320
+ properties: Object.assign(Object.assign({}, shape.properties), properties)
1321
+ });
1322
+ };
1323
+ var firID = 'drawtools-fir';
1324
+ var getDrawTools = function getDrawTools(type, firShape) {
1325
+ var defaultStyleProperties = type === StartOrEndDrawing.start ? featurePropsStart : featurePropsEnd;
1326
+ return [Object.assign(Object.assign({}, defaultPoint), {
1327
+ title: "Drop a point as ".concat(type, " position"),
1328
+ shape: getShapeWithProperties(defaultPoint.shape, defaultStyleProperties)
1329
+ }), Object.assign(Object.assign({}, defaultBox), {
1330
+ title: "Draw a box as ".concat(type, " position"),
1331
+ shape: getShapeWithProperties(defaultBox.shape, defaultStyleProperties)
1332
+ }), Object.assign(Object.assign({}, defaultPolygon), {
1333
+ title: "Draw a shape as ".concat(type, " position"),
1334
+ shape: getShapeWithProperties(defaultPolygon.shape, defaultStyleProperties)
1335
+ }), {
1336
+ id: firID,
1337
+ title: "Set FIR as ".concat(type, " position"),
1338
+ isSelectable: false,
1339
+ value: DRAWMODE.POLYGON,
1340
+ icon: /*#__PURE__*/React.createElement(DrawFIRLand, null),
1341
+ shape: addFeatureProperties(firShape, defaultStyleProperties)
1342
+ }, Object.assign(Object.assign({}, defaultDelete), {
1343
+ title: 'Remove geometry'
1344
+ })];
1345
+ };
1346
+ var updateDrawToolsWithFir = function updateDrawToolsWithFir(drawTools, newFirShape) {
1347
+ return drawTools.map(function (mode) {
1348
+ if (mode.id === firID) {
1349
+ return Object.assign(Object.assign({}, mode), {
1350
+ shape: newFirShape
1351
+ });
1352
+ }
1353
+ return mode;
1354
+ });
1706
1355
  };
1707
1356
 
1708
1357
  /* *
@@ -2370,9 +2019,11 @@ var multiIntersectionsMessage = 'The drawn polygon has multiple intersections wi
2370
2019
  var StartGeometry = function StartGeometry(_ref) {
2371
2020
  var _ref$isReadOnly = _ref.isReadOnly,
2372
2021
  isReadOnly = _ref$isReadOnly === void 0 ? false : _ref$isReadOnly,
2373
- drawMode = _ref.drawMode,
2374
- geoJSONs = _ref.geoJSONs,
2375
- setDrawModeType = _ref.setDrawModeType;
2022
+ activeTool = _ref.activeTool,
2023
+ tools = _ref.tools,
2024
+ onChangeTool = _ref.onChangeTool,
2025
+ geoJSON = _ref.geoJSON,
2026
+ geoJSONIntersection = _ref.geoJSONIntersection;
2376
2027
  var _useFormContext = useFormContext(),
2377
2028
  errors = _useFormContext.formState.errors,
2378
2029
  watch = _useFormContext.watch;
@@ -2383,21 +2034,19 @@ var StartGeometry = function StartGeometry(_ref) {
2383
2034
  sx: styles$2.drawSection,
2384
2035
  "data-testid": "startGeometry"
2385
2036
  }, /*#__PURE__*/React__default.createElement(DrawTools, {
2386
- type: StartOrEndDrawing.start,
2387
- drawMode: drawMode[StartOrEndDrawing.start],
2388
- setDrawMode: function setDrawMode(mapDrawMode) {
2389
- setDrawModeType(mapDrawMode, StartOrEndDrawing.start);
2390
- }
2391
- }), drawMode[StartOrEndDrawing.start] && /*#__PURE__*/React__default.createElement(FormHelperText, {
2037
+ activeTool: activeTool,
2038
+ tools: tools,
2039
+ onChangeTool: onChangeTool
2040
+ }), activeTool && /*#__PURE__*/React__default.createElement(FormHelperText, {
2392
2041
  variant: "filled",
2393
2042
  sx: styles$2.quitDrawModeMessage
2394
2043
  }, exitDrawModeMessage), !!errors.startGeometry && /*#__PURE__*/React__default.createElement(FormHelperText, {
2395
2044
  error: true,
2396
2045
  variant: "filled"
2397
2046
  }, errors.startGeometry.message), /* non-blocking warnings */
2398
- hasMaxFeaturePoints(geoJSONs.intersectionStart) && !drawMode[StartOrEndDrawing.start] && !errors.startGeometry && !isFir(geoJSONs.start) && /*#__PURE__*/React__default.createElement(FormHelperText, {
2047
+ hasMaxFeaturePoints(geoJSONIntersection) && !activeTool && !errors.startGeometry && !isFir(geoJSON) && /*#__PURE__*/React__default.createElement(FormHelperText, {
2399
2048
  variant: "filled"
2400
- }, maxFeaturePointsMessage), hasMulitpleIntersections(geoJSONs.intersectionStart) && !drawMode[StartOrEndDrawing.start] && !errors.startGeometry && !isFir(geoJSONs.start) && /*#__PURE__*/React__default.createElement(FormHelperText, {
2049
+ }, maxFeaturePointsMessage), hasMulitpleIntersections(geoJSONIntersection) && !activeTool && !errors.startGeometry && !isFir(geoJSON) && /*#__PURE__*/React__default.createElement(FormHelperText, {
2401
2050
  variant: "filled"
2402
2051
  }, multiIntersectionsMessage), /*#__PURE__*/React__default.createElement(ReactHookFormHiddenInput, {
2403
2052
  name: "startGeometry",
@@ -2473,15 +2122,19 @@ var _validateMovementSteps = function validateMovementSteps(value, unit, product
2473
2122
  var Progress = function Progress(_ref) {
2474
2123
  var productType = _ref.productType,
2475
2124
  productConfig = _ref.productConfig,
2476
- drawMode = _ref.drawMode,
2477
2125
  _ref$isDisabled = _ref.isDisabled,
2478
2126
  isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
2479
2127
  _ref$isReadOnly = _ref.isReadOnly,
2480
2128
  isReadOnly = _ref$isReadOnly === void 0 ? false : _ref$isReadOnly,
2481
- geoJSONs = _ref.geoJSONs,
2482
- setDrawModeType = _ref.setDrawModeType,
2483
2129
  _ref$onChange = _ref.onChange,
2484
- _onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange;
2130
+ _onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
2131
+ _ref$tools = _ref.tools,
2132
+ tools = _ref$tools === void 0 ? [] : _ref$tools,
2133
+ activeTool = _ref.activeTool,
2134
+ _ref$onChangeTool = _ref.onChangeTool,
2135
+ onChangeTool = _ref$onChangeTool === void 0 ? function () {} : _ref$onChangeTool,
2136
+ geoJSON = _ref.geoJSON,
2137
+ geoJSONIntersection = _ref.geoJSONIntersection;
2485
2138
  var _useFormContext = useFormContext(),
2486
2139
  watch = _useFormContext.watch,
2487
2140
  getValues = _useFormContext.getValues,
@@ -2522,10 +2175,15 @@ var Progress = function Progress(_ref) {
2522
2175
  isRequired: isRequired
2523
2176
  }
2524
2177
  },
2178
+ isReadOnly: isReadOnly,
2525
2179
  onChange: function onChange() {
2526
- return setDrawModeType ? setDrawModeType(MapDrawMode.DELETE, StartOrEndDrawing.end) : null;
2527
- },
2528
- isReadOnly: isReadOnly
2180
+ var deleteTool = tools === null || tools === void 0 ? void 0 : tools.find(function (tool) {
2181
+ return tool.value === 'DELETE';
2182
+ });
2183
+ if (deleteTool) {
2184
+ onChangeTool(deleteTool);
2185
+ }
2186
+ }
2529
2187
  }, watch('phenomenon') === 'VA_CLD' && /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
2530
2188
  value: "NO_VA_EXP",
2531
2189
  label: "No volcanic ash expected",
@@ -2640,21 +2298,19 @@ var Progress = function Progress(_ref) {
2640
2298
  sx: styles$2.drawSection
2641
2299
  }, !isReadOnly && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(DrawTools, {
2642
2300
  "data-testid": "endGeometry-drawTools",
2643
- type: StartOrEndDrawing.end,
2644
- drawMode: drawMode[StartOrEndDrawing.end],
2645
- setDrawMode: function setDrawMode(mapDrawMode) {
2646
- setDrawModeType(mapDrawMode, StartOrEndDrawing.end);
2647
- }
2648
- }), drawMode[StartOrEndDrawing.end] && /*#__PURE__*/React__default.createElement(FormHelperText, {
2301
+ tools: tools,
2302
+ activeTool: activeTool,
2303
+ onChangeTool: onChangeTool
2304
+ }), activeTool && /*#__PURE__*/React__default.createElement(FormHelperText, {
2649
2305
  variant: "filled",
2650
2306
  sx: styles$2.quitDrawModeMessage
2651
2307
  }, exitDrawModeMessage), !!errors.endGeometry && /*#__PURE__*/React__default.createElement(FormHelperText, {
2652
2308
  error: true,
2653
2309
  variant: "filled"
2654
2310
  }, errors.endGeometry.message), /* non-blocking warnings */
2655
- hasMaxFeaturePoints(geoJSONs.intersectionEnd) && !drawMode[StartOrEndDrawing.end] && !errors.endGeometry && !isFir(geoJSONs.end) && /*#__PURE__*/React__default.createElement(FormHelperText, {
2311
+ hasMaxFeaturePoints(geoJSONIntersection) && !activeTool && !errors.endGeometry && !isFir(geoJSON) && /*#__PURE__*/React__default.createElement(FormHelperText, {
2656
2312
  variant: "filled"
2657
- }, maxFeaturePointsMessage), hasMulitpleIntersections(geoJSONs.intersectionEnd) && !drawMode[StartOrEndDrawing.end] && !errors.endGeometry && !isFir(geoJSONs.end) && /*#__PURE__*/React__default.createElement(FormHelperText, {
2313
+ }, maxFeaturePointsMessage), hasMulitpleIntersections(geoJSONIntersection) && !activeTool && !errors.endGeometry && !isFir(geoJSON) && /*#__PURE__*/React__default.createElement(FormHelperText, {
2658
2314
  variant: "filled"
2659
2315
  }, multiIntersectionsMessage)), /*#__PURE__*/React__default.createElement(ReactHookFormHiddenInput, {
2660
2316
  name: "endGeometry",
@@ -5071,39 +4727,11 @@ initializeUseSelector(withSelector.exports.useSyncExternalStoreWithSelector);
5071
4727
  * Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
5072
4728
  * Copyright 2021 - Finnish Meteorological Institute (FMI)
5073
4729
  * */
5074
- var allowOneGeoJSONFeature = function allowOneGeoJSONFeature(mode, geojson) {
5075
- switch (mode) {
5076
- case MapDrawMode.BOX:
5077
- case MapDrawMode.POLYGON:
5078
- return geojson.features[0].geometry.coordinates.length > 1 ? fn(geojson, function (draft) {
5079
- draft.features[0].geometry.coordinates = [draft.features[0].geometry.coordinates[1]];
5080
- }) : geojson;
5081
- default:
5082
- return geojson;
5083
- }
5084
- };
5085
4730
  var MapViewGeoJson = function MapViewGeoJson(_ref) {
5086
- var geoJSONs = _ref.geoJSONs,
5087
- initialBaseLayers = _ref.baseLayers,
4731
+ var initialBaseLayers = _ref.baseLayers,
5088
4732
  initialProjection = _ref.projection,
5089
- _ref$setLayerGeoJSONs = _ref.setLayerGeoJSONs,
5090
- setLayerGeoJSONs = _ref$setLayerGeoJSONs === void 0 ? function () {} : _ref$setLayerGeoJSONs,
5091
- _ref$layerDrawModes = _ref.layerDrawModes,
5092
- layerDrawModes = _ref$layerDrawModes === void 0 ? {
5093
- start: null,
5094
- end: null
5095
- } : _ref$layerDrawModes,
5096
- _ref$drawMode = _ref.drawMode,
5097
- drawMode = _ref$drawMode === void 0 ? {
5098
- start: null,
5099
- end: null
5100
- } : _ref$drawMode,
5101
- _ref$setDrawMode = _ref.setDrawMode,
5102
- setDrawMode = _ref$setDrawMode === void 0 ? function () {} : _ref$setDrawMode,
5103
- _ref$exitDrawModeCall = _ref.exitDrawModeCallbackStart,
5104
- exitDrawModeCallbackStart = _ref$exitDrawModeCall === void 0 ? function () {} : _ref$exitDrawModeCall,
5105
- _ref$exitDrawModeCall2 = _ref.exitDrawModeCallbackEnd,
5106
- exitDrawModeCallbackEnd = _ref$exitDrawModeCall2 === void 0 ? function () {} : _ref$exitDrawModeCall2;
4733
+ _ref$geoJSONLayers = _ref.geoJSONLayers,
4734
+ geoJSONLayers = _ref$geoJSONLayers === void 0 ? [] : _ref$geoJSONLayers;
5107
4735
  var dispatch = useDispatch();
5108
4736
  var firstMap = useSelector(function (store) {
5109
4737
  return mapSelectors.getFirstMap(store);
@@ -5115,44 +4743,44 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
5115
4743
  var mapDimensions = useSelector(function (store) {
5116
4744
  return mapSelectors.getMapDimensions(store, firstMapId);
5117
4745
  }, shallowEqual);
5118
- var mapId = React.useRef("sigmet-".concat(generateMapId())).current;
5119
- var timesliderId = React.useRef("sigmet-".concat(generateTimesliderId())).current;
4746
+ var mapId = React.useRef("sigmet-".concat(webmapUtils.generateMapId())).current;
4747
+ var timesliderId = React.useRef("sigmet-".concat(webmapUtils.generateTimesliderId())).current;
5120
4748
  var syncGroupAddGroup = React.useCallback(function (payload) {
5121
- dispatch(SyncGroups.actions.syncGroupAddGroup(payload));
4749
+ dispatch(syncGroupsActions.syncGroupAddGroup(payload));
5122
4750
  }, [dispatch]);
5123
4751
  var syncGroupAddTarget = React.useCallback(function (payload) {
5124
- dispatch(SyncGroups.actions.syncGroupAddTarget(payload));
4752
+ dispatch(syncGroupsActions.syncGroupAddTarget(payload));
5125
4753
  }, [dispatch]);
5126
4754
  React.useEffect(function () {
5127
4755
  if (mapLayers && mapLayers.length) {
5128
4756
  // use maplayers, but change layerId and current mapId
5129
4757
  var layers = mapLayers.map(function (layer) {
5130
4758
  return Object.assign(Object.assign({}, layer), {
5131
- id: generateLayerId(),
4759
+ id: webmapUtils.generateLayerId(),
5132
4760
  mapId: mapId
5133
4761
  });
5134
4762
  });
5135
- dispatch(mapActions.setLayers({
4763
+ dispatch(mapStoreActions.setLayers({
5136
4764
  mapId: mapId,
5137
4765
  layers: layers
5138
4766
  }));
5139
4767
  }
5140
4768
  if (mapDimensions && mapDimensions.length) {
5141
- dispatch(mapActions.mapChangeDimension({
4769
+ dispatch(mapStoreActions.mapChangeDimension({
5142
4770
  mapId: mapId,
5143
4771
  dimension: mapDimensions[0],
5144
4772
  origin: 'MapViewGeoJson'
5145
4773
  }));
5146
4774
  }
5147
- var baseLayers = initialBaseLayers || [Object.assign(Object.assign({}, publicLayers.overLayer), {
4775
+ var baseLayers = initialBaseLayers || [Object.assign(Object.assign({}, defaultLayers.overLayer), {
5148
4776
  id: "countryborders-".concat(mapId)
5149
4777
  })];
5150
- dispatch(mapActions.setBaseLayers({
4778
+ dispatch(mapStoreActions.setBaseLayers({
5151
4779
  mapId: mapId,
5152
4780
  layers: baseLayers
5153
4781
  }));
5154
4782
  var projection = initialProjection || srsAndBboxDefault;
5155
- dispatch(mapActions.setBbox({
4783
+ dispatch(mapStoreActions.setBbox({
5156
4784
  mapId: mapId,
5157
4785
  bbox: projection.bbox,
5158
4786
  srs: projection.srs
@@ -5160,7 +4788,7 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
5160
4788
  syncGroupAddGroup({
5161
4789
  groupId: 'Time_SigmetAirmet',
5162
4790
  title: 'Group 1 for sigmet/airmet map',
5163
- type: SyncGroups.constants.SYNCGROUPS_TYPE_SETTIME
4791
+ type: syncConstants.SYNCGROUPS_TYPE_SETTIME
5164
4792
  });
5165
4793
  syncGroupAddTarget({
5166
4794
  groupId: 'Time_SigmetAirmet',
@@ -5189,56 +4817,10 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
5189
4817
  mapId: mapId
5190
4818
  })), /*#__PURE__*/React.createElement(MapViewConnect, {
5191
4819
  mapId: mapId
5192
- }, /*#__PURE__*/React.createElement(MapViewLayer, {
5193
- id: "geojsonlayer-fir-".concat(mapId),
5194
- isInEditMode: false,
5195
- geojson: geoJSONs.fir
5196
- }), /*#__PURE__*/React.createElement(MapViewLayer, {
5197
- id: "geojsonlayer-end-".concat(mapId),
5198
- isInEditMode: drawMode.end !== null && layerDrawModes.end !== null,
5199
- geojson: geoJSONs.end,
5200
- drawMode: layerDrawModes.end,
5201
- updateGeojson: function updateGeojson(geojson) {
5202
- var end = allowOneGeoJSONFeature(layerDrawModes.end, geojson);
5203
- setLayerGeoJSONs(Object.assign(Object.assign({}, geoJSONs), {
5204
- end: end
5205
- }));
5206
- },
5207
- exitDrawModeCallback: function exitDrawModeCallback() {
5208
- setDrawMode({
5209
- start: null,
5210
- end: null
5211
- });
5212
- exitDrawModeCallbackEnd();
5213
- },
5214
- featureNrToEdit: 0
5215
- }), /*#__PURE__*/React.createElement(MapViewLayer, {
5216
- id: "geojsonlayer-start-".concat(mapId),
5217
- isInEditMode: drawMode.start !== null && layerDrawModes.start !== null,
5218
- geojson: geoJSONs.start,
5219
- drawMode: layerDrawModes.start,
5220
- updateGeojson: function updateGeojson(geojson) {
5221
- var start = allowOneGeoJSONFeature(layerDrawModes.start, geojson);
5222
- setLayerGeoJSONs(Object.assign(Object.assign({}, geoJSONs), {
5223
- start: start
5224
- }));
5225
- },
5226
- exitDrawModeCallback: function exitDrawModeCallback() {
5227
- setDrawMode({
5228
- start: null,
5229
- end: null
5230
- });
5231
- exitDrawModeCallbackStart();
5232
- },
5233
- featureNrToEdit: 0
5234
- }), /*#__PURE__*/React.createElement(MapViewLayer, {
5235
- id: "geojsonlayer-intersection-end-".concat(mapId),
5236
- isInEditMode: false,
5237
- geojson: geoJSONs.intersectionEnd
5238
- }), /*#__PURE__*/React.createElement(MapViewLayer, {
5239
- id: "geojsonlayer-intersection-start-".concat(mapId),
5240
- isInEditMode: false,
5241
- geojson: geoJSONs.intersectionStart
4820
+ }, geoJSONLayers.map(function (layer) {
4821
+ return /*#__PURE__*/React.createElement(MapViewLayer, Object.assign({
4822
+ key: layer.id
4823
+ }, layer));
5242
4824
  })), /*#__PURE__*/React.createElement("div", {
5243
4825
  style: {
5244
4826
  position: 'absolute',
@@ -5261,10 +4843,11 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
5261
4843
  }));
5262
4844
  };
5263
4845
 
5264
- var ProductFormLayout = function ProductFormLayout(_a) {
5265
- var children = _a.children,
5266
- productConfig = _a.productConfig,
5267
- geojsonProps = __rest(_a, ["children", "productConfig"]);
4846
+ var ProductFormLayout = function ProductFormLayout(_ref) {
4847
+ var children = _ref.children,
4848
+ productConfig = _ref.productConfig,
4849
+ _ref$geoJSONLayers = _ref.geoJSONLayers,
4850
+ geoJSONLayers = _ref$geoJSONLayers === void 0 ? [] : _ref$geoJSONLayers;
5268
4851
  var theme = useTheme$2();
5269
4852
  var baseLayers = getBaseLayers(productConfig);
5270
4853
  var projection = getProjection(productConfig);
@@ -5288,10 +4871,11 @@ var ProductFormLayout = function ProductFormLayout(_a) {
5288
4871
  height: '100%',
5289
4872
  padding: 0
5290
4873
  })
5291
- }, /*#__PURE__*/React__default.createElement(MapViewGeoJson, Object.assign({
4874
+ }, /*#__PURE__*/React__default.createElement(MapViewGeoJson, {
5292
4875
  baseLayers: baseLayers,
5293
- projection: projection
5294
- }, geojsonProps))), /*#__PURE__*/React__default.createElement(Grid, {
4876
+ projection: projection,
4877
+ geoJSONLayers: geoJSONLayers
4878
+ })), /*#__PURE__*/React__default.createElement(Grid, {
5295
4879
  item: true,
5296
4880
  xs: 12,
5297
4881
  sm: 6,
@@ -8363,6 +7947,10 @@ var airmetDefaultConfig = {
8363
7947
  mapPreset: mapPreset
8364
7948
  };
8365
7949
 
7950
+ var schema13={type:'object',title:'sigmet config schema',properties:{location_indicator_mwo:{type:'string'},active_firs:{type:'array',items:{type:'string'},minItems:1},valid_from_delay_minutes:{type:'number'},default_validity_minutes:{type:'number'},fir_areas:{type:'object',patternProperties:{'':{type:'object',$merge:{source:{$ref:'firArea.schema.json'},"with":{properties:{tc_max_hours_of_validity:{type:'number'},tc_hours_before_validity:{type:'number'},va_max_hours_of_validity:{type:'number'},va_hours_before_validity:{type:'number'},adjacent_firs:{type:'array',items:{type:'string'},minItems:1},area_preset:{type:'string'}},required:['fir_name','fir_location','location_indicator_atsr','location_indicator_atsu','max_hours_of_validity','hours_before_validity','units','tc_max_hours_of_validity','tc_hours_before_validity','va_max_hours_of_validity','va_hours_before_validity','adjacent_firs','area_preset']}}}},required:[],minProperties:1},mapPreset:{type:'object',properties:{layers:{type:'array',items:{type:'object',properties:{id:{type:'string'},name:{type:'string'},layerType:{type:'string',"enum":['overLayer','baseLayer','mapLayer']}},additionalProperties:true,required:['id','name','layerType']}},proj:{type:'object',properties:{bbox:{type:'object',properties:{left:{type:'number'},right:{type:'number'},top:{type:'number'},bottom:{type:'number'}},additionalProperties:false,required:['left','right','top','bottom']},srs:{type:'string'}},additionalProperties:false,required:['bbox','srs']}}}},required:['location_indicator_mwo','fir_areas','active_firs','valid_from_delay_minutes','default_validity_minutes'],additionalProperties:false};var schema15$1={$schema:'http://json-schema.org/draft-07/schema#',$id:'geojson.schema.json',title:'GeoJSON FeatureCollection',type:'object',required:['type','features'],properties:{type:{type:'string',"enum":['FeatureCollection']},features:{type:'array',items:{title:'GeoJSON Feature',type:'object',required:['type','properties','geometry'],properties:{type:{type:'string',"enum":['Feature']},id:{oneOf:[{type:'number'},{type:'string'}]},properties:{type:'object',properties:{selectionType:{type:'string'}}},geometry:{oneOf:[{type:'null'},{title:'GeoJSON Point',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['Point']},coordinates:{type:'array',minItems:2,items:{type:'number'}},bbox:{type:'array',minItems:4,items:{}}}},{title:'GeoJSON LineString',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['LineString']},coordinates:{type:'array',minItems:2,items:{type:'array',minItems:2,items:{type:'number'}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON Polygon',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['Polygon']},coordinates:{type:'array',items:{type:'array',minItems:4,items:{type:'array',minItems:2,items:{type:'number'}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON MultiPoint',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['MultiPoint']},coordinates:{type:'array',items:{type:'array',minItems:2,items:{type:'number'}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON MultiLineString',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['MultiLineString']},coordinates:{type:'array',items:{type:'array',minItems:2,items:{type:'array',minItems:2,items:{type:'number'}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON MultiPolygon',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['MultiPolygon']},coordinates:{type:'array',items:{type:'array',items:{type:'array',minItems:4,items:{type:'array',minItems:2,items:{type:'number'}}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON GeometryCollection',type:'object',required:['type','geometries'],properties:{type:{type:'string',"enum":['GeometryCollection']},geometries:{type:'array',items:{oneOf:[{title:'GeoJSON Point',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['Point']},coordinates:{type:'array',minItems:2,items:{type:'number'}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON LineString',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['LineString']},coordinates:{type:'array',minItems:2,items:{type:'array',minItems:2,items:{type:'number'}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON Polygon',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['Polygon']},coordinates:{type:'array',items:{type:'array',minItems:4,items:{type:'array',minItems:2,items:{type:'number'}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON MultiPoint',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['MultiPoint']},coordinates:{type:'array',items:{type:'array',minItems:2,items:{type:'number'}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON MultiLineString',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['MultiLineString']},coordinates:{type:'array',items:{type:'array',minItems:2,items:{type:'array',minItems:2,items:{type:'number'}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON MultiPolygon',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['MultiPolygon']},coordinates:{type:'array',items:{type:'array',items:{type:'array',minItems:4,items:{type:'array',minItems:2,items:{type:'number'}}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}}]}},bbox:{type:'array',minItems:4,items:{type:'number'}}}}]},bbox:{type:'array',minItems:4,items:{type:'number'}}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}};var pattern0$1=new RegExp('','u');var keyword0={$id:'firArea.schema.json',title:'fir config schema',description:'all properties defined in FIRConfig type',type:'object',properties:{fir_name:{type:'string'},fir_location:{$ref:'geojson.schema.json'},location_indicator_atsr:{type:'string'},location_indicator_atsu:{type:'string'},max_hours_of_validity:{type:'number'},hours_before_validity:{type:'number'},movement_rounding_kt:{type:'number'},movement_rounding_kmh:{type:'number'},level_min:{type:'object',additionalProperties:{type:'number'}},level_max:{type:'object',additionalProperties:{type:'number'}},level_rounding_FL:{type:'number'},level_rounding_FT:{type:'number'},level_rounding_M:{type:'number'},movement_min:{type:'object',additionalProperties:{type:'number'}},movement_max:{type:'object',additionalProperties:{type:'number'}},units:{type:'array',items:{type:'object',properties:{unit_type:{type:'string'},allowed_units:{type:'array',items:{type:'string'},minItems:1}},required:['unit_type','allowed_units'],additionalProperties:false},minItems:1},tc_max_hours_of_validity:{type:'number'},tc_hours_before_validity:{type:'number'},va_max_hours_of_validity:{type:'number'},va_hours_before_validity:{type:'number'},adjacent_firs:{type:'array',items:{type:'string'},minItems:1},area_preset:{type:'string'}},required:['fir_name','fir_location','location_indicator_atsr','location_indicator_atsu','max_hours_of_validity','hours_before_validity','units','tc_max_hours_of_validity','tc_hours_before_validity','va_max_hours_of_validity','va_hours_before_validity','adjacent_firs','area_preset'],additionalProperties:false};var func2$1=Object.prototype.hasOwnProperty;function validate14(data){var _ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},_ref$instancePath=_ref.instancePath,instancePath=_ref$instancePath===void 0?'':_ref$instancePath;_ref.parentData;_ref.parentDataProperty;_ref.rootData;var vErrors=null;var errors=0;if(data&&_typeof(data)=='object'&&!Array.isArray(data)){if(data.location_indicator_mwo===undefined){var err0={instancePath:instancePath,schemaPath:'#/required',keyword:'required',params:{missingProperty:'location_indicator_mwo'},message:"must have required property '"+'location_indicator_mwo'+"'"};if(vErrors===null){vErrors=[err0];}else {vErrors.push(err0);}errors++;}if(data.fir_areas===undefined){var err1={instancePath:instancePath,schemaPath:'#/required',keyword:'required',params:{missingProperty:'fir_areas'},message:"must have required property '"+'fir_areas'+"'"};if(vErrors===null){vErrors=[err1];}else {vErrors.push(err1);}errors++;}if(data.active_firs===undefined){var err2={instancePath:instancePath,schemaPath:'#/required',keyword:'required',params:{missingProperty:'active_firs'},message:"must have required property '"+'active_firs'+"'"};if(vErrors===null){vErrors=[err2];}else {vErrors.push(err2);}errors++;}if(data.valid_from_delay_minutes===undefined){var err3={instancePath:instancePath,schemaPath:'#/required',keyword:'required',params:{missingProperty:'valid_from_delay_minutes'},message:"must have required property '"+'valid_from_delay_minutes'+"'"};if(vErrors===null){vErrors=[err3];}else {vErrors.push(err3);}errors++;}if(data.default_validity_minutes===undefined){var err4={instancePath:instancePath,schemaPath:'#/required',keyword:'required',params:{missingProperty:'default_validity_minutes'},message:"must have required property '"+'default_validity_minutes'+"'"};if(vErrors===null){vErrors=[err4];}else {vErrors.push(err4);}errors++;}for(var key0 in data){if(!(key0==='location_indicator_mwo'||key0==='active_firs'||key0==='valid_from_delay_minutes'||key0==='default_validity_minutes'||key0==='fir_areas'||key0==='mapPreset')){var err5={instancePath:instancePath,schemaPath:'#/additionalProperties',keyword:'additionalProperties',params:{additionalProperty:key0},message:'must NOT have additional properties'};if(vErrors===null){vErrors=[err5];}else {vErrors.push(err5);}errors++;}}if(data.location_indicator_mwo!==undefined){if(typeof data.location_indicator_mwo!=='string'){var err6={instancePath:instancePath+'/location_indicator_mwo',schemaPath:'#/properties/location_indicator_mwo/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err6];}else {vErrors.push(err6);}errors++;}}if(data.active_firs!==undefined){var data1=data.active_firs;if(Array.isArray(data1)){if(data1.length<1){var err7={instancePath:instancePath+'/active_firs',schemaPath:'#/properties/active_firs/minItems',keyword:'minItems',params:{limit:1},message:'must NOT have fewer than 1 items'};if(vErrors===null){vErrors=[err7];}else {vErrors.push(err7);}errors++;}var len0=data1.length;for(var i0=0;i0<len0;i0++){if(typeof data1[i0]!=='string'){var err8={instancePath:instancePath+'/active_firs/'+i0,schemaPath:'#/properties/active_firs/items/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err8];}else {vErrors.push(err8);}errors++;}}}else {var err9={instancePath:instancePath+'/active_firs',schemaPath:'#/properties/active_firs/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err9];}else {vErrors.push(err9);}errors++;}}if(data.valid_from_delay_minutes!==undefined){var data3=data.valid_from_delay_minutes;if(!(typeof data3=='number'&&isFinite(data3))){var err10={instancePath:instancePath+'/valid_from_delay_minutes',schemaPath:'#/properties/valid_from_delay_minutes/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err10];}else {vErrors.push(err10);}errors++;}}if(data.default_validity_minutes!==undefined){var data4=data.default_validity_minutes;if(!(typeof data4=='number'&&isFinite(data4))){var err11={instancePath:instancePath+'/default_validity_minutes',schemaPath:'#/properties/default_validity_minutes/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err11];}else {vErrors.push(err11);}errors++;}}if(data.fir_areas!==undefined){var data5=data.fir_areas;if(data5&&_typeof(data5)=='object'&&!Array.isArray(data5)){if(Object.keys(data5).length<1){var err12={instancePath:instancePath+'/fir_areas',schemaPath:'#/properties/fir_areas/minProperties',keyword:'minProperties',params:{limit:1},message:'must NOT have fewer than 1 properties'};if(vErrors===null){vErrors=[err12];}else {vErrors.push(err12);}errors++;}for(var key1 in data5){if(pattern0$1.test(key1)){var data6=data5[key1];if(!(data6&&_typeof(data6)=='object'&&!Array.isArray(data6))){var err13={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err13];}else {vErrors.push(err13);}errors++;}var _errs17=errors;if(data6&&_typeof(data6)=='object'&&!Array.isArray(data6)){if(data6.fir_name===undefined){var err14={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'fir_name'},message:"must have required property '"+'fir_name'+"'"};if(vErrors===null){vErrors=[err14];}else {vErrors.push(err14);}errors++;}if(data6.fir_location===undefined){var err15={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'fir_location'},message:"must have required property '"+'fir_location'+"'"};if(vErrors===null){vErrors=[err15];}else {vErrors.push(err15);}errors++;}if(data6.location_indicator_atsr===undefined){var err16={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'location_indicator_atsr'},message:"must have required property '"+'location_indicator_atsr'+"'"};if(vErrors===null){vErrors=[err16];}else {vErrors.push(err16);}errors++;}if(data6.location_indicator_atsu===undefined){var err17={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'location_indicator_atsu'},message:"must have required property '"+'location_indicator_atsu'+"'"};if(vErrors===null){vErrors=[err17];}else {vErrors.push(err17);}errors++;}if(data6.max_hours_of_validity===undefined){var err18={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'max_hours_of_validity'},message:"must have required property '"+'max_hours_of_validity'+"'"};if(vErrors===null){vErrors=[err18];}else {vErrors.push(err18);}errors++;}if(data6.hours_before_validity===undefined){var err19={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'hours_before_validity'},message:"must have required property '"+'hours_before_validity'+"'"};if(vErrors===null){vErrors=[err19];}else {vErrors.push(err19);}errors++;}if(data6.units===undefined){var err20={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'units'},message:"must have required property '"+'units'+"'"};if(vErrors===null){vErrors=[err20];}else {vErrors.push(err20);}errors++;}if(data6.tc_max_hours_of_validity===undefined){var err21={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'tc_max_hours_of_validity'},message:"must have required property '"+'tc_max_hours_of_validity'+"'"};if(vErrors===null){vErrors=[err21];}else {vErrors.push(err21);}errors++;}if(data6.tc_hours_before_validity===undefined){var err22={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'tc_hours_before_validity'},message:"must have required property '"+'tc_hours_before_validity'+"'"};if(vErrors===null){vErrors=[err22];}else {vErrors.push(err22);}errors++;}if(data6.va_max_hours_of_validity===undefined){var err23={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'va_max_hours_of_validity'},message:"must have required property '"+'va_max_hours_of_validity'+"'"};if(vErrors===null){vErrors=[err23];}else {vErrors.push(err23);}errors++;}if(data6.va_hours_before_validity===undefined){var err24={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'va_hours_before_validity'},message:"must have required property '"+'va_hours_before_validity'+"'"};if(vErrors===null){vErrors=[err24];}else {vErrors.push(err24);}errors++;}if(data6.adjacent_firs===undefined){var err25={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'adjacent_firs'},message:"must have required property '"+'adjacent_firs'+"'"};if(vErrors===null){vErrors=[err25];}else {vErrors.push(err25);}errors++;}if(data6.area_preset===undefined){var err26={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'area_preset'},message:"must have required property '"+'area_preset'+"'"};if(vErrors===null){vErrors=[err26];}else {vErrors.push(err26);}errors++;}for(var key2 in data6){if(!func2$1.call(keyword0.properties,key2)){var err27={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/additionalProperties',keyword:'additionalProperties',params:{additionalProperty:key2},message:'must NOT have additional properties'};if(vErrors===null){vErrors=[err27];}else {vErrors.push(err27);}errors++;}}if(data6.fir_name!==undefined){if(typeof data6.fir_name!=='string'){var err28={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_name',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/fir_name/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err28];}else {vErrors.push(err28);}errors++;}}if(data6.fir_location!==undefined){var data8=data6.fir_location;if(data8&&_typeof(data8)=='object'&&!Array.isArray(data8)){if(data8.type===undefined){var err29={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location',schemaPath:'geojson.schema.json/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err29];}else {vErrors.push(err29);}errors++;}if(data8.features===undefined){var err30={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location',schemaPath:'geojson.schema.json/required',keyword:'required',params:{missingProperty:'features'},message:"must have required property '"+'features'+"'"};if(vErrors===null){vErrors=[err30];}else {vErrors.push(err30);}errors++;}if(data8.type!==undefined){var data9=data8.type;if(typeof data9!=='string'){var err31={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/type',schemaPath:'geojson.schema.json/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err31];}else {vErrors.push(err31);}errors++;}if(!(data9==='FeatureCollection')){var err32={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/type',schemaPath:'geojson.schema.json/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err32];}else {vErrors.push(err32);}errors++;}}if(data8.features!==undefined){var data10=data8.features;if(Array.isArray(data10)){var len1=data10.length;for(var i1=0;i1<len1;i1++){var data11=data10[i1];if(data11&&_typeof(data11)=='object'&&!Array.isArray(data11)){if(data11.type===undefined){var err33={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1,schemaPath:'geojson.schema.json/properties/features/items/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err33];}else {vErrors.push(err33);}errors++;}if(data11.properties===undefined){var err34={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1,schemaPath:'geojson.schema.json/properties/features/items/required',keyword:'required',params:{missingProperty:'properties'},message:"must have required property '"+'properties'+"'"};if(vErrors===null){vErrors=[err34];}else {vErrors.push(err34);}errors++;}if(data11.geometry===undefined){var err35={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1,schemaPath:'geojson.schema.json/properties/features/items/required',keyword:'required',params:{missingProperty:'geometry'},message:"must have required property '"+'geometry'+"'"};if(vErrors===null){vErrors=[err35];}else {vErrors.push(err35);}errors++;}if(data11.type!==undefined){var data12=data11.type;if(typeof data12!=='string'){var err36={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err36];}else {vErrors.push(err36);}errors++;}if(!(data12==='Feature')){var err37={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err37];}else {vErrors.push(err37);}errors++;}}if(data11.id!==undefined){var data13=data11.id;var _errs34=errors;var valid11=false;var passing0=null;var _errs35=errors;if(!(typeof data13=='number'&&isFinite(data13))){var err38={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/id',schemaPath:'geojson.schema.json/properties/features/items/properties/id/oneOf/0/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err38];}else {vErrors.push(err38);}errors++;}var _valid0=_errs35===errors;if(_valid0){valid11=true;passing0=0;}var _errs37=errors;if(typeof data13!=='string'){var err39={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/id',schemaPath:'geojson.schema.json/properties/features/items/properties/id/oneOf/1/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err39];}else {vErrors.push(err39);}errors++;}var _valid0=_errs37===errors;if(_valid0&&valid11){valid11=false;passing0=[passing0,1];}else {if(_valid0){valid11=true;passing0=1;}}if(!valid11){var err40={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/id',schemaPath:'geojson.schema.json/properties/features/items/properties/id/oneOf',keyword:'oneOf',params:{passingSchemas:passing0},message:'must match exactly one schema in oneOf'};if(vErrors===null){vErrors=[err40];}else {vErrors.push(err40);}errors++;}else {errors=_errs34;if(vErrors!==null){if(_errs34){vErrors.length=_errs34;}else {vErrors=null;}}}}if(data11.properties!==undefined){var data14=data11.properties;if(data14&&_typeof(data14)=='object'&&!Array.isArray(data14)){if(data14.selectionType!==undefined){if(typeof data14.selectionType!=='string'){var err41={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/properties/selectionType',schemaPath:'geojson.schema.json/properties/features/items/properties/properties/properties/selectionType/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err41];}else {vErrors.push(err41);}errors++;}}}else {var err42={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/properties',schemaPath:'geojson.schema.json/properties/features/items/properties/properties/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err42];}else {vErrors.push(err42);}errors++;}}if(data11.geometry!==undefined){var data16=data11.geometry;var _errs44=errors;var valid13=false;var passing1=null;var _errs45=errors;if(data16!==null){var err43={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/0/type',keyword:'type',params:{type:'null'},message:'must be null'};if(vErrors===null){vErrors=[err43];}else {vErrors.push(err43);}errors++;}var _valid1=_errs45===errors;if(_valid1){valid13=true;passing1=0;}var _errs47=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err44={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err44];}else {vErrors.push(err44);}errors++;}if(data16.coordinates===undefined){var err45={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err45];}else {vErrors.push(err45);}errors++;}if(data16.type!==undefined){var data17=data16.type;if(typeof data17!=='string'){var err46={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err46];}else {vErrors.push(err46);}errors++;}if(!(data17==='Point')){var err47={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[1].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err47];}else {vErrors.push(err47);}errors++;}}if(data16.coordinates!==undefined){var data18=data16.coordinates;if(Array.isArray(data18)){if(data18.length<2){var err48={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/coordinates/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err48];}else {vErrors.push(err48);}errors++;}var len2=data18.length;for(var i2=0;i2<len2;i2++){var data19=data18[i2];if(!(typeof data19=='number'&&isFinite(data19))){var err49={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i2,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/coordinates/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err49];}else {vErrors.push(err49);}errors++;}}}else {var err50={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err50];}else {vErrors.push(err50);}errors++;}}if(data16.bbox!==undefined){var data20=data16.bbox;if(Array.isArray(data20)){if(data20.length<4){var err51={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err51];}else {vErrors.push(err51);}errors++;}}else {var err52={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err52];}else {vErrors.push(err52);}errors++;}}}else {var err53={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err53];}else {vErrors.push(err53);}errors++;}var _valid1=_errs47===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,1];}else {if(_valid1){valid13=true;passing1=1;}var _errs57=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err54={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err54];}else {vErrors.push(err54);}errors++;}if(data16.coordinates===undefined){var err55={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err55];}else {vErrors.push(err55);}errors++;}if(data16.type!==undefined){var data21=data16.type;if(typeof data21!=='string'){var err56={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err56];}else {vErrors.push(err56);}errors++;}if(!(data21==='LineString')){var err57={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[2].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err57];}else {vErrors.push(err57);}errors++;}}if(data16.coordinates!==undefined){var data22=data16.coordinates;if(Array.isArray(data22)){if(data22.length<2){var err58={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/coordinates/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err58];}else {vErrors.push(err58);}errors++;}var len3=data22.length;for(var i3=0;i3<len3;i3++){var data23=data22[i3];if(Array.isArray(data23)){if(data23.length<2){var err59={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i3,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err59];}else {vErrors.push(err59);}errors++;}var len4=data23.length;for(var i4=0;i4<len4;i4++){var data24=data23[i4];if(!(typeof data24=='number'&&isFinite(data24))){var err60={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i3+'/'+i4,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/coordinates/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err60];}else {vErrors.push(err60);}errors++;}}}else {var err61={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i3,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err61];}else {vErrors.push(err61);}errors++;}}}else {var err62={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err62];}else {vErrors.push(err62);}errors++;}}if(data16.bbox!==undefined){var data25=data16.bbox;if(Array.isArray(data25)){if(data25.length<4){var err63={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err63];}else {vErrors.push(err63);}errors++;}var len5=data25.length;for(var i5=0;i5<len5;i5++){var data26=data25[i5];if(!(typeof data26=='number'&&isFinite(data26))){var err64={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox/'+i5,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err64];}else {vErrors.push(err64);}errors++;}}}else {var err65={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err65];}else {vErrors.push(err65);}errors++;}}}else {var err66={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err66];}else {vErrors.push(err66);}errors++;}var _valid1=_errs57===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,2];}else {if(_valid1){valid13=true;passing1=2;}var _errs71=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err67={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err67];}else {vErrors.push(err67);}errors++;}if(data16.coordinates===undefined){var err68={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err68];}else {vErrors.push(err68);}errors++;}if(data16.type!==undefined){var data27=data16.type;if(typeof data27!=='string'){var err69={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err69];}else {vErrors.push(err69);}errors++;}if(!(data27==='Polygon')){var err70={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[3].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err70];}else {vErrors.push(err70);}errors++;}}if(data16.coordinates!==undefined){var data28=data16.coordinates;if(Array.isArray(data28)){var len6=data28.length;for(var i6=0;i6<len6;i6++){var data29=data28[i6];if(Array.isArray(data29)){if(data29.length<4){var err71={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i6,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err71];}else {vErrors.push(err71);}errors++;}var len7=data29.length;for(var i7=0;i7<len7;i7++){var data30=data29[i7];if(Array.isArray(data30)){if(data30.length<2){var err72={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i6+'/'+i7,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/coordinates/items/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err72];}else {vErrors.push(err72);}errors++;}var len8=data30.length;for(var i8=0;i8<len8;i8++){var data31=data30[i8];if(!(typeof data31=='number'&&isFinite(data31))){var err73={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i6+'/'+i7+'/'+i8,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/coordinates/items/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err73];}else {vErrors.push(err73);}errors++;}}}else {var err74={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i6+'/'+i7,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/coordinates/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err74];}else {vErrors.push(err74);}errors++;}}}else {var err75={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i6,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err75];}else {vErrors.push(err75);}errors++;}}}else {var err76={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err76];}else {vErrors.push(err76);}errors++;}}if(data16.bbox!==undefined){var data32=data16.bbox;if(Array.isArray(data32)){if(data32.length<4){var err77={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err77];}else {vErrors.push(err77);}errors++;}var len9=data32.length;for(var i9=0;i9<len9;i9++){var data33=data32[i9];if(!(typeof data33=='number'&&isFinite(data33))){var err78={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox/'+i9,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err78];}else {vErrors.push(err78);}errors++;}}}else {var err79={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err79];}else {vErrors.push(err79);}errors++;}}}else {var err80={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err80];}else {vErrors.push(err80);}errors++;}var _valid1=_errs71===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,3];}else {if(_valid1){valid13=true;passing1=3;}var _errs87=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err81={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err81];}else {vErrors.push(err81);}errors++;}if(data16.coordinates===undefined){var err82={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err82];}else {vErrors.push(err82);}errors++;}if(data16.type!==undefined){var data34=data16.type;if(typeof data34!=='string'){var err83={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err83];}else {vErrors.push(err83);}errors++;}if(!(data34==='MultiPoint')){var err84={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[4].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err84];}else {vErrors.push(err84);}errors++;}}if(data16.coordinates!==undefined){var data35=data16.coordinates;if(Array.isArray(data35)){var len10=data35.length;for(var i10=0;i10<len10;i10++){var data36=data35[i10];if(Array.isArray(data36)){if(data36.length<2){var err85={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i10,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err85];}else {vErrors.push(err85);}errors++;}var len11=data36.length;for(var i11=0;i11<len11;i11++){var data37=data36[i11];if(!(typeof data37=='number'&&isFinite(data37))){var err86={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i10+'/'+i11,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/coordinates/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err86];}else {vErrors.push(err86);}errors++;}}}else {var err87={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i10,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err87];}else {vErrors.push(err87);}errors++;}}}else {var err88={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err88];}else {vErrors.push(err88);}errors++;}}if(data16.bbox!==undefined){var data38=data16.bbox;if(Array.isArray(data38)){if(data38.length<4){var err89={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err89];}else {vErrors.push(err89);}errors++;}var len12=data38.length;for(var i12=0;i12<len12;i12++){var data39=data38[i12];if(!(typeof data39=='number'&&isFinite(data39))){var err90={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox/'+i12,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err90];}else {vErrors.push(err90);}errors++;}}}else {var err91={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err91];}else {vErrors.push(err91);}errors++;}}}else {var err92={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err92];}else {vErrors.push(err92);}errors++;}var _valid1=_errs87===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,4];}else {if(_valid1){valid13=true;passing1=4;}var _errs101=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err93={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err93];}else {vErrors.push(err93);}errors++;}if(data16.coordinates===undefined){var err94={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err94];}else {vErrors.push(err94);}errors++;}if(data16.type!==undefined){var data40=data16.type;if(typeof data40!=='string'){var err95={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err95];}else {vErrors.push(err95);}errors++;}if(!(data40==='MultiLineString')){var err96={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[5].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err96];}else {vErrors.push(err96);}errors++;}}if(data16.coordinates!==undefined){var data41=data16.coordinates;if(Array.isArray(data41)){var len13=data41.length;for(var i13=0;i13<len13;i13++){var data42=data41[i13];if(Array.isArray(data42)){if(data42.length<2){var err97={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i13,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err97];}else {vErrors.push(err97);}errors++;}var len14=data42.length;for(var i14=0;i14<len14;i14++){var data43=data42[i14];if(Array.isArray(data43)){if(data43.length<2){var err98={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i13+'/'+i14,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/coordinates/items/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err98];}else {vErrors.push(err98);}errors++;}var len15=data43.length;for(var i15=0;i15<len15;i15++){var data44=data43[i15];if(!(typeof data44=='number'&&isFinite(data44))){var err99={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i13+'/'+i14+'/'+i15,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/coordinates/items/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err99];}else {vErrors.push(err99);}errors++;}}}else {var err100={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i13+'/'+i14,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/coordinates/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err100];}else {vErrors.push(err100);}errors++;}}}else {var err101={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i13,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err101];}else {vErrors.push(err101);}errors++;}}}else {var err102={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err102];}else {vErrors.push(err102);}errors++;}}if(data16.bbox!==undefined){var data45=data16.bbox;if(Array.isArray(data45)){if(data45.length<4){var err103={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err103];}else {vErrors.push(err103);}errors++;}var len16=data45.length;for(var i16=0;i16<len16;i16++){var data46=data45[i16];if(!(typeof data46=='number'&&isFinite(data46))){var err104={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox/'+i16,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err104];}else {vErrors.push(err104);}errors++;}}}else {var err105={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err105];}else {vErrors.push(err105);}errors++;}}}else {var err106={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err106];}else {vErrors.push(err106);}errors++;}var _valid1=_errs101===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,5];}else {if(_valid1){valid13=true;passing1=5;}var _errs117=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err107={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err107];}else {vErrors.push(err107);}errors++;}if(data16.coordinates===undefined){var err108={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err108];}else {vErrors.push(err108);}errors++;}if(data16.type!==undefined){var data47=data16.type;if(typeof data47!=='string'){var err109={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err109];}else {vErrors.push(err109);}errors++;}if(!(data47==='MultiPolygon')){var err110={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[6].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err110];}else {vErrors.push(err110);}errors++;}}if(data16.coordinates!==undefined){var data48=data16.coordinates;if(Array.isArray(data48)){var len17=data48.length;for(var i17=0;i17<len17;i17++){var data49=data48[i17];if(Array.isArray(data49)){var len18=data49.length;for(var i18=0;i18<len18;i18++){var data50=data49[i18];if(Array.isArray(data50)){if(data50.length<4){var err111={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i17+'/'+i18,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/items/items/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err111];}else {vErrors.push(err111);}errors++;}var len19=data50.length;for(var i19=0;i19<len19;i19++){var data51=data50[i19];if(Array.isArray(data51)){if(data51.length<2){var err112={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i17+'/'+i18+'/'+i19,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/items/items/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err112];}else {vErrors.push(err112);}errors++;}var len20=data51.length;for(var i20=0;i20<len20;i20++){var data52=data51[i20];if(!(typeof data52=='number'&&isFinite(data52))){var err113={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i17+'/'+i18+'/'+i19+'/'+i20,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/items/items/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err113];}else {vErrors.push(err113);}errors++;}}}else {var err114={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i17+'/'+i18+'/'+i19,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/items/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err114];}else {vErrors.push(err114);}errors++;}}}else {var err115={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i17+'/'+i18,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err115];}else {vErrors.push(err115);}errors++;}}}else {var err116={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i17,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err116];}else {vErrors.push(err116);}errors++;}}}else {var err117={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err117];}else {vErrors.push(err117);}errors++;}}if(data16.bbox!==undefined){var data53=data16.bbox;if(Array.isArray(data53)){if(data53.length<4){var err118={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err118];}else {vErrors.push(err118);}errors++;}var len21=data53.length;for(var i21=0;i21<len21;i21++){var data54=data53[i21];if(!(typeof data54=='number'&&isFinite(data54))){var err119={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox/'+i21,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err119];}else {vErrors.push(err119);}errors++;}}}else {var err120={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err120];}else {vErrors.push(err120);}errors++;}}}else {var err121={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err121];}else {vErrors.push(err121);}errors++;}var _valid1=_errs117===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,6];}else {if(_valid1){valid13=true;passing1=6;}var _errs135=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err122={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err122];}else {vErrors.push(err122);}errors++;}if(data16.geometries===undefined){var err123={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/required',keyword:'required',params:{missingProperty:'geometries'},message:"must have required property '"+'geometries'+"'"};if(vErrors===null){vErrors=[err123];}else {vErrors.push(err123);}errors++;}if(data16.type!==undefined){var data55=data16.type;if(typeof data55!=='string'){var err124={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err124];}else {vErrors.push(err124);}errors++;}if(!(data55==='GeometryCollection')){var err125={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[7].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err125];}else {vErrors.push(err125);}errors++;}}if(data16.geometries!==undefined){var data56=data16.geometries;if(Array.isArray(data56)){var len22=data56.length;for(var i22=0;i22<len22;i22++){var data57=data56[i22];var _errs142=errors;var valid63=false;var passing2=null;var _errs143=errors;if(data57&&_typeof(data57)=='object'&&!Array.isArray(data57)){if(data57.type===undefined){var err126={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err126];}else {vErrors.push(err126);}errors++;}if(data57.coordinates===undefined){var err127={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err127];}else {vErrors.push(err127);}errors++;}if(data57.type!==undefined){var data58=data57.type;if(typeof data58!=='string'){var err128={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err128];}else {vErrors.push(err128);}errors++;}if(!(data58==='Point')){var err129={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[7].properties.geometries.items.oneOf[0].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err129];}else {vErrors.push(err129);}errors++;}}if(data57.coordinates!==undefined){var data59=data57.coordinates;if(Array.isArray(data59)){if(data59.length<2){var err130={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/coordinates/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err130];}else {vErrors.push(err130);}errors++;}var len23=data59.length;for(var i23=0;i23<len23;i23++){var data60=data59[i23];if(!(typeof data60=='number'&&isFinite(data60))){var err131={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i23,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/coordinates/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err131];}else {vErrors.push(err131);}errors++;}}}else {var err132={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err132];}else {vErrors.push(err132);}errors++;}}if(data57.bbox!==undefined){var data61=data57.bbox;if(Array.isArray(data61)){if(data61.length<4){var err133={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err133];}else {vErrors.push(err133);}errors++;}var len24=data61.length;for(var i24=0;i24<len24;i24++){var data62=data61[i24];if(!(typeof data62=='number'&&isFinite(data62))){var err134={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox/'+i24,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err134];}else {vErrors.push(err134);}errors++;}}}else {var err135={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err135];}else {vErrors.push(err135);}errors++;}}}else {var err136={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err136];}else {vErrors.push(err136);}errors++;}var _valid2=_errs143===errors;if(_valid2){valid63=true;passing2=0;}var _errs155=errors;if(data57&&_typeof(data57)=='object'&&!Array.isArray(data57)){if(data57.type===undefined){var err137={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err137];}else {vErrors.push(err137);}errors++;}if(data57.coordinates===undefined){var err138={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err138];}else {vErrors.push(err138);}errors++;}if(data57.type!==undefined){var data63=data57.type;if(typeof data63!=='string'){var err139={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err139];}else {vErrors.push(err139);}errors++;}if(!(data63==='LineString')){var err140={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[7].properties.geometries.items.oneOf[1].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err140];}else {vErrors.push(err140);}errors++;}}if(data57.coordinates!==undefined){var data64=data57.coordinates;if(Array.isArray(data64)){if(data64.length<2){var err141={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/coordinates/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err141];}else {vErrors.push(err141);}errors++;}var len25=data64.length;for(var i25=0;i25<len25;i25++){var data65=data64[i25];if(Array.isArray(data65)){if(data65.length<2){var err142={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i25,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err142];}else {vErrors.push(err142);}errors++;}var len26=data65.length;for(var i26=0;i26<len26;i26++){var data66=data65[i26];if(!(typeof data66=='number'&&isFinite(data66))){var err143={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i25+'/'+i26,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/coordinates/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err143];}else {vErrors.push(err143);}errors++;}}}else {var err144={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i25,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err144];}else {vErrors.push(err144);}errors++;}}}else {var err145={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err145];}else {vErrors.push(err145);}errors++;}}if(data57.bbox!==undefined){var data67=data57.bbox;if(Array.isArray(data67)){if(data67.length<4){var err146={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err146];}else {vErrors.push(err146);}errors++;}var len27=data67.length;for(var i27=0;i27<len27;i27++){var data68=data67[i27];if(!(typeof data68=='number'&&isFinite(data68))){var err147={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox/'+i27,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err147];}else {vErrors.push(err147);}errors++;}}}else {var err148={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err148];}else {vErrors.push(err148);}errors++;}}}else {var err149={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err149];}else {vErrors.push(err149);}errors++;}var _valid2=_errs155===errors;if(_valid2&&valid63){valid63=false;passing2=[passing2,1];}else {if(_valid2){valid63=true;passing2=1;}var _errs169=errors;if(data57&&_typeof(data57)=='object'&&!Array.isArray(data57)){if(data57.type===undefined){var err150={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err150];}else {vErrors.push(err150);}errors++;}if(data57.coordinates===undefined){var err151={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err151];}else {vErrors.push(err151);}errors++;}if(data57.type!==undefined){var data69=data57.type;if(typeof data69!=='string'){var err152={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err152];}else {vErrors.push(err152);}errors++;}if(!(data69==='Polygon')){var err153={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[7].properties.geometries.items.oneOf[2].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err153];}else {vErrors.push(err153);}errors++;}}if(data57.coordinates!==undefined){var data70=data57.coordinates;if(Array.isArray(data70)){var len28=data70.length;for(var i28=0;i28<len28;i28++){var data71=data70[i28];if(Array.isArray(data71)){if(data71.length<4){var err154={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i28,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err154];}else {vErrors.push(err154);}errors++;}var len29=data71.length;for(var i29=0;i29<len29;i29++){var data72=data71[i29];if(Array.isArray(data72)){if(data72.length<2){var err155={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i28+'/'+i29,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/coordinates/items/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err155];}else {vErrors.push(err155);}errors++;}var len30=data72.length;for(var i30=0;i30<len30;i30++){var data73=data72[i30];if(!(typeof data73=='number'&&isFinite(data73))){var err156={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i28+'/'+i29+'/'+i30,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/coordinates/items/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err156];}else {vErrors.push(err156);}errors++;}}}else {var err157={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i28+'/'+i29,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/coordinates/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err157];}else {vErrors.push(err157);}errors++;}}}else {var err158={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i28,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err158];}else {vErrors.push(err158);}errors++;}}}else {var err159={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err159];}else {vErrors.push(err159);}errors++;}}if(data57.bbox!==undefined){var data74=data57.bbox;if(Array.isArray(data74)){if(data74.length<4){var err160={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err160];}else {vErrors.push(err160);}errors++;}var len31=data74.length;for(var i31=0;i31<len31;i31++){var data75=data74[i31];if(!(typeof data75=='number'&&isFinite(data75))){var err161={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox/'+i31,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err161];}else {vErrors.push(err161);}errors++;}}}else {var err162={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err162];}else {vErrors.push(err162);}errors++;}}}else {var err163={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err163];}else {vErrors.push(err163);}errors++;}var _valid2=_errs169===errors;if(_valid2&&valid63){valid63=false;passing2=[passing2,2];}else {if(_valid2){valid63=true;passing2=2;}var _errs185=errors;if(data57&&_typeof(data57)=='object'&&!Array.isArray(data57)){if(data57.type===undefined){var err164={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err164];}else {vErrors.push(err164);}errors++;}if(data57.coordinates===undefined){var err165={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err165];}else {vErrors.push(err165);}errors++;}if(data57.type!==undefined){var data76=data57.type;if(typeof data76!=='string'){var err166={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err166];}else {vErrors.push(err166);}errors++;}if(!(data76==='MultiPoint')){var err167={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[7].properties.geometries.items.oneOf[3].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err167];}else {vErrors.push(err167);}errors++;}}if(data57.coordinates!==undefined){var data77=data57.coordinates;if(Array.isArray(data77)){var len32=data77.length;for(var i32=0;i32<len32;i32++){var data78=data77[i32];if(Array.isArray(data78)){if(data78.length<2){var err168={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i32,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err168];}else {vErrors.push(err168);}errors++;}var len33=data78.length;for(var i33=0;i33<len33;i33++){var data79=data78[i33];if(!(typeof data79=='number'&&isFinite(data79))){var err169={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i32+'/'+i33,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/coordinates/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err169];}else {vErrors.push(err169);}errors++;}}}else {var err170={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i32,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err170];}else {vErrors.push(err170);}errors++;}}}else {var err171={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err171];}else {vErrors.push(err171);}errors++;}}if(data57.bbox!==undefined){var data80=data57.bbox;if(Array.isArray(data80)){if(data80.length<4){var err172={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err172];}else {vErrors.push(err172);}errors++;}var len34=data80.length;for(var i34=0;i34<len34;i34++){var data81=data80[i34];if(!(typeof data81=='number'&&isFinite(data81))){var err173={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox/'+i34,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err173];}else {vErrors.push(err173);}errors++;}}}else {var err174={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err174];}else {vErrors.push(err174);}errors++;}}}else {var err175={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err175];}else {vErrors.push(err175);}errors++;}var _valid2=_errs185===errors;if(_valid2&&valid63){valid63=false;passing2=[passing2,3];}else {if(_valid2){valid63=true;passing2=3;}var _errs199=errors;if(data57&&_typeof(data57)=='object'&&!Array.isArray(data57)){if(data57.type===undefined){var err176={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err176];}else {vErrors.push(err176);}errors++;}if(data57.coordinates===undefined){var err177={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err177];}else {vErrors.push(err177);}errors++;}if(data57.type!==undefined){var data82=data57.type;if(typeof data82!=='string'){var err178={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err178];}else {vErrors.push(err178);}errors++;}if(!(data82==='MultiLineString')){var err179={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[7].properties.geometries.items.oneOf[4].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err179];}else {vErrors.push(err179);}errors++;}}if(data57.coordinates!==undefined){var data83=data57.coordinates;if(Array.isArray(data83)){var len35=data83.length;for(var i35=0;i35<len35;i35++){var data84=data83[i35];if(Array.isArray(data84)){if(data84.length<2){var err180={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i35,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err180];}else {vErrors.push(err180);}errors++;}var len36=data84.length;for(var i36=0;i36<len36;i36++){var data85=data84[i36];if(Array.isArray(data85)){if(data85.length<2){var err181={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i35+'/'+i36,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/coordinates/items/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err181];}else {vErrors.push(err181);}errors++;}var len37=data85.length;for(var i37=0;i37<len37;i37++){var data86=data85[i37];if(!(typeof data86=='number'&&isFinite(data86))){var err182={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i35+'/'+i36+'/'+i37,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/coordinates/items/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err182];}else {vErrors.push(err182);}errors++;}}}else {var err183={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i35+'/'+i36,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/coordinates/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err183];}else {vErrors.push(err183);}errors++;}}}else {var err184={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i35,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err184];}else {vErrors.push(err184);}errors++;}}}else {var err185={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err185];}else {vErrors.push(err185);}errors++;}}if(data57.bbox!==undefined){var data87=data57.bbox;if(Array.isArray(data87)){if(data87.length<4){var err186={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err186];}else {vErrors.push(err186);}errors++;}var len38=data87.length;for(var i38=0;i38<len38;i38++){var data88=data87[i38];if(!(typeof data88=='number'&&isFinite(data88))){var err187={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox/'+i38,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err187];}else {vErrors.push(err187);}errors++;}}}else {var err188={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err188];}else {vErrors.push(err188);}errors++;}}}else {var err189={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err189];}else {vErrors.push(err189);}errors++;}var _valid2=_errs199===errors;if(_valid2&&valid63){valid63=false;passing2=[passing2,4];}else {if(_valid2){valid63=true;passing2=4;}var _errs215=errors;if(data57&&_typeof(data57)=='object'&&!Array.isArray(data57)){if(data57.type===undefined){var err190={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err190];}else {vErrors.push(err190);}errors++;}if(data57.coordinates===undefined){var err191={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err191];}else {vErrors.push(err191);}errors++;}if(data57.type!==undefined){var data89=data57.type;if(typeof data89!=='string'){var err192={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err192];}else {vErrors.push(err192);}errors++;}if(!(data89==='MultiPolygon')){var err193={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/type/enum',keyword:'enum',params:{allowedValues:schema15$1.properties.features.items.properties.geometry.oneOf[7].properties.geometries.items.oneOf[5].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err193];}else {vErrors.push(err193);}errors++;}}if(data57.coordinates!==undefined){var data90=data57.coordinates;if(Array.isArray(data90)){var len39=data90.length;for(var i39=0;i39<len39;i39++){var data91=data90[i39];if(Array.isArray(data91)){var len40=data91.length;for(var i40=0;i40<len40;i40++){var data92=data91[i40];if(Array.isArray(data92)){if(data92.length<4){var err194={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i39+'/'+i40,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/items/items/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err194];}else {vErrors.push(err194);}errors++;}var len41=data92.length;for(var i41=0;i41<len41;i41++){var data93=data92[i41];if(Array.isArray(data93)){if(data93.length<2){var err195={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i39+'/'+i40+'/'+i41,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/items/items/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err195];}else {vErrors.push(err195);}errors++;}var len42=data93.length;for(var i42=0;i42<len42;i42++){var data94=data93[i42];if(!(typeof data94=='number'&&isFinite(data94))){var err196={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i39+'/'+i40+'/'+i41+'/'+i42,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/items/items/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err196];}else {vErrors.push(err196);}errors++;}}}else {var err197={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i39+'/'+i40+'/'+i41,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/items/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err197];}else {vErrors.push(err197);}errors++;}}}else {var err198={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i39+'/'+i40,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err198];}else {vErrors.push(err198);}errors++;}}}else {var err199={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i39,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err199];}else {vErrors.push(err199);}errors++;}}}else {var err200={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err200];}else {vErrors.push(err200);}errors++;}}if(data57.bbox!==undefined){var data95=data57.bbox;if(Array.isArray(data95)){if(data95.length<4){var err201={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err201];}else {vErrors.push(err201);}errors++;}var len43=data95.length;for(var i43=0;i43<len43;i43++){var data96=data95[i43];if(!(typeof data96=='number'&&isFinite(data96))){var err202={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox/'+i43,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err202];}else {vErrors.push(err202);}errors++;}}}else {var err203={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err203];}else {vErrors.push(err203);}errors++;}}}else {var err204={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err204];}else {vErrors.push(err204);}errors++;}var _valid2=_errs215===errors;if(_valid2&&valid63){valid63=false;passing2=[passing2,5];}else {if(_valid2){valid63=true;passing2=5;}}}}}}if(!valid63){var err205={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf',keyword:'oneOf',params:{passingSchemas:passing2},message:'must match exactly one schema in oneOf'};if(vErrors===null){vErrors=[err205];}else {vErrors.push(err205);}errors++;}else {errors=_errs142;if(vErrors!==null){if(_errs142){vErrors.length=_errs142;}else {vErrors=null;}}}}}else {var err206={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err206];}else {vErrors.push(err206);}errors++;}}if(data16.bbox!==undefined){var data97=data16.bbox;if(Array.isArray(data97)){if(data97.length<4){var err207={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err207];}else {vErrors.push(err207);}errors++;}var len44=data97.length;for(var i44=0;i44<len44;i44++){var data98=data97[i44];if(!(typeof data98=='number'&&isFinite(data98))){var err208={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox/'+i44,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err208];}else {vErrors.push(err208);}errors++;}}}else {var err209={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err209];}else {vErrors.push(err209);}errors++;}}}else {var err210={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err210];}else {vErrors.push(err210);}errors++;}var _valid1=_errs135===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,7];}else {if(_valid1){valid13=true;passing1=7;}}}}}}}}if(!valid13){var err211={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf',keyword:'oneOf',params:{passingSchemas:passing1},message:'must match exactly one schema in oneOf'};if(vErrors===null){vErrors=[err211];}else {vErrors.push(err211);}errors++;}else {errors=_errs44;if(vErrors!==null){if(_errs44){vErrors.length=_errs44;}else {vErrors=null;}}}}if(data11.bbox!==undefined){var data99=data11.bbox;if(Array.isArray(data99)){if(data99.length<4){var err212={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err212];}else {vErrors.push(err212);}errors++;}var len45=data99.length;for(var i45=0;i45<len45;i45++){var data100=data99[i45];if(!(typeof data100=='number'&&isFinite(data100))){var err213={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/bbox/'+i45,schemaPath:'geojson.schema.json/properties/features/items/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err213];}else {vErrors.push(err213);}errors++;}}}else {var err214={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err214];}else {vErrors.push(err214);}errors++;}}}else {var err215={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1,schemaPath:'geojson.schema.json/properties/features/items/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err215];}else {vErrors.push(err215);}errors++;}}}else {var err216={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features',schemaPath:'geojson.schema.json/properties/features/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err216];}else {vErrors.push(err216);}errors++;}}if(data8.bbox!==undefined){var data101=data8.bbox;if(Array.isArray(data101)){if(data101.length<4){var err217={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/bbox',schemaPath:'geojson.schema.json/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err217];}else {vErrors.push(err217);}errors++;}var len46=data101.length;for(var i46=0;i46<len46;i46++){var data102=data101[i46];if(!(typeof data102=='number'&&isFinite(data102))){var err218={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/bbox/'+i46,schemaPath:'geojson.schema.json/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err218];}else {vErrors.push(err218);}errors++;}}}else {var err219={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/bbox',schemaPath:'geojson.schema.json/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err219];}else {vErrors.push(err219);}errors++;}}}else {var err220={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location',schemaPath:'geojson.schema.json/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err220];}else {vErrors.push(err220);}errors++;}}if(data6.location_indicator_atsr!==undefined){if(typeof data6.location_indicator_atsr!=='string'){var err221={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/location_indicator_atsr',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/location_indicator_atsr/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err221];}else {vErrors.push(err221);}errors++;}}if(data6.location_indicator_atsu!==undefined){if(typeof data6.location_indicator_atsu!=='string'){var err222={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/location_indicator_atsu',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/location_indicator_atsu/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err222];}else {vErrors.push(err222);}errors++;}}if(data6.max_hours_of_validity!==undefined){var data105=data6.max_hours_of_validity;if(!(typeof data105=='number'&&isFinite(data105))){var err223={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/max_hours_of_validity',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/max_hours_of_validity/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err223];}else {vErrors.push(err223);}errors++;}}if(data6.hours_before_validity!==undefined){var data106=data6.hours_before_validity;if(!(typeof data106=='number'&&isFinite(data106))){var err224={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/hours_before_validity',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/hours_before_validity/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err224];}else {vErrors.push(err224);}errors++;}}if(data6.movement_rounding_kt!==undefined){var data107=data6.movement_rounding_kt;if(!(typeof data107=='number'&&isFinite(data107))){var err225={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/movement_rounding_kt',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/movement_rounding_kt/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err225];}else {vErrors.push(err225);}errors++;}}if(data6.movement_rounding_kmh!==undefined){var data108=data6.movement_rounding_kmh;if(!(typeof data108=='number'&&isFinite(data108))){var err226={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/movement_rounding_kmh',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/movement_rounding_kmh/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err226];}else {vErrors.push(err226);}errors++;}}if(data6.level_min!==undefined){var data109=data6.level_min;if(data109&&_typeof(data109)=='object'&&!Array.isArray(data109)){for(var key3 in data109){var data110=data109[key3];if(!(typeof data110=='number'&&isFinite(data110))){var err227={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_min/'+key3.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_min/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err227];}else {vErrors.push(err227);}errors++;}}}else {var err228={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_min',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_min/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err228];}else {vErrors.push(err228);}errors++;}}if(data6.level_max!==undefined){var data111=data6.level_max;if(data111&&_typeof(data111)=='object'&&!Array.isArray(data111)){for(var key4 in data111){var data112=data111[key4];if(!(typeof data112=='number'&&isFinite(data112))){var err229={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_max/'+key4.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_max/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err229];}else {vErrors.push(err229);}errors++;}}}else {var err230={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_max',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_max/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err230];}else {vErrors.push(err230);}errors++;}}if(data6.level_rounding_FL!==undefined){var data113=data6.level_rounding_FL;if(!(typeof data113=='number'&&isFinite(data113))){var err231={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_rounding_FL',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_rounding_FL/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err231];}else {vErrors.push(err231);}errors++;}}if(data6.level_rounding_FT!==undefined){var data114=data6.level_rounding_FT;if(!(typeof data114=='number'&&isFinite(data114))){var err232={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_rounding_FT',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_rounding_FT/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err232];}else {vErrors.push(err232);}errors++;}}if(data6.level_rounding_M!==undefined){var data115=data6.level_rounding_M;if(!(typeof data115=='number'&&isFinite(data115))){var err233={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_rounding_M',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_rounding_M/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err233];}else {vErrors.push(err233);}errors++;}}if(data6.movement_min!==undefined){var data116=data6.movement_min;if(data116&&_typeof(data116)=='object'&&!Array.isArray(data116)){for(var key5 in data116){var data117=data116[key5];if(!(typeof data117=='number'&&isFinite(data117))){var err234={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/movement_min/'+key5.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/movement_min/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err234];}else {vErrors.push(err234);}errors++;}}}else {var err235={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/movement_min',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/movement_min/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err235];}else {vErrors.push(err235);}errors++;}}if(data6.movement_max!==undefined){var data118=data6.movement_max;if(data118&&_typeof(data118)=='object'&&!Array.isArray(data118)){for(var key6 in data118){var data119=data118[key6];if(!(typeof data119=='number'&&isFinite(data119))){var err236={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/movement_max/'+key6.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/movement_max/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err236];}else {vErrors.push(err236);}errors++;}}}else {var err237={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/movement_max',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/movement_max/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err237];}else {vErrors.push(err237);}errors++;}}if(data6.units!==undefined){var data120=data6.units;if(Array.isArray(data120)){if(data120.length<1){var err238={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/minItems',keyword:'minItems',params:{limit:1},message:'must NOT have fewer than 1 items'};if(vErrors===null){vErrors=[err238];}else {vErrors.push(err238);}errors++;}var len47=data120.length;for(var i47=0;i47<len47;i47++){var data121=data120[i47];if(data121&&_typeof(data121)=='object'&&!Array.isArray(data121)){if(data121.unit_type===undefined){var err239={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47,schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/required',keyword:'required',params:{missingProperty:'unit_type'},message:"must have required property '"+'unit_type'+"'"};if(vErrors===null){vErrors=[err239];}else {vErrors.push(err239);}errors++;}if(data121.allowed_units===undefined){var err240={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47,schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/required',keyword:'required',params:{missingProperty:'allowed_units'},message:"must have required property '"+'allowed_units'+"'"};if(vErrors===null){vErrors=[err240];}else {vErrors.push(err240);}errors++;}for(var key7 in data121){if(!(key7==='unit_type'||key7==='allowed_units')){var err241={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47,schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/additionalProperties',keyword:'additionalProperties',params:{additionalProperty:key7},message:'must NOT have additional properties'};if(vErrors===null){vErrors=[err241];}else {vErrors.push(err241);}errors++;}}if(data121.unit_type!==undefined){if(typeof data121.unit_type!=='string'){var err242={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47+'/unit_type',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/properties/unit_type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err242];}else {vErrors.push(err242);}errors++;}}if(data121.allowed_units!==undefined){var data123=data121.allowed_units;if(Array.isArray(data123)){if(data123.length<1){var err243={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47+'/allowed_units',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/properties/allowed_units/minItems',keyword:'minItems',params:{limit:1},message:'must NOT have fewer than 1 items'};if(vErrors===null){vErrors=[err243];}else {vErrors.push(err243);}errors++;}var len48=data123.length;for(var i48=0;i48<len48;i48++){if(typeof data123[i48]!=='string'){var err244={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47+'/allowed_units/'+i48,schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/properties/allowed_units/items/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err244];}else {vErrors.push(err244);}errors++;}}}else {var err245={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47+'/allowed_units',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/properties/allowed_units/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err245];}else {vErrors.push(err245);}errors++;}}}else {var err246={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47,schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err246];}else {vErrors.push(err246);}errors++;}}}else {var err247={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err247];}else {vErrors.push(err247);}errors++;}}if(data6.tc_max_hours_of_validity!==undefined){var data125=data6.tc_max_hours_of_validity;if(!(typeof data125=='number'&&isFinite(data125))){var err248={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/tc_max_hours_of_validity',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/tc_max_hours_of_validity/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err248];}else {vErrors.push(err248);}errors++;}}if(data6.tc_hours_before_validity!==undefined){var data126=data6.tc_hours_before_validity;if(!(typeof data126=='number'&&isFinite(data126))){var err249={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/tc_hours_before_validity',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/tc_hours_before_validity/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err249];}else {vErrors.push(err249);}errors++;}}if(data6.va_max_hours_of_validity!==undefined){var data127=data6.va_max_hours_of_validity;if(!(typeof data127=='number'&&isFinite(data127))){var err250={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/va_max_hours_of_validity',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/va_max_hours_of_validity/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err250];}else {vErrors.push(err250);}errors++;}}if(data6.va_hours_before_validity!==undefined){var data128=data6.va_hours_before_validity;if(!(typeof data128=='number'&&isFinite(data128))){var err251={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/va_hours_before_validity',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/va_hours_before_validity/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err251];}else {vErrors.push(err251);}errors++;}}if(data6.adjacent_firs!==undefined){var data129=data6.adjacent_firs;if(Array.isArray(data129)){if(data129.length<1){var err252={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/adjacent_firs',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/adjacent_firs/minItems',keyword:'minItems',params:{limit:1},message:'must NOT have fewer than 1 items'};if(vErrors===null){vErrors=[err252];}else {vErrors.push(err252);}errors++;}var len49=data129.length;for(var i49=0;i49<len49;i49++){if(typeof data129[i49]!=='string'){var err253={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/adjacent_firs/'+i49,schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/adjacent_firs/items/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err253];}else {vErrors.push(err253);}errors++;}}}else {var err254={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/adjacent_firs',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/adjacent_firs/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err254];}else {vErrors.push(err254);}errors++;}}if(data6.area_preset!==undefined){if(typeof data6.area_preset!=='string'){var err255={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/area_preset',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/area_preset/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err255];}else {vErrors.push(err255);}errors++;}}}else {var err256={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err256];}else {vErrors.push(err256);}errors++;}var valid4=_errs17===errors;if(!valid4){var err257={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge',keyword:'$merge',params:{},message:'must pass "$merge" keyword validation'};if(vErrors===null){vErrors=[err257];}else {vErrors.push(err257);}errors++;}}}}else {var err258={instancePath:instancePath+'/fir_areas',schemaPath:'#/properties/fir_areas/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err258];}else {vErrors.push(err258);}errors++;}}if(data.mapPreset!==undefined){var data132=data.mapPreset;if(data132&&_typeof(data132)=='object'&&!Array.isArray(data132)){if(data132.layers!==undefined){var data133=data132.layers;if(Array.isArray(data133)){var len50=data133.length;for(var i50=0;i50<len50;i50++){var data134=data133[i50];if(data134&&_typeof(data134)=='object'&&!Array.isArray(data134)){if(data134.id===undefined){var err259={instancePath:instancePath+'/mapPreset/layers/'+i50,schemaPath:'#/properties/mapPreset/properties/layers/items/required',keyword:'required',params:{missingProperty:'id'},message:"must have required property '"+'id'+"'"};if(vErrors===null){vErrors=[err259];}else {vErrors.push(err259);}errors++;}if(data134.name===undefined){var err260={instancePath:instancePath+'/mapPreset/layers/'+i50,schemaPath:'#/properties/mapPreset/properties/layers/items/required',keyword:'required',params:{missingProperty:'name'},message:"must have required property '"+'name'+"'"};if(vErrors===null){vErrors=[err260];}else {vErrors.push(err260);}errors++;}if(data134.layerType===undefined){var err261={instancePath:instancePath+'/mapPreset/layers/'+i50,schemaPath:'#/properties/mapPreset/properties/layers/items/required',keyword:'required',params:{missingProperty:'layerType'},message:"must have required property '"+'layerType'+"'"};if(vErrors===null){vErrors=[err261];}else {vErrors.push(err261);}errors++;}if(data134.id!==undefined){if(typeof data134.id!=='string'){var err262={instancePath:instancePath+'/mapPreset/layers/'+i50+'/id',schemaPath:'#/properties/mapPreset/properties/layers/items/properties/id/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err262];}else {vErrors.push(err262);}errors++;}}if(data134.name!==undefined){if(typeof data134.name!=='string'){var err263={instancePath:instancePath+'/mapPreset/layers/'+i50+'/name',schemaPath:'#/properties/mapPreset/properties/layers/items/properties/name/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err263];}else {vErrors.push(err263);}errors++;}}if(data134.layerType!==undefined){var data137=data134.layerType;if(typeof data137!=='string'){var err264={instancePath:instancePath+'/mapPreset/layers/'+i50+'/layerType',schemaPath:'#/properties/mapPreset/properties/layers/items/properties/layerType/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err264];}else {vErrors.push(err264);}errors++;}if(!(data137==='overLayer'||data137==='baseLayer'||data137==='mapLayer')){var err265={instancePath:instancePath+'/mapPreset/layers/'+i50+'/layerType',schemaPath:'#/properties/mapPreset/properties/layers/items/properties/layerType/enum',keyword:'enum',params:{allowedValues:schema13.properties.mapPreset.properties.layers.items.properties.layerType["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err265];}else {vErrors.push(err265);}errors++;}}}else {var err266={instancePath:instancePath+'/mapPreset/layers/'+i50,schemaPath:'#/properties/mapPreset/properties/layers/items/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err266];}else {vErrors.push(err266);}errors++;}}}else {var err267={instancePath:instancePath+'/mapPreset/layers',schemaPath:'#/properties/mapPreset/properties/layers/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err267];}else {vErrors.push(err267);}errors++;}}if(data132.proj!==undefined){var data138=data132.proj;if(data138&&_typeof(data138)=='object'&&!Array.isArray(data138)){if(data138.bbox===undefined){var err268={instancePath:instancePath+'/mapPreset/proj',schemaPath:'#/properties/mapPreset/properties/proj/required',keyword:'required',params:{missingProperty:'bbox'},message:"must have required property '"+'bbox'+"'"};if(vErrors===null){vErrors=[err268];}else {vErrors.push(err268);}errors++;}if(data138.srs===undefined){var err269={instancePath:instancePath+'/mapPreset/proj',schemaPath:'#/properties/mapPreset/properties/proj/required',keyword:'required',params:{missingProperty:'srs'},message:"must have required property '"+'srs'+"'"};if(vErrors===null){vErrors=[err269];}else {vErrors.push(err269);}errors++;}for(var key8 in data138){if(!(key8==='bbox'||key8==='srs')){var err270={instancePath:instancePath+'/mapPreset/proj',schemaPath:'#/properties/mapPreset/properties/proj/additionalProperties',keyword:'additionalProperties',params:{additionalProperty:key8},message:'must NOT have additional properties'};if(vErrors===null){vErrors=[err270];}else {vErrors.push(err270);}errors++;}}if(data138.bbox!==undefined){var data139=data138.bbox;if(data139&&_typeof(data139)=='object'&&!Array.isArray(data139)){if(data139.left===undefined){var err271={instancePath:instancePath+'/mapPreset/proj/bbox',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/required',keyword:'required',params:{missingProperty:'left'},message:"must have required property '"+'left'+"'"};if(vErrors===null){vErrors=[err271];}else {vErrors.push(err271);}errors++;}if(data139.right===undefined){var err272={instancePath:instancePath+'/mapPreset/proj/bbox',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/required',keyword:'required',params:{missingProperty:'right'},message:"must have required property '"+'right'+"'"};if(vErrors===null){vErrors=[err272];}else {vErrors.push(err272);}errors++;}if(data139.top===undefined){var err273={instancePath:instancePath+'/mapPreset/proj/bbox',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/required',keyword:'required',params:{missingProperty:'top'},message:"must have required property '"+'top'+"'"};if(vErrors===null){vErrors=[err273];}else {vErrors.push(err273);}errors++;}if(data139.bottom===undefined){var err274={instancePath:instancePath+'/mapPreset/proj/bbox',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/required',keyword:'required',params:{missingProperty:'bottom'},message:"must have required property '"+'bottom'+"'"};if(vErrors===null){vErrors=[err274];}else {vErrors.push(err274);}errors++;}for(var key9 in data139){if(!(key9==='left'||key9==='right'||key9==='top'||key9==='bottom')){var err275={instancePath:instancePath+'/mapPreset/proj/bbox',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/additionalProperties',keyword:'additionalProperties',params:{additionalProperty:key9},message:'must NOT have additional properties'};if(vErrors===null){vErrors=[err275];}else {vErrors.push(err275);}errors++;}}if(data139.left!==undefined){var data140=data139.left;if(!(typeof data140=='number'&&isFinite(data140))){var err276={instancePath:instancePath+'/mapPreset/proj/bbox/left',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/properties/left/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err276];}else {vErrors.push(err276);}errors++;}}if(data139.right!==undefined){var data141=data139.right;if(!(typeof data141=='number'&&isFinite(data141))){var err277={instancePath:instancePath+'/mapPreset/proj/bbox/right',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/properties/right/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err277];}else {vErrors.push(err277);}errors++;}}if(data139.top!==undefined){var data142=data139.top;if(!(typeof data142=='number'&&isFinite(data142))){var err278={instancePath:instancePath+'/mapPreset/proj/bbox/top',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/properties/top/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err278];}else {vErrors.push(err278);}errors++;}}if(data139.bottom!==undefined){var data143=data139.bottom;if(!(typeof data143=='number'&&isFinite(data143))){var err279={instancePath:instancePath+'/mapPreset/proj/bbox/bottom',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/properties/bottom/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err279];}else {vErrors.push(err279);}errors++;}}}else {var err280={instancePath:instancePath+'/mapPreset/proj/bbox',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err280];}else {vErrors.push(err280);}errors++;}}if(data138.srs!==undefined){if(typeof data138.srs!=='string'){var err281={instancePath:instancePath+'/mapPreset/proj/srs',schemaPath:'#/properties/mapPreset/properties/proj/properties/srs/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err281];}else {vErrors.push(err281);}errors++;}}}else {var err282={instancePath:instancePath+'/mapPreset/proj',schemaPath:'#/properties/mapPreset/properties/proj/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err282];}else {vErrors.push(err282);}errors++;}}}else {var err283={instancePath:instancePath+'/mapPreset',schemaPath:'#/properties/mapPreset/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err283];}else {vErrors.push(err283);}errors++;}}}else {var err284={instancePath:instancePath,schemaPath:'#/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err284];}else {vErrors.push(err284);}errors++;}validate14.errors=vErrors;return errors===0;}
7951
+
7952
+ var schema17={type:'object',title:'airmet config schema',properties:{location_indicator_mwo:{type:'string'},active_firs:{type:'array',items:{type:'string'},minItems:1},valid_from_delay_minutes:{type:'number'},default_validity_minutes:{type:'number'},fir_areas:{type:'object',patternProperties:{'':{type:'object',$merge:{source:{$ref:'firArea.schema.json'},"with":{properties:{cloud_level_min:{type:'object',additionalProperties:{type:'number'}},cloud_level_max:{type:'object',additionalProperties:{type:'number'}},cloud_lower_level_min:{type:'object',additionalProperties:{type:'number'}},cloud_lower_level_max:{type:'object',additionalProperties:{type:'number'}},cloud_level_rounding_ft:{type:'number'},cloud_level_rounding_m_below:{type:'number'},cloud_level_rounding_m_above:{type:'number'},wind_direction_rounding:{type:'number'},wind_speed_max:{type:'object',additionalProperties:{type:'number'}},wind_speed_min:{type:'object',additionalProperties:{type:'number'}},visibility_max:{type:'number'},visibility_min:{type:'number'},visibility_rounding_below:{type:'number'},visibility_rounding_above:{type:'number'}},required:['fir_name','fir_location','location_indicator_atsr','location_indicator_atsu','max_hours_of_validity','hours_before_validity','units']}}}},required:[],minProperties:1},mapPreset:{type:'object',properties:{layers:{type:'array',items:{type:'object',properties:{id:{type:'string'},name:{type:'string'},layerType:{type:'string',"enum":['overLayer','baseLayer','mapLayer']}},additionalProperties:true,required:['id','name','layerType']}},proj:{type:'object',properties:{bbox:{type:'object',properties:{left:{type:'number'},right:{type:'number'},top:{type:'number'},bottom:{type:'number'}},additionalProperties:false,required:['left','right','top','bottom']},srs:{type:'string'}},additionalProperties:false,required:['bbox','srs']}}}},required:['location_indicator_mwo','fir_areas','active_firs','valid_from_delay_minutes','default_validity_minutes'],additionalProperties:false};var schema15={$schema:'http://json-schema.org/draft-07/schema#',$id:'geojson.schema.json',title:'GeoJSON FeatureCollection',type:'object',required:['type','features'],properties:{type:{type:'string',"enum":['FeatureCollection']},features:{type:'array',items:{title:'GeoJSON Feature',type:'object',required:['type','properties','geometry'],properties:{type:{type:'string',"enum":['Feature']},id:{oneOf:[{type:'number'},{type:'string'}]},properties:{type:'object',properties:{selectionType:{type:'string'}}},geometry:{oneOf:[{type:'null'},{title:'GeoJSON Point',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['Point']},coordinates:{type:'array',minItems:2,items:{type:'number'}},bbox:{type:'array',minItems:4,items:{}}}},{title:'GeoJSON LineString',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['LineString']},coordinates:{type:'array',minItems:2,items:{type:'array',minItems:2,items:{type:'number'}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON Polygon',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['Polygon']},coordinates:{type:'array',items:{type:'array',minItems:4,items:{type:'array',minItems:2,items:{type:'number'}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON MultiPoint',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['MultiPoint']},coordinates:{type:'array',items:{type:'array',minItems:2,items:{type:'number'}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON MultiLineString',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['MultiLineString']},coordinates:{type:'array',items:{type:'array',minItems:2,items:{type:'array',minItems:2,items:{type:'number'}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON MultiPolygon',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['MultiPolygon']},coordinates:{type:'array',items:{type:'array',items:{type:'array',minItems:4,items:{type:'array',minItems:2,items:{type:'number'}}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON GeometryCollection',type:'object',required:['type','geometries'],properties:{type:{type:'string',"enum":['GeometryCollection']},geometries:{type:'array',items:{oneOf:[{title:'GeoJSON Point',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['Point']},coordinates:{type:'array',minItems:2,items:{type:'number'}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON LineString',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['LineString']},coordinates:{type:'array',minItems:2,items:{type:'array',minItems:2,items:{type:'number'}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON Polygon',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['Polygon']},coordinates:{type:'array',items:{type:'array',minItems:4,items:{type:'array',minItems:2,items:{type:'number'}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON MultiPoint',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['MultiPoint']},coordinates:{type:'array',items:{type:'array',minItems:2,items:{type:'number'}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON MultiLineString',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['MultiLineString']},coordinates:{type:'array',items:{type:'array',minItems:2,items:{type:'array',minItems:2,items:{type:'number'}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}},{title:'GeoJSON MultiPolygon',type:'object',required:['type','coordinates'],properties:{type:{type:'string',"enum":['MultiPolygon']},coordinates:{type:'array',items:{type:'array',items:{type:'array',minItems:4,items:{type:'array',minItems:2,items:{type:'number'}}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}}]}},bbox:{type:'array',minItems:4,items:{type:'number'}}}}]},bbox:{type:'array',minItems:4,items:{type:'number'}}}}},bbox:{type:'array',minItems:4,items:{type:'number'}}}};var pattern0=new RegExp('','u');var keyword1={$id:'firArea.schema.json',title:'fir config schema',description:'all properties defined in FIRConfig type',type:'object',properties:{fir_name:{type:'string'},fir_location:{$ref:'geojson.schema.json'},location_indicator_atsr:{type:'string'},location_indicator_atsu:{type:'string'},max_hours_of_validity:{type:'number'},hours_before_validity:{type:'number'},movement_rounding_kt:{type:'number'},movement_rounding_kmh:{type:'number'},level_min:{type:'object',additionalProperties:{type:'number'}},level_max:{type:'object',additionalProperties:{type:'number'}},level_rounding_FL:{type:'number'},level_rounding_FT:{type:'number'},level_rounding_M:{type:'number'},movement_min:{type:'object',additionalProperties:{type:'number'}},movement_max:{type:'object',additionalProperties:{type:'number'}},units:{type:'array',items:{type:'object',properties:{unit_type:{type:'string'},allowed_units:{type:'array',items:{type:'string'},minItems:1}},required:['unit_type','allowed_units'],additionalProperties:false},minItems:1},cloud_level_min:{type:'object',additionalProperties:{type:'number'}},cloud_level_max:{type:'object',additionalProperties:{type:'number'}},cloud_lower_level_min:{type:'object',additionalProperties:{type:'number'}},cloud_lower_level_max:{type:'object',additionalProperties:{type:'number'}},cloud_level_rounding_ft:{type:'number'},cloud_level_rounding_m_below:{type:'number'},cloud_level_rounding_m_above:{type:'number'},wind_direction_rounding:{type:'number'},wind_speed_max:{type:'object',additionalProperties:{type:'number'}},wind_speed_min:{type:'object',additionalProperties:{type:'number'}},visibility_max:{type:'number'},visibility_min:{type:'number'},visibility_rounding_below:{type:'number'},visibility_rounding_above:{type:'number'}},required:['fir_name','fir_location','location_indicator_atsr','location_indicator_atsu','max_hours_of_validity','hours_before_validity','units'],additionalProperties:false};var func2=Object.prototype.hasOwnProperty;function validate16(data){var _ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},_ref$instancePath=_ref.instancePath,instancePath=_ref$instancePath===void 0?'':_ref$instancePath;_ref.parentData;_ref.parentDataProperty;_ref.rootData;var vErrors=null;var errors=0;if(data&&_typeof(data)=='object'&&!Array.isArray(data)){if(data.location_indicator_mwo===undefined){var err0={instancePath:instancePath,schemaPath:'#/required',keyword:'required',params:{missingProperty:'location_indicator_mwo'},message:"must have required property '"+'location_indicator_mwo'+"'"};if(vErrors===null){vErrors=[err0];}else {vErrors.push(err0);}errors++;}if(data.fir_areas===undefined){var err1={instancePath:instancePath,schemaPath:'#/required',keyword:'required',params:{missingProperty:'fir_areas'},message:"must have required property '"+'fir_areas'+"'"};if(vErrors===null){vErrors=[err1];}else {vErrors.push(err1);}errors++;}if(data.active_firs===undefined){var err2={instancePath:instancePath,schemaPath:'#/required',keyword:'required',params:{missingProperty:'active_firs'},message:"must have required property '"+'active_firs'+"'"};if(vErrors===null){vErrors=[err2];}else {vErrors.push(err2);}errors++;}if(data.valid_from_delay_minutes===undefined){var err3={instancePath:instancePath,schemaPath:'#/required',keyword:'required',params:{missingProperty:'valid_from_delay_minutes'},message:"must have required property '"+'valid_from_delay_minutes'+"'"};if(vErrors===null){vErrors=[err3];}else {vErrors.push(err3);}errors++;}if(data.default_validity_minutes===undefined){var err4={instancePath:instancePath,schemaPath:'#/required',keyword:'required',params:{missingProperty:'default_validity_minutes'},message:"must have required property '"+'default_validity_minutes'+"'"};if(vErrors===null){vErrors=[err4];}else {vErrors.push(err4);}errors++;}for(var key0 in data){if(!(key0==='location_indicator_mwo'||key0==='active_firs'||key0==='valid_from_delay_minutes'||key0==='default_validity_minutes'||key0==='fir_areas'||key0==='mapPreset')){var err5={instancePath:instancePath,schemaPath:'#/additionalProperties',keyword:'additionalProperties',params:{additionalProperty:key0},message:'must NOT have additional properties'};if(vErrors===null){vErrors=[err5];}else {vErrors.push(err5);}errors++;}}if(data.location_indicator_mwo!==undefined){if(typeof data.location_indicator_mwo!=='string'){var err6={instancePath:instancePath+'/location_indicator_mwo',schemaPath:'#/properties/location_indicator_mwo/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err6];}else {vErrors.push(err6);}errors++;}}if(data.active_firs!==undefined){var data1=data.active_firs;if(Array.isArray(data1)){if(data1.length<1){var err7={instancePath:instancePath+'/active_firs',schemaPath:'#/properties/active_firs/minItems',keyword:'minItems',params:{limit:1},message:'must NOT have fewer than 1 items'};if(vErrors===null){vErrors=[err7];}else {vErrors.push(err7);}errors++;}var len0=data1.length;for(var i0=0;i0<len0;i0++){if(typeof data1[i0]!=='string'){var err8={instancePath:instancePath+'/active_firs/'+i0,schemaPath:'#/properties/active_firs/items/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err8];}else {vErrors.push(err8);}errors++;}}}else {var err9={instancePath:instancePath+'/active_firs',schemaPath:'#/properties/active_firs/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err9];}else {vErrors.push(err9);}errors++;}}if(data.valid_from_delay_minutes!==undefined){var data3=data.valid_from_delay_minutes;if(!(typeof data3=='number'&&isFinite(data3))){var err10={instancePath:instancePath+'/valid_from_delay_minutes',schemaPath:'#/properties/valid_from_delay_minutes/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err10];}else {vErrors.push(err10);}errors++;}}if(data.default_validity_minutes!==undefined){var data4=data.default_validity_minutes;if(!(typeof data4=='number'&&isFinite(data4))){var err11={instancePath:instancePath+'/default_validity_minutes',schemaPath:'#/properties/default_validity_minutes/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err11];}else {vErrors.push(err11);}errors++;}}if(data.fir_areas!==undefined){var data5=data.fir_areas;if(data5&&_typeof(data5)=='object'&&!Array.isArray(data5)){if(Object.keys(data5).length<1){var err12={instancePath:instancePath+'/fir_areas',schemaPath:'#/properties/fir_areas/minProperties',keyword:'minProperties',params:{limit:1},message:'must NOT have fewer than 1 properties'};if(vErrors===null){vErrors=[err12];}else {vErrors.push(err12);}errors++;}for(var key1 in data5){if(pattern0.test(key1)){var data6=data5[key1];if(!(data6&&_typeof(data6)=='object'&&!Array.isArray(data6))){var err13={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err13];}else {vErrors.push(err13);}errors++;}var _errs17=errors;if(data6&&_typeof(data6)=='object'&&!Array.isArray(data6)){if(data6.fir_name===undefined){var err14={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'fir_name'},message:"must have required property '"+'fir_name'+"'"};if(vErrors===null){vErrors=[err14];}else {vErrors.push(err14);}errors++;}if(data6.fir_location===undefined){var err15={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'fir_location'},message:"must have required property '"+'fir_location'+"'"};if(vErrors===null){vErrors=[err15];}else {vErrors.push(err15);}errors++;}if(data6.location_indicator_atsr===undefined){var err16={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'location_indicator_atsr'},message:"must have required property '"+'location_indicator_atsr'+"'"};if(vErrors===null){vErrors=[err16];}else {vErrors.push(err16);}errors++;}if(data6.location_indicator_atsu===undefined){var err17={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'location_indicator_atsu'},message:"must have required property '"+'location_indicator_atsu'+"'"};if(vErrors===null){vErrors=[err17];}else {vErrors.push(err17);}errors++;}if(data6.max_hours_of_validity===undefined){var err18={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'max_hours_of_validity'},message:"must have required property '"+'max_hours_of_validity'+"'"};if(vErrors===null){vErrors=[err18];}else {vErrors.push(err18);}errors++;}if(data6.hours_before_validity===undefined){var err19={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'hours_before_validity'},message:"must have required property '"+'hours_before_validity'+"'"};if(vErrors===null){vErrors=[err19];}else {vErrors.push(err19);}errors++;}if(data6.units===undefined){var err20={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/required',keyword:'required',params:{missingProperty:'units'},message:"must have required property '"+'units'+"'"};if(vErrors===null){vErrors=[err20];}else {vErrors.push(err20);}errors++;}for(var key2 in data6){if(!func2.call(keyword1.properties,key2)){var err21={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/additionalProperties',keyword:'additionalProperties',params:{additionalProperty:key2},message:'must NOT have additional properties'};if(vErrors===null){vErrors=[err21];}else {vErrors.push(err21);}errors++;}}if(data6.fir_name!==undefined){if(typeof data6.fir_name!=='string'){var err22={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_name',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/fir_name/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err22];}else {vErrors.push(err22);}errors++;}}if(data6.fir_location!==undefined){var data8=data6.fir_location;if(data8&&_typeof(data8)=='object'&&!Array.isArray(data8)){if(data8.type===undefined){var err23={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location',schemaPath:'geojson.schema.json/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err23];}else {vErrors.push(err23);}errors++;}if(data8.features===undefined){var err24={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location',schemaPath:'geojson.schema.json/required',keyword:'required',params:{missingProperty:'features'},message:"must have required property '"+'features'+"'"};if(vErrors===null){vErrors=[err24];}else {vErrors.push(err24);}errors++;}if(data8.type!==undefined){var data9=data8.type;if(typeof data9!=='string'){var err25={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/type',schemaPath:'geojson.schema.json/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err25];}else {vErrors.push(err25);}errors++;}if(!(data9==='FeatureCollection')){var err26={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/type',schemaPath:'geojson.schema.json/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err26];}else {vErrors.push(err26);}errors++;}}if(data8.features!==undefined){var data10=data8.features;if(Array.isArray(data10)){var len1=data10.length;for(var i1=0;i1<len1;i1++){var data11=data10[i1];if(data11&&_typeof(data11)=='object'&&!Array.isArray(data11)){if(data11.type===undefined){var err27={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1,schemaPath:'geojson.schema.json/properties/features/items/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err27];}else {vErrors.push(err27);}errors++;}if(data11.properties===undefined){var err28={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1,schemaPath:'geojson.schema.json/properties/features/items/required',keyword:'required',params:{missingProperty:'properties'},message:"must have required property '"+'properties'+"'"};if(vErrors===null){vErrors=[err28];}else {vErrors.push(err28);}errors++;}if(data11.geometry===undefined){var err29={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1,schemaPath:'geojson.schema.json/properties/features/items/required',keyword:'required',params:{missingProperty:'geometry'},message:"must have required property '"+'geometry'+"'"};if(vErrors===null){vErrors=[err29];}else {vErrors.push(err29);}errors++;}if(data11.type!==undefined){var data12=data11.type;if(typeof data12!=='string'){var err30={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err30];}else {vErrors.push(err30);}errors++;}if(!(data12==='Feature')){var err31={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err31];}else {vErrors.push(err31);}errors++;}}if(data11.id!==undefined){var data13=data11.id;var _errs34=errors;var valid11=false;var passing0=null;var _errs35=errors;if(!(typeof data13=='number'&&isFinite(data13))){var err32={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/id',schemaPath:'geojson.schema.json/properties/features/items/properties/id/oneOf/0/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err32];}else {vErrors.push(err32);}errors++;}var _valid0=_errs35===errors;if(_valid0){valid11=true;passing0=0;}var _errs37=errors;if(typeof data13!=='string'){var err33={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/id',schemaPath:'geojson.schema.json/properties/features/items/properties/id/oneOf/1/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err33];}else {vErrors.push(err33);}errors++;}var _valid0=_errs37===errors;if(_valid0&&valid11){valid11=false;passing0=[passing0,1];}else {if(_valid0){valid11=true;passing0=1;}}if(!valid11){var err34={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/id',schemaPath:'geojson.schema.json/properties/features/items/properties/id/oneOf',keyword:'oneOf',params:{passingSchemas:passing0},message:'must match exactly one schema in oneOf'};if(vErrors===null){vErrors=[err34];}else {vErrors.push(err34);}errors++;}else {errors=_errs34;if(vErrors!==null){if(_errs34){vErrors.length=_errs34;}else {vErrors=null;}}}}if(data11.properties!==undefined){var data14=data11.properties;if(data14&&_typeof(data14)=='object'&&!Array.isArray(data14)){if(data14.selectionType!==undefined){if(typeof data14.selectionType!=='string'){var err35={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/properties/selectionType',schemaPath:'geojson.schema.json/properties/features/items/properties/properties/properties/selectionType/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err35];}else {vErrors.push(err35);}errors++;}}}else {var err36={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/properties',schemaPath:'geojson.schema.json/properties/features/items/properties/properties/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err36];}else {vErrors.push(err36);}errors++;}}if(data11.geometry!==undefined){var data16=data11.geometry;var _errs44=errors;var valid13=false;var passing1=null;var _errs45=errors;if(data16!==null){var err37={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/0/type',keyword:'type',params:{type:'null'},message:'must be null'};if(vErrors===null){vErrors=[err37];}else {vErrors.push(err37);}errors++;}var _valid1=_errs45===errors;if(_valid1){valid13=true;passing1=0;}var _errs47=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err38={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err38];}else {vErrors.push(err38);}errors++;}if(data16.coordinates===undefined){var err39={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err39];}else {vErrors.push(err39);}errors++;}if(data16.type!==undefined){var data17=data16.type;if(typeof data17!=='string'){var err40={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err40];}else {vErrors.push(err40);}errors++;}if(!(data17==='Point')){var err41={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[1].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err41];}else {vErrors.push(err41);}errors++;}}if(data16.coordinates!==undefined){var data18=data16.coordinates;if(Array.isArray(data18)){if(data18.length<2){var err42={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/coordinates/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err42];}else {vErrors.push(err42);}errors++;}var len2=data18.length;for(var i2=0;i2<len2;i2++){var data19=data18[i2];if(!(typeof data19=='number'&&isFinite(data19))){var err43={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i2,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/coordinates/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err43];}else {vErrors.push(err43);}errors++;}}}else {var err44={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err44];}else {vErrors.push(err44);}errors++;}}if(data16.bbox!==undefined){var data20=data16.bbox;if(Array.isArray(data20)){if(data20.length<4){var err45={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err45];}else {vErrors.push(err45);}errors++;}}else {var err46={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err46];}else {vErrors.push(err46);}errors++;}}}else {var err47={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/1/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err47];}else {vErrors.push(err47);}errors++;}var _valid1=_errs47===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,1];}else {if(_valid1){valid13=true;passing1=1;}var _errs57=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err48={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err48];}else {vErrors.push(err48);}errors++;}if(data16.coordinates===undefined){var err49={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err49];}else {vErrors.push(err49);}errors++;}if(data16.type!==undefined){var data21=data16.type;if(typeof data21!=='string'){var err50={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err50];}else {vErrors.push(err50);}errors++;}if(!(data21==='LineString')){var err51={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[2].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err51];}else {vErrors.push(err51);}errors++;}}if(data16.coordinates!==undefined){var data22=data16.coordinates;if(Array.isArray(data22)){if(data22.length<2){var err52={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/coordinates/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err52];}else {vErrors.push(err52);}errors++;}var len3=data22.length;for(var i3=0;i3<len3;i3++){var data23=data22[i3];if(Array.isArray(data23)){if(data23.length<2){var err53={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i3,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err53];}else {vErrors.push(err53);}errors++;}var len4=data23.length;for(var i4=0;i4<len4;i4++){var data24=data23[i4];if(!(typeof data24=='number'&&isFinite(data24))){var err54={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i3+'/'+i4,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/coordinates/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err54];}else {vErrors.push(err54);}errors++;}}}else {var err55={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i3,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err55];}else {vErrors.push(err55);}errors++;}}}else {var err56={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err56];}else {vErrors.push(err56);}errors++;}}if(data16.bbox!==undefined){var data25=data16.bbox;if(Array.isArray(data25)){if(data25.length<4){var err57={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err57];}else {vErrors.push(err57);}errors++;}var len5=data25.length;for(var i5=0;i5<len5;i5++){var data26=data25[i5];if(!(typeof data26=='number'&&isFinite(data26))){var err58={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox/'+i5,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err58];}else {vErrors.push(err58);}errors++;}}}else {var err59={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err59];}else {vErrors.push(err59);}errors++;}}}else {var err60={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/2/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err60];}else {vErrors.push(err60);}errors++;}var _valid1=_errs57===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,2];}else {if(_valid1){valid13=true;passing1=2;}var _errs71=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err61={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err61];}else {vErrors.push(err61);}errors++;}if(data16.coordinates===undefined){var err62={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err62];}else {vErrors.push(err62);}errors++;}if(data16.type!==undefined){var data27=data16.type;if(typeof data27!=='string'){var err63={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err63];}else {vErrors.push(err63);}errors++;}if(!(data27==='Polygon')){var err64={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[3].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err64];}else {vErrors.push(err64);}errors++;}}if(data16.coordinates!==undefined){var data28=data16.coordinates;if(Array.isArray(data28)){var len6=data28.length;for(var i6=0;i6<len6;i6++){var data29=data28[i6];if(Array.isArray(data29)){if(data29.length<4){var err65={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i6,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err65];}else {vErrors.push(err65);}errors++;}var len7=data29.length;for(var i7=0;i7<len7;i7++){var data30=data29[i7];if(Array.isArray(data30)){if(data30.length<2){var err66={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i6+'/'+i7,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/coordinates/items/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err66];}else {vErrors.push(err66);}errors++;}var len8=data30.length;for(var i8=0;i8<len8;i8++){var data31=data30[i8];if(!(typeof data31=='number'&&isFinite(data31))){var err67={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i6+'/'+i7+'/'+i8,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/coordinates/items/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err67];}else {vErrors.push(err67);}errors++;}}}else {var err68={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i6+'/'+i7,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/coordinates/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err68];}else {vErrors.push(err68);}errors++;}}}else {var err69={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i6,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err69];}else {vErrors.push(err69);}errors++;}}}else {var err70={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err70];}else {vErrors.push(err70);}errors++;}}if(data16.bbox!==undefined){var data32=data16.bbox;if(Array.isArray(data32)){if(data32.length<4){var err71={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err71];}else {vErrors.push(err71);}errors++;}var len9=data32.length;for(var i9=0;i9<len9;i9++){var data33=data32[i9];if(!(typeof data33=='number'&&isFinite(data33))){var err72={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox/'+i9,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err72];}else {vErrors.push(err72);}errors++;}}}else {var err73={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err73];}else {vErrors.push(err73);}errors++;}}}else {var err74={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/3/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err74];}else {vErrors.push(err74);}errors++;}var _valid1=_errs71===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,3];}else {if(_valid1){valid13=true;passing1=3;}var _errs87=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err75={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err75];}else {vErrors.push(err75);}errors++;}if(data16.coordinates===undefined){var err76={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err76];}else {vErrors.push(err76);}errors++;}if(data16.type!==undefined){var data34=data16.type;if(typeof data34!=='string'){var err77={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err77];}else {vErrors.push(err77);}errors++;}if(!(data34==='MultiPoint')){var err78={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[4].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err78];}else {vErrors.push(err78);}errors++;}}if(data16.coordinates!==undefined){var data35=data16.coordinates;if(Array.isArray(data35)){var len10=data35.length;for(var i10=0;i10<len10;i10++){var data36=data35[i10];if(Array.isArray(data36)){if(data36.length<2){var err79={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i10,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err79];}else {vErrors.push(err79);}errors++;}var len11=data36.length;for(var i11=0;i11<len11;i11++){var data37=data36[i11];if(!(typeof data37=='number'&&isFinite(data37))){var err80={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i10+'/'+i11,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/coordinates/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err80];}else {vErrors.push(err80);}errors++;}}}else {var err81={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i10,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err81];}else {vErrors.push(err81);}errors++;}}}else {var err82={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err82];}else {vErrors.push(err82);}errors++;}}if(data16.bbox!==undefined){var data38=data16.bbox;if(Array.isArray(data38)){if(data38.length<4){var err83={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err83];}else {vErrors.push(err83);}errors++;}var len12=data38.length;for(var i12=0;i12<len12;i12++){var data39=data38[i12];if(!(typeof data39=='number'&&isFinite(data39))){var err84={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox/'+i12,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err84];}else {vErrors.push(err84);}errors++;}}}else {var err85={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err85];}else {vErrors.push(err85);}errors++;}}}else {var err86={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/4/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err86];}else {vErrors.push(err86);}errors++;}var _valid1=_errs87===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,4];}else {if(_valid1){valid13=true;passing1=4;}var _errs101=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err87={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err87];}else {vErrors.push(err87);}errors++;}if(data16.coordinates===undefined){var err88={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err88];}else {vErrors.push(err88);}errors++;}if(data16.type!==undefined){var data40=data16.type;if(typeof data40!=='string'){var err89={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err89];}else {vErrors.push(err89);}errors++;}if(!(data40==='MultiLineString')){var err90={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[5].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err90];}else {vErrors.push(err90);}errors++;}}if(data16.coordinates!==undefined){var data41=data16.coordinates;if(Array.isArray(data41)){var len13=data41.length;for(var i13=0;i13<len13;i13++){var data42=data41[i13];if(Array.isArray(data42)){if(data42.length<2){var err91={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i13,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err91];}else {vErrors.push(err91);}errors++;}var len14=data42.length;for(var i14=0;i14<len14;i14++){var data43=data42[i14];if(Array.isArray(data43)){if(data43.length<2){var err92={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i13+'/'+i14,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/coordinates/items/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err92];}else {vErrors.push(err92);}errors++;}var len15=data43.length;for(var i15=0;i15<len15;i15++){var data44=data43[i15];if(!(typeof data44=='number'&&isFinite(data44))){var err93={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i13+'/'+i14+'/'+i15,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/coordinates/items/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err93];}else {vErrors.push(err93);}errors++;}}}else {var err94={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i13+'/'+i14,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/coordinates/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err94];}else {vErrors.push(err94);}errors++;}}}else {var err95={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i13,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err95];}else {vErrors.push(err95);}errors++;}}}else {var err96={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err96];}else {vErrors.push(err96);}errors++;}}if(data16.bbox!==undefined){var data45=data16.bbox;if(Array.isArray(data45)){if(data45.length<4){var err97={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err97];}else {vErrors.push(err97);}errors++;}var len16=data45.length;for(var i16=0;i16<len16;i16++){var data46=data45[i16];if(!(typeof data46=='number'&&isFinite(data46))){var err98={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox/'+i16,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err98];}else {vErrors.push(err98);}errors++;}}}else {var err99={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err99];}else {vErrors.push(err99);}errors++;}}}else {var err100={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/5/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err100];}else {vErrors.push(err100);}errors++;}var _valid1=_errs101===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,5];}else {if(_valid1){valid13=true;passing1=5;}var _errs117=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err101={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err101];}else {vErrors.push(err101);}errors++;}if(data16.coordinates===undefined){var err102={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err102];}else {vErrors.push(err102);}errors++;}if(data16.type!==undefined){var data47=data16.type;if(typeof data47!=='string'){var err103={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err103];}else {vErrors.push(err103);}errors++;}if(!(data47==='MultiPolygon')){var err104={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[6].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err104];}else {vErrors.push(err104);}errors++;}}if(data16.coordinates!==undefined){var data48=data16.coordinates;if(Array.isArray(data48)){var len17=data48.length;for(var i17=0;i17<len17;i17++){var data49=data48[i17];if(Array.isArray(data49)){var len18=data49.length;for(var i18=0;i18<len18;i18++){var data50=data49[i18];if(Array.isArray(data50)){if(data50.length<4){var err105={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i17+'/'+i18,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/items/items/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err105];}else {vErrors.push(err105);}errors++;}var len19=data50.length;for(var i19=0;i19<len19;i19++){var data51=data50[i19];if(Array.isArray(data51)){if(data51.length<2){var err106={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i17+'/'+i18+'/'+i19,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/items/items/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err106];}else {vErrors.push(err106);}errors++;}var len20=data51.length;for(var i20=0;i20<len20;i20++){var data52=data51[i20];if(!(typeof data52=='number'&&isFinite(data52))){var err107={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i17+'/'+i18+'/'+i19+'/'+i20,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/items/items/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err107];}else {vErrors.push(err107);}errors++;}}}else {var err108={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i17+'/'+i18+'/'+i19,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/items/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err108];}else {vErrors.push(err108);}errors++;}}}else {var err109={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i17+'/'+i18,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err109];}else {vErrors.push(err109);}errors++;}}}else {var err110={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates/'+i17,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err110];}else {vErrors.push(err110);}errors++;}}}else {var err111={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err111];}else {vErrors.push(err111);}errors++;}}if(data16.bbox!==undefined){var data53=data16.bbox;if(Array.isArray(data53)){if(data53.length<4){var err112={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err112];}else {vErrors.push(err112);}errors++;}var len21=data53.length;for(var i21=0;i21<len21;i21++){var data54=data53[i21];if(!(typeof data54=='number'&&isFinite(data54))){var err113={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox/'+i21,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err113];}else {vErrors.push(err113);}errors++;}}}else {var err114={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err114];}else {vErrors.push(err114);}errors++;}}}else {var err115={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/6/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err115];}else {vErrors.push(err115);}errors++;}var _valid1=_errs117===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,6];}else {if(_valid1){valid13=true;passing1=6;}var _errs135=errors;if(data16&&_typeof(data16)=='object'&&!Array.isArray(data16)){if(data16.type===undefined){var err116={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err116];}else {vErrors.push(err116);}errors++;}if(data16.geometries===undefined){var err117={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/required',keyword:'required',params:{missingProperty:'geometries'},message:"must have required property '"+'geometries'+"'"};if(vErrors===null){vErrors=[err117];}else {vErrors.push(err117);}errors++;}if(data16.type!==undefined){var data55=data16.type;if(typeof data55!=='string'){var err118={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err118];}else {vErrors.push(err118);}errors++;}if(!(data55==='GeometryCollection')){var err119={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[7].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err119];}else {vErrors.push(err119);}errors++;}}if(data16.geometries!==undefined){var data56=data16.geometries;if(Array.isArray(data56)){var len22=data56.length;for(var i22=0;i22<len22;i22++){var data57=data56[i22];var _errs142=errors;var valid63=false;var passing2=null;var _errs143=errors;if(data57&&_typeof(data57)=='object'&&!Array.isArray(data57)){if(data57.type===undefined){var err120={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err120];}else {vErrors.push(err120);}errors++;}if(data57.coordinates===undefined){var err121={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err121];}else {vErrors.push(err121);}errors++;}if(data57.type!==undefined){var data58=data57.type;if(typeof data58!=='string'){var err122={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err122];}else {vErrors.push(err122);}errors++;}if(!(data58==='Point')){var err123={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[7].properties.geometries.items.oneOf[0].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err123];}else {vErrors.push(err123);}errors++;}}if(data57.coordinates!==undefined){var data59=data57.coordinates;if(Array.isArray(data59)){if(data59.length<2){var err124={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/coordinates/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err124];}else {vErrors.push(err124);}errors++;}var len23=data59.length;for(var i23=0;i23<len23;i23++){var data60=data59[i23];if(!(typeof data60=='number'&&isFinite(data60))){var err125={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i23,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/coordinates/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err125];}else {vErrors.push(err125);}errors++;}}}else {var err126={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err126];}else {vErrors.push(err126);}errors++;}}if(data57.bbox!==undefined){var data61=data57.bbox;if(Array.isArray(data61)){if(data61.length<4){var err127={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err127];}else {vErrors.push(err127);}errors++;}var len24=data61.length;for(var i24=0;i24<len24;i24++){var data62=data61[i24];if(!(typeof data62=='number'&&isFinite(data62))){var err128={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox/'+i24,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err128];}else {vErrors.push(err128);}errors++;}}}else {var err129={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err129];}else {vErrors.push(err129);}errors++;}}}else {var err130={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/0/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err130];}else {vErrors.push(err130);}errors++;}var _valid2=_errs143===errors;if(_valid2){valid63=true;passing2=0;}var _errs155=errors;if(data57&&_typeof(data57)=='object'&&!Array.isArray(data57)){if(data57.type===undefined){var err131={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err131];}else {vErrors.push(err131);}errors++;}if(data57.coordinates===undefined){var err132={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err132];}else {vErrors.push(err132);}errors++;}if(data57.type!==undefined){var data63=data57.type;if(typeof data63!=='string'){var err133={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err133];}else {vErrors.push(err133);}errors++;}if(!(data63==='LineString')){var err134={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[7].properties.geometries.items.oneOf[1].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err134];}else {vErrors.push(err134);}errors++;}}if(data57.coordinates!==undefined){var data64=data57.coordinates;if(Array.isArray(data64)){if(data64.length<2){var err135={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/coordinates/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err135];}else {vErrors.push(err135);}errors++;}var len25=data64.length;for(var i25=0;i25<len25;i25++){var data65=data64[i25];if(Array.isArray(data65)){if(data65.length<2){var err136={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i25,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err136];}else {vErrors.push(err136);}errors++;}var len26=data65.length;for(var i26=0;i26<len26;i26++){var data66=data65[i26];if(!(typeof data66=='number'&&isFinite(data66))){var err137={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i25+'/'+i26,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/coordinates/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err137];}else {vErrors.push(err137);}errors++;}}}else {var err138={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i25,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err138];}else {vErrors.push(err138);}errors++;}}}else {var err139={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err139];}else {vErrors.push(err139);}errors++;}}if(data57.bbox!==undefined){var data67=data57.bbox;if(Array.isArray(data67)){if(data67.length<4){var err140={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err140];}else {vErrors.push(err140);}errors++;}var len27=data67.length;for(var i27=0;i27<len27;i27++){var data68=data67[i27];if(!(typeof data68=='number'&&isFinite(data68))){var err141={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox/'+i27,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err141];}else {vErrors.push(err141);}errors++;}}}else {var err142={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err142];}else {vErrors.push(err142);}errors++;}}}else {var err143={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/1/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err143];}else {vErrors.push(err143);}errors++;}var _valid2=_errs155===errors;if(_valid2&&valid63){valid63=false;passing2=[passing2,1];}else {if(_valid2){valid63=true;passing2=1;}var _errs169=errors;if(data57&&_typeof(data57)=='object'&&!Array.isArray(data57)){if(data57.type===undefined){var err144={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err144];}else {vErrors.push(err144);}errors++;}if(data57.coordinates===undefined){var err145={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err145];}else {vErrors.push(err145);}errors++;}if(data57.type!==undefined){var data69=data57.type;if(typeof data69!=='string'){var err146={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err146];}else {vErrors.push(err146);}errors++;}if(!(data69==='Polygon')){var err147={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[7].properties.geometries.items.oneOf[2].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err147];}else {vErrors.push(err147);}errors++;}}if(data57.coordinates!==undefined){var data70=data57.coordinates;if(Array.isArray(data70)){var len28=data70.length;for(var i28=0;i28<len28;i28++){var data71=data70[i28];if(Array.isArray(data71)){if(data71.length<4){var err148={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i28,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err148];}else {vErrors.push(err148);}errors++;}var len29=data71.length;for(var i29=0;i29<len29;i29++){var data72=data71[i29];if(Array.isArray(data72)){if(data72.length<2){var err149={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i28+'/'+i29,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/coordinates/items/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err149];}else {vErrors.push(err149);}errors++;}var len30=data72.length;for(var i30=0;i30<len30;i30++){var data73=data72[i30];if(!(typeof data73=='number'&&isFinite(data73))){var err150={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i28+'/'+i29+'/'+i30,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/coordinates/items/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err150];}else {vErrors.push(err150);}errors++;}}}else {var err151={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i28+'/'+i29,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/coordinates/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err151];}else {vErrors.push(err151);}errors++;}}}else {var err152={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i28,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err152];}else {vErrors.push(err152);}errors++;}}}else {var err153={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err153];}else {vErrors.push(err153);}errors++;}}if(data57.bbox!==undefined){var data74=data57.bbox;if(Array.isArray(data74)){if(data74.length<4){var err154={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err154];}else {vErrors.push(err154);}errors++;}var len31=data74.length;for(var i31=0;i31<len31;i31++){var data75=data74[i31];if(!(typeof data75=='number'&&isFinite(data75))){var err155={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox/'+i31,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err155];}else {vErrors.push(err155);}errors++;}}}else {var err156={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err156];}else {vErrors.push(err156);}errors++;}}}else {var err157={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/2/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err157];}else {vErrors.push(err157);}errors++;}var _valid2=_errs169===errors;if(_valid2&&valid63){valid63=false;passing2=[passing2,2];}else {if(_valid2){valid63=true;passing2=2;}var _errs185=errors;if(data57&&_typeof(data57)=='object'&&!Array.isArray(data57)){if(data57.type===undefined){var err158={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err158];}else {vErrors.push(err158);}errors++;}if(data57.coordinates===undefined){var err159={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err159];}else {vErrors.push(err159);}errors++;}if(data57.type!==undefined){var data76=data57.type;if(typeof data76!=='string'){var err160={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err160];}else {vErrors.push(err160);}errors++;}if(!(data76==='MultiPoint')){var err161={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[7].properties.geometries.items.oneOf[3].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err161];}else {vErrors.push(err161);}errors++;}}if(data57.coordinates!==undefined){var data77=data57.coordinates;if(Array.isArray(data77)){var len32=data77.length;for(var i32=0;i32<len32;i32++){var data78=data77[i32];if(Array.isArray(data78)){if(data78.length<2){var err162={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i32,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err162];}else {vErrors.push(err162);}errors++;}var len33=data78.length;for(var i33=0;i33<len33;i33++){var data79=data78[i33];if(!(typeof data79=='number'&&isFinite(data79))){var err163={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i32+'/'+i33,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/coordinates/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err163];}else {vErrors.push(err163);}errors++;}}}else {var err164={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i32,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err164];}else {vErrors.push(err164);}errors++;}}}else {var err165={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err165];}else {vErrors.push(err165);}errors++;}}if(data57.bbox!==undefined){var data80=data57.bbox;if(Array.isArray(data80)){if(data80.length<4){var err166={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err166];}else {vErrors.push(err166);}errors++;}var len34=data80.length;for(var i34=0;i34<len34;i34++){var data81=data80[i34];if(!(typeof data81=='number'&&isFinite(data81))){var err167={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox/'+i34,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err167];}else {vErrors.push(err167);}errors++;}}}else {var err168={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err168];}else {vErrors.push(err168);}errors++;}}}else {var err169={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/3/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err169];}else {vErrors.push(err169);}errors++;}var _valid2=_errs185===errors;if(_valid2&&valid63){valid63=false;passing2=[passing2,3];}else {if(_valid2){valid63=true;passing2=3;}var _errs199=errors;if(data57&&_typeof(data57)=='object'&&!Array.isArray(data57)){if(data57.type===undefined){var err170={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err170];}else {vErrors.push(err170);}errors++;}if(data57.coordinates===undefined){var err171={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err171];}else {vErrors.push(err171);}errors++;}if(data57.type!==undefined){var data82=data57.type;if(typeof data82!=='string'){var err172={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err172];}else {vErrors.push(err172);}errors++;}if(!(data82==='MultiLineString')){var err173={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[7].properties.geometries.items.oneOf[4].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err173];}else {vErrors.push(err173);}errors++;}}if(data57.coordinates!==undefined){var data83=data57.coordinates;if(Array.isArray(data83)){var len35=data83.length;for(var i35=0;i35<len35;i35++){var data84=data83[i35];if(Array.isArray(data84)){if(data84.length<2){var err174={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i35,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/coordinates/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err174];}else {vErrors.push(err174);}errors++;}var len36=data84.length;for(var i36=0;i36<len36;i36++){var data85=data84[i36];if(Array.isArray(data85)){if(data85.length<2){var err175={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i35+'/'+i36,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/coordinates/items/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err175];}else {vErrors.push(err175);}errors++;}var len37=data85.length;for(var i37=0;i37<len37;i37++){var data86=data85[i37];if(!(typeof data86=='number'&&isFinite(data86))){var err176={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i35+'/'+i36+'/'+i37,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/coordinates/items/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err176];}else {vErrors.push(err176);}errors++;}}}else {var err177={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i35+'/'+i36,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/coordinates/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err177];}else {vErrors.push(err177);}errors++;}}}else {var err178={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i35,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err178];}else {vErrors.push(err178);}errors++;}}}else {var err179={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err179];}else {vErrors.push(err179);}errors++;}}if(data57.bbox!==undefined){var data87=data57.bbox;if(Array.isArray(data87)){if(data87.length<4){var err180={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err180];}else {vErrors.push(err180);}errors++;}var len38=data87.length;for(var i38=0;i38<len38;i38++){var data88=data87[i38];if(!(typeof data88=='number'&&isFinite(data88))){var err181={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox/'+i38,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err181];}else {vErrors.push(err181);}errors++;}}}else {var err182={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err182];}else {vErrors.push(err182);}errors++;}}}else {var err183={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/4/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err183];}else {vErrors.push(err183);}errors++;}var _valid2=_errs199===errors;if(_valid2&&valid63){valid63=false;passing2=[passing2,4];}else {if(_valid2){valid63=true;passing2=4;}var _errs215=errors;if(data57&&_typeof(data57)=='object'&&!Array.isArray(data57)){if(data57.type===undefined){var err184={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/required',keyword:'required',params:{missingProperty:'type'},message:"must have required property '"+'type'+"'"};if(vErrors===null){vErrors=[err184];}else {vErrors.push(err184);}errors++;}if(data57.coordinates===undefined){var err185={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/required',keyword:'required',params:{missingProperty:'coordinates'},message:"must have required property '"+'coordinates'+"'"};if(vErrors===null){vErrors=[err185];}else {vErrors.push(err185);}errors++;}if(data57.type!==undefined){var data89=data57.type;if(typeof data89!=='string'){var err186={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err186];}else {vErrors.push(err186);}errors++;}if(!(data89==='MultiPolygon')){var err187={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/type',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/type/enum',keyword:'enum',params:{allowedValues:schema15.properties.features.items.properties.geometry.oneOf[7].properties.geometries.items.oneOf[5].properties.type["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err187];}else {vErrors.push(err187);}errors++;}}if(data57.coordinates!==undefined){var data90=data57.coordinates;if(Array.isArray(data90)){var len39=data90.length;for(var i39=0;i39<len39;i39++){var data91=data90[i39];if(Array.isArray(data91)){var len40=data91.length;for(var i40=0;i40<len40;i40++){var data92=data91[i40];if(Array.isArray(data92)){if(data92.length<4){var err188={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i39+'/'+i40,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/items/items/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err188];}else {vErrors.push(err188);}errors++;}var len41=data92.length;for(var i41=0;i41<len41;i41++){var data93=data92[i41];if(Array.isArray(data93)){if(data93.length<2){var err189={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i39+'/'+i40+'/'+i41,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/items/items/items/minItems',keyword:'minItems',params:{limit:2},message:'must NOT have fewer than 2 items'};if(vErrors===null){vErrors=[err189];}else {vErrors.push(err189);}errors++;}var len42=data93.length;for(var i42=0;i42<len42;i42++){var data94=data93[i42];if(!(typeof data94=='number'&&isFinite(data94))){var err190={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i39+'/'+i40+'/'+i41+'/'+i42,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/items/items/items/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err190];}else {vErrors.push(err190);}errors++;}}}else {var err191={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i39+'/'+i40+'/'+i41,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/items/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err191];}else {vErrors.push(err191);}errors++;}}}else {var err192={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i39+'/'+i40,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/items/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err192];}else {vErrors.push(err192);}errors++;}}}else {var err193={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates/'+i39,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/items/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err193];}else {vErrors.push(err193);}errors++;}}}else {var err194={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/coordinates',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/coordinates/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err194];}else {vErrors.push(err194);}errors++;}}if(data57.bbox!==undefined){var data95=data57.bbox;if(Array.isArray(data95)){if(data95.length<4){var err195={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err195];}else {vErrors.push(err195);}errors++;}var len43=data95.length;for(var i43=0;i43<len43;i43++){var data96=data95[i43];if(!(typeof data96=='number'&&isFinite(data96))){var err196={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox/'+i43,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err196];}else {vErrors.push(err196);}errors++;}}}else {var err197={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err197];}else {vErrors.push(err197);}errors++;}}}else {var err198={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf/5/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err198];}else {vErrors.push(err198);}errors++;}var _valid2=_errs215===errors;if(_valid2&&valid63){valid63=false;passing2=[passing2,5];}else {if(_valid2){valid63=true;passing2=5;}}}}}}if(!valid63){var err199={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries/'+i22,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/items/oneOf',keyword:'oneOf',params:{passingSchemas:passing2},message:'must match exactly one schema in oneOf'};if(vErrors===null){vErrors=[err199];}else {vErrors.push(err199);}errors++;}else {errors=_errs142;if(vErrors!==null){if(_errs142){vErrors.length=_errs142;}else {vErrors=null;}}}}}else {var err200={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/geometries',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/geometries/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err200];}else {vErrors.push(err200);}errors++;}}if(data16.bbox!==undefined){var data97=data16.bbox;if(Array.isArray(data97)){if(data97.length<4){var err201={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err201];}else {vErrors.push(err201);}errors++;}var len44=data97.length;for(var i44=0;i44<len44;i44++){var data98=data97[i44];if(!(typeof data98=='number'&&isFinite(data98))){var err202={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox/'+i44,schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err202];}else {vErrors.push(err202);}errors++;}}}else {var err203={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err203];}else {vErrors.push(err203);}errors++;}}}else {var err204={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf/7/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err204];}else {vErrors.push(err204);}errors++;}var _valid1=_errs135===errors;if(_valid1&&valid13){valid13=false;passing1=[passing1,7];}else {if(_valid1){valid13=true;passing1=7;}}}}}}}}if(!valid13){var err205={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/geometry',schemaPath:'geojson.schema.json/properties/features/items/properties/geometry/oneOf',keyword:'oneOf',params:{passingSchemas:passing1},message:'must match exactly one schema in oneOf'};if(vErrors===null){vErrors=[err205];}else {vErrors.push(err205);}errors++;}else {errors=_errs44;if(vErrors!==null){if(_errs44){vErrors.length=_errs44;}else {vErrors=null;}}}}if(data11.bbox!==undefined){var data99=data11.bbox;if(Array.isArray(data99)){if(data99.length<4){var err206={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err206];}else {vErrors.push(err206);}errors++;}var len45=data99.length;for(var i45=0;i45<len45;i45++){var data100=data99[i45];if(!(typeof data100=='number'&&isFinite(data100))){var err207={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/bbox/'+i45,schemaPath:'geojson.schema.json/properties/features/items/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err207];}else {vErrors.push(err207);}errors++;}}}else {var err208={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1+'/bbox',schemaPath:'geojson.schema.json/properties/features/items/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err208];}else {vErrors.push(err208);}errors++;}}}else {var err209={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features/'+i1,schemaPath:'geojson.schema.json/properties/features/items/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err209];}else {vErrors.push(err209);}errors++;}}}else {var err210={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/features',schemaPath:'geojson.schema.json/properties/features/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err210];}else {vErrors.push(err210);}errors++;}}if(data8.bbox!==undefined){var data101=data8.bbox;if(Array.isArray(data101)){if(data101.length<4){var err211={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/bbox',schemaPath:'geojson.schema.json/properties/bbox/minItems',keyword:'minItems',params:{limit:4},message:'must NOT have fewer than 4 items'};if(vErrors===null){vErrors=[err211];}else {vErrors.push(err211);}errors++;}var len46=data101.length;for(var i46=0;i46<len46;i46++){var data102=data101[i46];if(!(typeof data102=='number'&&isFinite(data102))){var err212={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/bbox/'+i46,schemaPath:'geojson.schema.json/properties/bbox/items/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err212];}else {vErrors.push(err212);}errors++;}}}else {var err213={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location/bbox',schemaPath:'geojson.schema.json/properties/bbox/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err213];}else {vErrors.push(err213);}errors++;}}}else {var err214={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/fir_location',schemaPath:'geojson.schema.json/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err214];}else {vErrors.push(err214);}errors++;}}if(data6.location_indicator_atsr!==undefined){if(typeof data6.location_indicator_atsr!=='string'){var err215={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/location_indicator_atsr',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/location_indicator_atsr/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err215];}else {vErrors.push(err215);}errors++;}}if(data6.location_indicator_atsu!==undefined){if(typeof data6.location_indicator_atsu!=='string'){var err216={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/location_indicator_atsu',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/location_indicator_atsu/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err216];}else {vErrors.push(err216);}errors++;}}if(data6.max_hours_of_validity!==undefined){var data105=data6.max_hours_of_validity;if(!(typeof data105=='number'&&isFinite(data105))){var err217={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/max_hours_of_validity',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/max_hours_of_validity/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err217];}else {vErrors.push(err217);}errors++;}}if(data6.hours_before_validity!==undefined){var data106=data6.hours_before_validity;if(!(typeof data106=='number'&&isFinite(data106))){var err218={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/hours_before_validity',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/hours_before_validity/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err218];}else {vErrors.push(err218);}errors++;}}if(data6.movement_rounding_kt!==undefined){var data107=data6.movement_rounding_kt;if(!(typeof data107=='number'&&isFinite(data107))){var err219={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/movement_rounding_kt',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/movement_rounding_kt/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err219];}else {vErrors.push(err219);}errors++;}}if(data6.movement_rounding_kmh!==undefined){var data108=data6.movement_rounding_kmh;if(!(typeof data108=='number'&&isFinite(data108))){var err220={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/movement_rounding_kmh',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/movement_rounding_kmh/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err220];}else {vErrors.push(err220);}errors++;}}if(data6.level_min!==undefined){var data109=data6.level_min;if(data109&&_typeof(data109)=='object'&&!Array.isArray(data109)){for(var key3 in data109){var data110=data109[key3];if(!(typeof data110=='number'&&isFinite(data110))){var err221={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_min/'+key3.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_min/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err221];}else {vErrors.push(err221);}errors++;}}}else {var err222={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_min',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_min/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err222];}else {vErrors.push(err222);}errors++;}}if(data6.level_max!==undefined){var data111=data6.level_max;if(data111&&_typeof(data111)=='object'&&!Array.isArray(data111)){for(var key4 in data111){var data112=data111[key4];if(!(typeof data112=='number'&&isFinite(data112))){var err223={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_max/'+key4.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_max/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err223];}else {vErrors.push(err223);}errors++;}}}else {var err224={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_max',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_max/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err224];}else {vErrors.push(err224);}errors++;}}if(data6.level_rounding_FL!==undefined){var data113=data6.level_rounding_FL;if(!(typeof data113=='number'&&isFinite(data113))){var err225={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_rounding_FL',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_rounding_FL/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err225];}else {vErrors.push(err225);}errors++;}}if(data6.level_rounding_FT!==undefined){var data114=data6.level_rounding_FT;if(!(typeof data114=='number'&&isFinite(data114))){var err226={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_rounding_FT',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_rounding_FT/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err226];}else {vErrors.push(err226);}errors++;}}if(data6.level_rounding_M!==undefined){var data115=data6.level_rounding_M;if(!(typeof data115=='number'&&isFinite(data115))){var err227={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/level_rounding_M',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/level_rounding_M/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err227];}else {vErrors.push(err227);}errors++;}}if(data6.movement_min!==undefined){var data116=data6.movement_min;if(data116&&_typeof(data116)=='object'&&!Array.isArray(data116)){for(var key5 in data116){var data117=data116[key5];if(!(typeof data117=='number'&&isFinite(data117))){var err228={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/movement_min/'+key5.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/movement_min/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err228];}else {vErrors.push(err228);}errors++;}}}else {var err229={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/movement_min',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/movement_min/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err229];}else {vErrors.push(err229);}errors++;}}if(data6.movement_max!==undefined){var data118=data6.movement_max;if(data118&&_typeof(data118)=='object'&&!Array.isArray(data118)){for(var key6 in data118){var data119=data118[key6];if(!(typeof data119=='number'&&isFinite(data119))){var err230={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/movement_max/'+key6.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/movement_max/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err230];}else {vErrors.push(err230);}errors++;}}}else {var err231={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/movement_max',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/movement_max/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err231];}else {vErrors.push(err231);}errors++;}}if(data6.units!==undefined){var data120=data6.units;if(Array.isArray(data120)){if(data120.length<1){var err232={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/minItems',keyword:'minItems',params:{limit:1},message:'must NOT have fewer than 1 items'};if(vErrors===null){vErrors=[err232];}else {vErrors.push(err232);}errors++;}var len47=data120.length;for(var i47=0;i47<len47;i47++){var data121=data120[i47];if(data121&&_typeof(data121)=='object'&&!Array.isArray(data121)){if(data121.unit_type===undefined){var err233={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47,schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/required',keyword:'required',params:{missingProperty:'unit_type'},message:"must have required property '"+'unit_type'+"'"};if(vErrors===null){vErrors=[err233];}else {vErrors.push(err233);}errors++;}if(data121.allowed_units===undefined){var err234={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47,schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/required',keyword:'required',params:{missingProperty:'allowed_units'},message:"must have required property '"+'allowed_units'+"'"};if(vErrors===null){vErrors=[err234];}else {vErrors.push(err234);}errors++;}for(var key7 in data121){if(!(key7==='unit_type'||key7==='allowed_units')){var err235={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47,schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/additionalProperties',keyword:'additionalProperties',params:{additionalProperty:key7},message:'must NOT have additional properties'};if(vErrors===null){vErrors=[err235];}else {vErrors.push(err235);}errors++;}}if(data121.unit_type!==undefined){if(typeof data121.unit_type!=='string'){var err236={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47+'/unit_type',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/properties/unit_type/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err236];}else {vErrors.push(err236);}errors++;}}if(data121.allowed_units!==undefined){var data123=data121.allowed_units;if(Array.isArray(data123)){if(data123.length<1){var err237={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47+'/allowed_units',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/properties/allowed_units/minItems',keyword:'minItems',params:{limit:1},message:'must NOT have fewer than 1 items'};if(vErrors===null){vErrors=[err237];}else {vErrors.push(err237);}errors++;}var len48=data123.length;for(var i48=0;i48<len48;i48++){if(typeof data123[i48]!=='string'){var err238={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47+'/allowed_units/'+i48,schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/properties/allowed_units/items/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err238];}else {vErrors.push(err238);}errors++;}}}else {var err239={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47+'/allowed_units',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/properties/allowed_units/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err239];}else {vErrors.push(err239);}errors++;}}}else {var err240={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units/'+i47,schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/items/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err240];}else {vErrors.push(err240);}errors++;}}}else {var err241={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/units',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/units/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err241];}else {vErrors.push(err241);}errors++;}}if(data6.cloud_level_min!==undefined){var data125=data6.cloud_level_min;if(data125&&_typeof(data125)=='object'&&!Array.isArray(data125)){for(var key8 in data125){var data126=data125[key8];if(!(typeof data126=='number'&&isFinite(data126))){var err242={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/cloud_level_min/'+key8.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/cloud_level_min/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err242];}else {vErrors.push(err242);}errors++;}}}else {var err243={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/cloud_level_min',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/cloud_level_min/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err243];}else {vErrors.push(err243);}errors++;}}if(data6.cloud_level_max!==undefined){var data127=data6.cloud_level_max;if(data127&&_typeof(data127)=='object'&&!Array.isArray(data127)){for(var key9 in data127){var data128=data127[key9];if(!(typeof data128=='number'&&isFinite(data128))){var err244={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/cloud_level_max/'+key9.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/cloud_level_max/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err244];}else {vErrors.push(err244);}errors++;}}}else {var err245={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/cloud_level_max',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/cloud_level_max/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err245];}else {vErrors.push(err245);}errors++;}}if(data6.cloud_lower_level_min!==undefined){var data129=data6.cloud_lower_level_min;if(data129&&_typeof(data129)=='object'&&!Array.isArray(data129)){for(var key10 in data129){var data130=data129[key10];if(!(typeof data130=='number'&&isFinite(data130))){var err246={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/cloud_lower_level_min/'+key10.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/cloud_lower_level_min/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err246];}else {vErrors.push(err246);}errors++;}}}else {var err247={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/cloud_lower_level_min',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/cloud_lower_level_min/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err247];}else {vErrors.push(err247);}errors++;}}if(data6.cloud_lower_level_max!==undefined){var data131=data6.cloud_lower_level_max;if(data131&&_typeof(data131)=='object'&&!Array.isArray(data131)){for(var key11 in data131){var data132=data131[key11];if(!(typeof data132=='number'&&isFinite(data132))){var err248={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/cloud_lower_level_max/'+key11.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/cloud_lower_level_max/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err248];}else {vErrors.push(err248);}errors++;}}}else {var err249={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/cloud_lower_level_max',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/cloud_lower_level_max/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err249];}else {vErrors.push(err249);}errors++;}}if(data6.cloud_level_rounding_ft!==undefined){var data133=data6.cloud_level_rounding_ft;if(!(typeof data133=='number'&&isFinite(data133))){var err250={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/cloud_level_rounding_ft',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/cloud_level_rounding_ft/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err250];}else {vErrors.push(err250);}errors++;}}if(data6.cloud_level_rounding_m_below!==undefined){var data134=data6.cloud_level_rounding_m_below;if(!(typeof data134=='number'&&isFinite(data134))){var err251={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/cloud_level_rounding_m_below',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/cloud_level_rounding_m_below/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err251];}else {vErrors.push(err251);}errors++;}}if(data6.cloud_level_rounding_m_above!==undefined){var data135=data6.cloud_level_rounding_m_above;if(!(typeof data135=='number'&&isFinite(data135))){var err252={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/cloud_level_rounding_m_above',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/cloud_level_rounding_m_above/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err252];}else {vErrors.push(err252);}errors++;}}if(data6.wind_direction_rounding!==undefined){var data136=data6.wind_direction_rounding;if(!(typeof data136=='number'&&isFinite(data136))){var err253={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/wind_direction_rounding',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/wind_direction_rounding/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err253];}else {vErrors.push(err253);}errors++;}}if(data6.wind_speed_max!==undefined){var data137=data6.wind_speed_max;if(data137&&_typeof(data137)=='object'&&!Array.isArray(data137)){for(var key12 in data137){var data138=data137[key12];if(!(typeof data138=='number'&&isFinite(data138))){var err254={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/wind_speed_max/'+key12.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/wind_speed_max/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err254];}else {vErrors.push(err254);}errors++;}}}else {var err255={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/wind_speed_max',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/wind_speed_max/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err255];}else {vErrors.push(err255);}errors++;}}if(data6.wind_speed_min!==undefined){var data139=data6.wind_speed_min;if(data139&&_typeof(data139)=='object'&&!Array.isArray(data139)){for(var key13 in data139){var data140=data139[key13];if(!(typeof data140=='number'&&isFinite(data140))){var err256={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/wind_speed_min/'+key13.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/wind_speed_min/additionalProperties/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err256];}else {vErrors.push(err256);}errors++;}}}else {var err257={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/wind_speed_min',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/wind_speed_min/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err257];}else {vErrors.push(err257);}errors++;}}if(data6.visibility_max!==undefined){var data141=data6.visibility_max;if(!(typeof data141=='number'&&isFinite(data141))){var err258={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/visibility_max',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/visibility_max/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err258];}else {vErrors.push(err258);}errors++;}}if(data6.visibility_min!==undefined){var data142=data6.visibility_min;if(!(typeof data142=='number'&&isFinite(data142))){var err259={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/visibility_min',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/visibility_min/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err259];}else {vErrors.push(err259);}errors++;}}if(data6.visibility_rounding_below!==undefined){var data143=data6.visibility_rounding_below;if(!(typeof data143=='number'&&isFinite(data143))){var err260={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/visibility_rounding_below',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/visibility_rounding_below/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err260];}else {vErrors.push(err260);}errors++;}}if(data6.visibility_rounding_above!==undefined){var data144=data6.visibility_rounding_above;if(!(typeof data144=='number'&&isFinite(data144))){var err261={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1')+'/visibility_rounding_above',schemaPath:'#/properties/fir_areas/patternProperties//$merge/properties/visibility_rounding_above/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err261];}else {vErrors.push(err261);}errors++;}}}else {var err262={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err262];}else {vErrors.push(err262);}errors++;}var valid4=_errs17===errors;if(!valid4){var err263={instancePath:instancePath+'/fir_areas/'+key1.replace(/~/g,'~0').replace(/\//g,'~1'),schemaPath:'#/properties/fir_areas/patternProperties//$merge',keyword:'$merge',params:{},message:'must pass "$merge" keyword validation'};if(vErrors===null){vErrors=[err263];}else {vErrors.push(err263);}errors++;}}}}else {var err264={instancePath:instancePath+'/fir_areas',schemaPath:'#/properties/fir_areas/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err264];}else {vErrors.push(err264);}errors++;}}if(data.mapPreset!==undefined){var data145=data.mapPreset;if(data145&&_typeof(data145)=='object'&&!Array.isArray(data145)){if(data145.layers!==undefined){var data146=data145.layers;if(Array.isArray(data146)){var len49=data146.length;for(var i49=0;i49<len49;i49++){var data147=data146[i49];if(data147&&_typeof(data147)=='object'&&!Array.isArray(data147)){if(data147.id===undefined){var err265={instancePath:instancePath+'/mapPreset/layers/'+i49,schemaPath:'#/properties/mapPreset/properties/layers/items/required',keyword:'required',params:{missingProperty:'id'},message:"must have required property '"+'id'+"'"};if(vErrors===null){vErrors=[err265];}else {vErrors.push(err265);}errors++;}if(data147.name===undefined){var err266={instancePath:instancePath+'/mapPreset/layers/'+i49,schemaPath:'#/properties/mapPreset/properties/layers/items/required',keyword:'required',params:{missingProperty:'name'},message:"must have required property '"+'name'+"'"};if(vErrors===null){vErrors=[err266];}else {vErrors.push(err266);}errors++;}if(data147.layerType===undefined){var err267={instancePath:instancePath+'/mapPreset/layers/'+i49,schemaPath:'#/properties/mapPreset/properties/layers/items/required',keyword:'required',params:{missingProperty:'layerType'},message:"must have required property '"+'layerType'+"'"};if(vErrors===null){vErrors=[err267];}else {vErrors.push(err267);}errors++;}if(data147.id!==undefined){if(typeof data147.id!=='string'){var err268={instancePath:instancePath+'/mapPreset/layers/'+i49+'/id',schemaPath:'#/properties/mapPreset/properties/layers/items/properties/id/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err268];}else {vErrors.push(err268);}errors++;}}if(data147.name!==undefined){if(typeof data147.name!=='string'){var err269={instancePath:instancePath+'/mapPreset/layers/'+i49+'/name',schemaPath:'#/properties/mapPreset/properties/layers/items/properties/name/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err269];}else {vErrors.push(err269);}errors++;}}if(data147.layerType!==undefined){var data150=data147.layerType;if(typeof data150!=='string'){var err270={instancePath:instancePath+'/mapPreset/layers/'+i49+'/layerType',schemaPath:'#/properties/mapPreset/properties/layers/items/properties/layerType/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err270];}else {vErrors.push(err270);}errors++;}if(!(data150==='overLayer'||data150==='baseLayer'||data150==='mapLayer')){var err271={instancePath:instancePath+'/mapPreset/layers/'+i49+'/layerType',schemaPath:'#/properties/mapPreset/properties/layers/items/properties/layerType/enum',keyword:'enum',params:{allowedValues:schema17.properties.mapPreset.properties.layers.items.properties.layerType["enum"]},message:'must be equal to one of the allowed values'};if(vErrors===null){vErrors=[err271];}else {vErrors.push(err271);}errors++;}}}else {var err272={instancePath:instancePath+'/mapPreset/layers/'+i49,schemaPath:'#/properties/mapPreset/properties/layers/items/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err272];}else {vErrors.push(err272);}errors++;}}}else {var err273={instancePath:instancePath+'/mapPreset/layers',schemaPath:'#/properties/mapPreset/properties/layers/type',keyword:'type',params:{type:'array'},message:'must be array'};if(vErrors===null){vErrors=[err273];}else {vErrors.push(err273);}errors++;}}if(data145.proj!==undefined){var data151=data145.proj;if(data151&&_typeof(data151)=='object'&&!Array.isArray(data151)){if(data151.bbox===undefined){var err274={instancePath:instancePath+'/mapPreset/proj',schemaPath:'#/properties/mapPreset/properties/proj/required',keyword:'required',params:{missingProperty:'bbox'},message:"must have required property '"+'bbox'+"'"};if(vErrors===null){vErrors=[err274];}else {vErrors.push(err274);}errors++;}if(data151.srs===undefined){var err275={instancePath:instancePath+'/mapPreset/proj',schemaPath:'#/properties/mapPreset/properties/proj/required',keyword:'required',params:{missingProperty:'srs'},message:"must have required property '"+'srs'+"'"};if(vErrors===null){vErrors=[err275];}else {vErrors.push(err275);}errors++;}for(var key14 in data151){if(!(key14==='bbox'||key14==='srs')){var err276={instancePath:instancePath+'/mapPreset/proj',schemaPath:'#/properties/mapPreset/properties/proj/additionalProperties',keyword:'additionalProperties',params:{additionalProperty:key14},message:'must NOT have additional properties'};if(vErrors===null){vErrors=[err276];}else {vErrors.push(err276);}errors++;}}if(data151.bbox!==undefined){var data152=data151.bbox;if(data152&&_typeof(data152)=='object'&&!Array.isArray(data152)){if(data152.left===undefined){var err277={instancePath:instancePath+'/mapPreset/proj/bbox',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/required',keyword:'required',params:{missingProperty:'left'},message:"must have required property '"+'left'+"'"};if(vErrors===null){vErrors=[err277];}else {vErrors.push(err277);}errors++;}if(data152.right===undefined){var err278={instancePath:instancePath+'/mapPreset/proj/bbox',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/required',keyword:'required',params:{missingProperty:'right'},message:"must have required property '"+'right'+"'"};if(vErrors===null){vErrors=[err278];}else {vErrors.push(err278);}errors++;}if(data152.top===undefined){var err279={instancePath:instancePath+'/mapPreset/proj/bbox',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/required',keyword:'required',params:{missingProperty:'top'},message:"must have required property '"+'top'+"'"};if(vErrors===null){vErrors=[err279];}else {vErrors.push(err279);}errors++;}if(data152.bottom===undefined){var err280={instancePath:instancePath+'/mapPreset/proj/bbox',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/required',keyword:'required',params:{missingProperty:'bottom'},message:"must have required property '"+'bottom'+"'"};if(vErrors===null){vErrors=[err280];}else {vErrors.push(err280);}errors++;}for(var key15 in data152){if(!(key15==='left'||key15==='right'||key15==='top'||key15==='bottom')){var err281={instancePath:instancePath+'/mapPreset/proj/bbox',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/additionalProperties',keyword:'additionalProperties',params:{additionalProperty:key15},message:'must NOT have additional properties'};if(vErrors===null){vErrors=[err281];}else {vErrors.push(err281);}errors++;}}if(data152.left!==undefined){var data153=data152.left;if(!(typeof data153=='number'&&isFinite(data153))){var err282={instancePath:instancePath+'/mapPreset/proj/bbox/left',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/properties/left/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err282];}else {vErrors.push(err282);}errors++;}}if(data152.right!==undefined){var data154=data152.right;if(!(typeof data154=='number'&&isFinite(data154))){var err283={instancePath:instancePath+'/mapPreset/proj/bbox/right',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/properties/right/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err283];}else {vErrors.push(err283);}errors++;}}if(data152.top!==undefined){var data155=data152.top;if(!(typeof data155=='number'&&isFinite(data155))){var err284={instancePath:instancePath+'/mapPreset/proj/bbox/top',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/properties/top/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err284];}else {vErrors.push(err284);}errors++;}}if(data152.bottom!==undefined){var data156=data152.bottom;if(!(typeof data156=='number'&&isFinite(data156))){var err285={instancePath:instancePath+'/mapPreset/proj/bbox/bottom',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/properties/bottom/type',keyword:'type',params:{type:'number'},message:'must be number'};if(vErrors===null){vErrors=[err285];}else {vErrors.push(err285);}errors++;}}}else {var err286={instancePath:instancePath+'/mapPreset/proj/bbox',schemaPath:'#/properties/mapPreset/properties/proj/properties/bbox/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err286];}else {vErrors.push(err286);}errors++;}}if(data151.srs!==undefined){if(typeof data151.srs!=='string'){var err287={instancePath:instancePath+'/mapPreset/proj/srs',schemaPath:'#/properties/mapPreset/properties/proj/properties/srs/type',keyword:'type',params:{type:'string'},message:'must be string'};if(vErrors===null){vErrors=[err287];}else {vErrors.push(err287);}errors++;}}}else {var err288={instancePath:instancePath+'/mapPreset/proj',schemaPath:'#/properties/mapPreset/properties/proj/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err288];}else {vErrors.push(err288);}errors++;}}}else {var err289={instancePath:instancePath+'/mapPreset',schemaPath:'#/properties/mapPreset/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err289];}else {vErrors.push(err289);}errors++;}}}else {var err290={instancePath:instancePath,schemaPath:'#/type',keyword:'type',params:{type:'object'},message:'must be object'};if(vErrors===null){vErrors=[err290];}else {vErrors.push(err290);}errors++;}validate16.errors=vErrors;return errors===0;}
7953
+
8366
7954
  /* *
8367
7955
  * Licensed under the Apache License, Version 2.0 (the "License");
8368
7956
  * you may not use this file except in compliance with the License.
@@ -8379,10 +7967,6 @@ var airmetDefaultConfig = {
8379
7967
  * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
8380
7968
  * Copyright 2023 - Finnish Meteorological Institute (FMI)
8381
7969
  * */
8382
- // eslint-disable-next-line @typescript-eslint/no-var-requires
8383
- var sigmetValidator = require('./sigmetSchemaValidator');
8384
- // eslint-disable-next-line @typescript-eslint/no-var-requires
8385
- var airmetValidator = require('./airmetSchemaValidator');
8386
7970
  var parseErrors = function parseErrors(errors) {
8387
7971
  return errors.reduce(function (list, error) {
8388
7972
  // filter out merge errors, as they are not very helpful
@@ -8399,10 +7983,10 @@ var createReadableErrorMessage = function createReadableErrorMessage(errors) {
8399
7983
  }, []).join('\n');
8400
7984
  };
8401
7985
  var validateSigmet = function validateSigmet(sigmetConfig) {
8402
- return sigmetValidator(sigmetConfig) || parseErrors(sigmetValidator.errors);
7986
+ return validate14(sigmetConfig) || parseErrors(validate14.errors);
8403
7987
  };
8404
7988
  var validateAirmet = function validateAirmet(airmetConfig) {
8405
- return airmetValidator(airmetConfig) || parseErrors(airmetValidator.errors);
7989
+ return validate16(airmetConfig) || parseErrors(validate16.errors);
8406
7990
  };
8407
7991
 
8408
7992
  /* *
@@ -8453,11 +8037,96 @@ var SigmetForm = function SigmetForm(_ref) {
8453
8037
  productConfig = _ref$productConfig === void 0 ? sigmetConfig : _ref$productConfig;
8454
8038
  var _useApiContext = useApiContext(),
8455
8039
  api = _useApiContext.api;
8040
+ var _useMapDrawTool = useMapDrawTool({
8041
+ defaultEditModes: getDrawTools(StartOrEndDrawing.start, getFir(productConfig)),
8042
+ defaultGeoJSON: !isCancelSigmet && initialSigmet ? addFeatureProperties(initialSigmet.startGeometry, featurePropsStart) : undefined,
8043
+ defaultGeoJSONIntersection: !isCancelSigmet && initialSigmet ? addFeatureProperties(initialSigmet.startGeometryIntersect, featurePropsIntersectionStart) : undefined,
8044
+ defaultGeoJSONIntersectionBounds: addFeatureProperties(getFir(productConfig), featurePropsFIR)
8045
+ }),
8046
+ startGeoJSON = _useMapDrawTool.geoJSON,
8047
+ startGeoJSONIntersection = _useMapDrawTool.geoJSONIntersection,
8048
+ getStartLayer = _useMapDrawTool.getLayer,
8049
+ startEditModes = _useMapDrawTool.editModes,
8050
+ activeStartTool = _useMapDrawTool.activeTool,
8051
+ changeActiveStartTool = _useMapDrawTool.changeActiveTool,
8052
+ deactivateStartTool = _useMapDrawTool.deactivateTool,
8053
+ setStartGeoJSONIntersectionBounds = _useMapDrawTool.setGeoJSONIntersectionBounds,
8054
+ setStartEditModes = _useMapDrawTool.setEditModes;
8055
+ var _useMapDrawTool2 = useMapDrawTool({
8056
+ defaultEditModes: getDrawTools(StartOrEndDrawing.end, getFir(productConfig)),
8057
+ defaultGeoJSON: !isCancelSigmet && initialSigmet ? addFeatureProperties(initialSigmet.endGeometry, featurePropsEnd) : undefined,
8058
+ defaultGeoJSONIntersection: !isCancelSigmet && initialSigmet ? addFeatureProperties(initialSigmet.endGeometryIntersect, featurePropsIntersectionEnd) : undefined,
8059
+ defaultGeoJSONIntersectionBounds: addFeatureProperties(getFir(productConfig), featurePropsFIR),
8060
+ defaultGeoJSONIntersectionProperties: featurePropsIntersectionEnd
8061
+ }),
8062
+ endGeoJSON = _useMapDrawTool2.geoJSON,
8063
+ endGeoJSONIntersection = _useMapDrawTool2.geoJSONIntersection,
8064
+ getEndLayer = _useMapDrawTool2.getLayer,
8065
+ endEditModes = _useMapDrawTool2.editModes,
8066
+ activeEndTool = _useMapDrawTool2.activeTool,
8067
+ changeActiveEndTool = _useMapDrawTool2.changeActiveTool,
8068
+ deactivateEndTool = _useMapDrawTool2.deactivateTool,
8069
+ setEndGeoJSONIntersectionBounds = _useMapDrawTool2.setGeoJSONIntersectionBounds,
8070
+ setEndEditModes = _useMapDrawTool2.setEditModes;
8071
+ var onUpdateStartgeoJSON = function onUpdateStartgeoJSON(updatedStartGeoJSON, updateStartGeoJSONIntersection) {
8072
+ setValue('startGeometry', updatedStartGeoJSON, {
8073
+ shouldValidate: true,
8074
+ shouldDirty: isGeometryDirty(watch('startGeometry'), updatedStartGeoJSON)
8075
+ });
8076
+ setValue('startGeometryIntersect', updateStartGeoJSONIntersection, {
8077
+ shouldValidate: true,
8078
+ shouldDirty: isGeometryDirty(watch('startGeometryIntersect'), updateStartGeoJSONIntersection)
8079
+ });
8080
+ onChangeForm();
8081
+ };
8082
+ var onUpdateEndGeoJson = function onUpdateEndGeoJson(updatedEndGeoJSON, updateEndGeoJSONIntersection) {
8083
+ setValue('endGeometry', updatedEndGeoJSON, {
8084
+ shouldValidate: true,
8085
+ shouldDirty: isGeometryDirty(watch('endGeometry'), updatedEndGeoJSON)
8086
+ });
8087
+ setValue('endGeometryIntersect', updateEndGeoJSONIntersection, {
8088
+ shouldValidate: true,
8089
+ shouldDirty: isGeometryDirty(watch('endGeometryIntersect'), updateEndGeoJSONIntersection)
8090
+ });
8091
+ onChangeForm();
8092
+ };
8093
+ var onChangeStartTool = function onChangeStartTool(newTool) {
8094
+ deactivateEndTool();
8095
+ changeActiveStartTool(newTool);
8096
+ if (!newTool.isSelectable) {
8097
+ deactivateStartTool();
8098
+ onUpdateStartgeoJSON(newTool.shape, newTool.shape);
8099
+ }
8100
+ };
8101
+ var onChangeEndTool = function onChangeEndTool(newTool) {
8102
+ deactivateStartTool();
8103
+ changeActiveEndTool(newTool);
8104
+ if (!newTool.isSelectable) {
8105
+ deactivateEndTool();
8106
+ onUpdateEndGeoJson(newTool.shape, newTool.shape);
8107
+ }
8108
+ };
8109
+ var onExitDrawMode = function onExitDrawMode() {
8110
+ deactivateStartTool();
8111
+ var newGeoStart = rewindGeometry(startGeoJSON);
8112
+ var newGeoStartIntersect = rewindGeometry(startGeoJSONIntersection);
8113
+ onUpdateStartgeoJSON(newGeoStart, newGeoStartIntersect);
8114
+ };
8115
+ var onExitDrawModeEnd = function onExitDrawModeEnd() {
8116
+ deactivateEndTool();
8117
+ var newGeoEnd = rewindGeometry(endGeoJSON);
8118
+ var newGeoEndIntersect = rewindGeometry(endGeoJSONIntersection);
8119
+ onUpdateEndGeoJson(newGeoEnd, newGeoEndIntersect);
8120
+ };
8121
+ var layers = [getStartLayer('geoJSONIntersectionBounds', 'geojsonlayer-fir'), Object.assign(Object.assign({}, getEndLayer('geoJSON', 'geojsonlayer-end')), {
8122
+ exitDrawModeCallback: onExitDrawModeEnd
8123
+ }), Object.assign(Object.assign({}, getStartLayer('geoJSON', 'geojsonlayer-start')), {
8124
+ exitDrawModeCallback: onExitDrawMode
8125
+ }), getEndLayer('geoJSONIntersection', 'geojsonlayer-intersection-end'), getStartLayer('geoJSONIntersection', 'geojsonlayer-intersection-start')];
8456
8126
  var _useFormContext2 = useFormContext(),
8457
8127
  watch = _useFormContext2.watch,
8458
8128
  setValue = _useFormContext2.setValue,
8459
- handleSubmit = _useFormContext2.handleSubmit,
8460
- getValues = _useFormContext2.getValues;
8129
+ handleSubmit = _useFormContext2.handleSubmit;
8461
8130
  var _React$useState = React__default.useState(mode === 'view'),
8462
8131
  _React$useState2 = _slicedToArray(_React$useState, 2),
8463
8132
  isDisabled = _React$useState2[0],
@@ -8471,65 +8140,31 @@ var SigmetForm = function SigmetForm(_ref) {
8471
8140
  var onChangeForm = function onChangeForm() {
8472
8141
  updateTac(watch);
8473
8142
  };
8474
- // TODO: [Loes Cornelis]: fix this whole mess of if statements for isCancelSigmet and hidden fields if disabled throughout the form
8475
- var initialGeometry = initialSigmet && !isCancelSigmet ? {
8476
- start: initialSigmet.startGeometry,
8477
- end: initialSigmet.endGeometry,
8478
- intersectionStart: initialSigmet.startGeometryIntersect,
8479
- intersectionEnd: initialSigmet.endGeometryIntersect
8480
- } : undefined;
8481
- var currentSelectedFIR = getValues('locationIndicatorATSR');
8482
- var _useDrawMode = useDrawMode(productConfig, initialGeometry, currentSelectedFIR),
8483
- drawMode = _useDrawMode.drawMode,
8484
- setDrawMode = _useDrawMode.setDrawMode,
8485
- layerDrawModes = _useDrawMode.layerDrawModes,
8486
- geoJSONs = _useDrawMode.geoJSONs,
8487
- _setLayerGeoJSONs = _useDrawMode.setLayerGeoJSONs,
8488
- _setDrawModeType = _useDrawMode.setDrawModeType;
8489
- var updateStartDrawing = function updateStartDrawing(mapGeoJSONS) {
8490
- var baseGeoJSON = mapGeoJSONS || geoJSONs;
8491
- var newGeoJSON = fn(baseGeoJSON, function (draftGeoJSON) {
8492
- // eslint-disable-next-line no-param-reassign
8493
- draftGeoJSON.start = rewindGeometry(baseGeoJSON.start);
8494
- // eslint-disable-next-line no-param-reassign
8495
- draftGeoJSON.intersectionStart = rewindGeometry(baseGeoJSON.intersectionStart);
8496
- });
8497
- setValue('startGeometry', newGeoJSON.start, {
8498
- shouldValidate: true,
8499
- shouldDirty: isGeometryDirty(watch('startGeometry'), newGeoJSON.start)
8500
- });
8501
- setValue('startGeometryIntersect', newGeoJSON.intersectionStart, {
8502
- shouldValidate: true,
8503
- shouldDirty: isGeometryDirty(watch('startGeometryIntersect'), newGeoJSON.intersectionStart)
8504
- });
8505
- onChangeForm();
8506
- };
8507
- var updateEndDrawing = function updateEndDrawing(mapGeoJSONS) {
8508
- var baseGeoJSON = mapGeoJSONS || geoJSONs;
8509
- var newGeoJSON = fn(baseGeoJSON, function (draftGeoJSON) {
8510
- // eslint-disable-next-line no-param-reassign
8511
- draftGeoJSON.end = rewindGeometry(baseGeoJSON.end);
8512
- // eslint-disable-next-line no-param-reassign
8513
- draftGeoJSON.intersectionEnd = rewindGeometry(baseGeoJSON.intersectionEnd);
8514
- });
8515
- setValue('endGeometry', newGeoJSON.end, {
8516
- shouldValidate: true,
8517
- shouldDirty: isGeometryDirty(watch('endGeometry'), newGeoJSON.end)
8518
- });
8519
- setValue('endGeometryIntersect', newGeoJSON.intersectionEnd, {
8520
- shouldValidate: true,
8521
- shouldDirty: isGeometryDirty(watch('endGeometryIntersect'), newGeoJSON.intersectionEnd)
8522
- });
8523
- onChangeForm();
8524
- };
8525
8143
  React__default.useEffect(function () {
8526
- var isInDrawMode = drawMode.start !== null || drawMode.end !== null;
8144
+ var isInDrawMode = activeStartTool !== '' || activeEndTool !== '';
8527
8145
  if (!isReadOnly && isInDrawMode !== isDisabled) {
8528
8146
  setIsDisabled(isInDrawMode);
8529
8147
  }
8530
- }, [drawMode.start, drawMode.end, isReadOnly, isDisabled]);
8148
+ }, [activeStartTool, activeEndTool, isReadOnly, isDisabled]);
8531
8149
  var _useConditionalFields = useConditionalFields$1(),
8532
8150
  hasVolcanicAshes = _useConditionalFields.hasVolcanicAshes;
8151
+ var onChangeFir = function onChangeFir(event) {
8152
+ var newFIRValue = event === null || event === void 0 ? void 0 : event.target.value;
8153
+ var newFirGeoJSON = addFeatureProperties(getFir(productConfig, newFIRValue), featurePropsFIR);
8154
+ // delete shape
8155
+ onChangeStartTool(startEditModes.find(function (mode) {
8156
+ return mode.value === 'DELETE';
8157
+ }));
8158
+ onChangeEndTool(endEditModes.find(function (mode) {
8159
+ return mode.value === 'DELETE';
8160
+ }));
8161
+ // update instersection bounds
8162
+ setStartGeoJSONIntersectionBounds(newFirGeoJSON);
8163
+ setEndGeoJSONIntersectionBounds(newFirGeoJSON);
8164
+ // update tool buttons with new fir geoJSON
8165
+ setStartEditModes(updateDrawToolsWithFir(startEditModes, newFirGeoJSON));
8166
+ setEndEditModes(updateDrawToolsWithFir(endEditModes, newFirGeoJSON));
8167
+ };
8533
8168
  var renderForm = function renderForm() {
8534
8169
  return /*#__PURE__*/React__default.createElement(Grid, {
8535
8170
  container: true,
@@ -8566,24 +8201,14 @@ var SigmetForm = function SigmetForm(_ref) {
8566
8201
  productConfig: productConfig,
8567
8202
  isDisabled: isDisabled,
8568
8203
  isReadOnly: isReadOnly,
8569
- onChange: function onChange(event) {
8570
- var newFIRValue = event === null || event === void 0 ? void 0 : event.target.value;
8571
- var updatedGeoJson = getInitialGeoJSONState(productConfig, newFIRValue);
8572
- _setDrawModeType(MapDrawMode.DELETE, StartOrEndDrawing.start, function () {
8573
- return updateStartDrawing(updatedGeoJson);
8574
- });
8575
- _setDrawModeType(MapDrawMode.DELETE, StartOrEndDrawing.end, function () {
8576
- return updateEndDrawing(updatedGeoJson);
8577
- });
8578
- _setLayerGeoJSONs(updatedGeoJson);
8579
- }
8204
+ onChange: onChangeFir
8580
8205
  }), /*#__PURE__*/React__default.createElement(StartGeometry, {
8581
8206
  isReadOnly: isReadOnly,
8582
- drawMode: drawMode,
8583
- geoJSONs: geoJSONs,
8584
- setDrawModeType: function setDrawModeType(mapDrawMode, StartOrEndDrawing) {
8585
- _setDrawModeType(mapDrawMode, StartOrEndDrawing, updateStartDrawing);
8586
- }
8207
+ geoJSON: startGeoJSON,
8208
+ geoJSONIntersection: startGeoJSONIntersection,
8209
+ tools: startEditModes,
8210
+ onChangeTool: onChangeStartTool,
8211
+ activeTool: activeStartTool
8587
8212
  }), !isCancelSigmet && /*#__PURE__*/React__default.createElement(Levels, {
8588
8213
  isDisabled: isDisabled,
8589
8214
  isReadOnly: isReadOnly,
@@ -8595,12 +8220,12 @@ var SigmetForm = function SigmetForm(_ref) {
8595
8220
  productConfig: productConfig,
8596
8221
  isDisabled: isDisabled,
8597
8222
  isReadOnly: isReadOnly,
8598
- drawMode: drawMode,
8599
- geoJSONs: geoJSONs,
8600
- setDrawModeType: function setDrawModeType(mapDrawMode, StartOrEndDrawing) {
8601
- _setDrawModeType(mapDrawMode, StartOrEndDrawing, updateEndDrawing);
8602
- },
8603
- onChange: onChangeForm
8223
+ onChange: onChangeForm,
8224
+ geoJSON: endGeoJSON,
8225
+ geoJSONIntersection: endGeoJSONIntersection,
8226
+ tools: endEditModes,
8227
+ onChangeTool: onChangeEndTool,
8228
+ activeTool: activeEndTool
8604
8229
  }), !isCancelSigmet && /*#__PURE__*/React__default.createElement(Change, {
8605
8230
  isDisabled: isDisabled,
8606
8231
  isReadOnly: isReadOnly
@@ -8644,15 +8269,7 @@ var SigmetForm = function SigmetForm(_ref) {
8644
8269
  }
8645
8270
  }, /*#__PURE__*/React__default.createElement(ProductFormLayout, {
8646
8271
  productConfig: productConfig,
8647
- geoJSONs: geoJSONs,
8648
- setLayerGeoJSONs: function setLayerGeoJSONs(geoJSONs) {
8649
- return _setLayerGeoJSONs(createInterSections(geoJSONs));
8650
- },
8651
- layerDrawModes: layerDrawModes,
8652
- drawMode: drawMode,
8653
- setDrawMode: setDrawMode,
8654
- exitDrawModeCallbackStart: updateStartDrawing,
8655
- exitDrawModeCallbackEnd: updateEndDrawing
8272
+ geoJSONLayers: layers
8656
8273
  }, renderForm()));
8657
8274
  };
8658
8275
 
@@ -8710,6 +8327,48 @@ var AirmetForm = function AirmetForm(_ref) {
8710
8327
  productConfig = _ref$productConfig === void 0 ? airmetConfig : _ref$productConfig;
8711
8328
  var _useApiContext = useApiContext(),
8712
8329
  api = _useApiContext.api;
8330
+ var _useMapDrawTool = useMapDrawTool({
8331
+ defaultEditModes: getDrawTools(StartOrEndDrawing.start, getFir(productConfig)),
8332
+ defaultGeoJSON: !isCancelAirmet && initialAirmet ? addFeatureProperties(initialAirmet.startGeometry, featurePropsStart) : undefined,
8333
+ defaultGeoJSONIntersection: !isCancelAirmet && initialAirmet ? addFeatureProperties(initialAirmet.startGeometryIntersect, featurePropsIntersectionStart) : undefined,
8334
+ defaultGeoJSONIntersectionBounds: addFeatureProperties(getFir(productConfig), featurePropsFIR)
8335
+ }),
8336
+ startGeoJSON = _useMapDrawTool.geoJSON,
8337
+ startGeoJSONIntersection = _useMapDrawTool.geoJSONIntersection,
8338
+ getStartLayer = _useMapDrawTool.getLayer,
8339
+ startEditModes = _useMapDrawTool.editModes,
8340
+ activeStartTool = _useMapDrawTool.activeTool,
8341
+ changeActiveStartTool = _useMapDrawTool.changeActiveTool,
8342
+ deactivateStartTool = _useMapDrawTool.deactivateTool,
8343
+ setStartGeoJSONIntersectionBounds = _useMapDrawTool.setGeoJSONIntersectionBounds,
8344
+ setStartEditModes = _useMapDrawTool.setEditModes;
8345
+ var onUpdateStartgeoJSON = function onUpdateStartgeoJSON(updatedStartGeoJSON, updateStartGeoJSONIntersection) {
8346
+ setValue('startGeometry', updatedStartGeoJSON, {
8347
+ shouldValidate: true,
8348
+ shouldDirty: isGeometryDirty(watch('startGeometry'), updatedStartGeoJSON)
8349
+ });
8350
+ setValue('startGeometryIntersect', updateStartGeoJSONIntersection, {
8351
+ shouldValidate: true,
8352
+ shouldDirty: isGeometryDirty(watch('startGeometryIntersect'), updateStartGeoJSONIntersection)
8353
+ });
8354
+ onChangeForm();
8355
+ };
8356
+ var onChangeStartTool = function onChangeStartTool(newTool) {
8357
+ changeActiveStartTool(newTool);
8358
+ if (!newTool.isSelectable) {
8359
+ deactivateStartTool();
8360
+ onUpdateStartgeoJSON(newTool.shape, newTool.shape);
8361
+ }
8362
+ };
8363
+ var onExitDrawMode = function onExitDrawMode() {
8364
+ deactivateStartTool();
8365
+ var newGeoStart = rewindGeometry(startGeoJSON);
8366
+ var newGeoStartIntersect = rewindGeometry(startGeoJSONIntersection);
8367
+ onUpdateStartgeoJSON(newGeoStart, newGeoStartIntersect);
8368
+ };
8369
+ var layers = [getStartLayer('geoJSONIntersectionBounds', 'geojsonlayer-fir'), Object.assign(Object.assign({}, getStartLayer('geoJSON', 'geojsonlayer-start')), {
8370
+ exitDrawModeCallback: onExitDrawMode
8371
+ }), getStartLayer('geoJSONIntersection', 'geojsonlayer-intersection-start')];
8713
8372
  var _useFormContext2 = useFormContext(),
8714
8373
  watch = _useFormContext2.watch,
8715
8374
  setValue = _useFormContext2.setValue,
@@ -8729,47 +8388,32 @@ var AirmetForm = function AirmetForm(_ref) {
8729
8388
  var onChangeForm = function onChangeForm() {
8730
8389
  updateTac(watch);
8731
8390
  };
8732
- var initialGeometry = initialAirmet && !isCancelAirmet ? {
8733
- start: initialAirmet.startGeometry,
8734
- intersectionStart: initialAirmet.startGeometryIntersect
8735
- } : undefined;
8736
- var currentSelectedFIR = getValues('locationIndicatorATSR');
8737
- var _useDrawMode = useDrawMode(productConfig, initialGeometry, currentSelectedFIR),
8738
- drawMode = _useDrawMode.drawMode,
8739
- setDrawMode = _useDrawMode.setDrawMode,
8740
- layerDrawModes = _useDrawMode.layerDrawModes,
8741
- geoJSONs = _useDrawMode.geoJSONs,
8742
- _setLayerGeoJSONs = _useDrawMode.setLayerGeoJSONs,
8743
- _setDrawModeType = _useDrawMode.setDrawModeType;
8744
- var updateStartDrawing = function updateStartDrawing(mapGeoJSONS) {
8745
- var baseGeoJSON = mapGeoJSONS || geoJSONs;
8746
- var newGeoJSON = fn(baseGeoJSON, function (draftGeoJSON) {
8747
- // eslint-disable-next-line no-param-reassign
8748
- draftGeoJSON.start = rewindGeometry(baseGeoJSON.start);
8749
- // eslint-disable-next-line no-param-reassign
8750
- draftGeoJSON.intersectionStart = rewindGeometry(baseGeoJSON.intersectionStart);
8751
- });
8752
- setValue('startGeometry', newGeoJSON.start, {
8753
- shouldValidate: true,
8754
- shouldDirty: isGeometryDirty(watch('startGeometry'), newGeoJSON.start)
8755
- });
8756
- setValue('startGeometryIntersect', newGeoJSON.intersectionStart, {
8757
- shouldValidate: true,
8758
- shouldDirty: isGeometryDirty(watch('startGeometryIntersect'), newGeoJSON.intersectionStart)
8759
- });
8760
- onChangeForm();
8761
- };
8762
8391
  React__default.useEffect(function () {
8763
- var isInDrawMode = drawMode.start !== null;
8392
+ var isInDrawMode = activeStartTool !== '';
8764
8393
  if (!isReadOnly && isInDrawMode !== isDisabled) {
8765
8394
  setIsDisabled(isInDrawMode);
8766
8395
  }
8767
- }, [drawMode.start, isReadOnly, isDisabled]);
8396
+ }, [activeStartTool, isReadOnly, isDisabled]);
8768
8397
  var _useConditionalFields = useConditionalFields(),
8769
8398
  hasSurfaceVisiblity = _useConditionalFields.hasSurfaceVisiblity,
8770
8399
  hasSurfaceWind = _useConditionalFields.hasSurfaceWind,
8771
8400
  hasLevels = _useConditionalFields.hasLevels,
8772
8401
  hasCloudLevels = _useConditionalFields.hasCloudLevels;
8402
+ var onChangeFir = function onChangeFir(event) {
8403
+ var newFIRValue = event === null || event === void 0 ? void 0 : event.target.value;
8404
+ var newFirGeoJSON = addFeatureProperties(getFir(productConfig, newFIRValue), featurePropsFIR);
8405
+ // delete shape
8406
+ onChangeStartTool(startEditModes.find(function (mode) {
8407
+ return mode.value === 'DELETE';
8408
+ }));
8409
+ // update instersection bounds
8410
+ setStartGeoJSONIntersectionBounds(newFirGeoJSON);
8411
+ // update tool buttons with new fir geoJSON
8412
+ setStartEditModes(updateDrawToolsWithFir(startEditModes, newFirGeoJSON));
8413
+ // trigger validation for airmet specific fields that depend on FIR config
8414
+ var fieldnames = ['windDirection', 'windSpeed', 'visibilityValue', 'cloudLevel.value', 'cloudLowerLevel.value'];
8415
+ triggerValidations(fieldnames, getValues, trigger);
8416
+ };
8773
8417
  var renderForm = function renderForm() {
8774
8418
  return /*#__PURE__*/React__default.createElement(Grid, {
8775
8419
  container: true,
@@ -8812,24 +8456,14 @@ var AirmetForm = function AirmetForm(_ref) {
8812
8456
  isReadOnly: isReadOnly,
8813
8457
  isDisabled: isDisabled,
8814
8458
  productConfig: productConfig,
8815
- onChange: function onChange(event) {
8816
- var newFIRValue = event === null || event === void 0 ? void 0 : event.target.value;
8817
- var updatedGeoJson = getInitialGeoJSONState(productConfig, newFIRValue);
8818
- _setDrawModeType(MapDrawMode.DELETE, StartOrEndDrawing.start, function () {
8819
- return updateStartDrawing(updatedGeoJson);
8820
- });
8821
- _setLayerGeoJSONs(updatedGeoJson);
8822
- // trigger validation for airmet specific fields that depend on FIR config
8823
- var fieldnames = ['windDirection', 'windSpeed', 'visibilityValue', 'cloudLevel.value', 'cloudLowerLevel.value'];
8824
- triggerValidations(fieldnames, getValues, trigger);
8825
- }
8459
+ onChange: onChangeFir
8826
8460
  }), /*#__PURE__*/React__default.createElement(StartGeometry, {
8827
8461
  isReadOnly: isReadOnly,
8828
- drawMode: drawMode,
8829
- geoJSONs: geoJSONs,
8830
- setDrawModeType: function setDrawModeType(mapDrawMode, StartOrEndDrawing) {
8831
- _setDrawModeType(mapDrawMode, StartOrEndDrawing, updateStartDrawing);
8832
- }
8462
+ geoJSON: startGeoJSON,
8463
+ geoJSONIntersection: startGeoJSONIntersection,
8464
+ tools: startEditModes,
8465
+ onChangeTool: onChangeStartTool,
8466
+ activeTool: activeStartTool
8833
8467
  }), !isCancelAirmet && hasLevels && /*#__PURE__*/React__default.createElement(Levels, {
8834
8468
  isDisabled: isDisabled,
8835
8469
  isReadOnly: isReadOnly,
@@ -8883,14 +8517,7 @@ var AirmetForm = function AirmetForm(_ref) {
8883
8517
  }
8884
8518
  }, /*#__PURE__*/React__default.createElement(ProductFormLayout, {
8885
8519
  productConfig: productConfig,
8886
- geoJSONs: geoJSONs,
8887
- setLayerGeoJSONs: function setLayerGeoJSONs(geoJSONs) {
8888
- return _setLayerGeoJSONs(createInterSections(geoJSONs));
8889
- },
8890
- layerDrawModes: layerDrawModes,
8891
- drawMode: drawMode,
8892
- setDrawMode: setDrawMode,
8893
- exitDrawModeCallbackStart: updateStartDrawing
8520
+ geoJSONLayers: layers
8894
8521
  }, renderForm()));
8895
8522
  };
8896
8523
 
@@ -17007,4 +16634,4 @@ var AirmetComponentsLookUp = function AirmetComponentsLookUp(payload, _ref) {
17007
16634
  }
17008
16635
  };
17009
16636
 
17010
- export { AirmetComponentsLookUp, AirmetForm, AirmetPhenomena, CloudLevelUnits, ContentDialog, Direction, DownloadSigmetAirmetConfigWrapper, LevelUnits, MapDrawMode, MapViewGeoJson, MetInfoWrapper, MovementUnit, ProductList, ProductListRow, ProductStatusDescription, SigmetComponentsLookUp, SigmetForm, SigmetPhenomena, StartOrEndDrawing, VisibilityCause, WindUnit, airmetConfig, createApi$1 as createApi, createApi as createFakeApi, isInstanceOfAirmet, isInstanceOfCancelAirmet, isInstanceOfCancelSigmet, isInstanceOfCancelSigmetOrAirmet, isInstanceOfSigmet, isInstanceOfSigmetOrAirmet, sigmetConfig };
16637
+ export { AirmetComponentsLookUp, AirmetForm, AirmetPhenomena, CloudLevelUnits, ContentDialog, Direction, DownloadSigmetAirmetConfigWrapper, LevelUnits, MapViewGeoJson, MetInfoWrapper, MovementUnit, ProductList, ProductListRow, ProductStatusDescription, SigmetComponentsLookUp, SigmetForm, SigmetPhenomena, StartOrEndDrawing, VisibilityCause, WindUnit, airmetConfig, createApi$1 as createApi, createApi as createFakeApi, isInstanceOfAirmet, isInstanceOfCancelAirmet, isInstanceOfCancelSigmet, isInstanceOfCancelSigmetOrAirmet, isInstanceOfSigmet, isInstanceOfSigmetOrAirmet, sigmetConfig };