@babylonjs/viewer 5.0.0 → 5.0.3

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 (127) hide show
  1. package/configuration/configuration.d.ts +107 -107
  2. package/configuration/configuration.js +15 -15
  3. package/configuration/configurationCompatibility.d.ts +8 -8
  4. package/configuration/configurationCompatibility.js +65 -65
  5. package/configuration/configurationContainer.d.ts +10 -10
  6. package/configuration/configurationContainer.js +9 -9
  7. package/configuration/globals.d.ts +6 -6
  8. package/configuration/globals.js +17 -17
  9. package/configuration/index.d.ts +2 -2
  10. package/configuration/index.js +3 -3
  11. package/configuration/interfaces/cameraConfiguration.d.ts +31 -31
  12. package/configuration/interfaces/cameraConfiguration.js +1 -1
  13. package/configuration/interfaces/colorGradingConfiguration.d.ts +81 -81
  14. package/configuration/interfaces/colorGradingConfiguration.js +1 -1
  15. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +20 -20
  16. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +1 -1
  17. package/configuration/interfaces/environmentMapConfiguration.d.ts +22 -22
  18. package/configuration/interfaces/environmentMapConfiguration.js +1 -1
  19. package/configuration/interfaces/groundConfiguration.d.ts +24 -24
  20. package/configuration/interfaces/groundConfiguration.js +1 -1
  21. package/configuration/interfaces/imageProcessingConfiguration.d.ts +43 -43
  22. package/configuration/interfaces/imageProcessingConfiguration.js +1 -1
  23. package/configuration/interfaces/index.d.ts +15 -15
  24. package/configuration/interfaces/index.js +15 -15
  25. package/configuration/interfaces/lightConfiguration.d.ts +60 -60
  26. package/configuration/interfaces/lightConfiguration.js +1 -1
  27. package/configuration/interfaces/modelAnimationConfiguration.d.ts +26 -26
  28. package/configuration/interfaces/modelAnimationConfiguration.js +1 -1
  29. package/configuration/interfaces/modelConfiguration.d.ts +65 -65
  30. package/configuration/interfaces/modelConfiguration.js +1 -1
  31. package/configuration/interfaces/observersConfiguration.d.ts +5 -5
  32. package/configuration/interfaces/observersConfiguration.js +1 -1
  33. package/configuration/interfaces/sceneConfiguration.d.ts +48 -48
  34. package/configuration/interfaces/sceneConfiguration.js +1 -1
  35. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +23 -23
  36. package/configuration/interfaces/sceneOptimizerConfiguration.js +1 -1
  37. package/configuration/interfaces/skyboxConfiguration.d.ts +21 -21
  38. package/configuration/interfaces/skyboxConfiguration.js +1 -1
  39. package/configuration/interfaces/templateConfiguration.d.ts +67 -67
  40. package/configuration/interfaces/templateConfiguration.js +1 -1
  41. package/configuration/interfaces/vrConfiguration.d.ts +16 -16
  42. package/configuration/interfaces/vrConfiguration.js +1 -1
  43. package/configuration/loader.d.ts +4 -4
  44. package/configuration/loader.js +16 -16
  45. package/configuration/mappers.d.ts +42 -42
  46. package/configuration/mappers.js +190 -190
  47. package/configuration/renderOnlyLoader.d.ts +33 -33
  48. package/configuration/renderOnlyLoader.js +161 -161
  49. package/configuration/types/default.d.ts +6 -6
  50. package/configuration/types/default.js +120 -120
  51. package/configuration/types/environmentMap.d.ts +5 -5
  52. package/configuration/types/environmentMap.js +13 -13
  53. package/configuration/types/extended.d.ts +6 -6
  54. package/configuration/types/extended.js +316 -316
  55. package/configuration/types/index.d.ts +13 -13
  56. package/configuration/types/index.js +49 -49
  57. package/configuration/types/minimal.d.ts +6 -6
  58. package/configuration/types/minimal.js +42 -42
  59. package/configuration/types/renderOnlyDefault.d.ts +30 -30
  60. package/configuration/types/renderOnlyDefault.js +30 -30
  61. package/configuration/types/shadowLight.d.ts +9 -9
  62. package/configuration/types/shadowLight.js +63 -63
  63. package/helper/index.d.ts +26 -26
  64. package/helper/index.js +62 -62
  65. package/index.d.ts +30 -30
  66. package/index.js +45 -45
  67. package/initializer.d.ts +11 -11
  68. package/initializer.js +34 -34
  69. package/interfaces.d.ts +5 -5
  70. package/interfaces.js +1 -1
  71. package/labs/environmentSerializer.d.ts +126 -126
  72. package/labs/environmentSerializer.js +190 -190
  73. package/labs/texture.d.ts +183 -183
  74. package/labs/texture.js +300 -300
  75. package/labs/viewerLabs.d.ts +51 -51
  76. package/labs/viewerLabs.js +133 -133
  77. package/loader/modelLoader.d.ts +47 -47
  78. package/loader/modelLoader.js +189 -189
  79. package/loader/plugins/applyMaterialConfig.d.ts +12 -12
  80. package/loader/plugins/applyMaterialConfig.js +15 -15
  81. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +9 -9
  82. package/loader/plugins/extendedMaterialLoaderPlugin.js +15 -15
  83. package/loader/plugins/index.d.ts +18 -18
  84. package/loader/plugins/index.js +42 -42
  85. package/loader/plugins/loaderPlugin.d.ts +24 -24
  86. package/loader/plugins/loaderPlugin.js +1 -1
  87. package/loader/plugins/msftLodLoaderPlugin.d.ts +12 -12
  88. package/loader/plugins/msftLodLoaderPlugin.js +20 -20
  89. package/loader/plugins/telemetryLoaderPlugin.d.ts +12 -12
  90. package/loader/plugins/telemetryLoaderPlugin.js +35 -35
  91. package/managers/observablesManager.d.ts +66 -66
  92. package/managers/observablesManager.js +34 -34
  93. package/managers/sceneManager.d.ts +243 -243
  94. package/managers/sceneManager.js +1388 -1388
  95. package/managers/telemetryManager.d.ts +57 -57
  96. package/managers/telemetryManager.js +113 -113
  97. package/model/modelAnimation.d.ts +215 -215
  98. package/model/modelAnimation.js +232 -232
  99. package/model/viewerModel.d.ts +228 -228
  100. package/model/viewerModel.js +669 -669
  101. package/optimizer/custom/extended.d.ts +11 -11
  102. package/optimizer/custom/extended.js +98 -98
  103. package/optimizer/custom/index.d.ts +8 -8
  104. package/optimizer/custom/index.js +24 -24
  105. package/package.json +5 -5
  106. package/renderOnlyIndex.d.ts +11 -11
  107. package/renderOnlyIndex.js +17 -17
  108. package/templating/eventManager.d.ts +35 -35
  109. package/templating/eventManager.js +65 -65
  110. package/templating/plugins/hdButtonPlugin.d.ts +9 -9
  111. package/templating/plugins/hdButtonPlugin.js +21 -21
  112. package/templating/plugins/printButton.d.ts +9 -9
  113. package/templating/plugins/printButton.js +40 -40
  114. package/templating/templateManager.d.ts +190 -190
  115. package/templating/templateManager.js +553 -553
  116. package/templating/viewerTemplatePlugin.d.ts +21 -21
  117. package/templating/viewerTemplatePlugin.js +68 -68
  118. package/viewer/defaultViewer.d.ts +122 -122
  119. package/viewer/defaultViewer.js +665 -665
  120. package/viewer/renderOnlyViewer.d.ts +8 -8
  121. package/viewer/renderOnlyViewer.js +43 -43
  122. package/viewer/viewer.d.ts +254 -254
  123. package/viewer/viewer.js +777 -777
  124. package/viewer/viewerManager.d.ts +55 -55
  125. package/viewer/viewerManager.js +87 -87
  126. package/viewer/viewerWithTemplate.d.ts +9 -9
  127. package/viewer/viewerWithTemplate.js +19 -19
@@ -1,9 +1,9 @@
1
- import { AbstractViewerNavbarButton } from "../viewerTemplatePlugin";
2
- import type { DefaultViewer } from "../../viewer/defaultViewer";
3
- export declare class PrintButtonPlugin extends AbstractViewerNavbarButton {
4
- private _viewer;
5
- private _currentModelUrl;
6
- constructor(_viewer: DefaultViewer);
7
- onEvent(): void;
8
- protected static HtmlTemplate: string;
9
- }
1
+ import { AbstractViewerNavbarButton } from "../viewerTemplatePlugin";
2
+ import type { DefaultViewer } from "../../viewer/defaultViewer";
3
+ export declare class PrintButtonPlugin extends AbstractViewerNavbarButton {
4
+ private _viewer;
5
+ private _currentModelUrl;
6
+ constructor(_viewer: DefaultViewer);
7
+ onEvent(): void;
8
+ protected static HtmlTemplate: string;
9
+ }
@@ -1,41 +1,41 @@
1
- import { __extends } from "tslib";
2
- import { AbstractViewerNavbarButton } from "../viewerTemplatePlugin.js";
3
- import { Tools } from "@babylonjs/core/Misc/tools.js";
4
- var PrintButtonPlugin = /** @class */ (function (_super) {
5
- __extends(PrintButtonPlugin, _super);
6
- function PrintButtonPlugin(_viewer) {
7
- var _this = _super.call(this, "print", "print-button", PrintButtonPlugin.HtmlTemplate) || this;
8
- _this._viewer = _viewer;
9
- _this._viewer.onModelLoadedObservable.add(function (model) {
10
- _this._currentModelUrl = "";
11
- if (model.configuration.url) {
12
- var filename = Tools.GetFilename(model.configuration.url) || model.configuration.url;
13
- var baseUrl = model.configuration.root || Tools.GetFolderPath(model.configuration.url);
14
- //gltf, obj, stl
15
- var extension_1 = model.configuration.loader || filename.split(".").pop() || "";
16
- var printable_1 = false;
17
- // not using .some sue to IE11
18
- ["gltf", "glb", "obj", "stl"].forEach(function (ext) {
19
- if (extension_1.indexOf(ext) !== -1) {
20
- printable_1 = true;
21
- }
22
- });
23
- if (printable_1) {
24
- _this._currentModelUrl = baseUrl + filename;
25
- }
26
- }
27
- });
28
- return _this;
29
- }
30
- PrintButtonPlugin.prototype.onEvent = function () {
31
- if (this._currentModelUrl) {
32
- var printUrl = this._currentModelUrl.replace(/https?:\/\//, "com.microsoft.builder3d://");
33
- window.open(printUrl, "_self");
34
- }
35
- };
36
- // eslint-disable-next-line @typescript-eslint/naming-convention
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");
38
- return PrintButtonPlugin;
39
- }(AbstractViewerNavbarButton));
40
- export { PrintButtonPlugin };
1
+ import { __extends } from "tslib";
2
+ import { AbstractViewerNavbarButton } from "../viewerTemplatePlugin.js";
3
+ import { Tools } from "@babylonjs/core/Misc/tools.js";
4
+ var PrintButtonPlugin = /** @class */ (function (_super) {
5
+ __extends(PrintButtonPlugin, _super);
6
+ function PrintButtonPlugin(_viewer) {
7
+ var _this = _super.call(this, "print", "print-button", PrintButtonPlugin.HtmlTemplate) || this;
8
+ _this._viewer = _viewer;
9
+ _this._viewer.onModelLoadedObservable.add(function (model) {
10
+ _this._currentModelUrl = "";
11
+ if (model.configuration.url) {
12
+ var filename = Tools.GetFilename(model.configuration.url) || model.configuration.url;
13
+ var baseUrl = model.configuration.root || Tools.GetFolderPath(model.configuration.url);
14
+ //gltf, obj, stl
15
+ var extension_1 = model.configuration.loader || filename.split(".").pop() || "";
16
+ var printable_1 = false;
17
+ // not using .some sue to IE11
18
+ ["gltf", "glb", "obj", "stl"].forEach(function (ext) {
19
+ if (extension_1.indexOf(ext) !== -1) {
20
+ printable_1 = true;
21
+ }
22
+ });
23
+ if (printable_1) {
24
+ _this._currentModelUrl = baseUrl + filename;
25
+ }
26
+ }
27
+ });
28
+ return _this;
29
+ }
30
+ PrintButtonPlugin.prototype.onEvent = function () {
31
+ if (this._currentModelUrl) {
32
+ var printUrl = this._currentModelUrl.replace(/https?:\/\//, "com.microsoft.builder3d://");
33
+ window.open(printUrl, "_self");
34
+ }
35
+ };
36
+ // eslint-disable-next-line @typescript-eslint/naming-convention
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");
38
+ return PrintButtonPlugin;
39
+ }(AbstractViewerNavbarButton));
40
+ export { PrintButtonPlugin };
41
41
  //# sourceMappingURL=printButton.js.map
@@ -1,190 +1,190 @@
1
- import { Observable } from "@babylonjs/core/Misc/observable.js";
2
- import { EventManager } from "./eventManager";
3
- import type { ITemplateConfiguration } from "../configuration/interfaces/templateConfiguration";
4
- /**
5
- * The object sent when an event is triggered
6
- */
7
- export interface EventCallback {
8
- event: Event;
9
- template: Template;
10
- selector: string;
11
- payload?: any;
12
- }
13
- /**
14
- * The template manager, a member of the viewer class, will manage the viewer's templates and generate the HTML.
15
- * The template manager managers a single viewer and can be seen as the collection of all sub-templates of the viewer.
16
- */
17
- export declare class TemplateManager {
18
- containerElement: Element;
19
- /**
20
- * Will be triggered when any template is initialized
21
- */
22
- onTemplateInit: Observable<Template>;
23
- /**
24
- * Will be triggered when any template is fully loaded
25
- */
26
- onTemplateLoaded: Observable<Template>;
27
- /**
28
- * Will be triggered when a template state changes
29
- */
30
- onTemplateStateChange: Observable<Template>;
31
- /**
32
- * Will be triggered when all templates finished loading
33
- */
34
- onAllLoaded: Observable<TemplateManager>;
35
- /**
36
- * Will be triggered when any event on any template is triggered.
37
- */
38
- onEventTriggered: Observable<EventCallback>;
39
- /**
40
- * This template manager's event manager. In charge of callback registrations to native event types
41
- */
42
- eventManager: EventManager;
43
- private _templates;
44
- constructor(containerElement: Element);
45
- /**
46
- * Initialize the template(s) for the viewer. Called bay the Viewer class
47
- * @param templates the templates to be used to initialize the main template
48
- */
49
- initTemplate(templates: {
50
- [key: string]: ITemplateConfiguration;
51
- }): Promise<void>;
52
- /**
53
- *
54
- * This function will create a simple map with child-dependencies of the template html tree.
55
- * It will compile each template, check if its children exist in the configuration and will add them if they do.
56
- * It is expected that the main template will be called main!
57
- *
58
- * @param templates
59
- */
60
- private _buildHTMLTree;
61
- /**
62
- * Get the canvas in the template tree.
63
- * There must be one and only one canvas inthe template.
64
- */
65
- getCanvas(): HTMLCanvasElement | null;
66
- /**
67
- * Get a specific template from the template tree
68
- * @param name the name of the template to load
69
- */
70
- getTemplate(name: string): Template | undefined;
71
- private _checkLoadedState;
72
- /**
73
- * Dispose the template manager
74
- */
75
- dispose(): void;
76
- }
77
- /**
78
- * This class represents a single template in the viewer's template tree.
79
- * An example for a template is a single canvas, an overlay (containing sub-templates) or the navigation bar.
80
- * A template is injected using the template manager in the correct position.
81
- * The template is rendered using Handlebars and can use Handlebars' features (such as parameter injection)
82
- *
83
- * For further information please refer to the documentation page, https://doc.babylonjs.com
84
- */
85
- export declare class Template {
86
- name: string;
87
- private _configuration;
88
- /**
89
- * Will be triggered when the template is loaded
90
- */
91
- onLoaded: Observable<Template>;
92
- /**
93
- * will be triggered when the template is appended to the tree
94
- */
95
- onAppended: Observable<Template>;
96
- /**
97
- * Will be triggered when the template's state changed (shown, hidden)
98
- */
99
- onStateChange: Observable<Template>;
100
- /**
101
- * Will be triggered when an event is triggered on ths template.
102
- * The event is a native browser event (like mouse or pointer events)
103
- */
104
- onEventTriggered: Observable<EventCallback>;
105
- onParamsUpdated: Observable<Template>;
106
- onHTMLRendered: Observable<Template>;
107
- /**
108
- * is the template loaded?
109
- */
110
- isLoaded: boolean;
111
- /**
112
- * This is meant to be used to track the show and hide functions.
113
- * This is NOT (!!) a flag to check if the element is actually visible to the user.
114
- */
115
- isShown: boolean;
116
- /**
117
- * Is this template a part of the HTML tree (the template manager injected it)
118
- */
119
- isInHtmlTree: boolean;
120
- /**
121
- * The HTML element containing this template
122
- */
123
- parent: HTMLElement;
124
- /**
125
- * A promise that is fulfilled when the template finished loading.
126
- */
127
- initPromise: Promise<Template>;
128
- private _fragment;
129
- private _addedFragment;
130
- private _htmlTemplate;
131
- private _rawHtml;
132
- private _loadRequests;
133
- constructor(name: string, _configuration: ITemplateConfiguration);
134
- /**
135
- * Some templates have parameters (like background color for example).
136
- * The parameters are provided to Handlebars which in turn generates the template.
137
- * This function will update the template with the new parameters
138
- *
139
- * Note that when updating parameters the events will be registered again (after being cleared).
140
- *
141
- * @param params the new template parameters
142
- * @param append
143
- */
144
- updateParams(params: {
145
- [key: string]: string | number | boolean | object;
146
- }, append?: boolean): void;
147
- redraw(): void;
148
- /**
149
- * Get the template'S configuration
150
- */
151
- get configuration(): ITemplateConfiguration;
152
- /**
153
- * A template can be a parent element for other templates or HTML elements.
154
- * This function will deliver all child HTML elements of this template.
155
- */
156
- getChildElements(): Array<string>;
157
- /**
158
- * Appending the template to a parent HTML element.
159
- * If a parent is already set and you wish to replace the old HTML with new one, forceRemove should be true.
160
- * @param parent the parent to which the template is added
161
- * @param forceRemove if the parent already exists, shoud the template be removed from it?
162
- */
163
- appendTo(parent: HTMLElement, forceRemove?: boolean): void;
164
- private _isShowing;
165
- private _isHiding;
166
- /**
167
- * Show the template using the provided visibilityFunction, or natively using display: flex.
168
- * The provided function returns a promise that should be fulfilled when the element is shown.
169
- * Since it is a promise async operations are more than possible.
170
- * See the default viewer for an opacity example.
171
- * @param visibilityFunction The function to execute to show the template.
172
- */
173
- show(visibilityFunction?: (template: Template) => Promise<Template>): Promise<Template>;
174
- /**
175
- * Hide the template using the provided visibilityFunction, or natively using display: none.
176
- * The provided function returns a promise that should be fulfilled when the element is hidden.
177
- * Since it is a promise async operations are more than possible.
178
- * See the default viewer for an opacity example.
179
- * @param visibilityFunction The function to execute to show the template.
180
- */
181
- hide(visibilityFunction?: (template: Template) => Promise<Template>): Promise<Template>;
182
- /**
183
- * Dispose this template
184
- */
185
- dispose(): void;
186
- private _getTemplateAsHtml;
187
- private _registeredEvents;
188
- private _registerEvents;
189
- private _getTemplateLocation;
190
- }
1
+ import { Observable } from "@babylonjs/core/Misc/observable.js";
2
+ import { EventManager } from "./eventManager";
3
+ import type { ITemplateConfiguration } from "../configuration/interfaces/templateConfiguration";
4
+ /**
5
+ * The object sent when an event is triggered
6
+ */
7
+ export interface EventCallback {
8
+ event: Event;
9
+ template: Template;
10
+ selector: string;
11
+ payload?: any;
12
+ }
13
+ /**
14
+ * The template manager, a member of the viewer class, will manage the viewer's templates and generate the HTML.
15
+ * The template manager managers a single viewer and can be seen as the collection of all sub-templates of the viewer.
16
+ */
17
+ export declare class TemplateManager {
18
+ containerElement: Element;
19
+ /**
20
+ * Will be triggered when any template is initialized
21
+ */
22
+ onTemplateInit: Observable<Template>;
23
+ /**
24
+ * Will be triggered when any template is fully loaded
25
+ */
26
+ onTemplateLoaded: Observable<Template>;
27
+ /**
28
+ * Will be triggered when a template state changes
29
+ */
30
+ onTemplateStateChange: Observable<Template>;
31
+ /**
32
+ * Will be triggered when all templates finished loading
33
+ */
34
+ onAllLoaded: Observable<TemplateManager>;
35
+ /**
36
+ * Will be triggered when any event on any template is triggered.
37
+ */
38
+ onEventTriggered: Observable<EventCallback>;
39
+ /**
40
+ * This template manager's event manager. In charge of callback registrations to native event types
41
+ */
42
+ eventManager: EventManager;
43
+ private _templates;
44
+ constructor(containerElement: Element);
45
+ /**
46
+ * Initialize the template(s) for the viewer. Called bay the Viewer class
47
+ * @param templates the templates to be used to initialize the main template
48
+ */
49
+ initTemplate(templates: {
50
+ [key: string]: ITemplateConfiguration;
51
+ }): Promise<void>;
52
+ /**
53
+ *
54
+ * This function will create a simple map with child-dependencies of the template html tree.
55
+ * It will compile each template, check if its children exist in the configuration and will add them if they do.
56
+ * It is expected that the main template will be called main!
57
+ *
58
+ * @param templates
59
+ */
60
+ private _buildHTMLTree;
61
+ /**
62
+ * Get the canvas in the template tree.
63
+ * There must be one and only one canvas inthe template.
64
+ */
65
+ getCanvas(): HTMLCanvasElement | null;
66
+ /**
67
+ * Get a specific template from the template tree
68
+ * @param name the name of the template to load
69
+ */
70
+ getTemplate(name: string): Template | undefined;
71
+ private _checkLoadedState;
72
+ /**
73
+ * Dispose the template manager
74
+ */
75
+ dispose(): void;
76
+ }
77
+ /**
78
+ * This class represents a single template in the viewer's template tree.
79
+ * An example for a template is a single canvas, an overlay (containing sub-templates) or the navigation bar.
80
+ * A template is injected using the template manager in the correct position.
81
+ * The template is rendered using Handlebars and can use Handlebars' features (such as parameter injection)
82
+ *
83
+ * For further information please refer to the documentation page, https://doc.babylonjs.com
84
+ */
85
+ export declare class Template {
86
+ name: string;
87
+ private _configuration;
88
+ /**
89
+ * Will be triggered when the template is loaded
90
+ */
91
+ onLoaded: Observable<Template>;
92
+ /**
93
+ * will be triggered when the template is appended to the tree
94
+ */
95
+ onAppended: Observable<Template>;
96
+ /**
97
+ * Will be triggered when the template's state changed (shown, hidden)
98
+ */
99
+ onStateChange: Observable<Template>;
100
+ /**
101
+ * Will be triggered when an event is triggered on ths template.
102
+ * The event is a native browser event (like mouse or pointer events)
103
+ */
104
+ onEventTriggered: Observable<EventCallback>;
105
+ onParamsUpdated: Observable<Template>;
106
+ onHTMLRendered: Observable<Template>;
107
+ /**
108
+ * is the template loaded?
109
+ */
110
+ isLoaded: boolean;
111
+ /**
112
+ * This is meant to be used to track the show and hide functions.
113
+ * This is NOT (!!) a flag to check if the element is actually visible to the user.
114
+ */
115
+ isShown: boolean;
116
+ /**
117
+ * Is this template a part of the HTML tree (the template manager injected it)
118
+ */
119
+ isInHtmlTree: boolean;
120
+ /**
121
+ * The HTML element containing this template
122
+ */
123
+ parent: HTMLElement;
124
+ /**
125
+ * A promise that is fulfilled when the template finished loading.
126
+ */
127
+ initPromise: Promise<Template>;
128
+ private _fragment;
129
+ private _addedFragment;
130
+ private _htmlTemplate;
131
+ private _rawHtml;
132
+ private _loadRequests;
133
+ constructor(name: string, _configuration: ITemplateConfiguration);
134
+ /**
135
+ * Some templates have parameters (like background color for example).
136
+ * The parameters are provided to Handlebars which in turn generates the template.
137
+ * This function will update the template with the new parameters
138
+ *
139
+ * Note that when updating parameters the events will be registered again (after being cleared).
140
+ *
141
+ * @param params the new template parameters
142
+ * @param append
143
+ */
144
+ updateParams(params: {
145
+ [key: string]: string | number | boolean | object;
146
+ }, append?: boolean): void;
147
+ redraw(): void;
148
+ /**
149
+ * Get the template'S configuration
150
+ */
151
+ get configuration(): ITemplateConfiguration;
152
+ /**
153
+ * A template can be a parent element for other templates or HTML elements.
154
+ * This function will deliver all child HTML elements of this template.
155
+ */
156
+ getChildElements(): Array<string>;
157
+ /**
158
+ * Appending the template to a parent HTML element.
159
+ * If a parent is already set and you wish to replace the old HTML with new one, forceRemove should be true.
160
+ * @param parent the parent to which the template is added
161
+ * @param forceRemove if the parent already exists, shoud the template be removed from it?
162
+ */
163
+ appendTo(parent: HTMLElement, forceRemove?: boolean): void;
164
+ private _isShowing;
165
+ private _isHiding;
166
+ /**
167
+ * Show the template using the provided visibilityFunction, or natively using display: flex.
168
+ * The provided function returns a promise that should be fulfilled when the element is shown.
169
+ * Since it is a promise async operations are more than possible.
170
+ * See the default viewer for an opacity example.
171
+ * @param visibilityFunction The function to execute to show the template.
172
+ */
173
+ show(visibilityFunction?: (template: Template) => Promise<Template>): Promise<Template>;
174
+ /**
175
+ * Hide the template using the provided visibilityFunction, or natively using display: none.
176
+ * The provided function returns a promise that should be fulfilled when the element is hidden.
177
+ * Since it is a promise async operations are more than possible.
178
+ * See the default viewer for an opacity example.
179
+ * @param visibilityFunction The function to execute to show the template.
180
+ */
181
+ hide(visibilityFunction?: (template: Template) => Promise<Template>): Promise<Template>;
182
+ /**
183
+ * Dispose this template
184
+ */
185
+ dispose(): void;
186
+ private _getTemplateAsHtml;
187
+ private _registeredEvents;
188
+ private _registerEvents;
189
+ private _getTemplateLocation;
190
+ }