@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.
Files changed (88) hide show
  1. package/app/builder.d.ts +53 -53
  2. package/app/components/answers/answer/answer.component.d.ts +11 -11
  3. package/app/components/answers/answers.component.d.ts +8 -8
  4. package/app/components/answers/answers.module.d.ts +2 -2
  5. package/app/components/selections/selections.component.d.ts +22 -22
  6. package/app/components/selections/selections.module.d.ts +2 -2
  7. package/app/components/shared/loader/loader.component.d.ts +2 -2
  8. package/app/components/shared/shared.module.d.ts +2 -2
  9. package/app/directives/visibility-observer-master.directive.d.ts +9 -9
  10. package/app/directives/visibility-observer.directive.d.ts +13 -13
  11. package/app/services/configurator.service.d.ts +22 -22
  12. package/app/services/image-cache.service.d.ts +10 -10
  13. package/app/services/locator.service.d.ts +4 -4
  14. package/bundles/colijnit-configurator.umd.js +2455 -2455
  15. package/bundles/colijnit-configurator.umd.js.map +1 -1
  16. package/bundles/colijnit-configurator.umd.min.js +1 -1
  17. package/bundles/colijnit-configurator.umd.min.js.map +1 -1
  18. package/colijnit-configurator.d.ts +10 -10
  19. package/colijnit-configurator.metadata.json +1 -1
  20. package/esm2015/app/builder.js +477 -477
  21. package/esm2015/app/components/answers/answer/answer.component.js +51 -51
  22. package/esm2015/app/components/answers/answers.component.js +25 -25
  23. package/esm2015/app/components/answers/answers.module.js +28 -28
  24. package/esm2015/app/components/selections/selections.component.js +85 -85
  25. package/esm2015/app/components/selections/selections.module.js +22 -22
  26. package/esm2015/app/components/shared/loader/loader.component.js +12 -12
  27. package/esm2015/app/components/shared/shared.module.js +20 -20
  28. package/esm2015/app/directives/visibility-observer-master.directive.js +50 -50
  29. package/esm2015/app/directives/visibility-observer.directive.js +56 -56
  30. package/esm2015/app/services/configurator.service.js +94 -94
  31. package/esm2015/app/services/image-cache.service.js +66 -66
  32. package/esm2015/app/services/locator.service.js +9 -9
  33. package/esm2015/colijnit-configurator.js +10 -10
  34. package/esm2015/helper/variation-helper.js +215 -215
  35. package/esm2015/model/material.js +10 -10
  36. package/esm2015/model/variation-settings.js +5 -5
  37. package/esm2015/model/variation.js +2 -2
  38. package/esm2015/public_api.js +6 -6
  39. package/esm2015/utils/asset.utils.js +73 -73
  40. package/esm2015/utils/file.utils.js +138 -138
  41. package/esm2015/utils/image.utils.js +51 -51
  42. package/esm2015/utils/object.utils.js +48 -48
  43. package/esm2015/utils/scene-utils.js +93 -93
  44. package/esm2015/utils/threed.utils.js +221 -221
  45. package/esm2015/utils/variation-utils.js +223 -223
  46. package/esm5/app/builder.js +591 -591
  47. package/esm5/app/components/answers/answer/answer.component.js +63 -63
  48. package/esm5/app/components/answers/answers.component.js +26 -26
  49. package/esm5/app/components/answers/answers.module.js +31 -31
  50. package/esm5/app/components/selections/selections.component.js +103 -103
  51. package/esm5/app/components/selections/selections.module.js +25 -25
  52. package/esm5/app/components/shared/loader/loader.component.js +15 -15
  53. package/esm5/app/components/shared/shared.module.js +23 -23
  54. package/esm5/app/directives/visibility-observer-master.directive.js +63 -63
  55. package/esm5/app/directives/visibility-observer.directive.js +58 -58
  56. package/esm5/app/services/configurator.service.js +160 -160
  57. package/esm5/app/services/image-cache.service.js +69 -69
  58. package/esm5/app/services/locator.service.js +12 -12
  59. package/esm5/colijnit-configurator.js +10 -10
  60. package/esm5/helper/variation-helper.js +267 -267
  61. package/esm5/model/material.js +12 -12
  62. package/esm5/model/variation-settings.js +7 -7
  63. package/esm5/model/variation.js +6 -6
  64. package/esm5/public_api.js +6 -6
  65. package/esm5/utils/asset.utils.js +105 -105
  66. package/esm5/utils/file.utils.js +150 -150
  67. package/esm5/utils/image.utils.js +55 -55
  68. package/esm5/utils/object.utils.js +55 -55
  69. package/esm5/utils/scene-utils.js +97 -97
  70. package/esm5/utils/threed.utils.js +278 -278
  71. package/esm5/utils/variation-utils.js +326 -326
  72. package/fesm2015/colijnit-configurator.js +1946 -1946
  73. package/fesm2015/colijnit-configurator.js.map +1 -1
  74. package/fesm5/colijnit-configurator.js +2457 -2457
  75. package/fesm5/colijnit-configurator.js.map +1 -1
  76. package/helper/variation-helper.d.ts +14 -14
  77. package/model/material.d.ts +17 -17
  78. package/model/variation-settings.d.ts +14 -14
  79. package/model/variation.d.ts +10 -10
  80. package/package.json +3 -2
  81. package/public_api.d.ts +6 -6
  82. package/utils/asset.utils.d.ts +13 -13
  83. package/utils/file.utils.d.ts +27 -27
  84. package/utils/image.utils.d.ts +8 -8
  85. package/utils/object.utils.d.ts +7 -7
  86. package/utils/scene-utils.d.ts +7 -7
  87. package/utils/threed.utils.d.ts +16 -16
  88. 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
@@ -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
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsidXRpbHMvYXNzZXQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFHbkM7SUFBdUMscUNBQVE7SUFBL0M7O0lBUUEsQ0FBQztJQUFELHdCQUFDO0FBQUQsQ0FBQyxBQVJELENBQXVDLFFBQVEsR0FROUM7O0FBRUQ7SUFBQTtJQXVFQSxDQUFDO0lBckVxQixrQ0FBdUIsR0FBM0MsVUFBNEMsS0FBd0I7Ozs7Ozt3QkFDNUQsUUFBUSxHQUFzQixJQUFJLFFBQVEsRUFBRSxDQUFDO3dCQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFOzRCQUNWLHNCQUFPLFFBQVEsRUFBQzt5QkFDakI7d0JBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFOzRCQUNsQixVQUFVLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQzt5QkFDNUQ7NkJBQ0csS0FBSyxDQUFDLE9BQU8sRUFBYix3QkFBYTt3QkFDZixLQUFBLFFBQVEsQ0FBQTt3QkFBVyxxQkFBTSxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBQTs7d0JBQTNHLEdBQVMsT0FBTyxHQUFHLFNBQXdGLENBQUM7d0JBQzVHLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQzt3QkFFekMsUUFBUSxDQUFDLGVBQWUsR0FBRyxLQUFLLENB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Q0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDckIsUUFBUSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBQ0gsaUJBQUM7QUFBRCxDQUFDLEFBdkVELElBdUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNYXRlcmlhbH0gZnJvbSAnLi4vbW9kZWwvbWF0ZXJpYWwnO1xuaW1wb3J0IHtJbWFnZVV0aWxzfSBmcm9tICcuL2ltYWdlLnV0aWxzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7c1JHQkVuY29kaW5nfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQge1ZhcmlhdGlvblNldHRpbmdzfSBmcm9tICcuLi9tb2RlbC92YXJpYXRpb24tc2V0dGluZ3MnO1xuXG5leHBvcnQgY2xhc3MgRnVybml0dXJlTWF0ZXJpYWwgZXh0ZW5kcyBNYXRlcmlhbCB7XG5cbiAgcHVibGljIHRleHR1cmVGaWxlbmFtZT86IHN0cmluZztcbiAgcHVibGljIG5vcm1hbEZpbGVuYW1lPzogc3RyaW5nO1xuICBwdWJsaWMgYW9GaWxlbmFtZT86IHN0cmluZztcbiAgcHVibGljIG1ldGFsbmVzc0ZpbGVuYW1lPzogc3RyaW5nO1xuICBwdWJsaWMgcm91Z2huZXNzRmlsZW5hbWU/OiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGNsYXNzIEFzc2V0VXRpbHMge1xuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgQ3JlYXRlTWF0ZXJpYWxGcm9tQXNzZXQoYXNzZXQ6IFZhcmlhdGlvblNldHRpbmdzKTogUHJvbWlzZTxNYXRlcmlhbD4ge1xuICAgIGNvbnN0IG1hdGVyaWFsOiBGdXJuaXR1cmVNYXRlcmlhbCA9IG5ldyBNYXRlcmlhbCgpO1xuICAgIGlmICghYXNzZXQpIHtcbiAgICAgIHJldHVybiBtYXRlcmlhbDtcbiAgICB9XG4gICAgaWYgKGFzc2V0LnNldHRpbmdzKSB7XG4gICAgICBBc3NldFV0aWxzLnNldFNldHRpbmdzT2ZNYXRlcmlhbChtYXRlcmlhbCwgYXNzZXQuc2V0dGluZ3MpO1xuICAgIH1cbiAgICBpZiAoYXNzZXQudGV4dHVyZSkge1xuICAgICAgbWF0ZXJpYWwudGV4dHVyZSA9IGF3YWl0IEltYWdlVXRpbHMuQ3JlYXRlVGV4dHVyZUZyb21CYXNlNjQoYXNzZXQuaWQgKyAnX3RleHR1cmUnLCBhc3NldC50ZXh0dXJlLCBtYXRlcmlhbCk7XG4gICAgICBtYXRlcmlhbC50ZXh0dXJlLmVuY29kaW5nID0gc1JHQkVuY29kaW5nO1xuXG4gICAgICBtYXRlcmlhbC50ZXh0dXJlRmlsZW5hbWUgPSBhc3NldC50ZXh0dXJlRmlsZW5hbWU7XG4gICAgfVxuICAgIGlmIChhc3NldC5ub3JtYWwpIHtcbiAgICAgIG1hdGVyaWFsLm5vcm1hbCA9IGF3YWl0IEltYWdlVXRpbHMuQ3JlYXRlVGV4dHVyZUZyb21CYXNlNjQoYXNzZXQuaWQgKyAnX25vcm1hbCcsIGFzc2V0Lm5vcm1hbCwgbWF0ZXJpYWwpO1xuICAgICAgbWF0ZXJpYWwubm9ybWFsRmlsZW5hbWUgPSBhc3NldC5ub3JtYWxGaWxlbmFtZTtcbiAgICAgIC8vIG1hdGVyaWFsLm5vcm1hbC5hbmlzb3Ryb3B5ID0gMTtcbiAgICAgIC8vIG1hdGVyaWFsLm5vcm1hbC5yZXBlYXQuc2V0KDEsIDEpO1xuICAgICAgLy8gbWF0ZXJpYWwubm9ybWFsLmZsaXBZID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhc3NldC5hbykge1xuICAgICAgbWF0ZXJpYWwuYW8gPSBhd2FpdCBJbWFnZVV0aWxzLkNyZWF0ZVRleHR1cmVGcm9tQmFzZTY0KGFzc2V0LmlkICsgJ19hbycsIGFzc2V0LmFvLCBtYXRlcmlhbCk7XG4gICAgICBtYXRlcmlhbC5hb0ZpbGVuYW1lID0gYXNzZXQuYW9GaWxlbmFtZTtcbiAgICB9XG4gICAgaWYgKGFzc2V0Lm1ldGFsbmVzcykge1xuICAgICAgbWF0ZXJpYWwubWV0YWxuZXNzID0gYXdhaXQgSW1hZ2VVdGlscy5DcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChhc3NldC5pZCArICdfbWV0YWxuZXNzJywgYXNzZXQubWV0YWxuZXNzLCBtYXRlcmlhbCk7XG4gICAgICBtYXRlcmlhbC5tZXRhbG5lc3NGaWxlbmFtZSA9IGFzc2V0Lm1ldGFsbmVzc0ZpbGVuYW1lO1xuICAgIH1cbiAgICBpZiAoYXNzZXQucm91Z2huZXNzKSB7XG4gICAgICBtYXRlcmlhbC5yb3VnaG5lc3MgPSBhd2FpdCBJbWFnZVV0aWxzLkNyZWF0ZVRleHR1cmVGcm9tQmFzZTY0KGFzc2V0LmlkICsgJ19yb3VnaG5lc3MnLCBhc3NldC5yb3VnaG5lc3MsIG1hdGVyaWFsKTtcbiAgICAgIG1hdGVyaWFsLnJvdWdobmVzc0ZpbGVuYW1lID0gYXNzZXQucm91Z2huZXNzRmlsZW5hbWU7XG4gICAgfVxuICAgIHJldHVybiBtYXRlcmlhbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2V0U2V0dGluZ3NPZk1hdGVyaWFsKG1hdGVyaWFsOiBNYXRlcmlhbCwgc2V0dGluZ3M6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHNoaW5pbmVzcyA9IHBhcnNlRmxvYXQoc2V0dGluZ3NbJ3Bvd2VyJ10pO1xuICAgIGlmICghaXNOYU4oc2hpbmluZXNzKSkge1xuICAgICAgbWF0ZXJpYWwuc2hpbmluZXNzID0gc2hpbmluZXNzO1xuICAgICAgLy8gbWF0ZXJpYWwucm91Z2huZXNzID0gMSAtIChzaGluaW5lc3MgLyAxMDApO1xuICAgIH1cblxuICAgIGNvbnN0IGxldmVsID0gcGFyc2VGbG9hdChzZXR0aW5nc1snbGV2ZWwnXSk7XG4gICAgaWYgKCFpc05hTihsZXZlbCkpIHtcbiAgICAgIG1hdGVyaWFsLnNwZWN1bGFyID0gbmV3IFRIUkVFLkNvbG9yKGxldmVsLCBsZXZlbCwgbGV2ZWwpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcGVhdE9iamVjdFVzZWQ6IGJvb2xlYW4gPSBzZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgncmVwZWF0Jyk7XG4gICAgY29uc3QgcmVwZWF0eCA9IHJlcGVhdE9iamVjdFVzZWQgPyBwYXJzZUZsb2F0KHNldHRpbmdzWydyZXBlYXQnXVsncmVwZWF0eCddKSA6IHBhcnNlRmxvYXQoc2V0dGluZ3NbJ3JlcGVhdHgnXSk7XG4gICAgaWYgKCFpc05hTihyZXBlYXR4KSkge1xuICAgICAgbWF0ZXJpYWwucmVwZWF0WCA9IE1hdGgubWF4KDEsIHJlcGVhdHgpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcGVhdHkgPSByZXBlYXRPYmplY3RVc2VkID8gcGFyc2VGbG9hdChzZXR0aW5nc1sncmVwZWF0J11bJ3JlcGVhdHknXSkgOiBwYXJzZUZsb2F0KHNldHRpbmdzWydyZXBlYXR5J10pO1xuICAgIGlmICghaXNOYU4ocmVwZWF0eSkpIHtcbiAgICAgIG1hdGVyaWFsLnJlcGVhdFkgPSBNYXRoLm1heCgxLCByZXBlYXR5KTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhbG5lc3MgPSBwYXJzZUZsb2F0KHNldHRpbmdzWydtZXRhbG5lc3MnXSk7XG4gICAgaWYgKCFpc05hTihtZXRhbG5lc3MpKSB7XG4gICAgICBtYXRlcmlhbC5tZXRhbG5lc3NWYWx1ZSA9IE1hdGgubWluKDEsIG1ldGFsbmVzcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgcm91Z2huZXNzID0gcGFyc2VGbG9hdChzZXR0aW5nc1sncm91Z2huZXNzJ10pO1xuICAgIGlmICghaXNOYU4ocm91Z2huZXNzKSkge1xuICAgICAgbWF0ZXJpYWwucm91Z2huZXNzVmFsdWUgPSBNYXRoLm1pbigxLCByb3VnaG5lc3MpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -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