@twinmatrix/spatialverse-sdk-web 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/lib/cjs/index.js +9 -9
  2. package/lib/cjs/index.js.map +1 -1
  3. package/lib/cjs/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.js +213 -294
  4. package/lib/cjs/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.js.map +1 -1
  5. package/lib/cjs/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.js +40 -41
  6. package/lib/cjs/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.js.map +1 -1
  7. package/lib/cjs/meta-atlas-sdk/3DMap/MainMap.js +170 -196
  8. package/lib/cjs/meta-atlas-sdk/3DMap/MainMap.js.map +1 -1
  9. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/fetch-published-json.js +167 -215
  10. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/fetch-published-json.js.map +1 -1
  11. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/fetchMapObjectsData.js +28 -30
  12. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/fetchMapObjectsData.js.map +1 -1
  13. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core.js +861 -1170
  14. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core.js.map +1 -1
  15. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/index.js +166 -159
  16. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/index.js.map +1 -1
  17. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/interfaces.js +6 -6
  18. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/interfaces.js.map +1 -1
  19. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.js +6 -6
  20. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.js.map +1 -1
  21. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/routeLayers.js +3 -3
  22. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/routeLayers.js.map +1 -1
  23. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/routing-helpers.js +523 -610
  24. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/routing-helpers.js.map +1 -1
  25. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/utils.js +149 -154
  26. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/utils.js.map +1 -1
  27. package/lib/cjs/meta-atlas-sdk/customStyles.js +2 -2
  28. package/lib/cjs/meta-atlas-sdk/customStyles.js.map +1 -1
  29. package/lib/cjs/meta-atlas-sdk/customerLayer.js +15 -29
  30. package/lib/cjs/meta-atlas-sdk/customerLayer.js.map +1 -1
  31. package/lib/cjs/meta-atlas-sdk/customerLayerVariant.js +5 -5
  32. package/lib/cjs/meta-atlas-sdk/customerLayerVariant.js.map +1 -1
  33. package/lib/cjs/meta-atlas-sdk/meta-atlas-sdk.js +809 -1033
  34. package/lib/cjs/meta-atlas-sdk/meta-atlas-sdk.js.map +1 -1
  35. package/lib/cjs/meta-atlas-sdk/utils/helpers.js +32 -49
  36. package/lib/cjs/meta-atlas-sdk/utils/helpers.js.map +1 -1
  37. package/lib/cjs/meta-atlas-sdk/utils/local-storage.js +21 -34
  38. package/lib/cjs/meta-atlas-sdk/utils/local-storage.js.map +1 -1
  39. package/lib/cjs/meta-atlas-sdk/utils/mapobjects-store.js +6 -6
  40. package/lib/cjs/meta-atlas-sdk/utils/mapobjects-store.js.map +1 -1
  41. package/lib/cjs/meta-atlas-sdk/utils/routing-store.js +6 -6
  42. package/lib/cjs/meta-atlas-sdk/utils/routing-store.js.map +1 -1
  43. package/lib/cjs/meta-atlas-sdk/utils/routing-visualizer/index.js +363 -491
  44. package/lib/cjs/meta-atlas-sdk/utils/routing-visualizer/index.js.map +1 -1
  45. package/lib/cjs/react/MetaAtlasMap.js +127 -0
  46. package/lib/cjs/react/MetaAtlasMap.js.map +1 -0
  47. package/lib/cjs/react/hooks/useDrawing/index.js +17 -18
  48. package/lib/cjs/react/hooks/useDrawing/index.js.map +1 -1
  49. package/lib/cjs/react/hooks/useFocus/index.js +48 -55
  50. package/lib/cjs/react/hooks/useFocus/index.js.map +1 -1
  51. package/lib/cjs/react/hooks/useMapEvents/index.js +40 -47
  52. package/lib/cjs/react/hooks/useMapEvents/index.js.map +1 -1
  53. package/lib/cjs/react/hooks/useMapOverlays/index.js +20 -21
  54. package/lib/cjs/react/hooks/useMapOverlays/index.js.map +1 -1
  55. package/lib/cjs/react/hooks/useMetaAtlas/index.js +77 -95
  56. package/lib/cjs/react/hooks/useMetaAtlas/index.js.map +1 -1
  57. package/lib/cjs/react/hooks/useMetaAtlas.js +78 -96
  58. package/lib/cjs/react/hooks/useMetaAtlas.js.map +1 -1
  59. package/lib/cjs/react/hooks/useRouting/index.js +21 -20
  60. package/lib/cjs/react/hooks/useRouting/index.js.map +1 -1
  61. package/lib/cjs/react/hooks/useSearch/index.js +35 -34
  62. package/lib/cjs/react/hooks/useSearch/index.js.map +1 -1
  63. package/lib/cjs/react/hooks/useStampRally/index.js +26 -23
  64. package/lib/cjs/react/hooks/useStampRally/index.js.map +1 -1
  65. package/lib/cjs/react/hooks/useStampRally/utils.js +2 -2
  66. package/lib/cjs/react/hooks/useStampRally/utils.js.map +1 -1
  67. package/lib/cjs/react/index.js +31 -31
  68. package/lib/cjs/react/index.js.map +1 -1
  69. package/lib/cjs/react/stores/useMapDataStore.js +47 -62
  70. package/lib/cjs/react/stores/useMapDataStore.js.map +1 -1
  71. package/lib/cjs/react/stores/useMetaAtlasStore.js +27 -40
  72. package/lib/cjs/react/stores/useMetaAtlasStore.js.map +1 -1
  73. package/lib/esm/index.js +3 -7
  74. package/lib/esm/index.js.map +1 -1
  75. package/lib/esm/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.js +4 -3
  76. package/lib/esm/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.js.map +1 -1
  77. package/lib/esm/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.js +14 -12
  78. package/lib/esm/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.js.map +1 -1
  79. package/lib/esm/meta-atlas-sdk/3DMap/MainMap.js +204 -200
  80. package/lib/esm/meta-atlas-sdk/3DMap/MainMap.js.map +1 -1
  81. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/fetch-published-json.js +6 -6
  82. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/fetch-published-json.js.map +1 -1
  83. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/fetchMapObjectsData.js +4 -3
  84. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/fetchMapObjectsData.js.map +1 -1
  85. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core.js +53 -42
  86. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core.js.map +1 -1
  87. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/index.js +18 -16
  88. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/index.js.map +1 -1
  89. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.js +3 -3
  90. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.js.map +1 -1
  91. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/routing-helpers.js +73 -79
  92. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/routing-helpers.js.map +1 -1
  93. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/utils.js +16 -15
  94. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/utils.js.map +1 -1
  95. package/lib/esm/meta-atlas-sdk/customerLayer.js +4 -1
  96. package/lib/esm/meta-atlas-sdk/customerLayer.js.map +1 -1
  97. package/lib/esm/meta-atlas-sdk/meta-atlas-sdk.js +148 -124
  98. package/lib/esm/meta-atlas-sdk/meta-atlas-sdk.js.map +1 -1
  99. package/lib/esm/meta-atlas-sdk/utils/helpers.js +4 -2
  100. package/lib/esm/meta-atlas-sdk/utils/helpers.js.map +1 -1
  101. package/lib/esm/meta-atlas-sdk/utils/local-storage.js +6 -1
  102. package/lib/esm/meta-atlas-sdk/utils/local-storage.js.map +1 -1
  103. package/lib/esm/meta-atlas-sdk/utils/routing-visualizer/index.js +115 -109
  104. package/lib/esm/meta-atlas-sdk/utils/routing-visualizer/index.js.map +1 -1
  105. package/lib/esm/react/MetaAtlasMap.js +120 -0
  106. package/lib/esm/react/MetaAtlasMap.js.map +1 -0
  107. package/lib/esm/react/hooks/useDrawing/index.js +2 -2
  108. package/lib/esm/react/hooks/useDrawing/index.js.map +1 -1
  109. package/lib/esm/react/hooks/useFocus/index.js +4 -3
  110. package/lib/esm/react/hooks/useFocus/index.js.map +1 -1
  111. package/lib/esm/react/hooks/useMapEvents/index.js +9 -6
  112. package/lib/esm/react/hooks/useMapEvents/index.js.map +1 -1
  113. package/lib/esm/react/hooks/useMapOverlays/index.js +2 -2
  114. package/lib/esm/react/hooks/useMapOverlays/index.js.map +1 -1
  115. package/lib/esm/react/hooks/useMetaAtlas/index.js +162 -60
  116. package/lib/esm/react/hooks/useMetaAtlas/index.js.map +1 -1
  117. package/lib/esm/react/hooks/useMetaAtlas.js +162 -60
  118. package/lib/esm/react/hooks/useMetaAtlas.js.map +1 -1
  119. package/lib/esm/react/hooks/useRouting/index.js +2 -2
  120. package/lib/esm/react/hooks/useRouting/index.js.map +1 -1
  121. package/lib/esm/react/hooks/useSearch/index.js +2 -2
  122. package/lib/esm/react/hooks/useSearch/index.js.map +1 -1
  123. package/lib/esm/react/hooks/useStampRally/index.js +15 -12
  124. package/lib/esm/react/hooks/useStampRally/index.js.map +1 -1
  125. package/lib/esm/react/hooks/useStampRally/utils.js +1 -1
  126. package/lib/esm/react/hooks/useStampRally/utils.js.map +1 -1
  127. package/lib/esm/react/index.js +11 -15
  128. package/lib/esm/react/index.js.map +1 -1
  129. package/lib/esm/react/stores/useMapDataStore.js +17 -21
  130. package/lib/esm/react/stores/useMapDataStore.js.map +1 -1
  131. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/CameraSync.d.ts +30 -0
  132. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/CameraSync.d.ts.map +1 -0
  133. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/CameraUtils.d.ts +5 -0
  134. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/CameraUtils.d.ts.map +1 -0
  135. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/constants.d.ts +21 -0
  136. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/constants.d.ts.map +1 -0
  137. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/suncalc.d.ts +27 -0
  138. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/suncalc.d.ts.map +1 -0
  139. package/lib/types/meta-atlas-sdk/mapbox_draw_custom_modes/draw_marker.d.ts +18 -0
  140. package/lib/types/meta-atlas-sdk/mapbox_draw_custom_modes/draw_marker.d.ts.map +1 -0
  141. package/lib/types/meta-atlas-sdk/mapbox_draw_custom_modes/marker_select.d.ts +37 -0
  142. package/lib/types/meta-atlas-sdk/mapbox_draw_custom_modes/marker_select.d.ts.map +1 -0
  143. package/package.json +10 -7
@@ -3,44 +3,34 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
7
- var _CustomThreeJsWrapper = _interopRequireDefault(require("./CustomThreeJsWrapper/CustomThreeJsWrapper"));
6
+ exports.default = void 0;
7
+ var _CustomThreeJsWrapper = _interopRequireDefault(require("./CustomThreeJsWrapper/CustomThreeJsWrapper.js"));
8
8
  var _troikaThreeText = require("troika-three-text");
9
9
  var turf = _interopRequireWildcard(require("@turf/turf"));
10
10
  var THREE = _interopRequireWildcard(require("three"));
11
- var _utils = require("./CustomThreeJsWrapper/utility/utils");
11
+ var _utils = require("./CustomThreeJsWrapper/utility/utils.js");
12
12
  var _threeSpritetext = _interopRequireDefault(require("three-spritetext"));
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
15
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
16
- function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
17
- function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
18
- function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
19
- function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
23
- function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
24
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
25
17
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
26
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
27
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
28
- var MainMap = exports["default"] = /*#__PURE__*/function () {
29
- function MainMap(metaAtlasCore) {
30
- var _this = this;
31
- _classCallCheck(this, MainMap);
32
- _defineProperty(this, "getAllPolygonCoordinates", function () {
33
- var map = _this.map;
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
19
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
20
+ class MainMap {
21
+ constructor(metaAtlasCore) {
22
+ _defineProperty(this, "getAllPolygonCoordinates", () => {
23
+ const map = this.map;
34
24
  if (!map) return [];
35
- var polygonFeatures = [];
36
- var source = map.getSource('custom');
25
+ const polygonFeatures = [];
26
+ const source = map.getSource('custom');
37
27
  if (source) {
38
- var features = map.querySourceFeatures('custom', {
28
+ const features = map.querySourceFeatures('custom', {
39
29
  sourceLayer: 'geojson',
40
30
  filter: ['==', ['geometry-type'], 'Polygon']
41
31
  });
42
32
  if (features && features.length > 0) {
43
- features.forEach(function (feature) {
33
+ features.forEach(feature => {
44
34
  if ((feature.geometry.type === 'Polygon' || feature.geometry.type === 'MultiPolygon') && feature.properties.dimension_what === 'what.booth') {
45
35
  var _feature$properties;
46
36
  polygonFeatures.push({
@@ -57,137 +47,129 @@ var MainMap = exports["default"] = /*#__PURE__*/function () {
57
47
  }
58
48
  return polygonFeatures;
59
49
  });
60
- _defineProperty(this, "updatePolygons", function (features) {
61
- features.map(/*#__PURE__*/function () {
62
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(feature) {
63
- var coordinates, polygon, centroid, myText, text, textPosition;
64
- return _regenerator().w(function (_context) {
65
- while (1) switch (_context.n) {
66
- case 0:
67
- coordinates = feature.geometry.coordinates; // const centroid = feature.properties.center;
68
- polygon = turf.polygon(coordinates);
69
- centroid = turf.centroid(polygon).geometry.coordinates; // const modelPosition = projectToWorld(centroid);
70
- // const vertex1 = projectToWorld(coordinates[0][0]);
71
- // const vertex2 = projectToWorld(coordinates[0][1]);
72
- // const angle = vertex1.angleTo(vertex2);
73
- // console.log(angle);
74
- // await modelLoader.loadModel({
75
- // modelPath: feature.properties.modelPath,
76
- // feature,
77
- // wrapper: wrapper.current!,
78
- // onProgress: (progress) => {
79
- // setLoadingProgress((prev) => ({
80
- // ...prev,
81
- // [feature.properties.id]: progress,
82
- // }));
83
- // },
84
- // onError: (error) => {
85
- // console.error(
86
- // `Failed to load model ${feature.properties.id}:`,
87
- // error
88
- // );
89
- // },
90
- // });
91
- if (!feature.properties.hasImage && feature.properties.dimension_where && feature.properties.dimension_where === 'where.lima.mahsuri_center.exhibition_floor') {
92
- myText = new _threeSpritetext["default"]();
93
- myText.color = 'black';
94
- text = feature.properties.title;
95
- text = _this.addNewLine(text);
50
+ _defineProperty(this, "updatePolygons", features => {
51
+ features.map(async feature => {
52
+ const coordinates = feature.geometry.coordinates;
53
+ // const centroid = feature.properties.center;
54
+ const polygon = turf.polygon(coordinates);
55
+ const centroid = turf.centroid(polygon).geometry.coordinates;
56
+ // const modelPosition = projectToWorld(centroid);
96
57
 
97
- // Set properties to configure:
98
- myText.text = text;
99
- myText.textHeight = 100;
100
- // myText.textHeight = 1;
101
- // myText.backgroundColor = '';
102
- textPosition = (0, _utils.projectToWorld)(centroid);
103
- myText.rotation.x = Math.PI;
104
- myText.rotation.y = Math.PI;
105
- myText.scale.set(0.1, 0.1, 0.01);
106
- myText.position.set(textPosition.x, textPosition.y,
107
- // feature.properties.height > 0 ? 0.4 : 0.25
108
- 0.1);
109
- _this.threebox.add(myText);
110
- } else {
111
- // Load Texture
112
- // const textureLoader = new THREE.TextureLoader();
113
- // textureLoader.load('/sk.png', (texture: THREE.Texture) => {
114
- // // Create a plane geometry and material with the loaded texture
115
- // const geometry = new THREE.PlaneGeometry(
116
- // texture.image.width,
117
- // texture.image.height
118
- // );
119
- // geometry.computeBoundingBox();
120
- // const material = new THREE.MeshStandardMaterial({
121
- // map: texture,
122
- // transparent: true, // Enable transparency
123
- // opacity: 1,
124
- // });
125
- // const plane = new THREE.Mesh(geometry, material);
126
- // const group = new THREE.Group();
127
- // const childContainer = new THREE.Group();
128
- // childContainer.add(plane);
129
- // childContainer.rotateZ(Math.PI / 2);
130
- // childContainer.rotateZ(1);
131
- // childContainer.updateMatrixWorld();
132
- // group.add(childContainer);
133
- // const geojsonbbox = turf.bbox(polygon);
134
- // const bbox1 = new THREE.Box3(
135
- // projectToWorld([geojsonbbox[2], geojsonbbox[3]]),
136
- // projectToWorld([geojsonbbox[0], geojsonbbox[1]])
137
- // );
138
- // const bbox2 = new THREE.Box3().setFromObject(plane);
139
- // const size1 = new THREE.Vector3();
140
- // bbox1.getSize(size1);
141
- // size1.setZ(1);
142
- // const size2 = new THREE.Vector3();
143
- // bbox2.getSize(size2);
144
- // size2.setZ(1);
145
- // const ratio = size1.divide(size2);
146
- // const ratioCopy = ratio.clone().multiplyScalar(0.85);
147
- // plane.scale.set(
148
- // plane.scale.x * ratioCopy.x,
149
- // plane.scale.y * ratioCopy.y,
150
- // plane.scale.z * ratioCopy.z
151
- // );
152
- // // // Set the position of the plane to the centroid
153
- // group.position.set(modelPosition.x, modelPosition.y, 0.11);
154
- // this.threebox.add(group);
155
- // });
156
- }
157
- case 1:
158
- return _context.a(2);
159
- }
160
- }, _callee);
161
- }));
162
- return function (_x) {
163
- return _ref.apply(this, arguments);
164
- };
165
- }());
58
+ // const vertex1 = projectToWorld(coordinates[0][0]);
59
+ // const vertex2 = projectToWorld(coordinates[0][1]);
60
+ // const angle = vertex1.angleTo(vertex2);
61
+ // console.log(angle);
62
+
63
+ // await modelLoader.loadModel({
64
+ // modelPath: feature.properties.modelPath,
65
+ // feature,
66
+ // wrapper: wrapper.current!,
67
+ // onProgress: (progress) => {
68
+ // setLoadingProgress((prev) => ({
69
+ // ...prev,
70
+ // [feature.properties.id]: progress,
71
+ // }));
72
+ // },
73
+ // onError: (error) => {
74
+ // console.error(
75
+ // `Failed to load model ${feature.properties.id}:`,
76
+ // error
77
+ // );
78
+ // },
79
+ // });
80
+
81
+ if (!feature.properties.hasImage && feature.properties.dimension_where && feature.properties.dimension_where === 'where.lima.mahsuri_center.exhibition_floor') {
82
+ const myText = new _threeSpritetext.default();
83
+ myText.color = 'black';
84
+ let text = feature.properties.title;
85
+ text = this.addNewLine(text);
86
+
87
+ // Set properties to configure:
88
+ myText.text = text;
89
+ myText.textHeight = 100;
90
+ // myText.textHeight = 1;
91
+ // myText.backgroundColor = '';
92
+ const textPosition = (0, _utils.projectToWorld)(centroid);
93
+ myText.rotation.x = Math.PI;
94
+ myText.rotation.y = Math.PI;
95
+ myText.scale.set(0.1, 0.1, 0.01);
96
+ myText.position.set(textPosition.x, textPosition.y,
97
+ // feature.properties.height > 0 ? 0.4 : 0.25
98
+ 0.1);
99
+ this.threebox.add(myText);
100
+ } else {
101
+ // Load Texture
102
+ // const textureLoader = new THREE.TextureLoader();
103
+ // textureLoader.load('/sk.png', (texture: THREE.Texture) => {
104
+ // // Create a plane geometry and material with the loaded texture
105
+ // const geometry = new THREE.PlaneGeometry(
106
+ // texture.image.width,
107
+ // texture.image.height
108
+ // );
109
+ // geometry.computeBoundingBox();
110
+ // const material = new THREE.MeshStandardMaterial({
111
+ // map: texture,
112
+ // transparent: true, // Enable transparency
113
+ // opacity: 1,
114
+ // });
115
+ // const plane = new THREE.Mesh(geometry, material);
116
+ // const group = new THREE.Group();
117
+ // const childContainer = new THREE.Group();
118
+ // childContainer.add(plane);
119
+ // childContainer.rotateZ(Math.PI / 2);
120
+ // childContainer.rotateZ(1);
121
+ // childContainer.updateMatrixWorld();
122
+ // group.add(childContainer);
123
+ // const geojsonbbox = turf.bbox(polygon);
124
+ // const bbox1 = new THREE.Box3(
125
+ // projectToWorld([geojsonbbox[2], geojsonbbox[3]]),
126
+ // projectToWorld([geojsonbbox[0], geojsonbbox[1]])
127
+ // );
128
+ // const bbox2 = new THREE.Box3().setFromObject(plane);
129
+ // const size1 = new THREE.Vector3();
130
+ // bbox1.getSize(size1);
131
+ // size1.setZ(1);
132
+ // const size2 = new THREE.Vector3();
133
+ // bbox2.getSize(size2);
134
+ // size2.setZ(1);
135
+ // const ratio = size1.divide(size2);
136
+ // const ratioCopy = ratio.clone().multiplyScalar(0.85);
137
+ // plane.scale.set(
138
+ // plane.scale.x * ratioCopy.x,
139
+ // plane.scale.y * ratioCopy.y,
140
+ // plane.scale.z * ratioCopy.z
141
+ // );
142
+ // // // Set the position of the plane to the centroid
143
+ // group.position.set(modelPosition.x, modelPosition.y, 0.11);
144
+ // this.threebox.add(group);
145
+ // });
146
+ }
147
+ });
166
148
  });
167
- _defineProperty(this, "addLogo", function (logo, position) {
168
- var textureLoader = new THREE.TextureLoader();
169
- var texture = textureLoader.load(logo);
149
+ _defineProperty(this, "addLogo", (logo, position) => {
150
+ const textureLoader = new THREE.TextureLoader();
151
+ const texture = textureLoader.load(logo);
170
152
 
171
153
  // Define rectangle dimensions
172
- var width = 4;
173
- var height = 0;
174
- var depth = 2;
154
+ const width = 4;
155
+ const height = 0;
156
+ const depth = 2;
175
157
 
176
158
  // Create a box geometry instead of cylinder
177
- var geometry = new THREE.BoxGeometry(width, height, depth);
159
+ const geometry = new THREE.BoxGeometry(width, height, depth);
178
160
 
179
161
  // Create materials: [right, left, top, bottom, front, back]
180
- var sideMaterial = new THREE.MeshBasicMaterial({
162
+ const sideMaterial = new THREE.MeshBasicMaterial({
181
163
  color: new THREE.Color(0xffffff)
182
164
  });
183
- var topMaterial = new THREE.MeshStandardMaterial({
165
+ const topMaterial = new THREE.MeshStandardMaterial({
184
166
  map: texture,
185
167
  side: THREE.DoubleSide,
186
168
  transparent: true
187
169
  });
188
170
 
189
171
  // Create an array of materials for each face of the box
190
- var materials = [sideMaterial,
172
+ const materials = [sideMaterial,
191
173
  // right
192
174
  sideMaterial,
193
175
  // left
@@ -201,19 +183,19 @@ var MainMap = exports["default"] = /*#__PURE__*/function () {
201
183
  ];
202
184
 
203
185
  // Create the mesh with geometry and materials
204
- var logoMesh = new THREE.Mesh(geometry, materials);
186
+ const logoMesh = new THREE.Mesh(geometry, materials);
205
187
 
206
188
  // Adjust rotation to match your previous orientation
207
189
  logoMesh.rotation.x = Math.PI / 2;
208
190
  logoMesh.rotation.y = -Math.PI / 1.45;
209
191
  logoMesh.position.set(position.x + 0.5, position.y - 0.3, position.z);
210
- _this.threebox.add(logoMesh);
192
+ this.threebox.add(logoMesh);
211
193
  return logoMesh;
212
194
  });
213
195
  // Function to add text using Troika Text library at a specified position
214
- _defineProperty(this, "addTitle", function (title, position) {
196
+ _defineProperty(this, "addTitle", (title, position) => {
215
197
  // Create a new Text instance
216
- var textMesh = new _troikaThreeText.Text();
198
+ const textMesh = new _troikaThreeText.Text();
217
199
 
218
200
  // Configure text properties
219
201
  textMesh.text = title;
@@ -227,7 +209,7 @@ var MainMap = exports["default"] = /*#__PURE__*/function () {
227
209
  textMesh.rotation.z = -Math.PI / 1.45;
228
210
 
229
211
  // Add text to the scene
230
- _this.threebox.add(textMesh);
212
+ this.threebox.add(textMesh);
231
213
 
232
214
  // Update the text rendering
233
215
  textMesh.sync();
@@ -239,59 +221,51 @@ var MainMap = exports["default"] = /*#__PURE__*/function () {
239
221
  MainMap.mainInstance = this;
240
222
  this.metaAtlasCore = metaAtlasCore;
241
223
  }
242
- return _createClass(MainMap, [{
243
- key: "init",
244
- value: function init(map2D) {
245
- this.map = map2D;
246
- this.initThreebox();
247
- }
224
+ init(map2D) {
225
+ this.map = map2D;
226
+ this.initThreebox();
227
+ }
248
228
 
249
- /**
250
- * Creates a Threebox instance of the class.
251
- * @param map Maplibre instance to initialize threebox
252
- * @returns Threebox class instance created
253
- */
254
- }, {
255
- key: "initThreebox",
256
- value: function initThreebox() {
257
- var map = this.map;
258
- var wrapper = new _CustomThreeJsWrapper["default"](map);
259
- wrapper.setEnvironment();
260
- // const hdrLoader = new HDRLoader();
261
- // hdrLoader.load('./golden_gate_hills_1k.hdr', texture => {
262
- // texture.mapping = EquirectangularReflectionMapping;
263
- // wrapper.scene.environment = texture;
264
- // });
229
+ /**
230
+ * Creates a Threebox instance of the class.
231
+ * @param map Maplibre instance to initialize threebox
232
+ * @returns Threebox class instance created
233
+ */
234
+ initThreebox() {
235
+ const map = this.map;
236
+ const wrapper = new _CustomThreeJsWrapper.default(map);
237
+ wrapper.setEnvironment();
238
+ // const hdrLoader = new HDRLoader();
239
+ // hdrLoader.load('./golden_gate_hills_1k.hdr', texture => {
240
+ // texture.mapping = EquirectangularReflectionMapping;
241
+ // wrapper.scene.environment = texture;
242
+ // });
265
243
 
266
- map.addLayer({
267
- id: '3d-model-layer',
268
- type: 'custom',
269
- renderingMode: '3d',
270
- onAdd: function onAdd() {
271
- console.log('onAdd _initThreebox');
272
- },
273
- render: function render() {
274
- wrapper.update();
275
- }
276
- });
277
- this.threebox = wrapper;
278
- return wrapper;
279
- }
244
+ map.addLayer({
245
+ id: '3d-model-layer',
246
+ type: 'custom',
247
+ renderingMode: '3d',
248
+ onAdd: () => {
249
+ console.log('onAdd _initThreebox');
250
+ },
251
+ render: () => {
252
+ wrapper.update();
253
+ }
254
+ });
255
+ this.threebox = wrapper;
256
+ return wrapper;
257
+ }
280
258
 
281
- /**
282
- * Get the threebox instance for 3D model operations
283
- */
284
- }, {
285
- key: "getThreebox",
286
- value: function getThreebox() {
287
- return this.threebox;
288
- }
289
- }, {
290
- key: "addNewLine",
291
- value: function addNewLine(input) {
292
- return input.replace(/ /g, '\r\n');
293
- }
294
- }]);
295
- }();
259
+ /**
260
+ * Get the threebox instance for 3D model operations
261
+ */
262
+ getThreebox() {
263
+ return this.threebox;
264
+ }
265
+ addNewLine(input) {
266
+ return input.replace(/ /g, '\r\n');
267
+ }
268
+ }
269
+ exports.default = MainMap;
296
270
  _defineProperty(MainMap, "mainInstance", null);
297
271
  //# sourceMappingURL=MainMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MainMap.js","names":["_CustomThreeJsWrapper","_interopRequireDefault","require","_troikaThreeText","turf","_interopRequireWildcard","THREE","_utils","_threeSpritetext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Symbol","iterator","constructor","prototype","_regenerator","toStringTag","c","Generator","u","create","_regeneratorDefine2","p","y","G","v","a","d","bind","length","l","TypeError","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","displayName","w","m","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","ownKeys","keys","getOwnPropertySymbols","filter","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_toPrimitive","toPrimitive","String","Number","MainMap","exports","metaAtlasCore","_this","map","polygonFeatures","source","getSource","features","querySourceFeatures","sourceLayer","feature","geometry","type","properties","dimension_what","_feature$properties","id","mapObjectId","name","title","coordinates","hasImage","Math","round","random","_ref","_callee","polygon","centroid","myText","text","textPosition","_context","dimension_where","SpriteText","color","addNewLine","textHeight","projectToWorld","rotation","x","PI","scale","position","threebox","add","_x","logo","textureLoader","TextureLoader","texture","load","width","height","depth","BoxGeometry","sideMaterial","MeshBasicMaterial","Color","topMaterial","MeshStandardMaterial","side","DoubleSide","transparent","materials","logoMesh","Mesh","z","textMesh","Text","fontSize","anchorX","anchorY","fontWeight","textAlign","sync","mainInstance","init","map2D","initThreebox","wrapper","CustomThreeJSWrapper","setEnvironment","addLayer","renderingMode","onAdd","console","log","render","update","getThreebox","input","replace"],"sources":["../../../../src/meta-atlas-sdk/3DMap/MainMap.ts"],"sourcesContent":["import { Map as MaplibreMap } from 'maplibre-gl';\n\nimport CustomThreeJSWrapper from './CustomThreeJsWrapper/CustomThreeJsWrapper';\nimport { Text } from 'troika-three-text';\n\nimport { EquirectangularReflectionMapping } from 'three';\nimport { MetaAtlasCore } from '../MetaAtlasCore/meta-atlas-sdk-core';\nimport * as turf from '@turf/turf';\nimport * as THREE from 'three';\nimport { projectToWorld } from './CustomThreeJsWrapper/utility/utils';\nimport SpriteText from 'three-spritetext';\nimport { HDRLoader } from 'three/examples/jsm/loaders/HDRLoader';\n\nexport default class MainMap {\n public static mainInstance: MainMap | null = null;\n public map!: MaplibreMap;\n public threebox!: CustomThreeJSWrapper;\n public metaAtlasCore!: MetaAtlasCore;\n\n constructor(metaAtlasCore: MetaAtlasCore) {\n if (MainMap.mainInstance) {\n return MainMap.mainInstance;\n }\n\n MainMap.mainInstance = this;\n\n this.metaAtlasCore = metaAtlasCore;\n }\n\n public init(map2D: MaplibreMap) {\n this.map = map2D;\n this.initThreebox();\n }\n\n /**\n * Creates a Threebox instance of the class.\n * @param map Maplibre instance to initialize threebox\n * @returns Threebox class instance created\n */\n private initThreebox() {\n const map = this.map;\n const wrapper = new CustomThreeJSWrapper(map);\n wrapper.setEnvironment();\n // const hdrLoader = new HDRLoader();\n // hdrLoader.load('./golden_gate_hills_1k.hdr', texture => {\n // texture.mapping = EquirectangularReflectionMapping;\n // wrapper.scene.environment = texture;\n // });\n\n map.addLayer({\n id: '3d-model-layer',\n type: 'custom',\n renderingMode: '3d',\n onAdd: () => {\n console.log('onAdd _initThreebox');\n },\n render: () => {\n wrapper.update();\n }\n });\n\n this.threebox = wrapper;\n return wrapper;\n }\n\n /**\n * Get the threebox instance for 3D model operations\n */\n getThreebox() {\n return this.threebox;\n }\n\n getAllPolygonCoordinates = () => {\n const map = this.map;\n\n if (!map) return [];\n\n const polygonFeatures: any[] = [];\n const source = map.getSource('custom');\n if (source) {\n const features = map.querySourceFeatures('custom', {\n sourceLayer: 'geojson',\n filter: ['==', ['geometry-type'], 'Polygon']\n });\n\n if (features && features.length > 0) {\n features.forEach(feature => {\n if (\n (feature.geometry.type === 'Polygon' || feature.geometry.type === 'MultiPolygon') &&\n feature.properties.dimension_what === 'what.booth'\n ) {\n polygonFeatures.push({\n id: feature.properties.mapObjectId,\n name: feature.properties?.title || 'Unnamed Polygon',\n coordinates: feature.geometry.coordinates,\n properties: {\n ...feature.properties,\n hasImage: !!Math.round(Math.random())\n }\n });\n }\n });\n }\n }\n\n return polygonFeatures;\n };\n\n addNewLine(input: string): string {\n return input.replace(/ /g, '\\r\\n');\n }\n\n updatePolygons = (features: any[]) => {\n features.map(async (feature: any) => {\n const coordinates = feature.geometry.coordinates;\n // const centroid = feature.properties.center;\n const polygon = turf.polygon(coordinates);\n const centroid = turf.centroid(polygon).geometry.coordinates;\n // const modelPosition = projectToWorld(centroid);\n\n // const vertex1 = projectToWorld(coordinates[0][0]);\n // const vertex2 = projectToWorld(coordinates[0][1]);\n // const angle = vertex1.angleTo(vertex2);\n // console.log(angle);\n\n // await modelLoader.loadModel({\n // modelPath: feature.properties.modelPath,\n // feature,\n // wrapper: wrapper.current!,\n // onProgress: (progress) => {\n // setLoadingProgress((prev) => ({\n // ...prev,\n // [feature.properties.id]: progress,\n // }));\n // },\n // onError: (error) => {\n // console.error(\n // `Failed to load model ${feature.properties.id}:`,\n // error\n // );\n // },\n // });\n\n if (\n !feature.properties.hasImage &&\n feature.properties.dimension_where &&\n feature.properties.dimension_where === 'where.lima.mahsuri_center.exhibition_floor'\n ) {\n const myText = new SpriteText();\n myText.color = 'black';\n let text = feature.properties.title;\n text = this.addNewLine(text);\n\n // Set properties to configure:\n myText.text = text;\n myText.textHeight = 100;\n // myText.textHeight = 1;\n // myText.backgroundColor = '';\n const textPosition = projectToWorld(centroid);\n myText.rotation.x = Math.PI;\n myText.rotation.y = Math.PI;\n myText.scale.set(0.1, 0.1, 0.01);\n\n myText.position.set(\n textPosition.x,\n textPosition.y,\n // feature.properties.height > 0 ? 0.4 : 0.25\n 0.1\n );\n this.threebox.add(myText);\n } else {\n // Load Texture\n // const textureLoader = new THREE.TextureLoader();\n // textureLoader.load('/sk.png', (texture: THREE.Texture) => {\n // // Create a plane geometry and material with the loaded texture\n // const geometry = new THREE.PlaneGeometry(\n // texture.image.width,\n // texture.image.height\n // );\n // geometry.computeBoundingBox();\n // const material = new THREE.MeshStandardMaterial({\n // map: texture,\n // transparent: true, // Enable transparency\n // opacity: 1,\n // });\n // const plane = new THREE.Mesh(geometry, material);\n // const group = new THREE.Group();\n // const childContainer = new THREE.Group();\n // childContainer.add(plane);\n // childContainer.rotateZ(Math.PI / 2);\n // childContainer.rotateZ(1);\n // childContainer.updateMatrixWorld();\n // group.add(childContainer);\n // const geojsonbbox = turf.bbox(polygon);\n // const bbox1 = new THREE.Box3(\n // projectToWorld([geojsonbbox[2], geojsonbbox[3]]),\n // projectToWorld([geojsonbbox[0], geojsonbbox[1]])\n // );\n // const bbox2 = new THREE.Box3().setFromObject(plane);\n // const size1 = new THREE.Vector3();\n // bbox1.getSize(size1);\n // size1.setZ(1);\n // const size2 = new THREE.Vector3();\n // bbox2.getSize(size2);\n // size2.setZ(1);\n // const ratio = size1.divide(size2);\n // const ratioCopy = ratio.clone().multiplyScalar(0.85);\n // plane.scale.set(\n // plane.scale.x * ratioCopy.x,\n // plane.scale.y * ratioCopy.y,\n // plane.scale.z * ratioCopy.z\n // );\n // // // Set the position of the plane to the centroid\n // group.position.set(modelPosition.x, modelPosition.y, 0.11);\n // this.threebox.add(group);\n // });\n }\n });\n };\n\n addLogo = (logo: string, position: THREE.Vector3) => {\n const textureLoader = new THREE.TextureLoader();\n const texture = textureLoader.load(logo);\n\n // Define rectangle dimensions\n const width = 4;\n const height = 0;\n const depth = 2;\n\n // Create a box geometry instead of cylinder\n const geometry = new THREE.BoxGeometry(width, height, depth);\n\n // Create materials: [right, left, top, bottom, front, back]\n const sideMaterial = new THREE.MeshBasicMaterial({ color: new THREE.Color(0xffffff) });\n const topMaterial = new THREE.MeshStandardMaterial({\n map: texture,\n side: THREE.DoubleSide,\n transparent: true\n });\n\n // Create an array of materials for each face of the box\n const materials = [\n sideMaterial, // right\n sideMaterial, // left\n topMaterial, // top (with logo texture)\n sideMaterial, // bottom\n sideMaterial, // front\n sideMaterial // back\n ];\n\n // Create the mesh with geometry and materials\n const logoMesh = new THREE.Mesh(geometry, materials);\n\n // Adjust rotation to match your previous orientation\n logoMesh.rotation.x = Math.PI / 2;\n logoMesh.rotation.y = -Math.PI / 1.45;\n logoMesh.position.set(position.x + 0.5, position.y - 0.3, position.z);\n\n this.threebox.add(logoMesh);\n\n return logoMesh;\n };\n\n // Function to add text using Troika Text library at a specified position\n addTitle = (title: string, position: THREE.Vector3) => {\n // Create a new Text instance\n const textMesh = new Text();\n\n // Configure text properties\n textMesh.text = title;\n textMesh.fontSize = 0.2;\n textMesh.color = 0x000000;\n textMesh.anchorX = '50%';\n textMesh.anchorY = 'bottom-baseline';\n textMesh.fontWeight = 'bold';\n textMesh.textAlign = 'center';\n\n textMesh.position.set(position.x, position.y, position.z);\n textMesh.rotation.z = -Math.PI / 1.45;\n\n // Add text to the scene\n this.threebox.add(textMesh);\n\n // Update the text rendering\n textMesh.sync();\n\n return textMesh;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MainMap.js","names":["_troikaThreeText","require","turf","_interopRequireWildcard","THREE","_utils","_threeSpritetext","_interopRequireDefault","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","MainMap","constructor","metaAtlasCore","map","polygonFeatures","source","getSource","features","querySourceFeatures","sourceLayer","feature","geometry","type","properties","dimension_what","_feature$properties","id","mapObjectId","name","title","coordinates","hasImage","Math","round","random","polygon","centroid","dimension_where","myText","SpriteText","color","text","addNewLine","textHeight","textPosition","projectToWorld","rotation","x","PI","y","scale","position","threebox","add","logo","textureLoader","TextureLoader","texture","load","width","height","depth","BoxGeometry","sideMaterial","MeshBasicMaterial","Color","topMaterial","MeshStandardMaterial","side","DoubleSide","transparent","materials","logoMesh","Mesh","z","textMesh","Text","fontSize","anchorX","anchorY","fontWeight","textAlign","sync","mainInstance","init","map2D","initThreebox","wrapper","CustomThreeJSWrapper","setEnvironment","addLayer","renderingMode","onAdd","console","log","render","update","getThreebox","input","replace","exports"],"sources":["../../../../src/meta-atlas-sdk/3DMap/MainMap.ts"],"sourcesContent":["import { Map as MaplibreMap } from 'maplibre-gl';\n\nimport CustomThreeJSWrapper from './CustomThreeJsWrapper/CustomThreeJsWrapper';\nimport { Text } from 'troika-three-text';\n\nimport { EquirectangularReflectionMapping } from 'three';\nimport { MetaAtlasCore } from '../MetaAtlasCore/meta-atlas-sdk-core';\nimport * as turf from '@turf/turf';\nimport * as THREE from 'three';\nimport { projectToWorld } from './CustomThreeJsWrapper/utility/utils';\nimport SpriteText from 'three-spritetext';\nimport { HDRLoader } from 'three/examples/jsm/loaders/HDRLoader';\n\nexport default class MainMap {\n public static mainInstance: MainMap | null = null;\n public map!: MaplibreMap;\n public threebox!: CustomThreeJSWrapper;\n public metaAtlasCore!: MetaAtlasCore;\n\n constructor(metaAtlasCore: MetaAtlasCore) {\n if (MainMap.mainInstance) {\n return MainMap.mainInstance;\n }\n\n MainMap.mainInstance = this;\n\n this.metaAtlasCore = metaAtlasCore;\n }\n\n public init(map2D: MaplibreMap) {\n this.map = map2D;\n this.initThreebox();\n }\n\n /**\n * Creates a Threebox instance of the class.\n * @param map Maplibre instance to initialize threebox\n * @returns Threebox class instance created\n */\n private initThreebox() {\n const map = this.map;\n const wrapper = new CustomThreeJSWrapper(map);\n wrapper.setEnvironment();\n // const hdrLoader = new HDRLoader();\n // hdrLoader.load('./golden_gate_hills_1k.hdr', texture => {\n // texture.mapping = EquirectangularReflectionMapping;\n // wrapper.scene.environment = texture;\n // });\n\n map.addLayer({\n id: '3d-model-layer',\n type: 'custom',\n renderingMode: '3d',\n onAdd: () => {\n console.log('onAdd _initThreebox');\n },\n render: () => {\n wrapper.update();\n }\n });\n\n this.threebox = wrapper;\n return wrapper;\n }\n\n /**\n * Get the threebox instance for 3D model operations\n */\n getThreebox() {\n return this.threebox;\n }\n\n getAllPolygonCoordinates = () => {\n const map = this.map;\n\n if (!map) return [];\n\n const polygonFeatures: any[] = [];\n const source = map.getSource('custom');\n if (source) {\n const features = map.querySourceFeatures('custom', {\n sourceLayer: 'geojson',\n filter: ['==', ['geometry-type'], 'Polygon']\n });\n\n if (features && features.length > 0) {\n features.forEach(feature => {\n if (\n (feature.geometry.type === 'Polygon' || feature.geometry.type === 'MultiPolygon') &&\n feature.properties.dimension_what === 'what.booth'\n ) {\n polygonFeatures.push({\n id: feature.properties.mapObjectId,\n name: feature.properties?.title || 'Unnamed Polygon',\n coordinates: feature.geometry.coordinates,\n properties: {\n ...feature.properties,\n hasImage: !!Math.round(Math.random())\n }\n });\n }\n });\n }\n }\n\n return polygonFeatures;\n };\n\n addNewLine(input: string): string {\n return input.replace(/ /g, '\\r\\n');\n }\n\n updatePolygons = (features: any[]) => {\n features.map(async (feature: any) => {\n const coordinates = feature.geometry.coordinates;\n // const centroid = feature.properties.center;\n const polygon = turf.polygon(coordinates);\n const centroid = turf.centroid(polygon).geometry.coordinates;\n // const modelPosition = projectToWorld(centroid);\n\n // const vertex1 = projectToWorld(coordinates[0][0]);\n // const vertex2 = projectToWorld(coordinates[0][1]);\n // const angle = vertex1.angleTo(vertex2);\n // console.log(angle);\n\n // await modelLoader.loadModel({\n // modelPath: feature.properties.modelPath,\n // feature,\n // wrapper: wrapper.current!,\n // onProgress: (progress) => {\n // setLoadingProgress((prev) => ({\n // ...prev,\n // [feature.properties.id]: progress,\n // }));\n // },\n // onError: (error) => {\n // console.error(\n // `Failed to load model ${feature.properties.id}:`,\n // error\n // );\n // },\n // });\n\n if (\n !feature.properties.hasImage &&\n feature.properties.dimension_where &&\n feature.properties.dimension_where === 'where.lima.mahsuri_center.exhibition_floor'\n ) {\n const myText = new SpriteText();\n myText.color = 'black';\n let text = feature.properties.title;\n text = this.addNewLine(text);\n\n // Set properties to configure:\n myText.text = text;\n myText.textHeight = 100;\n // myText.textHeight = 1;\n // myText.backgroundColor = '';\n const textPosition = projectToWorld(centroid);\n myText.rotation.x = Math.PI;\n myText.rotation.y = Math.PI;\n myText.scale.set(0.1, 0.1, 0.01);\n\n myText.position.set(\n textPosition.x,\n textPosition.y,\n // feature.properties.height > 0 ? 0.4 : 0.25\n 0.1\n );\n this.threebox.add(myText);\n } else {\n // Load Texture\n // const textureLoader = new THREE.TextureLoader();\n // textureLoader.load('/sk.png', (texture: THREE.Texture) => {\n // // Create a plane geometry and material with the loaded texture\n // const geometry = new THREE.PlaneGeometry(\n // texture.image.width,\n // texture.image.height\n // );\n // geometry.computeBoundingBox();\n // const material = new THREE.MeshStandardMaterial({\n // map: texture,\n // transparent: true, // Enable transparency\n // opacity: 1,\n // });\n // const plane = new THREE.Mesh(geometry, material);\n // const group = new THREE.Group();\n // const childContainer = new THREE.Group();\n // childContainer.add(plane);\n // childContainer.rotateZ(Math.PI / 2);\n // childContainer.rotateZ(1);\n // childContainer.updateMatrixWorld();\n // group.add(childContainer);\n // const geojsonbbox = turf.bbox(polygon);\n // const bbox1 = new THREE.Box3(\n // projectToWorld([geojsonbbox[2], geojsonbbox[3]]),\n // projectToWorld([geojsonbbox[0], geojsonbbox[1]])\n // );\n // const bbox2 = new THREE.Box3().setFromObject(plane);\n // const size1 = new THREE.Vector3();\n // bbox1.getSize(size1);\n // size1.setZ(1);\n // const size2 = new THREE.Vector3();\n // bbox2.getSize(size2);\n // size2.setZ(1);\n // const ratio = size1.divide(size2);\n // const ratioCopy = ratio.clone().multiplyScalar(0.85);\n // plane.scale.set(\n // plane.scale.x * ratioCopy.x,\n // plane.scale.y * ratioCopy.y,\n // plane.scale.z * ratioCopy.z\n // );\n // // // Set the position of the plane to the centroid\n // group.position.set(modelPosition.x, modelPosition.y, 0.11);\n // this.threebox.add(group);\n // });\n }\n });\n };\n\n addLogo = (logo: string, position: THREE.Vector3) => {\n const textureLoader = new THREE.TextureLoader();\n const texture = textureLoader.load(logo);\n\n // Define rectangle dimensions\n const width = 4;\n const height = 0;\n const depth = 2;\n\n // Create a box geometry instead of cylinder\n const geometry = new THREE.BoxGeometry(width, height, depth);\n\n // Create materials: [right, left, top, bottom, front, back]\n const sideMaterial = new THREE.MeshBasicMaterial({ color: new THREE.Color(0xffffff) });\n const topMaterial = new THREE.MeshStandardMaterial({\n map: texture,\n side: THREE.DoubleSide,\n transparent: true\n });\n\n // Create an array of materials for each face of the box\n const materials = [\n sideMaterial, // right\n sideMaterial, // left\n topMaterial, // top (with logo texture)\n sideMaterial, // bottom\n sideMaterial, // front\n sideMaterial // back\n ];\n\n // Create the mesh with geometry and materials\n const logoMesh = new THREE.Mesh(geometry, materials);\n\n // Adjust rotation to match your previous orientation\n logoMesh.rotation.x = Math.PI / 2;\n logoMesh.rotation.y = -Math.PI / 1.45;\n logoMesh.position.set(position.x + 0.5, position.y - 0.3, position.z);\n\n this.threebox.add(logoMesh);\n\n return logoMesh;\n };\n\n // Function to add text using Troika Text library at a specified position\n addTitle = (title: string, position: THREE.Vector3) => {\n // Create a new Text instance\n const textMesh = new Text();\n\n // Configure text properties\n textMesh.text = title;\n textMesh.fontSize = 0.2;\n textMesh.color = 0x000000;\n textMesh.anchorX = '50%';\n textMesh.anchorY = 'bottom-baseline';\n textMesh.fontWeight = 'bold';\n textMesh.textAlign = 'center';\n\n textMesh.position.set(position.x, position.y, position.z);\n textMesh.rotation.z = -Math.PI / 1.45;\n\n // Add text to the scene\n this.threebox.add(textMesh);\n\n // Update the text rendering\n textMesh.sync();\n\n return textMesh;\n };\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,gBAAA,GAAAC,OAAA;AAIA,IAAAC,IAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAD,uBAAA,CAAAF,OAAA;AAA+B,IAAAI,MAAA,GAAAJ,OAAA;AAE/B,IAAAK,gBAAA,GAAAC,sBAAA,CAAAN,OAAA;AAA0C,SAAAE,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAF,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;AAAA,SAAAmB,QAAAnB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAe,MAAA,CAAAI,IAAA,CAAApB,CAAA,OAAAgB,MAAA,CAAAK,qBAAA,QAAAf,CAAA,GAAAU,MAAA,CAAAK,qBAAA,CAAArB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAgB,MAAA,WAAAnB,CAAA,WAAAa,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAoB,UAAA,OAAAtB,CAAA,CAAAuB,IAAA,CAAAC,KAAA,CAAAxB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAAyB,cAAA1B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAwB,SAAA,CAAAC,MAAA,EAAAzB,CAAA,UAAAF,CAAA,WAAA0B,SAAA,CAAAxB,CAAA,IAAAwB,SAAA,CAAAxB,CAAA,QAAAA,CAAA,OAAAgB,OAAA,CAAAH,MAAA,CAAAf,CAAA,OAAA4B,OAAA,WAAA1B,CAAA,IAAA2B,eAAA,CAAA9B,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAa,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAhC,CAAA,EAAAgB,MAAA,CAAAe,yBAAA,CAAA9B,CAAA,KAAAkB,OAAA,CAAAH,MAAA,CAAAf,CAAA,GAAA4B,OAAA,WAAA1B,CAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAG,CAAA,EAAAa,MAAA,CAAAE,wBAAA,CAAAjB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAAA,SAAA8B,gBAAA9B,CAAA,EAAAG,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAA8B,cAAA,CAAA9B,CAAA,MAAAH,CAAA,GAAAgB,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAG,CAAA,IAAA+B,KAAA,EAAAjC,CAAA,EAAAsB,UAAA,MAAAY,YAAA,MAAAC,QAAA,UAAApC,CAAA,CAAAG,CAAA,IAAAF,CAAA,EAAAD,CAAA;AAAA,SAAAiC,eAAAhC,CAAA,QAAAM,CAAA,GAAA8B,YAAA,CAAApC,CAAA,uCAAAM,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAA8B,aAAApC,CAAA,EAAAE,CAAA,2BAAAF,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAqC,MAAA,CAAAC,WAAA,kBAAAvC,CAAA,QAAAO,CAAA,GAAAP,CAAA,CAAAe,IAAA,CAAAd,CAAA,EAAAE,CAAA,uCAAAI,CAAA,SAAAA,CAAA,YAAAiC,SAAA,yEAAArC,CAAA,GAAAsC,MAAA,GAAAC,MAAA,EAAAzC,CAAA;AAG3B,MAAM0C,OAAO,CAAC;EAM3BC,WAAWA,CAACC,aAA4B,EAAE;IAAAf,eAAA,mCAqDf,MAAM;MAC/B,MAAMgB,GAAG,GAAG,IAAI,CAACA,GAAG;MAEpB,IAAI,CAACA,GAAG,EAAE,OAAO,EAAE;MAEnB,MAAMC,eAAsB,GAAG,EAAE;MACjC,MAAMC,MAAM,GAAGF,GAAG,CAACG,SAAS,CAAC,QAAQ,CAAC;MACtC,IAAID,MAAM,EAAE;QACV,MAAME,QAAQ,GAAGJ,GAAG,CAACK,mBAAmB,CAAC,QAAQ,EAAE;UACjDC,WAAW,EAAE,SAAS;UACtB9B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,SAAS;QAC7C,CAAC,CAAC;QAEF,IAAI4B,QAAQ,IAAIA,QAAQ,CAACtB,MAAM,GAAG,CAAC,EAAE;UACnCsB,QAAQ,CAACrB,OAAO,CAACwB,OAAO,IAAI;YAC1B,IACE,CAACA,OAAO,CAACC,QAAQ,CAACC,IAAI,KAAK,SAAS,IAAIF,OAAO,CAACC,QAAQ,CAACC,IAAI,KAAK,cAAc,KAChFF,OAAO,CAACG,UAAU,CAACC,cAAc,KAAK,YAAY,EAClD;cAAA,IAAAC,mBAAA;cACAX,eAAe,CAACvB,IAAI,CAAC;gBACnBmC,EAAE,EAAEN,OAAO,CAACG,UAAU,CAACI,WAAW;gBAClCC,IAAI,EAAE,EAAAH,mBAAA,GAAAL,OAAO,CAACG,UAAU,cAAAE,mBAAA,uBAAlBA,mBAAA,CAAoBI,KAAK,KAAI,iBAAiB;gBACpDC,WAAW,EAAEV,OAAO,CAACC,QAAQ,CAACS,WAAW;gBACzCP,UAAU,EAAA9B,aAAA,CAAAA,aAAA,KACL2B,OAAO,CAACG,UAAU;kBACrBQ,QAAQ,EAAE,CAAC,CAACC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC;gBAAC;cAEzC,CAAC,CAAC;YACJ;UACF,CAAC,CAAC;QACJ;MACF;MAEA,OAAOpB,eAAe;IACxB,CAAC;IAAAjB,eAAA,yBAMiBoB,QAAe,IAAK;MACpCA,QAAQ,CAACJ,GAAG,CAAC,MAAOO,OAAY,IAAK;QACnC,MAAMU,WAAW,GAAGV,OAAO,CAACC,QAAQ,CAACS,WAAW;QAChD;QACA,MAAMK,OAAO,GAAG1E,IAAI,CAAC0E,OAAO,CAACL,WAAW,CAAC;QACzC,MAAMM,QAAQ,GAAG3E,IAAI,CAAC2E,QAAQ,CAACD,OAAO,CAAC,CAACd,QAAQ,CAACS,WAAW;QAC5D;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA,IACE,CAACV,OAAO,CAACG,UAAU,CAACQ,QAAQ,IAC5BX,OAAO,CAACG,UAAU,CAACc,eAAe,IAClCjB,OAAO,CAACG,UAAU,CAACc,eAAe,KAAK,4CAA4C,EACnF;UACA,MAAMC,MAAM,GAAG,IAAIC,wBAAU,CAAC,CAAC;UAC/BD,MAAM,CAACE,KAAK,GAAG,OAAO;UACtB,IAAIC,IAAI,GAAGrB,OAAO,CAACG,UAAU,CAACM,KAAK;UACnCY,IAAI,GAAG,IAAI,CAACC,UAAU,CAACD,IAAI,CAAC;;UAE5B;UACAH,MAAM,CAACG,IAAI,GAAGA,IAAI;UAClBH,MAAM,CAACK,UAAU,GAAG,GAAG;UACvB;UACA;UACA,MAAMC,YAAY,GAAG,IAAAC,qBAAc,EAACT,QAAQ,CAAC;UAC7CE,MAAM,CAACQ,QAAQ,CAACC,CAAC,GAAGf,IAAI,CAACgB,EAAE;UAC3BV,MAAM,CAACQ,QAAQ,CAACG,CAAC,GAAGjB,IAAI,CAACgB,EAAE;UAC3BV,MAAM,CAACY,KAAK,CAACtE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;UAEhC0D,MAAM,CAACa,QAAQ,CAACvE,GAAG,CACjBgE,YAAY,CAACG,CAAC,EACdH,YAAY,CAACK,CAAC;UACd;UACA,GACF,CAAC;UACD,IAAI,CAACG,QAAQ,CAACC,GAAG,CAACf,MAAM,CAAC;QAC3B,CAAC,MAAM;UACL;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;QAAA;MAEJ,CAAC,CAAC;IACJ,CAAC;IAAAzC,eAAA,kBAES,CAACyD,IAAY,EAAEH,QAAuB,KAAK;MACnD,MAAMI,aAAa,GAAG,IAAI5F,KAAK,CAAC6F,aAAa,CAAC,CAAC;MAC/C,MAAMC,OAAO,GAAGF,aAAa,CAACG,IAAI,CAACJ,IAAI,CAAC;;MAExC;MACA,MAAMK,KAAK,GAAG,CAAC;MACf,MAAMC,MAAM,GAAG,CAAC;MAChB,MAAMC,KAAK,GAAG,CAAC;;MAEf;MACA,MAAMxC,QAAQ,GAAG,IAAI1D,KAAK,CAACmG,WAAW,CAACH,KAAK,EAAEC,MAAM,EAAEC,KAAK,CAAC;;MAE5D;MACA,MAAME,YAAY,GAAG,IAAIpG,KAAK,CAACqG,iBAAiB,CAAC;QAAExB,KAAK,EAAE,IAAI7E,KAAK,CAACsG,KAAK,CAAC,QAAQ;MAAE,CAAC,CAAC;MACtF,MAAMC,WAAW,GAAG,IAAIvG,KAAK,CAACwG,oBAAoB,CAAC;QACjDtD,GAAG,EAAE4C,OAAO;QACZW,IAAI,EAAEzG,KAAK,CAAC0G,UAAU;QACtBC,WAAW,EAAE;MACf,CAAC,CAAC;;MAEF;MACA,MAAMC,SAAS,GAAG,CAChBR,YAAY;MAAE;MACdA,YAAY;MAAE;MACdG,WAAW;MAAE;MACbH,YAAY;MAAE;MACdA,YAAY;MAAE;MACdA,YAAY,CAAC;MAAA,CACd;;MAED;MACA,MAAMS,QAAQ,GAAG,IAAI7G,KAAK,CAAC8G,IAAI,CAACpD,QAAQ,EAAEkD,SAAS,CAAC;;MAEpD;MACAC,QAAQ,CAAC1B,QAAQ,CAACC,CAAC,GAAGf,IAAI,CAACgB,EAAE,GAAG,CAAC;MACjCwB,QAAQ,CAAC1B,QAAQ,CAACG,CAAC,GAAG,CAACjB,IAAI,CAACgB,EAAE,GAAG,IAAI;MACrCwB,QAAQ,CAACrB,QAAQ,CAACvE,GAAG,CAACuE,QAAQ,CAACJ,CAAC,GAAG,GAAG,EAAEI,QAAQ,CAACF,CAAC,GAAG,GAAG,EAAEE,QAAQ,CAACuB,CAAC,CAAC;MAErE,IAAI,CAACtB,QAAQ,CAACC,GAAG,CAACmB,QAAQ,CAAC;MAE3B,OAAOA,QAAQ;IACjB,CAAC;IAED;IAAA3E,eAAA,mBACW,CAACgC,KAAa,EAAEsB,QAAuB,KAAK;MACrD;MACA,MAAMwB,QAAQ,GAAG,IAAIC,qBAAI,CAAC,CAAC;;MAE3B;MACAD,QAAQ,CAAClC,IAAI,GAAGZ,KAAK;MACrB8C,QAAQ,CAACE,QAAQ,GAAG,GAAG;MACvBF,QAAQ,CAACnC,KAAK,GAAG,QAAQ;MACzBmC,QAAQ,CAACG,OAAO,GAAG,KAAK;MACxBH,QAAQ,CAACI,OAAO,GAAG,iBAAiB;MACpCJ,QAAQ,CAACK,UAAU,GAAG,MAAM;MAC5BL,QAAQ,CAACM,SAAS,GAAG,QAAQ;MAE7BN,QAAQ,CAACxB,QAAQ,CAACvE,GAAG,CAACuE,QAAQ,CAACJ,CAAC,EAAEI,QAAQ,CAACF,CAAC,EAAEE,QAAQ,CAACuB,CAAC,CAAC;MACzDC,QAAQ,CAAC7B,QAAQ,CAAC4B,CAAC,GAAG,CAAC1C,IAAI,CAACgB,EAAE,GAAG,IAAI;;MAErC;MACA,IAAI,CAACI,QAAQ,CAACC,GAAG,CAACsB,QAAQ,CAAC;;MAE3B;MACAA,QAAQ,CAACO,IAAI,CAAC,CAAC;MAEf,OAAOP,QAAQ;IACjB,CAAC;IA3QC,IAAIjE,OAAO,CAACyE,YAAY,EAAE;MACxB,OAAOzE,OAAO,CAACyE,YAAY;IAC7B;IAEAzE,OAAO,CAACyE,YAAY,GAAG,IAAI;IAE3B,IAAI,CAACvE,aAAa,GAAGA,aAAa;EACpC;EAEOwE,IAAIA,CAACC,KAAkB,EAAE;IAC9B,IAAI,CAACxE,GAAG,GAAGwE,KAAK;IAChB,IAAI,CAACC,YAAY,CAAC,CAAC;EACrB;;EAEA;AACF;AACA;AACA;AACA;EACUA,YAAYA,CAAA,EAAG;IACrB,MAAMzE,GAAG,GAAG,IAAI,CAACA,GAAG;IACpB,MAAM0E,OAAO,GAAG,IAAIC,6BAAoB,CAAC3E,GAAG,CAAC;IAC7C0E,OAAO,CAACE,cAAc,CAAC,CAAC;IACxB;IACA;IACA;IACA;IACA;;IAEA5E,GAAG,CAAC6E,QAAQ,CAAC;MACXhE,EAAE,EAAE,gBAAgB;MACpBJ,IAAI,EAAE,QAAQ;MACdqE,aAAa,EAAE,IAAI;MACnBC,KAAK,EAAEA,CAAA,KAAM;QACXC,OAAO,CAACC,GAAG,CAAC,qBAAqB,CAAC;MACpC,CAAC;MACDC,MAAM,EAAEA,CAAA,KAAM;QACZR,OAAO,CAACS,MAAM,CAAC,CAAC;MAClB;IACF,CAAC,CAAC;IAEF,IAAI,CAAC5C,QAAQ,GAAGmC,OAAO;IACvB,OAAOA,OAAO;EAChB;;EAEA;AACF;AACA;EACEU,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAC7C,QAAQ;EACtB;EAsCAV,UAAUA,CAACwD,KAAa,EAAU;IAChC,OAAOA,KAAK,CAACC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;EACpC;AAkLF;AAACC,OAAA,CAAA3H,OAAA,GAAAiC,OAAA;AAAAb,eAAA,CAnRoBa,OAAO,kBACmB,IAAI","ignoreList":[]}