bruce-models 4.6.4 → 4.6.6

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.
@@ -40,6 +40,7 @@ __exportStar(require("./common/utc"), exports);
40
40
  __exportStar(require("./common/bruce-variable"), exports);
41
41
  __exportStar(require("./common/lru-cache"), exports);
42
42
  __exportStar(require("./common/section"), exports);
43
+ __exportStar(require("./common/geojson"), exports);
43
44
  __exportStar(require("./entity/entity-attachment-type"), exports);
44
45
  __exportStar(require("./entity/entity-attachment"), exports);
45
46
  __exportStar(require("./entity/entity-comment"), exports);
@@ -100,5 +101,5 @@ __exportStar(require("./plugin/plugin"), exports);
100
101
  __exportStar(require("./environment"), exports);
101
102
  __exportStar(require("./data-source/data-source"), exports);
102
103
  // This is updated with the package.json version on build.
103
- exports.VERSION = "4.6.4";
104
+ exports.VERSION = "4.6.6";
104
105
  //# sourceMappingURL=bruce-models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bruce-models.js","sourceRoot":"","sources":["../../src/bruce-models.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8DAA4C;AAE5C,4DAA0C;AAC1C,oEAAkD;AAElD,qDAAmC;AACnC,4CAA0B;AAC1B,kDAAgC;AAChC,mDAAiC;AACjC,qDAAmC;AACnC,oDAAkC;AAElC,0DAAwC;AAExC,kDAAgC;AAChC,uDAAqC;AACrC,iDAA+B;AAC/B,kDAAgC;AAChC,kDAAgC;AAChC,iDAA+B;AAC/B,iDAA+B;AAC/B,uDAAqC;AACrC,sDAAoC;AACpC,oDAAkC;AAClC,qDAAmC;AACnC,+CAA6B;AAC7B,0DAAwC;AACxC,qDAAmC;AACnC,mDAAiC;AAEjC,kEAAgD;AAChD,6DAA2C;AAC3C,0DAAwC;AACxC,uDAAqC;AACrC,sDAAoC;AACpC,+DAA6C;AAC7C,gEAA8C;AAC9C,2DAAyC;AACzC,yDAAuC;AACvC,sDAAoC;AACpC,uDAAqC;AACrC,kDAAgC;AAChC,yDAAuC;AACvC,uEAAqD;AACrD,4DAA0C;AAC1C,gEAA8C;AAC9C,6DAA2C;AAE3C,8DAA4C;AAE5C,4DAA0C;AAE1C,4DAA0C;AAE1C,yDAAuC;AACvC,sDAAoC;AACpC,kEAAgD;AAChD,yDAAuC;AACvC,qEAAmD;AACnD,8DAA4C;AAC5C,mEAAiD;AACjD,gEAA8C;AAC9C,yEAAuD;AAEvD,0DAAwC;AACxC,0DAAwC;AACxC,4DAA0C;AAE1C,gDAA8B;AAE9B,oDAAkC;AAElC,oDAAkC;AAClC,iDAA+B;AAC/B,oDAAkC;AAClC,8CAA4B;AAE5B,oDAAkC;AAClC,6DAA2C;AAC3C,2DAAyC;AACzC,6DAA2C;AAC3C,2DAAyC;AAEzC,uDAAqC;AACrC,oDAAkC;AAClC,sDAAoC;AACpC,oDAAkC;AAClC,mDAAiC;AAEjC,sDAAoC;AAEpC,sDAAoC;AACpC,sDAAoC;AACpC,uDAAqC;AACrC,sDAAoC;AACpC,yDAAuC;AAEvC,kDAAgC;AAChC,sDAAoC;AACpC,kDAAgC;AAChC,gDAA8B;AAC9B,4DAA0C;AAE1C,0DAA0D;AAC7C,QAAA,OAAO,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"bruce-models.js","sourceRoot":"","sources":["../../src/bruce-models.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8DAA4C;AAE5C,4DAA0C;AAC1C,oEAAkD;AAElD,qDAAmC;AACnC,4CAA0B;AAC1B,kDAAgC;AAChC,mDAAiC;AACjC,qDAAmC;AACnC,oDAAkC;AAElC,0DAAwC;AAExC,kDAAgC;AAChC,uDAAqC;AACrC,iDAA+B;AAC/B,kDAAgC;AAChC,kDAAgC;AAChC,iDAA+B;AAC/B,iDAA+B;AAC/B,uDAAqC;AACrC,sDAAoC;AACpC,oDAAkC;AAClC,qDAAmC;AACnC,+CAA6B;AAC7B,0DAAwC;AACxC,qDAAmC;AACnC,mDAAiC;AACjC,mDAAiC;AAEjC,kEAAgD;AAChD,6DAA2C;AAC3C,0DAAwC;AACxC,uDAAqC;AACrC,sDAAoC;AACpC,+DAA6C;AAC7C,gEAA8C;AAC9C,2DAAyC;AACzC,yDAAuC;AACvC,sDAAoC;AACpC,uDAAqC;AACrC,kDAAgC;AAChC,yDAAuC;AACvC,uEAAqD;AACrD,4DAA0C;AAC1C,gEAA8C;AAC9C,6DAA2C;AAE3C,8DAA4C;AAE5C,4DAA0C;AAE1C,4DAA0C;AAE1C,yDAAuC;AACvC,sDAAoC;AACpC,kEAAgD;AAChD,yDAAuC;AACvC,qEAAmD;AACnD,8DAA4C;AAC5C,mEAAiD;AACjD,gEAA8C;AAC9C,yEAAuD;AAEvD,0DAAwC;AACxC,0DAAwC;AACxC,4DAA0C;AAE1C,gDAA8B;AAE9B,oDAAkC;AAElC,oDAAkC;AAClC,iDAA+B;AAC/B,oDAAkC;AAClC,8CAA4B;AAE5B,oDAAkC;AAClC,6DAA2C;AAC3C,2DAAyC;AACzC,6DAA2C;AAC3C,2DAAyC;AAEzC,uDAAqC;AACrC,oDAAkC;AAClC,sDAAoC;AACpC,oDAAkC;AAClC,mDAAiC;AAEjC,sDAAoC;AAEpC,sDAAoC;AACpC,sDAAoC;AACpC,uDAAqC;AACrC,sDAAoC;AACpC,yDAAuC;AAEvC,kDAAgC;AAChC,sDAAoC;AACpC,kDAAgC;AAChC,gDAA8B;AAC9B,4DAA0C;AAE1C,0DAA0D;AAC7C,QAAA,OAAO,GAAG,OAAO,CAAC"}
@@ -21,12 +21,12 @@ function parseLegacyPath(path) {
21
21
  path = path.replace("${", "");
22
22
  path = path.replace("}", "");
23
23
  }
24
+ // Split by backslashes.
25
+ paths.push(path_utils_1.PathUtils.Parse(path));
24
26
  // Split by dots.
25
27
  paths.push(path_utils_1.PathUtils.ParseLegacy(path));
26
28
  // Take string as is.
27
29
  paths.push([path]);
28
- // Split by backslashes.
29
- paths.push(path_utils_1.PathUtils.Parse(path));
30
30
  // Remove duplicates.
31
31
  const tmpPaths = [];
32
32
  for (let i = 0; i < paths.length; i++) {
@@ -320,11 +320,17 @@ var Calculator;
320
320
  entity: entity,
321
321
  path: attrPath
322
322
  });
323
- const isValueNum = !isNaN(+eValue);
323
+ let isValueNum = !isNaN(+eValue);
324
+ if (eValue == null) {
325
+ isValueNum = false;
326
+ }
324
327
  for (let i = 0; i < value.values.length; i++) {
325
328
  const option = value.values[i];
326
329
  const mapValue = option.fieldValue;
327
- const isMapValueNum = !isNaN(+mapValue);
330
+ let isMapValueNum = !isNaN(+mapValue);
331
+ if (isMapValueNum == null) {
332
+ isMapValueNum = false;
333
+ }
328
334
  if (isValueNum && (isMapValueNum || mapValue.includes("-"))) {
329
335
  if (+mapValue == +eValue) {
330
336
  return option.appliedValue;
@@ -1 +1 @@
1
- {"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../../src/calculator/calculator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../../src/calculator/calculator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,6CAA0C;AAC1C,6DAAyD;AACzD,mDAA+C;AAE/C;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,IAAY;IACjC,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,EAAE,CAAC;KACb;IACD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC7C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;KAChC;IACD,wBAAwB;IACxB,KAAK,CAAC,IAAI,CAAC,sBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,iBAAiB;IACjB,KAAK,CAAC,IAAI,CAAC,sBAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,qBAAqB;IACrB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACnB,qBAAqB;IACrB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC/B,IAAI,KAAK,GAAG,IAAI,CAAC;gBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACrC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACzB,IAAI,WAAW,IAAI,QAAQ,EAAE;wBACzB,KAAK,GAAG,KAAK,CAAC;wBACd,MAAM;qBACT;iBACJ;gBACD,IAAI,KAAK,EAAE;oBACP,KAAK,GAAG,IAAI,CAAC;oBACb,MAAM;iBACT;aACJ;SACJ;QACD,IAAI,CAAC,KAAK,EAAE;YACR,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;KACJ;IACD,KAAK,GAAG,QAAQ,CAAC;IACjB,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,IAAiB,UAAU,CAgd1B;AAhdD,WAAiB,UAAU;IACvB;;;OAGG;IACH,IAAY,UAOX;IAPD,WAAY,UAAU;QAClB,6CAAK,CAAA;QACL,6CAAK,CAAA;QACL,mDAAQ,CAAA;QACR,iDAAO,CAAA;QACP,mDAAQ,CAAA;QACR,yDAAW,CAAA;IACf,CAAC,EAPW,UAAU,GAAV,qBAAU,KAAV,qBAAU,QAOrB;IAyDD;;;;;;;;OAQG;IACH,SAAgB,QAAQ,CAAC,MAAgB,EAAE,MAAsB,EAAE,IAAW;QAC1E,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;YACjB,OAAO,IAAI,CAAC;SACf;QACD,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,GAAG,EAAE,CAAC;SACb;QACD,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,GAAQ,EAAE,CAAC;SACpB;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,KAAU,CAAC;YACf,QAAQ,KAAK,CAAC,IAAI,EAAE;gBACpB,KAAK,UAAU,CAAC,KAAK;oBACjB,KAAK,GAAW,KAAK,CAAC,KAAK,CAAC;oBAC5B,IAAI,KAAK,EAAE;wBACP,KAAK,GAAG,aAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;qBACrC;oBACD,MAAM;gBACV,KAAK,UAAU,CAAC,QAAQ;oBACpB,KAAK,GAAG,gBAAgB,CAAiB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC9D,MAAM;gBACV,KAAK,UAAU,CAAC,KAAK;oBACjB,KAAK,GAAG,aAAa,CAAS,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,UAAU,CAAC,OAAO;oBACnB,KAAK,GAAG,eAAe,CAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC5D,MAAM;gBACV,KAAK,UAAU,CAAC,WAAW;oBACvB,KAAK,GAAG,aAAK,CAAC,WAAW,EAAE,CAAC;oBAC5B,MAAM;gBACV,KAAK,UAAU,CAAC,QAAQ;oBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAClC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,GAAG,CAAC,KAAK,EAAE;4BACX,KAAK,GAAG,aAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;4BACtC,MAAM;yBACT;qBACJ;oBACD,MAAM;aACT;YACD,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,EAAE;gBACrB,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAY,IAAI,CAAC;IACrB,CAAC;IA/Ce,mBAAQ,WA+CvB,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,QAAQ,CAAC,MAAgB,EAAE,MAAsB,EAAE,IAAW;QAC1E,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;YACjB,OAAO,IAAI,CAAC;SACf;QACD,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,GAAG,EAAE,CAAC;SACb;QACD,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,GAAQ,EAAE,CAAC;SACpB;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,KAAU,CAAC;YACf,QAAQ,KAAK,CAAC,IAAI,EAAE;gBACpB,KAAK,UAAU,CAAC,KAAK;oBACjB,KAAK,GAAW,KAAK,CAAC,KAAK,CAAC;oBAC5B,MAAM;gBACV,KAAK,UAAU,CAAC,QAAQ;oBACpB,KAAK,GAAG,gBAAgB,CAAiB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC9D,MAAM;gBACV,KAAK,UAAU,CAAC,KAAK;oBACjB,KAAK,GAAG,aAAa,CAAS,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,UAAU,CAAC,OAAO;oBACnB,KAAK,GAAG,eAAe,CAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC5D,MAAM;gBACV,KAAK,UAAU,CAAC,WAAW;oBACvB,KAAK,GAAG,aAAK,CAAC,WAAW,EAAE,CAAC;oBAC5B,MAAM;gBACV,KAAK,UAAU,CAAC,QAAQ;oBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAClC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,GAAG,CAAC,KAAK,EAAE;4BACX,KAAK,GAAG,aAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;4BACtC,MAAM;yBACT;qBACJ;oBACD,MAAM;aACT;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC3B,KAAK,GAAG,aAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aACrC;YACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE;gBACrE,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAY,IAAI,CAAC;IACrB,CAAC;IA/Ce,mBAAQ,WA+CvB,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,SAAS,CAAC,MAAgB,EAAE,MAAsB,EAAE,IAAW;QAC3E,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;YACjB,OAAO,IAAI,CAAC;SACf;QACD,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,GAAG,EAAE,CAAC;SACb;QACD,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,GAAQ,EAAE,CAAC;SACpB;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,KAAU,CAAC;YACf,QAAQ,KAAK,CAAC,IAAI,EAAE;gBACpB,KAAK,UAAU,CAAC,QAAQ;oBACpB,KAAK,GAAG,gBAAgB,CAAiB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC9D,MAAM;gBACV,KAAK,UAAU,CAAC,KAAK,CAAC;gBACtB,KAAK,UAAU,CAAC,KAAK;oBACjB,KAAK,GAAG,aAAa,CAAS,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,UAAU,CAAC,OAAO;oBACnB,KAAK,GAAG,eAAe,CAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC5D,MAAM;aACT;YACD,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,SAAS,EAAE;gBACpD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;aACzB;YACD,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,EAAE;gBACrB,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAY,IAAI,CAAC;IACrB,CAAC;IAjCe,oBAAS,YAiCxB,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,SAAS,CAAC,MAAgB,EAAE,MAAsB,EAAE,IAAW;QAC3E,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;YACjB,OAAO,IAAI,CAAC;SACf;QACD,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,GAAG,EAAE,CAAC;SACb;QACD,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,GAAQ,EAAE,CAAC;SACpB;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,KAAU,CAAC;YACf,QAAQ,KAAK,CAAC,IAAI,EAAE;gBACpB,KAAK,UAAU,CAAC,QAAQ;oBACpB;wBACI,MAAM,GAAG,GAAG,gBAAgB,CAAiB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;wBAClE,wCAAwC;wBACxC,IAAI,GAAG,EAAE;4BACL,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;yBACvB;qBACJ;oBACD,MAAM;gBACV,KAAK,UAAU,CAAC,KAAK,CAAC;gBACtB,KAAK,UAAU,CAAC,KAAK;oBACjB;wBACI,MAAM,GAAG,GAAG,aAAa,CAAS,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;wBACvD,wCAAwC;wBACxC,IAAI,GAAG,EAAE;4BACL,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;yBACvB;qBACJ;oBACD,MAAM;gBACV,KAAK,UAAU,CAAC,OAAO;oBACnB;wBACI,MAAM,GAAG,GAAG,eAAe,CAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;wBAChE,wCAAwC;wBACxC,IAAI,GAAG,EAAE;4BACL,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;yBACvB;qBACJ;oBACD,MAAM;gBACV,KAAK,UAAU,CAAC,WAAW;oBACvB,wFAAwF;oBACxF,IAAI,KAAK,GAAG,aAAK,CAAC,WAAW,EAAE,CAAC;oBAChC,KAAK,GAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC;oBACzE,MAAM;gBACV,KAAK,UAAU,CAAC,QAAQ;oBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAClC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,GAAG,CAAC,KAAK,EAAE;4BACX,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;4BAClB,MAAM;yBACT;qBACJ;oBACD,MAAM;aACT;YACD,IAAI,KAAK,EAAE;gBACP,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAY,IAAI,CAAC;IACrB,CAAC;IA/De,oBAAS,YA+DxB,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,eAAe,CAAC,KAAoB,EAAE,MAAsB;QACxE,MAAM,SAAS,GAAe,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,MAAM,GAAQ,eAAM,CAAC,QAAQ,CAAC;gBAC9B,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,QAAQ;aACjB,CAAC,CAAC;YAEH,IAAI,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,MAAM,IAAI,IAAI,EAAE;gBAChB,UAAU,GAAG,KAAK,CAAC;aACtB;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;gBAEnC,IAAI,aAAa,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,aAAa,IAAI,IAAI,EAAE;oBACvB,aAAa,GAAG,KAAK,CAAC;iBACzB;gBAED,IAAI,UAAU,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;oBACzD,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE;wBACtB,OAAO,MAAM,CAAC,YAAY,CAAC;qBAC9B;oBACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACrC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;wBACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACxB,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACxB,IAAI,GAAG,IAAI,EAAE,EAAE;4BACX,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE;gCAChB,SAAS;6BACZ;yBACJ;wBACD,IAAI,GAAG,IAAI,EAAE,EAAE;4BACX,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE;gCAChB,SAAS;6BACZ;yBACJ;wBACD,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE;4BACxB,SAAS;yBACZ;wBACD,OAAO,MAAM,CAAC,YAAY,CAAC;qBAC9B;iBACJ;qBACI;oBACD,IAAI,QAAQ,IAAI,MAAM,EAAE;wBACpB,OAAO,MAAM,CAAC,YAAY,CAAC;qBAC9B;iBACJ;aACJ;SACJ;QACD,OAAY,IAAI,CAAC;IACrB,CAAC;IAvDe,0BAAe,kBAuD9B,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,gBAAgB,CAAC,KAAqB,EAAE,MAAsB;QAC1E,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE5D,MAAM,SAAS,GAAe,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,MAAM,GAAQ,eAAM,CAAC,QAAQ,CAAC;gBAC9B,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,QAAQ;aACjB,CAAC,CAAC;YACH,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;gBAC3B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;aAC3B;YAED,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;gBAC3C,SAAS;aACZ;YAED,IAAI,MAAM,IAAI,GAAG,EAAE;gBACf,OAAO,aAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aAC1E;iBACI,IAAI,MAAM,IAAI,GAAG,EAAE;gBACpB,OAAO,aAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACpD;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;gBAEjC,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACxD,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACpC,OAAO,aAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qBAC3C;oBACD,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAChF,MAAM,MAAM,GAAG,aAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChD,MAAM,MAAM,GAAG,aAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChD,OAAO;wBACH,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ;wBACtD,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ;wBAC9D,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ;wBAC1D,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ;qBACjE,CAAA;iBACJ;aACJ;SACJ;QACD,OAAO,aAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IA/Ce,2BAAgB,mBA+C/B,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,aAAa,CAAC,KAAa,EAAE,MAAsB;QAC/D,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;YAC1B,IAAI;gBACA,KAAK,GAAG,8BAAa,CAAC,UAAU,CAAC;oBAC7B,GAAG,EAAE,KAAK;oBACV,MAAM,EAAE,MAAM;iBACjB,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzC,MAAM,UAAU,GAAG,6CAA6C,CAAC;gBACjE,MAAM,UAAU,GAAG,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEtD,IAAI,QAAQ,IAAI,UAAU,EAAE;oBACxB,IAAI,QAAQ,EAAE;wBACV,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACjC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;qBACxB;oBAED,+CAA+C;oBAC/C,2BAA2B;oBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC;oBACnB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;iBACvB;aACJ;YACD,OAAO,SAAS,EAAE;gBACd,MAAM,CAAC,GAAG,SAAgB,CAAC;gBAC3B,IAAI,QAAQ,GAAY,KAAK,CAAC;gBAC9B,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;oBAC3B,MAAM,GAAG,GAAW,CAAC,CAAC,OAAO,CAAC;oBAC9B,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;iBAC7F;gBACD,IAAI,CAAC,QAAQ,EAAE;oBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACpB;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IArCe,wBAAa,gBAqC5B,CAAA;AACL,CAAC,EAhdgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAgd1B"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GeoJson = void 0;
4
+ /**
5
+ * GeoJSON data structures.
6
+ */
7
+ var GeoJson;
8
+ (function (GeoJson) {
9
+ let EType;
10
+ (function (EType) {
11
+ EType["Point"] = "Point";
12
+ EType["MultiPoint"] = "MultiPoint";
13
+ EType["LineString"] = "LineString";
14
+ EType["MultiLineString"] = "MultiLineString";
15
+ EType["Polygon"] = "Polygon";
16
+ EType["MultiPolygon"] = "MultiPolygon";
17
+ EType["GeometryCollection"] = "GeometryCollection";
18
+ EType["Feature"] = "Feature";
19
+ EType["FeatureCollection"] = "FeatureCollection";
20
+ })(EType = GeoJson.EType || (GeoJson.EType = {}));
21
+ })(GeoJson = exports.GeoJson || (exports.GeoJson = {}));
22
+ //# sourceMappingURL=geojson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geojson.js","sourceRoot":"","sources":["../../../src/common/geojson.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAiB,OAAO,CA8EvB;AA9ED,WAAiB,OAAO;IA8BpB,IAAY,KAUX;IAVD,WAAY,KAAK;QACb,wBAAe,CAAA;QACf,kCAAyB,CAAA;QACzB,kCAAyB,CAAA;QACzB,4CAAmC,CAAA;QACnC,4BAAmB,CAAA;QACnB,sCAA6B,CAAA;QAC7B,kDAAyC,CAAA;QACzC,4BAAmB,CAAA;QACnB,gDAAuC,CAAA;IAC3C,CAAC,EAVW,KAAK,GAAL,aAAK,KAAL,aAAK,QAUhB;AAsCL,CAAC,EA9EgB,OAAO,GAAP,eAAO,KAAP,eAAO,QA8EvB"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Geometry = void 0;
4
+ const geojson_1 = require("./geojson");
4
5
  /**
5
6
  * Describes vector geometry that Bruce uses.
6
7
  */
@@ -122,5 +123,331 @@ var Geometry;
122
123
  return geometry;
123
124
  }
124
125
  Geometry.ParseGeometry = ParseGeometry;
126
+ /**
127
+ * Converts Bruce geometry to GeoJSON.
128
+ * @param geometry
129
+ * @returns returns GeoJSON or null if conversion failed or resulted in an empty object.
130
+ */
131
+ function ToGeoJsonFeature(params) {
132
+ const { geometry, properties, altitude } = params;
133
+ // Primary collection of geometries.
134
+ // We will return a single feature that contains many geometries.
135
+ // That way we can attach properties to the top-level.
136
+ const collection = [];
137
+ // Returns if two coordinates are equal.
138
+ const areCoordinatesEqual = (coord1, coord2) => {
139
+ return coord1[0] === coord2[0] && coord1[1] === coord2[1] && coord1[2] === coord2[2];
140
+ };
141
+ // Removes consecutive duplicate coordinates.
142
+ const removeConsecutiveDuplicates = (coordinates) => {
143
+ return coordinates.filter((coord, index) => {
144
+ return index === 0 || !areCoordinatesEqual(coord, coordinates[index - 1]);
145
+ });
146
+ };
147
+ // Ensures that the polygon is closed.
148
+ const closePolygonCoordinates = (coordinates) => {
149
+ return coordinates.map(ring => {
150
+ if (!areCoordinatesEqual(ring[0], ring[ring.length - 1])) {
151
+ ring.push(ring[0]);
152
+ }
153
+ return ring;
154
+ });
155
+ };
156
+ /**
157
+ * Processes Bruce geometry.
158
+ * Called recursively for MultiGeometry.
159
+ * @param geometry
160
+ * @returns if a geometry was processed and added.
161
+ */
162
+ const processGeometry = (geometry) => {
163
+ var _a, _b;
164
+ let jGeometry = null;
165
+ // We add in order of priority while ignoring anything lower priority.
166
+ // This mimics how we render Bruce geometry.
167
+ if ((_a = geometry.MultiGeometry) === null || _a === void 0 ? void 0 : _a.length) {
168
+ let passed = false;
169
+ geometry.MultiGeometry.forEach(geo => {
170
+ if (processGeometry(geo)) {
171
+ passed = true;
172
+ }
173
+ });
174
+ if (passed) {
175
+ return true;
176
+ }
177
+ }
178
+ if (!jGeometry && ((_b = geometry.Polygon) === null || _b === void 0 ? void 0 : _b.length)) {
179
+ // Sorts polygons so that boundaries come first.
180
+ const sortedPolygons = geometry.Polygon.sort((a, b) => a.Facing === Geometry.EPolygonRingType.Boundaries ? -1 : 1);
181
+ // Converts polygons to GeoJSON coordinates.
182
+ // This will close the polygon if it's not already closed and remove consecutive duplicates.
183
+ const coordinates = closePolygonCoordinates(sortedPolygons.map(polygon => {
184
+ return removeConsecutiveDuplicates(polygon.LinearRing.split(' ').map(coord => {
185
+ const [lon, lat, alt] = coord.split(',').map(Number);
186
+ return (altitude != null ? [lon, lat, altitude] : [lon, lat, alt !== undefined ? alt : 0]);
187
+ }));
188
+ }));
189
+ if (coordinates.every(polygon => polygon.length >= 4)) {
190
+ jGeometry = {
191
+ coordinates: coordinates,
192
+ type: geojson_1.GeoJson.EType.Polygon
193
+ };
194
+ }
195
+ }
196
+ if (!jGeometry && geometry.LineString) {
197
+ const coordinates = removeConsecutiveDuplicates(geometry.LineString.split(' ').map(coord => {
198
+ const [lon, lat, alt] = coord.split(',').map(Number);
199
+ return (altitude != null ? [lon, lat, altitude] : [lon, lat, alt !== undefined ? alt : 0]);
200
+ }));
201
+ if (coordinates.length >= 2) {
202
+ jGeometry = {
203
+ coordinates: coordinates,
204
+ type: geojson_1.GeoJson.EType.LineString
205
+ };
206
+ }
207
+ }
208
+ if (!jGeometry && geometry.Point) {
209
+ const [lon, lat, alt] = geometry.Point.split(',').map(Number);
210
+ const coordinates = altitude != null ? [lon, lat, altitude] : [lon, lat, alt !== undefined ? alt : 0];
211
+ jGeometry = {
212
+ coordinates: coordinates,
213
+ type: geojson_1.GeoJson.EType.Point
214
+ };
215
+ }
216
+ if (jGeometry) {
217
+ collection.push(jGeometry);
218
+ return true;
219
+ }
220
+ // Nothing :(
221
+ return false;
222
+ };
223
+ // Add all geometries to the collection.
224
+ processGeometry(geometry);
225
+ // Nothing was produced.
226
+ if (!collection.length) {
227
+ return null;
228
+ }
229
+ // Just 1 item. We can have a single feature rather than geometry collection.
230
+ if (collection.length === 1) {
231
+ const geoJson = {
232
+ type: geojson_1.GeoJson.EType.Feature,
233
+ geometry: collection[0],
234
+ properties: properties || {}
235
+ };
236
+ return geoJson;
237
+ }
238
+ // Construct the base feature and append the collection.
239
+ const geoJson = {
240
+ type: geojson_1.GeoJson.EType.Feature,
241
+ geometry: {
242
+ type: geojson_1.GeoJson.EType.GeometryCollection,
243
+ geometries: collection
244
+ },
245
+ properties: properties || {}
246
+ };
247
+ return geoJson;
248
+ }
249
+ Geometry.ToGeoJsonFeature = ToGeoJsonFeature;
250
+ /**
251
+ * Converts GeoJSON to Bruce geometry.
252
+ * @param geoJson
253
+ * @returns
254
+ */
255
+ function FromGeoJson(params) {
256
+ var _a;
257
+ const { geoJson } = params;
258
+ // Don't process if there's no geometry.
259
+ if (geoJson.type === geojson_1.GeoJson.EType.FeatureCollection) {
260
+ if (!geoJson.features.length) {
261
+ return null;
262
+ }
263
+ }
264
+ // We start by populating multi-geometry.
265
+ // If we end up with only 1 level then we'll return the single geometry.
266
+ const full = {
267
+ MultiGeometry: []
268
+ };
269
+ // Merged properties added to as we go.
270
+ const properties = {};
271
+ // Traverse a geojson hierarchy and generate a Bruce multi-geometry from it.
272
+ // This will append to the "full" object as it goes.
273
+ const traverse = (feature) => {
274
+ // Geometry collections don't have coords so we have to cast as any.
275
+ const { type, coordinates, properties } = feature.geometry;
276
+ // Unknown thing. Ignoring.
277
+ if (!type) {
278
+ return;
279
+ }
280
+ // No coordinates. Ignoring.
281
+ if (!coordinates) {
282
+ return;
283
+ }
284
+ // Simple properties merge.
285
+ // Doesn't handle nested properties very well.
286
+ if (properties) {
287
+ Object.assign(properties, properties);
288
+ }
289
+ // We'll first match cases of nested collections and handle them early.
290
+ // Then we'll be left with simple geometry cases.
291
+ if (type === geojson_1.GeoJson.EType.GeometryCollection) {
292
+ const collection = feature;
293
+ for (let i = 0; i < collection.geometries.length; i++) {
294
+ const geo = collection.geometries[i];
295
+ traverse({
296
+ type: geojson_1.GeoJson.EType.Feature,
297
+ geometry: geo,
298
+ properties: feature.properties
299
+ });
300
+ }
301
+ return;
302
+ }
303
+ else if (type === geojson_1.GeoJson.EType.FeatureCollection) {
304
+ const collection = feature;
305
+ for (let i = 0; i < collection.features.length; i++) {
306
+ traverse(collection.features[i]);
307
+ }
308
+ return;
309
+ }
310
+ const geometry = {};
311
+ switch (type) {
312
+ case geojson_1.GeoJson.EType.Polygon:
313
+ if (!geometry.Polygon) {
314
+ geometry.Polygon = [];
315
+ }
316
+ coordinates.forEach((polygon, index) => {
317
+ const linearRing = polygon.map(coord => coord.join(',')).join(' ');
318
+ geometry.Polygon.push({
319
+ LinearRing: linearRing,
320
+ Facing: index === 0 ? Geometry.EPolygonRingType.Boundaries : Geometry.EPolygonRingType.Hole
321
+ });
322
+ });
323
+ break;
324
+ case geojson_1.GeoJson.EType.LineString:
325
+ geometry.LineString = coordinates.map((coord) => coord.join(',')).join(' ');
326
+ break;
327
+ case geojson_1.GeoJson.EType.Point:
328
+ geometry.Point = coordinates.join(',');
329
+ break;
330
+ case geojson_1.GeoJson.EType.MultiPolygon:
331
+ if (!geometry.MultiGeometry) {
332
+ geometry.MultiGeometry = [];
333
+ }
334
+ coordinates.forEach((multiPolygon) => {
335
+ const multiPolygonGeometry = { Polygon: [] };
336
+ multiPolygon.forEach((polygon, index) => {
337
+ const linearRing = polygon.map(coord => coord.join(',')).join(' ');
338
+ multiPolygonGeometry.Polygon.push({
339
+ LinearRing: linearRing,
340
+ Facing: index === 0 ? Geometry.EPolygonRingType.Boundaries : Geometry.EPolygonRingType.Hole
341
+ });
342
+ });
343
+ geometry.MultiGeometry.push(multiPolygonGeometry);
344
+ });
345
+ break;
346
+ case geojson_1.GeoJson.EType.MultiLineString:
347
+ if (!geometry.MultiGeometry) {
348
+ geometry.MultiGeometry = [];
349
+ }
350
+ coordinates.forEach((multiLineString) => {
351
+ geometry.MultiGeometry.push({
352
+ LineString: multiLineString.map((coord) => coord.join(',')).join(' ')
353
+ });
354
+ });
355
+ break;
356
+ case geojson_1.GeoJson.EType.MultiPoint:
357
+ if (!geometry.MultiGeometry) {
358
+ geometry.MultiGeometry = [];
359
+ }
360
+ coordinates.forEach((multiPoint) => {
361
+ geometry.MultiGeometry.push({
362
+ Point: multiPoint.join(',')
363
+ });
364
+ });
365
+ break;
366
+ default:
367
+ return;
368
+ }
369
+ // Nothing to do. Nothing was made.
370
+ if (Object.keys(geometry).length === 0) {
371
+ return;
372
+ }
373
+ full.MultiGeometry.push(geometry);
374
+ };
375
+ // Traverse all features.
376
+ if (geoJson.type === geojson_1.GeoJson.EType.Feature) {
377
+ traverse(geoJson);
378
+ }
379
+ else {
380
+ (_a = geoJson.features) === null || _a === void 0 ? void 0 : _a.forEach(traverse);
381
+ }
382
+ // If we only have 1 geometry then we'll return it directly.
383
+ if (full.MultiGeometry.length === 1) {
384
+ return {
385
+ geometry: full.MultiGeometry[0],
386
+ properties: properties
387
+ };
388
+ }
389
+ // If we have multiple but only 1 of each type then that's standard Bruce stuff.
390
+ // Eg: 1 point, 1 line, 1 polygon is a very normal Bruce geometry.
391
+ const countsPerType = {
392
+ Point: 0,
393
+ LineString: 0,
394
+ Polygon: 0
395
+ };
396
+ full.MultiGeometry.forEach(geo => {
397
+ if (geo.Point) {
398
+ countsPerType.Point++;
399
+ }
400
+ else if (geo.LineString) {
401
+ countsPerType.LineString++;
402
+ }
403
+ else if (geo.Polygon) {
404
+ countsPerType.Polygon++;
405
+ }
406
+ });
407
+ if (countsPerType.Point === 1 && countsPerType.LineString === 1 && countsPerType.Polygon === 1) {
408
+ const merged = {};
409
+ const addToMerged = (geo) => {
410
+ if (geo.Point) {
411
+ merged.Point = geo.Point;
412
+ }
413
+ else if (geo.LineString) {
414
+ merged.LineString = geo.LineString;
415
+ }
416
+ else if (geo.Polygon) {
417
+ merged.Polygon = geo.Polygon;
418
+ }
419
+ };
420
+ full.MultiGeometry.forEach(addToMerged);
421
+ return {
422
+ geometry: merged,
423
+ properties: properties
424
+ };
425
+ }
426
+ // If there are many polygons but only 1 line and/or 1 point then we'll put those singles into the top-level.
427
+ // Eg: 5 polygons, 1 point, 1 line. That should be a single geometry.
428
+ if (countsPerType.Polygon > 1 && (countsPerType.LineString <= 1 && countsPerType.Point <= 1)) {
429
+ const semiMerged = {};
430
+ const addToSemiMerged = (geo) => {
431
+ if (geo.Point) {
432
+ semiMerged.Point = geo.Point;
433
+ }
434
+ else if (geo.LineString) {
435
+ semiMerged.LineString = geo.LineString;
436
+ }
437
+ };
438
+ semiMerged.MultiGeometry = full.MultiGeometry.filter(geo => geo.Polygon);
439
+ full.MultiGeometry.forEach(addToSemiMerged);
440
+ return {
441
+ geometry: semiMerged,
442
+ properties: properties
443
+ };
444
+ }
445
+ // More than 1 of each, then return the full multi-geometry as-is.
446
+ return {
447
+ geometry: full,
448
+ properties: properties
449
+ };
450
+ }
451
+ Geometry.FromGeoJson = FromGeoJson;
125
452
  })(Geometry = exports.Geometry || (exports.Geometry = {}));
126
453
  //# sourceMappingURL=geometry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../../src/common/geometry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../../src/common/geometry.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AAEpC;;GAEG;AACH,IAAiB,QAAQ,CAmgBxB;AAngBD,WAAiB,QAAQ;IAiBrB,IAAY,gBAGX;IAHD,WAAY,gBAAgB;QACxB,sCAAkB,CAAA;QAClB,+BAAW,CAAA;IACf,CAAC,EAHW,gBAAgB,GAAhB,yBAAgB,KAAhB,yBAAgB,QAG3B;IAED;;;;;OAKG;IACH,SAAgB,iBAAiB,CAAC,MAAsB;QACpD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAChB,MAAK,CAAC,kBAAkB,CAAC,CAAC;SAC7B;QACD,IAAI,KAAK,GAAiB,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,UAAU,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,UAAU,IAAI,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAChH;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAXe,0BAAiB,oBAWhC,CAAA;IAED;;;;;OAKG;IACH,SAAgB,kBAAkB,CAAC,SAAyB;QACxD,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvF,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC1H,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC1B;SACJ;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IAVe,2BAAkB,qBAUjC,CAAA;IAED;;;;OAIG;IACH,SAAgB,WAAW,CAAC,SAAiB;QACzC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAEjD,IAAI,mBAAmB,GAAG,GAAG,CAAC;QAC9B,IAAI,YAAY,GAAG,GAAG,CAAC;QACvB,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,UAAU,GAAG,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,EAAE;YAClE,mBAAmB,GAAG,GAAG,CAAC;YAC1B,YAAY,GAAG,GAAG,CAAC;SACtB;QAED,IAAI,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACzD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAErC,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,SAAS,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;oBACvC,MAAM,CAAC,IAAI,CAAC;wBACR,QAAQ,EAAE,QAAQ;wBAClB,QAAQ,EAAE,QAAQ;wBAClB,SAAS,EAAE,SAAS;qBACvB,CAAC,CAAC;iBACN;qBACI;oBACD,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC;iBAC3D;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IApCe,oBAAW,cAoC1B,CAAA;IAED;;;;;OAKG;IACH,SAAgB,aAAa,CAAC,QAAa;QACvC,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE;YAC7B,IAAI,SAAS,GAAmB,EAAE,CAAC;YACnC,MAAM,cAAc,GAAa,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;iBACxC;aACJ;YACD,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAc,EAAE,CAAC;YAClC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC9B,WAAW,CAAC,KAAK,GAAG,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9H,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtB,WAAW,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;iBAC7G;gBACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtB,WAAW,CAAC,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;iBACzD;aACJ;YACD,OAAO,WAAW,CAAC;SACtB;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IA1Be,sBAAa,gBA0B5B,CAAA;IAED;;;;OAIG;IACH,SAAgB,gBAAgB,CAAC,MAShC;QACG,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAElD,oCAAoC;QACpC,iEAAiE;QACjE,sDAAsD;QACtD,MAAM,UAAU,GAAuB,EAAE,CAAC;QAE1C,wCAAwC;QACxC,MAAM,mBAAmB,GAAG,CAAC,MAAwB,EAAE,MAAwB,EAAE,EAAE;YAC/E,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;QACzF,CAAC,CAAC;QAEF,6CAA6C;QAC7C,MAAM,2BAA2B,GAAG,CAAC,WAA+B,EAAE,EAAE;YACpE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvC,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,sCAAsC;QACtC,MAAM,uBAAuB,GAAG,CAAC,WAAiC,EAAE,EAAE;YAClE,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;oBACtD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBACtB;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF;;;;;WAKG;QACH,MAAM,eAAe,GAAG,CAAC,QAA4B,EAAW,EAAE;;YAC9D,IAAI,SAAS,GAAqB,IAAI,CAAC;YAEvC,sEAAsE;YACtE,4CAA4C;YAE5C,IAAI,MAAA,QAAQ,CAAC,aAAa,0CAAE,MAAM,EAAE;gBAChC,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACjC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;wBACtB,MAAM,GAAG,IAAI,CAAC;qBACjB;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,MAAM,EAAE;oBACR,OAAO,IAAI,CAAC;iBACf;aACJ;YAED,IAAI,CAAC,SAAS,KAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAE;gBACxC,gDAAgD;gBAChD,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClD,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7D,CAAC;gBAEF,4CAA4C;gBAC5C,4FAA4F;gBAC5F,MAAM,WAAW,GAAG,uBAAuB,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACrE,OAAO,2BAA2B,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBACzE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBACrD,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAqB,CAAC;oBACnH,CAAC,CAAC,CAAC,CAAC;gBACR,CAAC,CAAC,CAAC,CAAC;gBAEJ,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE;oBACnD,SAAS,GAAG;wBACR,WAAW,EAAE,WAAW;wBACxB,IAAI,EAAE,iBAAO,CAAC,KAAK,CAAC,OAAO;qBACV,CAAC;iBACzB;aACJ;YAED,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE;gBACnC,MAAM,WAAW,GAAG,2BAA2B,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBACvF,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACrD,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAqB,CAAC;gBACnH,CAAC,CAAC,CAAC,CAAC;gBAEJ,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;oBACzB,SAAS,GAAG;wBACR,WAAW,EAAE,WAAW;wBACxB,IAAI,EAAE,iBAAO,CAAC,KAAK,CAAC,UAAU;qBACV,CAAC;iBAC5B;aACJ;YAED,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE;gBAC9B,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9D,MAAM,WAAW,GAAqB,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxH,SAAS,GAAG;oBACR,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,iBAAO,CAAC,KAAK,CAAC,KAAK;iBACV,CAAC;aACvB;YAED,IAAI,SAAS,EAAE;gBACX,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,OAAO,IAAI,CAAC;aACf;YAED,aAAa;YACb,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;QAEF,wCAAwC;QACxC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE1B,wBAAwB;QACxB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACpB,OAAO,IAAI,CAAC;SACf;QAED,6EAA6E;QAC7E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,OAAO,GAAqB;gBAC9B,IAAI,EAAE,iBAAO,CAAC,KAAK,CAAC,OAAO;gBAC3B,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;gBACvB,UAAU,EAAE,UAAU,IAAI,EAAE;aAC/B,CAAC;YACF,OAAO,OAAO,CAAC;SAClB;QAED,wDAAwD;QACxD,MAAM,OAAO,GAAqB;YAC9B,IAAI,EAAE,iBAAO,CAAC,KAAK,CAAC,OAAO;YAC3B,QAAQ,EAAE;gBACN,IAAI,EAAE,iBAAO,CAAC,KAAK,CAAC,kBAAkB;gBACtC,UAAU,EAAE,UAAU;aACM;YAChC,UAAU,EAAE,UAAU,IAAI,EAAE;SAC/B,CAAC;QAEF,OAAO,OAAO,CAAC;IACnB,CAAC;IAnJe,yBAAgB,mBAmJ/B,CAAA;IAED;;;;OAIG;IACH,SAAgB,WAAW,CAAC,MAE3B;;QAOG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAE3B,wCAAwC;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAClD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC1B,OAAO,IAAI,CAAC;aACf;SACJ;QAED,yCAAyC;QACzC,wEAAwE;QACxE,MAAM,IAAI,GAAuB;YAC7B,aAAa,EAAE,EAAE;SACpB,CAAC;QACF,uCAAuC;QACvC,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,4EAA4E;QAC5E,oDAAoD;QACpD,MAAM,QAAQ,GAAG,CAAC,OAAyB,EAAE,EAAE;YAC3C,oEAAoE;YACpE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,QAAe,CAAC;YAElE,2BAA2B;YAC3B,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO;aACV;YACD,4BAA4B;YAC5B,IAAI,CAAC,WAAW,EAAE;gBACd,OAAO;aACV;YAED,2BAA2B;YAC3B,8CAA8C;YAC9C,IAAI,UAAU,EAAE;gBACZ,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;aACzC;YAED,uEAAuE;YACvE,iDAAiD;YAEjD,IAAI,IAAI,KAAK,iBAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE;gBAC3C,MAAM,UAAU,GAAG,OAA6C,CAAC;gBACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACnD,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACrC,QAAQ,CAAC;wBACL,IAAI,EAAE,iBAAO,CAAC,KAAK,CAAC,OAAO;wBAC3B,QAAQ,EAAE,GAAG;wBACb,UAAU,EAAE,OAAO,CAAC,UAAU;qBACjC,CAAC,CAAC;iBACN;gBACD,OAAO;aACV;iBACI,IAAI,IAAI,KAAK,iBAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBAC/C,MAAM,UAAU,GAAG,OAA4C,CAAC;gBAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACjD,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpC;gBACD,OAAO;aACV;YAED,MAAM,QAAQ,GAAuB,EAAE,CAAC;YACxC,QAAQ,IAAI,EAAE;gBACV,KAAK,iBAAO,CAAC,KAAK,CAAC,OAAO;oBACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;wBACnB,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC;qBACzB;oBACD,WAAW,CAAC,OAAO,CAAC,CAAC,OAAmB,EAAE,KAAa,EAAE,EAAE;wBACvD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACnE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;4BAClB,UAAU,EAAE,UAAU;4BACtB,MAAM,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI;yBAC9F,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;oBACH,MAAM;gBACV,KAAK,iBAAO,CAAC,KAAK,CAAC,UAAU;oBACzB,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAe,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACtF,MAAM;gBACV,KAAK,iBAAO,CAAC,KAAK,CAAC,KAAK;oBACpB,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACvC,MAAM;gBACV,KAAK,iBAAO,CAAC,KAAK,CAAC,YAAY;oBAC3B,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;wBACzB,QAAQ,CAAC,aAAa,GAAG,EAAE,CAAC;qBAC/B;oBACD,WAAW,CAAC,OAAO,CAAC,CAAC,YAA0B,EAAE,EAAE;wBAC/C,MAAM,oBAAoB,GAAuB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;wBACjE,YAAY,CAAC,OAAO,CAAC,CAAC,OAAmB,EAAE,KAAa,EAAE,EAAE;4BACxD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACnE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;gCAC9B,UAAU,EAAE,UAAU;gCACtB,MAAM,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI;6BAC9F,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;wBACH,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBACtD,CAAC,CAAC,CAAC;oBACH,MAAM;gBACV,KAAK,iBAAO,CAAC,KAAK,CAAC,eAAe;oBAC9B,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;wBACzB,QAAQ,CAAC,aAAa,GAAG,EAAE,CAAC;qBAC/B;oBACD,WAAW,CAAC,OAAO,CAAC,CAAC,eAA2B,EAAE,EAAE;wBAChD,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;4BACxB,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,KAAe,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;yBAClF,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;oBACH,MAAM;gBACV,KAAK,iBAAO,CAAC,KAAK,CAAC,UAAU;oBACzB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;wBACzB,QAAQ,CAAC,aAAa,GAAG,EAAE,CAAC;qBAC/B;oBACD,WAAW,CAAC,OAAO,CAAC,CAAC,UAAoB,EAAE,EAAE;wBACzC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;4BACxB,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;yBAC9B,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;oBACH,MAAM;gBACV;oBACI,OAAO;aACd;YACD,mCAAmC;YACnC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBACpC,OAAO;aACV;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,yBAAyB;QACzB,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAO,CAAC,KAAK,CAAC,OAAO,EAAE;YACxC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACrB;aACI;YACD,MAAA,OAAO,CAAC,QAAQ,0CAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;SACvC;QAED,4DAA4D;QAC5D,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,OAAO;gBACH,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC/B,UAAU,EAAE,UAAU;aACzB,CAAA;SACJ;QAED,gFAAgF;QAChF,kEAAkE;QAElE,MAAM,aAAa,GAAG;YAClB,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;SACb,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,IAAI,GAAG,CAAC,KAAK,EAAE;gBACX,aAAa,CAAC,KAAK,EAAE,CAAC;aACzB;iBACI,IAAI,GAAG,CAAC,UAAU,EAAE;gBACrB,aAAa,CAAC,UAAU,EAAE,CAAC;aAC9B;iBACI,IAAI,GAAG,CAAC,OAAO,EAAE;gBAClB,aAAa,CAAC,OAAO,EAAE,CAAC;aAC3B;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,KAAK,KAAK,CAAC,IAAI,aAAa,CAAC,UAAU,KAAK,CAAC,IAAI,aAAa,CAAC,OAAO,KAAK,CAAC,EAAE;YAC5F,MAAM,MAAM,GAAuB,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,CAAC,GAAuB,EAAE,EAAE;gBAC5C,IAAI,GAAG,CAAC,KAAK,EAAE;oBACX,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;iBAC5B;qBACI,IAAI,GAAG,CAAC,UAAU,EAAE;oBACrB,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;iBACtC;qBACI,IAAI,GAAG,CAAC,OAAO,EAAE;oBAClB,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;iBAChC;YACL,CAAC,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAExC,OAAO;gBACH,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,UAAU;aACzB,CAAA;SACJ;QAED,6GAA6G;QAC7G,qEAAqE;QACrE,IAAI,aAAa,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE;YAC1F,MAAM,UAAU,GAAuB,EAAE,CAAC;YAC1C,MAAM,eAAe,GAAG,CAAC,GAAuB,EAAE,EAAE;gBAChD,IAAI,GAAG,CAAC,KAAK,EAAE;oBACX,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;iBAChC;qBACI,IAAI,GAAG,CAAC,UAAU,EAAE;oBACrB,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;iBAC1C;YACL,CAAC,CAAC;YACF,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACzE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAE5C,OAAO;gBACH,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,UAAU;aACzB,CAAA;SACJ;QAED,kEAAkE;QAClE,OAAO;YACH,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,UAAU;SACzB,CAAA;IACL,CAAC;IA3Ne,oBAAW,cA2N1B,CAAA;AACL,CAAC,EAngBgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAmgBxB"}