@playcanvas/web-components 0.2.2 → 0.2.4

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/dist/pwc.cjs CHANGED
@@ -15,11 +15,11 @@ class AsyncElement extends HTMLElement {
15
15
  }
16
16
  get closestApp() {
17
17
  var _a;
18
- return (_a = this.parentElement) === null || _a === undefined ? undefined : _a.closest('pc-app');
18
+ return (_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.closest('pc-app');
19
19
  }
20
20
  get closestEntity() {
21
21
  var _a;
22
- return (_a = this.parentElement) === null || _a === undefined ? undefined : _a.closest('pc-entity');
22
+ return (_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.closest('pc-entity');
23
23
  }
24
24
  /**
25
25
  * Called when the element is fully initialized and ready.
@@ -757,7 +757,7 @@ class EntityElement extends AsyncElement {
757
757
  if (!this.entity)
758
758
  return;
759
759
  const closestEntity = this.closestEntity;
760
- if (closestEntity === null || closestEntity === undefined ? undefined : closestEntity.entity) {
760
+ if (closestEntity === null || closestEntity === void 0 ? void 0 : closestEntity.entity) {
761
761
  closestEntity.entity.addChild(this.entity);
762
762
  }
763
763
  else {
@@ -979,11 +979,187 @@ class EntityElement extends AsyncElement {
979
979
  }
980
980
  hasListeners(type) {
981
981
  var _a;
982
- return Boolean((_a = this._listeners[type]) === null || _a === undefined ? undefined : _a.length);
982
+ return Boolean((_a = this._listeners[type]) === null || _a === void 0 ? void 0 : _a.length);
983
983
  }
984
984
  }
985
985
  customElements.define('pc-entity', EntityElement);
986
986
 
987
+ // This file is part of meshoptimizer library and is distributed under the terms of MIT License.
988
+ // Copyright (C) 2016-2022, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
989
+ var MeshoptDecoder = (function() {
990
+
991
+ // Built with clang version 14.0.4
992
+ // Built from meshoptimizer 0.18
993
+ var wasm_base = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";
994
+ var wasm_simd = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";
995
+
996
+ var detector = new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]);
997
+ var wasmpack = new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);
998
+
999
+ if (typeof WebAssembly !== 'object') {
1000
+ return {
1001
+ supported: false,
1002
+ };
1003
+ }
1004
+
1005
+ var wasm = WebAssembly.validate(detector) ? wasm_simd : wasm_base;
1006
+
1007
+ var instance;
1008
+
1009
+ var ready =
1010
+ WebAssembly.instantiate(unpack(wasm), {})
1011
+ .then(function(result) {
1012
+ instance = result.instance;
1013
+ instance.exports.__wasm_call_ctors();
1014
+ });
1015
+
1016
+ function unpack(data) {
1017
+ var result = new Uint8Array(data.length);
1018
+ for (var i = 0; i < data.length; ++i) {
1019
+ var ch = data.charCodeAt(i);
1020
+ result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
1021
+ }
1022
+ var write = 0;
1023
+ for (var i = 0; i < data.length; ++i) {
1024
+ result[write++] = (result[i] < 60) ? wasmpack[result[i]] : (result[i] - 60) * 64 + result[++i];
1025
+ }
1026
+ return result.buffer.slice(0, write);
1027
+ }
1028
+
1029
+ function decode(fun, target, count, size, source, filter) {
1030
+ var sbrk = instance.exports.sbrk;
1031
+ var count4 = (count + 3) & -4;
1032
+ var tp = sbrk(count4 * size);
1033
+ var sp = sbrk(source.length);
1034
+ var heap = new Uint8Array(instance.exports.memory.buffer);
1035
+ heap.set(source, sp);
1036
+ var res = fun(tp, count, size, sp, source.length);
1037
+ if (res == 0 && filter) {
1038
+ filter(tp, count4, size);
1039
+ }
1040
+ target.set(heap.subarray(tp, tp + count * size));
1041
+ sbrk(tp - sbrk(0));
1042
+ if (res != 0) {
1043
+ throw new Error("Malformed buffer data: " + res);
1044
+ }
1045
+ }
1046
+
1047
+ var filters = {
1048
+ NONE: "",
1049
+ OCTAHEDRAL: "meshopt_decodeFilterOct",
1050
+ QUATERNION: "meshopt_decodeFilterQuat",
1051
+ EXPONENTIAL: "meshopt_decodeFilterExp",
1052
+ };
1053
+
1054
+ var decoders = {
1055
+ ATTRIBUTES: "meshopt_decodeVertexBuffer",
1056
+ TRIANGLES: "meshopt_decodeIndexBuffer",
1057
+ INDICES: "meshopt_decodeIndexSequence",
1058
+ };
1059
+
1060
+ var workers = [];
1061
+ var requestId = 0;
1062
+
1063
+ function createWorker(url) {
1064
+ var worker = {
1065
+ object: new Worker(url),
1066
+ pending: 0,
1067
+ requests: {}
1068
+ };
1069
+
1070
+ worker.object.onmessage = function(event) {
1071
+ var data = event.data;
1072
+
1073
+ worker.pending -= data.count;
1074
+ worker.requests[data.id][data.action](data.value);
1075
+
1076
+ delete worker.requests[data.id];
1077
+ };
1078
+
1079
+ return worker;
1080
+ }
1081
+
1082
+ function initWorkers(count) {
1083
+ var source =
1084
+ "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" +
1085
+ ".then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });" +
1086
+ "self.onmessage = workerProcess;" +
1087
+ decode.toString() + workerProcess.toString();
1088
+
1089
+ var blob = new Blob([source], {type: 'text/javascript'});
1090
+ var url = URL.createObjectURL(blob);
1091
+
1092
+ for (var i = 0; i < count; ++i) {
1093
+ workers[i] = createWorker(url);
1094
+ }
1095
+
1096
+ URL.revokeObjectURL(url);
1097
+ }
1098
+
1099
+ function decodeWorker(count, size, source, mode, filter) {
1100
+ var worker = workers[0];
1101
+
1102
+ for (var i = 1; i < workers.length; ++i) {
1103
+ if (workers[i].pending < worker.pending) {
1104
+ worker = workers[i];
1105
+ }
1106
+ }
1107
+
1108
+ return new Promise(function (resolve, reject) {
1109
+ var data = new Uint8Array(source);
1110
+ var id = requestId++;
1111
+
1112
+ worker.pending += count;
1113
+ worker.requests[id] = { resolve: resolve, reject: reject };
1114
+ worker.object.postMessage({ id: id, count: count, size: size, source: data, mode: mode, filter: filter }, [ data.buffer ]);
1115
+ });
1116
+ }
1117
+
1118
+ function workerProcess(event) {
1119
+ ready.then(function() {
1120
+ var data = event.data;
1121
+ try {
1122
+ var target = new Uint8Array(data.count * data.size);
1123
+ decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);
1124
+ self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [ target.buffer ]);
1125
+ } catch (error) {
1126
+ self.postMessage({ id: data.id, count: data.count, action: "reject", value: error });
1127
+ }
1128
+ });
1129
+ }
1130
+
1131
+ return {
1132
+ ready: ready,
1133
+ supported: true,
1134
+ useWorkers: function(count) {
1135
+ initWorkers(count);
1136
+ },
1137
+ decodeVertexBuffer: function(target, count, size, source, filter) {
1138
+ decode(instance.exports.meshopt_decodeVertexBuffer, target, count, size, source, instance.exports[filters[filter]]);
1139
+ },
1140
+ decodeIndexBuffer: function(target, count, size, source) {
1141
+ decode(instance.exports.meshopt_decodeIndexBuffer, target, count, size, source);
1142
+ },
1143
+ decodeIndexSequence: function(target, count, size, source) {
1144
+ decode(instance.exports.meshopt_decodeIndexSequence, target, count, size, source);
1145
+ },
1146
+ decodeGltfBuffer: function(target, count, size, source, mode, filter) {
1147
+ decode(instance.exports[decoders[mode]], target, count, size, source, instance.exports[filters[filter]]);
1148
+ },
1149
+ decodeGltfBufferAsync: function(count, size, source, mode, filter) {
1150
+ if (workers.length > 0) {
1151
+ return decodeWorker(count, size, source, decoders[mode], filters[filter]);
1152
+ }
1153
+
1154
+ return ready.then(function() {
1155
+ var target = new Uint8Array(count * size);
1156
+ decode(instance.exports[decoders[mode]], target, count, size, source, instance.exports[filters[filter]]);
1157
+ return target;
1158
+ });
1159
+ }
1160
+ };
1161
+ })();
1162
+
987
1163
  const extToType = new Map([
988
1164
  ['bin', 'binary'],
989
1165
  ['css', 'css'],
@@ -1003,6 +1179,27 @@ const extToType = new Map([
1003
1179
  ['vert', 'shader'],
1004
1180
  ['webp', 'texture']
1005
1181
  ]);
1182
+ // provide buffer view callback so we can handle models compressed with MeshOptimizer
1183
+ // https://github.com/zeux/meshoptimizer
1184
+ const processBufferView = (gltfBuffer, buffers, continuation) => {
1185
+ if (gltfBuffer.extensions && gltfBuffer.extensions.EXT_meshopt_compression) {
1186
+ const extensionDef = gltfBuffer.extensions.EXT_meshopt_compression;
1187
+ Promise.all([MeshoptDecoder.ready, buffers[extensionDef.buffer]]).then((promiseResult) => {
1188
+ const buffer = promiseResult[1];
1189
+ const byteOffset = extensionDef.byteOffset || 0;
1190
+ const byteLength = extensionDef.byteLength || 0;
1191
+ const count = extensionDef.count;
1192
+ const stride = extensionDef.byteStride;
1193
+ const result = new Uint8Array(count * stride);
1194
+ const source = new Uint8Array(buffer.buffer, buffer.byteOffset + byteOffset, byteLength);
1195
+ MeshoptDecoder.decodeGltfBuffer(result, count, stride, source, extensionDef.mode, extensionDef.filter);
1196
+ continuation(null, result);
1197
+ });
1198
+ }
1199
+ else {
1200
+ continuation(null, null);
1201
+ }
1202
+ };
1006
1203
  /**
1007
1204
  * The AssetElement interface provides properties and methods for manipulating
1008
1205
  * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-asset/ | `<pc-asset>`} elements.
@@ -1029,13 +1226,23 @@ class AssetElement extends HTMLElement {
1029
1226
  // If no type is specified, try to infer it from the file extension.
1030
1227
  if (!type) {
1031
1228
  const ext = src.split('.').pop();
1032
- type = (_a = extToType.get(ext || '')) !== null && _a !== undefined ? _a : null;
1229
+ type = (_a = extToType.get(ext || '')) !== null && _a !== void 0 ? _a : null;
1033
1230
  }
1034
1231
  if (!type) {
1035
1232
  console.warn(`Unsupported asset type: ${src}`);
1036
1233
  return;
1037
1234
  }
1038
- this.asset = new playcanvas.Asset(id, type, { url: src });
1235
+ if (type === 'container') {
1236
+ this.asset = new playcanvas.Asset(id, type, { url: src }, undefined, {
1237
+ // @ts-ignore TODO no definition in pc
1238
+ bufferView: {
1239
+ processAsync: processBufferView.bind(this)
1240
+ }
1241
+ });
1242
+ }
1243
+ else {
1244
+ this.asset = new playcanvas.Asset(id, type, { url: src });
1245
+ }
1039
1246
  this.asset.preload = !this._lazy;
1040
1247
  }
1041
1248
  destroyAsset() {
@@ -1063,7 +1270,7 @@ class AssetElement extends HTMLElement {
1063
1270
  }
1064
1271
  static get(id) {
1065
1272
  const assetElement = document.querySelector(`pc-asset[id="${id}"]`);
1066
- return assetElement === null || assetElement === undefined ? undefined : assetElement.asset;
1273
+ return assetElement === null || assetElement === void 0 ? void 0 : assetElement.asset;
1067
1274
  }
1068
1275
  static get observedAttributes() {
1069
1276
  return ['lazy'];
@@ -1110,7 +1317,7 @@ class ComponentElement extends AsyncElement {
1110
1317
  initComponent() { }
1111
1318
  async connectedCallback() {
1112
1319
  var _a;
1113
- await ((_a = this.closestApp) === null || _a === undefined ? undefined : _a.ready());
1320
+ await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
1114
1321
  await this.addComponent();
1115
1322
  this.initComponent();
1116
1323
  this._onReady();
@@ -1241,7 +1448,7 @@ class CameraComponentElement extends ComponentElement {
1241
1448
  }
1242
1449
  get xrAvailable() {
1243
1450
  var _a;
1244
- const xrManager = (_a = this.component) === null || _a === undefined ? undefined : _a.system.app.xr;
1451
+ const xrManager = (_a = this.component) === null || _a === void 0 ? void 0 : _a.system.app.xr;
1245
1452
  return xrManager && xrManager.supported && xrManager.isAvailable(playcanvas.XRTYPE_VR);
1246
1453
  }
1247
1454
  /**
@@ -1572,7 +1779,7 @@ class CameraComponentElement extends ComponentElement {
1572
1779
  var _a;
1573
1780
  this._tonemap = value;
1574
1781
  if (this.component) {
1575
- this.component.toneMapping = (_a = tonemaps.get(value)) !== null && _a !== undefined ? _a : playcanvas.TONEMAP_NONE;
1782
+ this.component.toneMapping = (_a = tonemaps.get(value)) !== null && _a !== void 0 ? _a : playcanvas.TONEMAP_NONE;
1576
1783
  }
1577
1784
  }
1578
1785
  /**
@@ -2108,64 +2315,6 @@ class ElementComponentElement extends ComponentElement {
2108
2315
  }
2109
2316
  customElements.define('pc-element', ElementComponentElement);
2110
2317
 
2111
- /**
2112
- * The SplatComponentElement interface provides properties and methods for manipulating
2113
- * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-splat/ | `<pc-splat>`} elements.
2114
- * The SplatComponentElement interface also inherits the properties and methods of the
2115
- * {@link HTMLElement} interface.
2116
- *
2117
- * @category Components
2118
- */
2119
- class SplatComponentElement extends ComponentElement {
2120
- /** @ignore */
2121
- constructor() {
2122
- super('gsplat');
2123
- this._asset = '';
2124
- }
2125
- getInitialComponentData() {
2126
- return {
2127
- asset: AssetElement.get(this._asset)
2128
- };
2129
- }
2130
- /**
2131
- * Gets the underlying PlayCanvas splat component.
2132
- * @returns The splat component.
2133
- */
2134
- get component() {
2135
- return super.component;
2136
- }
2137
- /**
2138
- * Sets id of the `pc-asset` to use for the splat.
2139
- * @param value - The asset ID.
2140
- */
2141
- set asset(value) {
2142
- this._asset = value;
2143
- const asset = AssetElement.get(value);
2144
- if (this.component && asset) {
2145
- this.component.asset = asset;
2146
- }
2147
- }
2148
- /**
2149
- * Gets the id of the `pc-asset` to use for the splat.
2150
- * @returns The asset ID.
2151
- */
2152
- get asset() {
2153
- return this._asset;
2154
- }
2155
- static get observedAttributes() {
2156
- return [...super.observedAttributes, 'asset'];
2157
- }
2158
- attributeChangedCallback(name, _oldValue, newValue) {
2159
- super.attributeChangedCallback(name, _oldValue, newValue);
2160
- switch (name) {
2161
- case 'asset':
2162
- this.asset = newValue;
2163
- break;
2164
- }
2165
- }
2166
- }
2167
- customElements.define('pc-splat', SplatComponentElement);
2168
-
2169
2318
  const shadowTypes = new Map([
2170
2319
  ['pcf1-16f', playcanvas.SHADOW_PCF1_16F],
2171
2320
  ['pcf1-32f', playcanvas.SHADOW_PCF1_32F],
@@ -2434,7 +2583,7 @@ class LightComponentElement extends ComponentElement {
2434
2583
  var _a;
2435
2584
  this._shadowType = value;
2436
2585
  if (this.component) {
2437
- this.component.shadowType = (_a = shadowTypes.get(value)) !== null && _a !== undefined ? _a : playcanvas.SHADOW_PCF3_32F;
2586
+ this.component.shadowType = (_a = shadowTypes.get(value)) !== null && _a !== void 0 ? _a : playcanvas.SHADOW_PCF3_32F;
2438
2587
  }
2439
2588
  }
2440
2589
  /**
@@ -2551,6 +2700,138 @@ class LightComponentElement extends ComponentElement {
2551
2700
  }
2552
2701
  customElements.define('pc-light', LightComponentElement);
2553
2702
 
2703
+ /**
2704
+ * The ParticleSystemComponentElement interface provides properties and methods for manipulating
2705
+ * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-particles/ | `<pc-particles>`} elements.
2706
+ * The ParticleSystemComponentElement interface also inherits the properties and methods of the
2707
+ * {@link HTMLElement} interface.
2708
+ *
2709
+ * @category Components
2710
+ */
2711
+ class ParticleSystemComponentElement extends ComponentElement {
2712
+ /** @ignore */
2713
+ constructor() {
2714
+ super('particlesystem');
2715
+ this._asset = '';
2716
+ }
2717
+ getInitialComponentData() {
2718
+ var _a;
2719
+ const asset = AssetElement.get(this._asset);
2720
+ if (!asset) {
2721
+ return {};
2722
+ }
2723
+ if (asset.resource.colorMapAsset) {
2724
+ const id = asset.resource.colorMapAsset;
2725
+ const colorMapAsset = (_a = AssetElement.get(id)) === null || _a === void 0 ? void 0 : _a.id;
2726
+ if (colorMapAsset) {
2727
+ asset.resource.colorMapAsset = colorMapAsset;
2728
+ }
2729
+ }
2730
+ return asset.resource;
2731
+ }
2732
+ /**
2733
+ * Gets the underlying PlayCanvas particle system component.
2734
+ * @returns The particle system component.
2735
+ */
2736
+ get component() {
2737
+ return super.component;
2738
+ }
2739
+ applyConfig(resource) {
2740
+ if (!this.component) {
2741
+ return;
2742
+ }
2743
+ // Set all the config properties on the component
2744
+ for (const key in resource) {
2745
+ if (resource.hasOwnProperty(key)) {
2746
+ this.component[key] = resource[key];
2747
+ }
2748
+ }
2749
+ }
2750
+ async _loadAsset() {
2751
+ var _a;
2752
+ const appElement = await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
2753
+ const app = appElement === null || appElement === void 0 ? void 0 : appElement.app;
2754
+ const asset = AssetElement.get(this._asset);
2755
+ if (!asset) {
2756
+ return;
2757
+ }
2758
+ if (asset.loaded) {
2759
+ this.applyConfig(asset.resource);
2760
+ }
2761
+ else {
2762
+ asset.once('load', () => {
2763
+ this.applyConfig(asset.resource);
2764
+ });
2765
+ app.assets.load(asset);
2766
+ }
2767
+ }
2768
+ /**
2769
+ * Sets the id of the `pc-asset` to use for the model.
2770
+ * @param value - The asset ID.
2771
+ */
2772
+ set asset(value) {
2773
+ this._asset = value;
2774
+ if (this.isConnected) {
2775
+ this._loadAsset();
2776
+ }
2777
+ }
2778
+ /**
2779
+ * Gets the id of the `pc-asset` to use for the model.
2780
+ * @returns The asset ID.
2781
+ */
2782
+ get asset() {
2783
+ return this._asset;
2784
+ }
2785
+ // Control methods
2786
+ /**
2787
+ * Starts playing the particle system
2788
+ */
2789
+ play() {
2790
+ if (this.component) {
2791
+ this.component.play();
2792
+ }
2793
+ }
2794
+ /**
2795
+ * Pauses the particle system
2796
+ */
2797
+ pause() {
2798
+ if (this.component) {
2799
+ this.component.pause();
2800
+ }
2801
+ }
2802
+ /**
2803
+ * Resets the particle system
2804
+ */
2805
+ reset() {
2806
+ if (this.component) {
2807
+ this.component.reset();
2808
+ }
2809
+ }
2810
+ /**
2811
+ * Stops the particle system
2812
+ */
2813
+ stop() {
2814
+ if (this.component) {
2815
+ this.component.stop();
2816
+ }
2817
+ }
2818
+ static get observedAttributes() {
2819
+ return [
2820
+ ...super.observedAttributes,
2821
+ 'asset'
2822
+ ];
2823
+ }
2824
+ attributeChangedCallback(name, _oldValue, newValue) {
2825
+ super.attributeChangedCallback(name, _oldValue, newValue);
2826
+ switch (name) {
2827
+ case 'asset':
2828
+ this.asset = newValue;
2829
+ break;
2830
+ }
2831
+ }
2832
+ }
2833
+ customElements.define('pc-particles', ParticleSystemComponentElement);
2834
+
2554
2835
  /**
2555
2836
  * The MaterialElement interface provides properties and methods for manipulating
2556
2837
  * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-material/ | `<pc-material>`} elements.
@@ -2641,7 +2922,7 @@ class MaterialElement extends HTMLElement {
2641
2922
  }
2642
2923
  static get(id) {
2643
2924
  const materialElement = document.querySelector(`pc-material[id="${id}"]`);
2644
- return materialElement === null || materialElement === undefined ? undefined : materialElement.material;
2925
+ return materialElement === null || materialElement === void 0 ? void 0 : materialElement.material;
2645
2926
  }
2646
2927
  static get observedAttributes() {
2647
2928
  return ['diffuse', 'diffuse-map', 'metalness-map', 'normal-map', 'roughness-map'];
@@ -3321,7 +3602,7 @@ class ScriptComponentElement extends ComponentElement {
3321
3602
  disconnectedCallback() {
3322
3603
  var _a;
3323
3604
  this.observer.disconnect();
3324
- (_a = super.disconnectedCallback) === null || _a === undefined ? undefined : _a.call(this);
3605
+ (_a = super.disconnectedCallback) === null || _a === void 0 ? void 0 : _a.call(this);
3325
3606
  }
3326
3607
  /**
3327
3608
  * Gets the underlying PlayCanvas script component.
@@ -3636,7 +3917,7 @@ class SoundSlotElement extends AsyncElement {
3636
3917
  }
3637
3918
  async connectedCallback() {
3638
3919
  var _a;
3639
- await ((_a = this.soundElement) === null || _a === undefined ? undefined : _a.ready());
3920
+ await ((_a = this.soundElement) === null || _a === void 0 ? void 0 : _a.ready());
3640
3921
  const options = {
3641
3922
  autoPlay: this._autoPlay,
3642
3923
  loop: this._loop,
@@ -3650,7 +3931,6 @@ class SoundSlotElement extends AsyncElement {
3650
3931
  }
3651
3932
  this.soundSlot = this.soundElement.component.addSlot(this._name, options);
3652
3933
  this.asset = this._asset;
3653
- this.soundSlot.play();
3654
3934
  this._onReady();
3655
3935
  }
3656
3936
  disconnectedCallback() {
@@ -3672,7 +3952,7 @@ class SoundSlotElement extends AsyncElement {
3672
3952
  var _a;
3673
3953
  this._asset = value;
3674
3954
  if (this.soundSlot) {
3675
- const id = (_a = AssetElement.get(value)) === null || _a === undefined ? undefined : _a.id;
3955
+ const id = (_a = AssetElement.get(value)) === null || _a === void 0 ? void 0 : _a.id;
3676
3956
  if (id) {
3677
3957
  this.soundSlot.asset = id;
3678
3958
  }
@@ -3822,13 +4102,16 @@ class SoundSlotElement extends AsyncElement {
3822
4102
  return this._volume;
3823
4103
  }
3824
4104
  static get observedAttributes() {
3825
- return ['asset', 'autoPlay', 'duration', 'loop', 'name', 'overlap', 'pitch', 'startTime', 'volume'];
4105
+ return ['asset', 'auto-play', 'duration', 'loop', 'name', 'overlap', 'pitch', 'start-time', 'volume'];
3826
4106
  }
3827
4107
  attributeChangedCallback(name, _oldValue, newValue) {
3828
4108
  switch (name) {
3829
4109
  case 'asset':
3830
4110
  this.asset = newValue;
3831
4111
  break;
4112
+ case 'auto-play':
4113
+ this.autoPlay = this.hasAttribute('auto-play');
4114
+ break;
3832
4115
  case 'duration':
3833
4116
  this.duration = parseFloat(newValue);
3834
4117
  break;
@@ -3844,7 +4127,7 @@ class SoundSlotElement extends AsyncElement {
3844
4127
  case 'pitch':
3845
4128
  this.pitch = parseFloat(newValue);
3846
4129
  break;
3847
- case 'startTime':
4130
+ case 'start-time':
3848
4131
  this.startTime = parseFloat(newValue);
3849
4132
  break;
3850
4133
  case 'volume':
@@ -3855,6 +4138,64 @@ class SoundSlotElement extends AsyncElement {
3855
4138
  }
3856
4139
  customElements.define('pc-sound', SoundSlotElement);
3857
4140
 
4141
+ /**
4142
+ * The SplatComponentElement interface provides properties and methods for manipulating
4143
+ * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-splat/ | `<pc-splat>`} elements.
4144
+ * The SplatComponentElement interface also inherits the properties and methods of the
4145
+ * {@link HTMLElement} interface.
4146
+ *
4147
+ * @category Components
4148
+ */
4149
+ class SplatComponentElement extends ComponentElement {
4150
+ /** @ignore */
4151
+ constructor() {
4152
+ super('gsplat');
4153
+ this._asset = '';
4154
+ }
4155
+ getInitialComponentData() {
4156
+ return {
4157
+ asset: AssetElement.get(this._asset)
4158
+ };
4159
+ }
4160
+ /**
4161
+ * Gets the underlying PlayCanvas splat component.
4162
+ * @returns The splat component.
4163
+ */
4164
+ get component() {
4165
+ return super.component;
4166
+ }
4167
+ /**
4168
+ * Sets id of the `pc-asset` to use for the splat.
4169
+ * @param value - The asset ID.
4170
+ */
4171
+ set asset(value) {
4172
+ this._asset = value;
4173
+ const asset = AssetElement.get(value);
4174
+ if (this.component && asset) {
4175
+ this.component.asset = asset;
4176
+ }
4177
+ }
4178
+ /**
4179
+ * Gets the id of the `pc-asset` to use for the splat.
4180
+ * @returns The asset ID.
4181
+ */
4182
+ get asset() {
4183
+ return this._asset;
4184
+ }
4185
+ static get observedAttributes() {
4186
+ return [...super.observedAttributes, 'asset'];
4187
+ }
4188
+ attributeChangedCallback(name, _oldValue, newValue) {
4189
+ super.attributeChangedCallback(name, _oldValue, newValue);
4190
+ switch (name) {
4191
+ case 'asset':
4192
+ this.asset = newValue;
4193
+ break;
4194
+ }
4195
+ }
4196
+ }
4197
+ customElements.define('pc-splat', SplatComponentElement);
4198
+
3858
4199
  /**
3859
4200
  * The ModelElement interface provides properties and methods for manipulating
3860
4201
  * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-model/ | `<pc-model>`} elements.
@@ -3900,8 +4241,8 @@ class ModelElement extends AsyncElement {
3900
4241
  async _loadModel() {
3901
4242
  var _a;
3902
4243
  this._unloadModel();
3903
- const appElement = await ((_a = this.closestApp) === null || _a === undefined ? undefined : _a.ready());
3904
- const app = appElement === null || appElement === undefined ? undefined : appElement.app;
4244
+ const appElement = await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
4245
+ const app = appElement === null || appElement === void 0 ? void 0 : appElement.app;
3905
4246
  const asset = AssetElement.get(this._asset);
3906
4247
  if (!asset) {
3907
4248
  return;
@@ -3918,7 +4259,7 @@ class ModelElement extends AsyncElement {
3918
4259
  }
3919
4260
  _unloadModel() {
3920
4261
  var _a;
3921
- (_a = this._entity) === null || _a === undefined ? undefined : _a.destroy();
4262
+ (_a = this._entity) === null || _a === void 0 ? void 0 : _a.destroy();
3922
4263
  this._entity = null;
3923
4264
  }
3924
4265
  /**
@@ -3991,7 +4332,7 @@ class SceneElement extends AsyncElement {
3991
4332
  }
3992
4333
  async connectedCallback() {
3993
4334
  var _a;
3994
- await ((_a = this.closestApp) === null || _a === undefined ? undefined : _a.ready());
4335
+ await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
3995
4336
  this.scene = this.closestApp.app.scene;
3996
4337
  this.updateSceneSettings();
3997
4338
  this._onReady();
@@ -4184,11 +4525,12 @@ class SkyElement extends AsyncElement {
4184
4525
  this._scene.sky.node.setLocalScale(this._scale);
4185
4526
  this._scene.sky.center = this._center;
4186
4527
  this._scene.skyboxIntensity = this._intensity;
4528
+ this._scene.skyboxMip = this._level;
4187
4529
  }
4188
4530
  async _loadSkybox() {
4189
4531
  var _a;
4190
- const appElement = await ((_a = this.closestApp) === null || _a === undefined ? undefined : _a.ready());
4191
- const app = appElement === null || appElement === undefined ? undefined : appElement.app;
4532
+ const appElement = await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
4533
+ const app = appElement === null || appElement === void 0 ? void 0 : appElement.app;
4192
4534
  if (!app) {
4193
4535
  return;
4194
4536
  }
@@ -4211,10 +4553,10 @@ class SkyElement extends AsyncElement {
4211
4553
  var _a, _b;
4212
4554
  if (!this._scene)
4213
4555
  return;
4214
- (_a = this._scene.skybox) === null || _a === undefined ? undefined : _a.destroy();
4556
+ (_a = this._scene.skybox) === null || _a === void 0 ? void 0 : _a.destroy();
4215
4557
  // @ts-ignore
4216
4558
  this._scene.skybox = null;
4217
- (_b = this._scene.envAtlas) === null || _b === undefined ? undefined : _b.destroy();
4559
+ (_b = this._scene.envAtlas) === null || _b === void 0 ? void 0 : _b.destroy();
4218
4560
  // @ts-ignore
4219
4561
  this._scene.envAtlas = null;
4220
4562
  this._scene = null;
@@ -4403,6 +4745,7 @@ exports.ListenerComponentElement = ListenerComponentElement;
4403
4745
  exports.MaterialElement = MaterialElement;
4404
4746
  exports.ModelElement = ModelElement;
4405
4747
  exports.ModuleElement = ModuleElement;
4748
+ exports.ParticleSystemComponentElement = ParticleSystemComponentElement;
4406
4749
  exports.RenderComponentElement = RenderComponentElement;
4407
4750
  exports.RigidBodyComponentElement = RigidBodyComponentElement;
4408
4751
  exports.SceneElement = SceneElement;