@mappedin/mappedin-js 6.18.0 → 6.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD_PARTY_LICENSES.txt +408 -5
- package/lib/esm/GLTFExporter-G4WLRGTD.js +1 -0
- package/lib/esm/GLTFLoader-6KS65AUU.js +1 -0
- package/lib/esm/{chunk-X2XAL5AL.js → chunk-5DTIPZIM.js} +1 -1
- package/lib/esm/chunk-7ZLJ5BZG.js +956 -0
- package/lib/esm/chunk-PJFSEFCS.js +660 -0
- package/lib/esm/chunk-PWEV3AFA.js +1 -0
- package/lib/esm/chunk-S634J4FK.js +3819 -0
- package/lib/esm/chunk-XH3AOOQM.js +1515 -0
- package/lib/esm/index.css +1 -1
- package/lib/esm/index.d.ts +563 -87
- package/lib/esm/index.js +1 -1
- package/lib/esm/inspector-IMRVE3SS.js +482 -0
- package/lib/esm/inspector-PGGVNGUZ.css +1 -0
- package/lib/esm/internal-75ZEUF5X.js +1 -0
- package/lib/esm/internal-Q5HDG37N.css +1 -0
- package/lib/esm/{roboto-regular-OIQQVHWA.js → roboto-regular-6ZYOMS3F.js} +1 -1
- package/lib/esm/src-RKBRVS5G.js +1 -0
- package/lib/esm/src-WUAFLQGO.css +1 -0
- package/lib/esm/text3d-YG2QJ2JU.js +252 -0
- package/lib/esm/workers/collision-worker.csp.js +1 -1
- package/lib/index.css +1 -1
- package/package.json +1 -1
- package/lib/esm/GLTFExporter-REUTCDDJ.js +0 -1
- package/lib/esm/GLTFLoader-BHAZAEWN.js +0 -1
- package/lib/esm/chunk-FILUCKU4.js +0 -1
- package/lib/esm/chunk-FQILVVN4.js +0 -1
- package/lib/esm/chunk-KNYR4VGD.js +0 -1
- package/lib/esm/chunk-MCLERQTU.js +0 -1
- package/lib/esm/chunk-USECXCBB.js +0 -1
- package/lib/esm/inspector-6AQ5XCPD.js +0 -1
- package/lib/esm/inspector-6RM5OI6U.css +0 -1
- package/lib/esm/internal-I66JHO4D.js +0 -1
- package/lib/esm/internal-J5PK6TOB.css +0 -1
- package/lib/esm/src-GA2Z4OON.css +0 -1
- package/lib/esm/src-VUR3CJ3Y.js +0 -1
- package/lib/esm/text3d-WK55MUUL.js +0 -1
package/THIRD_PARTY_LICENSES.txt
CHANGED
|
@@ -3260,6 +3260,37 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
3260
3260
|
|
|
3261
3261
|
-----------
|
|
3262
3262
|
|
|
3263
|
+
The following npm package may be included in this product:
|
|
3264
|
+
|
|
3265
|
+
- void-elements@3.1.0
|
|
3266
|
+
|
|
3267
|
+
This package contains the following license:
|
|
3268
|
+
|
|
3269
|
+
(The MIT License)
|
|
3270
|
+
|
|
3271
|
+
Copyright (c) 2014 hemanth
|
|
3272
|
+
|
|
3273
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
3274
|
+
a copy of this software and associated documentation files (the
|
|
3275
|
+
'Software'), to deal in the Software without restriction, including
|
|
3276
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
3277
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
3278
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
3279
|
+
the following conditions:
|
|
3280
|
+
|
|
3281
|
+
The above copyright notice and this permission notice shall be
|
|
3282
|
+
included in all copies or substantial portions of the Software.
|
|
3283
|
+
|
|
3284
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
3285
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
3286
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
3287
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
3288
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
3289
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
3290
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
3291
|
+
|
|
3292
|
+
-----------
|
|
3293
|
+
|
|
3263
3294
|
The following npm package may be included in this product:
|
|
3264
3295
|
|
|
3265
3296
|
- compression@1.8.1
|
|
@@ -5166,6 +5197,69 @@ CC0-1.0
|
|
|
5166
5197
|
|
|
5167
5198
|
-----------
|
|
5168
5199
|
|
|
5200
|
+
The following npm package may be included in this product:
|
|
5201
|
+
|
|
5202
|
+
- chroma-js@2.6.0
|
|
5203
|
+
|
|
5204
|
+
This package contains the following license:
|
|
5205
|
+
|
|
5206
|
+
chroma.js - JavaScript library for color conversions
|
|
5207
|
+
|
|
5208
|
+
Copyright (c) 2011-2024, Gregor Aisch
|
|
5209
|
+
All rights reserved.
|
|
5210
|
+
|
|
5211
|
+
Redistribution and use in source and binary forms, with or without
|
|
5212
|
+
modification, are permitted provided that the following conditions are met:
|
|
5213
|
+
|
|
5214
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
5215
|
+
list of conditions and the following disclaimer.
|
|
5216
|
+
|
|
5217
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
5218
|
+
this list of conditions and the following disclaimer in the documentation
|
|
5219
|
+
and/or other materials provided with the distribution.
|
|
5220
|
+
|
|
5221
|
+
3. The name Gregor Aisch may not be used to endorse or promote products
|
|
5222
|
+
derived from this software without specific prior written permission.
|
|
5223
|
+
|
|
5224
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
5225
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
5226
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
5227
|
+
DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
|
5228
|
+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
5229
|
+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
5230
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
|
5231
|
+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
5232
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
5233
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
5234
|
+
|
|
5235
|
+
-------------------------------------------------------
|
|
5236
|
+
|
|
5237
|
+
chroma.js includes colors from colorbrewer2.org, which are released under
|
|
5238
|
+
the following license:
|
|
5239
|
+
|
|
5240
|
+
Copyright (c) 2002 Cynthia Brewer, Mark Harrower,
|
|
5241
|
+
and The Pennsylvania State University.
|
|
5242
|
+
|
|
5243
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5244
|
+
you may not use this file except in compliance with the License.
|
|
5245
|
+
You may obtain a copy of the License at
|
|
5246
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
5247
|
+
|
|
5248
|
+
Unless required by applicable law or agreed to in writing,
|
|
5249
|
+
software distributed under the License is distributed on an
|
|
5250
|
+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
|
5251
|
+
either express or implied. See the License for the specific
|
|
5252
|
+
language governing permissions and limitations under the License.
|
|
5253
|
+
|
|
5254
|
+
------------------------------------------------------
|
|
5255
|
+
|
|
5256
|
+
Named colors are taken from X11 Color Names.
|
|
5257
|
+
http://www.w3.org/TR/css3-color/#svg-color
|
|
5258
|
+
|
|
5259
|
+
@preserve
|
|
5260
|
+
|
|
5261
|
+
-----------
|
|
5262
|
+
|
|
5169
5263
|
The following npm package may be included in this product:
|
|
5170
5264
|
|
|
5171
5265
|
- sprintf-js@1.0.3
|
|
@@ -6091,6 +6185,35 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
6091
6185
|
|
|
6092
6186
|
-----------
|
|
6093
6187
|
|
|
6188
|
+
The following npm package may be included in this product:
|
|
6189
|
+
|
|
6190
|
+
- color-blend@3.0.1
|
|
6191
|
+
|
|
6192
|
+
This package contains the following license:
|
|
6193
|
+
|
|
6194
|
+
Copyright (c) 2016 Florian Reuschel
|
|
6195
|
+
|
|
6196
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6197
|
+
a copy of this software and associated documentation files (the
|
|
6198
|
+
"Software"), to deal in the Software without restriction, including
|
|
6199
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
6200
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
6201
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
6202
|
+
the following conditions:
|
|
6203
|
+
|
|
6204
|
+
The above copyright notice and this permission notice shall be
|
|
6205
|
+
included in all copies or substantial portions of the Software.
|
|
6206
|
+
|
|
6207
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
6208
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
6209
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
6210
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
6211
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
6212
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
6213
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
6214
|
+
|
|
6215
|
+
-----------
|
|
6216
|
+
|
|
6094
6217
|
The following npm packages may be included in this product:
|
|
6095
6218
|
|
|
6096
6219
|
- test-exclude@6.0.0
|
|
@@ -6229,11 +6352,12 @@ SOFTWARE.
|
|
|
6229
6352
|
|
|
6230
6353
|
-----------
|
|
6231
6354
|
|
|
6232
|
-
The following npm
|
|
6355
|
+
The following npm packages may be included in this product:
|
|
6233
6356
|
|
|
6234
6357
|
- csstype@3.1.3
|
|
6358
|
+
- csstype@3.2.3
|
|
6235
6359
|
|
|
6236
|
-
|
|
6360
|
+
These packages each contain the following license:
|
|
6237
6361
|
|
|
6238
6362
|
Copyright (c) 2017-2018 Fredrik Nicol
|
|
6239
6363
|
|
|
@@ -7565,7 +7689,7 @@ The following npm packages may be included in this product:
|
|
|
7565
7689
|
- lodash.defaultsdeep@4.6.1
|
|
7566
7690
|
- lodash.merge@4.6.2
|
|
7567
7691
|
- lodash.mergewith@4.6.2
|
|
7568
|
-
- lodash@4.
|
|
7692
|
+
- lodash@4.18.1
|
|
7569
7693
|
|
|
7570
7694
|
These packages each contain the following license:
|
|
7571
7695
|
|
|
@@ -7944,6 +8068,7 @@ The following npm packages may be included in this product:
|
|
|
7944
8068
|
- @expo/sdk-runtime-versions@1.0.0
|
|
7945
8069
|
- @expo/server@0.6.2
|
|
7946
8070
|
- @expo/ws-tunnel@1.0.6
|
|
8071
|
+
- @mappedin/apps-sdk@0.2.1-eb4e2e8.0
|
|
7947
8072
|
- @radix-ui/react-compose-refs@1.1.2
|
|
7948
8073
|
- @radix-ui/react-slot@1.2.0
|
|
7949
8074
|
- @react-native/assets-registry@0.79.2
|
|
@@ -7985,6 +8110,7 @@ The following npm packages may be included in this product:
|
|
|
7985
8110
|
- expo-system-ui@5.0.11
|
|
7986
8111
|
- expo-web-browser@14.1.6
|
|
7987
8112
|
- expo@53.0.25
|
|
8113
|
+
- html-parse-stringify@3.0.1
|
|
7988
8114
|
- imurmurhash@0.1.4
|
|
7989
8115
|
- jimp-compact@0.16.1
|
|
7990
8116
|
- metro-babel-transformer@0.82.4
|
|
@@ -8762,6 +8888,66 @@ SOFTWARE.
|
|
|
8762
8888
|
|
|
8763
8889
|
-----------
|
|
8764
8890
|
|
|
8891
|
+
The following npm package may be included in this product:
|
|
8892
|
+
|
|
8893
|
+
- styled-components@6.4.1
|
|
8894
|
+
|
|
8895
|
+
This package contains the following license:
|
|
8896
|
+
|
|
8897
|
+
MIT License
|
|
8898
|
+
|
|
8899
|
+
Copyright (c) 2016-present Glen Maddern and Maximilian Stoiber
|
|
8900
|
+
|
|
8901
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8902
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8903
|
+
in the Software without restriction, including without limitation the rights
|
|
8904
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8905
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
8906
|
+
furnished to do so, subject to the following conditions:
|
|
8907
|
+
|
|
8908
|
+
The above copyright notice and this permission notice shall be included in all
|
|
8909
|
+
copies or substantial portions of the Software.
|
|
8910
|
+
|
|
8911
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
8912
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
8913
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
8914
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
8915
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
8916
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
8917
|
+
SOFTWARE.
|
|
8918
|
+
|
|
8919
|
+
-----------
|
|
8920
|
+
|
|
8921
|
+
The following npm package may be included in this product:
|
|
8922
|
+
|
|
8923
|
+
- stylis@4.3.6
|
|
8924
|
+
|
|
8925
|
+
This package contains the following license:
|
|
8926
|
+
|
|
8927
|
+
MIT License
|
|
8928
|
+
|
|
8929
|
+
Copyright (c) 2016-present Sultan Tarimo
|
|
8930
|
+
|
|
8931
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8932
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8933
|
+
in the Software without restriction, including without limitation the rights
|
|
8934
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8935
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
8936
|
+
furnished to do so, subject to the following conditions:
|
|
8937
|
+
|
|
8938
|
+
The above copyright notice and this permission notice shall be included in all
|
|
8939
|
+
copies or substantial portions of the Software.
|
|
8940
|
+
|
|
8941
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
8942
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
8943
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
8944
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
8945
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
8946
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
8947
|
+
SOFTWARE.
|
|
8948
|
+
|
|
8949
|
+
-----------
|
|
8950
|
+
|
|
8765
8951
|
The following npm package may be included in this product:
|
|
8766
8952
|
|
|
8767
8953
|
- buffer-from@1.1.2
|
|
@@ -9040,6 +9226,36 @@ SOFTWARE.
|
|
|
9040
9226
|
|
|
9041
9227
|
-----------
|
|
9042
9228
|
|
|
9229
|
+
The following npm package may be included in this product:
|
|
9230
|
+
|
|
9231
|
+
- dayjs@1.11.20
|
|
9232
|
+
|
|
9233
|
+
This package contains the following license:
|
|
9234
|
+
|
|
9235
|
+
MIT License
|
|
9236
|
+
|
|
9237
|
+
Copyright (c) 2018-present, iamkun
|
|
9238
|
+
|
|
9239
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9240
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9241
|
+
in the Software without restriction, including without limitation the rights
|
|
9242
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9243
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
9244
|
+
furnished to do so, subject to the following conditions:
|
|
9245
|
+
|
|
9246
|
+
The above copyright notice and this permission notice shall be included in all
|
|
9247
|
+
copies or substantial portions of the Software.
|
|
9248
|
+
|
|
9249
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
9250
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
9251
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
9252
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
9253
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
9254
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
9255
|
+
SOFTWARE.
|
|
9256
|
+
|
|
9257
|
+
-----------
|
|
9258
|
+
|
|
9043
9259
|
The following npm packages may be included in this product:
|
|
9044
9260
|
|
|
9045
9261
|
- @urql/core@5.2.0
|
|
@@ -9378,6 +9594,37 @@ SOFTWARE.
|
|
|
9378
9594
|
|
|
9379
9595
|
-----------
|
|
9380
9596
|
|
|
9597
|
+
The following npm packages may be included in this product:
|
|
9598
|
+
|
|
9599
|
+
- @tanstack/query-core@5.100.10
|
|
9600
|
+
- @tanstack/react-query@5.100.10
|
|
9601
|
+
|
|
9602
|
+
These packages each contain the following license:
|
|
9603
|
+
|
|
9604
|
+
MIT License
|
|
9605
|
+
|
|
9606
|
+
Copyright (c) 2021-present Tanner Linsley
|
|
9607
|
+
|
|
9608
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9609
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9610
|
+
in the Software without restriction, including without limitation the rights
|
|
9611
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9612
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
9613
|
+
furnished to do so, subject to the following conditions:
|
|
9614
|
+
|
|
9615
|
+
The above copyright notice and this permission notice shall be included in all
|
|
9616
|
+
copies or substantial portions of the Software.
|
|
9617
|
+
|
|
9618
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
9619
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
9620
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
9621
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
9622
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
9623
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
9624
|
+
SOFTWARE.
|
|
9625
|
+
|
|
9626
|
+
-----------
|
|
9627
|
+
|
|
9381
9628
|
The following npm package may be included in this product:
|
|
9382
9629
|
|
|
9383
9630
|
- supports-preserve-symlinks-flag@1.0.0
|
|
@@ -9653,6 +9900,37 @@ SOFTWARE.
|
|
|
9653
9900
|
|
|
9654
9901
|
-----------
|
|
9655
9902
|
|
|
9903
|
+
The following npm packages may be included in this product:
|
|
9904
|
+
|
|
9905
|
+
- @emotion/is-prop-valid@1.4.0
|
|
9906
|
+
- @emotion/memoize@0.9.0
|
|
9907
|
+
|
|
9908
|
+
These packages each contain the following license:
|
|
9909
|
+
|
|
9910
|
+
MIT License
|
|
9911
|
+
|
|
9912
|
+
Copyright (c) Emotion team and other contributors
|
|
9913
|
+
|
|
9914
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9915
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9916
|
+
in the Software without restriction, including without limitation the rights
|
|
9917
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9918
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
9919
|
+
furnished to do so, subject to the following conditions:
|
|
9920
|
+
|
|
9921
|
+
The above copyright notice and this permission notice shall be included in all
|
|
9922
|
+
copies or substantial portions of the Software.
|
|
9923
|
+
|
|
9924
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
9925
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
9926
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
9927
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
9928
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
9929
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
9930
|
+
SOFTWARE.
|
|
9931
|
+
|
|
9932
|
+
-----------
|
|
9933
|
+
|
|
9656
9934
|
The following npm packages may be included in this product:
|
|
9657
9935
|
|
|
9658
9936
|
- babel-plugin-transform-flow-enums@0.0.2
|
|
@@ -9831,10 +10109,13 @@ The following npm packages may be included in this product:
|
|
|
9831
10109
|
- jest-worker@29.7.0
|
|
9832
10110
|
- pretty-format@29.7.0
|
|
9833
10111
|
- react-dom@19.0.0
|
|
10112
|
+
- react-dom@19.1.1
|
|
9834
10113
|
- react-is@19.2.4
|
|
9835
10114
|
- react-native@0.79.2
|
|
9836
10115
|
- react@19.0.0
|
|
10116
|
+
- react@19.1.1
|
|
9837
10117
|
- scheduler@0.25.0
|
|
10118
|
+
- scheduler@0.26.0
|
|
9838
10119
|
- use-sync-external-store@1.6.0
|
|
9839
10120
|
|
|
9840
10121
|
These packages each contain the following license:
|
|
@@ -12144,6 +12425,36 @@ THE SOFTWARE.
|
|
|
12144
12425
|
|
|
12145
12426
|
-----------
|
|
12146
12427
|
|
|
12428
|
+
The following npm package may be included in this product:
|
|
12429
|
+
|
|
12430
|
+
- mobx@6.15.3
|
|
12431
|
+
|
|
12432
|
+
This package contains the following license:
|
|
12433
|
+
|
|
12434
|
+
The MIT License (MIT)
|
|
12435
|
+
|
|
12436
|
+
Copyright (c) 2015 Michel Weststrate
|
|
12437
|
+
|
|
12438
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12439
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12440
|
+
in the Software without restriction, including without limitation the rights
|
|
12441
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12442
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12443
|
+
furnished to do so, subject to the following conditions:
|
|
12444
|
+
|
|
12445
|
+
The above copyright notice and this permission notice shall be included in all
|
|
12446
|
+
copies or substantial portions of the Software.
|
|
12447
|
+
|
|
12448
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
12449
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
12450
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
12451
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
12452
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
12453
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
12454
|
+
SOFTWARE.
|
|
12455
|
+
|
|
12456
|
+
-----------
|
|
12457
|
+
|
|
12147
12458
|
The following npm package may be included in this product:
|
|
12148
12459
|
|
|
12149
12460
|
- inline-style-prefixer@7.0.1
|
|
@@ -12236,7 +12547,7 @@ SOFTWARE.
|
|
|
12236
12547
|
|
|
12237
12548
|
The following npm package may be included in this product:
|
|
12238
12549
|
|
|
12239
|
-
- ajv@8.
|
|
12550
|
+
- ajv@8.18.0
|
|
12240
12551
|
|
|
12241
12552
|
This package contains the following license:
|
|
12242
12553
|
|
|
@@ -12735,7 +13046,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
12735
13046
|
The following npm packages may be included in this product:
|
|
12736
13047
|
|
|
12737
13048
|
- picomatch@2.3.2
|
|
12738
|
-
- picomatch@3.0.
|
|
13049
|
+
- picomatch@3.0.2
|
|
12739
13050
|
|
|
12740
13051
|
These packages each contain the following license:
|
|
12741
13052
|
|
|
@@ -12840,6 +13151,36 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
12840
13151
|
|
|
12841
13152
|
-----------
|
|
12842
13153
|
|
|
13154
|
+
The following npm package may be included in this product:
|
|
13155
|
+
|
|
13156
|
+
- framer-motion@11.18.2
|
|
13157
|
+
|
|
13158
|
+
This package contains the following license:
|
|
13159
|
+
|
|
13160
|
+
The MIT License (MIT)
|
|
13161
|
+
|
|
13162
|
+
Copyright (c) 2018 Framer B.V.
|
|
13163
|
+
|
|
13164
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
13165
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13166
|
+
in the Software without restriction, including without limitation the rights
|
|
13167
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13168
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
13169
|
+
furnished to do so, subject to the following conditions:
|
|
13170
|
+
|
|
13171
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13172
|
+
copies or substantial portions of the Software.
|
|
13173
|
+
|
|
13174
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
13175
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
13176
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
13177
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
13178
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
13179
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
13180
|
+
SOFTWARE.
|
|
13181
|
+
|
|
13182
|
+
-----------
|
|
13183
|
+
|
|
12843
13184
|
The following npm package may be included in this product:
|
|
12844
13185
|
|
|
12845
13186
|
- cross-spawn@7.0.6
|
|
@@ -13142,6 +13483,37 @@ SOFTWARE.
|
|
|
13142
13483
|
|
|
13143
13484
|
-----------
|
|
13144
13485
|
|
|
13486
|
+
The following npm packages may be included in this product:
|
|
13487
|
+
|
|
13488
|
+
- motion-dom@11.18.1
|
|
13489
|
+
- motion-utils@11.18.1
|
|
13490
|
+
|
|
13491
|
+
These packages each contain the following license:
|
|
13492
|
+
|
|
13493
|
+
The MIT License (MIT)
|
|
13494
|
+
|
|
13495
|
+
Copyright (c) 2024 [Motion](https://motion.dev) B.V.
|
|
13496
|
+
|
|
13497
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
13498
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13499
|
+
in the Software without restriction, including without limitation the rights
|
|
13500
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13501
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
13502
|
+
furnished to do so, subject to the following conditions:
|
|
13503
|
+
|
|
13504
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13505
|
+
copies or substantial portions of the Software.
|
|
13506
|
+
|
|
13507
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
13508
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
13509
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
13510
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
13511
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
13512
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
13513
|
+
SOFTWARE.
|
|
13514
|
+
|
|
13515
|
+
-----------
|
|
13516
|
+
|
|
13145
13517
|
The following npm package may be included in this product:
|
|
13146
13518
|
|
|
13147
13519
|
- i18next@25.8.0
|
|
@@ -13172,6 +13544,37 @@ SOFTWARE.
|
|
|
13172
13544
|
|
|
13173
13545
|
-----------
|
|
13174
13546
|
|
|
13547
|
+
The following npm packages may be included in this product:
|
|
13548
|
+
|
|
13549
|
+
- i18next-browser-languagedetector@8.2.1
|
|
13550
|
+
- react-i18next@15.7.4
|
|
13551
|
+
|
|
13552
|
+
These packages each contain the following license:
|
|
13553
|
+
|
|
13554
|
+
The MIT License (MIT)
|
|
13555
|
+
|
|
13556
|
+
Copyright (c) 2025 i18next
|
|
13557
|
+
|
|
13558
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
13559
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13560
|
+
in the Software without restriction, including without limitation the rights
|
|
13561
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13562
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
13563
|
+
furnished to do so, subject to the following conditions:
|
|
13564
|
+
|
|
13565
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13566
|
+
copies or substantial portions of the Software.
|
|
13567
|
+
|
|
13568
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
13569
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
13570
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
13571
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
13572
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
13573
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
13574
|
+
SOFTWARE.
|
|
13575
|
+
|
|
13576
|
+
-----------
|
|
13577
|
+
|
|
13175
13578
|
The following npm package may be included in this product:
|
|
13176
13579
|
|
|
13177
13580
|
- @expo/schema-utils@0.1.8
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as Ae,C as Me,Ga as D,N as P,P as Ee,Q as O,T as Ie,U as Re,_ as H,a as ae,ba as Ne,ea as S,f as ce,i as ue,j as le,k as fe,l as he,m as pe,mb as v,n as de,o as xe,oa as G,p as ye,q as ge,u as Te,v as we,w as me}from"./chunk-S634J4FK.js";import"./chunk-PWEV3AFA.js";ae();var be={POSITION:["byte","byte normalized","unsigned byte","unsigned byte normalized","short","short normalized","unsigned short","unsigned short normalized"],NORMAL:["byte normalized","short normalized"],TANGENT:["byte normalized","short normalized"],TEXCOORD:["byte","byte normalized","unsigned byte","short","short normalized","unsigned short"]},z=class{constructor(){this.textureUtils=null,this.pluginCallbacks=[],this.register(function(e){return new j(e)}),this.register(function(e){return new q(e)}),this.register(function(e){return new Z(e)}),this.register(function(e){return new Q(e)}),this.register(function(e){return new $(e)}),this.register(function(e){return new ee(e)}),this.register(function(e){return new X(e)}),this.register(function(e){return new W(e)}),this.register(function(e){return new J(e)}),this.register(function(e){return new se(e)}),this.register(function(e){return new te(e)}),this.register(function(e){return new ne(e)}),this.register(function(e){return new ie(e)}),this.register(function(e){return new re(e)})}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}setTextureUtils(e){return this.textureUtils=e,this}parse(e,s,n,t){let i=new K,r=[];for(let o=0,c=this.pluginCallbacks.length;o<c;o++)r.push(this.pluginCallbacks[o](i));i.setPlugins(r),i.setTextureUtils(this.textureUtils),i.writeAsync(e,s,t).catch(n)}parseAsync(e,s){let n=this;return new Promise(function(t,i){n.parse(e,t,i,s)})}},y={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497},V="KHR_mesh_quantization",R={};R[he]=y.NEAREST;R[pe]=y.NEAREST_MIPMAP_NEAREST;R[de]=y.NEAREST_MIPMAP_LINEAR;R[xe]=y.LINEAR;R[ye]=y.LINEAR_MIPMAP_NEAREST;R[ge]=y.LINEAR_MIPMAP_LINEAR;R[le]=y.CLAMP_TO_EDGE;R[ue]=y.REPEAT;R[fe]=y.MIRRORED_REPEAT;var Se={scale:"scale",position:"translation",quaternion:"rotation",morphTargetInfluences:"weights"},Fe=new Ne,_e=12,ze=1179937895,Be=2,Ue=8,Pe=1313821514,De=5130562;function F(a,e){return a.length===e.length&&a.every(function(s,n){return s===e[n]})}function ke(a){return new TextEncoder().encode(a).buffer}function He(a){return F(a.elements,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}function Ge(a,e,s){let n={min:new Array(a.itemSize).fill(Number.POSITIVE_INFINITY),max:new Array(a.itemSize).fill(Number.NEGATIVE_INFINITY)};for(let t=e;t<e+s;t++)for(let i=0;i<a.itemSize;i++){let r;a.itemSize>4?r=a.array[t*a.itemSize+i]:(i===0?r=a.getX(t):i===1?r=a.getY(t):i===2?r=a.getZ(t):i===3&&(r=a.getW(t)),a.normalized===!0&&(r=P.normalize(r,a.array))),n.min[i]=Math.min(n.min[i],r),n.max[i]=Math.max(n.max[i],r)}return n}function Le(a){return Math.ceil(a/4)*4}function Y(a,e=0){let s=Le(a.byteLength);if(s!==a.byteLength){let n=new Uint8Array(s);if(n.set(new Uint8Array(a)),e!==0)for(let t=a.byteLength;t<s;t++)n[t]=e;return n.buffer}return a}function Ce(){return typeof document>"u"&&typeof OffscreenCanvas<"u"?new OffscreenCanvas(1,1):document.createElement("canvas")}function Ve(a,e){if(a.toBlob!==void 0)return new Promise(n=>a.toBlob(n,e));let s;return e==="image/jpeg"?s=.92:e==="image/webp"&&(s=.8),a.convertToBlob({type:e,quality:s})}var K=class{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.extensionsRequired={},this.uids=new Map,this.uid=0,this.json={asset:{version:"2.0",generator:"THREE.GLTFExporter r178"}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map},this.textureUtils=null}setPlugins(e){this.plugins=e}setTextureUtils(e){this.textureUtils=e}async writeAsync(e,s,n={}){this.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},n),this.options.animations.length>0&&(this.options.trs=!0),await this.processInputAsync(e),await Promise.all(this.pending);let t=this,i=t.buffers,r=t.json;n=t.options;let o=t.extensionsUsed,c=t.extensionsRequired,l=new Blob(i,{type:"application/octet-stream"}),h=Object.keys(o),u=Object.keys(c);if(h.length>0&&(r.extensionsUsed=h),u.length>0&&(r.extensionsRequired=u),r.buffers&&r.buffers.length>0&&(r.buffers[0].byteLength=l.size),n.binary===!0){let T=new FileReader;T.readAsArrayBuffer(l),T.onloadend=function(){let f=Y(T.result),p=new DataView(new ArrayBuffer(Ue));p.setUint32(0,f.byteLength,!0),p.setUint32(4,De,!0);let d=Y(ke(JSON.stringify(r)),32),g=new DataView(new ArrayBuffer(Ue));g.setUint32(0,d.byteLength,!0),g.setUint32(4,Pe,!0);let A=new ArrayBuffer(_e),N=new DataView(A);N.setUint32(0,ze,!0),N.setUint32(4,Be,!0);let B=_e+g.byteLength+d.byteLength+p.byteLength+f.byteLength;N.setUint32(8,B,!0);let x=new Blob([A,g,d,p,f],{type:"application/octet-stream"}),w=new FileReader;w.readAsArrayBuffer(x),w.onloadend=function(){s(w.result)}}}else if(r.buffers&&r.buffers.length>0){let T=new FileReader;T.readAsDataURL(l),T.onloadend=function(){let f=T.result;r.buffers[0].uri=f,s(r)}}else s(r)}serializeUserData(e,s){if(Object.keys(e.userData).length===0)return;let n=this.options,t=this.extensionsUsed;try{let i=JSON.parse(JSON.stringify(e.userData));if(n.includeCustomExtensions&&i.gltfExtensions){s.extensions===void 0&&(s.extensions={});for(let r in i.gltfExtensions)s.extensions[r]=i.gltfExtensions[r],t[r]=!0;delete i.gltfExtensions}Object.keys(i).length>0&&(s.extras=i)}catch(i){console.warn("THREE.GLTFExporter: userData of '"+e.name+"' won't be serialized because of JSON.stringify error - "+i.message)}}getUID(e,s=!1){if(this.uids.has(e)===!1){let t=new Map;t.set(!0,this.uid++),t.set(!1,this.uid++),this.uids.set(e,t)}return this.uids.get(e).get(s)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;let n=new O;for(let t=0,i=e.count;t<i;t++)if(Math.abs(n.fromBufferAttribute(e,t).length()-1)>5e-4)return!1;return!0}createNormalizedNormalAttribute(e){let s=this.cache;if(s.attributesNormalized.has(e))return s.attributesNormalized.get(e);let n=e.clone(),t=new O;for(let i=0,r=n.count;i<r;i++)t.fromBufferAttribute(n,i),t.x===0&&t.y===0&&t.z===0?t.setX(1):t.normalize(),n.setXYZ(i,t.x,t.y,t.z);return s.attributesNormalized.set(e,n),n}applyTextureTransform(e,s){let n=!1,t={};(s.offset.x!==0||s.offset.y!==0)&&(t.offset=s.offset.toArray(),n=!0),s.rotation!==0&&(t.rotation=s.rotation,n=!0),(s.repeat.x!==1||s.repeat.y!==1)&&(t.scale=s.repeat.toArray(),n=!0),n&&(e.extensions=e.extensions||{},e.extensions.KHR_texture_transform=t,this.extensionsUsed.KHR_texture_transform=!0)}async buildMetalRoughTextureAsync(e,s){if(e===s)return e;function n(f){return f.colorSpace===Me?function(d){return d<.04045?d*.0773993808:Math.pow(d*.9478672986+.0521327014,2.4)}:function(d){return d}}e instanceof D&&(e=await this.decompressTextureAsync(e)),s instanceof D&&(s=await this.decompressTextureAsync(s));let t=e?e.image:null,i=s?s.image:null,r=Math.max(t?t.width:0,i?i.width:0),o=Math.max(t?t.height:0,i?i.height:0),c=Ce();c.width=r,c.height=o;let l=c.getContext("2d",{willReadFrequently:!0});l.fillStyle="#00ffff",l.fillRect(0,0,r,o);let h=l.getImageData(0,0,r,o);if(t){l.drawImage(t,0,0,r,o);let f=n(e),p=l.getImageData(0,0,r,o).data;for(let d=2;d<p.length;d+=4)h.data[d]=f(p[d]/256)*256}if(i){l.drawImage(i,0,0,r,o);let f=n(s),p=l.getImageData(0,0,r,o).data;for(let d=1;d<p.length;d+=4)h.data[d]=f(p[d]/256)*256}l.putImageData(h,0,0);let T=(e||s).clone();return T.source=new Re(c),T.colorSpace=Ae,T.channel=(e||s).channel,e&&s&&e.channel!==s.channel&&console.warn("THREE.GLTFExporter: UV channels for metalnessMap and roughnessMap textures must match."),console.warn("THREE.GLTFExporter: Merged metalnessMap and roughnessMap textures."),T}async decompressTextureAsync(e,s=1/0){if(this.textureUtils===null)throw new Error("THREE.GLTFExporter: setTextureUtils() must be called to process compressed textures.");return await this.textureUtils.decompress(e,s)}processBuffer(e){let s=this.json,n=this.buffers;return s.buffers||(s.buffers=[{byteLength:0}]),n.push(e),0}processBufferView(e,s,n,t,i){let r=this.json;r.bufferViews||(r.bufferViews=[]);let o;switch(s){case y.BYTE:case y.UNSIGNED_BYTE:o=1;break;case y.SHORT:case y.UNSIGNED_SHORT:o=2;break;default:o=4}let c=e.itemSize*o;i===y.ARRAY_BUFFER&&(c=Math.ceil(c/4)*4);let l=Le(t*c),h=new DataView(new ArrayBuffer(l)),u=0;for(let p=n;p<n+t;p++){for(let d=0;d<e.itemSize;d++){let g;e.itemSize>4?g=e.array[p*e.itemSize+d]:(d===0?g=e.getX(p):d===1?g=e.getY(p):d===2?g=e.getZ(p):d===3&&(g=e.getW(p)),e.normalized===!0&&(g=P.normalize(g,e.array))),s===y.FLOAT?h.setFloat32(u,g,!0):s===y.INT?h.setInt32(u,g,!0):s===y.UNSIGNED_INT?h.setUint32(u,g,!0):s===y.SHORT?h.setInt16(u,g,!0):s===y.UNSIGNED_SHORT?h.setUint16(u,g,!0):s===y.BYTE?h.setInt8(u,g):s===y.UNSIGNED_BYTE&&h.setUint8(u,g),u+=o}u%c!==0&&(u+=c-u%c)}let T={buffer:this.processBuffer(h.buffer),byteOffset:this.byteOffset,byteLength:l};return i!==void 0&&(T.target=i),i===y.ARRAY_BUFFER&&(T.byteStride=c),this.byteOffset+=l,r.bufferViews.push(T),{id:r.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){let s=this,n=s.json;return n.bufferViews||(n.bufferViews=[]),new Promise(function(t){let i=new FileReader;i.readAsArrayBuffer(e),i.onloadend=function(){let r=Y(i.result),o={buffer:s.processBuffer(r),byteOffset:s.byteOffset,byteLength:r.byteLength};s.byteOffset+=r.byteLength,t(n.bufferViews.push(o)-1)}})}processAccessor(e,s,n,t){let i=this.json,r={1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",9:"MAT3",16:"MAT4"},o;if(e.array.constructor===Float32Array)o=y.FLOAT;else if(e.array.constructor===Int32Array)o=y.INT;else if(e.array.constructor===Uint32Array)o=y.UNSIGNED_INT;else if(e.array.constructor===Int16Array)o=y.SHORT;else if(e.array.constructor===Uint16Array)o=y.UNSIGNED_SHORT;else if(e.array.constructor===Int8Array)o=y.BYTE;else if(e.array.constructor===Uint8Array)o=y.UNSIGNED_BYTE;else throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: "+e.array.constructor.name);if(n===void 0&&(n=0),(t===void 0||t===1/0)&&(t=e.count),t===0)return null;let c=Ge(e,n,t),l;s!==void 0&&(l=e===s.index?y.ELEMENT_ARRAY_BUFFER:y.ARRAY_BUFFER);let h=this.processBufferView(e,o,n,t,l),u={bufferView:h.id,byteOffset:h.byteOffset,componentType:o,count:t,max:c.max,min:c.min,type:r[e.itemSize]};return e.normalized===!0&&(u.normalized=!0),i.accessors||(i.accessors=[]),i.accessors.push(u)-1}processImage(e,s,n,t="image/png"){if(e!==null){let i=this,r=i.cache,o=i.json,c=i.options,l=i.pending;r.images.has(e)||r.images.set(e,{});let h=r.images.get(e),u=t+":flipY/"+n.toString();if(h[u]!==void 0)return h[u];o.images||(o.images=[]);let T={mimeType:t},f=Ce();f.width=Math.min(e.width,c.maxTextureSize),f.height=Math.min(e.height,c.maxTextureSize);let p=f.getContext("2d",{willReadFrequently:!0});if(n===!0&&(p.translate(0,f.height),p.scale(1,-1)),e.data!==void 0){s!==Te&&console.error("GLTFExporter: Only RGBAFormat is supported.",s),(e.width>c.maxTextureSize||e.height>c.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",e);let g=new Uint8ClampedArray(e.height*e.width*4);for(let A=0;A<g.length;A+=4)g[A+0]=e.data[A+0],g[A+1]=e.data[A+1],g[A+2]=e.data[A+2],g[A+3]=e.data[A+3];p.putImageData(new ImageData(g,e.width,e.height),0,0)}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas)p.drawImage(e,0,0,f.width,f.height);else throw new Error("THREE.GLTFExporter: Invalid image type. Use HTMLImageElement, HTMLCanvasElement, ImageBitmap or OffscreenCanvas.");c.binary===!0?l.push(Ve(f,t).then(g=>i.processBufferViewImage(g)).then(g=>{T.bufferView=g})):T.uri=Ie.getDataURL(f,t);let d=o.images.push(T)-1;return h[u]=d,d}else throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.")}processSampler(e){let s=this.json;s.samplers||(s.samplers=[]);let n={magFilter:R[e.magFilter],minFilter:R[e.minFilter],wrapS:R[e.wrapS],wrapT:R[e.wrapT]};return s.samplers.push(n)-1}async processTextureAsync(e){let n=this.options,t=this.cache,i=this.json;if(t.textures.has(e))return t.textures.get(e);i.textures||(i.textures=[]),e instanceof D&&(e=await this.decompressTextureAsync(e,n.maxTextureSize));let r=e.userData.mimeType;r==="image/webp"&&(r="image/png");let o={sampler:this.processSampler(e),source:this.processImage(e.image,e.format,e.flipY,r)};e.name&&(o.name=e.name),await this._invokeAllAsync(async function(l){l.writeTexture&&await l.writeTexture(e,o)});let c=i.textures.push(o)-1;return t.textures.set(e,c),c}async processMaterialAsync(e){let s=this.cache,n=this.json;if(s.materials.has(e))return s.materials.get(e);if(e.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;n.materials||(n.materials=[]);let t={pbrMetallicRoughness:{}};e.isMeshStandardMaterial!==!0&&e.isMeshBasicMaterial!==!0&&console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");let i=e.color.toArray().concat([e.opacity]);if(F(i,[1,1,1,1])||(t.pbrMetallicRoughness.baseColorFactor=i),e.isMeshStandardMaterial?(t.pbrMetallicRoughness.metallicFactor=e.metalness,t.pbrMetallicRoughness.roughnessFactor=e.roughness):(t.pbrMetallicRoughness.metallicFactor=0,t.pbrMetallicRoughness.roughnessFactor=1),e.metalnessMap||e.roughnessMap){let o=await this.buildMetalRoughTextureAsync(e.metalnessMap,e.roughnessMap),c={index:await this.processTextureAsync(o),texCoord:o.channel};this.applyTextureTransform(c,o),t.pbrMetallicRoughness.metallicRoughnessTexture=c}if(e.map){let o={index:await this.processTextureAsync(e.map),texCoord:e.map.channel};this.applyTextureTransform(o,e.map),t.pbrMetallicRoughness.baseColorTexture=o}if(e.emissive){let o=e.emissive;if(Math.max(o.r,o.g,o.b)>0&&(t.emissiveFactor=e.emissive.toArray()),e.emissiveMap){let l={index:await this.processTextureAsync(e.emissiveMap),texCoord:e.emissiveMap.channel};this.applyTextureTransform(l,e.emissiveMap),t.emissiveTexture=l}}if(e.normalMap){let o={index:await this.processTextureAsync(e.normalMap),texCoord:e.normalMap.channel};e.normalScale&&e.normalScale.x!==1&&(o.scale=e.normalScale.x),this.applyTextureTransform(o,e.normalMap),t.normalTexture=o}if(e.aoMap){let o={index:await this.processTextureAsync(e.aoMap),texCoord:e.aoMap.channel};e.aoMapIntensity!==1&&(o.strength=e.aoMapIntensity),this.applyTextureTransform(o,e.aoMap),t.occlusionTexture=o}e.transparent?t.alphaMode="BLEND":e.alphaTest>0&&(t.alphaMode="MASK",t.alphaCutoff=e.alphaTest),e.side===ce&&(t.doubleSided=!0),e.name!==""&&(t.name=e.name),this.serializeUserData(e,t),await this._invokeAllAsync(async function(o){o.writeMaterialAsync&&await o.writeMaterialAsync(e,t)});let r=n.materials.push(t)-1;return s.materials.set(e,r),r}async processMeshAsync(e){let s=this.cache,n=this.json,t=[e.geometry.uuid];if(Array.isArray(e.material))for(let x=0,w=e.material.length;x<w;x++)t.push(e.material[x].uuid);else t.push(e.material.uuid);let i=t.join(":");if(s.meshes.has(i))return s.meshes.get(i);let r=e.geometry,o;e.isLineSegments?o=y.LINES:e.isLineLoop?o=y.LINE_LOOP:e.isLine?o=y.LINE_STRIP:e.isPoints?o=y.POINTS:o=e.material.wireframe?y.LINES:y.TRIANGLES;let c={},l={},h=[],u=[],T={uv:"TEXCOORD_0",uv1:"TEXCOORD_1",uv2:"TEXCOORD_2",uv3:"TEXCOORD_3",color:"COLOR_0",skinWeight:"WEIGHTS_0",skinIndex:"JOINTS_0"},f=r.getAttribute("normal");f!==void 0&&!this.isNormalizedNormalAttribute(f)&&(console.warn("THREE.GLTFExporter: Creating normalized normal attribute from the non-normalized one."),r.setAttribute("normal",this.createNormalizedNormalAttribute(f)));let p=null;for(let x in r.attributes){if(x.slice(0,5)==="morph")continue;let w=r.attributes[x];if(x=T[x]||x.toUpperCase(),/^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/.test(x)||(x="_"+x),s.attributes.has(this.getUID(w))){l[x]=s.attributes.get(this.getUID(w));continue}p=null;let m=w.array;x==="JOINTS_0"&&!(m instanceof Uint16Array)&&!(m instanceof Uint8Array)?(console.warn('GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.'),p=new S(new Uint16Array(m),w.itemSize,w.normalized)):(m instanceof Uint32Array||m instanceof Int32Array)&&!x.startsWith("_")&&(console.warn(`GLTFExporter: Attribute "${x}" converted to type FLOAT.`),p=z.Utils.toFloat32BufferAttribute(w));let I=this.processAccessor(p||w,r);I!==null&&(x.startsWith("_")||this.detectMeshQuantization(x,w),l[x]=I,s.attributes.set(this.getUID(w),I))}if(f!==void 0&&r.setAttribute("normal",f),Object.keys(l).length===0)return null;if(e.morphTargetInfluences!==void 0&&e.morphTargetInfluences.length>0){let x=[],w=[],M={};if(e.morphTargetDictionary!==void 0)for(let m in e.morphTargetDictionary)M[e.morphTargetDictionary[m]]=m;for(let m=0;m<e.morphTargetInfluences.length;++m){let I={},oe=!1;for(let U in r.morphAttributes){if(U!=="position"&&U!=="normal"){oe||(console.warn("GLTFExporter: Only POSITION and NORMAL morph are supported."),oe=!0);continue}let b=r.morphAttributes[U][m],k=U.toUpperCase(),C=r.attributes[U];if(s.attributes.has(this.getUID(b,!0))){I[k]=s.attributes.get(this.getUID(b,!0));continue}let L=b.clone();if(!r.morphTargetsRelative)for(let E=0,Oe=b.count;E<Oe;E++)for(let _=0;_<b.itemSize;_++)_===0&&L.setX(E,b.getX(E)-C.getX(E)),_===1&&L.setY(E,b.getY(E)-C.getY(E)),_===2&&L.setZ(E,b.getZ(E)-C.getZ(E)),_===3&&L.setW(E,b.getW(E)-C.getW(E));I[k]=this.processAccessor(L,r),s.attributes.set(this.getUID(C,!0),I[k])}u.push(I),x.push(e.morphTargetInfluences[m]),e.morphTargetDictionary!==void 0&&w.push(M[m])}c.weights=x,w.length>0&&(c.extras={},c.extras.targetNames=w)}let d=Array.isArray(e.material);if(d&&r.groups.length===0)return null;let g=!1;if(d&&r.index===null){let x=[];for(let w=0,M=r.attributes.position.count;w<M;w++)x[w]=w;r.setIndex(x),g=!0}let A=d?e.material:[e.material],N=d?r.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let x=0,w=N.length;x<w;x++){let M={mode:o,attributes:l};if(this.serializeUserData(r,M),u.length>0&&(M.targets=u),r.index!==null){let I=this.getUID(r.index);(N[x].start!==void 0||N[x].count!==void 0)&&(I+=":"+N[x].start+":"+N[x].count),s.attributes.has(I)?M.indices=s.attributes.get(I):(M.indices=this.processAccessor(r.index,r,N[x].start,N[x].count),s.attributes.set(I,M.indices)),M.indices===null&&delete M.indices}let m=await this.processMaterialAsync(A[N[x].materialIndex]);m!==null&&(M.material=m),h.push(M)}g===!0&&r.setIndex(null),c.primitives=h,n.meshes||(n.meshes=[]),await this._invokeAllAsync(function(x){x.writeMesh&&x.writeMesh(e,c)});let B=n.meshes.push(c)-1;return s.meshes.set(i,B),B}detectMeshQuantization(e,s){if(this.extensionsUsed[V])return;let n;switch(s.array.constructor){case Int8Array:n="byte";break;case Uint8Array:n="unsigned byte";break;case Int16Array:n="short";break;case Uint16Array:n="unsigned short";break;default:return}s.normalized&&(n+=" normalized");let t=e.split("_",1)[0];be[t]&&be[t].includes(n)&&(this.extensionsUsed[V]=!0,this.extensionsRequired[V]=!0)}processCamera(e){let s=this.json;s.cameras||(s.cameras=[]);let n=e.isOrthographicCamera,t={type:n?"orthographic":"perspective"};return n?t.orthographic={xmag:e.right*2,ymag:e.top*2,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:t.perspective={aspectRatio:e.aspect,yfov:P.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},e.name!==""&&(t.name=e.type),s.cameras.push(t)-1}processAnimation(e,s){let n=this.json,t=this.nodeMap;n.animations||(n.animations=[]),e=z.Utils.mergeMorphTargetTracks(e.clone(),s);let i=e.tracks,r=[],o=[];for(let c=0;c<i.length;++c){let l=i[c],h=v.parseTrackName(l.name),u=v.findNode(s,h.nodeName),T=Se[h.propertyName];if(h.objectName==="bones"&&(u.isSkinnedMesh===!0?u=u.skeleton.getBoneByName(h.objectIndex):u=void 0),!u||!T){console.warn('THREE.GLTFExporter: Could not export animation track "%s".',l.name);continue}let f=1,p=l.values.length/l.times.length;T===Se.morphTargetInfluences&&(p/=u.morphTargetInfluences.length);let d;l.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline===!0?(d="CUBICSPLINE",p/=3):l.getInterpolation()===we?d="STEP":d="LINEAR",o.push({input:this.processAccessor(new S(l.times,f)),output:this.processAccessor(new S(l.values,p)),interpolation:d}),r.push({sampler:o.length-1,target:{node:t.get(u),path:T}})}return n.animations.push({name:e.name||"clip_"+n.animations.length,samplers:o,channels:r}),n.animations.length-1}processSkin(e){let s=this.json,n=this.nodeMap,t=s.nodes[n.get(e)],i=e.skeleton;if(i===void 0)return null;let r=e.skeleton.bones[0];if(r===void 0)return null;let o=[],c=new Float32Array(i.bones.length*16),l=new H;for(let u=0;u<i.bones.length;++u)o.push(n.get(i.bones[u])),l.copy(i.boneInverses[u]),l.multiply(e.bindMatrix).toArray(c,u*16);return s.skins===void 0&&(s.skins=[]),s.skins.push({inverseBindMatrices:this.processAccessor(new S(c,16)),joints:o,skeleton:n.get(r)}),t.skin=s.skins.length-1}async processNodeAsync(e){let s=this.json,n=this.options,t=this.nodeMap;s.nodes||(s.nodes=[]);let i={};if(n.trs){let o=e.quaternion.toArray(),c=e.position.toArray(),l=e.scale.toArray();F(o,[0,0,0,1])||(i.rotation=o),F(c,[0,0,0])||(i.translation=c),F(l,[1,1,1])||(i.scale=l)}else e.matrixAutoUpdate&&e.updateMatrix(),He(e.matrix)===!1&&(i.matrix=e.matrix.elements);if(e.name!==""&&(i.name=String(e.name)),this.serializeUserData(e,i),e.isMesh||e.isLine||e.isPoints){let o=await this.processMeshAsync(e);o!==null&&(i.mesh=o)}else e.isCamera&&(i.camera=this.processCamera(e));e.isSkinnedMesh&&this.skins.push(e);let r=s.nodes.push(i)-1;if(t.set(e,r),e.children.length>0){let o=[];for(let c=0,l=e.children.length;c<l;c++){let h=e.children[c];if(h.visible||n.onlyVisible===!1){let u=await this.processNodeAsync(h);u!==null&&o.push(u)}}o.length>0&&(i.children=o)}return await this._invokeAllAsync(function(o){o.writeNode&&o.writeNode(e,i)}),r}async processSceneAsync(e){let s=this.json,n=this.options;s.scenes||(s.scenes=[],s.scene=0);let t={};e.name!==""&&(t.name=e.name),s.scenes.push(t);let i=[];for(let r=0,o=e.children.length;r<o;r++){let c=e.children[r];if(c.visible||n.onlyVisible===!1){let l=await this.processNodeAsync(c);l!==null&&i.push(l)}}i.length>0&&(t.nodes=i),this.serializeUserData(e,t)}async processObjectsAsync(e){let s=new G;s.name="AuxScene";for(let n=0;n<e.length;n++)s.children.push(e[n]);await this.processSceneAsync(s)}async processInputAsync(e){let s=this.options;e=e instanceof Array?e:[e],await this._invokeAllAsync(function(t){t.beforeParse&&t.beforeParse(e)});let n=[];for(let t=0;t<e.length;t++)e[t]instanceof G?await this.processSceneAsync(e[t]):n.push(e[t]);n.length>0&&await this.processObjectsAsync(n);for(let t=0;t<this.skins.length;++t)this.processSkin(this.skins[t]);for(let t=0;t<s.animations.length;++t)this.processAnimation(s.animations[t],e[0]);await this._invokeAllAsync(function(t){t.afterParse&&t.afterParse(e)})}async _invokeAllAsync(e){for(let s=0,n=this.plugins.length;s<n;s++)await e(this.plugins[s])}},j=class{constructor(e){this.writer=e,this.name="KHR_lights_punctual"}writeNode(e,s){if(!e.isLight)return;if(!e.isDirectionalLight&&!e.isPointLight&&!e.isSpotLight){console.warn("THREE.GLTFExporter: Only directional, point, and spot lights are supported.",e);return}let n=this.writer,t=n.json,i=n.extensionsUsed,r={};e.name&&(r.name=e.name),r.color=e.color.toArray(),r.intensity=e.intensity,e.isDirectionalLight?r.type="directional":e.isPointLight?(r.type="point",e.distance>0&&(r.range=e.distance)):e.isSpotLight&&(r.type="spot",e.distance>0&&(r.range=e.distance),r.spot={},r.spot.innerConeAngle=(1-e.penumbra)*e.angle,r.spot.outerConeAngle=e.angle),e.decay!==void 0&&e.decay!==2&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),e.target&&(e.target.parent!==e||e.target.position.x!==0||e.target.position.y!==0||e.target.position.z!==-1)&&console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),i[this.name]||(t.extensions=t.extensions||{},t.extensions[this.name]={lights:[]},i[this.name]=!0);let o=t.extensions[this.name].lights;o.push(r),s.extensions=s.extensions||{},s.extensions[this.name]={light:o.length-1}}},q=class{constructor(e){this.writer=e,this.name="KHR_materials_unlit"}async writeMaterialAsync(e,s){if(!e.isMeshBasicMaterial)return;let t=this.writer.extensionsUsed;s.extensions=s.extensions||{},s.extensions[this.name]={},t[this.name]=!0,s.pbrMetallicRoughness.metallicFactor=0,s.pbrMetallicRoughness.roughnessFactor=.9}},X=class{constructor(e){this.writer=e,this.name="KHR_materials_clearcoat"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.clearcoat===0)return;let n=this.writer,t=n.extensionsUsed,i={};if(i.clearcoatFactor=e.clearcoat,e.clearcoatMap){let r={index:await n.processTextureAsync(e.clearcoatMap),texCoord:e.clearcoatMap.channel};n.applyTextureTransform(r,e.clearcoatMap),i.clearcoatTexture=r}if(i.clearcoatRoughnessFactor=e.clearcoatRoughness,e.clearcoatRoughnessMap){let r={index:await n.processTextureAsync(e.clearcoatRoughnessMap),texCoord:e.clearcoatRoughnessMap.channel};n.applyTextureTransform(r,e.clearcoatRoughnessMap),i.clearcoatRoughnessTexture=r}if(e.clearcoatNormalMap){let r={index:await n.processTextureAsync(e.clearcoatNormalMap),texCoord:e.clearcoatNormalMap.channel};e.clearcoatNormalScale.x!==1&&(r.scale=e.clearcoatNormalScale.x),n.applyTextureTransform(r,e.clearcoatNormalMap),i.clearcoatNormalTexture=r}s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}},W=class{constructor(e){this.writer=e,this.name="KHR_materials_dispersion"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.dispersion===0)return;let t=this.writer.extensionsUsed,i={};i.dispersion=e.dispersion,s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}},J=class{constructor(e){this.writer=e,this.name="KHR_materials_iridescence"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.iridescence===0)return;let n=this.writer,t=n.extensionsUsed,i={};if(i.iridescenceFactor=e.iridescence,e.iridescenceMap){let r={index:await n.processTextureAsync(e.iridescenceMap),texCoord:e.iridescenceMap.channel};n.applyTextureTransform(r,e.iridescenceMap),i.iridescenceTexture=r}if(i.iridescenceIor=e.iridescenceIOR,i.iridescenceThicknessMinimum=e.iridescenceThicknessRange[0],i.iridescenceThicknessMaximum=e.iridescenceThicknessRange[1],e.iridescenceThicknessMap){let r={index:await n.processTextureAsync(e.iridescenceThicknessMap),texCoord:e.iridescenceThicknessMap.channel};n.applyTextureTransform(r,e.iridescenceThicknessMap),i.iridescenceThicknessTexture=r}s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}},Z=class{constructor(e){this.writer=e,this.name="KHR_materials_transmission"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.transmission===0)return;let n=this.writer,t=n.extensionsUsed,i={};if(i.transmissionFactor=e.transmission,e.transmissionMap){let r={index:await n.processTextureAsync(e.transmissionMap),texCoord:e.transmissionMap.channel};n.applyTextureTransform(r,e.transmissionMap),i.transmissionTexture=r}s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}},Q=class{constructor(e){this.writer=e,this.name="KHR_materials_volume"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.transmission===0)return;let n=this.writer,t=n.extensionsUsed,i={};if(i.thicknessFactor=e.thickness,e.thicknessMap){let r={index:await n.processTextureAsync(e.thicknessMap),texCoord:e.thicknessMap.channel};n.applyTextureTransform(r,e.thicknessMap),i.thicknessTexture=r}e.attenuationDistance!==1/0&&(i.attenuationDistance=e.attenuationDistance),i.attenuationColor=e.attenuationColor.toArray(),s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}},$=class{constructor(e){this.writer=e,this.name="KHR_materials_ior"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.ior===1.5)return;let t=this.writer.extensionsUsed,i={};i.ior=e.ior,s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}},ee=class{constructor(e){this.writer=e,this.name="KHR_materials_specular"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.specularIntensity===1&&e.specularColor.equals(Fe)&&!e.specularIntensityMap&&!e.specularColorMap)return;let n=this.writer,t=n.extensionsUsed,i={};if(e.specularIntensityMap){let r={index:await n.processTextureAsync(e.specularIntensityMap),texCoord:e.specularIntensityMap.channel};n.applyTextureTransform(r,e.specularIntensityMap),i.specularTexture=r}if(e.specularColorMap){let r={index:await n.processTextureAsync(e.specularColorMap),texCoord:e.specularColorMap.channel};n.applyTextureTransform(r,e.specularColorMap),i.specularColorTexture=r}i.specularFactor=e.specularIntensity,i.specularColorFactor=e.specularColor.toArray(),s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}},se=class{constructor(e){this.writer=e,this.name="KHR_materials_sheen"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.sheen==0)return;let n=this.writer,t=n.extensionsUsed,i={};if(e.sheenRoughnessMap){let r={index:await n.processTextureAsync(e.sheenRoughnessMap),texCoord:e.sheenRoughnessMap.channel};n.applyTextureTransform(r,e.sheenRoughnessMap),i.sheenRoughnessTexture=r}if(e.sheenColorMap){let r={index:await n.processTextureAsync(e.sheenColorMap),texCoord:e.sheenColorMap.channel};n.applyTextureTransform(r,e.sheenColorMap),i.sheenColorTexture=r}i.sheenRoughnessFactor=e.sheenRoughness,i.sheenColorFactor=e.sheenColor.toArray(),s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}},te=class{constructor(e){this.writer=e,this.name="KHR_materials_anisotropy"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.anisotropy==0)return;let n=this.writer,t=n.extensionsUsed,i={};if(e.anisotropyMap){let r={index:await n.processTextureAsync(e.anisotropyMap)};n.applyTextureTransform(r,e.anisotropyMap),i.anisotropyTexture=r}i.anisotropyStrength=e.anisotropy,i.anisotropyRotation=e.anisotropyRotation,s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}},ne=class{constructor(e){this.writer=e,this.name="KHR_materials_emissive_strength"}async writeMaterialAsync(e,s){if(!e.isMeshStandardMaterial||e.emissiveIntensity===1)return;let t=this.writer.extensionsUsed,i={};i.emissiveStrength=e.emissiveIntensity,s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}},ie=class{constructor(e){this.writer=e,this.name="EXT_materials_bump"}async writeMaterialAsync(e,s){if(!e.isMeshStandardMaterial||e.bumpScale===1&&!e.bumpMap)return;let n=this.writer,t=n.extensionsUsed,i={};if(e.bumpMap){let r={index:await n.processTextureAsync(e.bumpMap),texCoord:e.bumpMap.channel};n.applyTextureTransform(r,e.bumpMap),i.bumpTexture=r}i.bumpFactor=e.bumpScale,s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}},re=class{constructor(e){this.writer=e,this.name="EXT_mesh_gpu_instancing"}writeNode(e,s){if(!e.isInstancedMesh)return;let n=this.writer,t=e,i=new Float32Array(t.count*3),r=new Float32Array(t.count*4),o=new Float32Array(t.count*3),c=new H,l=new O,h=new Ee,u=new O;for(let f=0;f<t.count;f++)t.getMatrixAt(f,c),c.decompose(l,h,u),l.toArray(i,f*3),h.toArray(r,f*4),u.toArray(o,f*3);let T={TRANSLATION:n.processAccessor(new S(i,3)),ROTATION:n.processAccessor(new S(r,4)),SCALE:n.processAccessor(new S(o,3))};t.instanceColor&&(T._COLOR_0=n.processAccessor(t.instanceColor)),s.extensions=s.extensions||{},s.extensions[this.name]={attributes:T},n.extensionsUsed[this.name]=!0,n.extensionsRequired[this.name]=!0}};z.Utils={insertKeyframe:function(a,e){let n=a.getValueSize(),t=new a.TimeBufferType(a.times.length+1),i=new a.ValueBufferType(a.values.length+n),r=a.createInterpolant(new a.ValueBufferType(n)),o;if(a.times.length===0){t[0]=e;for(let c=0;c<n;c++)i[c]=0;o=0}else if(e<a.times[0]){if(Math.abs(a.times[0]-e)<.001)return 0;t[0]=e,t.set(a.times,1),i.set(r.evaluate(e),0),i.set(a.values,n),o=0}else if(e>a.times[a.times.length-1]){if(Math.abs(a.times[a.times.length-1]-e)<.001)return a.times.length-1;t[t.length-1]=e,t.set(a.times,0),i.set(a.values,0),i.set(r.evaluate(e),a.values.length),o=t.length-1}else for(let c=0;c<a.times.length;c++){if(Math.abs(a.times[c]-e)<.001)return c;if(a.times[c]<e&&a.times[c+1]>e){t.set(a.times.slice(0,c+1),0),t[c+1]=e,t.set(a.times.slice(c+1),c+2),i.set(a.values.slice(0,(c+1)*n),0),i.set(r.evaluate(e),(c+1)*n),i.set(a.values.slice((c+1)*n),(c+2)*n),o=c+1;break}}return a.times=t,a.values=i,o},mergeMorphTargetTracks:function(a,e){let s=[],n={},t=a.tracks;for(let i=0;i<t.length;++i){let r=t[i],o=v.parseTrackName(r.name),c=v.findNode(e,o.nodeName);if(o.propertyName!=="morphTargetInfluences"||o.propertyIndex===void 0){s.push(r);continue}if(r.createInterpolant!==r.InterpolantFactoryMethodDiscrete&&r.createInterpolant!==r.InterpolantFactoryMethodLinear){if(r.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline)throw new Error("THREE.GLTFExporter: Cannot merge tracks with glTF CUBICSPLINE interpolation.");console.warn("THREE.GLTFExporter: Morph target interpolation mode not yet supported. Using LINEAR instead."),r=r.clone(),r.setInterpolation(me)}let l=c.morphTargetInfluences.length,h=c.morphTargetDictionary[o.propertyIndex];if(h===void 0)throw new Error("THREE.GLTFExporter: Morph target name not found: "+o.propertyIndex);let u;if(n[c.uuid]===void 0){u=r.clone();let f=new u.ValueBufferType(l*u.times.length);for(let p=0;p<u.times.length;p++)f[p*l+h]=u.values[p];u.name=(o.nodeName||"")+".morphTargetInfluences",u.values=f,n[c.uuid]=u,s.push(u);continue}let T=r.createInterpolant(new r.ValueBufferType(1));u=n[c.uuid];for(let f=0;f<u.times.length;f++)u.values[f*l+h]=T.evaluate(u.times[f]);for(let f=0;f<r.times.length;f++){let p=this.insertKeyframe(u,r.times[f]);u.values[p*l+h]=r.values[f]}}return a.tracks=s,a},toFloat32BufferAttribute:function(a){let e=new S(new Float32Array(a.count*a.itemSize),a.itemSize,!1);if(!a.normalized&&!a.isInterleavedBufferAttribute)return e.array.set(a.array),e;for(let s=0,n=a.count;s<n;s++)for(let t=0;t<a.itemSize;t++)e.setComponent(s,t,a.getComponent(s,t));return e}};export{z as GLTFExporter};
|