@combeenation/3d-viewer 6.2.1 → 6.4.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.
@@ -1,11 +1,21 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.envHelperMetadataName = exports.backgroundDomeName = exports.changeEnvironment = exports.getClientRectFromMesh = exports.removeFromShadowGenerator = exports.addToShadowGenerator = exports.setReceiveShadows = exports.removeFromHighlightLayer = exports.addToHighlightLayer = exports.setMaterialRoughness = exports.setMaterialMetallness = exports.setMaterialTexture = exports.setMaterialColor = exports.setSourceNodeMaterial = exports.setMaterial = exports.transformTransformNode = exports.disableNodeWithParents = exports.enableNodeWithParents = exports.deactivateTransformNode = exports.activateTransformNode = exports.assertTransformNode = exports.injectNodeMetadata = exports.cloneTransformNodeMaterial = exports.cloneNodeWithParents = exports.cloneTransformNode = exports.getDottedPathForNode = exports.mapToDottedNodes = exports.isTextureWithOnLoadObservable = exports.getRootNode = void 0;
12
+ exports.envHelperMetadataName = exports.backgroundDomeName = exports.changeEnvironment = exports.getClientRectFromMesh = exports.removeFromShadowGenerator = exports.addToShadowGenerator = exports.setReceiveShadows = exports.removeFromHighlightLayer = exports.addToHighlightLayer = exports.setMaterialRoughness = exports.setMaterialMetallness = exports.setMaterialTexture = exports.setMaterialColor = exports.setSourceNodeMaterial = exports.setMaterial = exports.transformTransformNode = exports.disableNodeWithParents = exports.enableNodeWithParents = exports.deactivateTransformNode = exports.activateTransformNode = exports.assertTransformNode = exports.injectNodeMetadata = exports.applyMaterialAfterTexturesLoaded = exports.getOrCreateMaterial = exports.cloneTransformNodeMaterial = exports.cloneNodeWithParents = exports.cloneTransformNode = exports.getDottedPathForNode = exports.mapToDottedNodes = exports.isTextureWithOnLoadObservable = exports.getRootNode = void 0;
4
13
  const dottedPath_1 = require("../classes/dottedPath");
5
14
  const sceneSetup_1 = require("../internal/sceneSetup");
6
15
  const sceneLoaderHelper_1 = require("./sceneLoaderHelper");
7
16
  const photoDome_1 = require("@babylonjs/core/Helpers/photoDome");
8
17
  const light_1 = require("@babylonjs/core/Lights/light");
18
+ const baseTexture_1 = require("@babylonjs/core/Materials/Textures/baseTexture");
9
19
  const cubeTexture_1 = require("@babylonjs/core/Materials/Textures/cubeTexture");
10
20
  const math_axis_1 = require("@babylonjs/core/Maths/math.axis");
11
21
  const math_color_1 = require("@babylonjs/core/Maths/math.color");
@@ -19,6 +29,7 @@ const backgroundDomeName = 'BackgroundDome_ViewerGenerated';
19
29
  exports.backgroundDomeName = backgroundDomeName;
20
30
  const envHelperMetadataName = 'viewerEnvHelper';
21
31
  exports.envHelperMetadataName = envHelperMetadataName;
32
+ const materialWaitingToBeSetMetadataName = 'materialWaitingToBeSet';
22
33
  /**
23
34
  * @param node
24
35
  * @return Node
@@ -324,34 +335,95 @@ const changeEnvironment = function (scene, envDef) {
324
335
  };
325
336
  exports.changeEnvironment = changeEnvironment;
326
337
  /**
327
- * @param node
328
- * @param materialName
329
- * @param deep
338
+ * Sets a material by a given material id as material property on the given node.
339
+ *
340
+ * If the material is not already available in the scene, the viewer tries to create a material based on a Combeenation
341
+ * [material asset](https://docs.combeenation.com/docs/howto-create-and-use-babylon-and-material-asset).
342
+ * This of course only works if the viewer is used inside a Combeenation configurator.
343
+ *
344
+ * Furthermore this function also defers the material creation if the node is not visible yet to improve network &
345
+ * viewer bootstrap performance as textures are automatically being lazy loaded only when they are actually visible in
346
+ * the scene.
347
+ *
348
+ * Finally the material will not be applied before all its textures have been loaded. In this way "flickering" effects
349
+ * will be avoided, since the material would be incomplete without its loaded textures.
330
350
  */
331
- const setMaterial = function (variant, node, materialName, deep = true) {
351
+ const setMaterial = function (scene, node, materialId, deep = true, variant) {
332
352
  if (node instanceof abstractMesh_1.AbstractMesh) {
333
- const materialExists = variant.viewer.scene.getMaterialById(materialName);
353
+ const materialExists = scene.getMaterialById(materialId);
334
354
  const hasMissingMaterial = (0, lodash_es_1.has)(node.metadata, sceneLoaderHelper_1.missingMaterialMetadataName);
335
355
  const deferMaterialCreation = !materialExists && !node.isEnabled();
336
356
  if (deferMaterialCreation) {
337
- injectNodeMetadata(node, { [sceneLoaderHelper_1.missingMaterialMetadataName]: materialName }, false);
338
- // If it already had the missing material flag before, there already exists an observer...
357
+ // do not set the material
358
+ injectNodeMetadata(node, { [sceneLoaderHelper_1.missingMaterialMetadataName]: materialId }, false);
359
+ // if it already had the missing material flag before, there already exists an observer...
339
360
  if (!hasMissingMaterial) {
340
361
  (0, sceneLoaderHelper_1.addMissingMaterialObserver)(node);
341
362
  }
342
363
  }
343
364
  else {
344
- node.material = variant.getOrCreateMaterial(materialName);
365
+ // create material an apply it when textures have been loaded
366
+ const material = getOrCreateMaterial(scene, materialId, variant);
367
+ applyMaterialAfterTexturesLoaded(material, node);
345
368
  if (hasMissingMaterial) {
346
369
  delete node.metadata[sceneLoaderHelper_1.missingMaterialMetadataName];
347
370
  }
348
371
  }
349
372
  }
373
+ // recursively set materials on children (if desired)
350
374
  if (deep) {
351
- node.getChildTransformNodes(true).forEach(child => setMaterial(variant, child, materialName, deep));
375
+ for (const child of node.getChildTransformNodes(true)) {
376
+ setMaterial(scene, child, materialId, deep, variant);
377
+ }
352
378
  }
353
379
  };
354
380
  exports.setMaterial = setMaterial;
381
+ /**
382
+ * Gets the Material either from the given {@link Variant}, the given scene or tries to create it from an Combeenation
383
+ * material asset when inside a Combeenation configurator.
384
+ */
385
+ const getOrCreateMaterial = function (scene, materialId, variant) {
386
+ let chosenMaterial;
387
+ chosenMaterial = variant === null || variant === void 0 ? void 0 : variant.inheritedMaterials.find(mat => mat.id === materialId);
388
+ chosenMaterial = chosenMaterial || scene.materials.find(mat => mat.id === materialId);
389
+ chosenMaterial = chosenMaterial || (0, sceneLoaderHelper_1.createMaterialFromCbnAssets)(materialId, scene);
390
+ if (chosenMaterial) {
391
+ return chosenMaterial;
392
+ }
393
+ // reject when material was not found
394
+ let rejectMessage = `Material with id "${materialId}" does not exist on scene.`;
395
+ if (variant) {
396
+ rejectMessage = `Material with id "${materialId}" does not exist for variant "${variant.id}".`;
397
+ }
398
+ throw new Error(rejectMessage);
399
+ };
400
+ exports.getOrCreateMaterial = getOrCreateMaterial;
401
+ /**
402
+ * Waits until the materials textures are loaded and sets the material on the node if there is no newer "set material"
403
+ * request
404
+ */
405
+ const applyMaterialAfterTexturesLoaded = function (material, node) {
406
+ return __awaiter(this, void 0, void 0, function* () {
407
+ // set current material id as last valid id, in this case all previously set materials on the node will be invalidated
408
+ injectNodeMetadata(node, { [materialWaitingToBeSetMetadataName]: material.id }, false);
409
+ const promTexturesReady = new Promise(resolve => baseTexture_1.BaseTexture.WhenAllReady(material.getActiveTextures(), resolve));
410
+ // this promise should only take some time on the first call of the corresponding shader (eg: PBRMaterial shader)
411
+ // on each other call of the same material/shader type there should be not be a waiting time, or at maximum one frame
412
+ // https://forum.babylonjs.com/t/mesh-flickering-when-setting-material-initially/37312
413
+ const promMaterialCompiled = material.forceCompilationAsync(node);
414
+ // material needs to fulfill 2 criterias before it's ready to use
415
+ // - textures need to be "ready" => downloaded
416
+ // - dedicated shader needs to be compiled
417
+ // if this would not be the case you can see some "flickering" when setting the material
418
+ yield Promise.all([promTexturesReady, promMaterialCompiled]);
419
+ // textures ready, now check if the material is still up-to-date
420
+ if (material.id === node.metadata[materialWaitingToBeSetMetadataName]) {
421
+ node.material = material;
422
+ delete node.metadata[materialWaitingToBeSetMetadataName];
423
+ }
424
+ });
425
+ };
426
+ exports.applyMaterialAfterTexturesLoaded = applyMaterialAfterTexturesLoaded;
355
427
  /**
356
428
  * !!! Warning !!!
357
429
  * This function is not public API. Whilst it can help solving certain problems, it only works reliably in well defined
@@ -1 +1 @@
1
- {"version":3,"file":"babylonHelper.js","sourceRoot":"","sources":["../../../../src/api/util/babylonHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"babylonHelper.js","sourceRoot":"","sources":["../../../../src/api/util/babylonHelper.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,11 @@ export declare const getCustomCbnBabylonLoaderPlugin: (previousLoaderPlugin: ISc
15
15
  /**
16
16
  * Return an observer to be applied to meshes in order to post-load missing materials
17
17
  * upon set enabled/visible.
18
- * @param targetMeshOrInstance AbstractMesh the observer will be applied to
18
+ *
19
19
  * @param concerningMesh Mesh to look for missing materials on, and create/apply to (when found).
20
20
  * @returns observer
21
21
  */
22
- export declare const getMaterialPostLoadObserver: (targetMeshOrInstance: AbstractMesh, concerningMesh: Mesh) => (eventData: any, eventState: any) => void;
22
+ export declare const getMaterialPostLoadObserver: (concerningMesh: Mesh) => () => Promise<void>;
23
23
  /**
24
24
  * Internal function that compares the original meshes on a .babylon file with what was loaded,
25
25
  * and tags missing materials with respective metadata on respective meshes.
@@ -35,6 +35,7 @@ export declare const addMissingMaterialMetadata: (dataParsed: any, container: As
35
35
  export declare const addMissingMaterialObserver: (node: BjsNode) => void;
36
36
  /**
37
37
  * Look up the provided materials (see library import) and create and return one if found.
38
+ *
38
39
  * @param materialId BabylonJs material-id. E.g. 'concrete".
39
40
  * @param scene BabylonJs scene
40
41
  * @returns PBRMaterial | null
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
@@ -8,6 +17,8 @@ const babylonHelper_1 = require("./babylonHelper");
8
17
  const material_1 = require("@babylonjs/core/Materials/material");
9
18
  const instancedMesh_1 = require("@babylonjs/core/Meshes/instancedMesh");
10
19
  const has_1 = __importDefault(require("lodash-es/has"));
20
+ // map for keeping track of active "node enable" observers
21
+ const enableObserverMap = {};
11
22
  exports.missingMaterialMetadataName = 'missingMaterial';
12
23
  /**
13
24
  * Create and return a custom loader plugin to be registered with SceneLoader, that allows
@@ -39,25 +50,36 @@ exports.getCustomCbnBabylonLoaderPlugin = getCustomCbnBabylonLoaderPlugin;
39
50
  /**
40
51
  * Return an observer to be applied to meshes in order to post-load missing materials
41
52
  * upon set enabled/visible.
42
- * @param targetMeshOrInstance AbstractMesh the observer will be applied to
53
+ *
43
54
  * @param concerningMesh Mesh to look for missing materials on, and create/apply to (when found).
44
55
  * @returns observer
45
56
  */
46
- const getMaterialPostLoadObserver = function (targetMeshOrInstance, concerningMesh) {
47
- return (eventData, eventState) => {
57
+ const getMaterialPostLoadObserver = function (concerningMesh) {
58
+ return () => __awaiter(this, void 0, void 0, function* () {
59
+ const scene = concerningMesh.getScene();
60
+ // can't check `isEnabled` immediatly, since the enabled state of parents and childs is not synced yet
61
+ // postpone to "when scene ready" to ensure a correct parent-child enable relation
62
+ yield scene.whenReadyAsync();
48
63
  const hasBeenEnabled = concerningMesh.isEnabled(true);
49
64
  const materialMissing = (0, has_1.default)(concerningMesh.metadata, exports.missingMaterialMetadataName);
50
65
  if (!hasBeenEnabled || !materialMissing)
51
66
  return;
52
67
  // get id of missing material
53
68
  const missingMatId = concerningMesh.metadata[exports.missingMaterialMetadataName];
54
- // try to find material on the scene
55
- const existingMat = concerningMesh.getScene().getMaterialById(missingMatId);
56
- // assign either existing material or freshly created one
57
- concerningMesh.material = existingMat || (0, exports.createMaterialFromCbnAssets)(missingMatId, concerningMesh.getScene());
69
+ // get material and apply it on the concerning mesh after all textures have been loaded
70
+ const material = (0, babylonHelper_1.getOrCreateMaterial)(concerningMesh.getScene(), missingMatId);
71
+ (0, babylonHelper_1.applyMaterialAfterTexturesLoaded)(material, concerningMesh);
58
72
  // since the material is there now, we do not need the related metadata tag anymore
59
73
  delete concerningMesh.metadata[exports.missingMaterialMetadataName];
60
- };
74
+ // remove all "enable" observers that were assigned to the concerning mesh
75
+ // the mesh got visible and therefore the observers are not needed anymore
76
+ enableObserverMap[concerningMesh.id].forEach(entry => {
77
+ const currNode = scene.getMeshById(entry.currNodeId);
78
+ currNode === null || currNode === void 0 ? void 0 : currNode.onEnabledStateChangedObservable.remove(entry.observer);
79
+ });
80
+ // also remove from the local observer map
81
+ delete enableObserverMap[concerningMesh.id];
82
+ });
61
83
  };
62
84
  exports.getMaterialPostLoadObserver = getMaterialPostLoadObserver;
63
85
  /**
@@ -100,29 +122,21 @@ const addMissingMaterialObserver = function (node) {
100
122
  // for each of our AbstractMeshes, set an observer on the AbstractMesh itself and all of its parents.
101
123
  let currNode = node;
102
124
  while (currNode) {
103
- // Note HAR: Using `addOnce` could be wrong in certain situations.
104
- // E.g.:
105
- // * 2 meshes `parentMesh` & `parentMesh.concerningMesh`
106
- // * `concerningMesh` is having the missing material flag
107
- // * Both `parentMesh` & `concerningMesh` are disabled
108
- // * `parentMesh` is enabled -> material should **not** be created as `concerningMesh` is still disabled
109
- // * `parentMesh` is disabled
110
- // * `concerningMesh` is enabled -> material should **not** be created as `concerningMesh` is still invisible
111
- // because its `parentMesh` is ATM disabled
112
- // * `parentMesh` & `concerningMesh` are both enable
113
- // -> material should be created as `concerningMesh` is now actually visible but it isn't, as all observers were
114
- // only fired once 🔥
115
- //
116
- // However: Using `add` instead of `addOnce` requires rather complicated manual clean up work...
117
- // add observer. needed only once per node, hence addOnce()
118
- node.onEnabledStateChangedObservable.addOnce((0, exports.getMaterialPostLoadObserver)(currNode, concerningNode));
119
- // console.log('## observer set on: ' + meshOrInstance.name);
125
+ const callback = (0, exports.getMaterialPostLoadObserver)(concerningNode);
126
+ const observer = currNode.onEnabledStateChangedObservable.add(callback);
127
+ // store the observer in a local map to keep track of the active "enable" observers
128
+ // observers will be removed when the concerning node gets enabled
129
+ if (!enableObserverMap[concerningNode.id]) {
130
+ enableObserverMap[concerningNode.id] = [];
131
+ }
132
+ enableObserverMap[concerningNode.id].push({ currNodeId: currNode.id, observer });
120
133
  currNode = currNode.parent;
121
134
  }
122
135
  };
123
136
  exports.addMissingMaterialObserver = addMissingMaterialObserver;
124
137
  /**
125
138
  * Look up the provided materials (see library import) and create and return one if found.
139
+ *
126
140
  * @param materialId BabylonJs material-id. E.g. 'concrete".
127
141
  * @param scene BabylonJs scene
128
142
  * @returns PBRMaterial | null
@@ -1 +1 @@
1
- {"version":3,"file":"sceneLoaderHelper.js","sourceRoot":"","sources":["../../../../src/api/util/sceneLoaderHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sceneLoaderHelper.js","sourceRoot":"","sources":["../../../../src/api/util/sceneLoaderHelper.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,8 @@ declare const uuidv4: () => string;
6
6
  * Converts a string from camel case to snake case.
7
7
  */
8
8
  declare const camelToSnakeCase: (str: string) => string;
9
- export { uuidv4, camelToSnakeCase };
9
+ /**
10
+ * Replaces all dots from the input string with a desired character ('/' by default)
11
+ */
12
+ declare const replaceDots: (str: string, replaceChar?: string) => string;
13
+ export { uuidv4, camelToSnakeCase, replaceDots };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.camelToSnakeCase = exports.uuidv4 = void 0;
3
+ exports.replaceDots = exports.camelToSnakeCase = exports.uuidv4 = void 0;
4
4
  /**
5
5
  * Creates a random uuidv4.
6
6
  */
@@ -23,4 +23,11 @@ const camelToSnakeCase = function (str) {
23
23
  .toLowerCase();
24
24
  };
25
25
  exports.camelToSnakeCase = camelToSnakeCase;
26
+ /**
27
+ * Replaces all dots from the input string with a desired character ('/' by default)
28
+ */
29
+ const replaceDots = function (str, replaceChar = '/') {
30
+ return str.split('.').join(replaceChar);
31
+ };
32
+ exports.replaceDots = replaceDots;
26
33
  //# sourceMappingURL=stringHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stringHelper.js","sourceRoot":"","sources":["../../../../src/api/util/stringHelper.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAM,MAAM,GAAG;IACb,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;QAC3E,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAcO,wBAAM;AAZf;;GAEG;AACH,MAAM,gBAAgB,GAAG,UAAU,GAAW;IAC5C,OAAO,GAAG;SACP,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAC1B,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,IAAI,CAAC,GAAG,CAAC;SACT,WAAW,EAAE,CAAC;AACnB,CAAC,CAAC;AAEe,4CAAgB"}
1
+ {"version":3,"file":"stringHelper.js","sourceRoot":"","sources":["../../../../src/api/util/stringHelper.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAM,MAAM,GAAG;IACb,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;QAC3E,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAqBO,wBAAM;AAnBf;;GAEG;AACH,MAAM,gBAAgB,GAAG,UAAU,GAAW;IAC5C,OAAO,GAAG;SACP,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAC1B,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,IAAI,CAAC,GAAG,CAAC;SACT,WAAW,EAAE,CAAC;AACnB,CAAC,CAAC;AASe,4CAAgB;AAPjC;;GAEG;AACH,MAAM,WAAW,GAAG,UAAU,GAAW,EAAE,WAAW,GAAG,GAAG;IAC1D,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEiC,kCAAW"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "6.2.1"
2
+ "version": "6.4.0"
3
3
  }