hart-estate-widget 0.0.69 → 0.0.72

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 (110) hide show
  1. package/README.md +30 -27
  2. package/build/widget.bundle.js +3 -0
  3. package/build/widget.bundle.js.LICENSE.txt +78 -0
  4. package/build/widget.bundle.js.map +1 -0
  5. package/build/widget.module.js +3 -0
  6. package/build/widget.module.js.LICENSE.txt +78 -0
  7. package/build/widget.module.js.map +1 -0
  8. package/package.json +22 -21
  9. package/build/assets/css/index.css +0 -2
  10. package/build/assets/fonts/RobotoMono/RobotoMono-Bold.ttf +0 -0
  11. package/build/assets/fonts/RobotoMono/RobotoMono-Bold.woff +0 -0
  12. package/build/assets/fonts/RobotoMono/RobotoMono-Bold.woff2 +0 -0
  13. package/build/assets/fonts/RobotoMono/RobotoMono-BoldItalic.ttf +0 -0
  14. package/build/assets/fonts/RobotoMono/RobotoMono-BoldItalic.woff +0 -0
  15. package/build/assets/fonts/RobotoMono/RobotoMono-BoldItalic.woff2 +0 -0
  16. package/build/assets/fonts/RobotoMono/RobotoMono-Italic.ttf +0 -0
  17. package/build/assets/fonts/RobotoMono/RobotoMono-Italic.woff +0 -0
  18. package/build/assets/fonts/RobotoMono/RobotoMono-Italic.woff2 +0 -0
  19. package/build/assets/fonts/RobotoMono/RobotoMono-Light.ttf +0 -0
  20. package/build/assets/fonts/RobotoMono/RobotoMono-Light.woff +0 -0
  21. package/build/assets/fonts/RobotoMono/RobotoMono-Light.woff2 +0 -0
  22. package/build/assets/fonts/RobotoMono/RobotoMono-LightItalic.ttf +0 -0
  23. package/build/assets/fonts/RobotoMono/RobotoMono-LightItalic.woff +0 -0
  24. package/build/assets/fonts/RobotoMono/RobotoMono-LightItalic.woff2 +0 -0
  25. package/build/assets/fonts/RobotoMono/RobotoMono-Medium.ttf +0 -0
  26. package/build/assets/fonts/RobotoMono/RobotoMono-Medium.woff +0 -0
  27. package/build/assets/fonts/RobotoMono/RobotoMono-Medium.woff2 +0 -0
  28. package/build/assets/fonts/RobotoMono/RobotoMono-MediumItalic.ttf +0 -0
  29. package/build/assets/fonts/RobotoMono/RobotoMono-MediumItalic.woff +0 -0
  30. package/build/assets/fonts/RobotoMono/RobotoMono-MediumItalic.woff2 +0 -0
  31. package/build/assets/fonts/RobotoMono/RobotoMono-Regular.ttf +0 -0
  32. package/build/assets/fonts/RobotoMono/RobotoMono-Regular.woff +0 -0
  33. package/build/assets/fonts/RobotoMono/RobotoMono-Regular.woff2 +0 -0
  34. package/build/assets/fonts/RobotoMono/RobotoMono-Thin.ttf +0 -0
  35. package/build/assets/fonts/RobotoMono/RobotoMono-Thin.woff +0 -0
  36. package/build/assets/fonts/RobotoMono/RobotoMono-Thin.woff2 +0 -0
  37. package/build/assets/fonts/RobotoMono/RobotoMono.css +0 -98
  38. package/build/assets/icons/1x.svg +0 -4
  39. package/build/assets/icons/2x.svg +0 -4
  40. package/build/assets/icons/arrow-left.svg +0 -4
  41. package/build/assets/icons/arrow-right.svg +0 -4
  42. package/build/assets/icons/bullet.png +0 -0
  43. package/build/assets/icons/close.svg +0 -4
  44. package/build/assets/icons/enter-fullscreen.svg +0 -6
  45. package/build/assets/icons/hand-move.svg +0 -15
  46. package/build/assets/icons/hand-research.svg +0 -12
  47. package/build/assets/icons/plan.svg +0 -5
  48. package/build/assets/icons/render.svg +0 -7
  49. package/build/assets/icons/rotation-close.svg +0 -6
  50. package/build/assets/icons/rotation.svg +0 -4
  51. package/build/assets/icons/surface.svg +0 -5
  52. package/build/assets/img/3D.jpg +0 -0
  53. package/build/assets/img/door-icon.png +0 -0
  54. package/build/assets/img/door-texture.jpeg +0 -0
  55. package/build/assets/img/exterior-wall-texture-roughness.jpg +0 -0
  56. package/build/assets/img/exterior-wall-texture.jpeg +0 -0
  57. package/build/assets/img/floor-bathroom.jpg +0 -0
  58. package/build/assets/img/floor-dark.jpg +0 -0
  59. package/build/assets/img/floor-white.jpg +0 -0
  60. package/build/assets/img/floor.jpg +0 -0
  61. package/build/assets/img/grass.jpg +0 -0
  62. package/build/assets/img/logo.svg +0 -11
  63. package/build/assets/img/refresh-icon.svg +0 -6
  64. package/build/assets/img/spot-icon.png +0 -0
  65. package/build/assets/img/wall-texture.jpg +0 -0
  66. package/build/assets/sass/components/instructions.sass +0 -94
  67. package/build/assets/sass/components/loader.sass +0 -54
  68. package/build/assets/sass/components/model.sass +0 -27
  69. package/build/assets/sass/components/panorama.sass +0 -174
  70. package/build/assets/sass/components/rotation.sass +0 -202
  71. package/build/assets/sass/components/tabs.sass +0 -121
  72. package/build/assets/sass/index.sass +0 -65
  73. package/build/assets/sass/mixin.sass +0 -48
  74. package/build/assets/sass/vars.sass +0 -28
  75. package/build/bundle.js +0 -2
  76. package/build/components/Application.js +0 -2
  77. package/build/components/Buttons/FullScreenButton.js +0 -2
  78. package/build/components/Buttons/TabButton.js +0 -2
  79. package/build/components/Instructions.js +0 -2
  80. package/build/components/Loader.js +0 -2
  81. package/build/components/ModelTab.js +0 -2
  82. package/build/components/PanoramaTab.js +0 -2
  83. package/build/components/RotationTab/DefaultView.js +0 -2
  84. package/build/components/RotationTab/ThreesixtyView.js +0 -2
  85. package/build/components/RotationTab/index.js +0 -2
  86. package/build/components/Widget.js +0 -2
  87. package/build/config/defaultConfig.js +0 -2
  88. package/build/enums/deviceOrientationStatuses.js +0 -2
  89. package/build/enums/deviceWidth.js +0 -2
  90. package/build/enums/imageExtentions.js +0 -2
  91. package/build/enums/rotationModes.js +0 -2
  92. package/build/index.css +0 -2
  93. package/build/index.js +0 -2
  94. package/build/locale/en/data.json +0 -25
  95. package/build/locale/index.js +0 -2
  96. package/build/locale/ru/data.json +0 -25
  97. package/build/store/apiStore.js +0 -2
  98. package/build/store/deviceStore.js +0 -2
  99. package/build/store/fullScreenStore.js +0 -2
  100. package/build/store/houseStore.js +0 -2
  101. package/build/store/index.js +0 -2
  102. package/build/store/modelStore.js +0 -2
  103. package/build/threesixty/events.js +0 -2
  104. package/build/threesixty/index.js +0 -2
  105. package/build/utils/csg/csg-lib.js +0 -2
  106. package/build/utils/csg/csg-worker.js +0 -2
  107. package/build/utils/csg/three-csg.js +0 -2
  108. package/build/utils/helpers.js +0 -2
  109. package/build/utils/modelHelpers.js +0 -2
  110. package/build/utils/panoramaHelpers.js +0 -2
@@ -1,2 +0,0 @@
1
- "use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireDefault(require("react")),THREE=_interopRequireWildcard(require("three")),_csgLib=require("./csg-lib.js");function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function(e){return e?t:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!==_typeof(e)&&"function"!=typeof e)return{default:e};r=_getRequireWildcardCache(r);if(r&&r.has(e))return r.get(e);var t,o,a={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&((o=n?Object.getOwnPropertyDescriptor(e,t):null)&&(o.get||o.set)?Object.defineProperty(a,t,o):a[t]=e[t]);return a.default=e,r&&r.set(e,a),a}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}require("./csg-worker.js");var Geometry=THREE.Geometry,BufferGeometry=THREE.BufferGeometry,Vector3=THREE.Vector3,Vector2=THREE.Vector2,ttvv0=(_csgLib.CSG.fromGeometry=function(e,r){var t=[];if(e.isGeometry)for(var o=e.faces,a=e.vertices,n=["a","b","c"],i=0;i<o.length;i++){for(var u=o[i],c=[],s=0;s<3;s++)c.push(new _csgLib.Vertex(a[u[n[s]]],u.vertexNormals[s],e.faceVertexUvs[0][i][s]));t.push(new _csgLib.Polygon(c,r))}else if(e.isBufferGeometry){var p=e.attributes.position,f=e.attributes.normal,y=e.attributes.uv,l=e.attributes.color;if(e.index)v=e.index.array;else for(var v=new Array(p.array.length/p.itemSize|0),m=0;m<v.length;m++)v[m]=m;for(var h=v.length/3|0,t=new Array(h),d=0,w=0,E=v.length;d<E;d+=3,w++){for(var g=new Array(3),b=0;b<3;b++){var _=v[d+b],R=3*_,_=2*_,x=p.array[R],G=p.array[1+R],H=p.array[2+R],T=f.array[R],S=f.array[1+R],R=f.array[2+R];g[b]=new _csgLib.Vertex({x:x,y:G,z:H},{x:T,y:S,z:R},y&&{x:y.array[_],y:y.array[1+_],z:0},l&&{x:l.array[_],y:l.array[1+_],z:l.array[2+_]})}t[w]=new _csgLib.Polygon(g,r)}}else console.error("Unsupported CSG input type:"+e.type);return _csgLib.CSG.fromPolygons(t)},new THREE.Vector3),tmpm3=new THREE.Matrix3,nbuf3=(_csgLib.CSG.fromMesh=function(e,r){var t=_csgLib.CSG.fromGeometry(e.geometry,r);tmpm3.getNormalMatrix(e.matrix);for(var o=0;o<t.polygons.length;o++)for(var a=t.polygons[o],n=0;n<a.vertices.length;n++){var i=a.vertices[n];i.pos.copy(ttvv0.copy(i.pos).applyMatrix4(e.matrix)),i.normal.copy(ttvv0.copy(i.normal).applyMatrix3(tmpm3))}return t},function(e){return{top:0,array:new Float32Array(e),write:function(e){this.array[this.top++]=e.x,this.array[this.top++]=e.y,this.array[this.top++]=e.z}}}),nbuf2=function(e){return{top:0,array:new Float32Array(e),write:function(e){this.array[this.top++]=e.x,this.array[this.top++]=e.y}}},_default=(_csgLib.CSG.toGeometry=function(e){var r=e.polygons;if(!(1<arguments.length&&void 0!==arguments[1])||arguments[1]){var a,n,i=0,u=(r.forEach(function(e){return i+=e.vertices.length-2}),f=new THREE.BufferGeometry,nbuf3(3*i*3)),c=nbuf3(3*i*3),s=[];if(r.forEach(function(e){var r=e.vertices,t=r.length;void 0===e.shared||s[e.shared]||(s[e.shared]=[]),t&&(void 0!==r[0].color&&(n=n||nbuf3(3*i*3)),void 0!==r[0].uv&&(a=a||nbuf2(2*i*3)));for(var o=3;o<=t;o++)void 0!==e.shared&&s[e.shared].push(u.top/3,u.top/3+1,u.top/3+2),u.write(r[0].pos),u.write(r[o-2].pos),u.write(r[o-1].pos),c.write(r[0].normal),c.write(r[o-2].normal),c.write(r[o-1].normal),a&&r[0].uv&&(a.write(r[0].uv)||a.write(r[o-2].uv)||a.write(r[o-1].uv)),!n||n.write(r[0].color)||n.write(r[o-2].color)||n.write(r[o-1].color)}),f.setAttribute("position",new THREE.BufferAttribute(u.array,3)),f.setAttribute("normal",new THREE.BufferAttribute(c.array,3)),a&&f.setAttribute("uv",new THREE.BufferAttribute(a.array,2)),n&&f.setAttribute("color",new THREE.BufferAttribute(n.array,3)),s.length){for(var t=[],o=0,p=0;p<s.length;p++)f.addGroup(o,s[p].length,p),o+=s[p].length,t=t.concat(s[p]);f.setIndex(t)}0}else{for(var f,y=(f=new Geometry).vertices,l=f.faceVertexUvs[0],v=0;v<r.length;v++){for(var m=r[v],h=m.vertices,d=y.length,w=h.length,E=0;E<w;E++)y.push((new THREE.Vector3).copy(h[E].pos));for(var g=3;g<=w;g++){var b=new THREE.Face3,_=[],R=(l.push(_),b.vertexNormals);b.a=d,b.b=d+g-2,b.c=d+g-1,R.push((new THREE.Vector3).copy(h[0].normal)),R.push((new THREE.Vector3).copy(h[g-2].normal)),R.push((new THREE.Vector3).copy(h[g-1].normal)),_.push((new THREE.Vector3).copy(h[0].uv)),_.push((new THREE.Vector3).copy(h[g-2].uv)),_.push((new THREE.Vector3).copy(h[g-1].uv)),b.normal=(new THREE.Vector3).copy(m.plane.normal),f.faces.push(b)}}(f=(new THREE.BufferGeometry).fromGeometry(f)).verticesNeedUpdate=f.elementsNeedUpdate=f.normalsNeedUpdate=!0}return f},_csgLib.CSG.toMesh=function(e,r,t){var e=_csgLib.CSG.toGeometry(e),o=(new THREE.Matrix4).copy(r).invert(),o=(e.applyMatrix4(o),e.computeBoundingSphere(),e.computeBoundingBox(),new THREE.Mesh(e,t));return o.matrix.copy(r),o.matrix.decompose(o.position,o.quaternion,o.scale),o.rotation.setFromQuaternion(o.quaternion),o.updateMatrixWorld(),o.castShadow=o.receiveShadow=!0,o},_csgLib.CSG);exports.default=_default;
2
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzL2NzZy90aHJlZS1jc2cuanMiXSwibmFtZXMiOlsiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJUSFJFRSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2NzZ0xpYiIsIkdlb21ldHJ5IiwiQnVmZmVyR2VvbWV0cnkiLCJWZWN0b3IzIiwiVmVjdG9yMiIsInR0dnYwIiwiQ1NHIiwiZnJvbUdlb21ldHJ5IiwiZ2VvbSIsIm9iamVjdEluZGV4IiwicG9seXMiLCJpc0dlb21ldHJ5IiwiZnMiLCJmYWNlcyIsInZzIiwidmVydGljZXMiLCJmbSIsImkiLCJsZW5ndGgiLCJmIiwiaiIsInB1c2giLCJWZXJ0ZXgiLCJ2ZXJ0ZXhOb3JtYWxzIiwiZmFjZVZlcnRleFV2cyIsIlBvbHlnb24iLCJpc0J1ZmZlckdlb21ldHJ5IiwicG9zYXR0ciIsImF0dHJpYnV0ZXMiLCJwb3NpdGlvbiIsIm5vcm1hbGF0dHIiLCJub3JtYWwiLCJjb2xvcmF0dHIiLCJjb2xvciIsImluZGV4IiwiYXJyYXkiLCJBcnJheSIsIml0ZW1TaXplIiwidHJpQ291bnQiLCJsIiwicGxpIiwidmkiLCJ2dCIsIngiLCJ2cCIsInkiLCJ6Iiwibm9ybWFscyIsIm56IiwidXYiLCJueCIsInV2YXR0ciIsImNvbnNvbGUiLCJlcnJvciIsInR5cGUiLCJmcm9tUG9seWdvbnMiLCJ0bXBtMyIsIm5idWYzIiwiZnJvbU1lc2giLCJjc2ciLCJnZW9tZXRyeSIsImdldE5vcm1hbE1hdHJpeCIsInBvbHlnb25zIiwicCIsInYiLCJwb3MiLCJjb3B5IiwiYXBwbHlNYXRyaXg0IiwibWVzaCIsIm1hdHJpeCIsImN0IiwidG9wIiwid3JpdGUiLCJ0aGlzIiwibmJ1ZjIiLCJGbG9hdDMyQXJyYXkiLCJ0b0dlb21ldHJ5IiwicHMiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJidWZmZXJlZCIsImZvckVhY2giLCJncnBzIiwicHZzIiwicHZsZW4iLCJzaGFyZWQiLCJjb2xvcnMiLCJ1dnMiLCJGYWNlMyIsImZ1diIsImZubWwiLCJmYyIsIkJ1ZmZlckF0dHJpYnV0ZSIsInNldEF0dHJpYnV0ZSIsImdpIiwiYWRkR3JvdXAiLCJnYmFzZSIsInNldEluZGV4IiwidjAiLCJhcHBseU1hdHJpeDMiLCJmdnV2IiwiYSIsImIiLCJjIiwicGxhbmUiLCJ2ZXJ0aWNlc05lZWRVcGRhdGUiLCJlbGVtZW50c05lZWRVcGRhdGUiLCJub3JtYWxzTmVlZFVwZGF0ZSIsInRvTWVzaCIsInRvTWF0ZXJpYWwiLCJNYXRyaXg0IiwidG9NYXRyaXgiLCJpbnZlcnQiLCJpbnYiLCJNZXNoIiwibSIsInF1YXRlcm5pb24iLCJzY2FsZSIsInJvdGF0aW9uIiwic2V0RnJvbVF1YXRlcm5pb24iLCJ1cGRhdGVNYXRyaXhXb3JsZCIsImNhc3RTaGFkb3ciXSwibWFwcGluZ3MiOiI0VUFBQSxJQUFBQSxPQUFBQyx1QkFBQUMsUUFBQSxVQUNBQyxNQUFBQyx3QkFBQUYsUUFBQSxVQUNBRyxRQUFBSCxRQUFBLGdCLDB0QkFDQUEsUUFBQSxtQkFFQSxJQUFNSSxTQUE4Q0gsTUFBOUNHLFNBQVVDLGVBQW9DSixNQUFwQ0ksZUFBZ0JDLFFBQW9CTCxNQUFwQkssUUFBU0MsUUFBV04sTUFBWE0sUUFtRXJDQyxPQWpFSkMsUUFBQUEsSUFBSUMsYUFBZSxTQUFTQyxFQUFLQyxHQUM3QixJQUFJQyxFQUFRLEdBUmhCLEdBQUFGLEVBQUFHLFdBRUEsSUFRUSxJQUFJQyxFQUFLSixFQUFLSyxNQVR0QkMsRUFBQU4sRUFBQU8sU0FXWUMsRUFBSyxDQUFDLElBQUssSUFBSyxLQVY1QkMsRUFBQSxFQUFBQSxFQUFBTCxFQUFBTSxPQUFBRCxJQUFBLENBY1ksSUFGQSxJQUFJRSxFQUFJUCxFQUFHSyxHQVh2QkYsRUFBQSxHQWFxQkssRUFBSSxFQUFHQSxFQUFJLEVBQUdBLElBQ25CTCxFQUFTTSxLQUFLLElBQUlDLFFBQUFBLE9BQU9SLEVBQUdLLEVBQUVILEVBQUdJLEtBQUtELEVBQUVJLGNBQWNILEdBQUdaLEVBQUtn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LEVBQUM5QixlQUFlQSxFQUM3QjhCLEdBRVM3RyxRQUFBQSIsImZpbGUiOiJ1dGlscy9jc2cvdGhyZWUtY3NnLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IENTRywgVmVydGV4LCBWZWN0b3IsIFBvbHlnb24gfSBmcm9tICcuL2NzZy1saWIuanMnO1xuaW1wb3J0ICcuL2NzZy13b3JrZXIuanMnO1xuXG5sZXQgeyBHZW9tZXRyeSwgQnVmZmVyR2VvbWV0cnksIFZlY3RvcjMsIFZlY3RvcjJ9ID0gVEhSRUU7XG5cbkNTRy5mcm9tR2VvbWV0cnkgPSBmdW5jdGlvbihnZW9tLG9iamVjdEluZGV4KSB7XG4gICAgbGV0IHBvbHlzID0gW107XG4gICAgaWYgKGdlb20uaXNHZW9tZXRyeSkge1xuICAgICAgICBsZXQgZnMgPSBnZW9tLmZhY2VzO1xuICAgICAgICBsZXQgdnMgPSBnZW9tLnZlcnRpY2VzO1xuICAgICAgICBsZXQgZm0gPSBbJ2EnLCAnYicsICdjJ107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBmID0gZnNbaV07XG4gICAgICAgICAgICBsZXQgdmVydGljZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgMzsgaisrKVxuICAgICAgICAgICAgICAgIHZlcnRpY2VzLnB1c2gobmV3IFZlcnRleCh2c1tmW2ZtW2pdXV0sZi52ZXJ0ZXhOb3JtYWxzW2pdLGdlb20uZmFjZVZlcnRleFV2c1swXVtpXVtqXSkpO1xuICAgICAgICAgICAgcG9seXMucHVzaChuZXcgUG9seWdvbih2ZXJ0aWNlcywgb2JqZWN0SW5kZXgpKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZ2VvbS5pc0J1ZmZlckdlb21ldHJ5KSB7XG4gICAgICAgIGxldCB2ZXJ0aWNlcywgbm9ybWFscywgdXZzO1xuICAgICAgICBsZXQgcG9zYXR0ciA9IGdlb20uYXR0cmlidXRlcy5wb3NpdGlvbjtcbiAgICAgICAgbGV0IG5vcm1hbGF0dHIgPSBnZW9tLmF0dHJpYnV0ZXMubm9ybWFsO1xuICAgICAgICBsZXQgdXZhdHRyID0gZ2VvbS5hdHRyaWJ1dGVzLnV2O1xuICAgICAgICBsZXQgY29sb3JhdHRyID0gZ2VvbS5hdHRyaWJ1dGVzLmNvbG9yO1xuICAgICAgICBsZXQgaW5kZXg7XG4gICAgICAgIGlmIChnZW9tLmluZGV4KVxuICAgICAgICAgICAgaW5kZXggPSBnZW9tLmluZGV4LmFycmF5O1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGluZGV4ID0gbmV3IEFycmF5KChwb3NhdHRyLmFycmF5Lmxlbmd0aCAvIHBvc2F0dHIuaXRlbVNpemUpIHwgMCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGluZGV4Lmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgICAgIGluZGV4W2ldID0gaTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdHJpQ291bnQgPSAoaW5kZXgubGVuZ3RoIC8gMykgfCAwO1xuICAgICAgICBwb2x5cyA9IG5ldyBBcnJheSh0cmlDb3VudCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBwbGkgPSAwLCBsID0gaW5kZXgubGVuZ3RoOyBpIDwgbDsgaSArPSAzLFxuICAgICAgICBwbGkrKykge1xuICAgICAgICAgICAgbGV0IHZlcnRpY2VzID0gbmV3IEFycmF5KDMpO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCAzOyBqKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgdmkgPSBpbmRleFtpICsgal07XG4gICAgICAgICAgICAgICAgbGV0IHZwID0gdmkgKiAzO1xuICAgICAgICAgICAgICAgIGxldCB2dCA9IHZpICogMjtcbiAgICAgICAgICAgICAgICBsZXQgeCA9IHBvc2F0dHIuYXJyYXlbdnBdO1xuICAgICAgICAgICAgICAgIGxldCB5ID0gcG9zYXR0ci5hcnJheVt2cCArIDFdO1xuICAgICAgICAgICAgICAgIGxldCB6ID0gcG9zYXR0ci5hcnJheVt2cCArIDJdO1xuICAgICAgICAgICAgICAgIGxldCBueCA9IG5vcm1hbGF0dHIuYXJyYXlbdnBdO1xuICAgICAgICAgICAgICAgIGxldCBueSA9IG5vcm1hbGF0dHIuYXJyYXlbdnAgKyAxXTtcbiAgICAgICAgICAgICAgICBsZXQgbnogPSBub3JtYWxhdHRyLmFycmF5W3ZwICsgMl07XG4gICAgICAgICAgICAgICAgLy9sZXQgdSA9IHV2YXR0ci5hcnJheVt2dF1cbiAgICAgICAgICAgICAgICAvL2xldCB2ID0gdXZhdHRyLmFycmF5W3Z0ICsgMV1cbiAgICAgICAgICAgICAgICB2ZXJ0aWNlc1tqXSA9IG5ldyBWZXJ0ZXgoe1xuICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICB5LFxuICAgICAgICAgICAgICAgICAgICB6XG4gICAgICAgICAgICAgICAgfSx7XG4gICAgICAgICAgICAgICAgICAgIHg6IG54LFxuICAgICAgICAgICAgICAgICAgICB5OiBueSxcbiAgICAgICAgICAgICAgICAgICAgejogbnpcbiAgICAgICAgICAgICAgICB9LHV2YXR0ciYme1xuICAgICAgICAgICAgICAgICAgICB4OiB1dmF0dHIuYXJyYXlbdnRdLFxuICAgICAgICAgICAgICAgICAgICB5OiB1dmF0dHIuYXJyYXlbdnQrMV0sXG4gICAgICAgICAgICAgICAgICAgIHo6IDBcbiAgICAgICAgICAgICAgICB9LGNvbG9yYXR0ciYme3g6Y29sb3JhdHRyLmFycmF5W3Z0XSx5OmNvbG9yYXR0ci5hcnJheVt2dCsxXSx6OmNvbG9yYXR0ci5hcnJheVt2dCsyXX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcG9seXNbcGxpXSA9IG5ldyBQb2x5Z29uKHZlcnRpY2VzLG9iamVjdEluZGV4KTtcbiAgICAgICAgfVxuICAgIH0gZWxzZVxuICAgICAgICBjb25zb2xlLmVycm9yKFwiVW5zdXBwb3J0ZWQgQ1NHIGlucHV0IHR5cGU6XCIgKyBnZW9tLnR5cGUpO1xuICAgIHJldHVybiBDU0cuZnJvbVBvbHlnb25zKHBvbHlzKTtcbn07XG5cbmxldCB0dHZ2MCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5sZXQgdG1wbTMgPSBuZXcgVEhSRUUuTWF0cml4MygpO1xuQ1NHLmZyb21NZXNoID0gZnVuY3Rpb24obWVzaCxvYmplY3RJbmRleCkge1xuICAgIGxldCBjc2cgPSBDU0cuZnJvbUdlb21ldHJ5KG1lc2guZ2VvbWV0cnksb2JqZWN0SW5kZXgpO1xuICAgIHRtcG0zLmdldE5vcm1hbE1hdHJpeChtZXNoLm1hdHJpeCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjc2cucG9seWdvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IHAgPSBjc2cucG9seWdvbnNbaV07XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcC52ZXJ0aWNlcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgbGV0IHYgPSBwLnZlcnRpY2VzW2pdO1xuICAgICAgICAgICAgdi5wb3MuY29weSh0dHZ2MC5jb3B5KHYucG9zKS5hcHBseU1hdHJpeDQobWVzaC5tYXRyaXgpKTtcbiAgICAgICAgICAgIHYubm9ybWFsLmNvcHkodHR2djAuY29weSh2Lm5vcm1hbCkuYXBwbHlNYXRyaXgzKHRtcG0zKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNzZztcbn07XG5cbmxldCBuYnVmMz0oY3QpPT57XG4gICAgcmV0dXJue1xuICAgICAgICB0b3A6MCxcbiAgICAgICAgYXJyYXk6bmV3IEZsb2F0MzJBcnJheShjdCksXG4gICAgICAgIHdyaXRlOmZ1bmN0aW9uKHYpeyh0aGlzLmFycmF5W3RoaXMudG9wKytdPXYueCk7KHRoaXMuYXJyYXlbdGhpcy50b3ArK109di55KTsodGhpcy5hcnJheVt0aGlzLnRvcCsrXT12LnopO31cbiAgICB9O1xufTtcbmxldCBuYnVmMj0oY3QpPT57XG4gICAgcmV0dXJue1xuICAgICAgICB0b3A6MCxcbiAgICAgICAgYXJyYXk6bmV3IEZsb2F0MzJBcnJheShjdCksXG4gICAgICAgIHdyaXRlOmZ1bmN0aW9uKHYpeyh0aGlzLmFycmF5W3RoaXMudG9wKytdPXYueCk7KHRoaXMuYXJyYXlbdGhpcy50b3ArK109di55KTt9XG4gICAgfTtcbn07XG5cbkNTRy50b0dlb21ldHJ5ID0gZnVuY3Rpb24oY3NnLCBidWZmZXJlZD10cnVlKSB7XG4gICAgbGV0IHBzID0gY3NnLnBvbHlnb25zO1xuICAgIGxldCBnZW9tO1xuICAgIGxldCBnMjtcbiAgICBpZighYnVmZmVyZWQpIC8vT2xkIGdlb21ldHJ5IHBhdGguLi5cbiAgICB7XG4gICAgICAgIGdlb20gPSBuZXcgR2VvbWV0cnkoKTtcbiAgICAgICAgbGV0IHZzID0gZ2VvbS52ZXJ0aWNlcztcbiAgICAgICAgbGV0IGZ2dXYgPSBnZW9tLmZhY2VWZXJ0ZXhVdnNbMF07XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBwID0gcHNbaV07XG4gICAgICAgICAgICBsZXQgcHZzID0gcC52ZXJ0aWNlcztcbiAgICAgICAgICAgIGxldCB2MCA9IHZzLmxlbmd0aDtcbiAgICAgICAgICAgIGxldCBwdmxlbiA9IHB2cy5sZW5ndGg7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcHZsZW47IGorKylcbiAgICAgICAgICAgICAgICB2cy5wdXNoKG5ldyBUSFJFRS5WZWN0b3IzKCkuY29weShwdnNbal0ucG9zKSk7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGogPSAzOyBqIDw9IHB2bGVuOyBqKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgZmMgPSBuZXcgVEhSRUUuRmFjZTMoKTtcbiAgICAgICAgICAgICAgICBsZXQgZnV2ID0gW107XG4gICAgICAgICAgICAgICAgZnZ1di5wdXNoKGZ1dik7XG4gICAgICAgICAgICAgICAgbGV0IGZubWwgPSBmYy52ZXJ0ZXhOb3JtYWxzO1xuICAgICAgICAgICAgICAgIGZjLmEgPSB2MDtcbiAgICAgICAgICAgICAgICBmYy5iID0gdjAgKyBqIC0gMjtcbiAgICAgICAgICAgICAgICBmYy5jID0gdjAgKyBqIC0gMTtcblxuICAgICAgICAgICAgICAgIGZubWwucHVzaChuZXcgVEhSRUUuVmVjdG9yMygpLmNvcHkocHZzWzBdLm5vcm1hbCkpO1xuICAgICAgICAgICAgICAgIGZubWwucHVzaChuZXcgVEhSRUUuVmVjdG9yMygpLmNvcHkocHZzW2ogLSAyXS5ub3JtYWwpKTtcbiAgICAgICAgICAgICAgICBmbm1sLnB1c2gobmV3IFRIUkVFLlZlY3RvcjMoKS5jb3B5KHB2c1tqIC0gMV0ubm9ybWFsKSk7XG4gICAgICAgICAgICAgICAgZnV2LnB1c2gobmV3IFRIUkVFLlZlY3RvcjMoKS5jb3B5KHB2c1swXS51dikpO1xuICAgICAgICAgICAgICAgIGZ1di5wdXNoKG5ldyBUSFJFRS5WZWN0b3IzKCkuY29weShwdnNbaiAtIDJdLnV2KSk7XG4gICAgICAgICAgICAgICAgZnV2LnB1c2gobmV3IFRIUkVFLlZlY3RvcjMoKS5jb3B5KHB2c1tqIC0gMV0udXYpKTtcblxuICAgICAgICAgICAgICAgIGZjLm5vcm1hbCA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuY29weShwLnBsYW5lLm5vcm1hbCk7XG4gICAgICAgICAgICAgICAgZ2VvbS5mYWNlcy5wdXNoKGZjKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBnZW9tID0gbmV3IFRIUkVFLkJ1ZmZlckdlb21ldHJ5KCkuZnJvbUdlb21ldHJ5KGdlb20pO1xuICAgICAgICBnZW9tLnZlcnRpY2VzTmVlZFVwZGF0ZSA9IGdlb20uZWxlbWVudHNOZWVkVXBkYXRlID0gZ2VvbS5ub3JtYWxzTmVlZFVwZGF0ZSA9IHRydWU7XG4gICAgfWVsc2UgeyAvL0J1ZmZlckdlb21ldHJ5IHBhdGhcbiAgICAgICAgbGV0IHRyaUNvdW50ID0gMDtcbiAgICAgICAgcHMuZm9yRWFjaChwPT50cmlDb3VudCArPSAocC52ZXJ0aWNlcy5sZW5ndGggLSAyKSk7XG4gICAgICAgICBnZW9tID0gbmV3IFRIUkVFLkJ1ZmZlckdlb21ldHJ5KCk7XG5cbiAgICAgICAgbGV0IHZlcnRpY2VzID0gbmJ1ZjModHJpQ291bnQgKiAzICogMyk7XG4gICAgICAgIGxldCBub3JtYWxzID0gbmJ1ZjModHJpQ291bnQgKiAzICogMyk7XG4gICAgICAgIGxldCB1dnM7IC8vID0gbmJ1ZjIodHJpQ291bnQgKiAyICogMylcbiAgICAgICAgbGV0IGNvbG9ycztcbiAgICAgICAgbGV0IGdycHM9W107XG4gICAgICAgIHBzLmZvckVhY2gocD0+e1xuICAgICAgICAgICAgbGV0IHB2cyA9IHAudmVydGljZXM7XG4gICAgICAgICAgICBsZXQgcHZsZW4gPSBwdnMubGVuZ3RoO1xuICAgICAgICAgICAgaWYocC5zaGFyZWQhPT11bmRlZmluZWQpe1xuICAgICAgICAgICAgICAgIGlmKCFncnBzW3Auc2hhcmVkXSlncnBzW3Auc2hhcmVkXT1bXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKHB2bGVuKXtcbiAgICAgICAgICAgICAgICBpZihwdnNbMF0uY29sb3IhPT11bmRlZmluZWQpe1xuICAgICAgICAgICAgICAgICAgICBpZighY29sb3JzKWNvbG9ycyA9IG5idWYzKHRyaUNvdW50KjMqMyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmKHB2c1swXS51diE9PXVuZGVmaW5lZCl7XG4gICAgICAgICAgICAgICAgICAgIGlmKCF1dnMpdXZzID0gbmJ1ZjIodHJpQ291bnQgKiAyICogMyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDM7IGogPD0gcHZsZW47IGorKykge1xuICAgICAgICAgICAgICAgIChwLnNoYXJlZCE9PXVuZGVmaW5lZCkgJiYgKGdycHNbcC5zaGFyZWRdLnB1c2godmVydGljZXMudG9wLzMsKHZlcnRpY2VzLnRvcC8zKSsxLCh2ZXJ0aWNlcy50b3AvMykrMikpO1xuICAgICAgICAgICAgICAgIHZlcnRpY2VzLndyaXRlKHB2c1swXS5wb3MpO1xuICAgICAgICAgICAgICAgIHZlcnRpY2VzLndyaXRlKHB2c1tqLTJdLnBvcyk7XG4gICAgICAgICAgICAgICAgdmVydGljZXMud3JpdGUocHZzW2otMV0ucG9zKTtcbiAgICAgICAgICAgICAgICBub3JtYWxzLndyaXRlKHB2c1swXS5ub3JtYWwpO1xuICAgICAgICAgICAgICAgIG5vcm1hbHMud3JpdGUocHZzW2otMl0ubm9ybWFsKTtcbiAgICAgICAgICAgICAgICBub3JtYWxzLndyaXRlKHB2c1tqLTFdLm5vcm1hbCk7XG4gICAgICAgICAgICAgICAgdXZzJiYocHZzWzBdLnV2KSYmKHV2cy53cml0ZShwdnNbMF0udXYpfHx1dnMud3JpdGUocHZzW2otMl0udXYpfHx1dnMud3JpdGUocHZzW2otMV0udXYpKTtcbiAgICAgICAgICAgICAgICBjb2xvcnMmJihjb2xvcnMud3JpdGUocHZzWzBdLmNvbG9yKXx8Y29sb3JzLndyaXRlKHB2c1tqLTJdLmNvbG9yKXx8Y29sb3JzLndyaXRlKHB2c1tqLTFdLmNvbG9yKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgZ2VvbS5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSh2ZXJ0aWNlcy5hcnJheSwzKSk7XG4gICAgICAgIGdlb20uc2V0QXR0cmlidXRlKCdub3JtYWwnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5vcm1hbHMuYXJyYXksMykpO1xuICAgICAgICB1dnMgJiYgZ2VvbS5zZXRBdHRyaWJ1dGUoJ3V2JywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSh1dnMuYXJyYXksMikpO1xuICAgICAgICBjb2xvcnMgJiYgZ2VvbS5zZXRBdHRyaWJ1dGUoJ2NvbG9yJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShjb2xvcnMuYXJyYXksMykpO1xuICAgICAgICBpZihncnBzLmxlbmd0aCl7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSBbXTtcbiAgICAgICAgICAgIGxldCBnYmFzZT0wO1xuICAgICAgICAgICAgZm9yKGxldCBnaT0wO2dpPGdycHMubGVuZ3RoO2dpKyspe1xuICAgICAgICAgICAgICAgIGdlb20uYWRkR3JvdXAoZ2Jhc2UsZ3Jwc1tnaV0ubGVuZ3RoLGdpKTtcbiAgICAgICAgICAgICAgICBnYmFzZSs9Z3Jwc1tnaV0ubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGluZGV4PWluZGV4LmNvbmNhdChncnBzW2dpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBnZW9tLnNldEluZGV4KGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICBnMiA9IGdlb207XG4gICAgfVxuICAgIHJldHVybiBnZW9tO1xufTtcblxuQ1NHLnRvTWVzaCA9IGZ1bmN0aW9uKGNzZywgdG9NYXRyaXgsIHRvTWF0ZXJpYWwpIHtcbiAgICBsZXQgZ2VvbSA9IENTRy50b0dlb21ldHJ5KGNzZyk7XG4gICAgbGV0IGludiA9IG5ldyBUSFJFRS5NYXRyaXg0KCkuY29weSh0b01hdHJpeCkuaW52ZXJ0KCk7XG4gICAgZ2VvbS5hcHBseU1hdHJpeDQoaW52KTtcbiAgICBnZW9tLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpO1xuICAgIGdlb20uY29tcHV0ZUJvdW5kaW5nQm94KCk7XG4gICAgbGV0IG0gPSBuZXcgVEhSRUUuTWVzaChnZW9tLHRvTWF0ZXJpYWwpO1xuICAgIG0ubWF0cml4LmNvcHkodG9NYXRyaXgpO1xuICAgIG0ubWF0cml4LmRlY29tcG9zZShtLnBvc2l0aW9uLCBtLnF1YXRlcm5pb24sIG0uc2NhbGUpO1xuICAgIG0ucm90YXRpb24uc2V0RnJvbVF1YXRlcm5pb24obS5xdWF0ZXJuaW9uKTtcbiAgICBtLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XG4gICAgbS5jYXN0U2hhZG93ID0gbS5yZWNlaXZlU2hhZG93ID0gdHJ1ZTtcbiAgICByZXR1cm4gbTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENTRztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.preventRightClick=void 0;var preventRightClick=function(e){e.preventDefault()};exports.preventRightClick=preventRightClick;
2
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzL2hlbHBlcnMuanMiXSwibmFtZXMiOlsicHJldmVudFJpZ2h0Q2xpY2siLCJldmVudCIsInByZXZlbnREZWZhdWx0Il0sIm1hcHBpbmdzIjoicUdBQU8sSUFBTUEsa0JBQW9CLFNBQUNDLEdBQ2hDQSxFQUFNQyIsImZpbGUiOiJ1dGlscy9oZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHByZXZlbnRSaWdodENsaWNrID0gKGV2ZW50KSA9PiB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG59O1xuIl19
@@ -1,2 +0,0 @@
1
- "use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMinMaxCoordinates=exports.getKeyEvents=exports.getFloorParams=exports.getDirectionsFromDegrees=void 0;var _react=_interopRequireDefault(require("react")),holdEvent=_interopRequireWildcard(require("hold-event")),_floor=_interopRequireDefault(require("../assets/img/floor.jpg")),_floorDark=_interopRequireDefault(require("../assets/img/floor-dark.jpg")),_floorWhite=_interopRequireDefault(require("../assets/img/floor-white.jpg")),_floorBathroom=_interopRequireDefault(require("../assets/img/floor-bathroom.jpg"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function(e){return e?t:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!==_typeof(e)&&"function"!=typeof e)return{default:e};r=_getRequireWildcardCache(r);if(r&&r.has(e))return r.get(e);var t,o,n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&((o=a?Object.getOwnPropertyDescriptor(e,t):null)&&(o.get||o.set)?Object.defineProperty(n,t,o):n[t]=e[t]);return n.default=e,r&&r.set(e,n),n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var FloorParams={default:{texture:_floorDark.default,roughnessMap:null,color:"#FFFFFF"},Kitchen:{texture:_floorWhite.default,roughnessMap:null,color:"#FFFFFF"},Balcony:{texture:_floor.default,roughnessMap:null,color:"#DADADA"},Bathroom:{texture:_floorBathroom.default,roughnessMap:null,color:"#FFFFFF"}},getKeyEvents=function(e){var r=87,t=65,o=83,n=68,a=37,l=38,u=39,i=40;return[{keys:[new holdEvent.KeyboardKeyHold(r,100),new holdEvent.KeyboardKeyHold(l,100)],callback:function(){return e.forward(1,!0)}},{keys:[new holdEvent.KeyboardKeyHold(t,100),new holdEvent.KeyboardKeyHold(a,100)],callback:function(){return e.truck(-1,0,!0)}},{keys:[new holdEvent.KeyboardKeyHold(o,100),new holdEvent.KeyboardKeyHold(i,100)],callback:function(){return e.forward(-1,!0)}},{keys:[new holdEvent.KeyboardKeyHold(n,100),new holdEvent.KeyboardKeyHold(u,100)],callback:function(){return e.truck(1,0,!0)}}]},getFloorParams=(exports.getKeyEvents=getKeyEvents,function(e){e=FloorParams[e];return e||FloorParams.default}),getMinMaxCoordinates=(exports.getFloorParams=getFloorParams,function(e){var t=0,o=1/0,n=0,a=1/0;return e.forEach(function(e){var r=e.start,e=e.end;r.x>t&&(t=r.x),r.x>t&&(t=r.x),e.y>n&&(n=e.y),e.y>n&&(n=e.y),r.x<o&&(o=r.x),r.x<o&&(o=r.x),e.y<a&&(a=e.y),e.y<a&&(a=e.y)}),{maxX:t,minX:o,maxY:n,minY:a}}),getDirectionsFromDegrees=(exports.getMinMaxCoordinates=getMinMaxCoordinates,function(e){var r=[];return 80<e&&e<100?r=["forward"]:10<e&&e<80?r=["forward","right"]:100<e&&e<170?r=["forward","left"]:260<e&&e<280?r=["backward"]:190<e&&e<260?r=["backward","left"]:280<e&&e<350?r=["backward","right"]:350<e||e<10?r=["right"]:170<e&&e<190&&(r=["left"]),r});exports.getDirectionsFromDegrees=getDirectionsFromDegrees;
2
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzL21vZGVsSGVscGVycy5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsImhvbGRFdmVudCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2Zsb29yIiwiX2Zsb29yRGFyayIsIl9mbG9vcldoaXRlIiwiX2Zsb29yQmF0aHJvb20iLCJGbG9vclBhcmFtcyIsImRlZmF1bHQiLCJ0ZXh0dXJlIiwiRmxvb3JEYXJrIiwicm91Z2huZXNzTWFwIiwiY29sb3IiLCJLaXRjaGVuIiwiRmxvb3JXaGl0ZSIsIkJhbGNvbnkiLCJGbG9vciIsIkJhdGhyb29tIiwiRmxvb3JCYXRocm9vbSIsImNvbnRyb2xzIiwiS0VZQ09ERSIsIkFSUk9XX0xFRlQiLCJBUlJPV19VUCIsIktleWJvYXJkS2V5SG9sZCIsIkFSUk9XX1JJR0hUIiwiZm9yd2FyZCIsIndLZXkiLCJ1cEtleSIsImxlZnRLZXkiLCJsZWZ0QXJyIiwiZG93bkFyciIsImRLZXkiLCJnZXRGbG9vclBhcmFtcyIsInR5cGUiLCJwYXJhbXMiLCJrZXlzIiwiZ2V0TWluTWF4Q29vcmRpbmF0ZXMiLCJ3YWxscyIsImNhbGxiYWNrIiwiSW5maW5pdHkiLCJtYXhZIiwibWluWSIsImZvckVhY2giLCJyaWdodEFyciIsInN0YXJ0IiwiX3JlZiIsImVuZCIsInRydWNrIiwieCIsIm1heFgiLCJ5Iiwia2V5RXZlbnRzIiwibWluWCIsImdldERpcmVjdGlvbnNGcm9tRGVncmVlcyIsImRlZyIsImRpcmVjdGlvbnMiXSwibWFwcGluZ3MiOiJzYUFBQSxJQUFBQSxPQUFBQyx1QkFBQUMsUUFBQSxVQUNBQyxVQUFBQyx3QkFBQUYsUUFBQSxlQUVBRyxPQUFBSix1QkFBQUMsUUFBQSw0QkFDQUksV0FBQUwsdUJBQUFDLFFBQUEsaUNBQ0FLLFlBQUFOLHVCQUFBQyxRQUFBLGtDQUNBTSxlQUFBUCx1QkFBQUMsUUFBQSxxQywwdEJBRUEsSUFBTU8sWUFBYyxDQVJwQkMs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QlcsRUFBWWQsQ0FBQUEsU0FWZGMiLCJmaWxlIjoidXRpbHMvbW9kZWxIZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIGhvbGRFdmVudCBmcm9tICdob2xkLWV2ZW50JztcblxuaW1wb3J0IEZsb29yIGZyb20gJy4uL2Fzc2V0cy9pbWcvZmxvb3IuanBnJztcbmltcG9ydCBGbG9vckRhcmsgZnJvbSAnLi4vYXNzZXRzL2ltZy9mbG9vci1kYXJrLmpwZyc7XG5pbXBvcnQgRmxvb3JXaGl0ZSBmcm9tICcuLi9hc3NldHMvaW1nL2Zsb29yLXdoaXRlLmpwZyc7XG5pbXBvcnQgRmxvb3JCYXRocm9vbSBmcm9tICcuLi9hc3NldHMvaW1nL2Zsb29yLWJhdGhyb29tLmpwZyc7XG5cbmNvbnN0IEZsb29yUGFyYW1zID0ge1xuICAnZGVmYXVsdCc6IHtcbiAgICB0ZXh0dXJlOiBGbG9vckRhcmssXG4gICAgcm91Z2huZXNzTWFwOiBudWxsLFxuICAgIGNvbG9yOiAnI0ZGRkZGRicsXG4gIH0sXG4gICdLaXRjaGVuJzoge1xuICAgIHRleHR1cmU6IEZsb29yV2hpdGUsXG4gICAgcm91Z2huZXNzTWFwOiBudWxsLFxuICAgIGNvbG9yOiAnI0ZGRkZGRicsXG4gIH0sXG4gICdCYWxjb255Jzoge1xuICAgIHRleHR1cmU6IEZsb29yLFxuICAgIHJvdWdobmVzc01hcDogbnVsbCxcbiAgICBjb2xvcjogJyNEQURBREEnLFxuICB9LFxuICAnQmF0aHJvb20nOiB7XG4gICAgdGV4dHVyZTogRmxvb3JCYXRocm9vbSxcbiAgICByb3VnaG5lc3NNYXA6IG51bGwsXG4gICAgY29sb3I6ICcjRkZGRkZGJyxcbiAgfSxcbn07XG5cbmNvbnN0IGdldEtleUV2ZW50cyA9IChjb250cm9scykgPT4ge1xuICBjb25zdCBLRVlDT0RFID0ge1xuICAgIFc6IDg3LCBBOiA2NSxcbiAgICBTOiA4MywgRDogNjgsXG4gICAgQVJST1dfTEVGVDogMzcsIEFSUk9XX1VQOiAzOCxcbiAgICBBUlJPV19SSUdIVDogMzksIEFSUk9XX0RPV046IDQwXG4gIH07XG5cbiAgY29uc3Qgd0tleSA9IG5ldyBob2xkRXZlbnQuS2V5Ym9hcmRLZXlIb2xkKEtFWUNPREUuVywgMTAwKTtcbiAgY29uc3QgdXBLZXkgPSBuZXcgaG9sZEV2ZW50LktleWJvYXJkS2V5SG9sZChLRVlDT0RFLkFSUk9XX1VQLCAxMDApO1xuICBjb25zdCB1cEFyciA9IFt3S2V5LCB1cEtleV07XG5cbiAgY29uc3QgYUtleSA9IG5ldyBob2xkRXZlbnQuS2V5Ym9hcmRLZXlIb2xkKEtFWUNPREUuQSwgMTAwKTtcbiAgY29uc3QgbGVmdEtleSA9IG5ldyBob2xkRXZlbnQuS2V5Ym9hcmRLZXlIb2xkKEtFWUNPREUuQVJST1dfTEVGVCwgMTAwKTtcbiAgY29uc3QgbGVmdEFyciA9IFthS2V5LCBsZWZ0S2V5XTtcblxuICBjb25zdCBzS2V5ID0gbmV3IGhvbGRFdmVudC5LZXlib2FyZEtleUhvbGQoS0VZQ09ERS5TLCAxMDApO1xuICBjb25zdCBkb3duS2V5ID0gbmV3IGhvbGRFdmVudC5LZXlib2FyZEtleUhvbGQoS0VZQ09ERS5BUlJPV19ET1dOLCAxMDApO1xuICBjb25zdCBkb3duQXJyID0gW3NLZXksIGRvd25LZXldO1xuXG4gIGNvbnN0IGRLZXkgPSBuZXcgaG9sZEV2ZW50LktleWJvYXJkS2V5SG9sZChLRVlDT0RFLkQsIDEwMCk7XG4gIGNvbnN0IHJpZ2h0S2V5ID0gbmV3IGhvbGRFdmVudC5LZXlib2FyZEtleUhvbGQoS0VZQ09ERS5BUlJPV19SSUdIVCwgMTAwKTtcbiAgY29uc3QgcmlnaHRBcnIgPSBbZEtleSwgcmlnaHRLZXldO1xuXG4gIGNvbnN0IGtleUV2ZW50cyA9IFtcbiAgICB7XG4gICAgICBrZXlzOiB1cEFycixcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiBjb250cm9scy5mb3J3YXJkKDEsIHRydWUpLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5czogbGVmdEFycixcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiBjb250cm9scy50cnVjaygtMSwgMCwgdHJ1ZSksXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXlzOiBkb3duQXJyLFxuICAgICAgY2FsbGJhY2s6ICgpID0+IGNvbnRyb2xzLmZvcndhcmQoLTEsIHRydWUpLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5czogcmlnaHRBcnIsXG4gICAgICBjYWxsYmFjazogKCkgPT4gY29udHJvbHMudHJ1Y2soMSwgMCwgdHJ1ZSksXG4gICAgfSxcbiAgXTtcblxuICByZXR1cm4ga2V5RXZlbnRzO1xufTtcblxuY29uc3QgZ2V0Rmxvb3JQYXJhbXMgPSAodHlwZSkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSBGbG9vclBhcmFtc1t0eXBlXTtcbiAgaWYgKCFwYXJhbXMpIHJldHVybiBGbG9vclBhcmFtc1snZGVmYXVsdCddO1xuICByZXR1cm4gcGFyYW1zO1xufTtcblxuY29uc3QgZ2V0TWluTWF4Q29vcmRpbmF0ZXMgPSAod2FsbHMpID0+IHtcbiAgbGV0IG1heFggPSAwO1xuICBsZXQgbWluWCA9IEluZmluaXR5O1xuICBsZXQgbWF4WSA9IDA7XG4gIGxldCBtaW5ZID0gSW5maW5pdHk7XG5cbiAgd2FsbHMuZm9yRWFjaCgoeyBzdGFydCwgZW5kIH0pID0+IHtcbiAgICAvLyBDQUxDVUxBVEUgTUFYIENPT1JEU1xuICAgIGlmIChzdGFydC54ID4gbWF4WCkgbWF4WCA9IHN0YXJ0Lng7XG4gICAgaWYgKHN0YXJ0LnggPiBtYXhYKSBtYXhYID0gc3RhcnQueDtcbiAgICBpZiAoZW5kLnkgPiBtYXhZKSBtYXhZID0gZW5kLnk7XG4gICAgaWYgKGVuZC55ID4gbWF4WSkgbWF4WSA9IGVuZC55O1xuXG4gICAgLy8gQ0FMQ1VMQVRFIE1JTiBDT09SRFNcbiAgICBpZiAoc3RhcnQueCA8IG1pblgpIG1pblggPSBzdGFydC54O1xuICAgIGlmIChzdGFydC54IDwgbWluWCkgbWluWCA9IHN0YXJ0Lng7XG4gICAgaWYgKGVuZC55IDwgbWluWSkgbWluWSA9IGVuZC55O1xuICAgIGlmIChlbmQueSA8IG1pblkpIG1pblkgPSBlbmQueTtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgbWF4WCwgbWluWCwgbWF4WSwgbWluWSB9O1xufTtcblxuY29uc3QgZ2V0RGlyZWN0aW9uc0Zyb21EZWdyZWVzID0gKGRlZykgPT4ge1xuICBsZXQgZGlyZWN0aW9ucyA9IFtdO1xuICBpZiAoZGVnID4gODAgJiYgZGVnIDwgMTAwKSB7XG4gICAgZGlyZWN0aW9ucyA9IFsnZm9yd2FyZCddO1xuICB9IGVsc2UgaWYgKGRlZyA+IDEwICYmIGRlZyA8IDgwKSB7XG4gICAgZGlyZWN0aW9ucyA9IFsnZm9yd2FyZCcsICdyaWdodCddO1xuICB9IGVsc2UgaWYgKGRlZyA+IDEwMCAmJiBkZWcgPCAxNzApIHtcbiAgICBkaXJlY3Rpb25zID0gWydmb3J3YXJkJywgJ2xlZnQnXTtcbiAgfSBlbHNlIGlmIChkZWcgPiAyNjAgJiYgZGVnIDwgMjgwKSB7XG4gICAgZGlyZWN0aW9ucyA9IFsnYmFja3dhcmQnXTtcbiAgfSBlbHNlIGlmIChkZWcgPiAxOTAgJiYgZGVnIDwgMjYwKSB7XG4gICAgZGlyZWN0aW9ucyA9IFsnYmFja3dhcmQnLCAnbGVmdCddO1xuICB9IGVsc2UgaWYgKGRlZyA+IDI4MCAmJiBkZWcgPCAzNTApIHtcbiAgICBkaXJlY3Rpb25zID0gWydiYWNrd2FyZCcsICdyaWdodCddO1xuICB9IGVsc2UgaWYgKGRlZyA+IDM1MCB8fCBkZWcgPCAxMCkge1xuICAgIGRpcmVjdGlvbnMgPSBbJ3JpZ2h0J107XG4gIH0gZWxzZSBpZiAoZGVnID4gMTcwICYmIGRlZyA8IDE5MCkge1xuICAgIGRpcmVjdGlvbnMgPSBbJ2xlZnQnXTtcbiAgfVxuICByZXR1cm4gZGlyZWN0aW9ucztcbn07XG5cbmV4cG9ydCB7XG4gIGdldEtleUV2ZW50cyxcbiAgZ2V0Rmxvb3JQYXJhbXMsXG4gIGdldE1pbk1heENvb3JkaW5hdGVzLFxuICBnZXREaXJlY3Rpb25zRnJvbURlZ3JlZXMsXG59O1xuIl19
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getScale=exports.getRoomCoordinates=exports.getClosestPanorama=exports.getCameraFromSrc=exports.getArrayFromNumber=exports.findWallVertices=exports.cameraIdBeginning=void 0;var _react=_interopRequireDefault(require("react")),_geometric=require("geometric"),_imageExtentions=require("../enums/imageExtentions");function _interopRequireDefault(r){return r&&r.__esModule?r:{default:r}}function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,e){if(r){if("string"==typeof r)return _arrayLikeToArray(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);return"Map"===(t="Object"===t&&r.constructor?r.constructor.name:t)||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,e):void 0}}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}function _arrayLikeToArray(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}var cameraIdBeginning="cameraid",getArrayFromNumber=(exports.cameraIdBeginning=cameraIdBeginning,function(r){return _toConsumableArray(Array(r).keys())}),findWallVertices=(exports.getArrayFromNumber=getArrayFromNumber,function(r,e,t){return r.find(function(r){return r.ID===e}).Vertices.map(function(e){var r=t.find(function(r){return r.ID===e});return[r.Location.X,r.Location.Y]})}),getRoomCoordinates=(exports.findWallVertices=findWallVertices,function(r,n,a){return r.Walls.reduce(function(e,t){var r=n.find(function(r){return r.ID===t});return findWallVertices(n,r.ID,a).forEach(function(r){return e.push(r)}),e},[])}),getScale=(exports.getRoomCoordinates=getRoomCoordinates,function(r,e){var t=r.width,r=r.height;if(!e)return{X:1,Y:1};return{X:t/1024/e.Scale.X,Y:r/(r*(1024/t))/e.Scale.X}}),getCameraFromSrc=(exports.getScale=getScale,function(r,e){var t=e.toLowerCase().indexOf(cameraIdBeginning);if(-1===t)return null;var n=(0,_imageExtentions.removeExtention)(e.substring(t));return(null==(e=r.Floors[0].CameraPoints)?void 0:e.find(function(r){return r.ID===n}))||null}),getClosestPanorama=(exports.getCameraFromSrc=getCameraFromSrc,function(n,r){return r.reduce(function(r,e){var t=(0,_geometric.lineLength)([n,[e.userData.left,e.userData.top]]);return t<r.length?{panorama:e,length:t}:r},{length:1/0,panorama:null})});exports.getClosestPanorama=getClosestPanorama;
2
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzL3Bhbm9yYW1hSGVscGVycy5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9nZW9tZXRyaWMiLCJfaW1hZ2VFeHRlbnRpb25zIiwiY2FtZXJhSWRCZWdpbm5pbmciLCJnZXRBcnJheUZyb21OdW1iZXIiLCJudW0iLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJBcnJheSIsImtleXMiLCJmaW5kV2FsbFZlcnRpY2VzIiwid2FsbHMiLCJ3YWxsIiwidmVydGljZXMiLCJmaW5kIiwiZWwiLCJJRCIsIlZlcnRpY2VzIiwibWFwIiwidmVydGV4SWQiLCJ2ZXJ0ZXgiLCJMb2NhdGlvbiIsIlgiLCJZIiwiZ2V0Um9vbUNvb3JkaW5hdGVzIiwicm9vbSIsIldhbGxzIiwicmVkdWNlIiwiYWNjIiwid2FsbElkIiwid2FsbE9iamVjdCIsImZvckVhY2giLCJwdXNoIiwiZ2V0U2NhbGUiLCJfcmVmIiwianNvbiIsIndpZHRoIiwiaGVpZ2h0IiwiU2NhbGUiLCJjdXJyZW50V2FsbCIsInNyYyIsImNhbWVyYUlkSW5kZXgiLCJ0b0xvd2VyQ2FzZSIsImluZGV4T2YiLCJjYW1lcmFJZCIsInJlbW92ZUV4dGVudGlvbiIsInN1YnN0cmluZyIsIl9qc29uJEZsb29ycyQwJENhbWVyYSIsImdldENsb3Nlc3RQYW5vcmFtYSIsInBvaW50IiwicGFub3JhbWFzIiwiY2xvc2VzdCIsImN1cnJlbnQiLCJsZW5ndGgiLCJsaW5lTGVuZ3RoIiwidXNlckRhdGEiLCJsZWZ0IiwidG9wIiwiSW5maW5pdHkiLCJwYW5vcmFtYSJdLCJtYXBwaW5ncyI6InlQQUFBLElBQUFBLE9BQUFDLHVCQUFBQyxRQUFBLFVBQ0FDLFdBQUFELFFBQUEsYUFDQUUsaUJBQUFGLFFBQUEsNEIsMGlDQUVPLElBQU1HLGtCQUFvQixXQUVwQkMsb0IsNENBQXFCLFNBQUNDLEdBQUQsT0FBQUMsbUJBQWFDLE1BQU1GLEdBQUtHLFVBRTdDQyxrQiw4Q0FBbUIsU0FBQ0MsRUFBT0MsRUFBTUMsR0FFNUMsT0FURkYsRUFBQUcsS0FBQSxTQUFBQyxHQUFBLE9BQUFBLEVBQUFDLEtBQUFKLElBU3FCSyxTQUFTQyxJQUFJLFNBQUNDLEdBUm5DLElBQUFDLEVBQUFQLEVBQUFDLEtBQUEsU0FBQUMsR0FBQSxPQUFBQSxFQUFBQyxLQUFBRyxJQVVJLE1BQU8sQ0FBQ0MsRUFBT0MsU0FBU0MsRUFBR0YsRUFBT0MsU0FBU0UsT0FJbENDLG9CLDBDQUFxQixTQUFDQyxFQUFNZCxFQUFPRSxHQU05QyxPQUxlWSxFQUFLQyxNQUFNQyxPQUFPLFNBQUNDLEVBQUtDLEdBQ3JDLElBQU1qQixFQUFPRCxFQUFNRyxLQUFLLFNBQUNnQixHQUFELE9BQWdCQSxFQUFXZCxLQUFPYSxJQUUxRCxPQURBbkIsaUJBQWlCQyxFQUFPQyxFQUFLSSxHQUFJSCxHQUFVa0IsUUFBUSxTQUFDWCxHQUFELE9BQVlRLEVBQUlJLEtBQUtaLEtBQ2pFUSxHQUNOLE1BSVFLLFUsOENBQVcsU0FBQUMsRUFBb0JDLEdBQVMsSUFBMUJDLEVBQTBCRixFQUExQkUsTUFBT0MsRUFBbUJILEVBQW5CRyxPQUNoQyxJQUFLRixFQUFNLE1BQU8sQ0FBRWIsRUFBRyxFQUFHQyxFQUFHLEdBUTdCLE1BQU8sQ0FBRUQsRUE1QnVCYyxFQXNCVCxLQXRCc0JELEVBQWJHLE1BQUFoQixFQTRCWkMsRUE1QmZjLEdBdUJtQkEsR0FERCxLQUM0QkQsSUF2QjlDRCxFQUFBRyxNQUFBaEIsS0FHQ2lCLGtCLDBCQUF5QixTQUFBSixFQUFBSyxHQUFBLElBQUFDLEVBQWtCN0IsRUFBbEI4QixjQUFBQyxRQUFBdkMsbUJBQy9CLElBQW1CYSxJQUFuQndCLEVBQW1CeEIsT0FBYSxLQWdDaEMsSUEvQitCMkIsR0FBUSxFQUFBQyxpQkFBQUEsaUJBQVJMLEVBQUFNLFVBQUFMLElBaUMvQixPQWhDRSxPQUFBTSxFQUFBWixFQUFRZixPQUFPQyxHQUFBQSxtQkFBZixFQUFBMEIsRUFBa0MxQixLQUFBQSxTQUFBQSxHQUFBQSxPQUFBQSxFQUFQTCxLQUEzQjRCLE1BQUEsT0FtQ1NJLG9CLDBDQUFxQixTQUFDQyxFQUFPQyxHQUN4QyxPQUFPQSxFQUFVdkIsT0FBTyxTQUFDd0IsRUFBU0MsR0FDaEMsSUFBTUMsR0FBUyxFQUFBQyxXQUFBQSxZQUFXLENBQUNMLEVBQU8sQ0FBQ0csRUFBUUcsU0FBU0MsS0FBTUosRUFBUUcsU0FBU0UsT0FqQ2xFakMsT0FBQUEsRUFBQUEsRUFBcUI2QixPQUNwQixDQUFHNUIsU0FBQTJCLEVBQWtCQyxPQUFBQSxHQUNQRixHQUFYLENBQWJFLE9BQUFLLEVBQUFBLEVBQUFDLFNBQUEiLCJmaWxlIjoidXRpbHMvcGFub3JhbWFIZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGxpbmVMZW5ndGggfSBmcm9tICdnZW9tZXRyaWMnO1xuaW1wb3J0IHsgcmVtb3ZlRXh0ZW50aW9uIH0gZnJvbSAnLi4vZW51bXMvaW1hZ2VFeHRlbnRpb25zJztcblxuZXhwb3J0IGNvbnN0IGNhbWVyYUlkQmVnaW5uaW5nID0gJ2NhbWVyYWlkJztcblxuZXhwb3J0IGNvbnN0IGdldEFycmF5RnJvbU51bWJlciA9IChudW0pID0+IFsuLi5BcnJheShudW0pLmtleXMoKV07XG5cbmV4cG9ydCBjb25zdCBmaW5kV2FsbFZlcnRpY2VzID0gKHdhbGxzLCB3YWxsLCB2ZXJ0aWNlcykgPT4ge1xuICBjb25zdCBjdXJyZW50V2FsbCA9IHdhbGxzLmZpbmQoKGVsKSA9PiBlbC5JRCA9PT0gd2FsbCk7XG4gIHJldHVybiBjdXJyZW50V2FsbC5WZXJ0aWNlcy5tYXAoKHZlcnRleElkKSA9PiB7XG4gICAgY29uc3QgdmVydGV4ID0gdmVydGljZXMuZmluZCgoZWwpID0+IGVsLklEID09PSB2ZXJ0ZXhJZCk7XG4gICAgcmV0dXJuIFt2ZXJ0ZXguTG9jYXRpb24uWCwgdmVydGV4LkxvY2F0aW9uLlldO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSb29tQ29vcmRpbmF0ZXMgPSAocm9vbSwgd2FsbHMsIHZlcnRpY2VzKSA9PiB7XG4gIGNvbnN0IHBvaW50cyA9IHJvb20uV2FsbHMucmVkdWNlKChhY2MsIHdhbGxJZCkgPT4ge1xuICAgIGNvbnN0IHdhbGwgPSB3YWxscy5maW5kKCh3YWxsT2JqZWN0KSA9PiB3YWxsT2JqZWN0LklEID09PSB3YWxsSWQpO1xuICAgIGZpbmRXYWxsVmVydGljZXMod2FsbHMsIHdhbGwuSUQsIHZlcnRpY2VzKS5mb3JFYWNoKCh2ZXJ0ZXgpID0+IGFjYy5wdXNoKHZlcnRleCkpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcbiAgcmV0dXJuIHBvaW50cztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTY2FsZSA9ICh7IHdpZHRoLCBoZWlnaHQgfSwganNvbikgPT4ge1xuICBpZiAoIWpzb24pIHJldHVybiB7IFg6IDEsIFk6IDEgfTtcblxuICBjb25zdCBiYXNlSW1hZ2VXaWR0aCA9IDEwMjQ7XG4gIGNvbnN0IGJhc2VJbWFnZUhlaWdodCA9IGhlaWdodCAqIChiYXNlSW1hZ2VXaWR0aCAvIHdpZHRoKTtcblxuICBjb25zdCBkZWx0YVggPSAod2lkdGggLyBiYXNlSW1hZ2VXaWR0aCkgLyBqc29uLlNjYWxlLlg7XG4gIGNvbnN0IGRlbHRhWSA9IChoZWlnaHQgLyBiYXNlSW1hZ2VIZWlnaHQpIC8ganNvbi5TY2FsZS5YO1xuXG4gIHJldHVybiB7IFg6IGRlbHRhWCwgWTogZGVsdGFZIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q2FtZXJhRnJvbVNyYyA9IChqc29uLCBzcmMpID0+IHtcbiAgY29uc3QgY2FtZXJhSWRJbmRleCA9IHNyYy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoY2FtZXJhSWRCZWdpbm5pbmcpO1xuXG4gIGlmIChjYW1lcmFJZEluZGV4ID09PSAtMSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgY2FtZXJhSWQgPSByZW1vdmVFeHRlbnRpb24oc3JjLnN1YnN0cmluZyhjYW1lcmFJZEluZGV4KSk7XG5cbiAgcmV0dXJuIGpzb24uRmxvb3JzWzBdLkNhbWVyYVBvaW50cz8uZmluZCgoeyBJRCB9KSA9PiBJRCA9PT0gY2FtZXJhSWQpIHx8IG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q2xvc2VzdFBhbm9yYW1hID0gKHBvaW50LCBwYW5vcmFtYXMpID0+IHtcbiAgcmV0dXJuIHBhbm9yYW1hcy5yZWR1Y2UoKGNsb3Nlc3QsIGN1cnJlbnQpID0+IHtcbiAgICBjb25zdCBsZW5ndGggPSBsaW5lTGVuZ3RoKFtwb2ludCwgW2N1cnJlbnQudXNlckRhdGEubGVmdCwgY3VycmVudC51c2VyRGF0YS50b3BdXSk7XG4gICAgaWYgKGxlbmd0aCA8IGNsb3Nlc3QubGVuZ3RoKSB7XG4gICAgICByZXR1cm4geyBwYW5vcmFtYTogY3VycmVudCwgbGVuZ3RoIH07XG4gICAgfVxuICAgIHJldHVybiBjbG9zZXN0O1xuICB9LCB7IGxlbmd0aDogSW5maW5pdHksIHBhbm9yYW1hOiBudWxsIH0pO1xufTtcbiJdfQ==