@colijnit/configurator 1.0.17 → 1.0.19
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/app/builder.d.ts +53 -53
- package/app/components/answers/answer/answer.component.d.ts +11 -11
- package/app/components/answers/answers.component.d.ts +8 -8
- package/app/components/answers/answers.module.d.ts +2 -2
- package/app/components/selections/selections.component.d.ts +22 -22
- package/app/components/selections/selections.module.d.ts +2 -2
- package/app/components/shared/loader/loader.component.d.ts +2 -2
- package/app/components/shared/shared.module.d.ts +2 -2
- package/app/directives/visibility-observer-master.directive.d.ts +9 -9
- package/app/directives/visibility-observer.directive.d.ts +13 -13
- package/app/services/configurator.service.d.ts +22 -22
- package/app/services/image-cache.service.d.ts +10 -10
- package/app/services/locator.service.d.ts +4 -4
- package/bundles/colijnit-configurator.umd.js +2455 -2455
- package/bundles/colijnit-configurator.umd.js.map +1 -1
- package/bundles/colijnit-configurator.umd.min.js +1 -1
- package/bundles/colijnit-configurator.umd.min.js.map +1 -1
- package/colijnit-configurator.d.ts +10 -10
- package/colijnit-configurator.metadata.json +1 -1
- package/esm2015/app/builder.js +477 -477
- package/esm2015/app/components/answers/answer/answer.component.js +51 -51
- package/esm2015/app/components/answers/answers.component.js +25 -25
- package/esm2015/app/components/answers/answers.module.js +28 -28
- package/esm2015/app/components/selections/selections.component.js +85 -85
- package/esm2015/app/components/selections/selections.module.js +22 -22
- package/esm2015/app/components/shared/loader/loader.component.js +12 -12
- package/esm2015/app/components/shared/shared.module.js +20 -20
- package/esm2015/app/directives/visibility-observer-master.directive.js +50 -50
- package/esm2015/app/directives/visibility-observer.directive.js +56 -56
- package/esm2015/app/services/configurator.service.js +94 -94
- package/esm2015/app/services/image-cache.service.js +66 -66
- package/esm2015/app/services/locator.service.js +9 -9
- package/esm2015/colijnit-configurator.js +10 -10
- package/esm2015/helper/variation-helper.js +215 -215
- package/esm2015/model/material.js +10 -10
- package/esm2015/model/variation-settings.js +5 -5
- package/esm2015/model/variation.js +2 -2
- package/esm2015/public_api.js +6 -6
- package/esm2015/utils/asset.utils.js +73 -73
- package/esm2015/utils/file.utils.js +138 -138
- package/esm2015/utils/image.utils.js +51 -51
- package/esm2015/utils/object.utils.js +48 -48
- package/esm2015/utils/scene-utils.js +93 -93
- package/esm2015/utils/threed.utils.js +221 -221
- package/esm2015/utils/variation-utils.js +223 -223
- package/esm5/app/builder.js +591 -591
- package/esm5/app/components/answers/answer/answer.component.js +63 -63
- package/esm5/app/components/answers/answers.component.js +26 -26
- package/esm5/app/components/answers/answers.module.js +31 -31
- package/esm5/app/components/selections/selections.component.js +103 -103
- package/esm5/app/components/selections/selections.module.js +25 -25
- package/esm5/app/components/shared/loader/loader.component.js +15 -15
- package/esm5/app/components/shared/shared.module.js +23 -23
- package/esm5/app/directives/visibility-observer-master.directive.js +63 -63
- package/esm5/app/directives/visibility-observer.directive.js +58 -58
- package/esm5/app/services/configurator.service.js +160 -160
- package/esm5/app/services/image-cache.service.js +69 -69
- package/esm5/app/services/locator.service.js +12 -12
- package/esm5/colijnit-configurator.js +10 -10
- package/esm5/helper/variation-helper.js +267 -267
- package/esm5/model/material.js +12 -12
- package/esm5/model/variation-settings.js +7 -7
- package/esm5/model/variation.js +6 -6
- package/esm5/public_api.js +6 -6
- package/esm5/utils/asset.utils.js +105 -105
- package/esm5/utils/file.utils.js +150 -150
- package/esm5/utils/image.utils.js +55 -55
- package/esm5/utils/object.utils.js +55 -55
- package/esm5/utils/scene-utils.js +97 -97
- package/esm5/utils/threed.utils.js +278 -278
- package/esm5/utils/variation-utils.js +326 -326
- package/fesm2015/colijnit-configurator.js +1946 -1946
- package/fesm2015/colijnit-configurator.js.map +1 -1
- package/fesm5/colijnit-configurator.js +2457 -2457
- package/fesm5/colijnit-configurator.js.map +1 -1
- package/helper/variation-helper.d.ts +14 -14
- package/model/material.d.ts +17 -17
- package/model/variation-settings.d.ts +14 -14
- package/model/variation.d.ts +10 -10
- package/package.json +3 -2
- package/public_api.d.ts +6 -6
- package/utils/asset.utils.d.ts +13 -13
- package/utils/file.utils.d.ts +27 -27
- package/utils/image.utils.d.ts +8 -8
- package/utils/object.utils.d.ts +7 -7
- package/utils/scene-utils.d.ts +7 -7
- package/utils/threed.utils.d.ts +16 -16
- package/utils/variation-utils.d.ts +12 -12
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
var VariationSettings = /** @class */ (function () {
|
|
2
|
-
function VariationSettings() {
|
|
3
|
-
this.settings = {};
|
|
4
|
-
}
|
|
5
|
-
return VariationSettings;
|
|
6
|
-
}());
|
|
7
|
-
export { VariationSettings };
|
|
1
|
+
var VariationSettings = /** @class */ (function () {
|
|
2
|
+
function VariationSettings() {
|
|
3
|
+
this.settings = {};
|
|
4
|
+
}
|
|
5
|
+
return VariationSettings;
|
|
6
|
+
}());
|
|
7
|
+
export { VariationSettings };
|
|
8
8
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWF0aW9uLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvbGlqbml0L2NvbmZpZ3VyYXRvci8iLCJzb3VyY2VzIjpbIm1vZGVsL3ZhcmlhdGlvbi1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUFBO1FBRVMsYUFBUSxHQUFRLEVBQUUsQ0FBQztJQVc1QixDQUFDO0lBQUQsd0JBQUM7QUFBRCxDQUFDLEFBYkQsSUFhQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBWYXJpYXRpb25TZXR0aW5ncyB7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgc2V0dGluZ3M6IGFueSA9IHt9O1xuICBwdWJsaWMgdGV4dHVyZTogc3RyaW5nO1xuICBwdWJsaWMgdGV4dHVyZUZpbGVuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBub3JtYWw6IHN0cmluZztcbiAgcHVibGljIG5vcm1hbEZpbGVuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhbzogc3RyaW5nO1xuICBwdWJsaWMgYW9GaWxlbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgbWV0YWxuZXNzOiBzdHJpbmc7XG4gIHB1YmxpYyBtZXRhbG5lc3NGaWxlbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcm91Z2huZXNzOiBzdHJpbmc7XG4gIHB1YmxpYyByb3VnaG5lc3NGaWxlbmFtZTogc3RyaW5nO1xufVxuIl19
|
package/esm5/model/variation.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var Variation = /** @class */ (function () {
|
|
2
|
-
function Variation() {
|
|
3
|
-
}
|
|
4
|
-
return Variation;
|
|
5
|
-
}());
|
|
6
|
-
export { Variation };
|
|
1
|
+
var Variation = /** @class */ (function () {
|
|
2
|
+
function Variation() {
|
|
3
|
+
}
|
|
4
|
+
return Variation;
|
|
5
|
+
}());
|
|
6
|
+
export { Variation };
|
|
7
7
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWF0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvbGlqbml0L2NvbmZpZ3VyYXRvci8iLCJzb3VyY2VzIjpbIm1vZGVsL3ZhcmlhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtJQUFBO0lBUUEsQ0FBQztJQUFELGdCQUFDO0FBQUQsQ0FBQyxBQVJELElBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01hdGVyaWFsfSBmcm9tICcuL21hdGVyaWFsJztcblxuZXhwb3J0IGNsYXNzIFZhcmlhdGlvbiB7XG4gIHB1YmxpYyBkZWNvSWQ6IG51bWJlcjtcbiAgcHVibGljIGJyYW5kSWQ6IHN0cmluZztcbiAgcHVibGljIGdhbWVPYmplY3ROYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBub2RlOiBhbnk7XG4gIHB1YmxpYyBzdXBwbGllckFydGljbGVOcjogc3RyaW5nO1xuICBwdWJsaWMgbWF0ZXJpYWxJZDogc3RyaW5nO1xuICBwdWJsaWMgbWF0ZXJpYWw6IE1hdGVyaWFsO1xufVxuIl19
|
package/esm5/public_api.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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';
|
|
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
7
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC9jb25maWd1cmF0b3IvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxrREFBa0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwL2J1aWxkZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwcC9zZXJ2aWNlcy9jb25maWd1cmF0b3Iuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYW5zd2Vycy9hbnN3ZXJzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYW5zd2Vycy9hbnN3ZXJzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zZWxlY3Rpb25zLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zZWxlY3Rpb25zLmNvbXBvbmVudCc7XHJcbiJdfQ==
|
|
@@ -1,106 +1,106 @@
|
|
|
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 };
|
|
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
106
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsidXRpbHMvYXNzZXQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFHbkM7SUFBdUMscUNBQVE7SUFBL0M7O0lBUUEsQ0FBQztJQUFELHdCQUFDO0FBQUQsQ0FBQyxBQVJELENBQXVDLFFBQVEsR0FROUM7O0FBRUQ7SUFBQTtJQXVFQSxDQUFDO0lBckVxQixrQ0FBdUIsR0FBM0MsVUFBNEMsS0FBd0I7Ozs7Ozt3QkFDNUQsUUFBUSxHQUFzQixJQUFJLFFBQVEsRUFBRSxDQUFDO3dCQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFOzRCQUNWLHNCQUFPLFFBQVEsRUFBQzt5QkFDakI7d0JBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFOzRCQUNsQixVQUFVLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQzt5QkFDNUQ7NkJBQ0csS0FBSyxDQUFDLE9BQU8sRUFBYix3QkFBYTt3QkFDZixLQUFBLFFBQVEsQ0FBQTt3QkFBVyxxQkFBTSxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBQTs7d0JBQTNHLEdBQVMsT0FBTyxHQUFHLFNBQXdGLENBQUM7d0JBQzVHLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQzt3QkFFekMsUUFBUSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDOzs7NkJBRS9DLEtBQUssQ0FBQyxNQUFNLEVBQVosd0JBQVk7d0JBQ2QsS0FBQSxRQUFRLENBQUE7d0JBQVUscUJBQU0sVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUE7O3dCQUF4RyxHQUFTLE1BQU0sR0FBRyxTQUFzRixDQUFDO3dCQUN6RyxRQUFRLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7Ozs2QkFLN0MsS0FBSyxDQUFDLEVBQUUsRUFBUix3QkFBUTt3QkFDVixLQUFBLFFBQVEsQ0FBQTt3QkFBTSxxQkFBTSxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBQTs7d0JBQTVGLEdBQVMsRUFBRSxHQUFHLFNBQThFLENBQUM7d0JBQzdGLFFBQVEsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQzs7OzZCQUVyQyxLQUFLLENBQUMsU0FBUyxFQUFmLHdCQUFlO3dCQUNqQixLQUFBLFFBQVEsQ0FBQTt3QkFBYSxxQkFBTSxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxZQUFZLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBQTs7d0JBQWpILEdBQVMsU0FBUyxHQUFHLFNBQTRGLENBQUM7d0JBQ2xILFFBQVEsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7Ozs2QkFFbkQsS0FBSyxDQUFDLFNBQVMsRUFBZix5QkFBZTt3QkFDakIsS0FBQSxRQUFRLENBQUE7d0JBQWEscUJBQU0sVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUE7O3dCQUFqSCxHQUFTLFNBQVMsR0FBRyxTQUE0RixDQUFDO3dCQUNsSCxRQUFRLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDOzs2QkFFdkQsc0JBQU8sUUFBUSxFQUFDOzs7O0tBQ2pCO0lBRWEsZ0NBQXFCLEdBQW5DLFVBQW9DLFFBQWtCLEVBQUUsUUFBYTtRQUNuRSxJQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMvQiw4Q0FBOEM7U0FDL0M7UUFFRCxJQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzFEO1FBRUQsSUFBTSxnQkFBZ0IsR0FBWSxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BFLElBQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUMvRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25CLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDekM7UUFFRCxJQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDckIsUUFBUSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBQ0gsaUJBQUM7QUFBRCxDQUFDLEFBdkVELElBdUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNYXRlcmlhbH0gZnJvbSAnLi4vbW9kZWwvbWF0ZXJpYWwnO1xuaW1wb3J0IHtJbWFnZVV0aWxzfSBmcm9tICcuL2ltYWdlLnV0aWxzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7c1JHQkVuY29kaW5nfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQge1ZhcmlhdGlvblNldHRpbmdzfSBmcm9tICcuLi9tb2RlbC92YXJpYXRpb24tc2V0dGluZ3MnO1xuXG5leHBvcnQgY2xhc3MgRnVybml0dXJlTWF0ZXJpYWwgZXh0ZW5kcyBNYXRlcmlhbCB7XG5cbiAgcHVibGljIHRleHR1cmVGaWxlbmFtZT86IHN0cmluZztcbiAgcHVibGljIG5vcm1hbEZpbGVuYW1lPzogc3RyaW5nO1xuICBwdWJsaWMgYW9GaWxlbmFtZT86IHN0cmluZztcbiAgcHVibGljIG1ldGFsbmVzc0ZpbGVuYW1lPzogc3RyaW5nO1xuICBwdWJsaWMgcm91Z2huZXNzRmlsZW5hbWU/OiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGNsYXNzIEFzc2V0VXRpbHMge1xuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgQ3JlYXRlTWF0ZXJpYWxGcm9tQXNzZXQoYXNzZXQ6IFZhcmlhdGlvblNldHRpbmdzKTogUHJvbWlzZTxNYXRlcmlhbD4ge1xuICAgIGNvbnN0IG1hdGVyaWFsOiBGdXJuaXR1cmVNYXRlcmlhbCA9IG5ldyBNYXRlcmlhbCgpO1xuICAgIGlmICghYXNzZXQpIHtcbiAgICAgIHJldHVybiBtYXRlcmlhbDtcbiAgICB9XG4gICAgaWYgKGFzc2V0LnNldHRpbmdzKSB7XG4gICAgICBBc3NldFV0aWxzLnNldFNldHRpbmdzT2ZNYXRlcmlhbChtYXRlcmlhbCwgYXNzZXQuc2V0dGluZ3MpO1xuICAgIH1cbiAgICBpZiAoYXNzZXQudGV4dHVyZSkge1xuICAgICAgbWF0ZXJpYWwudGV4dHVyZSA9IGF3YWl0IEltYWdlVXRpbHMuQ3JlYXRlVGV4dHVyZUZyb21CYXNlNjQoYXNzZXQuaWQgKyAnX3RleHR1cmUnLCBhc3NldC50ZXh0dXJlLCBtYXRlcmlhbCk7XG4gICAgICBtYXRlcmlhbC50ZXh0dXJlLmVuY29kaW5nID0gc1JHQkVuY29kaW5nO1xuXG4gICAgICBtYXRlcmlhbC50ZXh0dXJlRmlsZW5hbWUgPSBhc3NldC50ZXh0dXJlRmlsZW5hbWU7XG4gICAgfVxuICAgIGlmIChhc3NldC5ub3JtYWwpIHtcbiAgICAgIG1hdGVyaWFsLm5vcm1hbCA9IGF3YWl0IEltYWdlVXRpbHMuQ3JlYXRlVGV4dHVyZUZyb21CYXNlNjQoYXNzZXQuaWQgKyAnX25vcm1hbCcsIGFzc2V0Lm5vcm1hbCwgbWF0ZXJpYWwpO1xuICAgICAgbWF0ZXJpYWwubm9ybWFsRmlsZW5hbWUgPSBhc3NldC5ub3JtYWxGaWxlbmFtZTtcbiAgICAgIC8vIG1hdGVyaWFsLm5vcm1hbC5hbmlzb3Ryb3B5ID0gMTtcbiAgICAgIC8vIG1hdGVyaWFsLm5vcm1hbC5yZXBlYXQuc2V0KDEsIDEpO1xuICAgICAgLy8gbWF0ZXJpYWwubm9ybWFsLmZsaXBZID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhc3NldC5hbykge1xuICAgICAgbWF0ZXJpYWwuYW8gPSBhd2FpdCBJbWFnZVV0aWxzLkNyZWF0ZVRleHR1cmVGcm9tQmFzZTY0KGFzc2V0LmlkICsgJ19hbycsIGFzc2V0LmFvLCBtYXRlcmlhbCk7XG4gICAgICBtYXRlcmlhbC5hb0ZpbGVuYW1lID0gYXNzZXQuYW9GaWxlbmFtZTtcbiAgICB9XG4gICAgaWYgKGFzc2V0Lm1ldGFsbmVzcykge1xuICAgICAgbWF0ZXJpYWwubWV0YWxuZXNzID0gYXdhaXQgSW1hZ2VVdGlscy5DcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChhc3NldC5pZCArICdfbWV0YWxuZXNzJywgYXNzZXQubWV0YWxuZXNzLCBtYXRlcmlhbCk7XG4gICAgICBtYXRlcmlhbC5tZXRhbG5lc3NGaWxlbmFtZSA9IGFzc2V0Lm1ldGFsbmVzc0ZpbGVuYW1lO1xuICAgIH1cbiAgICBpZiAoYXNzZXQucm91Z2huZXNzKSB7XG4gICAgICBtYXRlcmlhbC5yb3VnaG5lc3MgPSBhd2FpdCBJbWFnZVV0aWxzLkNyZWF0ZVRleHR1cmVGcm9tQmFzZTY0KGFzc2V0LmlkICsgJ19yb3VnaG5lc3MnLCBhc3NldC5yb3VnaG5lc3MsIG1hdGVyaWFsKTtcbiAgICAgIG1hdGVyaWFsLnJvdWdobmVzc0ZpbGVuYW1lID0gYXNzZXQucm91Z2huZXNzRmlsZW5hbWU7XG4gICAgfVxuICAgIHJldHVybiBtYXRlcmlhbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2V0U2V0dGluZ3NPZk1hdGVyaWFsKG1hdGVyaWFsOiBNYXRlcmlhbCwgc2V0dGluZ3M6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHNoaW5pbmVzcyA9IHBhcnNlRmxvYXQoc2V0dGluZ3NbJ3Bvd2VyJ10pO1xuICAgIGlmICghaXNOYU4oc2hpbmluZXNzKSkge1xuICAgICAgbWF0ZXJpYWwuc2hpbmluZXNzID0gc2hpbmluZXNzO1xuICAgICAgLy8gbWF0ZXJpYWwucm91Z2huZXNzID0gMSAtIChzaGluaW5lc3MgLyAxMDApO1xuICAgIH1cblxuICAgIGNvbnN0IGxldmVsID0gcGFyc2VGbG9hdChzZXR0aW5nc1snbGV2ZWwnXSk7XG4gICAgaWYgKCFpc05hTihsZXZlbCkpIHtcbiAgICAgIG1hdGVyaWFsLnNwZWN1bGFyID0gbmV3IFRIUkVFLkNvbG9yKGxldmVsLCBsZXZlbCwgbGV2ZWwpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcGVhdE9iamVjdFVzZWQ6IGJvb2xlYW4gPSBzZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgncmVwZWF0Jyk7XG4gICAgY29uc3QgcmVwZWF0eCA9IHJlcGVhdE9iamVjdFVzZWQgPyBwYXJzZUZsb2F0KHNldHRpbmdzWydyZXBlYXQnXVsncmVwZWF0eCddKSA6IHBhcnNlRmxvYXQoc2V0dGluZ3NbJ3JlcGVhdHgnXSk7XG4gICAgaWYgKCFpc05hTihyZXBlYXR4KSkge1xuICAgICAgbWF0ZXJpYWwucmVwZWF0WCA9IE1hdGgubWF4KDEsIHJlcGVhdHgpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcGVhdHkgPSByZXBlYXRPYmplY3RVc2VkID8gcGFyc2VGbG9hdChzZXR0aW5nc1sncmVwZWF0J11bJ3JlcGVhdHknXSkgOiBwYXJzZUZsb2F0KHNldHRpbmdzWydyZXBlYXR5J10pO1xuICAgIGlmICghaXNOYU4ocmVwZWF0eSkpIHtcbiAgICAgIG1hdGVyaWFsLnJlcGVhdFkgPSBNYXRoLm1heCgxLCByZXBlYXR5KTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhbG5lc3MgPSBwYXJzZUZsb2F0KHNldHRpbmdzWydtZXRhbG5lc3MnXSk7XG4gICAgaWYgKCFpc05hTihtZXRhbG5lc3MpKSB7XG4gICAgICBtYXRlcmlhbC5tZXRhbG5lc3NWYWx1ZSA9IE1hdGgubWluKDEsIG1ldGFsbmVzcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgcm91Z2huZXNzID0gcGFyc2VGbG9hdChzZXR0aW5nc1sncm91Z2huZXNzJ10pO1xuICAgIGlmICghaXNOYU4ocm91Z2huZXNzKSkge1xuICAgICAgbWF0ZXJpYWwucm91Z2huZXNzVmFsdWUgPSBNYXRoLm1pbigxLCByb3VnaG5lc3MpO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/esm5/utils/file.utils.js
CHANGED
|
@@ -1,151 +1,151 @@
|
|
|
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 };
|
|
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
151
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC9jb25maWd1cmF0b3IvIiwic291cmNlcyI6WyJ1dGlscy9maWxlLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsb0RBQW9EO0FBQ3BELFdBQVc7QUFDWDtJQUFBO0lBd0pBLENBQUM7SUFwSkMsa0VBQWtFO0lBQ3BELG9DQUEwQixHQUF4QyxVQUF5QyxPQUFlO1FBQ3RELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsSUFBTSxVQUFVLEdBQVcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFYSxrQ0FBd0IsR0FBdEMsVUFBdUMsT0FBZTtRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRW1CLG9CQUFVLEdBQTlCLFVBQStCLEdBQVcsRUFBRSxTQUFpQjs7Ozs7NEJBQzFDLHFCQUFNLEtBQUssQ0FBQzs0QkFDekIsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsR0FBRyxFQUFLLFNBQVMsOEJBQXlCLEdBQUs7NEJBQy9DLFlBQVksRUFBRSxNQUFNO3lCQUNyQixDQUFDLEVBQUE7O3dCQUpJLE1BQU0sR0FBRyxTQUliO3dCQUNGLHNCQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFDOzs7O0tBQ3hCO0lBRUQ7Ozs7T0FJRztJQUNXLGdCQUFNLEdBQXBCLFVBQXFCLFFBQWdCO1FBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixP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QTJCLEdBQUc7UUFDNUIsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3BDLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdkM7YUFBTTtZQUNMLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFySmMsK0JBQXFCLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFzSnhFLGdCQUFDO0NBQUEsQUF4SkQsSUF3SkM7U0F4SlksU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tIFwiYXhpb3NcIjtcbi8vIFN0YXRpYyB1dGlsaXR5IGZ1bmN0aW9ucyBob2xkZXIgcmVsYXRlZCB0byBmaWxlcy5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgRmlsZVV0aWxzIHtcblxuICBwcml2YXRlIHN0YXRpYyBfY2FjaGVkVGV4dHVyZVVwbG9hZHM6IE1hcDxzdHJpbmcsIE9iamVjdD4gPSBuZXcgTWFwKCk7XG5cbiAgLy8gUmV0dXJucyB0aGUgZ2l2ZW4gZGF0YVVyaSBzdHJpbmcgc3RyaXBwZWQgb2YgdGhlIG1pbWV0eXBlIHBhcnQuXG4gIHB1YmxpYyBzdGF0aWMgU3RyaXBNaW1lU3RyaW5nRnJvbURhdGFVcmkoZGF0YVVyaTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWRhdGFVcmkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBtaW1lU3RyaW5nOiBzdHJpbmcgPSB0aGlzLkdldE1pbWVTdHJpbmdGcm9tRGF0YVVyaShkYXRhVXJpKTtcbiAgICByZXR1cm4gZGF0YVVyaS5zdWJzdHIobWltZVN0cmluZy5sZW5ndGggKyAxKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgR2V0TWltZVN0cmluZ0Zyb21EYXRhVXJpKGRhdGFVcmk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXRhVXJpKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGFVcmkuc3BsaXQoJywnKVswXTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgRmlsZUV4aXN0cyh1cmw6IHN0cmluZywgYXNzZXRQYXRoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGF4aW9zKHtcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgdXJsOiBgJHthc3NldFBhdGh9Z2V0RmlsZXMucGhwP2Fzc2V0VXJsPSR7dXJsfWAsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogXCJqc29uXCJcbiAgICAgIH0pXG4gICAgICByZXR1cm4gISFyZXN1bHQuZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGVyZSBpcyBzb21lIGRpc2NyZXBhbmN5IHJlZ2FyZGluZyBsb2NhdGlvbnMgb2YgaDNkIG9iamVjdHNcbiAgICogVGhlcmVmb3Igd2UgbmVlZCB0byAodGVtcG9yYXJpbHk/ISkgZml4IHRoZSBjb250ZW50IHVybFxuICAgKiBBbHNvIHdlIG5lZWQgdG8gY2hhbmdlIHNvbWUgYWRkaXRpb25hbHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRml4VXJsKGFzc2V0VXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghYXNzZXRVcmwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgbGV0IGZpeGVkVXJsOiBzdHJpbmcgPSBhc3NldFVybDtcbiAgICBpZiAoIWZpeGVkVXJsLmVuZHNXaXRoKCdnbGInKSAmJiAhZml4ZWRVcmwuZW5kc1dpdGgoJ29iaicpICYmICFmaXhlZFVybC5lbmRzV2l0aCgnZ2xiLmd6JykgJiYgIWZpeGVkVXJsLmVuZHNXaXRoKCdvYmouZ3onKSkge1xuICAgICAgZml4ZWRVcmwgPSBGaWxlVXRpbHMuRml4VW5pdHlVcmwoZml4ZWRVcmwpO1xuICAgIH1cbiAgICBmaXhlZFVybCA9IGZpeGVkVXJsLnJlcGxhY2UoJy9jb250ZW50LycsICcvY29udGVudDQzLycpO1xuICAgIHJldHVybiBmaXhlZFVybDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgRml4R2xiVXJsKGFzc2V0VXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghYXNzZXRVcmwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgbGV0IGZpeGVkVXJsOiBzdHJpbmcgPSBhc3NldFVybDtcbiAgICBpZiAoYXNzZXRVcmwuaW5kZXhPZignX3dlYnBsYXllcicpID09PSAtMSkge1xuICAgICAgZml4ZWRVcmwgPSBhc3NldFVybC5jb25jYXQoJ193ZWJwbGF5ZXInKTtcbiAgICB9XG4gICAgZml4ZWRVcmwgPSBmaXhlZFVybC5yZXBsYWNlKCcvY29udGVudC8nLCAnL2NvbnRlbnQ0My8nKTtcbiAgICBpZiAoIWZpeGVkVXJsLmVuZHNXaXRoKCcuZ2xiJykpIHtcbiAgICAgIGZpeGVkVXJsID0gZml4ZWRVcmwuY29uY2F0KCcuZ2xiJyk7XG4gICAgfVxuICAgIHJldHVybiBmaXhlZFVybDtcbiAgfVxuXG4gIC8vIFJldHVybiB0aGUgbWltZXR5cGUgb2YgdGhlIGdpdmVuIGZpbGVuYW1lLlxuICBwdWJsaWMgc3RhdGljIE1pbWVUeXBlRnJvbUZpbGVuYW1lKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlZ0V4OiBSZWdFeHAgPSAvKD86XFwuKFteLl0rKSk/JC87IC8vIHJlZ2V4IHRvIGZpbmQgZXh0ZW5zaW9uXG4gICAgY29uc3QgZXh0ZW5zaW9uOiBhbnkgPSByZWdFeC5leGVjKGZpbGVOYW1lKVsxXTtcbiAgICBzd2l0Y2ggKGV4dGVuc2lvbikge1xuICAgICAgY2FzZSAnanBnJzpcbiAgICAgIGNhc2UgJ2pwZWcnOlxuICAgICAgICByZXR1cm4gJ2ltYWdlL2pwZWcnO1xuICAgICAgY2FzZSAncG5nJzpcbiAgICAgICAgcmV0dXJuICdpbWFnZS9wbmcnO1xuICAgICAgY2FzZSAnYm1wJzpcbiAgICAgICAgcmV0dXJuICdpbWFnZS9ibXAnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZHMgdGhlIGdpdmVuIGZpbGUgdG8gdGhlIHVzZXJzIGRlZmF1bHQgZG93bmxvYWQgbG9jYXRpb24uXG4gICAqIEBwYXJhbSBmaWxlTmFtZSBXaXRoIG9yIHdpdGhvdXQgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSBjb250ZW50IEZpbGUgY29udGVudCBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0gW21pbWVUeXBlID0gJ3RleHQvcGxhaW4nXVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBEb3dubG9hZEZpbGUoXG4gICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICBjb250ZW50OiBzdHJpbmcsXG4gICAgbWltZVR5cGU6IHN0cmluZyA9ICd0ZXh0L3BsYWluJ1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50OiBIVE1MQW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsICdkYXRhOicgKyBtaW1lVHlwZSArICc7Y2hhcnNldD11dGYtOCwnICsgZW5jb2RlVVJJQ29tcG9uZW50KGNvbnRlbnQpKTtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSk7XG5cbiAgICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcblxuICAgIGVsZW1lbnQuY2xpY2soKTtcblxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gIH1cblxuICAvLyBSZXR1cm5zIHRoZSBjb250ZW50cyBvZiBnaXZlbiBmaWxlIGFzIGEgdGV4dCBzdHJpbmcuXG4gIHB1YmxpYyBzdGF0aWMgUmVhZEFzVGV4dChmaWxlOiBGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZTogRnVuY3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlKTtcbiAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgPT09IDIpIHtcbiAgICAgICAgICByZXNvbHZlKGV2ZW50LnRhcmdldC5yZXN1bHQpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBHZXRFeHRlbnNpb25Gcm9tRGF0YVVyaShkYXRhVXJpOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRhVXJpLnJlcGxhY2UoLyhkYXRhOmltYWdlXFwvKSguKj8pKDtiYXNlNjQuKikvZ2ksICckMicpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBDcmVhdGVEb3dubG9hZEZpbGVOYW1lRnJvbUJhc2U2NChkYXRhVXJpOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGV4dDogc3RyaW5nID0gdGhpcy5HZXRFeHRlbnNpb25Gcm9tRGF0YVVyaShkYXRhVXJpKTtcbiAgICByZXR1cm4gJ3ByZXZpZXcuJyArIGV4dDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgRG93bmxvYWRGcm9tRGF0YVVyaShkYXRhVXJpOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBsaW5rOiBhbnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5kb3dubG9hZCA9IGZpbGVOYW1lO1xuICAgIGxpbmsuaHJlZiA9IGRhdGFVcmk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICBsaW5rLmNsaWNrKCk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcbiAgfVxuXG4gIC8vIHRvZG8gcmVtb3ZlIG9uY2UgQ29ubmVjdG9yIGRlYWxzIHdpdGggbWltZXR5cGVzIGFuZCB0aGlzIG1ldGhvZCBpc24ndCB1c2VkIGFueW1vcmVcbiAgcHVibGljIHN0YXRpYyBEb2N1bWVudEJvZHlUb0RhdGFVcmkoZG9jdW1lbnRCb2R5OiBzdHJpbmcsIG1pbWVUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghIWRvY3VtZW50Qm9keSkge1xuICAgICAgcmV0dXJuICdkYXRhOicgKyBtaW1lVHlwZSArICc7YmFzZTY0LCcgKyBkb2N1bWVudEJvZHk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBGaXhVbml0eVVybCh1cmwpOiBzdHJpbmcge1xuICAgIGlmICh1cmwuaW5kZXhPZignX3dlYnBsYXllcicpID09PSAtMSkge1xuICAgICAgdXJsID0gdXJsLmNvbmNhdCgnX3dlYnBsYXllci5pb25lM2QnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ193ZWJwbGF5ZXInLCAnX3dlYnBsYXllci5pb25lM2QnKTtcbiAgICB9XG4gICAgaWYgKCF1cmwuZW5kc1dpdGgoJy5neicpKSB7XG4gICAgICB1cmwgPSB1cmwuY29uY2F0KCcuZ3onKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybC5yZXBsYWNlKCcudW5pdHkzZCcsICcnKTtcbiAgfVxufVxuIl19
|