@playcanvas/web-components 0.2.2 → 0.2.3

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.js CHANGED
@@ -17,11 +17,11 @@
17
17
  }
18
18
  get closestApp() {
19
19
  var _a;
20
- return (_a = this.parentElement) === null || _a === undefined ? undefined : _a.closest('pc-app');
20
+ return (_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.closest('pc-app');
21
21
  }
22
22
  get closestEntity() {
23
23
  var _a;
24
- return (_a = this.parentElement) === null || _a === undefined ? undefined : _a.closest('pc-entity');
24
+ return (_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.closest('pc-entity');
25
25
  }
26
26
  /**
27
27
  * Called when the element is fully initialized and ready.
@@ -759,7 +759,7 @@
759
759
  if (!this.entity)
760
760
  return;
761
761
  const closestEntity = this.closestEntity;
762
- if (closestEntity === null || closestEntity === undefined ? undefined : closestEntity.entity) {
762
+ if (closestEntity === null || closestEntity === void 0 ? void 0 : closestEntity.entity) {
763
763
  closestEntity.entity.addChild(this.entity);
764
764
  }
765
765
  else {
@@ -981,11 +981,187 @@
981
981
  }
982
982
  hasListeners(type) {
983
983
  var _a;
984
- return Boolean((_a = this._listeners[type]) === null || _a === undefined ? undefined : _a.length);
984
+ return Boolean((_a = this._listeners[type]) === null || _a === void 0 ? void 0 : _a.length);
985
985
  }
986
986
  }
987
987
  customElements.define('pc-entity', EntityElement);
988
988
 
989
+ // This file is part of meshoptimizer library and is distributed under the terms of MIT License.
990
+ // Copyright (C) 2016-2022, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
991
+ var MeshoptDecoder = (function() {
992
+
993
+ // Built with clang version 14.0.4
994
+ // Built from meshoptimizer 0.18
995
+ 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";
996
+ 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";
997
+
998
+ 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]);
999
+ 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]);
1000
+
1001
+ if (typeof WebAssembly !== 'object') {
1002
+ return {
1003
+ supported: false,
1004
+ };
1005
+ }
1006
+
1007
+ var wasm = WebAssembly.validate(detector) ? wasm_simd : wasm_base;
1008
+
1009
+ var instance;
1010
+
1011
+ var ready =
1012
+ WebAssembly.instantiate(unpack(wasm), {})
1013
+ .then(function(result) {
1014
+ instance = result.instance;
1015
+ instance.exports.__wasm_call_ctors();
1016
+ });
1017
+
1018
+ function unpack(data) {
1019
+ var result = new Uint8Array(data.length);
1020
+ for (var i = 0; i < data.length; ++i) {
1021
+ var ch = data.charCodeAt(i);
1022
+ result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
1023
+ }
1024
+ var write = 0;
1025
+ for (var i = 0; i < data.length; ++i) {
1026
+ result[write++] = (result[i] < 60) ? wasmpack[result[i]] : (result[i] - 60) * 64 + result[++i];
1027
+ }
1028
+ return result.buffer.slice(0, write);
1029
+ }
1030
+
1031
+ function decode(fun, target, count, size, source, filter) {
1032
+ var sbrk = instance.exports.sbrk;
1033
+ var count4 = (count + 3) & -4;
1034
+ var tp = sbrk(count4 * size);
1035
+ var sp = sbrk(source.length);
1036
+ var heap = new Uint8Array(instance.exports.memory.buffer);
1037
+ heap.set(source, sp);
1038
+ var res = fun(tp, count, size, sp, source.length);
1039
+ if (res == 0 && filter) {
1040
+ filter(tp, count4, size);
1041
+ }
1042
+ target.set(heap.subarray(tp, tp + count * size));
1043
+ sbrk(tp - sbrk(0));
1044
+ if (res != 0) {
1045
+ throw new Error("Malformed buffer data: " + res);
1046
+ }
1047
+ }
1048
+
1049
+ var filters = {
1050
+ NONE: "",
1051
+ OCTAHEDRAL: "meshopt_decodeFilterOct",
1052
+ QUATERNION: "meshopt_decodeFilterQuat",
1053
+ EXPONENTIAL: "meshopt_decodeFilterExp",
1054
+ };
1055
+
1056
+ var decoders = {
1057
+ ATTRIBUTES: "meshopt_decodeVertexBuffer",
1058
+ TRIANGLES: "meshopt_decodeIndexBuffer",
1059
+ INDICES: "meshopt_decodeIndexSequence",
1060
+ };
1061
+
1062
+ var workers = [];
1063
+ var requestId = 0;
1064
+
1065
+ function createWorker(url) {
1066
+ var worker = {
1067
+ object: new Worker(url),
1068
+ pending: 0,
1069
+ requests: {}
1070
+ };
1071
+
1072
+ worker.object.onmessage = function(event) {
1073
+ var data = event.data;
1074
+
1075
+ worker.pending -= data.count;
1076
+ worker.requests[data.id][data.action](data.value);
1077
+
1078
+ delete worker.requests[data.id];
1079
+ };
1080
+
1081
+ return worker;
1082
+ }
1083
+
1084
+ function initWorkers(count) {
1085
+ var source =
1086
+ "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" +
1087
+ ".then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });" +
1088
+ "self.onmessage = workerProcess;" +
1089
+ decode.toString() + workerProcess.toString();
1090
+
1091
+ var blob = new Blob([source], {type: 'text/javascript'});
1092
+ var url = URL.createObjectURL(blob);
1093
+
1094
+ for (var i = 0; i < count; ++i) {
1095
+ workers[i] = createWorker(url);
1096
+ }
1097
+
1098
+ URL.revokeObjectURL(url);
1099
+ }
1100
+
1101
+ function decodeWorker(count, size, source, mode, filter) {
1102
+ var worker = workers[0];
1103
+
1104
+ for (var i = 1; i < workers.length; ++i) {
1105
+ if (workers[i].pending < worker.pending) {
1106
+ worker = workers[i];
1107
+ }
1108
+ }
1109
+
1110
+ return new Promise(function (resolve, reject) {
1111
+ var data = new Uint8Array(source);
1112
+ var id = requestId++;
1113
+
1114
+ worker.pending += count;
1115
+ worker.requests[id] = { resolve: resolve, reject: reject };
1116
+ worker.object.postMessage({ id: id, count: count, size: size, source: data, mode: mode, filter: filter }, [ data.buffer ]);
1117
+ });
1118
+ }
1119
+
1120
+ function workerProcess(event) {
1121
+ ready.then(function() {
1122
+ var data = event.data;
1123
+ try {
1124
+ var target = new Uint8Array(data.count * data.size);
1125
+ decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);
1126
+ self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [ target.buffer ]);
1127
+ } catch (error) {
1128
+ self.postMessage({ id: data.id, count: data.count, action: "reject", value: error });
1129
+ }
1130
+ });
1131
+ }
1132
+
1133
+ return {
1134
+ ready: ready,
1135
+ supported: true,
1136
+ useWorkers: function(count) {
1137
+ initWorkers(count);
1138
+ },
1139
+ decodeVertexBuffer: function(target, count, size, source, filter) {
1140
+ decode(instance.exports.meshopt_decodeVertexBuffer, target, count, size, source, instance.exports[filters[filter]]);
1141
+ },
1142
+ decodeIndexBuffer: function(target, count, size, source) {
1143
+ decode(instance.exports.meshopt_decodeIndexBuffer, target, count, size, source);
1144
+ },
1145
+ decodeIndexSequence: function(target, count, size, source) {
1146
+ decode(instance.exports.meshopt_decodeIndexSequence, target, count, size, source);
1147
+ },
1148
+ decodeGltfBuffer: function(target, count, size, source, mode, filter) {
1149
+ decode(instance.exports[decoders[mode]], target, count, size, source, instance.exports[filters[filter]]);
1150
+ },
1151
+ decodeGltfBufferAsync: function(count, size, source, mode, filter) {
1152
+ if (workers.length > 0) {
1153
+ return decodeWorker(count, size, source, decoders[mode], filters[filter]);
1154
+ }
1155
+
1156
+ return ready.then(function() {
1157
+ var target = new Uint8Array(count * size);
1158
+ decode(instance.exports[decoders[mode]], target, count, size, source, instance.exports[filters[filter]]);
1159
+ return target;
1160
+ });
1161
+ }
1162
+ };
1163
+ })();
1164
+
989
1165
  const extToType = new Map([
990
1166
  ['bin', 'binary'],
991
1167
  ['css', 'css'],
@@ -1005,6 +1181,27 @@
1005
1181
  ['vert', 'shader'],
1006
1182
  ['webp', 'texture']
1007
1183
  ]);
1184
+ // provide buffer view callback so we can handle models compressed with MeshOptimizer
1185
+ // https://github.com/zeux/meshoptimizer
1186
+ const processBufferView = (gltfBuffer, buffers, continuation) => {
1187
+ if (gltfBuffer.extensions && gltfBuffer.extensions.EXT_meshopt_compression) {
1188
+ const extensionDef = gltfBuffer.extensions.EXT_meshopt_compression;
1189
+ Promise.all([MeshoptDecoder.ready, buffers[extensionDef.buffer]]).then((promiseResult) => {
1190
+ const buffer = promiseResult[1];
1191
+ const byteOffset = extensionDef.byteOffset || 0;
1192
+ const byteLength = extensionDef.byteLength || 0;
1193
+ const count = extensionDef.count;
1194
+ const stride = extensionDef.byteStride;
1195
+ const result = new Uint8Array(count * stride);
1196
+ const source = new Uint8Array(buffer.buffer, buffer.byteOffset + byteOffset, byteLength);
1197
+ MeshoptDecoder.decodeGltfBuffer(result, count, stride, source, extensionDef.mode, extensionDef.filter);
1198
+ continuation(null, result);
1199
+ });
1200
+ }
1201
+ else {
1202
+ continuation(null, null);
1203
+ }
1204
+ };
1008
1205
  /**
1009
1206
  * The AssetElement interface provides properties and methods for manipulating
1010
1207
  * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-asset/ | `<pc-asset>`} elements.
@@ -1031,13 +1228,23 @@
1031
1228
  // If no type is specified, try to infer it from the file extension.
1032
1229
  if (!type) {
1033
1230
  const ext = src.split('.').pop();
1034
- type = (_a = extToType.get(ext || '')) !== null && _a !== undefined ? _a : null;
1231
+ type = (_a = extToType.get(ext || '')) !== null && _a !== void 0 ? _a : null;
1035
1232
  }
1036
1233
  if (!type) {
1037
1234
  console.warn(`Unsupported asset type: ${src}`);
1038
1235
  return;
1039
1236
  }
1040
- this.asset = new playcanvas.Asset(id, type, { url: src });
1237
+ if (type === 'container') {
1238
+ this.asset = new playcanvas.Asset(id, type, { url: src }, undefined, {
1239
+ // @ts-ignore TODO no definition in pc
1240
+ bufferView: {
1241
+ processAsync: processBufferView.bind(this)
1242
+ }
1243
+ });
1244
+ }
1245
+ else {
1246
+ this.asset = new playcanvas.Asset(id, type, { url: src });
1247
+ }
1041
1248
  this.asset.preload = !this._lazy;
1042
1249
  }
1043
1250
  destroyAsset() {
@@ -1065,7 +1272,7 @@
1065
1272
  }
1066
1273
  static get(id) {
1067
1274
  const assetElement = document.querySelector(`pc-asset[id="${id}"]`);
1068
- return assetElement === null || assetElement === undefined ? undefined : assetElement.asset;
1275
+ return assetElement === null || assetElement === void 0 ? void 0 : assetElement.asset;
1069
1276
  }
1070
1277
  static get observedAttributes() {
1071
1278
  return ['lazy'];
@@ -1112,7 +1319,7 @@
1112
1319
  initComponent() { }
1113
1320
  async connectedCallback() {
1114
1321
  var _a;
1115
- await ((_a = this.closestApp) === null || _a === undefined ? undefined : _a.ready());
1322
+ await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
1116
1323
  await this.addComponent();
1117
1324
  this.initComponent();
1118
1325
  this._onReady();
@@ -1243,7 +1450,7 @@
1243
1450
  }
1244
1451
  get xrAvailable() {
1245
1452
  var _a;
1246
- const xrManager = (_a = this.component) === null || _a === undefined ? undefined : _a.system.app.xr;
1453
+ const xrManager = (_a = this.component) === null || _a === void 0 ? void 0 : _a.system.app.xr;
1247
1454
  return xrManager && xrManager.supported && xrManager.isAvailable(playcanvas.XRTYPE_VR);
1248
1455
  }
1249
1456
  /**
@@ -1574,7 +1781,7 @@
1574
1781
  var _a;
1575
1782
  this._tonemap = value;
1576
1783
  if (this.component) {
1577
- this.component.toneMapping = (_a = tonemaps.get(value)) !== null && _a !== undefined ? _a : playcanvas.TONEMAP_NONE;
1784
+ this.component.toneMapping = (_a = tonemaps.get(value)) !== null && _a !== void 0 ? _a : playcanvas.TONEMAP_NONE;
1578
1785
  }
1579
1786
  }
1580
1787
  /**
@@ -2110,64 +2317,6 @@
2110
2317
  }
2111
2318
  customElements.define('pc-element', ElementComponentElement);
2112
2319
 
2113
- /**
2114
- * The SplatComponentElement interface provides properties and methods for manipulating
2115
- * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-splat/ | `<pc-splat>`} elements.
2116
- * The SplatComponentElement interface also inherits the properties and methods of the
2117
- * {@link HTMLElement} interface.
2118
- *
2119
- * @category Components
2120
- */
2121
- class SplatComponentElement extends ComponentElement {
2122
- /** @ignore */
2123
- constructor() {
2124
- super('gsplat');
2125
- this._asset = '';
2126
- }
2127
- getInitialComponentData() {
2128
- return {
2129
- asset: AssetElement.get(this._asset)
2130
- };
2131
- }
2132
- /**
2133
- * Gets the underlying PlayCanvas splat component.
2134
- * @returns The splat component.
2135
- */
2136
- get component() {
2137
- return super.component;
2138
- }
2139
- /**
2140
- * Sets id of the `pc-asset` to use for the splat.
2141
- * @param value - The asset ID.
2142
- */
2143
- set asset(value) {
2144
- this._asset = value;
2145
- const asset = AssetElement.get(value);
2146
- if (this.component && asset) {
2147
- this.component.asset = asset;
2148
- }
2149
- }
2150
- /**
2151
- * Gets the id of the `pc-asset` to use for the splat.
2152
- * @returns The asset ID.
2153
- */
2154
- get asset() {
2155
- return this._asset;
2156
- }
2157
- static get observedAttributes() {
2158
- return [...super.observedAttributes, 'asset'];
2159
- }
2160
- attributeChangedCallback(name, _oldValue, newValue) {
2161
- super.attributeChangedCallback(name, _oldValue, newValue);
2162
- switch (name) {
2163
- case 'asset':
2164
- this.asset = newValue;
2165
- break;
2166
- }
2167
- }
2168
- }
2169
- customElements.define('pc-splat', SplatComponentElement);
2170
-
2171
2320
  const shadowTypes = new Map([
2172
2321
  ['pcf1-16f', playcanvas.SHADOW_PCF1_16F],
2173
2322
  ['pcf1-32f', playcanvas.SHADOW_PCF1_32F],
@@ -2436,7 +2585,7 @@
2436
2585
  var _a;
2437
2586
  this._shadowType = value;
2438
2587
  if (this.component) {
2439
- this.component.shadowType = (_a = shadowTypes.get(value)) !== null && _a !== undefined ? _a : playcanvas.SHADOW_PCF3_32F;
2588
+ this.component.shadowType = (_a = shadowTypes.get(value)) !== null && _a !== void 0 ? _a : playcanvas.SHADOW_PCF3_32F;
2440
2589
  }
2441
2590
  }
2442
2591
  /**
@@ -2553,6 +2702,138 @@
2553
2702
  }
2554
2703
  customElements.define('pc-light', LightComponentElement);
2555
2704
 
2705
+ /**
2706
+ * The ParticleSystemComponentElement interface provides properties and methods for manipulating
2707
+ * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-particles/ | `<pc-particles>`} elements.
2708
+ * The ParticleSystemComponentElement interface also inherits the properties and methods of the
2709
+ * {@link HTMLElement} interface.
2710
+ *
2711
+ * @category Components
2712
+ */
2713
+ class ParticleSystemComponentElement extends ComponentElement {
2714
+ /** @ignore */
2715
+ constructor() {
2716
+ super('particlesystem');
2717
+ this._asset = '';
2718
+ }
2719
+ getInitialComponentData() {
2720
+ var _a;
2721
+ const asset = AssetElement.get(this._asset);
2722
+ if (!asset) {
2723
+ return {};
2724
+ }
2725
+ if (asset.resource.colorMapAsset) {
2726
+ const id = asset.resource.colorMapAsset;
2727
+ const colorMapAsset = (_a = AssetElement.get(id)) === null || _a === void 0 ? void 0 : _a.id;
2728
+ if (colorMapAsset) {
2729
+ asset.resource.colorMapAsset = colorMapAsset;
2730
+ }
2731
+ }
2732
+ return asset.resource;
2733
+ }
2734
+ /**
2735
+ * Gets the underlying PlayCanvas particle system component.
2736
+ * @returns The particle system component.
2737
+ */
2738
+ get component() {
2739
+ return super.component;
2740
+ }
2741
+ applyConfig(resource) {
2742
+ if (!this.component) {
2743
+ return;
2744
+ }
2745
+ // Set all the config properties on the component
2746
+ for (const key in resource) {
2747
+ if (resource.hasOwnProperty(key)) {
2748
+ this.component[key] = resource[key];
2749
+ }
2750
+ }
2751
+ }
2752
+ async _loadAsset() {
2753
+ var _a;
2754
+ const appElement = await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
2755
+ const app = appElement === null || appElement === void 0 ? void 0 : appElement.app;
2756
+ const asset = AssetElement.get(this._asset);
2757
+ if (!asset) {
2758
+ return;
2759
+ }
2760
+ if (asset.loaded) {
2761
+ this.applyConfig(asset.resource);
2762
+ }
2763
+ else {
2764
+ asset.once('load', () => {
2765
+ this.applyConfig(asset.resource);
2766
+ });
2767
+ app.assets.load(asset);
2768
+ }
2769
+ }
2770
+ /**
2771
+ * Sets the id of the `pc-asset` to use for the model.
2772
+ * @param value - The asset ID.
2773
+ */
2774
+ set asset(value) {
2775
+ this._asset = value;
2776
+ if (this.isConnected) {
2777
+ this._loadAsset();
2778
+ }
2779
+ }
2780
+ /**
2781
+ * Gets the id of the `pc-asset` to use for the model.
2782
+ * @returns The asset ID.
2783
+ */
2784
+ get asset() {
2785
+ return this._asset;
2786
+ }
2787
+ // Control methods
2788
+ /**
2789
+ * Starts playing the particle system
2790
+ */
2791
+ play() {
2792
+ if (this.component) {
2793
+ this.component.play();
2794
+ }
2795
+ }
2796
+ /**
2797
+ * Pauses the particle system
2798
+ */
2799
+ pause() {
2800
+ if (this.component) {
2801
+ this.component.pause();
2802
+ }
2803
+ }
2804
+ /**
2805
+ * Resets the particle system
2806
+ */
2807
+ reset() {
2808
+ if (this.component) {
2809
+ this.component.reset();
2810
+ }
2811
+ }
2812
+ /**
2813
+ * Stops the particle system
2814
+ */
2815
+ stop() {
2816
+ if (this.component) {
2817
+ this.component.stop();
2818
+ }
2819
+ }
2820
+ static get observedAttributes() {
2821
+ return [
2822
+ ...super.observedAttributes,
2823
+ 'asset'
2824
+ ];
2825
+ }
2826
+ attributeChangedCallback(name, _oldValue, newValue) {
2827
+ super.attributeChangedCallback(name, _oldValue, newValue);
2828
+ switch (name) {
2829
+ case 'asset':
2830
+ this.asset = newValue;
2831
+ break;
2832
+ }
2833
+ }
2834
+ }
2835
+ customElements.define('pc-particles', ParticleSystemComponentElement);
2836
+
2556
2837
  /**
2557
2838
  * The MaterialElement interface provides properties and methods for manipulating
2558
2839
  * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-material/ | `<pc-material>`} elements.
@@ -2643,7 +2924,7 @@
2643
2924
  }
2644
2925
  static get(id) {
2645
2926
  const materialElement = document.querySelector(`pc-material[id="${id}"]`);
2646
- return materialElement === null || materialElement === undefined ? undefined : materialElement.material;
2927
+ return materialElement === null || materialElement === void 0 ? void 0 : materialElement.material;
2647
2928
  }
2648
2929
  static get observedAttributes() {
2649
2930
  return ['diffuse', 'diffuse-map', 'metalness-map', 'normal-map', 'roughness-map'];
@@ -3323,7 +3604,7 @@
3323
3604
  disconnectedCallback() {
3324
3605
  var _a;
3325
3606
  this.observer.disconnect();
3326
- (_a = super.disconnectedCallback) === null || _a === undefined ? undefined : _a.call(this);
3607
+ (_a = super.disconnectedCallback) === null || _a === void 0 ? void 0 : _a.call(this);
3327
3608
  }
3328
3609
  /**
3329
3610
  * Gets the underlying PlayCanvas script component.
@@ -3638,7 +3919,7 @@
3638
3919
  }
3639
3920
  async connectedCallback() {
3640
3921
  var _a;
3641
- await ((_a = this.soundElement) === null || _a === undefined ? undefined : _a.ready());
3922
+ await ((_a = this.soundElement) === null || _a === void 0 ? void 0 : _a.ready());
3642
3923
  const options = {
3643
3924
  autoPlay: this._autoPlay,
3644
3925
  loop: this._loop,
@@ -3674,7 +3955,7 @@
3674
3955
  var _a;
3675
3956
  this._asset = value;
3676
3957
  if (this.soundSlot) {
3677
- const id = (_a = AssetElement.get(value)) === null || _a === undefined ? undefined : _a.id;
3958
+ const id = (_a = AssetElement.get(value)) === null || _a === void 0 ? void 0 : _a.id;
3678
3959
  if (id) {
3679
3960
  this.soundSlot.asset = id;
3680
3961
  }
@@ -3857,6 +4138,64 @@
3857
4138
  }
3858
4139
  customElements.define('pc-sound', SoundSlotElement);
3859
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
+
3860
4199
  /**
3861
4200
  * The ModelElement interface provides properties and methods for manipulating
3862
4201
  * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-model/ | `<pc-model>`} elements.
@@ -3902,8 +4241,8 @@
3902
4241
  async _loadModel() {
3903
4242
  var _a;
3904
4243
  this._unloadModel();
3905
- const appElement = await ((_a = this.closestApp) === null || _a === undefined ? undefined : _a.ready());
3906
- 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;
3907
4246
  const asset = AssetElement.get(this._asset);
3908
4247
  if (!asset) {
3909
4248
  return;
@@ -3920,7 +4259,7 @@
3920
4259
  }
3921
4260
  _unloadModel() {
3922
4261
  var _a;
3923
- (_a = this._entity) === null || _a === undefined ? undefined : _a.destroy();
4262
+ (_a = this._entity) === null || _a === void 0 ? void 0 : _a.destroy();
3924
4263
  this._entity = null;
3925
4264
  }
3926
4265
  /**
@@ -3993,7 +4332,7 @@
3993
4332
  }
3994
4333
  async connectedCallback() {
3995
4334
  var _a;
3996
- await ((_a = this.closestApp) === null || _a === undefined ? undefined : _a.ready());
4335
+ await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
3997
4336
  this.scene = this.closestApp.app.scene;
3998
4337
  this.updateSceneSettings();
3999
4338
  this._onReady();
@@ -4189,8 +4528,8 @@
4189
4528
  }
4190
4529
  async _loadSkybox() {
4191
4530
  var _a;
4192
- const appElement = await ((_a = this.closestApp) === null || _a === undefined ? undefined : _a.ready());
4193
- const app = appElement === null || appElement === undefined ? undefined : appElement.app;
4531
+ const appElement = await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
4532
+ const app = appElement === null || appElement === void 0 ? void 0 : appElement.app;
4194
4533
  if (!app) {
4195
4534
  return;
4196
4535
  }
@@ -4213,10 +4552,10 @@
4213
4552
  var _a, _b;
4214
4553
  if (!this._scene)
4215
4554
  return;
4216
- (_a = this._scene.skybox) === null || _a === undefined ? undefined : _a.destroy();
4555
+ (_a = this._scene.skybox) === null || _a === void 0 ? void 0 : _a.destroy();
4217
4556
  // @ts-ignore
4218
4557
  this._scene.skybox = null;
4219
- (_b = this._scene.envAtlas) === null || _b === undefined ? undefined : _b.destroy();
4558
+ (_b = this._scene.envAtlas) === null || _b === void 0 ? void 0 : _b.destroy();
4220
4559
  // @ts-ignore
4221
4560
  this._scene.envAtlas = null;
4222
4561
  this._scene = null;
@@ -4405,6 +4744,7 @@
4405
4744
  exports.MaterialElement = MaterialElement;
4406
4745
  exports.ModelElement = ModelElement;
4407
4746
  exports.ModuleElement = ModuleElement;
4747
+ exports.ParticleSystemComponentElement = ParticleSystemComponentElement;
4408
4748
  exports.RenderComponentElement = RenderComponentElement;
4409
4749
  exports.RigidBodyComponentElement = RigidBodyComponentElement;
4410
4750
  exports.SceneElement = SceneElement;