@loaders.gl/gltf 3.3.0-alpha.5 → 3.3.0-alpha.6

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 (145) hide show
  1. package/dist/dist.min.js +104 -124
  2. package/dist/es5/bundle.js +0 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/glb-loader.js +2 -13
  5. package/dist/es5/glb-loader.js.map +1 -1
  6. package/dist/es5/glb-writer.js +3 -6
  7. package/dist/es5/glb-writer.js.map +1 -1
  8. package/dist/es5/gltf-loader.js +11 -23
  9. package/dist/es5/gltf-loader.js.map +1 -1
  10. package/dist/es5/gltf-writer.js +2 -5
  11. package/dist/es5/gltf-writer.js.map +1 -1
  12. package/dist/es5/index.js +10 -17
  13. package/dist/es5/index.js.map +1 -1
  14. package/dist/es5/lib/api/gltf-extensions.js +14 -48
  15. package/dist/es5/lib/api/gltf-extensions.js.map +1 -1
  16. package/dist/es5/lib/api/gltf-scenegraph.js +113 -96
  17. package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -1
  18. package/dist/es5/lib/api/normalize-gltf-v1.js +32 -70
  19. package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -1
  20. package/dist/es5/lib/api/post-process-gltf.js +26 -89
  21. package/dist/es5/lib/api/post-process-gltf.js.map +1 -1
  22. package/dist/es5/lib/encoders/encode-glb.js +10 -8
  23. package/dist/es5/lib/encoders/encode-glb.js.map +1 -1
  24. package/dist/es5/lib/encoders/encode-gltf.js +3 -6
  25. package/dist/es5/lib/encoders/encode-gltf.js.map +1 -1
  26. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +2 -28
  27. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  28. package/dist/es5/lib/extensions/EXT_texture_webp.js +5 -18
  29. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -1
  30. package/dist/es5/lib/extensions/KHR_binary_gltf.js +5 -12
  31. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -1
  32. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +11 -79
  33. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  34. package/dist/es5/lib/extensions/KHR_texture_basisu.js +5 -14
  35. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -1
  36. package/dist/es5/lib/extensions/KHR_texture_transform.js +17 -72
  37. package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -1
  38. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +0 -21
  39. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
  40. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +0 -24
  41. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
  42. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +2 -19
  43. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
  44. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +11 -29
  45. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
  46. package/dist/es5/lib/gltf-utils/get-typed-array.js +1 -1
  47. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -1
  48. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +5 -17
  49. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
  50. package/dist/es5/lib/gltf-utils/gltf-constants.js +3 -4
  51. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -1
  52. package/dist/es5/lib/gltf-utils/gltf-utils.js +1 -8
  53. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -1
  54. package/dist/es5/lib/gltf-utils/resolve-url.js +0 -5
  55. package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -1
  56. package/dist/es5/lib/parsers/parse-glb.js +11 -17
  57. package/dist/es5/lib/parsers/parse-glb.js.map +1 -1
  58. package/dist/es5/lib/parsers/parse-gltf.js +12 -73
  59. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -1
  60. package/dist/es5/lib/types/glb-types.js.map +1 -1
  61. package/dist/es5/lib/types/gltf-json-schema.js.map +1 -1
  62. package/dist/es5/lib/types/gltf-postprocessed-schema.js.map +1 -1
  63. package/dist/es5/lib/types/gltf-types.js.map +1 -1
  64. package/dist/es5/lib/utils/assert.js +0 -1
  65. package/dist/es5/lib/utils/assert.js.map +1 -1
  66. package/dist/es5/lib/utils/version.js +1 -1
  67. package/dist/es5/lib/utils/version.js.map +1 -1
  68. package/dist/es5/meshopt/meshopt-decoder.js +10 -47
  69. package/dist/es5/meshopt/meshopt-decoder.js.map +1 -1
  70. package/dist/es5/webp/webp.js +3 -19
  71. package/dist/es5/webp/webp.js.map +1 -1
  72. package/dist/esm/bundle.js +1 -1
  73. package/dist/esm/bundle.js.map +1 -1
  74. package/dist/esm/glb-loader.js +0 -1
  75. package/dist/esm/glb-loader.js.map +1 -1
  76. package/dist/esm/glb-writer.js +3 -1
  77. package/dist/esm/glb-writer.js.map +1 -1
  78. package/dist/esm/gltf-loader.js +9 -3
  79. package/dist/esm/gltf-loader.js.map +1 -1
  80. package/dist/esm/gltf-writer.js +3 -2
  81. package/dist/esm/gltf-writer.js.map +1 -1
  82. package/dist/esm/index.js +4 -0
  83. package/dist/esm/index.js.map +1 -1
  84. package/dist/esm/lib/api/gltf-extensions.js +16 -9
  85. package/dist/esm/lib/api/gltf-extensions.js.map +1 -1
  86. package/dist/esm/lib/api/gltf-scenegraph.js +27 -68
  87. package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -1
  88. package/dist/esm/lib/api/normalize-gltf-v1.js +3 -34
  89. package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -1
  90. package/dist/esm/lib/api/post-process-gltf.js +26 -93
  91. package/dist/esm/lib/api/post-process-gltf.js.map +1 -1
  92. package/dist/esm/lib/encoders/encode-glb.js +9 -2
  93. package/dist/esm/lib/encoders/encode-glb.js.map +1 -1
  94. package/dist/esm/lib/encoders/encode-gltf.js +6 -4
  95. package/dist/esm/lib/encoders/encode-gltf.js.map +1 -1
  96. package/dist/esm/lib/extensions/EXT_meshopt_compression.js +5 -6
  97. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -1
  98. package/dist/esm/lib/extensions/EXT_texture_webp.js +4 -6
  99. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -1
  100. package/dist/esm/lib/extensions/KHR_binary_gltf.js +3 -2
  101. package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -1
  102. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +18 -17
  103. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  104. package/dist/esm/lib/extensions/KHR_texture_basisu.js +4 -3
  105. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -1
  106. package/dist/esm/lib/extensions/KHR_texture_transform.js +8 -34
  107. package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -1
  108. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +2 -13
  109. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
  110. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js +4 -4
  111. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
  112. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js +3 -2
  113. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
  114. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js +10 -10
  115. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
  116. package/dist/esm/lib/gltf-utils/get-typed-array.js +4 -0
  117. package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -1
  118. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +7 -11
  119. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
  120. package/dist/esm/lib/gltf-utils/gltf-constants.js +1 -0
  121. package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -1
  122. package/dist/esm/lib/gltf-utils/gltf-utils.js +0 -2
  123. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -1
  124. package/dist/esm/lib/gltf-utils/resolve-url.js +1 -4
  125. package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -1
  126. package/dist/esm/lib/parsers/parse-glb.js +19 -16
  127. package/dist/esm/lib/parsers/parse-glb.js.map +1 -1
  128. package/dist/esm/lib/parsers/parse-gltf.js +11 -16
  129. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -1
  130. package/dist/esm/lib/types/glb-types.js.map +1 -1
  131. package/dist/esm/lib/types/gltf-json-schema.js.map +1 -1
  132. package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +1 -1
  133. package/dist/esm/lib/types/gltf-types.js.map +1 -1
  134. package/dist/esm/lib/utils/assert.js +1 -0
  135. package/dist/esm/lib/utils/assert.js.map +1 -1
  136. package/dist/esm/lib/utils/version.js +2 -1
  137. package/dist/esm/lib/utils/version.js.map +1 -1
  138. package/dist/esm/meshopt/meshopt-decoder.js +11 -15
  139. package/dist/esm/meshopt/meshopt-decoder.js.map +1 -1
  140. package/dist/esm/webp/webp.js +3 -5
  141. package/dist/esm/webp/webp.js.map +1 -1
  142. package/dist/lib/api/gltf-extensions.js +5 -1
  143. package/dist/lib/api/normalize-gltf-v1.js +5 -1
  144. package/dist/lib/parsers/parse-gltf.js +5 -1
  145. package/package.json +6 -6
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports._TypecheckGLBLoader = exports.GLTFWriter = void 0;
7
-
8
7
  var _version = require("./lib/utils/version");
9
-
10
8
  var _encodeGltf = require("./lib/encoders/encode-gltf");
11
-
12
9
  var GLTFWriter = {
13
10
  name: 'glTF',
14
11
  id: 'gltf',
@@ -23,11 +20,11 @@ var GLTFWriter = {
23
20
  }
24
21
  };
25
22
  exports.GLTFWriter = GLTFWriter;
26
-
27
23
  function encodeSync(gltf) {
28
24
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
29
25
  var _options$byteOffset = options.byteOffset,
30
- byteOffset = _options$byteOffset === void 0 ? 0 : _options$byteOffset;
26
+ byteOffset = _options$byteOffset === void 0 ? 0 : _options$byteOffset;
27
+
31
28
  var byteLength = (0, _encodeGltf.encodeGLTFSync)(gltf, null, byteOffset, options);
32
29
  var arrayBuffer = new ArrayBuffer(byteLength);
33
30
  var dataView = new DataView(arrayBuffer);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/gltf-writer.ts"],"names":["GLTFWriter","name","id","module","version","VERSION","extensions","mimeTypes","binary","encodeSync","options","gltf","byteOffset","byteLength","arrayBuffer","ArrayBuffer","dataView","DataView","_TypecheckGLBLoader"],"mappings":";;;;;;;AACA;;AACA;;AAUO,IAAMA,UAAU,GAAG;AACxBC,EAAAA,IAAI,EAAE,MADkB;AAExBC,EAAAA,EAAE,EAAE,MAFoB;AAGxBC,EAAAA,MAAM,EAAE,MAHgB;AAIxBC,EAAAA,OAAO,EAAEC,gBAJe;AAMxBC,EAAAA,UAAU,EAAE,CAAC,KAAD,CANY;AAOxBC,EAAAA,SAAS,EAAE,CAAC,mBAAD,CAPa;AAQxBC,EAAAA,MAAM,EAAE,IARgB;AAUxBC,EAAAA,UAAU,EAAVA,UAVwB;AAYxBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE;AADC;AAZe,CAAnB;;;AAiBP,SAASF,UAAT,CAAoBE,IAApB,EAA2D;AAAA,MAAjCD,OAAiC,uEAAJ,EAAI;AACzD,4BAAyBA,OAAzB,CAAOE,UAAP;AAAA,MAAOA,UAAP,oCAAoB,CAApB;AAGA,MAAMC,UAAU,GAAG,gCAAeF,IAAf,EAAqB,IAArB,EAA2BC,UAA3B,EAAuCF,OAAvC,CAAnB;AACA,MAAMI,WAAW,GAAG,IAAIC,WAAJ,CAAgBF,UAAhB,CAApB;AACA,MAAMG,QAAQ,GAAG,IAAIC,QAAJ,CAAaH,WAAb,CAAjB;AACA,kCAAeH,IAAf,EAAqBK,QAArB,EAA+BJ,UAA/B,EAA2CF,OAA3C;AAEA,SAAOI,WAAP;AACD;;AAGM,IAAMI,mBAA2B,GAAGlB,UAApC","sourcesContent":["import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {encodeGLTFSync} from './lib/encoders/encode-gltf';\n\nexport type GLTFWriterOptions = WriterOptions & {\n gltf?: {};\n byteOffset?: number;\n};\n\n/**\n * GLTF exporter\n */\nexport const GLTFWriter = {\n name: 'glTF',\n id: 'gltf',\n module: 'gltf',\n version: VERSION,\n\n extensions: ['glb'], // We only support encoding to binary GLB, not to JSON GLTF\n mimeTypes: ['model/gltf-binary'], // 'model/gltf+json',\n binary: true,\n\n encodeSync,\n\n options: {\n gltf: {}\n }\n};\n\nfunction encodeSync(gltf, options: GLTFWriterOptions = {}) {\n const {byteOffset = 0} = options;\n\n // Calculate length, then create arraybuffer and encode\n const byteLength = encodeGLTFSync(gltf, null, byteOffset, options);\n const arrayBuffer = new ArrayBuffer(byteLength);\n const dataView = new DataView(arrayBuffer);\n encodeGLTFSync(gltf, dataView, byteOffset, options);\n\n return arrayBuffer;\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckGLBLoader: Writer = GLTFWriter;\n"],"file":"gltf-writer.js"}
1
+ {"version":3,"file":"gltf-writer.js","names":["GLTFWriter","name","id","module","version","VERSION","extensions","mimeTypes","binary","encodeSync","options","gltf","byteOffset","byteLength","encodeGLTFSync","arrayBuffer","ArrayBuffer","dataView","DataView","_TypecheckGLBLoader"],"sources":["../../src/gltf-writer.ts"],"sourcesContent":["import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {encodeGLTFSync} from './lib/encoders/encode-gltf';\n\nexport type GLTFWriterOptions = WriterOptions & {\n gltf?: {};\n byteOffset?: number;\n};\n\n/**\n * GLTF exporter\n */\nexport const GLTFWriter = {\n name: 'glTF',\n id: 'gltf',\n module: 'gltf',\n version: VERSION,\n\n extensions: ['glb'], // We only support encoding to binary GLB, not to JSON GLTF\n mimeTypes: ['model/gltf-binary'], // 'model/gltf+json',\n binary: true,\n\n encodeSync,\n\n options: {\n gltf: {}\n }\n};\n\nfunction encodeSync(gltf, options: GLTFWriterOptions = {}) {\n const {byteOffset = 0} = options;\n\n // Calculate length, then create arraybuffer and encode\n const byteLength = encodeGLTFSync(gltf, null, byteOffset, options);\n const arrayBuffer = new ArrayBuffer(byteLength);\n const dataView = new DataView(arrayBuffer);\n encodeGLTFSync(gltf, dataView, byteOffset, options);\n\n return arrayBuffer;\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckGLBLoader: Writer = GLTFWriter;\n"],"mappings":";;;;;;AACA;AACA;AAUO,IAAMA,UAAU,GAAG;EACxBC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEC,gBAAO;EAEhBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,mBAAmB,CAAC;EAChCC,MAAM,EAAE,IAAI;EAEZC,UAAU,EAAVA,UAAU;EAEVC,OAAO,EAAE;IACPC,IAAI,EAAE,CAAC;EACT;AACF,CAAC;AAAC;AAEF,SAASF,UAAU,CAACE,IAAI,EAAmC;EAAA,IAAjCD,OAA0B,uEAAG,CAAC,CAAC;EACvD,0BAAyBA,OAAO,CAAzBE,UAAU;IAAVA,UAAU,oCAAG,CAAC;;EAGrB,IAAMC,UAAU,GAAG,IAAAC,0BAAc,EAACH,IAAI,EAAE,IAAI,EAAEC,UAAU,EAAEF,OAAO,CAAC;EAClE,IAAMK,WAAW,GAAG,IAAIC,WAAW,CAACH,UAAU,CAAC;EAC/C,IAAMI,QAAQ,GAAG,IAAIC,QAAQ,CAACH,WAAW,CAAC;EAC1C,IAAAD,0BAAc,EAACH,IAAI,EAAEM,QAAQ,EAAEL,UAAU,EAAEF,OAAO,CAAC;EAEnD,OAAOK,WAAW;AACpB;;AAGO,IAAMI,mBAA2B,GAAGnB,UAAU;AAAC"}
package/dist/es5/index.js CHANGED
@@ -1,38 +1,37 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- Object.defineProperty(exports, "GLTFLoader", {
7
+ Object.defineProperty(exports, "GLBLoader", {
9
8
  enumerable: true,
10
9
  get: function get() {
11
- return _gltfLoader.GLTFLoader;
10
+ return _glbLoader.GLBLoader;
12
11
  }
13
12
  });
14
- Object.defineProperty(exports, "GLTFWriter", {
13
+ Object.defineProperty(exports, "GLBWriter", {
15
14
  enumerable: true,
16
15
  get: function get() {
17
- return _gltfWriter.GLTFWriter;
16
+ return _glbWriter.GLBWriter;
18
17
  }
19
18
  });
20
- Object.defineProperty(exports, "GLBLoader", {
19
+ Object.defineProperty(exports, "GLTFLoader", {
21
20
  enumerable: true,
22
21
  get: function get() {
23
- return _glbLoader.GLBLoader;
22
+ return _gltfLoader.GLTFLoader;
24
23
  }
25
24
  });
26
- Object.defineProperty(exports, "GLBWriter", {
25
+ Object.defineProperty(exports, "GLTFScenegraph", {
27
26
  enumerable: true,
28
27
  get: function get() {
29
- return _glbWriter.GLBWriter;
28
+ return _gltfScenegraph.default;
30
29
  }
31
30
  });
32
- Object.defineProperty(exports, "GLTFScenegraph", {
31
+ Object.defineProperty(exports, "GLTFWriter", {
33
32
  enumerable: true,
34
33
  get: function get() {
35
- return _gltfScenegraph.default;
34
+ return _gltfWriter.GLTFWriter;
36
35
  }
37
36
  });
38
37
  Object.defineProperty(exports, "postProcessGLTF", {
@@ -41,16 +40,10 @@ Object.defineProperty(exports, "postProcessGLTF", {
41
40
  return _postProcessGltf.postProcessGLTF;
42
41
  }
43
42
  });
44
-
45
43
  var _gltfLoader = require("./gltf-loader");
46
-
47
44
  var _gltfWriter = require("./gltf-writer");
48
-
49
45
  var _glbLoader = require("./glb-loader");
50
-
51
46
  var _glbWriter = require("./glb-writer");
52
-
53
47
  var _gltfScenegraph = _interopRequireDefault(require("./lib/api/gltf-scenegraph"));
54
-
55
48
  var _postProcessGltf = require("./lib/api/post-process-gltf");
56
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA;;AACA;;AAGA;;AACA;;AAGA;;AACA","sourcesContent":["/* eslint-disable camelcase, indent */\nexport type {GLB} from './lib/types/glb-types';\nexport type {\n GLTF,\n GLTFAccessor,\n GLTFBuffer,\n GLTFBufferView,\n GLTFMeshPrimitive,\n GLTFMesh,\n GLTFNode,\n GLTFMaterial,\n GLTFSampler,\n GLTFScene,\n GLTFSkin,\n GLTFTexture,\n GLTFImage,\n GLTFPostprocessed,\n GLTFAccessorPostprocessed,\n GLTFNodePostprocessed,\n GLTFMaterialPostprocessed,\n GLTFMeshPostprocessed,\n GLTFMeshPrimitivePostprocessed,\n GLTFImagePostprocessed,\n GLTFTexturePostprocessed,\n // The following extensions are handled by the GLTFLoader and removed from the parsed glTF (disable via options.gltf.excludeExtensions)\n GLTF_KHR_binary_glTF,\n GLTF_KHR_draco_mesh_compression,\n GLTF_KHR_texture_basisu,\n GLTF_EXT_meshopt_compression,\n GLTF_EXT_texture_webp,\n GLTF_EXT_feature_metadata\n} from './lib/types/gltf-types';\n\n// glTF loader/writer definition objects\nexport {GLTFLoader} from './gltf-loader';\nexport {GLTFWriter} from './gltf-writer';\n\n// GLB Loader & Writer (for custom formats that want to leverage the GLB binary \"envelope\")\nexport {GLBLoader} from './glb-loader';\nexport {GLBWriter} from './glb-writer';\n\n// glTF Data Access Helper Class\nexport {default as GLTFScenegraph} from './lib/api/gltf-scenegraph';\nexport {postProcessGLTF} from './lib/api/post-process-gltf';\nexport type {Mesh} from './lib/types/gltf-json-schema';\nexport type {GLTFObject} from './lib/types/gltf-types';\nexport type {Node, Accessor, Image} from './lib/types/gltf-postprocessed-schema';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["/* eslint-disable camelcase, indent */\nexport type {GLB} from './lib/types/glb-types';\nexport type {\n GLTF,\n GLTFAccessor,\n GLTFBuffer,\n GLTFBufferView,\n GLTFMeshPrimitive,\n GLTFMesh,\n GLTFNode,\n GLTFMaterial,\n GLTFSampler,\n GLTFScene,\n GLTFSkin,\n GLTFTexture,\n GLTFImage,\n GLTFPostprocessed,\n GLTFAccessorPostprocessed,\n GLTFNodePostprocessed,\n GLTFMaterialPostprocessed,\n GLTFMeshPostprocessed,\n GLTFMeshPrimitivePostprocessed,\n GLTFImagePostprocessed,\n GLTFTexturePostprocessed,\n // The following extensions are handled by the GLTFLoader and removed from the parsed glTF (disable via options.gltf.excludeExtensions)\n GLTF_KHR_binary_glTF,\n GLTF_KHR_draco_mesh_compression,\n GLTF_KHR_texture_basisu,\n GLTF_EXT_meshopt_compression,\n GLTF_EXT_texture_webp,\n GLTF_EXT_feature_metadata\n} from './lib/types/gltf-types';\n\n// glTF loader/writer definition objects\nexport {GLTFLoader} from './gltf-loader';\nexport {GLTFWriter} from './gltf-writer';\n\n// GLB Loader & Writer (for custom formats that want to leverage the GLB binary \"envelope\")\nexport {GLBLoader} from './glb-loader';\nexport {GLBWriter} from './glb-writer';\n\n// glTF Data Access Helper Class\nexport {default as GLTFScenegraph} from './lib/api/gltf-scenegraph';\nexport {postProcessGLTF} from './lib/api/post-process-gltf';\nexport type {Mesh} from './lib/types/gltf-json-schema';\nexport type {GLTFObject} from './lib/types/gltf-types';\nexport type {Node, Accessor, Image} from './lib/types/gltf-postprocessed-schema';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA;AACA;AAGA;AACA;AAGA;AACA"}
@@ -1,65 +1,46 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
- exports.preprocessExtensions = preprocessExtensions;
11
- exports.decodeExtensions = decodeExtensions;
12
8
  exports.EXTENSIONS = void 0;
13
-
9
+ exports.decodeExtensions = decodeExtensions;
10
+ exports.preprocessExtensions = preprocessExtensions;
14
11
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
-
16
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
13
  var EXT_meshopt_compression = _interopRequireWildcard(require("../extensions/EXT_meshopt_compression"));
19
-
20
14
  var EXT_texture_webp = _interopRequireWildcard(require("../extensions/EXT_texture_webp"));
21
-
22
15
  var KHR_texture_basisu = _interopRequireWildcard(require("../extensions/KHR_texture_basisu"));
23
-
24
16
  var KHR_draco_mesh_compression = _interopRequireWildcard(require("../extensions/KHR_draco_mesh_compression"));
25
-
26
17
  var KHR_texture_transform = _interopRequireWildcard(require("../extensions/KHR_texture_transform"));
27
-
28
18
  var KHR_lights_punctual = _interopRequireWildcard(require("../extensions/deprecated/KHR_lights_punctual"));
29
-
30
19
  var KHR_materials_unlit = _interopRequireWildcard(require("../extensions/deprecated/KHR_materials_unlit"));
31
-
32
20
  var KHR_techniques_webgl = _interopRequireWildcard(require("../extensions/deprecated/KHR_techniques_webgl"));
33
-
34
21
  var EXT_feature_metadata = _interopRequireWildcard(require("../extensions/deprecated/EXT_feature_metadata"));
35
-
36
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
-
38
23
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
-
40
24
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
41
-
42
25
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
43
-
44
26
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
+ var EXTENSIONS = [
45
28
 
46
- var EXTENSIONS = [EXT_meshopt_compression, EXT_texture_webp, KHR_texture_basisu, KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_unlit, KHR_techniques_webgl, KHR_texture_transform, EXT_feature_metadata];
47
- exports.EXTENSIONS = EXTENSIONS;
29
+ EXT_meshopt_compression, EXT_texture_webp,
30
+ KHR_texture_basisu, KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_unlit, KHR_techniques_webgl, KHR_texture_transform, EXT_feature_metadata];
48
31
 
32
+ exports.EXTENSIONS = EXTENSIONS;
49
33
  function preprocessExtensions(gltf) {
50
34
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
51
35
  var context = arguments.length > 2 ? arguments[2] : undefined;
52
36
  var extensions = EXTENSIONS.filter(function (extension) {
53
37
  return useExtension(extension.name, options);
54
38
  });
55
-
56
39
  var _iterator = _createForOfIteratorHelper(extensions),
57
- _step;
58
-
40
+ _step;
59
41
  try {
60
42
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
61
43
  var _extension$preprocess;
62
-
63
44
  var extension = _step.value;
64
45
  (_extension$preprocess = extension.preprocess) === null || _extension$preprocess === void 0 ? void 0 : _extension$preprocess.call(extension, gltf, options, context);
65
46
  }
@@ -73,18 +54,16 @@ function preprocessExtensions(gltf) {
73
54
  function decodeExtensions(_x) {
74
55
  return _decodeExtensions.apply(this, arguments);
75
56
  }
76
-
77
57
  function _decodeExtensions() {
78
58
  _decodeExtensions = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(gltf) {
79
59
  var options,
80
- context,
81
- extensions,
82
- _iterator2,
83
- _step2,
84
- _extension$decode,
85
- extension,
86
- _args = arguments;
87
-
60
+ context,
61
+ extensions,
62
+ _iterator2,
63
+ _step2,
64
+ _extension$decode,
65
+ extension,
66
+ _args = arguments;
88
67
  return _regenerator.default.wrap(function _callee$(_context) {
89
68
  while (1) {
90
69
  switch (_context.prev = _context.next) {
@@ -96,40 +75,29 @@ function _decodeExtensions() {
96
75
  });
97
76
  _iterator2 = _createForOfIteratorHelper(extensions);
98
77
  _context.prev = 4;
99
-
100
78
  _iterator2.s();
101
-
102
79
  case 6:
103
80
  if ((_step2 = _iterator2.n()).done) {
104
81
  _context.next = 12;
105
82
  break;
106
83
  }
107
-
108
84
  extension = _step2.value;
109
85
  _context.next = 10;
110
86
  return (_extension$decode = extension.decode) === null || _extension$decode === void 0 ? void 0 : _extension$decode.call(extension, gltf, options, context);
111
-
112
87
  case 10:
113
88
  _context.next = 6;
114
89
  break;
115
-
116
90
  case 12:
117
91
  _context.next = 17;
118
92
  break;
119
-
120
93
  case 14:
121
94
  _context.prev = 14;
122
95
  _context.t0 = _context["catch"](4);
123
-
124
96
  _iterator2.e(_context.t0);
125
-
126
97
  case 17:
127
98
  _context.prev = 17;
128
-
129
99
  _iterator2.f();
130
-
131
100
  return _context.finish(17);
132
-
133
101
  case 20:
134
102
  case "end":
135
103
  return _context.stop();
@@ -139,10 +107,8 @@ function _decodeExtensions() {
139
107
  }));
140
108
  return _decodeExtensions.apply(this, arguments);
141
109
  }
142
-
143
110
  function useExtension(extensionName, options) {
144
111
  var _options$gltf;
145
-
146
112
  var excludes = (options === null || options === void 0 ? void 0 : (_options$gltf = options.gltf) === null || _options$gltf === void 0 ? void 0 : _options$gltf.excludeExtensions) || {};
147
113
  var exclude = extensionName in excludes && !excludes[extensionName];
148
114
  return !exclude;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/api/gltf-extensions.ts"],"names":["EXTENSIONS","EXT_meshopt_compression","EXT_texture_webp","KHR_texture_basisu","KHR_draco_mesh_compression","KHR_lights_punctual","KHR_materials_unlit","KHR_techniques_webgl","KHR_texture_transform","EXT_feature_metadata","preprocessExtensions","gltf","options","context","extensions","filter","extension","useExtension","name","preprocess","decodeExtensions","decode","extensionName","excludes","excludeExtensions","exclude"],"mappings":";;;;;;;;;;;;;;;;;AAQA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;;;;;;;;;;;AAuBO,IAAMA,UAAiC,GAAG,CAM/CC,uBAN+C,EAO/CC,gBAP+C,EAS/CC,kBAT+C,EAU/CC,0BAV+C,EAW/CC,mBAX+C,EAY/CC,mBAZ+C,EAa/CC,oBAb+C,EAc/CC,qBAd+C,EAe/CC,oBAf+C,CAA1C;;;AAmBA,SAASC,oBAAT,CAA8BC,IAA9B,EAA+E;AAAA,MAA3CC,OAA2C,uEAAd,EAAc;AAAA,MAAVC,OAAU;AACpF,MAAMC,UAAU,GAAGd,UAAU,CAACe,MAAX,CAAkB,UAACC,SAAD;AAAA,WAAeC,YAAY,CAACD,SAAS,CAACE,IAAX,EAAiBN,OAAjB,CAA3B;AAAA,GAAlB,CAAnB;;AADoF,6CAE5DE,UAF4D;AAAA;;AAAA;AAEpF,wDAAoC;AAAA;;AAAA,UAAzBE,SAAyB;AAClC,+BAAAA,SAAS,CAACG,UAAV,qFAAAH,SAAS,EAAcL,IAAd,EAAoBC,OAApB,EAA6BC,OAA7B,CAAT;AACD;AAJmF;AAAA;AAAA;AAAA;AAAA;AAKrF;;SAGqBO,gB;;;;;gFAAf,iBAAgCT,IAAhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAsCC,YAAAA,OAAtC,2DAAmE,EAAnE;AAAuEC,YAAAA,OAAvE;AACCC,YAAAA,UADD,GACcd,UAAU,CAACe,MAAX,CAAkB,UAACC,SAAD;AAAA,qBAAeC,YAAY,CAACD,SAAS,CAACE,IAAX,EAAiBN,OAAjB,CAA3B;AAAA,aAAlB,CADd;AAAA,oDAEmBE,UAFnB;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEME,YAAAA,SAFN;AAAA;AAAA,wCAKGA,SAAS,CAACK,MALb,sDAKG,uBAAAL,SAAS,EAAUL,IAAV,EAAgBC,OAAhB,EAAyBC,OAAzB,CALZ;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AASP,SAASI,YAAT,CAAsBK,aAAtB,EAA6CV,OAA7C,EAAyE;AAAA;;AACvE,MAAMW,QAAQ,GAAG,CAAAX,OAAO,SAAP,IAAAA,OAAO,WAAP,6BAAAA,OAAO,CAAED,IAAT,gEAAea,iBAAf,KAAoC,EAArD;AACA,MAAMC,OAAO,GAAGH,aAAa,IAAIC,QAAjB,IAA6B,CAACA,QAAQ,CAACD,aAAD,CAAtD;AACA,SAAO,CAACG,OAAR;AACD","sourcesContent":["/* eslint-disable camelcase */\nimport {GLTF} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\n// GLTF 1.0 extensions (decode only)\n// import * as KHR_binary_gltf from './KHR_draco_mesh_compression';\n\n// GLTF 2.0 Khronos extensions (decode/encode)\nimport * as EXT_meshopt_compression from '../extensions/EXT_meshopt_compression';\nimport * as EXT_texture_webp from '../extensions/EXT_texture_webp';\nimport * as KHR_texture_basisu from '../extensions/KHR_texture_basisu';\nimport * as KHR_draco_mesh_compression from '../extensions/KHR_draco_mesh_compression';\nimport * as KHR_texture_transform from '../extensions/KHR_texture_transform';\n\n// Deprecated. These should be handled by rendering library (e.g. luma.gl), not the loader.\nimport * as KHR_lights_punctual from '../extensions/deprecated/KHR_lights_punctual';\nimport * as KHR_materials_unlit from '../extensions/deprecated/KHR_materials_unlit';\nimport * as KHR_techniques_webgl from '../extensions/deprecated/KHR_techniques_webgl';\nimport * as EXT_feature_metadata from '../extensions/deprecated/EXT_feature_metadata';\n\n// Vendor extensions\n\ntype GLTFExtensionPlugin = {\n name: string;\n preprocess?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => void;\n decode?: (\n gltfData: {\n json: GLTF;\n buffers: {arrayBuffer: ArrayBuffer; byteOffset: number; byteLength: number}[];\n },\n options: GLTFLoaderOptions,\n context\n ) => Promise<void>;\n encode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;\n};\n\n/**\n * List of extensions processed by the GLTFLoader\n * Note that may extensions can only be handled on the rendering stage and are left out here\n * These are just extensions that can be handled fully or partially during loading.\n */\nexport const EXTENSIONS: GLTFExtensionPlugin[] = [\n // 1.0\n // KHR_binary_gltf is handled separately - must be processed before other parsing starts\n // KHR_binary_gltf,\n\n // 2.0\n EXT_meshopt_compression,\n EXT_texture_webp,\n // Basisu should come after webp, we want basisu to be preferred if both are provided\n KHR_texture_basisu,\n KHR_draco_mesh_compression,\n KHR_lights_punctual,\n KHR_materials_unlit,\n KHR_techniques_webgl,\n KHR_texture_transform,\n EXT_feature_metadata\n];\n\n/** Call before any resource loading starts */\nexport function preprocessExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n extension.preprocess?.(gltf, options, context);\n }\n}\n\n/** Call after resource loading */\nexport async function decodeExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n // Note: We decode async extensions sequentially, this might not be necessary\n // Currently we only have Draco, but when we add Basis we may revisit\n await extension.decode?.(gltf, options, context);\n }\n}\n\nfunction useExtension(extensionName: string, options: GLTFLoaderOptions) {\n const excludes = options?.gltf?.excludeExtensions || {};\n const exclude = extensionName in excludes && !excludes[extensionName];\n return !exclude;\n}\n"],"file":"gltf-extensions.js"}
1
+ {"version":3,"file":"gltf-extensions.js","names":["EXTENSIONS","EXT_meshopt_compression","EXT_texture_webp","KHR_texture_basisu","KHR_draco_mesh_compression","KHR_lights_punctual","KHR_materials_unlit","KHR_techniques_webgl","KHR_texture_transform","EXT_feature_metadata","preprocessExtensions","gltf","options","context","extensions","filter","extension","useExtension","name","preprocess","decodeExtensions","decode","extensionName","excludes","excludeExtensions","exclude"],"sources":["../../../../src/lib/api/gltf-extensions.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport {GLTF} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\n// GLTF 1.0 extensions (decode only)\n// import * as KHR_binary_gltf from './KHR_draco_mesh_compression';\n\n// GLTF 2.0 Khronos extensions (decode/encode)\nimport * as EXT_meshopt_compression from '../extensions/EXT_meshopt_compression';\nimport * as EXT_texture_webp from '../extensions/EXT_texture_webp';\nimport * as KHR_texture_basisu from '../extensions/KHR_texture_basisu';\nimport * as KHR_draco_mesh_compression from '../extensions/KHR_draco_mesh_compression';\nimport * as KHR_texture_transform from '../extensions/KHR_texture_transform';\n\n// Deprecated. These should be handled by rendering library (e.g. luma.gl), not the loader.\nimport * as KHR_lights_punctual from '../extensions/deprecated/KHR_lights_punctual';\nimport * as KHR_materials_unlit from '../extensions/deprecated/KHR_materials_unlit';\nimport * as KHR_techniques_webgl from '../extensions/deprecated/KHR_techniques_webgl';\nimport * as EXT_feature_metadata from '../extensions/deprecated/EXT_feature_metadata';\n\n// Vendor extensions\n\ntype GLTFExtensionPlugin = {\n name: string;\n preprocess?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => void;\n decode?: (\n gltfData: {\n json: GLTF;\n buffers: {arrayBuffer: ArrayBuffer; byteOffset: number; byteLength: number}[];\n },\n options: GLTFLoaderOptions,\n context\n ) => Promise<void>;\n encode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;\n};\n\n/**\n * List of extensions processed by the GLTFLoader\n * Note that may extensions can only be handled on the rendering stage and are left out here\n * These are just extensions that can be handled fully or partially during loading.\n */\nexport const EXTENSIONS: GLTFExtensionPlugin[] = [\n // 1.0\n // KHR_binary_gltf is handled separately - must be processed before other parsing starts\n // KHR_binary_gltf,\n\n // 2.0\n EXT_meshopt_compression,\n EXT_texture_webp,\n // Basisu should come after webp, we want basisu to be preferred if both are provided\n KHR_texture_basisu,\n KHR_draco_mesh_compression,\n KHR_lights_punctual,\n KHR_materials_unlit,\n KHR_techniques_webgl,\n KHR_texture_transform,\n EXT_feature_metadata\n];\n\n/** Call before any resource loading starts */\nexport function preprocessExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n extension.preprocess?.(gltf, options, context);\n }\n}\n\n/** Call after resource loading */\nexport async function decodeExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n // Note: We decode async extensions sequentially, this might not be necessary\n // Currently we only have Draco, but when we add Basis we may revisit\n await extension.decode?.(gltf, options, context);\n }\n}\n\nfunction useExtension(extensionName: string, options: GLTFLoaderOptions) {\n const excludes = options?.gltf?.excludeExtensions || {};\n const exclude = extensionName in excludes && !excludes[extensionName];\n return !exclude;\n}\n"],"mappings":";;;;;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAAsF;AAAA;AAAA;AAAA;AAAA;AAuB/E,IAAMA,UAAiC,GAAG;;AAM/CC,uBAAuB,EACvBC,gBAAgB;AAEhBC,kBAAkB,EAClBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,oBAAoB,EACpBC,qBAAqB,EACrBC,oBAAoB,CACrB;;AAAC;AAGK,SAASC,oBAAoB,CAACC,IAAI,EAA6C;EAAA,IAA3CC,OAA0B,uEAAG,CAAC,CAAC;EAAA,IAAEC,OAAQ;EAClF,IAAMC,UAAU,GAAGd,UAAU,CAACe,MAAM,CAAC,UAACC,SAAS;IAAA,OAAKC,YAAY,CAACD,SAAS,CAACE,IAAI,EAAEN,OAAO,CAAC;EAAA,EAAC;EAAC,2CACnEE,UAAU;IAAA;EAAA;IAAlC,oDAAoC;MAAA;MAAA,IAAzBE,SAAS;MAClB,yBAAAA,SAAS,CAACG,UAAU,0DAApB,2BAAAH,SAAS,EAAcL,IAAI,EAAEC,OAAO,EAAEC,OAAO,CAAC;IAChD;EAAC;IAAA;EAAA;IAAA;EAAA;AACH;;AAAC,SAGqBO,gBAAgB;EAAA;AAAA;AAAA;EAAA,8EAA/B,iBAAgCT,IAAI;IAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAAEC,OAA0B,2DAAG,CAAC,CAAC;YAAEC,OAAQ;YAC9EC,UAAU,GAAGd,UAAU,CAACe,MAAM,CAAC,UAACC,SAAS;cAAA,OAAKC,YAAY,CAACD,SAAS,CAACE,IAAI,EAAEN,OAAO,CAAC;YAAA,EAAC;YAAA,wCAClEE,UAAU;YAAA;YAAA;UAAA;YAAA;cAAA;cAAA;YAAA;YAAvBE,SAAS;YAAA;YAAA,4BAGZA,SAAS,CAACK,MAAM,sDAAhB,uBAAAL,SAAS,EAAUL,IAAI,EAAEC,OAAO,EAAEC,OAAO,CAAC;UAAA;YAAA;YAAA;UAAA;YAAA;YAAA;UAAA;YAAA;YAAA;YAAA;UAAA;YAAA;YAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAEnD;EAAA;AAAA;AAED,SAASI,YAAY,CAACK,aAAqB,EAAEV,OAA0B,EAAE;EAAA;EACvE,IAAMW,QAAQ,GAAG,CAAAX,OAAO,aAAPA,OAAO,wCAAPA,OAAO,CAAED,IAAI,kDAAb,cAAea,iBAAiB,KAAI,CAAC,CAAC;EACvD,IAAMC,OAAO,GAAGH,aAAa,IAAIC,QAAQ,IAAI,CAACA,QAAQ,CAACD,aAAa,CAAC;EACrE,OAAO,CAACG,OAAO;AACjB"}