@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.
- package/configuration/configuration.d.ts +13 -13
- package/configuration/configuration.js +1 -1
- package/configuration/configuration.js.map +1 -1
- package/configuration/configurationCompatibility.d.ts +1 -1
- package/configuration/configurationCompatibility.js +2 -2
- package/configuration/configurationCompatibility.js.map +1 -1
- package/configuration/configurationContainer.d.ts +3 -3
- package/configuration/configurationContainer.js +1 -1
- package/configuration/configurationContainer.js.map +1 -1
- package/configuration/globals.d.ts +1 -1
- package/configuration/globals.js.map +1 -1
- package/configuration/index.d.ts +2 -2
- package/configuration/index.js +3 -2
- package/configuration/index.js.map +1 -1
- package/configuration/interfaces/cameraConfiguration.js.map +1 -1
- package/configuration/interfaces/colorGradingConfiguration.js.map +1 -1
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +1 -1
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -1
- package/configuration/interfaces/environmentMapConfiguration.js.map +1 -1
- package/configuration/interfaces/groundConfiguration.js.map +1 -1
- package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -1
- package/configuration/interfaces/index.d.ts +15 -15
- package/configuration/interfaces/index.js +15 -15
- package/configuration/interfaces/index.js.map +1 -1
- package/configuration/interfaces/lightConfiguration.js.map +1 -1
- package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -1
- package/configuration/interfaces/modelConfiguration.d.ts +1 -1
- package/configuration/interfaces/modelConfiguration.js.map +1 -1
- package/configuration/interfaces/observersConfiguration.js.map +1 -1
- package/configuration/interfaces/sceneConfiguration.d.ts +3 -3
- package/configuration/interfaces/sceneConfiguration.js.map +1 -1
- package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -1
- package/configuration/interfaces/skyboxConfiguration.d.ts +1 -1
- package/configuration/interfaces/skyboxConfiguration.js.map +1 -1
- package/configuration/interfaces/templateConfiguration.js.map +1 -1
- package/configuration/interfaces/vrConfiguration.d.ts +1 -1
- package/configuration/interfaces/vrConfiguration.js.map +1 -1
- package/configuration/loader.js +3 -15
- package/configuration/loader.js.map +1 -1
- package/configuration/mappers.d.ts +3 -3
- package/configuration/mappers.js +13 -12
- package/configuration/mappers.js.map +1 -1
- package/configuration/renderOnlyLoader.d.ts +1 -1
- package/configuration/renderOnlyLoader.js +18 -15
- package/configuration/renderOnlyLoader.js.map +1 -1
- package/configuration/types/default.d.ts +2 -2
- package/configuration/types/default.js +37 -36
- package/configuration/types/default.js.map +1 -1
- package/configuration/types/environmentMap.d.ts +1 -1
- package/configuration/types/environmentMap.js +5 -5
- package/configuration/types/environmentMap.js.map +1 -1
- package/configuration/types/extended.d.ts +2 -2
- package/configuration/types/extended.js +49 -49
- package/configuration/types/extended.js.map +1 -1
- package/configuration/types/index.d.ts +4 -4
- package/configuration/types/index.js +14 -13
- package/configuration/types/index.js.map +1 -1
- package/configuration/types/minimal.d.ts +2 -2
- package/configuration/types/minimal.js +12 -12
- package/configuration/types/minimal.js.map +1 -1
- package/configuration/types/renderOnlyDefault.d.ts +1 -1
- package/configuration/types/renderOnlyDefault.js +8 -8
- package/configuration/types/renderOnlyDefault.js.map +1 -1
- package/configuration/types/shadowLight.d.ts +1 -1
- package/configuration/types/shadowLight.js +12 -12
- package/configuration/types/shadowLight.js.map +1 -1
- package/helper/index.d.ts +3 -3
- package/helper/index.js +14 -8
- package/helper/index.js.map +1 -1
- package/index.d.ts +20 -20
- package/index.js +22 -18
- package/index.js.map +1 -1
- package/initializer.js +8 -7
- package/initializer.js.map +1 -1
- package/interfaces.js.map +1 -1
- package/labs/environmentSerializer.d.ts +6 -6
- package/labs/environmentSerializer.js +18 -14
- package/labs/environmentSerializer.js.map +1 -1
- package/labs/texture.d.ts +7 -8
- package/labs/texture.js +30 -27
- package/labs/texture.js.map +1 -1
- package/labs/viewerLabs.d.ts +11 -11
- package/labs/viewerLabs.js +9 -7
- package/labs/viewerLabs.js.map +1 -1
- package/license.md +71 -0
- package/loader/modelLoader.d.ts +10 -7
- package/loader/modelLoader.js +26 -19
- package/loader/modelLoader.js.map +1 -1
- package/loader/plugins/applyMaterialConfig.d.ts +4 -4
- package/loader/plugins/applyMaterialConfig.js.map +1 -1
- package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +2 -2
- package/loader/plugins/extendedMaterialLoaderPlugin.js +1 -1
- package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -1
- package/loader/plugins/index.d.ts +5 -4
- package/loader/plugins/index.js +9 -8
- package/loader/plugins/index.js.map +1 -1
- package/loader/plugins/loaderPlugin.d.ts +7 -7
- package/loader/plugins/loaderPlugin.js.map +1 -1
- package/loader/plugins/msftLodLoaderPlugin.d.ts +5 -5
- package/loader/plugins/msftLodLoaderPlugin.js +2 -1
- package/loader/plugins/msftLodLoaderPlugin.js.map +1 -1
- package/loader/plugins/telemetryLoaderPlugin.d.ts +4 -4
- package/loader/plugins/telemetryLoaderPlugin.js +4 -4
- package/loader/plugins/telemetryLoaderPlugin.js.map +1 -1
- package/managers/observablesManager.d.ts +6 -6
- package/managers/observablesManager.js +1 -1
- package/managers/observablesManager.js.map +1 -1
- package/managers/sceneManager.d.ts +28 -30
- package/managers/sceneManager.js +96 -95
- package/managers/sceneManager.js.map +1 -1
- package/managers/telemetryManager.d.ts +6 -6
- package/managers/telemetryManager.js +6 -6
- package/managers/telemetryManager.js.map +1 -1
- package/model/modelAnimation.d.ts +14 -14
- package/model/modelAnimation.js +3 -3
- package/model/modelAnimation.js.map +1 -1
- package/model/viewerModel.d.ts +23 -31
- package/model/viewerModel.js +51 -46
- package/model/viewerModel.js.map +1 -1
- package/optimizer/custom/extended.d.ts +3 -5
- package/optimizer/custom/extended.js +3 -5
- package/optimizer/custom/extended.js.map +1 -1
- package/optimizer/custom/index.d.ts +1 -1
- package/optimizer/custom/index.js +1 -1
- package/optimizer/custom/index.js.map +1 -1
- package/package.json +41 -215
- package/readme.md +12 -8
- package/renderOnlyIndex.d.ts +10 -10
- package/renderOnlyIndex.js +6 -4
- package/renderOnlyIndex.js.map +1 -1
- package/templating/eventManager.d.ts +1 -1
- package/templating/eventManager.js +4 -2
- package/templating/eventManager.js.map +1 -1
- package/templating/plugins/hdButtonPlugin.d.ts +2 -2
- package/templating/plugins/hdButtonPlugin.js +2 -15
- package/templating/plugins/hdButtonPlugin.js.map +1 -1
- package/templating/plugins/printButton.d.ts +2 -3
- package/templating/plugins/printButton.js +3 -16
- package/templating/plugins/printButton.js.map +1 -1
- package/templating/templateManager.d.ts +8 -7
- package/templating/templateManager.js +72 -62
- package/templating/templateManager.js.map +1 -1
- package/templating/viewerTemplatePlugin.d.ts +1 -1
- package/templating/viewerTemplatePlugin.js +4 -4
- package/templating/viewerTemplatePlugin.js.map +1 -1
- package/viewer/defaultViewer.d.ts +17 -11
- package/viewer/defaultViewer.js +116 -121
- package/viewer/defaultViewer.js.map +1 -1
- package/viewer/renderOnlyViewer.d.ts +2 -2
- package/viewer/renderOnlyViewer.js +17 -24
- package/viewer/renderOnlyViewer.js.map +1 -1
- package/viewer/viewer.d.ts +19 -18
- package/viewer/viewer.js +63 -49
- package/viewer/viewer.js.map +1 -1
- package/viewer/viewerManager.d.ts +5 -5
- package/viewer/viewerManager.js +4 -3
- package/viewer/viewerManager.js.map +1 -1
- package/viewer/viewerWithTemplate.js +2 -15
- 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
|
|
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
|
-
|
|
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
|
+
```
|
package/renderOnlyIndex.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { RenderOnlyViewer } from
|
|
2
|
-
import
|
|
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 };
|
package/renderOnlyIndex.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { RenderOnlyViewer } from
|
|
1
|
+
import { RenderOnlyViewer } from "./viewer/renderOnlyViewer.js";
|
|
2
2
|
// Required side effects
|
|
3
|
-
import
|
|
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
|
|
14
|
-
Scene.DefaultMaterialFactory = function (
|
|
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
|
package/renderOnlyIndex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderOnlyIndex.js","sourceRoot":"","sources":["
|
|
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"]}
|
|
@@ -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
|
|
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":["
|
|
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
|
-
|
|
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":["
|
|
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(
|
|
7
|
+
onEvent(): void;
|
|
9
8
|
protected static HtmlTemplate: string;
|
|
10
9
|
}
|
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
|
|
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 (
|
|
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":["
|
|
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
|
|
2
|
-
import { EventManager } from
|
|
3
|
-
import { ITemplateConfiguration } from
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|