@colijnit/configurator 1.0.16 → 1.0.18

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 +2 -2
  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 +66 -61
  22. package/esm2015/app/components/answers/answers.component.js +40 -37
  23. package/esm2015/app/components/answers/answers.module.js +28 -28
  24. package/esm2015/app/components/selections/selections.component.js +128 -108
  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 +64 -64
  48. package/esm5/app/components/answers/answers.component.js +27 -27
  49. package/esm5/app/components/answers/answers.module.js +31 -31
  50. package/esm5/app/components/selections/selections.component.js +104 -104
  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 +2016 -1988
  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,74 +1,74 @@
1
- import { __awaiter } 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
- export class FurnitureMaterial extends Material {
7
- }
8
- export class AssetUtils {
9
- static CreateMaterialFromAsset(asset) {
10
- return __awaiter(this, void 0, void 0, function* () {
11
- const material = new Material();
12
- if (!asset) {
13
- return material;
14
- }
15
- if (asset.settings) {
16
- AssetUtils.setSettingsOfMaterial(material, asset.settings);
17
- }
18
- if (asset.texture) {
19
- material.texture = yield ImageUtils.CreateTextureFromBase64(asset.id + '_texture', asset.texture, material);
20
- material.texture.encoding = sRGBEncoding;
21
- material.textureFilename = asset.textureFilename;
22
- }
23
- if (asset.normal) {
24
- material.normal = yield ImageUtils.CreateTextureFromBase64(asset.id + '_normal', asset.normal, material);
25
- material.normalFilename = asset.normalFilename;
26
- // material.normal.anisotropy = 1;
27
- // material.normal.repeat.set(1, 1);
28
- // material.normal.flipY = false;
29
- }
30
- if (asset.ao) {
31
- material.ao = yield ImageUtils.CreateTextureFromBase64(asset.id + '_ao', asset.ao, material);
32
- material.aoFilename = asset.aoFilename;
33
- }
34
- if (asset.metalness) {
35
- material.metalness = yield ImageUtils.CreateTextureFromBase64(asset.id + '_metalness', asset.metalness, material);
36
- material.metalnessFilename = asset.metalnessFilename;
37
- }
38
- if (asset.roughness) {
39
- material.roughness = yield ImageUtils.CreateTextureFromBase64(asset.id + '_roughness', asset.roughness, material);
40
- material.roughnessFilename = asset.roughnessFilename;
41
- }
42
- return material;
43
- });
44
- }
45
- static setSettingsOfMaterial(material, settings) {
46
- const shininess = parseFloat(settings['power']);
47
- if (!isNaN(shininess)) {
48
- material.shininess = shininess;
49
- // material.roughness = 1 - (shininess / 100);
50
- }
51
- const level = parseFloat(settings['level']);
52
- if (!isNaN(level)) {
53
- material.specular = new THREE.Color(level, level, level);
54
- }
55
- const repeatObjectUsed = settings.hasOwnProperty('repeat');
56
- const repeatx = repeatObjectUsed ? parseFloat(settings['repeat']['repeatx']) : parseFloat(settings['repeatx']);
57
- if (!isNaN(repeatx)) {
58
- material.repeatX = Math.max(1, repeatx);
59
- }
60
- const repeaty = repeatObjectUsed ? parseFloat(settings['repeat']['repeaty']) : parseFloat(settings['repeaty']);
61
- if (!isNaN(repeaty)) {
62
- material.repeatY = Math.max(1, repeaty);
63
- }
64
- const metalness = parseFloat(settings['metalness']);
65
- if (!isNaN(metalness)) {
66
- material.metalnessValue = Math.min(1, metalness);
67
- }
68
- const roughness = parseFloat(settings['roughness']);
69
- if (!isNaN(roughness)) {
70
- material.roughnessValue = Math.min(1, roughness);
71
- }
72
- }
73
- }
1
+ import { __awaiter } 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
+ export class FurnitureMaterial extends Material {
7
+ }
8
+ export class AssetUtils {
9
+ static CreateMaterialFromAsset(asset) {
10
+ return __awaiter(this, void 0, void 0, function* () {
11
+ const material = new Material();
12
+ if (!asset) {
13
+ return material;
14
+ }
15
+ if (asset.settings) {
16
+ AssetUtils.setSettingsOfMaterial(material, asset.settings);
17
+ }
18
+ if (asset.texture) {
19
+ material.texture = yield ImageUtils.CreateTextureFromBase64(asset.id + '_texture', asset.texture, material);
20
+ material.texture.encoding = sRGBEncoding;
21
+ material.textureFilename = asset.textureFilename;
22
+ }
23
+ if (asset.normal) {
24
+ material.normal = yield ImageUtils.CreateTextureFromBase64(asset.id + '_normal', asset.normal, material);
25
+ material.normalFilename = asset.normalFilename;
26
+ // material.normal.anisotropy = 1;
27
+ // material.normal.repeat.set(1, 1);
28
+ // material.normal.flipY = false;
29
+ }
30
+ if (asset.ao) {
31
+ material.ao = yield ImageUtils.CreateTextureFromBase64(asset.id + '_ao', asset.ao, material);
32
+ material.aoFilename = asset.aoFilename;
33
+ }
34
+ if (asset.metalness) {
35
+ material.metalness = yield ImageUtils.CreateTextureFromBase64(asset.id + '_metalness', asset.metalness, material);
36
+ material.metalnessFilename = asset.metalnessFilename;
37
+ }
38
+ if (asset.roughness) {
39
+ material.roughness = yield ImageUtils.CreateTextureFromBase64(asset.id + '_roughness', asset.roughness, material);
40
+ material.roughnessFilename = asset.roughnessFilename;
41
+ }
42
+ return material;
43
+ });
44
+ }
45
+ static setSettingsOfMaterial(material, settings) {
46
+ const shininess = parseFloat(settings['power']);
47
+ if (!isNaN(shininess)) {
48
+ material.shininess = shininess;
49
+ // material.roughness = 1 - (shininess / 100);
50
+ }
51
+ const level = parseFloat(settings['level']);
52
+ if (!isNaN(level)) {
53
+ material.specular = new THREE.Color(level, level, level);
54
+ }
55
+ const repeatObjectUsed = settings.hasOwnProperty('repeat');
56
+ const repeatx = repeatObjectUsed ? parseFloat(settings['repeat']['repeatx']) : parseFloat(settings['repeatx']);
57
+ if (!isNaN(repeatx)) {
58
+ material.repeatX = Math.max(1, repeatx);
59
+ }
60
+ const repeaty = repeatObjectUsed ? parseFloat(settings['repeat']['repeaty']) : parseFloat(settings['repeaty']);
61
+ if (!isNaN(repeaty)) {
62
+ material.repeatY = Math.max(1, repeaty);
63
+ }
64
+ const metalness = parseFloat(settings['metalness']);
65
+ if (!isNaN(metalness)) {
66
+ material.metalnessValue = Math.min(1, metalness);
67
+ }
68
+ const roughness = parseFloat(settings['roughness']);
69
+ if (!isNaN(roughness)) {
70
+ material.roughnessValue = Math.min(1, roughness);
71
+ }
72
+ }
73
+ }
74
74
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsidXRpbHMvYXNzZXQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFHbkMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFFBQVE7Q0FROUM7QUFFRCxNQUFNLE9BQU8sVUFBVTtJQUVkLE1BQU0sQ0FBTyx1QkFBdUIsQ0FBQyxLQUF3Qjs7WUFDbEUsTUFBTSxRQUFRLEdBQXNCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixPQUFPLFFBQVEsQ0FBQzthQUNqQjtZQUNELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDbEIsVUFBVSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDNUQ7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLFFBQVEsQ0FBQyxPQUFPLEdBQUcsTUFBTSxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDNUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDO2dCQUV6QyxRQUFRLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7YUFDbEQ7WUFDRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hCLFFBQVEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDekcsUUFBUSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO2dCQUMvQyxrQ0FBa0M7Z0JBQ2xDLG9DQUFvQztnQkFDcEMsaUNBQWlDO2FBQ2xDO1lBQ0QsSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFO2dCQUNaLFFBQVEsQ0FBQyxFQUFFLEdBQUcsTUFBTSxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDN0YsUUFBUSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO2dCQUNuQixRQUFRLENBQUMsU0FBUyxHQUFHLE1BQU0sVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ2xILFFBQVEsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7YUFDdEQ7WUFDRCxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7Z0JBQ25CLFFBQVEsQ0FBQyxTQUFTLEdBQUcsTUFBTSxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxZQUFZLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDbEgsUUFBUSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQzthQUN0RDtZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7S0FBQTtJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxRQUFrQixFQUFFLFFBQWE7UUFDbkUsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDckIsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDL0IsOENBQThDO1NBQy9DO1FBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMxRDtRQUVELE1BQU0sZ0JBQWdCLEdBQVksUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRSxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkIsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN6QztRQUVELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDbEQ7UUFFRCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNYXRlcmlhbH0gZnJvbSAnLi4vbW9kZWwvbWF0ZXJpYWwnO1xuaW1wb3J0IHtJbWFnZVV0aWxzfSBmcm9tICcuL2ltYWdlLnV0aWxzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7c1JHQkVuY29kaW5nfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQge1ZhcmlhdGlvblNldHRpbmdzfSBmcm9tICcuLi9tb2RlbC92YXJpYXRpb24tc2V0dGluZ3MnO1xuXG5leHBvcnQgY2xhc3MgRnVybml0dXJlTWF0ZXJpYWwgZXh0ZW5kcyBNYXRlcmlhbCB7XG5cbiAgcHVibGljIHRleHR1cmVGaWxlbmFtZT86IHN0cmluZztcbiAgcHVibGljIG5vcm1hbEZpbGVuYW1lPzogc3RyaW5nO1xuICBwdWJsaWMgYW9GaWxlbmFtZT86IHN0cmluZztcbiAgcHVibGljIG1ldGFsbmVzc0ZpbGVuYW1lPzogc3RyaW5nO1xuICBwdWJsaWMgcm91Z2huZXNzRmlsZW5hbWU/OiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGNsYXNzIEFzc2V0VXRpbHMge1xuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgQ3JlYXRlTWF0ZXJpYWxGcm9tQXNzZXQoYXNzZXQ6IFZhcmlhdGlvblNldHRpbmdzKTogUHJvbWlzZTxNYXRlcmlhbD4ge1xuICAgIGNvbnN0IG1hdGVyaWFsOiBGdXJuaXR1cmVNYXRlcmlhbCA9IG5ldyBNYXRlcmlhbCgpO1xuICAgIGlmICghYXNzZXQpIHtcbiAgICAgIHJldHVybiBtYXRlcmlhbDtcbiAgICB9XG4gICAgaWYgKGFzc2V0LnNldHRpbmdzKSB7XG4gICAgICBBc3NldFV0aWxzLnNldFNldHRpbmdzT2ZNYXRlcmlhbChtYXRlcmlhbCwgYXNzZXQuc2V0dGluZ3MpO1xuICAgIH1cbiAgICBpZiAoYXNzZXQudGV4dHVyZSkge1xuICAgICAgbWF0ZXJpYWwudGV4dHVyZSA9IGF3YWl0IEltYWdlVXRpbHMuQ3JlYXRlVGV4dHVyZUZyb21CYXNlNjQoYXNzZXQuaWQgKyAnX3RleHR1cmUnLCBhc3NldC50ZXh0dXJlLCBtYXRlcmlhbCk7XG4gICAgICBtYXRlcmlhbC50ZXh0dXJlLmVuY29kaW5nID0gc1JHQkVuY29kaW5nO1xuXG4gICAgICBtYXRlcmlhbC50ZXh0dXJlRmlsZW5hbWUgPSBhc3NldC50ZXh0dXJlRmlsZW5hbWU7XG4gICAgfVxuICAgIGlmIChhc3NldC5ub3JtYWwpIHtcbiAgICAgIG1hdGVyaWFsLm5vcm1hbCA9IGF3YWl0IEltYWdlVXRpbHMuQ3JlYXRlVGV4dHVyZUZyb21CYXNlNjQoYXNzZXQuaWQgKyAnX25vcm1hbCcsIGFzc2V0Lm5vcm1hbCwgbWF0ZXJpYWwpO1xuICAgICAgbWF0ZXJpYWwubm9ybWFsRmlsZW5hbWUgPSBhc3NldC5ub3JtYWxGaWxlbmFtZTtcbiAgICAgIC8vIG1hdGVyaWFsLm5vcm1hbC5hbmlzb3Ryb3B5ID0gMTtcbiAgICAgIC8vIG1hdGVyaWFsLm5vcm1hbC5yZXBlYXQuc2V0KDEsIDEpO1xuICAgICAgLy8gbWF0ZXJpYWwubm9ybWFsLmZsaXBZID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhc3NldC5hbykge1xuICAgICAgbWF0ZXJpYWwuYW8gPSBhd2FpdCBJbWFnZVV0aWxzLkNyZWF0ZVRleHR1cmVGcm9tQmFzZTY0KGFzc2V0LmlkICsgJ19hbycsIGFzc2V0LmFvLCBtYXRlcmlhbCk7XG4gICAgICBtYXRlcmlhbC5hb0ZpbGVuYW1lID0gYXNzZXQuYW9GaWxlbmFtZTtcbiAgICB9XG4gICAgaWYgKGFzc2V0Lm1ldGFsbmVzcykge1xuICAgICAgbWF0ZXJpYWwubWV0YWxuZXNzID0gYXdhaXQgSW1hZ2VVdGlscy5DcmVhdGVUZXh0dXJlRnJvbUJhc2U2NChhc3NldC5pZCArICdfbWV0YWxuZXNzJywgYXNzZXQubWV0YWxuZXNzLCBtYXRlcmlhbCk7XG4gICAgICBtYXRlcmlhbC5tZXRhbG5lc3NGaWxlbmFtZSA9IGFzc2V0Lm1ldGFsbmVzc0ZpbGVuYW1lO1xuICAgIH1cbiAgICBpZiAoYXNzZXQucm91Z2huZXNzKSB7XG4gICAgICBtYXRlcmlhbC5yb3VnaG5lc3MgPSBhd2FpdCBJbWFnZVV0aWxzLkNyZWF0ZVRleHR1cmVGcm9tQmFzZTY0KGFzc2V0LmlkICsgJ19yb3VnaG5lc3MnLCBhc3NldC5yb3VnaG5lc3MsIG1hdGVyaWFsKTtcbiAgICAgIG1hdGVyaWFsLnJvdWdobmVzc0ZpbGVuYW1lID0gYXNzZXQucm91Z2huZXNzRmlsZW5hbWU7XG4gICAgfVxuICAgIHJldHVybiBtYXRlcmlhbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2V0U2V0dGluZ3NPZk1hdGVyaWFsKG1hdGVyaWFsOiBNYXRlcmlhbCwgc2V0dGluZ3M6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHNoaW5pbmVzcyA9IHBhcnNlRmxvYXQoc2V0dGluZ3NbJ3Bvd2VyJ10pO1xuICAgIGlmICghaXNOYU4oc2hpbmluZXNzKSkge1xuICAgICAgbWF0ZXJpYWwuc2hpbmluZXNzID0gc2hpbmluZXNzO1xuICAgICAgLy8gbWF0ZXJpYWwucm91Z2huZXNzID0gMSAtIChzaGluaW5lc3MgLyAxMDApO1xuICAgIH1cblxuICAgIGNvbnN0IGxldmVsID0gcGFyc2VGbG9hdChzZXR0aW5nc1snbGV2ZWwnXSk7XG4gICAgaWYgKCFpc05hTihsZXZlbCkpIHtcbiAgICAgIG1hdGVyaWFsLnNwZWN1bGFyID0gbmV3IFRIUkVFLkNvbG9yKGxldmVsLCBsZXZlbCwgbGV2ZWwpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcGVhdE9iamVjdFVzZWQ6IGJvb2xlYW4gPSBzZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgncmVwZWF0Jyk7XG4gICAgY29uc3QgcmVwZWF0eCA9IHJlcGVhdE9iamVjdFVzZWQgPyBwYXJzZUZsb2F0KHNldHRpbmdzWydyZXBlYXQnXVsncmVwZWF0eCddKSA6IHBhcnNlRmxvYXQoc2V0dGluZ3NbJ3JlcGVhdHgnXSk7XG4gICAgaWYgKCFpc05hTihyZXBlYXR4KSkge1xuICAgICAgbWF0ZXJpYWwucmVwZWF0WCA9IE1hdGgubWF4KDEsIHJlcGVhdHgpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcGVhdHkgPSByZXBlYXRPYmplY3RVc2VkID8gcGFyc2VGbG9hdChzZXR0aW5nc1sncmVwZWF0J11bJ3JlcGVhdHknXSkgOiBwYXJzZUZsb2F0KHNldHRpbmdzWydyZXBlYXR5J10pO1xuICAgIGlmICghaXNOYU4ocmVwZWF0eSkpIHtcbiAgICAgIG1hdGVyaWFsLnJlcGVhdFkgPSBNYXRoLm1heCgxLCByZXBlYXR5KTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhbG5lc3MgPSBwYXJzZUZsb2F0KHNldHRpbmdzWydtZXRhbG5lc3MnXSk7XG4gICAgaWYgKCFpc05hTihtZXRhbG5lc3MpKSB7XG4gICAgICBtYXRlcmlhbC5tZXRhbG5lc3NWYWx1ZSA9IE1hdGgubWluKDEsIG1ldGFsbmVzcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgcm91Z2huZXNzID0gcGFyc2VGbG9hdChzZXR0aW5nc1sncm91Z2huZXNzJ10pO1xuICAgIGlmICghaXNOYU4ocm91Z2huZXNzKSkge1xuICAgICAgbWF0ZXJpYWwucm91Z2huZXNzVmFsdWUgPSBNYXRoLm1pbigxLCByb3VnaG5lc3MpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,139 +1,139 @@
1
- import { __awaiter } from "tslib";
2
- import axios from "axios";
3
- // Static utility functions holder related to files.
4
- // @dynamic
5
- export class FileUtils {
6
- // Returns the given dataUri string stripped of the mimetype part.
7
- static StripMimeStringFromDataUri(dataUri) {
8
- if (!dataUri) {
9
- return '';
10
- }
11
- const mimeString = this.GetMimeStringFromDataUri(dataUri);
12
- return dataUri.substr(mimeString.length + 1);
13
- }
14
- static GetMimeStringFromDataUri(dataUri) {
15
- if (!dataUri) {
16
- return '';
17
- }
18
- return dataUri.split(',')[0];
19
- }
20
- static FileExists(url, assetPath) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- const result = yield axios({
23
- method: 'get',
24
- url: `${assetPath}getFiles.php?assetUrl=${url}`,
25
- responseType: "json"
26
- });
27
- return !!result.data;
28
- });
29
- }
30
- /**
31
- * There is some discrepancy regarding locations of h3d objects
32
- * Therefor we need to (temporarily?!) fix the content url
33
- * Also we need to change some additionals
34
- */
35
- static FixUrl(assetUrl) {
36
- if (!assetUrl) {
37
- return '';
38
- }
39
- let fixedUrl = assetUrl;
40
- if (!fixedUrl.endsWith('glb') && !fixedUrl.endsWith('obj') && !fixedUrl.endsWith('glb.gz') && !fixedUrl.endsWith('obj.gz')) {
41
- fixedUrl = FileUtils.FixUnityUrl(fixedUrl);
42
- }
43
- fixedUrl = fixedUrl.replace('/content/', '/content43/');
44
- return fixedUrl;
45
- }
46
- static FixGlbUrl(assetUrl) {
47
- if (!assetUrl) {
48
- return '';
49
- }
50
- let fixedUrl = assetUrl;
51
- if (assetUrl.indexOf('_webplayer') === -1) {
52
- fixedUrl = assetUrl.concat('_webplayer');
53
- }
54
- fixedUrl = fixedUrl.replace('/content/', '/content43/');
55
- if (!fixedUrl.endsWith('.glb')) {
56
- fixedUrl = fixedUrl.concat('.glb');
57
- }
58
- return fixedUrl;
59
- }
60
- // Return the mimetype of the given filename.
61
- static MimeTypeFromFilename(fileName) {
62
- const regEx = /(?:\.([^.]+))?$/; // regex to find extension
63
- const extension = regEx.exec(fileName)[1];
64
- switch (extension) {
65
- case 'jpg':
66
- case 'jpeg':
67
- return 'image/jpeg';
68
- case 'png':
69
- return 'image/png';
70
- case 'bmp':
71
- return 'image/bmp';
72
- }
73
- }
74
- /**
75
- * Downloads the given file to the users default download location.
76
- * @param fileName With or without extension
77
- * @param content File content as a string
78
- * @param [mimeType = 'text/plain']
79
- */
80
- static DownloadFile(fileName, content, mimeType = 'text/plain') {
81
- const element = document.createElement('a');
82
- element.setAttribute('href', 'data:' + mimeType + ';charset=utf-8,' + encodeURIComponent(content));
83
- element.setAttribute('download', fileName);
84
- element.style.display = 'none';
85
- document.body.appendChild(element);
86
- element.click();
87
- document.body.removeChild(element);
88
- }
89
- // Returns the contents of given file as a text string.
90
- static ReadAsText(file) {
91
- return new Promise((resolve) => {
92
- const reader = new FileReader();
93
- reader.readAsText(file);
94
- reader.onloadend = (event) => {
95
- if (event.target.readyState === 2) {
96
- resolve(event.target.result);
97
- }
98
- };
99
- });
100
- }
101
- static GetExtensionFromDataUri(dataUri) {
102
- return dataUri.replace(/(data:image\/)(.*?)(;base64.*)/gi, '$2');
103
- }
104
- static CreateDownloadFileNameFromBase64(dataUri) {
105
- const ext = this.GetExtensionFromDataUri(dataUri);
106
- return 'preview.' + ext;
107
- }
108
- static DownloadFromDataUri(dataUri, fileName) {
109
- const link = document.createElement('a');
110
- link.download = fileName;
111
- link.href = dataUri;
112
- document.body.appendChild(link);
113
- link.click();
114
- document.body.removeChild(link);
115
- }
116
- // todo remove once Connector deals with mimetypes and this method isn't used anymore
117
- static DocumentBodyToDataUri(documentBody, mimeType) {
118
- if (!!documentBody) {
119
- return 'data:' + mimeType + ';base64,' + documentBody;
120
- }
121
- else {
122
- return '';
123
- }
124
- }
125
- static FixUnityUrl(url) {
126
- if (url.indexOf('_webplayer') === -1) {
127
- url = url.concat('_webplayer.ione3d');
128
- }
129
- else {
130
- url = url.replace('_webplayer', '_webplayer.ione3d');
131
- }
132
- if (!url.endsWith('.gz')) {
133
- url = url.concat('.gz');
134
- }
135
- return url.replace('.unity3d', '');
136
- }
137
- }
138
- FileUtils._cachedTextureUploads = new Map();
1
+ import { __awaiter } from "tslib";
2
+ import axios from "axios";
3
+ // Static utility functions holder related to files.
4
+ // @dynamic
5
+ export class FileUtils {
6
+ // Returns the given dataUri string stripped of the mimetype part.
7
+ static StripMimeStringFromDataUri(dataUri) {
8
+ if (!dataUri) {
9
+ return '';
10
+ }
11
+ const mimeString = this.GetMimeStringFromDataUri(dataUri);
12
+ return dataUri.substr(mimeString.length + 1);
13
+ }
14
+ static GetMimeStringFromDataUri(dataUri) {
15
+ if (!dataUri) {
16
+ return '';
17
+ }
18
+ return dataUri.split(',')[0];
19
+ }
20
+ static FileExists(url, assetPath) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ const result = yield axios({
23
+ method: 'get',
24
+ url: `${assetPath}getFiles.php?assetUrl=${url}`,
25
+ responseType: "json"
26
+ });
27
+ return !!result.data;
28
+ });
29
+ }
30
+ /**
31
+ * There is some discrepancy regarding locations of h3d objects
32
+ * Therefor we need to (temporarily?!) fix the content url
33
+ * Also we need to change some additionals
34
+ */
35
+ static FixUrl(assetUrl) {
36
+ if (!assetUrl) {
37
+ return '';
38
+ }
39
+ let fixedUrl = assetUrl;
40
+ if (!fixedUrl.endsWith('glb') && !fixedUrl.endsWith('obj') && !fixedUrl.endsWith('glb.gz') && !fixedUrl.endsWith('obj.gz')) {
41
+ fixedUrl = FileUtils.FixUnityUrl(fixedUrl);
42
+ }
43
+ fixedUrl = fixedUrl.replace('/content/', '/content43/');
44
+ return fixedUrl;
45
+ }
46
+ static FixGlbUrl(assetUrl) {
47
+ if (!assetUrl) {
48
+ return '';
49
+ }
50
+ let fixedUrl = assetUrl;
51
+ if (assetUrl.indexOf('_webplayer') === -1) {
52
+ fixedUrl = assetUrl.concat('_webplayer');
53
+ }
54
+ fixedUrl = fixedUrl.replace('/content/', '/content43/');
55
+ if (!fixedUrl.endsWith('.glb')) {
56
+ fixedUrl = fixedUrl.concat('.glb');
57
+ }
58
+ return fixedUrl;
59
+ }
60
+ // Return the mimetype of the given filename.
61
+ static MimeTypeFromFilename(fileName) {
62
+ const regEx = /(?:\.([^.]+))?$/; // regex to find extension
63
+ const extension = regEx.exec(fileName)[1];
64
+ switch (extension) {
65
+ case 'jpg':
66
+ case 'jpeg':
67
+ return 'image/jpeg';
68
+ case 'png':
69
+ return 'image/png';
70
+ case 'bmp':
71
+ return 'image/bmp';
72
+ }
73
+ }
74
+ /**
75
+ * Downloads the given file to the users default download location.
76
+ * @param fileName With or without extension
77
+ * @param content File content as a string
78
+ * @param [mimeType = 'text/plain']
79
+ */
80
+ static DownloadFile(fileName, content, mimeType = 'text/plain') {
81
+ const element = document.createElement('a');
82
+ element.setAttribute('href', 'data:' + mimeType + ';charset=utf-8,' + encodeURIComponent(content));
83
+ element.setAttribute('download', fileName);
84
+ element.style.display = 'none';
85
+ document.body.appendChild(element);
86
+ element.click();
87
+ document.body.removeChild(element);
88
+ }
89
+ // Returns the contents of given file as a text string.
90
+ static ReadAsText(file) {
91
+ return new Promise((resolve) => {
92
+ const reader = new FileReader();
93
+ reader.readAsText(file);
94
+ reader.onloadend = (event) => {
95
+ if (event.target.readyState === 2) {
96
+ resolve(event.target.result);
97
+ }
98
+ };
99
+ });
100
+ }
101
+ static GetExtensionFromDataUri(dataUri) {
102
+ return dataUri.replace(/(data:image\/)(.*?)(;base64.*)/gi, '$2');
103
+ }
104
+ static CreateDownloadFileNameFromBase64(dataUri) {
105
+ const ext = this.GetExtensionFromDataUri(dataUri);
106
+ return 'preview.' + ext;
107
+ }
108
+ static DownloadFromDataUri(dataUri, fileName) {
109
+ const link = document.createElement('a');
110
+ link.download = fileName;
111
+ link.href = dataUri;
112
+ document.body.appendChild(link);
113
+ link.click();
114
+ document.body.removeChild(link);
115
+ }
116
+ // todo remove once Connector deals with mimetypes and this method isn't used anymore
117
+ static DocumentBodyToDataUri(documentBody, mimeType) {
118
+ if (!!documentBody) {
119
+ return 'data:' + mimeType + ';base64,' + documentBody;
120
+ }
121
+ else {
122
+ return '';
123
+ }
124
+ }
125
+ static FixUnityUrl(url) {
126
+ if (url.indexOf('_webplayer') === -1) {
127
+ url = url.concat('_webplayer.ione3d');
128
+ }
129
+ else {
130
+ url = url.replace('_webplayer', '_webplayer.ione3d');
131
+ }
132
+ if (!url.endsWith('.gz')) {
133
+ url = url.concat('.gz');
134
+ }
135
+ return url.replace('.unity3d', '');
136
+ }
137
+ }
138
+ FileUtils._cachedTextureUploads = new Map();
139
139
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC9jb25maWd1cmF0b3IvIiwic291cmNlcyI6WyJ1dGlscy9maWxlLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsb0RBQW9EO0FBQ3BELFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUlwQixrRUFBa0U7SUFDM0QsTUFBTSxDQUFDLDBCQUEwQixDQUFDLE9BQWU7UUFDdEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxNQUFNLFVBQVUsR0FBVyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxPQUFlO1FBQ3BELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNLENBQU8sVUFBVSxDQUFDLEdBQVcsRUFBRSxTQUFpQjs7WUFDekQsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUM7Z0JBQ3pCLE1BQU0sRUFBRSxLQUFLO2dCQUNiLEdBQUcsRUFBRSxHQUFHLFNBQVMseUJBQXlCLEdBQUcsRUFBRTtnQkFDL0MsWUFBWSxFQUFFLE1BQU07YUFDckIsQ0FBQyxDQUFBO1lBQ0YsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6QixDQUFDO0tBQUE7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFnQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELElBQUksUUFBUSxHQUFXLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMxSCxRQUFRLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM1QztRQUNELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN4RCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFnQjtRQUN0QyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELElBQUksUUFBUSxHQUFXLFFBQVEsQ0FBQztRQUNoQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDekMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDMUM7UUFDRCxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDcEM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsNkNBQTZDO0lBQ3RDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxRQUFnQjtRQUNqRCxNQUFNLEtBQUssR0FBVyxpQkFBaUIsQ0FBQyxDQUFDLDBCQUEwQjtRQUNuRSxNQUFNLFNBQVMsR0FBUSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLFFBQVEsU0FBUyxFQUFFO1lBQ2pCLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxNQUFNO2dCQUNULE9BQU8sWUFBWSxDQUFDO1lBQ3RCLEtBQUssS0FBSztnQkFDUixPQUFPLFdBQVcsQ0FBQztZQUNyQixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxXQUFXLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUN4QixRQUFnQixFQUNoQixPQUFlLEVBQ2YsV0FBbUIsWUFBWTtRQUUvQixNQUFNLE9BQU8sR0FBc0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvRCxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsUUFBUSxHQUFHLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbkcsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFM0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQy9CLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVoQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsdURBQXVEO0lBQ2hELE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBVTtRQUNqQyxPQUFPLElBQUksT0FBTyxDQUFTLENBQUMsT0FBaUIsRUFBRSxFQUFFO1lBQy9DLE1BQU0sTUFBTSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7WUFDNUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO29CQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDOUI7WUFDSCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsdUJBQXVCLENBQUMsT0FBZTtRQUNuRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsa0NBQWtDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxPQUFlO1FBQzVELE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxPQUFPLFVBQVUsR0FBRyxHQUFHLENBQUM7SUFDMUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFlLEVBQUUsUUFBZ0I7UUFDakUsTUFBTSxJQUFJLEdBQVEsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQscUZBQXFGO0lBQzlFLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxZQUFvQixFQUFFLFFBQWdCO1FBQ3hFLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRTtZQUNsQixPQUFPLE9BQU8sR0FBRyxRQUFRLEdBQUcsVUFBVSxHQUFHLFlBQVksQ0FBQztTQUN2RDthQUFNO1lBQ0wsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUc7UUFDNUIsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3BDLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdkM7YUFBTTtZQUNMLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7O0FBckpjLCtCQUFxQixHQUF3QixJQUFJLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gXCJheGlvc1wiO1xuLy8gU3RhdGljIHV0aWxpdHkgZnVuY3Rpb25zIGhvbGRlciByZWxhdGVkIHRvIGZpbGVzLlxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBGaWxlVXRpbHMge1xuXG4gIHByaXZhdGUgc3RhdGljIF9jYWNoZWRUZXh0dXJlVXBsb2FkczogTWFwPHN0cmluZywgT2JqZWN0PiA9IG5ldyBNYXAoKTtcblxuICAvLyBSZXR1cm5zIHRoZSBnaXZlbiBkYXRhVXJpIHN0cmluZyBzdHJpcHBlZCBvZiB0aGUgbWltZXR5cGUgcGFydC5cbiAgcHVibGljIHN0YXRpYyBTdHJpcE1pbWVTdHJpbmdGcm9tRGF0YVVyaShkYXRhVXJpOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghZGF0YVVyaSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IG1pbWVTdHJpbmc6IHN0cmluZyA9IHRoaXMuR2V0TWltZVN0cmluZ0Zyb21EYXRhVXJpKGRhdGFVcmkpO1xuICAgIHJldHVybiBkYXRhVXJpLnN1YnN0cihtaW1lU3RyaW5nLmxlbmd0aCArIDEpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBHZXRNaW1lU3RyaW5nRnJvbURhdGFVcmkoZGF0YVVyaTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWRhdGFVcmkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YVVyaS5zcGxpdCgnLCcpWzBdO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhc3luYyBGaWxlRXhpc3RzKHVybDogc3RyaW5nLCBhc3NldFBhdGg6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXhpb3Moe1xuICAgICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgICB1cmw6IGAke2Fzc2V0UGF0aH1nZXRGaWxlcy5waHA/YXNzZXRVcmw9JHt1cmx9YCxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiBcImpzb25cIlxuICAgICAgfSlcbiAgICAgIHJldHVybiAhIXJlc3VsdC5kYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZXJlIGlzIHNvbWUgZGlzY3JlcGFuY3kgcmVnYXJkaW5nIGxvY2F0aW9ucyBvZiBoM2Qgb2JqZWN0c1xuICAgKiBUaGVyZWZvciB3ZSBuZWVkIHRvICh0ZW1wb3JhcmlseT8hKSBmaXggdGhlIGNvbnRlbnQgdXJsXG4gICAqIEFsc28gd2UgbmVlZCB0byBjaGFuZ2Ugc29tZSBhZGRpdGlvbmFsc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBGaXhVcmwoYXNzZXRVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFhc3NldFVybCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBsZXQgZml4ZWRVcmw6IHN0cmluZyA9IGFzc2V0VXJsO1xuICAgIGlmICghZml4ZWRVcmwuZW5kc1dpdGgoJ2dsYicpICYmICFmaXhlZFVybC5lbmRzV2l0aCgnb2JqJykgJiYgIWZpeGVkVXJsLmVuZHNXaXRoKCdnbGIuZ3onKSAmJiAhZml4ZWRVcmwuZW5kc1dpdGgoJ29iai5neicpKSB7XG4gICAgICBmaXhlZFVybCA9IEZpbGVVdGlscy5GaXhVbml0eVVybChmaXhlZFVybCk7XG4gICAgfVxuICAgIGZpeGVkVXJsID0gZml4ZWRVcmwucmVwbGFjZSgnL2NvbnRlbnQvJywgJy9jb250ZW50NDMvJyk7XG4gICAgcmV0dXJuIGZpeGVkVXJsO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBGaXhHbGJVcmwoYXNzZXRVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFhc3NldFVybCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBsZXQgZml4ZWRVcmw6IHN0cmluZyA9IGFzc2V0VXJsO1xuICAgIGlmIChhc3NldFVybC5pbmRleE9mKCdfd2VicGxheWVyJykgPT09IC0xKSB7XG4gICAgICBmaXhlZFVybCA9IGFzc2V0VXJsLmNvbmNhdCgnX3dlYnBsYXllcicpO1xuICAgIH1cbiAgICBmaXhlZFVybCA9IGZpeGVkVXJsLnJlcGxhY2UoJy9jb250ZW50LycsICcvY29udGVudDQzLycpO1xuICAgIGlmICghZml4ZWRVcmwuZW5kc1dpdGgoJy5nbGInKSkge1xuICAgICAgZml4ZWRVcmwgPSBmaXhlZFVybC5jb25jYXQoJy5nbGInKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpeGVkVXJsO1xuICB9XG5cbiAgLy8gUmV0dXJuIHRoZSBtaW1ldHlwZSBvZiB0aGUgZ2l2ZW4gZmlsZW5hbWUuXG4gIHB1YmxpYyBzdGF0aWMgTWltZVR5cGVGcm9tRmlsZW5hbWUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVnRXg6IFJlZ0V4cCA9IC8oPzpcXC4oW14uXSspKT8kLzsgLy8gcmVnZXggdG8gZmluZCBleHRlbnNpb25cbiAgICBjb25zdCBleHRlbnNpb246IGFueSA9IHJlZ0V4LmV4ZWMoZmlsZU5hbWUpWzFdO1xuICAgIHN3aXRjaCAoZXh0ZW5zaW9uKSB7XG4gICAgICBjYXNlICdqcGcnOlxuICAgICAgY2FzZSAnanBlZyc6XG4gICAgICAgIHJldHVybiAnaW1hZ2UvanBlZyc7XG4gICAgICBjYXNlICdwbmcnOlxuICAgICAgICByZXR1cm4gJ2ltYWdlL3BuZyc7XG4gICAgICBjYXNlICdibXAnOlxuICAgICAgICByZXR1cm4gJ2ltYWdlL2JtcCc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERvd25sb2FkcyB0aGUgZ2l2ZW4gZmlsZSB0byB0aGUgdXNlcnMgZGVmYXVsdCBkb3dubG9hZCBsb2NhdGlvbi5cbiAgICogQHBhcmFtIGZpbGVOYW1lIFdpdGggb3Igd2l0aG91dCBleHRlbnNpb25cbiAgICogQHBhcmFtIGNvbnRlbnQgRmlsZSBjb250ZW50IGFzIGEgc3RyaW5nXG4gICAqIEBwYXJhbSBbbWltZVR5cGUgPSAndGV4dC9wbGFpbiddXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIERvd25sb2FkRmlsZShcbiAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgIGNvbnRlbnQ6IHN0cmluZyxcbiAgICBtaW1lVHlwZTogc3RyaW5nID0gJ3RleHQvcGxhaW4nXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxBbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2RhdGE6JyArIG1pbWVUeXBlICsgJztjaGFyc2V0PXV0Zi04LCcgKyBlbmNvZGVVUklDb21wb25lbnQoY29udGVudCkpO1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGZpbGVOYW1lKTtcblxuICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuXG4gICAgZWxlbWVudC5jbGljaygpO1xuXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50KTtcbiAgfVxuXG4gIC8vIFJldHVybnMgdGhlIGNvbnRlbnRzIG9mIGdpdmVuIGZpbGUgYXMgYSB0ZXh0IHN0cmluZy5cbiAgcHVibGljIHN0YXRpYyBSZWFkQXNUZXh0KGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlOiBGdW5jdGlvbikgPT4ge1xuICAgICAgY29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUpO1xuICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9IChldmVudDogYW55KSA9PiB7XG4gICAgICAgIGlmIChldmVudC50YXJnZXQucmVhZHlTdGF0ZSA9PT0gMikge1xuICAgICAgICAgIHJlc29sdmUoZXZlbnQudGFyZ2V0LnJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIEdldEV4dGVuc2lvbkZyb21EYXRhVXJpKGRhdGFVcmk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGFVcmkucmVwbGFjZSgvKGRhdGE6aW1hZ2VcXC8pKC4qPykoO2Jhc2U2NC4qKS9naSwgJyQyJyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIENyZWF0ZURvd25sb2FkRmlsZU5hbWVGcm9tQmFzZTY0KGRhdGFVcmk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZXh0OiBzdHJpbmcgPSB0aGlzLkdldEV4dGVuc2lvbkZyb21EYXRhVXJpKGRhdGFVcmkpO1xuICAgIHJldHVybiAncHJldmlldy4nICsgZXh0O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBEb3dubG9hZEZyb21EYXRhVXJpKGRhdGFVcmk6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGxpbms6IGFueSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWU7XG4gICAgbGluay5ocmVmID0gZGF0YVVyaTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xuICAgIGxpbmsuY2xpY2soKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xuICB9XG5cbiAgLy8gdG9kbyByZW1vdmUgb25jZSBDb25uZWN0b3IgZGVhbHMgd2l0aCBtaW1ldHlwZXMgYW5kIHRoaXMgbWV0aG9kIGlzbid0IHVzZWQgYW55bW9yZVxuICBwdWJsaWMgc3RhdGljIERvY3VtZW50Qm9keVRvRGF0YVVyaShkb2N1bWVudEJvZHk6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCEhZG9jdW1lbnRCb2R5KSB7XG4gICAgICByZXR1cm4gJ2RhdGE6JyArIG1pbWVUeXBlICsgJztiYXNlNjQsJyArIGRvY3VtZW50Qm9keTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIEZpeFVuaXR5VXJsKHVybCk6IHN0cmluZyB7XG4gICAgaWYgKHVybC5pbmRleE9mKCdfd2VicGxheWVyJykgPT09IC0xKSB7XG4gICAgICB1cmwgPSB1cmwuY29uY2F0KCdfd2VicGxheWVyLmlvbmUzZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cmwgPSB1cmwucmVwbGFjZSgnX3dlYnBsYXllcicsICdfd2VicGxheWVyLmlvbmUzZCcpO1xuICAgIH1cbiAgICBpZiAoIXVybC5lbmRzV2l0aCgnLmd6JykpIHtcbiAgICAgIHVybCA9IHVybC5jb25jYXQoJy5neicpO1xuICAgIH1cbiAgICByZXR1cm4gdXJsLnJlcGxhY2UoJy51bml0eTNkJywgJycpO1xuICB9XG59XG4iXX0=
@@ -1,52 +1,52 @@
1
- import * as THREE from 'three';
2
- // @dynamic
3
- export class ImageUtils {
4
- static CreateTextureFromBase64(id, base64, material) {
5
- return new Promise((resolve) => {
6
- if (ImageUtils.textures.has(id)) {
7
- resolve(ImageUtils.textures.get(id));
8
- }
9
- else {
10
- if (!base64) {
11
- resolve(new THREE.Texture());
12
- }
13
- else {
14
- const loader = new THREE.TextureLoader();
15
- loader.load(base64, (texture) => {
16
- texture.anisotropy = 16;
17
- texture.wrapS = THREE.RepeatWrapping;
18
- texture.wrapT = THREE.RepeatWrapping;
19
- texture.repeat = new THREE.Vector2(material ? material.repeatX : 1, material ? material.repeatY : 1);
20
- texture.needsUpdate = true;
21
- ImageUtils.textures.set(id, texture);
22
- resolve(texture);
23
- });
24
- }
25
- }
26
- });
27
- }
28
- static getDocBodyWithMimeTypeDefinition(fileName, documentBody) {
29
- if (documentBody === null) {
30
- return documentBody;
31
- }
32
- const fileExtension = fileName.substr(fileName.lastIndexOf('.') + 1);
33
- switch (fileExtension.toLowerCase()) {
34
- case "jpg":
35
- case "jpeg":
36
- return "data:image/jpg;base64," + documentBody;
37
- case "png":
38
- return "data:image/png;base64," + documentBody;
39
- case "gif":
40
- return "data:image/gif;base64," + documentBody;
41
- case "bmp":
42
- return "data:image/bmp;base64," + documentBody;
43
- default:
44
- return "data:image/png;base64," + documentBody;
45
- }
46
- }
47
- static getFixedImageFilepathUrl(imageFilepathUrl) {
48
- return imageFilepathUrl.replace("/content/", "/content43/");
49
- }
50
- }
51
- ImageUtils.textures = new Map();
1
+ import * as THREE from 'three';
2
+ // @dynamic
3
+ export class ImageUtils {
4
+ static CreateTextureFromBase64(id, base64, material) {
5
+ return new Promise((resolve) => {
6
+ if (ImageUtils.textures.has(id)) {
7
+ resolve(ImageUtils.textures.get(id));
8
+ }
9
+ else {
10
+ if (!base64) {
11
+ resolve(new THREE.Texture());
12
+ }
13
+ else {
14
+ const loader = new THREE.TextureLoader();
15
+ loader.load(base64, (texture) => {
16
+ texture.anisotropy = 16;
17
+ texture.wrapS = THREE.RepeatWrapping;
18
+ texture.wrapT = THREE.RepeatWrapping;
19
+ texture.repeat = new THREE.Vector2(material ? material.repeatX : 1, material ? material.repeatY : 1);
20
+ texture.needsUpdate = true;
21
+ ImageUtils.textures.set(id, texture);
22
+ resolve(texture);
23
+ });
24
+ }
25
+ }
26
+ });
27
+ }
28
+ static getDocBodyWithMimeTypeDefinition(fileName, documentBody) {
29
+ if (documentBody === null) {
30
+ return documentBody;
31
+ }
32
+ const fileExtension = fileName.substr(fileName.lastIndexOf('.') + 1);
33
+ switch (fileExtension.toLowerCase()) {
34
+ case "jpg":
35
+ case "jpeg":
36
+ return "data:image/jpg;base64," + documentBody;
37
+ case "png":
38
+ return "data:image/png;base64," + documentBody;
39
+ case "gif":
40
+ return "data:image/gif;base64," + documentBody;
41
+ case "bmp":
42
+ return "data:image/bmp;base64," + documentBody;
43
+ default:
44
+ return "data:image/png;base64," + documentBody;
45
+ }
46
+ }
47
+ static getFixedImageFilepathUrl(imageFilepathUrl) {
48
+ return imageFilepathUrl.replace("/content/", "/content43/");
49
+ }
50
+ }
51
+ ImageUtils.textures = new Map();
52
52
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsidXRpbHMvaW1hZ2UudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsV0FBVztBQUNYLE1BQU0sT0FBTyxVQUFVO0lBSWQsTUFBTSxDQUFDLHVCQUF1QixDQUFDLEVBQVUsRUFBRSxNQUFjLEVBQUUsUUFBa0I7UUFDbEYsT0FBTyxJQUFJLE9BQU8sQ0FBZ0IsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM1QyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUMvQixPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN0QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNYLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2lCQUM5QjtxQkFBTTtvQkFDTCxNQUFNLE1BQU0sR0FBd0IsSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQzlELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBc0IsRUFBRSxFQUFFO3dCQUM3QyxPQUFPLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQzt3QkFDeEIsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO3dCQUNyQyxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7d0JBQ3JDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3JHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO3dCQUMzQixVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7d0JBQ3JDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDbkIsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxRQUFnQixFQUFFLFlBQW9CO1FBQ25GLElBQUksWUFBWSxLQUFLLElBQUksRUFBRTtZQUN6QixPQUFPLFlBQVksQ0FBQztTQUNyQjtRQUNELE1BQU0sYUFBYSxHQUFXLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3RSxRQUFRLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNuQyxLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssTUFBTTtnQkFDVCxPQUFPLHdCQUF3QixHQUFHLFlBQVksQ0FBQztZQUNqRCxLQUFLLEtBQUs7Z0JBQ1IsT0FBTyx3QkFBd0IsR0FBRyxZQUFZLENBQUM7WUFDakQsS0FBSyxLQUFLO2dCQUNSLE9BQU8sd0JBQXdCLEdBQUcsWUFBWSxDQUFDO1lBQ2pELEtBQUssS0FBSztnQkFDUixPQUFPLHdCQUF3QixHQUFHLFlBQVksQ0FBQztZQUNqRDtnQkFDRSxPQUFPLHdCQUF3QixHQUFHLFlBQVksQ0FBQztTQUNsRDtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsd0JBQXdCLENBQUMsZ0JBQXdCO1FBQzdELE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDOztBQS9DYSxtQkFBUSxHQUErQixJQUFJLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHtNYXRlcmlhbH0gZnJvbSAnLi4vbW9kZWwvbWF0ZXJpYWwnO1xuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBJbWFnZVV0aWxzIHtcblxuICBwdWJsaWMgc3RhdGljIHRleHR1cmVzOiBNYXA8c3RyaW5nLCBUSFJFRS5UZXh0dXJlPiA9IG5ldyBNYXAoKTtcblxuICBwdWJsaWMgc3RhdGljIENyZWF0ZVRleHR1cmVGcm9tQmFzZTY0KGlkOiBzdHJpbmcsIGJhc2U2NDogc3RyaW5nLCBtYXRlcmlhbDogTWF0ZXJpYWwpOiBQcm9taXNlPFRIUkVFLlRleHR1cmU+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8VEhSRUUuVGV4dHVyZT4oKHJlc29sdmUpID0+IHtcbiAgICAgIGlmIChJbWFnZVV0aWxzLnRleHR1cmVzLmhhcyhpZCkpIHtcbiAgICAgICAgcmVzb2x2ZShJbWFnZVV0aWxzLnRleHR1cmVzLmdldChpZCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFiYXNlNjQpIHtcbiAgICAgICAgICByZXNvbHZlKG5ldyBUSFJFRS5UZXh0dXJlKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGxvYWRlcjogVEhSRUUuVGV4dHVyZUxvYWRlciA9IG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCk7XG4gICAgICAgICAgbG9hZGVyLmxvYWQoYmFzZTY0LCAodGV4dHVyZTogVEhSRUUuVGV4dHVyZSkgPT4ge1xuICAgICAgICAgICAgdGV4dHVyZS5hbmlzb3Ryb3B5ID0gMTY7XG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gVEhSRUUuUmVwZWF0V3JhcHBpbmc7XG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBUID0gVEhSRUUuUmVwZWF0V3JhcHBpbmc7XG4gICAgICAgICAgICB0ZXh0dXJlLnJlcGVhdCA9IG5ldyBUSFJFRS5WZWN0b3IyKG1hdGVyaWFsID8gbWF0ZXJpYWwucmVwZWF0WCA6IDEsIG1hdGVyaWFsID8gbWF0ZXJpYWwucmVwZWF0WSA6IDEpO1xuICAgICAgICAgICAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgICAgICAgICBJbWFnZVV0aWxzLnRleHR1cmVzLnNldChpZCwgdGV4dHVyZSk7XG4gICAgICAgICAgICByZXNvbHZlKHRleHR1cmUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldERvY0JvZHlXaXRoTWltZVR5cGVEZWZpbml0aW9uKGZpbGVOYW1lOiBzdHJpbmcsIGRvY3VtZW50Qm9keTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoZG9jdW1lbnRCb2R5ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gZG9jdW1lbnRCb2R5O1xuICAgIH1cbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uOiBzdHJpbmcgPSBmaWxlTmFtZS5zdWJzdHIoZmlsZU5hbWUubGFzdEluZGV4T2YoJy4nKSArIDEpO1xuICAgIHN3aXRjaCAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlIFwianBnXCI6XG4gICAgICBjYXNlIFwianBlZ1wiOlxuICAgICAgICByZXR1cm4gXCJkYXRhOmltYWdlL2pwZztiYXNlNjQsXCIgKyBkb2N1bWVudEJvZHk7XG4gICAgICBjYXNlIFwicG5nXCI6XG4gICAgICAgIHJldHVybiBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxcIiArIGRvY3VtZW50Qm9keTtcbiAgICAgIGNhc2UgXCJnaWZcIjpcbiAgICAgICAgcmV0dXJuIFwiZGF0YTppbWFnZS9naWY7YmFzZTY0LFwiICsgZG9jdW1lbnRCb2R5O1xuICAgICAgY2FzZSBcImJtcFwiOlxuICAgICAgICByZXR1cm4gXCJkYXRhOmltYWdlL2JtcDtiYXNlNjQsXCIgKyBkb2N1bWVudEJvZHk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsXCIgKyBkb2N1bWVudEJvZHk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRGaXhlZEltYWdlRmlsZXBhdGhVcmwoaW1hZ2VGaWxlcGF0aFVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaW1hZ2VGaWxlcGF0aFVybC5yZXBsYWNlKFwiL2NvbnRlbnQvXCIsIFwiL2NvbnRlbnQ0My9cIik7XG4gIH1cbn1cbiJdfQ==