@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.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,
@@ -3672,7 +3953,7 @@ class SoundSlotElement extends AsyncElement {
3672
3953
  var _a;
3673
3954
  this._asset = value;
3674
3955
  if (this.soundSlot) {
3675
- const id = (_a = AssetElement.get(value)) === null || _a === undefined ? undefined : _a.id;
3956
+ const id = (_a = AssetElement.get(value)) === null || _a === void 0 ? void 0 : _a.id;
3676
3957
  if (id) {
3677
3958
  this.soundSlot.asset = id;
3678
3959
  }
@@ -3855,6 +4136,64 @@ class SoundSlotElement extends AsyncElement {
3855
4136
  }
3856
4137
  customElements.define('pc-sound', SoundSlotElement);
3857
4138
 
4139
+ /**
4140
+ * The SplatComponentElement interface provides properties and methods for manipulating
4141
+ * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-splat/ | `<pc-splat>`} elements.
4142
+ * The SplatComponentElement interface also inherits the properties and methods of the
4143
+ * {@link HTMLElement} interface.
4144
+ *
4145
+ * @category Components
4146
+ */
4147
+ class SplatComponentElement extends ComponentElement {
4148
+ /** @ignore */
4149
+ constructor() {
4150
+ super('gsplat');
4151
+ this._asset = '';
4152
+ }
4153
+ getInitialComponentData() {
4154
+ return {
4155
+ asset: AssetElement.get(this._asset)
4156
+ };
4157
+ }
4158
+ /**
4159
+ * Gets the underlying PlayCanvas splat component.
4160
+ * @returns The splat component.
4161
+ */
4162
+ get component() {
4163
+ return super.component;
4164
+ }
4165
+ /**
4166
+ * Sets id of the `pc-asset` to use for the splat.
4167
+ * @param value - The asset ID.
4168
+ */
4169
+ set asset(value) {
4170
+ this._asset = value;
4171
+ const asset = AssetElement.get(value);
4172
+ if (this.component && asset) {
4173
+ this.component.asset = asset;
4174
+ }
4175
+ }
4176
+ /**
4177
+ * Gets the id of the `pc-asset` to use for the splat.
4178
+ * @returns The asset ID.
4179
+ */
4180
+ get asset() {
4181
+ return this._asset;
4182
+ }
4183
+ static get observedAttributes() {
4184
+ return [...super.observedAttributes, 'asset'];
4185
+ }
4186
+ attributeChangedCallback(name, _oldValue, newValue) {
4187
+ super.attributeChangedCallback(name, _oldValue, newValue);
4188
+ switch (name) {
4189
+ case 'asset':
4190
+ this.asset = newValue;
4191
+ break;
4192
+ }
4193
+ }
4194
+ }
4195
+ customElements.define('pc-splat', SplatComponentElement);
4196
+
3858
4197
  /**
3859
4198
  * The ModelElement interface provides properties and methods for manipulating
3860
4199
  * {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-model/ | `<pc-model>`} elements.
@@ -3900,8 +4239,8 @@ class ModelElement extends AsyncElement {
3900
4239
  async _loadModel() {
3901
4240
  var _a;
3902
4241
  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;
4242
+ const appElement = await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
4243
+ const app = appElement === null || appElement === void 0 ? void 0 : appElement.app;
3905
4244
  const asset = AssetElement.get(this._asset);
3906
4245
  if (!asset) {
3907
4246
  return;
@@ -3918,7 +4257,7 @@ class ModelElement extends AsyncElement {
3918
4257
  }
3919
4258
  _unloadModel() {
3920
4259
  var _a;
3921
- (_a = this._entity) === null || _a === undefined ? undefined : _a.destroy();
4260
+ (_a = this._entity) === null || _a === void 0 ? void 0 : _a.destroy();
3922
4261
  this._entity = null;
3923
4262
  }
3924
4263
  /**
@@ -3991,7 +4330,7 @@ class SceneElement extends AsyncElement {
3991
4330
  }
3992
4331
  async connectedCallback() {
3993
4332
  var _a;
3994
- await ((_a = this.closestApp) === null || _a === undefined ? undefined : _a.ready());
4333
+ await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
3995
4334
  this.scene = this.closestApp.app.scene;
3996
4335
  this.updateSceneSettings();
3997
4336
  this._onReady();
@@ -4187,8 +4526,8 @@ class SkyElement extends AsyncElement {
4187
4526
  }
4188
4527
  async _loadSkybox() {
4189
4528
  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;
4529
+ const appElement = await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
4530
+ const app = appElement === null || appElement === void 0 ? void 0 : appElement.app;
4192
4531
  if (!app) {
4193
4532
  return;
4194
4533
  }
@@ -4211,10 +4550,10 @@ class SkyElement extends AsyncElement {
4211
4550
  var _a, _b;
4212
4551
  if (!this._scene)
4213
4552
  return;
4214
- (_a = this._scene.skybox) === null || _a === undefined ? undefined : _a.destroy();
4553
+ (_a = this._scene.skybox) === null || _a === void 0 ? void 0 : _a.destroy();
4215
4554
  // @ts-ignore
4216
4555
  this._scene.skybox = null;
4217
- (_b = this._scene.envAtlas) === null || _b === undefined ? undefined : _b.destroy();
4556
+ (_b = this._scene.envAtlas) === null || _b === void 0 ? void 0 : _b.destroy();
4218
4557
  // @ts-ignore
4219
4558
  this._scene.envAtlas = null;
4220
4559
  this._scene = null;
@@ -4403,6 +4742,7 @@ exports.ListenerComponentElement = ListenerComponentElement;
4403
4742
  exports.MaterialElement = MaterialElement;
4404
4743
  exports.ModelElement = ModelElement;
4405
4744
  exports.ModuleElement = ModuleElement;
4745
+ exports.ParticleSystemComponentElement = ParticleSystemComponentElement;
4406
4746
  exports.RenderComponentElement = RenderComponentElement;
4407
4747
  exports.RigidBodyComponentElement = RigidBodyComponentElement;
4408
4748
  exports.SceneElement = SceneElement;