hart-estate-widget 0.0.69 → 0.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -15
- package/build/widget.bundle.js +3 -0
- package/build/widget.bundle.js.LICENSE.txt +78 -0
- package/build/widget.bundle.js.map +1 -0
- package/build/widget.module.js +3 -0
- package/build/widget.module.js.LICENSE.txt +78 -0
- package/build/widget.module.js.map +1 -0
- package/package.json +22 -21
- package/build/assets/css/index.css +0 -2
- package/build/assets/fonts/RobotoMono/RobotoMono-Bold.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Bold.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Bold.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-BoldItalic.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-BoldItalic.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-BoldItalic.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Italic.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Italic.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Italic.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Light.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Light.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Light.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-LightItalic.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-LightItalic.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-LightItalic.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Medium.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Medium.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Medium.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-MediumItalic.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-MediumItalic.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-MediumItalic.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Regular.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Regular.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Regular.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Thin.ttf +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Thin.woff +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono-Thin.woff2 +0 -0
- package/build/assets/fonts/RobotoMono/RobotoMono.css +0 -98
- package/build/assets/icons/1x.svg +0 -4
- package/build/assets/icons/2x.svg +0 -4
- package/build/assets/icons/arrow-left.svg +0 -4
- package/build/assets/icons/arrow-right.svg +0 -4
- package/build/assets/icons/bullet.png +0 -0
- package/build/assets/icons/close.svg +0 -4
- package/build/assets/icons/enter-fullscreen.svg +0 -6
- package/build/assets/icons/hand-move.svg +0 -15
- package/build/assets/icons/hand-research.svg +0 -12
- package/build/assets/icons/plan.svg +0 -5
- package/build/assets/icons/render.svg +0 -7
- package/build/assets/icons/rotation-close.svg +0 -6
- package/build/assets/icons/rotation.svg +0 -4
- package/build/assets/icons/surface.svg +0 -5
- package/build/assets/img/3D.jpg +0 -0
- package/build/assets/img/door-icon.png +0 -0
- package/build/assets/img/door-texture.jpeg +0 -0
- package/build/assets/img/exterior-wall-texture-roughness.jpg +0 -0
- package/build/assets/img/exterior-wall-texture.jpeg +0 -0
- package/build/assets/img/floor-bathroom.jpg +0 -0
- package/build/assets/img/floor-dark.jpg +0 -0
- package/build/assets/img/floor-white.jpg +0 -0
- package/build/assets/img/floor.jpg +0 -0
- package/build/assets/img/grass.jpg +0 -0
- package/build/assets/img/logo.svg +0 -11
- package/build/assets/img/refresh-icon.svg +0 -6
- package/build/assets/img/spot-icon.png +0 -0
- package/build/assets/img/wall-texture.jpg +0 -0
- package/build/assets/sass/components/instructions.sass +0 -94
- package/build/assets/sass/components/loader.sass +0 -54
- package/build/assets/sass/components/model.sass +0 -27
- package/build/assets/sass/components/panorama.sass +0 -174
- package/build/assets/sass/components/rotation.sass +0 -202
- package/build/assets/sass/components/tabs.sass +0 -121
- package/build/assets/sass/index.sass +0 -65
- package/build/assets/sass/mixin.sass +0 -48
- package/build/assets/sass/vars.sass +0 -28
- package/build/bundle.js +0 -2
- package/build/components/Application.js +0 -2
- package/build/components/Buttons/FullScreenButton.js +0 -2
- package/build/components/Buttons/TabButton.js +0 -2
- package/build/components/Instructions.js +0 -2
- package/build/components/Loader.js +0 -2
- package/build/components/ModelTab.js +0 -2
- package/build/components/PanoramaTab.js +0 -2
- package/build/components/RotationTab/DefaultView.js +0 -2
- package/build/components/RotationTab/ThreesixtyView.js +0 -2
- package/build/components/RotationTab/index.js +0 -2
- package/build/components/Widget.js +0 -2
- package/build/config/defaultConfig.js +0 -2
- package/build/enums/deviceOrientationStatuses.js +0 -2
- package/build/enums/deviceWidth.js +0 -2
- package/build/enums/imageExtentions.js +0 -2
- package/build/enums/rotationModes.js +0 -2
- package/build/index.css +0 -2
- package/build/index.js +0 -2
- package/build/locale/en/data.json +0 -25
- package/build/locale/index.js +0 -2
- package/build/locale/ru/data.json +0 -25
- package/build/store/apiStore.js +0 -2
- package/build/store/deviceStore.js +0 -2
- package/build/store/fullScreenStore.js +0 -2
- package/build/store/houseStore.js +0 -2
- package/build/store/index.js +0 -2
- package/build/store/modelStore.js +0 -2
- package/build/threesixty/events.js +0 -2
- package/build/threesixty/index.js +0 -2
- package/build/utils/csg/csg-lib.js +0 -2
- package/build/utils/csg/csg-worker.js +0 -2
- package/build/utils/csg/three-csg.js +0 -2
- package/build/utils/helpers.js +0 -2
- package/build/utils/modelHelpers.js +0 -2
- package/build/utils/panoramaHelpers.js +0 -2
@@ -1,25 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"research-plan": "Исследовать планировку",
|
3
|
-
"rotate-plan": "Вращать планировку",
|
4
|
-
"rotate": "Старт",
|
5
|
-
"stop": "Стоп",
|
6
|
-
"plan": "Планировка",
|
7
|
-
"off": "Выкл",
|
8
|
-
"on": "Вкл",
|
9
|
-
"ok": "Ок",
|
10
|
-
"menu": "Меню",
|
11
|
-
"wasd": "WASD",
|
12
|
-
"view-from-above": "Обзор сверху",
|
13
|
-
"free-camera": "Свободный обзор",
|
14
|
-
"shadows": "Тени",
|
15
|
-
"hide-walls": "Скрыть стены",
|
16
|
-
"show-walls": "Показать стены",
|
17
|
-
"hide-doors": "Скрыть двери",
|
18
|
-
"show-doors": "Показать двери",
|
19
|
-
"material": "Материал",
|
20
|
-
"texture": "Текстура",
|
21
|
-
"color": "Цвет",
|
22
|
-
"wall-color": "Цвет стен",
|
23
|
-
"wall-texture": "Текстура стен",
|
24
|
-
"upload-wall-texture": "Загрузить текстуру стен"
|
25
|
-
}
|
package/build/store/apiStore.js
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireDefault(require("react")),_mobx=require("mobx");function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _regeneratorRuntime(){_regeneratorRuntime=function(){return i};var i={},t=Object.prototype,u=t.hasOwnProperty,e="function"==typeof Symbol?Symbol:{},n=e.iterator||"@@iterator",r=e.asyncIterator||"@@asyncIterator",o=e.toStringTag||"@@toStringTag";function a(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{a({},"")}catch(t){a=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o,a,i,c,e=e&&e.prototype instanceof l?e:l,e=Object.create(e.prototype),n=new w(n||[]);return e._invoke=(o=t,a=r,i=n,c="suspendedStart",function(t,e){if("executing"===c)throw new Error("Generator is already running");if("completed"===c){if("throw"===t)throw e;return b()}for(i.method=t,i.arg=e;;){var r=i.delegate;if(r){r=function t(e,r){var n=e.iterator[r.method];if(void 0===n){if(r.delegate=null,"throw"===r.method){if(e.iterator.return&&(r.method="return",r.arg=void 0,t(e,r),"throw"===r.method))return f;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}n=s(n,e.iterator,r.arg);if("throw"===n.type)return r.method="throw",r.arg=n.arg,r.delegate=null,f;n=n.arg;return n?n.done?(r[e.resultName]=n.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=void 0),r.delegate=null,f):n:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,f)}(r,i);if(r){if(r===f)continue;return r}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===c)throw c="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);c="executing";r=s(o,a,i);if("normal"===r.type){if(c=i.done?"completed":"suspendedYield",r.arg===f)continue;return{value:r.arg,done:i.done}}"throw"===r.type&&(c="completed",i.method="throw",i.arg=r.arg)}}),e}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}i.wrap=c;var f={};function l(){}function p(){}function h(){}var e={},y=(a(e,n,function(){return this}),Object.getPrototypeOf),y=y&&y(y(x([]))),d=(y&&y!==t&&u.call(y,n)&&(e=y),h.prototype=l.prototype=Object.create(e));function v(t){["next","throw","return"].forEach(function(e){a(t,e,function(t){return this._invoke(e,t)})})}function m(i,c){var e;this._invoke=function(r,n){function t(){return new c(function(t,e){!function e(t,r,n,o){var a,t=s(i[t],i,r);if("throw"!==t.type)return(r=(a=t.arg).value)&&"object"==_typeof(r)&&u.call(r,"__await")?c.resolve(r.__await).then(function(t){e("next",t,n,o)},function(t){e("throw",t,n,o)}):c.resolve(r).then(function(t){a.value=t,n(a)},function(t){return e("throw",t,n,o)});o(t.arg)}(r,n,t,e)})}return e=e?e.then(t,t):t()}}function g(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function _(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function w(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(g,this),this.reset(!0)}function x(e){if(e){var r,t=e[n];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return r=-1,(t=function t(){for(;++r<e.length;)if(u.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t}).next=t}return{next:b}}function b(){return{value:void 0,done:!0}}return a(d,"constructor",p.prototype=h),a(h,"constructor",p),p.displayName=a(h,o,"GeneratorFunction"),i.isGeneratorFunction=function(t){t="function"==typeof t&&t.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},i.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,h):(t.__proto__=h,a(t,o,"GeneratorFunction")),t.prototype=Object.create(d),t},i.awrap=function(t){return{__await:t}},v(m.prototype),a(m.prototype,r,function(){return this}),i.AsyncIterator=m,i.async=function(t,e,r,n,o){void 0===o&&(o=Promise);var a=new m(c(t,e,r,n),o);return i.isGeneratorFunction(e)?a:a.next().then(function(t){return t.done?t.value:a.next()})},v(d),a(d,o,"Generator"),a(d,n,function(){return this}),a(d,"toString",function(){return"[object Generator]"}),i.keys=function(r){var t,n=[];for(t in r)n.push(t);return n.reverse(),function t(){for(;n.length;){var e=n.pop();if(e in r)return t.value=e,t.done=!1,t}return t.done=!0,t}},i.values=x,w.prototype={constructor:w,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(_),!t)for(var e in this)"t"===e.charAt(0)&&u.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var n=this;function t(t,e){return a.type="throw",a.arg=r,n.next=t,e&&(n.method="next",n.arg=void 0),!!e}for(var e=this.tryEntries.length-1;0<=e;--e){var o=this.tryEntries[e],a=o.completion;if("root"===o.tryLoc)return t("end");if(o.tryLoc<=this.prev){var i=u.call(o,"catchLoc"),c=u.call(o,"finallyLoc");if(i&&c){if(this.prev<o.catchLoc)return t(o.catchLoc,!0);if(this.prev<o.finallyLoc)return t(o.finallyLoc)}else if(i){if(this.prev<o.catchLoc)return t(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return t(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;0<=r;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&u.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}var a=(o=o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc?null:o)?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,f):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),f},finish:function(t){for(var e=this.tryEntries.length-1;0<=e;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),_(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;0<=e;--e){var r,n,o=this.tryEntries[e];if(o.tryLoc===t)return"throw"===(r=o.completion).type&&(n=r.arg,_(o)),n}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:x(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},i}function asyncGeneratorStep(t,e,r,n,o,a,i){try{var c=t[a](i),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}function _asyncToGenerator(c){return function(){var t=this,i=arguments;return new Promise(function(e,r){var n=c.apply(t,i);function o(t){asyncGeneratorStep(n,e,r,o,a,"next",t)}function a(t){asyncGeneratorStep(n,e,r,o,a,"throw",t)}o(void 0)})}}function _defineProperties(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function _createClass(t,e,r){return e&&_defineProperties(t.prototype,e),r&&_defineProperties(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperty(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}(0,_mobx.configure)({useProxies:"never"});var ApiStore=_createClass(function t(e){var o=this;_classCallCheck(this,t),_defineProperty(this,"API_URL",null),_defineProperty(this,"loadFurnitureData",_asyncToGenerator(_regeneratorRuntime().mark(function t(){var e;return _regeneratorRuntime().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return e="".concat(o.API_URL,"/api/furniture"),t.next=3,fetch(e);case 3:return e=t.sent,t.next=6,e.json();case 6:return t.abrupt("return",t.sent);case 7:case"end":return t.stop()}},t)}))),_defineProperty(this,"loadCrmWidgetData",function(){var e=_asyncToGenerator(_regeneratorRuntime().mark(function t(e){var r;return _regeneratorRuntime().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return r="".concat(o.API_URL,"/api/crm/plans/").concat(e,"/widget"),t.next=3,fetch(r);case 3:return r=t.sent,t.next=6,r.json();case 6:return t.abrupt("return",t.sent);case 7:case"end":return t.stop()}},t)}));return function(t){return e.apply(this,arguments)}}()),_defineProperty(this,"loadWidgetData",function(){var e=_asyncToGenerator(_regeneratorRuntime().mark(function t(e){var r;return _regeneratorRuntime().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return r="".concat(o.API_URL,"/api/plans/").concat(e,"/widget"),t.next=3,fetch(r);case 3:return r=t.sent,t.next=6,r.json();case 6:return t.abrupt("return",t.sent);case 7:case"end":return t.stop()}},t)}));return function(t){return e.apply(this,arguments)}}()),_defineProperty(this,"loadEditorData",function(){var r=_asyncToGenerator(_regeneratorRuntime().mark(function t(e,r){var n;return _regeneratorRuntime().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return n="".concat(o.API_URL,"/api/plans/").concat(e,"/editor?token=").concat(r),t.next=3,fetch(n);case 3:return n=t.sent,t.next=6,n.json();case 6:return t.abrupt("return",t.sent);case 7:case"end":return t.stop()}},t)}));return function(t,e){return r.apply(this,arguments)}}()),_defineProperty(this,"loadPanoramaData",function(){var e=_asyncToGenerator(_regeneratorRuntime().mark(function t(e){var r;return _regeneratorRuntime().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return r="".concat(o.API_URL,"/api/plans/").concat(e,"/panorama"),t.next=3,fetch(r);case 3:return r=t.sent,t.next=6,r.json();case 6:return t.abrupt("return",t.sent);case 7:case"end":return t.stop()}},t)}));return function(t){return e.apply(this,arguments)}}()),_defineProperty(this,"loadJson",function(){var e=_asyncToGenerator(_regeneratorRuntime().mark(function t(e){var r;return _regeneratorRuntime().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,fetch(e);case 2:return r=t.sent,t.next=5,r.json();case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}},t)}));return function(t){return e.apply(this,arguments)}}()),(0,_mobx.makeAutoObservable)(this),this.API_URL=e}),_default=ApiStore;exports.default=_default;
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3JlL2FwaVN0b3JlLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX21vYngiLCJjb25maWd1cmUiLCJ1c2VQcm94aWVzIiwiQXBpU3RvcmUiLCJBUElfVVJMIiwiX3RoaXMiLCJ0aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnR5IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJyZXNwb25zZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwicGF0aCIsImNvbmNhdCIsImZldGNoIiwic2VudCIsImpzb24iLCJhYnJ1cHQiLCJzdG9wIiwiX3JlZjIiLCJfY2FsbGVlMiIsImNybVBsYW5JZCIsIl9jb250ZXh0MiIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJfcmVmMyIsIl9jYWxsZWUzIiwicGxhbklkIiwiX2NvbnRleHQzIiwiX3gyIiwiX3JlZjQiLCJfY2FsbGVlNCIsInRva2VuIiwiX2NvbnRleHQ0IiwiX3gzIiwiX3g0IiwiX3JlZjUiLCJfY2FsbGVlNSIsIl9jb250ZXh0NSIsIl94NSIsIl9yZWY2IiwiX2NhbGxlZTYiLCJfY29udGV4dDYiLCJfeDYiLCJtYWtlQXV0b09ic2VydmFibGUiXSwibWFwcGluZ3MiOiI0VUFBQSxJQUFBQSxPQUFBQyx1QkFBQUMsUUFBQSxVQUNBQyxNQUFBRCxRQUFBLFEsaXdPQUVBLEVBQUFFLE1BQUFBLFdBQVUsQ0FBRUMsV0FBWSxVLElBRWxCQyxTLGFBR0osU0FBQUEsRUFBWUMsR0FBUyxJQUFBQyxFQUFBQyxLQUFBQyxnQkFBQUQsS0FBQUgsR0FBQUssZ0JBQUFGLEtBQUEsVUFGWCxNQUVXRSxnQkFBQUYsS0FBQSxvQkFBQUcsa0JBQUFDLHNCQUFBQyxLQU1ELFNBQUFDLElBQUEsSUFBQUMsRUFBQSxPQUFBSCxzQkFBQUksS0FBQSxTQUFBQyxHQUFBLE9B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QSxFQUFBN0IsS0FBQTZCLEVBQUE1QixNQUFBLEtBQUEsRUFBQSxPQStCYkMsRUEvQmEsR0FBQUMsT0ErQkhkLEVBQUtELFFBL0JGLGVBQUFlLE9BK0J1QmUsRUEvQnZCLGFBQUFXLEVBQUE1QixLQUFBLEVBQUFHLE1BQUFGLEdBQUEsS0FBQSxFQUFBLE9BQUFMLEVBQUFnQyxFQUFBeEIsS0FBQXdCLEVBQUE1QixLQUFBLEVBTURKLEVBQUFTLE9BTkMsS0FBQSxFQUFBLE9BQUF1QixFQUFBdEIsT0FBQSxTQUFBc0IsRUFBQXhCLE1BQUEsS0FBQSxFQUFBLElBQUEsTUFBQSxPQUFBd0IsRUFBQXJCLFNBQUFvQixNQUFBLE9BQUEsU0FBQUUsR0FBQSxPQUFBSCxFQUFBYixNQUFBeEIsS0FBQXlCLFlBQUEsSUFBQXZCLGdCQUFBRixLQUFBLFdBQUEsV0FBQSxJQUFBeUMsRUFBQXRDLGtCQUFBQyxzQkFBQUMsS0FNRCxTQUFBcUMsRUFBQTlCLEdBQUEsSUFBQUwsRUFBQSxPQUFBSCxzQkFBQUksS0FBQSxTQUFBbUMsR0FBQSxPQUFBLE9BQUFBLEVBQUFqQyxLQUFBaUMsRUFBQWhDLE1BQUEsS0FBQSxFQUFBLE9BQUFnQyxFQUFBaEMsS0FBQSxFQUFBRyxNQUFBRixHQUFBLEtBQUEsRUFBQSxPQUFBTCxFQUFBb0MsRUFBQTVCLEtBQUE0QixFQUFBaEMsS0FBQSxFQUFBSixFQUFBUyxPQUFBLEtBQUEsRUFBQSxPQUFBMkIsRUFBQTFCLE9BQUEsU0FBQTBCLEVBQUE1QixNQUFBLEtBQUEsRUFBQSxJQUFBLE1BQUEsT0FBQTRCLEVBQUF6QixTQUFBd0IsTUFOQyxPQUFBLFNBQUFFLEdBQUEsT0FBQUgsRUFBQWpCLE1BQUF4QixLQUFBeUIsWUFBQSxLQVJ2QixFQUFBb0IsTUFBQUEsb0JBQUE3QyxNQUNBQSxLQUFBRixRQUFBQSxJLFNBYXNCRCIsImZpbGUiOiJzdG9yZS9hcGlTdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25maWd1cmUsIG1ha2VBdXRvT2JzZXJ2YWJsZSB9IGZyb20gJ21vYngnO1xuXG5jb25maWd1cmUoeyB1c2VQcm94aWVzOiAnbmV2ZXInIH0pO1xuXG5jbGFzcyBBcGlTdG9yZSB7XG4gIEFQSV9VUkwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKEFQSV9VUkwpIHtcbiAgICBtYWtlQXV0b09ic2VydmFibGUodGhpcyk7XG5cbiAgICB0aGlzLkFQSV9VUkwgPSBBUElfVVJMO1xuICB9XG5cbiAgbG9hZEZ1cm5pdHVyZURhdGEgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGAke3RoaXMuQVBJX1VSTH0vYXBpL2Z1cm5pdHVyZWA7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChwYXRoKTtcbiAgICByZXR1cm4gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICB9O1xuXG4gIGxvYWRDcm1XaWRnZXREYXRhID0gYXN5bmMgKGNybVBsYW5JZCkgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBgJHt0aGlzLkFQSV9VUkx9L2FwaS9jcm0vcGxhbnMvJHtjcm1QbGFuSWR9L3dpZGdldGA7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChwYXRoKTtcbiAgICByZXR1cm4gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICB9O1xuXG4gIGxvYWRXaWRnZXREYXRhID0gYXN5bmMgKHBsYW5JZCkgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBgJHt0aGlzLkFQSV9VUkx9L2FwaS9wbGFucy8ke3BsYW5JZH0vd2lkZ2V0YDtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHBhdGgpO1xuICAgIHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gIH07XG5cbiAgbG9hZEVkaXRvckRhdGEgPSBhc3luYyAocGxhbklkLCB0b2tlbikgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBgJHt0aGlzLkFQSV9VUkx9L2FwaS9wbGFucy8ke3BsYW5JZH0vZWRpdG9yP3Rva2VuPSR7dG9rZW59YDtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHBhdGgpO1xuICAgIHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gIH07XG5cbiAgbG9hZFBhbm9yYW1hRGF0YSA9IGFzeW5jIChwbGFuSWQpID0+IHtcbiAgICBjb25zdCBwYXRoID0gYCR7dGhpcy5BUElfVVJMfS9hcGkvcGxhbnMvJHtwbGFuSWR9L3Bhbm9yYW1hYDtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHBhdGgpO1xuICAgIHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gIH07XG5cbiAgbG9hZEpzb24gPSBhc3luYyAocGF0aCkgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocGF0aCk7XG4gICAgcmV0dXJuIGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQXBpU3RvcmU7XG4iXX0=
|
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireDefault(require("react")),_mobx=require("mobx"),_uaParserJs=_interopRequireDefault(require("ua-parser-js"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var i=r[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}(0,_mobx.configure)({useProxies:"never"});var DeviceStore=function(){function e(){_classCallCheck(this,e),_defineProperty(this,"parser",null),(0,_mobx.makeAutoObservable)(this),this.parser=new _uaParserJs.default}return _createClass(e,[{key:"device",get:function(){return this.parser.getDevice()}},{key:"isMobile",get:function(){return"mobile"===this.device.type}},{key:"isTablet",get:function(){return"tablet"===this.device.type}}]),e}(),_default=new DeviceStore;exports.default=_default;
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3JlL2RldmljZVN0b3JlLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX21vYngiLCJfdWFQYXJzZXJKcyIsImNvbmZpZ3VyZSIsInVzZVByb3hpZXMiLCJEZXZpY2VTdG9yZSIsIl9jbGFzc0NhbGxDaGVjayIsInRoaXMiLCJfZGVmaW5lUHJvcGVydHkiLCJtYWtlQXV0b09ic2VydmFibGUiLCJwYXJzZXIiLCJVQVBhcnNlciIsImdldERldmljZSIsImRldmljZSIsInR5cGUiXSwibWFwcGluZ3MiOiIyRkFBQSxJQUFBQSxPQUFBQyx1QkFBQUMsUUFBQSxVQUNBQyxNQUFBRCxRQUFBLFFBQ0FFLFlBQUFILHVCQUFBQyxRQUFBLGlCLHdvQkFFQSxFQUFBRyxNQUFBQSxXQUFVLENBQUVDLFdBQVksVSxJQUVsQkMsWSxXQUxOLFNBQUFBLElBQUFDLGdCQUFBQyxLQUFBRixHQUFBRyxnQkFBQUQsS0FBQSxTQURBLE9BVUksRUFBQUUsTUFBQUEsb0JBQW1CRixNQUVuQkEsS0FBS0csT0FBUyxJQUFJQyxZQUFBQSxRLHlDQUdwQixXQUNFLE9BQU9KLEtBQUtHLE9BQU9FLGMsb0JBR3JCLFdBQ0UsTUFBNEIsV0FBckJMLEtBQUtNLE9BQU9DLE8sb0JBaEJ2QixXQUFZVixNQUFZLFdBQVpBLEtBQVlTLE9BQUFDLFMsY0FLdEIsSUFBQVQiLCJmaWxlIjoic3RvcmUvZGV2aWNlU3RvcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29uZmlndXJlLCBtYWtlQXV0b09ic2VydmFibGUgfSBmcm9tICdtb2J4JztcbmltcG9ydCBVQVBhcnNlciBmcm9tICd1YS1wYXJzZXItanMnO1xuXG5jb25maWd1cmUoeyB1c2VQcm94aWVzOiAnbmV2ZXInIH0pO1xuXG5jbGFzcyBEZXZpY2VTdG9yZSB7XG4gIHBhcnNlciA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgbWFrZUF1dG9PYnNlcnZhYmxlKHRoaXMpO1xuXG4gICAgdGhpcy5wYXJzZXIgPSBuZXcgVUFQYXJzZXIoKTtcbiAgfVxuXG4gIGdldCBkZXZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLmdldERldmljZSgpO1xuICB9XG5cbiAgZ2V0IGlzTW9iaWxlKCkge1xuICAgIHJldHVybiB0aGlzLmRldmljZS50eXBlID09PSAnbW9iaWxlJztcbiAgfVxuXG4gIGdldCBpc1RhYmxldCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXZpY2UudHlwZSA9PT0gJ3RhYmxldCc7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IERldmljZVN0b3JlKCk7XG4iXX0=
|
@@ -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")),_store=_interopRequireDefault(require("../store")),_mobx=require("mobx"),_screenfull=_interopRequireDefault(require("screenfull"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _regeneratorRuntime(){_regeneratorRuntime=function(){return a};var a={},e=Object.prototype,c=e.hasOwnProperty,t="function"==typeof Symbol?Symbol:{},n=t.iterator||"@@iterator",r=t.asyncIterator||"@@asyncIterator",o=t.toStringTag||"@@toStringTag";function i(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{i({},"")}catch(e){i=function(e,t,r){return e[t]=r}}function u(e,t,r,n){var o,i,a,u,t=t&&t.prototype instanceof l?t:l,t=Object.create(t.prototype),n=new _(n||[]);return t._invoke=(o=e,i=r,a=n,u="suspendedStart",function(e,t){if("executing"===u)throw new Error("Generator is already running");if("completed"===u){if("throw"===e)throw t;return x()}for(a.method=e,a.arg=t;;){var r=a.delegate;if(r){r=function e(t,r){var n=t.iterator[r.method];if(void 0===n){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=void 0,e(t,r),"throw"===r.method))return f;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}n=s(n,t.iterator,r.arg);if("throw"===n.type)return r.method="throw",r.arg=n.arg,r.delegate=null,f;n=n.arg;return n?n.done?(r[t.resultName]=n.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=void 0),r.delegate=null,f):n:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,f)}(r,a);if(r){if(r===f)continue;return r}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if("suspendedStart"===u)throw u="completed",a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);u="executing";r=s(o,i,a);if("normal"===r.type){if(u=a.done?"completed":"suspendedYield",r.arg===f)continue;return{value:r.arg,done:a.done}}"throw"===r.type&&(u="completed",a.method="throw",a.arg=r.arg)}}),t}function s(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}a.wrap=u;var f={};function l(){}function h(){}function p(){}var t={},y=(i(t,n,function(){return this}),Object.getPrototypeOf),y=y&&y(y(b([]))),d=(y&&y!==e&&c.call(y,n)&&(t=y),p.prototype=l.prototype=Object.create(t));function v(e){["next","throw","return"].forEach(function(t){i(e,t,function(e){return this._invoke(t,e)})})}function g(a,u){var t;this._invoke=function(r,n){function e(){return new u(function(e,t){!function t(e,r,n,o){var i,e=s(a[e],a,r);if("throw"!==e.type)return(r=(i=e.arg).value)&&"object"==_typeof(r)&&c.call(r,"__await")?u.resolve(r.__await).then(function(e){t("next",e,n,o)},function(e){t("throw",e,n,o)}):u.resolve(r).then(function(e){i.value=e,n(i)},function(e){return t("throw",e,n,o)});o(e.arg)}(r,n,e,t)})}return t=t?t.then(e,e):e()}}function m(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function w(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function b(t){if(t){var r,e=t[n];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length))return r=-1,(e=function e(){for(;++r<t.length;)if(c.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e}).next=e}return{next:x}}function x(){return{value:void 0,done:!0}}return i(d,"constructor",h.prototype=p),i(p,"constructor",h),h.displayName=i(p,o,"GeneratorFunction"),a.isGeneratorFunction=function(e){e="function"==typeof e&&e.constructor;return!!e&&(e===h||"GeneratorFunction"===(e.displayName||e.name))},a.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,i(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e},a.awrap=function(e){return{__await:e}},v(g.prototype),i(g.prototype,r,function(){return this}),a.AsyncIterator=g,a.async=function(e,t,r,n,o){void 0===o&&(o=Promise);var i=new g(u(e,t,r,n),o);return a.isGeneratorFunction(t)?i:i.next().then(function(e){return e.done?e.value:i.next()})},v(d),i(d,o,"Generator"),i(d,n,function(){return this}),i(d,"toString",function(){return"[object Generator]"}),a.keys=function(r){var e,n=[];for(e in r)n.push(e);return n.reverse(),function e(){for(;n.length;){var t=n.pop();if(t in r)return e.value=t,e.done=!1,e}return e.done=!0,e}},a.values=b,_.prototype={constructor:_,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(w),!e)for(var t in this)"t"===t.charAt(0)&&c.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var n=this;function e(e,t){return i.type="throw",i.arg=r,n.next=e,t&&(n.method="next",n.arg=void 0),!!t}for(var t=this.tryEntries.length-1;0<=t;--t){var o=this.tryEntries[t],i=o.completion;if("root"===o.tryLoc)return e("end");if(o.tryLoc<=this.prev){var a=c.call(o,"catchLoc"),u=c.call(o,"finallyLoc");if(a&&u){if(this.prev<o.catchLoc)return e(o.catchLoc,!0);if(this.prev<o.finallyLoc)return e(o.finallyLoc)}else if(a){if(this.prev<o.catchLoc)return e(o.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return e(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;0<=r;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&c.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}var i=(o=o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc?null:o)?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,f):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;0<=t;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),w(r),f}},catch:function(e){for(var t=this.tryEntries.length-1;0<=t;--t){var r,n,o=this.tryEntries[t];if(o.tryLoc===e)return"throw"===(r=o.completion).type&&(n=r.arg,w(o)),n}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:b(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},a}function asyncGeneratorStep(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function _asyncToGenerator(u){return function(){var e=this,a=arguments;return new Promise(function(t,r){var n=u.apply(e,a);function o(e){asyncGeneratorStep(n,t,r,o,i,"next",e)}function i(e){asyncGeneratorStep(n,t,r,o,i,"throw",e)}o(void 0)})}}function ownKeys(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(r),!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}(0,_mobx.configure)({useProxies:"never"});var FullscreenStore=function(){function e(){_classCallCheck(this,e),_defineProperty(this,"enabled",_screenfull.default.isEnabled),_defineProperty(this,"active",!1),_defineProperty(this,"element",null),_defineProperty(this,"width",null),_defineProperty(this,"height",null),(0,_mobx.makeAutoObservable)(this)}var t,r;return _createClass(e,[{key:"init",value:function(){var e=this;this.element=document.querySelector("#widget-application"),this.enabled&&(this.resize(_store.default.config),_screenfull.default.on("change",function(){setTimeout(function(){e.active=_screenfull.default.isFullscreen,e.active?_store.default.setConfig(_objectSpread(_objectSpread({},_store.default.config),{},{width:window.innerWidth,height:window.innerHeight})):_store.default.setConfig(_objectSpread(_objectSpread({},_store.default.config),{},{width:e.width,height:e.height}))},100)}))}},{key:"enter",value:(r=_asyncToGenerator(_regeneratorRuntime().mark(function e(){return _regeneratorRuntime().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,_screenfull.default.request(this.element);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e,this)})),function(){return r.apply(this,arguments)})},{key:"exit",value:(t=_asyncToGenerator(_regeneratorRuntime().mark(function e(){return _regeneratorRuntime().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,_screenfull.default.exit();case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e)})),function(){return t.apply(this,arguments)})},{key:"resize",value:function(e){var t=e.width,e=e.height;this.width=t,this.height=e}}]),e}(),_default=new FullscreenStore;exports.default=_default;
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3JlL2Z1bGxTY3JlZW5TdG9yZS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdG9yZSIsIl9tb2J4IiwiX3NjcmVlbmZ1bGwiLCJjb25maWd1cmUiLCJ1c2VQcm94aWVzIiwiRnVsbHNjcmVlblN0b3JlIiwiX2NsYXNzQ2FsbENoZWNrIiwidGhpcyIsIl9kZWZpbmVQcm9wZXJ0eSIsInNjcmVlbmZ1bGwiLCJpc0VuYWJsZWQiLCJtYWtlQXV0b09ic2VydmFibGUiLCJfdGhpcyIsImVsZW1lbnQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJlbmFibGVkIiwicmVzaXplIiwic3RvcmUiLCJjb25maWciLCJvbiIsInNldFRpbWVvdXQiLCJhY3RpdmUiLCJpc0Z1bGxzY3JlZW4iLCJzZXRDb25maWciLCJfb2JqZWN0U3ByZWFkIiwid2lkdGgiLCJ3aW5kb3ciLCJpbm5lcldpZHRoIiwiaGVpZ2h0IiwiaW5uZXJIZWlnaHQiLCJfY2FsbGVlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwicmVxdWVzdCIsImFicnVwdCIsInNlbnQiLCJzdG9wIiwiX2NhbGxlZTIiLCJfY29udGV4dDIiLCJleGl0IiwiX3JlZiJdLCJtYXBwaW5ncyI6IjRVQUFBLElBQUFBLE9BQUFDLHVCQUFBQyxRQUFBLFVBQ0FDLE9BQUFGLHVCQUFBQyxRQUFBLGFBQ0FFLE1BQUFGLFFBQUEsUUFDQUcsWUFBQUosdUJBQUFDLFFBQUEsZSxtMlBBRUEsRUFBQUksTUFBQUEsV0FBVSxDQUFFQyxXQUFZLFUsSUFFbEJDLGdCLFdBV0osU0FBQUEsSUFBY0MsZ0JBQUFDLEtBQUFGLEdBQUFHLGdCQUFBRCxLQUFBLFVBVkpFLFlBQUFBLFFBQVdDLFdBVVBGLGdCQUFBRCxLQUFBLFVBUkwsR0FRS0MsZ0JBQUFELEtBQUEsVUFOSixNQU1JQyxnQkFBQUQsS0FBQSxRQUpOLE1BSU1DLGdCQUFBRCxLQUFBLFNBRkwsT0FHUCxFQUFBSSxNQUFBQSxvQkFBbUJKLE0saURBR3JCLFdBQU8sSUFBQUssRUFBQUwsS0FDTEEsS0FBS00sUUFBVUMsU0FBU0MsY0FBYyx1QkFFakNSLEtBQUtTLFVBRVZULEtBQUtVLE9BQU9DLE9BQUFBLFFBQU1DLFFBRWxCVixZQUFBQSxRQUFXVyxHQUFHLFNBQVUsV0FDdEJDLFdBQVcsV0FDVFQsRUFBS1UsT0FBU2IsWUFBQUEsUUFBV2MsYUFFckJYLEVBQUtVLE9BQ1BKLE9BQUFBLFFBQU1NLFVBQU5DLGNBQUFBLGNBQUEsR0FBcUJQLE9BQUFBLFFBQU1DLFFBQTNCLEdBQUEsQ0FBbUNPLE1BQU9DLE9BQU9DLFdBQVlDLE9BQVFGLE9BQU9HLGVBN0J0RjNCLE9BQUFBLFFBQUFBLFVBQUFBLGNBQUFBLGNBQUFBLEdBQVVlLE9BQUFBLFFBQUFDLFFBQVZoQixHQUFBQSxDQUFVdUIsTUFBQWQsRUFBQWMsTUFBQUcsT0FBQWpCLEVBQUFpQixXQUFFekIsVSxtRUFhVixTQUFBMkIsSUFBQSxPQUFBQyxzQkFBQUMsS0FBQSxTQUFBQyxHQUFBLE9BQUEsT0FBQUEsRUFBQUMsS0FBQUQsRUFBQUUsTUFBQSxLQUFBLEVBQUEsT0FBQUYsRUFBQUUsS0FBQSxFQUFjM0IsWUFBQUEsUUFBQTRCLFFBQUE5QixLQUFBTSxTQUFkLEtBQUEsRUFBQSxPQUFBcUIsRUFBQUksT0FBQSxTQUFBSixFQUFBSyxNQUFBLEtBQUEsRUFBQSxJQUFBLE1BQUEsT0FBQUwsRUFBQU0sU0FBQVQsRUFBQXhCLFMsK0dBNEJBLFNBQUFrQyxJQUFBLE9BQUFULHNCQUFBQyxLQUFBLFNBQUFTLEdBQUEsT0FBQSxPQUFBQSxFQUFBUCxLQUFBTyxFQUFBTixNQUFBLEtBQUEsRUFBQSxPQUFBTSxFQUFBTixLQUFBLEVBNUJjM0IsWUFBQUEsUUFBQWtDLE9BNEJkLEtBQUEsRUFBQSxPQUFBRCxFQUFBSixPQUFBLFNBQUFJLEVBQUFILE1BQUEsS0FBQSxFQUFBLElBQUEsTUFBQSxPQUFBRyxFQUFBRixTQUFBQyxNLGlFQUlBLFNBQUFHLEdBQTBCLElBQWpCbEIsRUFBaUJrQixFQUFqQmxCLE1BQU9HLEVBQVVlLEVBQVZmLE9BaENGdEIsS0FBQW1CLE1BQUFBLEVBa0NabkIsS0FBS3NCLE9BQVNBLE0sY0FoQ2YsSUFBQXhCIiwiZmlsZSI6InN0b3JlL2Z1bGxTY3JlZW5TdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3RvcmUgZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHsgY29uZmlndXJlLCBtYWtlQXV0b09ic2VydmFibGUgfSBmcm9tICdtb2J4JztcbmltcG9ydCBzY3JlZW5mdWxsIGZyb20gJ3NjcmVlbmZ1bGwnO1xuXG5jb25maWd1cmUoeyB1c2VQcm94aWVzOiAnbmV2ZXInIH0pO1xuXG5jbGFzcyBGdWxsc2NyZWVuU3RvcmUge1xuICBlbmFibGVkID0gc2NyZWVuZnVsbC5pc0VuYWJsZWQ7XG5cbiAgYWN0aXZlID0gZmFsc2U7XG5cbiAgZWxlbWVudCA9IG51bGw7XG5cbiAgd2lkdGggPSBudWxsO1xuXG4gIGhlaWdodCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgbWFrZUF1dG9PYnNlcnZhYmxlKHRoaXMpO1xuICB9XG5cbiAgaW5pdCgpIHtcbiAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjd2lkZ2V0LWFwcGxpY2F0aW9uJyk7XG5cbiAgICBpZiAoIXRoaXMuZW5hYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5yZXNpemUoc3RvcmUuY29uZmlnKTtcblxuICAgIHNjcmVlbmZ1bGwub24oJ2NoYW5nZScsICgpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IHNjcmVlbmZ1bGwuaXNGdWxsc2NyZWVuO1xuICBcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlKSB7XG4gICAgICAgICAgc3RvcmUuc2V0Q29uZmlnKHsgLi4uc3RvcmUuY29uZmlnLCB3aWR0aDogd2luZG93LmlubmVyV2lkdGgsIGhlaWdodDogd2luZG93LmlubmVySGVpZ2h0IH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdG9yZS5zZXRDb25maWcoeyAuLi5zdG9yZS5jb25maWcsIHdpZHRoOiB0aGlzLndpZHRoLCBoZWlnaHQ6IHRoaXMuaGVpZ2h0IH0pO1xuICAgICAgfSwgMTAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGVudGVyKCkge1xuICAgIHJldHVybiBhd2FpdCBzY3JlZW5mdWxsLnJlcXVlc3QodGhpcy5lbGVtZW50KTtcbiAgfVxuXG4gIGFzeW5jIGV4aXQoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHNjcmVlbmZ1bGwuZXhpdCgpO1xuICB9XG5cbiAgcmVzaXplKHsgd2lkdGgsIGhlaWdodCB9KSB7XG4gICAgdGhpcy53aWR0aCA9IHdpZHRoO1xuICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBGdWxsc2NyZWVuU3RvcmUoKTtcbiJdfQ==
|
@@ -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")),_mobx=require("mobx"),_apiStore=_interopRequireDefault(require("../store/apiStore")),_store=_interopRequireDefault(require("../store")),THREE=_interopRequireWildcard(require("three")),_FBXLoader=require("three/examples/jsm/loaders/FBXLoader"),_modelHelpers=require("../utils/modelHelpers"),_threeCsg=_interopRequireDefault(require("../utils/csg/three-csg")),_wallTexture=_interopRequireDefault(require("../assets/img/wall-texture.jpg")),_doorTexture=_interopRequireDefault(require("../assets/img/door-texture.jpeg")),_exteriorWallTexture=_interopRequireDefault(require("../assets/img/exterior-wall-texture.jpeg")),_exteriorWallTextureRoughness=_interopRequireDefault(require("../assets/img/exterior-wall-texture-roughness.jpg"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache=function(e){return e?r:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==_typeof(e)&&"function"!=typeof e)return{default:e};t=_getRequireWildcardCache(t);if(t&&t.has(e))return t.get(e);var r,a,o={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&((a=i?Object.getOwnPropertyDescriptor(e,r):null)&&(a.get||a.set)?Object.defineProperty(o,r,a):o[r]=e[r]);return o.default=e,t&&t.set(e,o),o}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArrayLimit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var a,o,i=[],n=!0,l=!1;try{for(r=r.call(e);!(n=(a=r.next()).done)&&(i.push(a.value),!t||i.length!==t);n=!0);}catch(e){l=!0,o=e}finally{try{n||null==r.return||r.return()}finally{if(l)throw o}}return i}}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_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(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(r="Object"===r&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=new Array(t);r<t;r++)a[r]=e[r];return a}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function ownKeys(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(r),!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}(0,_mobx.configure)({useProxies:"never"});var clippedBuildingConstant=.4,doorMaterialOptions={color:"#DADADA",side:THREE.DoubleSide},modelLoader=new _FBXLoader.FBXLoader,createDefaultMaterial=function(e){return new THREE.MeshStandardMaterial(_objectSpread({roughness:1,metalness:0},e))},HouseStore=function(){function r(e){var t=this;_classCallCheck(this,r),_defineProperty(this,"modelStore",null),_defineProperty(this,"apiStore",new _apiStore.default(_store.default.config.API_URL)),_defineProperty(this,"houseGroup",new THREE.Group),_defineProperty(this,"wallsGroup",new THREE.Group),_defineProperty(this,"doorsGroup",new THREE.Group),_defineProperty(this,"doorMaterial",null),_defineProperty(this,"wallsMaterial",null),_defineProperty(this,"wallsColor","#FFFFFF"),_defineProperty(this,"exteriorWallsMaps",{map:null,roughnessMap:null}),_defineProperty(this,"exteriorWallsMaterial",null),_defineProperty(this,"wallsTextures",[]),_defineProperty(this,"isDoorsVisible",!0),_defineProperty(this,"isFullBuildingVisible",!0),_defineProperty(this,"wallsMaterialType","texture"),_defineProperty(this,"globalPlane",null),_defineProperty(this,"clippingPlanes",[]),_defineProperty(this,"furnitureData",[]),_defineProperty(this,"loadedModels",{}),_defineProperty(this,"loadedTextures",{}),_defineProperty(this,"isShadowsVisible",!0),(0,_mobx.makeAutoObservable)(this),this.modelStore=e,this.houseGroup.name="House-Group",this.globalPlane=new THREE.Plane(new THREE.Vector3(0,-this.wallsHeight-.5,0),1),this.clippingPlanes=[this.globalPlane],this.setCenterPosition().loadTextures().then(function(){t.createFloors().createSpaceBetweenWalls().createWalls().createDoors()}),this.apiStore.loadFurnitureData().then(function(e){t.furnitureData=e,t.loadFurniture(0)})}return _createClass(r,[{key:"textureLoader",get:function(){return this.modelStore.textureLoader}},{key:"sceneScale",get:function(){return this.modelStore.sceneScale}},{key:"wallsHeight",get:function(){return this.modelStore.wallsHeight}},{key:"json",get:function(){return this.modelStore.json}},{key:"vertices",get:function(){return this.json.Vertices}},{key:"rooms",get:function(){return this.json.Floors[0].Units[0].Rooms}},{key:"walls",get:function(){return this.json.Floors[0].Walls}},{key:"exteriorWalls",get:function(){return this.json.Floors[0].ExteriorWalls}},{key:"doors",get:function(){var t=this;return this.json.Floors[0].Doors.map(function(e){return t.getParsedAperture(e,"Door")})}},{key:"windows",get:function(){var t=this;return this.json.Floors[0].Windows.map(function(e){return t.getParsedAperture(e,"Window")})}},{key:"apertures",get:function(){return[].concat(_toConsumableArray(this.doors),_toConsumableArray(this.windows))}},{key:"doorsHeight",get:function(){return this.wallsHeight/2+this.wallsHeight/4}},{key:"wallMaterialOptions",get:function(){return{clippingPlanes:this.clippingPlanes,color:this.wallsColor,side:THREE.DoubleSide}}},{key:"furniture",get:function(){return this.rooms.reduce(function(e,t){t=t.Furniture;return t&&t.length?[].concat(_toConsumableArray(e),_toConsumableArray(t)):e},[])}},{key:"getVertexById",value:function(t){return this.vertices.find(function(e){return e.ID===t})}},{key:"getWallById",value:function(t){return this.walls.find(function(e){return e.ID===t})}},{key:"getParsedAperture",value:function(e,t){var r=e.Location,a=e.Walls,r=new THREE.Vector3(r.X,r.Y,r.Z),a=this.getParsedWallById(a[1],1),a=new THREE.Line3(a.start,a.end),o=new THREE.Vector3,a=(a.closestPointToPoint(r,!0,o),new THREE.Line3(r,o)),r=a.distance(),a=a.getCenter(o);return _objectSpread(_objectSpread({},e),{},{Type:t,Depth:r,Location:{X:a.x,Y:a.y,Z:a.z}})}},{key:"getParsedWallById",value:function(e){var t=this,r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:this.sceneScale,a=_slicedToArray(this.getWallById(e).Vertices.map(function(e){return t.getVertexById(e).Location}),2),o=a[0],a=a[1];return{id:e,start:{x:o.X*r,y:o.Y*r,z:0},end:{x:a.X*r,y:a.Y*r,z:0}}}},{key:"getVerticesFromParsedWalls",value:function(e){return e.reduce(function(e,t){var r=t.start,t=t.end;return e.push(new THREE.Vector2(r.x,r.y),new THREE.Vector2(t.x,t.y)),e},[])}},{key:"createFloors",value:function(){var i=this;return this.rooms.forEach(function(e){function r(e,t){e=createDefaultMaterial({color:a.color,side:THREE.DoubleSide,map:e}),o.material=e,t&&(o.material.roughnessMap=t),i.houseGroup.add(o)}var t=e.Walls,e=e.Type,t=t.map(function(e){return i.getParsedWallById(e)}),a=(0,_modelHelpers.getFloorParams)(e),e=i.getVerticesFromParsedWalls(t),t=new THREE.Shape(e),e=new THREE.ShapeGeometry(t),t=createDefaultMaterial({color:a.color,side:THREE.DoubleSide}),o=new THREE.Mesh(e,t);o.receiveShadow=!0,o.castShadow=!1,o.name="FloorMesh";i.loadTexture(a.texture,[.5,.5],function(t){a.roughnessMap?i.loadTexture(a.roughnessMap,[.5,.5],function(e){return r(t,e)}):r(t)})}),this}},{key:"createSpaceBetweenWalls",value:function(){var t=this,e=this.exteriorWalls.map(function(e){return t.getParsedWallById(e)}),e=this.getVerticesFromParsedWalls(e),r=(this.wallsHeight+.5)*clippedBuildingConstant+.006,a=this.wallsHeight+.002,o=new THREE.Shape(e),e=new THREE.Shape(e),r=(this.rooms.forEach(function(e){e=e.Walls.map(function(e){return t.getParsedWallById(e)}),e=t.getVerticesFromParsedWalls(e);o.holes.push(new THREE.Shape(e))}),new THREE.ExtrudeGeometry(o,{depth:r,bevelEnabled:!1})),e=new THREE.ExtrudeGeometry(e,{depth:.001,bevelEnabled:!1}),a=new THREE.ExtrudeGeometry(o,{depth:a,bevelEnabled:!1}),i=createDefaultMaterial({side:THREE.DoubleSide,color:"#5C5C5C"}),n=createDefaultMaterial(_objectSpread(_objectSpread({},this.wallMaterialOptions),{},{color:"#5C5C5C"})),r=new THREE.Mesh(r,i),i=new THREE.Mesh(e,n),e=new THREE.Mesh(a,n),a=(i.receiveShadow=!1,i.castShadow=!1,r.position.z=-.005,i.position.z=-.005,e.position.z=-.001,this.subtractApertures(r,this.apertures,.25)),n=this.subtractApertures(e,this.apertures,.25);return a.name="ClippedSpaceBetweenWalls",n.name="SpaceBetweenWalls",i.name="FlatSpaceBetweenWalls",a.receiveShadow=!1,a.castShadow=!1,n.receiveShadow=!1,n.castShadow=!1,this.houseGroup.add(i,a,n),this}},{key:"createWalls",value:function(){function t(t,e){var r=(a=s.getParsedWallById(t)).start,a=a.end,o=.005,a=new THREE.Shape([new THREE.Vector2(r.x+o,r.y-o),new THREE.Vector2(a.x+o,a.y-o),new THREE.Vector2(a.x-o,a.y+o),new THREE.Vector2(r.x-o,r.y+o)]),r=new THREE.ExtrudeGeometry(a,{depth:s.wallsHeight,bevelEnabled:!1}),o=new THREE.ExtrudeGeometry(a,{depth:.001,bevelEnabled:!1}),a=e?s.exteriorWallsMaterial:s.wallsMaterial,i=createDefaultMaterial(_objectSpread(_objectSpread({},s.wallMaterialOptions),{},{color:"#5C5C5C"})),n=createDefaultMaterial({side:THREE.DoubleSide,color:"#5C5C5C"}),l=s.apertures.filter(function(e){return e.Walls.some(function(e){return t===e})}),r=s.subtractApertures(new THREE.Mesh(r,a),l),a=new THREE.Mesh(o,i),i=new THREE.Mesh(o,n);r.castShadow=!0,r.receiveShadow=!e,a.castShadow=!1,a.receiveShadow=!1,i.castShadow=!1,i.receiveShadow=!1,a.position.z=s.wallsHeight,i.position.z=(s.wallsHeight+.5)*clippedBuildingConstant+.001,(o=s.subtractApertures(i,l)).visible=!1,o.castShadow=!1,o.receiveShadow=!1,(n=new THREE.Group).name="Wall",n.buildingId=t,n.isExterior=e,n.add(r,a,o),s.wallsGroup.add(n)}var s=this;return this.exteriorWallsMaterial=createDefaultMaterial(_objectSpread(_objectSpread({},this.wallMaterialOptions),{},{map:this.exteriorWallsMaps.map,roughnessMap:this.exteriorWallsMaps.roughnessMap,color:"#FFFFFF"})),this.rooms.forEach(function(e){return e.Walls.forEach(function(e){return t(e,!1)})}),this.exteriorWalls.forEach(function(e){return t(e,!0)}),this.houseGroup.add(this.wallsGroup),this}},{key:"createDoors",value:function(){var a=this;return this.doors.forEach(function(e){var t=e.Width,r=e.Location,e=e.Rotation,t=new THREE.BoxGeometry(t*a.sceneScale,.1,a.doorsHeight),t=new THREE.Mesh(t,a.doorMaterial);t.position.x=r.X*a.sceneScale,t.position.y=r.Y*a.sceneScale,t.position.z=a.doorsHeight/2,t.rotation.z=THREE.Math.degToRad(e.Yaw),t.receiveShadow=!0,t.castShadow=!0,a.doorsGroup.add(t)}),this.houseGroup.add(this.doorsGroup),this}},{key:"subtractApertures",value:function(i,e){var n=this,l=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0,s=i;return e.forEach(function(e){var t=e.Width,r=e.Depth,a=e.Location,o=e.Rotation,e="Door"===e.Type,t=new THREE.BoxGeometry((t+l)*n.sceneScale,r*n.sceneScale+1,(e?n.doorsHeight:n.wallsHeight/2)+l*n.sceneScale),r=createDefaultMaterial({color:"#00B4F7"}),t=new THREE.Mesh(t,r),r=(t.rotation.z=THREE.Math.degToRad(o.Yaw),t.position.x=a.X*n.sceneScale,t.position.y=a.Y*n.sceneScale,t.position.z=e?n.doorsHeight/2:n.wallsHeight/2,t.updateMatrix(),s.updateMatrix(),_threeCsg.default.fromMesh(t)),o=_threeCsg.default.fromMesh(s).subtract(r);s=_threeCsg.default.toMesh(o,i.matrix,s.material)}),s}},{key:"setCenterPosition",value:function(){var i=this,e=this.exteriorWalls.map(function(e){return i.getParsedWallById(e)}),e=(0,_modelHelpers.getMinMaxCoordinates)(e),t=e.maxX,r=e.minX,a=e.maxY,e=e.minY,n=(t+r)/2,l=(a+e)/2,t=(this.houseGroup.position.set(-n,-l),[{x:n-25,y:l-25,z:3*this.wallsHeight,power:.4,castShadow:!0},{x:n-25,y:l-25,z:2*this.wallsHeight,power:1,castShadow:!1},{x:25+n,y:25+l,z:2*this.wallsHeight,power:1.1,castShadow:!1},{x:n,y:l,z:5*this.wallsHeight,power:.1,castShadow:!1}]),s=new THREE.Object3D;return s.position.set(n,l,0),this.houseGroup.add(s),t.forEach(function(e){var t=e.x,r=e.y,a=e.z,o=e.power,e=e.castShadow,o=new THREE.DirectionalLight(16777215,o);o.position.set(t,r,a),o.shadowLight=e,o.castShadow=e,o.shadow.camera.left=2*-n,o.shadow.camera.right=2*n,o.shadow.camera.top=2*l,o.shadow.camera.bottom=2*-l,o.shadow.camera.zoom=1,o.shadow.mapSize=new THREE.Vector2(2048,2048),o.shadow.normalBias=1,o.target=s,i.houseGroup.add(o)}),this}},{key:"loadTexture",value:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[1,1],r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:function(){};this.textureLoader.load(e,function(e){e.wrapS=e.wrapT=THREE.RepeatWrapping,e.repeat.set(t[0],t[1]),e.flipY=!1,r(e)})}},{key:"loadTextures",value:function(){var i=this,e=[{img:_wallTexture.default,repeat:[.5,.5],callback:function(e){i.wallsTextures.push({image:_wallTexture.default,texture:e}),i.wallsMaterial=createDefaultMaterial(_objectSpread(_objectSpread({},i.wallMaterialOptions),{},{map:e}))}},{img:_exteriorWallTexture.default,repeat:[1,1],callback:function(e){i.wallsTextures.push({image:_exteriorWallTexture.default,texture:e}),i.exteriorWallsMaps.map=e}},{img:_exteriorWallTextureRoughness.default,repeat:[1,1],callback:function(e){i.wallsTextures.push({image:_exteriorWallTextureRoughness.default,texture:e}),i.exteriorWallsMaps.roughnessMap=e}},{img:_doorTexture.default,repeat:[1,1],callback:function(e){i.doorMaterial=createDefaultMaterial(_objectSpread(_objectSpread({},doorMaterialOptions),{},{map:e}))}}];return Promise.all(e.map(function(e){var r=e.img,a=e.repeat,o=e.callback;return new Promise(function(t){i.loadTexture(r,a,function(e){o(e),t()})})}))}},{key:"loadFurniture",value:function(o){var e,t,r,n,a,i,l,s,u,c,d,h=this,p=this.furniture[o];p&&((e=this.furnitureData.find(function(e){var t=e.name,e=e.type;return t===p.Model&&e===p.Type}))?(t=e.mesh,e=e.textures,t="".concat(this.apiStore.API_URL,"/storage/furniture/").concat(t),d=p.Location,r=p.Rotation,n=p.Model,a=d.X,i=d.Y,l=d.Z,s=e.map(function(e){var r="".concat(h.apiStore.API_URL,"/storage/furniture/").concat(e);return new Promise(function(t){h.textureLoader.load(r,function(e){return t(e)})})}),u=function(i,e){function t(t){var e=i.find(function(e){e=e.image;return e.currentSrc.includes("".concat(t,"_D."))||e.currentSrc.includes("".concat(t,"_DA."))}),r=i.find(function(e){return e.image.currentSrc.includes("".concat(t,"_RMO."))}),a=i.find(function(e){return e.image.currentSrc.includes("".concat(t,"_N."))}),o=new THREE.MeshStandardMaterial({roughness:1,transparent:!0});return o.depthWrite=!("Flower"===n&&"01"===t),e&&(o.map=e),r&&(o.envMap=r),a&&(o.normalMap=a),o}var r=i.reduce(function(e,t){t=t.image;return t.currentSrc.includes("_D.")||t.currentSrc.includes("_DA.")?e+1:e},0),a=new THREE.MeshPhysicalMaterial({roughness:1,clearcoat:1,clearcoatRoughness:1,reflectivity:0,fog:!1});1===r&&(a=t("")),1<r&&(a=_toConsumableArray(Array(r).keys()).map(function(e){e+=1,e=e<10?"0".concat(e):e;return t(e)})),e.traverse(function(e){e.isMesh&&(e.material=a,e.receiveShadow=!0,e.castShadow=!0)}),h.houseGroup.add(e),h.loadFurniture(o+1)},c=function(e){var t=e.clone(),e=(t.scale.set(h.sceneScale,h.sceneScale,h.sceneScale),t.position.set(a*h.sceneScale,i*h.sceneScale,l*h.sceneScale),t.rotation.set(Math.PI/2,THREE.Math.degToRad(r.Yaw),0),h.loadedTextures[n]);e?u(e,t):Promise.all(s).then(function(e){u(e,t),h.loadedTextures[n]=e})},(d=this.loadedModels[n])?c(d):modelLoader.load(t,function(e){h.loadedModels[n]=e,c(e)})):this.loadFurniture(o+1))}},{key:"setShadowsVisibility",value:function(t){this.isShadowsVisible=t,this.houseGroup.children.forEach(function(e){e instanceof THREE.DirectionalLight&&e.shadowLight&&(e.castShadow=t)})}},{key:"setDoorsVisibility",value:function(t){this.isDoorsVisible=t,this.doorsGroup.children.forEach(function(e){return e.visible=t})}},{key:"setCurrentWallsMaterialType",value:function(r){var a=this;this.wallsMaterialType=r,this.wallsGroup.children.forEach(function(e){var t=e.children,e=e.isExterior,t=t[0];"texture"===r?t.material=e?a.exteriorWallsMaterial:a.wallsMaterial:(e=e?"#FFFFFF":a.wallsColor,t.material=createDefaultMaterial(_objectSpread(_objectSpread({},a.wallMaterialOptions),{},{color:e})))}),this.doorsGroup.children.forEach(function(e){e.material="texture"===r?a.doorMaterial:createDefaultMaterial(doorMaterialOptions)})}},{key:"setCurrentWallColor",value:function(r){this.wallsColor=r,this.wallsMaterial.color.set(r),this.wallsGroup.children.forEach(function(e){var t=e.children;e.isExterior||t[0].material.color.set(r)})}},{key:"setCurrentWallTexture",value:function(e){this.wallsMaterial=createDefaultMaterial(_objectSpread(_objectSpread({},this.wallMaterialOptions),{},{map:e})),this.setCurrentWallsMaterialType("texture")}},{key:"addWallTexture",value:function(t){var r=this;this.loadTexture(t,[.5,.5],function(e){r.wallsTextures.push({image:t,texture:e}),r.setCurrentWallTexture(e)})}},{key:"setFullBuildingVisibility",value:function(t){this.isFullBuildingVisible=t,this.globalPlane.constant=this.isFullBuildingVisible?1:clippedBuildingConstant,this.wallsGroup.children.forEach(function(e){return e.children[2].visible=!t})}},{key:"setPlanMode",value:function(){this.setDoorsVisibility(!1),this.setFullBuildingVisibility(!1),this.setCurrentWallsMaterialType("color")}}]),r}(),_default=HouseStore;exports.default=_default;
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3JlL2hvdXNlU3RvcmUuanMiXSwibmFtZXMiOlsiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbW9ieCIsIl9hcGlTdG9yZSIsIl9zdG9yZSIsIlRIUkVFIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfRkJYTG9hZGVyIiwiX21vZGVsSGVscGVycyIsIl90aHJlZUNzZyIsIl93YWxsVGV4dHVyZSIsIl9kb29yVGV4dHVyZSIsIl9leHRlcmlvcldhbGxUZXh0dXJlIiwiX2V4dGVyaW9yV2FsbFRleHR1cmVSb3VnaG5lc3MiLCJjb25maWd1cmUiLCJ1c2VQcm94aWVzIiwiY2xpcHBlZEJ1aWxkaW5nQ29uc3RhbnQiLCJkb29yTWF0ZXJpYWxPcHRpb25zIiwiY29sb3IiLCJzaWRlIiwiRG91YmxlU2lkZSIsIm1vZGVsTG9hZGVyIiwiRkJYTG9hZGVyIiwiY3JlYXRlRGVmYXVsdE1hdGVyaWFsIiwib3B0aW9ucyIsIk1lc2hTdGFuZGFyZE1hdGVyaWFsIiwiX29iamVjdFNwcmVhZCIsInJvdWdobmVzcyIsIm1ldGFsbmVzcyIsIkhvdXNlU3RvcmUiLCJtb2RlbFN0b3JlIiwiX3RoaXMiLCJ0aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnR5IiwiQXBpU3RvcmUiLCJzdG9yZSIsImNvbmZpZyIsIkFQSV9VUkwiLCJHcm91cCIsIm1hcCIsInJvdWdobmVzc01hcCIsIm1ha2VBdXRvT2JzZXJ2YWJsZSIsImhvdXNlR3JvdXAiLCJuYW1lIiwiZ2xvYmFsUGxhbmUiLCJQbGFuZSIsIlZlY3RvcjMiLCJ3YWxsc0hlaWdodCIsImNsaXBwaW5nUGxhbmVzIiwic2V0Q2VudGVyUG9zaXRpb24iLCJsb2FkVGV4dHVyZXMiLCJ0aGVuIiwiY3JlYXRlRmxvb3JzIiwiY3JlYXRlU3BhY2VCZXR3ZWVuV2FsbHMiLCJjcmVhdGVXYWxscyIsImNyZWF0ZURvb3JzIiwicmVzcCIsImxvYWRGdXJuaXR1cmUiLCJ0ZXh0dXJlTG9hZGVyIiwianNvbiIsIlZlcnRpY2VzIiwiRmxvb3JzIiwiVW5pdHMiLCJSb29tcyIsIldhbGxzIiwiRXh0ZXJpb3JXYWxscyIsIl90aGlzMiIsIkRvb3JzIiwiZG9vciIsImdldFBhcnNlZEFwZXJ0dXJlIiwiX3RoaXMzIiwiV2luZG93cyIsIndpbmRvdyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsImRvb3JzIiwid2luZG93cyIsIndhbGxzQ29sb3IiLCJyb29tcyIsInJlZHVjZSIsImFjYyIsIl9yZWYiLCJGdXJuaXR1cmUiLCJsZW5ndGgiLCJmaW5kIiwiX3JlZjIiLCJ2ZXJ0ZXhJZCIsIndhbGxJZCIsImFwaVN0b3JlIiwibG9hZEZ1cm5pdHVyZURhdGEiLCJ0eXBlIiwiTG9jYXRpb24iLCJhcGVydHVyZSIsInBvc2l0aW9uIiwiWCIsIlkiLCJaIiwic2Vjb25kV2FsbCIsImdldFBhcnNlZFdhbGxCeUlkIiwibGluZSIsIkxpbmUzIiwic3RhcnQiLCJlbmQiLCJwb3NpdGlvbk9uRmlyc3RXYWxsIiwibGluZUJldHdlZW5XYWxscyIsImNsb3Nlc3RQb2ludFRvUG9pbnQiLCJkaXN0YW5jZUJldHdlZW5XYWxscyIsImRpc3RhbmNlIiwicG9zaXRpb25CZXR3ZWVuV2FsbHMiLCJnZXRDZW50ZXIiLCJUeXBlIiwiRGVwdGgiLCJ4IiwieSIsInoiLCJfdGhpczQiLCJzY2FsZSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsInNjZW5lU2NhbGUiLCJfY3VycmVudFdhbGwkVmVydGljZXMyIiwiX3NsaWNlZFRvQXJyYXkiLCJnZXRWZXJ0ZXhCeUlkIiwiY29vcmQxIiwiY29vcmQyIiwiaWQiLCJ3YWxscyIsIl9yZWY0IiwicHVzaCIsIlZlY3RvcjIiLCJfdGhpczUiLCJmb3JFYWNoIiwiX3JlZjUiLCJjYWxsYmFjayIsInRleHR1cmUiLCJ0ZXh0dXJlTWF0ZXJpYWwiLCJwYXJhbXMiLCJtZXNoIiwibWF0ZXJpYWwiLCJhZGQiLCJnZXRGbG9vclBhcmFtcyIsInZlcnRpY2VzIiwic2hhcGUiLCJTaGFwZSIsImdlb21ldHJ5IiwiU2hhcGVHZW9tZXRyeSIsIk1lc2giLCJyZWNlaXZlU2hhZG93IiwiY2FzdFNoYWRvdyIsImxvYWRUZXh0dXJlIiwiX3RoaXM2IiwiZXh0ZXJpb3JXYWxscyIsImdldFZlcnRpY2VzRnJvbVBhcnNlZFdhbGxzIiwiY2xpcHBlZERlcHRoIiwiY2xpcHBlZEdlb21ldHJ5IiwiX3JlZjYiLCJyb29tV2FsbHMiLCJyb29tVmVydGljZXMiLCJzaGFwZVdpdGhIb2xlcyIsIkV4dHJ1ZGVHZW9tZXRyeSIsImJldmVsRW5hYmxlZCIsImZsYXRHZW9tZXRyeSIsImRlcHRoIiwiY2xpcHBlZE1hdGVyaWFsIiwid2FsbE1hdGVyaWFsT3B0aW9ucyIsImNsaXBwZWRNZXNoIiwiSUQiLCJmbGF0TWVzaCIsImNsaXBwZWRNZXNoV2l0aEFwZXJ0dXJlcyIsInN1YnRyYWN0QXBlcnR1cmVzIiwiYXBlcnR1cmVzIiwibWVzaFdpdGhBcGVydHVyZXMiLCJpc0V4dGVyaW9yIiwiX3RoaXM3JGdldFBhcnNlZFdhbGxCIiwid2FsbEhhbGZXaWR0aCIsIndhbGxTaGFwZSIsInBhcnNlZEFwZXJ0dXJlIiwid2FsbEdlb21ldHJ5IiwiX3RoaXM3Iiwid2FsbFBhZEdlb21ldHJ5Iiwid2FsbE1hdGVyaWFsIiwiZXh0ZXJpb3JXYWxsc01hdGVyaWFsIiwid2FsbHNNYXRlcmlhbCIsIndhbGxQYWRNYXRlcmlhbCIsImZpbHRlciIsInNvbWUiLCJ3YWxsTWVzaCIsIndhbGxQYWRNZXNoIiwid2FsbENsaXBwZWRQYWRNZXNoIiwid2FsbENsaXBwZWRQYWRNYXRlcmlhbCIsIndhbGxDbGlwcGVkUGFkTWVzaFdpdGhBcGVydHVyZXMiLCJ2aXNpYmxlIiwid2FsbEdyb3VwIiwiYnVpbGRpbmdJZCIsIndhbGxzR3JvdXAiLCJleHRlcmlvcldhbGxzTWFwcyIsIl9yZWY3IiwiY3JlYXRlV2FsbCIsIl90aGlzOCIsIl9yZWY4IiwiV2lkdGgiLCJCb3hHZW9tZXRyeSIsImRvb3JzSGVpZ2h0IiwiZG9vck1hdGVyaWFsIiwiZG9vcnNHcm91cCIsIl90aGlzOSIsImFkZGl0aW9uYWxXaWR0aCIsInJlc3VsdE1lc2giLCJfcmVmOSIsIlJvdGF0aW9uIiwiaXNEb29yIiwiYXBlcnR1cmVHZW9tZXRyeSIsImFwZXJ0dXJlTWF0ZXJpYWwiLCJhcGVydHVyZU1lc2giLCJhcGVydHVyZUJTUCIsInJvdGF0aW9uIiwiTWF0aCIsImRlZ1RvUmFkIiwiWWF3IiwidXBkYXRlTWF0cml4IiwiQ1NHIiwiZnJvbU1lc2giLCJyZXN1bHRCU1AiLCJzdWJ0cmFjdCIsInRvTWVzaCIsIm1hdHJpeCIsIl90aGlzMTAiLCJfZ2V0TWluTWF4Q29vcmRpbmF0ZXMiLCJtaW5YIiwiY2VudGVyWCIsImNlbnRlclkiLCJtYXhZIiwibGlnaHRzIiwicG93ZXIiLCJPYmplY3QzRCIsInRhcmdldE9iamVjdCIsInNldCIsIl9yZWYxMCIsImxpZ2h0IiwiRGlyZWN0aW9uYWxMaWdodCIsInNoYWRvdyIsImNhbWVyYSIsImxlZnQiLCJyaWdodCIsImJvdHRvbSIsInpvb20iLCJtYXBTaXplIiwibm9ybWFsQmlhcyIsInRhcmdldCIsInJlcGVhdCIsImFkZGl0aW9uYWxBcGVydHVyZVdpZHRoIiwiYXNzZXRzIiwiaW1nIiwiV2FsbFRleHR1cmVJbWciLCJfdGhpczExIiwid2FsbHNUZXh0dXJlcyIsImltYWdlIiwiRXh0ZXJpb3JXYWxsVGV4dHVyZUltZyIsIkV4dGVyaW9yV2FsbFRleHR1cmVSb3VnaG5lc3NJbWciLCJEb29yVGV4dHVyZSIsIlByb21pc2UiLCJfcmVmMTEiLCJyZXNvbHZlIiwiaW5kZXgiLCJ0ZXh0dXJlcyIsIk1vZGVsTmFtZSIsImxvYWRlZE1vZGVsIiwiX3JlZjEyIiwiZnVybml0dXJlIiwiTW9kZWwiLCJmdXJuaXR1cmVEYXRhIiwiX3RoaXMxMiIsInVybCIsImNyZWF0ZU1hdGVyaWFsIiwibnVtIiwiY3VycmVudFNyYyIsImluY2x1ZGVzIiwiZW52TWFwIiwiX3JlZjE1Iiwibm9ybWFsTWFwIiwicmVzdWx0IiwiX3JlZjE2IiwidHJhbnNwYXJlbnQiLCJkZXB0aFdyaXRlIiwiX3JlZjEzIiwibWF0ZXJpYWxzIiwiY2xlYXJjb2F0IiwiY2xlYXJjb2F0Um91Z2huZXNzIiwibWF0ZXJpYWxzQ291bnQiLCJrZXlzIiwiaSIsInJlYWxOdW0iLCJtb2RlbCIsInRyYXZlcnNlIiwibm9kZSIsIm9yaWdpbmFsTW9kZWwiLCJjbG9uZSIsIm9uVGV4dHVyZXNMb2FkZWQiLCJsb2FkZWRUZXh0dXJlcyIsImFsbCIsInByb21pc2VzIiwid2FsbEJTUCIsImxvYWRlZE1vZGVscyIsIm9uTW9kZWxMb2FkZWQiLCJsb2FkIiwibW9kZWxQYXRoIiwibWF4WCIsImlzU2hhZG93c1Zpc2libGUiLCJtaW5ZIiwibGlnaHRzT2Zmc2V0IiwidmFsdWUiLCJpc0Rvb3JzVmlzaWJsZSIsImNoaWxkcmVuIiwiX3RoaXMxMyIsIndhbGxzTWF0ZXJpYWxUeXBlIiwiX3JlZjE3Iiwid2FsbCIsInNoYWRvd0xpZ2h0IiwiX3JlZjE4IiwiX3RoaXMxNCIsInNldEN1cnJlbnRXYWxsVGV4dHVyZSIsImlzRnVsbEJ1aWxkaW5nVmlzaWJsZSIsImNvbnN0YW50Iiwid3JhcFQiLCJfcmVmMTkiLCJzZXREb29yc1Zpc2liaWxpdHkiLCJzZXRGdWxsQnVpbGRpbmdWaXNpYmlsaXR5Iiwic2V0Q3VycmVudFdhbGxzTWF0ZXJpYWxUeXBlIl0sIm1hcHBpbmdzIjoiNFVBQUEsSUFBQUEsT0FBQUMsdUJBQUFDLFFBQUEsVUFDQUMsTUFBQUQsUUFBQSxRQUNBRSxVQUFBSCx1QkFBQUMsUUFBQSxzQkFDQUcsT0FBQUosdUJBQUFDLFFBQUEsYUFDQUksTUFBQUMsd0JBQUFMLFFBQUEsVUFDQU0sV0FBQU4sUUFBQSx3Q0FDQU8sY0FBQVAsUUFBQSx5QkFDQVEsVUFBQVQsdUJBQUFDLFFBQUEsMkJBUEFTLGFBQUFWLHVCQUFBQyxRQUFBLG1DQVVBVSxhQUFBWCx1QkFBQUMsUUFBQSxvQ0FUQVcscUJBQUFaLHVCQUFBQyxRQUFBLDZDQVdBWSw4QkFBQWIsdUJBQUFDLFFBQUEsc0Qs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OiJzdG9yZS9ob3VzZVN0b3JlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbmZpZ3VyZSwgbWFrZUF1dG9PYnNlcnZhYmxlIH0gZnJvbSAnbW9ieCc7XG5pbXBvcnQgQXBpU3RvcmUgZnJvbSAnLi4vc3RvcmUvYXBpU3RvcmUnO1xuaW1wb3J0IHN0b3JlIGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEZCWExvYWRlciB9IGZyb20gJ3RocmVlL2V4YW1wbGVzL2pzbS9sb2FkZXJzL0ZCWExvYWRlcic7XG5pbXBvcnQgeyBnZXRGbG9vclBhcmFtcywgZ2V0TWluTWF4Q29vcmRpbmF0ZXMgfSBmcm9tICcuLi91dGlscy9tb2RlbEhlbHBlcnMnO1xuaW1wb3J0IENTRyBmcm9tICcuLi91dGlscy9jc2cvdGhyZWUtY3NnJztcblxuaW1wb3J0IFdhbGxUZXh0dXJlSW1nIGZyb20gJy4uL2Fzc2V0cy9pbWcvd2FsbC10ZXh0dXJlLmpwZyc7XG5pbXBvcnQgRG9vclRleHR1cmUgZnJvbSAnLi4vYXNzZXRzL2ltZy9kb29yLXRleHR1cmUuanBlZyc7XG5pbXBvcnQgRXh0ZXJpb3JXYWxsVGV4dHVyZUltZyBmcm9tICcuLi9hc3NldHMvaW1nL2V4dGVyaW9yLXdhbGwtdGV4dHVyZS5qcGVnJztcbmltcG9ydCBFeHRlcmlvcldhbGxUZXh0dXJlUm91Z2huZXNzSW1nIGZyb20gJy4uL2Fzc2V0cy9pbWcvZXh0ZXJpb3Itd2FsbC10ZXh0dXJlLXJvdWdobmVzcy5qcGcnO1xuXG5jb25maWd1cmUoeyB1c2VQcm94aWVzOiAnbmV2ZXInIH0pO1xuXG5jb25zdCBjbGlwcGVkQnVpbGRpbmdDb25zdGFudCA9IDAuNDtcblxuY29uc3QgZG9vck1hdGVyaWFsT3B0aW9ucyA9IHsgY29sb3I6ICcjREFEQURBJywgc2lkZTogVEhSRUUuRG91YmxlU2lkZSB9O1xuXG5jb25zdCBtb2RlbExvYWRlciA9IG5ldyBGQlhMb2FkZXIoKTtcblxuY29uc3QgY3JlYXRlRGVmYXVsdE1hdGVyaWFsID0gKG9wdGlvbnMpID0+IG5ldyBUSFJFRS5NZXNoU3RhbmRhcmRNYXRlcmlhbCh7XG4gIHJvdWdobmVzczogMSxcbiAgbWV0YWxuZXNzOiAwLFxuICAuLi5vcHRpb25zLFxufSk7XG5cbmNsYXNzIEhvdXNlU3RvcmUge1xuICBtb2RlbFN0b3JlID0gbnVsbDtcbiAgYXBpU3RvcmUgPSBuZXcgQXBpU3RvcmUoc3RvcmUuY29uZmlnLkFQSV9VUkwpO1xuXG4gIGhvdXNlR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcbiAgd2FsbHNHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xuICBkb29yc0dyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XG5cbiAgZG9vck1hdGVyaWFsID0gbnVsbDtcbiAgd2FsbHNNYXRlcmlhbCA9IG51bGw7XG4gIHdhbGxzQ29sb3IgPSAnI0ZGRkZGRic7XG4gIGV4dGVyaW9yV2FsbHNNYXBzID0geyBtYXA6IG51bGwsIHJvdWdobmVzc01hcDogbnVsbCB9O1xuICBleHRlcmlvcldhbGxzTWF0ZXJpYWwgPSBudWxsO1xuXG4gIHdhbGxzVGV4dHVyZXMgPSBbXTtcblxuICBpc0Rvb3JzVmlzaWJsZSA9IHRydWU7XG4gIGlzRnVsbEJ1aWxkaW5nVmlzaWJsZSA9IHRydWU7XG4gIHdhbGxzTWF0ZXJpYWxUeXBlID0gJ3RleHR1cmUnO1xuXG4gIGdsb2JhbFBsYW5lID0gbnVsbDtcbiAgY2xpcHBpbmdQbGFuZXMgPSBbXTtcblxuICBmdXJuaXR1cmVEYXRhID0gW107XG4gIGxvYWRlZE1vZGVscyA9IHt9O1xuICBsb2FkZWRUZXh0dXJlcyA9IHt9O1xuXG4gIGlzU2hhZG93c1Zpc2libGUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKG1vZGVsU3RvcmUpIHtcbiAgICBtYWtlQXV0b09ic2VydmFibGUodGhpcyk7XG5cbiAgICB0aGlzLm1vZGVsU3RvcmUgPSBtb2RlbFN0b3JlO1xuXG4gICAgdGhpcy5ob3VzZUdyb3VwLm5hbWUgPSAnSG91c2UtR3JvdXAnO1xuXG4gICAgdGhpcy5nbG9iYWxQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZShuZXcgVEhSRUUuVmVjdG9yMygwLCAtdGhpcy53YWxsc0hlaWdodCAtIDAuNSwgMCksIDEpO1xuICAgIHRoaXMuY2xpcHBpbmdQbGFuZXMgPSBbdGhpcy5nbG9iYWxQbGFuZV07XG5cbiAgICB0aGlzLnNldENlbnRlclBvc2l0aW9uKCkubG9hZFRleHR1cmVzKCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmNyZWF0ZUZsb29ycygpLmNyZWF0ZVNwYWNlQmV0d2VlbldhbGxzKCkuY3JlYXRlV2FsbHMoKS5jcmVhdGVEb29ycygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hcGlTdG9yZS5sb2FkRnVybml0dXJlRGF0YSgpLnRoZW4oKHJlc3ApID0+IHtcbiAgICAgIHRoaXMuZnVybml0dXJlRGF0YSA9IHJlc3A7XG4gICAgICB0aGlzLmxvYWRGdXJuaXR1cmUoMCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgdGV4dHVyZUxvYWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbFN0b3JlLnRleHR1cmVMb2FkZXI7XG4gIH1cblxuICBnZXQgc2NlbmVTY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbFN0b3JlLnNjZW5lU2NhbGU7XG4gIH1cblxuICBnZXQgd2FsbHNIZWlnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxTdG9yZS53YWxsc0hlaWdodDtcbiAgfVxuXG4gIGdldCBqc29uKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsU3RvcmUuanNvbjtcbiAgfVxuXG4gIGdldCB2ZXJ0aWNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5qc29uLlZlcnRpY2VzO1xuICB9XG5cbiAgZ2V0IHJvb21zKCkge1xuICAgIHJldHVybiB0aGlzLmpzb24uRmxvb3JzWzBdLlVuaXRzWzBdLlJvb21zO1xuICB9XG5cbiAgZ2V0IHdhbGxzKCkge1xuICAgIHJldHVybiB0aGlzLmpzb24uRmxvb3JzWzBdLldhbGxzO1xuICB9XG5cbiAgZ2V0IGV4dGVyaW9yV2FsbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuanNvbi5GbG9vcnNbMF0uRXh0ZXJpb3JXYWxscztcbiAgfVxuXG4gIGdldCBkb29ycygpIHtcbiAgICByZXR1cm4gdGhpcy5qc29uLkZsb29yc1swXS5Eb29ycy5tYXAoKGRvb3IpID0+IHRoaXMuZ2V0UGFyc2VkQXBlcnR1cmUoZG9vciwgJ0Rvb3InKSk7XG4gIH1cblxuICBnZXQgd2luZG93cygpIHtcbiAgICByZXR1cm4gdGhpcy5qc29uLkZsb29yc1swXS5XaW5kb3dzLm1hcCgod2luZG93KSA9PiB0aGlzLmdldFBhcnNlZEFwZXJ0dXJlKHdpbmRvdywgJ1dpbmRvdycpKTtcbiAgfVxuXG4gIGdldCBhcGVydHVyZXMoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmRvb3JzLCAuLi50aGlzLndpbmRvd3NdO1xuICB9XG5cbiAgZ2V0IGRvb3JzSGVpZ2h0KCkge1xuICAgIHJldHVybiAodGhpcy53YWxsc0hlaWdodCAvIDIpICsgKHRoaXMud2FsbHNIZWlnaHQgLyA0KTtcbiAgfVxuXG4gIGdldCB3YWxsTWF0ZXJpYWxPcHRpb25zKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjbGlwcGluZ1BsYW5lczogdGhpcy5jbGlwcGluZ1BsYW5lcyxcbiAgICAgIGNvbG9yOiB0aGlzLndhbGxzQ29sb3IsXG4gICAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxuICAgIH07XG4gIH1cblxuICBnZXQgZnVybml0dXJlKCkge1xuICAgIHJldHVybiB0aGlzLnJvb21zLnJlZHVjZSgoYWNjLCB7IEZ1cm5pdHVyZSB9KSA9PiB7XG4gICAgICBpZiAoIUZ1cm5pdHVyZSB8fCAhRnVybml0dXJlLmxlbmd0aCkgcmV0dXJuIGFjYztcbiAgICAgIHJldHVybiBbLi4uYWNjLCAuLi5GdXJuaXR1cmVdO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIGdldFZlcnRleEJ5SWQodmVydGV4SWQpIHtcbiAgICByZXR1cm4gdGhpcy52ZXJ0aWNlcy5maW5kKCh7IElEIH0pID0+IElEID09PSB2ZXJ0ZXhJZCk7XG4gIH1cblxuICBnZXRXYWxsQnlJZCh3YWxsSWQpIHtcbiAgICByZXR1cm4gdGhpcy53YWxscy5maW5kKCh7IElEIH0pID0+IElEID09PSB3YWxsSWQpO1xuICB9XG5cbiAgZ2V0UGFyc2VkQXBlcnR1cmUoYXBlcnR1cmUsIHR5cGUpIHtcbiAgICBjb25zdCB7IExvY2F0aW9uLCBXYWxscyB9ID0gYXBlcnR1cmU7XG4gICAgY29uc3QgcG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMyhMb2NhdGlvbi5YLCBMb2NhdGlvbi5ZLCBMb2NhdGlvbi5aKTtcbiAgICBjb25zdCBzZWNvbmRXYWxsID0gdGhpcy5nZXRQYXJzZWRXYWxsQnlJZChXYWxsc1sxXSwgMSk7XG4gICAgY29uc3QgbGluZSA9IG5ldyBUSFJFRS5MaW5lMyhzZWNvbmRXYWxsLnN0YXJ0LCBzZWNvbmRXYWxsLmVuZCk7XG4gICAgY29uc3QgcG9zaXRpb25PbkZpcnN0V2FsbCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4gICAgbGluZS5jbG9zZXN0UG9pbnRUb1BvaW50KHBvc2l0aW9uLCB0cnVlLCBwb3NpdGlvbk9uRmlyc3RXYWxsKTtcbiAgICBjb25zdCBsaW5lQmV0d2VlbldhbGxzID0gbmV3IFRIUkVFLkxpbmUzKHBvc2l0aW9uLCBwb3NpdGlvbk9uRmlyc3RXYWxsKTtcbiAgICBjb25zdCBkaXN0YW5jZUJldHdlZW5XYWxscyA9IGxpbmVCZXR3ZWVuV2FsbHMuZGlzdGFuY2UoKTtcbiAgICBjb25zdCBwb3NpdGlvbkJldHdlZW5XYWxscyA9IGxpbmVCZXR3ZWVuV2FsbHMuZ2V0Q2VudGVyKHBvc2l0aW9uT25GaXJzdFdhbGwpO1xuXG4gICAgY29uc3QgcGFyc2VkQXBlcnR1cmUgPSB7XG4gICAgICAuLi5hcGVydHVyZSxcbiAgICAgIFR5cGU6IHR5cGUsXG4gICAgICBEZXB0aDogZGlzdGFuY2VCZXR3ZWVuV2FsbHMsXG4gICAgICBMb2NhdGlvbjogeyBYOiBwb3NpdGlvbkJldHdlZW5XYWxscy54LCBZOiBwb3NpdGlvbkJldHdlZW5XYWxscy55LCBaOiBwb3NpdGlvbkJldHdlZW5XYWxscy56IH0sXG4gICAgfTtcblxuICAgIHJldHVybiBwYXJzZWRBcGVydHVyZTtcbiAgfVxuXG4gIGdldFBhcnNlZFdhbGxCeUlkKHdhbGxJZCwgc2NhbGUgPSB0aGlzLnNjZW5lU2NhbGUpIHtcbiAgICBjb25zdCBjdXJyZW50V2FsbCA9IHRoaXMuZ2V0V2FsbEJ5SWQod2FsbElkKTtcbiAgICBjb25zdCBbY29vcmQxLCBjb29yZDJdID0gY3VycmVudFdhbGwuVmVydGljZXMubWFwKCh2ZXJ0ZXhJZCkgPT4gdGhpcy5nZXRWZXJ0ZXhCeUlkKHZlcnRleElkKS5Mb2NhdGlvbik7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB3YWxsSWQsXG4gICAgICBzdGFydDogeyB4OiBjb29yZDEuWCAqIHNjYWxlLCB5OiBjb29yZDEuWSAqIHNjYWxlLCB6OiAwIH0sXG4gICAgICBlbmQ6IHsgeDogY29vcmQyLlggKiBzY2FsZSwgeTogY29vcmQyLlkgKiBzY2FsZSwgejogMCB9LFxuICAgIH07XG4gIH1cblxuICBnZXRWZXJ0aWNlc0Zyb21QYXJzZWRXYWxscyh3YWxscykge1xuICAgIHJldHVybiB3YWxscy5yZWR1Y2UoKGFjYywgeyBzdGFydCwgZW5kIH0pID0+IHtcbiAgICAgIGFjYy5wdXNoKG5ldyBUSFJFRS5WZWN0b3IyKHN0YXJ0LngsIHN0YXJ0LnkpLCBuZXcgVEhSRUUuVmVjdG9yMihlbmQueCwgZW5kLnkpKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuICB9XG5cbiAgY3JlYXRlRmxvb3JzKCkge1xuICAgIHRoaXMucm9vbXMuZm9yRWFjaCgoeyBXYWxscywgVHlwZSB9KSA9PiB7XG4gICAgICBjb25zdCB3YWxscyA9IFdhbGxzLm1hcCgod2FsbElkKSA9PiB0aGlzLmdldFBhcnNlZFdhbGxCeUlkKHdhbGxJZCkpO1xuICAgICAgY29uc3QgcGFyYW1zID0gZ2V0Rmxvb3JQYXJhbXMoVHlwZSk7XG4gICAgICBjb25zdCB2ZXJ0aWNlcyA9IHRoaXMuZ2V0VmVydGljZXNGcm9tUGFyc2VkV2FsbHMod2FsbHMpO1xuXG4gICAgICBjb25zdCBzaGFwZSA9IG5ldyBUSFJFRS5TaGFwZSh2ZXJ0aWNlcyk7XG4gICAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBUSFJFRS5TaGFwZUdlb21ldHJ5KHNoYXBlKTtcbiAgICAgIGNvbnN0IG1hdGVyaWFsID0gY3JlYXRlRGVmYXVsdE1hdGVyaWFsKHsgY29sb3I6IHBhcmFtcy5jb2xvciwgc2lkZTogVEhSRUUuRG91YmxlU2lkZSB9KTtcbiAgICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaChnZW9tZXRyeSwgbWF0ZXJpYWwpO1xuICAgICAgbWVzaC5yZWNlaXZlU2hhZG93ID0gdHJ1ZTtcbiAgICAgIG1lc2guY2FzdFNoYWRvdyA9IGZhbHNlO1xuICAgICAgbWVzaC5uYW1lID0gJ0Zsb29yTWVzaCc7XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrID0gKHRleHR1cmUsIHJvdWdobmVzc01hcCkgPT4ge1xuICAgICAgICBjb25zdCB0ZXh0dXJlTWF0ZXJpYWwgPSBjcmVhdGVEZWZhdWx0TWF0ZXJpYWwoeyBjb2xvcjogcGFyYW1zLmNvbG9yLCBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLCBtYXA6IHRleHR1cmUgfSk7XG4gICAgICAgIG1lc2gubWF0ZXJpYWwgPSB0ZXh0dXJlTWF0ZXJpYWw7XG4gICAgICAgIGlmIChyb3VnaG5lc3NNYXApIG1lc2gubWF0ZXJpYWwucm91Z2huZXNzTWFwID0gcm91Z2huZXNzTWFwO1xuXG4gICAgICAgIHRoaXMuaG91c2VHcm91cC5hZGQobWVzaCk7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLmxvYWRUZXh0dXJlKHBhcmFtcy50ZXh0dXJlLCBbMC41LCAwLjVdLCAodGV4dHVyZSkgPT4ge1xuICAgICAgICBpZiAoIXBhcmFtcy5yb3VnaG5lc3NNYXApIHtcbiAgICAgICAgICBjYWxsYmFjayh0ZXh0dXJlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkVGV4dHVyZShwYXJhbXMucm91Z2huZXNzTWFwLCBbMC41LCAwLjVdLCAocm91Z2huZXNzTWFwKSA9PiBjYWxsYmFjayh0ZXh0dXJlLCByb3VnaG5lc3NNYXApKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjcmVhdGVTcGFjZUJldHdlZW5XYWxscygpIHtcbiAgICBjb25zdCB3YWxscyA9IHRoaXMuZXh0ZXJpb3JXYWxscy5tYXAoKHdhbGxJZCkgPT4gdGhpcy5nZXRQYXJzZWRXYWxsQnlJZCh3YWxsSWQpKTtcbiAgICBjb25zdCB2ZXJ0aWNlcyA9IHRoaXMuZ2V0VmVydGljZXNGcm9tUGFyc2VkV2FsbHMod2FsbHMpO1xuICAgIGNvbnN0IGNsaXBwZWREZXB0aCA9ICgodGhpcy53YWxsc0hlaWdodCArIDAuNSkgKiBjbGlwcGVkQnVpbGRpbmdDb25zdGFudCkgKyAwLjAwNjtcbiAgICBjb25zdCBkZXB0aCA9IHRoaXMud2FsbHNIZWlnaHQgKyAwLjAwMjtcblxuICAgIGNvbnN0IHNoYXBlV2l0aEhvbGVzID0gbmV3IFRIUkVFLlNoYXBlKHZlcnRpY2VzKTtcbiAgICBjb25zdCBzaGFwZSA9IG5ldyBUSFJFRS5TaGFwZSh2ZXJ0aWNlcyk7XG5cbiAgICB0aGlzLnJvb21zLmZvckVhY2goKHsgV2FsbHMgfSkgPT4ge1xuICAgICAgY29uc3Qgcm9vbVdhbGxzID0gV2FsbHMubWFwKCh3YWxsSWQpID0+IHRoaXMuZ2V0UGFyc2VkV2FsbEJ5SWQod2FsbElkKSk7XG4gICAgICBjb25zdCByb29tVmVydGljZXMgPSB0aGlzLmdldFZlcnRpY2VzRnJvbVBhcnNlZFdhbGxzKHJvb21XYWxscyk7XG4gICAgICBzaGFwZVdpdGhIb2xlcy5ob2xlcy5wdXNoKG5ldyBUSFJFRS5TaGFwZShyb29tVmVydGljZXMpKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGNsaXBwZWRHZW9tZXRyeSA9IG5ldyBUSFJFRS5FeHRydWRlR2VvbWV0cnkoc2hhcGVXaXRoSG9sZXMsIHsgZGVwdGg6IGNsaXBwZWREZXB0aCwgYmV2ZWxFbmFibGVkOiBmYWxzZSB9KTtcbiAgICBjb25zdCBmbGF0R2VvbWV0cnkgPSBuZXcgVEhSRUUuRXh0cnVkZUdlb21ldHJ5KHNoYXBlLCB7IGRlcHRoOiAwLjAwMSwgYmV2ZWxFbmFibGVkOiBmYWxzZSB9KTtcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBUSFJFRS5FeHRydWRlR2VvbWV0cnkoc2hhcGVXaXRoSG9sZXMsIHsgZGVwdGgsIGJldmVsRW5hYmxlZDogZmFsc2UgfSk7XG5cbiAgICBjb25zdCBjbGlwcGVkTWF0ZXJpYWwgPSBjcmVhdGVEZWZhdWx0TWF0ZXJpYWwoeyBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLCBjb2xvcjogJyM1QzVDNUMnIH0pO1xuICAgIGNvbnN0IG1hdGVyaWFsID0gY3JlYXRlRGVmYXVsdE1hdGVyaWFsKHsgLi4udGhpcy53YWxsTWF0ZXJpYWxPcHRpb25zLCBjb2xvcjogJyM1QzVDNUMnIH0pO1xuXG4gICAgY29uc3QgY2xpcHBlZE1lc2ggPSBuZXcgVEhSRUUuTWVzaChjbGlwcGVkR2VvbWV0cnksIGNsaXBwZWRNYXRlcmlhbCk7XG4gICAgY29uc3QgZmxhdE1lc2ggPSBuZXcgVEhSRUUuTWVzaChmbGF0R2VvbWV0cnksIG1hdGVyaWFsKTtcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goZ2VvbWV0cnksIG1hdGVyaWFsKTtcblxuICAgIGZsYXRNZXNoLnJlY2VpdmVTaGFkb3cgPSBmYWxzZTtcbiAgICBmbGF0TWVzaC5jYXN0U2hhZG93ID0gZmFsc2U7XG5cbiAgICBjbGlwcGVkTWVzaC5wb3NpdGlvbi56ID0gLTAuMDA1O1xuICAgIGZsYXRNZXNoLnBvc2l0aW9uLnogPSAtMC4wMDU7XG4gICAgbWVzaC5wb3NpdGlvbi56ID0gLTAuMDAxO1xuXG4gICAgY29uc3QgYWRkaXRpb25hbEFwZXJ0dXJlV2lkdGggPSAwLjI1O1xuICAgIGNvbnN0IGNsaXBwZWRNZXNoV2l0aEFwZXJ0dXJlcyA9IHRoaXMuc3VidHJhY3RBcGVydHVyZXMoY2xpcHBlZE1lc2gsIHRoaXMuYXBlcnR1cmVzLCBhZGRpdGlvbmFsQXBlcnR1cmVXaWR0aCk7XG4gICAgY29uc3QgbWVzaFdpdGhBcGVydHVyZXMgPSB0aGlzLnN1YnRyYWN0QXBlcnR1cmVzKG1lc2gsIHRoaXMuYXBlcnR1cmVzLCBhZGRpdGlvbmFsQXBlcnR1cmVXaWR0aCk7XG4gICAgY2xpcHBlZE1lc2hXaXRoQXBlcnR1cmVzLm5hbWUgPSAnQ2xpcHBlZFNwYWNlQmV0d2VlbldhbGxzJztcbiAgICBtZXNoV2l0aEFwZXJ0dXJlcy5uYW1lID0gJ1NwYWNlQmV0d2VlbldhbGxzJztcbiAgICBmbGF0TWVzaC5uYW1lID0gJ0ZsYXRTcGFjZUJldHdlZW5XYWxscyc7XG5cbiAgICBjbGlwcGVkTWVzaFdpdGhBcGVydHVyZXMucmVjZWl2ZVNoYWRvdyA9IGZhbHNlO1xuICAgIGNsaXBwZWRNZXNoV2l0aEFwZXJ0dXJlcy5jYXN0U2hhZG93ID0gZmFsc2U7XG4gICAgbWVzaFdpdGhBcGVydHVyZXMucmVjZWl2ZVNoYWRvdyA9IGZhbHNlO1xuICAgIG1lc2hXaXRoQXBlcnR1cmVzLmNhc3RTaGFkb3cgPSBmYWxzZTtcblxuICAgIHRoaXMuaG91c2VHcm91cC5hZGQoZmxhdE1lc2gsIGNsaXBwZWRNZXNoV2l0aEFwZXJ0dXJlcywgbWVzaFdpdGhBcGVydHVyZXMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjcmVhdGVXYWxscygpIHtcbiAgICBjb25zdCBjcmVhdGVXYWxsID0gKHdhbGxJZCwgaXNFeHRlcmlvcikgPT4ge1xuICAgICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSB0aGlzLmdldFBhcnNlZFdhbGxCeUlkKHdhbGxJZCk7XG4gICAgICBjb25zdCB3YWxsSGFsZldpZHRoID0gMC4wMDU7XG4gICAgICBjb25zdCB3YWxsU2hhcGUgPSBuZXcgVEhSRUUuU2hhcGUoW1xuICAgICAgICBuZXcgVEhSRUUuVmVjdG9yMihzdGFydC54ICsgd2FsbEhhbGZXaWR0aCwgc3RhcnQueSAtIHdhbGxIYWxmV2lkdGgpLFxuICAgICAgICBuZXcgVEhSRUUuVmVjdG9yMihlbmQueCArIHdhbGxIYWxmV2lkdGgsIGVuZC55IC0gd2FsbEhhbGZXaWR0aCksXG4gICAgICAgIG5ldyBUSFJFRS5WZWN0b3IyKGVuZC54IC0gd2FsbEhhbGZXaWR0aCwgZW5kLnkgKyB3YWxsSGFsZldpZHRoKSxcbiAgICAgICAgbmV3IFRIUkVFLlZlY3RvcjIoc3RhcnQueCAtIHdhbGxIYWxmV2lkdGgsIHN0YXJ0LnkgKyB3YWxsSGFsZldpZHRoKSxcbiAgICAgIF0pO1xuICAgICAgY29uc3Qgd2FsbEdlb21ldHJ5ID0gbmV3IFRIUkVFLkV4dHJ1ZGVHZW9tZXRyeSh3YWxsU2hhcGUsIHsgZGVwdGg6IHRoaXMud2FsbHNIZWlnaHQsIGJldmVsRW5hYmxlZDogZmFsc2UgfSk7XG4gICAgICBjb25zdCB3YWxsUGFkR2VvbWV0cnkgPSBuZXcgVEhSRUUuRXh0cnVkZUdlb21ldHJ5KHdhbGxTaGFwZSwgeyBkZXB0aDogMC4wMDEsIGJldmVsRW5hYmxlZDogZmFsc2UgfSk7XG5cbiAgICAgIGNvbnN0IHdhbGxNYXRlcmlhbCA9IGlzRXh0ZXJpb3IgPyB0aGlzLmV4dGVyaW9yV2FsbHNNYXRlcmlhbCA6IHRoaXMud2FsbHNNYXRlcmlhbDtcbiAgICAgIGNvbnN0IHdhbGxQYWRNYXRlcmlhbCA9IGNyZWF0ZURlZmF1bHRNYXRlcmlhbCh7IC4uLnRoaXMud2FsbE1hdGVyaWFsT3B0aW9ucywgY29sb3I6ICcjNUM1QzVDJyB9KTtcbiAgICAgIGNvbnN0IHdhbGxDbGlwcGVkUGFkTWF0ZXJpYWwgPSBjcmVhdGVEZWZhdWx0TWF0ZXJpYWwoeyBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLCBjb2xvcjogJyM1QzVDNUMnIH0pO1xuXG4gICAgICBjb25zdCBhcGVydHVyZXMgPSB0aGlzLmFwZXJ0dXJlcy5maWx0ZXIoKGFwZXJ0dXJlKSA9PiBhcGVydHVyZS5XYWxscy5zb21lKChpZCkgPT4gd2FsbElkID09PSBpZCkpO1xuICAgICAgY29uc3Qgd2FsbE1lc2ggPSB0aGlzLnN1YnRyYWN0QXBlcnR1cmVzKG5ldyBUSFJFRS5NZXNoKHdhbGxHZW9tZXRyeSwgd2FsbE1hdGVyaWFsKSwgYXBlcnR1cmVzKTtcbiAgICAgIGNvbnN0IHdhbGxQYWRNZXNoID0gbmV3IFRIUkVFLk1lc2god2FsbFBhZEdlb21ldHJ5LCB3YWxsUGFkTWF0ZXJpYWwpO1xuICAgICAgY29uc3Qgd2FsbENsaXBwZWRQYWRNZXNoID0gbmV3IFRIUkVFLk1lc2god2FsbFBhZEdlb21ldHJ5LCB3YWxsQ2xpcHBlZFBhZE1hdGVyaWFsKTtcbiAgICAgIHdhbGxNZXNoLmNhc3RTaGFkb3cgPSB0cnVlO1xuICAgICAgd2FsbE1lc2gucmVjZWl2ZVNoYWRvdyA9ICFpc0V4dGVyaW9yO1xuICAgICAgd2FsbFBhZE1lc2guY2FzdFNoYWRvdyA9IGZhbHNlO1xuICAgICAgd2FsbFBhZE1lc2gucmVjZWl2ZVNoYWRvdyA9IGZhbHNlO1xuICAgICAgd2FsbENsaXBwZWRQYWRNZXNoLmNhc3RTaGFkb3cgPSBmYWxzZTtcbiAgICAgIHdhbGxDbGlwcGVkUGFkTWVzaC5yZWNlaXZlU2hhZG93ID0gZmFsc2U7XG5cbiAgICAgIHdhbGxQYWRNZXNoLnBvc2l0aW9uLnogPSB0aGlzLndhbGxzSGVpZ2h0O1xuICAgICAgd2FsbENsaXBwZWRQYWRNZXNoLnBvc2l0aW9uLnogPSAoKHRoaXMud2FsbHNIZWlnaHQgKyAwLjUpICogY2xpcHBlZEJ1aWxkaW5nQ29uc3RhbnQpICsgMC4wMDE7XG5cbiAgICAgIGNvbnN0IHdhbGxDbGlwcGVkUGFkTWVzaFdpdGhBcGVydHVyZXMgPSB0aGlzLnN1YnRyYWN0QXBlcnR1cmVzKHdhbGxDbGlwcGVkUGFkTWVzaCwgYXBlcnR1cmVzKTtcbiAgICAgIHdhbGxDbGlwcGVkUGFkTWVzaFdpdGhBcGVydHVyZXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgd2FsbENsaXBwZWRQYWRNZXNoV2l0aEFwZXJ0dXJlcy5jYXN0U2hhZG93ID0gZmFsc2U7XG4gICAgICB3YWxsQ2xpcHBlZFBhZE1lc2hXaXRoQXBlcnR1cmVzLnJlY2VpdmVTaGFkb3cgPSBmYWxzZTtcblxuICAgICAgY29uc3Qgd2FsbEdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XG4gICAgICB3YWxsR3JvdXAubmFtZSA9ICdXYWxsJztcbiAgICAgIHdhbGxHcm91cC5idWlsZGluZ0lkID0gd2FsbElkO1xuICAgICAgd2FsbEdyb3VwLmlzRXh0ZXJpb3IgPSBpc0V4dGVyaW9yO1xuICAgICAgd2FsbEdyb3VwLmFkZCh3YWxsTWVzaCwgd2FsbFBhZE1lc2gsIHdhbGxDbGlwcGVkUGFkTWVzaFdpdGhBcGVydHVyZXMpO1xuXG4gICAgICB0aGlzLndhbGxzR3JvdXAuYWRkKHdhbGxHcm91cCk7XG4gICAgfTtcblxuICAgIHRoaXMuZXh0ZXJpb3JXYWxsc01hdGVyaWFsID0gY3JlYXRlRGVmYXVsdE1hdGVyaWFsKHtcbiAgICAgIC4uLnRoaXMud2FsbE1hdGVyaWFsT3B0aW9ucyxcbiAgICAgIG1hcDogdGhpcy5leHRlcmlvcldhbGxzTWFwcy5tYXAsXG4gICAgICByb3VnaG5lc3NNYXA6IHRoaXMuZXh0ZXJpb3JXYWxsc01hcHMucm91Z2huZXNzTWFwLFxuICAgICAgY29sb3I6ICcjRkZGRkZGJyxcbiAgICB9KTtcblxuICAgIHRoaXMucm9vbXMuZm9yRWFjaCgoeyBXYWxscyB9KSA9PiBXYWxscy5mb3JFYWNoKCh3YWxsSWQpID0+IGNyZWF0ZVdhbGwod2FsbElkLCBmYWxzZSkpKTtcblxuICAgIHRoaXMuZXh0ZXJpb3JXYWxscy5mb3JFYWNoKCh3YWxsSWQpID0+IGNyZWF0ZVdhbGwod2FsbElkLCB0cnVlKSk7XG5cbiAgICB0aGlzLmhvdXNlR3JvdXAuYWRkKHRoaXMud2FsbHNHcm91cCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNyZWF0ZURvb3JzKCkge1xuICAgIHRoaXMuZG9vcnMuZm9yRWFjaCgoeyBXaWR0aCwgTG9jYXRpb24sIFJvdGF0aW9uIH0pID0+IHtcbiAgICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KFdpZHRoICogdGhpcy5zY2VuZVNjYWxlLCAwLjEsIHRoaXMuZG9vcnNIZWlnaHQpO1xuICAgICAgbGV0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaChnZW9tZXRyeSwgdGhpcy5kb29yTWF0ZXJpYWwpO1xuICAgICAgbWVzaC5wb3NpdGlvbi54ID0gTG9jYXRpb24uWCAqIHRoaXMuc2NlbmVTY2FsZTtcbiAgICAgIG1lc2gucG9zaXRpb24ueSA9IExvY2F0aW9uLlkgKiB0aGlzLnNjZW5lU2NhbGU7XG4gICAgICBtZXNoLnBvc2l0aW9uLnogPSB0aGlzLmRvb3JzSGVpZ2h0IC8gMjtcbiAgICAgIG1lc2gucm90YXRpb24ueiA9IFRIUkVFLk1hdGguZGVnVG9SYWQoUm90YXRpb24uWWF3KTtcbiAgICAgIG1lc2gucmVjZWl2ZVNoYWRvdyA9IHRydWU7XG4gICAgICBtZXNoLmNhc3RTaGFkb3cgPSB0cnVlO1xuICAgICAgXG4gICAgICB0aGlzLmRvb3JzR3JvdXAuYWRkKG1lc2gpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5ob3VzZUdyb3VwLmFkZCh0aGlzLmRvb3JzR3JvdXApO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdWJ0cmFjdEFwZXJ0dXJlcyhtZXNoLCBhcGVydHVyZXMsIGFkZGl0aW9uYWxXaWR0aCA9IDApIHtcbiAgICBsZXQgcmVzdWx0TWVzaCA9IG1lc2g7XG5cbiAgICBhcGVydHVyZXMuZm9yRWFjaCgoeyBXaWR0aCwgRGVwdGgsIExvY2F0aW9uLCBSb3RhdGlvbiwgVHlwZSB9KSA9PiB7XG4gICAgICBjb25zdCBpc0Rvb3IgPSBUeXBlID09PSAnRG9vcic7XG4gICAgICBjb25zdCBhcGVydHVyZUdlb21ldHJ5ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KFxuICAgICAgICAoV2lkdGggKyBhZGRpdGlvbmFsV2lkdGgpICogdGhpcy5zY2VuZVNjYWxlLFxuICAgICAgICBEZXB0aCAqIHRoaXMuc2NlbmVTY2FsZSArIDEsXG4gICAgICAgIChpc0Rvb3IgPyB0aGlzLmRvb3JzSGVpZ2h0IDogdGhpcy53YWxsc0hlaWdodCAvIDIpICsgKGFkZGl0aW9uYWxXaWR0aCAqIHRoaXMuc2NlbmVTY2FsZSksXG4gICAgICApO1xuICAgICAgY29uc3QgYXBlcnR1cmVNYXRlcmlhbCA9IGNyZWF0ZURlZmF1bHRNYXRlcmlhbCh7IGNvbG9yOiAnIzAwQjRGNycgfSk7XG4gICAgICBjb25zdCBhcGVydHVyZU1lc2ggPSBuZXcgVEhSRUUuTWVzaChhcGVydHVyZUdlb21ldHJ5LCBhcGVydHVyZU1hdGVyaWFsKTtcbiAgICAgIGFwZXJ0dXJlTWVzaC5yb3RhdGlvbi56ID0gVEhSRUUuTWF0aC5kZWdUb1JhZChSb3RhdGlvbi5ZYXcpO1xuICAgICAgYXBlcnR1cmVNZXNoLnBvc2l0aW9uLnggPSBMb2NhdGlvbi5YICogdGhpcy5zY2VuZVNjYWxlO1xuICAgICAgYXBlcnR1cmVNZXNoLnBvc2l0aW9uLnkgPSBMb2NhdGlvbi5ZICogdGhpcy5zY2VuZVNjYWxlO1xuICAgICAgYXBlcnR1cmVNZXNoLnBvc2l0aW9uLnogPSBpc0Rvb3IgPyB0aGlzLmRvb3JzSGVpZ2h0IC8gMiA6IHRoaXMud2FsbHNIZWlnaHQgLyAyO1xuXG4gICAgICBhcGVydHVyZU1lc2gudXBkYXRlTWF0cml4KCk7XG4gICAgICByZXN1bHRNZXNoLnVwZGF0ZU1hdHJpeCgpO1xuXG4gICAgICBjb25zdCBhcGVydHVyZUJTUCA9IENTRy5mcm9tTWVzaChhcGVydHVyZU1lc2gpO1xuICAgICAgY29uc3Qgd2FsbEJTUCA9IENTRy5mcm9tTWVzaChyZXN1bHRNZXNoKTtcblxuICAgICAgY29uc3QgcmVzdWx0QlNQID0gd2FsbEJTUC5zdWJ0cmFjdChhcGVydHVyZUJTUCk7XG4gICAgICByZXN1bHRNZXNoID0gQ1NHLnRvTWVzaChyZXN1bHRCU1AsIG1lc2gubWF0cml4LCByZXN1bHRNZXNoLm1hdGVyaWFsKTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHRNZXNoO1xuICB9XG5cbiAgc2V0Q2VudGVyUG9zaXRpb24oKSB7XG4gICAgY29uc3Qgd2FsbHMgPSB0aGlzLmV4dGVyaW9yV2FsbHMubWFwKCh3YWxsSWQpID0+IHRoaXMuZ2V0UGFyc2VkV2FsbEJ5SWQod2FsbElkKSk7XG4gICAgY29uc3QgeyBtYXhYLCBtaW5YLCBtYXhZLCBtaW5ZIH0gPSBnZXRNaW5NYXhDb29yZGluYXRlcyh3YWxscyk7XG4gICAgY29uc3QgY2VudGVyWCA9IChtYXhYICsgbWluWCkgLyAyO1xuICAgIGNvbnN0IGNlbnRlclkgPSAobWF4WSArIG1pblkpIC8gMjtcbiAgICBjb25zdCBsaWdodHNPZmZzZXQgPSAyNTtcbiAgICB0aGlzLmhvdXNlR3JvdXAucG9zaXRpb24uc2V0KC1jZW50ZXJYLCAtY2VudGVyWSk7XG5cbiAgICBjb25zdCBsaWdodHMgPSBbXG4gICAgICB7IHg6IGNlbnRlclggLSBsaWdodHNPZmZzZXQsIHk6IGNlbnRlclkgLSBsaWdodHNPZmZzZXQsIHo6IHRoaXMud2FsbHNIZWlnaHQgKiAzLCBwb3dlcjogMC40LCBjYXN0U2hhZG93OiB0cnVlIH0sXG4gICAgICB7IHg6IGNlbnRlclggLSBsaWdodHNPZmZzZXQsIHk6IGNlbnRlclkgLSBsaWdodHNPZmZzZXQsIHo6IHRoaXMud2FsbHNIZWlnaHQgKiAyLCBwb3dlcjogMSwgY2FzdFNoYWRvdzogZmFsc2UgfSxcbiAgICAgIHsgeDogY2VudGVyWCArIGxpZ2h0c09mZnNldCwgeTogY2VudGVyWSArIGxpZ2h0c09mZnNldCwgejogdGhpcy53YWxsc0hlaWdodCAqIDIsIHBvd2VyOiAxLjEsIGNhc3RTaGFkb3c6IGZhbHNlIH0sXG4gICAgICB7IHg6IGNlbnRlclgsIHk6IGNlbnRlclksIHo6IHRoaXMud2FsbHNIZWlnaHQgKiA1LCBwb3dlcjogMC4xLCBjYXN0U2hhZG93OiBmYWxzZSB9LFxuICAgIF07XG5cbiAgICBjb25zdCB0YXJnZXRPYmplY3QgPSBuZXcgVEhSRUUuT2JqZWN0M0QoKTtcbiAgICB0YXJnZXRPYmplY3QucG9zaXRpb24uc2V0KGNlbnRlclgsIGNlbnRlclksIDApO1xuICAgIHRoaXMuaG91c2VHcm91cC5hZGQodGFyZ2V0T2JqZWN0KTtcblxuICAgIGxpZ2h0cy5mb3JFYWNoKCh7IHgsIHksIHosIHBvd2VyLCBjYXN0U2hhZG93IH0pID0+IHtcbiAgICAgIGNvbnN0IGxpZ2h0ID0gbmV3IFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQoMHhmZmZmZmYsIHBvd2VyKTtcbiAgICAgIGxpZ2h0LnBvc2l0aW9uLnNldCh4LCB5LCB6KTtcbiAgICAgIGxpZ2h0LnNoYWRvd0xpZ2h0ID0gY2FzdFNoYWRvdztcbiAgICAgIGxpZ2h0LmNhc3RTaGFkb3cgPSBjYXN0U2hhZG93O1xuICAgICAgbGlnaHQuc2hhZG93LmNhbWVyYS5sZWZ0ID0gLWNlbnRlclggKiAyO1xuICAgICAgbGlnaHQuc2hhZG93LmNhbWVyYS5yaWdodCA9IGNlbnRlclggKiAyO1xuICAgICAgbGlnaHQuc2hhZG93LmNhbWVyYS50b3AgPSBjZW50ZXJZICogMjtcbiAgICAgIGxpZ2h0LnNoYWRvdy5jYW1lcmEuYm90dG9tID0gLWNlbnRlclkgKiAyO1xuICAgICAgbGlnaHQuc2hhZG93LmNhbWVyYS56b29tID0gMTtcbiAgICAgIGxpZ2h0LnNoYWRvdy5tYXBTaXplID0gbmV3IFRIUkVFLlZlY3RvcjIoMjA0OCwgMjA0OCk7XG4gICAgICBsaWdodC5zaGFkb3cubm9ybWFsQmlhcyA9IDE7XG4gICAgICBsaWdodC50YXJnZXQgPSB0YXJnZXRPYmplY3Q7XG5cbiAgICAgIHRoaXMuaG91c2VHcm91cC5hZGQobGlnaHQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBsb2FkVGV4dHVyZShpbWcsIHJlcGVhdCA9IFsxLCAxXSwgY2FsbGJhY2sgPSAoKSA9PiB7fSkge1xuICAgIHRoaXMudGV4dHVyZUxvYWRlci5sb2FkKGltZywgKHRleHR1cmUpID0+IHtcbiAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuUmVwZWF0V3JhcHBpbmc7XG4gICAgICB0ZXh0dXJlLnJlcGVhdC5zZXQocmVwZWF0WzBdLCByZXBlYXRbMV0pO1xuICAgICAgdGV4dHVyZS5mbGlwWSA9IGZhbHNlO1xuXG4gICAgICBjYWxsYmFjayh0ZXh0dXJlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWRUZXh0dXJlcygpIHtcbiAgICBjb25zdCBhc3NldHMgPSBbXG4gICAgICB7XG4gICAgICAgIGltZzogV2FsbFRleHR1cmVJbWcsXG4gICAgICAgIHJlcGVhdDogWzAuNSwgMC41XSxcbiAgICAgICAgY2FsbGJhY2s6ICh0ZXh0dXJlKSA9PiB7XG4gICAgICAgICAgdGhpcy53YWxsc1RleHR1cmVzLnB1c2goeyBpbWFnZTogV2FsbFRleHR1cmVJbWcsIHRleHR1cmU6IHRleHR1cmUgfSk7XG4gICAgICAgICAgdGhpcy53YWxsc01hdGVyaWFsID0gY3JlYXRlRGVmYXVsdE1hdGVyaWFsKHsgLi4udGhpcy53YWxsTWF0ZXJpYWxPcHRpb25zLCBtYXA6IHRleHR1cmUgfSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWc6IEV4dGVyaW9yV2FsbFRleHR1cmVJbWcsXG4gICAgICAgIHJlcGVhdDogWzEsIDFdLFxuICAgICAgICBjYWxsYmFjazogKHRleHR1cmUpID0+IHtcbiAgICAgICAgICB0aGlzLndhbGxzVGV4dHVyZXMucHVzaCh7IGltYWdlOiBFeHRlcmlvcldhbGxUZXh0dXJlSW1nLCB0ZXh0dXJlOiB0ZXh0dXJlIH0pO1xuICAgICAgICAgIHRoaXMuZXh0ZXJpb3JXYWxsc01hcHMubWFwID0gdGV4dHVyZTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltZzogRXh0ZXJpb3JXYWxsVGV4dHVyZVJvdWdobmVzc0ltZyxcbiAgICAgICAgcmVwZWF0OiBbMSwgMV0sXG4gICAgICAgIGNhbGxiYWNrOiAodGV4dHVyZSkgPT4ge1xuICAgICAgICAgIHRoaXMud2FsbHNUZXh0dXJlcy5wdXNoKHsgaW1hZ2U6IEV4dGVyaW9yV2FsbFRleHR1cmVSb3VnaG5lc3NJbWcsIHRleHR1cmU6IHRleHR1cmUgfSk7XG4gICAgICAgICAgdGhpcy5leHRlcmlvcldhbGxzTWFwcy5yb3VnaG5lc3NNYXAgPSB0ZXh0dXJlO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1nOiBEb29yVGV4dHVyZSxcbiAgICAgICAgcmVwZWF0OiBbMSwgMV0sXG4gICAgICAgIGNhbGxiYWNrOiAodGV4dHVyZSkgPT4ge1xuICAgICAgICAgIHRoaXMuZG9vck1hdGVyaWFsID0gY3JlYXRlRGVmYXVsdE1hdGVyaWFsKHsgLi4uZG9vck1hdGVyaWFsT3B0aW9ucywgbWFwOiB0ZXh0dXJlIH0pO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGFzc2V0cy5tYXAoKHsgaW1nLCByZXBlYXQsIGNhbGxiYWNrIH0pID0+IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICB0aGlzLmxvYWRUZXh0dXJlKGltZywgcmVwZWF0LCAodGV4dHVyZSkgPT4ge1xuICAgICAgICBjYWxsYmFjayh0ZXh0dXJlKTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSkpKTtcbiAgfVxuXG4gIGxvYWRGdXJuaXR1cmUoaW5kZXgpIHtcbiAgICBjb25zdCBmdXJuaXR1cmUgPSB0aGlzLmZ1cm5pdHVyZVtpbmRleF07XG4gICAgaWYgKCFmdXJuaXR1cmUpIHJldHVybjtcblxuICAgIGNvbnN0IGZ1cm5pdHVyZURhdGEgPSB0aGlzLmZ1cm5pdHVyZURhdGEuZmluZCgoeyBuYW1lLCB0eXBlIH0pID0+IChuYW1lID09PSBmdXJuaXR1cmUuTW9kZWwgJiYgdHlwZSA9PT0gZnVybml0dXJlLlR5cGUpKTtcbiAgICBpZiAoIWZ1cm5pdHVyZURhdGEpIHtcbiAgICAgIHRoaXMubG9hZEZ1cm5pdHVyZShpbmRleCArIDEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbWVzaCwgdGV4dHVyZXMgfSA9IGZ1cm5pdHVyZURhdGE7XG4gICAgY29uc3QgbW9kZWxQYXRoID0gYCR7dGhpcy5hcGlTdG9yZS5BUElfVVJMfS9zdG9yYWdlL2Z1cm5pdHVyZS8ke21lc2h9YDtcblxuICAgIGNvbnN0IHsgTG9jYXRpb24sIFJvdGF0aW9uLCBNb2RlbDogTW9kZWxOYW1lIH0gPSBmdXJuaXR1cmU7XG4gICAgY29uc3QgeyBYLCBZLCBaIH0gPSBMb2NhdGlvbjtcblxuICAgIGNvbnN0IHByb21pc2VzID0gdGV4dHVyZXMubWFwKCh1cmwpID0+IHtcbiAgICAgIGNvbnN0IHRleHR1cmVQYXRoID0gYCR7dGhpcy5hcGlTdG9yZS5BUElfVVJMfS9zdG9yYWdlL2Z1cm5pdHVyZS8ke3VybH1gO1xuXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgdGhpcy50ZXh0dXJlTG9hZGVyLmxvYWQodGV4dHVyZVBhdGgsICh0ZXh0dXJlKSA9PiByZXNvbHZlKHRleHR1cmUpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgb25UZXh0dXJlc0xvYWRlZCA9IChyZXN1bHQsIG1vZGVsKSA9PiB7XG4gICAgICBjb25zdCBtYXRlcmlhbHNDb3VudCA9IHJlc3VsdC5yZWR1Y2UoKGFjYywgeyBpbWFnZSB9KSA9PiB7XG4gICAgICAgIGlmICghaW1hZ2UuY3VycmVudFNyYy5pbmNsdWRlcygnX0QuJykgJiYgIWltYWdlLmN1cnJlbnRTcmMuaW5jbHVkZXMoJ19EQS4nKSkgcmV0dXJuIGFjYztcbiAgICAgICAgcmV0dXJuIGFjYyArPSAxO1xuICAgICAgfSwgMCk7XG5cbiAgICAgIGNvbnN0IGNyZWF0ZU1hdGVyaWFsID0gKG51bSkgPT4ge1xuICAgICAgICBjb25zdCBtYXAgPSByZXN1bHQuZmluZCgoeyBpbWFnZSB9KSA9PiAoXG4gICAgICAgICAgaW1hZ2UuY3VycmVudFNyYy5pbmNsdWRlcyhgJHtudW19X0QuYCkgfHxcbiAgICAgICAgICBpbWFnZS5jdXJyZW50U3JjLmluY2x1ZGVzKGAke251bX1fREEuYClcbiAgICAgICAgKSk7XG4gICAgICAgIGNvbnN0IGVudk1hcCA9IHJlc3VsdC5maW5kKCh7IGltYWdlIH0pID0+IGltYWdlLmN1cnJlbnRTcmMuaW5jbHVkZXMoYCR7bnVtfV9STU8uYCkpO1xuICAgICAgICBjb25zdCBub3JtYWxNYXAgPSByZXN1bHQuZmluZCgoeyBpbWFnZSB9KSA9PiBpbWFnZS5jdXJyZW50U3JjLmluY2x1ZGVzKGAke251bX1fTi5gKSk7XG4gICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsKHsgcm91Z2huZXNzOiAxLCB0cmFuc3BhcmVudDogdHJ1ZSB9KTtcbiAgICAgICAgbWF0ZXJpYWwuZGVwdGhXcml0ZSA9ICEoTW9kZWxOYW1lID09PSAnRmxvd2VyJyAmJiBudW0gPT09ICcwMScpO1xuXG4gICAgICAgIGlmIChtYXApIG1hdGVyaWFsLm1hcCA9IG1hcDtcbiAgICAgICAgaWYgKGVudk1hcCkgbWF0ZXJpYWwuZW52TWFwID0gZW52TWFwO1xuICAgICAgICBpZiAobm9ybWFsTWFwKSBtYXRlcmlhbC5ub3JtYWxNYXAgPSBub3JtYWxNYXA7XG5cbiAgICAgICAgcmV0dXJuIG1hdGVyaWFsO1xuICAgICAgfTtcblxuICAgICAgbGV0IG1hdGVyaWFscyA9IG5ldyBUSFJFRS5NZXNoUGh5c2ljYWxNYXRlcmlhbCh7XG4gICAgICAgIHJvdWdobmVzczogMSxcbiAgICAgICAgY2xlYXJjb2F0OiAxLFxuICAgICAgICBjbGVhcmNvYXRSb3VnaG5lc3M6IDEsXG4gICAgICAgIHJlZmxlY3Rpdml0eTogMCxcbiAgICAgICAgZm9nOiBmYWxzZSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAobWF0ZXJpYWxzQ291bnQgPT09IDEpIHtcbiAgICAgICAgbWF0ZXJpYWxzID0gY3JlYXRlTWF0ZXJpYWwoJycpO1xuICAgICAgfVxuXG4gICAgICBpZiAobWF0ZXJpYWxzQ291bnQgPiAxKSB7XG4gICAgICAgIG1hdGVyaWFscyA9IFsuLi5BcnJheShtYXRlcmlhbHNDb3VudCkua2V5cygpXS5tYXAoKGkpID0+IHtcbiAgICAgICAgICBjb25zdCBudW0gPSBpICsgMTtcbiAgICAgICAgICBjb25zdCByZWFsTnVtID0gbnVtIDwgMTAgPyBgMCR7bnVtfWAgOiBudW07XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZU1hdGVyaWFsKHJlYWxOdW0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgbW9kZWwudHJhdmVyc2UoKG5vZGUpID0+IHtcbiAgICAgICAgaWYgKG5vZGUuaXNNZXNoKSB7XG4gICAgICAgICAgbm9kZS5tYXRlcmlhbCA9IG1hdGVyaWFscztcbiAgICAgICAgICBub2RlLnJlY2VpdmVTaGFkb3cgPSB0cnVlO1xuICAgICAgICAgIG5vZGUuY2FzdFNoYWRvdyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmhvdXNlR3JvdXAuYWRkKG1vZGVsKTtcbiAgICAgIHRoaXMubG9hZEZ1cm5pdHVyZShpbmRleCArIDEpO1xuICAgIH07XG5cbiAgICBjb25zdCBvbk1vZGVsTG9hZGVkID0gKG9yaWdpbmFsTW9kZWwpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsID0gb3JpZ2luYWxNb2RlbC5jbG9uZSgpO1xuICAgICAgbW9kZWwuc2NhbGUuc2V0KHRoaXMuc2NlbmVTY2FsZSwgdGhpcy5zY2VuZVNjYWxlLCB0aGlzLnNjZW5lU2NhbGUpO1xuICAgICAgbW9kZWwucG9zaXRpb24uc2V0KFggKiB0aGlzLnNjZW5lU2NhbGUsIFkgKiB0aGlzLnNjZW5lU2NhbGUsIFogKiB0aGlzLnNjZW5lU2NhbGUpO1xuICAgICAgbW9kZWwucm90YXRpb24uc2V0KE1hdGguUEkgLyAyLCBUSFJFRS5NYXRoLmRlZ1RvUmFkKFJvdGF0aW9uLllhdyksIDApO1xuXG4gICAgICBjb25zdCBsb2FkZWRUZXh0dXJlcyA9IHRoaXMubG9hZGVkVGV4dHVyZXNbTW9kZWxOYW1lXTtcblxuICAgICAgaWYgKGxvYWRlZFRleHR1cmVzKSB7XG4gICAgICAgIG9uVGV4dHVyZXNMb2FkZWQobG9hZGVkVGV4dHVyZXMsIG1vZGVsKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgIG9uVGV4dHVyZXNMb2FkZWQocmVzdWx0LCBtb2RlbCk7XG4gICAgICAgIHRoaXMubG9hZGVkVGV4dHVyZXNbTW9kZWxOYW1lXSA9IHJlc3VsdDtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBsb2FkZWRNb2RlbCA9IHRoaXMubG9hZGVkTW9kZWxzW01vZGVsTmFtZV07XG5cbiAgICBpZiAobG9hZGVkTW9kZWwpIHtcbiAgICAgIG9uTW9kZWxMb2FkZWQobG9hZGVkTW9kZWwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1vZGVsTG9hZGVyLmxvYWQobW9kZWxQYXRoLCAobW9kZWwpID0+IHtcbiAgICAgIHRoaXMubG9hZGVkTW9kZWxzW01vZGVsTmFtZV0gPSBtb2RlbDtcbiAgICAgIG9uTW9kZWxMb2FkZWQobW9kZWwpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gQWN0aW9uc1xuXG4gIHNldFNoYWRvd3NWaXNpYmlsaXR5KHZhbHVlKSB7XG4gICAgdGhpcy5pc1NoYWRvd3NWaXNpYmxlID0gdmFsdWU7XG4gICAgdGhpcy5ob3VzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGlzTGlnaHQgPSBub2RlIGluc3RhbmNlb2YgVEhSRUUuRGlyZWN0aW9uYWxMaWdodDtcbiAgICAgIGlmICghaXNMaWdodCkgcmV0dXJuO1xuICAgICAgaWYgKCFub2RlLnNoYWRvd0xpZ2h0KSByZXR1cm47XG4gICAgICBub2RlLmNhc3RTaGFkb3cgPSB2YWx1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldERvb3JzVmlzaWJpbGl0eSh2YWx1ZSkge1xuICAgIHRoaXMuaXNEb29yc1Zpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLmRvb3JzR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCgoZG9vcikgPT4gZG9vci52aXNpYmxlID0gdmFsdWUpO1xuICB9XG5cbiAgc2V0Q3VycmVudFdhbGxzTWF0ZXJpYWxUeXBlKHZhbHVlKSB7XG4gICAgdGhpcy53YWxsc01hdGVyaWFsVHlwZSA9IHZhbHVlO1xuXG4gICAgdGhpcy53YWxsc0dyb3VwLmNoaWxkcmVuLmZvckVhY2goKHsgY2hpbGRyZW4sIGlzRXh0ZXJpb3IgfSkgPT4ge1xuICAgICAgY29uc3Qgd2FsbCA9IGNoaWxkcmVuWzBdO1xuICAgICAgaWYgKHZhbHVlID09PSAndGV4dHVyZScpIHtcbiAgICAgICAgd2FsbC5tYXRlcmlhbCA9IGlzRXh0ZXJpb3IgPyB0aGlzLmV4dGVyaW9yV2FsbHNNYXRlcmlhbCA6IHRoaXMud2FsbHNNYXRlcmlhbDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgY29sb3IgPSBpc0V4dGVyaW9yID8gJyNGRkZGRkYnIDogdGhpcy53YWxsc0NvbG9yO1xuICAgICAgd2FsbC5tYXRlcmlhbCA9IGNyZWF0ZURlZmF1bHRNYXRlcmlhbCh7IC4uLnRoaXMud2FsbE1hdGVyaWFsT3B0aW9ucywgY29sb3IgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmRvb3JzR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCgoZG9vcikgPT4ge1xuICAgICAgaWYgKHZhbHVlID09PSAndGV4dHVyZScpIHtcbiAgICAgICAgZG9vci5tYXRlcmlhbCA9IHRoaXMuZG9vck1hdGVyaWFsO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBkb29yLm1hdGVyaWFsID0gY3JlYXRlRGVmYXVsdE1hdGVyaWFsKGRvb3JNYXRlcmlhbE9wdGlvbnMpO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0Q3VycmVudFdhbGxDb2xvcihjb2xvcikge1xuICAgIHRoaXMud2FsbHNDb2xvciA9IGNvbG9yO1xuICAgIHRoaXMud2FsbHNNYXRlcmlhbC5jb2xvci5zZXQoY29sb3IpO1xuICAgIHRoaXMud2FsbHNHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCh7IGNoaWxkcmVuLCBpc0V4dGVyaW9yIH0pID0+IHtcbiAgICAgIGlmIChpc0V4dGVyaW9yKSByZXR1cm47XG4gICAgICBjb25zdCB3YWxsID0gY2hpbGRyZW5bMF07XG4gICAgICB3YWxsLm1hdGVyaWFsLmNvbG9yLnNldChjb2xvcik7XG4gICAgfSk7XG4gIH1cblxuICBzZXRDdXJyZW50V2FsbFRleHR1cmUodGV4dHVyZSkge1xuICAgIHRoaXMud2FsbHNNYXRlcmlhbCA9IGNyZWF0ZURlZmF1bHRNYXRlcmlhbCh7IC4uLnRoaXMud2FsbE1hdGVyaWFsT3B0aW9ucywgbWFwOiB0ZXh0dXJlIH0pO1xuICAgIHRoaXMuc2V0Q3VycmVudFdhbGxzTWF0ZXJpYWxUeXBlKCd0ZXh0dXJlJyk7XG4gIH1cblxuICBhZGRXYWxsVGV4dHVyZShpbWFnZSkge1xuICAgIHRoaXMubG9hZFRleHR1cmUoaW1hZ2UsIFswLjUsIDAuNV0sICh0ZXh0dXJlKSA9PiB7XG4gICAgICB0aGlzLndhbGxzVGV4dHVyZXMucHVzaCh7IGltYWdlLCB0ZXh0dXJlIH0pO1xuICAgICAgdGhpcy5zZXRDdXJyZW50V2FsbFRleHR1cmUodGV4dHVyZSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRGdWxsQnVpbGRpbmdWaXNpYmlsaXR5KHZhbHVlKSB7XG4gICAgdGhpcy5pc0Z1bGxCdWlsZGluZ1Zpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLmdsb2JhbFBsYW5lLmNvbnN0YW50ID0gdGhpcy5pc0Z1bGxCdWlsZGluZ1Zpc2libGUgPyAxIDogY2xpcHBlZEJ1aWxkaW5nQ29uc3RhbnQ7XG4gICAgdGhpcy53YWxsc0dyb3VwLmNoaWxkcmVuLmZvckVhY2goKHsgY2hpbGRyZW4gfSkgPT4gY2hpbGRyZW5bMl0udmlzaWJsZSA9ICF2YWx1ZSk7XG4gIH1cblxuICBzZXRQbGFuTW9kZSgpIHtcbiAgICB0aGlzLnNldERvb3JzVmlzaWJpbGl0eShmYWxzZSk7XG4gICAgdGhpcy5zZXRGdWxsQnVpbGRpbmdWaXNpYmlsaXR5KGZhbHNlKTtcbiAgICB0aGlzLnNldEN1cnJlbnRXYWxsc01hdGVyaWFsVHlwZSgnY29sb3InKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBIb3VzZVN0b3JlO1xuIl19
|
package/build/store/index.js
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireDefault(require("react")),_locale=_interopRequireDefault(require("../locale")),_mobx=require("mobx");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_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(e,r){if(e){if("string"==typeof e)return _arrayLikeToArray(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(t="Object"===t&&e.constructor?e.constructor.name:t)||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(e,r):void 0}}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function _classCallCheck(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}(0,_mobx.configure)({useProxies:"never"});var LivingRoomType="Living",Store=function(){function e(){_classCallCheck(this,e),_defineProperty(this,"config",null),_defineProperty(this,"listeners",{resize:[]}),_defineProperty(this,"controlsVisible",!0),(0,_mobx.makeAutoObservable)(this)}return _createClass(e,[{key:"initialPanoramaRoomId",get:function(){var e=this.config.json;if(!e)return null;var e=e.Floors[0].Units[0].Rooms,r=e.find(function(e){return e.Type===LivingRoomType}),e=_toConsumableArray(e).sort(function(e,r){return r.Area-e.Area})[0];return(null==r?void 0:r.ID)||(null==e?void 0:e.ID)||null}},{key:"isTabIncluded",value:function(r){return this.config.tabs.find(function(e){return e===r})}},{key:"setConfig",value:function(e){this.config=e,_locale.default.setCurrentLocale(e.locale),this.dispatchEvent("resize",{width:e.width,height:e.height})}},{key:"hideControls",value:function(){this.controlsVisible=!1}},{key:"showControls",value:function(){this.controlsVisible=!0}},{key:"addEventListener",value:function(e,r){this.listeners[e]&&this.listeners[e].push(r)}},{key:"dispatchEvent",value:function(e){var r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;this.listeners[e]&&this.listeners[e].forEach(function(e){return e(r)})}}]),e}(),_default=new Store;exports.default=_default;
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3JlL2luZGV4LmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2xvY2FsZSIsIl9tb2J4IiwiY29uZmlndXJlIiwidXNlUHJveGllcyIsIkxpdmluZ1Jvb21UeXBlIiwiU3RvcmUiLCJfY2xhc3NDYWxsQ2hlY2siLCJ0aGlzIiwiX2RlZmluZVByb3BlcnR5IiwicmVzaXplIiwibWFrZUF1dG9PYnNlcnZhYmxlIiwianNvbiIsImNvbmZpZyIsIlJvb21zIiwiRmxvb3JzIiwiVW5pdHMiLCJsaXZpbmdSb29tIiwiZmluZCIsIl9yZWYiLCJUeXBlIiwiYmlnZ2VzdFJvb20iLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzb3J0IiwiYSIsImIiLCJBcmVhIiwiSUQiLCJ2YWx1ZSIsInRhYnMiLCJ0YWIiLCJsb2NhbGVTdG9yZSIsInNldEN1cnJlbnRMb2NhbGUiLCJsb2NhbGUiLCJkaXNwYXRjaEV2ZW50Iiwid2lkdGgiLCJoZWlnaHQiLCJjb250cm9sc1Zpc2libGUiLCJldmVudCIsImNhbGxiYWNrIiwibGlzdGVuZXJzIiwicHVzaCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6IjJGQUFBLElBQUFBLE9BQUFDLHVCQUFBQyxRQUFBLFVBQ0FDLFFBQUFGLHVCQUFBQyxRQUFBLGNBQ0FFLE1BQUFGLFFBQUEsUSwwbURBRUEsRUFBQUcsTUFBQUEsV0FBVSxDQUFFQyxXQUFZLFVBRXhCLElBQU1DLGVBQWlCLFNBRWpCQyxNLFdBU0osU0FBQUEsSUFBY0MsZ0JBQUFDLEtBQUFGLEdBQUFHLGdCQUFBRCxLQUFBLFNBaEJoQixNQWdCZ0JDLGdCQUFBRCxLQUFBLFlBZmhCLENBVUlFLE9BQVUsS0FLRUQsZ0JBQUFELEtBQUEsbUJBRkksSUFHaEIsRUFBQUcsTUFBQUEsb0JBQW1CSCxNLHdEQUdyQixXQUNFLElBQVFJLEVBQVNKLEtBQUtLLE9BQWRELEtBRVIsSUFBS0EsRUFBTSxPQUFPLEtBRWxCLElBQVFFLEVBQVVGLEVBQUtHLE9BQU8sR0FBR0MsTUFBTSxHQUEvQkYsTUFDRkcsRUFBYUgsRUFBTUksS0FBSyxTQUFBQyxHQUFBLE9BQUFBLEVBQUdDLE9BQW9CZixpQkFDL0NnQixFQUFjQyxtQkFBSVIsR0FBT1MsS0FBSyxTQUFDQyxFQUFHQyxHQUFKLE9BQVVBLEVBQUVDLEtBQU9GLEVBQUVFLE9BQU0sR0FFL0QsT0FBT1QsTUFBQUEsT0FBQSxFQUFBQSxFQUFZVSxNQUFNTixNQUFBQSxPQUFsQixFQUFrQkEsRUFBYU0sS0FBTSxPLDJCQUc5QyxTQUFjQyxHQUNaLE9BQU9wQixLQUFLSyxPQUFPZ0IsS0FBS1gsS0FBSyxTQUFDWSxHQUFELE9BQVNBLElBQVFGLE0sdUJBOUJsRCxTQUFBZixHQUVNUixLQUFBQSxPQUFjUSxFQWlDaEJrQixRQUFBQSxRQUFZQyxpQkFBaUJuQixFQUFPb0IsUUEvQmxDM0IsS0FnQ0c0QixjQUFjLFNBQVUsQ0FBRUMsTUFBT3RCLEVBQU9zQixNQUFPQyxPQUFRdkIsRUFBT3VCLFcsMEJBR3JFLFdBMUJjNUIsS0FBQTZCLGlCQUFBLEksMEJBOEJkLFdBcENZN0IsS0FNRTZCLGlCQUFBLEksOEJBa0NkLFNBQWlCQyxFQUFPQyxHQWpDdEI1QixLQUFBQSxVQUFBQSxJQUNESCxLQUFBZ0MsVUFBQUYsR0FBQUcsS0FBQUYsSywyQkFxQ0QsU0FBY0QsR0FBcUIsSUFBZFYsRUFBYyxFQUFBYyxVQUFBQyxhQUFBQyxJQUFBRixVQUFBLEdBQUFBLFVBQUEsR0FBTixLQW5DN0JsQyxLQUFBZ0MsVUFBNEJGLElBcUMxQjlCLEtBcENBZ0MsVUFBaUJGLEdBQUt6QixRQUF0QixTQUFBMEIsR0FBQSxPQUFBQSxFQUFBWCxTLGNBS2lDUixJQUFIZCIsImZpbGUiOiJzdG9yZS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgbG9jYWxlU3RvcmUgZnJvbSAnLi4vbG9jYWxlJztcbmltcG9ydCB7IGNvbmZpZ3VyZSwgbWFrZUF1dG9PYnNlcnZhYmxlIH0gZnJvbSAnbW9ieCc7XG5cbmNvbmZpZ3VyZSh7IHVzZVByb3hpZXM6ICduZXZlcicgfSk7XG5cbmNvbnN0IExpdmluZ1Jvb21UeXBlID0gJ0xpdmluZyc7XG5cbmNsYXNzIFN0b3JlIHtcbiAgY29uZmlnID0gbnVsbDtcblxuICBsaXN0ZW5lcnMgPSB7XG4gICAgJ3Jlc2l6ZSc6IFtdLFxuICB9O1xuXG4gIGNvbnRyb2xzVmlzaWJsZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgbWFrZUF1dG9PYnNlcnZhYmxlKHRoaXMpO1xuICB9XG5cbiAgZ2V0IGluaXRpYWxQYW5vcmFtYVJvb21JZCgpIHtcbiAgICBjb25zdCB7IGpzb24gfSA9IHRoaXMuY29uZmlnO1xuXG4gICAgaWYgKCFqc29uKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IHsgUm9vbXMgfSA9IGpzb24uRmxvb3JzWzBdLlVuaXRzWzBdO1xuICAgIGNvbnN0IGxpdmluZ1Jvb20gPSBSb29tcy5maW5kKCh7IFR5cGUgfSkgPT4gVHlwZSA9PT0gTGl2aW5nUm9vbVR5cGUpO1xuICAgIGNvbnN0IGJpZ2dlc3RSb29tID0gWy4uLlJvb21zXS5zb3J0KChhLCBiKSA9PiBiLkFyZWEgLSBhLkFyZWEpWzBdO1xuXG4gICAgcmV0dXJuIGxpdmluZ1Jvb20/LklEIHx8IGJpZ2dlc3RSb29tPy5JRCB8fCBudWxsO1xuICB9XG5cbiAgaXNUYWJJbmNsdWRlZCh2YWx1ZSkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy50YWJzLmZpbmQoKHRhYikgPT4gdGFiID09PSB2YWx1ZSk7XG4gIH1cblxuICBzZXRDb25maWcoY29uZmlnKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgbG9jYWxlU3RvcmUuc2V0Q3VycmVudExvY2FsZShjb25maWcubG9jYWxlKTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoJ3Jlc2l6ZScsIHsgd2lkdGg6IGNvbmZpZy53aWR0aCwgaGVpZ2h0OiBjb25maWcuaGVpZ2h0IH0pO1xuICB9XG5cbiAgaGlkZUNvbnRyb2xzKCkge1xuICAgIHRoaXMuY29udHJvbHNWaXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICBzaG93Q29udHJvbHMoKSB7XG4gICAgdGhpcy5jb250cm9sc1Zpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgY2FsbGJhY2spIHtcbiAgICBpZiAoIXRoaXMubGlzdGVuZXJzW2V2ZW50XSkgcmV0dXJuO1xuICAgIHRoaXMubGlzdGVuZXJzW2V2ZW50XS5wdXNoKGNhbGxiYWNrKTtcbiAgfVxuXG4gIGRpc3BhdGNoRXZlbnQoZXZlbnQsIHZhbHVlID0gbnVsbCkge1xuICAgIGlmICghdGhpcy5saXN0ZW5lcnNbZXZlbnRdKSByZXR1cm47XG4gICAgdGhpcy5saXN0ZW5lcnNbZXZlbnRdLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjayh2YWx1ZSkpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBTdG9yZSgpO1xuIl19
|
@@ -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")),_mobx=require("mobx"),THREE=_interopRequireWildcard(require("three")),_cameraControls=_interopRequireDefault(require("camera-controls")),_store=_interopRequireDefault(require("../store")),_houseStore=_interopRequireDefault(require("../store/houseStore")),_grass=_interopRequireDefault(require("../assets/img/grass.jpg")),_modelHelpers=require("../utils/modelHelpers"),_defaultConfig=_interopRequireDefault(require("../config/defaultConfig"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache=function(e){return e?r:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==_typeof(e)&&"function"!=typeof e)return{default:e};t=_getRequireWildcardCache(t);if(t&&t.has(e))return t.get(e);var r,o,n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&((o=i?Object.getOwnPropertyDescriptor(e,r):null)&&(o.get||o.set)?Object.defineProperty(n,r,o):n[r]=e[r]);return n.default=e,t&&t.set(e,n),n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}(0,_mobx.configure)({useProxies:"never"});var ModelStore=function(){function e(){var o=this;_classCallCheck(this,e),_defineProperty(this,"json",null),_defineProperty(this,"initialized",!1),_defineProperty(this,"textureLoader",new THREE.TextureLoader),_defineProperty(this,"clock",new THREE.Clock),_defineProperty(this,"scene",null),_defineProperty(this,"renderer",null),_defineProperty(this,"camera",null),_defineProperty(this,"controls",null),_defineProperty(this,"houseStore",null),_defineProperty(this,"sceneScale",.025),_defineProperty(this,"wallsHeight",280*this.sceneScale),_defineProperty(this,"currentControlsType","orbit"),_defineProperty(this,"isJoystickActive",!1),_defineProperty(this,"joystickDirections",[]),_defineProperty(this,"init",function(e){o.json=e,o.initialized=!0,o.houseStore=new _houseStore.default(o),o.scene.add(o.houseStore.houseGroup)}),_defineProperty(this,"removeHouse",function(){var e=o.scene.getObjectByName("House-Group");o.scene.remove(e),o.initialized=!1}),_defineProperty(this,"setJoystickState",function(e){o.isJoystickActive=e}),_defineProperty(this,"setJoystickDirections",function(e){o.joystickDirections=e}),_defineProperty(this,"setContainer",function(e){o.container=e,o.updateRendererSize(),o.updateCameraSize()}),_defineProperty(this,"createScene",function(){return o.scene=new THREE.Scene,o.scene.rotation.x=-Math.PI/2,o.scene.scale.y=-1,o.scene.background=new THREE.Color("#E7E7E7"),o.scene.fog=new THREE.Fog("#E7E7E7",5,200),o.createGround(),o}),_defineProperty(this,"createGround",function(){var r={},e=[new Promise(function(t){return o.loadTexture(_grass.default,[75,75],function(e){r.map=e,t()})})];return Promise.all(e).then(function(){var e=new THREE.MeshStandardMaterial({map:r.map,normalMap:r.normalMap,envMap:r.envMap,color:15198183}),e=new THREE.Mesh(new THREE.CircleGeometry(250,100),e);e.position.z=-.01,e.receiveShadow=!0,o.scene.add(e)}),o}),_defineProperty(this,"createRenderer",function(){return o.renderer=new THREE.WebGLRenderer,o.renderer.setPixelRatio(window.devicePixelRatio),o.updateRendererSize(),o.renderer.localClippingEnabled=!0,o.renderer.shadowMap.enabled=!0,o.renderer.shadowMap.type=THREE.PCFSoftShadowMap,o}),_defineProperty(this,"updateRendererSize",function(){o.renderer.setSize(o.width,o.height)}),_defineProperty(this,"createCamera",function(){return o.camera=new THREE.PerspectiveCamera(75,o.width/o.height,.1,1e3),o.camera.position.set(0,0,0),_store.default.addEventListener("resize",function(){o.updateCameraSize(),o.updateRendererSize()}),o}),_defineProperty(this,"updateCameraSize",function(){o.camera.aspect=o.width/o.height,o.camera.updateProjectionMatrix()}),_defineProperty(this,"createControls",function(){return o.controls=new _cameraControls.default(o.camera,o.renderer.domElement),o.controls.minDistance=.5,o.controls.maxDistance=50,o.controls.maxPolarAngle=Math.PI/2.1,o.setDefaultControls(Math.PI/4),o.controls.verticalDragToForward=!0,o.currentControlsType="orbit",function e(){o.controls.update(o.clock.getDelta()),window.requestAnimationFrame(e);o.isJoystickActive&&(o.joystickDirections.some(function(e){return"forward"===e})&&o.controls.forward(.2,!0),o.joystickDirections.some(function(e){return"backward"===e})&&o.controls.forward(-.2,!0),o.joystickDirections.some(function(e){return"right"===e})&&o.controls.truck(.2,0,!0),o.joystickDirections.some(function(e){return"left"===e})&&o.controls.truck(-.2,0,!0)),o.renderer.render(o.scene,o.camera)}(),o}),_defineProperty(this,"setDefaultControls",function(e){o.controls.dollyTo(20,!0),o.controls.moveTo(0,0,0,!0),o.controls.mouseButtons.wheel=_cameraControls.default.ACTION.DOLLY,o.controls.touches.two=_cameraControls.default.ACTION.TOUCH_DOLLY_TRUCK,o.controls.rotateTo(0,e,!0)}),_defineProperty(this,"setCurrentControlsType",function(e){return"orbit"===(o.currentControlsType=e)?(o.controls.maxPolarAngle=Math.PI/2.1,void o.setDefaultControls(Math.PI/4)):"plan"===e?(o.setDefaultControls(0),void(o.controls.maxPolarAngle=0)):void("wasd"===e&&(o.camera.position.set(0,0,1e-5),o.controls.maxPolarAngle=Math.PI,o.controls.dollyTo(0,!0),o.controls.moveTo(0,o.wallsHeight/2,0,!0),o.controls.rotateTo(0,Math.PI/2,!0),o.controls.mouseButtons.wheel=_cameraControls.default.ACTION.NONE,o.controls.touches.two=_cameraControls.default.ACTION.NONE))}),_defineProperty(this,"addKeyEvents",function(){return(0,_modelHelpers.getKeyEvents)(o.controls).forEach(function(e){var t=e.keys,r=e.callback;t.forEach(function(e){return e.addEventListener("holding",function(){"wasd"===o.currentControlsType&&r()})})}),o}),(0,_mobx.makeAutoObservable)(this),_cameraControls.default.install({THREE:THREE}),this.createScene().createRenderer().createCamera().createControls().addKeyEvents()}return _createClass(e,[{key:"width",get:function(){var e;return(null==(e=_store.default.config)?void 0:e.width)||_defaultConfig.default.width}},{key:"height",get:function(){var e;return(null==(e=_store.default.config)?void 0:e.height)||_defaultConfig.default.height}},{key:"loadTexture",value:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[1,1],r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:function(){};this.textureLoader.load(e,function(e){e.wrapS=e.wrapT=THREE.RepeatWrapping,e.repeat.set(t[0],t[1]),e.flipY=!1,r(e)})}}]),e}(),_default=new ModelStore;exports.default=_default;
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3JlL21vZGVsU3RvcmUuanMiXSwibmFtZXMiOlsiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbW9ieCIsIlRIUkVFIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfY2FtZXJhQ29udHJvbHMiLCJfc3RvcmUiLCJfaG91c2VTdG9yZSIsIl9ncmFzcyIsIl9tb2RlbEhlbHBlcnMiLCJfZGVmYXVsdENvbmZpZyIsImNvbmZpZ3VyZSIsInVzZVByb3hpZXMiLCJNb2RlbFN0b3JlIiwiX3RoaXMiLCJ0aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnR5IiwiVGV4dHVyZUxvYWRlciIsIkNsb2NrIiwic2NlbmVTY2FsZSIsImpzb24iLCJpbml0aWFsaXplZCIsImhvdXNlU3RvcmUiLCJIb3VzZVN0b3JlIiwic2NlbmUiLCJhZGQiLCJob3VzZUdyb3VwIiwic2VsZWN0ZWRPYmplY3QiLCJnZXRPYmplY3RCeU5hbWUiLCJyZW1vdmUiLCJ2YWx1ZSIsImlzSm95c3RpY2tBY3RpdmUiLCJkaXJlY3Rpb25zIiwiam95c3RpY2tEaXJlY3Rpb25zIiwiY29udGFpbmVyIiwidXBkYXRlUmVuZGVyZXJTaXplIiwidXBkYXRlQ2FtZXJhU2l6ZSIsIlNjZW5lIiwicm90YXRpb24iLCJ4IiwiTWF0aCIsIlBJIiwic2NhbGUiLCJ5IiwiYmFja2dyb3VuZCIsIkNvbG9yIiwiRm9nIiwiY3JlYXRlR3JvdW5kIiwidGV4dHVyZXMiLCJhc3NldHMiLCJQcm9taXNlIiwicmVzb2x2ZSIsImxvYWRUZXh0dXJlIiwiR3JvdW5kVGV4dHVyZSIsInRleHR1cmUiLCJtYXAiLCJncm91bmRNYXRlcmlhbCIsIk1lc2hTdGFuZGFyZE1hdGVyaWFsIiwibm9ybWFsTWFwIiwiZW52TWFwIiwiY29sb3IiLCJncm91bmRNZXNoIiwiTWVzaCIsIkNpcmNsZUdlb21ldHJ5IiwicG9zaXRpb24iLCJyZWNlaXZlU2hhZG93IiwicmVuZGVyZXIiLCJXZWJHTFJlbmRlcmVyIiwic2V0UGl4ZWxSYXRpbyIsIndpbmRvdyIsImRldmljZVBpeGVsUmF0aW8iLCJsb2NhbENsaXBwaW5nRW5hYmxlZCIsInNoYWRvd01hcCIsIndpZHRoIiwiY2FtZXJhIiwiUGVyc3BlY3RpdmVDYW1lcmEiLCJoZWlnaHQiLCJzZXQiLCJzdG9yZSIsInVwZGF0ZVByb2plY3Rpb25NYXRyaXgiLCJjb250cm9scyIsIkNhbWVyYUNvbnRyb2xzIiwiZG9tRWxlbWVudCIsImVuYWJsZWQiLCJ0eXBlIiwiUENGU29mdFNoYWRvd01hcCIsInNldERlZmF1bHRDb250cm9scyIsInZlcnRpY2FsRHJhZ1RvRm9yd2FyZCIsImN1cnJlbnRDb250cm9sc1R5cGUiLCJhbmltYXRlIiwidXBkYXRlIiwiY2xvY2siLCJnZXREZWx0YSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInNvbWUiLCJkaXJlY3Rpb24iLCJhZGRFdmVudExpc3RlbmVyIiwidHJ1Y2siLCJyZW5kZXIiLCJhbmdsZSIsIm1vdmVUbyIsIkFDVElPTiIsIkRPTExZIiwiVE9VQ0hfRE9MTFlfVFJVQ0siLCJyb3RhdGVUbyIsIm1heFBvbGFyQW5nbGUiLCJmb3J3YXJkIiwiZGlzdGFuY2UiLCJkb2xseVRvIiwibW91c2VCdXR0b25zIiwid2hlZWwiLCJOT05FIiwiZ2V0S2V5RXZlbnRzIiwiZm9yRWFjaCIsIl9yZWYiLCJrZXlzIiwiY2FsbGJhY2siLCJrZXkiLCJpbnN0YWxsIiwiY3JlYXRlUmVuZGVyZXIiLCJjcmVhdGVDYW1lcmEiLCJjcmVhdGVDb250cm9scyIsImFkZEtleUV2ZW50cyIsIl9zdG9yZSRjb25maWciLCJjb25maWciLCJkZWZhdWx0Q29uZmlnIiwiX3N0b3JlJGNvbmZpZzIiLCJpbWciLCJyZXBlYXQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJ0ZXh0dXJlTG9hZGVyIiwid3JhcFMiLCJ3cmFwVCIsIlJlcGVhdFdyYXBwaW5nIiwiZmxpcFkiXSwibWFwcGluZ3MiOiI0VUFBQSxJQUFB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QUEsRUFBQUQsRUFBQWxELFFBQUFvRCxlQUFBQSxRQUFBcEQsUSxrQkFZZCxXQUFhLElBQUFxRCxFQVpDLE9BQUEsT0FBQUEsRUFBQWhELE9BQUFBLFFBQUE4QyxhQUFBLEVBQUFFLEVBQUFsRCxTQUFBaUQsZUFBQUEsUUFBQWpELFMseUJBa01kLFNBbE1jbUQsR0FxSk8sSUFySlBDLEVBcUpPLEVBQUFDLFVBQUFDLGFBQUFDLElBQUFGLFVBQUEsR0FBQUEsVUFBQSxHQXJKUCxDQUFBLEVBQUEsR0FBQWIsRUFxSk8sRUFBQWEsVUFBQUMsYUFBQUMsSUFBQUYsVUFBQSxHQUFBQSxVQUFBLEdBckpQLGFBbU1abkgsS0E3Q0FzSCxjQUFjeEIsS0FBZG1CLEVBQTBCLFNBQUF6RSxHQThDeEJBLEVBQVErRSxNQUFRL0UsRUFBUWdGLE1BQVFwSSxNQUFNcUksZUE3Q3hDakYsRUFBSzBCLE9BQVNvQixJQUFBQSxFQUFkLEdBQUE0QixFQUFBLElBK0NFMUUsRUFBUWtGLE9BQVEsRUE3Q2xCcEIsRUFBS3BDLFMsY0F6Sk8sSUFBQXBFIiwiZmlsZSI6InN0b3JlL21vZGVsU3RvcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29uZmlndXJlLCBtYWtlQXV0b09ic2VydmFibGUgfSBmcm9tICdtb2J4JztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCBDYW1lcmFDb250cm9scyBmcm9tICdjYW1lcmEtY29udHJvbHMnO1xuaW1wb3J0IHN0b3JlIGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCBIb3VzZVN0b3JlIGZyb20gJy4uL3N0b3JlL2hvdXNlU3RvcmUnO1xuaW1wb3J0IEdyb3VuZFRleHR1cmUgZnJvbSAnLi4vYXNzZXRzL2ltZy9ncmFzcy5qcGcnO1xuaW1wb3J0IHsgZ2V0S2V5RXZlbnRzIH0gZnJvbSAnLi4vdXRpbHMvbW9kZWxIZWxwZXJzJztcbmltcG9ydCBkZWZhdWx0Q29uZmlnIGZyb20gJy4uL2NvbmZpZy9kZWZhdWx0Q29uZmlnJztcblxuY29uZmlndXJlKHsgdXNlUHJveGllczogJ25ldmVyJyB9KTtcblxuY2xhc3MgTW9kZWxTdG9yZSB7XG4gIGpzb24gPSBudWxsO1xuXG4gIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgdGV4dHVyZUxvYWRlciA9IG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCk7XG5cbiAgY2xvY2sgPSBuZXcgVEhSRUUuQ2xvY2soKTtcblxuICBzY2VuZSA9IG51bGw7XG5cbiAgcmVuZGVyZXIgPSBudWxsO1xuXG4gIGNhbWVyYSA9IG51bGw7XG5cbiAgY29udHJvbHMgPSBudWxsO1xuXG4gIGhvdXNlU3RvcmUgPSBudWxsO1xuXG4gIHNjZW5lU2NhbGUgPSAwLjAyNTtcblxuICB3YWxsc0hlaWdodCA9IDI4MCAqIHRoaXMuc2NlbmVTY2FsZTtcblxuICBjdXJyZW50Q29udHJvbHNUeXBlID0gJ29yYml0JztcblxuICBpc0pveXN0aWNrQWN0aXZlID0gZmFsc2U7XG4gIGpveXN0aWNrRGlyZWN0aW9ucyA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIG1ha2VBdXRvT2JzZXJ2YWJsZSh0aGlzKTtcblxuICAgIENhbWVyYUNvbnRyb2xzLmluc3RhbGwoeyBUSFJFRTogVEhSRUUgfSk7XG5cbiAgICB0aGlzLmNyZWF0ZVNjZW5lKCkuY3JlYXRlUmVuZGVyZXIoKS5jcmVhdGVDYW1lcmEoKS5jcmVhdGVDb250cm9scygpLmFkZEtleUV2ZW50cygpO1xuICB9XG5cbiAgZ2V0IHdpZHRoKCkge1xuICAgIHJldHVybiBzdG9yZS5jb25maWc/LndpZHRoIHx8IGRlZmF1bHRDb25maWcud2lkdGg7XG4gIH1cblxuICBnZXQgaGVpZ2h0KCkge1xuICAgIHJldHVybiBzdG9yZS5jb25maWc/LmhlaWdodCB8fCBkZWZhdWx0Q29uZmlnLmhlaWdodDtcbiAgfVxuXG4gIGluaXQgPSAoanNvbikgPT4ge1xuICAgIHRoaXMuanNvbiA9IGpzb247XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5ob3VzZVN0b3JlID0gbmV3IEhvdXNlU3RvcmUodGhpcyk7XG4gICAgdGhpcy5zY2VuZS5hZGQodGhpcy5ob3VzZVN0b3JlLmhvdXNlR3JvdXApO1xuICB9O1xuXG4gIHJlbW92ZUhvdXNlID0gKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkT2JqZWN0ID0gdGhpcy5zY2VuZS5nZXRPYmplY3RCeU5hbWUoJ0hvdXNlLUdyb3VwJyk7XG4gICAgdGhpcy5zY2VuZS5yZW1vdmUoc2VsZWN0ZWRPYmplY3QpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgfTtcblxuICBzZXRKb3lzdGlja1N0YXRlID0gKHZhbHVlKSA9PiB7XG4gICAgdGhpcy5pc0pveXN0aWNrQWN0aXZlID0gdmFsdWU7XG4gIH07XG5cbiAgc2V0Sm95c3RpY2tEaXJlY3Rpb25zID0gKGRpcmVjdGlvbnMpID0+IHtcbiAgICB0aGlzLmpveXN0aWNrRGlyZWN0aW9ucyA9IGRpcmVjdGlvbnM7XG4gIH07XG5cbiAgc2V0Q29udGFpbmVyID0gKGNvbnRhaW5lcikgPT4ge1xuICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIHRoaXMudXBkYXRlUmVuZGVyZXJTaXplKCk7XG4gICAgdGhpcy51cGRhdGVDYW1lcmFTaXplKCk7XG4gIH07XG5cbiAgY3JlYXRlU2NlbmUgPSAoKSA9PiB7XG4gICAgdGhpcy5zY2VuZSA9IG5ldyBUSFJFRS5TY2VuZSgpO1xuICAgIHRoaXMuc2NlbmUucm90YXRpb24ueCA9IC1NYXRoLlBJIC8gMjtcbiAgICB0aGlzLnNjZW5lLnNjYWxlLnkgPSAtMTtcbiAgICB0aGlzLnNjZW5lLmJhY2tncm91bmQgPSBuZXcgVEhSRUUuQ29sb3IoJyNFN0U3RTcnKTtcbiAgICB0aGlzLnNjZW5lLmZvZyA9IG5ldyBUSFJFRS5Gb2coJyNFN0U3RTcnLCA1LCAyMDApO1xuXG4gICAgdGhpcy5jcmVhdGVHcm91bmQoKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIGNyZWF0ZUdyb3VuZCA9ICgpID0+IHtcbiAgICBjb25zdCB0ZXh0dXJlcyA9IHt9O1xuICAgIGNvbnN0IGFzc2V0cyA9IFtcbiAgICAgIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB0aGlzLmxvYWRUZXh0dXJlKEdyb3VuZFRleHR1cmUsIFs3NSwgNzVdLCAodGV4dHVyZSkgPT4ge1xuICAgICAgICB0ZXh0dXJlcy5tYXAgPSB0ZXh0dXJlO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KSksXG4gICAgXTtcblxuICAgIFByb21pc2UuYWxsKGFzc2V0cykudGhlbigoKSA9PiB7XG4gICAgICBsZXQgZ3JvdW5kTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaFN0YW5kYXJkTWF0ZXJpYWwoe1xuICAgICAgICBtYXA6IHRleHR1cmVzLm1hcCxcbiAgICAgICAgbm9ybWFsTWFwOiB0ZXh0dXJlcy5ub3JtYWxNYXAsXG4gICAgICAgIGVudk1hcDogdGV4dHVyZXMuZW52TWFwLFxuICAgICAgICBjb2xvcjogMHhlN2U3ZTcsXG4gICAgICB9KTtcbiAgICAgIGxldCBncm91bmRNZXNoID0gbmV3IFRIUkVFLk1lc2gobmV3IFRIUkVFLkNpcmNsZUdlb21ldHJ5KDI1MCwgMTAwKSwgZ3JvdW5kTWF0ZXJpYWwpO1xuICAgICAgZ3JvdW5kTWVzaC5wb3NpdGlvbi56ID0gLTAuMDE7XG4gICAgICBncm91bmRNZXNoLnJlY2VpdmVTaGFkb3cgPSB0cnVlO1xuICAgICAgdGhpcy5zY2VuZS5hZGQoZ3JvdW5kTWVzaCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBjcmVhdGVSZW5kZXJlciA9ICgpID0+IHtcbiAgICB0aGlzLnJlbmRlcmVyID0gbmV3IFRIUkVFLldlYkdMUmVuZGVyZXIoKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFBpeGVsUmF0aW8od2luZG93LmRldmljZVBpeGVsUmF0aW8pO1xuICAgIHRoaXMudXBkYXRlUmVuZGVyZXJTaXplKCk7XG4gICAgdGhpcy5yZW5kZXJlci5sb2NhbENsaXBwaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgdGhpcy5yZW5kZXJlci5zaGFkb3dNYXAuZW5hYmxlZCA9IHRydWU7XG4gICAgdGhpcy5yZW5kZXJlci5zaGFkb3dNYXAudHlwZSA9IFRIUkVFLlBDRlNvZnRTaGFkb3dNYXA7XG4gIFxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIHVwZGF0ZVJlbmRlcmVyU2l6ZSA9ICgpID0+IHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFNpemUodGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpO1xuICB9O1xuXG4gIGNyZWF0ZUNhbWVyYSA9ICgpID0+IHtcbiAgICB0aGlzLmNhbWVyYSA9IG5ldyBUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYSg3NSwgdGhpcy53aWR0aCAvIHRoaXMuaGVpZ2h0LCAwLjEsIDEwMDApO1xuICAgIHRoaXMuY2FtZXJhLnBvc2l0aW9uLnNldCgwLCAwLCAwKTtcblxuICAgIHN0b3JlLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQ2FtZXJhU2l6ZSgpO1xuICAgICAgdGhpcy51cGRhdGVSZW5kZXJlclNpemUoKTtcbiAgICB9KTtcbiAgXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgdXBkYXRlQ2FtZXJhU2l6ZSA9ICgpID0+IHtcbiAgICB0aGlzLmNhbWVyYS5hc3BlY3QgPSB0aGlzLndpZHRoIC8gdGhpcy5oZWlnaHQ7XG4gICAgdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICB9O1xuXG4gIGNyZWF0ZUNvbnRyb2xzID0gKCkgPT4ge1xuICAgIHRoaXMuY29udHJvbHMgPSBuZXcgQ2FtZXJhQ29udHJvbHModGhpcy5jYW1lcmEsIHRoaXMucmVuZGVyZXIuZG9tRWxlbWVudCk7XG4gICAgdGhpcy5jb250cm9scy5taW5EaXN0YW5jZSA9IDAuNTtcbiAgICB0aGlzLmNvbnRyb2xzLm1heERpc3RhbmNlID0gNTA7XG4gICAgdGhpcy5jb250cm9scy5tYXhQb2xhckFuZ2xlID0gTWF0aC5QSSAvIDIuMTtcbiAgICB0aGlzLnNldERlZmF1bHRDb250cm9scyhNYXRoLlBJIC8gNCk7XG4gICAgdGhpcy5jb250cm9scy52ZXJ0aWNhbERyYWdUb0ZvcndhcmQgPSB0cnVlO1xuICAgIHRoaXMuY3VycmVudENvbnRyb2xzVHlwZSA9ICdvcmJpdCc7XG5cbiAgICBjb25zdCBhbmltYXRlID0gKCkgPT4ge1xuICAgICAgdGhpcy5jb250cm9scy51cGRhdGUodGhpcy5jbG9jay5nZXREZWx0YSgpKTtcbiAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZSk7XG5cbiAgICAgIGNvbnN0IGRpc3RhbmNlID0gMC4yO1xuXG4gICAgICBpZiAodGhpcy5pc0pveXN0aWNrQWN0aXZlKSB7XG4gICAgICAgIGlmICh0aGlzLmpveXN0aWNrRGlyZWN0aW9ucy5zb21lKChkaXJlY3Rpb24pID0+IGRpcmVjdGlvbiA9PT0gJ2ZvcndhcmQnKSkge1xuICAgICAgICAgIHRoaXMuY29udHJvbHMuZm9yd2FyZChkaXN0YW5jZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuam95c3RpY2tEaXJlY3Rpb25zLnNvbWUoKGRpcmVjdGlvbikgPT4gZGlyZWN0aW9uID09PSAnYmFja3dhcmQnKSkge1xuICAgICAgICAgIHRoaXMuY29udHJvbHMuZm9yd2FyZCgtZGlzdGFuY2UsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmpveXN0aWNrRGlyZWN0aW9ucy5zb21lKChkaXJlY3Rpb24pID0+IGRpcmVjdGlvbiA9PT0gJ3JpZ2h0JykpIHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2xzLnRydWNrKGRpc3RhbmNlLCAwLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5qb3lzdGlja0RpcmVjdGlvbnMuc29tZSgoZGlyZWN0aW9uKSA9PiBkaXJlY3Rpb24gPT09ICdsZWZ0JykpIHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2xzLnRydWNrKC1kaXN0YW5jZSwgMCwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5yZW5kZXJlci5yZW5kZXIodGhpcy5zY2VuZSwgdGhpcy5jYW1lcmEpO1xuICAgIH07XG4gICAgYW5pbWF0ZSgpO1xuICBcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBzZXREZWZhdWx0Q29udHJvbHMgPSAoYW5nbGUpID0+IHtcbiAgICB0aGlzLmNvbnRyb2xzLmRvbGx5VG8oMjAsIHRydWUpO1xuICAgIHRoaXMuY29udHJvbHMubW92ZVRvKDAsIDAsIDAsIHRydWUpO1xuICAgIHRoaXMuY29udHJvbHMubW91c2VCdXR0b25zLndoZWVsID0gQ2FtZXJhQ29udHJvbHMuQUNUSU9OLkRPTExZO1xuICAgIHRoaXMuY29udHJvbHMudG91Y2hlcy50d28gPSBDYW1lcmFDb250cm9scy5BQ1RJT04uVE9VQ0hfRE9MTFlfVFJVQ0s7XG4gICAgdGhpcy5jb250cm9scy5yb3RhdGVUbygwLCBhbmdsZSwgdHJ1ZSk7XG4gIH07XG5cbiAgc2V0Q3VycmVudENvbnRyb2xzVHlwZSA9ICh0eXBlKSA9PiB7XG4gICAgdGhpcy5jdXJyZW50Q29udHJvbHNUeXBlID0gdHlwZTtcbiAgICBjb25zdCBFUFMgPSAxZS01O1xuICAgIGlmICh0eXBlID09PSAnb3JiaXQnKSB7XG4gICAgICB0aGlzLmNvbnRyb2xzLm1heFBvbGFyQW5nbGUgPSBNYXRoLlBJIC8gMi4xO1xuICAgICAgdGhpcy5zZXREZWZhdWx0Q29udHJvbHMoTWF0aC5QSSAvIDQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gJ3BsYW4nKSB7XG4gICAgICB0aGlzLnNldERlZmF1bHRDb250cm9scygwKTtcbiAgICAgIHRoaXMuY29udHJvbHMubWF4UG9sYXJBbmdsZSA9IDA7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAnd2FzZCcpIHtcbiAgICAgIHRoaXMuY2FtZXJhLnBvc2l0aW9uLnNldCgwLCAwLCBFUFMpO1xuICAgICAgdGhpcy5jb250cm9scy5tYXhQb2xhckFuZ2xlID0gTWF0aC5QSTtcbiAgICAgIHRoaXMuY29udHJvbHMuZG9sbHlUbygwLCB0cnVlKTtcbiAgICAgIHRoaXMuY29udHJvbHMubW92ZVRvKDAsIHRoaXMud2FsbHNIZWlnaHQgLyAyLCAwLCB0cnVlKTtcbiAgICAgIHRoaXMuY29udHJvbHMucm90YXRlVG8oMCwgTWF0aC5QSSAvIDIsIHRydWUpO1xuICAgICAgdGhpcy5jb250cm9scy5tb3VzZUJ1dHRvbnMud2hlZWwgPSBDYW1lcmFDb250cm9scy5BQ1RJT04uTk9ORTtcbiAgICAgIHRoaXMuY29udHJvbHMudG91Y2hlcy50d28gPSBDYW1lcmFDb250cm9scy5BQ1RJT04uTk9ORTtcbiAgICB9XG4gIH07XG5cbiAgYWRkS2V5RXZlbnRzID0gKCkgPT4ge1xuICAgIGNvbnN0IGtleUV2ZW50cyA9IGdldEtleUV2ZW50cyh0aGlzLmNvbnRyb2xzKTtcbiAgXG4gICAga2V5RXZlbnRzLmZvckVhY2goKHsga2V5cywgY2FsbGJhY2sgfSkgPT4ge1xuICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+IGtleS5hZGRFdmVudExpc3RlbmVyKCdob2xkaW5nJywgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Q29udHJvbHNUeXBlICE9PSAnd2FzZCcpIHJldHVybjtcbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgIH0pKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIGxvYWRUZXh0dXJlKGltZywgcmVwZWF0ID0gWzEsIDFdLCBjYWxsYmFjayA9ICgpID0+IHt9KSB7XG4gICAgdGhpcy50ZXh0dXJlTG9hZGVyLmxvYWQoaW1nLCAodGV4dHVyZSkgPT4ge1xuICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5SZXBlYXRXcmFwcGluZztcbiAgICAgIHRleHR1cmUucmVwZWF0LnNldChyZXBlYXRbMF0sIHJlcGVhdFsxXSk7XG4gICAgICB0ZXh0dXJlLmZsaXBZID0gZmFsc2U7XG5cbiAgICAgIGNhbGxiYWNrKHRleHR1cmUpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBNb2RlbFN0b3JlKCk7XG4iXX0=
|
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireDefault(require("react"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var s=0;s<t.length;s++){var i=t[s];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _createClass(e,t,s){return t&&_defineProperties(e.prototype,t),s&&_defineProperties(e,s),Object.defineProperty(e,"prototype",{writable:!1}),e}function _classPrivateFieldInitSpec(e,t,s){_checkPrivateRedeclaration(e,t),t.set(e,s)}function _checkPrivateRedeclaration(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function _classPrivateFieldGet(e,t){return _classApplyDescriptorGet(e,_classExtractFieldDescriptor(e,t,"get"))}function _classApplyDescriptorGet(e,t){return t.get?t.get.call(e):t.value}function _classPrivateFieldSet(e,t,s){return _classApplyDescriptorSet(e,_classExtractFieldDescriptor(e,t,"set"),s),s}function _classExtractFieldDescriptor(e,t,s){if(t.has(e))return t.get(e);throw new TypeError("attempted to "+s+" private field on non-instance")}function _classApplyDescriptorSet(e,t,s){if(t.set)t.set.call(e,s);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=s}}var _dragOrigin=new WeakMap,_options=new WeakMap,_eventHandlers=new WeakMap,Events=function(){function i(t,e){var s=this;_classCallCheck(this,i),_classPrivateFieldInitSpec(this,_dragOrigin,{writable:!0,value:null}),_classPrivateFieldInitSpec(this,_options,{writable:!0,value:null}),_classPrivateFieldInitSpec(this,_eventHandlers,{writable:!0,value:null}),_classPrivateFieldSet(this,_options,e),_classPrivateFieldSet(this,_eventHandlers,{container:{mousedown:function(e){0===e.button&&_classPrivateFieldSet(s,_dragOrigin,e.pageX)},touchstart:function(e){return _classPrivateFieldSet(s,_dragOrigin,e.touches[0].clientX)},touchend:function(){return _classPrivateFieldSet(s,_dragOrigin,null)}},prev:{mousedown:function(e){e.preventDefault(),t.play(!0)},mouseup:function(e){e.preventDefault(),t.stop()},touchstart:function(e){e.preventDefault(),t.prev()}},next:{mousedown:function(e){e.preventDefault(),t.play()},mouseup:function(e){e.preventDefault(),t.stop()},touchstart:function(e){e.preventDefault(),t.next()}},global:{mouseup:function(){return _classPrivateFieldSet(s,_dragOrigin,null)},mousemove:function(e){_classPrivateFieldGet(s,_dragOrigin)&&Math.abs(_classPrivateFieldGet(s,_dragOrigin)-e.pageX)>_classPrivateFieldGet(s,_options).dragTolerance&&(t.stop(),_classPrivateFieldGet(s,_dragOrigin)>e.pageX?t.prev():t.next(),_classPrivateFieldSet(s,_dragOrigin,e.pageX))},touchmove:function(e){2!==e.touches.length&&(1===e.touches.length&&e.stopPropagation(),_classPrivateFieldGet(s,_dragOrigin)&&Math.abs(_classPrivateFieldGet(s,_dragOrigin)-e.touches[0].clientX)>_classPrivateFieldGet(s,_options).swipeTolerance&&(t.stop(),_classPrivateFieldGet(s,_dragOrigin)>e.touches[0].clientX?t.prev():t.next(),_classPrivateFieldSet(s,_dragOrigin,e.touches[0].clientX)))},keydown:function(e){[37,39].includes(e.keyCode)&&t.play(37===e.keyCode)},keyup:function(e){[37,39].includes(e.keyCode)&&t.stop()}}}),this._initEvents()}return _createClass(i,[{key:"destroy",value:function(){_classPrivateFieldGet(this,_options).swipeTarget.removeEventListener("mousedown",_classPrivateFieldGet(this,_eventHandlers).container.mousedown),_classPrivateFieldGet(this,_options).swipeTarget.removeEventListener("touchstart",_classPrivateFieldGet(this,_eventHandlers).container.touchstart),_classPrivateFieldGet(this,_options).swipeTarget.removeEventListener("touchend",_classPrivateFieldGet(this,_eventHandlers).container.touchend),global.removeEventListener("mouseup",_classPrivateFieldGet(this,_eventHandlers).global.mouseup),global.removeEventListener("mousemove",_classPrivateFieldGet(this,_eventHandlers).global.mousemove),_classPrivateFieldGet(this,_options).parentElement.removeEventListener("touchmove",_classPrivateFieldGet(this,_eventHandlers).global.touchmove),global.removeEventListener("keydown",_classPrivateFieldGet(this,_eventHandlers).global.keydown),global.removeEventListener("keyup",_classPrivateFieldGet(this,_eventHandlers).global.keyup),_classPrivateFieldGet(this,_options).prev&&(_classPrivateFieldGet(this,_options).prev.removeEventListener("mousedown",_classPrivateFieldGet(this,_eventHandlers).prev.mousedown),_classPrivateFieldGet(this,_options).prev.removeEventListener("mouseup",_classPrivateFieldGet(this,_eventHandlers).prev.mouseup),_classPrivateFieldGet(this,_options).prev.removeEventListener("touchstart",_classPrivateFieldGet(this,_eventHandlers).prev.touchstart)),_classPrivateFieldGet(this,_options).next&&(_classPrivateFieldGet(this,_options).next.removeEventListener("mousedown",_classPrivateFieldGet(this,_eventHandlers).next.mousedown),_classPrivateFieldGet(this,_options).next.removeEventListener("mouseup",_classPrivateFieldGet(this,_eventHandlers).next.mouseup),_classPrivateFieldGet(this,_options).next.removeEventListener("touchstart",_classPrivateFieldGet(this,_eventHandlers).next.touchstart))}},{key:"_initEvents",value:function(){_classPrivateFieldGet(this,_options).draggable&&(_classPrivateFieldGet(this,_options).swipeTarget.addEventListener("mousedown",_classPrivateFieldGet(this,_eventHandlers).container.mousedown),global.addEventListener("mouseup",_classPrivateFieldGet(this,_eventHandlers).global.mouseup),global.addEventListener("mousemove",_classPrivateFieldGet(this,_eventHandlers).global.mousemove)),_classPrivateFieldGet(this,_options).swipeable&&(_classPrivateFieldGet(this,_options).swipeTarget.addEventListener("touchstart",_classPrivateFieldGet(this,_eventHandlers).container.touchstart),_classPrivateFieldGet(this,_options).swipeTarget.addEventListener("touchend",_classPrivateFieldGet(this,_eventHandlers).container.touchend),_classPrivateFieldGet(this,_options).parentElement.addEventListener("touchmove",_classPrivateFieldGet(this,_eventHandlers).global.touchmove)),_classPrivateFieldGet(this,_options).keys&&(global.addEventListener("keydown",_classPrivateFieldGet(this,_eventHandlers).global.keydown),global.addEventListener("keyup",_classPrivateFieldGet(this,_eventHandlers).global.keyup)),_classPrivateFieldGet(this,_options).prev&&(_classPrivateFieldGet(this,_options).prev.addEventListener("mousedown",_classPrivateFieldGet(this,_eventHandlers).prev.mousedown),_classPrivateFieldGet(this,_options).prev.addEventListener("mouseup",_classPrivateFieldGet(this,_eventHandlers).prev.mouseup),_classPrivateFieldGet(this,_options).prev.addEventListener("touchstart",_classPrivateFieldGet(this,_eventHandlers).prev.touchstart)),_classPrivateFieldGet(this,_options).next&&(_classPrivateFieldGet(this,_options).next.addEventListener("mousedown",_classPrivateFieldGet(this,_eventHandlers).next.mousedown),_classPrivateFieldGet(this,_options).next.addEventListener("mouseup",_classPrivateFieldGet(this,_eventHandlers).next.mouseup),_classPrivateFieldGet(this,_options).next.addEventListener("touchstart",_classPrivateFieldGet(this,_eventHandlers).next.touchstart))}}]),i}(),_default=Events;exports.default=_default;
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRocmVlc2l4dHkvZXZlbnRzLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiRXZlbnRzIiwidGhyZWVzaXh0eSIsIm9wdGlvbnMiLCJfdGhpcyIsInRoaXMiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY2xhc3NQcml2YXRlRmllbGRJbml0U3BlYyIsIl9kcmFnT3JpZ2luIiwid3JpdGFibGUiLCJ2YWx1ZSIsIl9vcHRpb25zIiwiX2V2ZW50SGFuZGxlcnMiLCJfY2xhc3NQcml2YXRlRmllbGRTZXQiLCJjb250YWluZXIiLCJtb3VzZWRvd24iLCJlIiwiYnV0dG9uIiwicGFnZVgiLCJ0b3VjaHN0YXJ0IiwidG91Y2hlcyIsImNsaWVudFgiLCJ0b3VjaGVuZCIsInByZXYiLCJwcmV2ZW50RGVmYXVsdCIsInBsYXkiLCJtb3VzZXVwIiwic3RvcCIsIm5leHQiLCJnbG9iYWwiLCJtb3VzZW1vdmUiLCJfY2xhc3NQcml2YXRlRmllbGRHZXQiLCJNYXRoIiwiYWJzIiwiZHJhZ1RvbGVyYW5jZSIsInRvdWNobW92ZSIsImxlbmd0aCIsInN0b3BQcm9wYWdhdGlvbiIsInN3aXBlVG9sZXJhbmNlIiwia2V5ZG93biIsImluY2x1ZGVzIiwia2V5Q29kZSIsImtleXVwIiwic3dpcGVUYXJnZXQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicGFyZW50RWxlbWVudCIsImRyYWdnYWJsZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJzd2lwZWFibGUiLCJrZXlzIiwiX2luaXRFdmVudHMiXSwibWFwcGluZ3MiOiIyRkFBQSxJQUFBQSxPQUFBQyx1QkFBQUMsUUFBQSxVLDg0Q0FFTUMsTyxXQU1KLFNBQUFBLEVBQVlDLEVBQVlDLEdBQVMsSUFBQUMsRUFBQUMsS0FBQUMsZ0JBQUFELEtBQUFKLEdBQUFNLDJCQUFBRixLQUFBRyxZQUFBLENBQUFDLFVBQUEsRUFBQUMsTUFMbkIsT0FLbUJILDJCQUFBRixLQUFBTSxTQUFBLENBQUFG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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5jbGFzcyBFdmVudHMge1xuICAjZHJhZ09yaWdpbiA9IG51bGw7XG4gICNvcHRpb25zID0gbnVsbDtcblxuICAjZXZlbnRIYW5kbGVycyA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IodGhyZWVzaXh0eSwgb3B0aW9ucykge1xuICAgIHRoaXMuI29wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgdGhpcy4jZXZlbnRIYW5kbGVycyA9IHtcbiAgICAgIGNvbnRhaW5lcjoge1xuICAgICAgICBtb3VzZWRvd246IChlKSA9PiB7XG4gICAgICAgICAgaWYgKGUuYnV0dG9uICE9PSAwKSByZXR1cm47XG4gICAgICAgICAgdGhpcy4jZHJhZ09yaWdpbiA9IGUucGFnZVg7XG4gICAgICAgIH0sXG4gICAgICAgIHRvdWNoc3RhcnQ6IChlKSA9PiB0aGlzLiNkcmFnT3JpZ2luID0gZS50b3VjaGVzWzBdLmNsaWVudFgsXG4gICAgICAgIHRvdWNoZW5kOiAoKSA9PiB0aGlzLiNkcmFnT3JpZ2luID0gbnVsbCxcbiAgICAgIH0sXG4gICAgICBwcmV2OiB7XG4gICAgICAgIG1vdXNlZG93bjogKGUpID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhyZWVzaXh0eS5wbGF5KHRydWUpO1xuICAgICAgICB9LFxuICAgICAgICBtb3VzZXVwOiAoZSkgPT4ge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aHJlZXNpeHR5LnN0b3AoKTtcbiAgICAgICAgfSxcbiAgICAgICAgdG91Y2hzdGFydDogKGUpID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhyZWVzaXh0eS5wcmV2KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBuZXh0OiB7XG4gICAgICAgIG1vdXNlZG93bjogKGUpID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhyZWVzaXh0eS5wbGF5KCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1vdXNldXA6IChlKSA9PiB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHRocmVlc2l4dHkuc3RvcCgpO1xuICAgICAgICB9LFxuICAgICAgICB0b3VjaHN0YXJ0OiAoZSkgPT4ge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aHJlZXNpeHR5Lm5leHQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGdsb2JhbDoge1xuICAgICAgICBtb3VzZXVwOiAoKSA9PiB0aGlzLiNkcmFnT3JpZ2luID0gbnVsbCxcbiAgICAgICAgbW91c2Vtb3ZlOiAoZSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLiNkcmFnT3JpZ2luICYmIE1hdGguYWJzKHRoaXMuI2RyYWdPcmlnaW4gLSBlLnBhZ2VYKSA+IHRoaXMuI29wdGlvbnMuZHJhZ1RvbGVyYW5jZSkge1xuICAgICAgICAgICAgdGhyZWVzaXh0eS5zdG9wKCk7XG4gICAgICAgICAgICB0aGlzLiNkcmFnT3JpZ2luID4gZS5wYWdlWCA/IHRocmVlc2l4dHkucHJldigpIDogdGhyZWVzaXh0eS5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLiNkcmFnT3JpZ2luID0gZS5wYWdlWDtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHRvdWNobW92ZTogKGUpID0+IHtcbiAgICAgICAgICBpZiAoZS50b3VjaGVzLmxlbmd0aCA9PT0gMikgcmV0dXJuO1xuICAgICAgICAgIGlmIChlLnRvdWNoZXMubGVuZ3RoID09PSAxKSBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIGlmICh0aGlzLiNkcmFnT3JpZ2luICYmIE1hdGguYWJzKHRoaXMuI2RyYWdPcmlnaW4gLSBlLnRvdWNoZXNbMF0uY2xpZW50WCkgPiB0aGlzLiNvcHRpb25zLnN3aXBlVG9sZXJhbmNlKSB7XG4gICAgICAgICAgICB0aHJlZXNpeHR5LnN0b3AoKTtcbiAgICAgICAgICAgIHRoaXMuI2RyYWdPcmlnaW4gPiBlLnRvdWNoZXNbMF0uY2xpZW50WCA/IHRocmVlc2l4dHkucHJldigpIDogdGhyZWVzaXh0eS5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLiNkcmFnT3JpZ2luID0gZS50b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBrZXlkb3duOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChbMzcsIDM5XS5pbmNsdWRlcyhlLmtleUNvZGUpKSB7XG4gICAgICAgICAgICB0aHJlZXNpeHR5LnBsYXkoMzcgPT09IGUua2V5Q29kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBrZXl1cDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoWzM3LCAzOV0uaW5jbHVkZXMoZS5rZXlDb2RlKSkge1xuICAgICAgICAgICAgdGhyZWVzaXh0eS5zdG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX2luaXRFdmVudHMoKTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy4jb3B0aW9ucy5zd2lwZVRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLiNldmVudEhhbmRsZXJzLmNvbnRhaW5lci5tb3VzZWRvd24pO1xuICAgIHRoaXMuI29wdGlvbnMuc3dpcGVUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuI2V2ZW50SGFuZGxlcnMuY29udGFpbmVyLnRvdWNoc3RhcnQpO1xuICAgIHRoaXMuI29wdGlvbnMuc3dpcGVUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLiNldmVudEhhbmRsZXJzLmNvbnRhaW5lci50b3VjaGVuZCk7XG5cbiAgICBnbG9iYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuI2V2ZW50SGFuZGxlcnMuZ2xvYmFsLm1vdXNldXApO1xuICAgIGdsb2JhbC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLiNldmVudEhhbmRsZXJzLmdsb2JhbC5tb3VzZW1vdmUpO1xuICAgIHRoaXMuI29wdGlvbnMucGFyZW50RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLiNldmVudEhhbmRsZXJzLmdsb2JhbC50b3VjaG1vdmUpO1xuICAgIGdsb2JhbC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy4jZXZlbnRIYW5kbGVycy5nbG9iYWwua2V5ZG93bik7XG4gICAgZ2xvYmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy4jZXZlbnRIYW5kbGVycy5nbG9iYWwua2V5dXApO1xuXG4gICAgaWYgKHRoaXMuI29wdGlvbnMucHJldikge1xuICAgICAgdGhpcy4jb3B0aW9ucy5wcmV2LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuI2V2ZW50SGFuZGxlcnMucHJldi5tb3VzZWRvd24pO1xuICAgICAgdGhpcy4jb3B0aW9ucy5wcmV2LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLiNldmVudEhhbmRsZXJzLnByZXYubW91c2V1cCk7XG4gICAgICB0aGlzLiNvcHRpb25zLnByZXYucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuI2V2ZW50SGFuZGxlcnMucHJldi50b3VjaHN0YXJ0KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy4jb3B0aW9ucy5uZXh0KSB7XG4gICAgICB0aGlzLiNvcHRpb25zLm5leHQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy4jZXZlbnRIYW5kbGVycy5uZXh0Lm1vdXNlZG93bik7XG4gICAgICB0aGlzLiNvcHRpb25zLm5leHQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuI2V2ZW50SGFuZGxlcnMubmV4dC5tb3VzZXVwKTtcbiAgICAgIHRoaXMuI29wdGlvbnMubmV4dC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy4jZXZlbnRIYW5kbGVycy5uZXh0LnRvdWNoc3RhcnQpO1xuICAgIH1cbiAgfVxuXG4gIF9pbml0RXZlbnRzKCkge1xuICAgIGlmICh0aGlzLiNvcHRpb25zLmRyYWdnYWJsZSkge1xuICAgICAgdGhpcy4jb3B0aW9ucy5zd2lwZVRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLiNldmVudEhhbmRsZXJzLmNvbnRhaW5lci5tb3VzZWRvd24pO1xuICAgICAgZ2xvYmFsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLiNldmVudEhhbmRsZXJzLmdsb2JhbC5tb3VzZXVwKTtcbiAgICAgIGdsb2JhbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLiNldmVudEhhbmRsZXJzLmdsb2JhbC5tb3VzZW1vdmUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLiNvcHRpb25zLnN3aXBlYWJsZSkge1xuICAgICAgdGhpcy4jb3B0aW9ucy5zd2lwZVRhcmdldC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy4jZXZlbnRIYW5kbGVycy5jb250YWluZXIudG91Y2hzdGFydCk7XG4gICAgICB0aGlzLiNvcHRpb25zLnN3aXBlVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy4jZXZlbnRIYW5kbGVycy5jb250YWluZXIudG91Y2hlbmQpO1xuICAgICAgdGhpcy4jb3B0aW9ucy5wYXJlbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMuI2V2ZW50SGFuZGxlcnMuZ2xvYmFsLnRvdWNobW92ZSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuI29wdGlvbnMua2V5cykge1xuICAgICAgZ2xvYmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLiNldmVudEhhbmRsZXJzLmdsb2JhbC5rZXlkb3duKTtcbiAgICAgIGdsb2JhbC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuI2V2ZW50SGFuZGxlcnMuZ2xvYmFsLmtleXVwKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy4jb3B0aW9ucy5wcmV2KSB7XG4gICAgICB0aGlzLiNvcHRpb25zLnByZXYuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy4jZXZlbnRIYW5kbGVycy5wcmV2Lm1vdXNlZG93bik7XG4gICAgICB0aGlzLiNvcHRpb25zLnByZXYuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuI2V2ZW50SGFuZGxlcnMucHJldi5tb3VzZXVwKTtcbiAgICAgIHRoaXMuI29wdGlvbnMucHJldi5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy4jZXZlbnRIYW5kbGVycy5wcmV2LnRvdWNoc3RhcnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLiNvcHRpb25zLm5leHQpIHtcbiAgICAgIHRoaXMuI29wdGlvbnMubmV4dC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLiNldmVudEhhbmRsZXJzLm5leHQubW91c2Vkb3duKTtcbiAgICAgIHRoaXMuI29wdGlvbnMubmV4dC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy4jZXZlbnRIYW5kbGVycy5uZXh0Lm1vdXNldXApO1xuICAgICAgdGhpcy4jb3B0aW9ucy5uZXh0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLiNldmVudEhhbmRsZXJzLm5leHQudG91Y2hzdGFydCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50cztcbiJdfQ==
|
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireDefault(require("react")),_events2=_interopRequireDefault(require("./events"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}function _createClass(e,t,i){return t&&_defineProperties(e.prototype,t),i&&_defineProperties(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e}function _classPrivateFieldInitSpec(e,t,i){_checkPrivateRedeclaration(e,t),t.set(e,i)}function _checkPrivateRedeclaration(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function _classPrivateFieldGet(e,t){return _classApplyDescriptorGet(e,_classExtractFieldDescriptor(e,t,"get"))}function _classApplyDescriptorGet(e,t){return t.get?t.get.call(e):t.value}function _classPrivateFieldSet(e,t,i){return _classApplyDescriptorSet(e,_classExtractFieldDescriptor(e,t,"set"),i),i}function _classExtractFieldDescriptor(e,t,i){if(t.has(e))return t.get(e);throw new TypeError("attempted to "+i+" private field on non-instance")}function _classApplyDescriptorSet(e,t,i){if(t.set)t.set.call(e,i);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=i}}var _options=new WeakMap,_index=new WeakMap,_loopTimeoutId=new WeakMap,_looping=new WeakMap,_events=new WeakMap,_sprite=new WeakMap,ThreeSixty=function(){function i(e,t){_classCallCheck(this,i),_classPrivateFieldInitSpec(this,_options,{writable:!0,value:null}),_classPrivateFieldInitSpec(this,_index,{writable:!0,value:0}),_classPrivateFieldInitSpec(this,_loopTimeoutId,{writable:!0,value:null}),_classPrivateFieldInitSpec(this,_looping,{writable:!0,value:!1}),_classPrivateFieldInitSpec(this,_events,{writable:!0,value:null}),_classPrivateFieldInitSpec(this,_sprite,{writable:!0,value:!1}),this.container=e,_classPrivateFieldSet(this,_options,Object.assign({width:300,height:300,aspectRatio:0,count:0,perRow:0,speed:100,dragTolerance:10,swipeTolerance:10,draggable:!0,swipeable:!0,keys:!0,inverted:!1},t)),_classPrivateFieldGet(this,_options).swipeTarget=_classPrivateFieldGet(this,_options).swipeTarget||this.container,_classPrivateFieldSet(this,_sprite,!Array.isArray(_classPrivateFieldGet(this,_options).image)),this.sprite||(_classPrivateFieldGet(this,_options).count=_classPrivateFieldGet(this,_options).image.length),Object.freeze(_classPrivateFieldGet(this,_options)),_classPrivateFieldSet(this,_events,new _events2.default(this,_classPrivateFieldGet(this,_options))),this._windowResizeListener=this._windowResizeListener.bind(this),this._initContainer()}return _createClass(i,[{key:"isResponsive",get:function(){return 0<_classPrivateFieldGet(this,_options).aspectRatio}},{key:"containerWidth",get:function(){return this.isResponsive?this.container.clientWidth:_classPrivateFieldGet(this,_options).width}},{key:"containerHeight",get:function(){return this.isResponsive?this.container.clientWidth*_classPrivateFieldGet(this,_options).aspectRatio:_classPrivateFieldGet(this,_options).height}},{key:"index",get:function(){return _classPrivateFieldGet(this,_index)}},{key:"looping",get:function(){return _classPrivateFieldGet(this,_looping)}},{key:"sprite",get:function(){return _classPrivateFieldGet(this,_sprite)}},{key:"next",value:function(){this.goto(_classPrivateFieldGet(this,_options).inverted?_classPrivateFieldGet(this,_index)-1:_classPrivateFieldGet(this,_index)+1)}},{key:"prev",value:function(){this.goto(_classPrivateFieldGet(this,_options).inverted?_classPrivateFieldGet(this,_index)+1:_classPrivateFieldGet(this,_index)-1)}},{key:"goto",value:function(e){_classPrivateFieldSet(this,_index,(_classPrivateFieldGet(this,_options).count+e)%_classPrivateFieldGet(this,_options).count),this._update()}},{key:"play",value:function(e){this.looping||(this._loop(e),_classPrivateFieldSet(this,_looping,!0))}},{key:"stop",value:function(){this.looping&&(global.clearTimeout(_classPrivateFieldGet(this,_loopTimeoutId)),_classPrivateFieldSet(this,_looping,!1))}},{key:"toggle",value:function(e){this.looping?this.stop():this.play(e)}},{key:"destroy",value:function(){this.stop(),_classPrivateFieldGet(this,_events).destroy(),this.container.style.width="",this.container.style.height="",this.container.style.backgroundImage="",this.container.style.backgroundPositionX="",this.container.style.backgroundPositionY="",this.container.style.backgroundSize="",this.isResponsive&&window.removeEventListener("resize",this._windowResizeListener)}},{key:"_loop",value:function(e){var t=this;e?this.prev():this.next(),_classPrivateFieldSet(this,_loopTimeoutId,global.setTimeout(function(){t._loop(e)},_classPrivateFieldGet(this,_options).speed))}},{key:"_update",value:function(){this.sprite?(this.container.style.backgroundPositionX=-(_classPrivateFieldGet(this,_index)%_classPrivateFieldGet(this,_options).perRow)*this.containerWidth+"px",this.container.style.backgroundPositionY=-Math.floor(_classPrivateFieldGet(this,_index)/_classPrivateFieldGet(this,_options).perRow)*this.containerHeight+"px"):this.container.style.backgroundImage='url("'.concat(_classPrivateFieldGet(this,_options).image[_classPrivateFieldGet(this,_index)],'")')}},{key:"_windowResizeListener",value:function(){this.container.style.height=this.containerHeight+"px",this._update()}},{key:"_initContainer",value:function(){var e,t;this.isResponsive||(this.container.style.width=this.containerWidth+"px"),this.container.style.height=this.containerHeight+"px",this.sprite&&(this.container.style.backgroundImage='url("'.concat(_classPrivateFieldGet(this,_options).image,'")'),e=_classPrivateFieldGet(this,_options).perRow,t=Math.ceil(_classPrivateFieldGet(this,_options).count/_classPrivateFieldGet(this,_options).perRow),this.container.style.backgroundSize=100*e+"% "+100*t+"%"),this.isResponsive&&window.addEventListener("resize",this._windowResizeListener),this._update()}}]),i}(),_default=ThreeSixty;exports.default=_default;
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRocmVlc2l4dHkvaW5kZXguanMiXSwibmFtZXMiOlsiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZXZlbnRzMiIsIlRocmVlU2l4dHkiLCJjb250YWluZXIiLCJvcHRpb25zIiwiX2NsYXNzQ2FsbENoZWNrIiwidGhpcyIsIl9jbGFzc1ByaXZhdGVGaWVsZEluaXRTcGVjIiwiX29wdGlvbnMiLCJ3cml0YWJsZSIsInZhbHVlIiwiX2luZGV4IiwiX2xvb3BUaW1lb3V0SWQiLCJfbG9vcGluZyIsIl9ldmVudHMiLCJfc3ByaXRlIiwiX2NsYXNzUHJpdmF0ZUZpZWxkU2V0IiwiT2JqZWN0IiwiYXNzaWduIiwid2lkdGgiLCJoZWlnaHQiLCJhc3BlY3RSYXRpbyIsImNvdW50IiwicGVyUm93Iiwic3BlZWQiLCJkcmFnVG9sZXJhbmNlIiwic3dpcGVUb2xlcmFuY2UiLCJkcmFnZ2FibGUiLCJzd2lwZWFibGUiLCJrZXlzIiwiaW52ZXJ0ZWQiLCJfY2xhc3NQcml2YXRlRmllbGRHZXQiLCJzd2lwZVRhcmdldCIsIkFycmF5IiwiaXNBcnJheSIsImltYWdlIiwic3ByaXRlIiwibGVuZ3RoIiwiZnJlZXplIiwiRXZlbnRzIiwiX3dpbmRvd1Jlc2l6ZUxpc3RlbmVyIiwiYmluZCIsImlzUmVzcG9uc2l2ZSIsImNsaWVudFdpZHRoIiwiZ290byIsImluZGV4IiwicmV2ZXJzZWQiLCJsb29waW5nIiwiZ2xvYmFsIiwiY2xlYXJUaW1lb3V0Iiwic3RvcCIsInBsYXkiLCJkZXN0cm95Iiwic3R5bGUiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kUG9zaXRpb25YIiwiYmFja2dyb3VuZFBvc2l0aW9uWSIsImJhY2tncm91bmRTaXplIiwid2luZG93IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIl90aGlzIiwicHJldiIsIm5leHQiLCJzZXRUaW1lb3V0IiwiX2xvb3AiLCJjb250YWluZXJXaWR0aCIsIk1hdGgiLCJmbG9vciIsImNvbnRhaW5lckhlaWdodCIsImNvbmNhdCIsIl91cGRhdGUiLCJyb3dzIiwiY2VpbCIsImNvbHMiLCJhZGRFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiMkZBQUEsSUFBQUEsT0FBQUMsdUJBQUFDLFFBQUEsVUFFQUMsU0FBQUYsdUJBQUFDLFFBQUEsYSxzOENBRU1FLFcsV0FVSixTQUFBQSxFQUFZQyxFQUFXQyxHQUFTQyxnQkFBQUMsS0FBQUosR0FBQUssMkJBQUFELEtBQUFFLFNBQUEsQ0FBQUMsVUFBQSxFQUFBQyxNQVRyQixPQVNxQkgsMkJBQUFELEtBQUFLLE9BQUEsQ0FBQUYsVUFBQSxFQUFBQyxNQVJ2QixJQVF1QkgsMkJBQUFELEtBQUFNLGVBQUEsQ0FBQUgsVUFBQSxFQUFBQyxNQU5mLE9BTWVILDJCQUFBRCxLQUFBTyxTQUFBLENBQUFKLFVBQUEsRUFBQUMsT0FabEMsSUFZa0NILDJCQUFBRCxLQUFBUSxRQUFBLENBQUFMLFVBQUEsRUFBQUMsTUFIdEIsT0FHc0JILDJCQUFBRCxLQUFBUyxRQUFBLENBQUFOLFVBQUEsRUFBQUMsT0FGdEIsSUFHUkosS0FBS0gsVUFBWUEsRUFFakJhLHNCQUFBVixLQUFBRSxTQUFnQlMsT0FBT0MsT0FBTyxDQUM1QkMsTUFBTyxJQUNQQyxPQUFRLElBQ1JDLFlBQWEsRUFDYkMsTUFBTyxFQUNQQyxPQUFRLEVBQ1JDLE1BQU8sSUFDUEMsY0FBZSxHQUNmQyxlQUFnQixHQUNoQkMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLE1BQU0sRUFDTkMsVUFBVSxHQUNUMUIsSUFFSDJCLHNCQUFBekIsS0FBQUUsVUFBY3dCLFlBQWNELHNCQUFBekIsS0FBQUUsVUFBY3dCLGFBQWUxQixLQUFLSCxVQUU5RGEsc0JBQUFWLEtBQUFTLFNBQWdCa0IsTUFBTUMsUUFBUUgsc0JBQUF6QixLQUFBRSxVQUFjMkIsUUFDdkM3QixLQUFLOEIsU0FDUkwsc0JBQUF6QixLQUFBRSxVQUFjYyxNQUFRUyxzQkFBQXpCLEtBQUFFLFVBQWMyQixNQUFNRSxRQUc1Q3BCLE9BQU9xQixPQUFQ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QUssU0FzRVQsUSxtQ0FJSixXQUNFTCxLQUFLSCxVQXZFUGtELE1BQUFqQyxPQUFPZCxLQUFBOEQsZ0JBQUEsS0F3RUw5RCxLQXZFQWdFLFksNEJBMEVGLFdBTUUsSUF0RUtBLEVBQ05DLEVBZ0VNakUsS0F4RVBvQyxlQUNFcEMsS0FBS3NDLFVBQUtTLE1BQUFsQyxNQUFBYixLQUFBMkQsZUFBY25DLE1BMEV4QnhCLEtBQUtILFVBQVVrRCxNQUFNakMsT0FBU2QsS0FBSzhELGdCQUFrQixLQUVqRDlELEtBekVOOEIsU0FDRTlCLEtBQUFILFVBQUFrRCxNQUFBQyxnQkFBQSxRQUFBZSxPQUFldEMsc0JBQUF6QixLQUFBRSxVQUFBMkIsTUFBZixNQUVLbUMsRUFBTHZDLHNCQUFBekIsS0FBQUUsVUFBQWUsT0FDRGdELEVBQUFMLEtBQUFNLEtBQUF6QyxzQkFBQXpCLEtBQUFFLFVBQUFjLE1BQUFTLHNCQUFBekIsS0FBQUUsVUFBQWUsUUEwRUdqQixLQUFLSCxVQUFVa0QsTUFBTUksZUFBeUIsSUFBUGdCLEVBQWMsS0FBZSxJQUFQRixFQUFjLEtBdkU3RWpFLEtBQUlvQyxjQTJFRmdCLE9BMUVBZ0IsaUJBQUEsU0FBQXBFLEtBQUFrQyx1QkE2RUZsQyxLQTFFQWdFLGMsY0E4RVdwRSIsImZpbGUiOiJ0aHJlZXNpeHR5L2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IEV2ZW50cyBmcm9tICcuL2V2ZW50cyc7XG5cbmNsYXNzIFRocmVlU2l4dHkge1xuICAjb3B0aW9ucyA9IG51bGw7XG4gICNpbmRleCA9IDA7XG5cbiAgI2xvb3BUaW1lb3V0SWQgPSBudWxsO1xuICAjbG9vcGluZyA9IGZhbHNlO1xuXG4gICNldmVudHMgPSBudWxsO1xuICAjc3ByaXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoY29udGFpbmVyLCBvcHRpb25zKSB7XG4gICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG5cbiAgICB0aGlzLiNvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICB3aWR0aDogMzAwLFxuICAgICAgaGVpZ2h0OiAzMDAsXG4gICAgICBhc3BlY3RSYXRpbzogMCxcbiAgICAgIGNvdW50OiAwLFxuICAgICAgcGVyUm93OiAwLFxuICAgICAgc3BlZWQ6IDEwMCxcbiAgICAgIGRyYWdUb2xlcmFuY2U6IDEwLFxuICAgICAgc3dpcGVUb2xlcmFuY2U6IDEwLFxuICAgICAgZHJhZ2dhYmxlOiB0cnVlLFxuICAgICAgc3dpcGVhYmxlOiB0cnVlLFxuICAgICAga2V5czogdHJ1ZSxcbiAgICAgIGludmVydGVkOiBmYWxzZVxuICAgIH0sIG9wdGlvbnMpO1xuXG4gICAgdGhpcy4jb3B0aW9ucy5zd2lwZVRhcmdldCA9IHRoaXMuI29wdGlvbnMuc3dpcGVUYXJnZXQgfHwgdGhpcy5jb250YWluZXI7XG5cbiAgICB0aGlzLiNzcHJpdGUgPSAhQXJyYXkuaXNBcnJheSh0aGlzLiNvcHRpb25zLmltYWdlKTtcbiAgICBpZiAoIXRoaXMuc3ByaXRlKSB7XG4gICAgICB0aGlzLiNvcHRpb25zLmNvdW50ID0gdGhpcy4jb3B0aW9ucy5pbWFnZS5sZW5ndGg7XG4gICAgfVxuXG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzLiNvcHRpb25zKTtcblxuICAgIHRoaXMuI2V2ZW50cyA9IG5ldyBFdmVudHModGhpcywgdGhpcy4jb3B0aW9ucyk7XG5cbiAgICB0aGlzLl93aW5kb3dSZXNpemVMaXN0ZW5lciA9IHRoaXMuX3dpbmRvd1Jlc2l6ZUxpc3RlbmVyLmJpbmQodGhpcyk7XG5cbiAgICB0aGlzLl9pbml0Q29udGFpbmVyKCk7XG4gIH1cblxuICBnZXQgaXNSZXNwb25zaXZlKCkge1xuICAgIHJldHVybiB0aGlzLiNvcHRpb25zLmFzcGVjdFJhdGlvID4gMDtcbiAgfVxuXG4gIGdldCBjb250YWluZXJXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1Jlc3BvbnNpdmUgPyB0aGlzLmNvbnRhaW5lci5jbGllbnRXaWR0aCA6IHRoaXMuI29wdGlvbnMud2lkdGg7XG4gIH1cblxuICBnZXQgY29udGFpbmVySGVpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLmlzUmVzcG9uc2l2ZVxuICAgICAgPyB0aGlzLmNvbnRhaW5lci5jbGllbnRXaWR0aCAqIHRoaXMuI29wdGlvbnMuYXNwZWN0UmF0aW9cbiAgICAgIDogdGhpcy4jb3B0aW9ucy5oZWlnaHQ7XG4gIH1cblxuICBnZXQgaW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2luZGV4O1xuICB9XG5cbiAgZ2V0IGxvb3BpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2xvb3Bpbmc7XG4gIH1cblxuICBnZXQgc3ByaXRlKCkge1xuICAgIHJldHVybiB0aGlzLiNzcHJpdGU7XG4gIH1cblxuICBuZXh0KCkge1xuICAgIHRoaXMuZ290byh0aGlzLiNvcHRpb25zLmludmVydGVkID8gdGhpcy4jaW5kZXggLSAxIDogdGhpcy4jaW5kZXggKyAxKTtcbiAgfVxuXG4gIHByZXYoKSB7XG4gICAgdGhpcy5nb3RvKHRoaXMuI29wdGlvbnMuaW52ZXJ0ZWQgPyB0aGlzLiNpbmRleCArIDEgOiB0aGlzLiNpbmRleCAtIDEpO1xuICB9XG5cbiAgZ290byhpbmRleCkge1xuICAgIHRoaXMuI2luZGV4ID0gKHRoaXMuI29wdGlvbnMuY291bnQgKyBpbmRleCkgJSB0aGlzLiNvcHRpb25zLmNvdW50O1xuXG4gICAgdGhpcy5fdXBkYXRlKCk7XG4gIH1cblxuICBwbGF5IChyZXZlcnNlZCkge1xuICAgIGlmICh0aGlzLmxvb3BpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9sb29wKHJldmVyc2VkKTtcbiAgICB0aGlzLiNsb29waW5nID0gdHJ1ZTtcbiAgfVxuXG4gIHN0b3AgKCkge1xuICAgIGlmICghdGhpcy5sb29waW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZ2xvYmFsLmNsZWFyVGltZW91dCh0aGlzLiNsb29wVGltZW91dElkKTtcbiAgICB0aGlzLiNsb29waW5nID0gZmFsc2U7XG4gIH1cblxuICB0b2dnbGUocmV2ZXJzZWQpIHtcbiAgICB0aGlzLmxvb3BpbmcgPyB0aGlzLnN0b3AoKSA6IHRoaXMucGxheShyZXZlcnNlZCk7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuc3RvcCgpO1xuXG4gICAgdGhpcy4jZXZlbnRzLmRlc3Ryb3koKTtcblxuICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLndpZHRoID0gJyc7XG4gICAgdGhpcy5jb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJyc7XG4gICAgdGhpcy5jb250YWluZXIuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gJyc7XG4gICAgdGhpcy5jb250YWluZXIuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWCA9ICcnO1xuICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmJhY2tncm91bmRQb3NpdGlvblkgPSAnJztcbiAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5iYWNrZ3JvdW5kU2l6ZSA9ICcnO1xuXG4gICAgaWYgKHRoaXMuaXNSZXNwb25zaXZlKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5fd2luZG93UmVzaXplTGlzdGVuZXIpO1xuICAgIH1cbiAgfVxuXG4gIF9sb29wKHJldmVyc2VkKSB7XG4gICAgcmV2ZXJzZWQgPyB0aGlzLnByZXYoKSA6IHRoaXMubmV4dCgpO1xuXG4gICAgdGhpcy4jbG9vcFRpbWVvdXRJZCA9IGdsb2JhbC5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2xvb3AocmV2ZXJzZWQpO1xuICAgIH0sIHRoaXMuI29wdGlvbnMuc3BlZWQpO1xuICB9XG5cbiAgX3VwZGF0ZSAoKSB7XG4gICAgaWYgKHRoaXMuc3ByaXRlKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb25YID0gLSh0aGlzLiNpbmRleCAlIHRoaXMuI29wdGlvbnMucGVyUm93KSAqIHRoaXMuY29udGFpbmVyV2lkdGggKyAncHgnO1xuICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWSA9IC1NYXRoLmZsb29yKHRoaXMuI2luZGV4IC8gdGhpcy4jb3B0aW9ucy5wZXJSb3cpICogdGhpcy5jb250YWluZXJIZWlnaHQgKyAncHgnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBgdXJsKFwiJHt0aGlzLiNvcHRpb25zLmltYWdlW3RoaXMuI2luZGV4XX1cIilgO1xuICAgIH1cbiAgfVxuXG4gIF93aW5kb3dSZXNpemVMaXN0ZW5lcigpIHtcbiAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSB0aGlzLmNvbnRhaW5lckhlaWdodCArICdweCc7XG4gICAgdGhpcy5fdXBkYXRlKCk7XG4gIH1cblxuICBfaW5pdENvbnRhaW5lcigpIHtcbiAgICBpZiAoIXRoaXMuaXNSZXNwb25zaXZlKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS53aWR0aCA9IHRoaXMuY29udGFpbmVyV2lkdGggKyAncHgnO1xuICAgIH1cbiAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSB0aGlzLmNvbnRhaW5lckhlaWdodCArICdweCc7XG5cbiAgICBpZiAodGhpcy5zcHJpdGUpIHtcbiAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoXCIke3RoaXMuI29wdGlvbnMuaW1hZ2V9XCIpYDtcblxuICAgICAgY29uc3QgY29scyA9IHRoaXMuI29wdGlvbnMucGVyUm93O1xuICAgICAgY29uc3Qgcm93cyA9IE1hdGguY2VpbCh0aGlzLiNvcHRpb25zLmNvdW50IC8gdGhpcy4jb3B0aW9ucy5wZXJSb3cpO1xuICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUuYmFja2dyb3VuZFNpemUgPSAoY29scyAqIDEwMCkgKyAnJSAnICsgKHJvd3MgKiAxMDApICsgJyUnO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzUmVzcG9uc2l2ZSkge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuX3dpbmRvd1Jlc2l6ZUxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICB0aGlzLl91cGRhdGUoKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBUaHJlZVNpeHR5O1xuIl19
|
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Vertex=exports.Vector=exports.Polygon=exports.Plane=exports.CSG=void 0;var _react=_interopRequireDefault(require("react"));function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}var CSG=function(){function n(){_classCallCheck(this,n),this.polygons=[]}return _createClass(n,[{key:"clone",value:function(){var t=new n;return t.polygons=this.polygons.map(function(t){return t.clone()}),t}},{key:"toPolygons",value:function(){return this.polygons}},{key:"union",value:function(t){var e=new Node(this.clone().polygons),t=new Node(t.clone().polygons);return e.clipTo(t),t.clipTo(e),t.invert(),t.clipTo(e),t.invert(),e.build(t.allPolygons()),n.fromPolygons(e.allPolygons())}},{key:"subtract",value:function(t){var e=new Node(this.clone().polygons),t=new Node(t.clone().polygons);return e.invert(),e.clipTo(t),t.clipTo(e),t.invert(),t.clipTo(e),t.invert(),e.build(t.allPolygons()),e.invert(),n.fromPolygons(e.allPolygons())}},{key:"intersect",value:function(t){var e=new Node(this.clone().polygons),t=new Node(t.clone().polygons);return e.invert(),t.clipTo(e),t.invert(),e.clipTo(t),t.clipTo(e),e.build(t.allPolygons()),e.invert(),n.fromPolygons(e.allPolygons())}},{key:"inverse",value:function(){var t=this.clone();return t.polygons.forEach(function(t){return t.flip()}),t}}]),n}(),Vector=((exports.CSG=CSG).fromPolygons=function(t){var e=new CSG;return e.polygons=t,e},function(){function o(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0,e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0;_classCallCheck(this,o),this.x=t,this.y=e,this.z=n}return _createClass(o,[{key:"copy",value:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}},{key:"clone",value:function(){return new o(this.x,this.y,this.z)}},{key:"negate",value:function(){return this.x*=-1,this.y*=-1,this.z*=-1,this}},{key:"add",value:function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}},{key:"sub",value:function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}},{key:"times",value:function(t){return this.x*=t,this.y*=t,this.z*=t,this}},{key:"dividedBy",value:function(t){return this.x/=t,this.y/=t,this.z/=t,this}},{key:"lerp",value:function(t,e){return this.add(tv0.copy(t).sub(this).times(e))}},{key:"unit",value:function(){return this.dividedBy(this.length())}},{key:"length",value:function(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2)+Math.pow(this.z,2))}},{key:"normalize",value:function(){return this.unit()}},{key:"cross",value:function(t){var e=this.x,n=this.y,o=this.z,i=t.x,s=t.y,t=t.z;return this.x=n*t-o*s,this.y=o*i-e*t,this.z=e*s-n*i,this}},{key:"dot",value:function(t){return this.x*t.x+this.y*t.y+this.z*t.z}}]),o}()),tv0=new(exports.Vector=Vector),tv1=new Vector,Vertex=function(){function i(t,e,n,o){_classCallCheck(this,i),this.pos=(new Vector).copy(t),this.normal=(new Vector).copy(e),n&&(this.uv=(new Vector).copy(n))&&(this.uv.z=0),o&&(this.color=(new Vector).copy(o))}return _createClass(i,[{key:"clone",value:function(){return new i(this.pos,this.normal,this.uv,this.color)}},{key:"flip",value:function(){this.normal.negate()}},{key:"interpolate",value:function(t,e){return new i(this.pos.clone().lerp(t.pos,e),this.normal.clone().lerp(t.normal,e),this.uv&&t.uv&&this.uv.clone().lerp(t.uv,e),this.color&&t.color&&this.color.clone().lerp(t.color,e))}}]),i}(),Plane=(exports.Vertex=Vertex,function(){function g(t,e){_classCallCheck(this,g),this.normal=t,this.w=e}return _createClass(g,[{key:"clone",value:function(){return new g(this.normal.clone(),this.w)}},{key:"flip",value:function(){this.normal.negate(),this.w=-this.w}},{key:"splitPolygon",value:function(t,e,n,o,i){for(var s=0,l=[],r=0;r<t.vertices.length;r++){var c=this.normal.dot(t.vertices[r].pos)-this.w,c=c<-g.EPSILON?2:g.EPSILON<c?1:0;s|=c,l.push(c)}switch(s){case 0:(0<this.normal.dot(t.plane.normal)?e:n).push(t);break;case 1:o.push(t);break;case 2:i.push(t);break;case 3:for(var a=[],h=[],u=0;u<t.vertices.length;u++){var p=(u+1)%t.vertices.length,y=l[u],f=l[p],v=t.vertices[u],p=t.vertices[p];2!=y&&a.push(v),1!=y&&h.push(2!=y?v.clone():v),3==(y|f)&&(y=(this.w-this.normal.dot(v.pos))/this.normal.dot(tv0.copy(p.pos).sub(v.pos)),f=v.interpolate(p,y),a.push(f),h.push(f.clone()))}3<=a.length&&o.push(new Polygon(a,t.shared)),3<=h.length&&i.push(new Polygon(h,t.shared))}}}]),g}()),Polygon=((exports.Plane=Plane).EPSILON=1e-5,Plane.fromPoints=function(t,e,n){e=tv0.copy(e).sub(t).cross(tv1.copy(n).sub(t)).normalize();return new Plane(e.clone(),e.dot(t))},function(){function n(t,e){_classCallCheck(this,n),this.vertices=t,this.shared=e,this.plane=Plane.fromPoints(t[0].pos,t[1].pos,t[2].pos)}return _createClass(n,[{key:"clone",value:function(){return new n(this.vertices.map(function(t){return t.clone()}),this.shared)}},{key:"flip",value:function(){this.vertices.reverse().forEach(function(t){return t.flip()}),this.plane.flip()}}]),n}()),Node=(exports.Polygon=Polygon,function(){function i(t){_classCallCheck(this,i),this.plane=null,this.front=null,this.back=null,this.polygons=[],t&&this.build(t)}return _createClass(i,[{key:"clone",value:function(){var t=new i;return t.plane=this.plane&&this.plane.clone(),t.front=this.front&&this.front.clone(),t.back=this.back&&this.back.clone(),t.polygons=this.polygons.map(function(t){return t.clone()}),t}},{key:"invert",value:function(){for(var t=0;t<this.polygons.length;t++)this.polygons[t].flip();this.plane&&this.plane.flip(),this.front&&this.front.invert(),this.back&&this.back.invert();var e=this.front;this.front=this.back,this.back=e}},{key:"clipPolygons",value:function(t){if(!this.plane)return t.slice();for(var e=[],n=[],o=0;o<t.length;o++)this.plane.splitPolygon(t[o],e,n,e,n);return this.front&&(e=this.front.clipPolygons(e)),n=this.back?this.back.clipPolygons(n):[],e.concat(n)}},{key:"clipTo",value:function(t){this.polygons=t.clipPolygons(this.polygons),this.front&&this.front.clipTo(t),this.back&&this.back.clipTo(t)}},{key:"allPolygons",value:function(){var t=this.polygons.slice();return this.front&&(t=t.concat(this.front.allPolygons())),t=this.back?t.concat(this.back.allPolygons()):t}},{key:"build",value:function(t){if(t.length){this.plane||(this.plane=t[0].plane.clone());for(var e=[],n=[],o=0;o<t.length;o++)this.plane.splitPolygon(t[o],this.polygons,this.polygons,e,n);e.length&&(this.front||(this.front=new i),this.front.build(e)),n.length&&(this.back||(this.back=new i),this.back.build(n))}}}]),i}());CSG.fromJSON=function(t){return CSG.fromPolygons(t.polygons.map(function(t){return new Polygon(t.vertices.map(function(t){return new Vertex(t.pos,t.normal,t.uv)}),t.shared)}))};
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzL2NzZy9jc2ctbGliLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiQ1NHIiwiX2NsYXNzQ2FsbENoZWNrIiwidGhpcyIsInBvbHlnb25zIiwiY3NnIiwibWFwIiwicCIsImNsb25lIiwiYSIsIk5vZGUiLCJiIiwiY2xpcFRvIiwiaW52ZXJ0IiwiYnVpbGQiLCJhbGxQb2x5Z29ucyIsImZyb21Qb2x5Z29ucyIsImZvckVhY2giLCJmbGlwIiwiVmVjdG9yIiwieCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInkiLCJ6IiwidiIsInQiLCJhZGQiLCJ0djAiLCJjb3B5Iiwic3ViIiwidGltZXMiLCJkaXZpZGVkQnkiLCJzcXJ0IiwiTWF0aCIsInBvdyIsInVuaXQiLCJheCIsImF5IiwiYXoiLCJieCIsImJ5IiwiYnoiLCJ0djEiLCJWZXJ0ZXgiLCJwb3MiLCJub3JtYWwiLCJ1diIsImNvbG9yIiwibmVnYXRlIiwib3RoZXIiLCJsZXJwIiwiUGxhbmUiLCJ3IiwicG9seWdvbiIsImNvcGxhbmFyRnJvbnQiLCJjb3BsYW5hckJhY2siLCJmcm9udCIsImJhY2siLCJwb2x5Z29uVHlwZSIsInR5cGVzIiwiaSIsInZlcnRpY2VzIiwiZG90IiwidHlwZSIsIkVQU0lMT04iLCJwdXNoIiwicGxhbmUiLCJmIiwiaiIsInRpIiwidGoiLCJ2aSIsInZqIiwiUG9seWdvbiIsInNoYXJlZCIsImZyb21Qb2ludHMiLCJjIiwibiIsImNyb3NzIiwibm9ybWFsaXplIiwibm9kZSIsIkNPUExBTkFSIiwiRlJPTlQiLCJ0ZW1wIiwic2xpY2UiLCJzcGxpdFBvbHlnb24iLCJjbGlwUG9seWdvbnMiLCJTUEFOTklORyIsImNvbmNhdCIsImJzcCIsIkJBQ0siLCJpbnRlcnBvbGF0ZSIsImZyb21KU09OIiwianNvbiJdLCJtYXBwaW5ncyI6Im1KQUFBLElBQUFBLE9BQUFDLHVCQUFBQyxRQUFBLFUscWdC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Yi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmNsYXNzIENTRyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucG9seWdvbnMgPSBbXTtcbiAgICB9XG4gICAgY2xvbmUoKSB7XG4gICAgICAgIGxldCBjc2cgPSBuZXcgQ1NHKCk7XG4gICAgICAgIGNzZy5wb2x5Z29ucyA9IHRoaXMucG9seWdvbnMubWFwKHA9PnAuY2xvbmUoKSk7XG4gICAgICAgIHJldHVybiBjc2c7XG4gICAgfVxuXG4gICAgdG9Qb2x5Z29ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9seWdvbnM7XG4gICAgfVxuXG4gICAgdW5pb24oY3NnKSB7XG4gICAgICAgIGxldCBhID0gbmV3IE5vZGUodGhpcy5jbG9uZSgpLnBvbHlnb25zKTtcbiAgICAgICAgbGV0IGIgPSBuZXcgTm9kZShjc2cuY2xvbmUoKS5wb2x5Z29ucyk7XG4gICAgICAgIGEuY2xpcFRvKGIpO1xuICAgICAgICBiLmNsaXBUbyhhKTtcbiAgICAgICAgYi5pbnZlcnQoKTtcbiAgICAgICAgYi5jbGlwVG8oYSk7XG4gICAgICAgIGIuaW52ZXJ0KCk7XG4gICAgICAgIGEuYnVpbGQoYi5hbGxQb2x5Z29ucygpKTtcbiAgICAgICAgcmV0dXJuIENTRy5mcm9tUG9seWdvbnMoYS5hbGxQb2x5Z29ucygpKTtcbiAgICB9XG5cbiAgICBzdWJ0cmFjdChjc2cpIHtcbiAgICAgICAgbGV0IGEgPSBuZXcgTm9kZSh0aGlzLmNsb25lKCkucG9seWdvbnMpO1xuICAgICAgICBsZXQgYiA9IG5ldyBOb2RlKGNzZy5jbG9uZSgpLnBvbHlnb25zKTtcbiAgICAgICAgYS5pbnZlcnQoKTtcbiAgICAgICAgYS5jbGlwVG8oYik7XG4gICAgICAgIGIuY2xpcFRvKGEpO1xuICAgICAgICBiLmludmVydCgpO1xuICAgICAgICBiLmNsaXBUbyhhKTtcbiAgICAgICAgYi5pbnZlcnQoKTtcbiAgICAgICAgYS5idWlsZChiLmFsbFBvbHlnb25zKCkpO1xuICAgICAgICBhLmludmVydCgpO1xuICAgICAgICByZXR1cm4gQ1NHLmZyb21Qb2x5Z29ucyhhLmFsbFBvbHlnb25zKCkpO1xuICAgIH1cblxuICAgIGludGVyc2VjdChjc2cpIHtcbiAgICAgICAgbGV0IGEgPSBuZXcgTm9kZSh0aGlzLmNsb25lKCkucG9seWdvbnMpO1xuICAgICAgICBsZXQgYiA9IG5ldyBOb2RlKGNzZy5jbG9uZSgpLnBvbHlnb25zKTtcbiAgICAgICAgYS5pbnZlcnQoKTtcbiAgICAgICAgYi5jbGlwVG8oYSk7XG4gICAgICAgIGIuaW52ZXJ0KCk7XG4gICAgICAgIGEuY2xpcFRvKGIpO1xuICAgICAgICBiLmNsaXBUbyhhKTtcbiAgICAgICAgYS5idWlsZChiLmFsbFBvbHlnb25zKCkpO1xuICAgICAgICBhLmludmVydCgpO1xuICAgICAgICByZXR1cm4gQ1NHLmZyb21Qb2x5Z29ucyhhLmFsbFBvbHlnb25zKCkpO1xuICAgIH1cblxuICAgIC8vIFJldHVybiBhIG5ldyBDU0cgc29saWQgd2l0aCBzb2xpZCBhbmQgZW1wdHkgc3BhY2Ugc3dpdGNoZWQuIFRoaXMgc29saWQgaXNcbiAgICAvLyBub3QgbW9kaWZpZWQuXG4gICAgaW52ZXJzZSgpIHtcbiAgICAgICAgbGV0IGNzZyA9IHRoaXMuY2xvbmUoKTtcbiAgICAgICAgY3NnLnBvbHlnb25zLmZvckVhY2gocD0+cC5mbGlwKCkpO1xuICAgICAgICByZXR1cm4gY3NnO1xuICAgIH1cbn1cblxuQ1NHLmZyb21Qb2x5Z29ucz1mdW5jdGlvbihwb2x5Z29ucykge1xuICAgIGxldCBjc2cgPSBuZXcgQ1NHKCk7XG4gICAgY3NnLnBvbHlnb25zID0gcG9seWdvbnM7XG4gICAgcmV0dXJuIGNzZztcbn07XG5cbmNsYXNzIFZlY3RvciB7XG4gICAgY29uc3RydWN0b3IoeD0wLCB5PTAsIHo9MCkge1xuICAgICAgICB0aGlzLng9eDtcbiAgICAgICAgdGhpcy55PXk7XG4gICAgICAgIHRoaXMuej16O1xuICAgIH1cbiAgICBjb3B5KHYpe1xuICAgICAgICB0aGlzLng9di54O1xuICAgICAgICB0aGlzLnk9di55O1xuICAgICAgICB0aGlzLno9di56O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgY2xvbmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgVmVjdG9yKHRoaXMueCx0aGlzLnksdGhpcy56KTtcbiAgICB9XG4gICAgbmVnYXRlKCkge1xuICAgICAgICB0aGlzLngqPS0xO1xuICAgICAgICB0aGlzLnkqPS0xO1xuICAgICAgICB0aGlzLnoqPS0xO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgYWRkKGEpIHtcbiAgICAgICAgdGhpcy54Kz1hLng7XG4gICAgICAgIHRoaXMueSs9YS55O1xuICAgICAgICB0aGlzLnorPWEuejtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHN1YihhKSB7XG4gICAgICAgIHRoaXMueC09YS54O1xuICAgICAgICB0aGlzLnktPWEueTtcbiAgICAgICAgdGhpcy56LT1hLno7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB0aW1lcyhhKSB7XG4gICAgICAgIHRoaXMueCo9YTtcbiAgICAgICAgdGhpcy55Kj1hO1xuICAgICAgICB0aGlzLnoqPWE7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBkaXZpZGVkQnkoYSkge1xuICAgICAgICB0aGlzLngvPWE7XG4gICAgICAgIHRoaXMueS89YTtcbiAgICAgICAgdGhpcy56Lz1hO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgbGVycChhLCB0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZCh0djAuY29weShhKS5zdWIodGhpcykudGltZXModCkpO1xuICAgIH1cbiAgICB1bml0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXZpZGVkQnkodGhpcy5sZW5ndGgoKSk7XG4gICAgfVxuICAgIGxlbmd0aCgpe1xuICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KCh0aGlzLngqKjIpKyh0aGlzLnkqKjIpKyh0aGlzLnoqKjIpKTtcbiAgICB9XG4gICAgbm9ybWFsaXplKCl7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaXQoKTtcbiAgICB9XG4gICAgY3Jvc3MoYikge1xuICAgICAgICBsZXQgYSA9IHRoaXM7XG5cdFx0Y29uc3QgYXggPSBhLngsIGF5ID0gYS55LCBheiA9IGEuejtcblx0XHRjb25zdCBieCA9IGIueCwgYnkgPSBiLnksIGJ6ID0gYi56O1xuXG5cdFx0dGhpcy54ID0gYXkgKiBieiAtIGF6ICogYnk7XG5cdFx0dGhpcy55ID0gYXogKiBieCAtIGF4ICogYno7XG5cdFx0dGhpcy56ID0gYXggKiBieSAtIGF5ICogYng7XG5cblx0XHRyZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZG90KGIpe1xuICAgICAgICByZXR1cm4gKHRoaXMueCpiLngpKyh0aGlzLnkqYi55KSsodGhpcy56KmIueik7XG4gICAgfVxufVxuXG5sZXQgdHYwPW5ldyBWZWN0b3IoKTtcbmxldCB0djE9bmV3IFZlY3RvcigpO1xuXG5jbGFzcyBWZXJ0ZXgge1xuXG4gICAgY29uc3RydWN0b3IocG9zLCBub3JtYWwsIHV2LCBjb2xvcikge1xuICAgICAgICB0aGlzLnBvcyA9IG5ldyBWZWN0b3IoKS5jb3B5KHBvcyk7XG4gICAgICAgIHRoaXMubm9ybWFsID0gbmV3IFZlY3RvcigpLmNvcHkobm9ybWFsKTtcbiAgICAgICAgdXYgJiYgKHRoaXMudXYgPSBuZXcgVmVjdG9yKCkuY29weSh1dikpICYmICh0aGlzLnV2Lno9MCk7XG4gICAgICAgIGNvbG9yICYmICh0aGlzLmNvbG9yID0gbmV3IFZlY3RvcigpLmNvcHkoY29sb3IpKTtcbiAgICB9XG5cbiAgICBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBWZXJ0ZXgodGhpcy5wb3MsdGhpcy5ub3JtYWwsdGhpcy51dix0aGlzLmNvbG9yKTtcbiAgICB9XG5cbiAgICBmbGlwKCkge1xuICAgICAgICB0aGlzLm5vcm1hbC5uZWdhdGUoKTtcbiAgICB9XG5cbiAgICBpbnRlcnBvbGF0ZShvdGhlciwgdCkge1xuICAgICAgICByZXR1cm4gbmV3IFZlcnRleCh0aGlzLnBvcy5jbG9uZSgpLmxlcnAob3RoZXIucG9zLCB0KSx0aGlzLm5vcm1hbC5jbG9uZSgpLmxlcnAob3RoZXIubm9ybWFsLCB0KSx0aGlzLnV2JiZvdGhlci51diYmdGhpcy51di5jbG9uZSgpLmxlcnAob3RoZXIudXYsIHQpLCB0aGlzLmNvbG9yJiZvdGhlci5jb2xvciYmdGhpcy5jb2xvci5jbG9uZSgpLmxlcnAob3RoZXIuY29sb3IsdCkpO1xuICAgIH1cbn1cblxuY2xhc3MgUGxhbmUge1xuICAgIGNvbnN0cnVjdG9yKG5vcm1hbCwgdykge1xuICAgICAgICB0aGlzLm5vcm1hbCA9IG5vcm1hbDtcbiAgICAgICAgdGhpcy53ID0gdztcbiAgICB9XG5cbiAgICBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQbGFuZSh0aGlzLm5vcm1hbC5jbG9uZSgpLHRoaXMudyk7XG4gICAgfVxuXG4gICAgZmxpcCgpIHtcbiAgICAgICAgdGhpcy5ub3JtYWwubmVnYXRlKCk7XG4gICAgICAgIHRoaXMudyA9IC10aGlzLnc7XG4gICAgfVxuXG4gICAgc3BsaXRQb2x5Z29uKHBvbHlnb24sIGNvcGxhbmFyRnJvbnQsIGNvcGxhbmFyQmFjaywgZnJvbnQsIGJhY2spIHtcbiAgICAgICAgY29uc3QgQ09QTEFOQVIgPSAwO1xuICAgICAgICBjb25zdCBGUk9OVCA9IDE7XG4gICAgICAgIGNvbnN0IEJBQ0sgPSAyO1xuICAgICAgICBjb25zdCBTUEFOTklORyA9IDM7XG5cbiAgICAgICAgbGV0IHBvbHlnb25UeXBlID0gMDtcbiAgICAgICAgbGV0IHR5cGVzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9seWdvbi52ZXJ0aWNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IHQgPSB0aGlzLm5vcm1hbC5kb3QocG9seWdvbi52ZXJ0aWNlc1tpXS5wb3MpIC0gdGhpcy53O1xuICAgICAgICAgICAgbGV0IHR5cGUgPSAodCA8IC1QbGFuZS5FUFNJTE9OKSA/IEJBQ0sgOiAodCA+IFBsYW5lLkVQU0lMT04pID8gRlJPTlQgOiBDT1BMQU5BUjtcbiAgICAgICAgICAgIHBvbHlnb25UeXBlIHw9IHR5cGU7XG4gICAgICAgICAgICB0eXBlcy5wdXNoKHR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChwb2x5Z29uVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBDT1BMQU5BUjpcbiAgICAgICAgICAgICAgICAodGhpcy5ub3JtYWwuZG90KHBvbHlnb24ucGxhbmUubm9ybWFsKSA+IDAgPyBjb3BsYW5hckZyb250IDogY29wbGFuYXJCYWNrKS5wdXNoKHBvbHlnb24pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGUk9OVDpcbiAgICAgICAgICAgICAgICBmcm9udC5wdXNoKHBvbHlnb24pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBCQUNLOlxuICAgICAgICAgICAgICAgIGJhY2sucHVzaChwb2x5Z29uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgU1BBTk5JTkc6XG4gICAgICAgICAgICAgICAgbGV0IGYgPSBbXTtcbiAgICAgICAgICAgICAgICBsZXQgYiA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9seWdvbi52ZXJ0aWNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgaiA9IChpICsgMSkgJSBwb2x5Z29uLnZlcnRpY2VzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRpID0gdHlwZXNbaV1cbiAgICAgICAgICAgICAgICAgICAgLCB0aiA9IHR5cGVzW2pdO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdmkgPSBwb2x5Z29uLnZlcnRpY2VzW2ldXG4gICAgICAgICAgICAgICAgICAgICwgdmogPSBwb2x5Z29uLnZlcnRpY2VzW2pdO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGkgIT0gQkFDSylcbiAgICAgICAgICAgICAgICAgICAgICAgIGYucHVzaCh2aSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aSAhPSBGUk9OVClcbiAgICAgICAgICAgICAgICAgICAgICAgIGIucHVzaCh0aSAhPSBCQUNLID8gdmkuY2xvbmUoKSA6IHZpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCh0aSB8IHRqKSA9PSBTUEFOTklORykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAodGhpcy53IC0gdGhpcy5ub3JtYWwuZG90KHZpLnBvcykpIC8gdGhpcy5ub3JtYWwuZG90KHR2MC5jb3B5KHZqLnBvcykuc3ViKHZpLnBvcykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2aS5pbnRlcnBvbGF0ZSh2aiwgdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmLnB1c2godik7XG4gICAgICAgICAgICAgICAgICAgICAgICBiLnB1c2godi5jbG9uZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZi5sZW5ndGggPj0gMylcbiAgICAgICAgICAgICAgICAgICAgZnJvbnQucHVzaChuZXcgUG9seWdvbihmLHBvbHlnb24uc2hhcmVkKSk7XG4gICAgICAgICAgICAgICAgaWYgKGIubGVuZ3RoID49IDMpXG4gICAgICAgICAgICAgICAgICAgIGJhY2sucHVzaChuZXcgUG9seWdvbihiLHBvbHlnb24uc2hhcmVkKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuUGxhbmUuRVBTSUxPTiA9IDFlLTU7XG5cblBsYW5lLmZyb21Qb2ludHMgPSBmdW5jdGlvbihhLCBiLCBjKSB7XG4gICAgbGV0IG4gPSB0djAuY29weShiKS5zdWIoYSkuY3Jvc3ModHYxLmNvcHkoYykuc3ViKGEpKS5ub3JtYWxpemUoKTtcbiAgICByZXR1cm4gbmV3IFBsYW5lKG4uY2xvbmUoKSxuLmRvdChhKSk7XG59O1xuXG5jbGFzcyBQb2x5Z29uIHtcbiAgICBjb25zdHJ1Y3Rvcih2ZXJ0aWNlcywgc2hhcmVkKSB7XG4gICAgICAgIHRoaXMudmVydGljZXMgPSB2ZXJ0aWNlcztcbiAgICAgICAgdGhpcy5zaGFyZWQgPSBzaGFyZWQ7XG4gICAgICAgIHRoaXMucGxhbmUgPSBQbGFuZS5mcm9tUG9pbnRzKHZlcnRpY2VzWzBdLnBvcywgdmVydGljZXNbMV0ucG9zLCB2ZXJ0aWNlc1syXS5wb3MpO1xuICAgIH1cbiAgICBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQb2x5Z29uKHRoaXMudmVydGljZXMubWFwKHY9PnYuY2xvbmUoKSksdGhpcy5zaGFyZWQpO1xuICAgIH1cbiAgICBmbGlwKCkge1xuICAgICAgICB0aGlzLnZlcnRpY2VzLnJldmVyc2UoKS5mb3JFYWNoKHY9PnYuZmxpcCgpKTtcbiAgICAgICAgdGhpcy5wbGFuZS5mbGlwKCk7XG4gICAgfVxufVxuXG5jbGFzcyBOb2RlIHtcbiAgICBjb25zdHJ1Y3Rvcihwb2x5Z29ucykge1xuICAgICAgICB0aGlzLnBsYW5lID0gbnVsbDtcbiAgICAgICAgdGhpcy5mcm9udCA9IG51bGw7XG4gICAgICAgIHRoaXMuYmFjayA9IG51bGw7XG4gICAgICAgIHRoaXMucG9seWdvbnMgPSBbXTtcbiAgICAgICAgaWYgKHBvbHlnb25zKVxuICAgICAgICAgICAgdGhpcy5idWlsZChwb2x5Z29ucyk7XG4gICAgfVxuICAgIGNsb25lKCkge1xuICAgICAgICBsZXQgbm9kZSA9IG5ldyBOb2RlKCk7XG4gICAgICAgIG5vZGUucGxhbmUgPSB0aGlzLnBsYW5lICYmIHRoaXMucGxhbmUuY2xvbmUoKTtcbiAgICAgICAgbm9kZS5mcm9udCA9IHRoaXMuZnJvbnQgJiYgdGhpcy5mcm9udC5jbG9uZSgpO1xuICAgICAgICBub2RlLmJhY2sgPSB0aGlzLmJhY2sgJiYgdGhpcy5iYWNrLmNsb25lKCk7XG4gICAgICAgIG5vZGUucG9seWdvbnMgPSB0aGlzLnBvbHlnb25zLm1hcChwPT5wLmNsb25lKCkpO1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG5cbiAgICBpbnZlcnQoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wb2x5Z29ucy5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIHRoaXMucG9seWdvbnNbaV0uZmxpcCgpO1xuICAgICAgICBcbiAgICAgICAgdGhpcy5wbGFuZSAmJiB0aGlzLnBsYW5lLmZsaXAoKTtcbiAgICAgICAgdGhpcy5mcm9udCAmJiB0aGlzLmZyb250LmludmVydCgpO1xuICAgICAgICB0aGlzLmJhY2sgJiYgdGhpcy5iYWNrLmludmVydCgpO1xuICAgICAgICBsZXQgdGVtcCA9IHRoaXMuZnJvbnQ7XG4gICAgICAgIHRoaXMuZnJvbnQgPSB0aGlzLmJhY2s7XG4gICAgICAgIHRoaXMuYmFjayA9IHRlbXA7XG4gICAgfVxuXG4gICAgY2xpcFBvbHlnb25zKHBvbHlnb25zKSB7XG4gICAgICAgIGlmICghdGhpcy5wbGFuZSlcbiAgICAgICAgICAgIHJldHVybiBwb2x5Z29ucy5zbGljZSgpO1xuICAgICAgICBsZXQgZnJvbnQgPSBbXVxuICAgICAgICAgICwgYmFjayA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvbHlnb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnBsYW5lLnNwbGl0UG9seWdvbihwb2x5Z29uc1tpXSwgZnJvbnQsIGJhY2ssIGZyb250LCBiYWNrKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5mcm9udClcbiAgICAgICAgICAgIGZyb250ID0gdGhpcy5mcm9udC5jbGlwUG9seWdvbnMoZnJvbnQpO1xuICAgICAgICBpZiAodGhpcy5iYWNrKVxuICAgICAgICAgICAgYmFjayA9IHRoaXMuYmFjay5jbGlwUG9seWdvbnMoYmFjayk7XG4gICAgICAgIGVsc2UgXG4gICAgICAgICAgICBiYWNrID0gW107XG4gICAgICAgIHJldHVybiBmcm9udC5jb25jYXQoYmFjayk7XG4gICAgfVxuXG4gICAgY2xpcFRvKGJzcCkge1xuICAgICAgICB0aGlzLnBvbHlnb25zID0gYnNwLmNsaXBQb2x5Z29ucyh0aGlzLnBvbHlnb25zKTtcbiAgICAgICAgaWYgKHRoaXMuZnJvbnQpXG4gICAgICAgICAgICB0aGlzLmZyb250LmNsaXBUbyhic3ApO1xuICAgICAgICBpZiAodGhpcy5iYWNrKVxuICAgICAgICAgICAgdGhpcy5iYWNrLmNsaXBUbyhic3ApO1xuICAgIH1cblxuICAgIGFsbFBvbHlnb25zKCkge1xuICAgICAgICBsZXQgcG9seWdvbnMgPSB0aGlzLnBvbHlnb25zLnNsaWNlKCk7XG4gICAgICAgIGlmICh0aGlzLmZyb250KVxuICAgICAgICAgICAgcG9seWdvbnMgPSBwb2x5Z29ucy5jb25jYXQodGhpcy5mcm9udC5hbGxQb2x5Z29ucygpKTtcbiAgICAgICAgaWYgKHRoaXMuYmFjaylcbiAgICAgICAgICAgIHBvbHlnb25zID0gcG9seWdvbnMuY29uY2F0KHRoaXMuYmFjay5hbGxQb2x5Z29ucygpKTtcbiAgICAgICAgcmV0dXJuIHBvbHlnb25zO1xuICAgIH1cblxuICAgIGJ1aWxkKHBvbHlnb25zKSB7XG4gICAgICAgIGlmICghcG9seWdvbnMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoIXRoaXMucGxhbmUpXG4gICAgICAgICAgICB0aGlzLnBsYW5lID0gcG9seWdvbnNbMF0ucGxhbmUuY2xvbmUoKTtcbiAgICAgICAgbGV0IGZyb250ID0gW11cbiAgICAgICAgICAsIGJhY2sgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2x5Z29ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5wbGFuZS5zcGxpdFBvbHlnb24ocG9seWdvbnNbaV0sIHRoaXMucG9seWdvbnMsIHRoaXMucG9seWdvbnMsIGZyb250LCBiYWNrKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZnJvbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZnJvbnQpXG4gICAgICAgICAgICAgICAgdGhpcy5mcm9udCA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICB0aGlzLmZyb250LmJ1aWxkKGZyb250KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYmFjay5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5iYWNrKVxuICAgICAgICAgICAgICAgIHRoaXMuYmFjayA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICB0aGlzLmJhY2suYnVpbGQoYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkNTRy5mcm9tSlNPTj1mdW5jdGlvbihqc29uKXtcbiAgICByZXR1cm4gQ1NHLmZyb21Qb2x5Z29ucyhqc29uLnBvbHlnb25zLm1hcChwPT5uZXcgUG9seWdvbihwLnZlcnRpY2VzLm1hcCh2PT4gbmV3IFZlcnRleCh2LnBvcyx2Lm5vcm1hbCx2LnV2KSkscC5zaGFyZWQpKSk7XG59O1xuXG5leHBvcnQgeyBDU0csIFZlcnRleCwgVmVjdG9yLCBQb2x5Z29uLCBQbGFuZSB9O1xuIl19
|
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";var _react=_interopRequireDefault(require("react")),_csgLib=require("./csg-lib.js");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var gWorker,gWorkerUrl,gWorkersStarted=!1,taskId=0,tasks={},spawnWorker=function(){var e=new Worker(gWorkerUrl);return e.onmessage=function(e){var e=JSON.parse(e.data),r=tasks[e.taskId];delete tasks[e.taskId],r.resolve(_csgLib.CSG.fromJSON(e.result)),gWorker.busy=!1},gWorker={worker:e,busy:!1}},getWorker=function(){return gWorkersStarted?gWorker&&!gWorker.busy?(gWorker.busy=!0,{then:function(e){return e(gWorker)}}):{then:function(){return this}}:(gWorkersStarted=!0,fetch("../csg-lib.js").then(function(e){return e.text().then(function(e){e=e.slice(0,e.lastIndexOf("export"));e=new Blob([e+"\n self.onmessage=(message)=>{\n let task = JSON.parse(message.data)\n //console.log(\"Got task:\"+task.op+' '+task.taskId)\n postMessage(JSON.stringify({\n taskId:task.taskId,\n result : CSG.fromJSON(task.a)[task.op](CSG.fromJSON(task.b))\n }))\n }\n console.log('CSG worker started!')"],{type:"application/javascript"});gWorkerUrl=URL.createObjectURL(e)}).then(function(){return spawnWorker()})}))};_csgLib.CSG.doAsync=function(e,r,n){return getWorker().then(function(t){var s={a:e,op:r,b:n,taskId:taskId};return tasks[taskId]=s,taskId++,s.result=new Promise(function(e,r){s.resolve=e,t.busy=!0,t.worker.postMessage(JSON.stringify(s))}),s.result})};
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzL2NzZy9jc2ctd29ya2VyLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NzZ0xpYiIsImdXb3JrZXIiLCJnV29ya2VyVXJsIiwiZ1dvcmtlcnNTdGFydGVkIiwidGFza0lkIiwiV29ya2VyIiwidGFza3MiLCJvbm1lc3NhZ2UiLCJlIiwicnNsdCIsIkpTT04iLCJwYXJzZSIsImRhdGEiLCJzcGF3bldvcmtlciIsInRhc2siLCJyZXNvbHZlIiwiQ1NHIiwiZnJvbUpTT04iLCJyZXN1bHQiLCJidXN5IiwiZm4iLCJ0aGVuIiwidGhpcyIsInJlc3BvbnNlIiwid29ya2VyIiwidGV4dCIsInNsaWNlIiwibGFzdEluZGV4T2YiLCJibG9iIiwiY29kZSIsIkJsb2IiLCJ0eXBlIiwiY3JlYXRlT2JqZWN0VVJMIiwiZG9Bc3luYyIsImEiLCJvcCIsImIiLCJnZXRXb3JrZXIiLCJQcm9taXNlIiwicmVqZWN0IiwicG9zdE1lc3NhZ2UiLCJzdHJpbmdpZnkiXSwibWFwcGluZ3MiOiJhQUFBLElBQUFBLE9BQUFDLHVCQUFBQyxRQUFBLFVBQ0FDLFFBQUFELFFBQUEsZ0Isd0VBRUEsSUFGQUUsUUFJSUMsV0FGQUMsaUJBQWtCLEVBSWxCQyxPQUFTLEVBSlRELE1BQUFBLEdBQ0FGLFlBQUosV0FDSUMsSUFBQUEsRUFBSixJQUFBRyxPQUFBSCxZQVVPLE9BUEhJLEVBQUtDLFVBQVQsU0FBQUMsR0FLTyxJQUFJQyxFQUFPQyxLQUFLQyxNQUFNSCxFQUFFSSxNQUozQkMsRUFBWVAsTUFBQUcsRUFBWkksZUFDWVAsTUFBT0QsRUFBSkQsUUFNWlUsRUFBS0MsUUFBUUMsUUFBQUEsSUFBSUMsU0FBU1IsRUFBS1MsU0FIL0JqQixRQUFXUyxNQUFLQyxHQUVUTCxRQUFVLENBQUNGLE9BQUFBLEVBQWxCZSxNQUFBLElBR0FsQixVQUFRa0IsV0FOWCxPQUFBaEIsZ0JBdUNJRixVQUFlQSxRQUFma0IsTUFFQWxCLFFBQU9rQixNQUFBLEVBQW9CQyxDQUFBQSxLQUFHbkIsU0FBQUEsR0FBVixPQUFBbUIsRUFBQW5CLFlBQXBCLENBQ0hvQixLQUFBLFdBQUEsT0FBQUMsUUE3QkduQixpQkFBa0IsRUFMZkYsTUFBVSxpQkFBQW9CLEtBQUEsU0FBQUUsR0FBQ0MsT0FBREQsRUFBQUUsT0FBQUosS0FBQSxTQUFBSSxHQUFhQSxFQUFBQSxFQUFBQyxNQUFBLEVBQUFELEVBQUFFLFlBQUEsV0FtQkxDLEVBQVVDLElBQURDLEtBQU8sQ0FuQnpDTCxFQUFBLDZjQW1CeUMsQ0FDbkJNLEtBQUEsMkJBRVY3QixXQUFpQjhCLElBQUFBLGdCQUFqQkosS0FmSlAsS0FBQSxXQURKLE9BQUFSLG9CQWtDUkcsUUFBQUEsSUFBSWlCLFFBSm9CLFNBQU9DLEVBQUFDLEVBQVBDLEdBQWEsT0FBQUMsWUFBQWhCLEtBQUEsU0FBQUcsR0FEakMsSUFBQVYsRUFBQSxDQUFBb0IsRUFBQUEsRUFBQUMsR0FBQUEsRUFBQUMsRUFBQUEsRUFBQWhDLE9BQUFBLFFBT3FCQSxPQXZDekJFLE1BQUFGLFFBQUFVLEVBeUNRVixTQUpSWSxFQUFJaUIsT0FBUSxJQUFBSyxRQUFBLFNBQUdILEVBQU9JLEdBQ1hGLEVBQUFBLFFBQWlCdEIsRUFDWFMsRUFBQUwsTUFBQSxFQUFBSyxFQUFBQSxPQUFBZ0IsWUFBQTlCLEtBQUErQixVQUFBM0IsTUFBUVYsRUFBQUEiLCJmaWxlIjoidXRpbHMvY3NnL2NzZy13b3JrZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ1NHIH0gZnJvbSAnLi9jc2ctbGliLmpzJztcblxubGV0IGdXb3JrZXJzU3RhcnRlZCA9IGZhbHNlO1xubGV0IGdXb3JrZXI7XG5sZXQgZ1dvcmtlclVybDtcblxubGV0IHRhc2tJZCA9IDA7XG5sZXQgdGFza3M9e307XG5sZXQgc3Bhd25Xb3JrZXI9KCk9PntcbiAgICBjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VyKGdXb3JrZXJVcmwpO1xuXG4gICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICBsZXQgcnNsdCA9IEpTT04ucGFyc2UoZS5kYXRhKTtcbiAgICAgICBsZXQgdGFzayA9IHRhc2tzW3JzbHQudGFza0lkXTtcbiAgICAgICBkZWxldGUgdGFza3NbcnNsdC50YXNrSWRdO1xuICAgICAgIHRhc2sucmVzb2x2ZShDU0cuZnJvbUpTT04ocnNsdC5yZXN1bHQpKTtcbiAgICAgICAvL2NvbnNvbGUubG9nKCdNZXNzYWdlIHJlY2VpdmVkIGZyb20gd29ya2VyJyk7XG4gICAgICAgZ1dvcmtlci5idXN5ID0gZmFsc2U7XG4gICAgfTtcbiAgICByZXR1cm4gZ1dvcmtlciA9IHt3b3JrZXIsYnVzeTpmYWxzZX07XG59O1xuXG5sZXQgZ2V0V29ya2VyPSgpPT57XG4gICAgaWYoIWdXb3JrZXJzU3RhcnRlZCl7XG4gICAgICAgIGdXb3JrZXJzU3RhcnRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBmZXRjaCgnLi4vY3NnLWxpYi5qcycpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbih0ZXh0KSB7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRleHQuc2xpY2UoMCwgdGV4dC5sYXN0SW5kZXhPZignZXhwb3J0JykpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvZGUgPSB0ZXh0ICsgYFxuICAgICAgICAgICAgICAgICAgICBzZWxmLm9ubWVzc2FnZT0obWVzc2FnZSk9PntcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRhc2sgPSBKU09OLnBhcnNlKG1lc3NhZ2UuZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkdvdCB0YXNrOlwiK3Rhc2sub3ArJyAnK3Rhc2sudGFza0lkKVxuICAgICAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXNrSWQ6dGFzay50YXNrSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgOiBDU0cuZnJvbUpTT04odGFzay5hKVt0YXNrLm9wXShDU0cuZnJvbUpTT04odGFzay5iKSlcbiAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDU0cgd29ya2VyIHN0YXJ0ZWQhJylgO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbY29kZV0se1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vamF2YXNjcmlwdCdcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBnV29ya2VyVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcblxuXG4gICAgICAgICAgICB9KS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNwYXduV29ya2VyKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGlmKGdXb3JrZXIgJiYgKCFnV29ya2VyLmJ1c3kpKXtcbiAgICAgICAgZ1dvcmtlci5idXN5ID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4ge3RoZW46KGZuKT0+e3JldHVybiBmbihnV29ya2VyKTt9fTtcbiAgICB9XG4gICAgcmV0dXJue1xuICAgICAgICB0aGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM7fVxuICAgIH07XG59O1xuXG5DU0cuZG9Bc3luYz0oYSxvcCxiKT0+e1xuICAgIHJldHVybiBnZXRXb3JrZXIoKS50aGVuKCh3b3JrZXIpPT57XG4gICAgICAgIGxldCB0YXNrPXthLG9wLGIsdGFza0lkfTtcbiAgICAgICAgdGFza3NbdGFza0lkXT10YXNrO1xuICAgICAgICB0YXNrSWQrKztcbiAgICAgICAgdGFzay5yZXN1bHQgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpPT57XG4gICAgICAgICAgICB0YXNrLnJlc29sdmUgPSByZXNvbHZlO1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcInBvc3RpbmcgdG8gd29ya2VyOlwiKVxuICAgICAgICAgICAgd29ya2VyLmJ1c3kgPSB0cnVlO1xuICAgICAgICAgICAgd29ya2VyLndvcmtlci5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeSh0YXNrKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGFzay5yZXN1bHQ7ICAgICAgICBcbiAgICB9KTtcbn07XG4iXX0=
|