@colijnit/configurator 1.0.20 → 1.0.21
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/.idea/Configurator.iml +12 -0
- package/.idea/codeStyles/Project.xml +21 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/misc.xml +9 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/angular.json +193 -0
- package/configurator.iml +11 -0
- package/dist/configurator/index.html +14 -0
- package/dist/configurator/main-es2015.js +3129 -0
- package/dist/configurator/main-es2015.js.map +1 -0
- package/dist/configurator/main-es5.js +5482 -0
- package/dist/configurator/main-es5.js.map +1 -0
- package/dist/configurator/polyfills-es2015.js +4520 -0
- package/dist/configurator/polyfills-es2015.js.map +1 -0
- package/dist/configurator/polyfills-es5.js +18375 -0
- package/dist/configurator/polyfills-es5.js.map +1 -0
- package/dist/configurator/runtime-es2015.js +155 -0
- package/dist/configurator/runtime-es2015.js.map +1 -0
- package/dist/configurator/runtime-es5.js +155 -0
- package/dist/configurator/runtime-es5.js.map +1 -0
- package/dist/configurator/styles-es2015.js +450 -0
- package/dist/configurator/styles-es2015.js.map +1 -0
- package/dist/configurator/styles-es5.js +432 -0
- package/dist/configurator/styles-es5.js.map +1 -0
- package/dist/configurator/vendor-es2015.js +155551 -0
- package/dist/configurator/vendor-es2015.js.map +1 -0
- package/dist/configurator/vendor-es5.js +183588 -0
- package/dist/configurator/vendor-es5.js.map +1 -0
- package/ng-package.json +9 -0
- package/package.json +47 -14
- package/src/app/app.component.ts +222 -0
- package/src/app/app.module.ts +34 -0
- package/src/app/builder.ts +480 -0
- package/src/app/components/answers/answer/answer.component.ts +61 -0
- package/src/app/components/answers/answers.component.ts +41 -0
- package/src/app/components/answers/answers.module.ts +26 -0
- package/src/app/components/selections/selections.component.ts +131 -0
- package/src/app/components/selections/selections.module.ts +20 -0
- package/src/app/components/shared/loader/loader.component.scss +33 -0
- package/src/app/components/shared/loader/loader.component.ts +20 -0
- package/src/app/components/shared/shared.module.ts +16 -0
- package/src/app/directives/visibility-observer-master.directive.ts +71 -0
- package/src/app/directives/visibility-observer.directive.ts +74 -0
- package/src/app/services/configurator.service.ts +86 -0
- package/src/app/services/image-cache.service.ts +56 -0
- package/src/app/services/locator.service.ts +6 -0
- package/src/environments/environment.prod.ts +3 -0
- package/src/environments/environment.ts +8 -0
- package/src/helper/variation-helper.ts +220 -0
- package/src/index.html +14 -0
- package/src/main.ts +11 -0
- package/src/model/material.ts +22 -0
- package/src/model/variation-settings.ts +14 -0
- package/src/model/variation.ts +11 -0
- package/src/polyfills.ts +73 -0
- package/{public_api.d.ts → src/public_api.ts} +6 -6
- package/src/style/shared.scss +173 -0
- package/src/style/styles.scss +45 -0
- package/src/tsconfig.app.json +16 -0
- package/src/tsconfig.spec.json +19 -0
- package/src/utils/asset.utils.ts +88 -0
- package/src/utils/file.utils.ts +156 -0
- package/src/utils/file.utils.unit.test.ts +8 -0
- package/src/utils/image.utils.ts +54 -0
- package/src/utils/object.utils.ts +52 -0
- package/src/utils/scene-utils.ts +119 -0
- package/src/utils/threed.utils.ts +219 -0
- package/src/utils/variation-utils.ts +216 -0
- package/tsconfig.json +23 -0
- package/tslint.json +132 -0
- package/app/builder.d.ts +0 -53
- package/app/components/answers/answer/answer.component.d.ts +0 -11
- package/app/components/answers/answers.component.d.ts +0 -8
- package/app/components/answers/answers.module.d.ts +0 -2
- package/app/components/selections/selections.component.d.ts +0 -22
- package/app/components/selections/selections.module.d.ts +0 -2
- package/app/components/shared/loader/loader.component.d.ts +0 -2
- package/app/components/shared/shared.module.d.ts +0 -2
- package/app/directives/visibility-observer-master.directive.d.ts +0 -9
- package/app/directives/visibility-observer.directive.d.ts +0 -13
- package/app/services/configurator.service.d.ts +0 -22
- package/app/services/image-cache.service.d.ts +0 -10
- package/app/services/locator.service.d.ts +0 -4
- package/bundles/colijnit-configurator.umd.js +0 -2745
- package/bundles/colijnit-configurator.umd.js.map +0 -1
- package/bundles/colijnit-configurator.umd.min.js +0 -17
- package/bundles/colijnit-configurator.umd.min.js.map +0 -1
- package/colijnit-configurator.d.ts +0 -10
- package/colijnit-configurator.metadata.json +0 -1
- package/esm2015/app/builder.js +0 -477
- package/esm2015/app/components/answers/answer/answer.component.js +0 -69
- package/esm2015/app/components/answers/answers.component.js +0 -43
- package/esm2015/app/components/answers/answers.module.js +0 -29
- package/esm2015/app/components/selections/selections.component.js +0 -134
- package/esm2015/app/components/selections/selections.module.js +0 -23
- package/esm2015/app/components/shared/loader/loader.component.js +0 -24
- package/esm2015/app/components/shared/shared.module.js +0 -21
- package/esm2015/app/directives/visibility-observer-master.directive.js +0 -51
- package/esm2015/app/directives/visibility-observer.directive.js +0 -57
- package/esm2015/app/services/configurator.service.js +0 -94
- package/esm2015/app/services/image-cache.service.js +0 -66
- package/esm2015/app/services/locator.service.js +0 -10
- package/esm2015/colijnit-configurator.js +0 -11
- package/esm2015/helper/variation-helper.js +0 -216
- package/esm2015/model/material.js +0 -11
- package/esm2015/model/variation-settings.js +0 -6
- package/esm2015/model/variation.js +0 -3
- package/esm2015/public_api.js +0 -7
- package/esm2015/utils/asset.utils.js +0 -74
- package/esm2015/utils/file.utils.js +0 -139
- package/esm2015/utils/image.utils.js +0 -52
- package/esm2015/utils/object.utils.js +0 -49
- package/esm2015/utils/scene-utils.js +0 -94
- package/esm2015/utils/threed.utils.js +0 -222
- package/esm2015/utils/variation-utils.js +0 -224
- package/esm5/app/builder.js +0 -591
- package/esm5/app/components/answers/answer/answer.component.js +0 -64
- package/esm5/app/components/answers/answers.component.js +0 -27
- package/esm5/app/components/answers/answers.module.js +0 -32
- package/esm5/app/components/selections/selections.component.js +0 -104
- package/esm5/app/components/selections/selections.module.js +0 -26
- package/esm5/app/components/shared/loader/loader.component.js +0 -16
- package/esm5/app/components/shared/shared.module.js +0 -24
- package/esm5/app/directives/visibility-observer-master.directive.js +0 -64
- package/esm5/app/directives/visibility-observer.directive.js +0 -59
- package/esm5/app/services/configurator.service.js +0 -160
- package/esm5/app/services/image-cache.service.js +0 -69
- package/esm5/app/services/locator.service.js +0 -13
- package/esm5/colijnit-configurator.js +0 -11
- package/esm5/helper/variation-helper.js +0 -268
- package/esm5/model/material.js +0 -13
- package/esm5/model/variation-settings.js +0 -8
- package/esm5/model/variation.js +0 -7
- package/esm5/public_api.js +0 -7
- package/esm5/utils/asset.utils.js +0 -106
- package/esm5/utils/file.utils.js +0 -151
- package/esm5/utils/image.utils.js +0 -56
- package/esm5/utils/object.utils.js +0 -56
- package/esm5/utils/scene-utils.js +0 -98
- package/esm5/utils/threed.utils.js +0 -279
- package/esm5/utils/variation-utils.js +0 -327
- package/fesm2015/colijnit-configurator.js +0 -2109
- package/fesm2015/colijnit-configurator.js.map +0 -1
- package/fesm5/colijnit-configurator.js +0 -2527
- package/fesm5/colijnit-configurator.js.map +0 -1
- package/helper/variation-helper.d.ts +0 -14
- package/model/material.d.ts +0 -17
- package/model/variation-settings.d.ts +0 -14
- package/model/variation.d.ts +0 -10
- package/utils/asset.utils.d.ts +0 -13
- package/utils/file.utils.d.ts +0 -27
- package/utils/image.utils.d.ts +0 -8
- package/utils/object.utils.d.ts +0 -7
- package/utils/scene-utils.d.ts +0 -7
- package/utils/threed.utils.d.ts +0 -16
- package/utils/variation-utils.d.ts +0 -12
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
var VariationSettings = /** @class */ (function () {
|
|
2
|
-
function VariationSettings() {
|
|
3
|
-
this.settings = {};
|
|
4
|
-
}
|
|
5
|
-
return VariationSettings;
|
|
6
|
-
}());
|
|
7
|
-
export { VariationSettings };
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWF0aW9uLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvbGlqbml0L2NvbmZpZ3VyYXRvci8iLCJzb3VyY2VzIjpbIm1vZGVsL3ZhcmlhdGlvbi1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUFBO1FBRVMsYUFBUSxHQUFRLEVBQUUsQ0FBQztJQVc1QixDQUFDO0lBQUQsd0JBQUM7QUFBRCxDQUFDLEFBYkQsSUFhQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBWYXJpYXRpb25TZXR0aW5ncyB7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgc2V0dGluZ3M6IGFueSA9IHt9O1xuICBwdWJsaWMgdGV4dHVyZTogc3RyaW5nO1xuICBwdWJsaWMgdGV4dHVyZUZpbGVuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBub3JtYWw6IHN0cmluZztcbiAgcHVibGljIG5vcm1hbEZpbGVuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhbzogc3RyaW5nO1xuICBwdWJsaWMgYW9GaWxlbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgbWV0YWxuZXNzOiBzdHJpbmc7XG4gIHB1YmxpYyBtZXRhbG5lc3NGaWxlbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcm91Z2huZXNzOiBzdHJpbmc7XG4gIHB1YmxpYyByb3VnaG5lc3NGaWxlbmFtZTogc3RyaW5nO1xufVxuIl19
|
package/esm5/model/variation.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
var Variation = /** @class */ (function () {
|
|
2
|
-
function Variation() {
|
|
3
|
-
}
|
|
4
|
-
return Variation;
|
|
5
|
-
}());
|
|
6
|
-
export { Variation };
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWF0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvbGlqbml0L2NvbmZpZ3VyYXRvci8iLCJzb3VyY2VzIjpbIm1vZGVsL3ZhcmlhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtJQUFBO0lBUUEsQ0FBQztJQUFELGdCQUFDO0FBQUQsQ0FBQyxBQVJELElBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01hdGVyaWFsfSBmcm9tICcuL21hdGVyaWFsJztcblxuZXhwb3J0IGNsYXNzIFZhcmlhdGlvbiB7XG4gIHB1YmxpYyBkZWNvSWQ6IG51bWJlcjtcbiAgcHVibGljIGJyYW5kSWQ6IHN0cmluZztcbiAgcHVibGljIGdhbWVPYmplY3ROYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBub2RlOiBhbnk7XG4gIHB1YmxpYyBzdXBwbGllckFydGljbGVOcjogc3RyaW5nO1xuICBwdWJsaWMgbWF0ZXJpYWxJZDogc3RyaW5nO1xuICBwdWJsaWMgbWF0ZXJpYWw6IE1hdGVyaWFsO1xufVxuIl19
|
package/esm5/public_api.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export * from './app/builder';
|
|
2
|
-
export * from './app/services/configurator.service';
|
|
3
|
-
export * from './app/components/answers/answers.module';
|
|
4
|
-
export * from './app/components/answers/answers.component';
|
|
5
|
-
export * from './app/components/selections/selections.module';
|
|
6
|
-
export * from './app/components/selections/selections.component';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC9jb25maWd1cmF0b3IvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxrREFBa0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwL2J1aWxkZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwcC9zZXJ2aWNlcy9jb25maWd1cmF0b3Iuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYW5zd2Vycy9hbnN3ZXJzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYW5zd2Vycy9hbnN3ZXJzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zZWxlY3Rpb25zLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zZWxlY3Rpb25zLmNvbXBvbmVudCc7XHJcbiJdfQ==
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __extends, __generator } from "tslib";
|
|
2
|
-
import { Material } from '../model/material';
|
|
3
|
-
import { ImageUtils } from './image.utils';
|
|
4
|
-
import * as THREE from 'three';
|
|
5
|
-
import { sRGBEncoding } from 'three';
|
|
6
|
-
var FurnitureMaterial = /** @class */ (function (_super) {
|
|
7
|
-
__extends(FurnitureMaterial, _super);
|
|
8
|
-
function FurnitureMaterial() {
|
|
9
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
10
|
-
}
|
|
11
|
-
return FurnitureMaterial;
|
|
12
|
-
}(Material));
|
|
13
|
-
export { FurnitureMaterial };
|
|
14
|
-
var AssetUtils = /** @class */ (function () {
|
|
15
|
-
function AssetUtils() {
|
|
16
|
-
}
|
|
17
|
-
AssetUtils.CreateMaterialFromAsset = function (asset) {
|
|
18
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
19
|
-
var material, _a, _b, _c, _d, _e;
|
|
20
|
-
return __generator(this, function (_f) {
|
|
21
|
-
switch (_f.label) {
|
|
22
|
-
case 0:
|
|
23
|
-
material = new Material();
|
|
24
|
-
if (!asset) {
|
|
25
|
-
return [2 /*return*/, material];
|
|
26
|
-
}
|
|
27
|
-
if (asset.settings) {
|
|
28
|
-
AssetUtils.setSettingsOfMaterial(material, asset.settings);
|
|
29
|
-
}
|
|
30
|
-
if (!asset.texture) return [3 /*break*/, 2];
|
|
31
|
-
_a = material;
|
|
32
|
-
return [4 /*yield*/, ImageUtils.CreateTextureFromBase64(asset.id + '_texture', asset.texture, material)];
|
|
33
|
-
case 1:
|
|
34
|
-
_a.texture = _f.sent();
|
|
35
|
-
material.texture.encoding = sRGBEncoding;
|
|
36
|
-
material.textureFilename = asset.textureFilename;
|
|
37
|
-
_f.label = 2;
|
|
38
|
-
case 2:
|
|
39
|
-
if (!asset.normal) return [3 /*break*/, 4];
|
|
40
|
-
_b = material;
|
|
41
|
-
return [4 /*yield*/, ImageUtils.CreateTextureFromBase64(asset.id + '_normal', asset.normal, material)];
|
|
42
|
-
case 3:
|
|
43
|
-
_b.normal = _f.sent();
|
|
44
|
-
material.normalFilename = asset.normalFilename;
|
|
45
|
-
_f.label = 4;
|
|
46
|
-
case 4:
|
|
47
|
-
if (!asset.ao) return [3 /*break*/, 6];
|
|
48
|
-
_c = material;
|
|
49
|
-
return [4 /*yield*/, ImageUtils.CreateTextureFromBase64(asset.id + '_ao', asset.ao, material)];
|
|
50
|
-
case 5:
|
|
51
|
-
_c.ao = _f.sent();
|
|
52
|
-
material.aoFilename = asset.aoFilename;
|
|
53
|
-
_f.label = 6;
|
|
54
|
-
case 6:
|
|
55
|
-
if (!asset.metalness) return [3 /*break*/, 8];
|
|
56
|
-
_d = material;
|
|
57
|
-
return [4 /*yield*/, ImageUtils.CreateTextureFromBase64(asset.id + '_metalness', asset.metalness, material)];
|
|
58
|
-
case 7:
|
|
59
|
-
_d.metalness = _f.sent();
|
|
60
|
-
material.metalnessFilename = asset.metalnessFilename;
|
|
61
|
-
_f.label = 8;
|
|
62
|
-
case 8:
|
|
63
|
-
if (!asset.roughness) return [3 /*break*/, 10];
|
|
64
|
-
_e = material;
|
|
65
|
-
return [4 /*yield*/, ImageUtils.CreateTextureFromBase64(asset.id + '_roughness', asset.roughness, material)];
|
|
66
|
-
case 9:
|
|
67
|
-
_e.roughness = _f.sent();
|
|
68
|
-
material.roughnessFilename = asset.roughnessFilename;
|
|
69
|
-
_f.label = 10;
|
|
70
|
-
case 10: return [2 /*return*/, material];
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
};
|
|
75
|
-
AssetUtils.setSettingsOfMaterial = function (material, settings) {
|
|
76
|
-
var shininess = parseFloat(settings['power']);
|
|
77
|
-
if (!isNaN(shininess)) {
|
|
78
|
-
material.shininess = shininess;
|
|
79
|
-
// material.roughness = 1 - (shininess / 100);
|
|
80
|
-
}
|
|
81
|
-
var level = parseFloat(settings['level']);
|
|
82
|
-
if (!isNaN(level)) {
|
|
83
|
-
material.specular = new THREE.Color(level, level, level);
|
|
84
|
-
}
|
|
85
|
-
var repeatObjectUsed = settings.hasOwnProperty('repeat');
|
|
86
|
-
var repeatx = repeatObjectUsed ? parseFloat(settings['repeat']['repeatx']) : parseFloat(settings['repeatx']);
|
|
87
|
-
if (!isNaN(repeatx)) {
|
|
88
|
-
material.repeatX = Math.max(1, repeatx);
|
|
89
|
-
}
|
|
90
|
-
var repeaty = repeatObjectUsed ? parseFloat(settings['repeat']['repeaty']) : parseFloat(settings['repeaty']);
|
|
91
|
-
if (!isNaN(repeaty)) {
|
|
92
|
-
material.repeatY = Math.max(1, repeaty);
|
|
93
|
-
}
|
|
94
|
-
var metalness = parseFloat(settings['metalness']);
|
|
95
|
-
if (!isNaN(metalness)) {
|
|
96
|
-
material.metalnessValue = Math.min(1, metalness);
|
|
97
|
-
}
|
|
98
|
-
var roughness = parseFloat(settings['roughness']);
|
|
99
|
-
if (!isNaN(roughness)) {
|
|
100
|
-
material.roughnessValue = Math.min(1, roughness);
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
return AssetUtils;
|
|
104
|
-
}());
|
|
105
|
-
export { AssetUtils };
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsidXRpbHMvYXNzZXQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFHbkM7SUFBdUMscUNBQVE7SUFBL0M7O0lBUUEsQ0FBQztJQUFELHdCQUFDO0FBQUQsQ0FBQyxBQVJELENBQXVDLFFBQVEsR0FROUM7O0FBRUQ7SUFBQTtJQXVFQSxDQUFDO0lBckVxQixrQ0FBdUIsR0FBM0MsVUFBNEMsS0FBd0I7Ozs7Ozt3QkFDNUQsUUFBUSxHQUFzQixJQUFJLFFBQVEsRUFBRSxDQUFDO3dCQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFOzRCQUNWLHNCQUFPLFFBQVEsRUFBQzt5QkFDakI7d0JBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFOzRCQUNsQixVQUFVLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQzt5QkFDNUQ7NkJBQ0csS0FBSyxDQUFDLE9BQU8sRUFBYix3QkFBYTt3QkFDZixLQUFBLFFBQVEsQ0FBQTt3QkFBVyxxQkFBTSxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBQTs7d0JBQTNHLEdBQVMsT0FBTyxHQUFHLFNBQXdGLENBQUM7d0JBQzVHLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQzt3QkFFekMsUUFBUSxDQUFDLGVBQWUsR0FBRyxLQUFLLENB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Q0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDckIsUUFBUSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBQ0gsaUJBQUM7QUFBRCxDQUFDLEFBdkVELElBdUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNYXRlcmlhbH0gZnJvbSAnLi4vbW9kZWwvbWF0ZXJpYWwnO1xuaW1wb3J0IHtJbWFnZVV0aWxzfSBmcm9tICcuL2ltYWdlLnV0aWxzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7c1JHQkVuY29kaW5nfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQge1ZhcmlhdGlvblNldHRpbmdzfSBmcm9tICcuLi9tb2RlbC92YXJpYXRpb24tc2V0dGluZ3MnO1xuXG5leHBvcnQgY2xhc3MgRnVybml0dXJlTWF0ZXJpYWwgZXh0ZW5kcyBNYXRlcmlhbCB7XG5cbiAgcHVibGljIHRleHR1cmVGaWxlbmFtZT86IHN0cmluZztcbiAgcHVibGljIG5vcm1hbEZpbGVuYW1lPzogc3RyaW5nO1xuICBwdWJsaWMgYW9GaWxlbmFtZT86IHN0cmluZztcbiAgcHVibGljIG1ldGFsbmVzc0ZpbGVuYW1lPzogc3RyaW5nO1xuICBwdWJsaWMgcm91Z2huZXNzRmlsZW5hbWU/OiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGNsYXNzIEFzc2V0VXRpbHMge1xuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgQ3JlYXRlTWF0ZXJpYWxGcm9tQXNzZXQoYXNzZXQ6IFZhcmlhdGlvblNldHRpbmdzKTogUHJvbWlzZTxNYXRlcmlhbD4ge1xuICAgIGNvbnN0IG1hdGVyaWFsOiBGdXJuaXR1cmVNYXRlcmlhbCA9IG5ldyBNYXRlcmlhbCgpO1xuICAgIGlmICghYXNzZXQpIHtcbiAgICAgIHJldHVybiBtYXRlcmlhbDtcbiAgICB9XG4gICAgaWYgKGFzc2V0LnNldHRpbmdzKSB7XG4gICAgICBBc3NldFV0aWxzLnNldFNldHRpbmdzT2ZNYXRlcmlhbChtYXRlcmlhbCwgYXNzZXQuc2V0dGluZ3MpO1xuICAgIH1cbiAgICBpZiAoYXNzZXQudGV4dHVyZSkge1xuICAgICAgbWF0ZXJpYWwudGV4dHVyZSA9IGF3YWl0IEltYWdlVXRpbHMuQ3JlYXRlVGV4dHVyZUZyb21CYXNlNjQoYXNzZXQuaWQgKyAnX3RleHR1cmUnLCBhc3NldC50ZXh0dXJlLCBtYXRlcmlhbCk7XG4gICAgICBtYXRlcmlhbC50ZXh0dXJlLmVuY29kaW5nID0gc1JHQkVuY29kaW5nO1xuXG4gICAgICBtYXRlcmlhbC50ZXh0dXJlRmlsZW5hbWUgPSBhc3NldC50ZXh0dXJlRmlsZW5hbWU7XG4gICAgfVxuICAgIGlmIChhc3NldC5ub3JtYWwpIHtcbiAgICAgIG1hdGVyaWFsLm5vcm1hbCA9IGF3YWl0IEltYWdlVXRpbHMuQ3JlYXRlVGV4dHVyZUZyb21CYXNlNjQoYXNzZXQuaWQgKyAnX25vcm1hbCcsIGFzc2V0Lm5vcm1hbCwgbWF0ZXJpYWwpO1xuICAgICAgbWF0ZXJpYWwubm9ybWFsRmlsZW5hbWUgPSBhc3NldC5ub3JtYWxGaWxlbmFtZTtcbiAgICAgIC8vIG1hdGVyaWFsLm5vcm1hbC5hbmlzb3Ryb3B5ID0gMTtcbiAgICAgIC8vIG1hdGVyaWFsLm5vcm1hbC5yZXBlYXQuc2V0KDEsIDEpO1xuICAgICAgLy8gbWF0ZXJpYWwubm9ybWFsLmZsaXBZID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhc3NldC5hbykge1xuICAgICAgbWF0ZXJpYWwuYW8gPSBhd2FpdCBJbWFnZVV0aWxzLkNyZWF0ZVRleHR1cmVGcm9tQmFzZTY0KGFzc2V0LmlkICsgJ19hbycsIGFzc2V0LmFvLCBtYXRlcmlhbCk7XG4gICAgICBtYXRlcmlhbC5hb0ZpbGVuYW1lID0gYXNzZXQuYW9GaWxlbmFtZTtcbiAgICB9XG4gICAgaWYgKGFzc2V0Lm1ldGFsbmVzcykge1xuICAgICAgbWF0ZXJpYWwubWV0YWxuZXNzID0gYXdhaXQgSW1hZ2VVdGlscy5DcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChhc3NldC5pZCArICdfbWV0YWxuZXNzJywgYXNzZXQubWV0YWxuZXNzLCBtYXRlcmlhbCk7XG4gICAgICBtYXRlcmlhbC5tZXRhbG5lc3NGaWxlbmFtZSA9IGFzc2V0Lm1ldGFsbmVzc0ZpbGVuYW1lO1xuICAgIH1cbiAgICBpZiAoYXNzZXQucm91Z2huZXNzKSB7XG4gICAgICBtYXRlcmlhbC5yb3VnaG5lc3MgPSBhd2FpdCBJbWFnZVV0aWxzLkNyZWF0ZVRleHR1cmVGcm9tQmFzZTY0KGFzc2V0LmlkICsgJ19yb3VnaG5lc3MnLCBhc3NldC5yb3VnaG5lc3MsIG1hdGVyaWFsKTtcbiAgICAgIG1hdGVyaWFsLnJvdWdobmVzc0ZpbGVuYW1lID0gYXNzZXQucm91Z2huZXNzRmlsZW5hbWU7XG4gICAgfVxuICAgIHJldHVybiBtYXRlcmlhbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2V0U2V0dGluZ3NPZk1hdGVyaWFsKG1hdGVyaWFsOiBNYXRlcmlhbCwgc2V0dGluZ3M6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHNoaW5pbmVzcyA9IHBhcnNlRmxvYXQoc2V0dGluZ3NbJ3Bvd2VyJ10pO1xuICAgIGlmICghaXNOYU4oc2hpbmluZXNzKSkge1xuICAgICAgbWF0ZXJpYWwuc2hpbmluZXNzID0gc2hpbmluZXNzO1xuICAgICAgLy8gbWF0ZXJpYWwucm91Z2huZXNzID0gMSAtIChzaGluaW5lc3MgLyAxMDApO1xuICAgIH1cblxuICAgIGNvbnN0IGxldmVsID0gcGFyc2VGbG9hdChzZXR0aW5nc1snbGV2ZWwnXSk7XG4gICAgaWYgKCFpc05hTihsZXZlbCkpIHtcbiAgICAgIG1hdGVyaWFsLnNwZWN1bGFyID0gbmV3IFRIUkVFLkNvbG9yKGxldmVsLCBsZXZlbCwgbGV2ZWwpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcGVhdE9iamVjdFVzZWQ6IGJvb2xlYW4gPSBzZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgncmVwZWF0Jyk7XG4gICAgY29uc3QgcmVwZWF0eCA9IHJlcGVhdE9iamVjdFVzZWQgPyBwYXJzZUZsb2F0KHNldHRpbmdzWydyZXBlYXQnXVsncmVwZWF0eCddKSA6IHBhcnNlRmxvYXQoc2V0dGluZ3NbJ3JlcGVhdHgnXSk7XG4gICAgaWYgKCFpc05hTihyZXBlYXR4KSkge1xuICAgICAgbWF0ZXJpYWwucmVwZWF0WCA9IE1hdGgubWF4KDEsIHJlcGVhdHgpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcGVhdHkgPSByZXBlYXRPYmplY3RVc2VkID8gcGFyc2VGbG9hdChzZXR0aW5nc1sncmVwZWF0J11bJ3JlcGVhdHknXSkgOiBwYXJzZUZsb2F0KHNldHRpbmdzWydyZXBlYXR5J10pO1xuICAgIGlmICghaXNOYU4ocmVwZWF0eSkpIHtcbiAgICAgIG1hdGVyaWFsLnJlcGVhdFkgPSBNYXRoLm1heCgxLCByZXBlYXR5KTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhbG5lc3MgPSBwYXJzZUZsb2F0KHNldHRpbmdzWydtZXRhbG5lc3MnXSk7XG4gICAgaWYgKCFpc05hTihtZXRhbG5lc3MpKSB7XG4gICAgICBtYXRlcmlhbC5tZXRhbG5lc3NWYWx1ZSA9IE1hdGgubWluKDEsIG1ldGFsbmVzcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgcm91Z2huZXNzID0gcGFyc2VGbG9hdChzZXR0aW5nc1sncm91Z2huZXNzJ10pO1xuICAgIGlmICghaXNOYU4ocm91Z2huZXNzKSkge1xuICAgICAgbWF0ZXJpYWwucm91Z2huZXNzVmFsdWUgPSBNYXRoLm1pbigxLCByb3VnaG5lc3MpO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/esm5/utils/file.utils.js
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __generator } from "tslib";
|
|
2
|
-
import axios from "axios";
|
|
3
|
-
// Static utility functions holder related to files.
|
|
4
|
-
// @dynamic
|
|
5
|
-
var FileUtils = /** @class */ (function () {
|
|
6
|
-
function FileUtils() {
|
|
7
|
-
}
|
|
8
|
-
// Returns the given dataUri string stripped of the mimetype part.
|
|
9
|
-
FileUtils.StripMimeStringFromDataUri = function (dataUri) {
|
|
10
|
-
if (!dataUri) {
|
|
11
|
-
return '';
|
|
12
|
-
}
|
|
13
|
-
var mimeString = this.GetMimeStringFromDataUri(dataUri);
|
|
14
|
-
return dataUri.substr(mimeString.length + 1);
|
|
15
|
-
};
|
|
16
|
-
FileUtils.GetMimeStringFromDataUri = function (dataUri) {
|
|
17
|
-
if (!dataUri) {
|
|
18
|
-
return '';
|
|
19
|
-
}
|
|
20
|
-
return dataUri.split(',')[0];
|
|
21
|
-
};
|
|
22
|
-
FileUtils.FileExists = function (url, assetPath) {
|
|
23
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
24
|
-
var result;
|
|
25
|
-
return __generator(this, function (_a) {
|
|
26
|
-
switch (_a.label) {
|
|
27
|
-
case 0: return [4 /*yield*/, axios({
|
|
28
|
-
method: 'get',
|
|
29
|
-
url: assetPath + "getFiles.php?assetUrl=" + url,
|
|
30
|
-
responseType: "json"
|
|
31
|
-
})];
|
|
32
|
-
case 1:
|
|
33
|
-
result = _a.sent();
|
|
34
|
-
return [2 /*return*/, !!result.data];
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* There is some discrepancy regarding locations of h3d objects
|
|
41
|
-
* Therefor we need to (temporarily?!) fix the content url
|
|
42
|
-
* Also we need to change some additionals
|
|
43
|
-
*/
|
|
44
|
-
FileUtils.FixUrl = function (assetUrl) {
|
|
45
|
-
if (!assetUrl) {
|
|
46
|
-
return '';
|
|
47
|
-
}
|
|
48
|
-
var fixedUrl = assetUrl;
|
|
49
|
-
if (!fixedUrl.endsWith('glb') && !fixedUrl.endsWith('obj') && !fixedUrl.endsWith('glb.gz') && !fixedUrl.endsWith('obj.gz')) {
|
|
50
|
-
fixedUrl = FileUtils.FixUnityUrl(fixedUrl);
|
|
51
|
-
}
|
|
52
|
-
fixedUrl = fixedUrl.replace('/content/', '/content43/');
|
|
53
|
-
return fixedUrl;
|
|
54
|
-
};
|
|
55
|
-
FileUtils.FixGlbUrl = function (assetUrl) {
|
|
56
|
-
if (!assetUrl) {
|
|
57
|
-
return '';
|
|
58
|
-
}
|
|
59
|
-
var fixedUrl = assetUrl;
|
|
60
|
-
if (assetUrl.indexOf('_webplayer') === -1) {
|
|
61
|
-
fixedUrl = assetUrl.concat('_webplayer');
|
|
62
|
-
}
|
|
63
|
-
fixedUrl = fixedUrl.replace('/content/', '/content43/');
|
|
64
|
-
if (!fixedUrl.endsWith('.glb')) {
|
|
65
|
-
fixedUrl = fixedUrl.concat('.glb');
|
|
66
|
-
}
|
|
67
|
-
return fixedUrl;
|
|
68
|
-
};
|
|
69
|
-
// Return the mimetype of the given filename.
|
|
70
|
-
FileUtils.MimeTypeFromFilename = function (fileName) {
|
|
71
|
-
var regEx = /(?:\.([^.]+))?$/; // regex to find extension
|
|
72
|
-
var extension = regEx.exec(fileName)[1];
|
|
73
|
-
switch (extension) {
|
|
74
|
-
case 'jpg':
|
|
75
|
-
case 'jpeg':
|
|
76
|
-
return 'image/jpeg';
|
|
77
|
-
case 'png':
|
|
78
|
-
return 'image/png';
|
|
79
|
-
case 'bmp':
|
|
80
|
-
return 'image/bmp';
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* Downloads the given file to the users default download location.
|
|
85
|
-
* @param fileName With or without extension
|
|
86
|
-
* @param content File content as a string
|
|
87
|
-
* @param [mimeType = 'text/plain']
|
|
88
|
-
*/
|
|
89
|
-
FileUtils.DownloadFile = function (fileName, content, mimeType) {
|
|
90
|
-
if (mimeType === void 0) { mimeType = 'text/plain'; }
|
|
91
|
-
var element = document.createElement('a');
|
|
92
|
-
element.setAttribute('href', 'data:' + mimeType + ';charset=utf-8,' + encodeURIComponent(content));
|
|
93
|
-
element.setAttribute('download', fileName);
|
|
94
|
-
element.style.display = 'none';
|
|
95
|
-
document.body.appendChild(element);
|
|
96
|
-
element.click();
|
|
97
|
-
document.body.removeChild(element);
|
|
98
|
-
};
|
|
99
|
-
// Returns the contents of given file as a text string.
|
|
100
|
-
FileUtils.ReadAsText = function (file) {
|
|
101
|
-
return new Promise(function (resolve) {
|
|
102
|
-
var reader = new FileReader();
|
|
103
|
-
reader.readAsText(file);
|
|
104
|
-
reader.onloadend = function (event) {
|
|
105
|
-
if (event.target.readyState === 2) {
|
|
106
|
-
resolve(event.target.result);
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
|
-
FileUtils.GetExtensionFromDataUri = function (dataUri) {
|
|
112
|
-
return dataUri.replace(/(data:image\/)(.*?)(;base64.*)/gi, '$2');
|
|
113
|
-
};
|
|
114
|
-
FileUtils.CreateDownloadFileNameFromBase64 = function (dataUri) {
|
|
115
|
-
var ext = this.GetExtensionFromDataUri(dataUri);
|
|
116
|
-
return 'preview.' + ext;
|
|
117
|
-
};
|
|
118
|
-
FileUtils.DownloadFromDataUri = function (dataUri, fileName) {
|
|
119
|
-
var link = document.createElement('a');
|
|
120
|
-
link.download = fileName;
|
|
121
|
-
link.href = dataUri;
|
|
122
|
-
document.body.appendChild(link);
|
|
123
|
-
link.click();
|
|
124
|
-
document.body.removeChild(link);
|
|
125
|
-
};
|
|
126
|
-
// todo remove once Connector deals with mimetypes and this method isn't used anymore
|
|
127
|
-
FileUtils.DocumentBodyToDataUri = function (documentBody, mimeType) {
|
|
128
|
-
if (!!documentBody) {
|
|
129
|
-
return 'data:' + mimeType + ';base64,' + documentBody;
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
return '';
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
FileUtils.FixUnityUrl = function (url) {
|
|
136
|
-
if (url.indexOf('_webplayer') === -1) {
|
|
137
|
-
url = url.concat('_webplayer.ione3d');
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
url = url.replace('_webplayer', '_webplayer.ione3d');
|
|
141
|
-
}
|
|
142
|
-
if (!url.endsWith('.gz')) {
|
|
143
|
-
url = url.concat('.gz');
|
|
144
|
-
}
|
|
145
|
-
return url.replace('.unity3d', '');
|
|
146
|
-
};
|
|
147
|
-
FileUtils._cachedTextureUploads = new Map();
|
|
148
|
-
return FileUtils;
|
|
149
|
-
}());
|
|
150
|
-
export { FileUtils };
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC9jb25maWd1cmF0b3IvIiwic291cmNlcyI6WyJ1dGlscy9maWxlLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsb0RBQW9EO0FBQ3BELFdBQVc7QUFDWDtJQUFBO0lBd0pBLENBQUM7SUFwSkMsa0VBQWtFO0lBQ3BELG9DQUEwQixHQUF4QyxVQUF5QyxPQUFlO1FBQ3RELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsSUFBTSxVQUFVLEdBQVcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFYSxrQ0FBd0IsR0FBdEMsVUFBdUMsT0FBZTtRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRW1CLG9CQUFVLEdBQTlCLFVBQStCLEdBQVcsRUFBRSxTQUFpQjs7Ozs7NEJBQzFDLHFCQUFNLEtBQUssQ0FBQzs0QkFDekIsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsR0FBRyxFQUFLLFNBQVMsOEJBQXlCLEdBQUs7NEJBQy9DLFlBQVksRUFBRSxNQUFNO3lCQUNyQixDQUFDLEVBQUE7O3dCQUpJLE1BQU0sR0FBRyxTQUliO3dCQUNGLHNCQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFDOzs7O0tBQ3hCO0lBRUQ7Ozs7T0FJRztJQUNXLGdCQUFNLEdBQXBCLFVBQXFCLFFBQWdCO1FBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsSUFBSSxRQUFRLEdBQVcsUUFBUSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzFILFFBQVEsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFYSxtQkFBUyxHQUF2QixVQUF3QixRQUFnQjtRQUN0QyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELElBQUksUUFBUSxHQUFXLFFBQVEsQ0FBQztRQUNoQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDekMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDMUM7UUFDRCxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDcEM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsNkNBQTZDO0lBQy9CLDhCQUFvQixHQUFsQyxVQUFtQyxRQUFnQjtRQUNqRCxJQUFNLEtBQUssR0FBVyxpQkFBaUIsQ0FBQyxDQUFDLDBCQUEwQjtRQUNuRSxJQUFNLFNBQVMsR0FBUSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLFFBQVEsU0FBUyxFQUFFO1lBQ2pCLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxNQUFNO2dCQUNULE9BQU8sWUFBWSxDQUFDO1lBQ3RCLEtBQUssS0FBSztnQkFDUixPQUFPLFdBQVcsQ0FBQztZQUNyQixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxXQUFXLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDVyxzQkFBWSxHQUExQixVQUNFLFFBQWdCLEVBQ2hCLE9BQWUsRUFDZixRQUErQjtRQUEvQix5QkFBQSxFQUFBLHVCQUErQjtRQUUvQixJQUFNLE9BQU8sR0FBc0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvRCxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsUUFBUSxHQUFHLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbkcsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFM0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQy9CLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVoQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsdURBQXVEO0lBQ3pDLG9CQUFVLEdBQXhCLFVBQXlCLElBQVU7UUFDakMsT0FBTyxJQUFJLE9BQU8sQ0FBUyxVQUFDLE9BQWlCO1lBQzNDLElBQU0sTUFBTSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7WUFDNUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixNQUFNLENBQUMsU0FBUyxHQUFHLFVBQUMsS0FBVTtnQkFDNUIsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsS0FBSyxDQUFDLEVBQUU7b0JBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUM5QjtZQUNILENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVhLGlDQUF1QixHQUFyQyxVQUFzQyxPQUFlO1FBQ25ELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRWEsMENBQWdDLEdBQTlDLFVBQStDLE9BQWU7UUFDNUQsSUFBTSxHQUFHLEdBQVcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELE9BQU8sVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUMxQixDQUFDO0lBRWEsNkJBQW1CLEdBQWpDLFVBQWtDLE9BQWUsRUFBRSxRQUFnQjtRQUNqRSxJQUFNLElBQUksR0FBUSxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ3BCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxxRkFBcUY7SUFDdkUsK0JBQXFCLEdBQW5DLFVBQW9DLFlBQW9CLEVBQUUsUUFBZ0I7UUFDeEUsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFO1lBQ2xCLE9BQU8sT0FBTyxHQUFHLFFBQVEsR0FBRyxVQUFVLEdBQUcsWUFBWSxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxPQUFPLEVBQUUsQ0FBQztTQUNYO0lBQ0gsQ0FBQztJQUVjLHFCQUFXLEdBQTFCLFVBQTJCLEdBQUc7UUFDNUIsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3BDLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdkM7YUFBTTtZQUNMLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFySmMsK0JBQXFCLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFzSnhFLGdCQUFDO0NBQUEsQUF4SkQsSUF3SkM7U0F4SlksU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tIFwiYXhpb3NcIjtcbi8vIFN0YXRpYyB1dGlsaXR5IGZ1bmN0aW9ucyBob2xkZXIgcmVsYXRlZCB0byBmaWxlcy5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgRmlsZVV0aWxzIHtcblxuICBwcml2YXRlIHN0YXRpYyBfY2FjaGVkVGV4dHVyZVVwbG9hZHM6IE1hcDxzdHJpbmcsIE9iamVjdD4gPSBuZXcgTWFwKCk7XG5cbiAgLy8gUmV0dXJucyB0aGUgZ2l2ZW4gZGF0YVVyaSBzdHJpbmcgc3RyaXBwZWQgb2YgdGhlIG1pbWV0eXBlIHBhcnQuXG4gIHB1YmxpYyBzdGF0aWMgU3RyaXBNaW1lU3RyaW5nRnJvbURhdGFVcmkoZGF0YVVyaTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWRhdGFVcmkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBtaW1lU3RyaW5nOiBzdHJpbmcgPSB0aGlzLkdldE1pbWVTdHJpbmdGcm9tRGF0YVVyaShkYXRhVXJpKTtcbiAgICByZXR1cm4gZGF0YVVyaS5zdWJzdHIobWltZVN0cmluZy5sZW5ndGggKyAxKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgR2V0TWltZVN0cmluZ0Zyb21EYXRhVXJpKGRhdGFVcmk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXRhVXJpKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGFVcmkuc3BsaXQoJywnKVswXTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgRmlsZUV4aXN0cyh1cmw6IHN0cmluZywgYXNzZXRQYXRoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGF4aW9zKHtcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgdXJsOiBgJHthc3NldFBhdGh9Z2V0RmlsZXMucGhwP2Fzc2V0VXJsPSR7dXJsfWAsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogXCJqc29uXCJcbiAgICAgIH0pXG4gICAgICByZXR1cm4gISFyZXN1bHQuZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGVyZSBpcyBzb21lIGRpc2NyZXBhbmN5IHJlZ2FyZGluZyBsb2NhdGlvbnMgb2YgaDNkIG9iamVjdHNcbiAgICogVGhlcmVmb3Igd2UgbmVlZCB0byAodGVtcG9yYXJpbHk/ISkgZml4IHRoZSBjb250ZW50IHVybFxuICAgKiBBbHNvIHdlIG5lZWQgdG8gY2hhbmdlIHNvbWUgYWRkaXRpb25hbHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRml4VXJsKGFzc2V0VXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghYXNzZXRVcmwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgbGV0IGZpeGVkVXJsOiBzdHJpbmcgPSBhc3NldFVybDtcbiAgICBpZiAoIWZpeGVkVXJsLmVuZHNXaXRoKCdnbGInKSAmJiAhZml4ZWRVcmwuZW5kc1dpdGgoJ29iaicpICYmICFmaXhlZFVybC5lbmRzV2l0aCgnZ2xiLmd6JykgJiYgIWZpeGVkVXJsLmVuZHNXaXRoKCdvYmouZ3onKSkge1xuICAgICAgZml4ZWRVcmwgPSBGaWxlVXRpbHMuRml4VW5pdHlVcmwoZml4ZWRVcmwpO1xuICAgIH1cbiAgICBmaXhlZFVybCA9IGZpeGVkVXJsLnJlcGxhY2UoJy9jb250ZW50LycsICcvY29udGVudDQzLycpO1xuICAgIHJldHVybiBmaXhlZFVybDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgRml4R2xiVXJsKGFzc2V0VXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghYXNzZXRVcmwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgbGV0IGZpeGVkVXJsOiBzdHJpbmcgPSBhc3NldFVybDtcbiAgICBpZiAoYXNzZXRVcmwuaW5kZXhPZignX3dlYnBsYXllcicpID09PSAtMSkge1xuICAgICAgZml4ZWRVcmwgPSBhc3NldFVybC5jb25jYXQoJ193ZWJwbGF5ZXInKTtcbiAgICB9XG4gICAgZml4ZWRVcmwgPSBmaXhlZFVybC5yZXBsYWNlKCcvY29udGVudC8nLCAnL2NvbnRlbnQ0My8nKTtcbiAgICBpZiAoIWZpeGVkVXJsLmVuZHNXaXRoKCcuZ2xiJykpIHtcbiAgICAgIGZpeGVkVXJsID0gZml4ZWRVcmwuY29uY2F0KCcuZ2xiJyk7XG4gICAgfVxuICAgIHJldHVybiBmaXhlZFVybDtcbiAgfVxuXG4gIC8vIFJldHVybiB0aGUgbWltZXR5cGUgb2YgdGhlIGdpdmVuIGZpbGVuYW1lLlxuICBwdWJsaWMgc3RhdGljIE1pbWVUeXBlRnJvbUZpbGVuYW1lKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlZ0V4OiBSZWdFeHAgPSAvKD86XFwuKFteLl0rKSk/JC87IC8vIHJlZ2V4IHRvIGZpbmQgZXh0ZW5zaW9uXG4gICAgY29uc3QgZXh0ZW5zaW9uOiBhbnkgPSByZWdFeC5leGVjKGZpbGVOYW1lKVsxXTtcbiAgICBzd2l0Y2ggKGV4dGVuc2lvbikge1xuICAgICAgY2FzZSAnanBnJzpcbiAgICAgIGNhc2UgJ2pwZWcnOlxuICAgICAgICByZXR1cm4gJ2ltYWdlL2pwZWcnO1xuICAgICAgY2FzZSAncG5nJzpcbiAgICAgICAgcmV0dXJuICdpbWFnZS9wbmcnO1xuICAgICAgY2FzZSAnYm1wJzpcbiAgICAgICAgcmV0dXJuICdpbWFnZS9ibXAnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZHMgdGhlIGdpdmVuIGZpbGUgdG8gdGhlIHVzZXJzIGRlZmF1bHQgZG93bmxvYWQgbG9jYXRpb24uXG4gICAqIEBwYXJhbSBmaWxlTmFtZSBXaXRoIG9yIHdpdGhvdXQgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSBjb250ZW50IEZpbGUgY29udGVudCBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0gW21pbWVUeXBlID0gJ3RleHQvcGxhaW4nXVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBEb3dubG9hZEZpbGUoXG4gICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICBjb250ZW50OiBzdHJpbmcsXG4gICAgbWltZVR5cGU6IHN0cmluZyA9ICd0ZXh0L3BsYWluJ1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50OiBIVE1MQW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsICdkYXRhOicgKyBtaW1lVHlwZSArICc7Y2hhcnNldD11dGYtOCwnICsgZW5jb2RlVVJJQ29tcG9uZW50KGNvbnRlbnQpKTtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSk7XG5cbiAgICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcblxuICAgIGVsZW1lbnQuY2xpY2soKTtcblxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gIH1cblxuICAvLyBSZXR1cm5zIHRoZSBjb250ZW50cyBvZiBnaXZlbiBmaWxlIGFzIGEgdGV4dCBzdHJpbmcuXG4gIHB1YmxpYyBzdGF0aWMgUmVhZEFzVGV4dChmaWxlOiBGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZTogRnVuY3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlKTtcbiAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgPT09IDIpIHtcbiAgICAgICAgICByZXNvbHZlKGV2ZW50LnRhcmdldC5yZXN1bHQpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBHZXRFeHRlbnNpb25Gcm9tRGF0YVVyaShkYXRhVXJpOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRhVXJpLnJlcGxhY2UoLyhkYXRhOmltYWdlXFwvKSguKj8pKDtiYXNlNjQuKikvZ2ksICckMicpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBDcmVhdGVEb3dubG9hZEZpbGVOYW1lRnJvbUJhc2U2NChkYXRhVXJpOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGV4dDogc3RyaW5nID0gdGhpcy5HZXRFeHRlbnNpb25Gcm9tRGF0YVVyaShkYXRhVXJpKTtcbiAgICByZXR1cm4gJ3ByZXZpZXcuJyArIGV4dDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgRG93bmxvYWRGcm9tRGF0YVVyaShkYXRhVXJpOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBsaW5rOiBhbnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5kb3dubG9hZCA9IGZpbGVOYW1lO1xuICAgIGxpbmsuaHJlZiA9IGRhdGFVcmk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICBsaW5rLmNsaWNrKCk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcbiAgfVxuXG4gIC8vIHRvZG8gcmVtb3ZlIG9uY2UgQ29ubmVjdG9yIGRlYWxzIHdpdGggbWltZXR5cGVzIGFuZCB0aGlzIG1ldGhvZCBpc24ndCB1c2VkIGFueW1vcmVcbiAgcHVibGljIHN0YXRpYyBEb2N1bWVudEJvZHlUb0RhdGFVcmkoZG9jdW1lbnRCb2R5OiBzdHJpbmcsIG1pbWVUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghIWRvY3VtZW50Qm9keSkge1xuICAgICAgcmV0dXJuICdkYXRhOicgKyBtaW1lVHlwZSArICc7YmFzZTY0LCcgKyBkb2N1bWVudEJvZHk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBGaXhVbml0eVVybCh1cmwpOiBzdHJpbmcge1xuICAgIGlmICh1cmwuaW5kZXhPZignX3dlYnBsYXllcicpID09PSAtMSkge1xuICAgICAgdXJsID0gdXJsLmNvbmNhdCgnX3dlYnBsYXllci5pb25lM2QnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ193ZWJwbGF5ZXInLCAnX3dlYnBsYXllci5pb25lM2QnKTtcbiAgICB9XG4gICAgaWYgKCF1cmwuZW5kc1dpdGgoJy5neicpKSB7XG4gICAgICB1cmwgPSB1cmwuY29uY2F0KCcuZ3onKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybC5yZXBsYWNlKCcudW5pdHkzZCcsICcnKTtcbiAgfVxufVxuIl19
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
// @dynamic
|
|
3
|
-
var ImageUtils = /** @class */ (function () {
|
|
4
|
-
function ImageUtils() {
|
|
5
|
-
}
|
|
6
|
-
ImageUtils.CreateTextureFromBase64 = function (id, base64, material) {
|
|
7
|
-
return new Promise(function (resolve) {
|
|
8
|
-
if (ImageUtils.textures.has(id)) {
|
|
9
|
-
resolve(ImageUtils.textures.get(id));
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
if (!base64) {
|
|
13
|
-
resolve(new THREE.Texture());
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
var loader = new THREE.TextureLoader();
|
|
17
|
-
loader.load(base64, function (texture) {
|
|
18
|
-
texture.anisotropy = 16;
|
|
19
|
-
texture.wrapS = THREE.RepeatWrapping;
|
|
20
|
-
texture.wrapT = THREE.RepeatWrapping;
|
|
21
|
-
texture.repeat = new THREE.Vector2(material ? material.repeatX : 1, material ? material.repeatY : 1);
|
|
22
|
-
texture.needsUpdate = true;
|
|
23
|
-
ImageUtils.textures.set(id, texture);
|
|
24
|
-
resolve(texture);
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
ImageUtils.getDocBodyWithMimeTypeDefinition = function (fileName, documentBody) {
|
|
31
|
-
if (documentBody === null) {
|
|
32
|
-
return documentBody;
|
|
33
|
-
}
|
|
34
|
-
var fileExtension = fileName.substr(fileName.lastIndexOf('.') + 1);
|
|
35
|
-
switch (fileExtension.toLowerCase()) {
|
|
36
|
-
case "jpg":
|
|
37
|
-
case "jpeg":
|
|
38
|
-
return "data:image/jpg;base64," + documentBody;
|
|
39
|
-
case "png":
|
|
40
|
-
return "data:image/png;base64," + documentBody;
|
|
41
|
-
case "gif":
|
|
42
|
-
return "data:image/gif;base64," + documentBody;
|
|
43
|
-
case "bmp":
|
|
44
|
-
return "data:image/bmp;base64," + documentBody;
|
|
45
|
-
default:
|
|
46
|
-
return "data:image/png;base64," + documentBody;
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
ImageUtils.getFixedImageFilepathUrl = function (imageFilepathUrl) {
|
|
50
|
-
return imageFilepathUrl.replace("/content/", "/content43/");
|
|
51
|
-
};
|
|
52
|
-
ImageUtils.textures = new Map();
|
|
53
|
-
return ImageUtils;
|
|
54
|
-
}());
|
|
55
|
-
export { ImageUtils };
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsidXRpbHMvaW1hZ2UudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsV0FBVztBQUNYO0lBQUE7SUFrREEsQ0FBQztJQTlDZSxrQ0FBdUIsR0FBckMsVUFBc0MsRUFBVSxFQUFFLE1BQWMsRUFBRSxRQUFrQjtRQUNsRixPQUFPLElBQUksT0FBTyxDQUFnQixVQUFDLE9BQU87WUFDeEMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDWCxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztpQkFDOUI7cUJBQU07b0JBQ0wsSUFBTSxNQUFNLEdBQXdCLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUM5RCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFDLE9BQXNCO3dCQUN6QyxPQUFPLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQzt3QkFDeEIsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO3dCQUNyQyxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7d0JBQ3JDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3JHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO3dCQUMzQixVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7d0JBQ3JDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDbkIsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVhLDJDQUFnQyxHQUE5QyxVQUErQyxRQUFnQixFQUFFLFlBQW9CO1FBQ25GLElBQUksWUFBWSxLQUFLLElBQUksRUFBRTtZQUN6QixPQUFPLFlBQVksQ0FBQztTQUNyQjtRQUNELElBQU0sYUFBYSxHQUFXLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3RSxRQUFRLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNuQyxLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssTUFBTTtnQkFDVCxPQUFPLHdCQUF3QixHQUFHLFlBQVksQ0FBQztZQUNqRCxLQUFLLEtBQUs7Z0JBQ1IsT0FBTyx3QkFBd0IsR0FBRyxZQUFZLENBQUM7WUFDakQsS0FBSyxLQUFLO2dCQUNSLE9BQU8sd0JBQXdCLEdBQUcsWUFBWSxDQUFDO1lBQ2pELEtBQUssS0FBSztnQkFDUixPQUFPLHdCQUF3QixHQUFHLFlBQVksQ0FBQztZQUNqRDtnQkFDRSxPQUFPLHdCQUF3QixHQUFHLFlBQVksQ0FBQztTQUNsRDtJQUNILENBQUM7SUFFYSxtQ0FBd0IsR0FBdEMsVUFBdUMsZ0JBQXdCO1FBQzdELE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBL0NhLG1CQUFRLEdBQStCLElBQUksR0FBRyxFQUFFLENBQUM7SUFnRGpFLGlCQUFDO0NBQUEsQUFsREQsSUFrREM7U0FsRFksVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7TWF0ZXJpYWx9IGZyb20gJy4uL21vZGVsL21hdGVyaWFsJztcbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgSW1hZ2VVdGlscyB7XG5cbiAgcHVibGljIHN0YXRpYyB0ZXh0dXJlczogTWFwPHN0cmluZywgVEhSRUUuVGV4dHVyZT4gPSBuZXcgTWFwKCk7XG5cbiAgcHVibGljIHN0YXRpYyBDcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChpZDogc3RyaW5nLCBiYXNlNjQ6IHN0cmluZywgbWF0ZXJpYWw6IE1hdGVyaWFsKTogUHJvbWlzZTxUSFJFRS5UZXh0dXJlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPFRIUkVFLlRleHR1cmU+KChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAoSW1hZ2VVdGlscy50ZXh0dXJlcy5oYXMoaWQpKSB7XG4gICAgICAgIHJlc29sdmUoSW1hZ2VVdGlscy50ZXh0dXJlcy5nZXQoaWQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghYmFzZTY0KSB7XG4gICAgICAgICAgcmVzb2x2ZShuZXcgVEhSRUUuVGV4dHVyZSgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBsb2FkZXI6IFRIUkVFLlRleHR1cmVMb2FkZXIgPSBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpO1xuICAgICAgICAgIGxvYWRlci5sb2FkKGJhc2U2NCwgKHRleHR1cmU6IFRIUkVFLlRleHR1cmUpID0+IHtcbiAgICAgICAgICAgIHRleHR1cmUuYW5pc290cm9weSA9IDE2O1xuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IFRIUkVFLlJlcGVhdFdyYXBwaW5nO1xuICAgICAgICAgICAgdGV4dHVyZS53cmFwVCA9IFRIUkVFLlJlcGVhdFdyYXBwaW5nO1xuICAgICAgICAgICAgdGV4dHVyZS5yZXBlYXQgPSBuZXcgVEhSRUUuVmVjdG9yMihtYXRlcmlhbCA/IG1hdGVyaWFsLnJlcGVhdFggOiAxLCBtYXRlcmlhbCA/IG1hdGVyaWFsLnJlcGVhdFkgOiAxKTtcbiAgICAgICAgICAgIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgICAgICAgICAgSW1hZ2VVdGlscy50ZXh0dXJlcy5zZXQoaWQsIHRleHR1cmUpO1xuICAgICAgICAgICAgcmVzb2x2ZSh0ZXh0dXJlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXREb2NCb2R5V2l0aE1pbWVUeXBlRGVmaW5pdGlvbihmaWxlTmFtZTogc3RyaW5nLCBkb2N1bWVudEJvZHk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGRvY3VtZW50Qm9keSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGRvY3VtZW50Qm9keTtcbiAgICB9XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbjogc3RyaW5nID0gZmlsZU5hbWUuc3Vic3RyKGZpbGVOYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxKTtcbiAgICBzd2l0Y2ggKGZpbGVFeHRlbnNpb24udG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSBcImpwZ1wiOlxuICAgICAgY2FzZSBcImpwZWdcIjpcbiAgICAgICAgcmV0dXJuIFwiZGF0YTppbWFnZS9qcGc7YmFzZTY0LFwiICsgZG9jdW1lbnRCb2R5O1xuICAgICAgY2FzZSBcInBuZ1wiOlxuICAgICAgICByZXR1cm4gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsXCIgKyBkb2N1bWVudEJvZHk7XG4gICAgICBjYXNlIFwiZ2lmXCI6XG4gICAgICAgIHJldHVybiBcImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxcIiArIGRvY3VtZW50Qm9keTtcbiAgICAgIGNhc2UgXCJibXBcIjpcbiAgICAgICAgcmV0dXJuIFwiZGF0YTppbWFnZS9ibXA7YmFzZTY0LFwiICsgZG9jdW1lbnRCb2R5O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LFwiICsgZG9jdW1lbnRCb2R5O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Rml4ZWRJbWFnZUZpbGVwYXRoVXJsKGltYWdlRmlsZXBhdGhVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGltYWdlRmlsZXBhdGhVcmwucmVwbGFjZShcIi9jb250ZW50L1wiLCBcIi9jb250ZW50NDMvXCIpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { Mesh } from "three";
|
|
2
|
-
var ObjectUtils = /** @class */ (function () {
|
|
3
|
-
function ObjectUtils() {
|
|
4
|
-
}
|
|
5
|
-
ObjectUtils.DisposeMaterial = function (material) {
|
|
6
|
-
var _this = this;
|
|
7
|
-
if (!material) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
if (Array.isArray(material)) {
|
|
11
|
-
material.forEach(function (mtrl) {
|
|
12
|
-
_this.materialProps
|
|
13
|
-
.filter(function (mapType) { return mtrl[mapType]; })
|
|
14
|
-
.forEach(function (mapType) { return mtrl[mapType].dispose(); });
|
|
15
|
-
mtrl.dispose();
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
this.materialProps
|
|
20
|
-
.filter(function (mapType) { return material[mapType] && material[mapType].dispose; })
|
|
21
|
-
.forEach(function (mapType) { return material[mapType].dispose(); });
|
|
22
|
-
if (material.dispose) {
|
|
23
|
-
material.dispose();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
ObjectUtils.DisposeObject = function (object) {
|
|
28
|
-
var _this = this;
|
|
29
|
-
if (!object) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
if (object.children.length) {
|
|
33
|
-
object.children.forEach(function (child) { return _this.DisposeObject(child); });
|
|
34
|
-
}
|
|
35
|
-
this.DisposeNode(object);
|
|
36
|
-
};
|
|
37
|
-
ObjectUtils.DisposeNode = function (node) {
|
|
38
|
-
var _this = this;
|
|
39
|
-
node.traverse(function (obj) {
|
|
40
|
-
if (obj instanceof Mesh) {
|
|
41
|
-
if (obj.geometry) {
|
|
42
|
-
obj.geometry.dispose();
|
|
43
|
-
}
|
|
44
|
-
_this.DisposeMaterial(obj.material);
|
|
45
|
-
}
|
|
46
|
-
if (typeof obj.dispose === 'function') {
|
|
47
|
-
// @ts-ignore
|
|
48
|
-
obj.dispose();
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
ObjectUtils.materialProps = ['map', 'lightMap', 'bumpMap', 'normalMap', 'specularMap', 'envMap', 'aoMap', 'roughnessMap', 'metalnessMap'];
|
|
53
|
-
return ObjectUtils;
|
|
54
|
-
}());
|
|
55
|
-
export { ObjectUtils };
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvbGlqbml0L2NvbmZpZ3VyYXRvci8iLCJzb3VyY2VzIjpbInV0aWxzL29iamVjdC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsSUFBSSxFQUFXLE1BQU0sT0FBTyxDQUFDO0FBRS9DO0lBQUE7SUFpREEsQ0FBQztJQTlDaUIsMkJBQWUsR0FBN0IsVUFBOEIsUUFBK0I7UUFBN0QsaUJBbUJDO1FBbEJHLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDWCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDekIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFBLElBQUk7Z0JBQ2pCLEtBQUksQ0FBQyxhQUFhO3FCQUNiLE1BQU0sQ0FBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBYixDQUFhLENBQUM7cUJBQ2hDLE9BQU8sQ0FBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBdkIsQ0FBdUIsQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsSUFBSSxDQUFDLGFBQWE7aUJBQ2IsTUFBTSxDQUFDLFVBQUEsT0FBTyxJQUFJLE9BQUEsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQTlDLENBQThDLENBQUM7aUJBQ2pFLE9BQU8sQ0FBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBM0IsQ0FBMkIsQ0FBQyxDQUFDO1lBQ3JELElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtnQkFDbEIsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3RCO1NBQ0o7SUFDTCxDQUFDO0lBRWEseUJBQWEsR0FBM0IsVUFBNEIsTUFBdUI7UUFBbkQsaUJBUUM7UUFQRyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN4QixNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQXpCLENBQXlCLENBQUMsQ0FBQztTQUMvRDtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVjLHVCQUFXLEdBQTFCLFVBQTJCLElBQXFCO1FBQWhELGlCQWFDO1FBWkcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFDLEdBQWE7WUFDeEIsSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFO2dCQUNyQixJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7b0JBQ2QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDMUI7Z0JBQ0QsS0FBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdEM7WUFDRCxJQUFJLE9BQVEsR0FBVyxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7Z0JBQzVDLGFBQWE7Z0JBQ2IsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2pCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBOUNNLHlCQUFhLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBZ0R6SSxrQkFBQztDQUFBLEFBakRELElBaURDO1NBakRZLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01hdGVyaWFsLCBNZXNoLCBPYmplY3QzRH0gZnJvbSBcInRocmVlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgT2JqZWN0VXRpbHMge1xyXG4gICAgc3RhdGljIG1hdGVyaWFsUHJvcHMgPSBbJ21hcCcsICdsaWdodE1hcCcsICdidW1wTWFwJywgJ25vcm1hbE1hcCcsICdzcGVjdWxhck1hcCcsICdlbnZNYXAnLCAnYW9NYXAnLCAncm91Z2huZXNzTWFwJywgJ21ldGFsbmVzc01hcCddO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgRGlzcG9zZU1hdGVyaWFsKG1hdGVyaWFsOiBNYXRlcmlhbCB8IE1hdGVyaWFsW10pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIW1hdGVyaWFsKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobWF0ZXJpYWwpKSB7XHJcbiAgICAgICAgICAgIG1hdGVyaWFsLmZvckVhY2gobXRybCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hdGVyaWFsUHJvcHNcclxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKG1hcFR5cGUgPT4gbXRybFttYXBUeXBlXSlcclxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaChtYXBUeXBlID0+IG10cmxbbWFwVHlwZV0uZGlzcG9zZSgpKTtcclxuICAgICAgICAgICAgICAgIG10cmwuZGlzcG9zZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm1hdGVyaWFsUHJvcHNcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIobWFwVHlwZSA9PiBtYXRlcmlhbFttYXBUeXBlXSAmJiBtYXRlcmlhbFttYXBUeXBlXS5kaXNwb3NlKVxyXG4gICAgICAgICAgICAgICAgLmZvckVhY2gobWFwVHlwZSA9PiBtYXRlcmlhbFttYXBUeXBlXS5kaXNwb3NlKCkpO1xyXG4gICAgICAgICAgICBpZiAobWF0ZXJpYWwuZGlzcG9zZSkge1xyXG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuZGlzcG9zZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgRGlzcG9zZU9iamVjdChvYmplY3Q6IE9iamVjdDNEIHwgTWVzaCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghb2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9iamVjdC5jaGlsZHJlbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgb2JqZWN0LmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gdGhpcy5EaXNwb3NlT2JqZWN0KGNoaWxkKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuRGlzcG9zZU5vZGUob2JqZWN0KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBEaXNwb3NlTm9kZShub2RlOiBPYmplY3QzRCB8IE1lc2gpOiB2b2lkIHtcclxuICAgICAgICBub2RlLnRyYXZlcnNlKChvYmo6IE9iamVjdDNEKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBNZXNoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob2JqLmdlb21ldHJ5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb2JqLmdlb21ldHJ5LmRpc3Bvc2UoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuRGlzcG9zZU1hdGVyaWFsKG9iai5tYXRlcmlhbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiAob2JqIGFzIGFueSkuZGlzcG9zZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgb2JqLmRpc3Bvc2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
var SceneUtils = /** @class */ (function () {
|
|
3
|
-
function SceneUtils() {
|
|
4
|
-
}
|
|
5
|
-
SceneUtils.TrySelectorConnection = function (scene, parent, part1, part2, createAddableFn) {
|
|
6
|
-
var addable;
|
|
7
|
-
if (createAddableFn) {
|
|
8
|
-
addable = part2;
|
|
9
|
-
part2 = createAddableFn(addable);
|
|
10
|
-
}
|
|
11
|
-
for (var i = 0; i < part1.children.length; i++) {
|
|
12
|
-
for (var ii = 0; ii < part2.children.length; ii++) {
|
|
13
|
-
var con1 = part1.children[i];
|
|
14
|
-
var con2 = part2.children[ii];
|
|
15
|
-
// if these connectors can connect connect them
|
|
16
|
-
if (!con1['connected'] && !con2['connected'] && this.CanSelectorConnect(con1, con2)) {
|
|
17
|
-
// if addable, continue this loop with a new addable
|
|
18
|
-
if (addable) {
|
|
19
|
-
var newPart2 = createAddableFn(addable, part2, part1);
|
|
20
|
-
// reference of part2 changed, so refresh con2
|
|
21
|
-
this.SelectorConnect(scene, parent, con1, newPart2.children[ii]);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
return this.SelectorConnect(scene, parent, con1, con2);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
};
|
|
31
|
-
SceneUtils.Convert3DPointToScreenPoint = function (point, camera, width, height) {
|
|
32
|
-
if (!point) {
|
|
33
|
-
return new THREE.Vector2();
|
|
34
|
-
}
|
|
35
|
-
var vector = point.clone().project(camera);
|
|
36
|
-
vector.x = (vector.x + 1) / 2 * width;
|
|
37
|
-
vector.y = -(vector.y - 1) / 2 * height;
|
|
38
|
-
return new THREE.Vector2(vector.x, vector.y);
|
|
39
|
-
};
|
|
40
|
-
SceneUtils.CanSelectorConnect = function (con1, con2) {
|
|
41
|
-
var con1Name = con1 instanceof THREE.Object3D ? con1.name : con1.connector;
|
|
42
|
-
var con2Name = con2 instanceof THREE.Object3D ? con2.name : con2.connector;
|
|
43
|
-
var sameParent = con1 instanceof THREE.Object3D && con2 instanceof THREE.Object3D ? con1.parent === con2.parent : false;
|
|
44
|
-
var parts1 = con1Name.toUpperCase().split('_'), parts2 = con2Name.toUpperCase().split('_');
|
|
45
|
-
if (parts1.length >= 3 && parts2.length >= 3 && !sameParent) {
|
|
46
|
-
var connectable = parts1[0] === 'C' && parts2[0] === 'C' &&
|
|
47
|
-
parts1[1] === parts2[1] && parts1[2] !== parts2[2];
|
|
48
|
-
return connectable;
|
|
49
|
-
}
|
|
50
|
-
return false;
|
|
51
|
-
};
|
|
52
|
-
SceneUtils.SelectorConnect = function (scene, parent, con1, con2) {
|
|
53
|
-
if (!scene || !parent) {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
con1['connectedTo'] = con2.parent.name;
|
|
57
|
-
con2['connectedTo'] = con1.parent.name;
|
|
58
|
-
var motherRotation = new THREE.Euler(0, 0, 0);
|
|
59
|
-
var motherPosition = new THREE.Vector3(0, 0, 0);
|
|
60
|
-
scene.updateMatrixWorld(true);
|
|
61
|
-
motherRotation.copy(parent.rotation);
|
|
62
|
-
parent.getWorldPosition(motherPosition);
|
|
63
|
-
parent.rotation.set(0, 0, 0);
|
|
64
|
-
parent.position.set(0, 0, 0);
|
|
65
|
-
var con1Quat = new THREE.Quaternion();
|
|
66
|
-
con1.getWorldQuaternion(con1Quat);
|
|
67
|
-
var con2Quat = new THREE.Quaternion();
|
|
68
|
-
con2.getWorldQuaternion(con2Quat);
|
|
69
|
-
var con1QuatParent = new THREE.Quaternion();
|
|
70
|
-
con1.parent.getWorldQuaternion(con1QuatParent);
|
|
71
|
-
var con2QuatParent = new THREE.Quaternion();
|
|
72
|
-
con2.parent.getWorldQuaternion(con2QuatParent);
|
|
73
|
-
var rotation = new THREE.Quaternion().multiplyQuaternions(con1Quat.invert(), con2Quat).multiply(new THREE.Quaternion().multiplyQuaternions(con1QuatParent, con1QuatParent));
|
|
74
|
-
con2.parent.quaternion.copy(rotation);
|
|
75
|
-
// Update because the matrix has been tempered with
|
|
76
|
-
scene.updateMatrixWorld(true);
|
|
77
|
-
// Move the connectors towards eachother
|
|
78
|
-
var con1Pos = new THREE.Vector3();
|
|
79
|
-
con1.getWorldPosition(con1Pos);
|
|
80
|
-
var con2Pos = new THREE.Vector3();
|
|
81
|
-
con2.getWorldPosition(con2Pos);
|
|
82
|
-
var move = con1Pos.sub(con2Pos);
|
|
83
|
-
con2.parent.position.x += move.x;
|
|
84
|
-
con2.parent.position.y += move.y;
|
|
85
|
-
con2.parent.position.z += move.z;
|
|
86
|
-
// reset parent's objects rotation and position
|
|
87
|
-
parent.rotation.copy(motherRotation);
|
|
88
|
-
parent.position.copy(motherPosition);
|
|
89
|
-
scene.updateMatrixWorld(true);
|
|
90
|
-
// Set the connected flag
|
|
91
|
-
con1['connected'] = true;
|
|
92
|
-
con2['connected'] = true;
|
|
93
|
-
return true;
|
|
94
|
-
};
|
|
95
|
-
return SceneUtils;
|
|
96
|
-
}());
|
|
97
|
-
export { SceneUtils };
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUtdXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsidXRpbHMvc2NlbmUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0I7SUFBQTtJQW9IQSxDQUFDO0lBbEhpQixnQ0FBcUIsR0FBbkMsVUFBb0MsS0FBa0IsRUFBRSxNQUFzQixFQUMxRSxLQUFVLEVBQUUsS0FBVSxFQUFFLGVBQTBCO1FBQ2xELElBQUksT0FBWSxDQUFDO1FBQ2pCLElBQUksZUFBZSxFQUFFO1lBQ2pCLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDaEIsS0FBSyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQztRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1QyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUU7Z0JBQy9DLElBQU0sSUFBSSxHQUFtQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvQyxJQUFNLElBQUksR0FBbUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDaEQsK0NBQStDO2dCQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7b0JBQ2pGLG9EQUFvRDtvQkFDcEQsSUFBSSxPQUFPLEVBQUU7d0JBQ1QsSUFBTSxRQUFRLEdBQW1CLGVBQWUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxF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QztRQUVyQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUIseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUwsaUJBQUM7QUFBRCxDQUFDLEFBcEhELElBb0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNjZW5lVXRpbHMge1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgVHJ5U2VsZWN0b3JDb25uZWN0aW9uKHNjZW5lOiBUSFJFRS5TY2VuZSwgcGFyZW50OiBUSFJFRS5PYmplY3QzRCxcclxuICAgICAgICBwYXJ0MTogYW55LCBwYXJ0MjogYW55LCBjcmVhdGVBZGRhYmxlRm4/OiBGdW5jdGlvbik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBhZGRhYmxlOiBhbnk7XHJcbiAgICAgICAgaWYgKGNyZWF0ZUFkZGFibGVGbikge1xyXG4gICAgICAgICAgICBhZGRhYmxlID0gcGFydDI7XHJcbiAgICAgICAgICAgIHBhcnQyID0gY3JlYXRlQWRkYWJsZUZuKGFkZGFibGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcnQxLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGlpID0gMDsgaWkgPCBwYXJ0Mi5jaGlsZHJlbi5sZW5ndGg7IGlpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbjE6IFRIUkVFLk9iamVjdDNEID0gcGFydDEuY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb24yOiBUSFJFRS5PYmplY3QzRCA9IHBhcnQyLmNoaWxkcmVuW2lpXTtcclxuICAgICAgICAgICAgICAgIC8vIGlmIHRoZXNlIGNvbm5lY3RvcnMgY2FuIGNvbm5lY3QgY29ubmVjdCB0aGVtXHJcbiAgICAgICAgICAgICAgICBpZiAoIWNvbjFbJ2Nvbm5lY3RlZCddICYmICFjb24yWydjb25uZWN0ZWQnXSAmJiB0aGlzLkNhblNlbGVjdG9yQ29ubmVjdChjb24xLCBjb24yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGFkZGFibGUsIGNvbnRpbnVlIHRoaXMgbG9vcCB3aXRoIGEgbmV3IGFkZGFibGVcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWRkYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdQYXJ0MjogVEhSRUUuT2JqZWN0M0QgPSBjcmVhdGVBZGRhYmxlRm4oYWRkYWJsZSwgcGFydDIsIHBhcnQxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVmZXJlbmNlIG9mIHBhcnQyIGNoYW5nZWQsIHNvIHJlZnJlc2ggY29uMlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNlbGVjdG9yQ29ubmVjdChzY2VuZSwgcGFyZW50LCBjb24xLCBuZXdQYXJ0Mi5jaGlsZHJlbltpaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLlNlbGVjdG9yQ29ubmVjdChzY2VuZSwgcGFyZW50LCBjb24xLCBjb24yKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgQ29udmVydDNEUG9pbnRUb1NjcmVlblBvaW50KHBvaW50OiBUSFJFRS5WZWN0b3IzLCBjYW1lcmE6IFRIUkVFLkNhbWVyYSwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiBUSFJFRS5WZWN0b3IyIHtcclxuICAgICAgICBpZiAoIXBvaW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB2ZWN0b3I6IFRIUkVFLlZlY3RvcjMgPSBwb2ludC5jbG9uZSgpLnByb2plY3QoY2FtZXJhKTtcclxuICAgICAgICB2ZWN0b3IueCA9ICh2ZWN0b3IueCArIDEpIC8gMiAqIHdpZHRoO1xyXG4gICAgICAgIHZlY3Rvci55ID0gLSh2ZWN0b3IueSAtIDEpIC8gMiAqIGhlaWdodDtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLlZlY3RvcjIodmVjdG9yLngsIHZlY3Rvci55KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIENhblNlbGVjdG9yQ29ubmVjdChjb24xOiBUSFJFRS5PYmplY3QzRCB8IGFueSwgY29uMjogVEhSRUUuT2JqZWN0M0QgfCBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBjb24xTmFtZTogc3RyaW5nID0gY29uMSBpbnN0YW5jZW9mIFRIUkVFLk9iamVjdDNEID8gY29uMS5uYW1lIDogY29uMS5jb25uZWN0b3I7XHJcbiAgICAgICAgY29uc3QgY29uMk5hbWU6IHN0cmluZyA9IGNvbjIgaW5zdGFuY2VvZiBUSFJFRS5PYmplY3QzRCA/IGNvbjIubmFtZSA6IGNvbjIuY29ubmVjdG9yO1xyXG4gICAgICAgIGNvbnN0IHNhbWVQYXJlbnQ6IGJvb2xlYW4gPSBjb24xIGluc3RhbmNlb2YgVEhSRUUuT2JqZWN0M0QgJiYgY29uMiBpbnN0YW5jZW9mIFRIUkVFLk9iamVjdDNEID8gY29uMS5wYXJlbnQgPT09IGNvbjIucGFyZW50IDogZmFsc2U7XHJcbiAgICAgICAgY29uc3QgcGFydHMxOiBzdHJpbmdbXSA9IGNvbjFOYW1lLnRvVXBwZXJDYXNlKCkuc3BsaXQoJ18nKSxcclxuICAgICAgICAgICAgcGFydHMyOiBzdHJpbmdbXSA9IGNvbjJOYW1lLnRvVXBwZXJDYXNlKCkuc3BsaXQoJ18nKTtcclxuICAgICAgICBpZiAocGFydHMxLmxlbmd0aCA+PSAzICYmIHBhcnRzMi5sZW5ndGggPj0gMyAmJiAhc2FtZVBhcmVudCkge1xyXG4gICAgICAgICAgICBjb25zdCBjb25uZWN0YWJsZTogYm9vbGVhbiA9IHBhcnRzMVswXSA9PT0gJ0MnICYmIHBhcnRzMlswXSA9PT0gJ0MnICYmXHJcbiAgICAgICAgICAgICAgICBwYXJ0czFbMV0gPT09IHBhcnRzMlsxXSAmJiBwYXJ0czFbMl0gIT09IHBhcnRzMlsyXTtcclxuICAgICAgICAgICAgcmV0dXJuIGNvbm5lY3RhYmxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgU2VsZWN0b3JDb25uZWN0KHNjZW5lOiBUSFJFRS5TY2VuZSwgcGFyZW50OiBUSFJFRS5PYmplY3QzRCwgY29uMTogVEhSRUUuT2JqZWN0M0QsIGNvbjI6IFRIUkVFLk9iamVjdDNEKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFzY2VuZSB8fCAhcGFyZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uMVsnY29ubmVjdGVkVG8nXSA9IGNvbjIucGFyZW50Lm5hbWU7XHJcbiAgICAgICAgY29uMlsnY29ubmVjdGVkVG8nXSA9IGNvbjEucGFyZW50Lm5hbWU7XHJcblxyXG4gICAgICAgIGNvbnN0IG1vdGhlclJvdGF0aW9uOiBUSFJFRS5FdWxlciA9IG5ldyBUSFJFRS5FdWxlcigwLCAwLCAwKTtcclxuICAgICAgICBjb25zdCBtb3RoZXJQb3NpdGlvbjogVEhSRUUuVmVjdG9yMyA9IG5ldyBUSFJFRS5WZWN0b3IzKDAsIDAsIDApO1xyXG5cclxuICAgICAgICBzY2VuZS51cGRhdGVNYXRyaXhXb3JsZCh0cnVlKTtcclxuICAgICAgICBtb3RoZXJSb3RhdGlvbi5jb3B5KHBhcmVudC5yb3RhdGlvbik7XHJcbiAgICAgICAgcGFyZW50LmdldFdvcmxkUG9zaXRpb24obW90aGVyUG9zaXRpb24pO1xyXG5cclxuICAgICAgICBwYXJlbnQucm90YXRpb24uc2V0KDAsIDAsIDApO1xyXG4gICAgICAgIHBhcmVudC5wb3NpdGlvbi5zZXQoMCwgMCwgMCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbjFRdWF0OiBUSFJFRS5RdWF0ZXJuaW9uID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcclxuICAgICAgICBjb24xLmdldFdvcmxkUXVhdGVybmlvbihjb24xUXVhdCk7XHJcbiAgICAgICAgY29uc3QgY29uMlF1YXQ6IFRIUkVFLlF1YXRlcm5pb24gPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xyXG4gICAgICAgIGNvbjIuZ2V0V29ybGRRdWF0ZXJuaW9uKGNvbjJRdWF0KTtcclxuICAgICAgICBjb25zdCBjb24xUXVhdFBhcmVudDogVEhSRUUuUXVhdGVybmlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgICAgICAgY29uMS5wYXJlbnQuZ2V0V29ybGRRdWF0ZXJuaW9uKGNvbjFRdWF0UGFyZW50KTtcclxuICAgICAgICBjb25zdCBjb24yUXVhdFBhcmVudDogVEhSRUUuUXVhdGVybmlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgICAgICAgY29uMi5wYXJlbnQuZ2V0V29ybGRRdWF0ZXJuaW9uKGNvbjJRdWF0UGFyZW50KTtcclxuXHJcbiAgICAgICAgY29uc3Qgcm90YXRpb246IFRIUkVFLlF1YXRlcm5pb24gPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpLm11bHRpcGx5UXVhdGVybmlvbnMoXHJcbiAgICAgICAgICAgIGNvbjFRdWF0LmludmVydCgpLFxyXG4gICAgICAgICAgICBjb24yUXVhdFxyXG4gICAgICAgICkubXVsdGlwbHkoXHJcbiAgICAgICAgICAgIG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCkubXVsdGlwbHlRdWF0ZXJuaW9ucyhcclxuICAgICAgICAgICAgICAgIGNvbjFRdWF0UGFyZW50LFxyXG4gICAgICAgICAgICAgICAgY29uMVF1YXRQYXJlbnRcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbjIucGFyZW50LnF1YXRlcm5pb24uY29weShyb3RhdGlvbik7XHJcbiAgICAgICAgLy8gVXBkYXRlIGJlY2F1c2UgdGhlIG1hdHJpeCBoYXMgYmVlbiB0ZW1wZXJlZCB3aXRoXHJcbiAgICAgICAgc2NlbmUudXBkYXRlTWF0cml4V29ybGQodHJ1ZSk7XHJcblxyXG4gICAgICAgIC8vIE1vdmUgdGhlIGNvbm5lY3RvcnMgdG93YXJkcyBlYWNob3RoZXJcclxuICAgICAgICBjb25zdCBjb24xUG9zOiBUSFJFRS5WZWN0b3IzID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgICAgICBjb24xLmdldFdvcmxkUG9zaXRpb24oY29uMVBvcyk7XHJcbiAgICAgICAgY29uc3QgY29uMlBvczogVEhSRUUuVmVjdG9yMyA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgICAgICAgY29uMi5nZXRXb3JsZFBvc2l0aW9uKGNvbjJQb3MpO1xyXG5cclxuICAgICAgICBjb25zdCBtb3ZlOiBUSFJFRS5WZWN0b3IzID0gY29uMVBvcy5zdWIoY29uMlBvcyk7XHJcbiAgICAgICAgY29uMi5wYXJlbnQucG9zaXRpb24ueCArPSBtb3ZlLng7XHJcbiAgICAgICAgY29uMi5wYXJlbnQucG9zaXRpb24ueSArPSBtb3ZlLnk7XHJcbiAgICAgICAgY29uMi5wYXJlbnQucG9zaXRpb24ueiArPSBtb3ZlLno7XHJcblxyXG4gICAgICAgIC8vIHJlc2V0IHBhcmVudCdzIG9iamVjdHMgcm90YXRpb24gYW5kIHBvc2l0aW9uXHJcbiAgICAgICAgcGFyZW50LnJvdGF0aW9uLmNvcHkobW90aGVyUm90YXRpb24pO1xyXG4gICAgICAgIHBhcmVudC5wb3NpdGlvbi5jb3B5KG1vdGhlclBvc2l0aW9uKTtcclxuXHJcbiAgICAgICAgc2NlbmUudXBkYXRlTWF0cml4V29ybGQodHJ1ZSk7XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgY29ubmVjdGVkIGZsYWdcclxuICAgICAgICBjb24xWydjb25uZWN0ZWQnXSA9IHRydWU7XHJcbiAgICAgICAgY29uMlsnY29ubmVjdGVkJ10gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|