@combeenation/3d-viewer 7.1.1 → 7.1.2

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 (115) hide show
  1. package/README.md +111 -111
  2. package/dist/lib-cjs/api/classes/animationInterface.d.ts +8 -8
  3. package/dist/lib-cjs/api/classes/animationInterface.js +2 -2
  4. package/dist/lib-cjs/api/classes/dottedPath.d.ts +79 -79
  5. package/dist/lib-cjs/api/classes/dottedPath.js +166 -166
  6. package/dist/lib-cjs/api/classes/element.d.ts +153 -153
  7. package/dist/lib-cjs/api/classes/element.js +672 -670
  8. package/dist/lib-cjs/api/classes/element.js.map +1 -1
  9. package/dist/lib-cjs/api/classes/event.d.ts +401 -396
  10. package/dist/lib-cjs/api/classes/event.js +424 -419
  11. package/dist/lib-cjs/api/classes/event.js.map +1 -1
  12. package/dist/lib-cjs/api/classes/eventBroadcaster.d.ts +26 -26
  13. package/dist/lib-cjs/api/classes/eventBroadcaster.js +49 -49
  14. package/dist/lib-cjs/api/classes/fuzzyMap.d.ts +7 -7
  15. package/dist/lib-cjs/api/classes/fuzzyMap.js +21 -21
  16. package/dist/lib-cjs/api/classes/parameter.d.ts +351 -351
  17. package/dist/lib-cjs/api/classes/parameter.js +524 -517
  18. package/dist/lib-cjs/api/classes/parameter.js.map +1 -1
  19. package/dist/lib-cjs/api/classes/parameterObservable.d.ts +36 -36
  20. package/dist/lib-cjs/api/classes/parameterObservable.js +72 -72
  21. package/dist/lib-cjs/api/classes/parameterizable.d.ts +15 -15
  22. package/dist/lib-cjs/api/classes/parameterizable.js +102 -102
  23. package/dist/lib-cjs/api/classes/placementAnimation.d.ts +45 -45
  24. package/dist/lib-cjs/api/classes/placementAnimation.js +176 -176
  25. package/dist/lib-cjs/api/classes/variant.d.ts +253 -253
  26. package/dist/lib-cjs/api/classes/variant.js +858 -843
  27. package/dist/lib-cjs/api/classes/variant.js.map +1 -1
  28. package/dist/lib-cjs/api/classes/variantInstance.d.ts +53 -53
  29. package/dist/lib-cjs/api/classes/variantInstance.js +125 -125
  30. package/dist/lib-cjs/api/classes/variantParameterizable.d.ts +17 -17
  31. package/dist/lib-cjs/api/classes/variantParameterizable.js +86 -88
  32. package/dist/lib-cjs/api/classes/variantParameterizable.js.map +1 -1
  33. package/dist/lib-cjs/api/classes/viewer.d.ts +204 -200
  34. package/dist/lib-cjs/api/classes/viewer.js +682 -670
  35. package/dist/lib-cjs/api/classes/viewer.js.map +1 -1
  36. package/dist/lib-cjs/api/classes/viewerError.d.ts +43 -0
  37. package/dist/lib-cjs/api/classes/viewerError.js +56 -0
  38. package/dist/lib-cjs/api/classes/viewerError.js.map +1 -0
  39. package/dist/lib-cjs/api/classes/viewerLight.d.ts +66 -66
  40. package/dist/lib-cjs/api/classes/viewerLight.js +348 -348
  41. package/dist/lib-cjs/api/internal/lensRendering.d.ts +8 -8
  42. package/dist/lib-cjs/api/internal/lensRendering.js +11 -11
  43. package/dist/lib-cjs/api/internal/sceneSetup.d.ts +13 -13
  44. package/dist/lib-cjs/api/internal/sceneSetup.js +226 -226
  45. package/dist/lib-cjs/api/manager/animationManager.d.ts +30 -30
  46. package/dist/lib-cjs/api/manager/animationManager.js +126 -126
  47. package/dist/lib-cjs/api/manager/gltfExportManager.d.ts +79 -79
  48. package/dist/lib-cjs/api/manager/gltfExportManager.js +242 -242
  49. package/dist/lib-cjs/api/manager/sceneManager.d.ts +33 -33
  50. package/dist/lib-cjs/api/manager/sceneManager.js +128 -130
  51. package/dist/lib-cjs/api/manager/sceneManager.js.map +1 -1
  52. package/dist/lib-cjs/api/manager/tagManager.d.ts +116 -109
  53. package/dist/lib-cjs/api/manager/tagManager.js +444 -425
  54. package/dist/lib-cjs/api/manager/tagManager.js.map +1 -1
  55. package/dist/lib-cjs/api/manager/textureLoadManager.d.ts +22 -22
  56. package/dist/lib-cjs/api/manager/textureLoadManager.js +97 -97
  57. package/dist/lib-cjs/api/manager/variantInstanceManager.d.ts +106 -106
  58. package/dist/lib-cjs/api/manager/variantInstanceManager.js +292 -292
  59. package/dist/lib-cjs/api/store/specStorage.d.ts +32 -32
  60. package/dist/lib-cjs/api/store/specStorage.js +65 -65
  61. package/dist/lib-cjs/api/util/babylonHelper.d.ts +235 -235
  62. package/dist/lib-cjs/api/util/babylonHelper.js +753 -753
  63. package/dist/lib-cjs/api/util/globalTypes.d.ts +441 -437
  64. package/dist/lib-cjs/api/util/globalTypes.js +1 -1
  65. package/dist/lib-cjs/api/util/resourceHelper.d.ts +58 -58
  66. package/dist/lib-cjs/api/util/resourceHelper.js +203 -203
  67. package/dist/lib-cjs/api/util/sceneLoaderHelper.d.ts +44 -44
  68. package/dist/lib-cjs/api/util/sceneLoaderHelper.js +175 -175
  69. package/dist/lib-cjs/api/util/stringHelper.d.ts +13 -13
  70. package/dist/lib-cjs/api/util/stringHelper.js +32 -32
  71. package/dist/lib-cjs/api/util/structureHelper.d.ts +9 -9
  72. package/dist/lib-cjs/api/util/structureHelper.js +57 -48
  73. package/dist/lib-cjs/api/util/structureHelper.js.map +1 -1
  74. package/dist/lib-cjs/buildinfo.json +3 -3
  75. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  76. package/dist/lib-cjs/index.d.ts +54 -53
  77. package/dist/lib-cjs/index.js +117 -114
  78. package/dist/lib-cjs/index.js.map +1 -1
  79. package/package.json +81 -81
  80. package/src/api/classes/animationInterface.ts +10 -10
  81. package/src/api/classes/dottedPath.ts +181 -181
  82. package/src/api/classes/element.ts +733 -731
  83. package/src/api/classes/event.ts +457 -452
  84. package/src/api/classes/eventBroadcaster.ts +52 -52
  85. package/src/api/classes/fuzzyMap.ts +21 -21
  86. package/src/api/classes/parameter.ts +561 -554
  87. package/src/api/classes/parameterObservable.ts +73 -73
  88. package/src/api/classes/parameterizable.ts +87 -87
  89. package/src/api/classes/placementAnimation.ts +162 -162
  90. package/src/api/classes/variant.ts +949 -933
  91. package/src/api/classes/variantInstance.ts +123 -123
  92. package/src/api/classes/variantParameterizable.ts +83 -85
  93. package/src/api/classes/viewer.ts +760 -744
  94. package/src/api/classes/viewerError.ts +63 -0
  95. package/src/api/classes/viewerLight.ts +339 -339
  96. package/src/api/internal/debugViewer.ts +90 -90
  97. package/src/api/internal/lensRendering.ts +9 -9
  98. package/src/api/internal/sceneSetup.ts +205 -205
  99. package/src/api/manager/animationManager.ts +143 -143
  100. package/src/api/manager/gltfExportManager.ts +237 -237
  101. package/src/api/manager/sceneManager.ts +134 -136
  102. package/src/api/manager/tagManager.ts +477 -457
  103. package/src/api/manager/textureLoadManager.ts +95 -95
  104. package/src/api/manager/variantInstanceManager.ts +309 -309
  105. package/src/api/store/specStorage.ts +68 -68
  106. package/src/api/util/babylonHelper.ts +823 -823
  107. package/src/api/util/globalTypes.ts +508 -504
  108. package/src/api/util/resourceHelper.ts +191 -191
  109. package/src/api/util/sceneLoaderHelper.ts +170 -170
  110. package/src/api/util/stringHelper.ts +30 -30
  111. package/src/api/util/structureHelper.ts +58 -49
  112. package/src/buildinfo.json +3 -3
  113. package/src/dev.ts +62 -62
  114. package/src/index.ts +103 -100
  115. package/src/types.d.ts +38 -38
@@ -1,123 +1,123 @@
1
- import { Element } from './element';
2
- import { EventBroadcaster } from './eventBroadcaster';
3
- import { ParameterObservable } from './parameterObservable';
4
- import { Variant } from './variant';
5
- import { ViewerLight } from './viewerLight';
6
- import { Mesh } from '@babylonjs/core/Meshes/mesh';
7
-
8
- /**
9
- * Class VariantInstance.
10
- */
11
- export class VariantInstance extends EventBroadcaster {
12
- protected _variant: Variant | null = null;
13
-
14
- /**
15
- * Constructor
16
- */
17
- protected constructor(public name: string) {
18
- super();
19
- }
20
-
21
- /**
22
- * Creates a living clone of the given source {@link Variant} and instances a {@link VariantInstance} with given name
23
- * and {@link ParameterBag}.
24
- */
25
- public static async createLiving(
26
- sourceVariant: Variant,
27
- name: string,
28
- parameters?: ParameterBag
29
- ): Promise<VariantInstance> {
30
- const variantInstance = new VariantInstance(name);
31
- variantInstance._variant = await sourceVariant.createLiving(variantInstance, parameters);
32
- return variantInstance;
33
- }
34
-
35
- /**
36
- * WORK IN PROGRESS
37
- */
38
- /*
39
- public translate(
40
- joint: DottedPathArgument,
41
- variantInstance: VariantInstance,
42
- variantInstanceJoint: DottedPathArgument
43
- ): VariantInstance {
44
- joint = DottedPath.create( joint );
45
- variantInstanceJoint = DottedPath.create( variantInstanceJoint );
46
- const jointNode = variantInstance.variant.getNode( joint.path );
47
- const variantInstanceJointNode = variantInstance.variant.getNode( variantInstanceJoint.path );
48
- const differenceVector = variantInstanceJointNode.getAbsolutePosition().subtract( jointNode.getAbsolutePosition() );
49
- const differenceVectorRotation = variantInstanceJointNode.rotation.subtract( jointNode.rotation );
50
-
51
- console.log( variantInstanceJointNode.rotationQuaternion, 'ROTATION' );
52
-
53
- this.variant.nodes.forEach( node => {
54
- node.translate( Axis.X, differenceVector.x, Space.WORLD );
55
- node.translate( Axis.Y, differenceVector.y, Space.WORLD );
56
- node.translate( Axis.Z, differenceVector.z, Space.WORLD );
57
-
58
- node.rotateAround( Axis.Y, differenceVectorRotation, 20 );
59
- // node.rotate(Axis.Y, differenceVectorRotation.y, Space.WORLD );
60
- // node.rotate(Axis.Z, differenceVectorRotation.z, Space.WORLD );
61
- } );
62
- return this;
63
- }
64
- */
65
-
66
- /**
67
- * Gets the {@link Variant} attached to the {@link VariantInstance}.
68
- */
69
- get variant(): Variant {
70
- if (!this._variant) {
71
- throw new Error(`Variant has not been properly set for instance.`);
72
- }
73
- return this._variant;
74
- }
75
-
76
- /**
77
- * A proxy for {@link Variant.getElement}.
78
- */
79
- public async getElement(dottedPath: DottedPathArgument): Promise<Element> {
80
- return this.variant.getElement(dottedPath);
81
- }
82
-
83
- /**
84
- * A proxy for {@link Variant.getViewerLight}.
85
- */
86
- public async getViewerLight(dottedPath: DottedPathArgument): Promise<ViewerLight> {
87
- return this.variant.getViewerLight(dottedPath);
88
- }
89
-
90
- /**
91
- * A proxy for {@link Variant.getNode}.
92
- */
93
- public async getNode(
94
- elementDottedPath: DottedPathArgument,
95
- nodeDottedPath: DottedPathArgument
96
- ): Promise<TransformNode> {
97
- return this.variant.getNode(elementDottedPath, nodeDottedPath);
98
- }
99
-
100
- /**
101
- * A proxy for {@link Variant.getMesh}.
102
- */
103
- public async getMesh(
104
- elementDottedPath: DottedPathArgument,
105
- meshDottedPath: DottedPathArgument
106
- ): Promise<Mesh | null> {
107
- return this.variant.getMesh(elementDottedPath, meshDottedPath);
108
- }
109
-
110
- /**
111
- * A proxy for {@link Variant.commitParameters}.
112
- */
113
- public async commitParameters(parameters?: ParameterBag): Promise<Variant> {
114
- return this.variant.commitParameters(parameters);
115
- }
116
-
117
- /**
118
- * A proxy for {@link ParameterObservable.commitParameter}.
119
- */
120
- public async commitParameter(parameter: string, value: ParameterValue): Promise<ParameterObservable> {
121
- return this.variant.commitParameter(parameter, value);
122
- }
123
- }
1
+ import { Element } from './element';
2
+ import { EventBroadcaster } from './eventBroadcaster';
3
+ import { ParameterObservable } from './parameterObservable';
4
+ import { Variant } from './variant';
5
+ import { ViewerLight } from './viewerLight';
6
+ import { Mesh } from '@babylonjs/core/Meshes/mesh';
7
+
8
+ /**
9
+ * Class VariantInstance.
10
+ */
11
+ export class VariantInstance extends EventBroadcaster {
12
+ protected _variant: Variant | null = null;
13
+
14
+ /**
15
+ * Constructor
16
+ */
17
+ protected constructor(public name: string) {
18
+ super();
19
+ }
20
+
21
+ /**
22
+ * Creates a living clone of the given source {@link Variant} and instances a {@link VariantInstance} with given name
23
+ * and {@link ParameterBag}.
24
+ */
25
+ public static async createLiving(
26
+ sourceVariant: Variant,
27
+ name: string,
28
+ parameters?: ParameterBag
29
+ ): Promise<VariantInstance> {
30
+ const variantInstance = new VariantInstance(name);
31
+ variantInstance._variant = await sourceVariant.createLiving(variantInstance, parameters);
32
+ return variantInstance;
33
+ }
34
+
35
+ /**
36
+ * WORK IN PROGRESS
37
+ */
38
+ /*
39
+ public translate(
40
+ joint: DottedPathArgument,
41
+ variantInstance: VariantInstance,
42
+ variantInstanceJoint: DottedPathArgument
43
+ ): VariantInstance {
44
+ joint = DottedPath.create( joint );
45
+ variantInstanceJoint = DottedPath.create( variantInstanceJoint );
46
+ const jointNode = variantInstance.variant.getNode( joint.path );
47
+ const variantInstanceJointNode = variantInstance.variant.getNode( variantInstanceJoint.path );
48
+ const differenceVector = variantInstanceJointNode.getAbsolutePosition().subtract( jointNode.getAbsolutePosition() );
49
+ const differenceVectorRotation = variantInstanceJointNode.rotation.subtract( jointNode.rotation );
50
+
51
+ console.log( variantInstanceJointNode.rotationQuaternion, 'ROTATION' );
52
+
53
+ this.variant.nodes.forEach( node => {
54
+ node.translate( Axis.X, differenceVector.x, Space.WORLD );
55
+ node.translate( Axis.Y, differenceVector.y, Space.WORLD );
56
+ node.translate( Axis.Z, differenceVector.z, Space.WORLD );
57
+
58
+ node.rotateAround( Axis.Y, differenceVectorRotation, 20 );
59
+ // node.rotate(Axis.Y, differenceVectorRotation.y, Space.WORLD );
60
+ // node.rotate(Axis.Z, differenceVectorRotation.z, Space.WORLD );
61
+ } );
62
+ return this;
63
+ }
64
+ */
65
+
66
+ /**
67
+ * Gets the {@link Variant} attached to the {@link VariantInstance}.
68
+ */
69
+ get variant(): Variant {
70
+ if (!this._variant) {
71
+ throw new Error(`Variant has not been properly set for instance.`);
72
+ }
73
+ return this._variant;
74
+ }
75
+
76
+ /**
77
+ * A proxy for {@link Variant.getElement}.
78
+ */
79
+ public async getElement(dottedPath: DottedPathArgument): Promise<Element> {
80
+ return this.variant.getElement(dottedPath);
81
+ }
82
+
83
+ /**
84
+ * A proxy for {@link Variant.getViewerLight}.
85
+ */
86
+ public async getViewerLight(dottedPath: DottedPathArgument): Promise<ViewerLight> {
87
+ return this.variant.getViewerLight(dottedPath);
88
+ }
89
+
90
+ /**
91
+ * A proxy for {@link Variant.getNode}.
92
+ */
93
+ public async getNode(
94
+ elementDottedPath: DottedPathArgument,
95
+ nodeDottedPath: DottedPathArgument
96
+ ): Promise<TransformNode> {
97
+ return this.variant.getNode(elementDottedPath, nodeDottedPath);
98
+ }
99
+
100
+ /**
101
+ * A proxy for {@link Variant.getMesh}.
102
+ */
103
+ public async getMesh(
104
+ elementDottedPath: DottedPathArgument,
105
+ meshDottedPath: DottedPathArgument
106
+ ): Promise<Mesh | null> {
107
+ return this.variant.getMesh(elementDottedPath, meshDottedPath);
108
+ }
109
+
110
+ /**
111
+ * A proxy for {@link Variant.commitParameters}.
112
+ */
113
+ public async commitParameters(parameters?: ParameterBag): Promise<Variant> {
114
+ return this.variant.commitParameters(parameters);
115
+ }
116
+
117
+ /**
118
+ * A proxy for {@link ParameterObservable.commitParameter}.
119
+ */
120
+ public async commitParameter(parameter: string, value: ParameterValue): Promise<ParameterObservable> {
121
+ return this.variant.commitParameter(parameter, value);
122
+ }
123
+ }
@@ -1,85 +1,83 @@
1
- import { DottedPath } from './../classes/dottedPath';
2
- import { Event } from './../classes/event';
3
- import { Parameterizable } from './../classes/parameterizable';
4
- import { Variant } from './../classes/variant';
5
- import { mergeMaps } from './../util/resourceHelper';
6
- import { camelToSnakeCase } from './../util/stringHelper';
7
- import { cloneDeep, concat, get, merge } from 'lodash-es';
8
-
9
- export abstract class VariantParameterizable extends Parameterizable {
10
- protected readonly _parameterObservers: Map<string, ParameterObserver[]> = new Map();
11
-
12
- protected constructor(public readonly variant: Variant, public readonly name: string) {
13
- super();
14
- }
15
-
16
- /**
17
- * Gets the inherited parameters from the {@link Variant} with cleaned {@link Parameterizable} prefix.
18
- */
19
- get inheritedParameters(): ParameterBag {
20
- const parameterBag: ParameterBag = {};
21
- for (const parameter in this.variant.inheritedParameters) {
22
- const dpp = DottedPath.create(parameter);
23
- if (dpp.parts.length !== 1) {
24
- continue;
25
- }
26
- parameterBag[parameter] = this.variant.inheritedParameters[parameter];
27
- }
28
- for (const parameter in this.variant.inheritedParameters) {
29
- const dpp = DottedPath.create(parameter);
30
- if (dpp.firstPart !== this.name) {
31
- continue;
32
- }
33
- dpp.shiftPart();
34
- parameterBag[dpp.path] = this.variant.inheritedParameters[parameter];
35
- }
36
- return parameterBag;
37
- }
38
-
39
- /**
40
- * Places the given {@link ParameterBag} in the {@link VariantParameterizable}'s parameters, replaces all patterns in
41
- * the {@link StructureJson} and broadcasts all {@link ParameterObserver}s.
42
- */
43
- public async commitParameters(parameters?: ParameterBag): Promise<VariantParameterizable> {
44
- if (!parameters) {
45
- parameters = {};
46
- }
47
- const oldParameters = cloneDeep(this.parameters);
48
- merge(this.parameters, parameters);
49
- // handle parameter observers
50
- let observerPromises: Promise<void | ParameterObserver>[] = [];
51
- for (const parameter in this.parameters) {
52
- const oldParameterValue = oldParameters[parameter];
53
- const newParameterValue = this.parameters[parameter];
54
- this.variant.assertParameter(this.variant.inheritedParameterDeclaration, parameter, newParameterValue);
55
- if (oldParameterValue === newParameterValue) {
56
- continue;
57
- }
58
- // parameter changed
59
- const parameterObservers = mergeMaps(this._parameterObservers, this.parameterObservers);
60
- if (parameterObservers.has(parameter)) {
61
- const observers = parameterObservers.get(parameter)!;
62
- observerPromises = concat(
63
- observerPromises,
64
- observers.map(observer => {
65
- const observerResult = observer(this, oldParameterValue, newParameterValue);
66
- const observerPromise = Promise.resolve(observerResult);
67
- observerPromise.then(() => {
68
- const clsName = camelToSnakeCase(this.constructor.name).toUpperCase();
69
- this.broadcastEvent(
70
- get(Event, clsName + '_PARAMETER_COMMITTED'),
71
- this,
72
- parameter,
73
- oldParameterValue,
74
- newParameterValue
75
- );
76
- });
77
- return observerPromise;
78
- })
79
- );
80
- }
81
- }
82
- await Promise.all(observerPromises);
83
- return this;
84
- }
85
- }
1
+ import { DottedPath } from './../classes/dottedPath';
2
+ import { Event } from './../classes/event';
3
+ import { Parameterizable } from './../classes/parameterizable';
4
+ import { Variant } from './../classes/variant';
5
+ import { mergeMaps } from './../util/resourceHelper';
6
+ import { camelToSnakeCase } from './../util/stringHelper';
7
+ import { cloneDeep, concat, get, merge } from 'lodash-es';
8
+
9
+ export abstract class VariantParameterizable extends Parameterizable {
10
+ protected readonly _parameterObservers: Map<string, ParameterObserver[]> = new Map();
11
+
12
+ protected constructor(public readonly variant: Variant, public readonly name: string) {
13
+ super();
14
+ }
15
+
16
+ /**
17
+ * Gets the inherited parameters from the {@link Variant} with cleaned {@link Parameterizable} prefix.
18
+ */
19
+ get inheritedParameters(): ParameterBag {
20
+ const parameterBag: ParameterBag = {};
21
+ for (const parameter in this.variant.inheritedParameters) {
22
+ const dpp = DottedPath.create(parameter);
23
+ if (dpp.parts.length !== 1) {
24
+ continue;
25
+ }
26
+ parameterBag[parameter] = this.variant.inheritedParameters[parameter];
27
+ }
28
+ for (const parameter in this.variant.inheritedParameters) {
29
+ const dpp = DottedPath.create(parameter);
30
+ if (dpp.firstPart !== this.name) {
31
+ continue;
32
+ }
33
+ dpp.shiftPart();
34
+ parameterBag[dpp.path] = this.variant.inheritedParameters[parameter];
35
+ }
36
+ return parameterBag;
37
+ }
38
+
39
+ /**
40
+ * Places the given {@link ParameterBag} in the {@link VariantParameterizable}'s parameters, replaces all patterns in
41
+ * the {@link StructureJson} and broadcasts all {@link ParameterObserver}s.
42
+ */
43
+ public async commitParameters(parameters?: ParameterBag): Promise<VariantParameterizable> {
44
+ if (!parameters) {
45
+ parameters = {};
46
+ }
47
+ const oldParameters = cloneDeep(this.parameters);
48
+ merge(this.parameters, parameters);
49
+ // handle parameter observers
50
+ let observerPromises: Promise<ParameterObserverResult>[] = [];
51
+ for (const parameter in this.parameters) {
52
+ const oldParameterValue = oldParameters[parameter];
53
+ const newParameterValue = this.parameters[parameter];
54
+ this.variant.assertParameter(this.variant.inheritedParameterDeclaration, parameter, newParameterValue);
55
+ if (oldParameterValue === newParameterValue) {
56
+ continue;
57
+ }
58
+ // parameter changed
59
+ const parameterObservers = mergeMaps(this._parameterObservers, this.parameterObservers);
60
+ if (parameterObservers.has(parameter)) {
61
+ const observers = parameterObservers.get(parameter)!;
62
+ observerPromises = concat(
63
+ observerPromises,
64
+ observers.map(observer => {
65
+ const observerPromise = observer(this, oldParameterValue, newParameterValue);
66
+ return Promise.resolve(observerPromise).then(() => {
67
+ const clsName = camelToSnakeCase(this.constructor.name).toUpperCase();
68
+ this.broadcastEvent(
69
+ get(Event, clsName + '_PARAMETER_COMMITTED'),
70
+ this,
71
+ parameter,
72
+ oldParameterValue,
73
+ newParameterValue
74
+ );
75
+ });
76
+ })
77
+ );
78
+ }
79
+ }
80
+ await Promise.all(observerPromises);
81
+ return this;
82
+ }
83
+ }