@babylonjs/viewer 5.0.0-rc.4 → 5.0.0

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 (159) hide show
  1. package/configuration/configuration.d.ts +13 -13
  2. package/configuration/configuration.js +1 -1
  3. package/configuration/configuration.js.map +1 -1
  4. package/configuration/configurationCompatibility.d.ts +1 -1
  5. package/configuration/configurationCompatibility.js +2 -2
  6. package/configuration/configurationCompatibility.js.map +1 -1
  7. package/configuration/configurationContainer.d.ts +3 -3
  8. package/configuration/configurationContainer.js +1 -1
  9. package/configuration/configurationContainer.js.map +1 -1
  10. package/configuration/globals.d.ts +1 -1
  11. package/configuration/globals.js.map +1 -1
  12. package/configuration/index.d.ts +2 -2
  13. package/configuration/index.js +3 -2
  14. package/configuration/index.js.map +1 -1
  15. package/configuration/interfaces/cameraConfiguration.js.map +1 -1
  16. package/configuration/interfaces/colorGradingConfiguration.js.map +1 -1
  17. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +1 -1
  18. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -1
  19. package/configuration/interfaces/environmentMapConfiguration.js.map +1 -1
  20. package/configuration/interfaces/groundConfiguration.js.map +1 -1
  21. package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -1
  22. package/configuration/interfaces/index.d.ts +15 -15
  23. package/configuration/interfaces/index.js +15 -15
  24. package/configuration/interfaces/index.js.map +1 -1
  25. package/configuration/interfaces/lightConfiguration.js.map +1 -1
  26. package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -1
  27. package/configuration/interfaces/modelConfiguration.d.ts +1 -1
  28. package/configuration/interfaces/modelConfiguration.js.map +1 -1
  29. package/configuration/interfaces/observersConfiguration.js.map +1 -1
  30. package/configuration/interfaces/sceneConfiguration.d.ts +3 -3
  31. package/configuration/interfaces/sceneConfiguration.js.map +1 -1
  32. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -1
  33. package/configuration/interfaces/skyboxConfiguration.d.ts +1 -1
  34. package/configuration/interfaces/skyboxConfiguration.js.map +1 -1
  35. package/configuration/interfaces/templateConfiguration.js.map +1 -1
  36. package/configuration/interfaces/vrConfiguration.d.ts +1 -1
  37. package/configuration/interfaces/vrConfiguration.js.map +1 -1
  38. package/configuration/loader.js +3 -15
  39. package/configuration/loader.js.map +1 -1
  40. package/configuration/mappers.d.ts +3 -3
  41. package/configuration/mappers.js +13 -12
  42. package/configuration/mappers.js.map +1 -1
  43. package/configuration/renderOnlyLoader.d.ts +1 -1
  44. package/configuration/renderOnlyLoader.js +18 -15
  45. package/configuration/renderOnlyLoader.js.map +1 -1
  46. package/configuration/types/default.d.ts +2 -2
  47. package/configuration/types/default.js +37 -36
  48. package/configuration/types/default.js.map +1 -1
  49. package/configuration/types/environmentMap.d.ts +1 -1
  50. package/configuration/types/environmentMap.js +5 -5
  51. package/configuration/types/environmentMap.js.map +1 -1
  52. package/configuration/types/extended.d.ts +2 -2
  53. package/configuration/types/extended.js +49 -49
  54. package/configuration/types/extended.js.map +1 -1
  55. package/configuration/types/index.d.ts +4 -4
  56. package/configuration/types/index.js +14 -13
  57. package/configuration/types/index.js.map +1 -1
  58. package/configuration/types/minimal.d.ts +2 -2
  59. package/configuration/types/minimal.js +12 -12
  60. package/configuration/types/minimal.js.map +1 -1
  61. package/configuration/types/renderOnlyDefault.d.ts +1 -1
  62. package/configuration/types/renderOnlyDefault.js +8 -8
  63. package/configuration/types/renderOnlyDefault.js.map +1 -1
  64. package/configuration/types/shadowLight.d.ts +1 -1
  65. package/configuration/types/shadowLight.js +12 -12
  66. package/configuration/types/shadowLight.js.map +1 -1
  67. package/helper/index.d.ts +3 -3
  68. package/helper/index.js +14 -8
  69. package/helper/index.js.map +1 -1
  70. package/index.d.ts +20 -20
  71. package/index.js +22 -18
  72. package/index.js.map +1 -1
  73. package/initializer.js +8 -7
  74. package/initializer.js.map +1 -1
  75. package/interfaces.js.map +1 -1
  76. package/labs/environmentSerializer.d.ts +6 -6
  77. package/labs/environmentSerializer.js +18 -14
  78. package/labs/environmentSerializer.js.map +1 -1
  79. package/labs/texture.d.ts +7 -8
  80. package/labs/texture.js +30 -27
  81. package/labs/texture.js.map +1 -1
  82. package/labs/viewerLabs.d.ts +11 -11
  83. package/labs/viewerLabs.js +9 -7
  84. package/labs/viewerLabs.js.map +1 -1
  85. package/license.md +71 -0
  86. package/loader/modelLoader.d.ts +10 -7
  87. package/loader/modelLoader.js +26 -19
  88. package/loader/modelLoader.js.map +1 -1
  89. package/loader/plugins/applyMaterialConfig.d.ts +4 -4
  90. package/loader/plugins/applyMaterialConfig.js.map +1 -1
  91. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +2 -2
  92. package/loader/plugins/extendedMaterialLoaderPlugin.js +1 -1
  93. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -1
  94. package/loader/plugins/index.d.ts +5 -4
  95. package/loader/plugins/index.js +9 -8
  96. package/loader/plugins/index.js.map +1 -1
  97. package/loader/plugins/loaderPlugin.d.ts +7 -7
  98. package/loader/plugins/loaderPlugin.js.map +1 -1
  99. package/loader/plugins/msftLodLoaderPlugin.d.ts +5 -5
  100. package/loader/plugins/msftLodLoaderPlugin.js +2 -1
  101. package/loader/plugins/msftLodLoaderPlugin.js.map +1 -1
  102. package/loader/plugins/telemetryLoaderPlugin.d.ts +4 -4
  103. package/loader/plugins/telemetryLoaderPlugin.js +4 -4
  104. package/loader/plugins/telemetryLoaderPlugin.js.map +1 -1
  105. package/managers/observablesManager.d.ts +6 -6
  106. package/managers/observablesManager.js +1 -1
  107. package/managers/observablesManager.js.map +1 -1
  108. package/managers/sceneManager.d.ts +28 -30
  109. package/managers/sceneManager.js +96 -95
  110. package/managers/sceneManager.js.map +1 -1
  111. package/managers/telemetryManager.d.ts +6 -6
  112. package/managers/telemetryManager.js +6 -6
  113. package/managers/telemetryManager.js.map +1 -1
  114. package/model/modelAnimation.d.ts +14 -14
  115. package/model/modelAnimation.js +3 -3
  116. package/model/modelAnimation.js.map +1 -1
  117. package/model/viewerModel.d.ts +23 -31
  118. package/model/viewerModel.js +51 -46
  119. package/model/viewerModel.js.map +1 -1
  120. package/optimizer/custom/extended.d.ts +3 -5
  121. package/optimizer/custom/extended.js +3 -5
  122. package/optimizer/custom/extended.js.map +1 -1
  123. package/optimizer/custom/index.d.ts +1 -1
  124. package/optimizer/custom/index.js +1 -1
  125. package/optimizer/custom/index.js.map +1 -1
  126. package/package.json +41 -215
  127. package/readme.md +12 -8
  128. package/renderOnlyIndex.d.ts +10 -10
  129. package/renderOnlyIndex.js +6 -4
  130. package/renderOnlyIndex.js.map +1 -1
  131. package/templating/eventManager.d.ts +1 -1
  132. package/templating/eventManager.js +4 -2
  133. package/templating/eventManager.js.map +1 -1
  134. package/templating/plugins/hdButtonPlugin.d.ts +2 -2
  135. package/templating/plugins/hdButtonPlugin.js +2 -15
  136. package/templating/plugins/hdButtonPlugin.js.map +1 -1
  137. package/templating/plugins/printButton.d.ts +2 -3
  138. package/templating/plugins/printButton.js +3 -16
  139. package/templating/plugins/printButton.js.map +1 -1
  140. package/templating/templateManager.d.ts +8 -7
  141. package/templating/templateManager.js +72 -62
  142. package/templating/templateManager.js.map +1 -1
  143. package/templating/viewerTemplatePlugin.d.ts +1 -1
  144. package/templating/viewerTemplatePlugin.js +4 -4
  145. package/templating/viewerTemplatePlugin.js.map +1 -1
  146. package/viewer/defaultViewer.d.ts +17 -11
  147. package/viewer/defaultViewer.js +116 -121
  148. package/viewer/defaultViewer.js.map +1 -1
  149. package/viewer/renderOnlyViewer.d.ts +2 -2
  150. package/viewer/renderOnlyViewer.js +17 -24
  151. package/viewer/renderOnlyViewer.js.map +1 -1
  152. package/viewer/viewer.d.ts +19 -18
  153. package/viewer/viewer.js +63 -49
  154. package/viewer/viewer.js.map +1 -1
  155. package/viewer/viewerManager.d.ts +5 -5
  156. package/viewer/viewerManager.js +4 -3
  157. package/viewer/viewerManager.js.map +1 -1
  158. package/viewer/viewerWithTemplate.js +2 -15
  159. package/viewer/viewerWithTemplate.js.map +1 -1
package/readme.md CHANGED
@@ -6,31 +6,35 @@ Online docs: https://doc.babylonjs.com/extensions/the_babylon_viewer
6
6
  ## ES6/NPM usage
7
7
 
8
8
  Install the package using npm:
9
- ```
9
+
10
+ ```bash
10
11
  npm install @babylonjs/viewer --save
11
12
  ```
12
13
 
13
14
  Then in JS/Typescript the viewer to be imported via:
14
- ```
15
+
16
+ ```bash
15
17
  import * as BabylonViewer from '@babylonjs/viewer';
16
18
  ```
17
19
 
18
- Add a babylon element in an html file:
19
- ```
20
+ Add a babylon element in a html file:
21
+
22
+ ```html
20
23
  <babylon id="babylon-viewer" camera.behaviors.auto-rotate="0"></babylon>
21
24
  ```
22
25
 
23
26
  And used to load models
24
- ```
25
- BabylonViewer.viewerManager.getViewerPromiseById('babylon-viewer').then(function (viewer) {
27
+
28
+ ```javascript
29
+ BabylonViewer.viewerManager.getViewerPromiseById("babylon-viewer").then(function (viewer) {
26
30
  // this will resolve only after the viewer with this specific ID is initialized
27
31
  viewer.onEngineInitObservable.add(function (scene) {
28
32
  viewer.loadModel({
29
33
  title: "Helmet",
30
34
  subtitle: "BabylonJS",
31
35
  thumbnail: "https://www.babylonjs.com/img/favicon/apple-icon-144x144.png",
32
- url: "https://www.babylonjs.com/Assets/DamagedHelmet/glTF/DamagedHelmet.gltf"
36
+ url: "https://www.babylonjs.com/Assets/DamagedHelmet/glTF/DamagedHelmet.gltf",
33
37
  });
34
38
  });
35
39
  });
36
- ```
40
+ ```
@@ -1,11 +1,11 @@
1
- import { RenderOnlyViewer } from './viewer/renderOnlyViewer';
2
- import '@babylonjs/loaders/glTF/2.0';
3
- import "@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent";
4
- import "@babylonjs/core/Debug/debugLayer";
5
- import "@babylonjs/core/Meshes/Builders/planeBuilder";
6
- import "@babylonjs/core/Meshes/Builders/boxBuilder";
7
- import "@babylonjs/core/Materials/Textures/Loaders/ddsTextureLoader";
8
- import "@babylonjs/core/Materials/Textures/Loaders/envTextureLoader";
9
- import "@babylonjs/core/Materials/Textures/Loaders/ktxTextureLoader";
10
- import "@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent";
1
+ import { RenderOnlyViewer } from "./viewer/renderOnlyViewer";
2
+ import "@babylonjs/loaders/glTF/2.0.js";
3
+ import "@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent.js";
4
+ import "@babylonjs/core/Debug/debugLayer.js";
5
+ import "@babylonjs/core/Meshes/Builders/planeBuilder.js";
6
+ import "@babylonjs/core/Meshes/Builders/boxBuilder.js";
7
+ import "@babylonjs/core/Materials/Textures/Loaders/ddsTextureLoader.js";
8
+ import "@babylonjs/core/Materials/Textures/Loaders/envTextureLoader.js";
9
+ import "@babylonjs/core/Materials/Textures/Loaders/ktxTextureLoader.js";
10
+ import "@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js";
11
11
  export { RenderOnlyViewer };
@@ -1,6 +1,6 @@
1
- import { RenderOnlyViewer } from './viewer/renderOnlyViewer.js';
1
+ import { RenderOnlyViewer } from "./viewer/renderOnlyViewer.js";
2
2
  // Required side effects
3
- import '@babylonjs/loaders/glTF/2.0.js';
3
+ import "@babylonjs/loaders/glTF/2.0.js";
4
4
  import "@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent.js";
5
5
  import "@babylonjs/core/Debug/debugLayer.js";
6
6
  import "@babylonjs/core/Meshes/Builders/planeBuilder.js";
@@ -10,7 +10,9 @@ import "@babylonjs/core/Materials/Textures/Loaders/envTextureLoader.js";
10
10
  import "@babylonjs/core/Materials/Textures/Loaders/ktxTextureLoader.js";
11
11
  import "@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js";
12
12
  // Override default material factory to avoid the dependency on standard material
13
- import { Scene } from '@babylonjs/core/scene.js';
14
- Scene.DefaultMaterialFactory = function (scene) { return null; };
13
+ import { Scene } from "@babylonjs/core/scene.js";
14
+ Scene.DefaultMaterialFactory = function () {
15
+ return null;
16
+ };
15
17
  export { RenderOnlyViewer };
16
18
  //# sourceMappingURL=renderOnlyIndex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderOnlyIndex.js","sourceRoot":"","sources":["../../../sourceES6/viewer/src/renderOnlyIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,wBAAwB;AACxB,OAAO,6BAA6B,CAAC;AACrC,OAAO,8DAA8D,CAAA;AACrE,OAAO,kCAAkC,CAAC;AAC1C,OAAO,8CAA8C,CAAC;AACtD,OAAO,4CAA4C,CAAC;AACpD,OAAO,6DAA6D,CAAA;AACpE,OAAO,6DAA6D,CAAA;AACpE,OAAO,6DAA6D,CAAA;AACpE,OAAO,6FAA6F,CAAC;AAErG,iFAAiF;AACjF,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,KAAK,CAAC,sBAAsB,GAAG,UAAC,KAAY,IAAO,OAAO,IAAW,CAAA,CAAC,CAAC,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,CAAC","sourcesContent":["import { RenderOnlyViewer } from './viewer/renderOnlyViewer';\r\n\r\n// Required side effects\r\nimport '@babylonjs/loaders/glTF/2.0';\r\nimport \"@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent\"\r\nimport \"@babylonjs/core/Debug/debugLayer\";\r\nimport \"@babylonjs/core/Meshes/Builders/planeBuilder\";\r\nimport \"@babylonjs/core/Meshes/Builders/boxBuilder\";\r\nimport \"@babylonjs/core/Materials/Textures/Loaders/ddsTextureLoader\"\r\nimport \"@babylonjs/core/Materials/Textures/Loaders/envTextureLoader\"\r\nimport \"@babylonjs/core/Materials/Textures/Loaders/ktxTextureLoader\"\r\nimport \"@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent\";\r\n\r\n// Override default material factory to avoid the dependency on standard material\r\nimport { Scene } from '@babylonjs/core/scene';\r\nScene.DefaultMaterialFactory = (scene: Scene) => { return null as any };\r\n\r\nexport { RenderOnlyViewer };\r\n"]}
1
+ {"version":3,"file":"renderOnlyIndex.js","sourceRoot":"","sources":["../../../../tools/viewer/src/renderOnlyIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,wBAAwB;AACxB,wCAA0B;AAC1B,yEAA2D;AAC3D,6CAA+B;AAC/B,yDAA2C;AAC3C,uDAAyC;AACzC,wEAA0D;AAC1D,wEAA0D;AAC1D,wEAA0D;AAC1D,wGAA0F;AAE1F,iFAAiF;AACjF,OAAO,EAAE,KAAK,EAAE,iCAAmB;AACnC,KAAK,CAAC,sBAAsB,GAAG;IAC3B,OAAO,IAAW,CAAC;AACvB,CAAC,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC","sourcesContent":["import { RenderOnlyViewer } from \"./viewer/renderOnlyViewer\";\r\n\r\n// Required side effects\r\nimport \"loaders/glTF/2.0\";\r\nimport \"core/Lights/Shadows/shadowGeneratorSceneComponent\";\r\nimport \"core/Debug/debugLayer\";\r\nimport \"core/Meshes/Builders/planeBuilder\";\r\nimport \"core/Meshes/Builders/boxBuilder\";\r\nimport \"core/Materials/Textures/Loaders/ddsTextureLoader\";\r\nimport \"core/Materials/Textures/Loaders/envTextureLoader\";\r\nimport \"core/Materials/Textures/Loaders/ktxTextureLoader\";\r\nimport \"core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent\";\r\n\r\n// Override default material factory to avoid the dependency on standard material\r\nimport { Scene } from \"core/scene\";\r\nScene.DefaultMaterialFactory = () => {\r\n return null as any;\r\n};\r\n\r\nexport { RenderOnlyViewer };\r\n"]}
@@ -1,4 +1,4 @@
1
- import { EventCallback, TemplateManager } from "./templateManager";
1
+ import type { EventCallback, TemplateManager } from "./templateManager";
2
2
  /**
3
3
  * The EventManager is in charge of registering user interctions with the viewer.
4
4
  * It is used in the TemplateManager
@@ -27,7 +27,7 @@ var EventManager = /** @class */ (function () {
27
27
  this._callbacksContainer[templateName].push({
28
28
  eventType: eventType,
29
29
  callback: callback,
30
- selector: selector
30
+ selector: selector,
31
31
  });
32
32
  };
33
33
  /**
@@ -48,7 +48,9 @@ var EventManager = /** @class */ (function () {
48
48
  var eventType = data.event.type;
49
49
  var selector = data.selector;
50
50
  var callbackDefs = this._callbacksContainer[templateName] || [];
51
- callbackDefs.filter(function (callbackDef) { return (!callbackDef.eventType || callbackDef.eventType === eventType) && (!callbackDef.selector || callbackDef.selector === selector); }).forEach(function (callbackDef) {
51
+ callbackDefs
52
+ .filter(function (callbackDef) { return (!callbackDef.eventType || callbackDef.eventType === eventType) && (!callbackDef.selector || callbackDef.selector === selector); })
53
+ .forEach(function (callbackDef) {
52
54
  callbackDef.callback(data);
53
55
  });
54
56
  };
@@ -1 +1 @@
1
- {"version":3,"file":"eventManager.js","sourceRoot":"","sources":["../../../../sourceES6/viewer/src/templating/eventManager.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH;IAII,sBAAoB,gBAAiC;QAArD,iBAKC;QALmB,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAC,SAAS;YACjD,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;OAQG;IACI,uCAAgB,GAAvB,UAAwB,YAAoB,EAAE,QAA4C,EAAE,SAAkB,EAAE,QAAiB;QAC7H,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE;YACzC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;SAC/C;QACD,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;YACxC,SAAS,WAAA;YACT,QAAQ,UAAA;YACR,QAAQ,UAAA;SACX,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;OAQG;IACI,yCAAkB,GAAzB,UAA0B,YAAoB,EAAE,QAA4C,EAAE,SAAkB,EAAE,QAAiB;QAC/H,IAAI,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAChE,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,UAAC,WAAW,IAAK,OAAA,CAAC,CAAC,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAA/H,CAA+H,CAAC,CAAC;IACnN,CAAC;IAEO,sCAAe,GAAvB,UAAwB,IAAmB;QACvC,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE7B,IAAI,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAChE,YAAY,CAAC,MAAM,CAAC,UAAC,WAAW,IAAK,OAAA,CAAC,CAAC,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAA/H,CAA+H,CAAC,CAAC,OAAO,CAAC,UAAC,WAAW;YACtL,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,8BAAO,GAAd;QACI,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAClC,CAAC;IACL,mBAAC;AAAD,CAAC,AA9DD,IA8DC","sourcesContent":["import { EventCallback, TemplateManager } from \"./templateManager\";\r\n\r\n/**\r\n * The EventManager is in charge of registering user interctions with the viewer.\r\n * It is used in the TemplateManager\r\n */\r\nexport class EventManager {\r\n\r\n private _callbacksContainer: { [key: string]: Array<{ eventType?: string, selector?: string, callback: (eventData: EventCallback) => void }> };\r\n\r\n constructor(private _templateManager: TemplateManager) {\r\n this._callbacksContainer = {};\r\n this._templateManager.onEventTriggered.add((eventData) => {\r\n this._eventTriggered(eventData);\r\n });\r\n }\r\n\r\n /**\r\n * Register a new callback to a specific template.\r\n * The best example for the usage can be found in the DefaultViewer\r\n *\r\n * @param templateName the templateName to register the event to\r\n * @param callback The callback to be executed\r\n * @param eventType the type of event to register\r\n * @param selector an optional selector. if not defined the parent object in the template will be selected\r\n */\r\n public registerCallback(templateName: string, callback: (eventData: EventCallback) => void, eventType?: string, selector?: string) {\r\n if (!this._callbacksContainer[templateName]) {\r\n this._callbacksContainer[templateName] = [];\r\n }\r\n this._callbacksContainer[templateName].push({\r\n eventType,\r\n callback,\r\n selector\r\n });\r\n }\r\n\r\n /**\r\n * This will remove a registered event from the defined template.\r\n * Each one of the variables apart from the template name are optional, but one must be provided.\r\n *\r\n * @param templateName the templateName\r\n * @param callback the callback to remove (optional)\r\n * @param eventType the event type to remove (optional)\r\n * @param selector the selector from which to remove the event (optional)\r\n */\r\n public unregisterCallback(templateName: string, callback: (eventData: EventCallback) => void, eventType?: string, selector?: string) {\r\n let callbackDefs = this._callbacksContainer[templateName] || [];\r\n this._callbacksContainer[templateName] = callbackDefs.filter((callbackDef) => (!callbackDef.eventType || callbackDef.eventType === eventType) && (!callbackDef.selector || callbackDef.selector === selector));\r\n }\r\n\r\n private _eventTriggered(data: EventCallback) {\r\n let templateName = data.template.name;\r\n let eventType = data.event.type;\r\n let selector = data.selector;\r\n\r\n let callbackDefs = this._callbacksContainer[templateName] || [];\r\n callbackDefs.filter((callbackDef) => (!callbackDef.eventType || callbackDef.eventType === eventType) && (!callbackDef.selector || callbackDef.selector === selector)).forEach((callbackDef) => {\r\n callbackDef.callback(data);\r\n });\r\n }\r\n\r\n /**\r\n * Dispose the event manager\r\n */\r\n public dispose() {\r\n this._callbacksContainer = {};\r\n }\r\n}"]}
1
+ {"version":3,"file":"eventManager.js","sourceRoot":"","sources":["../../../../../tools/viewer/src/templating/eventManager.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH;IAGI,sBAAoB,gBAAiC;QAArD,iBAKC;QALmB,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAC,SAAS;YACjD,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;OAQG;IACI,uCAAgB,GAAvB,UAAwB,YAAoB,EAAE,QAA4C,EAAE,SAAkB,EAAE,QAAiB;QAC7H,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE;YACzC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;SAC/C;QACD,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;YACxC,SAAS,WAAA;YACT,QAAQ,UAAA;YACR,QAAQ,UAAA;SACX,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;OAQG;IACI,yCAAkB,GAAzB,UAA0B,YAAoB,EAAE,QAA4C,EAAE,SAAkB,EAAE,QAAiB;QAC/H,IAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAClE,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,MAAM,CACxD,UAAC,WAAW,IAAK,OAAA,CAAC,CAAC,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAA/H,CAA+H,CACnJ,CAAC;IACN,CAAC;IAEO,sCAAe,GAAvB,UAAwB,IAAmB;QACvC,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxC,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAClC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,IAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAClE,YAAY;aACP,MAAM,CAAC,UAAC,WAAW,IAAK,OAAA,CAAC,CAAC,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAA/H,CAA+H,CAAC;aACxJ,OAAO,CAAC,UAAC,WAAW;YACjB,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACX,CAAC;IAED;;OAEG;IACI,8BAAO,GAAd;QACI,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAClC,CAAC;IACL,mBAAC;AAAD,CAAC,AAjED,IAiEC","sourcesContent":["import type { EventCallback, TemplateManager } from \"./templateManager\";\r\n\r\n/**\r\n * The EventManager is in charge of registering user interctions with the viewer.\r\n * It is used in the TemplateManager\r\n */\r\nexport class EventManager {\r\n private _callbacksContainer: { [key: string]: Array<{ eventType?: string; selector?: string; callback: (eventData: EventCallback) => void }> };\r\n\r\n constructor(private _templateManager: TemplateManager) {\r\n this._callbacksContainer = {};\r\n this._templateManager.onEventTriggered.add((eventData) => {\r\n this._eventTriggered(eventData);\r\n });\r\n }\r\n\r\n /**\r\n * Register a new callback to a specific template.\r\n * The best example for the usage can be found in the DefaultViewer\r\n *\r\n * @param templateName the templateName to register the event to\r\n * @param callback The callback to be executed\r\n * @param eventType the type of event to register\r\n * @param selector an optional selector. if not defined the parent object in the template will be selected\r\n */\r\n public registerCallback(templateName: string, callback: (eventData: EventCallback) => void, eventType?: string, selector?: string) {\r\n if (!this._callbacksContainer[templateName]) {\r\n this._callbacksContainer[templateName] = [];\r\n }\r\n this._callbacksContainer[templateName].push({\r\n eventType,\r\n callback,\r\n selector,\r\n });\r\n }\r\n\r\n /**\r\n * This will remove a registered event from the defined template.\r\n * Each one of the variables apart from the template name are optional, but one must be provided.\r\n *\r\n * @param templateName the templateName\r\n * @param callback the callback to remove (optional)\r\n * @param eventType the event type to remove (optional)\r\n * @param selector the selector from which to remove the event (optional)\r\n */\r\n public unregisterCallback(templateName: string, callback: (eventData: EventCallback) => void, eventType?: string, selector?: string) {\r\n const callbackDefs = this._callbacksContainer[templateName] || [];\r\n this._callbacksContainer[templateName] = callbackDefs.filter(\r\n (callbackDef) => (!callbackDef.eventType || callbackDef.eventType === eventType) && (!callbackDef.selector || callbackDef.selector === selector)\r\n );\r\n }\r\n\r\n private _eventTriggered(data: EventCallback) {\r\n const templateName = data.template.name;\r\n const eventType = data.event.type;\r\n const selector = data.selector;\r\n\r\n const callbackDefs = this._callbacksContainer[templateName] || [];\r\n callbackDefs\r\n .filter((callbackDef) => (!callbackDef.eventType || callbackDef.eventType === eventType) && (!callbackDef.selector || callbackDef.selector === selector))\r\n .forEach((callbackDef) => {\r\n callbackDef.callback(data);\r\n });\r\n }\r\n\r\n /**\r\n * Dispose the event manager\r\n */\r\n public dispose() {\r\n this._callbacksContainer = {};\r\n }\r\n}\r\n"]}
@@ -1,6 +1,6 @@
1
1
  import { AbstractViewerNavbarButton } from "../viewerTemplatePlugin";
2
- import { DefaultViewer } from "../../viewer/defaultViewer";
3
- import { EventCallback } from "../templateManager";
2
+ import type { DefaultViewer } from "../../viewer/defaultViewer";
3
+ import type { EventCallback } from "../templateManager";
4
4
  export declare class HDButtonPlugin extends AbstractViewerNavbarButton {
5
5
  private _viewer;
6
6
  constructor(_viewer: DefaultViewer);
@@ -1,18 +1,4 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- if (typeof b !== "function" && b !== null)
10
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
- extendStatics(d, b);
12
- function __() { this.constructor = d; }
13
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
- };
15
- })();
1
+ import { __extends } from "tslib";
16
2
  import { AbstractViewerNavbarButton } from "../viewerTemplatePlugin.js";
17
3
  var HDButtonPlugin = /** @class */ (function (_super) {
18
4
  __extends(HDButtonPlugin, _super);
@@ -28,6 +14,7 @@ var HDButtonPlugin = /** @class */ (function (_super) {
28
14
  }
29
15
  this._viewer.toggleHD();
30
16
  };
17
+ // eslint-disable-next-line @typescript-eslint/naming-convention
31
18
  HDButtonPlugin.HtmlTemplate = "\n{{#unless hideHd}}\n<style>\n.hd-icon:after {\n font-size: 16px;\n content: \"\\F765\";\n}\n\n.hd-toggled span.hd-icon:after {\n content: \"\\F766\";\n}\n</style>\n<button class=\"hd-button\" title=\"{{text.hdButton}}\">\n <span class=\"icon hd-icon\"></span>\n </button>\n {{/unless}}\n";
32
19
  return HDButtonPlugin;
33
20
  }(AbstractViewerNavbarButton));
@@ -1 +1 @@
1
- {"version":3,"file":"hdButtonPlugin.js","sourceRoot":"","sources":["../../../../../sourceES6/viewer/src/templating/plugins/hdButtonPlugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAIrE;IAAoC,kCAA0B;IAE1D,wBAAoB,OAAsB;QAA1C,YACI,kBAAM,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,SACxD;QAFmB,aAAO,GAAP,OAAO,CAAe;;IAE1C,CAAC;IAED,gCAAO,GAAP,UAAQ,KAAoB;QACxB,IAAI,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SACxH;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAEgB,2BAAY,GAAW,gTAgB3C,CAAC;IACF,qBAAC;CAAA,AA/BD,CAAoC,0BAA0B,GA+B7D;SA/BY,cAAc","sourcesContent":["import { AbstractViewerNavbarButton } from \"../viewerTemplatePlugin\";\r\nimport { DefaultViewer } from \"../../viewer/defaultViewer\";\r\nimport { EventCallback, Template } from \"../templateManager\";\r\n\r\nexport class HDButtonPlugin extends AbstractViewerNavbarButton {\r\n\r\n constructor(private _viewer: DefaultViewer) {\r\n super(\"hd\", \"hd-button\", HDButtonPlugin.HtmlTemplate);\r\n }\r\n\r\n onEvent(event: EventCallback): void {\r\n let button = event.template.parent.querySelector(\".hd-button\");\r\n if (button) {\r\n button.classList.contains(\"hd-toggled\") ? button.classList.remove(\"hd-toggled\") : button.classList.add(\"hd-toggled\");\r\n }\r\n this._viewer.toggleHD();\r\n }\r\n\r\n protected static HtmlTemplate: string = `\r\n{{#unless hideHd}}\r\n<style>\r\n.hd-icon:after {\r\n font-size: 16px;\r\n content: \"\\\\F765\";\r\n}\r\n\r\n.hd-toggled span.hd-icon:after {\r\n content: \"\\\\F766\";\r\n}\r\n</style>\r\n<button class=\"hd-button\" title=\"{{text.hdButton}}\">\r\n <span class=\"icon hd-icon\"></span>\r\n </button>\r\n {{/unless}}\r\n`;\r\n}"]}
1
+ {"version":3,"file":"hdButtonPlugin.js","sourceRoot":"","sources":["../../../../../../tools/viewer/src/templating/plugins/hdButtonPlugin.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAIrE;IAAoC,kCAA0B;IAC1D,wBAAoB,OAAsB;QAA1C,YACI,kBAAM,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,SACxD;QAFmB,aAAO,GAAP,OAAO,CAAe;;IAE1C,CAAC;IAED,gCAAO,GAAP,UAAQ,KAAoB;QACxB,IAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACjE,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SACxH;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,gEAAgE;IAC/C,2BAAY,GAAW,gTAgB3C,CAAC;IACF,qBAAC;CAAA,AA/BD,CAAoC,0BAA0B,GA+B7D;SA/BY,cAAc","sourcesContent":["import { AbstractViewerNavbarButton } from \"../viewerTemplatePlugin\";\r\nimport type { DefaultViewer } from \"../../viewer/defaultViewer\";\r\nimport type { EventCallback } from \"../templateManager\";\r\n\r\nexport class HDButtonPlugin extends AbstractViewerNavbarButton {\r\n constructor(private _viewer: DefaultViewer) {\r\n super(\"hd\", \"hd-button\", HDButtonPlugin.HtmlTemplate);\r\n }\r\n\r\n onEvent(event: EventCallback): void {\r\n const button = event.template.parent.querySelector(\".hd-button\");\r\n if (button) {\r\n button.classList.contains(\"hd-toggled\") ? button.classList.remove(\"hd-toggled\") : button.classList.add(\"hd-toggled\");\r\n }\r\n this._viewer.toggleHD();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected static HtmlTemplate: string = `\r\n{{#unless hideHd}}\r\n<style>\r\n.hd-icon:after {\r\n font-size: 16px;\r\n content: \"\\\\F765\";\r\n}\r\n\r\n.hd-toggled span.hd-icon:after {\r\n content: \"\\\\F766\";\r\n}\r\n</style>\r\n<button class=\"hd-button\" title=\"{{text.hdButton}}\">\r\n <span class=\"icon hd-icon\"></span>\r\n </button>\r\n {{/unless}}\r\n`;\r\n}\r\n"]}
@@ -1,10 +1,9 @@
1
1
  import { AbstractViewerNavbarButton } from "../viewerTemplatePlugin";
2
- import { DefaultViewer } from "../../viewer/defaultViewer";
3
- import { EventCallback } from "../templateManager";
2
+ import type { DefaultViewer } from "../../viewer/defaultViewer";
4
3
  export declare class PrintButtonPlugin extends AbstractViewerNavbarButton {
5
4
  private _viewer;
6
5
  private _currentModelUrl;
7
6
  constructor(_viewer: DefaultViewer);
8
- onEvent(event: EventCallback): void;
7
+ onEvent(): void;
9
8
  protected static HtmlTemplate: string;
10
9
  }
@@ -1,18 +1,4 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- if (typeof b !== "function" && b !== null)
10
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
- extendStatics(d, b);
12
- function __() { this.constructor = d; }
13
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
- };
15
- })();
1
+ import { __extends } from "tslib";
16
2
  import { AbstractViewerNavbarButton } from "../viewerTemplatePlugin.js";
17
3
  import { Tools } from "@babylonjs/core/Misc/tools.js";
18
4
  var PrintButtonPlugin = /** @class */ (function (_super) {
@@ -41,12 +27,13 @@ var PrintButtonPlugin = /** @class */ (function (_super) {
41
27
  });
42
28
  return _this;
43
29
  }
44
- PrintButtonPlugin.prototype.onEvent = function (event) {
30
+ PrintButtonPlugin.prototype.onEvent = function () {
45
31
  if (this._currentModelUrl) {
46
32
  var printUrl = this._currentModelUrl.replace(/https?:\/\//, "com.microsoft.builder3d://");
47
33
  window.open(printUrl, "_self");
48
34
  }
49
35
  };
36
+ // eslint-disable-next-line @typescript-eslint/naming-convention
50
37
  PrintButtonPlugin.HtmlTemplate = "\n{{#unless hidePrint}}\n<style>\n\n/* Show only if it's a windows 10 printer */\n.print-icon.not-win-10 {\n display: none;\n}\n\n.print-icon:after {\n font-size: 16px;\n content: \"\\E914\";\n}\n\n</style>\n<button class=\"print-button ".concat(window.navigator.userAgent.indexOf("Windows NT 10.0") === -1 ? "no-win-10" : "", "\" title=\"{{text.printButton}}\">\n <span class=\"icon print-icon\"></span>\n </button>\n {{/unless}}\n");
51
38
  return PrintButtonPlugin;
52
39
  }(AbstractViewerNavbarButton));
@@ -1 +1 @@
1
- {"version":3,"file":"printButton.js","sourceRoot":"","sources":["../../../../../sourceES6/viewer/src/templating/plugins/printButton.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAGrE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAEnD;IAAuC,qCAA0B;IAI7D,2BAAoB,OAAsB;QAA1C,YACI,kBAAM,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC,YAAY,CAAC,SAsBjE;QAvBmB,aAAO,GAAP,OAAO,CAAe;QAGtC,KAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,UAAC,KAAK;YAC3C,KAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;gBACzB,IAAI,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC;gBACrF,IAAI,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAEvF,gBAAgB;gBAChB,IAAI,WAAS,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC9E,IAAI,WAAS,GAAG,KAAK,CAAC;gBACtB,8BAA8B;gBAC9B,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;oBACtC,IAAI,WAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;wBAC/B,WAAS,GAAG,IAAI,CAAC;qBACpB;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,WAAS,EAAE;oBACX,KAAI,CAAC,gBAAgB,GAAG,OAAO,GAAG,QAAQ,CAAC;iBAC9C;aACJ;QACL,CAAC,CAAC,CAAC;;IACP,CAAC;IAED,mCAAO,GAAP,UAAQ,KAAoB;QACxB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAAE,4BAA4B,CAAC,CAAC;YAC1F,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SAClC;IACL,CAAC;IAEgB,8BAAY,GAAW,iQAed,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,iHAI5G,CAAC;IACF,wBAAC;CAAA,AAxDD,CAAuC,0BAA0B,GAwDhE;SAxDY,iBAAiB","sourcesContent":["import { AbstractViewerNavbarButton } from \"../viewerTemplatePlugin\";\r\nimport { DefaultViewer } from \"../../viewer/defaultViewer\";\r\nimport { EventCallback } from \"../templateManager\";\r\nimport { Tools } from \"@babylonjs/core/Misc/tools\";\r\n\r\nexport class PrintButtonPlugin extends AbstractViewerNavbarButton {\r\n\r\n private _currentModelUrl: string;\r\n\r\n constructor(private _viewer: DefaultViewer) {\r\n super(\"print\", \"print-button\", PrintButtonPlugin.HtmlTemplate);\r\n\r\n this._viewer.onModelLoadedObservable.add((model) => {\r\n this._currentModelUrl = \"\";\r\n if (model.configuration.url) {\r\n let filename = Tools.GetFilename(model.configuration.url) || model.configuration.url;\r\n let baseUrl = model.configuration.root || Tools.GetFolderPath(model.configuration.url);\r\n\r\n //gltf, obj, stl\r\n let extension = model.configuration.loader || filename.split(\".\").pop() || \"\";\r\n let printable = false;\r\n // not using .some sue to IE11\r\n [\"gltf\", \"glb\", \"obj\", \"stl\"].forEach((ext) => {\r\n if (extension.indexOf(ext) !== -1) {\r\n printable = true;\r\n }\r\n });\r\n if (printable) {\r\n this._currentModelUrl = baseUrl + filename;\r\n }\r\n }\r\n });\r\n }\r\n\r\n onEvent(event: EventCallback): void {\r\n if (this._currentModelUrl) {\r\n let printUrl = this._currentModelUrl.replace(/https?:\\/\\//, \"com.microsoft.builder3d://\");\r\n window.open(printUrl, \"_self\");\r\n }\r\n }\r\n\r\n protected static HtmlTemplate: string = `\r\n{{#unless hidePrint}}\r\n<style>\r\n\r\n/* Show only if it's a windows 10 printer */\r\n.print-icon.not-win-10 {\r\n display: none;\r\n}\r\n\r\n.print-icon:after {\r\n font-size: 16px;\r\n content: \"\\\\E914\";\r\n}\r\n\r\n</style>\r\n<button class=\"print-button ${window.navigator.userAgent.indexOf(\"Windows NT 10.0\") === -1 ? \"no-win-10\" : \"\"}\" title=\"{{text.printButton}}\">\r\n <span class=\"icon print-icon\"></span>\r\n </button>\r\n {{/unless}}\r\n`;\r\n}\r\n"]}
1
+ {"version":3,"file":"printButton.js","sourceRoot":"","sources":["../../../../../../tools/viewer/src/templating/plugins/printButton.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,KAAK,EAAE,sCAAwB;AAExC;IAAuC,qCAA0B;IAG7D,2BAAoB,OAAsB;QAA1C,YACI,kBAAM,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC,YAAY,CAAC,SAsBjE;QAvBmB,aAAO,GAAP,OAAO,CAAe;QAGtC,KAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,UAAC,KAAK;YAC3C,KAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;gBACzB,IAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC;gBACvF,IAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAEzF,gBAAgB;gBAChB,IAAM,WAAS,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAChF,IAAI,WAAS,GAAG,KAAK,CAAC;gBACtB,8BAA8B;gBAC9B,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;oBACtC,IAAI,WAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;wBAC/B,WAAS,GAAG,IAAI,CAAC;qBACpB;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,WAAS,EAAE;oBACX,KAAI,CAAC,gBAAgB,GAAG,OAAO,GAAG,QAAQ,CAAC;iBAC9C;aACJ;QACL,CAAC,CAAC,CAAC;;IACP,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAAE,4BAA4B,CAAC,CAAC;YAC5F,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SAClC;IACL,CAAC;IAED,gEAAgE;IAC/C,8BAAY,GAAW,iQAed,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,iHAI5G,CAAC;IACF,wBAAC;CAAA,AAxDD,CAAuC,0BAA0B,GAwDhE;SAxDY,iBAAiB","sourcesContent":["import { AbstractViewerNavbarButton } from \"../viewerTemplatePlugin\";\r\nimport type { DefaultViewer } from \"../../viewer/defaultViewer\";\r\nimport { Tools } from \"core/Misc/tools\";\r\n\r\nexport class PrintButtonPlugin extends AbstractViewerNavbarButton {\r\n private _currentModelUrl: string;\r\n\r\n constructor(private _viewer: DefaultViewer) {\r\n super(\"print\", \"print-button\", PrintButtonPlugin.HtmlTemplate);\r\n\r\n this._viewer.onModelLoadedObservable.add((model) => {\r\n this._currentModelUrl = \"\";\r\n if (model.configuration.url) {\r\n const filename = Tools.GetFilename(model.configuration.url) || model.configuration.url;\r\n const baseUrl = model.configuration.root || Tools.GetFolderPath(model.configuration.url);\r\n\r\n //gltf, obj, stl\r\n const extension = model.configuration.loader || filename.split(\".\").pop() || \"\";\r\n let printable = false;\r\n // not using .some sue to IE11\r\n [\"gltf\", \"glb\", \"obj\", \"stl\"].forEach((ext) => {\r\n if (extension.indexOf(ext) !== -1) {\r\n printable = true;\r\n }\r\n });\r\n if (printable) {\r\n this._currentModelUrl = baseUrl + filename;\r\n }\r\n }\r\n });\r\n }\r\n\r\n onEvent(): void {\r\n if (this._currentModelUrl) {\r\n const printUrl = this._currentModelUrl.replace(/https?:\\/\\//, \"com.microsoft.builder3d://\");\r\n window.open(printUrl, \"_self\");\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected static HtmlTemplate: string = `\r\n{{#unless hidePrint}}\r\n<style>\r\n\r\n/* Show only if it's a windows 10 printer */\r\n.print-icon.not-win-10 {\r\n display: none;\r\n}\r\n\r\n.print-icon:after {\r\n font-size: 16px;\r\n content: \"\\\\E914\";\r\n}\r\n\r\n</style>\r\n<button class=\"print-button ${window.navigator.userAgent.indexOf(\"Windows NT 10.0\") === -1 ? \"no-win-10\" : \"\"}\" title=\"{{text.printButton}}\">\r\n <span class=\"icon print-icon\"></span>\r\n </button>\r\n {{/unless}}\r\n`;\r\n}\r\n"]}
@@ -1,6 +1,6 @@
1
- import { Observable } from '@babylonjs/core/Misc/observable';
2
- import { EventManager } from './eventManager';
3
- import { ITemplateConfiguration } from '../configuration/interfaces/templateConfiguration';
1
+ import { Observable } from "@babylonjs/core/Misc/observable.js";
2
+ import { EventManager } from "./eventManager";
3
+ import type { ITemplateConfiguration } from "../configuration/interfaces/templateConfiguration";
4
4
  /**
5
5
  * The object sent when an event is triggered
6
6
  */
@@ -40,7 +40,7 @@ export declare class TemplateManager {
40
40
  * This template manager's event manager. In charge of callback registrations to native event types
41
41
  */
42
42
  eventManager: EventManager;
43
- private templates;
43
+ private _templates;
44
44
  constructor(containerElement: Element);
45
45
  /**
46
46
  * Initialize the template(s) for the viewer. Called bay the Viewer class
@@ -129,7 +129,7 @@ export declare class Template {
129
129
  private _addedFragment;
130
130
  private _htmlTemplate;
131
131
  private _rawHtml;
132
- private loadRequests;
132
+ private _loadRequests;
133
133
  constructor(name: string, _configuration: ITemplateConfiguration);
134
134
  /**
135
135
  * Some templates have parameters (like background color for example).
@@ -139,6 +139,7 @@ export declare class Template {
139
139
  * Note that when updating parameters the events will be registered again (after being cleared).
140
140
  *
141
141
  * @param params the new template parameters
142
+ * @param append
142
143
  */
143
144
  updateParams(params: {
144
145
  [key: string]: string | number | boolean | object;
@@ -164,7 +165,7 @@ export declare class Template {
164
165
  private _isHiding;
165
166
  /**
166
167
  * Show the template using the provided visibilityFunction, or natively using display: flex.
167
- * The provided function returns a promise that should be fullfilled when the element is shown.
168
+ * The provided function returns a promise that should be fulfilled when the element is shown.
168
169
  * Since it is a promise async operations are more than possible.
169
170
  * See the default viewer for an opacity example.
170
171
  * @param visibilityFunction The function to execute to show the template.
@@ -172,7 +173,7 @@ export declare class Template {
172
173
  show(visibilityFunction?: (template: Template) => Promise<Template>): Promise<Template>;
173
174
  /**
174
175
  * Hide the template using the provided visibilityFunction, or natively using display: none.
175
- * The provided function returns a promise that should be fullfilled when the element is hidden.
176
+ * The provided function returns a promise that should be fulfilled when the element is hidden.
176
177
  * Since it is a promise async operations are more than possible.
177
178
  * See the default viewer for an opacity example.
178
179
  * @param visibilityFunction The function to execute to show the template.