@macrostrat/map-interface 0.0.2 → 0.0.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/index.js +63 -63
- package/dist/index.js.map +1 -1
- package/package.json +9 -5
- package/stories/coordinates.stories.ts +0 -39
- package/stories/dev-map-page.stories.ts +0 -26
- package/stories/map-interface.stories.ts +0 -27
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;ACAA,IAAA,yCAAyD;AACzD,IAAA,yCAA+D;AAC/D,IAAA,yCAAiD;AACjD,IAAA,yCAAyD;AAHzD,yCAA+B,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAC1D,yCAAkC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAChE,yCAA2B,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAClD,yCAA+B,GAAG,CAAC,qBAAqB,CAAC,CAAC;;;AEH1D;;;AA2BA,MAAM,gCAAU,GAAG,CAAA,GAAA,oBAAa,CAAA,CAAS;IACvC,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE;QACN,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,KAAK;KACrB;IACD,QAAQ,EAAE,IAAI;CACf,CAAC,AAAC;AAEH,MAAM,wCAAkB,GAAG,CAAA,GAAA,oBAAa,CAAA,CAA4B,IAAI,CAAC,AAAC;AAEnE,SAAS,yCAAS,GAAG;IAC1B,MAAM,UAAE,MAAM,CAAA,EAAE,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,gCAAU,CAAC,AAAC;IAC1C,OAAO,CAAA,GAAA,cAAO,CAAA,CAAC,IAAM,MAAM,EAAE;QAAC,MAAM;KAAC,CAAC,CAAC;CACxC;AAEM,SAAS,yCAAY,GAAG;IAC7B,MAAM,UAAE,MAAM,CAAA,EAAE,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,gCAAU,CAAC,AAAC;IAC1C,OAAO,CAAA,GAAA,cAAO,CAAA,CAAC,IAAM,MAAM,EAAE;QAAC,MAAM;KAAC,CAAC,CAAC;CACxC;AAEM,SAAS,yCAAc,GAAG;IAC/B,MAAM,YAAE,QAAQ,CAAA,EAAE,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,gCAAU,CAAC,AAAC;IAC5C,OAAO,CAAA,GAAA,cAAO,CAAA,CAAC,IAAM,QAAQ,EAAE;QAAC,QAAQ;KAAC,CAAC,CAAC;CAC5C;AAEM,SAAS,yCAAa,GAAG;IAC9B,OAAO,yCAAS,EAAE,CAAC,OAAO,CAAC;CAC5B;AAEM,SAAS,yCAAM,GAAe;IACnC,OAAO,yCAAS,EAAE,CAAC,OAAO,CAAC;CAC5B;AAEM,SAAS,yCAAc,GAAG;IAC/B,OAAO,CAAA,GAAA,iBAAU,CAAA,CAAC,wCAAkB,CAAC,CAAC;CACvC;AASD,SAAS,gCAAU,CAAC,KAAa,EAAE,MAAiB,EAAU;IAC5D,OAAQ,MAAM,CAAC,IAAI;QACjB,KAAK,SAAS;YACZ,OAAO,CAAA,GAAA,yBAAM,CAAA,CAAC,KAAK,EAAE;gBACnB,MAAM,EAAE;oBAAE,OAAO,EAAE;wBAAE,IAAI,EAAE,MAAM,CAAC,OAAO;qBAAE;iBAAE;gBAC7C,MAAM,EAAE;oBAAE,aAAa,EAAE;wBAAE,IAAI,EAAE,IAAI;qBAAE;iBAAE;aAC1C,CAAC,CAAC;QACL,KAAK,aAAa;YAChB,OAAO,CAAA,GAAA,yBAAM,CAAA,CAAC,KAAK,EAAE;gBAAE,MAAM,EAAE;oBAAE,SAAS,EAAE;wBAAE,IAAI,EAAE,MAAM,CAAC,OAAO;qBAAE;iBAAE;aAAE,CAAC,CAAC;QAC5E,KAAK,iBAAiB;YACpB,OAAO,CAAA,GAAA,yBAAM,CAAA,CAAC,KAAK,EAAE;gBACnB,MAAM,EAAE;oBAAE,aAAa,EAAE;wBAAE,IAAI,EAAE,MAAM,CAAC,OAAO;qBAAE;iBAAE;aACpD,CAAC,CAAC;QACL,KAAK,kBAAkB;YACrB,OAAO,CAAA,GAAA,yBAAM,CAAA,CAAC,KAAK,EAAE;gBACnB,MAAM,EAAE;oBAAE,aAAa,EAAE;wBAAE,IAAI,EAAE,MAAM,CAAC,OAAO;qBAAE;iBAAE;aACpD,CAAC,CAAC;QACL,KAAK,WAAW;YACd,OAAO;gBAAE,GAAG,KAAK;gBAAE,QAAQ,EAAE,MAAM,CAAC,OAAO;aAAE,CAAC;KACjD;CACF;AAEM,SAAS,yCAAiB,CAAC,YAAE,QAAQ,CAAA,EAAE,EAAE;IAC9C,MAAM,MAAM,GAAG,CAAA,GAAA,aAAM,CAAA,EAAc,AAAC;IACpC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAA,GAAA,iBAAU,CAAA,CAA6B,gCAAU,EAAE;gBAC3E,MAAM;QACN,MAAM,EAAE;YACN,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,KAAK;YACpB,aAAa,EAAE,KAAK;SACrB;QACD,QAAQ,EAAE,IAAI;KACf,CAAC,AAAC;IAEH,OAAO,CAAA,GAAA,sBAAC,CAAA,CACN,wCAAkB,CAAC,QAAQ,EAC3B;QAAE,KAAK,EAAE,QAAQ;KAAE,EACnB,CAAA,GAAA,sBAAC,CAAA,CAAC,gCAAU,CAAC,QAAQ,EAAE;eAAE,KAAK;KAAE,EAAE,QAAQ,CAAC,CAC5C,CAAC;CACH;;ADhHD;AEAA;AEAA;AAGO,SAAS,yCAAqB,CAAC,GAAW,EAAE;IACjD,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,mCAAmC,CAAC,CAAC;CAC7E;AAEM,eAAe,yCAAc,CAClC,KAAsB,EACtB,MAAkD,EAClC;IAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAC3B,OAAO,KAAK,CAAU;IAGxB,oDAAoD;IACpD,IAAI,QAAE,IAAI,CAAA,UAAE,MAAM,CAAA,cAAE,UAAU,CAAA,EAAE,GAAG,MAAM,CAAA,GAAA,YAAK,CAAA,CAAC,GAAG,CAChD,yCAAqB,CAAC,KAAK,CAAC,EAC5B;gBACE,MAAM;KACP,CACF,AAAC;IACF,IAAI,MAAM,KAAK,GAAG,EAChB,MAAM,IAAI,KAAK,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAEvD,OAAO,IAAI,CAAC;CACb;AAEM,SAAS,yCAAW,CAAC,GAAG,MAAM,EAAE;IACrC,IAAI,MAAM,GAAG;QAAE,GAAG,MAAM,CAAC,CAAC,CAAC;KAAE,AAAC;IAC9B,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,KAAK,IAAI,CAAC,IAAI,MAAM,CAAE;QACpB,MAAM,CAAC,OAAO,GAAG;YAAE,GAAG,MAAM,CAAC,OAAO;YAAE,GAAI,CAAC,CAAC,OAAO,IAAI,EAAE;SAAG,CAAC;QAC7D,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;QAC1C,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;KAC3C;IACD,OAAO,MAAM,CAAC;CACf;;ADvCD;AECA;AAsBO,SAAS,yCAAc,CAAC,GAAQ,EAAe;IACpD,MAAM,GAAG,GAAG,GAAG,CAAC,oBAAoB,EAAE,AAAC;IACvC,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,AAAC;IAC1C,IAAI,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,AAAC;IAC7B,OAAO;QACL,MAAM,EAAE;YACN,GAAG,SAAS;YACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE;YACnC,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE;YACzB,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE;SACtB;QACD,MAAM,EAAE;YACN,GAAG,MAAM;YACT,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE;SACpB;KACF,CAAC;CACH;AAEM,SAAS,yCAAc,CAAC,GAAQ,EAAE,GAAgB,EAAE;IACzD,MAAM,SAAE,KAAK,GAAG,CAAC,YAAE,OAAO,GAAG,CAAC,aAAE,QAAQ,CAAA,EAAE,GAAG,GAAG,CAAC,MAAM,AAAC;IACxD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,AAAC;IAC9B,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE;QAClE,MAAM,OAAE,GAAG,CAAA,OAAE,GAAG,CAAA,EAAE,GAAG,GAAG,CAAC,MAAM,AAAC;QAChC,GAAG,CAAC,SAAS,CAAC;YAAC,GAAG;YAAE,GAAG;SAAC,CAAC,CAAC;QAC1B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACnB,MAAM;QACL,MAAM,YAAE,QAAQ,CAAA,OAAE,GAAG,CAAA,OAAE,GAAG,CAAA,EAAE,GAAG,GAAG,CAAC,MAAM,AAAC;QAC1C,MAAM,aAAa,GAAG,IAAI,CAAA,GAAA,wBAAiB,CAAA,CACzC,CAAA,GAAA,yBAAkB,CAAA,CAAC,UAAU,CAAC;iBAAE,GAAG;iBAAE,GAAG;SAAE,EAAE,QAAQ,CAAC,EACrD;AAAC,aAAC;AAAE,aAAC;AAAE,aAAC;AAAE,aAAC;SAAC,CACb,AAAC;QACF,aAAa,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9C,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;KACzC;CACF;;;AChDM,SAAS,yCAAW,CAAC,WAA+B,EAAe;IACxE,IAAI,WAAW,IAAI,IAAI,EACrB,OAAO;QACL,YAAY,EAAE,KAAK;QACnB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;KACnB,CAAC;IAEJ,8DAA8D;IAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,AAAC;IAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,AAAC;IAChD,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,AAAC;IACpD,MAAM,YAAY,GAAG,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,AAAC;IAEhD,MAAM,WAAW,GAAG,GAAG,GAAG,OAAO,AAAC;IAElC,IAAI,QAAQ,GAAG,KAAK,AAAC;IACrB,IAAI,GAAG,IAAI,IAAI,EACb,QAAQ,GAAG,AAAC,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,MAAM,IAAK,GAAG,GAAG,KAAK,CAAC;IAGxD,OAAO;sBACL,YAAY;kBACZ,QAAQ;qBACR,WAAW;QACX,WAAW,EAAE,IAAI;KAClB,CAAC;CACH;;;ACnCM,SAAS,yCAAe,CAC7B,KAAqB,EACrB,YAAqB,GAAG,IAAI,EACZ;IAChB,4BAA4B;IAC5B,KAAK,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,CAAE;QAC5B,IAAI,CAAE,CAAA,QAAQ,IAAI,GAAG,CAAA,AAAC,EAAE,SAAS;QACjC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,IAAI,AAAC;QACtD,IAAI,YAAY,EACd,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;KAE7D;IACD,OAAO,KAAK,CAAC;CACd;AAEM,SAAS,yCAAwB,CACtC,GAAQ,EACR,OAAgB,EAChB,UAAoB,GAAG,EAAE,EACzB;IACA,4BAA4B;IAC5B,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAE;QACrC,IAAI,CAAE,CAAA,QAAQ,IAAI,GAAG,CAAA,AAAC,EAAE,SAAS;QACjC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,IAAI,AAAC;QACtD,IAAI,YAAY,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAC9C,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;KAE7E;CACF;;;;;ALzBM,SAAS,yCAAsB,CACpC,MAA+B,EAC/B,KAAQ,EACR,QAA2C,EAC3C;IACA;;iCAE+B,CAC/B,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,AAAC;QAC3B,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO;QACxB,IAAI,GAAG,CAAC,aAAa,EAAE,EACrB,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEvB,MAAM,EAAE,GAAG,IAAM,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,AAAC;QACtC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACzB,OAAO,IAAM;YACX,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;SAC3B,CAAC;KACH,EAAE;QAAC,MAAM,CAAC,OAAO;QAAE,KAAK;KAAC,CAAC,CAAC;CAC7B;AAED,MAAM,sCAAgB,GAAG,CAAC,GAAG,EAAE,KAAK,GAClC,CAAA,GAAA,yCAAwB,CAAA,CAAC,GAAG,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,AAAC;AAEhE,SAAS,yCAAqB,CACnC,MAA+B,EAC/B,aAAsB,EACtB,UAAoB,GAAG,EAAE,EACzB;IACA,yCAAsB,CACpB,MAAM,EACN;uBAAE,aAAa;oBAAE,UAAU;KAAE,EAC7B,sCAAgB,CACjB,CAAC;CACH;;;AMxCD;;;;;;;;AAYO,SAAS,yCAAiB,CAAC,aAAE,SAAS,CAAA,WAAE,OAAO,CAAA,WAAE,OAAO,GAAG,EAAE,GAAE,EAAE;IACtE,kEAAkE,CAClE,MAAM,MAAM,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IAC3B,MAAM,gBAAgB,GAAG,CAAA,GAAA,aAAM,CAAA,EAAkB,AAAC;IAClD,MAAM,UAAU,GAAG,CAAA,GAAA,aAAM,CAAA,EAAQ,AAAC;IAElC,gFAAgF;IAChF,MAAM,QAAQ,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,OAAO,CAAC,AAAC;IACjC,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;KAC5B,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3B,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,OAAO;QACnC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,AAAC;QAEnC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,AAAC;QAClD,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACrD,OAAO,IAAM;YACX,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;SAChC,CAAC;KACH,EAAE;QAAC,MAAM,CAAC,OAAO;QAAE,gBAAgB,CAAC,OAAO;QAAE,OAAO;QAAE,QAAQ;KAAC,CAAC,CAAC;IAElE,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,yBAAyB,EAAE;mBAAE,SAAS;QAAE,GAAG,EAAE,gBAAgB;KAAE,CAAC,CAAC;CAC3E;AAEM,SAAS,yCAAY,CAAC,aAAE,SAAS,CAAA,EAAE,EAAE;IAC1C,MAAM,GAAG,GAAG,CAAA,GAAA,yCAAa,CAAA,EAAE,AAAC;IAE5B,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,KAAK,CAAC,AAAC;IACjD,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,aAAa;QACb,IAAI,IAAI,GAAG,GAAG,EAAE,aAAa,EAAE,CAAC,IAAI,AAAC;QACrC,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC;KAC7B,EAAE;QAAC,GAAG;KAAC,CAAC,CAAC;IACV,MAAM,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,AAAC;IACnD,MAAM,IAAI,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,AAAC;IAE1C,OAAO,CAAA,GAAA,sBAAC,CAAA,CACN,gFAAgF,EAChF;mBAAE,SAAS;KAAE,EACb;QACE,CAAA,GAAA,sBAAC,CAAA,CACC,6BAA6B,EAC7B;YACE,OAAO,IAAG;gBACR,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO;gBACxB,aAAa;gBACb,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC5B,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC;aACjC;SACF,EACD,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,WAAI,CAAA,EAAE;kBAAE,IAAI;SAAE,CAAC,CAClB;KACF,CACF,CAAC;CACH;AAED,uCAAuC;AAEvC,MAAM,oCAAc,SAAS,CAAA,GAAA,kCAAI,CAAA;IAI/B,aAAc;QACZ,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,GAAA,sCAAM,CAAA,EAAE,CAAC;KAC5B;IAED,MAAM,GAAG;QACP,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAM;YACxB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,KAAK,EAAE,EAAE;gBAAE,QAAQ,EAAE,IAAI;aAAE,CAAC,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC7B;IAED,YAAY,GAAG;QACb,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;CACF;AAEM,SAAS,yCAAc,CAAC,aAAE,SAAS,CAAA,WAAE,OAAO,CAAA,EAAE,EAAE;IACrD,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAiB,EAAE;QAC1B,SAAS,EAAE,CAAA,GAAA,iBAAU,CAAA,CAAC,iBAAiB,EAAE,SAAS,CAAC;QACnD,OAAO,EAAE,CAAA,GAAA,qBAAe,CAAA;iBACxB,OAAO;KACR,CAAC,CAAC;CACJ;AAEM,MAAM,yCAAW,GAAG,CAAC,aAAE,SAAS,CAAA,WAAE,OAAO,CAAA,EAAE,GAChD,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAiB,EAAE;QACnB,SAAS,EAAE,CAAA,GAAA,iBAAU,CAAA,CAAC,cAAc,EAAE,SAAS,CAAC;QAChD,OAAO,EAAE,CAAA,GAAA,kBAAY,CAAA;iBACrB,OAAO;KACR,CAAC,AAAC;AAEE,MAAM,yCAAa,GAAG,CAAC,aAAE,SAAS,CAAA,WAAE,OAAO,CAAA,EAAE,GAClD,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAiB,EAAE;QACnB,SAAS,EAAE,CAAA,GAAA,iBAAU,CAAA,CAAC,gBAAgB,EAAE,SAAS,CAAC;QAClD,OAAO,EAAE,oCAAc;iBACvB,OAAO;KACR,CAAC,AAAC;;;ACpHL;;AAMO,SAAS,yCAAY,CAC1B,YAAqB,GAAG,IAAI,EAC5B,UAAkB,GAAG,SAAS,EAC9B,SAAuB,GAAG,EAAE,EAC5B;IACA,MAAM,MAAM,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,AAAC;IAC3B,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO;QACxB,yCAAc,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACzD,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,IAAM;YACzB,yCAAc,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;SAC1D,CAAC,CAAC;KACJ,EAAE;QAAC,GAAG;QAAE,YAAY;QAAE,UAAU;KAAC,CAAC,CAAC;CACrC;AAEM,SAAS,yCAAc,CAC5B,GAAiB,EACjB,YAAqB,GAAG,IAAI,EAC5B,UAAkB,GAAG,SAAS,EAC9B,SAAuB,GAAG,EAAE,EAC5B;IACA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EACtB,OAAO;IAET,IAAI,YAAY,EACd,wCAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAEjD,gEAAgE;IAChE,MAAM,cAAc,GAAG,GAAG,CAAC,UAAU,EAAE,AAAC;IACxC,IAAI,YAAY,IAAI,cAAc,IAAI,IAAI,EACxC,GAAG,CAAC,UAAU,CAAC;QAAE,MAAM,EAAE,UAAU;QAAE,YAAY,EAAE,CAAC;KAAE,CAAC,CAAC;SACnD,IAAI,CAAC,YAAY,IAAI,cAAc,IAAI,IAAI,EAChD,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;CAExB;AAED,SAAS,wCAAkB,CACzB,GAAG,EACH,UAAU,GAAG,SAAS,EACtB,SAAmC,GAAG,EAAE,EACxC;IACA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,AAAC;IAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAClD,CAAC,MAAqB,GAAK,MAAM,CAAC,IAAI,KAAK,YAAY,CACxD,AAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAC7C,CAAC,GAAa,GAAK,GAAG,CAAC,IAAI,IAAI,KAAK,CACrC,AAAC;IAEF,IAAI,CAAC,UAAU,EACb,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE;QACxB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,uCAAuC;QAC5C,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,EAAE;QACX,GAAG,SAAS;KACb,CAAC,CAAC;IAGL,IAAI,CAAC,MAAM,EACT,GAAG,CAAC,QAAQ,CAAC;QACX,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,KAAK;QACX,KAAK,EAAE;YACL,UAAU,EAAE,YAAY;YACxB,oBAAoB,EAAE;AAAC,mBAAG;AAAE,mBAAG;aAAC;YAChC,8BAA8B,EAAE,EAAE;SACnC;KACF,CAAC,CAAC;IAEL,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,EACtB,GAAG,CAAC,MAAM,CAAC;QACT,KAAK,EAAE,SAAS;QAChB,aAAa;QACb,aAAa,EAAE;YACb,aAAa;YACb;gBAAC,QAAQ;aAAC;YACV;gBAAC,MAAM;aAAC;AACR,aAAC;YACD,oBAAoB;AACpB,aAAC;YACD,oBAAoB;SACrB;QACD,gBAAgB,EAAE;YAAC,aAAa;YAAE;gBAAC,QAAQ;aAAC;YAAE;gBAAC,MAAM;aAAC;AAAE,aAAC;AAAE,gBAAI;AAAE,aAAC;AAAE,aAAC;SAAC;QACtE,KAAK,EAAE;AAAC,aAAC;AAAE,cAAE;SAAC;KACf,CAAC,CAAC;CAEN;;;AC/FD;;AAUO,SAAS,yCAAW,CAAC,UAC1B,MAAM,CAAA,EACN,GAAG,IAAI,EACyC,EAAE;IAClD,MAAM,sBACJ,kBAAkB,GAAG,KAAK,yBAC1B,oBAAoB,GAAG,KAAK,uBAC5B,kBAAkB,GAAG,KAAK,KAC3B,GAAG,IAAI,AAAC;IAET,MAAM,GAAG,GAAG,MAAM,IAAI,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IAElC,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,AAAC;QACxB,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO;QACxB,GAAG,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC5C,GAAG,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAChD,GAAG,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC5C,GAAG,CAAC,cAAc,EAAE,CAAC;KACtB,EAAE;QACD,GAAG,CAAC,OAAO;QACX,kBAAkB;QAClB,oBAAoB;QACpB,kBAAkB;KACnB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;CACb;;;ACnCD;;;;;;;;;;;ACDA,IAAA,yCAA4D;AAC5D,IAAA,yCAAkD;AAClD,IAAA,yCAA0D;AAC1D,IAAA,yCAA0D;AAH1D,yCAAiC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC7D,yCAA4B,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACnD,yCAAgC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAC3D,yCAAgC,GAAG,CAAC,qBAAqB,CAAC,CAAC;;;;ADQ3D,MAAM,uBAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;IAExB,yCAMN;UANW,mBAAkB;IAAlB,mBAAkB,CAAlB,mBAAkB,CAC5B,UAAQ,IAAR,CAAQ,IAAR,UAAQ;IADE,mBAAkB,CAAlB,mBAAkB,CAE5B,aAAW,IAAX,CAAW,IAAX,aAAW;IAFD,mBAAkB,CAAlB,mBAAkB,CAG5B,YAAU,IAAV,CAAU,IAAV,YAAU;IAHA,mBAAkB,CAAlB,mBAAkB,CAI5B,gBAAc,IAAd,CAAc,IAAd,gBAAc;IAJJ,mBAAkB,CAAlB,mBAAkB,CAK5B,aAAW,IAAX,CAAW,IAAX,aAAW;GALD,yCAAkB,KAAlB,yCAAkB;AAQvB,SAAS,yCAAsB,CAAC,GAAuB,EAAU;IACtE,OAAQ,GAAG;QACT,KAAK,yCAAkB,CAAC,QAAQ;YAC9B,OAAO,UAAU,CAAC;QACpB,KAAK,yCAAkB,CAAC,WAAW;YACjC,OAAO,aAAa,CAAC;QACvB,KAAK,yCAAkB,CAAC,UAAU;YAChC,OAAO,YAAY,CAAC;QACtB,KAAK,yCAAkB,CAAC,cAAc;YACpC,OAAO,gBAAgB,CAAC;QAC1B,KAAK,yCAAkB,CAAC,WAAW;YACjC,OAAO,aAAa,CAAC;KACxB;CACF;AAEM,SAAS,yCAAmB,CAAC,GAAuB,EAAU;IACnE,OAAQ,GAAG;QACT,KAAK,yCAAkB,CAAC,QAAQ,CAAC;QACjC,KAAK,yCAAkB,CAAC,WAAW;YACjC,OAAO,CAAA,GAAA,aAAM,CAAA,CAAC,IAAI,CAAC;QACrB,KAAK,yCAAkB,CAAC,UAAU;YAChC,OAAO,CAAA,GAAA,aAAM,CAAA,CAAC,OAAO,CAAC;QACxB,KAAK,yCAAkB,CAAC,cAAc;YACpC,OAAO,CAAA,GAAA,aAAM,CAAA,CAAC,OAAO,CAAC;QACxB,KAAK,yCAAkB,CAAC,WAAW;YACjC,OAAO,CAAA,GAAA,aAAM,CAAA,CAAC,OAAO,CAAC;KACzB;CACF;AAEM,SAAS,yCAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE;IACpD,MAAM,MAAM,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IAE3B,MAAM,YAAY,GAAG,CAAA,GAAA,aAAM,CAAA,CAAM,IAAI,CAAC,AAAC;IACvC,MAAM,WAAW,GAAG,CAAA,GAAA,aAAM,CAAA,CAAM,IAAI,CAAC,AAAC;IACtC,gEAAgE;IAChE,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,AAAC;QAC3B,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO;QACxB,IAAI,IAAI,GAAG,IAAI,AAAC;QAChB,IAAI,QAAQ,IAAI,YAAY,CAAC,OAAO,EAAE;YACpC,IAAI,KAAK,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;SACxB;QACD,IAAI,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE;YAClC,IAAI,KAAK,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QACD,IAAI,IAAI,IAAI,IAAI,EAAE,OAAO;QACzB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAM;YACxB;;oDAE8C,CAC9C,YAAY,CAAC,OAAO,GAAG,QAAQ,CAAC;YAChC,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;SAC/B,CAAC,CAAC;KACJ,EAAE;QAAC,QAAQ;QAAE,OAAO;KAAC,CAAC,CAAC;CACzB;AAED,SAAS,yCAAmB,CAC1B,EAAuB,EACvB,EAAuB,EACf;IACR,4CAA4C;IAC5C,MAAM,IAAI,GAAG,AAAE,CAAA,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA,GAAI,IAAI,CAAC,EAAE,GAAI,GAAG,AAAC;IAE/C,yDAAyD;IACzD,MAAM,IAAI,GAAG,AAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAI,GAAG,AAAC;IACrC,MAAM,IAAI,GAAG,AAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAI,GAAG,AAAC;IACrC,OAAO,IAAI,CAAC,IAAI,CACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CACnD,CAAC;CACH;AAEM,SAAS,yCAAa,CAC3B,GAAiB,EACjB,QAAuD,EAC5B;IAC3B,qEAAqE,CACrE,IAAI,QAAQ,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC;IAElC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,AAAC;IAElC,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,EAClE,QAAQ,GAAG;QAAC,QAAQ,CAAC,GAAG;QAAE,QAAQ,CAAC,GAAG;KAAC,CAAC;IAG1C,IAAI,CAAE,CAAA,QAAQ,YAAY,KAAK,CAAA,AAAC,EAAE;QAChC,4BAA4B;QAC5B,MAAM,MAAM,GAAG,CAAA,GAAA,eAAI,CAAA,CAAC,QAAQ,CAAC,AAAC;QAC9B,QAAQ,GAAG;YAAE,CAAA,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA,GAAI,CAAC;YAAG,CAAA,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA,GAAI,CAAC;SAAC,CAAC;IACtE,4DAA4D;KAC7D;IAED,MAAM,IAAI,GAAG,yCAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,AAAC;IACtD,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EACpB,OAAO,yCAAkB,CAAC,UAAU,CAAC;SAChC,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAC3B,OAAO,yCAAkB,CAAC,WAAW,CAAC;IAGxC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,AAAC;IACxC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,AAAC;IACtC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,AAAC;IAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,AAAC;IAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,AAAC;IACjC,IAAI,SAAE,KAAK,CAAA,UAAE,MAAM,CAAA,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,AAAC;IACxC,KAAK,IAAI,CAAC,CAAC;IACX,MAAM,IAAI,CAAC,CAAC;IAEZ,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EACpB,OAAO,yCAAkB,CAAC,QAAQ,CAAC;IAErC,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,EACtB,OAAO,yCAAkB,CAAC,WAAW,CAAC;IAGxC,IACE,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,IAC1B,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,IACnC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IACzB,SAAS,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,EAErC,OAAO,yCAAkB,CAAC,UAAU,CAAC;IAGvC,IACE,SAAS,CAAC,CAAC,GAAG,CAAC,IACf,SAAS,CAAC,CAAC,GAAG,KAAK,IACnB,SAAS,CAAC,CAAC,GAAG,CAAC,IACf,SAAS,CAAC,CAAC,GAAG,MAAM,EAEpB,OAAO,yCAAkB,CAAC,cAAc,CAAC;IAE3C,OAAO,yCAAkB,CAAC,WAAW,CAAC;CACvC;AAEM,SAAS,yCAAa,CAC3B,QAAgD,EAChD;IACA,MAAM,GAAG,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IACxB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAA4B,IAAI,CAAC,AAAC;IAE9E,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE,OAAO;QACpD,MAAM,EAAE,GAAG,IAAM;YACf,aAAa,CAAC,yCAAa,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;SACrD,AAAC;QACF,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5B,EAAE,EAAE,CAAC;QAEL,OAAO,IAAM;YACX,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SAC9B,CAAC;KACH,EAAE;QAAC,GAAG,CAAC,OAAO;QAAE,QAAQ;KAAC,CAAC,CAAC;IAE5B,OAAO,UAAU,CAAC;CACnB;AAEM,SAAS,yCAAU,CAAC,UAA8B,EAAE;IACzD,OACE,UAAU,IAAI,yCAAkB,CAAC,QAAQ,IACzC,UAAU,IAAI,yCAAkB,CAAC,WAAW,CAC5C;CACH;AAED,SAAS,0CAAoB,CAC3B,KAAyD,EACzD;IACA,IAAI,GAAG,AAAc,AAAC;IACtB,IAAI,MAAM,GAA4B,IAAI,AAAC;IAC3C,IAAI,IAAI,GAAkB,IAAI,AAAC;IAE/B,IAAI,KAAK,YAAY,KAAK,EAAE;QAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EACpB,KAAK,GAAG,KAAK,CAAC;aACT,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAC3B,GAAG,GAAG,KAAK,CAAC;KAEf;IAED,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAC5D,MAAM,GAAG;QAAC,KAAK,CAAC,GAAG;QAAE,KAAK,CAAC,GAAG;KAAC,CAAC;IAGlC,+CAA+C;IAC/C,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;QAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EACxB,MAAM,GAAG,KAAK,CAAC,WAAW,AAAoB,CAAC;aAE/C,GAAG,GAAG,CAAA,GAAA,eAAI,CAAA,CAAC,KAAK,CAAC,CAAC;KAErB;IAED,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,MAAM,GAAG;YAAE,CAAA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA,GAAI,CAAC;YAAG,CAAA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA,GAAI,CAAC;SAAC,CAAC;QACxD,MAAM,IAAI,GAAG,yCAAmB,CAAC,MAAM,EAAE;YAAC,GAAG,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC;SAAC,CAAC,AAAC;QAC3D,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,AAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAI,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5C;IACD,OAAO;gBAAE,MAAM;cAAE,IAAI;KAAE,CAAC;CACzB;AAEM,SAAS,yCAAmB,CAAC,YAClC,QAAQ,CAAA,aACR,SAAS,CAAA,gBACT,YAAY,GAAG,GAAG,eAClB,UAAU,GAAG,IAAI,GACjB,GAAG,IAAI,EACR,EAAE;IACD,MAAM,GAAG,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IACxB,MAAM,iBAAiB,GAAG,yCAAa,CAAC,QAAQ,CAAC,AAAC;IAClD,UAAU,KAAK,iBAAiB,CAAC;IACjC,MAAM,WAAW,GAAG,yCAAU,CAAC,UAAU,CAAC,AAAC;IAE3C,OAAO,uBAAC,CACN,CAAA,GAAA,aAAM,CAAA,EACN;QACE,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,YAAY;QAClB,OAAO,IAAG;YACR,IAAI,UAAU,IAAI,yCAAkB,CAAC,QAAQ,EAC3C,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;iBACrB;gBACL,IAAI,IAAI,GAAG;oBAAE,QAAQ,EAAE,YAAY;iBAAE,AAAC;gBACtC,MAAM,UAAE,MAAM,CAAA,QAAE,IAAI,CAAA,EAAE,GAAG,0CAAoB,CAAC,QAAQ,CAAC,AAAC;gBACxD,IAAI,MAAM,IAAI,IAAI,EAChB,OAAO;qBAEP,IAAI,GAAG;oBAAE,GAAG,IAAI;4BAAE,MAAM;iBAAE,CAAC;gBAE7B,IAAI,IAAI,IAAI,IAAI,EACd,IAAI,GAAG;oBAAE,GAAG,IAAI;0BAAE,IAAI;iBAAE,CAAC;gBAE3B,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;aAC1B;SACF;QACD,SAAS,EAAE,CAAA,GAAA,iBAAU,CAAA,CACnB,iBAAiB,EACjB,SAAS,EACT,yCAAsB,CAAC,UAAU,CAAC,CACnC;QACD,MAAM,EAAE,yCAAmB,CAAC,UAAU,CAAC;QACvC,GAAG,IAAI;KACR,EACD;QAAC,WAAW,GAAG,IAAI,GAAG,uBAAC,CAAC,qBAAqB,EAAE,UAAU,CAAC;KAAC,CAC5D,CAAC;CACH;;;;;AbvQD,MAAM,uBAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAE/B,MAAM,oCAAc,GAAG,uBAAC,CAAC,CAAA,GAAA,cAAO,CAAA,EAAE;IAAE,IAAI,EAAE,EAAE;CAAE,CAAC,AAAC;AAEzC,SAAS,yCAAa,CAAC,aAC5B,SAAS,GAAG,KAAK,YACjB,OAAO,CAAA,UACP,MAAM,GAAG,KAAK,SACd,IAAI,GAAG,MAAM,KACd,EAAE;IACD,OAAO,uBAAC,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;QACf,IAAI,EAAE,SAAS,GAAG,oCAAc,GAAG,IAAI;QACvC,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;iBACb,OAAO;QACP,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS;KAC7B,CAAC,CAAC;CACJ;AAEM,SAAS,yCAAgB,CAAC,KAAK,EAAE;IACtC,MAAM,aAAE,SAAS,CAAA,EAAE,GAAG,CAAA,GAAA,yCAAY,CAAA,EAAE,AAAC;IACrC,MAAM,YAAY,GAAG,CAAA,GAAA,cAAO,CAAA,CAAC,IAAM,SAAS,EAAE;QAAC,SAAS;KAAC,CAAC,AAAC;IAC3D,OAAO,uBAAC,CAAC,yCAAa,EAAE;QAAE,GAAG,KAAK;QAAE,SAAS,EAAE,YAAY;KAAE,CAAC,CAAC;CAChE;AAIM,SAAS,yCAAc,CAAC,aAC7B,SAAS,CAAA,YACT,QAAQ,CAAA,iBACR,aAAa,GAAG,IAAI,GAKrB,EAAE;IACD,OAAO,uBAAC,CAAC,sBAAsB,EAAE;mBAAE,SAAS;KAAE,EAAE;QAC9C,uBAAC,CAAC,mBAAmB,EAAE;YACrB,uBAAC,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;gBAAE,SAAS,EAAE,iBAAiB;aAAE,EAAE,QAAQ,CAAC;SACtD,CAAC;QACF,uBAAC,CAAC,EAAE,CAAC,aAAa,IAAI,IAAI,CAAC,CACzB,CAAA,GAAA,WAAI,CAAA,EACJ;YAAE,SAAS,EAAE,eAAe;SAAE,EAC9B,aAAa,CACd;KACF,CAAC,CAAC;CACJ;;ADpDD;;;;;AgBAA;;ACAA;;;;;;;;;;;;;ACAA,IAAA,yCAAgD;AAChD,IAAA,yCAAkD;AAClD,IAAA,yCAA4D;AAC5D,IAAA,yCAAwE;AACxE,IAAA,yCAA0E;AAC1E,IAAA,yCAA0C;AAC1C,IAAA,wCAAgE;AAChE,IAAA,yCAA8D;AAC9D,IAAA,yCAA4C;AAR5C,yCAA2B,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACjD,yCAA4B,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACnD,yCAAiC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC7D,yCAAuC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AACzE,yCAAwC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAC3E,yCAAwB,GAAG,CAAC,aAAa,CAAC,CAAC;AAC3C,wCAAmC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACjE,yCAAkC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAC/D,yCAAyB,GAAG,CAAC,cAAc,CAAC,CAAC;;;AGR7C;;;;;;AEAA;;;AAIO,SAAS,yCAAiB,CAAI,CAAI,EAAgC;IACvE,uFAAuF,CACvF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,CAAC,CAAC,AAAC;IACtC,MAAM,WAAW,GAAG,SAAU,IAAa,EAAE;QAC3C,MAAM,QAAQ,GAAG,CAAA,GAAA,yBAAM,CAAA,CAAC,KAAK,EAAE,IAAI,CAAC,AAAC;QACrC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC3B,AAAC;IACF,OAAO;QAAC,KAAK;QAAE,WAAW;KAAC,CAAC;CAC7B;AAEM,SAAS,yCAAgB,CAC9B,GAAQ,EACR,gBAA6C,GAAG,CAAA,GAAA,cAAO,CAAA,EACvD;IACA,wEAAwE,CACxE,MAAM,GAAG,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,GAAG,CAAC,AAAC;IACxB,IAAK,AAAO,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,EACzD,OAAO,GAAG,CAAC,OAAO,CAAC;SACd;QACL,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;QAClB,OAAO,GAAG,CAAC;KACZ;CACF;AAEM,MAAM,yCAAiB,SAAuB,CAAA,GAAA,gBAAS,CAAA;IAC5D,YAAY,KAAY,CAAE;QACxB,OAAO,CAAC,IAAI,CACV,iEAAiE,CAClE,CAAC;QACF,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;IACD,WAAW,CAAC,IAAiB,EAAE;QAC7B,MAAM,QAAQ,GAAG,CAAA,GAAA,yBAAM,CAAA,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,AAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACzB;CACF;;ADxCD;AEAA;;AAkBA,SAAS,wCAAc,CACrB,GAA2B,EAC3B,IAAqB,GAAG,EAAE,EACN;IACpB,uDAAuD,CACvD,MAAM,qBAAE,iBAAiB,GAAG,IAAI,GAAE,GAAG,IAAI,AAAC;IAC1C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAc,IAAI,CAAC,AAAC;IAEpD,MAAM,YAAY,GAAG,CAAA,GAAA,kBAAW,CAAA,CAAC,IAAM;QACrC,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE,OAAO;QAChC,MAAM,UAAE,MAAM,CAAA,SAAE,KAAK,CAAA,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,AAAC;QAC9D,OAAO,CAAC;oBAAE,MAAM;mBAAE,KAAK;SAAE,CAAC,CAAC;KAC5B,EAAE;QAAC,GAAG;KAAC,CAAC,AAAC;IAEV,CAAA,GAAA,sBAAe,CAAA,CAAC,YAAY,EAAE;QAAC,GAAG;KAAC,CAAC,CAAC;IAErC,gEAAgE;IAChE,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,CAAC,iBAAiB,EAAE,OAAO;QAC/B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,OAAO,WAAY;YACjB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;SACpD,CAAC;KACH,EAAE;QAAC,YAAY;QAAE,iBAAiB;KAAC,CAAC,CAAC;IAEtC,OAAO,IAAI,CAAC;CACb;AAED,SAAS,yCAAe,CAAC,GAA2B,EAAU;IAC5D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,CAAC,CAAC,AAAC;IACxC,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAK;YAC/C,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,AAAe,AAAC;YACrC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;SACzB,CAAC,CAAC;KACJ,EAAE;QAAC,GAAG,CAAC,OAAO;KAAC,CAAC,CAAC;IAClB,OAAO,MAAM,CAAC;CACf;;;ACvDD;AAiBA,SAAS,yCAAgB,CACvB,MAAmB,EACnB,IAAsB,GAAG,EAAE,EACnB;IACR,IAAI,CAAC,AAAQ,AAAC;IACd,IAAI,OAAO,MAAM,KAAK,QAAQ,EAC5B,CAAC,GAAG,MAAM,CAAC;SAEX,CAAC,GAAG,CAAA,GAAA,gBAAS,CAAA,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,OAAO;QAAE,GAAG,IAAI;KAAE,CAAC,CAAC;IAE3D,OAAO,CAAC,CAAC;CACV;AAED,SAAS,yCAAa,CACpB,KAAa,EACb,MAAmB,GAAG,EAAE,EACxB,IAAuB,EACf;IACR,MAAM,QAAQ,GAAG,yCAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,AAAC;IAChD,IAAI,QAAQ,IAAI,EAAE,EAChB,OAAO,KAAK,CAAC;SAEb,OAAO,KAAK,GAAG,GAAG,GAAG,QAAQ,CAAC;CAEjC;AAED,+BAA+B;AAE/B,SAAS,iCAAW,CAAC,WAAmB,EAAE,IAAmB,EAAE;IAC7D,MAAM,MAAM,GAAG,CAAA,GAAA,YAAK,CAAA,CAAC,WAAW,EAAE;QAChC,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,OAAO;QACpB,GAAG,IAAI;KACR,CAAC,AAAC;IACH,4CAA4C;IAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;CACvD;AAED,SAAS,+BAAS,CAAC,QAAgB,EAAE,IAAe,EAAE,IAAuB,EAAE;IAC7E,MAAM,MAAM,GAAG,yCAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,AAAC;IAC5C,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,AAAC;IAC1C,IAAI,MAAM,IAAI,EAAE,EACd,QAAQ,IAAI,QAAQ,GAAG,MAAM,CAAC;IAEhC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;CAC/C;AAED,MAAM,yCAAa,GAAG,CAAC,UAAyB,GAC9C,iCAAW,CAAC,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,AAAC;AACpD,MAAM,yCAAa,GAAG,CAAC,IAAe,EAAE,IAAuB,GAC7D,+BAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,AAAC;AAE7B,MAAM,yCAAc,GAAG,CAAC,WAA0B,GAChD,iCAAW,CAAC,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,AAAC;AACvD,MAAM,yCAAc,GAAG,CAAC,IAAe,EAAE,IAAuB,GAC9D,+BAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,AAAC;;;ACzE7B;AAQA,MAAM,yCAAY;IAEhB,YAAY,IAAY,CAAE;QACxB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;IACD,GAAG,GAAa;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,AAAC;QACnD,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,AAAC;YAC5B,OAAO,GAAG,CAAC;SACZ,CAAC,OAAM;YACN,OAAO,IAAI,CAAC;SACb;KACF;IACD,GAAG,CAAC,GAAM,EAAE;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,AAAC;QAChC,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACpD;IAED,MAAM,GAAG;QACP,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3C;CACF;AAED,SAAS,yCAAc,CACrB,IAAW,EACX,YAA2B,EAC3B,OAAuB,GAAG,IAAI,EACkB;IAChD,iEAAiE,CACjE,MAAM,OAAO,GAAG,CAAA,GAAA,cAAO,CAAA,CAAC,IAAM,IAAI,yCAAY,CAAI,IAAG,CAAC,EAAE;QAAC,IAAG;KAAC,CAAC,AAAC;IAC/D,IAAI,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,AAAC;IAEjC,MAAM,SAAS,GAAG,CAAA,GAAA,kBAAW,CAAA,CAC3B,CAAC,KAAQ,GAAK;QACZ,IAAI,OAAO,IAAI,IAAI,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,KAAK,IAAI,IAAI,EAAE,OAAO,KAAK,CAAC;QAChC,IAAI,OAAO,KAAK,IAAI,OAAO,YAAY,EAAE,OAAO,KAAK,CAAC;QACtD,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;YAC5B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,AAAC;YAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,AAAC;YACtC,IAAI,YAAY,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;YAC3D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAE;gBACvD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC;gBAC5C,IAAI,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC;aACrD;SACF;QACD,OAAO,IAAI,CAAC;KACb,EACD;QAAC,YAAY;QAAE,OAAO;KAAC,CACxB,AAAC;IAEF,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAClD,MAAM,CAAC,MAAK,EAAE,SAAS,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAI,YAAY,IAAI,YAAY,CAAC,AAAC;IAErE,MAAM,QAAQ,GAAG,CAAA,GAAA,kBAAW,CAAA,CAC1B,CAAC,SAAY,EAAE,QAAQ,GAAG,IAAI,GAAK;QACjC,IAAI,QAAQ,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EACnC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3C,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;KACxB,EACD;QAAC,SAAS;KAAC,CACZ,AAAC;IAEF,MAAM,UAAU,GAAG,CAAA,GAAA,kBAAW,CAAA,CAAC,IAAM;QACnC,SAAS,CAAC,YAAY,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,EAAE,CAAC;KAClB,EAAE;QAAC,YAAY;KAAC,CAAC,AAAC;IAEnB,OAAO;QAAC,MAAK;QAAE,QAAQ;QAAE,UAAU;KAAC,CAAC;CACtC;;;ACjFD;;ACAA;;;;AAeA,MAAM,oCAAc,GAAG,IAAsB,CAAA;QAC3C,SAAS,EAAE,6BAAO,EAAE,OAAO,IAAI,KAAK;QACpC,SAAS,EAAE,IAAI;KAChB,CAAA,AAAC,AAAC;AAEH,MAAM,kCAAY,GAAG,CAAA,GAAA,oBAAa,CAAA,CAAgB;IAChD,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;CACjB,CAAC,AAAC;AACH,MAAM,oCAAc,GAAG,CAAA,GAAA,oBAAa,CAAA,CAAyB,IAAI,CAAC,AAAC;AAEnE,MAAM,6BAAO,GAAG,MAAM,EAAE,UAAU,CAAC,8BAA8B,CAAC,AAAC;AASnE,MAAM,uCAAiB,GAAG,CAAC,KAAoB,GAAK;IAClD,MAAM,kBACJ,cAAc,GAAG,IAAI,GACrB,SAAS,EAAT,UAAS,CAAA,gBACT,YAAY,GAAG,KAAK,aACpB,QAAQ,CAAA,IACT,GAAG,KAAK,AAAC;IACV,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,CAAA,GAAA,yCAAc,CAAA,CAC3D,cAAc,EACd,oCAAc,EAAE,CACjB,AAAC;IACF,2DAA2D;IAC3D,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,WAAW,EAAE,SAAS,IAAI,KAAK;QAC1C,SAAS,EAAE,WAAW,EAAE,SAAS,IAAI,KAAK;KAC3C,AAAC;IAEF,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,CAAC,YAAY,EAAE,OAAO;QAC1B,WAAW,CAAC,oCAAc,EAAE,CAAC,CAAC;KAC/B,EAAE,EAAE,CAAC,CAAC;IAEP,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,wCAAwC;QACxC,IAAI,UAAS,IAAI,IAAI,EAAE,OAAO;QAC9B,WAAW,CAAC;YAAE,SAAS,EAAE,KAAK;YAAE,SAAS,EAAT,UAAS;SAAE,CAAC,CAAC;KAC9C,EAAE;QAAC,UAAS;KAAC,CAAC,CAAC;IAEhB,gCAAgC;IAChC,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,CAAC,cAAc,EAAE,OAAO;QAC5B,IAAI,KAAK,CAAC,SAAS,EACjB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aAExC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAE9C,EAAE;QAAC,WAAW;KAAC,CAAC,CAAC;IAElB,MAAM,MAAM,GAAoB,CAAC,OAAuB,GAAK;QAC3D,IAAI,OAAO,IAAI,IAAI,EAAE,OAAO,UAAU,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,AAAC;QAC9C,WAAW,CAAC;YAAE,SAAS,EAAE,KAAK;uBAAE,SAAS;SAAE,CAAC,CAAC;KAC9C,AAAC;IAEF,MAAM,cAAc,GAAG,CAAA,GAAA,kBAAW,CAAA,CAChC,CAAC,CAAC,GAAK;QACL,IAAI,KAAK,CAAC,SAAS,IAAI,YAAY,EAAE,WAAW,CAAC,oCAAc,EAAE,CAAC,CAAC;KACpE,EACD;QAAC,KAAK,CAAC,SAAS;QAAE,YAAY;KAAC,CAChC,AAAC;IAEF,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,6BAAO,IAAI,IAAI,EAAE,OAAO;QAC5B,6BAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACnD,OAAO,IAAM;YACX,6BAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;SACvD,CAAC;KACH,EAAE;QAAC,cAAc;KAAC,CAAC,CAAC;IAErB,OAAO,CAAA,GAAA,sBAAC,CAAA,CACN,kCAAY,CAAC,QAAQ,EACrB;eAAE,KAAK;KAAE,EACT,CAAA,GAAA,sBAAC,CAAA,CAAC,oCAAc,CAAC,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM;KAAE,EAAE,QAAQ,CAAC,CACxD,CAAC;CACH,AAAC;AAEF,MAAM,yCAAgB,GAAG,CAAC,KAAoB,GAAK;IACjD,6DAA6D;IAC7D,MAAM,SAAS,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,oCAAc,CAAC,AAAC;IAC7C,IAAI,SAAS,IAAI,IAAI,EAAE,OAAO,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC;IACrD,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,uCAAiB,EAAE,KAAK,CAAC,CAAC;CACpC,AAAC;AAEF,MAAM,yCAAW,GAAG,IAAM,CAAA,GAAA,iBAAU,CAAA,CAAC,kCAAY,CAAC,AAAC;AACnD,MAAM,yCAAU,GAAG,IAAM,yCAAW,EAAE,EAAE,SAAS,IAAI,KAAK,AAAC;AAC3D,MAAM,yCAAe,GAAG,IAAM,CAAA,GAAA,iBAAU,CAAA,CAAC,oCAAc,CAAC,AAAC;AAEzD,MAAM,yCAAc,GAAG,CACrB,KAA+D,GAC5D;IACH,MAAM,cAAE,UAAU,GAAG,IAAI,aAAE,QAAQ,GAAG,KAAK,aAAE,QAAQ,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,AAAC;IACzE,MAAM,aAAE,SAAS,CAAA,aAAE,SAAS,CAAA,EAAE,GAAG,yCAAW,EAAE,AAAC;IAC/C,MAAM,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,AAAC;IAC1C,MAAM,MAAM,GAAG,yCAAe,EAAE,AAAC;IACjC,MAAM,OAAO,GAA4B,CAAC,KAAK,GAAK;QAClD,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAI,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE;YAChC,MAAM,CAAC,IAAI,CAAC,CAAC;YACb,OAAO;SACR;QACD,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;KACpB,AAAC;IACF,MAAM,MAAM,GAAG,CAAC,SAAS,AAAC;IAE1B,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;gBAAE,MAAM;QAAE,GAAG,IAAI;cAAE,IAAI;iBAAE,OAAO;KAAE,EAAE;QACnD,CAAA,GAAA,sBAAC,CAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YAAC,SAAS,GAAG,OAAO,GAAG,MAAM;SAAC,CAAC;QAC9C,QAAQ;KACT,CAAC,CAAC;CACJ,AAAC;;;;;;;;;;;ACxIF,IAAA,yCAAqD;AACrD,IAAA,yCAA+C;AAC/C,IAAA,yCAA+C;AAC/C,IAAA,yCAAqE;AACrE,IAAA,yCAAqD;AAJrD,yCAA6B,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACtD,yCAA0B,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAChD,yCAA0B,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAChD,yCAAqC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AACtE,yCAA6B,GAAG,CAAC,mBAAmB,CAAC,CAAC;;;AFEtD,MAAM,uBAAC,GAAG,CAAA,GAAA,kBAAW,CAAA,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAE9B,MAAM,6BAAO,GAAG;IACd,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,yCAAyC;IACjD,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;CAClB,AAAC;AAEK,SAAS,yCAAQ,CAAC,KAAK,EAAE;IAC9B,MAAM,WAAW,GAAG,CAAC,CAAA,GAAA,yCAAU,CAAA,EAAE,AAAC;IAClC,OAAO,uBAAC,CACN,yBAAyB,EACzB;QACE,SAAS,EAAE,CAAA,GAAA,iBAAU,CAAA,CAAC,KAAK,CAAC,SAAS,EAAE;YACrC,aAAa,EAAE,KAAK,CAAC,QAAQ;YAC7B,cAAc,EAAE,WAAW;SAC5B,CAAC;KACH,EACD,uBAAC,CAAC,CAAA,GAAA,oBAAQ,CAAA,EAAE;QACV,KAAK,EAAE,6BAAO;qBACd,WAAW;QACX,GAAG,KAAK;KACT,CAAC,CACH,CAAC;CACH;;;AG7CD;;AAQA,SAAS,yCAAgB,CACvB,OAAuB,EACvB,QAAgD,EAC3B;IACrB,sDAAsD,CACtD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAsB,IAAI,CAAC,AAAC;IACxE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,IAAI,CAAC,AAAC;IAE3C,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,MAAM,YAAY,GAAG,CAAC,KAAK,GACzB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,AAAC;QACjD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,OAAO,IAAM;YACX,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;SACpD,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,WAAW,GAAmC,CAAA,GAAA,cAAO,CAAA,CAAC,IAAM;QAChE,IAAI,aAAa,GAAG;eAAI,OAAO;SAAC,AAAC;QACjC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,CAAA,GAAA,YAAK,CAAA,CAAC;YACX;gBAAE,EAAE,EAAE,OAAO;gBAAE,MAAM,EAAE,CAAC;aAAE;eACvB,aAAa;YAChB;gBAAE,EAAE,EAAE,KAAK;gBAAE,MAAM,EAAE,MAAM,CAAC,gBAAgB;aAAE;SAC/C,CAAC,CAAC;KACJ,EAAE;QAAC,OAAO;KAAC,CAAC,AAAC;IAEd,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,WAAW,CAChC,IAAI,MAAM,IAAI,EAAE,CAAC,MAAM,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE;YAC7C,IAAI,WAAW,GAAG,EAAE,CAAC,EAAE,KAAK,OAAO,GAAG,IAAI,GAAG,EAAE,AAAC;YAChD,IAAI,WAAW,IAAI,UAAU,EAAE;gBAC7B,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC3B,QAAQ,GAAG,WAAW,CAAC,CAAC;aACzB;SACF;KAEJ,EAAE;QAAC,WAAW;QAAE,MAAM;KAAC,CAAC,CAAC;IAE1B,OAAO,UAAU,CAAC;CACnB;;;AChDD;AAEA,SAAS,iCAAW,CAAI,KAAQ,EAAK;IACnC,wCAAwC,CACxC,MAAM,GAAG,GAAG,CAAA,GAAA,aAAM,CAAA,EAAK,AAAC;IACxB,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;KACrB,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,OAAO,CAAC;CACpB;AAEM,SAAS,yCAAqB,CAInC,gBAA8D,EAC9D,KAAK,GAAG,EAAE,AAAS,EACnB,KAAK,GAAG,EAAE,AAAS,EACnB;IACA;;gEAE8D,CAC9D,MAAM,SAAS,GAAG,iCAAW,CAAQ,KAAK,CAAC,AAAC;IAC5C,MAAM,SAAS,GAAG,iCAAW,CAAQ,KAAK,CAAC,AAAC;IAC5C,CAAA,GAAA,gBAAS,CAAA,CACP,IACE,OAAO,CAAC,IAAI,CACV,wLAEwE,CACzE,EACH,EAAE,CACH,CAAC;IACF,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,SAAS,IAAI,IAAI,EAAE,OAAO;QAC9B,gBAAgB,CAAC,SAAS,EAAE,SAAS,IAAK,EAAE,AAAU,CAAC,CAAC;KACzD,EAAE;WAAI,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;WAAK,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;KAAC,CAAC,CAAC;CACpE;;;ACxBD,MAAM,0BAAI,GAAG,SAAU,IAAI,EAAE;IAC3B,MAAM,OAAO,GAAG;QAAC,EAAE;QAAE,GAAG;QAAE,GAAG;QAAE,MAAM;QAAE,OAAO;QAAE,KAAK;QAAE,QAAQ;KAAC,AAAC;IACjE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAK,IAAI,GAAG,CAAC,CAAC,CAAC;CACrC,AAAC;AAEF,MAAM,gCAAU,GAAG,CAAC,IAAI,GACtB,SAAU,GAAG,EAAE;QACb,IAAI,EAAE,GAAG,GAAG,AAAC;QACb,KAAK,IAAI,GAAG,IAAI,0BAAI,CAAC,IAAI,CAAC,CACxB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;QAEjB,OAAO,EAAE,CAAC;KACX,AAAC;AAEJ,MAAM,yCAAY,GAAG,gCAAU,CAAC,QAAQ,CAAC,AAAC;AAC1C,MAAM,yCAAa,GAAG,gCAAU,CAAC,SAAS,CAAC,AAAC;AAE5C,MAAM,yCAAa,GAAG,SAAU,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE;IACnD;;;;;IAKE,CACF,IAAI,cACF,UAAU,CAAA,eACV,WAAW,CAAA,aACX,SAAS,CAAA,gBACT,YAAY,CAAA,WACZ,OAAO,CAAA,WACP,OAAO,CAAA,UACP,MAAM,CAAA,IACP,GAAG,GAAG,AAAC;IACR,IAAI,MAAM,IAAI,IAAI,EAChB,MAAM,GAAG,CAAC,CAAC;IAEb,IAAI,OAAO,IAAI,IAAI,EACjB,OAAO,GAAG,MAAM,CAAC;IAEnB,IAAI,OAAO,IAAI,IAAI,EACjB,OAAO,GAAG,MAAM,CAAC;IAEnB,IAAI,UAAU,IAAI,IAAI,EACpB,UAAU,GAAG,OAAO,CAAC;IAEvB,IAAI,WAAW,IAAI,IAAI,EACrB,WAAW,GAAG,OAAO,CAAC;IAExB,IAAI,SAAS,IAAI,IAAI,EACnB,SAAS,GAAG,OAAO,CAAC;IAEtB,IAAI,YAAY,IAAI,IAAI,EACtB,YAAY,GAAG,OAAO,CAAC;IAGzB,IAAI,MAAM,EACR,yCAAY,CAAC,GAAG,CAAC,CAAC;IAGpB,OAAO;oBAAE,UAAU;qBAAE,WAAW;mBAAE,SAAS;sBAAE,YAAY;KAAE,CAAC;CAC7D,AAAC;AAEF,MAAM,yCAAc,GAAG,SAAU,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE;IACpD;;;;;IAKE,CACF,IAAI,eACF,WAAW,CAAA,gBACX,YAAY,CAAA,cACZ,UAAU,CAAA,iBACV,aAAa,CAAA,YACb,QAAQ,CAAA,YACR,QAAQ,CAAA,WACR,OAAO,CAAA,IACR,GAAG,GAAG,AAAC;IACR,IAAI,OAAO,IAAI,IAAI,EACjB,OAAO,GAAG,CAAC,CAAC;IAEd,IAAI,QAAQ,IAAI,IAAI,EAClB,QAAQ,GAAG,OAAO,CAAC;IAErB,IAAI,QAAQ,IAAI,IAAI,EAClB,QAAQ,GAAG,OAAO,CAAC;IAErB,IAAI,WAAW,IAAI,IAAI,EACrB,WAAW,GAAG,QAAQ,CAAC;IAEzB,IAAI,YAAY,IAAI,IAAI,EACtB,YAAY,GAAG,QAAQ,CAAC;IAE1B,IAAI,UAAU,IAAI,IAAI,EACpB,UAAU,GAAG,QAAQ,CAAC;IAExB,IAAI,aAAa,IAAI,IAAI,EACvB,aAAa,GAAG,QAAQ,CAAC;IAG3B,IAAI,MAAM,EACR,yCAAa,CAAC,GAAG,CAAC,CAAC;IAGrB,OAAO;qBAAE,WAAW;sBAAE,YAAY;oBAAE,UAAU;uBAAE,aAAa;KAAE,CAAC;CACjE,AAAC;AAEF,MAAM,yCAAY,GAAG,SAAU,GAAG,EAAE;IAClC,MAAM,MAAM,GAAG,yCAAa,CAAC,GAAG,CAAC,AAAC;IAClC,IAAI,EAAE,GAAG;QAAE,GAAG,GAAG;KAAE,AAAC;IACpB,KAAK,IAAI,GAAG,IAAI;QAAC,QAAQ;QAAE,SAAS;QAAE,SAAS;KAAC,CAC9C,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IAEjB,OAAO;QAAE,GAAG,EAAE;QAAE,GAAG,MAAM;KAAE,CAAC;CAC7B,AAAC;AAEF,MAAM,yCAAa,GAAG,SAAU,GAAG,EAAE;IACnC,MAAM,MAAM,GAAG,yCAAc,CAAC,GAAG,CAAC,AAAC;IACnC,IAAI,EAAE,GAAG;QAAE,GAAG,GAAG;KAAE,AAAC;IACpB,KAAK,IAAI,GAAG,IAAI;QAAC,SAAS;QAAE,UAAU;QAAE,UAAU;KAAC,CACjD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IAEjB,OAAO;QAAE,GAAG,EAAE;QAAE,GAAG,MAAM;KAAE,CAAC;CAC7B,AAAC;AAEF,MAAM,yCAAe,GAAG,SAAU,GAAG,EAAE;IACrC,MAAM,CAAC,GAAG,yCAAa,CAAC,GAAG,CAAC,AAAC;IAC7B,MAAM,eAAE,WAAW,CAAA,cAAE,UAAU,CAAA,UAAE,MAAM,CAAA,SAAE,KAAK,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,AAAC;IAC9D,IAAI,WAAW,IAAI,IAAI,EACrB;QAAA,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,EAClB,CAAC,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC;KACzD,AACF;IACD,IAAI,UAAU,IAAI,IAAI,EACpB;QAAA,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,EACjB,CAAC,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC;KACvD,AACF;IACD,OAAO,CAAC,CAAC,WAAW,CAAC;IACrB,OAAO,CAAC,CAAC,UAAU,CAAC;IACpB,OAAO,CAAC,CAAC;CACV,AAAC;;;AC1JF;AAEO,SAAS,wCAAa,CAC3B,OAAuC,EACvC,OAES,AAAY,EACrB,IAAuB,AAAY,EACnC;IACA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC1B,IAAI,GAAG,OAAO,CAAC;QACf,OAAO,GAAG,EAAE,CAAC;KACd;IACD,MAAM,EAAE,KAAK,EAAL,MAAK,GAAG,SAAS,CAAA,QAAE,IAAI,GAAG,EAAE,WAAE,MAAM,GAAG,QAAQ,GAAE,GAAG,OAAO,AAAC;IACpE,MAAM,SAAS,GAAG,CAAA,GAAA,kBAAW,CAAA,CAC3B,CAAC,KAAoB,GAAK;QACxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAC/C,OAAO,CAAC,KAAK,CAAC,CAAC;KAElB,EACD;QAAC,OAAO;QAAE,IAAI;KAAC,CAChB,AAAC;IAEF,OAAO,yCAAe,CAAC,MAAM,EAAE,MAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;CACxD;AAEM,SAAS,yCAAe,CAC7B,MAA8B,EAC9B,MAAa,EACb,OAA+B,EAC/B,IAAuB,AAAY,EACnC;IACA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAA,GAAA,kBAAW,CAAA,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,AAAC;IAE9D,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,MAAM,WAAW,GAAG,CAAC,KAAY,GAAK;YACpC,SAAS,CAAC,KAAK,CAAC,CAAC;SAClB,AAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,MAAK,EAAE,WAAW,CAAC,CAAC;QAC5C,OAAO,IAAM;YACX,MAAM,CAAC,mBAAmB,CAAC,MAAK,EAAE,WAAW,CAAC,CAAC;SAChD,CAAC;KACH,EAAE;QAAC,SAAS;QAAE,MAAK;QAAE,MAAM;KAAC,CAAC,CAAC;CAChC;;;AC5CD;;;;AAIA,MAAM,uBAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAExB,MAAM,yCAAG,GAAG,CAAA,GAAA,YAAI,CAAA,AAAC;AAEjB,MAAM,wCAAO,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,CAAC,KAAK,EAAE,GAAG,GAAK;IAChD,MAAM,QAAE,IAAI,CAAA,UAAE,MAAM,CAAA,aAAE,SAAS,CAAA,SAAE,KAAK,CAAA,aAAE,SAAS,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,AAAC;IACrE,OAAO,uBAAC,CAAC,yCAAG,EAAE;mBACZ,SAAS;QACT,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,MAAM;QAClB,GAAG,IAAI;KACR,CAAC,CAAC;CACJ,CAAC,AAAC;AAEI,SAAS,yCAAO,CAAC,KAAK,EAAE;IAC7B,OAAO,uBAAC,CAAC,wCAAO,EAAE;QAAE,OAAO,EAAE,MAAM;QAAE,aAAa,EAAE,KAAK;QAAE,GAAG,KAAK;KAAE,CAAC,CAAC;CACxE;AAEM,SAAS,yCAAO,CAAC,KAAK,EAAE;IAC7B,OAAO,uBAAC,CAAC,wCAAO,EAAE;QAAE,OAAO,EAAE,MAAM;QAAE,aAAa,EAAE,KAAK;QAAE,GAAG,KAAK;KAAE,CAAC,CAAC;CACxE;AAEM,SAAS,yCAAM,CAAC,KAAK,EAAE;IAC5B,OAAO,uBAAC,CAAC,wCAAO,EAAE;QAAE,IAAI,EAAE,CAAC;QAAE,GAAG,KAAK;KAAE,CAAC,CAAC;CAC1C;;;;;AbQD,MAAM,iCAAW,GAAc;IAC7B,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,KAAK;IACd,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE;QACjB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,AAAC;QAC/B,MAAM,KAAK,CAAC;KACb;IACD,UAAU,EAAC,CAAC,EAAE,EAAE;IAChB,cAAc,EAAC,CAAC,EAAE;QAChB,OAAO,CAAC,CAAC;KACV;CACF,AAAC;AAEF,SAAS,qCAAe,CAAC,EAAU,EAAE;IACnC,IAAI,GAAG,GAAG;QAAE,GAAG,EAAE;KAAE,AAAC;IACpB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,GAAK;QAChC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EACxB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;KAEnB,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;CACZ;AAED,SAAS,iCAAW,CAClB,KAA2B,EACM;IACjC,MAAM,UACJ,MAAM,GAAG,EAAE,iBACX,8DAA8D;IAC9D,YAAY,CAAA,eACZ,WAAW,CAAA,EACX,OAAO,EAAP,QAAO,CAAA,WACP,OAAO,CAAA,cACP,UAAU,CAAA,kBACV,cAAc,CAAA,EACd,GAAG,WAAW,EACf,GAAG,KAAK,AAAC;IAEV,IAAI,YAAY,GAAG,qCAAe,CAAC;sBACjC,YAAY;qBACZ,WAAW;QACX,OAAO,EAAP,QAAO;iBACP,OAAO;oBACP,UAAU;wBACV,cAAc;KACf,CAAC,AAAC;IAEH,MAAM,SAAS,GAAG;QAAE,GAAG,iCAAW;QAAE,GAAG,YAAY;QAAE,GAAG,MAAM;KAAE,AAAC;IACjE,OAAO;QAAC,WAAW;QAAE,SAAS;KAAC,CAAC;CACjC;AAED,MAAM,kCAAY,GAAG,CAAA,GAAA,YAAK,CAAA,CAAC,MAAM,EAAE,AAAC;AAEpC,SAAS,yCAAgB,CACvB,YAAkC,GAAG,EAAE,EACvB;IAChB,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,iCAAW,CAAC,YAAY,CAAC,AAAC;IAExD,MAAM,aAAa,GAAG,CAAA,GAAA,YAAK,CAAA,CAAC,MAAM,CAAC,WAAW,CAAC,AAAC;IAEhD,MAAM,YAAY,GAAG;uBACnB,aAAa;QACb,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE;gBAC7C,MAAM;KACP,AAAC;IAEF,OAAO,CAAA,GAAA,oBAAa,CAAA,CAAkB,YAAY,CAAC,CAAC;CACrD;IAED,+BAGC;UAHI,UAAS;IAAT,UAAS,CACZ,MAAI,IAAJ,MAAI;IADD,UAAS,CAEZ,KAAG,IAAH,KAAG;GAFA,+BAAS,KAAT,+BAAS;AAKd,MAAM,yCAAU,GAAG,yCAAgB,EAAE,AAAC;AAStC,eAAe,kCAAY,CACzB,GAAoB,EACpB,OAAqB,EACrB,IAAoB,EACpB;IACA,MAAM,kBAAE,cAAc,CAAA,YAAE,QAAQ,CAAA,EAAE,GAAG,yCAAU,CAAC,GAAG,CAAC,AAAC;IACrD,MAAM,QAAE,IAAI,CAAA,UAAE,MAAM,CAAA,UAAE,MAAM,CAAA,SAAE,KAAK,CAAA,EAAE,GAAG,IAAI,AAAC;IAC7C,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,AAAC;IAEjC,IAAI,GAAG,GAAyB,IAAI,AAAC;IACrC,IAAI,KAAK,GAAiB,IAAI,AAAC;IAC/B,IAAI;QACF,GAAG,GAAG,MAAM,OAAO,CAAC;QACpB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,OAAO,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAC3D,CAAC,OAAO,GAAG,EAAE;QACZ,KAAK,GAAG,GAAG,CAAC;KACb;IACD,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC;IACrD,IAAI,GAAG,CAAC,WAAW,EAAE;QACnB,mCAAmC;QACnC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE;YACjB,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;oBACjC,MAAM;SACP,CAAC,CAAC;KACJ,MACC,MAAM,KAAK,CAAC;CAEf;AAED,MAAM,yCAAU,GAAG,CAAC,GAAoB,GAAM,CAAA;QAC5C,QAAQ,EAAC,KAAa,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE;YACxC,sEAAsE;YACtE,qBAAqB;YACrB,uDAAuD;YACvD,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;gBACvC,GAAG,EAAE,KAAK;wBACV,MAAM;aACP,CAAC,AAAC;YACH,OAAO,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;SAC9B;QACD,cAAc,EAAC,IAAsB,GAAG,EAAE,EAAa;YACrD,IAAI,EAAE,GAAc;gBAAE,GAAG,GAAG,CAAC,MAAM;gBAAE,GAAG,IAAI;aAAE,AAAC;YAC/C,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,cAAc,GAAG,iCAAW,CAAC,cAAc,CAAC;YACpE,OAAO,EAAE,CAAC;SACX;KACF,CAAA,AAAC,AAAC;AAsBH,MAAM,yCAAU,GAAG,CAAC,GAAoB,GAAiB;IACvD,MAAM,iBAAE,aAAa,CAAA,EAAE,GAAG,GAAG,AAAC;IAC9B,OAAO;QACL,IAAI,EAAC,KAAa,EAAE,GAAG,IAAI,EAAE;YAC3B,IAAI,IAAI,AAAkB,EAAE,MAAM,AAAa,EAAE,OAAO,AAAK,AAAC;YAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EACnB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;iBAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAC1B,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;iBAClB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAC1B,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;iBAEjB,MAAM,iBAAiB,CAAC;YAE1B,MAAM,KAAK,EAAE,CAAC;YACd,IAAI,KAAK,EAAE,CAAC;YAEZ,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,iCAAW,CAAC,IAAI,CAAC,AAAC;YAE3C,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;gBAC7C,GAAG,WAAW;wBACd,MAAM;aACP,CAAC,AAAC;YACH,MAAM,IAAI,GAAG;uBAAE,KAAK;wBAAE,MAAM;gBAAE,MAAM,EAAE,+BAAS,CAAC,IAAI;sBAAE,IAAI;aAAE,AAAC;YAC7D,OAAO,kCAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SACrC;QACD,GAAG,EAAC,KAAa,EAAE,GAAG,IAAI,EAAE;YAC1B,IAAI,MAAM,AAAa,EAAE,IAAI,AAAkB,AAAC;YAChD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAClB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;iBACT,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EACzB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;YAExB,MAAM,KAAK,EAAE,CAAC;YACd,IAAI,KAAK,EAAE,CAAC;YAEZ,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,iCAAW,CAAC,IAAI,CAAC,AAAC;YAC7C,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,GAAG,CAAA,GAAA,cAAO,CAAA,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,AAAC;YAExE,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE;gBAAE,GAAG,WAAW;wBAAE,MAAM;aAAE,CAAC,AAAC;YACtD,MAAM,IAAI,GAAG;uBAAE,KAAK;wBAAE,MAAM;gBAAE,MAAM,EAAE,+BAAS,CAAC,GAAG;sBAAE,IAAI;aAAE,AAAC;YAC5D,OAAO,kCAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SACzC;KACF,CAAC;CACH,AAAC;AAEF,SAAS,wCAAW,CAAC,KAAuB,EAAE;IAC5C;;;IAGE,CACF,MAAM,WAAE,OAAO,GAAG,yCAAU,aAAE,QAAQ,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,AAAC;IAC1D,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,iCAAW,CAAC,IAAI,CAAC,AAAC;IAEhD,MAAM,aAAa,GAAG,CAAA,GAAA,YAAK,CAAA,CAAC,MAAM,CAAC,WAAW,CAAC,AAAC;IAEhD,MAAM,KAAK,GAAG;uBACZ,aAAa;QACb,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE;gBAC7C,MAAM;KACP,AAAC;IACF,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,OAAO,CAAC,QAAQ,EAAE;eAAE,KAAK;KAAE,EAAE,QAAQ,CAAC,CAAC;CACjD;AAED,MAAM,yCAAa,GAAG,CAAC,GAAmB,GAAG,yCAAU,GAAK;IAC1D,OAAO,yCAAU,CAAC,CAAA,GAAA,iBAAU,CAAA,CAAC,GAAG,CAAC,CAAC,CAAC;CACpC,AAAC;AAEF,MAAM,yCAAa,GAAG,CAAC,GAAmB,GAAG,yCAAU,GAAK;IAC1D,OAAO,yCAAU,CAAC,CAAA,GAAA,iBAAU,CAAA,CAAC,GAAG,CAAC,CAAC,CAAC;CACpC,AAAC;AASF,SAAS,yCAAgB,CAAC,OAAuB,GAAG,yCAAU,EAAE;IAC9D,OAAO,CAAA,GAAA,iBAAU,CAAA,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;CAC1C;AAED,SAAS,yCAAY,CACnB,KAAoB,EACpB,MAAmB,GAAG,IAAI,EAC1B,IAA6C,GAAG,EAAE,EAC/C;IACH,gCAAgC,CAEhC,MAAM,SAAS,GAAG,CAAA,GAAA,yCAAgB,CAAA,CAAC,MAAM,CAAC,AAAC;IAC3C,MAAM,IAAI,GAAG;QAAC,KAAK;QAAE,SAAS;KAAC,AAAC,EAAC,kCAAkC;IAEnE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAW,IAAI,CAAC,AAAC;IAErD,IAAI,OAAO,IAAI,KAAK,UAAU,EAC5B,IAAI,GAAG;QAAE,cAAc,EAAE,IAAI;KAAE,CAAC;IAGlC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAA,WAAE,OAAO,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,AAAC;IAC7D,IAAI,OAAE,GAAG,CAAA,EAAE,GAAG,yCAAa,CAAC,OAAO,CAAC,AAAC;IAErC,MAAM,WAAW,GAAG,iBAAkB;QACpC,IAAI,KAAK,IAAI,IAAI,EACf,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,AAAC;QAC3C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;KACvB,AAAC;IAEF,MAAM,UAAU,GACd,SAAS,IAAI,IAAI,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,WAAW,AAAC;IAErE,CAAA,GAAA,qBAAc,CAAA,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC;CACf;;ADlTD;AeAA;;;AAgBA,MAAM,sCAAgB,GAAG,CAAA,GAAA,oBAAa,CAAA,CAAkB,EAAE,CAAC,AAAC;AAErD,SAAS,yCAAY,CAAC,KAAwB,EAAE;IACrD,MAAM,YAAE,QAAQ,CAAA,OAAE,GAAG,CAAA,QAAE,IAAI,CAAA,EAAE,GAAG,KAAK,AAAC;IACtC,MAAM,SAAS,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,sCAAgB,CAAC,AAAC;IAC/C,MAAM,KAAK,GAAG;QAAE,GAAG,SAAS;QAAE,CAAC,GAAG,CAAC,EAAE,IAAI;KAAE,AAAC;IAC5C,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,sCAAgB,CAAC,QAAQ,EAAE;eAAE,KAAK;KAAE,EAAE,QAAQ,CAAC,CAAC;CAC1D;AASM,SAAS,yCAAe,CAAI,KAA2B,EAAE;IAC9D,MAAM,SAAE,KAAK,CAAA,UAAE,MAAM,CAAA,YAAE,QAAQ,CAAA,OAAE,GAAG,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,AAAC;IACxD,MAAM,IAAI,GAAa,CAAA,GAAA,yCAAY,CAAA,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,AAAC;IACzD,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAY,EAAE;aAAE,GAAG;cAAE,IAAI;KAAE,EAAE,QAAQ,CAAC,CAAC;CACjD;AAEM,SAAS,yCAAO,CAAC,GAAW,EAAE;IACnC,OAAO,CAAA,GAAA,iBAAU,CAAA,CAAC,sCAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;CAC1C;;;ACvCD;;;;;;ACDA;;AAQA,MAAM,qCAAe,GAAG,CAAA,GAAA,oBAAa,CAAA,CAAqB,IAAI,CAAC,AAAC;AAEhE,SAAS,yCAAgB,CAAC,KAAmD,EAAE;IAC7E,MAAM,YAAE,QAAQ,CAAA,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,AAAC;IACrC,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,qCAAe,CAAC,QAAQ,EAAE;eAAE,KAAK;KAAE,EAAE,QAAQ,CAAC,CAAC;CACzD;AAED,MAAM,yCAAW,GAAG,IAAM,CAAA,GAAA,iBAAU,CAAA,CAAC,qCAAe,CAAC,AAAC;;;ADCtD,MAAM,0CAAoB,GAAG,CAAC,KAA0B,GAAK;IAC3D,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,4BAA4B,EAAE;QAAC,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,cAAO,CAAA,CAAC;KAAC,CAAC,CAAC;CACtD,AAAC;AA2BF,MAAM,uCAAa,SAAY,CAAA,GAAA,gBAAS,CAAA;IACtC,OAAO,WAAW,IAAG,GAAA,yCAAU,EAAC;IAChC,OAAO,YAAY,GAAG;QACpB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,IAAM,EAAE;QACnB,UAAU,EAAE,IAAI;QAChB,4CAA4C;QAC5C,uCAAuC;QACvC,WAAW,EAAE,0CAAoB;QACjC,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,CAAA,IAAI,GAAI;YAChB,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,yCAAQ,CAAA,EAAE;sBAAE,IAAI;aAAE,CAAC,CAAC;SAC9B;KACF,CAAC;IAIF,YAAY,KAAK,EAAE,OAAO,CAAE;QAC1B,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEhE,IAAI,CAAC,KAAK,GAAG;YAAE,IAAI,EAAE,IAAI;YAAE,SAAS,EAAE,KAAK;SAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAED,QAAQ,CAAC,KAAK,GAAG,IAAI,EAAE;QACrB,MAAM,SAAE,KAAK,CAAA,UAAE,MAAM,CAAA,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,AAAC;QAC9C,MAAM,YAAE,QAAQ,CAAA,EAAE,GAAG,CAAA,GAAA,yCAAU,CAAA,CAAC,IAAI,CAAC,OAAO,CAAC,AAAC;QAC9C,OAAO,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KAChC;IAED,kBAAkB,CAAC,SAAS,EAAE;QAC5B,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAC5C,IAAI,CAAC,YAAY,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAElE,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO;QAEzD,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;KAC5B;IAED,MAAM,OAAO,GAAG;QACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,mCAAmC;QACnC,WAAW;QACX,IAAI;QACJ,MAAM,SAAE,KAAK,CAAA,UAAE,MAAM,CAAA,QAAE,IAAI,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAC3C,IAAI,KAAK,IAAI,IAAI,EACf,OAAO;QAET,MAAM,OAAE,GAAG,CAAA,EAAE,GAAG,CAAA,GAAA,yCAAU,CAAA,CAAC,IAAI,CAAC,OAAO,CAAC,AAAC;QACzC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS,EAAE,IAAI;SAAE,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,AAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,sBAAsB;QACtB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC;kBAAE,IAAI;YAAE,SAAS,EAAE,KAAK;SAAE,CAAC,CAAC;KAC3C;IAED,WAAW,GAAG;QACZ,MAAM,QAAE,IAAI,CAAA,aAAE,SAAS,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACvC,MAAM,YAAE,QAAQ,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAEhC,IAAI,OAAO,QAAQ,IAAI,UAAU,EAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAuB;aACvC,IAAI,CAAA,GAAA,qBAAc,CAAA,CAAC,QAAQ,CAAC,EACjC,OAAO,CAAA,GAAA,mBAAY,CAAA,CAAC,QAAQ,EAAE;kBAC5B,IAAI;uBACJ,SAAS;SACV,CAAC,CAAC;aAEH,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;KAEL;IAED,MAAM,GAAG;QACP,MAAM,QAAE,IAAI,CAAA,aAAE,SAAS,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACvC,MAAM,eAAE,WAAW,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACnC,IAAI,IAAI,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,EACrC,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,WAAW,EAAE;uBAAE,SAAS;SAAE,CAAC,CAAC;QAGvC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EACrB,OAAO,CAAA,GAAA,sBAAC,CAAA,CACN,CAAA,GAAA,yCAAgB,CAAA,EAChB;YACE,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,WAAW,EAAE,CAAC;SACf,EACD,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;QAEJ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;KAC3B;CACF;;;AElJD;;;;AAKA,MAAM,yCAAU,GAAG,CAAA,KAAK,GAAI;IAC1B,MAAM,eAAE,WAAW,CAAA,gBAAE,YAAY,CAAA,WAAE,OAAO,CAAA,EAAE,GAAG,KAAK,AAAC;IACrD,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,kBAAW,CAAA,EAAE;QACpB,CAAA,GAAA,sBAAC,CAAA,CACC,CAAA,GAAA,aAAM,CAAA,EACN;YACE,OAAO,EAAE,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;YACjC,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,WAAW,IAAI,CAAC;SAC3B,EACD,UAAU,CACX;QACD,CAAA,GAAA,sBAAC,CAAA,CACC,CAAA,GAAA,aAAM,CAAA,EACN;YACE,OAAO,EAAE,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;YACjC,SAAS,EAAE,aAAa;YACxB,QAAQ,EAAE,YAAY;SACvB,EACD,MAAM,CACP;KACF,CAAC,CAAC;CACJ,AAAC;AAEF,MAAM,yCAAY,SAAS,CAAA,GAAA,gBAAS,CAAA;IAClC,OAAO,YAAY,GAAG;QACpB,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,EAAE;QACX,aAAa,EAAE,KAAK;QACpB,gBAAgB,EAAE,IAAI;QACtB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;QACV,aAAa,EAAC,QAAQ,EAAE;YACtB,MAAM,WAAE,OAAO,CAAA,EAAE,GAAG,QAAQ,AAAC;YAC7B,OAAO,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;SAC3C;KACF,CAAC;IACF,YAAY,KAAK,CAAE;QACjB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG;YAAE,WAAW,EAAE,CAAC;YAAE,KAAK,EAAE,IAAI;SAAE,CAAC;KAC9C;IAED,OAAO,CAAC,CAAC,EAAE;QACT,OAAO,IAAM;YACX,OAAO,IAAI,CAAC,QAAQ,CAAC;gBAAE,WAAW,EAAE,CAAC;aAAE,CAAC,CAAC;SAC1C,CAAC;KACH;IAED,gBAAgB,GAAG;QACjB,MAAM,WAAE,OAAO,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAC/B,MAAM,SAAE,KAAK,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAC7B,IAAI,YAAY,GAAG,KAAK,AAAC;QACzB,IAAI,cAAc,GAAG,IAAI,AAAC;QAC1B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,AAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,AAAC;QAEjC,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,IAAI,WAAW,IAAI,QAAQ,EAAE;gBAC3B,WAAW,GAAG,QAAQ,CAAC;gBACvB,YAAY,GAAG,IAAI,CAAC;aACrB;YACD,cAAc,GAAG,CAAA,GAAA,sBAAC,CAAA,CAAC,KAAK,EAAE;gBAAE,QAAQ,EAAE,IAAI;aAAE,EAAE;gBAC5C,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC;aAC3D,CAAC,CAAC;SACJ;QAED,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,yBAAyB,EAAE;YAClC,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAU,EAAE;6BAAE,WAAW;8BAAE,YAAY;gBAAE,OAAO,EAAE,IAAI,CAAC,OAAO;aAAE,CAAC;YACnE,IAAI,CAAC,KAAK,CAAC,eAAe;YAC1B,cAAc;SACf,CAAC,CAAC;KACJ;IAED,QAAQ,GAAG;QACT,MAAM,SAAE,KAAK,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAC7B,MAAM,WAAE,OAAO,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAC/B,IAAI,KAAK,IAAI,IAAI,EACf,OAAO,IAAI,CAAC;QAEd,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,AAAC;QACxC,IAAI,KAAK,GAAG,OAAO,KAAK,CAAC,EACvB,KAAK,IAAI,CAAC,CAAC;QAEb,OAAO,KAAK,CAAC;KACd;IAED,WAAW,GAAG;QACZ,IAAI,eAAE,WAAW,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,AAAC;QACjC,IAAI,QAAQ,IAAI,IAAI,IAAI,WAAW,IAAI,QAAQ,EAC7C,OAAO,QAAQ,CAAC;QAElB,IAAI,WAAW,GAAG,CAAC,EACjB,WAAW,GAAG,CAAC,CAAC;QAElB,OAAO,WAAW,CAAC;KACpB;IAED,MAAM,GAAG;QACP,MAAM,UAAE,MAAM,CAAA,WAAE,OAAO,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACvC,IAAI,UAAE,MAAM,CAAA,SAAE,KAAK,CAAA,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,AAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,AAAC;QACvC,IAAI,MAAM,IAAI,IAAI,EAChB,MAAM,GAAG,CAAC,CAAC;QAEb,MAAM,IAAI,WAAW,GAAG,OAAO,CAAC;QAEhC,oCAAoC;QACpC,IAAI,MAAM,GAAG,CAAC,EACZ,MAAM,GAAG,CAAC,CAAC;QAGb,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,OAAO,EAClC,KAAK,GAAG,OAAO,CAAC;QAGlB,OAAO;oBAAE,MAAM;mBAAE,KAAK;YAAE,GAAG,WAAW;SAAE,CAAC;KAC1C;IAED,MAAM,GAAG;QACP,IAAI,SACF,KAAK,CAAA,WACL,OAAO,CAAA,YACP,QAAQ,CAAA,iBACR,aAAa,CAAA,cACb,UAAU,CAAA,SACV,KAAK,CAAA,iBACL,aAAa,CAAA,oBACb,gBAAgB,CAAA,mBAChB,eAAe,CAAA,UACf,MAAM,CAAA,QACN,IAAI,CAAA,EACJ,GAAG,IAAI,EACR,GAAG,IAAI,CAAC,KAAK,AAAC;QAEf,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAEvB,iCAAiC;QACjC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAA,EAAE,GAAG,IAAI,AAAC;QAC1C,MAAM,UAAU,GAAG,CAAA,QAAQ,GAAI;YAC7B,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC;uBAAE,KAAK;aAAE,CAAC,CAAC;YACzB,wCAAwC;YACxC,IAAI,YAAY,IAAI,IAAI,EACtB,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;SAEjC,AAAC;QAEF,kBAAkB;QAClB,IAAI,GAAG;YAAE,GAAG,IAAI;wBAAE,UAAU;SAAE,CAAC;QAE/B,MAAM,SAAS,GAAG,CAAA,IAAI,GAAI;YACxB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EACxB,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,oBAAa,CAAA,EAAE;gBAAE,IAAI,EAAE,QAAQ;gBAAE,KAAK,EAAE,YAAY;aAAE,CAAC,CAAC;YAEnE,aAAa;YACb,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvB,AAAC;QAEF,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,0BAA0B,EAAE,IAAI,EAAE;YACzC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,SAAS;YACnD,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,uCAAa,CAAA,EAAE;uBAAE,KAAK;wBAAE,MAAM;sBAAE,IAAI;4BAAE,UAAU;aAAE,EAAE,SAAS,CAAC;YAChE,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,SAAS;SACvD,CAAC,CAAC;KACJ;CACF;;;;;;;AnB9KD;AqBCA;;;;;;;;AAgEA,SAAS,2CAAqB,CAC5B,KAAqB,EACrB,MAAuB,EACvB;IACA,OAAQ,MAAM,CAAC,IAAI;QACjB,KAAK,cAAc;YACjB,OAAO,CAAA,GAAA,yBAAM,CAAA,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,WAAW;YACd,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,CAAA,GAAA,yBAAM,CAAA,CAAC,KAAK,EAAE;gBACnB,aAAa;gBACb,aAAa,EAAE;oBAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;iBAAE;aACjD,CAAC,CAAC;KACN;CACF;AAED,SAAS,oCAAc,CAAC,KAAK,EAAE;IAC7B,MAAM,WAAE,OAAO,CAAA,YAAE,QAAQ,CAAA,aAAE,SAAS,CAAA,YAAE,QAAQ,CAAA,EAAE,GAAG,KAAK,AAAC;IACzD,MAAM,OAAE,GAAG,CAAA,UAAE,MAAM,CAAA,EAAE,GAAG,CAAA,GAAA,gBAAS,CAAA,CAAC;QAAE,UAAU,EAAE,oBAAoB;KAAE,CAAC,AAAC;IAExE,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO;QAChC,QAAQ,EAAE,CAAC;KACZ,EAAE;QAAC,MAAM;QAAE,OAAO;KAAC,CAAC,CAAC;IAEtB,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,+BAA+B,EAAE;mBAAE,SAAS;KAAE,EAAE;QACvD,QAAQ;QACR,iDAAiD;QACjD,CAAA,GAAA,sBAAC,CAAA,CAAC,mBAAmB,EAAE;iBAAE,GAAG;SAAE,CAAC;KAChC,CAAC,CAAC;CACJ;AAED,MAAM,iCAAW,GAAG,CAAC,KAAK,GAAK;IAC7B,MAAM,WACJ,OAAO,CAAA,SACP,KAAK,GAAG,gBAAgB,gBACxB,WAAW,GAAG,IAAI,GAClB,GAAG,IAAI,EACR,GAAG,KAAK,AAAC;IAEV,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,iBAAiB,EAAE;QAC1B,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,oBAAa,CAAA,EAAE;YACf,IAAI,EAAE,iBAAiB;YACvB,SAAS,EAAE,mBAAmB;mBAC9B,KAAK;yBACL,WAAW;YACX,GAAG,IAAI;SACR,CAAC;KACH,CAAC,CAAC;CACJ,AAAC;AAEF,MAAM,wCAAkB,GAAG,CAAC,KAO3B,GAAK;IACJ,MAAM,WAAE,OAAO,GAAG,EAAE,gBAAE,WAAW,GAAG,CAAC,aAAE,QAAQ,GAAG,SAAS,GAAE,GAAG,KAAK,AAAC;IACtE,MAAM,cAAE,UAAU,GAAG,CAAC,GAAE,GAAG,KAAK,AAAC;IAEjC,IAAI,WAAW,GAAG,IAAI,AAAC;IACvB,IAAI,UAAU,IAAI,IAAI,EAAE;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,AAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,AAAC;QACnD,WAAW,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,iCAAW,EAAE;QACpB,IAAI,EAAE,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,cAAO,CAAA,CAAC;QAChB,KAAK,EAAE,UAAU,GAAG,QAAQ;qBAC5B,WAAW;KACZ,CAAC,CAAC;CACJ,AAAC;AAEF,SAAS,sCAAgB,GAAG;IAC1B,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,iCAAW,EAAE;QACpB,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;CACJ;AAED,SAAS,yCAAmB,CAAC,cAAE,UAAU,CAAA,EAAE,GAAG,IAAI,EAA2B,EAAE;IAC7E,MAAM,WAAW,GAAG,UAAU,IAAI,IAAI,GAAG,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,IAAI,AAAC;IAC5E,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,iCAAW,EAAE;QACpB,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,iBAAiB;qBACxB,WAAW;QACX,GAAG,IAAI;KACR,CAAC,CAAC;CACJ;AAED,SAAS,yCAAkB,CAAI,KAA6B,EAAE;IAC5D;;;;IAIE,CACF,MAAM,SACJ,KAAK,CAAA,UACL,MAAM,CAAA,QACN,IAAI,CAAA,eACJ,WAAW,CAAA,aACX,SAAS,CAAA,iBACT,aAAa,GAAG,CAAA,GAAA,yCAAQ,CAAA,uBACxB,kBAAkB,GAAG,wCAAkB,qBACvC,gBAAgB,GAAG,sCAAgB,wBACnC,mBAAmB,GAAG,yCAAmB,qBACzC,gBAAgB,GAAG,aAAa,YAChC,OAAO,GAAG,EAAE,cACZ,SAAS,GAAG,CAAC,KACd,GAAG,KAAK,AAAC;IACV,MAAM,OAAE,GAAG,CAAA,EAAE,GAAG,CAAA,GAAA,yCAAa,CAAA,EAAE,AAAC;IAChC,MAAM,YAAE,QAAQ,CAAA,iBAAE,aAAa,CAAA,YAAE,QAAQ,CAAA,WAAE,OAAO,CAAA,EAAE,GAAG,KAAK,AAAC;IAE7D,MAAM,YAAY,GAAmB;QACnC,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,MAAM;QACpB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,SAAS;KACrB,AAAC;IAEF,MAAM,UAAU,GAAG,CAAC,AAAC;IAErB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAA,GAAA,iBAAU,CAAA,CAClC,2CAAqB,EACrB,YAAY,CACb,AAAC;IAEF,MAAM,QAAQ,GAAG,CAAA,GAAA,kBAAW,CAAA,CAC1B,OAAO,MAAmB,GAAK;QAC7B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,AAAC;QAClD,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,AAAC;QAC/B,MAAM,IAAI,GAAG;YAAE,KAAK,EAAE,QAAQ;SAAE,AAAC;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,AAAC;QACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,AAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,qCAAqC;QACrC,uFAAuF;QACvF,qCAAqC;QACrC,WAAW;QACX,IAAI;QAEJ,IAAI,EAAE,GAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,AAAC;QACjD,IAAI,aAAa,GAAG,EAAE,IAAI,IAAI,AAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QAExC,MAAM,CAAC,QAAQ,CAAC;YACd,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI;gBACX,aAAa;gBACb,YAAY,EAAE;oBAAE,IAAI,EAAE,EAAE;iBAAE;gBAC1B,SAAS,EAAE;oBAAE,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC;iBAAE;gBACxC,KAAK,EAAE;oBAAE,IAAI,EAAE,KAAK;iBAAE;gBACtB,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa;iBAC3D;gBACD,aAAa,EAAE;oBAAE,IAAI,EAAE,IAAI;iBAAE;aAC9B;SACF,CAAC,CAAC;KACJ,EACD;QAAC,KAAK,CAAC,KAAK;QAAE,KAAK;QAAE,MAAM;QAAE,IAAI;KAAC,CACnC,AAAC;IAEF,MAAM,QAAQ,GAAG,CAAA,GAAA,kBAAW,CAAA,CAAC,IAAM;QACjC,QAAQ,CAAC;YACP,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,KAAK,CAAC,YAAY;sBAC1B,QAAQ;YACR,aAAa;YACb,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;KACJ,EAAE;QAAC,KAAK,CAAC,YAAY;QAAE,QAAQ;QAAE,KAAK;QAAE,MAAM;QAAE,IAAI;KAAC,CAAC,AAAC;IAExD,MAAM,eAAe,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,IAAI,CAAC,AAAC;IACrC,MAAM,eAAe,GAAG,CAAA,GAAA,kBAAW,CAAA,CACjC,WAAY;QACV,8BAA8B;QAC9B,IAAI,eAAe,CAAC,OAAO,EAAE;YAC3B,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;YAChC,OAAO;SACR;QACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC;;MAEA,CACA,kDAAkD;QAClD,+BAA+B;QAC/B,oEAAoE;QACpE,QAAQ,CAAC;YAAE,IAAI,EAAE,cAAc;YAAE,IAAI,EAAE;gBAAE,IAAI,EAAE,YAAY;aAAE;SAAE,CAAC,CAAC;IACjE,mBAAmB;KACpB,EACD;QAAC,eAAe;QAAE,KAAK;QAAE,MAAM;QAAE,IAAI;KAAC,CACvC,AAAC;IAEF,CAAA,GAAA,gBAAS,CAAA,CAAC,eAAe,EAAE;QAAC,KAAK,CAAC,KAAK;QAAE,KAAK,CAAC,MAAM;KAAC,CAAC,CAAC;IAExD,IAAI,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC;IAE/B,kDAAkD;IAElD,0EAA0E;IAE1E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,AAAC;IACzB,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,AAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,AAAC;IAC/C,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,SAAS,AAAC;IAChD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,AAAC;IAEnD,OAAO,CAAA,GAAA,sBAAC,CAAA,CACN,oCAAc,EACd;QACE,SAAS,EAAE,EAAE;kBACb,QAAQ;QACR,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI;QACrD,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,IAAI;mBACf,SAAS;KACV,EACD;QACE,CAAA,GAAA,sBAAC,CAAA,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC;QAC/B,CAAA,GAAA,sBAAC,CAAA,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA,GAAA,yCAAgB,CAAA,EAAE;wBAAE,UAAU;YAAE,WAAW,EAAE,CAAC;SAAE,EAAE;YAC/D,CAAA,GAAA,sBAAC,CAAA,CACC,gBAAgB,EAChB;sBAAE,IAAI;aAAE,EACR,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAK;gBACjB,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,aAAa,EAAE;oBAAE,GAAG,EAAE,CAAC;oBAAE,IAAI,EAAE,CAAC;oBAAE,KAAK,EAAE,CAAC;iBAAE,CAAC,CAAC;aACxD,CAAC,CACH;YACD,aAAa;YACb,CAAA,GAAA,sBAAC,CAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE;4BAClC,UAAU;gBACV,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,IAAI,CAAC,MAAM;yBACxB,OAAO;aACR,CAAC;YACF,aAAa;YACb,CAAA,GAAA,sBAAC,CAAA,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,mBAAmB,EAAE;4BAAE,UAAU;aAAE,CAAC;SACtD,CAAC;KACH,CACF,CAAC;CACH;AAED,yCAAkB,CAAC,YAAY,GAAG;IAChC,OAAO,EAAC,CAAC,EAAE,CAAC,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IACD,QAAQ,EAAC,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;KACV;IACD,QAAQ,EAAC,CAAC,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IACD,aAAa,EAAC,QAAQ,EAAE,MAAM,EAAE;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,AAAC;QAClC,OAAO;YAAE,GAAG,MAAM;YAAE,IAAI,EAAE,QAAQ,GAAG,CAAC;SAAE,CAAC;KAC1C;IACD,WAAW,EAAE,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,cAAO,CAAA,CAAC;CACxB,CAAC;;;AC1UF;;;ACAA;;;AAUA,SAAS,yCAAY,CAAC,KAAQ,EAAE;IAC9B,IAAI,gBACF,YAAY,GAAG,IAAM,EAAE,iBACvB,YAAY,CAAA,mBACZ,eAAe,GAAG,WAAW,GAC7B,GAAG,IAAI,EACR,GAAG,KAAK,AAAC;IACV,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,KAAK,CAAC,AAAC;IAEnD,YAAY,GACV,YAAY,IACZ,CAAA,GAAA,sBAAC,CAAA,CAAC;QAAC,kCAAkC;QAAE,eAAe;QAAE,GAAG;KAAC,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAK;QACtB,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,eAAe,EAAE,CAAC;KACrB,AAAC;IAEF,MAAM,OAAO,GAAG,CAAC,CAAC,GAAK;QACrB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC,eAAe,EAAE,CAAC;KACrB,AAAC;IAEF,MAAM,MAAM,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,MAAM,AAAC;IAC7B,MAAM,IAAI,GAAG,OAAO,AAAC;IAErB,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC;QACP,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;qBAAE,OAAO;kBAAE,IAAI;oBAAE,MAAM;YAAE,GAAG,IAAI;SAAE,CAAC;QAC7C,CAAA,GAAA,sBAAC,CAAA,CACC,CAAA,GAAA,YAAK,CAAA,EACL;YACE,MAAM,EAAE,YAAY;YACpB,gBAAgB,EAAE,QAAQ;YAC1B,iBAAiB,EAAE,QAAQ;kBAC3B,IAAI;oBACJ,MAAM;sBACN,QAAQ;YACR,SAAS,EAAE,CAAC,CAAC,GAAK;gBAChB,YAAY,EAAE,CAAC;gBACf,QAAQ,CAAC,CAAC,CAAC,CAAC;aACb;SACF,EACD,YAAY,CACb;KACF,CAAC,CAAC;CACJ;;;ADnDD,MAAM,yCAAU,GAAG,SAAU,KAAK,EAAE;IAClC,IAAI,aAAE,SAAS,CAAA,cAAE,UAAU,CAAA,YAAE,QAAQ,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,AAAC;IACzD,SAAS,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACjD,IAAI,IAAI,GAA6B,aAAa,AAAC;IACnD,IAAI,UAAU,EAAE;QACd,IAAI,GAAG,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,cAAO,CAAA,EAAE;YAAE,IAAI,EAAE,EAAE;SAAE,CAAC,CAAC;QAChC,QAAQ,GAAG,IAAI,CAAC;KACjB;IAED,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;cACf,IAAI;QACJ,MAAM,EAAE,CAAA,GAAA,aAAM,CAAA,CAAC,OAAO;mBACtB,SAAS;kBACT,QAAQ;QACR,GAAG,IAAI;KACR,CAAC,CAAC;CACJ,AAAC;AAEF,MAAM,yCAAY,GAAG,SAAU,KAAK,EAAE;IACpC,IAAI,aAAE,SAAS,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,AAAC;IACnC,SAAS,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAEnD,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;QACf,MAAM,EAAE,CAAA,GAAA,aAAM,CAAA,CAAC,OAAO;mBACtB,SAAS;QACT,GAAG,IAAI;KACR,CAAC,CAAC;CACJ,AAAC;AAEF,MAAM,yCAAU,GAAG,SAAU,KAAK,EAAE;IAClC,IAAI,aAAE,SAAS,CAAA,UAAE,MAAM,CAAA,QAAE,IAAI,CAAA,aAAE,SAAS,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,AAAC;IAC5D,IAAI,SAAS,EAAE;QACb,IAAI,MAAM,IAAI,IAAI,EAChB,MAAM,GAAG,IAAI,CAAC;QAEhB,IAAI,IAAI,IAAI,IAAI,EACd,IAAI,GAAG,MAAM,CAAC;KAEjB,MAAM;QACL,IAAI,MAAM,IAAI,IAAI,EAChB,MAAM,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,OAAO,CAAC;QAE1B,IAAI,IAAI,IAAI,IAAI,EACd,IAAI,GAAG,MAAM,CAAC;KAEjB;IAED,SAAS,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAEjD,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;cACf,IAAI;gBACJ,MAAM;mBACN,SAAS;QACT,GAAG,IAAI;KACR,CAAC,CAAC;CACJ,AAAC;;;AEzDF;;;AAGA,uBAAuB;AAEvB,MAAM,kCAAY,GAAG,CAAA,GAAA,cAAO,CAAA,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE,kBAAkB,CAAC,AAAC;AAQzD,MAAM,yCAAa,SAAS,CAAA,GAAA,gBAAS,CAAA;IACnC,OAAO,YAAY,GAAG;QACpB,KAAK,EAAE,OAAO;QACd,8CAA8C;QAC9C,8BAA8B;QAC9B,SAAS,EAAE,IAAI;KAChB,CAAC;IACF,YAAY,KAAK,CAAE;QACjB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YAAE,MAAM,EAAE,KAAK;SAAE,CAAC;KAChC;IAED,kBAAkB,GAAG;QACnB,uDAAuD;QACvD,MAAM,aAAE,SAAS,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EACnB,OAAO;QAET,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,AAAC;QAC5C,IAAI,MAAM,IAAI,IAAI,EAChB,OAAO;QAET,OAAO,IAAI,CAAC,QAAQ,CAAC;oBAAE,MAAM;SAAE,CAAC,CAAC;KAClC;IAED;;;IAGE,CACF,UAAU,GAAG;QACX,IAAI;YACF,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,AAAC;YAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;SAC7B,CAAC,OAAO,KAAK,EAAE;YACd,OAAO,EAAE,CAAC;SACX;KACF;IAED,iBAAiB,GAAG;QAClB,uDAAuD;QACvD,MAAM,aAAE,SAAS,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EACnB,OAAO;QAET,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,AAAC;QAClD,IAAI,MAAM,IAAI,IAAI,EAChB,MAAM,GAAG,KAAK,CAAC;QAEjB,OAAO,IAAI,CAAC,QAAQ,CAAC;oBAAE,MAAM;SAAE,CAAC,CAAC;KAClC;IAED,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE;QACvC,kCAAkC;QAClC,MAAM,aAAE,SAAS,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EACnB,OAAO;QAET,MAAM,UAAE,MAAM,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAC9B,IAAI,MAAM,KAAK,SAAS,CAAC,MAAM,EAC7B,OAAO;QAET,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,AAAC;QAC5B,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,AAAC;QAC5B,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;KAC/D;IAED,MAAM,GAAG;QACP,IAAI,SAAE,KAAK,CAAA,YAAE,QAAQ,CAAA,aAAE,SAAS,CAAA,eAAE,WAAW,CAAA,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACvE,MAAM,UAAE,MAAM,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAE9B,MAAM,IAAI,GAAG,MAAM,GAAG,cAAc,GAAG,YAAY,AAAC;QACpD,MAAM,OAAO,GAAG,IAAM,IAAI,CAAC,QAAQ,CAAC;gBAAE,MAAM,EAAE,CAAC,MAAM;aAAE,CAAC,AAAC;QAEzD,IAAI,WAAW,IAAI,IAAI,EACrB,WAAW,GAAG,IAAI,CAAC;QAGrB,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,oBAAoB,EAAE,KAAK,EAAE;YACpC,CAAA,GAAA,sBAAC,CAAA,CAAC,kBAAkB,EAAE;gBACpB,CAAA,GAAA,sBAAC,CAAA,CAAC,kCAAY,EAAE;0BAAE,IAAI;oBAAE,OAAO,EAAE,IAAI;6BAAE,OAAO;oBAAE,IAAI,EAAE,IAAI;iBAAE,EAAE;oBAC5D,CAAA,GAAA,sBAAC,CAAA,CAAC,IAAI,EAAE,KAAK,CAAC;oBACd,CAAA,GAAA,sBAAC,CAAA,CAAC,eAAe,CAAC;iBACnB,CAAC;gBACF,WAAW;aACZ,CAAC;YACF,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,eAAQ,CAAA,EAAE;wBAAE,MAAM;aAAE,EAAE,QAAQ,CAAC;SAClC,CAAC,CAAC;KACJ;CACF;;;ACxGD;;AAGA,SAAS,yCAAQ,CAAC,KAAK,EAAE;IACvB,IAAI,iBACF,aAAa,GAAG,GAAG,OACnB,EAAE,CAAA,QACF,IAAI,CAAA,aACJ,SAAS,CAAA,aACT,SAAS,GAAG,CAAC,GACb,GAAG,IAAI,EACR,GAAG,KAAK,AAAC;IAEV,SAAS,GAAG,CAAA,GAAA,iBAAU,CAAA,CACpB,WAAW,EACX,UAAU,EACV,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,EAC5B,SAAS,CACV,CAAC;IAEF,IAAI,aAAa,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;IACpD,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,aAAa,EAAE;YAAE,EAAE;cAAE,IAAI;mBAAE,SAAS;QAAE,GAAG,IAAI;KAAE,CAAC,CAAC;CAC3D;;;ACpBD;;;;;AAMA,MAAM,kCAAY,GAAG,SAAU,KAAK,EAAE;IACpC,MAAM,QAAE,IAAI,CAAA,EAAE,GAAG,KAAK,AAAC;IACvB,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,UAAG,CAAA,EAAE;QAAE,IAAI,EAAE,UAAU;KAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;CAChD,AAAC;AAEF,MAAM,8BAAQ,GAAG,SAAU,KAAK,EAAE;IAChC,IAAI,SAAE,KAAK,CAAA,eAAE,WAAW,CAAA,EAAE,GAAG,KAAK,AAAC;IACnC,IAAI,WAAW,IAAI,IAAI,EACrB,WAAW,GAAG,gBAAgB,CAAC;IAEjC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAE,CAAA,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA,AAAC,EACtC,OAAO,WAAW,CAAC;IAErB,OAAO,CAAA,GAAA,sBAAC,CAAA,CACN,WAAW,EACX,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,GAAK,CAAA,GAAA,sBAAC,CAAA,CAAC,kCAAY,EAAE;kBAAE,IAAI;SAAE,CAAC,CAAC,CAC/C,CAAC;CACH,AAAC;AAQF,MAAM,yCAAmB,SAAS,CAAA,GAAA,gBAAS,CAAA;IACzC,OAAO,YAAY,GAAG;QACpB,SAAS,IAAG,EAAE;QACd,QAAQ,IAAG,EAAE;KACd,CAAC;IAEF,YAAY,KAAK,CAAE;QACjB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACtD;IAED,cAAc,CAAC,gBAAE,YAAY,CAAA,iBAAE,aAAa,CAAA,gBAAE,YAAY,CAAA,EAAE,EAAE;QAC5D,MAAM,SAAE,KAAK,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAC7B,MAAM,SAAS,GAAG,YAAY,EAAE,AAAC;QACjC,MAAM,SAAS,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,aAAa,EAAE;YAC1C,iBAAiB,EAAE,YAAY;SAChC,CAAC,AAAC;QACH,MAAM,UAAU,GAAG,aAAa,EAAE,AAAC;QACnC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;QACtB,UAAU,CAAC,SAAS,GAAG,WAAW,CAAC;QACnC,IAAI,GAAG,GAAG,iBAAiB,AAAC;QAC5B,IAAI,CAAC,YAAY,EACf,GAAG,IAAI,sBAAsB,CAAC;QAGhC,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,KAAK,EAAE;uBAAE,SAAS;YAAE,GAAG,SAAS;SAAE,EAAE;YAC3C,CAAA,GAAA,sBAAC,CAAA,CAAC,gCAAgC,EAAE;gBAClC,CAAA,GAAA,sBAAC,CAAA,CAAC,OAAO,EAAE,UAAU,CAAC;gBACtB,CAAA,GAAA,sBAAC,CAAA,CAAC,2BAA2B,EAAE;oBAC7B,CAAA,GAAA,sBAAC,CAAA,CAAC,8BAAQ,EAAE;+BAAE,KAAK;wBAAE,WAAW,EAAE,GAAG;qBAAE,CAAC;iBACzC,CAAC;aACH,CAAC;SACH,CAAC,CAAC;KACJ;IAED,MAAM,GAAG;QACP,OAAO,CAAA,GAAA,sBAAC,CAAA,CACN,CAAA,GAAA,oBAAQ,CAAA,EACR;YACE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC5B,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;SACxC,EACD,IAAI,CAAC,cAAc,CACpB,CAAC;KACH;CACF;;;AC9ED;;;AAiBA,MAAM,yCAAa,SAAS,CAAA,GAAA,gBAAS,CAAA;IACnC,YAAY,KAAK,CAAE;QACjB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YAAE,SAAS,EAAE,IAAI;SAAE,CAAC;KAClC;IAED,MAAM,GAAG;QACP,IAAI,aAAE,SAAS,CAAA,YAAE,QAAQ,CAAA,OAAE,GAAG,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAC9C,MAAM,aAAE,SAAS,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EACnB,SAAS,GAAG,GAAG,CAAC;QAElB,IAAI,QAAQ,IAAI,IAAI,EAClB,QAAQ,GAAG,GAAG,CAAC;QAEjB,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,EAC9B,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;YAE/B,IAAI,QAAQ,GAAG,SAAS,CAAC,KAAK,EAC5B,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;SAE9B;QAED,MAAM,QAAQ,GAAG;uBACf,SAAS;sBACT,QAAQ;SACT,AAAC;QAEF,MAAM,KAAK,GAAG;uBAAE,SAAS;sBAAE,QAAQ;SAAE,AAAC;QACtC,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,qBAAqB,EAAE;mBAAE,KAAK;SAAE,EAAE;YACzC,CAAA,GAAA,sBAAC,CAAA,CAAC,KAAK,EAAE;qBAAE,GAAG;gBAAE,KAAK,EAAE,QAAQ;aAAE,CAAC;SACnC,CAAC,CAAC;KACJ;IAED,iBAAiB,GAAG;QAClB,MAAM,EAAE,GAAG,CAAA,GAAA,kBAAW,CAAA,CAAC,IAAI,CAAC,AAAC;QAC7B,aAAa;QACb,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,AAAC;QACpC,OAAQ,GAAG,CAAC,MAAM,GAAG,IAAM;YACzB,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,GAAG,CAAC,AAAC;YACrC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,AAAC;YACnC,OAAO,IAAI,CAAC,QAAQ,CAAC;gBAAE,SAAS,EAAE;4BAAE,MAAM;2BAAE,KAAK;iBAAE;aAAE,CAAC,CAAC;SACxD,CAAE;KACJ;CACF;;;AC7DD;;;;;;;;;AAWA,MAAM,yCAAkB,GAAG,CAAA,GAAA,oBAAa,CAAA,CAAM,EAAE,CAAC,AAAC;AAElD,SAAS,yCAAe,CAAC,KAAK,EAAgB;IAC5C,MAAM,aAAE,SAAS,CAAA,WAAE,OAAO,CAAA,EAAE,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,yCAAkB,CAAC,AAAC;IAC9D,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,yCAAU,CAAA,EAAE;mBACnB,SAAS;QACT,OAAO,EAAE,OAAO,CAAC,aAAa;QAC9B,GAAG,KAAK;KACT,CAAC,CAAC;CACJ;AAiBD,MAAM,yCAAW,SAAY,CAAA,GAAA,yCAAiB,CAAA;IAI5C,OAAO,YAAY,GAAG;QACpB,OAAO,EAAE,IAAI;KACd,CAAC;IACF,YAAY,KAAK,CAAE;QACjB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG;YACX,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;YACnC,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,YAAY,EAAE,KAAK,CAAC,KAAK;SAC1B,CAAC;KACH;IAED,MAAM,GAAiB;QACrB,MAAM,SAAE,KAAK,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAC7B,MAAM,WAAE,OAAO,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,OAAO,AAAC;QAClD,MAAM,OAAO,GAAG,AAAC,CAAA,IAAM;YACrB,IAAI,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,AAAC;YACzD,OAAQ,YAAE,QAAQ,CAAA,iBAAE,aAAa,CAAA,eAAE,WAAW,CAAA,kBAAE,cAAc,CAAA,EAAE,GAAG,IAAI,CAAE;SAC1E,CAAA,EAAG,AAAC;QACL,MAAM,KAAK,GAAG;qBACZ,OAAO;mBACP,KAAK;uBACL,SAAS;qBACT,OAAO;YACP,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,AAAC;QACF,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAkB,CAAC,QAAQ,EAAE;mBAAE,KAAK;SAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KACvE;IAED,QAAQ,CAAC,KAAK,EAAE;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAChC;IAED,UAAU,CAAC,KAAK,EAAE;QAChB,IAAI,KAAK,IAAI,IAAI,EACf,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAEtD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACnE;IAED,QAAQ,CAAC,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,GAAK;YAChB,aAAa;YACb,OAAO,IAAI,CAAC,WAAW,CAAC;gBAAE,KAAK,EAAE;oBAAE,CAAC,KAAK,CAAC,EAAE;wBAAE,IAAI,EAAE,KAAK;qBAAE;iBAAE;aAAE,CAAC,CAAC;SAClE,CAAC;KACH;IAED,aAAa,GAAG;QACd,MAAM,IAAI,GAAQ;YAAE,OAAO,EAAE;gBAAC,WAAW;aAAC;SAAE,AAAC;QAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EACtB,IAAI,CAAC,KAAK,GAAG;YAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;SAAE,CAAC;QAEjD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAC/B;IAED,gBAAgB,GAAG;QACjB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KAClC;IAED,MAAM,cAAc,CAAC,IAAqB,EAAE;QAC1C,MAAM,kBAAE,cAAc,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACtC,oCAAoC;QAEpC,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,AAAC;QACpC,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,iDAAiD;YACjD,uBAAuB;YACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,YAAY,GAAG,CAAA,GAAA,yBAAM,CAAA,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC/C;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAE1B,IAAI,GAAG,GAAG,IAAI,AAAC;QACf,IAAI,cAAc,IAAI,IAAI,EACxB,OAAO,IAAI,CAAC;QAEd,IAAI;YACF,IAAI,CAAC,WAAW,CAAC;gBAAE,YAAY,EAAE;oBAAE,IAAI,EAAE,IAAI;iBAAE;aAAE,CAAC,CAAC;YAEnD,kDAAkD;YAClD,MAAM,SAAS,GAAQ,EAAE,AAAC;YAC1B,IAAK,IAAI,CAAC,IAAI,YAAY,CAAE;gBAC1B,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,AAAC;gBAC1B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAClC,SAAS;gBAEX,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aAClB;YAED,GAAG,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;SACrD,CAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB,QAAS;YACR,IAAI,GAAG;gBAAE,YAAY,EAAE;oBAAE,IAAI,EAAE,KAAK;iBAAE;aAAE,CAAC;YAEzC,IAAI,GAAG,IAAI,IAAI,EAAE;gBACf,aAAa;gBACb,MAAM,QAAQ,GAAG,CAAA,GAAA,yBAAM,CAAA,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;oBAAE,MAAM,EAAE,GAAG;iBAAE,CAAC,AAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtB,IAAI,CAAC,KAAK,GAAG;oBAAE,IAAI,EAAE,QAAQ;iBAAE,CAAC;gBAChC,IAAI,CAAC,YAAY,GAAG;oBAAE,IAAI,EAAE,QAAQ;iBAAE,CAAC;aACxC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACxB;KACF;IAED,kBAAkB,CAAC,SAAS,EAAE;QAC5B,IAAI,SAAS,IAAI,IAAI,EACnB,OAAO;QAET,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,EAC1B,OAAO;QAET,MAAM,IAAI,GAAQ,EAAE,AAAC;QACrB,IACE,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,IAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAE7C,IAAI,CAAC,SAAS,GAAG;YAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;SAAE,CAAC;QAElD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE;YACxC,IAAI,CAAC,YAAY,GAAG;gBAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;aAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EACvB,yEAAyE;YACzE,IAAI,CAAC,KAAK,GAAG;gBAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;aAAE,CAAC;SAE3C;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAC/B;CACF;AAED,SAAS,yCAAqB,CAAC,KAAU,EAAmB;IAC1D,IAAI,SAAE,KAAK,CAAA,aAAE,SAAS,CAAA,EAAE,GAAG,KAAK,AAAC;IACjC,MAAM,WAAE,OAAO,CAAA,SAAE,KAAK,CAAA,aAAE,SAAS,CAAA,EAAE,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,yCAAkB,CAAC,AAAC;IACrE,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,AAAC;IACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,AAAC;IACzC,SAAS,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAEpD,IAAI,SAAS,EACX,KAAK,GAAG,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,mBAAY,CAAA,EAAE;QACtB,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5B,SAAS,EAAE,IAAI;mBACf,SAAS;kBACT,QAAQ;eACR,KAAK;KACN,CAAC,CAAC;IAEL,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,UAAU,EAAE;mBAAE,SAAS;KAAE,EAAE,KAAK,CAAC,CAAC;CAC5C;AAED,MAAM,yCAAiB,SAAS,CAAA,GAAA,gBAAS,CAAA;IACvC,OAAO,WAAW,GAAG,yCAAkB,CAAC;IACxC,MAAM,GAAG;QACP,MAAM,SAAE,KAAK,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAC7B,MAAM,WAAE,OAAO,CAAA,SAAE,KAAK,CAAA,aAAE,SAAS,CAAA,EAAE,GAAG,IAAI,CAAC,OAAO,AAAC;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,AAAC;QAC3B,IAAI,CAAC,SAAS,EACZ,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAE7C,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,gBAAS,CAAA,EAAE;YAClB,SAAS,EAAE,YAAY;YACvB,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC;YACtB,UAAU,EAAE,CAAC,IAAI,GAAK,IAAI,CAAC,kBAAkB,EAAE;YAC/C,WAAW,EAAE,YAAY;YACzB,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YACjC,SAAS,EAAC,CAAC,EAAE;gBACX,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;aACpB;SACF,CAAC,CAAC;KACJ;CACF;AAED,MAAM,yCAAc,GAAG,IAAM,CAAA,GAAA,iBAAU,CAAA,CAAC,yCAAkB,CAAC,AAAC;;;AChO5D;;;;AAaA,iCAAiC;AACjC,SAAS,yCAAgB,GAAG;IAC1B,OAAO,CAAA,GAAA,cAAO,CAAA,CAAC,MAAM,EAAE,CAAC;CACzB;AAUD,MAAM,gCAAU,GAAG,CAAA,GAAA,oBAAa,CAAA,CAAkB,IAAI,CAAC,AAAC;AAExD,SAAS,uCAAiB,CAAC,gBAAE,YAAY,CAAA,cAAE,UAAU,CAAA,EAAE,GAAG,IAAI,EAAE,EAAE;IAChE,MAAM,OAAO,GAAG,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,cAAO,CAAA,EAAE;QACzB,SAAS,EAAE,KAAK;QAChB,GAAG,EAAE,CAAC,CAAC,GAAK,UAAU,CAAC,CAAC,CAAC;QACzB,GAAG,IAAI;KACR,CAAC,AAAC;IACH,IAAI,YAAY,EAAE,OAAO,IAAI,IAAI,EAC/B,OAAO,OAAO,CAAC;IAEjB,OAAO,CAAA,GAAA,mBAAY,CAAA,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;CACpD;AAED,SAAS,yCAAc,CAAC,KAA0B,EAAE;IAClD,MAAM,YAAE,QAAQ,CAAA,UAAE,MAAM,CAAA,gBAAE,YAAY,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,AAAC;IAC1D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAkB,IAAI,CAAC,AAAC;IAE9D,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,gCAAU,CAAC,QAAQ,EAAE;QAAE,KAAK,EAAE,OAAO;KAAE,EAAE;QAChD,CAAA,GAAA,sBAAC,CAAA,CAAC,uCAAiB,EAAE;0BAAE,YAAY;wBAAE,UAAU;YAAE,GAAG,IAAI;SAAE,EAAE,MAAM,CAAC;QACnE,QAAQ;KACT,CAAC,CAAC;CACJ;AAED,SAAS,yCAAU,GAA2B;IAC5C,OAAO,CAAA,GAAA,iBAAU,CAAA,CAAC,gCAAU,CAAC,CAAC;CAC/B;;;;AEpDD;AAEA,MAAM,4BAAM,GAAG,SAAU,KAAK,EAAE;IAC9B,MAAM,QAAE,IAAI,CAAA,aAAE,SAAS,CAAA,EAAE,GAAG,KAAK,AAAC;IAElC,IAAI,IAAI,KAAK,SAAS,EACpB,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAE7B,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;CAC/B,AAAC;AAQF,MAAM,yCAAU,GAAG,SAAU,KAAsB,EAAE;IACnD,MAAM,SAAE,KAAK,CAAA,aAAE,SAAS,CAAA,EAAE,GAAG,KAAK,AAAC;IACnC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAK,CAAA,GAAA,sBAAC,CAAA,CAAC,4BAAM,EAAE;kBAAE,IAAI;uBAAE,SAAS;SAAE,CAAC,AAAC;IAEnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACvB,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;IAGlB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,AAAC;IACvB,IAAI,CAAC,KAAK,CAAC,EACT,OAAO,IAAI,CAAC;IAEd,IAAI,CAAC,KAAK,CAAC,EACT,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAGrB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,AAAC;IAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,AAAC;IAE5B,MAAM,aAAa,GAAG,KAAK,GAAG,CAAC,AAAC;IAChC,MAAM,CAAC,GAAG,EAAE,AAAC;IACb,KAAK,MAAM,CAAC,CAAC,EAAE,KAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAE;QACvC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAI,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,aAAa,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EACjD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjB,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,EAAE;YAC/B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjB,MAAM;SACP;KACF;IAED,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;CACjC,AAAC;;ADnDF;;;AGCA;;;;;;AAQA,MAAM,kCAAY,GAAG,SAAS,KAAK,EAAE;IACnC,MAAM,UAAE,MAAM,CAAA,UAAE,MAAM,CAAA,EAAE,GAAG,KAAK,AAAC;IACjC,MAAM,CAAC,GAAG,EAAE,AAAC;IACb,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,EAAE,EACjC,CAAC,CAAC,IAAI,CAAC,CAAA,GAAA,sBAAC,CAAA,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzC,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,EAAE,EAAE;QACnC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,CAAC,CAAC,IAAI,CAAC,CAAA,GAAA,sBAAC,CAAA,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACb;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAChB,OAAO,IAAI,CAAC;IAEd,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;CAC3B,AAAC;AAEF,SAAS,+BAAS,CAAC,KAA2B,EAAE;IAC9C,IAAI,SAAE,KAAK,CAAA,UAAE,MAAM,CAAA,OAAE,GAAG,CAAA,WAAE,OAAO,CAAA,cAAE,UAAU,CAAA,UAAE,MAAM,CAAA,UAAE,MAAM,CAAA,QAAE,IAAI,CAAA,EAAE,GAAG,KAAK,AAAC;IAC9E,IAAI;QACD,CAAA,EAAE,EAAE,EAAE,GAAG,CAAA,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA,CAAC,GAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA,CAAE;KACxD,CAAC,OAAO,KAAK,EAAE;QACd,GAAG,GAAG,IAAI,CAAC;KACZ;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QACnC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,AAAC;QAC7B,CAAC,CAAC,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACpB,CAAC,AAAC;IAEH,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC;QACP,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,yCAAU,CAAA,EAAE;mBAAE,KAAK;YAAE,KAAK,EAAE,CAAC;SAAE,CAAC;QAClC,IAAI;QACJ,CAAA,GAAA,sBAAC,CAAA,CAAC,YAAY,EAAE,KAAK,CAAC;QACtB,IAAI;QACJ,CAAA,GAAA,sBAAC,CAAA,CAAC,cAAc,EAAE,OAAO,CAAC;QAC1B,IAAI;QACJ,CAAA,GAAA,sBAAC,CAAA,CAAC,kCAAY,EAAE;oBAAE,MAAM;oBAAE,MAAM;SAAE,CAAC;QACnC,CAAA,GAAA,sBAAC,CAAA,CAAC,WAAW,EAAE,IAAI,CAAC;QACpB,IAAI;QACJ,CAAA,GAAA,sBAAC,CAAA,CAAC,gBAAgB,EAAE,OAAO,CAAC;QAC5B,CAAA,GAAA,sBAAC,CAAA,CAAC,UAAU,EAAE,GAAG,CAAC;KACnB,CAAC,CAAC;CACJ;AAED,SAAS,yCAA0B,CAAC,KAAU,EAAE;IAC9C,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,WAAI,CAAA,EAAE;QAAE,WAAW,EAAE,KAAK;QAAE,SAAS,EAAE,aAAa;KAAE,EAAE;QAC/D,aAAa;QACb,CAAA,GAAA,sBAAC,CAAA,CAAC,+BAAS,EAAE,KAAK,CAAC;KACpB,CAAC,CAAC;CACJ;AAED,MAAM,yCAAiB,SAAS,CAAA,GAAA,gBAAS,CAAA;IACvC,MAAM,GAAG;QACP,IAAI,GAAG,AAAC;QACR,MAAM,QAAE,IAAI,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACrC,IAAI;YACD,CAAA,OAAE,GAAG,CAAA,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,GAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAA,CAAE;SACpD,CAAC,OAAO,KAAK,EAAE;YACd,GAAG,GAAG,IAAI,CAAC;SACZ;QACD,OAAO,CAAA,GAAA,sBAAC,CAAA,CACN,CAAA,GAAA,yCAAQ,CAAA,EACR;YACE,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,aAAa;SACzB,EACD,aAAa;QACb,CAAA,GAAA,sBAAC,CAAA,CAAC,+BAAS,EAAE,IAAI,CAAC,CACnB,CAAC;KACH;CACF;AAED,SAAS,yCAAuB,CAAC,KAAsB,EAAE;IACvD,MAAM,QAAE,IAAI,CAAA,EAAE,GAAG,KAAK,AAAC;IACvB,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC;QACP,CAAA,GAAA,sBAAC,CAAA,CAAC,IAAI,EAAE,eAAe,CAAC;QACxB,CAAA,GAAA,sBAAC,CAAA,CACC,kBAAkB,EAClB,IAAI,CAAC,GAAG,CAAC,CAAA,IAAI,GAAI,CAAA,GAAA,sBAAC,CAAA,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CACnC;KACF,CAAC,CAAC;CACJ;AAED,MAAM,0CAAoB,GAAG,IAAM;IACjC,OAAO,CAAA,GAAA,sBAAC,CAAA,CACN,CAAA,GAAA,WAAI,CAAA,EACJ;QACE,SAAS,EAAE,CAAC,YAAY,EAAE,CAAA,GAAA,cAAO,CAAA,CAAC,QAAQ,CAAC,CAAC;KAC7C,EACD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CACnB,CAAC;CACH,AAAC;AAEF,MAAM,yCAAgB,GAAG,CAAC,KAAwB,GAAK;IACrD,MAAM,SAAE,KAAK,CAAA,EAAE,GAAG,KAAK,AAAC;IACxB,OAAO,CAAA,GAAA,sBAAC,CAAA,CACN,CAAA,GAAA,uCAAa,CAAA,EACb;QACE,KAAK,EAAE,sCAAsC;QAC7C,MAAM,EAAE;mBAAE,KAAK;SAAE;QAEjB,IAAI,EAAE;YACJ,cAAc,EAAC,GAAG,EAAE;gBAClB,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC5B;YACD,OAAO,EAAE,IAAI;SACd;QACD,WAAW,EAAE,0CAAoB;KAClC,EACD,CAAA,IAAI,GAAI;QACN,IAAI;YACF,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAiB,EAAE,IAAI,CAAC,CAAC;SACnC,CAAC,OAAO,KAAK,EAAE;YACd,OAAO,IAAI,CAAC;SACb;KACF,CACF,CAAC;CACH,AAAC;;ADlIF;;;AEAA;AAGA,MAAM,yCAAQ,GAAG,CAAC,OAAE,GAAG,CAAA,EAAE,GAAG,IAAI,EAAE,GAChC,CAAA,GAAA,sBAAC,CAAA,CAAC,KAAK,EAAE;QAAE,uBAAuB,EAAE;YAAE,MAAM,EAAE,GAAG;YAAE,GAAG,IAAI;SAAE;KAAE,CAAC,AAAC;AAElE,MAAM,yCAAI,GAAG,yCAAQ,AAAC;;;;AENtB;;;;;;;;;;;ACAA,IAAA,yCAAkD;AAClD,IAAA,yCAAgE;AAChE,IAAA,yCAA8C;AAC9C,IAAA,yCAAoE;AACpE,IAAA,yCAA4D;AAJ5D,yCAA4B,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACnD,yCAAmC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACjE,yCAA0B,GAAG,CAAC,eAAe,CAAC,CAAC;AAC/C,yCAAqC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AACrE,yCAAiC,GAAG,CAAC,sBAAsB,CAAC,CAAC;;;ADa7D,MAAM,uBAAC,GAAG,CAAA,GAAA,kBAAW,CAAA,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAE9B,MAAM,yCAAgB,GAAG,CAAC,KAAmB,GAAK;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAS,KAAK,CAAC,KAAK,CAAC,AAAC;IACxD,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAK;QACtB,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;KAClC,AAAC;IACF,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAAC,KAAK,CAAC,KAAK;KAAC,CAAC,CAAC;IAEtD,OAAO,uBAAC,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;QAAE,GAAG,KAAK;kBAAE,QAAQ;eAAE,KAAK;KAAE,CAAC,CAAC;CACjD,AAAC;AAEF,MAAM,yCAAc,GAAG,CAAC,KAAmB,GAAK;IAC9C,IAAI,SAAE,KAAK,CAAA,iBAAE,aAAa,CAAA,aAAE,SAAS,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,AAAC;IACzD,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,aAAa,GAAG,KAAK,CAAC;QACtB,SAAS,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;KAC1D;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,AAAC;IACvD,MAAM,OAAO,GAAG,IAAM,YAAY,GAAG,IAAI,CAAC,AAAC;IAE3C,OAAO,uBAAC,CAAC,qBAAqB,EAAE;QAC9B,uBAAC,CAAC,yCAAgB,EAAE;YAAE,GAAG,IAAI;uBAAE,SAAS;mBAAE,KAAK;2BAAE,aAAa;SAAE,CAAC;QACjE,uBAAC,CAAC,cAAc,EAAE;YAChB,uBAAC,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;gBACR,OAAO,EAAE,IAAI;yBACb,OAAO;gBACP,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;gBAC7B,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,MAAM;aACnD,CAAC;SACH,CAAC;KACH,CAAC,CAAC;CACJ,AAAC;;ADrDF;;;AGAA;;;;AAWA,iDAAiD;AAEjD,SAAS,yCAAqB,CAAmB,YAAe,EAAE;IAChE;KACG,CACH,MAAM,OAAO,GAAG,CAAA,GAAA,oBAAa,CAAA,CAAI,YAAY,CAAC,AAAC;IAI/C,MAAM,aAAa,GAAG,CAAA,GAAA,oBAAa,CAAA,CAAiB,IAAI,CAAC,AAAC;IAE1D,MAAM,QAAQ,GAAG,SAAU,KAAgC,EAAE;QAC3D;;MAEE,CACF,IAAI,aAAE,SAAS,CAAA,YAAE,QAAQ,CAAA,EAAE,GAAG,eAAe,EAAE,GAAG,KAAK,AAAC;QACxD,4BAA4B;QAC5B,IAAI,OAAO,GAAG,IAAI,AAAC;QACnB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,+BAA+B;YAC/B,OAAO,GAAG,IAAI,CAAA,GAAA,yCAAY,CAAA,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,AAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;YAC7C,aAAa;YACb,eAAe,GAAG,CAAA,GAAA,yBAAM,CAAA,CAAC,eAAe,EAAE;gBAAE,MAAM,EAAE,CAAC;aAAE,CAAC,CAAC;SAC1D;QAED,aAAa;QACb,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAI,eAAe,CAAC,AAAC;QAC1D,MAAM,WAAW,GAAG,SAAU,IAAwB,EAAE;YACtD,MAAM,WAAW,GAAG,CAAA,GAAA,yBAAM,CAAA,CAAC,QAAQ,EAAE,IAAI,CAAC,AAAC;YAC3C,QAAQ,CAAC,WAAW,CAAC,CAAC;YACtB,IAAI,OAAO,IAAI,IAAI,EACjB,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;SAEnC,AAAC;QAEF,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,OAAO,CAAC,QAAQ,EAAE;YAAE,KAAK,EAAE,QAAQ;SAAE,EAAE;YAC9C,CAAA,GAAA,sBAAC,CAAA,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAAE,KAAK,EAAE,WAAW;aAAE,EAAE,QAAQ,CAAC;SAC5D,CAAC,CAAC;KACJ,AAAC;IAEF,MAAM,QAAQ,GAAG,IAAM,CAAA,GAAA,iBAAU,CAAA,CAAC,OAAO,CAAC,AAAC;IAE3C,MAAM,UAAU,GAAG,CAAC,GAAuB,GAAK;QAC9C,MAAM,OAAO,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,aAAa,CAAC,AAAC;QAC1C,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO,OAAO,CAAC;QAChC,YAAY;QACZ,OAAO,CAAC,IAAe,GAAK,OAAO,CAAC;gBAAE,CAAC,GAAG,CAAC,EAAE,IAAI;aAAE,CAAC,CAAC;KACtD,AAAC;IAEF,OAAO;QAAC,QAAQ;QAAE,QAAQ;QAAE,UAAU;KAAC,CAAC;CACzC;AAED,MAAM,CAAC,yCAAgB,EAAE,yCAAW,EAAE,wCAAkB,CAAC,GACvD,yCAAqB,CAAS,EAAE,CAAC,AAAC;AAEpC,wCAAwC;AACxC,MAAM,yCAAc,GAAG,SAAU,IAAI,EAAE;IACrC,wDAAwD;IACxD,YAAY;IACZ,MAAM,OAAO,GAAG,wCAAkB,EAAE,AAAC;IACrC,OAAO,WAAY;QACjB,YAAY;QACZ,OAAO,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC;KACpC,CAAC;CACH,AAAC;;;AC7EF;;;AAIA,SAAS,yCAAY,CAAC,KAAK,EAAE;IAC3B,MAAM,SAAE,KAAK,CAAA,SAAE,KAAK,GAAG,eAAe,GAAE,GAAG,KAAK,AAAC;IAEjD,OAAO,CAAA,GAAA,sBAAC,CAAA,CACN,CAAA,GAAA,cAAO,CAAA,EACP;eACE,KAAK;QACL,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,QAAQ;KACjB,EACD,CAAA,GAAA,sBAAC,CAAA,CACC,GAAG,EACH,IAAI,EACJ,CAAA,KAAK,CAAC,WAAW,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAA,IAAI,0BAA0B,CACrE,CACF,CAAC;CACH;AAaD,MAAM,yCAAa,SAAS,CAAA,GAAA,gBAAS,CAAA;IACnC,YAAY,KAAK,CAAE;QACjB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YAAE,KAAK,EAAE,IAAI;SAAE,CAAC;KAC9B;IAED,OAAO,wBAAwB,CAAC,KAAK,EAAE;QACrC,6DAA6D;QAC7D,OAAO;mBAAE,KAAK;SAAE,CAAC;KAClB;IAED,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE;QAC7B,2DAA2D;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;KACnC;IAED,MAAM,GAAG;QACP,MAAM,SAAE,KAAK,CAAA,EAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QAC7B,MAAM,YAAE,QAAQ,GAAG,KAAK,GAAE,GAAG,IAAI,CAAC,KAAK,AAAC;QACxC,IAAI,KAAK,IAAI,IAAI,IAAI,QAAQ,EAAE;YAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YAE5D,wCAAwC;YACxC,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAY,EAAE;uBACrB,KAAK;gBACL,WAAW,EACT,CAAA,IAAI,CAAC,KAAK,CAAC,WAAW,IACtB,KAAK,EAAE,QAAQ,EAAE,CAAA,IACjB,0BAA0B;gBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,+BAA+B;aAC3D,CAAC,CAAC;SACJ;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC5B;CACF;;;AEhED,SAAS,yCAAS,CAAC,GAAG,EAA6B;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,GAAK;QACtC,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,AAAC;QACxB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;QAC9B,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,GAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;KACf,CAAC,CAAC;CACJ;AAED,SAAS,yCAAmB,CAC1B,GAA6B,EAC7B,GAAqB,EACrB,eAAuB,EACvB,KAAa,EACb,eAAe,GAAG,CAAC,EACnB,KAAK,GAAG,CAAC,EACT;IACA,uBAAuB;IACvB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEhD,2BAA2B;IAC3B,6BAA6B;IAE7B,mDAAmD;IACnD,GAAG,CAAC,wBAAwB,GAAG,WAAW,CAAC;IAC3C,wBAAwB;IACxB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;IACxB,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;IACtB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1C,GAAG,CAAC,wBAAwB,GAAG,kBAAkB,CAAC;IAElD,4DAA4D;IAE5D,GAAG,CAAC,WAAW,GAAG,eAAe,CAAC;IAClC,GAAG,CAAC,SAAS,GAAG,eAAe,CAAC;IAChC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1C,8BAA8B;IAE9B,wCAAwC;IACxC,OAAO,GAAG,CAAC;CACZ;AAED,SAAS,2CAAqB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE;IACvD,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;IACxB,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;IACzB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC;AACX,wCAAwC;CACzC;IAED,yCAGC;UAHI,gBAAe;IAAf,gBAAe,CAClB,eAAa,IAAG,YAAY;IADzB,gBAAe,CAElB,QAAM,IAAG,QAAQ;GAFd,yCAAe,KAAf,yCAAe;AAKpB,eAAe,yCAAkB,CAC/B,IAAqB,EACrB,YAAY,GAAG,yCAAe,CAAC,aAAa,EACf;IAC7B,IAAI,GAAG,AAAC;IACR,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,AAAC;IAC9C,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;QAC3B,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,GAAG,GAAG,2CAAqB,CACzB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EACvB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAChC,CAAC;KACH,MAAM;QACL,MAAM,GAAG,GAAG,MAAM,yCAAS,CAAC,IAAI,CAAC,UAAU,CAAC,AAAC;QAC7C,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACzB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC3B,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,GAAG,GAAG,yCAAmB,CACvB,GAAG,EACH,GAAG,EACH,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,YAAY,IAAI,SAAS,CAC/B,CAAC;KACH;IACD,OAAQ,YAAY;QAClB,KAAK,yCAAe,CAAC,aAAa;YAChC,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7D,KAAK,yCAAe,CAAC,MAAM;YACzB,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC;KAC7B;CACF;;AD/FD;;AAOA,MAAM,gCAAU,GAAG,+CAA+C,AAAC;AACnE,MAAM,oCAAc,GAAG,gCAAU,GAAG,wBAAwB,AAAC;AAC7D,MAAM,oCAAc,GAAG,gCAAU,GAAG,4BAA4B,AAAC;AAEjE,SAAS,4CAAsB,CAC7B,MAAqB,EACrB,OAAO,GAAG,oCAAc,EACxB;IACA,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC;IAChC,OAAO,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;CACnC;AAED,eAAe,wCAAkB,CAC/B,SAAwB,EACxB,KAAK,GAAG,IAAI,EACZ,YAAY,GAAG,IAAI,EACF;IACjB,MAAM,GAAG,GAAG,4CAAsB,CAAC,SAAS,CAAC,AAAC;IAC9C,IAAI,KAAK,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,EACvC,OAAO,GAAG,CAAC;IAGb,MAAM,GAAG,GAAI,MAAM,CAAA,GAAA,yCAAkB,CAAA,CACnC;QACE,UAAU,EAAE,GAAG;eACf,KAAK;sBACL,YAAY;KACb,EACD,CAAA,GAAA,yCAAe,CAAA,CAAC,MAAM,CACvB,AAAW,AAAC;IACb,OAAO,GAAG,CAAC;CACZ;AAED,MAAM,yCAAiB,GAAG,wCAAkB,AAAC;AAE7C,MAAM,yCAAmB,GAAG,OAAU,GAAA,IAAI,GACxC,CAAA,GAAA,yCAAS,CAAA,CAAC,MAAM,yCAAmB,IAAI,IAAI,CAAC,CAAC,AAAC;;;AE3ChD;;;AAOO,SAAS,yCAAY,CAAC,KAAwB,EAAE;IACrD,oDAAoD,CACpD,MAAM,UACJ,MAAM,GAAG,IAAI,wBACb,mBAAmB,GAAG,IAAI,uBAC1B,kBAAkB,GAAG,GAAG,cACxB,SAAS,CAAA,YACT,QAAQ,CAAA,EACR,GAAG,IAAI,EACR,GAAG,KAAK,AAAC;IACV,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,eAAQ,CAAA,EAAE;gBAAE,MAAM;6BAAE,mBAAmB;4BAAE,kBAAkB;KAAE,EAAE;QACtE,CAAA,GAAA,sBAAC,CAAA,CAAC,yBAAyB,EAAE;YAC3B,CAAA,GAAA,sBAAC,CAAA,CACC,CAAA,GAAA,WAAI,CAAA,EACJ;gBACE,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,CAAA,GAAA,iBAAU,CAAA,CAAC,SAAS,EAAE,mBAAmB,CAAC;gBACrD,GAAG,IAAI;aACR,EACD,CAAA,GAAA,sBAAC,CAAA,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAC/B;SACF,CAAC;KACH,CAAC,CAAC;CACJ;;;AC9BD;;;;;;;;;;;;;;;;ACAA,IAAA,wCAAwD;AACxD,IAAA,yCAAsD;AACtD,IAAA,yCAA4C;AAC5C,IAAA,yCAAoD;AACpD,IAAA,yCAAsD;AACtD,IAAA,yCAAwD;AACxD,IAAA,yCAA8C;AAC9C,IAAA,yCAAwC;AACxC,IAAA,yCAA4D;AAC5D,IAAA,wCAAwE;AACxE,IAAA,yCAAoD;AACpD,IAAA,yCAA4D;AAX5D,wCAA+B,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACzD,yCAA8B,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACvD,yCAAyB,GAAG,CAAC,cAAc,CAAC,CAAC;AAC7C,yCAA6B,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACrD,yCAA8B,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACvD,yCAA+B,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACzD,yCAA0B,GAAG,CAAC,eAAe,CAAC,CAAC;AAC/C,yCAAuB,GAAG,CAAC,YAAY,CAAC,CAAC;AACzC,yCAAiC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC7D,wCAAuC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AACzE,yCAA6B,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACrD,yCAAiC,GAAG,CAAC,sBAAsB,CAAC,CAAC;;;ACX7D;;;AAeA,SAAS,yCAAgB,CAAC,KAA6B,EAAE;IACvD,MAAM,QACJ,IAAI,CAAA,YACJ,QAAQ,CAAA,gBACR,YAAY,GAAG,EAAE,cACjB,SAAS,GAAG,SAAS,eACrB,UAAU,GAAG,EAAE,QACf,GAAG,GAAG,GAAG,SACT,IAAI,GAAG,EAAE,KACV,GAAG,KAAK,AAAC;IAEV,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC;aAAE,GAAG;cAAE,IAAI;KAAE,CAAC,AAAC;IAClD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC;QAAE,KAAK,EAAE,CAAC;QAAE,KAAK,EAAE,CAAC;KAAE,CAAC,AAAC;IAC7D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,KAAK,CAAC,AAAC;IAEhD,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,uBAAuB;QACvB,IAAI,CAAC,QAAQ,EAAE,OAAO;QACtB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACtD,OAAO,IAAM;YACX,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YACzD,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;SAC9D,CAAC;KACH,EAAE;QAAC,QAAQ;KAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,CAAC,CAAC,GAAK;QACzB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO;QAC3B,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB,AAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAC,GAAK;QACvB,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;KACpB,AAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAC,GAAK;QACvB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,AAAC;QACnC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,AAAC;QAClC,OAAO;mBAAE,KAAK;mBAAE,KAAK;SAAE,CAAC;KACzB,AAAC;IAEF,MAAM,WAAW,GAAG,CAAC,CAAC,GAAK;QACzB,IAAI,QAAQ,EAAE;YACZ,MAAM,SAAE,KAAK,CAAA,SAAE,KAAK,CAAA,EAAE,GAAG,MAAM,AAAC;YAChC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,AAAC;YAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,AAAC;YAC7B,QAAQ,CAAC;gBAAE,GAAG,EAAE,IAAI;gBAAE,IAAI,EAAE,KAAK;aAAE,CAAC,CAAC;SACtC;QACD,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;KACpB,AAAC;IAEF,MAAM,iBAAiB,GAAG;QACxB,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,IAAI;QACvB,oBAAoB,EAAE,IAAI;QAC1B,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,KAAK;KACtB,AAAC;IAEF,MAAM,KAAK,GAAG;QAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;KAAE,AAAC;IAEjE,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,cAAO,CAAA,EAAE;QAAE,MAAM,EAAE,IAAI;QAAE,GAAG,iBAAiB;KAAE,EAAE;QACxD,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;YAAE,MAAM,EAAE,KAAK;SAAE,EAAE;YACvC,CAAA,GAAA,sBAAC,CAAA,CAAC,CAAA,GAAA,WAAI,CAAA,EAAE;gBAAE,KAAK,EAAE,UAAU;aAAE,EAAE;gBAC7B,CAAA,GAAA,sBAAC,CAAA,CAAC,KAAK,EAAE;iCAAE,WAAW;oBAAE,MAAM,EAAE,YAAY;iBAAE,EAAE;oBAC9C,KAAK,CAAC,eAAe;iBACtB,CAAC;gBACF,QAAQ;aACT,CAAC;SACH,CAAC;KACH,CAAC,CAAC;CACJ;;;AFvFD,MAAM,uBAAC,GAAG,CAAA,GAAA,kBAAW,CAAA,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAS9B,MAAM,yCAAW,GAAG,SAAU,KAAuB,EAAE;IACrD,MAAM,SAAE,KAAK,CAAA,WAAE,OAAO,CAAA,YAAE,QAAQ,CAAA,kBAAE,cAAc,GAAG,KAAK,GAAE,GAAG,KAAK,AAAC;IACnE,OAAO,uBAAC,CAAC,kBAAkB,EAAE;QAC3B,uBAAC,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CACjB,UAAU,EACV;YAAE,SAAS,EAAE,cAAc,GAAG,IAAI,GAAG,iBAAiB;SAAE,EACxD,KAAK,CACN;QACD,uBAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;YAAC,uBAAC,CAAC,cAAc,CAAC;YAAE,QAAQ;YAAE,uBAAC,CAAC,iBAAiB,CAAC;SAAC,CAAC;QAC3E,uBAAC,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;YAAE,OAAO,EAAE,IAAI;YAAE,IAAI,EAAE,OAAO;YAAE,OAAO,EAAE,OAAO;SAAE,CAAC;KAC9D,CAAC,CAAC;CACJ,AAAC;AAEF,SAAS,uCAAiB,CAAC,KAAK,EAAE;IAChC,MAAM,YAAE,QAAQ,CAAA,aAAE,SAAS,CAAA,SAAE,KAAK,CAAA,kBAAE,cAAc,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,AAAC;IACtE,OAAO,uBAAC,CAAC,kBAAkB,EAAE;QAC3B,uBAAC,CAAC,mBAAmB,EAAE;uBAAE,SAAS;mBAAE,KAAK;SAAE,EAAE;YAC3C,uBAAC,CAAC,yCAAW,EAAE,IAAI,EAAE,cAAc,CAAC;YACpC,uBAAC,CAAC,mBAAmB,EAAE,IAAI,EAAE,QAAQ,CAAC;SACvC,CAAC;QACF,uBAAC,CAAC,cAAc,CAAC;KAClB,CAAC,CAAC;CACJ;AAYD,SAAS,yCAAU,CAAC,KAAsB,EAAE;IAC1C,MAAM,YACJ,QAAQ,CAAA,aACR,SAAS,CAAA,SACT,KAAK,CAAA,WACL,OAAO,GAAG,KAAK,mBACf,cAAc,GAAG,IAAI,GACrB,GAAG,IAAI,EACR,GAAG,KAAK,AAAC;IACV,IAAI,OAAO,EACT,OAAO,uBAAC,CAAC,uCAAiB,EAAE;QAC1B,GAAG,IAAI;kBACP,QAAQ;wBACR,cAAc;mBACd,SAAS;eACT,KAAK;KACN,CAAC,CAAC;IAEL,OAAO,uBAAC,CAAC,kBAAkB,EAAE;QAC3B,uBAAC,CAAC,qBAAqB,EAAE;YACvB,uBAAC,CAAC,2BAA2B,EAAE;gBAC7B,uBAAC,CAAC,iBAAiB,EAAE;oBACnB,uBAAC,CAAC,WAAW,EAAE;mCAAE,SAAS;+BAAE,KAAK;qBAAE,EAAE;wBACnC,uBAAC,CAAC,yCAAW,EAAE,IAAI,EAAE,cAAc,CAAC;wBACpC,uBAAC,CAAC,mBAAmB,EAAE,IAAI,EAAE,QAAQ,CAAC;qBACvC,CAAC;oBACF,uBAAC,CAAC,cAAc,CAAC;iBAClB,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,yCAAY,GAAG,CAAC,KAAK,GAAK,uBAAC,CAAC,mBAAmB,EAAE,KAAK,CAAC,AAAC;;;AGjF9D;;;;;;;;;;ACAA,IAAA,yCAA0D;AAC1D,IAAA,yCAAoD;AACpD,IAAA,yCAA0D;AAC1D,IAAA,yCAA8C;AAC9C,IAAA,yCAA0C;AAC1C,IAAA,yCAAsD;AALtD,yCAAgC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAC3D,yCAA6B,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACrD,yCAAgC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAC3D,yCAA0B,GAAG,CAAC,eAAe,CAAC,CAAC;AAC/C,yCAAwB,GAAG,CAAC,aAAa,CAAC,CAAC;AAC3C,yCAA8B,GAAG,CAAC,mBAAmB,CAAC,CAAC;;;;;;;ADUvD,MAAM,uBAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;IAkB/B,+BAGC;UAHI,UAAS;IAAT,UAAS,CACZ,SAAO,IAAG,SAAS;IADhB,UAAS,CAEZ,QAAM,IAAG,QAAQ;GAFd,+BAAS,KAAT,+BAAS;AAmBd,SAAS,gCAAU,CAAC,UAAsB,EAAkB;IAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,AAAe,AAAC;IACpD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACnD;AAED,MAAM,2CAAqB,GAAG,CAAA,GAAA,oBAAa,CAAA,CACzC,CAAC,CAAC,GAAK,CAAC,CACT,AAAC;AAEF,SAAS,yCAAiB,GAAG;IAC3B,OAAO,CAAA,GAAA,iBAAU,CAAA,CAAC,2CAAqB,CAAC,CAAC;CAC1C;AAED,SAAS,mCAAa,CAAC,KAAkB,EAAE,MAAoB,EAAE;IAC/D,IAAI,KAAK,AAAW,AAAC;IACrB,IAAI,UAAU,AAAS,AAAC;IACxB,OAAQ,MAAM,CAAC,IAAI;QACjB,KAAK,gBAAgB;YACnB,OAAO;gBAAE,GAAG,KAAK;gBAAE,SAAS,EAAE,MAAM,CAAC,KAAK;aAAE,CAAC;QAC/C,KAAK,YAAY;YACf,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACjC,KAAK,cAAc;YACjB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,UAAU,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG;gBACjB,GAAG,KAAK,CAAC,UAAU;gBACnB,CAAC,KAAK,CAAC,EAAE,UAAU;aACpB,AAAC;YACF,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,AAAC;YAC9B,IAAI,UAAU,EACZ,QAAQ,GAAG,KAAK,CAAC;iBACZ,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,EAChC,QAAQ,GAAG,IAAI,CAAC;YAElB,MAAM,aAAa,GAAG,gCAAU,CAAC,UAAU,CAAC,AAAC;YAC7C,IAAI,aAAa,CAAC,IAAI,IAAI,CAAC,EACzB,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAEjD,OAAO;gBAAE,GAAG,KAAK;4BAAE,UAAU;0BAAE,QAAQ;aAAE,CAAC;KAC7C;CACF;AAED,SAAS,iCAAW,CAClB,KAAgB,EAChB,YAAwB,EACxB,WAAuB,EACvB,QAAsC,EACtC;IACA,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,AAAC;IACnC,MAAM,eAAe,GAAG,MAAM,IAAI,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,AAAC;IAC/D,OAAO;gBACL,MAAM;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,eAAe,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,OAAO,GAAG,IAAI;QAC/C,OAAO,IAAG;YACR,QAAQ,CAAC;gBAAE,IAAI,EAAE,YAAY;uBAAE,KAAK;gBAAE,UAAU,EAAE,CAAC,eAAe;aAAE,CAAC,CAAC;SACvE;KACF,CAAC;CACH;AAED,SAAS,yCAAiB,CAAC,KAA6B,EAAE;IACxD,MAAM,gBACJ,YAAY,CAAA,eACZ,WAAW,CAAA,SACX,KAAK,GAAG,gBAAgB,aACxB,QAAQ,CAAA,UACR,MAAM,CAAA,cACN,UAAU,GAAG,EAAE,uBACf,kBAAkB,GAAG,GAAG,uBACxB,kBAAkB,CAAA,mBAClB,eAAe,GAAG,KAAK,kBACvB,aAAa,GAAG,IAAI,2BACpB,sBAAsB,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,IAAI,GACtC,GAAG,IAAI,EACR,GAAG,KAAK,AAAC;IAEV,IAAI,QAAQ,GAAG,IAAI,AAAC;IACpB,IAAI,UAAU,CAAC,MAAM,EACnB,QAAQ,GAAG,+BAAS,CAAC,MAAM,CAAC;SACvB,IAAI,UAAU,CAAC,OAAO,EAC3B,QAAQ,GAAG,+BAAS,CAAC,OAAO,CAAC;IAG/B,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAA,GAAA,iBAAU,CAAA,CACxC,mCAAa,EACb;QACE,UAAU,EAAE;YAAE,OAAO,EAAE,IAAI;YAAE,GAAG,UAAU;SAAE;kBAC5C,QAAQ;QACR,SAAS,EAAE,KAAK;KACjB,EACD,SAAS,CACV,AAAC;IAEF,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAA,GAAA,2BAAoB,CAAA,EAAE,AAAC;IAC3C,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAA,GAAA,2BAAoB,CAAA,EAAE,AAAC;IAEnD,MAAM,iBAAiB,GAAG;QAAE,GAAG,WAAW,CAAC,UAAU;QAAE,GAAG,UAAU;KAAE,AAAC;IAEvE,IAAI,gBAAgB,GAAG;QAAE,GAAG,iBAAiB;KAAE,AAAC;IAChD,MAAM,WAAW,GACf,WAAW,CAAC,QAAQ,IAAI,+BAAS,CAAC,OAAO,GACrC,+BAAS,CAAC,MAAM,GAChB,+BAAS,CAAC,OAAO,AAAC;IAExB,qEAAqE;IACrE,MAAM,uBAAuB,GAC3B,kBAAkB,IAClB,IAAI,CAAC,GAAG,CAAC,AAAC,CAAA,IAAI,EAAE,KAAK,IAAI,CAAC,CAAA,GAAI,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC,AAAC;IAEhE,IAAI,WAAW,CAAC,SAAS,EACvB,gBAAgB,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;IAGxC,IAAI,eAAe,EAAE;QACnB,gBAAgB,CAAC,+BAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAC3C,gBAAgB,CAAC,+BAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;KAC5C;IAED,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,gCAAU,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,EACxC,OAAO;QAET,6EAA6E;QAC7E,MAAM,YAAY,GAAG,QAAQ,EAAE,KAAK,GAAG,uBAAuB,AAAC;QAC/D,QAAQ,CAAC;YAAE,IAAI,EAAE,gBAAgB;YAAE,KAAK,EAAE,YAAY;SAAE,CAAC,CAAC;KAC3D,EAAE;QAAC,QAAQ;KAAC,CAAC,CAAC;IAEf,MAAM,aAAa,GAAG,uBAAC,CAAC,EAAE,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;QACvD,IAAI,EAAE,UAAU;QAChB,GAAG,iCAAW,CACZ,+BAAS,CAAC,OAAO,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,CACT;KACF,CAAC,AAAC;IAEH,OAAO,uBAAC,CACN,2CAAqB,CAAC,QAAQ,EAC9B;QAAE,KAAK,EAAE,QAAQ;KAAE,EACnB,uBAAC,CACC,oBAAoB,EACpB;aACE,GAAG;QACH,GAAG,IAAI;KACR,EACD;QACE,uBAAC,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;YACR,uBAAC,CAAC,CAAA,GAAA,aAAM,CAAA,CAAC,KAAK,EAAE;gBACd,uBAAC,CAAC,EAAE,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC;oBACrC,aAAa;oBACb,uBAAC,CAAC,YAAY,CAAC;iBAChB,CAAC;gBACF,uBAAC,CAAC,CAAA,GAAA,aAAM,CAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;aAC/B,CAAC;YACF,uBAAC,CAAC,CAAA,GAAA,kBAAW,CAAA,EAAE;gBAAE,KAAK,EAAE,CAAA,GAAA,gBAAS,CAAA,CAAC,KAAK;aAAE,EAAE;gBACzC,aAAa;gBACb,uBAAC,CAAC,YAAY,CAAC;gBACf,uBAAC,CAAC,CAAA,GAAA,kBAAW,CAAA,EAAE;oBAAE,OAAO,EAAE,IAAI;iBAAE,EAAE;oBAChC,uBAAC,CAAC,EAAE,CAAC,sBAAsB,IAAI,OAAO,CAAC,CAAC;wBAAC,aAAa;qBAAC,CAAC;oBACxD,uBAAC,CAAC,EAAE,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;wBAChC,IAAI,EAAE,YAAY;wBAClB,GAAG,iCAAW,CACZ,+BAAS,CAAC,MAAM,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,CACT;qBACF,CAAC;iBACH,CAAC;aACH,CAAC;SACH,CAAC;QACF,uBAAC,CAAC,kBAAkB,EAAE;YACpB,uBAAC,CAAC,EAAE,CAAC,YAAY,IAAI,IAAI,IAAI,gBAAgB,CAAC,OAAO,CAAC,CACpD,2BAA2B,EAC3B;gBAAE,SAAS,EAAE,CAAA,GAAA,iBAAU,CAAA,CAAC;oBAAE,QAAQ,EAAE,eAAe,IAAI,KAAK;iBAAE,CAAC;aAAE,EACjE,YAAY,CACb;YACD,uBAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,CACpB,wBAAwB,EACxB;gBAAE,GAAG,EAAE,OAAO;aAAE,EAChB,QAAQ,CACT;YACD,uBAAC,CAAC,EAAE,CAAC,WAAW,IAAI,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAClD,0BAA0B,EAC1B,IAAI,EACJ,WAAW,CACZ;SACF,CAAC;QACF,uBAAC,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC;KAC7C,CACF,CACF,CAAC;CACH;AAED,yCAAiB,CAAC,MAAM,GAAG,+BAAS,CAAC;;;;;AEvPrC;ACAA;AAEO,SAAS,yCAAuB,CAAC,GAAW,EAAE,IAAY,EAAU;IACzE,IAAI,IAAI,GAAG,CAAC,EACV,OAAO,yCAAI,CAAC,GAAG,CAAC,CAAC;SACZ,IAAI,IAAI,GAAG,CAAC,EACjB,OAAO,yCAAI,CAAC,GAAG,CAAC,CAAC;SACZ,IAAI,IAAI,GAAG,CAAC,EACjB,OAAO,yCAAI,CAAC,GAAG,CAAC,CAAC;IAEnB,OAAO,yCAAI,CAAC,GAAG,CAAC,CAAC;CAClB;AAEM,SAAS,yCAAY,CAAC,GAAG,EAAE;IAChC,4GAA4G;IAC5G,OAAO,AAAC,CAAA,AAAE,CAAA,AAAE,CAAA,GAAG,GAAG,GAAG,CAAA,GAAI,GAAG,GAAI,GAAG,CAAA,GAAI,GAAG,GAAI,GAAG,CAAA,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/D;AAEM,MAAM,yCAAI,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,MAAM,CAAC,AAAC;AAC5B,MAAM,yCAAI,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,MAAM,CAAC,AAAC;AAC5B,MAAM,yCAAI,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,MAAM,CAAC,AAAC;AAC5B,MAAM,yCAAI,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,MAAM,CAAC,AAAC;AAC5B,MAAM,yCAAM,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,KAAK,CAAC,AAAC;AAE7B,SAAS,yCAAW,CAAC,GAAW,EAAE,SAAiB,GAAG,CAAC,EAAU;IACtE,OAAQ,SAAS;QACf,KAAK,CAAC;YACJ,OAAO,yCAAI,CAAC,GAAG,CAAC,CAAC;QACnB,KAAK,CAAC;YACJ,OAAO,yCAAI,CAAC,GAAG,CAAC,CAAC;QACnB,KAAK,CAAC;YACJ,OAAO,yCAAI,CAAC,GAAG,CAAC,CAAC;QACnB,KAAK,CAAC;YACJ,OAAO,yCAAI,CAAC,GAAG,CAAC,CAAC;QACnB,KAAK,CAAC;YACJ,OAAO,yCAAM,CAAC,GAAG,CAAC,CAAC;QACrB;YACE,OAAO,yCAAI,CAAC,GAAG,CAAC,CAAC;KACpB;CACF;AAEM,SAAS,yCAAY,CAAC,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE;IAClD,OAAO,AAAC,CAAA,MAAM,GAAG,OAAO,CAAA,CAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CAC9C;;;ADnCM,SAAS,yCAAa,CAAC,KAAK,EAAE;IACnC,MAAM,SAAE,KAAK,CAAA,QAAE,IAAI,CAAA,EAAE,GAAG,KAAK,AAAC;IAC9B,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,sBAAsB,EAAE;QAC/B,CAAA,GAAA,sBAAC,CAAA,CAAC,YAAY,EAAE;YAAC,KAAK;SAAC,CAAC;QACxB,CAAA,GAAA,sBAAC,CAAA,CAAC,aAAa,EAAE;YAAC,GAAG;SAAC,CAAC;QACvB,CAAA,GAAA,sBAAC,CAAA,CAAC,WAAW,EAAE;YAAC,IAAI;SAAC,CAAC;KACvB,CAAC,CAAC;CACJ;AAEM,SAAS,yCAAW,CAAC,KAAK,EAAE;IACjC,MAAM,SAAE,KAAK,CAAA,UAAE,MAAM,CAAA,aAAE,SAAS,GAAG,CAAC,WAAE,MAAM,GAAG,CAAA,GAAA,yCAAW,CAAA,GAAE,GAAG,KAAK,AAAC;IACrE,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,AAAC;IAEpD,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAa,EAAE;QACtB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,GAAG,MAAG;QAC/C,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;CACJ;AAcM,SAAS,yCAAY,CAAC,KAAkB,EAAE;IAC/C,uCAAuC,CACvC,MAAM,YAAE,QAAQ,CAAA,aAAE,SAAS,CAAA,aAAE,SAAS,CAAA,QAAE,IAAI,CAAA,EAAE,GAAG,KAAK,AAAC;IACvD,IAAI,UAAE,MAAM,CAAA,EAAE,GAAG,KAAK,AAAC;IACvB,IAAI,QAAQ,IAAI,IAAI,EAClB,OAAO,IAAI,CAAC;IAEd,IAAI,GAAG,EAAE,GAAG,AAAC;IACb,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EACzB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC;SAErB,CAAA,OAAE,GAAG,CAAA,OAAE,GAAG,CAAA,EAAE,GAAG,QAAQ,CAAA,CAAE;IAG5B,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EACrD,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,GAAK,CAAA,GAAA,yCAAuB,CAAA,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAG1D,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,sBAAsB,EAAE;mBAAE,SAAS;KAAE,EAAE;QAC9C,CAAA,GAAA,sBAAC,CAAA,CAAC,aAAa,EAAE;YACf,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAW,EAAE;gBACb,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE;oBAAC,GAAG;oBAAE,GAAG;iBAAC;2BAClB,SAAS;wBACT,MAAM;aACP,CAAC;YACF,IAAI;YACJ,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAW,EAAE;gBACb,KAAK,EAAE,CAAA,GAAA,yCAAY,CAAA,CAAC,GAAG,CAAC;gBACxB,MAAM,EAAE;oBAAC,GAAG;oBAAE,GAAG;iBAAC;2BAClB,SAAS;wBACT,MAAM;aACP,CAAC;SACH,CAAC;KACH,CAAC,CAAC;CACJ;AAEM,SAAS,yCAAS,CAAC,KAAK,EAAE;IAC/B,mFAAmF,CACnF,MAAM,aAAE,SAAS,CAAA,aAAE,SAAS,CAAA,eAAE,WAAW,GAAG,IAAI,GAAE,GAAG,KAAK,AAAC;IAC3D,IAAI,SAAS,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC;IACnC,OAAO,CAAA,GAAA,sBAAC,CAAA,CAAC,eAAe,EAAE;mBAAE,SAAS;KAAE,EAAE;QACvC,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAa,EAAE;YAAE,KAAK,EAAE,SAAS;YAAE,IAAI,EAAE,GAAG;SAAE,CAAC;QACjD,CAAA,GAAA,sBAAC,CAAA,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAE;YAClC,IAAI;YACJ,CAAA,GAAA,sBAAC,CAAA,CAAC,yCAAa,EAAE;gBAAE,KAAK,EAAE,CAAA,GAAA,yCAAY,CAAA,CAAC,SAAS,CAAC;gBAAE,IAAI,EAAE,IAAI;aAAE,CAAC;YAChE,GAAG;SACJ,CAAC;KACH,CAAC,CAAC;CACJ;;;;AlD7ED,MAAM,uBAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAE/B,SAAS,oCAAc,CAAC,YAAE,QAAQ,CAAA,EAAE,EAAE;IACpC,MAAM,UAAU,GAAG,CAAA,GAAA,yCAAa,CAAA,CAAC,QAAQ,CAAC,AAAC;IAE3C,OAAO,uBAAC,CAAC,uBAAuB,EAAE;QAChC,uBAAC,CAAC,CAAA,GAAA,yCAAmB,CAAA,EAAE;YAAE,QAAQ,EAAE,QAAQ;wBAAE,UAAU;SAAE,EAAE,EAAE,CAAC;QAC9D,CAAA,GAAA,yCAAU,CAAA,CAAC,UAAU,CAAC,GAAG,uBAAC,CAAC,oCAAc,EAAE;YAAE,QAAQ,EAAE,UAAU;SAAE,CAAC,GAAG,IAAI;KAC5E,CAAC,CAAC;CACJ;AAED,SAAS,oCAAc,CAAC,YAAE,QAAQ,CAAA,YAAE,QAAQ,CAAA,WAAE,OAAO,CAAA,EAAE,GAAG,IAAI,EAAE,EAAE;IAChE,MAAM,OAAO,GAAG,CAAA,GAAA,yCAAU,CAAA,EAAE,AAAC;IAE7B,IAAI,OAAO,GAAG,CAAC,WAAW,CAAC,AAAC;IAC5B,IAAI,QAAQ,IAAI,IAAI,EAClB,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/B,OAAO,IAAI,GAAG,CAAC;IAEf,OAAO,uBAAC,CACN,CAAA,GAAA,aAAM,CAAA,EACN;QACE,SAAS,EAAE,kBAAkB;QAC7B,SAAS,EAAE,uBAAC,CAAC,CAAA,GAAA,WAAI,CAAA,EAAE;YAAE,IAAI,EAAE,MAAM;YAAE,IAAI,EAAE,EAAE;SAAE,CAAC;QAC9C,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;QACX,OAAO,IAAG;YACR,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CACtD,IAAM;gBACJ,OAAO,EAAE,IAAI,CAAC;6BACZ,OAAO;oBACP,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;aACb,EACD,IAAM;gBACJ,OAAO,EAAE,IAAI,CAAC;oBACZ,OAAO,EAAE,qBAAqB;oBAC9B,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;aACJ,CACF,CAAC;SACH;QACD,GAAG,IAAI;KACR,EACD,QAAQ,IAAI,WAAW,CACxB,CAAC;CACH;AASM,SAAS,yCAAgB,CAAC,KAA4B,EAAE;IAC7D,MAAM,WAAE,OAAO,CAAA,YAAE,QAAQ,CAAA,QAAE,IAAI,GAAG,CAAC,cAAE,SAAS,CAAA,EAAE,GAAG,KAAK,AAAC;IAEzD,OAAO,uBAAC,CAAC,8BAA8B,EAAE;QACvC,uBAAC,CAAC,oCAAc,EAAE;sBAAE,QAAQ;SAAE,CAAC;QAC/B,uBAAC,CAAC,YAAY,CAAC;QACf,uBAAC,CAAC,CAAA,GAAA,yCAAY,CAAA,EAAE;sBAAE,QAAQ;kBAAE,IAAI;YAAE,SAAS,EAAE,wBAAwB;SAAE,CAAC;QACxE,uBAAC,CAAC,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAA,GAAA,yCAAS,CAAA,EAAE;uBACjC,SAAS;YACT,SAAS,EAAE,wBAAwB;SACpC,CAAC;QACF,uBAAC,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;YAAE,OAAO,EAAE,IAAI;YAAE,IAAI,EAAE,OAAO;YAAE,OAAO,EAAE,OAAO;SAAE,CAAC;KAC9D,CAAC,CAAC;CACJ;;;;;;AD9ED,MAAM,uBAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAExB,SAAS,yCAAmB,CAAC,KAAK,EAAE;IACzC,MAAM,SAAS,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,AAAC;IAC5D,OAAO,uBAAC,CAAC,CAAA,GAAA,WAAI,CAAA,EAAE;QAAE,GAAG,KAAK;mBAAE,SAAS;KAAE,CAAC,CAAC;CACzC;AAEM,SAAS,yCAAa,CAAC,KAAK,EAAE;IACnC,MAAM,YAAE,QAAQ,CAAA,aAAE,SAAS,CAAA,WAAE,OAAO,GAAG,KAAK,GAAE,GAAG,IAAI,EAAE,GAAG,KAAK,AAAC;IAChE,MAAM,GAAG,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,gBAAgB,EAAE,SAAS,EAAE;iBAAE,OAAO;KAAE,CAAC,AAAC;IACjE,OAAO,uBAAC,CAAC,yCAAmB,EAAE;QAAE,SAAS,EAAE,GAAG;KAAE,EAAE;QAChD,uBAAC,CAAC,CAAA,GAAA,yCAAgB,CAAA,EAAE,IAAI,CAAC;QACzB,uBAAC,CAAC,qBAAqB,EAAE,uBAAC,CAAC,yBAAyB,EAAE,uBAAC,CAAC,CAAA,GAAA,yCAAa,CAAA,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;KACzF,CAAC,CAAC;CACJ;;;;;;;;;AqDpBD;;;;;ACDA;;AAWO,eAAe,yCAAc,CAClC,SAA0B,EAC1B,MAAmB,GAAG,IAAI,EAC1B;IACA,MAAM,cACJ,UAAU,GAAG,KAAK,UAClB,KAAK,GAAG,mBAAmB,gBAC3B,WAAW,CAAA,eACX,WAAW,CAAA,EACZ,GAAG,MAAM,AAAC;IACX,MAAM,KAAK,GAAG,MAAM,CAAA,GAAA,yCAAc,CAAA,CAAC,SAAS,EAAE;QAAE,YAAY,EAAE,WAAW;KAAE,CAAC,AAAC;IAC7E,MAAM,OAAO,GAAG,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,AAAC;IAE1D,IAAI,MAAM,GAAG,EAAE,AAAC;IAChB,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,CAAE;QAC9B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACnC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,SAAS;SACV;QACD,IAAI,QAAQ,GAAG,0CAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,AAAC;QAC9D,IAAI,QAAQ,IAAI,IAAI,EAClB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAEzB;IAED,OAAO;QACL,GAAG,KAAK;gBACR,MAAM;KACP,CAAC;CACH;AAED,SAAS,0CAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;IACtD,MAAM,CAAC,GAAG,CAAA,GAAA,eAAM,CAAA,CAAC,KAAK,CAAC,AAAC;IACxB,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,GAAK;QAC7C,IAAI,CAAC,UAAU,EACb,OAAO,CAAA,GAAA,eAAM,CAAA,CAAC,KAAK,CAAC,CACjB,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAClB,KAAK,CAAC,OAAO,CAAC,CACd,GAAG,EAAE,CAAC;QAEX,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;KAC9C,AAAC;IAEF,IAAI,KAAK,CAAC,IAAI,IAAI,YAAY,EAC5B,OAAO,IAAI,CAAC;IAGd,IAAI,QAAQ,GAAG;QAAE,GAAG,KAAK;KAAE,AAAC;IAE5B,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,EACtB,QAAQ,CAAC,KAAK,GAAG;QACf,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC;QAC5B,oBAAoB,EAAE,SAAS,CAAC,GAAG,CAAC;KACrC,CAAC;SACG,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,EAC7B,QAAQ,CAAC,KAAK,GAAG;QACf,YAAY,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/B,YAAY,EAAE,GAAG;KAClB,CAAC;SACG,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,EAC/B,QAAQ,CAAC,KAAK,GAAG;QACf,YAAY,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;QAChC,iBAAiB,EAAE,MAAM;KAC1B,CAAC;SACG,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,EAC/B,QAAQ,CAAC,KAAK,GAAG;QACf,cAAc,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QACjC,qBAAqB,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QACxC,eAAe,EAAE,CAAC;KACnB,CAAC;IAGJ,OAAO,QAAQ,CAAC;CACjB;AAMM,eAAe,yCAAmB,CACvC,SAAkC,EAClC,YAA4C,GAAG,IAAI,EACnD,MAA6B,GAAG,EAAE,EAClC;IACA,MAAM,eAAE,WAAW,CAAA,QAAE,IAAI,GAAG,KAAK,GAAE,WAAW,EAAE,YAAY,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,AAAC;IACjF,IAAI,WAAW,GAAG,YAAY,AAAC;IAC/B,IAAI,KAAK,GAAG,MAAM,CAAA,GAAA,yCAAc,CAAA,CAAC,SAAS,EAAE;QAC1C,YAAY,EAAE,WAAW;KAC1B,CAAC,AAAC;IAEH,IAAI,YAAY,IAAI,IAAI,EAAE;QACxB,MAAM,OAAO,GAAG,MAAM,CAAA,GAAA,yCAAc,CAAA,CAAC,YAAY,EAAE;YACjD,YAAY,EAAE,WAAW;SAC1B,CAAC,AAAC;QACH,KAAK,GAAG,CAAA,GAAA,yCAAW,CAAA,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpC,WAAW,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAC9C;IAGD,IAAI,IAAI,EAAE;QACR,8DAA8D;QAC9D,WAAW,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE3C,KAAK,GAAG,MAAM,yCAAc,CAAC,KAAK,EAAE;YAAE,GAAG,IAAI;yBAAE,WAAW;yBAAE,WAAW;SAAE,CAAC,CAAC;KAC5E;IACD,OAAO,KAAK,CAAC;CACd;;;;;;;;;ACrHD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA,IAAA,yCAA8C;AAC9C,IAAA,yCAAsD;AACtD,IAAA,yCAA4D;AAC5D,IAAA,yCAA0D;AAC1D,IAAA,yCAA0D;AAC1D,IAAA,yCAA8D;AAC9D,IAAA,yCAAwD;AACxD,IAAA,yCAAwD;AACxD,IAAA,yCAA4C;AAC5C,IAAA,yCAAkD;AAClD,IAAA,yCAAwD;AACxD,IAAA,yCAAgD;AAChD,IAAA,yCAAsD;AACtD,IAAA,yCAA4D;AAC5D,IAAA,yCAAoD;AACpD,IAAA,yCAA0C;AAC1C,IAAA,yCAAkE;AAClE,IAAA,yCAA8D;AAC9D,IAAA,wCAAoD;AACpD,IAAA,yCAA4C;AAC5C,IAAA,yCAAkD;AAClD,IAAA,wCAAgD;AAChD,IAAA,wCAAoD;AACpD,IAAA,yCAAsD;AACtD,IAAA,yCAA4C;AAC5C,IAAA,yCAAoE;AACpE,IAAA,yCAAsD;AACtD,IAAA,yCAAkD;AAClD,IAAA,yCAAsD;AACtD,IAAA,yCAA8D;AAC9D,IAAA,yCAAgE;AAChE,IAAA,yCAAsD;AACtD,IAAA,yCAAgD;AAChD,IAAA,yCAAsD;AACtD,IAAA,yCAAoD;AACpD,IAAA,yCAAgE;AAChE,IAAA,yCAAkE;AAClE,IAAA,yCAA8D;AAC9D,IAAA,yCAAsD;AACtD,IAAA,yCAAkD;AAClD,IAAA,yCAA0C;AAC1C,IAAA,yCAA8C;AAC9C,IAAA,yCAAgE;AAChE,IAAA,yCAAkE;AAClE,IAAA,yCAAwD;AACxD,IAAA,yCAAkE;AAClE,IAAA,yCAAoE;AA9CpE,yCAA0B,GAAG,iBAAiB,CAAC;AAC/C,yCAA8B,GAAG,qBAAqB,CAAC;AACvD,yCAAiC,GAAG,wBAAwB,CAAC;AAC7D,yCAAgC,GAAG,uBAAuB,CAAC;AAC3D,yCAAgC,GAAG,uBAAuB,CAAC;AAC3D,yCAAkC,GAAG,yBAAyB,CAAC;AAC/D,yCAA+B,GAAG,sBAAsB,CAAC;AACzD,yCAA+B,GAAG,sBAAsB,CAAC;AACzD,yCAAyB,GAAG,gBAAgB,CAAC;AAC7C,yCAA4B,GAAG,mBAAmB,CAAC;AACnD,yCAA+B,GAAG,sBAAsB,CAAC;AACzD,yCAA2B,GAAG,kBAAkB,CAAC;AACjD,yCAA8B,GAAG,qBAAqB,CAAC;AACvD,yCAAiC,GAAG,wBAAwB,CAAC;AAC7D,yCAA6B,GAAG,oBAAoB,CAAC;AACrD,yCAAwB,GAAG,eAAe,CAAC;AAC3C,yCAAoC,GAAG,2BAA2B,CAAC;AACnE,yCAAkC,GAAG,yBAAyB,CAAC;AAC/D,wCAA6B,GAAG,oBAAoB,CAAC;AACrD,yCAAyB,GAAG,gBAAgB,CAAC;AAC7C,yCAA4B,GAAG,mBAAmB,CAAC;AACnD,wCAA2B,GAAG,kBAAkB,CAAC;AACjD,wCAA6B,GAAG,oBAAoB,CAAC;AACrD,yCAA8B,GAAG,qBAAqB,CAAC;AACvD,yCAAyB,GAAG,gBAAgB,CAAC;AAC7C,yCAAqC,GAAG,4BAA4B,CAAC;AACrE,yCAA8B,GAAG,qBAAqB,CAAC;AACvD,yCAA4B,GAAG,mBAAmB,CAAC;AACnD,yCAA8B,GAAG,qBAAqB,CAAC;AACvD,yCAAkC,GAAG,yBAAyB,CAAC;AAC/D,yCAAmC,GAAG,0BAA0B,CAAC;AACjE,yCAA8B,GAAG,qBAAqB,CAAC;AACvD,yCAA2B,GAAG,kBAAkB,CAAC;AACjD,yCAA8B,GAAG,qBAAqB,CAAC;AACvD,yCAA6B,GAAG,oBAAoB,CAAC;AACrD,yCAAmC,GAAG,0BAA0B,CAAC;AACjE,yCAAoC,GAAG,2BAA2B,CAAC;AACnE,yCAAkC,GAAG,yBAAyB,CAAC;AAC/D,yCAA8B,GAAG,qBAAqB,CAAC;AACvD,yCAA4B,GAAG,mBAAmB,CAAC;AACnD,yCAAwB,GAAG,eAAe,CAAC;AAC3C,yCAA0B,GAAG,iBAAiB,CAAC;AAC/C,yCAAmC,GAAG,0BAA0B,CAAC;AACjE,yCAAoC,GAAG,2BAA2B,CAAC;AACnE,yCAA+B,GAAG,sBAAsB,CAAC;AACzD,yCAAoC,GAAG,2BAA2B,CAAC;AACnE,yCAAqC,GAAG,4BAA4B,CAAC;;;;;;;AC9CrE;;;;;;AAYA,MAAM,uBAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAE/B,SAAS,kCAAY,CAAC,KAAK,EAAE;IAC3B,MAAM,UAAU,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC;QACxB,QAAQ,EAAE,GAAG;QACb,IAAI,EAAE,QAAQ;KACf,CAAC,AAAC;IACH,OAAO,uBAAC,CAAC,CAAA,GAAA,yCAAiB,CAAA,EAAE;QAC1B,SAAS,EAAE,mBAAmB;QAC9B,OAAO,EAAE,CAAA,GAAA,mBAAgB,CAAA;QACzB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,GAAG,KAAK;KACT,CAAC,CAAC;CACJ;AAED,SAAS,wCAAkB,CAAC,KAAK,EAAE;IACjC,MAAM,UAAU,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC;QACxB,kBAAkB,EAAE,IAAI;QACxB,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,eAAe,EAAE;YACf,kBAAkB,EAAE,IAAI;SACzB;KACF,CAAC,AAAC;IACH,OAAO,uBAAC,CAAC,CAAA,GAAA,yCAAiB,CAAA,EAAE;QAC1B,OAAO,EAAE,CAAA,GAAA,uBAAgB,CAAA;QACzB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,GAAG,KAAK;KACT,CAAC,CAAC;CACJ;AAEM,SAAS,yCAAiB,GAAG;IAClC,OAAO,uBAAC,CAAC,kBAAkB,EAAE;QAC3B,uBAAC,CAAC,kCAAY,CAAC;QACf,uBAAC,CAAC,CAAA,GAAA,yCAAa,CAAA,EAAE;YAAE,SAAS,EAAE,gBAAgB;SAAE,CAAC;QACjD,uBAAC,CAAC,CAAA,GAAA,yCAAc,CAAA,EAAE;YAAE,SAAS,EAAE,iBAAiB;SAAE,CAAC;QACnD,uBAAC,CAAC,CAAA,GAAA,yCAAY,CAAA,EAAE;YAAE,SAAS,EAAE,eAAe;SAAE,CAAC;QAC/C,uBAAC,CAAC,wCAAkB,EAAE;YAAE,SAAS,EAAE,qBAAqB;SAAE,CAAC;KAC5D,CAAC,CAAC;CACJ;;;;;;;;;;;ACnDD;;;;;;;;;ACAA,IAAA,yCAAkE;AAAlE,yCAAoC,GAAG,CAAC,yBAAyB,CAAC,CAAC;;;;ACE5D,SAAS,yCAAe,CAC7B,GAAG,EACH,YAAqB,EACrB,QAAuB,GAAG,IAAI,EAC9B;IACA,IAAI,WAAW,GAAG,CAAA,QAAQ,IAAI,wCAAkB,CAAC,GAAG,CAAC,CAAA,IAAI,YAAY,AAAC;IAEtE,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,WAAW,CAAC,CAAC;IAE5D,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE;QACvB,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAM;YAC3B,yCAAe,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;SACjD,CAAC,CAAC;QACH,OAAO;KACR;IAED,gEAAgE;IAChE,MAAM,cAAc,GAAG,GAAG,CAAC,UAAU,EAAE,AAAC;IACxC,IAAI,CAAC,YAAY,EAAE;QACjB,IAAI,cAAc,IAAI,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO;KACR;IACD,IAAI,cAAc,IAAI,IAAI,EAAE,OAAO;IAEnC,gDAAgD;IAChD,IAAI,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI,EACpC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;QACzB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,uCAAuC;QAC5C,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAGL,gEAAgE;IAChE,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAC7B,GAAG,CAAC,QAAQ,CAAC;QACX,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,KAAK;QACX,KAAK,EAAE;YACL,UAAU,EAAE,YAAY;YACxB,oBAAoB,EAAE;AAAC,mBAAG;AAAE,mBAAG;aAAC;YAChC,8BAA8B,EAAE,EAAE;SACnC;KACF,CAAC,CAAC;IAGL,GAAG,CAAC,UAAU,CAAC;QAAE,MAAM,EAAE,WAAW;QAAE,YAAY,EAAE,CAAC;KAAE,CAAC,CAAC;CAC1D;AAED,SAAS,wCAAkB,CAAC,GAAG,EAAE;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAE;QAClE,IAAI,MAAM,CAAC,IAAI,IAAI,YAAY,EAC7B,OAAO,GAAG,CAAC;KAEd;IACD,OAAO,IAAI,CAAC;CACb;;;AC3DD;;;;;;ACAA;;AAGA,SAAS,oCAAc,CAAC,IAAI,EAAE,SAAS,EAAE;IACvC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KACpD,CAAC;CACH;AAEM,SAAS,yCAAa,CAAC,GAAG,EAAE,SAAS,EAAE;IAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,qBAAqB,EAAE,AAAC;IACxD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE,AAAC;IACvD,IAAI,IAAI,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE,OAAO;IAC9C,OAAO,oCAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CACxC;AAEM,SAAS,yCAAY,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE;IAC9D,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,AAAC;QAC3B,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO;QACxB,IAAI,cAAc,IAAI,IAAI,EAAE;YAC1B,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAC5B,OAAO;SACR;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,IAAI,IAAI,CAAA,GAAA,aAAM,CAAA,EAAE,AAAC;QACjD,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;QAC3B,OAAO,IAAM,MAAM,CAAC,MAAM,EAAE,CAAC;KAC9B,EAAE;QAAC,MAAM,CAAC,OAAO;QAAE,cAAc;KAAC,CAAC,CAAC;CACtC;;;ADjBM,SAAS,yCAAgB,CAAC,gBAAE,YAAY,CAAA,EAAE,EAAE;IACjD,MAAM,MAAM,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IAE3B,MAAM,eAAe,GAAG,CAAA,GAAA,aAAM,CAAA,CAC5B,CAAA,GAAA,eAAQ,CAAA,CAAC,IAAM;QACb,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;KAC1B,EAAE,GAAG,CAAC,CACR,AAAC;IAEF,CAAA,GAAA,wBAAiB,CAAA,CAAC;QAChB,GAAG,EAAE,YAAY;QACjB,QAAQ,EAAE,eAAe,CAAC,OAAO;KAClC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;CACb;AAQM,SAAS,yCAAiB,CAAC,gBAChC,YAAY,CAAA,aACZ,SAAS,CAAA,sBACT,kBAAkB,CAAA,EACK,EAAE;IACzB,MAAM,MAAM,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IAE3B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CACpC,CAAA,GAAA,yCAAa,CAAA,CAAC,YAAY,EAAE,SAAS,CAAC,CACvC,AAAC;IAEF,MAAM,gBAAgB,GAAG,CAAA,GAAA,kBAAW,CAAA,CAAC,IAAM;QACzC,MAAM,UAAU,GAAG,CAAA,GAAA,yCAAa,CAAA,CAAC,YAAY,EAAE,SAAS,CAAC,AAAC;QAC1D,UAAU,CAAC,UAAU,CAAC,CAAC;KACxB,EAAE;QAAC,YAAY,CAAC,OAAO;QAAE,SAAS,CAAC,OAAO;KAAC,CAAC,AAAC;IAE9C,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,AAAC;QAC3B,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO;QACxB,6BAA6B;QAC7B,gBAAgB,EAAE,CAAC;KACpB,EAAE;QAAC,MAAM,CAAC,OAAO;KAAC,CAAC,CAAC;IAErB,CAAA,GAAA,wBAAiB,CAAA,CAAC;QAChB,GAAG,EAAE,SAAS;QACd,QAAQ,EAAC,EAAE,EAAE;YACX,gBAAgB,EAAE,CAAC;SACpB;KACF,CAAC,CAAC;IAEH,CAAA,GAAA,yCAAkB,CAAA,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAEhD,OAAO,IAAI,CAAC;CACb;AAEM,SAAS,yCAAgB,CAAC,cAAE,UAAU,GAAG,IAAI,GAAE,EAAE;IACtD,MAAM,MAAM,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IAC3B,MAAM,QAAQ,GAAG,CAAA,GAAA,yCAAc,CAAA,EAAE,AAAC;IAElC,MAAM,gBAAgB,GAAG,CAAA,GAAA,kBAAW,CAAA,CAAC,IAAM;QACzC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,AAAC;QAC3B,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO;QACxB,MAAM,WAAW,GAAG,CAAA,GAAA,yCAAc,CAAA,CAAC,GAAG,CAAC,AAAC;QACxC,QAAQ,CAAC;YAAE,IAAI,EAAE,WAAW;YAAE,OAAO,EAAE,WAAW;SAAE,CAAC,CAAC;QACtD,UAAU,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC;KAChC,EAAE;QAAC,MAAM,CAAC,OAAO;QAAE,UAAU;QAAE,QAAQ;KAAC,CAAC,AAAC;IAE3C,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,qEAAqE;QACrE,uBAAuB;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,AAAC;QAC3B,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO;QACxB,oCAAoC;QACpC,gBAAgB,EAAE,CAAC;QACnB,MAAM,EAAE,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,gBAAgB,EAAE,GAAG,CAAC,AAAC;QAC3C,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACtB,OAAO,IAAM;YACX,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SACzB,CAAC;KACH,EAAE;QAAC,gBAAgB;KAAC,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC;CACb;AAEM,SAAS,yCAAkB,CAAC,kBACjC,cAAc,CAAA,gBACd,YAAY,GAAG,IAAI,cACnB,SAAS,GAAG,IAAI,GAChB,YAAY,EAAZ,aAAY,CAAA,IACb,EAAE;IACD,MAAM,MAAM,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IAC3B,MAAM,UAAU,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,KAAK,CAAC,AAAC;IACjC,MAAM,QAAQ,GAAG,CAAA,GAAA,yCAAc,CAAA,EAAE,AAAC;IAElC,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,AAAC;QAC3B,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,AAAC;QACxC,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO;QAExB,IAAI,cAAc,GAAG,KAAK,AAAC;QAE3B,MAAM,eAAe,GAAG,CAAC,GAAG,GAAK;YAC/B,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,OAAO;YAClE,IAAI,cAAc,EAAE,OAAO;YAC3B,YAAY,GAAG,GAAG,CAAC,CAAC;YACpB,QAAQ,CAAC;gBAAE,IAAI,EAAE,aAAa;gBAAE,OAAO,EAAE,IAAI;aAAE,CAAC,CAAC;YACjD,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,cAAc,GAAG,IAAI,CAAC;SACvB,AAAC;QACF,MAAM,YAAY,GAAG,CAAC,GAAG,GAAK;YAC5B,IAAI,CAAC,YAAY,EAAE,OAAO;YAC1B,QAAQ,CAAC;gBAAE,IAAI,EAAE,aAAa;gBAAE,OAAO,EAAE,KAAK;aAAE,CAAC,CAAC;YAClD,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;YAC3B,SAAS,GAAG,GAAG,CAAC,CAAC;SAClB,AAAC;QACF,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;QAC7C,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7B,OAAO,IAAM;YACX,GAAG,EAAE,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;YAC/C,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;SAChC,CAAC;KACH,EAAE;QAAC,cAAc;QAAE,MAAM,CAAC,OAAO;QAAE,aAAY;KAAC,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC;CACb;AAEM,SAAS,yCAAS,CAAC,YAAE,QAAQ,CAAA,eAAE,WAAW,CAAA,gBAAE,YAAY,GAAG,IAAI,GAAE,EAAE;IACxE,MAAM,MAAM,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IAC3B,MAAM,SAAS,GAAG,CAAA,GAAA,aAAM,CAAA,CAAC,IAAI,CAAC,AAAC;IAE/B,CAAA,GAAA,yCAAY,CAAA,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE1C,MAAM,cAAc,GAAG,CAAA,GAAA,kBAAW,CAAA,CAChC,CAAC,KAA6B,GAAK;QACjC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,wDAAwD;QACxD,IAAI,YAAY,EACd,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,KAAK,CAAC,MAAM;YAAE,QAAQ,EAAE,GAAG;SAAE,CAAC,CAAC;KAElE,EACD;QAAC,MAAM,CAAC,OAAO;QAAE,WAAW;KAAC,CAC9B,AAAC;IAEF,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,AAAC;QAC3B,IAAI,GAAG,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,EACpC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAElC,OAAO,IAAM;YACX,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;SACnC,CAAC;KACH,EAAE;QAAC,MAAM,CAAC,OAAO;QAAE,WAAW;KAAC,CAAC,CAAC;IAElC,OAAO,IAAI,CAAC;CACb;;;AHlJD,MAAM,uBAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC;IAAE,GAAG,CAAA,GAAA,gEAAM,CAAA;IAAE,GAAG,CAAA,GAAA,gEAAU,CAAA;CAAE,CAAC,AAAC;AAgBrD,SAAS,mCAAa,CAAC,SAAS,EAAE,IAAuB,GAAG,EAAE,EAAE;IAC9D,MAAM,GAAG,GAAG,IAAI,CAAA,GAAA,eAAQ,CAAA,CAAC,GAAG,CAAC;mBAC3B,SAAS;QACT,OAAO,EAAE,EAAE;QACX,sBAAsB;QACtB,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,IAAI;QACf,kBAAkB,EAAE,IAAI;QACxB,GAAG,IAAI;KACR,CAAC,AAAC;IAEH,mCAAmC;IACnC,OAAO,GAAG,CAAC;CACZ;AAED,MAAM,wCAAkB,GAAgB;IACtC,MAAM,EAAE;QACN,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,IAAI;QACT,QAAQ,EAAE,MAAM;KACjB;CACF,AAAC;AAEK,SAAS,yCAAO,CAAC,KAAmB,EAAE;IAC3C,IAAI,mBAAE,eAAe,CAAA,EAAE,GAAG,KAAK,AAAC;IAChC,MAAM,iBACJ,aAAa,GAAG,IAAI,UACpB,KAAK,CAAA,oBACL,gBAAgB,CAAA,eAChB,WAAW,GAAG,wCAAkB,aAChC,QAAQ,CAAA,eACR,WAAW,CAAA,sBACX,kBAAkB,CAAA,cAClB,UAAU,CAAA,IACX,GAAG,KAAK,AAAC;IACV,IAAI,aAAa,EACf,eAAe,KAAK,eAAe,CAAC;IAGtC,IAAI,WAAW,IAAI,IAAI,EACrB,CAAA,GAAA,eAAQ,CAAA,CAAC,WAAW,GAAG,WAAW,CAAC;IAGrC,MAAM,QAAQ,GAAG,CAAA,GAAA,yCAAc,CAAA,EAAE,AAAC;IAClC,IAAI,MAAM,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IACzB,MAAM,GAAG,GAAG,CAAA,GAAA,aAAM,CAAA,EAAkB,AAAC;IACrC,MAAM,SAAS,GAAG,CAAA,GAAA,aAAM,CAAA,EAAkB,AAAC;IAE3C,yCAAyC;IAEzC,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE,OAAO;QACrE,IAAI,MAAM,EAAE,OAAO,IAAI,IAAI,EAAE,OAAO;QACpC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,mCAAa,CAAC,GAAG,CAAC,OAAO,EAAE;mBACrC,KAAK;8BACL,gBAAgB;wBAChB,UAAU;SACX,CAAC,AAAC;QACH,QAAQ,CAAC;YAAE,IAAI,EAAE,SAAS;YAAE,OAAO,EAAE,GAAG;SAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,IAAM;YACX,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,QAAQ,CAAC;gBAAE,IAAI,EAAE,SAAS;gBAAE,OAAO,EAAE,IAAI;aAAE,CAAC,CAAC;SAC9C,CAAC;KACH,EAAE;QAAC,gBAAgB;QAAE,QAAQ;QAAE,KAAK;KAAC,CAAC,CAAC;IAExC,qBAAqB;IACrB,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,MAAM,EAAE,OAAO,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE,OAAO;QACrD,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;KAClC,EAAE;QAAC,MAAM,CAAC,OAAO;QAAE,KAAK;KAAC,CAAC,CAAC;IAE5B,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,AAAC;QAC3B,IAAI,GAAG,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,EAAE,OAAO;QAC/C,CAAA,GAAA,yCAAc,CAAA,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;KAClC,EAAE;QAAC,MAAM,CAAC,OAAO;KAAC,CAAC,CAAC;IAErB,MAAM,EAAE,WAAW,EAAE,oBAAoB,CAAA,EAAE,GAAG,CAAA,GAAA,yCAAY,CAAA,EAAE,AAAC;IAC7D,MAAM,YAAE,QAAQ,CAAA,gBAAE,YAAY,CAAA,EAAE,GAAG,CAAA,GAAA,yCAAW,CAAA,CAAC,oBAAoB,CAAC,AAAC;IAErE,qBAAqB;IACrB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,IAAI,UAAU,AAAC;IAExE,MAAM,SAAS,GAAG,CAAA,GAAA,iBAAU,CAAA,CAC1B;QACE,YAAY,EAAE,YAAY,IAAI,KAAK;QACnC,iBAAiB,EAAE,QAAQ,IAAI,KAAK;KACrC,EACD,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAC5B,AAAC;IAEF,OAAO,uBAAC,CAAC,kCAAkC,EAAE;QAAE,GAAG,EAAE,SAAS;KAAE,EAAE;QAC/D,uBAAC,CAAC,oBAAoB,EAAE;iBAAE,GAAG;uBAAE,SAAS;SAAE,CAAC;QAC3C,uBAAC,CAAC,CAAA,GAAA,yCAAkB,CAAA,EAAE;YACpB,cAAc,EAAE;gBAAC,iBAAiB;gBAAE,uBAAuB;aAAC;SAC7D,CAAC;QACF,uBAAC,CAAC,CAAA,GAAA,yCAAgB,CAAA,CAAC;QACnB,uBAAC,CAAC,CAAA,GAAA,yCAAgB,CAAA,EAAE;YAAE,YAAY,EAAE,GAAG;SAAE,CAAC;QAC1C,uBAAC,CAAC,CAAA,GAAA,yCAAiB,CAAA,EAAE;YAAE,YAAY,EAAE,GAAG;uBAAE,SAAS;gCAAE,kBAAkB;SAAE,CAAC;QAC1E,uBAAC,CAAC,yCAAiB,EAAE;sBAAE,QAAQ;6BAAE,eAAe;SAAE,CAAC;QACnD,QAAQ;KACT,CAAC,CAAC;CACJ;AAEM,SAAS,yCAAiB,CAAC,YAChC,QAAQ,CAAA,mBACR,eAAe,CAAA,EAIhB,EAAE;IACD,MAAM,MAAM,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IAE3B,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,AAAC;QAC3B,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO;QACxB,CAAA,GAAA,yCAAe,CAAA,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;KACjD,EAAE;QAAC,MAAM,CAAC,OAAO;QAAE,QAAQ;KAAC,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC;CACb;;;AH7IM,SAAS,yCAAY,GAAG;IAC7B,OAAO,uBAAC,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;CAChC;AAED,MAAM,uBAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAIxB,MAAM,yCAAS,GAAG,CAAC,KAAK,GAC7B,uBAAC,CAAC,CAAA,GAAA,WAAI,CAAA,EAAE;QAAE,GAAG,KAAK;QAAE,SAAS,EAAE,CAAA,GAAA,iBAAU,CAAA,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;KAAE,CAAC,AAAC;AAE9E,SAAS,uCAAiB,CAAC,YACzB,QAAQ,CAAA,aACR,SAAS,CAAA,UACT,MAAM,CAAA,gBACN,YAAY,GAAG,IAAI,gBACnB,WAAW,GAAG,IAAI,oBAClB,eAAe,CAAA,oBACf,gBAAgB,GAAG,IAAI,gBACvB,WAAW,GAAG,IAAI,cAClB,SAAS,CAAA,eACT,WAAW,GAAG,uBAAC,CAAC,CAAA,GAAA,yCAAiB,CAAA,CAAC,sBAClC,iBAAiB,GAAG,IAAI,qBACxB,gBAAgB,GAAG,IAAI,gBACvB,WAAW,GAAG,IAAI,gBAClB,WAAW,GAAG,IAAI,GAClB,GAAG,IAAI,EAgBR,EAAE;IACD,MAAM,gBAAgB,GAAG,eAAe,IAAI,WAAW,IAAI,IAAI,AAAC;IAChE,MAAM,iBAAiB,GAAG,CAAA,GAAA,oBAAa,CAAA,CAAC,gBAAgB,EAAE,GAAG,CAAC,AAAC;IAC/D,MAAM,gBAAgB,GAAG,CAAA,GAAA,oBAAa,CAAA,CAAC,gBAAgB,EAAE,GAAG,CAAC,AAAC;IAE9D;;;;;;;IAOE,CACF,MAAM,UAAU,GAAG,CAAA,GAAA,iBAAU,CAAA,CAC3B;QACE,SAAS,EAAE,KAAK;QAChB,mBAAmB,EAAE,gBAAgB;QACrC,kBAAkB,EAAE,gBAAgB;QACpC,cAAc,EAAE,WAAW;KAC5B,EACD,CAAC,cAAc,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAC1C,CAAC,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,EACxC,CAAC,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,EACxC,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CACvC,AAAC;IAEF,OAAO,uBAAC,CACN,yCAAkB,EAClB;QAAE,SAAS,EAAE,CAAA,GAAA,iBAAU,CAAA,CAAC,UAAU,EAAE,SAAS,CAAC;qBAAE,WAAW;KAAE,EAC7D;QACE,uBAAC,CAAC,aAAa,EAAE;YAAE,SAAS,EAAE,UAAU;YAAE,GAAG,IAAI;SAAE,EAAE;YACnD,uBAAC,CAAC,mBAAmB,EAAE,iBAAiB,EAAE;gBACxC,MAAM;gBACN,uBAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBAAC,YAAY;iBAAC,CAAC;aACpD,CAAC;YACF,aAAa;YACb,QAAQ,IAAI,SAAS;YACrB,uBAAC,CAAC,uCAAuC,EAAE,gBAAgB,EAAE;gBAC3D,WAAW;gBACX,uBAAC,CAAC,CAAA,GAAA,yCAAW,CAAA,EAAE;oBAAE,SAAS,EAAE,cAAc;iBAAE,CAAC;gBAC7C,uBAAC,CAAC,YAAY,CAAC;gBACf,WAAW;aACZ,CAAC;SACH,CAAC;QACF,uBAAC,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,CAAC;KACnC,CACF,CAAC;CACH;AAED,MAAM,kCAAY,GAAG,CAAC,YAAE,QAAQ,CAAA,EAAE,GAChC,uBAAC,CAAC,CAAA,GAAA,yCAAc,CAAA,EAAE,uBAAC,CAAC,CAAA,GAAA,yCAAiB,CAAA,EAAE,QAAQ,CAAC,CAAC,AAAC;AAE7C,MAAM,yCAAgB,GAAG,CAAC,KAAK,GACpC,uBAAC,CAAC,kCAAY,EAAE,uBAAC,CAAC,uCAAiB,EAAE,KAAK,CAAC,CAAC,AAAC;AAQxC,SAAS,yCAAkB,CAAC,aAAE,SAAS,CAAA,YAAE,QAAQ,CAAA,EAAqB,EAAE;IAC7E,MAAM,eAAE,WAAW,CAAA,EAAE,GAAG,CAAA,GAAA,yCAAY,CAAA,EAAE,AAAC;IACvC,IAAI,WAAW,IAAI,IAAI,EAAE;QACvB,MAAM,gBAAE,YAAY,CAAA,YAAE,QAAQ,CAAA,eAAE,WAAW,CAAA,EAAE,GAAG,CAAA,GAAA,yCAAW,CAAA,CAAC,WAAW,CAAC,AAAC;QACzE,SAAS,GAAG,CAAA,GAAA,iBAAU,CAAA,CAAC,SAAS,EAAE;YAChC,gBAAgB,EAAE,YAAY;YAC9B,kBAAkB,EAAE,QAAQ;YAC5B,eAAe,EAAE,WAAW;SAC7B,CAAC,CAAC;KACJ;IAED,OAAO,uBAAC,CAAC,KAAK,EAAE;mBAAE,SAAS;KAAE,EAAE,QAAQ,CAAC,CAAC;CAC1C;;;;;;;;;;;;;;;;;;;;;;;;;AQxID,IAAA,yCAAwD;AACxD,IAAA,yCAAgD;AAChD,IAAA,yCAAoC;AACpC,IAAA,yCAAwC;AACxC,IAAA,yCAAkE;AAClE,IAAA,yCAA0D;AAC1D,IAAA,wCAAwD;AACxD,IAAA,yCAAgD;AAChD,IAAA,yCAA0D;AAC1D,IAAA,wCAAoD;AACpD,IAAA,yCAAsC;AACtC,IAAA,yCAAsC;AACtC,IAAA,yCAA0D;AAZ1D,yCAA+B,GAAG,sBAAsB,CAAC;AACzD,yCAA2B,GAAG,kBAAkB,CAAC;AACjD,yCAAqB,GAAG,YAAY,CAAC;AACrC,yCAAuB,GAAG,cAAc,CAAC;AACzC,yCAAoC,GAAG,2BAA2B,CAAC;AACnE,yCAAgC,GAAG,uBAAuB,CAAC;AAC3D,wCAA+B,GAAG,sBAAsB,CAAC;AACzD,yCAA2B,GAAG,kBAAkB,CAAC;AACjD,yCAAgC,GAAG,uBAAuB,CAAC;AAC3D,wCAA6B,GAAG,oBAAoB,CAAC;AACrD,yCAAsB,GAAG,aAAa,CAAC;AACvC,yCAAsB,GAAG,aAAa,CAAC;AACvC,yCAAgC,GAAG,uBAAuB,CAAC;;;ACZ3D;;;AAMO,SAAS,yCAAe,CAAC,QAC9B,IAAI,CAAA,SACJ,KAAK,GAAG,KAAK,GAId,EAAE;IACD,MAAM,aAAa,GAAG,CAAA,GAAA,kBAAW,CAAA,CAC/B,CAAC,GAAG,EAAE,GAAc,GAAK;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,AAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,OAAO;QACjC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAK,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,CAAC;QACjE,IAAI,GAAG,IAAI,IAAI,EACb,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE7B,MAAM,KAAE,CAAC,CAAA,KAAE,CAAC,CAAA,KAAE,CAAC,CAAA,EAAE,GAAG,GAAG,AAAC;QACxB,MAAM,MAAM,GAAG,CAAA,GAAA,oBAAa,CAAA,CAAC;YAAC,CAAC;YAAE,CAAC;YAAE,CAAC;SAAC,CAAC,AAAC;QACxC,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM;SACb,AAAC;QACF,MAAM,KAAK,GAAG;YACZ,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE;gBACL,YAAY,EAAE,KAAK;gBACnB,YAAY,EAAE,CAAC;aAChB;SACF,AAAC;QACF,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QACtC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACrB,EACD;QAAC,KAAK;KAAC,CACR,AAAC;IACF,MAAM,IAAG,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IACxB,CAAA,GAAA,yCAAsB,CAAA,CAAC,IAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC;CACb;;;AC7CD;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;ACAA,IAAA,yCAAwD;AACxD,IAAA,yCAAwC;AACxC,IAAA,yCAA4D;AAC5D,IAAA,yCAAoE;AACpE,IAAA,yCAA0E;AAC1E,IAAA,yCAAsF;AACtF,IAAA,yCAAkE;AAClE,IAAA,yCAA4E;AAC5E,IAAA,yCAA4E;AAC5E,IAAA,yCAAgF;AAChF,IAAA,yCAAoF;AACpF,IAAA,yCAAgF;AAChF,IAAA,yCAAkE;AAClE,IAAA,yCAA4D;AAC5D,IAAA,yCAA0D;AAC1D,IAAA,yCAAwF;AACxF,IAAA,yCAAoF;AAhBpF,yCAA+B,GAAG,sBAAsB,CAAC;AACzD,yCAAuB,GAAG,cAAc,CAAC;AACzC,yCAAiC,GAAG,wBAAwB,CAAC;AAC7D,yCAAqC,GAAG,4BAA4B,CAAC;AACrE,yCAAwC,GAAG,+BAA+B,CAAC;AAC3E,yCAA8C,GAAG,qCAAqC,CAAC;AACvF,yCAAoC,GAAG,2BAA2B,CAAC;AACnE,yCAAyC,GAAG,gCAAgC,CAAC;AAC7E,yCAAyC,GAAG,gCAAgC,CAAC;AAC7E,yCAA2C,GAAG,kCAAkC,CAAC;AACjF,yCAA6C,GAAG,oCAAoC,CAAC;AACrF,yCAA2C,GAAG,kCAAkC,CAAC;AACjF,yCAAoC,GAAG,2BAA2B,CAAC;AACnE,yCAAiC,GAAG,wBAAwB,CAAC;AAC7D,yCAAgC,GAAG,uBAAuB,CAAC;AAC3D,yCAA+C,GAAG,sCAAsC,CAAC;AACzF,yCAA6C,GAAG,oCAAoC,CAAC;;;;;AChBrF;;AAGA,MAAM,uBAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAExB,SAAS,yCAAY,CAAC,KAAK,EAAE;IAClC,MAAM,SAAE,KAAK,CAAA,aAAE,SAAS,GAAG,IAAI,aAAE,QAAQ,CAAA,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,AAAC;IAC7D,OAAO,uBAAC,CAAC,mBAAmB,EAAE,IAAI,EAAE;QAClC,uBAAC,CACC,SAAS,EACT;YACE,SAAS,EAAE,OAAO;SACnB,EACD,KAAK,CACN;QACD,QAAQ;KACT,CAAC,CAAC;CACJ;;;AFTD,MAAM,uBAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAE/B,SAAS,yCAAqB,CAAC,KAAK,EAAE;IACpC,MAAM,YAAE,QAAQ,CAAA,YAAE,QAAQ,CAAA,YAAE,QAAQ,CAAA,aAAE,SAAS,CAAA,SAAE,KAAK,CAAA,kBAAE,cAAc,CAAA,EAAE,GACtE,KAAK,AAAC;IACR,MAAM,IAAI,GAAG,QAAQ,GAAG,YAAY,GAAG,cAAc,AAAC;IACtD,OAAO,uBAAC,CACN,CAAA,GAAA,yCAAY,CAAA,EACZ;QACE,SAAS,EAAE,CAAA,GAAA,iBAAU,CAAA,CAAC,wBAAwB,EAAE,SAAS,CAAC;QAC1D,OAAO,EAAE,QAAQ;eACjB,KAAK;QACL,SAAS,EAAE,cAAc;KAC1B,EACD;QAAC,QAAQ;QAAE,uBAAC,CAAC,CAAA,GAAA,WAAI,CAAA,EAAE;kBAAE,IAAI;SAAE,CAAC;KAAC,CAC9B,CAAC;CACH;AAED,SAAS,wCAAkB,CAAC,KAAK,EAAE;IACjC,IAAI,SACF,KAAK,CAAA,kBACL,cAAc,GAAG,IAAI,aACrB,QAAQ,CAAA,YACR,QAAQ,CAAA,YACR,QAAQ,CAAA,YACR,QAAQ,GAAG,IAAM,EAAE,kBACnB,aAAa,GAAG,IAAI,cACpB,SAAS,CAAA,IACV,GAAG,KAAK,AAAC;IACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,QAAQ,IAAI,KAAK,CAAC,AAAC;IAEtD,MAAM,SAAS,GAAG,IAAM;QACtB,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;KAClB,AAAC;IAEF,OAAO,uBAAC,CACN,0BAA0B,EAC1B;QACE,SAAS,EAAE,CAAA,GAAA,iBAAU,CAAA,CAAC,SAAS,EAAE;YAC/B,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,CAAC,MAAM;SACnB,CAAC;KACH,EACD;QACE,uBAAC,CACC,yCAAqB,EACrB;YACE,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,MAAM;mBAChB,KAAK;4BACL,cAAc;SACf,EACD,uBAAC,CAAC,kCAAkC,EAAE;YACpC,uBAAC,CAAC,8BAA8B,EAAE,QAAQ,CAAC;YAC3C,GAAG;YACH,aAAa;SACd,CAAC,CACH;QACD,uBAAC,CAAC,CAAA,GAAA,eAAQ,CAAA,EAAE;oBAAE,MAAM;SAAE,EAAE,uBAAC,CAAC,wBAAwB,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;KACrE,CACF,CAAC;CACH;AAEM,SAAS,yCAAgB,CAAC,KAAK,EAAE;IACtC,IAAI,SAAE,KAAK,CAAA,YAAE,QAAQ,CAAA,aAAE,SAAS,CAAA,iBAAE,aAAa,GAAG,IAAI,GAAE,GAAG,KAAK,AAAC;IACjE,OAAO,uBAAC,CAAC,wBAAwB,EAAE;mBAAE,SAAS;KAAE,EAAE;QAChD,uBAAC,CAAC,mBAAmB,EAAE,IAAI,EAAE,aAAa,IAAI,uBAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7D,uBAAC,CAAC,mBAAmB,EAAE,IAAI,EAAE,QAAQ,CAAC;KACvC,CAAC,CAAC;CACJ;AAED,SAAS,yCAAc,CAAC,KAAK,EAAE;IAC7B,OAAO,uBAAC,CAAC,wCAAkB,EAAE;QAC3B,GAAG,KAAK;QACR,SAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;CACJ;AAED,SAAS,yCAAiB,CAAC,KAAK,EAAE;IAChC,OAAO,uBAAC,CAAC,wCAAkB,EAAE;QAC3B,GAAG,KAAK;QACR,SAAS,EAAE,qCAAqC;QAChD,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;CACJ;AAED,SAAS,yCAAsB,CAAC,KAAK,EAAE;IACrC,IAAI,SAAE,KAAK,CAAA,YAAE,QAAQ,CAAA,SAAE,KAAK,CAAA,iBAAE,aAAa,CAAA,aAAE,SAAS,CAAA,EAAE,GAAG,KAAK,AAAC;IACjE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,KAAK,CAAC,AAAC;IAC5C,aAAa,KAAK,uBAAC,CAAC;QAAC,uBAAC,CAAC,WAAW,EAAE,KAAK,CAAC;QAAE,KAAK;KAAC,CAAC,CAAC;IACpD,OAAO,uBAAC,CAAC,wBAAwB,EAAE;mBAAE,SAAS;KAAE,EAAE;QAChD,uBAAC,CAAC,6BAA6B,EAAE;YAC/B,uBAAC,CAAC,+BAA+B,EAAE,aAAa,CAAC;YACjD,uBAAC,CAAC,+BAA+B,EAAE;gBACjC,uBAAC,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;oBACR,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,IAAM,SAAS,CAAC,CAAC,MAAM,CAAC;oBACjC,IAAI,EAAE,MAAM;iBACb,CAAC;aACH,CAAC;SACH,CAAC;QACF,uBAAC,CACC,CAAA,GAAA,eAAQ,CAAA,EACR;oBAAE,MAAM;SAAE,EACV,uBAAC,CAAC,iCAAiC,EAAE,IAAI,EAAE,QAAQ,CAAC,CACrD;KACF,CAAC,CAAC;CACJ;AAED,SAAS,yCAAa,CAAC,SAAE,KAAK,CAAA,aAAE,SAAS,CAAA,YAAE,QAAQ,CAAA,EAAE,EAAE;IACrD,OAAO,uBAAC,CAAC,oBAAoB,EAAE;mBAAE,SAAS;KAAE,EAAE;QAC5C,uBAAC,CAAC,mCAAmC,EAAE,KAAK,CAAC;QAC7C,uBAAC,CAAC,iCAAiC,EAAE,IAAI,EAAE,QAAQ,CAAC;KACrD,CAAC,CAAC;CACJ;;;ADnHD,MAAM,uBAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAE/B,SAAS,iCAAW,CAAC,KAAK,EAAE;IAC1B,MAAM,GAAG,GAAG,CAAA,GAAA,aAAM,CAAA,EAAE,AAAC;IACrB,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;KACrB,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,OAAO,CAAC;CACpB;AAEM,SAAS,yCAAa,CAAC,WAAE,OAAO,CAAA,EAAE,EAAE;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,AAAC;IACjC,OAAO,uBAAC,CAAC,oBAAoB,EAAE;QAC7B,uBAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,wBAAwB,EAAE;YAC5D,uBAAC,CAAC,CAAA,GAAA,yCAAQ,CAAA,EAAE;gBACV,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,IAAI;aACf,CAAC;SACH,CAAC;KACH,CAAC,CAAC;CACJ;AAEM,SAAS,yCAAuB,CAAC,oBACtC,gBAAgB,CAAA,eAChB,WAAW,CAAA,UACX,MAAM,GAAG,CAAC,GAKX,EAAE;IACD,MAAM,MAAM,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IAC3B,MAAM,aAAE,SAAS,CAAA,EAAE,GAAG,CAAA,GAAA,yCAAY,CAAA,EAAE,AAAC;IACrC,MAAM,YAAY,GAAG,iCAAW,CAAC,gBAAgB,CAAC,AAAC;IAEnD,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,MAAM,GAAG,GAAG,MAAM,EAAE,OAAO,AAAC;QAC5B,IAAI,GAAG,IAAI,IAAI,EAAE,OAAO;QACxB,IAAI,gBAAgB,IAAI,IAAI,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO;SACR;QAED,8CAA8C;QAC9C,IAAI,gBAAgB,IAAI,YAAY,EAAE,OAAO;QAE7C,MAAM,CAAC,GAAG,MAAM,AAAC;QACjB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,AAAC;QAEzC,MAAM,IAAI,GAA6C;YACrD;gBAAC,EAAE,CAAC,CAAC,GAAG,CAAC;gBAAE,EAAE,CAAC,CAAC,GAAG,CAAC;aAAC;YACpB;gBAAC,EAAE,CAAC,CAAC,GAAG,CAAC;gBAAE,EAAE,CAAC,CAAC,GAAG,CAAC;aAAC;SACrB,AAAC;QACF,MAAM,QAAQ,GAAG,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,AAAC;QACjD,WAAW,CAAC,QAAQ,CAAC,CAAC;KACvB,EAAE;QAAC,MAAM,EAAE,OAAO;QAAE,gBAAgB;QAAE,SAAS;KAAC,CAAC,CAAC;IAEnD,OAAO,IAAI,CAAC;CACb;AAED,SAAS,mCAAa,CAAC,WAAE,OAAO,CAAA,EAAE,EAAE;IAClC,OAAO,uBAAC,CAAC,oBAAoB,EAAE;QAC7B,uBAAC,CAAC,IAAI,EAAE;YACN,uBAAC,CAAC,8BAAQ,EAAE;gBAAE,KAAK,EAAE,QAAQ;gBAAE,KAAK,EAAE,OAAO,CAAC,MAAM;aAAE,CAAC;YACvD,uBAAC,CAAC,8BAAQ,EAAE;gBAAE,KAAK,EAAE,cAAc;gBAAE,KAAK,EAAE,OAAO,CAAC,WAAW;aAAE,CAAC;SACnE,CAAC;KACH,CAAC,CAAC;CACJ;AAED,SAAS,8BAAQ,CAAC,SAAE,KAAK,CAAA,SAAE,KAAK,CAAA,EAAE,EAAE;IAClC,OAAO,uBAAC,CAAC,gBAAgB,EAAE;QAAC,uBAAC,CAAC,UAAU,EAAE,KAAK,CAAC;QAAE,uBAAC,CAAC,YAAY,EAAE,KAAK,CAAC;KAAC,CAAC,CAAC;CAC5E;AAED,SAAS,4CAAsB,CAAC,YAAE,QAAQ,CAAA,YAAE,QAAQ,CAAA,EAAE,EAAE;IACtD,MAAM,GAAG,GAAG,CAAA,GAAA,yCAAS,CAAA,EAAE,AAAC;IACxB,IAAI,GAAG,EAAE,OAAO,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC;IACtC,MAAM,CAAC,SAAQ,EAAE,WAAW,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,KAAK,CAAC,AAAC;IAEhD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAK,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,AAAC;IAErE,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,AAAC;QACtD,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,EACX,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,GAAK;YACpC,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,EACxB,WAAW,CAAC,IAAI,CAAC,CAAC;SAErB,CAAC,CAAC;KAEN,EAAE;QAAC,GAAG,CAAC,OAAO;QAAE,QAAQ;QAAE,cAAc,CAAC,MAAM;KAAC,CAAC,CAAC;IAEnD,IAAI,CAAC,SAAQ,EAAE,OAAO,uBAAC,CAAC,CAAA,GAAA,cAAO,CAAA,CAAC,CAAC;IACjC,OAAO,uBAAC,CAAC,8BAAQ,EAAE;QAAE,QAAQ,EAAE,cAAc;KAAE,CAAC,CAAC;CAClD;AAEM,SAAS,wCAAQ,CAAC,WAAE,OAAO,CAAA,cAAE,UAAU,CAAA,iBAAE,aAAa,CAAA,EAAE,EAAE;IAC/D,IAAI,OAAO,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,AAAC;IACpD,OAAO,uBAAC,CAAC,eAAe,EAAE;QACxB,uBAAC,CAAC,IAAI,EAAE,MAAM,CAAC;QACf,uBAAC,CAAC,gBAAgB,EAAE;YAClB,uBAAC,CAAC,8BAAQ,EAAE;gBAAE,KAAK,EAAE,GAAG;gBAAE,KAAK,EAAE,OAAO,CAAC,EAAE;aAAE,CAAC;YAC9C,uBAAC,CAAC,8BAAQ,EAAE;gBAAE,KAAK,EAAE,GAAG;gBAAE,KAAK,EAAE,OAAO,CAAC,EAAE;aAAE,CAAC;YAC9C,uBAAC,CAAC,8BAAQ,EAAE;gBAAE,KAAK,EAAE,GAAG;gBAAE,KAAK,EAAE,OAAO,CAAC,EAAE;aAAE,CAAC;SAC/C,CAAC;QACF,uBAAC,CAAC,YAAY,CAAC;QACf,uBAAC,CAAC,8BAAQ,EAAE;YAAE,KAAK,EAAE,MAAM;YAAE,KAAK,EAAE,gCAAU,CAAC,IAAI,CAAC;SAAE,CAAC;QACvD,uBAAC,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;YACR,KAAK,EAAE,aAAa;YACpB,cAAc,EAAE,OAAO;YACvB,OAAO,EAAE,UAAU;YACnB,QAAQ,IAAG;gBACT,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;aAC5B;SACF,CAAC;KACH,CAAC,CAAC;CACJ;AAED,SAAS,gCAAU,CAAC,IAAY,EAAE;IAChC,IAAI,IAAI,GAAG,OAAO,EAChB,OAAO,uBAAC,CAAC,gCAAU,EAAE;QAAE,KAAK,EAAE,IAAI,GAAG,OAAO;QAAE,IAAI,EAAE,IAAI;KAAE,CAAC,CAAC;IAC9D,IAAI,IAAI,GAAG,IAAI,EAAE,OAAO,uBAAC,CAAC,gCAAU,EAAE;QAAE,KAAK,EAAE,IAAI,GAAG,IAAI;QAAE,IAAI,EAAE,IAAI;KAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;CACxB;AAED,SAAS,gCAAU,CAAC,SAAE,KAAK,CAAA,QAAE,IAAI,CAAA,aAAE,SAAS,GAAG,CAAC,GAAE,EAAE;IAClD,OAAO,uBAAC,CAAC,kBAAkB,EAAE;QAC3B,uBAAC,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,uBAAC,CAAC,WAAW,EAAE,IAAI,CAAC;KACrB,CAAC,CAAC;CACJ;AAEM,SAAS,yCAAY,CAAC,YAC3B,QAAQ,CAAA,iBACR,aAAa,GAAG,IAAI,uBACpB,kBAAkB,GAAG,IAAI,KAC1B,EAAE;IACD,IAAI,QAAQ,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC;IAElC,IAAI,kBAAkB,GAAG,IAAI,AAAC;IAC9B,IAAI,gBAAgB,GAAG,QAAQ,AAAC;IAChC,IAAI,KAAK,GAAG,UAAU,AAAC;IAEvB,IAAI,aAAa,IAAI,IAAI,EAAE;QACzB,KAAK,GAAG,kBAAkB,CAAC;QAC3B,kBAAkB,GAAG,uBAAC,CACpB,CAAA,GAAA,yCAAc,CAAA,EACd;YACE,KAAK,EAAE,qBAAqB;YAC5B,SAAS,EAAE,qBAAqB;YAChC,QAAQ,EAAE,IAAI;SACf,EACD;YACE,uBAAC,CAAC,4CAAsB,EAAE;0BACxB,QAAQ;gBACR,QAAQ,EAAE,aAAa;aACxB,CAAC;SACH,CACF,CAAC;QACF,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAK,CAAC,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC;KACtE;IAED,OAAO,uBAAC,CAAC,mBAAmB,EAAE;QAC5B,kBAAkB;QAClB,uBAAC,CACC,CAAA,GAAA,yCAAc,CAAA,EACd;mBAAE,KAAK;YAAE,SAAS,EAAE,kBAAkB;YAAE,QAAQ,EAAE,aAAa,IAAI,IAAI;SAAE,EACzE;YACE,uBAAC,CAAC,8BAAQ,EAAE;gBACV,QAAQ,EAAE,gBAAgB;aAC3B,CAAC;SACH,CACF;KACF,CAAC,CAAC;CACJ;AAED,SAAS,8BAAQ,CAAC,EAAE,QAAQ,EAAR,SAAQ,CAAA,EAAE,EAAE;IAC9B,+CAA+C,CAC/C,IAAI,SAAQ,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC;IAElC,MAAM,MAAM,GAAG,CAAA,GAAA,YAAK,CAAA,CAAC,SAAQ,EAAE,CAAC,CAAC,GAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,AAAC;IAExE,OAAO,uBAAC,CACN,cAAc,EACd,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAK;QAC1C,OAAO,uBAAC,CAAC,mBAAmB,EAAE;YAC5B,uBAAC,CAAC,mCAAa,EAAE;gBAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;aAAE,CAAC;YAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,GAAK,uBAAC,CAAC,yCAAa,EAAE;oBAAE,GAAG,EAAE,CAAC;6BAAE,OAAO;iBAAE,CAAC,CAAC;SACpE,CAAC,CAAC;KACJ,CAAC,CACH,CAAC;CACH;;;IZ1LM,yCAIN;UAJW,wBAAuB;IAAvB,wBAAuB,CACjC,OAAK,IAAG,OAAO;IADL,wBAAuB,CAEjC,WAAS,IAAG,YAAY;IAFd,wBAAuB,CAGjC,aAAW,IAAG,cAAc;GAHlB,yCAAuB,KAAvB,yCAAuB;IAM5B,yCAGN;UAHW,wBAAuB;IAAvB,wBAAuB,CACjC,OAAK,IAAG,OAAO;IADL,wBAAuB,CAEjC,YAAU,IAAG,YAAY;GAFf,yCAAuB,KAAvB,yCAAuB;AAK5B,MAAM,yCAAC,GAAG,CAAA,GAAA,sBAAK,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,gEAAM,CAAA,CAAC,AAAC;AAE/B,SAAS,yCAAU,CAAC,SACzB,KAAK,GAAG,eAAe,kBACvB,aAAa,GAAG,IAAI,qBACpB,gBAAgB,GAAG,IAAI,gBACvB,WAAW,GAAG,IAAI,gBAClB,WAAW,GAAG,IAAI,iBAClB,YAAY,GAAG,IAAI,aACnB,QAAQ,CAAA,SACR,KAAK,CAAA,iBACL,aAAa,GAAG,IAAI,uBACpB,kBAAkB,GAAG,IAAI,eACzB,UAAU,GAAG,IAAI,GAalB,EAAE;IACD;;;;;IAKE,CAEF,MAAM,IAAI,GAAG,CAAA,GAAA,yCAAW,CAAA,EAAE,AAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,AAAC;IAElC,IAAI,WAAW,IAAI,IAAI,EACrB,CAAA,GAAA,eAAQ,CAAA,CAAC,WAAW,GAAG,WAAW,CAAC;IAGrC,KAAK,KAAK,SAAS,GACf,iCAAiC,GACjC,kCAAkC,CAAC;IAEvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,KAAK,CAAC,AAAC;IAE1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAA,GAAA,yCAAc,CAAA,CAAC,yBAAyB,EAAE;QAClE,cAAc,EAAE,KAAK;QACrB,IAAI,EAAE,KAAK;KACZ,CAAC,AAAC;IACH,MAAM,kBAAE,cAAc,CAAA,QAAE,IAAI,CAAA,EAAE,GAAG,KAAK,AAAC;IAEvC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,KAAK,CAAC,AAAC;IAEtD,CAAA,GAAA,gBAAS,CAAA,CAAC,IAAM;QACd,CAAA,GAAA,yCAAmB,CAAA,CAAC,KAAK,EAAE,YAAY,EAAE;yBACvC,WAAW;YACX,UAAU,EAAE,SAAS;kBACrB,IAAI;SACL,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KACzB,EAAE;QAAC,KAAK;QAAE,IAAI;QAAE,WAAW;QAAE,SAAS;QAAE,YAAY;KAAC,CAAC,CAAC;IAExD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GACzC,CAAA,GAAA,eAAQ,CAAA,CAAyB,IAAI,CAAC,AAAC;IAEzC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAA,GAAA,eAAQ,CAAA,CAAC,IAAI,CAAC,AAAC;IAEvC,MAAM,gBAAgB,GAAG,CAAA,GAAA,kBAAW,CAAA,CAAC,CAAC,QAAyB,GAAK;QAClE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;KAC9B,EAAE,EAAE,CAAC,AAAC;IAEP,IAAI,aAAa,GAAG,IAAI,AAAC;IACzB,IAAI,eAAe,IAAI,IAAI,EACzB,aAAa,GAAG,yCAAC,CACf,CAAA,GAAA,yCAAa,CAAA,EACb;QACE,OAAO,IAAG;YACR,kBAAkB,CAAC,IAAI,CAAC,CAAC;SAC1B;QACD,QAAQ,EAAE,eAAe;KAC1B,EACD;QACE,yCAAC,CAAC,CAAA,GAAA,wCAAQ,CAAA,EAAE;YACV,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;YAC1B,UAAU,EAAE,cAAc;YAC1B,aAAa,IAAG;gBACd,QAAQ,CAAC;oBAAE,GAAG,KAAK;oBAAE,cAAc,EAAE,CAAC,cAAc;iBAAE,CAAC,CAAC;aACzD;SACF,CAAC;QACF,yCAAC,CAAC,CAAA,GAAA,yCAAY,CAAA,EAAE;YAAE,QAAQ,EAAE,IAAI;2BAAE,aAAa;gCAAE,kBAAkB;SAAE,CAAC;KACvE,CACF,CAAC;IAGJ,IAAI,IAAI,GAAG,IAAI,AAAC;IAChB,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;QACvC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,AAAC;QAChB,IAAI,GAAG;YAAE,CAAC,EAAE,CAAC,CAAC,EAAE;YAAE,CAAC,EAAE,CAAC,CAAC,EAAE;YAAE,CAAC,EAAE,CAAC,CAAC,EAAE;SAAE,CAAC;KACtC;IAED,OAAO,yCAAC,CACN,CAAA,GAAA,yCAAgB,CAAA,EAChB;QACE,MAAM,EAAE,yCAAC,CAAC,CAAA,GAAA,yCAAc,CAAA,EAAE;YACxB,aAAa,IAAI,yCAAC,CAAC,IAAI,EAAE,KAAK,CAAC;YAC/B,yCAAC,CAAC,CAAA,GAAA,yCAAM,CAAA,CAAC;YACT,yCAAC,CAAC,CAAA,GAAA,yCAAgB,CAAA,EAAE;gBAClB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAM,OAAO,CAAC,CAAC,MAAM,CAAC;aAChC,CAAC;SACH,CAAC;QACF,YAAY,EAAE,yCAAC,CAAC,CAAA,GAAA,yCAAS,CAAA,EAAE;YACzB,yCAAC,CAAC,CAAA,GAAA,aAAM,CAAA,EAAE;gBACR,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,YAAY;gBACnB,QAAQ,IAAG;oBACT,QAAQ,CAAC;wBAAE,GAAG,KAAK;wBAAE,IAAI,EAAE,CAAC,IAAI;qBAAE,CAAC,CAAC;iBACrC;aACF,CAAC;YACF,QAAQ;SACT,CAAC;QACF,WAAW,EAAE,aAAa;QAC1B,gBAAgB,EAAE,MAAM;KACzB,EACD,yCAAC,CACC,CAAA,GAAA,yCAAO,CAAA,EACP;QACE,KAAK,EAAE,WAAW;0BAClB,gBAAgB;qBAChB,WAAW;QACX,UAAU,EAAE,OAAO;KACpB,EACD;QACE,yCAAC,CAAC,CAAA,GAAA,yCAAuB,CAAA,EAAE;YACzB,gBAAgB,EAAE,eAAe;YACjC,WAAW,EAAE,OAAO;SACrB,CAAC;QACF,yCAAC,CAAC,CAAA,GAAA,yCAAS,CAAA,EAAE;YACX,QAAQ,EAAE,eAAe;YACzB,WAAW,EAAE,gBAAgB;SAC9B,CAAC;QACF,yCAAC,CAAC,CAAA,GAAA,yCAAe,CAAA,EAAE;kBAAE,IAAI;YAAE,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO;SAAE,CAAC;KACnE,CACF,CACF,CAAC;CACH;;","sources":["packages/map-interface/src/index.ts","packages/map-interface/src/context-panel/index.ts","packages/map-interface/src/context-panel/main.module.sass","packages/mapbox-react/src/index.ts","packages/mapbox-react/src/context.ts","packages/mapbox-react/src/hooks.ts","packages/mapbox-utils/src/index.ts","packages/mapbox-utils/src/preprocess-styles.ts","packages/mapbox-utils/src/position.ts","packages/mapbox-utils/src/view-info.ts","packages/mapbox-utils/src/labels.ts","packages/mapbox-react/src/controls.ts","packages/mapbox-react/src/terrain.ts","packages/mapbox-react/src/debugger.ts","packages/mapbox-react/src/focus-state.ts","packages/mapbox-react/src/main.module.scss","packages/map-interface/src/location-panel/index.ts","packages/map-interface/src/location-panel/header.ts","packages/map-interface/src/location-panel/main.module.sass","packages/ui-components/src/index.ts","packages/ui-components/src/api/index.ts","packages/ui-components/src/api/provider.ts","packages/ui-components/src/util/index.ts","packages/ui-components/src/util/state-hooks.ts","packages/ui-components/src/util/layout-hooks.ts","packages/ui-components/src/util/query-string.ts","packages/ui-components/src/util/local-storage.ts","packages/ui-components/src/util/json-view.ts","packages/ui-components/src/dark-mode.ts","packages/ui-components/src/util/main.module.scss","packages/ui-components/src/util/scroll-helpers.ts","packages/ui-components/src/util/migration-helpers.ts","packages/ui-components/src/util/box-model.ts","packages/ui-components/src/util/event-hooks.ts","packages/ui-components/src/util/flexbox.ts","packages/ui-components/src/api/data-provider.ts","packages/ui-components/src/api/frontend.ts","packages/ui-components/src/api/indexing.ts","packages/ui-components/src/api/paged.ts","packages/ui-components/src/api/types.ts","packages/ui-components/src/infinite-scroll.ts","packages/ui-components/src/buttons/index.ts","packages/ui-components/src/buttons/delete-button.ts","packages/ui-components/src/collapse-panel/index.ts","packages/ui-components/src/link-card.ts","packages/ui-components/src/file-upload/index.ts","packages/ui-components/src/image.ts","packages/ui-components/src/model-editor.ts","packages/ui-components/src/toaster.ts","packages/ui-components/src/citations/index.ts","packages/ui-components/src/citations/author-list.ts","packages/ui-components/src/geodeepdive/index.ts","packages/ui-components/src/geodeepdive/reference-card.ts","packages/ui-components/src/text.ts","packages/ui-components/src/form-controls/index.ts","packages/ui-components/src/form-controls/slider.ts","packages/ui-components/src/form-controls/main.module.sass","packages/ui-components/src/settings/index.ts","packages/ui-components/src/error-boundary.ts","packages/ui-components/src/patterns/index.ts","packages/ui-components/src/patterns/composite-image.ts","packages/ui-components/src/collapse-card.ts","packages/ui-components/src/modal-panel/index.ts","packages/ui-components/src/modal-panel/main.module.sass","packages/ui-components/src/modal-panel/draggable-overlay.ts","packages/ui-components/src/page-layouts/index.ts","packages/ui-components/src/page-layouts/main.module.sass","packages/map-interface/src/location-info/index.ts","packages/map-interface/src/location-info/utils.ts","packages/map-interface/src/dev/index.ts","packages/map-interface/src/dev/xray.ts","packages/map-interface/src/container.ts","packages/map-interface/src/main.module.sass","packages/map-interface/src/controls.ts","packages/map-interface/src/map-view/index.ts","packages/map-interface/src/map-view/main.module.sass","packages/map-interface/src/map-view/terrain.ts","packages/map-interface/src/helpers.ts","packages/map-interface/src/utils.ts","packages/map-interface/src/dev/main.module.sass","packages/map-interface/src/dev/tile-extent.ts","packages/map-interface/src/dev/vector-tile-features.ts","packages/map-interface/src/expansion-panel/index.ts","packages/map-interface/src/expansion-panel/main.module.sass","packages/map-interface/src/expansion-panel/headers.ts"],"sourcesContent":["export * from \"./context-panel\";\nexport * from \"./location-panel\";\nexport * from \"./dev\";\nexport * from \"./container\";\nexport * from \"./map-view\";\n","import { useMemo } from \"react\";\nimport { Navbar, Button, InputGroup, Spinner, Card } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useMapStatus } from \"@macrostrat/mapbox-react\";\n\nconst h = hyper.styled(styles);\n\nconst spinnerElement = h(Spinner, { size: 16 });\n\nexport function LoadingButton({\n isLoading = false,\n onClick,\n active = false,\n icon = \"menu\",\n}) {\n return h(Button, {\n icon: isLoading ? spinnerElement : icon,\n large: true,\n minimal: true,\n onClick,\n active: active && !isLoading,\n });\n}\n\nexport function MapLoadingButton(props) {\n const { isLoading } = useMapStatus();\n const mapIsLoading = useMemo(() => isLoading, [isLoading]);\n return h(LoadingButton, { ...props, isLoading: mapIsLoading });\n}\n\ntype AnyChildren = React.ReactNode | React.ReactFragment;\n\nexport function FloatingNavbar({\n className,\n children,\n statusElement = null,\n}: {\n className?: string;\n children?: AnyChildren;\n statusElement?: AnyChildren;\n}) {\n return h(\"div.searchbar-holder\", { className }, [\n h(\"div.navbar-holder\", [\n h(Navbar, { className: \"searchbar panel\" }, children),\n ]),\n h.if(statusElement != null)(\n Card,\n { className: \"status-tongue\" },\n statusElement\n ),\n ]);\n}\n",".searchbar-holder\n transition: margin 300ms\n display: flex\n flex-direction: column\n margin: 0\n .navbar-holder\n display: flex\n flex-direction: row\n .searchbar\n width: 100%\n background-color: var(--panel-background-color)\n border-radius: 3px\n padding: 0 5px\n display: flex\n flex-direction: row\n align-items: center\n :global(.bp4-input-group)\n flex-grow: 1\n cursor: text\n &>*\n margin-right: 5px\n &:last-child\n margin-right: 0\n\n.status-tongue\n background-color: var(--panel-background-color)\n margin: 5px\n margin-top: -12px\n padding: 0\n padding-top: 12px\n\n@media screen and (max-width: 768px)\n .status-tongue\n max-width: 100vw\n margin: 0\n border-radius: 0\n margin-top: -3px\n","export * from \"./context\";\nexport * from \"./hooks\";\nexport * from \"./controls\";\nexport * from \"./terrain\";\nexport * from \"./debugger\";\nexport * from \"./focus-state\";\n","import {\n createContext,\n useContext,\n RefObject,\n useRef,\n useCallback,\n useMemo,\n useReducer,\n Reducer,\n} from \"react\";\nimport update from \"immutability-helper\";\nimport { Map } from \"mapbox-gl\";\nimport h from \"@macrostrat/hyper\";\nimport { MapPosition } from \"@macrostrat/mapbox-utils\";\n\ninterface MapStatus {\n isLoading: boolean;\n isInitialized: boolean;\n isStyleLoaded: boolean;\n}\n\ninterface MapCtx {\n mapRef: RefObject<Map | null>;\n status: MapStatus;\n position: MapPosition;\n}\n\nconst MapContext = createContext<MapCtx>({\n mapRef: null,\n status: {\n isLoading: false,\n isInitialized: false,\n isStyleLoaded: false,\n },\n position: null,\n});\n\nconst MapDispatchContext = createContext<React.Dispatch<MapAction>>(null);\n\nexport function useMapRef() {\n const { mapRef } = useContext(MapContext);\n return useMemo(() => mapRef, [mapRef]);\n}\n\nexport function useMapStatus() {\n const { status } = useContext(MapContext);\n return useMemo(() => status, [status]);\n}\n\nexport function useMapPosition() {\n const { position } = useContext(MapContext);\n return useMemo(() => position, [position]);\n}\n\nexport function useMapElement() {\n return useMapRef().current;\n}\n\nexport function useMap(): Map | null {\n return useMapRef().current;\n}\n\nexport function useMapDispatch() {\n return useContext(MapDispatchContext);\n}\n\ntype MapAction =\n | { type: \"set-loading\"; payload: boolean }\n | { type: \"set-initialized\"; payload: boolean }\n | { type: \"set-style-loaded\"; payload: boolean }\n | { type: \"map-moved\"; payload: MapPosition }\n | { type: \"set-map\"; payload: Map };\n\nfunction mapReducer(state: MapCtx, action: MapAction): MapCtx {\n switch (action.type) {\n case \"set-map\":\n return update(state, {\n mapRef: { current: { $set: action.payload } },\n status: { isInitialized: { $set: true } },\n });\n case \"set-loading\":\n return update(state, { status: { isLoading: { $set: action.payload } } });\n case \"set-initialized\":\n return update(state, {\n status: { isInitialized: { $set: action.payload } },\n });\n case \"set-style-loaded\":\n return update(state, {\n status: { isStyleLoaded: { $set: action.payload } },\n });\n case \"map-moved\":\n return { ...state, position: action.payload };\n }\n}\n\nexport function MapboxMapProvider({ children }) {\n const mapRef = useRef<Map | null>();\n const [value, dispatch] = useReducer<Reducer<MapCtx, MapAction>>(mapReducer, {\n mapRef,\n status: {\n isLoading: false,\n isInitialized: false,\n isStyleLoaded: false,\n },\n position: null,\n });\n\n return h(\n MapDispatchContext.Provider,\n { value: dispatch },\n h(MapContext.Provider, { value }, children)\n );\n}\n","import { RefObject } from \"react\";\nimport { useEffect } from \"react\";\nimport mapboxgl from \"mapbox-gl\";\nimport { toggleMapLabelVisibility } from \"@macrostrat/mapbox-utils\";\n\nexport function useMapConditionalStyle<T = any>(\n mapRef: RefObject<mapboxgl.Map>,\n state: T,\n operator: (map: mapboxgl.Map, a: T) => void\n) {\n /** Apply conditional style logic depending on a state value or object.\n * The operator function can operate on the Map and the state, and is applied on state changes\n * and on style load events. */\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n if (map.isStyleLoaded()) {\n operator(map, state);\n }\n const fn = () => operator(map, state);\n map.on(\"style.load\", fn);\n return () => {\n map.off(\"style.load\", fn);\n };\n }, [mapRef.current, state]);\n}\n\nconst _toggleMapLabels = (map, state) =>\n toggleMapLabelVisibility(map, state.mapShowLabels, state.omitLayers);\n\nexport function useMapLabelVisibility(\n mapRef: RefObject<mapboxgl.Map>,\n mapShowLabels: boolean,\n omitLayers: string[] = []\n) {\n useMapConditionalStyle(\n mapRef,\n { mapShowLabels, omitLayers },\n _toggleMapLabels\n );\n}\n","export * from \"./preprocess-styles\";\nexport * from \"./position\";\nexport * from \"./view-info\";\nexport * from \"./labels\";","import axios from \"axios\";\nimport { Style } from \"mapbox-gl\";\n\nexport function canonicalizeMapboxURL(url: string) {\n return url.replace(\"mapbox://styles/\", \"https://api.mapbox.com/styles/v1/\");\n}\n\nexport async function getMapboxStyle(\n style: string | object,\n params: { access_token: string; [k: string]: any }\n): Promise<Style> {\n if (typeof style !== \"string\") {\n return style as Style;\n }\n\n // We fetch styles if they aren't avaialable locally\n let { data, status, statusText } = await axios.get(\n canonicalizeMapboxURL(style),\n {\n params,\n }\n );\n if (status !== 200) {\n throw new Error(`Returned ${status}: ${statusText}`);\n }\n return data;\n}\n\nexport function mergeStyles(...styles) {\n let merged = { ...styles[0] };\n merged.sources = {};\n merged.layers = [];\n for (let s of styles) {\n merged.sources = { ...merged.sources, ...(s.sources ?? {}) };\n merged.layers = merged.layers.concat(s.layers);\n merged.sprite = s.sprite ?? merged.sprite;\n merged.glyphs = s.glyphs ?? merged.glyphs;\n }\n return merged;\n}\n","/** Utilities for dealing with map coordinates. */\nimport { FreeCameraOptions, MercatorCoordinate, Map } from \"mapbox-gl\";\n\ntype LatLng = {\n lng: number;\n lat: number;\n};\n\ntype TargetPosition = LatLng & {\n zoom: number;\n};\n\ntype CameraPosition = LatLng & {\n bearing?: number;\n pitch?: number;\n altitude: number;\n};\n\nexport type MapPosition = {\n camera: CameraPosition;\n target?: TargetPosition;\n};\n\nexport function getMapPosition(map: Map): MapPosition {\n const pos = map.getFreeCameraOptions();\n const cameraPos = pos.position.toLngLat();\n let center = map.getCenter();\n return {\n camera: {\n ...cameraPos,\n altitude: pos.position.toAltitude(),\n bearing: map.getBearing(),\n pitch: map.getPitch(),\n },\n target: {\n ...center,\n zoom: map.getZoom(),\n },\n };\n}\n\nexport function setMapPosition(map: Map, pos: MapPosition) {\n const { pitch = 0, bearing = 0, altitude } = pos.camera;\n const zoom = pos.target?.zoom;\n if (zoom != null && altitude == null && pitch == 0 && bearing == 0) {\n const { lng, lat } = pos.target;\n map.setCenter([lng, lat]);\n map.setZoom(zoom);\n } else {\n const { altitude, lng, lat } = pos.camera;\n const cameraOptions = new FreeCameraOptions(\n MercatorCoordinate.fromLngLat({ lng, lat }, altitude),\n [0, 0, 0, 1]\n );\n cameraOptions.setPitchBearing(pitch, bearing);\n map.setFreeCameraOptions(cameraOptions);\n }\n}\n","import { MapPosition } from \"./position\";\n\nexport interface MapViewInfo {\n mapIsRotated: boolean;\n mapUse3D: boolean;\n mapIsGlobal: boolean;\n mapIsLoaded: boolean;\n}\n\nexport function mapViewInfo(mapPosition: MapPosition | null): MapViewInfo {\n if (mapPosition == null) {\n return {\n mapIsRotated: false,\n mapUse3D: false,\n mapIsGlobal: false,\n mapIsLoaded: false,\n };\n }\n // Switch to 3D mode at high zoom levels or with a rotated map\n const pitch = mapPosition.camera.pitch ?? 0;\n const bearing = mapPosition.camera.bearing ?? 0;\n const alt = mapPosition.camera.altitude ?? 10000000;\n const mapIsRotated = pitch != 0 || bearing != 0;\n\n const mapIsGlobal = alt > 1600000;\n\n let mapUse3D = false;\n if (alt != null) {\n mapUse3D = (pitch > 0 && alt < 200000) || alt < 80000;\n }\n\n return {\n mapIsRotated,\n mapUse3D,\n mapIsGlobal,\n mapIsLoaded: true,\n };\n}\n","import mapboxgl, { Map } from \"mapbox-gl\";\n\nexport function removeMapLabels(\n style: mapboxgl.Style,\n shouldRemove: boolean = true\n): mapboxgl.Style {\n // Disable labels on the map\n for (let lyr of style.layers) {\n if (!(\"layout\" in lyr)) continue;\n const isLabelLayer = lyr.layout[\"text-field\"] != null;\n if (isLabelLayer) {\n lyr.layout.visibility = shouldRemove ? \"none\" : \"visible\";\n }\n }\n return style;\n}\n\nexport function toggleMapLabelVisibility(\n map: Map,\n visible: boolean,\n omitLayers: string[] = []\n) {\n // Disable labels on the map\n for (let lyr of map.getStyle().layers) {\n if (!(\"layout\" in lyr)) continue;\n const isLabelLayer = lyr.layout[\"text-field\"] != null;\n if (isLabelLayer && !omitLayers.includes(lyr.id)) {\n map.setLayoutProperty(lyr.id, \"visibility\", visible ? \"visible\" : \"none\");\n }\n }\n}\n","import h from \"@macrostrat/hyper\";\nimport Base from \"mapbox-gl-controls/lib/Base/Base\";\nimport Button from \"mapbox-gl-controls/lib/Button/Button\";\nimport {\n CompassControl as _CompassControl,\n ZoomControl as _ZoomControl,\n} from \"mapbox-gl-controls\";\nimport { Icon } from \"@blueprintjs/core\";\nimport { useRef, useEffect, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { useMapElement, useMapRef } from \"./context\";\n\nexport function MapControlWrapper({ className, control, options = {} }) {\n /** A wrapper for using Mapbox GL controls with a Mapbox GL map */\n const mapRef = useMapRef();\n const controlContainer = useRef<HTMLDivElement>();\n const controlRef = useRef<Base>();\n\n // Memoize the options object so that we don't continually recreate the control.\n const _options = useRef(options);\n useEffect(() => {\n _options.current = options;\n }, Object.values(options));\n\n useEffect(() => {\n if (mapRef.current == null) return;\n const ctrl = new control(_options);\n\n controlRef.current = ctrl;\n const controlElement = ctrl.onAdd(mapRef.current);\n controlContainer.current.appendChild(controlElement);\n return () => {\n controlRef.current?.onRemove();\n };\n }, [mapRef.current, controlContainer.current, control, _options]);\n\n return h(\"div.map-control-wrapper\", { className, ref: controlContainer });\n}\n\nexport function GlobeControl({ className }) {\n const map = useMapElement();\n\n const [mapIsGlobe, setIsGlobe] = useState(false);\n useEffect(() => {\n // @ts-ignore\n let proj = map?.getProjection().name;\n setIsGlobe(proj == \"globe\");\n }, [map]);\n const nextProj = mapIsGlobe ? \"mercator\" : \"globe\";\n const icon = mapIsGlobe ? \"map\" : \"globe\";\n\n return h(\n \"div.map-control.globe-control.mapboxgl-ctrl-group.mapboxgl-ctrl.mapbox-control\",\n { className },\n [\n h(\n \"button.globe-control-button\",\n {\n onClick() {\n if (map == null) return;\n // @ts-ignore\n map.setProjection(nextProj);\n setIsGlobe(nextProj == \"globe\");\n },\n },\n h(Icon, { icon })\n ),\n ]\n );\n}\n\n// Control for managing map 3D settings\n\nclass _ThreeDControl extends Base {\n /** A Mapbox GL control for entering 3D mode. */\n button: Button;\n\n constructor() {\n super();\n this.button = new Button();\n }\n\n insert() {\n this.addClassName(\"mapbox-3d\");\n this.button.setText(\"3D\");\n this.button.onClick(() => {\n this.map.easeTo({ pitch: 60, duration: 1000 });\n });\n this.addButton(this.button);\n }\n\n onAddControl() {\n this.insert();\n }\n}\n\nexport function CompassControl({ className, options }) {\n return h(MapControlWrapper, {\n className: classNames(\"compass-control\", className),\n control: _CompassControl,\n options,\n });\n}\n\nexport const ZoomControl = ({ className, options }) =>\n h(MapControlWrapper, {\n className: classNames(\"zoom-control\", className),\n control: _ZoomControl,\n options,\n });\n\nexport const ThreeDControl = ({ className, options }) =>\n h(MapControlWrapper, {\n className: classNames(\"map-3d-control\", className),\n control: _ThreeDControl,\n options,\n });\n","import { useMapRef } from \"./context\";\nimport { useEffect } from \"react\";\nimport { AnySourceImpl, AnyLayer, RasterDemSource, Map } from \"mapbox-gl\";\n\ntype SourceConfig = Partial<RasterDemSource>;\n\nexport function use3DTerrain(\n shouldEnable: boolean = true,\n sourceName: string = \"terrain\",\n sourceCfg: SourceConfig = {}\n) {\n const mapRef = useMapRef();\n const map = mapRef.current;\n useEffect(() => {\n if (map == null) return;\n setup3DTerrain(map, shouldEnable, sourceName, sourceCfg);\n map.on(\"style.load\", () => {\n setup3DTerrain(map, shouldEnable, sourceName, sourceCfg);\n });\n }, [map, shouldEnable, sourceName]);\n}\n\nexport function setup3DTerrain(\n map: mapboxgl.Map,\n shouldEnable: boolean = true,\n sourceName: string = \"terrain\",\n sourceCfg: SourceConfig = {}\n) {\n if (!map.isStyleLoaded()) {\n return;\n }\n if (shouldEnable) {\n addDefault3DStyles(map, sourceName, sourceCfg);\n }\n // Enable or disable terrain depending on our current desires...\n const currentTerrain = map.getTerrain();\n if (shouldEnable && currentTerrain == null) {\n map.setTerrain({ source: sourceName, exaggeration: 1 });\n } else if (!shouldEnable && currentTerrain != null) {\n map.setTerrain(null);\n }\n}\n\nfunction addDefault3DStyles(\n map,\n sourceName = \"terrain\",\n sourceCfg: Partial<RasterDemSource> = {}\n) {\n const style = map.getStyle();\n const hasTerrain = Object.values(style.sources).some(\n (source: AnySourceImpl) => source.type === \"raster-dem\"\n );\n\n const hasSky = Object.values(style.layers).some(\n (lyr: AnyLayer) => lyr.type == \"sky\"\n );\n\n if (!hasTerrain) {\n map.addSource(sourceName, {\n type: \"raster-dem\",\n url: \"mapbox://mapbox.mapbox-terrain-dem-v1\",\n tileSize: 512,\n maxzoom: 14,\n ...sourceCfg,\n });\n }\n\n if (!hasSky) {\n map.addLayer({\n id: \"sky\",\n type: \"sky\",\n paint: {\n \"sky-type\": \"atmosphere\",\n \"sky-atmosphere-sun\": [0.0, 0.0],\n \"sky-atmosphere-sun-intensity\": 15,\n },\n });\n }\n if (map.getFog() == null) {\n map.setFog({\n color: \"#ffffff\",\n // @ts-ignore\n \"space-color\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 4,\n \"hsl(215, 28%, 64%)\",\n 7,\n \"hsl(209, 92%, 85%)\",\n ],\n \"star-intensity\": [\"interpolate\", [\"linear\"], [\"zoom\"], 5, 0.35, 6, 0],\n range: [5, 15],\n });\n }\n}\n","import { Map } from \"mapbox-gl\";\nimport { useMapRef } from \"./context\";\nimport { useEffect } from \"react\";\n\nexport interface DebugOptions {\n showTileBoundaries?: boolean;\n showTerrainWireframe?: boolean;\n showCollisionBoxes?: boolean;\n}\n\nexport function MapDebugger({\n mapRef,\n ...rest\n}: DebugOptions & { mapRef: React.RefObject<Map> }) {\n const {\n showTileBoundaries = false,\n showTerrainWireframe = false,\n showCollisionBoxes = false,\n } = rest;\n\n const ref = mapRef ?? useMapRef();\n\n useEffect(() => {\n const map = ref.current;\n if (map == null) return;\n map.showTileBoundaries = showTileBoundaries;\n map.showTerrainWireframe = showTerrainWireframe;\n map.showCollisionBoxes = showCollisionBoxes;\n map.triggerRepaint();\n }, [\n ref.current,\n showTileBoundaries,\n showTerrainWireframe,\n showCollisionBoxes,\n ]);\n return null;\n}\n","/* Reporters and buttons for evaluating a feature's focus on the map. */\nimport { Intent, Button } from \"@blueprintjs/core\";\nimport { useMapRef } from \"./context\";\nimport classNames from \"classnames\";\nimport { useState, useRef, useEffect } from \"react\";\nimport bbox from \"@turf/bbox\";\nimport styles from \"./main.module.scss\";\nimport hyper from \"@macrostrat/hyper\";\nimport mapboxgl from \"mapbox-gl\";\nimport centroid from \"@turf/centroid\";\n\nconst h = hyper.styled(styles);\n\nexport enum PositionFocusState {\n CENTERED,\n NEAR_CENTER,\n OFF_CENTER,\n OUT_OF_PADDING,\n OUT_OF_VIEW,\n}\n\nexport function classNameForFocusState(pos: PositionFocusState): string {\n switch (pos) {\n case PositionFocusState.CENTERED:\n return \"centered\";\n case PositionFocusState.NEAR_CENTER:\n return \"near-center\";\n case PositionFocusState.OFF_CENTER:\n return \"off-center\";\n case PositionFocusState.OUT_OF_PADDING:\n return \"out-of-padding\";\n case PositionFocusState.OUT_OF_VIEW:\n return \"out-of-view\";\n }\n}\n\nexport function intentForFocusState(pos: PositionFocusState): Intent {\n switch (pos) {\n case PositionFocusState.CENTERED:\n case PositionFocusState.NEAR_CENTER:\n return Intent.NONE;\n case PositionFocusState.OFF_CENTER:\n return Intent.PRIMARY;\n case PositionFocusState.OUT_OF_PADDING:\n return Intent.SUCCESS;\n case PositionFocusState.OUT_OF_VIEW:\n return Intent.WARNING;\n }\n}\n\nexport function useMapEaseToCenter(position, padding) {\n const mapRef = useMapRef();\n\n const prevPosition = useRef<any>(null);\n const prevPadding = useRef<any>(null);\n // Handle map position easing (for both map padding and markers)\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n let opts = null;\n if (position != prevPosition.current) {\n opts ??= {};\n opts.center = position;\n }\n if (padding != prevPadding.current) {\n opts ??= {};\n opts.padding = padding;\n }\n if (opts == null) return;\n opts.duration = 800;\n map.flyTo(opts);\n map.once(\"moveend\", () => {\n /* Waiting until moveend to update the refs allows us to\n batch overlapping movements together, which increases UI\n smoothness when, e.g., flying to new panels */\n prevPosition.current = position;\n prevPadding.current = padding;\n });\n }, [position, padding]);\n}\n\nfunction greatCircleDistance(\n l1: mapboxgl.LngLatLike,\n l2: mapboxgl.LngLatLike\n): number {\n // get distance in radians between l1 and l2\n const dLon = ((l2[0] - l1[0]) * Math.PI) / 180;\n\n // Spherical law of cosines (accurate at large distances)\n const lat1 = (l1[1] * Math.PI) / 180;\n const lat2 = (l2[1] * Math.PI) / 180;\n return Math.acos(\n Math.sin(lat1) * Math.sin(lat2) +\n Math.cos(lat1) * Math.cos(lat2) * Math.cos(dLon)\n );\n}\n\nexport function getFocusState(\n map: mapboxgl.Map,\n location: mapboxgl.LngLatLike | GeoJSON.Geometry | null\n): PositionFocusState | null {\n /** Determine whether the infomarker is positioned in the viewport */\n if (location == null) return null;\n\n const mapCenter = map.getCenter();\n\n if (location.hasOwnProperty(\"lng\") && location.hasOwnProperty(\"lat\")) {\n location = [location.lng, location.lat];\n }\n\n if (!(location instanceof Array)) {\n // Get geometry bounding box\n const bounds = bbox(location);\n location = [(bounds[0] + bounds[2]) / 2, (bounds[1] + bounds[3]) / 2];\n // For non-points this is extremely simplistic at the moment\n }\n\n const dist = greatCircleDistance(location, mapCenter);\n if (dist > Math.PI / 4) {\n return PositionFocusState.OFF_CENTER;\n } else if (dist > Math.PI / 2) {\n return PositionFocusState.OUT_OF_VIEW;\n }\n\n const markerPos = map.project(location);\n const mapPos = map.project(mapCenter);\n const dx = Math.abs(markerPos.x - mapPos.x);\n const dy = Math.abs(markerPos.y - mapPos.y);\n const padding = map.getPadding();\n let { width, height } = map.getCanvas();\n width /= 2;\n height /= 2;\n\n if (dx < 10 && dy < 10) {\n return PositionFocusState.CENTERED;\n }\n if (dx < 150 && dy < 150) {\n return PositionFocusState.NEAR_CENTER;\n }\n\n if (\n markerPos.x > padding.left &&\n markerPos.x < width - padding.right &&\n markerPos.y > padding.top &&\n markerPos.y < height - padding.bottom\n ) {\n return PositionFocusState.OFF_CENTER;\n }\n\n if (\n markerPos.x > 0 &&\n markerPos.x < width &&\n markerPos.y > 0 &&\n markerPos.y < height\n ) {\n return PositionFocusState.OUT_OF_PADDING;\n }\n return PositionFocusState.OUT_OF_VIEW;\n}\n\nexport function useFocusState(\n position: mapboxgl.LngLatLike | GeoJSON.Geometry\n) {\n const map = useMapRef();\n const [focusState, setFocusState] = useState<PositionFocusState | null>(null);\n\n useEffect(() => {\n if (map.current == null || position == null) return;\n const cb = () => {\n setFocusState(getFocusState(map.current, position));\n };\n map.current?.on(\"move\", cb);\n cb();\n\n return () => {\n map.current?.off(\"move\", cb);\n };\n }, [map.current, position]);\n\n return focusState;\n}\n\nexport function isCentered(focusState: PositionFocusState) {\n return (\n focusState == PositionFocusState.CENTERED ||\n focusState == PositionFocusState.NEAR_CENTER\n );\n}\n\nfunction getCenterAndBestZoom(\n input: [number, number] | GeoJSON.Geometry | GeoJSON.BBox\n) {\n let box: GeoJSON.BBox;\n let center: [number, number] | null = null;\n let zoom: number | null = null;\n\n if (input instanceof Array) {\n if (input.length === 2) {\n point = input;\n } else if (input.length === 4) {\n box = input;\n }\n }\n\n if (input.hasOwnProperty(\"lat\") && input.hasOwnProperty(\"lng\")) {\n center = [input.lng, input.lat];\n }\n\n // If input is a geometry, get its bounding box\n if (input.hasOwnProperty(\"type\")) {\n if (input.type === \"Point\") {\n center = input.coordinates as [number, number];\n } else {\n box = bbox(input);\n }\n }\n\n if (box != null) {\n center = [(box[0] + box[2]) / 2, (box[1] + box[3]) / 2];\n const dist = greatCircleDistance(center, [box[0], box[1]]);\n zoom = Math.log2((Math.PI * 2) / dist) - 1;\n }\n return { center, zoom };\n}\n\nexport function LocationFocusButton({\n location,\n className,\n easeDuration = 800,\n focusState = null,\n ...rest\n}) {\n const map = useMapRef();\n const defaultFocusState = useFocusState(location);\n focusState ??= defaultFocusState;\n const _isCentered = isCentered(focusState);\n\n return h(\n Button,\n {\n minimal: true,\n icon: \"map-marker\",\n onClick() {\n if (focusState == PositionFocusState.CENTERED) {\n map.current?.resetNorth();\n } else {\n let opts = { duration: easeDuration };\n const { center, zoom } = getCenterAndBestZoom(location);\n if (center == null) {\n return;\n } else {\n opts = { ...opts, center };\n }\n if (zoom != null) {\n opts = { ...opts, zoom };\n }\n map.current?.flyTo(opts);\n }\n },\n className: classNames(\n \"recenter-button\",\n className,\n classNameForFocusState(focusState)\n ),\n intent: intentForFocusState(focusState),\n ...rest,\n },\n [_isCentered ? null : h(\"span.recenter-label\", \"Recenter\")]\n );\n}\n",".recenter-button :global(.bp4-icon):first-child {\n margin-left: -3px;\n margin-right: -3px;\n}\n.recenter-button.off-center {\n .recenter-label {\n display: none;\n }\n}\n.recenter-button.out-of-padding .recenter-label {\n opacity: 0.5;\n}\n.recenter-label {\n display: inline-block;\n padding-left: 1em;\n font-style: italic;\n font-size: 12px;\n}\n","import { Card } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport { InfoDrawerHeader } from \"./header\";\nimport classNames from \"classnames\";\nimport styles from \"./main.module.sass\";\nimport { ErrorBoundary } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\nexport function InfoDrawerContainer(props) {\n const className = classNames(\"infodrawer\", props.className);\n return h(Card, { ...props, className });\n}\n\nexport function LocationPanel(props) {\n const { children, className, loading = false, ...rest } = props;\n const cls = classNames(\"location-panel\", className, { loading });\n return h(InfoDrawerContainer, { className: cls }, [\n h(InfoDrawerHeader, rest),\n h(\"div.infodrawer-body\", h(\"div.infodrawer-contents\", h(ErrorBoundary, null, children))),\n ]);\n}\n","import { Icon, Button } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useToaster } from \"@macrostrat/ui-components\";\nimport { LngLatCoords, Elevation } from \"../location-info\";\nimport {\n LocationFocusButton,\n useFocusState,\n isCentered,\n} from \"@macrostrat/mapbox-react\";\n\nconst h = hyper.styled(styles);\n\nfunction PositionButton({ position }) {\n const focusState = useFocusState(position);\n\n return h(\"div.position-controls\", [\n h(LocationFocusButton, { location: position, focusState }, []),\n isCentered(focusState) ? h(CopyLinkButton, { itemName: \"position\" }) : null,\n ]);\n}\n\nfunction CopyLinkButton({ itemName, children, onClick, ...rest }) {\n const toaster = useToaster();\n\n let message = `Copied link`;\n if (itemName != null) {\n message += ` to ${itemName}`;\n }\n message += \"!\";\n\n return h(\n Button,\n {\n className: \"copy-link-button\",\n rightIcon: h(Icon, { icon: \"link\", size: 12 }),\n minimal: true,\n small: true,\n onClick() {\n navigator.clipboard.writeText(window.location.href).then(\n () => {\n toaster?.show({\n message,\n intent: \"success\",\n icon: \"clipboard\",\n timeout: 1000,\n });\n onClick?.();\n },\n () => {\n toaster?.show({\n message: \"Failed to copy link\",\n intent: \"danger\",\n icon: \"error\",\n timeout: 1000,\n });\n }\n );\n },\n ...rest,\n },\n children ?? \"Copy link\"\n );\n}\n\ninterface InfoDrawerHeaderProps {\n onClose: () => void;\n position: mapboxgl.LngLat;\n zoom?: number;\n elevation?: number;\n}\n\nexport function InfoDrawerHeader(props: InfoDrawerHeaderProps) {\n const { onClose, position, zoom = 7, elevation } = props;\n\n return h(\"header.location-panel-header\", [\n h(PositionButton, { position }),\n h(\"div.spacer\"),\n h(LngLatCoords, { position, zoom, className: \"infodrawer-header-item\" }),\n h.if(elevation != null)(Elevation, {\n elevation,\n className: \"infodrawer-header-item\",\n }),\n h(Button, { minimal: true, icon: \"cross\", onClick: onClose }),\n ]);\n}\n",".copy-link-button:global(.bp4-minimal.bp4-button)\n color: var(--text-subtle-color)\n svg\n fill: var(--text-subtle-color)\n\n.location-panel-header\n padding: 5px\n display: flex\n flex-direction: row\n align-items: center\n gap: 1em\n border-bottom: 1px solid var(--panel-rule-color)\n .spacer\n flex-grow: 1\n .left-icon\n padding: 7px\n\n .position-controls :global(.bp4-button)\n font-size: 12px !important\n\n.infodrawer-header-item\n font-size: 12px\n :global(.secondary)\n font-size: 0.9em\n color: var(--text-subtle-color)\n\n.infodrawer\n pointer-events: all\n max-height: 100%\n max-width: 100%\n height: fit-content\n display: flex\n flex-direction: column\n overflow: hidden\n &:global(.bp4-card)\n padding: 0\n\n &.loading\n .infodrawer-body\n overflow-y: hidden\n min-height: 70px\n\n.infodrawer-body\n flex-shrink: 1\n min-height: 0\n transition: min-height 0.5s ease\n overflow-y: scroll\n position: relative\n\n// TODO: remove this when we have a better way to handle card media queries\n@media screen and (max-width: 768px)\n .infodrawer\n border-radius: var(--panel-border-radius, 0px)\n","export * from \"./api\";\nexport * from \"./infinite-scroll\";\nexport * from \"./buttons\";\nexport * from \"./collapse-panel\";\nexport * from \"./link-card\";\nexport * from \"./file-upload\";\nexport * from \"./image\";\nexport * from \"./model-editor\";\nexport * from \"./toaster\";\nexport * from \"./util\";\nexport * from \"./citations\";\nexport * from \"./geodeepdive\";\nexport * from \"./text\";\nexport * from \"./dark-mode\";\nexport * from \"./form-controls\";\nexport * from \"./settings\";\nexport * from \"./error-boundary\";\nexport * from \"./patterns\";\nexport * from \"./collapse-card\";\nexport * from \"./modal-panel\";\nexport * from \"./page-layouts\";\n","export * from \"./provider\";\nexport * from \"./data-provider\";\nexport * from \"./frontend\";\nexport * from \"./paged\";\nexport * from \"./types\";\nexport * from \"./indexing\";\n","import { createContext, useState, useContext, Context } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { memoize } from \"underscore\";\nimport axios, {\n AxiosPromise,\n AxiosInstance,\n AxiosRequestConfig,\n AxiosResponse,\n} from \"axios\";\nimport useAsyncEffect from \"use-async-effect\";\nimport { debounce } from \"underscore\";\nimport { APIConfig, ResponseUnwrapper, APIConfigOptions } from \"./types\";\nimport { QueryParams } from \"../util/query-string\";\nimport { useMemoizedValue } from \"../util\";\n\n/*\nThe baseURL is used to prefix paths if they are not already absolute\nhttps://github.com/axios/axios/blob/master/lib/core/buildFullPath.js\n*/\ntype APIBase = { baseURL: string; axiosInstance: AxiosInstance };\ntype APIContextValue = APIBase & {\n config: APIConfig;\n};\n\ntype APIProviderCoreProps = APIConfigOptions &\n Partial<AxiosRequestConfig> & {\n config?: Partial<APIConfigOptions>;\n };\n\ntype APIProviderProps = APIProviderCoreProps & {\n context?: Context<APIContextValue>;\n children?: React.ReactChild;\n};\n\ntype APIContextType = Context<APIContextValue>;\n\nconst apiDefaults: APIConfig = {\n fullResponse: false,\n handleError: true,\n memoize: false,\n onError(err, opts) {\n let error = opts.error ?? opts;\n throw error;\n },\n onResponse(_) {},\n unwrapResponse(d) {\n return d;\n },\n};\n\nfunction removeUndefined(o1: object) {\n let obj = { ...o1 };\n Object.keys(obj).forEach((key) => {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n });\n return obj;\n}\n\nfunction splitConfig(\n props: APIProviderCoreProps\n): [AxiosRequestConfig, APIConfig] {\n const {\n config = {},\n // These should maybe be reworked into a legacy options set...\n fullResponse,\n handleError,\n memoize,\n onError,\n onResponse,\n unwrapResponse,\n ...axiosConfig\n } = props;\n\n let legacyConfig = removeUndefined({\n fullResponse,\n handleError,\n memoize,\n onError,\n onResponse,\n unwrapResponse,\n });\n\n const newConfig = { ...apiDefaults, ...legacyConfig, ...config };\n return [axiosConfig, newConfig];\n}\n\nconst defaultAxios = axios.create();\n\nfunction createAPIContext(\n defaultProps: APIProviderCoreProps = {}\n): APIContextType {\n const [axiosConfig, config] = splitConfig(defaultProps);\n\n const axiosInstance = axios.create(axiosConfig);\n\n const defaultValue = {\n axiosInstance,\n baseURL: axiosInstance.defaults.baseURL ?? \"\",\n config,\n };\n\n return createContext<APIContextValue>(defaultValue);\n}\n\nenum APIMethod {\n POST = \"POST\",\n GET = \"GET\",\n}\n\nconst APIContext = createAPIContext();\n\ninterface APIRequestInfo {\n route: string;\n params: QueryParams;\n method: APIMethod;\n opts?: APIConfigOptions;\n}\n\nasync function handleResult(\n ctx: APIContextValue,\n request: AxiosPromise,\n info: APIRequestInfo\n) {\n const { processOptions, buildURL } = APIHelpers(ctx);\n const { opts, method, params, route } = info;\n const cfg = processOptions(opts);\n\n let res: AxiosResponse | null = null;\n let error: Error | null = null;\n try {\n res = await request;\n cfg.onResponse(res);\n if (res.data != null) return cfg.unwrapResponse(res.data);\n } catch (err) {\n error = err;\n }\n error = error ?? Error(res.statusText || \"No data!\");\n if (cfg.handleError) {\n // Log errors if we're not throwing\n console.error(error);\n cfg.onError(error, {\n error: error,\n response: res,\n endpoint: buildURL(route, params),\n method,\n });\n } else {\n throw error;\n }\n}\n\nconst APIHelpers = (ctx: APIContextValue) => ({\n buildURL(route: string = \"\", params = {}) {\n // axios's getUri doesn't return baseURL for some inexplicable reason,\n // as of spring 2021.\n // this behavior could change sometime in the future...\n const uriPath = ctx.axiosInstance.getUri({\n url: route,\n params,\n });\n return ctx.baseURL + uriPath;\n },\n processOptions(opts: APIConfigOptions = {}): APIConfig {\n let o1: APIConfig = { ...ctx.config, ...opts };\n if (o1.fullResponse) o1.unwrapResponse = apiDefaults.unwrapResponse;\n return o1;\n },\n});\n\ninterface APIActions {\n post(\n route: string,\n params: QueryParams,\n payload: any,\n opts: APIConfigOptions\n ): Promise<any | null>;\n post(\n route: string,\n payload: any,\n opts?: APIConfigOptions\n ): Promise<any | null>;\n get(\n route: string,\n params: QueryParams,\n opts: APIConfigOptions\n ): Promise<any | null>;\n get(route: string, opts?: APIConfigOptions): Promise<any | null>;\n}\n\nconst APIActions = (ctx: APIContextValue): APIActions => {\n const { axiosInstance } = ctx;\n return {\n post(route: string, ...args) {\n let opts: APIConfigOptions, params: QueryParams, payload: any;\n if (args.length === 3) {\n [params, payload, opts] = args;\n } else if (args.length === 2) {\n [payload, opts] = args;\n } else if (args.length === 1) {\n [payload] = args;\n } else {\n throw \"No data to post\";\n }\n params ??= {};\n opts ??= {};\n\n const [axiosConfig, _] = splitConfig(opts);\n\n const req = axiosInstance.post(route, payload, {\n ...axiosConfig,\n params,\n });\n const info = { route, params, method: APIMethod.POST, opts };\n return handleResult(ctx, req, info);\n },\n get(route: string, ...args) {\n let params: QueryParams, opts: APIConfigOptions;\n if (args.length == 1) {\n [opts] = args;\n } else if (args.length == 2) {\n [params, opts] = args;\n }\n params ??= {};\n opts ??= {};\n\n const [axiosConfig, cfg] = splitConfig(opts);\n const fn = cfg.memoize ? memoize(axiosInstance.get) : axiosInstance.get;\n\n const request = fn(route, { ...axiosConfig, params });\n const info = { route, params, method: APIMethod.GET, opts };\n return handleResult(ctx, request, info);\n },\n };\n};\n\nfunction APIProvider(props: APIProviderProps) {\n /** Provider for APIContext\n\n can pass an alternative API context using \"context\" param\n */\n const { context = APIContext, children, ...rest } = props;\n const [axiosConfig, config] = splitConfig(rest);\n\n const axiosInstance = axios.create(axiosConfig);\n\n const value = {\n axiosInstance,\n baseURL: axiosInstance.defaults.baseURL ?? \"\",\n config,\n };\n return h(context.Provider, { value }, children);\n}\n\nconst useAPIActions = (ctx: APIContextType = APIContext) => {\n return APIActions(useContext(ctx));\n};\n\nconst useAPIHelpers = (ctx: APIContextType = APIContext) => {\n return APIHelpers(useContext(ctx));\n};\n\ntype APIHookOpts = Partial<\n APIConfig & {\n debounce?: number;\n context?: APIContextType;\n }\n>;\n\nfunction useAxiosInstance(context: APIContextType = APIContext) {\n return useContext(context).axiosInstance;\n}\n\nfunction useAPIResult<T>(\n route: string | null,\n params: QueryParams = null,\n opts: APIHookOpts | ResponseUnwrapper<any, T> = {}\n): T {\n /* React hook for API results */\n\n const paramsDep = useMemoizedValue(params);\n const deps = [route, paramsDep]; //...Object.values(params ?? {})];\n\n const [result, setResult] = useState<T | null>(null);\n\n if (typeof opts === \"function\") {\n opts = { unwrapResponse: opts };\n }\n\n const { debounce: _debounce, context, ...rest } = opts ?? {};\n let { get } = useAPIActions(context);\n\n const _getAPIData = async function () {\n if (route == null) {\n return setResult(null);\n }\n const res = await get(route, params, rest);\n return setResult(res);\n };\n\n const getAPIData =\n _debounce != null ? debounce(_getAPIData, _debounce) : _getAPIData;\n\n useAsyncEffect(getAPIData, deps);\n return result;\n}\n\nexport {\n createAPIContext,\n useAxiosInstance,\n APIContext,\n APIProvider,\n APIActions,\n APIHelpers,\n useAPIActions,\n useAPIResult,\n useAPIHelpers,\n};\n","export * from \"./state-hooks\";\nexport * from \"./layout-hooks\";\nexport * from \"./query-string\";\nexport * from \"./local-storage\";\nexport * from \"./json-view\";\nexport * from \"./scroll-helpers\";\nexport * from \"./migration-helpers\";\nexport * from \"./box-model\";\nexport * from \"./event-hooks\";\nexport * from \"./flexbox\";\n","import { Component, useState, useRef } from \"react\";\nimport { isEqual } from \"underscore\";\nimport update, { Spec } from \"immutability-helper\";\n\nexport function useImmutableState<S>(v: S): [S, (spec: Spec<S>) => void] {\n /** useState wrapper hook that requires updating using an \"immutability-helper\" spec */\n const [state, setState] = useState(v);\n const updateState = function (cset: Spec<S>) {\n const newState = update(state, cset);\n return setState(newState);\n };\n return [state, updateState];\n}\n\nexport function useMemoizedValue(\n obj: any,\n equalityFunction: (a: any, b: any) => boolean = isEqual\n) {\n /** Hook to keep a dependency up to date using a deep equals approach */\n const ref = useRef(obj);\n if ((obj == ref.current, equalityFunction(obj, ref.current))) {\n return ref.current;\n } else {\n ref.current = obj;\n return obj;\n }\n}\n\nexport class StatefulComponent<Props, State> extends Component<Props, State> {\n constructor(props: Props) {\n console.warn(\n \"StatefulComponent is deprecated. Use useImmutableState instead.\"\n );\n super(props);\n this.updateState.bind(this);\n }\n updateState(spec: Spec<State>) {\n const newState = update(this.state, spec);\n this.setState(newState);\n }\n}\n","import { useAsyncEffect } from \"use-async-effect\";\nimport {\n useLayoutEffect,\n useEffect,\n useState,\n useCallback,\n RefObject,\n} from \"react\";\n\ntype ElementSize = {\n height: number;\n width: number;\n};\n\ntype ElementSizeOpts = {\n trackWindowResize?: boolean;\n};\n\nfunction useElementSize(\n ref: RefObject<HTMLElement>,\n opts: ElementSizeOpts = {}\n): ElementSize | null {\n /** Also see https://github.com/Swizec/useDimensions */\n const { trackWindowResize = true } = opts;\n const [size, setSize] = useState<ElementSize>(null);\n\n const sizeCallback = useCallback(() => {\n if (ref.current == null) return;\n const { height, width } = ref.current.getBoundingClientRect();\n setSize({ height, width });\n }, [ref]);\n\n useLayoutEffect(sizeCallback, [ref]);\n\n // Also respond on window resize (if \"trackWindowResize\" is set)\n useEffect(() => {\n if (!trackWindowResize) return;\n window.addEventListener(\"resize\", sizeCallback);\n return function () {\n window.removeEventListener(\"resize\", sizeCallback);\n };\n }, [sizeCallback, trackWindowResize]);\n\n return size;\n}\n\nfunction useScrollOffset(ref: RefObject<HTMLElement>): number {\n const [offset, setOffset] = useState(0);\n useEffect(() => {\n ref.current?.addEventListener(\"scroll\", (evt) => {\n const el = evt.target as HTMLElement;\n setOffset(el.scrollTop);\n });\n }, [ref.current]);\n return offset;\n}\n\nexport { useElementSize, useScrollOffset, useAsyncEffect };\n","import { stringify, parse, StringifyOptions, ParseOptions } from \"query-string\";\n\n// API query string management\nexport type APIParams = Record<string, string>;\n\ninterface QueryArgs {\n [k: string]: any;\n}\n\nexport type QueryParams =\n | string\n | string[][]\n | QueryArgs\n | APIParams\n | URLSearchParams\n | null;\n\nfunction buildQueryString(\n params: QueryParams,\n opts: StringifyOptions = {}\n): string {\n let p: string;\n if (typeof params === \"string\") {\n p = params;\n } else {\n p = stringify(params, { arrayFormat: \"comma\", ...opts });\n }\n return p;\n}\n\nfunction buildQueryURL(\n route: string,\n params: QueryParams = {},\n opts?: StringifyOptions\n): string {\n const queryStr = buildQueryString(params, opts);\n if (queryStr == \"\") {\n return route;\n } else {\n return route + \"?\" + queryStr;\n }\n}\n\n// Base query string management\n\nfunction parseParams(paramString: string, opts?: ParseOptions) {\n const params = parse(paramString, {\n parseBooleans: true,\n parseNumbers: true,\n arrayFormat: \"comma\",\n ...opts,\n });\n // Return null unless we have params defined\n return Object.keys(params).length > 0 ? params : null;\n}\n\nfunction updateURL(joinWith: string, args: QueryArgs, opts?: StringifyOptions) {\n const params = buildQueryString(args, opts);\n let pathname = document.location.pathname;\n if (params != \"\") {\n pathname += joinWith + params;\n }\n window.history.replaceState({}, \"\", pathname);\n}\n\nconst getHashString = (hashString: string | null) =>\n parseParams(hashString ?? document.location.hash);\nconst setHashString = (args: QueryArgs, opts?: StringifyOptions) =>\n updateURL(\"#\", args, opts);\n\nconst getQueryString = (queryString: string | null) =>\n parseParams(queryString ?? document.location.search);\nconst setQueryString = (args: QueryArgs, opts?: StringifyOptions) =>\n updateURL(\"?\", args, opts);\n\nexport {\n buildQueryString,\n buildQueryURL,\n getQueryString,\n setQueryString,\n getHashString,\n setHashString,\n};\n","import {\n useMemo,\n useState,\n Dispatch,\n SetStateAction,\n useCallback,\n} from \"react\";\n\nclass LocalStorage<T> {\n name: string;\n constructor(name: string) {\n this.get = this.get.bind(this);\n this.set = this.set.bind(this);\n this.name = name;\n }\n get(): T | null {\n const str = window.localStorage.getItem(this.name);\n try {\n const obj = JSON.parse(str);\n return obj;\n } catch {\n return null;\n }\n }\n set(obj: T) {\n const str = JSON.stringify(obj);\n return window.localStorage.setItem(this.name, str);\n }\n\n remove() {\n window.localStorage.removeItem(this.name);\n }\n}\n\nfunction useStoredState<S>(\n key: string,\n initialState: S | (() => S),\n isValid: (S) => boolean = null\n): [S, Dispatch<SetStateAction<S>>, VoidFunction] {\n /** React hook for setting and getting values on local storage */\n const storage = useMemo(() => new LocalStorage<S>(key), [key]);\n let initialValue = storage.get();\n\n const validator = useCallback(\n (state: S) => {\n if (isValid != null) return isValid(state);\n if (state == null) return false;\n if (typeof state != typeof initialState) return false;\n if (typeof state == \"object\") {\n const expectedKeys = Object.keys(initialState);\n const actualKeys = Object.keys(state);\n if (expectedKeys.length != actualKeys.length) return false;\n for (const [key, value] of Object.entries(initialState)) {\n if (!actualKeys.includes(key)) return false;\n if (typeof value != typeof state[key]) return false;\n }\n }\n return true;\n },\n [initialState, isValid]\n );\n\n if (!validator(initialValue)) initialValue = null;\n const [state, _setState] = useState<S>(initialValue ?? initialState);\n\n const setState = useCallback(\n (nextState: S, validate = true) => {\n if (validate && !validator(nextState))\n throw `State ${nextState} is not valid.`;\n _setState(nextState);\n storage.set(nextState);\n },\n [validator]\n );\n\n const resetState = useCallback(() => {\n _setState(initialState);\n storage.remove();\n }, [initialState]);\n\n return [state, setState, resetState];\n}\n\nexport { LocalStorage, useStoredState };\n","import JSONTree from \"react-json-tree\";\nimport { hyperStyled, classed } from \"@macrostrat/hyper\";\nimport { inDarkMode, useDarkMode } from \"../dark-mode\";\nimport classNames from \"classnames\";\nimport styles from \"./main.module.scss\";\n\nconst h = hyperStyled(styles);\n\nconst monokai = {\n scheme: \"monokai\",\n author: \"wimer hazenberg (http://www.monokai.nl)\",\n base00: \"transparent\",\n base01: \"#383830\",\n base02: \"#49483e\",\n base03: \"#75715e\",\n base04: \"#a59f85\",\n base05: \"#f8f8f2\",\n base06: \"#f5f4f1\",\n base07: \"#f9f8f5\",\n base08: \"#f92672\",\n base09: \"#fd971f\",\n base0A: \"#f4bf75\",\n base0B: \"#a6e22e\",\n base0C: \"#a1efe4\",\n base0D: \"#66d9ef\",\n base0E: \"#ae81ff\",\n base0F: \"#cc6633\",\n};\n\nexport function JSONView(props) {\n const invertTheme = !inDarkMode();\n return h(\n \"div.json-view-container\",\n {\n className: classNames(props.className, {\n \"root-hidden\": props.hideRoot,\n \"invert-theme\": invertTheme,\n }),\n },\n h(JSONTree, {\n theme: monokai,\n invertTheme,\n ...props,\n })\n );\n}\n","import React, {\n createContext,\n useContext,\n useEffect,\n ReactNode,\n useCallback,\n} from \"react\";\nimport { Button, ButtonProps } from \"@blueprintjs/core\";\nimport { useStoredState } from \"./util/local-storage\";\nimport h from \"@macrostrat/hyper\";\n\ntype DarkModeState = { isEnabled: boolean; isAutoset: boolean };\n\ntype DarkModeUpdater = (enabled?: boolean) => void;\n\nconst systemDarkMode = (): DarkModeState => ({\n isEnabled: matcher?.matches ?? false,\n isAutoset: true,\n});\n\nconst ValueContext = createContext<DarkModeState>({\n isEnabled: false,\n isAutoset: false,\n});\nconst UpdaterContext = createContext<DarkModeUpdater | null>(null);\n\nconst matcher = window?.matchMedia(\"(prefers-color-scheme: dark)\");\n\ntype DarkModeProps = {\n children?: ReactNode;\n addBodyClasses: boolean;\n isEnabled?: boolean;\n followSystem?: boolean;\n};\n\nconst _DarkModeProvider = (props: DarkModeProps) => {\n const {\n addBodyClasses = true,\n isEnabled,\n followSystem = false,\n children,\n } = props;\n const [storedValue, updateValue, resetState] = useStoredState(\n \"ui-dark-mode\",\n systemDarkMode()\n );\n // Guards so that we don't error on an invalid stored value\n const value = {\n isEnabled: storedValue?.isEnabled ?? false,\n isAutoset: storedValue?.isAutoset ?? false,\n };\n\n useEffect(() => {\n if (!followSystem) return;\n updateValue(systemDarkMode());\n }, []);\n\n useEffect(() => {\n // Update value if isEnabled is provided\n if (isEnabled == null) return;\n updateValue({ isAutoset: false, isEnabled });\n }, [isEnabled]);\n\n // Manage dark mode body classes\n useEffect(() => {\n if (!addBodyClasses) return;\n if (value.isEnabled) {\n document.body.classList.add(\"bp4-dark\");\n } else {\n document.body.classList.remove(\"bp4-dark\");\n }\n }, [storedValue]);\n\n const update: DarkModeUpdater = (enabled: boolean | null) => {\n if (enabled == null) return resetState();\n const isEnabled = enabled ?? !value.isEnabled;\n updateValue({ isAutoset: false, isEnabled });\n };\n\n const onSystemChange = useCallback(\n (e) => {\n if (value.isAutoset || followSystem) updateValue(systemDarkMode());\n },\n [value.isAutoset, followSystem]\n );\n\n useEffect(() => {\n if (matcher == null) return;\n matcher.addEventListener(\"change\", onSystemChange);\n return () => {\n matcher.removeEventListener(\"change\", onSystemChange);\n };\n }, [onSystemChange]);\n\n return h(\n ValueContext.Provider,\n { value },\n h(UpdaterContext.Provider, { value: update }, children)\n );\n};\n\nconst DarkModeProvider = (props: DarkModeProps) => {\n // Ensure that only one provider is active for an application\n const parentCtx = useContext(UpdaterContext);\n if (parentCtx != null) return props.children ?? null;\n return h(_DarkModeProvider, props);\n};\n\nconst useDarkMode = () => useContext(ValueContext);\nconst inDarkMode = () => useDarkMode()?.isEnabled ?? false;\nconst darkModeUpdater = () => useContext(UpdaterContext);\n\nconst DarkModeButton = (\n props: ButtonProps & { allowReset: boolean; showText: boolean }\n) => {\n const { allowReset = true, showText = false, children, ...rest } = props;\n const { isEnabled, isAutoset } = useDarkMode();\n const icon = isEnabled ? \"flash\" : \"moon\";\n const update = darkModeUpdater();\n const onClick: React.MouseEventHandler = (event) => {\n if (update == null) {\n console.warn(\"No DarkModeProvider is available\");\n return;\n }\n if (allowReset && event.shiftKey) {\n update(null);\n return;\n }\n update(!isEnabled);\n };\n const active = !isAutoset;\n\n return h(Button, { active, ...rest, icon, onClick }, [\n h.if(showText)([isEnabled ? \"Light\" : \"Dark\"]),\n children,\n ]);\n};\n\nexport {\n DarkModeProvider,\n useDarkMode,\n inDarkMode,\n darkModeUpdater,\n DarkModeButton,\n};\n",".json-view-container.root-hidden {\n padding-left: 0.8em;\n}\n\n.flex-row {\n display: flex;\n flex-direction: row;\n}\n\n.flex-col {\n display: flex;\n flex-direction: column;\n}\n\n.flex-spacer {\n flex: 1;\n}\n","import { useState, useEffect, useMemo } from \"react\";\nimport { pairs } from \"d3-array\";\n\ninterface ScrollMarker {\n id: string;\n offset: number;\n}\n\nfunction useScrollMarkers(\n markers: ScrollMarker[],\n callback?: (marker: ScrollMarker | null) => void\n): ScrollMarker | null {\n /** Hook that notifies when we pass a scroll marker */\n const [lastMarker, setLastMarker] = useState<ScrollMarker | null>(null);\n const [offset, setOffset] = useState(null);\n\n useEffect(() => {\n const handleScroll = (event) =>\n setOffset(document.scrollingElement.scrollTop);\n window.addEventListener(\"scroll\", handleScroll);\n return () => {\n window.removeEventListener(\"scroll\", handleScroll);\n };\n });\n\n const markerPairs: [ScrollMarker, ScrollMarker][] = useMemo(() => {\n let sortedMarkers = [...markers];\n sortedMarkers.sort((a, b) => a.offset - b.offset);\n return pairs([\n { id: \"start\", offset: 0 },\n ...sortedMarkers,\n { id: \"end\", offset: Number.MAX_SAFE_INTEGER },\n ]);\n }, [markers]);\n\n useEffect(() => {\n for (const [m1, m2] of markerPairs) {\n if (offset >= m1.offset && offset < m2.offset) {\n let markerToSet = m1.id === \"start\" ? null : m1;\n if (markerToSet != lastMarker) {\n setLastMarker(markerToSet);\n callback?.(markerToSet);\n }\n }\n }\n }, [markerPairs, offset]);\n\n return lastMarker;\n}\n\nexport { useScrollMarkers, ScrollMarker };\n","import { useRef, useEffect } from \"react\";\n\nfunction usePrevious<T>(value: T): T {\n /** Use the previous value of a value */\n const ref = useRef<T>();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nexport function useComponentDidUpdate<\n Props extends object,\n State extends object\n>(\n componentUpdater: (prevProps: Props, prevState: State) => void,\n props = {} as Props,\n state = {} as State\n) {\n /** Run a function every time props and state changes.\n * Analogous to componentDidUpdate in a class component. This is useful for incrementally\n * transitioning from class to functional React components. */\n const prevProps = usePrevious<Props>(props);\n const prevState = usePrevious<State>(state);\n useEffect(\n () =>\n console.warn(\n \"The useComponentDidUpdate hook performs poorly and is only meant \" +\n \"to ease the transition to functional components. \" +\n \"Please transition to direct use of useEffect to remove this warning.\"\n ),\n []\n );\n useEffect(() => {\n if (prevProps == null) return;\n componentUpdater(prevProps, prevState ?? ({} as State));\n }, [...Object.values(props ?? {}), ...Object.values(state ?? {})]);\n}\n","export interface StrictPadding {\n paddingLeft: number;\n paddingRight: number;\n paddingTop: number;\n paddingBottom: number;\n}\n\nexport interface Padding extends StrictPadding {\n paddingV: number;\n paddingH: number;\n padding: number;\n}\n\nconst keys = function (main) {\n const allKeys = [\"\", \"V\", \"H\", \"Left\", \"Right\", \"Top\", \"Bottom\"];\n return allKeys.map((d) => main + d);\n};\n\nconst keyRemover = (type) =>\n function (obj) {\n let o1 = obj;\n for (let key of keys(type)) {\n delete o1[key];\n }\n return o1;\n };\n\nconst removeMargin = keyRemover(\"margin\");\nconst removePadding = keyRemover(\"padding\");\n\nconst extractMargin = function (obj, remove = false) {\n /*\n I'm really annoyed I can't find a third-party implementation\n of this that covers edge cases...\n This eventually is useful for a React version of the SVG \"margin convention\"\n https://bl.ocks.org/mbostock/3019563\n */\n let {\n marginLeft,\n marginRight,\n marginTop,\n marginBottom,\n marginV,\n marginH,\n margin,\n } = obj;\n if (margin == null) {\n margin = 0;\n }\n if (marginV == null) {\n marginV = margin;\n }\n if (marginH == null) {\n marginH = margin;\n }\n if (marginLeft == null) {\n marginLeft = marginH;\n }\n if (marginRight == null) {\n marginRight = marginH;\n }\n if (marginTop == null) {\n marginTop = marginV;\n }\n if (marginBottom == null) {\n marginBottom = marginV;\n }\n\n if (remove) {\n removeMargin(obj);\n }\n\n return { marginLeft, marginRight, marginTop, marginBottom };\n};\n\nconst extractPadding = function (obj, remove = false) {\n /*\n I'm really annoyed I can't find a third-party implementation\n of this that covers edge cases...\n This eventually is useful for a React version of the SVG \"padding convention\"\n https://bl.ocks.org/mbostock/3019563\n */\n let {\n paddingLeft,\n paddingRight,\n paddingTop,\n paddingBottom,\n paddingV,\n paddingH,\n padding,\n } = obj;\n if (padding == null) {\n padding = 0;\n }\n if (paddingV == null) {\n paddingV = padding;\n }\n if (paddingH == null) {\n paddingH = padding;\n }\n if (paddingLeft == null) {\n paddingLeft = paddingH;\n }\n if (paddingRight == null) {\n paddingRight = paddingH;\n }\n if (paddingTop == null) {\n paddingTop = paddingV;\n }\n if (paddingBottom == null) {\n paddingBottom = paddingV;\n }\n\n if (remove) {\n removePadding(obj);\n }\n\n return { paddingLeft, paddingRight, paddingTop, paddingBottom };\n};\n\nconst expandMargin = function (obj) {\n const margin = extractMargin(obj);\n let o1 = { ...obj };\n for (let key of [\"margin\", \"marginV\", \"marginH\"]) {\n delete o1[key];\n }\n return { ...o1, ...margin };\n};\n\nconst expandPadding = function (obj) {\n const margin = extractPadding(obj);\n let o1 = { ...obj };\n for (let key of [\"padding\", \"paddingV\", \"paddingH\"]) {\n delete o1[key];\n }\n return { ...o1, ...margin };\n};\n\nconst expandInnerSize = function (obj) {\n const n = expandPadding(obj);\n const { innerHeight, innerWidth, height, width, ...rest } = n;\n if (innerHeight != null) {\n if (n.height == null) {\n n.height = innerHeight + n.paddingTop + n.paddingBottom;\n }\n }\n if (innerWidth != null) {\n if (n.width == null) {\n n.width = innerWidth + n.paddingLeft + n.paddingRight;\n }\n }\n delete n.innerHeight;\n delete n.innerWidth;\n return n;\n};\n\nexport {\n extractMargin,\n extractPadding,\n expandMargin,\n expandPadding,\n expandInnerSize,\n removeMargin,\n removePadding,\n};\n","import { useEffect, useCallback } from \"react\";\n\nexport function useKeyHandler(\n handler: (event: KeyboardEvent) => void,\n options:\n | { event?: string; keys?: string[]; target?: HTMLElement }\n | any[] = undefined,\n deps: any[] | undefined = undefined\n) {\n if (Array.isArray(options)) {\n deps = options;\n options = {};\n }\n const { event = \"keydown\", keys = [], target = document } = options;\n const _callback = useCallback(\n (event: KeyboardEvent) => {\n if (keys.length === 0 || keys.includes(event.key)) {\n handler(event);\n }\n },\n [handler, keys]\n );\n\n return useEventHandler(target, event, _callback, deps);\n}\n\nexport function useEventHandler(\n target: HTMLElement | Document,\n event: string,\n handler: (event: Event) => void,\n deps: any[] | undefined = undefined\n) {\n const _callback = deps ? useCallback(handler, deps) : handler;\n\n useEffect(() => {\n const handleEvent = (event: Event) => {\n _callback(event);\n };\n\n target.addEventListener(event, handleEvent);\n return () => {\n target.removeEventListener(event, handleEvent);\n };\n }, [_callback, event, target]);\n}\n","import hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.scss\";\nimport { forwardRef } from \"react\";\nimport _Box from \"ui-box\";\nconst h = hyper.styled(styles);\n\nexport const Box = _Box;\n\nexport const FlexBox = forwardRef((props, ref) => {\n const { grow, shrink, className, style, textAlign, ...rest } = props;\n return h(Box, {\n className,\n flexGrow: grow,\n flexShrink: shrink,\n ...rest,\n });\n});\n\nexport function FlexRow(props) {\n return h(FlexBox, { display: \"flex\", flexDirection: \"row\", ...props });\n}\n\nexport function FlexCol(props) {\n return h(FlexBox, { display: \"flex\", flexDirection: \"row\", ...props });\n}\n\nexport function Spacer(props) {\n return h(FlexBox, { flex: 1, ...props });\n}\n","import h from \"@macrostrat/hyper\";\nimport { createContext, useContext, ReactNode } from \"react\";\nimport { QueryParams } from \"../util/query-string\";\nimport { APIConfigOptions } from \"./types\";\nimport { useAPIResult } from \"./provider\";\n\ninterface DataProviderCtx {\n [key: string]: string | object | object[] | null;\n}\n\ninterface DataProviderProps {\n children?: ReactNode;\n key: string;\n data: any;\n}\n\nconst APIResultContext = createContext<DataProviderCtx>({});\n\nexport function DataProvider(props: DataProviderProps) {\n const { children, key, data } = props;\n const baseValue = useContext(APIResultContext);\n const value = { ...baseValue, [key]: data };\n return h(APIResultContext.Provider, { value }, children);\n}\n\ninterface APIDataProviderProps extends Partial<APIConfigOptions> {\n key: string;\n route: string;\n params?: QueryParams;\n children?: ReactNode;\n}\n\nexport function APIDataProvider<T>(props: APIDataProviderProps) {\n const { route, params, children, key, ...opts } = props;\n const data: T | null = useAPIResult(route, params, opts);\n return h(DataProvider, { key, data }, children);\n}\n\nexport function useData(key: string) {\n return useContext(APIResultContext)[key];\n}\n","// @ts-nocheck\nimport { Component, cloneElement, isValidElement } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Spinner } from \"@blueprintjs/core\";\nimport { APIContext, APIActions, APIHelpers } from \"./provider\";\nimport { debounce } from \"underscore\";\nimport { APIConfig } from \"./types\";\nimport { QueryParams } from \"../util/query-string\";\nimport { JSONView } from \"../util/json-view\";\nimport { IndexingProvider } from \"./indexing\";\nimport { number } from \"fp-ts\";\n\ninterface APIPlaceholderProps {\n isLoading: boolean;\n}\n\nconst APIResultPlaceholder = (props: APIPlaceholderProps) => {\n return h(\"div.api-result-placeholder\", [h(Spinner)]);\n};\n\ntype ChildFunction<T> = (d: T) => React.ReactNode;\n\ntype APIChild<T> =\n | React.ReactElement<{ data: T; isLoading: boolean }>\n | ChildFunction<T>;\n\ntype APIViewProps<T> = {\n children?: APIChild<T>;\n placeholder: React.ComponentType<APIPlaceholderProps>;\n params: QueryParams;\n route: string | null;\n isLoading: boolean;\n data: T;\n totalCount?: number;\n pageCount?: number;\n};\n\ninterface APIResultProps<T> extends APIViewProps<T> {\n onSuccess: (d: T) => void;\n debounce: number;\n opts?: Partial<APIConfig>;\n}\n\ntype APIResultState<T> = { data: T; isLoading: boolean };\n\nclass APIResultView<T> extends Component<APIResultProps<T>, APIResultState<T>> {\n static contextType = APIContext;\n static defaultProps = {\n route: null,\n params: {},\n opts: {}, // Options passed to `get`\n debug: false,\n onSuccess: () => {},\n primaryKey: \"id\",\n // If placeholder is not defined, the render\n // method will be called with null data\n placeholder: APIResultPlaceholder,\n debounce: 300,\n children: data => {\n return h(JSONView, { data });\n }\n };\n _didFetch: boolean;\n _lazyGetData: () => Promise<void>;\n\n constructor(props, context) {\n super(props, context);\n\n this._didFetch = false;\n\n this.getData = this.getData.bind(this);\n this._lazyGetData = debounce(this.getData, this.props.debounce);\n\n this.state = { data: null, isLoading: false };\n this.getData();\n }\n\n buildURL(props = null) {\n const { route, params } = props ?? this.props;\n const { buildURL } = APIHelpers(this.context);\n return buildURL(route, params);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.debounce !== this.props.debounce) {\n this._lazyGetData = debounce(this.getData, this.props.debounce);\n }\n if (this.buildURL() === this.buildURL(prevProps)) return;\n\n return this._lazyGetData();\n }\n\n async getData() {\n this._didFetch = false;\n // if (this.context?.get == null) {\n // return\n // }\n const { route, params, opts } = this.props;\n if (route == null) {\n return;\n }\n const { get } = APIActions(this.context);\n this.setState({ isLoading: true });\n const data = await get(route, params, opts);\n this._didFetch = true;\n // Run side effects...\n this.props.onSuccess(data);\n this.setState({ data, isLoading: false });\n }\n\n renderInner() {\n const { data, isLoading } = this.state;\n const { children } = this.props;\n\n if (typeof children == \"function\") {\n return children(data) as React.ReactElement;\n } else if (isValidElement(children)) {\n return cloneElement(children, {\n data,\n isLoading\n });\n } else {\n throw new Error(\n \"The APIResultView component must have a single child element or a function\"\n );\n }\n }\n\n render() {\n const { data, isLoading } = this.state;\n const { placeholder } = this.props;\n if (data == null && placeholder != null) {\n return h(placeholder, { isLoading });\n }\n\n if (Array.isArray(data)) {\n return h(\n IndexingProvider,\n {\n totalCount: data.length,\n indexOffset: 0\n },\n this.renderInner()\n );\n }\n return this.renderInner();\n }\n}\n\nexport { APIResultView, APIResultProps, APIPlaceholderProps };\n","import { createContext, useContext } from \"react\";\nimport h from \"@macrostrat/hyper\";\n\ntype IndexingCtx = {\n totalCount?: number;\n indexOffset?: number;\n};\n\nconst IndexingContext = createContext<IndexingCtx | null>(null);\n\nfunction IndexingProvider(props: { children?: React.ReactNode } & IndexingCtx) {\n const { children, ...value } = props;\n return h(IndexingContext.Provider, { value }, children);\n}\n\nconst useIndexing = () => useContext(IndexingContext);\n\nexport { IndexingProvider, useIndexing };\n","// @ts-nocheck\nimport { Component } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Button, ButtonGroup, NonIdealState } from \"@blueprintjs/core\";\nimport { APIResultView } from \"./frontend\";\n\nconst Pagination = props => {\n const { currentPage, nextDisabled, setPage } = props;\n return h(ButtonGroup, [\n h(\n Button,\n {\n onClick: setPage(currentPage - 1),\n icon: \"arrow-left\",\n disabled: currentPage <= 0\n },\n \"Previous\"\n ),\n h(\n Button,\n {\n onClick: setPage(currentPage + 1),\n rightIcon: \"arrow-right\",\n disabled: nextDisabled\n },\n \"Next\"\n )\n ]);\n};\n\nclass PagedAPIView extends Component<any, any> {\n static defaultProps = {\n count: null,\n perPage: 20,\n topPagination: false,\n bottomPagination: true,\n extraPagination: null,\n opts: {}, // Options passed to GET\n params: {},\n getTotalCount(response) {\n const { headers } = response;\n return parseInt(headers[\"x-total-count\"]);\n }\n };\n constructor(props) {\n super(props);\n this.setPage = this.setPage.bind(this);\n this.params = this.params.bind(this);\n this.state = { currentPage: 0, count: null };\n }\n\n setPage(i) {\n return () => {\n return this.setState({ currentPage: i });\n };\n }\n\n renderPagination() {\n const { perPage } = this.props;\n const { count } = this.state;\n let nextDisabled = false;\n let paginationInfo = null;\n let currentPage = this.currentPage();\n const lastPage = this.lastPage();\n\n if (lastPage != null) {\n if (currentPage >= lastPage) {\n currentPage = lastPage;\n nextDisabled = true;\n }\n paginationInfo = h(\"div\", { disabled: true }, [\n `${currentPage + 1} of ${lastPage + 1} (${count} records)`\n ]);\n }\n\n return h(\"div.pagination-controls\", [\n h(Pagination, { currentPage, nextDisabled, setPage: this.setPage }),\n this.props.extraPagination,\n paginationInfo\n ]);\n }\n\n lastPage() {\n const { count } = this.state;\n const { perPage } = this.props;\n if (count == null) {\n return null;\n }\n let pages = Math.floor(count / perPage);\n if (count % perPage === 0) {\n pages -= 1;\n }\n return pages;\n }\n\n currentPage() {\n let { currentPage } = this.state;\n const lastPage = this.lastPage();\n if (lastPage != null && currentPage >= lastPage) {\n return lastPage;\n }\n if (currentPage < 0) {\n currentPage = 0;\n }\n return currentPage;\n }\n\n params() {\n const { params, perPage } = this.props;\n let { offset, limit, ...otherParams } = params;\n const currentPage = this.currentPage();\n if (offset == null) {\n offset = 0;\n }\n offset += currentPage * perPage;\n\n // This shouldn't happen but it does\n if (offset < 0) {\n offset = 0;\n }\n\n if (limit == null || limit > perPage) {\n limit = perPage;\n }\n\n return { offset, limit, ...otherParams };\n }\n\n render() {\n let {\n route,\n perPage,\n children,\n getTotalCount,\n primaryKey,\n count,\n topPagination,\n bottomPagination,\n extraPagination,\n params,\n opts,\n ...rest\n } = this.props;\n\n params = this.params();\n\n // Create new onResponse function\n const { onResponse: __onResponse } = opts;\n const onResponse = response => {\n count = getTotalCount(response);\n this.setState({ count });\n // Run inherited onResponse if it exists\n if (__onResponse != null) {\n return __onResponse(response);\n }\n };\n\n // Options for get\n opts = { ...opts, onResponse };\n\n const _children = data => {\n if (this.state.count === 0) {\n return h(NonIdealState, { icon: \"search\", title: \"No results\" });\n }\n // @ts-ignore\n return children(data);\n };\n\n return h(\"div.pagination-container\", rest, [\n topPagination ? this.renderPagination() : undefined,\n h(APIResultView, { route, params, opts, primaryKey }, _children),\n bottomPagination ? this.renderPagination() : undefined\n ]);\n }\n}\n\nexport { PagedAPIView, Pagination };\n","import { AxiosRequestConfig } from \"axios\";\n\nexport type ResponseUnwrapper<T = any, U = any> = (input: T) => U;\n\nexport interface APIConfig {\n fullResponse: boolean;\n handleError: boolean;\n memoize: boolean;\n onError(e: Error, opts: any): void;\n onResponse<T>(a: T): void;\n unwrapResponse: ResponseUnwrapper;\n}\n\nexport type APIConfigOptions = Partial<APIConfig> & AxiosRequestConfig;\n","// @ts-nocheck\nimport h from \"@macrostrat/hyper\";\nimport update, { Spec } from \"immutability-helper\";\nimport React, { useReducer, useEffect, useRef, useCallback, memo } from \"react\";\nimport { Spinner, NonIdealState } from \"@blueprintjs/core\";\nimport { APIParams, QueryParams } from \"./util/query-string\";\nimport { useInView } from \"react-intersection-observer\";\n\nimport { APIResultProps, useAPIActions } from \"./api\";\nimport { JSONView } from \"./util/json-view\";\nimport { IndexingProvider } from \"./api/indexing\";\n\ninterface ScrollState<T = object> {\n items: T[];\n scrollParams: APIParams;\n count: number | null;\n error?: any;\n hasMore: boolean;\n isLoadingPage: number | null;\n pageIndex: number;\n}\n\ntype ScrollResponseItems<T> = Pick<\n ScrollState<T>,\n \"count\" | \"hasMore\" | \"items\"\n>;\n\ninterface InfiniteScrollProps<T> extends Omit<APIResultProps<T>, \"params\"> {\n getCount(r: T): number;\n getNextParams(r: T, params: QueryParams): QueryParams;\n getItems(r: T): any;\n hasMore(res: T): boolean;\n totalCount?: number;\n // Only allow more restrictive parameter types\n params: APIParams;\n className?: string;\n itemComponent?: React.ComponentType<{ data: T; index: number }>;\n loadingPlaceholder?: React.ComponentType;\n emptyPlaceholder?: React.ComponentType;\n finishedPlaceholder?: React.ComponentType;\n resultsComponent?: React.ComponentType<{ data: T[] }>;\n perPage?: number;\n startPage?: number;\n}\n\ntype UpdateState<T> = { type: \"update-state\"; spec: Spec<ScrollState<T>> };\ntype LoadNextPage = {\n type: \"load-next-page\";\n page: number;\n};\ntype LoadPage<T> = {\n type: \"load-page\";\n params: APIParams;\n dispatch: Dispatch<T>;\n callback<T>(action: LoadPage<T>): void;\n};\n\ntype ScrollAction<T> = UpdateState<T> | LoadNextPage | LoadPage<T>;\n\ntype Reducer<T> = (\n state: ScrollState<T>,\n action: ScrollAction<T>\n) => ScrollState<T>;\ntype Dispatch<T> = (action: ScrollAction<T>) => void;\n\nfunction infiniteScrollReducer<T>(\n state: ScrollState<T>,\n action: ScrollAction<T>\n) {\n switch (action.type) {\n case \"update-state\":\n return update(state, action.spec);\n case \"load-page\":\n action.callback(action);\n return update(state, {\n // @ts-ignore\n isLoadingPage: { $set: action.params.page ?? 0 },\n });\n }\n}\n\nfunction InfiniteScroll(props) {\n const { hasMore, children, className, loadMore } = props;\n const { ref, inView } = useInView({ rootMargin: \"0px 0px -100px 0px\" });\n\n useEffect(() => {\n if (!hasMore || !inView) return;\n loadMore();\n }, [inView, hasMore]);\n\n return h(\"div.infinite-scroll-container\", { className }, [\n children,\n //h.if(state.isLoadingPage != null)(placeholder),\n h(\"div.bottom-marker\", { ref }),\n ]);\n}\n\nconst Placeholder = (props) => {\n const {\n loading,\n title = \"No results yet\",\n description = null,\n ...rest\n } = props;\n\n return h(\"div.placeholder\", [\n h(NonIdealState, {\n icon: \"search-template\",\n className: \"placeholder-inner\",\n title,\n description,\n ...rest,\n }),\n ]);\n};\n\nconst LoadingPlaceholder = (props: {\n itemName?: string;\n scrollParams?: APIParams;\n pageIndex?: number | null;\n loadedCount?: number;\n totalCount?: number;\n perPage?: number;\n}) => {\n const { perPage = 10, loadedCount = 0, itemName = \"results\" } = props;\n const { totalCount = 0 } = props;\n\n let description = null;\n if (totalCount != null) {\n const loadedPages = Math.ceil(loadedCount / perPage);\n const totalPages = Math.ceil(totalCount / perPage);\n description = `Page ${loadedPages} of ${totalPages}`;\n }\n\n return h(Placeholder, {\n icon: h(Spinner),\n title: \"Loading \" + itemName,\n description,\n });\n};\n\nfunction EmptyPlaceholder() {\n return h(Placeholder, {\n icon: \"inbox\",\n title: \"No results\",\n });\n}\n\nfunction FinishedPlaceholder({ totalCount, ...rest }: { totalCount?: number }) {\n const description = totalCount != null ? `${totalCount} total items` : null;\n return h(Placeholder, {\n icon: null,\n title: \"No more results\",\n description,\n ...rest,\n });\n}\n\nfunction InfiniteScrollView<T>(props: InfiniteScrollProps<T>) {\n /*\n A container for cursor-based pagination. This is built for\n the GeoDeepDive API right now, but it can likely be generalized\n for other uses.\n */\n const {\n route,\n params,\n opts,\n placeholder,\n className,\n itemComponent = JSONView,\n loadingPlaceholder = LoadingPlaceholder,\n emptyPlaceholder = EmptyPlaceholder,\n finishedPlaceholder = FinishedPlaceholder,\n resultsComponent = \"div.results\",\n perPage = 10,\n startPage = 0,\n } = props;\n const { get } = useAPIActions();\n const { getCount, getNextParams, getItems, hasMore } = props;\n\n const initialState: ScrollState<T> = {\n items: [],\n scrollParams: params,\n count: null,\n error: null,\n hasMore: true,\n isLoadingPage: null,\n pageIndex: startPage,\n };\n\n const pageOffset = 0;\n\n const [state, dispatch] = useReducer<Reducer<T>>(\n infiniteScrollReducer,\n initialState\n );\n\n const loadPage = useCallback(\n async (action: LoadPage<T>) => {\n const res = await get(route, action.params, opts);\n console.log(\"Loaded page with params\", action.params);\n const itemVals = getItems(res);\n const ival = { $push: itemVals };\n const nextLength = state.items.length + itemVals.length;\n const count = getCount(res);\n console.log(state.items);\n // if (state.isLoadingPage == null) {\n // // We have externally cancelled this request (by e.g. moving to a new results set)\n // console.log(\"Loading cancelled\")\n // return\n // }\n\n let p1: QueryParams = getNextParams(res, params);\n let hasNextParams = p1 != null;\n console.log(\"Next page parameters\", p1);\n\n action.dispatch({\n type: \"update-state\",\n spec: {\n items: ival,\n // @ts-ignore\n scrollParams: { $set: p1 },\n pageIndex: { $set: state.pageIndex + 1 },\n count: { $set: count },\n hasMore: {\n $set: hasMore(res) && itemVals.length > 0 && hasNextParams,\n },\n isLoadingPage: { $set: null },\n },\n });\n },\n [state.items, route, params, opts]\n );\n\n const loadMore = useCallback(() => {\n dispatch({\n type: \"load-page\",\n params: state.scrollParams,\n dispatch,\n // @ts-ignore\n callback: loadPage,\n });\n }, [state.scrollParams, loadPage, route, params, opts]);\n\n const isInitialRender = useRef(true);\n const loadInitialData = useCallback(\n function () {\n // Don't run on initial render\n if (isInitialRender.current) {\n isInitialRender.current = false;\n return;\n }\n console.log(\"Resetting to initial data\");\n /*\n Get the initial dataset\n */\n // const success = await get(route, params, opts);\n // parseResponse(success, true)\n //if (state.items.length == 0 && state.isLoadingPage == null) return\n dispatch({ type: \"update-state\", spec: { $set: initialState } });\n //await loadNext(0)\n },\n [isInitialRender, route, params, opts]\n );\n\n useEffect(loadInitialData, [props.route, props.params]);\n\n if (state == null) return null;\n\n //useAsyncEffect(getInitialData, [route, params]);\n\n //const showLoader = state.isLoadingPage != null && state.items.length > 0\n\n const data = state.items;\n const isLoading = state.isLoadingPage != null;\n const isEmpty = data.length == 0 && !isLoading;\n const isFinished = !state.hasMore && !isLoading;\n const totalCount = props.totalCount ?? state.count;\n\n return h(\n InfiniteScroll,\n {\n pageStart: -1,\n loadMore,\n hasMore: state.hasMore && state.isLoadingPage == null,\n loader: placeholder,\n useWindow: true,\n className,\n },\n [\n h.if(isEmpty)(emptyPlaceholder),\n h.if(!isEmpty)(IndexingProvider, { totalCount, indexOffset: 0 }, [\n h(\n resultsComponent,\n { data },\n data.map((d, i) => {\n return h(itemComponent, { key: i, data: d, index: i });\n })\n ),\n // @ts-ignore\n h.if(isLoading)(loadingPlaceholder, {\n totalCount,\n scrollParams: state.scrollParams,\n pageIndex: state.pageIndex,\n loadedCount: data.length,\n perPage,\n }),\n // @ts-ignore\n h.if(isFinished)(finishedPlaceholder, { totalCount }),\n ]),\n ]\n );\n}\n\nInfiniteScrollView.defaultProps = {\n hasMore(a, b) {\n return true;\n },\n getItems(d) {\n return d;\n },\n getCount(d) {\n return null;\n },\n getNextParams(response, params) {\n const lastPage = params.page ?? 0;\n return { ...params, page: lastPage + 1 };\n },\n placeholder: h(Spinner),\n};\n\nexport { InfiniteScrollView };\n","import h from \"@macrostrat/hyper\";\nimport { Button, Intent, Spinner } from \"@blueprintjs/core\";\nimport classNames from \"classnames\";\n\nconst SaveButton = function (props) {\n let { className, inProgress, disabled, ...rest } = props;\n className = classNames(className, \"save-button\");\n let icon: React.ReactNode | string = \"floppy-disk\";\n if (inProgress) {\n icon = h(Spinner, { size: 20 });\n disabled = true;\n }\n\n return h(Button, {\n icon,\n intent: Intent.SUCCESS,\n className,\n disabled,\n ...rest,\n });\n};\n\nconst CancelButton = function (props) {\n let { className, ...rest } = props;\n className = classNames(className, \"cancel-button\");\n\n return h(Button, {\n intent: Intent.WARNING,\n className,\n ...rest,\n });\n};\n\nconst EditButton = function (props) {\n let { isEditing, intent, icon, className, ...rest } = props;\n if (isEditing) {\n if (intent == null) {\n intent = null;\n }\n if (icon == null) {\n icon = \"tick\";\n }\n } else {\n if (intent == null) {\n intent = Intent.PRIMARY;\n }\n if (icon == null) {\n icon = \"edit\";\n }\n }\n\n className = classNames(className, \"edit-button\");\n\n return h(Button, {\n icon,\n intent,\n className,\n ...rest,\n });\n};\n\nexport { SaveButton, EditButton, CancelButton };\nexport * from \"./delete-button\";\n","import { useState, ReactNode } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Intent, Button, ButtonProps, Alert } from \"@blueprintjs/core\";\n\ninterface P extends ButtonProps {\n handleDelete(): void;\n alertContent?: ReactNode;\n itemDescription?: ReactNode;\n}\n\nfunction DeleteButton(props: P) {\n let {\n handleDelete = () => {},\n alertContent,\n itemDescription = \"this item\",\n ...rest\n } = props;\n const [alertIsShown, setIsShown] = useState(false);\n\n alertContent =\n alertContent ??\n h([\"Are you sure you want to delete \", itemDescription, \"?\"]);\n\n const onCancel = (e) => {\n setIsShown(false);\n e.stopPropagation();\n };\n\n const onClick = (e) => {\n setIsShown(true);\n e.stopPropagation();\n };\n\n const intent = Intent.DANGER;\n const icon = \"trash\";\n\n return h([\n h(Button, { onClick, icon, intent, ...rest }),\n h(\n Alert,\n {\n isOpen: alertIsShown,\n cancelButtonText: \"Cancel\",\n confirmButtonText: \"Delete\",\n icon,\n intent,\n onCancel,\n onConfirm: (e) => {\n handleDelete();\n onCancel(e);\n },\n },\n alertContent\n ),\n ]);\n}\n\nexport { DeleteButton };\n","// This component should be refactored into a shared UI component\n// @ts-nocheck\nimport { Component } from \"react\";\nimport h, { classed } from \"@macrostrat/hyper\";\nimport { Button, Collapse } from \"@blueprintjs/core\";\n//import \"./main.sass\";\n\nconst HeaderButton = classed(Button, \"ms-header-button\");\n\ntype P = {\n storageID?: string;\n title: string;\n headerRight: React.ReactNode;\n};\n\nclass CollapsePanel extends Component<P, { isOpen: boolean }> {\n static defaultProps = {\n title: \"Panel\",\n // `storageID` prop allows storage of state in\n // localStorage or equivalent.\n storageID: null,\n };\n constructor(props) {\n super(props);\n this.state = { isOpen: false };\n }\n\n componentWillMount() {\n // Set open state from local storage if it is available\n const { storageID } = this.props;\n if (storageID == null) {\n return;\n }\n const isOpen = this.savedState()[storageID];\n if (isOpen == null) {\n return;\n }\n return this.setState({ isOpen });\n }\n\n /*\n Next functions are for state management\n across pages, if storageID prop is passed\n */\n savedState() {\n try {\n const st = window.localStorage.getItem(\"collapse-panel-state\");\n return JSON.parse(st) || {};\n } catch (error) {\n return {};\n }\n }\n\n checkLocalStorage() {\n // Set open state from local storage if it is available\n const { storageID } = this.props;\n if (storageID == null) {\n return;\n }\n let isOpen = this.savedState()[storageID] || null;\n if (isOpen == null) {\n isOpen = false;\n }\n return this.setState({ isOpen });\n }\n\n componentDidUpdate(prevProps, prevState) {\n // Refresh object in local storage\n const { storageID } = this.props;\n if (storageID == null) {\n return;\n }\n const { isOpen } = this.state;\n if (isOpen === prevState.isOpen) {\n return;\n }\n const s = this.savedState();\n s[storageID] = isOpen;\n const j = JSON.stringify(s);\n return window.localStorage.setItem(\"collapse-panel-state\", j);\n }\n\n render() {\n let { title, children, storageID, headerRight, ...props } = this.props;\n const { isOpen } = this.state;\n\n const icon = isOpen ? \"collapse-all\" : \"expand-all\";\n const onClick = () => this.setState({ isOpen: !isOpen });\n\n if (headerRight == null) {\n headerRight = null;\n }\n\n return h(\"div.collapse-panel\", props, [\n h(\"div.panel-header\", [\n h(HeaderButton, { icon, minimal: true, onClick, fill: true }, [\n h(\"h2\", title),\n h(\"span.expander\"),\n ]),\n headerRight,\n ]),\n h(Collapse, { isOpen }, children),\n ]);\n }\n}\n\nexport { CollapsePanel };\n","import h from \"@macrostrat/hyper\";\nimport classNames from \"classnames\";\n\nfunction LinkCard(props) {\n let {\n linkComponent = \"a\",\n to,\n href,\n className,\n elevation = 0,\n ...rest\n } = props;\n\n className = classNames(\n \"link-card\",\n \"bp4-card\",\n `bp4-elevation-${elevation}`,\n className\n );\n\n if (linkComponent == \"a\" && href == null) href = to;\n return h(linkComponent, { to, href, className, ...rest });\n}\n\nexport { LinkCard };\n","// @ts-nocheck\n//import \"./main.sass\";\nimport { Component } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Tag } from \"@blueprintjs/core\";\nimport Dropzone from \"react-dropzone\";\nimport classNames from \"classnames\";\n\nconst FileListItem = function (props) {\n const { file } = props;\n return h(Tag, { icon: \"document\" }, file.name);\n};\n\nconst FileList = function (props) {\n let { files, placeholder } = props;\n if (placeholder == null) {\n placeholder = \"Choose file...\";\n }\n if (files == null || !(files.length > 0)) {\n return placeholder;\n }\n return h(\n \"div.files\",\n files.map((file) => h(FileListItem, { file }))\n );\n};\n\ninterface FileUploadProps {\n files: any[];\n onAddFile(): void;\n onCancel(): void;\n}\n\nclass FileUploadComponent extends Component<FileUploadProps> {\n static defaultProps = {\n onAddFile() {},\n onCancel() {},\n };\n\n constructor(props) {\n super(props);\n this.renderDropzone = this.renderDropzone.bind(this);\n }\n\n renderDropzone({ getRootProps, getInputProps, isDragActive }) {\n const { files } = this.props;\n const rootProps = getRootProps();\n const className = classNames(\"file-upload\", {\n \"dropzone-active\": isDragActive,\n });\n const inputProps = getInputProps();\n inputProps.style = {};\n inputProps.className = \"bp4-large\";\n let msg = \"Drop files here\";\n if (!isDragActive) {\n msg += \", or click to upload\";\n }\n\n return h(\"div\", { className, ...rootProps }, [\n h(\"label.bp4-file-input.bp4-large\", [\n h(\"input\", inputProps),\n h(\"div.bp4-file-upload-input\", [\n h(FileList, { files, placeholder: msg }),\n ]),\n ]),\n ]);\n }\n\n render() {\n return h(\n Dropzone,\n {\n onDrop: this.props.onAddFile,\n onFileDialogCancel: this.props.onCancel,\n },\n this.renderDropzone\n );\n }\n}\n\nexport { FileUploadComponent };\n","import { Component } from \"react\";\nimport { findDOMNode } from \"react-dom\";\nimport h from \"@macrostrat/hyper\";\n\ntype ConfinedImageProps = {\n maxHeight?: number | null;\n maxWidth?: number | null;\n src: string;\n};\n\ntype ConfinedImageState = {\n imageSize?: {\n width: number;\n height: number;\n };\n};\n\nclass ConfinedImage extends Component<ConfinedImageProps, ConfinedImageState> {\n constructor(props) {\n super(props);\n this.state = { imageSize: null };\n }\n\n render() {\n let { maxHeight, maxWidth, src } = this.props;\n const { imageSize } = this.state;\n if (maxHeight == null) {\n maxHeight = 200;\n }\n if (maxWidth == null) {\n maxWidth = 200;\n }\n if (imageSize != null) {\n if (maxHeight > imageSize.height) {\n maxHeight = imageSize.height;\n }\n if (maxWidth > imageSize.width) {\n maxWidth = imageSize.width;\n }\n }\n\n const imgStyle = {\n maxHeight,\n maxWidth,\n };\n\n const style = { maxHeight, maxWidth };\n return h(\"div.image-container\", { style }, [\n h(\"img\", { src, style: imgStyle }),\n ]);\n }\n\n componentDidMount() {\n const el = findDOMNode(this);\n // @ts-ignore\n const img = el.querySelector(\"img\");\n return (img.onload = () => {\n const height = img.naturalHeight / 2;\n const width = img.naturalWidth / 2;\n return this.setState({ imageSize: { height, width } });\n });\n }\n}\n\nexport { ConfinedImage };\n","// @ts-nocheck\nimport { Component, createContext, ReactElement, useContext } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { DateInput } from \"@blueprintjs/datetime\";\nimport { EditableText } from \"@blueprintjs/core\";\nimport { EditButton, DeleteButton } from \"./buttons\";\nimport { StatefulComponent } from \"./util\";\nimport classNames from \"classnames\";\nimport update, { Spec } from \"immutability-helper\";\n\nimport \"@blueprintjs/datetime/lib/css/blueprint-datetime.css\";\n\nconst ModelEditorContext = createContext<any>({});\n\nfunction ModelEditButton(props): ReactElement {\n const { isEditing, actions } = useContext(ModelEditorContext);\n return h(EditButton, {\n isEditing,\n onClick: actions.toggleEditing,\n ...props,\n });\n}\n\ninterface ModelEditorProps<T> {\n model: T;\n canEdit: boolean;\n isEditing: boolean;\n persistChanges(v: T, spec: Spec<T>): void;\n}\n\ninterface ModelEditorState<T> {\n isEditing: boolean;\n isPersisting: boolean | null;\n error: any | null;\n model: T;\n initialModel: T;\n}\n\nclass ModelEditor<T> extends StatefulComponent<\n ModelEditorProps<T>,\n ModelEditorState<T>\n> {\n static defaultProps = {\n canEdit: true,\n };\n constructor(props) {\n super(props);\n this.getValue = this.getValue.bind(this);\n this.hasChanges = this.hasChanges.bind(this);\n this.onChange = this.onChange.bind(this);\n this.toggleEditing = this.toggleEditing.bind(this);\n this.persistChanges = this.persistChanges.bind(this);\n this.onPersistChanges = this.onPersistChanges.bind(this);\n this.state = {\n isEditing: props.isEditing || false,\n isPersisting: null,\n error: null,\n model: props.model,\n initialModel: props.model,\n };\n }\n\n render(): ReactElement {\n const { model } = this.state;\n const { canEdit } = this.props;\n const isEditing = this.state.isEditing && canEdit;\n const actions = (() => {\n let onChange, persistChanges, toggleEditing, updateState;\n return ({ onChange, toggleEditing, updateState, persistChanges } = this);\n })();\n const value = {\n actions,\n model,\n isEditing,\n canEdit,\n hasChanges: this.hasChanges,\n };\n return h(ModelEditorContext.Provider, { value }, this.props.children);\n }\n\n getValue(field) {\n return this.state.model[field];\n }\n\n hasChanges(field) {\n if (field == null) {\n return this.state.initialModel !== this.state.model;\n }\n return this.state.initialModel[field] !== this.state.model[field];\n }\n\n onChange(field) {\n return (value) => {\n // @ts-ignore\n return this.updateState({ model: { [field]: { $set: value } } });\n };\n }\n\n toggleEditing() {\n const spec: any = { $toggle: [\"isEditing\"] };\n if (this.state.isEditing) {\n spec.model = { $set: this.state.initialModel };\n }\n return this.updateState(spec);\n }\n\n onPersistChanges() {\n return this.persistChanges(null);\n }\n\n async persistChanges(spec: any | undefined) {\n const { persistChanges } = this.props;\n // Persist changes expects a promise\n\n let updatedModel = this.state.model;\n if (spec != null) {\n // If changeset is provided, we need to integrate\n // it before proceeding\n console.log(spec);\n updatedModel = update(this.state.model, spec);\n }\n console.log(updatedModel);\n\n let ret = null;\n if (persistChanges == null) {\n return null;\n }\n try {\n this.updateState({ isPersisting: { $set: true } });\n\n // Compute a shallow changeset of the model fields\n const changeset: any = {};\n for (let k in updatedModel) {\n const v = updatedModel[k];\n if (v === this.state.initialModel[k]) {\n continue;\n }\n changeset[k] = v;\n }\n\n ret = await persistChanges(updatedModel, changeset);\n } catch (err) {\n console.error(err);\n } finally {\n spec = { isPersisting: { $set: false } };\n\n if (ret != null) {\n // @ts-ignore\n const newModel = update(this.state.initialModel, { $merge: ret });\n console.log(newModel);\n spec.model = { $set: newModel };\n spec.initialModel = { $set: newModel };\n }\n this.updateState(spec);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps == null) {\n return;\n }\n if (prevProps === this.props) {\n return;\n }\n const spec: any = {};\n if (\n this.props.isEditing !== prevProps.isEditing &&\n this.props.isEditing !== this.state.isEditing\n ) {\n spec.isEditing = { $set: this.props.isEditing };\n }\n if (this.props.model !== prevProps.model) {\n spec.initialModel = { $set: this.props.model };\n if (!this.props.isEditing) {\n // If we aren't in edit mode, we want to propagate changes into the model\n spec.model = { $set: this.props.model };\n }\n }\n return this.updateState(spec);\n }\n}\n\nfunction EditableMultilineText(props: any): React.ReactNode {\n let { field, className } = props;\n const { actions, model, isEditing } = useContext(ModelEditorContext);\n let value = model[field];\n const onChange = actions.onChange(field);\n className = classNames(className, `field-${field}`);\n\n if (isEditing) {\n value = h(EditableText, {\n placeholder: `Edit ${field}`,\n multiline: true,\n className,\n onChange,\n value,\n });\n }\n return h(\"div.text\", { className }, value);\n}\n\nclass EditableDateField extends Component<any, any> {\n static contextType = ModelEditorContext;\n render() {\n const { field } = this.props;\n const { actions, model, isEditing } = this.context;\n const value = model[field];\n if (!isEditing) {\n return h(\"div.date-input.disabled\", value);\n }\n return h(DateInput, {\n className: \"date-input\",\n value: new Date(value),\n formatDate: (date) => date.toLocaleDateString(),\n placeholder: \"MM/DD/YYYY\",\n showActionsBar: true,\n onChange: actions.onChange(field),\n parseDate(d) {\n return new Date(d);\n },\n });\n }\n}\n\nconst useModelEditor = () => useContext(ModelEditorContext);\n\nexport {\n ModelEditor,\n ModelEditorContext,\n ModelEditButton,\n EditableMultilineText,\n EditableDateField,\n useModelEditor,\n};\n","import { Toaster } from \"@blueprintjs/core\";\nimport h from \"@macrostrat/hyper\";\nimport {\n createContext,\n useRef,\n useState,\n useContext,\n RefObject,\n useEffect,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport type { IToasterProps, ToasterInstance } from \"@blueprintjs/core\";\n\n// We might want to refactor this\nfunction createAppToaster() {\n return Toaster.create();\n}\n\ntype ContextualToasterProps = Omit<IToasterProps, \"ref\" | \"usePortal\"> & {};\n\nexport type ToasterContextProps = ContextualToasterProps & {\n children?: React.ReactNode;\n toasts?: React.ReactNode;\n containerRef?: RefObject<HTMLElement>;\n};\n\nconst ToasterCtx = createContext<ToasterInstance>(null);\n\nfunction ContextualToaster({ containerRef, setToaster, ...rest }) {\n const toaster = h(Toaster, {\n usePortal: false,\n ref: (t) => setToaster(t),\n ...rest,\n });\n if (containerRef?.current == null) {\n return toaster;\n }\n return createPortal(toaster, containerRef.current);\n}\n\nfunction ToasterContext(props: ToasterContextProps) {\n const { children, toasts, containerRef, ...rest } = props;\n const [toaster, setToaster] = useState<ToasterInstance>(null);\n\n return h(ToasterCtx.Provider, { value: toaster }, [\n h(ContextualToaster, { containerRef, setToaster, ...rest }, toasts),\n children,\n ]);\n}\n\nfunction useToaster(): ToasterInstance | null {\n return useContext(ToasterCtx);\n}\n\nexport { createAppToaster, ToasterContext, useToaster };\n","export * from \"./author-list\";\n","import h from \"@macrostrat/hyper\";\n\nconst Author = function (props) {\n const { name, highlight } = props;\n\n if (name === highlight) {\n return h(\"b.author\", name);\n }\n return h(\"span.author\", name);\n};\n\nexport interface AuthorListProps {\n names: string[];\n highlight?: string;\n limit?: number;\n}\n\nconst AuthorList = function (props: AuthorListProps) {\n const { names, highlight } = props;\n const A = (name) => h(Author, { name, highlight });\n\n if (!Array.isArray(names)) {\n return A(names);\n }\n\n const n = names.length;\n if (n === 0) {\n return null;\n }\n if (n === 1) {\n return A(names[0]);\n }\n\n const limit = props.limit ?? n;\n const truncated = n > limit;\n\n const penultimateIx = limit - 1;\n const L = [];\n for (const [i, name] of names.entries()) {\n L.push(A(name));\n L.push(i < penultimateIx && n != 2 ? \", \" : \" \");\n if (i === penultimateIx - 1 && n != 1 && !truncated) {\n L.push(\"and \");\n }\n if (i >= limit - 1 && truncated) {\n L.push(\"et al.\");\n break;\n }\n }\n\n return h(\"span.author-list\", L);\n};\n\nexport { AuthorList };\n","export * from \"./reference-card\";\n","// @ts-nocheck\nimport { Component } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Card, Classes } from \"@blueprintjs/core\";\n\nimport { APIResultView } from \"../api\";\nimport { LinkCard } from \"../link-card\";\nimport { AuthorList } from \"../citations\";\n\nconst VolumeNumber = function(props) {\n const { volume, number } = props;\n const _ = [];\n if (volume != null && volume !== \"\") {\n _.push(h(\"span.volume\", null, volume));\n }\n if (number != null && number !== \"\") {\n _.push(\"(\");\n _.push(h(\"span.number\", number));\n _.push(\")\");\n }\n if (_.length === 0) {\n return null;\n }\n _.push(\", \");\n return h(\"span\", null, _);\n};\n\nfunction InnerCard(props: { [k: string]: any }) {\n let { title, author, doi, journal, identifier, volume, number, year } = props;\n try {\n ({ id: doi } = identifier.find(d => d.type === \"doi\"));\n } catch (error) {\n doi = null;\n }\n\n const names = author.map(function(d) {\n const n = d.name.split(\", \");\n n.reverse();\n return n.join(\" \");\n });\n\n return h([\n h(AuthorList, { names, limit: 3 }),\n \", \",\n h(\"span.title\", title),\n \", \",\n h(\"span.journal\", journal),\n \", \",\n h(VolumeNumber, { volume, number }),\n h(\"span.year\", year),\n \", \",\n h(\"span.doi-title\", \"doi: \"),\n h(\"span.doi\", doi)\n ]);\n}\n\nfunction GeoDeepDiveSwatchInnerBare(props: any) {\n return h(Card, { interactive: false, className: \"gdd-article\" }, [\n // @ts-ignore\n h(InnerCard, props)\n ]);\n}\n\nclass GeoDeepDiveSwatch extends Component<any, any> {\n render() {\n let url;\n const { link, ...rest } = this.props;\n try {\n ({ url } = link.find(d => d.type === \"publisher\"));\n } catch (error) {\n url = null;\n }\n return h(\n LinkCard,\n {\n href: url,\n target: \"_blank\",\n className: \"gdd-article\"\n },\n // @ts-ignore\n h(InnerCard, rest)\n );\n }\n}\n\nfunction GeoDeepDiveRelatedTerms(props: { data: any[] }) {\n const { data } = props;\n return h([\n h(\"h1\", \"Related Terms\"),\n h(\n \"ul#related_terms\",\n data.map(item => h(\"li\", item[0]))\n )\n ]);\n}\n\nconst PlaceholderReference = () => {\n return h(\n Card,\n {\n className: `gdd-article ${Classes.SKELETON}`\n },\n \"word \".repeat(35)\n );\n};\n\nconst GDDReferenceCard = (props: { docid: string }) => {\n const { docid } = props;\n return h(\n APIResultView,\n {\n route: \"https://geodeepdive.org/api/articles\",\n params: { docid },\n\n opts: {\n unwrapResponse(res) {\n return res.success.data[0];\n },\n memoize: true\n },\n placeholder: PlaceholderReference\n },\n data => {\n try {\n return h(GeoDeepDiveSwatch, data);\n } catch (error) {\n return null;\n }\n }\n );\n};\n\nexport {\n GDDReferenceCard,\n GeoDeepDiveSwatch,\n GeoDeepDiveSwatchInnerBare,\n GeoDeepDiveRelatedTerms\n};\n","import h from \"@macrostrat/hyper\";\nimport { ReactElement } from \"react\";\n\nconst Markdown = ({ src, ...rest }): ReactElement =>\n h(\"div\", { dangerouslySetInnerHTML: { __html: src, ...rest } });\n\nconst HTML = Markdown;\n\nexport { Markdown, HTML };\n","export * from \"./slider\";\n","import {hyperStyled} from \"@macrostrat/hyper\";\nimport { useState, useEffect } from \"react\";\nimport {\n InputGroup,\n Button,\n ButtonGroup,\n Collapse,\n Slider,\n Card,\n Intent,\n FormGroup,\n ISliderProps,\n} from \"@blueprintjs/core\";\nimport { Spec } from \"immutability-helper\";\nimport classNames from \"classnames\";\nimport styles from \"./main.module.sass\";\n\nconst h = hyperStyled(styles);\n\nconst ControlledSlider = (props: ISliderProps) => {\n const [value, setValue] = useState<number>(props.value);\n const onChange = (v) => {\n setValue(v), props.onChange?.(v);\n };\n useEffect(() => setValue(props.value), [props.value]);\n\n return h(Slider, { ...props, onChange, value });\n};\n\nconst NullableSlider = (props: ISliderProps) => {\n let { value, showTrackFill, className, ...rest } = props;\n if (value == null) {\n value = rest.min ?? 0;\n showTrackFill = false;\n className = classNames(className, \"mui-slider-disabled\");\n }\n\n const handleChange = props.onRelease ?? props.onChange;\n const onClick = () => handleChange?.(null);\n\n return h(\"div.nullable-slider\", [\n h(ControlledSlider, { ...rest, className, value, showTrackFill }),\n h(\"div.controls\", [\n h(Button, {\n minimal: true,\n onClick,\n small: true,\n icon: \"cross\",\n disabled: props.value == null,\n intent: props.value == null ? null : Intent.DANGER,\n }),\n ]),\n ]);\n};\n\nexport { ControlledSlider, NullableSlider };\n",".mui-slider-disabled\n .bp4-slider-handle\n display: none\n\n.nullable-slider\n display: flex\n flex-direction: row\n align-items: center\n .bp4-slider\n flex-grow: 1\n margin-right: 1em\n margin-left: 1em\n .controls\n margin-top: -22px\n","import h from \"@macrostrat/hyper\";\nimport { ReactNode } from \"react\";\nimport { createContext, useState, useContext } from \"react\";\nimport update, { Spec } from \"immutability-helper\";\nimport { LocalStorage } from \"../util/local-storage\";\n\ninterface SettingsProviderProps {\n children: ReactNode;\n storageID?: string;\n}\n\n// Could rework this to use `constate` or similar\n\nfunction createSettingsContext<T extends object>(defaultValue: T) {\n /** Function that creates a context with an updateable settings object\n */\n const Context = createContext<T>(defaultValue);\n\n type SettingsUpdateSpec = Spec<T>;\n type Updater = (spec: SettingsUpdateSpec) => void;\n const UpdateContext = createContext<Updater | null>(null);\n\n const Provider = function (props: SettingsProviderProps & T) {\n /*\n A settings provider that can be used with LocalStorage\n */\n let { storageID, children, ...defaultSettings } = props;\n // Update from local storage\n let storage = null;\n console.log(\"Setting up SettingsProvider [ui-components]\");\n if (storageID != null) {\n // Merge initial options if set\n storage = new LocalStorage(storageID);\n const v = storage.get() || {};\n console.log(\"Loading from local storage\", v);\n // @ts-ignore\n defaultSettings = update(defaultSettings, { $merge: v });\n }\n\n // @ts-ignore\n const [settings, setState] = useState<T>(defaultSettings);\n const updateState = function (spec: SettingsUpdateSpec) {\n const newSettings = update(settings, spec);\n setState(newSettings);\n if (storage != null) {\n return storage.set(newSettings);\n }\n };\n\n return h(Context.Provider, { value: settings }, [\n h(UpdateContext.Provider, { value: updateState }, children),\n ]);\n };\n\n const useValue = () => useContext(Context);\n\n const useUpdater = (key: string | undefined) => {\n const updater = useContext(UpdateContext);\n if (key == null) return updater;\n //@ts-ignore\n return (spec: Spec<any>) => updater({ [key]: spec });\n };\n\n return [Provider, useValue, useUpdater];\n}\n\nconst [SettingsProvider, useSettings, useSettingsUpdater] =\n createSettingsContext<object>({});\n\n// Deprecated: this is kind of confusing\nconst updateSettings = function (func) {\n // Update settings using `immutability-helper` semantics\n //@ts-ignore\n const updater = useSettingsUpdater();\n return function () {\n //@ts-ignore\n return updater(func(...arguments));\n };\n};\n\nexport { SettingsProvider, useSettings, updateSettings, createSettingsContext };\n","// @ts-nocheck\nimport { Component, ReactNode } from \"react\";\nimport { Callout } from \"@blueprintjs/core\";\nimport h from \"@macrostrat/hyper\";\n\nfunction ErrorCallout(props) {\n const { error, title = \"Unknown error\" } = props;\n\n return h(\n Callout,\n {\n title,\n icon: \"error\",\n intent: \"danger\",\n },\n h(\n \"p\",\n null,\n props.description ?? error?.toString() ?? \"No description available\"\n )\n );\n}\n\ntype ErrorBoundaryProps = {\n description?: string;\n title?: string;\n fallback?: ReactNode;\n override?: boolean;\n onCatch?(error: Error, info: any): void;\n};\ntype ErrorBoundaryState = {\n error: Error | null;\n};\n\nclass ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error) {\n // Update state so the next render will show the fallback UI.\n return { error };\n }\n\n componentDidCatch(error, info) {\n // You can also log the error to an error reporting service\n console.log(error);\n this.props.onCatch?.(error, info);\n }\n\n render() {\n const { error } = this.state;\n const { override = false } = this.props;\n if (error != null || override) {\n if (this.props.fallback != null) return this.props.fallback;\n\n // You can render any custom fallback UI\n return h(ErrorCallout, {\n error,\n description:\n this.props.description ??\n error?.toString() ??\n \"No description available\",\n title: this.props.title ?? \"A rendering error has occured\",\n });\n }\n\n return this.props.children;\n }\n}\n\nexport { ErrorBoundary, ErrorCallout };\n","import {\n createPatternImage,\n loadImage,\n ImageDataFormat,\n} from \"./composite-image\";\nimport { memoize } from \"underscore\";\n\nconst vizBaseURL = \"https://visualization-assets.s3.amazonaws.com\";\nconst patternBaseURL = vizBaseURL + \"/geologic-patterns/png\";\nconst lineSymbolsURL = vizBaseURL + \"/geologic-line-symbols/png\";\n\nfunction _geologyPatternBaseURL(\n symbol: string | null,\n baseURL = patternBaseURL\n) {\n if (symbol == null) return null;\n return baseURL + `/${symbol}.png`;\n}\n\nasync function _geologyPatternURL(\n patternID: string | null,\n color = null,\n patternColor = null\n): Promise<string> {\n const url = _geologyPatternBaseURL(patternID);\n if (color == null && patternColor == null) {\n return url;\n }\n\n const img = (await createPatternImage(\n {\n patternURL: url,\n color,\n patternColor,\n },\n ImageDataFormat.Base64\n )) as string;\n return img;\n}\n\nconst geologyPatternURL = _geologyPatternURL;\n\nconst geologyPatternImage = async (...args) =>\n loadImage(await geologyPatternImage(...args));\n\nexport { geologyPatternURL, geologyPatternImage };\nexport * from \"./composite-image\";\n","interface PatternFillSpec {\n color: string;\n patternURL?: string;\n patternColor?: string;\n}\n\nfunction loadImage(url): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.addEventListener(\"load\", () => resolve(img));\n img.addEventListener(\"error\", (err) => reject(err));\n img.src = url;\n });\n}\n\nfunction recolorPatternImage(\n ctx: CanvasRenderingContext2D,\n img: HTMLImageElement,\n backgroundColor: string,\n color: string,\n backgroundAlpha = 1,\n alpha = 1\n) {\n // create hidden canvas\n ctx.drawImage(img, 0, 0, img.width, img.height);\n\n //ctx.fillStyle = imgColor;\n //ctx.fillRect(0, 0, 40, 40);\n\n // overlay using source-atop to follow transparency\n ctx.globalCompositeOperation = \"source-in\";\n //ctx.globalAlpha = 0.3;\n ctx.globalAlpha = alpha;\n ctx.fillStyle = color;\n ctx.fillRect(0, 0, img.width, img.height);\n\n ctx.globalCompositeOperation = \"destination-over\";\n\n //const map = ctx.getImageData(0, 0, img.width, img.height);\n\n ctx.globalAlpha = backgroundAlpha;\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(0, 0, img.width, img.height);\n\n //ctx.putImageData(map, 0, 0);\n\n // replace image source with canvas data\n return ctx;\n}\n\nfunction createSolidColorImage(ctx, imgColor, alpha = 1) {\n ctx.globalAlpha = alpha;\n ctx.fillStyle = imgColor;\n ctx.fillRect(0, 0, 40, 40);\n return ctx;\n //return ctx.getImageData(0, 0, 40, 40);\n}\n\nenum ImageDataFormat {\n HTMLImageData = \"image-data\",\n Base64 = \"base64\",\n}\n\nasync function createPatternImage(\n spec: PatternFillSpec,\n outputFormat = ImageDataFormat.HTMLImageData\n): Promise<ImageData | string> {\n let ctx;\n var canvas = document.createElement(\"canvas\");\n if (spec.patternURL == null) {\n canvas.width = 40;\n canvas.height = 40;\n ctx = createSolidColorImage(\n canvas.getContext(\"2d\"),\n spec.color ?? spec.patternColor\n );\n } else {\n const img = await loadImage(spec.patternURL);\n canvas.width = img.width;\n canvas.height = img.height;\n ctx = canvas.getContext(\"2d\");\n ctx = recolorPatternImage(\n ctx,\n img,\n spec.color,\n spec.patternColor ?? \"#000000\"\n );\n }\n switch (outputFormat) {\n case ImageDataFormat.HTMLImageData:\n return ctx.getImageData(0, 0, canvas.width, canvas.height);\n case ImageDataFormat.Base64:\n return canvas.toDataURL();\n }\n}\n\nexport { recolorPatternImage, createPatternImage, loadImage, ImageDataFormat };\n","import h from \"@macrostrat/hyper\";\nimport classNames from \"classnames\";\nimport { Collapse, Card, ICardProps, ICollapseProps } from \"@blueprintjs/core\";\n\ntype CollapseCardProps = ICardProps &\n Pick<ICollapseProps, \"isOpen\" | \"keepChildrenMounted\" | \"transitionDuration\">;\n\nexport function CollapseCard(props: CollapseCardProps) {\n /** Collapsible card taken from COSMOS visualizer */\n const {\n isOpen = true,\n keepChildrenMounted = true,\n transitionDuration = 500,\n className,\n children,\n ...rest\n } = props;\n return h(Collapse, { isOpen, keepChildrenMounted, transitionDuration }, [\n h(\"div.collapse-card-outer\", [\n h(\n Card,\n {\n elevation: 1,\n className: classNames(className, \"mui-collapse-card\"),\n ...rest,\n },\n h(\"div.inner\", null, children)\n ),\n ]),\n ]);\n}\n","import { hyperStyled } from \"@macrostrat/hyper\";\nimport { Button } from \"@blueprintjs/core\";\nimport styles from \"./main.module.sass\";\nimport React from \"react\";\n\nconst h = hyperStyled(styles);\n\ninterface PanelHeaderProps {\n title: string | null;\n onClose: () => void;\n allowTitleWrap?: boolean;\n children?: React.ReactNode;\n}\n\nconst PanelHeader = function (props: PanelHeaderProps) {\n const { title, onClose, children, allowTitleWrap = false } = props;\n return h(\"div.panel-header\", [\n h.if(title != null)(\n \"h1.title\",\n { className: allowTitleWrap ? null : \"overflow-hidden\" },\n title\n ),\n h.if(children != null)([h(\"div.expander\"), children, h(\"div.extra-space\")]),\n h(Button, { minimal: true, icon: \"cross\", onClick: onClose }),\n ]);\n};\n\nfunction MinimalModalPanel(props) {\n const { children, className, style, headerChildren, ...rest } = props;\n return h(\"div.panel-column\", [\n h(\"div.panel.minimal\", { className, style }, [\n h(PanelHeader, rest, headerChildren),\n h(\"div.panel-content\", null, children),\n ]),\n h(\"div.expander\"),\n ]);\n}\n\nexport interface ModalPanelProps {\n title: string | null;\n onClose: () => void;\n children?: React.ReactNode;\n headerChildren?: React.ReactNode;\n style?: object;\n minimal?: boolean;\n className?: string;\n}\n\nfunction ModalPanel(props: ModalPanelProps) {\n const {\n children,\n className,\n style,\n minimal = false,\n headerChildren = null,\n ...rest\n } = props;\n if (minimal) {\n return h(MinimalModalPanel, {\n ...rest,\n children,\n headerChildren,\n className,\n style,\n });\n }\n return h(\"div.panel-column\", [\n h(\"div.panel-container\", [\n h(\"div.panel-container-inner\", [\n h(\"div.panel-outer\", [\n h(\"div.panel\", { className, style }, [\n h(PanelHeader, rest, headerChildren),\n h(\"div.panel-content\", null, children),\n ]),\n h(\"div.expander\"),\n ]),\n ]),\n ]),\n ]);\n}\n\nconst ContentPanel = (props) => h(\"div.content-panel\", props);\n\nexport * from \"./draggable-overlay\";\nexport { ModalPanel, PanelHeader, ContentPanel };\n","\n$c1: rgb(16, 22, 26)\n\n.panel-header\n background-color: var(--panel-secondary-background-color, #eee)\n display: flex\n flex-direction: row\n justify-content: space-between\n align-items: center\n padding: 0.2em 0.6em\n border-bottom: 1px solid var(--panel-rule-color, #ddd)\n\n h1\n margin-bottom: 0.2em\n margin-top: 0.2em\n font-size: var(--panel-header-font-size, 1.2em)\n &.overflow-hidden\n white-space: nowrap\n overflow: hidden\n text-overflow: ellipsis\n\n // \\:global(.bp4-button)\n // align-self: center\n\n:global(.bp4-dark)\n .panel, .content-panel\n $c2: rgb(255, 255, 255)\n box-shadow: 0 0 0 1px rgba($c2, 0.2), 0 0 0 rgba($c2, 0), 0 1px 1px rgba($c2, 0.4)\n\n.expander\n flex-grow: 1\n\n.panel-column\n flex-grow: 1\n position: relative\n\n.panel,.content-panel\n overflow: hidden\n box-shadow: 0 0 0 1px rgba($c1, 0.2), 0 0 0 rgba($c1, 0), 0 1px 1px rgba($c1, 0.4)\n border-radius: 6px\n background-color: var(--panel-background-color, #fff)\n display: flex\n flex-direction: column\n\n.content-panel\n padding: 0.5em\n\n.panel\n flex-shrink: 1\n height: 100%\n max-height: 100vh\n\n &.minimal\n border-radius: 0\n //box-shadow: none\n .panel-content\n padding: 0\n border-radius: 0\n\n.panel-content\n overflow-y: scroll\n padding: 1em\n flex: 1\n &>:last-child\n margin-bottom: 1em\n\n.panel-outer\n display: flex\n flex-direction: column\n position: relative\n max-height: 100%\n\n.panel-container-inner\n position: absolute\n top: 2em\n bottom: 2em\n left: 1em\n right: 1em\n display: flex\n flex-direction: column\n .expander\n flex: 1\n\n.extra-space\n width: 1em\n\n.panel-container\n position: sticky\n height: 100vh\n top: 0\n display: flex\n flex-direction: column\n","import h from \"@macrostrat/hyper\";\nimport { useState, useEffect, ReactChild, ReactElement } from \"react\";\nimport { Overlay, Card } from \"@blueprintjs/core\";\n\ninterface DraggableOverlayPropsI {\n open: boolean;\n children: ReactChild;\n HeaderComponent: ReactElement<any>;\n className: string;\n cardStyles: object;\n headerStyles: object;\n top: number;\n left: number;\n}\n\nfunction DraggableOverlay(props: DraggableOverlayPropsI) {\n const {\n open,\n children,\n headerStyles = {},\n className = \"overlay\",\n cardStyles = {},\n top = 100,\n left = 20,\n } = props;\n\n const [state, setState] = useState({ top, left });\n const [offset, setOffset] = useState({ rel_x: 0, rel_y: 0 });\n const [dragging, setDragging] = useState(false);\n\n useEffect(() => {\n //setup event listeners\n if (!dragging) return;\n document.addEventListener(\"mousemove\", onMouseMove, true);\n document.addEventListener(\"mouseup\", onMouseUp, true);\n return () => {\n document.removeEventListener(\"mouseup\", onMouseUp, true);\n document.removeEventListener(\"mousemove\", onMouseMove, true);\n };\n }, [dragging]);\n\n const onMouseDown = (e) => {\n if (e.button !== 0) return;\n setDragging(true);\n setOffset(getOffest(e));\n };\n\n const onMouseUp = (e) => {\n setDragging(false);\n e.stopPropagation();\n e.preventDefault();\n };\n\n const getOffest = (e) => {\n const rel_x = e.pageX - state.left;\n const rel_y = e.pageY - state.top;\n return { rel_x, rel_y };\n };\n\n const onMouseMove = (e) => {\n if (dragging) {\n const { rel_x, rel_y } = offset;\n const left_ = e.pageX - rel_x;\n const top_ = e.pageY - rel_y;\n setState({ top: top_, left: left_ });\n }\n e.stopPropagation();\n e.preventDefault();\n };\n\n const overlayProperties = {\n autoFocus: true,\n canEscapeKeyClose: true,\n canOutsideClickClose: true,\n enforceFocus: false,\n hasBackdrop: false,\n usePortal: true,\n useTallContent: false,\n };\n\n const style = { top: `${state.top}px`, left: `${state.left}px` };\n\n return h(Overlay, { isOpen: open, ...overlayProperties }, [\n h(`div.${className}`, { styles: style }, [\n h(Card, { style: cardStyles }, [\n h(\"div\", { onMouseDown, styles: headerStyles }, [\n props.HeaderComponent,\n ]),\n children,\n ]),\n ]),\n ]);\n}\n\nexport { DraggableOverlay };\n","import {\n Navbar,\n Button,\n ButtonGroup,\n NavbarGroup,\n Alignment,\n Intent,\n Position,\n} from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useReducer, useEffect } from \"react\";\nimport useElementDimensions from \"use-element-dimensions\";\nimport { useContext, createContext } from \"react\";\nimport classNames from \"classnames\";\nconst h = hyper.styled(styles);\n\ninterface ThreeColumnLayoutProps {\n contextPanel: React.ReactNode;\n children: React.ReactNode;\n detailPanel: React.ReactNode;\n footer?: React.ReactNode;\n panelState: {\n [key in SidePanel]?: boolean;\n };\n title?: string;\n twoPanelBreakpoint?: number;\n preferredMainWidth?: number;\n expandedContext?: boolean;\n contextButtonPlacement?: \"left\" | \"right\";\n headerActions: any;\n}\n\nenum SidePanel {\n Context = \"context\",\n Detail = \"detail\",\n}\n\ntype PanelState = {\n [key in SidePanel]: boolean;\n};\ninterface LayoutState {\n panelState: PanelState;\n keyPanel: SidePanel | null;\n isReduced: boolean;\n}\n\ntype LayoutAction =\n | { type: \"toggle-panel\"; panel: SidePanel }\n | { type: \"show-panel\"; panel: SidePanel; shouldShow: boolean }\n | { type: \"set-is-reduced\"; value: boolean };\n\nfunction openPanels(panelState: PanelState): Set<SidePanel> {\n const keys = Object.keys(panelState) as SidePanel[];\n return new Set(keys.filter((k) => panelState[k]));\n}\n\nconst LayoutDispatchContext = createContext<React.Dispatch<LayoutAction>>(\n (a) => a\n);\n\nfunction useLayoutDispatch() {\n return useContext(LayoutDispatchContext);\n}\n\nfunction layoutReducer(state: LayoutState, action: LayoutAction) {\n let panel: SidePanel;\n let shouldShow: boolean;\n switch (action.type) {\n case \"set-is-reduced\":\n return { ...state, isReduced: action.value };\n case \"show-panel\":\n shouldShow = action.shouldShow;\n case \"toggle-panel\":\n panel = action.panel;\n shouldShow ??= !state.panelState[panel];\n const panelState = {\n ...state.panelState,\n [panel]: shouldShow,\n };\n let keyPanel = state.keyPanel;\n if (shouldShow) {\n keyPanel = panel;\n } else if (state.keyPanel == panel) {\n keyPanel = null;\n }\n const currentPanels = openPanels(panelState);\n if (currentPanels.size == 1) {\n keyPanel = currentPanels.values().next().value;\n }\n return { ...state, panelState, keyPanel };\n }\n}\n\nfunction buttonProps(\n panel: SidePanel,\n desiredState: PanelState,\n actualState: PanelState,\n dispatch: React.Dispatch<LayoutAction>\n) {\n const active = desiredState[panel];\n const isActuallyShown = active && active == actualState[panel];\n return {\n active,\n minimal: true,\n intent: isActuallyShown ? Intent.PRIMARY : null,\n onClick() {\n dispatch({ type: \"show-panel\", panel, shouldShow: !isActuallyShown });\n },\n };\n}\n\nfunction ThreeColumnLayout(props: ThreeColumnLayoutProps) {\n const {\n contextPanel,\n detailPanel,\n title = \"User interface\",\n children,\n footer,\n panelState = {},\n twoPanelBreakpoint = 800,\n preferredMainWidth,\n expandedContext = false,\n headerActions = null,\n contextButtonPlacement = Position.LEFT,\n ...rest\n } = props;\n\n let keyPanel = null;\n if (panelState.detail) {\n keyPanel = SidePanel.Detail;\n } else if (panelState.context) {\n keyPanel = SidePanel.Context;\n }\n\n const [layoutState, dispatch] = useReducer(\n layoutReducer,\n {\n panelState: { context: true, ...panelState },\n keyPanel,\n isReduced: false,\n },\n undefined\n );\n\n const [size, ref] = useElementDimensions();\n const [mainSize, mainRef] = useElementDimensions();\n\n const panelDesiredState = { ...layoutState.panelState, ...panelState };\n\n let panelActualState = { ...panelDesiredState };\n const nonKeyPanel =\n layoutState.keyPanel == SidePanel.Context\n ? SidePanel.Detail\n : SidePanel.Context;\n\n // We'd like the main panel to take up at least half the screen width\n const preferredMainPanelWidth =\n preferredMainWidth ??\n Math.max((size?.width ?? 0) * 0.5, twoPanelBreakpoint * 0.66);\n\n if (layoutState.isReduced) {\n panelActualState[nonKeyPanel] = false;\n }\n\n if (expandedContext) {\n panelActualState[SidePanel.Context] = true;\n panelActualState[SidePanel.Detail] = false;\n }\n\n useEffect(() => {\n if (openPanels(panelActualState).size <= 1) {\n return;\n }\n // Decide whether we need to reduce the layout ONLY when both panels are open\n const shouldReduce = mainSize?.width < preferredMainPanelWidth;\n dispatch({ type: \"set-is-reduced\", value: shouldReduce });\n }, [mainSize]);\n\n const contextButton = h.if(contextPanel != null)(Button, {\n icon: \"projects\",\n ...buttonProps(\n SidePanel.Context,\n panelDesiredState,\n panelActualState,\n dispatch\n ),\n });\n\n return h(\n LayoutDispatchContext.Provider,\n { value: dispatch },\n h(\n \"div.user-interface\",\n {\n ref,\n ...rest,\n },\n [\n h(Navbar, [\n h(Navbar.Group, [\n h.if(contextButtonPlacement == \"left\")([\n contextButton,\n h(\"div.spacer\"),\n ]),\n h(Navbar.Heading, null, title),\n ]),\n h(NavbarGroup, { align: Alignment.RIGHT }, [\n headerActions,\n h(\"div.spacer\"),\n h(ButtonGroup, { minimal: true }, [\n h.if(contextButtonPlacement == \"right\")([contextButton]),\n h.if(detailPanel != null)(Button, {\n icon: \"properties\",\n ...buttonProps(\n SidePanel.Detail,\n panelDesiredState,\n panelActualState,\n dispatch\n ),\n }),\n ]),\n ]),\n ]),\n h(\"div.three-column\", [\n h.if(contextPanel != null && panelActualState.context)(\n \"div.column.context-column\",\n { className: classNames({ expanded: expandedContext ?? false }) },\n contextPanel\n ),\n h.if(children != null)(\n \"div.column.main-column\",\n { ref: mainRef },\n children\n ),\n h.if(detailPanel != null && panelActualState.detail)(\n \"div.column.detail-column\",\n null,\n detailPanel\n ),\n ]),\n h.if(footer != null)(\"footer\", null, footer),\n ]\n )\n );\n}\n\nThreeColumnLayout.Panels = SidePanel;\n\nexport { ThreeColumnLayout, ThreeColumnLayoutProps, useLayoutDispatch };\n",".user-interface\n position: absolute\n width: 100%\n height: 100%\n top: 0\n display: flex\n flex-direction: column\n overflow: hidden\n\n.spacer\n width: 1em\n\n.three-column\n display: flex\n flex: 1\n flex-direction: row\n position: relative\n height: 100%\n overflow: hidden\n &>div\n min-width: 50px\n height: 100%\n //max-width: 50%\n position: relative\n overflow-y: scroll\n flex-shrink: 1\n &.main-column\n flex-grow: 1\n max-width: 100%\n &.context-column.expanded\n flex-grow: 2\n max-width: 100%","import h from \"@macrostrat/hyper\";\nimport {\n formatValue,\n normalizeLng,\n metersToFeet,\n formatCoordForZoomLevel,\n} from \"./utils\";\n\nexport function ValueWithUnit(props) {\n const { value, unit } = props;\n return h(\"span.value-with-unit\", [\n h(\"span.value\", [value]),\n h(\"span.spacer\", [\" \"]),\n h(\"span.unit\", [unit]),\n ]);\n}\n\nexport function DegreeCoord(props) {\n const { value, labels, precision = 3, format = formatValue } = props;\n const direction = value < 0 ? labels[1] : labels[0];\n\n return h(ValueWithUnit, {\n value: format(Math.abs(value), precision) + \"°\",\n unit: direction,\n });\n}\n\nexport interface LngLatProps {\n /** Map position */\n position: [number, number] | { lat: number; lng: number };\n className?: string;\n /** Zoom level (used to infer coordinate rounding if provided) */\n zoom?: number | null;\n /** Number of decimal places to round coordinates to */\n precision: number | null;\n /** Function to format coordinates */\n format?: (val: number, precision: number) => string;\n}\n\nexport function LngLatCoords(props: LngLatProps) {\n /** Formatted geographic coordinates */\n const { position, className, precision, zoom } = props;\n let { format } = props;\n if (position == null) {\n return null;\n }\n let lat, lng;\n if (Array.isArray(position)) {\n [lng, lat] = position;\n } else {\n ({ lat, lng } = position);\n }\n\n if (zoom != null && format == null && precision == null) {\n format = (val, _) => formatCoordForZoomLevel(val, zoom);\n }\n\n return h(\"div.lnglat-container\", { className }, [\n h(\"span.lnglat\", [\n h(DegreeCoord, {\n value: lat,\n labels: [\"N\", \"S\"],\n precision,\n format,\n }),\n \", \",\n h(DegreeCoord, {\n value: normalizeLng(lng),\n labels: [\"E\", \"W\"],\n precision,\n format,\n }),\n ]),\n ]);\n}\n\nexport function Elevation(props) {\n /** Renders an elevation value in meters and a parenthetical conversion to feet. */\n const { elevation, className, includeFeet = true } = props;\n if (elevation == null) return null;\n return h(\"div.elevation\", { className }, [\n h(ValueWithUnit, { value: elevation, unit: \"m\" }),\n h.if(includeFeet)(\"span.secondary\", [\n \" (\",\n h(ValueWithUnit, { value: metersToFeet(elevation), unit: \"ft\" }),\n \")\",\n ]),\n ]);\n}\n","import { format } from \"d3-format\";\n\nexport function formatCoordForZoomLevel(val: number, zoom: number): string {\n if (zoom < 2) {\n return fmt1(val);\n } else if (zoom < 4) {\n return fmt2(val);\n } else if (zoom < 7) {\n return fmt3(val);\n }\n return fmt4(val);\n}\n\nexport function normalizeLng(lng) {\n // via https://github.com/Leaflet/Leaflet/blob/32c9156cb1d1c9bd53130639ec4d8575fbeef5a6/src/core/Util.js#L87\n return (((((lng - 180) % 360) + 360) % 360) - 180).toFixed(4);\n}\n\nexport const fmt4 = format(\".4~f\");\nexport const fmt3 = format(\".3~f\");\nexport const fmt2 = format(\".2~f\");\nexport const fmt1 = format(\".1~f\");\nexport const fmtInt = format(\".0f\");\n\nexport function formatValue(val: number, precision: number = 0): string {\n switch (precision) {\n case 4:\n return fmt4(val);\n case 3:\n return fmt3(val);\n case 2:\n return fmt2(val);\n case 1:\n return fmt1(val);\n case 0:\n return fmtInt(val);\n default:\n return fmt4(val);\n }\n}\n\nexport function metersToFeet(meters, precision = 0) {\n return (meters * 3.28084).toFixed(precision);\n}\n","// Import other components\nimport { Switch } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport { Spacer, useDarkMode, useStoredState } from \"@macrostrat/ui-components\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useCallback, useState, useEffect } from \"react\";\nimport { buildInspectorStyle, buildXRayStyle } from \"./xray\";\nimport { MapAreaContainer, PanelCard } from \"../container\";\nimport { FloatingNavbar, MapLoadingButton } from \"../context-panel\";\nimport { MapMarker } from \"../helpers\";\nimport { LocationPanel } from \"../location-panel\";\nimport { MapView } from \"../map-view\";\nimport styles from \"./main.module.sass\";\nimport { TileExtentLayer } from \"./tile-extent\";\nimport {\n FeaturePanel,\n FeatureSelectionHandler,\n TileInfo,\n} from \"./vector-tile-features\";\nimport { MapPosition } from \"@macrostrat/mapbox-utils\";\n\nexport enum MacrostratVectorTileset {\n Carto = \"carto\",\n CartoSlim = \"carto-slim\",\n IGCPOrogens = \"igcp-orogens\",\n}\n\nexport enum MacrostratRasterTileset {\n Carto = \"carto\",\n Emphasized = \"emphasized\",\n}\n\nexport const h = hyper.styled(styles);\n\nexport function DevMapPage({\n title = \"Map inspector\",\n headerElement = null,\n transformRequest = null,\n mapPosition = null,\n mapboxToken = null,\n overlayStyle = null,\n children,\n style,\n focusedSource = null,\n focusedSourceTitle = null,\n projection = null,\n}: {\n headerElement?: React.ReactElement;\n transformRequest?: mapboxgl.TransformRequestFunction;\n title?: string;\n style: mapboxgl.Style | string;\n children?: React.ReactNode;\n mapboxToken?: string;\n overlayStyle?: mapboxgl.Style | string;\n focusedSource?: string;\n focusedSourceTitle?: string;\n projection?: string;\n mapPosition?: MapPosition;\n}) {\n /* We apply a custom style to the panel container when we are interacting\n with the search bar, so that we can block map interactions until search\n bar focus is lost.\n We also apply a custom style when the infodrawer is open so we can hide\n the search bar on mobile platforms\n */\n\n const dark = useDarkMode();\n const isEnabled = dark?.isEnabled;\n\n if (mapboxToken != null) {\n mapboxgl.accessToken = mapboxToken;\n }\n\n style ??= isEnabled\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\n\n const [isOpen, setOpen] = useState(false);\n\n const [state, setState] = useStoredState(\"macrostrat:dev-map-page\", {\n showTileExtent: false,\n xRay: false,\n });\n const { showTileExtent, xRay } = state;\n\n const [actualStyle, setActualStyle] = useState(style);\n\n useEffect(() => {\n buildInspectorStyle(style, overlayStyle, {\n mapboxToken,\n inDarkMode: isEnabled,\n xRay,\n }).then(setActualStyle);\n }, [style, xRay, mapboxToken, isEnabled, overlayStyle]);\n\n const [inspectPosition, setInspectPosition] =\n useState<mapboxgl.LngLat | null>(null);\n\n const [data, setData] = useState(null);\n\n const onSelectPosition = useCallback((position: mapboxgl.LngLat) => {\n setInspectPosition(position);\n }, []);\n\n let detailElement = null;\n if (inspectPosition != null) {\n detailElement = h(\n LocationPanel,\n {\n onClose() {\n setInspectPosition(null);\n },\n position: inspectPosition,\n },\n [\n h(TileInfo, {\n feature: data?.[0] ?? null,\n showExtent: showTileExtent,\n setShowExtent() {\n setState({ ...state, showTileExtent: !showTileExtent });\n },\n }),\n h(FeaturePanel, { features: data, focusedSource, focusedSourceTitle }),\n ]\n );\n }\n\n let tile = null;\n if (showTileExtent && data?.[0] != null) {\n let f = data[0];\n tile = { x: f._x, y: f._y, z: f._z };\n }\n\n return h(\n MapAreaContainer,\n {\n navbar: h(FloatingNavbar, [\n headerElement ?? h(\"h2\", title),\n h(Spacer),\n h(MapLoadingButton, {\n active: isOpen,\n onClick: () => setOpen(!isOpen),\n }),\n ]),\n contextPanel: h(PanelCard, [\n h(Switch, {\n checked: xRay,\n label: \"X-ray mode\",\n onChange() {\n setState({ ...state, xRay: !xRay });\n },\n }),\n children,\n ]),\n detailPanel: detailElement,\n contextPanelOpen: isOpen,\n },\n h(\n MapView,\n {\n style: actualStyle,\n transformRequest,\n mapPosition,\n projection: \"globe\",\n },\n [\n h(FeatureSelectionHandler, {\n selectedLocation: inspectPosition,\n setFeatures: setData,\n }),\n h(MapMarker, {\n position: inspectPosition,\n setPosition: onSelectPosition,\n }),\n h(TileExtentLayer, { tile, color: isEnabled ? \"white\" : \"black\" }),\n ]\n )\n );\n}\n","import { getMapboxStyle, mergeStyles } from \"@macrostrat/mapbox-utils\";\nimport chroma from \"chroma-js\";\nimport mapboxgl from \"mapbox-gl\";\n\ninterface XRayOptions {\n color?: string;\n inDarkMode?: boolean;\n mapboxToken?: string;\n xRaySources?: string[];\n}\n\nexport async function buildXRayStyle(\n baseStyle: string | object,\n params: XRayOptions = null\n) {\n const {\n inDarkMode = false,\n color = \"rgb(74, 242, 161)\",\n mapboxToken,\n xRaySources\n } = params;\n const style = await getMapboxStyle(baseStyle, { access_token: mapboxToken });\n const sources = xRaySources ?? Object.keys(style.sources);\n\n let layers = [];\n for (let layer of style.layers) {\n if (!sources.includes(layer.source)) {\n layers.push(layer);\n continue;\n }\n let newLayer = transformMapboxLayer(layer, color, inDarkMode);\n if (newLayer != null) {\n layers.push(newLayer);\n }\n }\n\n return {\n ...style,\n layers,\n };\n}\n\nfunction transformMapboxLayer(layer, color, inDarkMode) {\n const c = chroma(color);\n const xRayColor = (opacity = 1, darken = 0) => {\n if (!inDarkMode) {\n return chroma(color)\n .darken(2 - darken)\n .alpha(opacity)\n .css();\n }\n return c.alpha(opacity).darken(darken).css();\n };\n\n if (layer.type == \"background\") {\n return null;\n }\n\n let newLayer = { ...layer };\n\n if (layer.type == \"fill\") {\n newLayer.paint = {\n \"fill-color\": xRayColor(0.1),\n \"fill-outline-color\": xRayColor(0.5),\n };\n } else if (layer.type == \"line\") {\n newLayer.paint = {\n \"line-color\": xRayColor(0.5, 0),\n \"line-width\": 1.5,\n };\n } else if (layer.type == \"symbol\") {\n newLayer.paint = {\n \"text-color\": xRayColor(1, -0.5),\n \"text-halo-color\": \"#000\",\n };\n } else if (layer.type == \"circle\") {\n newLayer.paint = {\n \"circle-color\": xRayColor(0.5, 0),\n \"circle-stroke-color\": xRayColor(0.5, 1),\n \"circle-radius\": 2,\n };\n }\n\n return newLayer;\n}\n\ntype InspectorStyleOptions = XRayOptions & {\n xRay?: boolean;\n};\n\nexport async function buildInspectorStyle(\n baseStyle: mapboxgl.Style | string,\n overlayStyle: mapboxgl.Style | string | null = null,\n params: InspectorStyleOptions = {}\n) {\n const { mapboxToken, xRay = false, xRaySources: _xRaySources, ...rest } = params;\n let xRaySources = _xRaySources;\n let style = await getMapboxStyle(baseStyle, {\n access_token: mapboxToken,\n });\n\n if (overlayStyle != null) {\n const overlay = await getMapboxStyle(overlayStyle, {\n access_token: mapboxToken,\n });\n style = mergeStyles(style, overlay);\n xRaySources ??= Object.keys(overlay.sources);\n }\n\n\n if (xRay) {\n // If we haven't specified sources, then we'll use all of them\n xRaySources ??= Object.keys(style.sources);\n\n style = await buildXRayStyle(style, { ...rest, mapboxToken, xRaySources });\n }\n return style;\n}\n","import hyper from \"@macrostrat/hyper\";\nimport { HTMLDivProps } from \"@blueprintjs/core\";\nimport styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { useTransition } from \"transition-hook\";\nimport {\n MapboxMapProvider,\n ZoomControl,\n useMapStatus,\n} from \"@macrostrat/mapbox-react\";\nimport { ToasterContext } from \"@macrostrat/ui-components\";\nimport { MapBottomControls } from \"./controls\";\nimport { mapViewInfo, MapPosition } from \"@macrostrat/mapbox-utils\";\nimport { Card } from \"@blueprintjs/core\";\n\nimport { ReactNode } from \"react\";\n\nexport * from \"./location-panel\";\nexport * from \"./context-panel\";\n//export * from \"./dev\";\n\nexport function MapInterface() {\n return h(\"div\", \"Hello world\");\n}\n\nconst h = hyper.styled(styles);\n\ntype AnyElement = React.ReactNode | React.ReactElement | React.ReactFragment;\n\nexport const PanelCard = (props) =>\n h(Card, { ...props, className: classNames(\"panel-card\", props.className) });\n\nfunction _MapAreaContainer({\n children,\n className,\n navbar,\n contextPanel = null,\n detailPanel = null,\n detailPanelOpen,\n contextPanelOpen = true,\n bottomPanel = null,\n mainPanel,\n mapControls = h(MapBottomControls),\n contextStackProps = null,\n detailStackProps = null,\n mapPosition = null,\n fitViewport = true,\n ...rest\n}: {\n navbar: AnyElement;\n children?: AnyElement;\n mapControls?: AnyElement;\n contextPanel?: AnyElement;\n mainPanel?: AnyElement;\n detailPanel?: AnyElement;\n bottomPanel?: AnyElement;\n className?: string;\n detailPanelOpen?: boolean;\n contextPanelOpen?: boolean;\n contextStackProps?: HTMLDivProps;\n detailStackProps?: HTMLDivProps;\n mapPosition?: MapPosition;\n fitViewport?: boolean;\n}) {\n const _detailPanelOpen = detailPanelOpen ?? detailPanel != null;\n const contextPanelTrans = useTransition(contextPanelOpen, 800);\n const detailPanelTrans = useTransition(_detailPanelOpen, 800);\n\n /*- We apply a custom style to the panel container when we are interacting\n with the search bar, so that we can block map interactions until search\n bar focus is lost.\n - We also apply a custom style when the infodrawer is open so we can hide\n the search bar on mobile platforms\n - These styles are doubly applied so we can have both namespaced and\n outside-accessible styles for each case.\n */\n const _className = classNames(\n {\n searching: false,\n \"detail-panel-open\": _detailPanelOpen,\n \"map-context-open\": _detailPanelOpen,\n \"fit-viewport\": fitViewport,\n },\n `context-panel-${contextPanelTrans.stage}`,\n `map-context-${contextPanelTrans.stage}`,\n `detail-panel-${detailPanelTrans.stage}`,\n `map-detail-${detailPanelTrans.stage}`\n );\n\n return h(\n MapStyledContainer,\n { className: classNames(\"map-page\", className), mapPosition },\n [\n h(\"div.main-ui\", { className: _className, ...rest }, [\n h(\"div.context-stack\", contextStackProps, [\n navbar,\n h.if(contextPanelTrans.shouldMount)([contextPanel]),\n ]),\n //h(MapView),\n children ?? mainPanel,\n h(\"div.detail-stack.infodrawer-container\", detailStackProps, [\n detailPanel,\n h(ZoomControl, { className: \"zoom-control\" }),\n h(\"div.spacer\"),\n mapControls,\n ]),\n ]),\n h(\"div.bottom\", null, bottomPanel),\n ]\n );\n}\n\nconst MapProviders = ({ children }) =>\n h(ToasterContext, h(MapboxMapProvider, children));\n\nexport const MapAreaContainer = (props) =>\n h(MapProviders, h(_MapAreaContainer, props));\n\ninterface MapContainerProps {\n className?: string;\n mapPosition?: MapPosition;\n children?: ReactNode;\n}\n\nexport function MapStyledContainer({ className, children }: MapContainerProps) {\n const { mapPosition } = useMapStatus();\n if (mapPosition != null) {\n const { mapIsRotated, mapUse3D, mapIsGlobal } = mapViewInfo(mapPosition);\n className = classNames(className, {\n \"map-is-rotated\": mapIsRotated,\n \"map-3d-available\": mapUse3D,\n \"map-is-global\": mapIsGlobal,\n });\n }\n\n return h(\"div\", { className }, children);\n}\n\nexport * from \"./map-view\";\n//const _MapPage = compose(HotkeysProvider, MapPage);\n",".map-page\n display: flex\n flex-direction: column\n position: relative\n width: 100%\n height: 100%\n &.fit-viewport\n height: 100vh\n width: 100vw\n /* mobile viewport bug fix */\n max-height: -webkit-fill-available\n\n // Compass display\n .compass-control\n display: none\n &.map-is-rotated\n .compass-control\n display: block\n\n .map-3d-control\n display: none\n &.map-3d-available .map-3d-control\n display: block\n &.map-is-rotated.map-3d-available .map-3d-control\n display: none\n\n .globe-control\n display: none\n svg\n color: var(--secondary-color)\n &.map-is-global .globe-control\n display: block\n\n.main-ui\n flex: 1\n position: relative\n display: flex\n flex-direction: column\n max-height: 100%\n height: 100%\n box-shadow: 0 0 10px 4px var(--card-shadow-color)\n\n.panel-card\n padding: 10px\n background-color: var(--panel-background-color)\n\n & >:last-child\n margin-bottom: 0\n\n:global(.bp4-dark) .panel-card\n background-color: var(--panel-background-color)\n\n.context-stack\n display: flex\n flex-direction: column\n max-height: 100%\n\n &>div\n flex-shrink: 1\n\n &>.searchbar\n flex: 0\n\n.context-stack,\n.detail-stack\n z-index: 100\n\n.panel-container\n display: flex\n flex-direction: column\n\n &>div\n pointer-events: all\n\n.panel-title\n font-size: 16px\n\n.spacer\n flex-grow: 1\n pointer-events: none\n\n.map-view-container\n flex-grow: 1\n position: relative\n overflow: hidden\n\n.searchbar-holder\n margin-bottom: 0.5em\n\n.right-panel\n width: 24em\n\n.buttons\n display: flex\n flex-direction: row\n flex: 1\n min-width: 0\n\n.tab-button\n flex-shrink: 1\n min-width: 40px\n overflow: hidden\n text-align: right\n\n & :global(.bp4-button-text)\n transition: all 0.2s\n transition-delay: 0.1s\n\n .menu-card.narrow-card .panel-header:not(.minimal) &:global(.bp4-active) ~ & :global(.bp4-button-text)\n width: 0\n opacity: 0\n margin-left: -7px\n\n .context-panel-leave .menu-card .panel-header & :global(.bp4-button-text)\n opacity: 0\n width: 0\n\n.narrow-card.narrow-enter .panel-header .buttons\n margin-right: -500px\n\n.panel-header.minimal .tab-button:not(:hover):not(:global(.bp4-active))\n padding-left: 0\n padding-right: 0\n min-width: 30px\n width: 30px\n\n.panel-header.minimal .tab-button:not(:hover) :global(.bp4-button-text)\n width: 0\n opacity: 0\n margin-left: -7px\n\n.menu-group\n margin-bottom: 0.5em\n margin-top: 0.2em\n\n.menu-card :global .bp4-text ul,\n.menu-card :global .text-panel ul\n padding-left: 1em\n\n.menu-content\n display: flex\n flex-direction: column\n margin-bottom: -8px\n\n & .bp4-button-group\n margin-bottom: 4px\n\n & hr\n width: 100%\n\n:global #map\n position: absolute\n top: 0\n bottom: 0\n left: 0\n right: 0\n\n:global #map .mapbox-compass,\n:global #map .mapbox-3d\n display: none\n\n:global .mapboxgl-ctrl.mapbox-3d.mapbox-control\n width: unset\n\n:global .mapboxgl-ctrl.mapbox-3d.mapbox-control button\n width: unset\n padding-inline: 4px\n\n:global .mapboxgl-canvas-container\n width: 100%\n height: 100%\n\n:global .mapboxgl-ctrl.mapboxgl-ctrl-attrib\n background-color: var(--translucent-panel-background-color) !important\n\n:global .mapboxgl-ctrl.mapboxgl-ctrl-attrib a\n color: var(--text-color)\n\n:global .mapboxgl-marker svg path\n fill: var(--panel-background-color) !important\n\n:global .mapboxgl-marker svg circle\n fill: var(--secondary-color) !important\n\n:global .mapbox-control.mapbox-zoom\n background: var(--translucent-panel-background-inner)\n\n:global .mapbox-control.mapbox-zoom svg\n fill: var(--text-color) !important\n\n:global .mapboxgl-ctrl-logo\n transform: scale(0.9) translate(-8px, 2px)\n\n:global .bp4-dark .mapboxgl-ctrl-logo\n filter: invert(100%)\n\n:global .mapboxgl-ctrl-group button + button\n border-top: 1px solid var(--panel-rule-color) !important\n\n:global .bp4-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon\n filter: invert(40%)\n\n:global .bp4-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon:hover\n filter: invert(50%)\n\n:global .mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon\n filter: invert(40%)\n\n:global .mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon:hover\n filter: invert(50%)\n\n.detail-stack\n position: relative\n\n.main-ui.detail-panel-open .zoom-control\n opacity: 0\n display: none\n\n.zoom-control\n transition: opacity 1s ease-in-out\n width: 30px\n position: absolute\n top: 0\n right: 0\n\n.main-ui.searching .map-view-container\n pointer-events: none\n\n.map-controls\n display: flex\n flex-direction: row\n justify-content: right\n margin-bottom: 0\n\n &>*\n margin-left: 0.5em\n\n.map-controls :global(.mapbox-control),\n.map-controls :global(.map-control-wrapper),\n.map-controls .map-control\n min-width: 22px\n min-height: 22px\n border-radius: 4px\n background-color: var(--panel-background-color)\n box-shadow: 0 0 0 1px var(--card-shadow-color)\n\n.map-controls :global(.mapbox-control) button,\n.map-controls :global(.map-control-wrapper) button,\n.map-controls .map-control button\n width: 22px\n height: 22px\n background-position: center center\n padding: 0\n background-color: var(--panel-background-color)\n color: var(--text-color)\n\n.map-controls :global(.mapbox-control) button:hover,\n.map-controls :global(.map-control-wrapper) button:hover,\n.map-controls .map-control button:hover\n background-color: var(--panel-background-color) !important\n\n.map-controls .map-scale-control\n background: none\n box-shadow: none\n padding-top: 8px\n\n :global(.mapboxgl-ctrl-scale)\n background-color: var(--translucent-panel-background-color)\n border-color: var(--secondary-text-color)\n color: var(--secondary-text-color)\n\n/* For mobile phones, we want to make the most of screen space,\n which in some cases means adding complications to the basic page. */\n@media only screen and (max-width: 768px)\n .main-ui.detail-panel-enter .context-stack\n height: 0\n visibility: hidden\n transition: height 0.5s ease-in-out\n\n .detail-stack\n height: fit-content\n position: inherit\n max-height: 70%\n\n .infodrawer-stack\n max-height: 70%\n\n :global(.exit-active)\n max-height: 0\n\n :global(.mapbox-control.mapbox-zoom)\n display: none\n\n .map-controls\n position: absolute\n top: -60px\n right: 10px\n\n .detail-panel\n border-radius: 0px\n\n/* Desktop styling is necessarily much more complicated than mobile\n to handle a two-column layout. */\n@media screen and (min-width: 768px)\n .main-ui\n flex-direction: row\n padding: 1em 1em 2em\n min-height: 80px\n &>*\n margin-right: 0.5em\n &>*:last-child\n margin-right: 0\n\n &.searching .context-stack\n width: 24em\n\n .context-stack\n max-width: 34em\n min-width: 14em\n width: 16em\n transition: width 300ms ease\n padding-bottom: 0.5em\n\n &.panel-open\n width: 34em\n margin-right: 0.5em\n\n .context-stack.layers,\n .context-stack.settings\n width: 18em\n margin-right: 0.5em\n\n .main-ui.detail-panel-open .detail-stack\n width: 30em\n\n .detail-stack\n width: 30em\n pointer-events: none\n display: flex\n flex-direction: column\n\n .context-stack,\n .detail-stack\n pointer-events: none\n z-index: 100\n\n .context-stack>div,\n .detail-stack>div\n pointer-events: all\n margin-bottom: 0.5em\n\n .context-stack>div:last-child,\n .detail-stack>div:last-child\n margin-bottom: 0\n\n .context-stack>div.spacer,\n .detail-stack>div.spacer\n pointer-events: none\n\n .map-view-container\n position: unset\n\n.main-ui .detail-panel\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n.main-ui.detail-panel-from .detail-panel\n opacity: 0\n\n.main-ui.detail-panel-enter .detail-panel\n opacity: 1\n\n.main-ui.detail-panel-leave .detail-panel\n opacity: 0\n\n.main-ui .context-panel\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n.main-ui.context-panel-from .context-panel\n opacity: 0\n\n.main-ui.context-panel-enter .context-panel\n opacity: 1\n\n.main-ui.context-panel-leave .context-panel\n opacity: 0\n\n@media only screen and (max-width: 768px)\n .main-ui .detail-stack\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n .main-ui.detail-panel-from .detail-stack\n max-height: 0\n height: 0\n\n .main-ui.detail-panel-leave .detail-stack\n max-height: 0\n max-height: 0\n\n .main-ui .context-panel\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n .main-ui.context-panel-from .context-panel\n max-height: 0\n height: 0\n\n .main-ui.context-panel-leave .context-panel\n max-height: 0\n max-height: 0\n\n// Shift UI around to center elements if we're in the global view \n@media only screen and (min-width: 768px)\n .map-page .main-ui.detail-panel-leave .map-view-container\n margin-right: -14em\n\n .map-page.map-is-global .main-ui.detail-panel-leave .map-view-container\n margin-right: -30em\n\n .map-page.map-is-global .main-ui.context-panel-leave .map-view-container\n margin-left: -16em\n","import { useRef } from \"react\";\nimport { GeolocateControl } from \"mapbox-gl\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport {\n CompassControl,\n GlobeControl,\n ThreeDControl,\n MapControlWrapper,\n} from \"@macrostrat/mapbox-react\";\nimport { ScaleControl as BaseScaleControl } from \"mapbox-gl\";\n\nconst h = hyper.styled(styles);\n\nfunction ScaleControl(props) {\n const optionsRef = useRef({\n maxWidth: 200,\n unit: \"metric\",\n });\n return h(MapControlWrapper, {\n className: \"map-scale-control\",\n control: BaseScaleControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nfunction GeolocationControl(props) {\n const optionsRef = useRef({\n showAccuracyCircle: true,\n showUserLocation: true,\n trackUserLocation: true,\n positionOptions: {\n enableHighAccuracy: true,\n },\n });\n return h(MapControlWrapper, {\n control: GeolocateControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nexport function MapBottomControls() {\n return h(\"div.map-controls\", [\n h(ScaleControl),\n h(ThreeDControl, { className: \"map-3d-control\" }),\n h(CompassControl, { className: \"compass-control\" }),\n h(GlobeControl, { className: \"globe-control\" }),\n h(GeolocationControl, { className: \"geolocation-control\" }),\n ]);\n}\n","import hyper from \"@macrostrat/hyper\";\nimport {\n useMapRef,\n useMapStatus,\n useMapDispatch,\n} from \"@macrostrat/mapbox-react\";\nimport {\n mapViewInfo,\n MapPosition,\n setMapPosition,\n} from \"@macrostrat/mapbox-utils\";\nimport classNames from \"classnames\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useEffect, useRef } from \"react\";\nimport styles from \"./main.module.sass\";\nimport rootStyles from \"../main.module.sass\";\nimport { enable3DTerrain } from \"./terrain\";\nimport {\n MapLoadingReporter,\n MapMovedReporter,\n MapPaddingManager,\n MapResizeManager,\n} from \"../helpers\";\n\nconst h = hyper.styled({ ...styles, ...rootStyles });\n\ntype MapboxCoreOptions = Omit<mapboxgl.MapboxOptions, \"container\">;\n\nexport interface MapViewProps extends MapboxCoreOptions {\n showLineSymbols?: boolean;\n children?: React.ReactNode;\n accessToken?: string;\n terrainSourceID?: string;\n enableTerrain?: boolean;\n infoMarkerPosition?: mapboxgl.LngLatLike;\n //style: mapboxgl.Style | string;\n //transformRequest?: mapboxgl.TransformRequestFunction;\n mapPosition?: MapPosition;\n}\n\nfunction initializeMap(container, args: MapboxCoreOptions = {}) {\n const map = new mapboxgl.Map({\n container,\n maxZoom: 18,\n //maxTileCacheSize: 0,\n logoPosition: \"bottom-left\",\n trackResize: true,\n antialias: true,\n optimizeForTerrain: true,\n ...args,\n });\n\n //setMapPosition(map, mapPosition);\n return map;\n}\n\nconst defaultMapPosition: MapPosition = {\n camera: {\n lat: 34,\n lng: -120,\n altitude: 300000,\n },\n};\n\nexport function MapView(props: MapViewProps) {\n let { terrainSourceID } = props;\n const {\n enableTerrain = true,\n style,\n transformRequest,\n mapPosition = defaultMapPosition,\n children,\n accessToken,\n infoMarkerPosition,\n projection,\n } = props;\n if (enableTerrain) {\n terrainSourceID ??= \"mapbox-3d-dem\";\n }\n\n if (accessToken != null) {\n mapboxgl.accessToken = accessToken;\n }\n\n const dispatch = useMapDispatch();\n let mapRef = useMapRef();\n const ref = useRef<HTMLDivElement>();\n const parentRef = useRef<HTMLDivElement>();\n\n // Keep track of map position for reloads\n\n useEffect(() => {\n if (style == null || ref.current == null || dispatch == null) return;\n if (mapRef?.current != null) return;\n console.log(\"Initializing map\");\n const map = initializeMap(ref.current, {\n style,\n transformRequest,\n projection,\n });\n dispatch({ type: \"set-map\", payload: map });\n console.log(\"Map initialized\");\n return () => {\n map.remove();\n dispatch({ type: \"set-map\", payload: null });\n };\n }, [transformRequest, dispatch, style]);\n\n // Map style updating\n useEffect(() => {\n if (mapRef?.current == null || style == null) return;\n mapRef?.current?.setStyle(style);\n }, [mapRef.current, style]);\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null || mapPosition == null) return;\n setMapPosition(map, mapPosition);\n }, [mapRef.current]);\n\n const { mapPosition: _computedMapPosition } = useMapStatus();\n const { mapUse3D, mapIsRotated } = mapViewInfo(_computedMapPosition);\n\n // Get map projection\n const _projection = mapRef.current?.getProjection()?.name ?? \"mercator\";\n\n const className = classNames(\n {\n \"is-rotated\": mapIsRotated ?? false,\n \"is-3d-available\": mapUse3D ?? false,\n },\n `${_projection}-projection`\n );\n\n return h(\"div.map-view-container.main-view\", { ref: parentRef }, [\n h(\"div.mapbox-map#map\", { ref, className }),\n h(MapLoadingReporter, {\n ignoredSources: [\"elevationMarker\", \"crossSectionEndpoints\"],\n }),\n h(MapMovedReporter),\n h(MapResizeManager, { containerRef: ref }),\n h(MapPaddingManager, { containerRef: ref, parentRef, infoMarkerPosition }),\n h(MapTerrainManager, { mapUse3D, terrainSourceID }),\n children,\n ]);\n}\n\nexport function MapTerrainManager({\n mapUse3D,\n terrainSourceID,\n}: {\n mapUse3D?: boolean;\n terrainSourceID?: string;\n}) {\n const mapRef = useMapRef();\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n enable3DTerrain(map, mapUse3D, terrainSourceID);\n }, [mapRef.current, mapUse3D]);\n return null;\n}\n",".map-view-container\n flex-grow: 1\n position: relative\n overflow: hidden\n\n/* Desktop styling is necessarily much more complicated than mobile\n to handle a two-column layout. */\n@media screen and (min-width: 768px)\n /* Make map fill page rather than containing div,\n by unsetting map position */\n // We should move this to another file.\n .map-view-container\n position: unset\n","// We should merge this with code in @macrostrat/mapbox-react/src/terrain.ts:\n\nexport function enable3DTerrain(\n map,\n shouldEnable: boolean,\n sourceID: string | null = null\n) {\n let demSourceID = sourceID ?? getTerrainSourceID(map) ?? \"mapbox-dem\";\n\n console.log(\"Enabling 3D terrain with source\", demSourceID);\n\n if (!map.style?._loaded) {\n map.once(\"style.load\", () => {\n enable3DTerrain(map, shouldEnable, demSourceID);\n });\n return;\n }\n\n // Enable or disable terrain depending on our current desires...\n const currentTerrain = map.getTerrain();\n if (!shouldEnable) {\n if (currentTerrain != null) map.setTerrain(null);\n return;\n }\n if (currentTerrain != null) return;\n\n // Add a DEM source if one is not found already.\n if (map.getSource(demSourceID) == null) {\n map.addSource(demSourceID, {\n type: \"raster-dem\",\n url: \"mapbox://mapbox.mapbox-terrain-dem-v1\",\n tileSize: 512,\n maxzoom: 14,\n });\n }\n\n // add a sky layer that will show when the map is highly pitched\n if (map.getLayer(\"sky\") == null) {\n map.addLayer({\n id: \"sky\",\n type: \"sky\",\n paint: {\n \"sky-type\": \"atmosphere\",\n \"sky-atmosphere-sun\": [0.0, 0.0],\n \"sky-atmosphere-sun-intensity\": 15,\n },\n });\n }\n\n map.setTerrain({ source: demSourceID, exaggeration: 1 });\n}\n\nfunction getTerrainSourceID(map) {\n for (const [key, source] of Object.entries(map.getStyle().sources)) {\n if (source.type == \"raster-dem\") {\n return key;\n }\n }\n return null;\n}\n","import {\n useMapRef,\n useMapEaseToCenter,\n useMapDispatch,\n useMapStatus,\n} from \"@macrostrat/mapbox-react\";\nimport { useRef } from \"react\";\nimport { debounce } from \"underscore\";\nimport useResizeObserver from \"use-resize-observer\";\n\nimport { getMapPosition } from \"@macrostrat/mapbox-utils\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { getMapPadding, useMapMarker } from \"./utils\";\n\nexport function MapResizeManager({ containerRef }) {\n const mapRef = useMapRef();\n\n const debouncedResize = useRef(\n debounce(() => {\n mapRef.current?.resize();\n }, 100)\n );\n\n useResizeObserver({\n ref: containerRef,\n onResize: debouncedResize.current,\n });\n\n return null;\n}\n\ninterface MapPaddingManagerProps {\n containerRef: React.RefObject<HTMLDivElement>;\n parentRef: React.RefObject<HTMLDivElement>;\n infoMarkerPosition: mapboxgl.LngLatLike;\n}\n\nexport function MapPaddingManager({\n containerRef,\n parentRef,\n infoMarkerPosition,\n}: MapPaddingManagerProps) {\n const mapRef = useMapRef();\n\n const [padding, setPadding] = useState(\n getMapPadding(containerRef, parentRef)\n );\n\n const updateMapPadding = useCallback(() => {\n const newPadding = getMapPadding(containerRef, parentRef);\n setPadding(newPadding);\n }, [containerRef.current, parentRef.current]);\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n // Update map padding on load\n updateMapPadding();\n }, [mapRef.current]);\n\n useResizeObserver({\n ref: parentRef,\n onResize(sz) {\n updateMapPadding();\n },\n });\n\n useMapEaseToCenter(infoMarkerPosition, padding);\n\n return null;\n}\n\nexport function MapMovedReporter({ onMapMoved = null }) {\n const mapRef = useMapRef();\n const dispatch = useMapDispatch();\n\n const mapMovedCallback = useCallback(() => {\n const map = mapRef.current;\n if (map == null) return;\n const mapPosition = getMapPosition(map);\n dispatch({ type: \"map-moved\", payload: mapPosition });\n onMapMoved?.(mapPosition, map);\n }, [mapRef.current, onMapMoved, dispatch]);\n\n useEffect(() => {\n // Get the current value of the map. Useful for gradually moving away\n // from class component\n const map = mapRef.current;\n if (map == null) return;\n // Update the URI when the map moves\n mapMovedCallback();\n const cb = debounce(mapMovedCallback, 100);\n map.on(\"moveend\", cb);\n return () => {\n map?.off(\"moveend\", cb);\n };\n }, [mapMovedCallback]);\n return null;\n}\n\nexport function MapLoadingReporter({\n ignoredSources,\n onMapLoading = null,\n onMapIdle = null,\n mapIsLoading,\n}) {\n const mapRef = useMapRef();\n const loadingRef = useRef(false);\n const dispatch = useMapDispatch();\n\n useEffect(() => {\n const map = mapRef.current;\n const mapIsLoading = loadingRef.current;\n if (map == null) return;\n\n let didSendLoading = false;\n\n const loadingCallback = (evt) => {\n if (ignoredSources.includes(evt.sourceId) || mapIsLoading) return;\n if (didSendLoading) return;\n onMapLoading?.(evt);\n dispatch({ type: \"set-loading\", payload: true });\n loadingRef.current = true;\n didSendLoading = true;\n };\n const idleCallback = (evt) => {\n if (!mapIsLoading) return;\n dispatch({ type: \"set-loading\", payload: false });\n loadingRef.current = false;\n onMapIdle?.(evt);\n };\n map.on(\"sourcedataloading\", loadingCallback);\n map.on(\"idle\", idleCallback);\n return () => {\n map?.off(\"sourcedataloading\", loadingCallback);\n map?.off(\"idle\", idleCallback);\n };\n }, [ignoredSources, mapRef.current, mapIsLoading]);\n return null;\n}\n\nexport function MapMarker({ position, setPosition, centerMarker = true }) {\n const mapRef = useMapRef();\n const markerRef = useRef(null);\n\n useMapMarker(mapRef, markerRef, position);\n\n const handleMapClick = useCallback(\n (event: mapboxgl.MapMouseEvent) => {\n setPosition(event.lngLat, event, mapRef.current);\n // We should integrate this with the \"easeToCenter\" hook\n if (centerMarker) {\n mapRef.current?.flyTo({ center: event.lngLat, duration: 800 });\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [mapRef.current, setPosition]\n );\n\n useEffect(() => {\n const map = mapRef.current;\n if (map != null && setPosition != null) {\n map.on(\"click\", handleMapClick);\n }\n return () => {\n map?.off(\"click\", handleMapClick);\n };\n }, [mapRef.current, setPosition]);\n\n return null;\n}\n","import { useEffect } from \"react\";\nimport { Marker } from \"mapbox-gl\";\n\nfunction calcMapPadding(rect, childRect) {\n return {\n left: Math.max(rect.left - childRect.left, 0),\n top: Math.max(rect.top - childRect.top, 0),\n right: Math.max(childRect.right - rect.right, 0),\n bottom: Math.max(childRect.bottom - rect.bottom, 0),\n };\n}\n\nexport function getMapPadding(ref, parentRef) {\n const rect = parentRef.current?.getBoundingClientRect();\n const childRect = ref.current?.getBoundingClientRect();\n if (rect == null || childRect == null) return;\n return calcMapPadding(rect, childRect);\n}\n\nexport function useMapMarker(mapRef, markerRef, markerPosition) {\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n if (markerPosition == null) {\n markerRef.current?.remove();\n return;\n }\n const marker = markerRef.current ?? new Marker();\n marker.setLngLat(markerPosition).addTo(map);\n markerRef.current = marker;\n return () => marker.remove();\n }, [mapRef.current, markerPosition]);\n}\n",".feature-panel\n position: relative\n overflow-x: hidden\n\n.key-value\n display: inline-block\n margin-right: 1em\n .key\n font-weight: bold\n font-size: 0.9em\n &:after\n content: ': '\n .value\n font-size: 0.9em\n\n.feature-properties\n position: relative\n &:before\n content: \"–\"\n position: absolute\n top: 4px\n left: 0\n\n.feature-header h3\n margin-bottom: 0\n margin-top: 0.5em\n\n.feature-group\n border-bottom: 1px solid var(--panel-rule-inner)\n padding: 0 1em\n margin-left: -1em\n margin-right: -1em\n margin-bottom: 0.5em\n &:last-child\n border-bottom: none\n\n.tile-info\n display: flex\n flex-direction: row\n align-items: baseline\n padding: 0 1em\n h3\n margin-right: 0.5em\n\n.opacity-slider\n margin: 0 1em 0.5em\n :global\n .bp4-slider-handle .bp4-slider-label\n background-color: var(--secondary-color)\n color: var(--text-color)\n\n.unit-number\n .unit\n font-size: 0.9em\n margin-left: 0.2em\n font-weight: bold\n\n.page\n margin: 2em auto\n max-width: 50em\n\n.dev-index-page\n overflow-y: scroll\n","import { useMapConditionalStyle, useMapRef } from \"@macrostrat/mapbox-react\";\nimport { tileToGeoJSON } from \"@mapbox/tilebelt\";\nimport { useCallback } from \"react\";\n\ntype TileIndex = { x: number; y: number; z: number };\n\nexport function TileExtentLayer({\n tile,\n color = \"red\",\n}: {\n tile: TileIndex | null;\n color?: string;\n}) {\n const styleCallback = useCallback(\n (map, val: TileIndex) => {\n const style = map.getStyle();\n if (style.layers == null) return;\n style.layers = style.layers.filter((l) => l.id != \"tile-extent\");\n if (val == null) {\n return map.setStyle(style);\n }\n const { x, y, z } = val;\n const extent = tileToGeoJSON([x, y, z]);\n const source = {\n type: \"geojson\",\n data: extent,\n };\n const layer = {\n id: \"tile-extent\",\n type: \"line\",\n source: \"tile-extent\",\n paint: {\n \"line-color\": color,\n \"line-width\": 2,\n },\n };\n style.sources[\"tile-extent\"] = source;\n style.layers.push(layer);\n map.setStyle(style);\n },\n [color]\n );\n const map = useMapRef();\n useMapConditionalStyle(map, tile, styleCallback);\n return null;\n}\n","import { Spinner, Switch } from \"@blueprintjs/core\";\nimport { useMapRef, useMapStatus } from \"@macrostrat/mapbox-react\";\nimport mapboxgl from \"mapbox-gl\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useEffect, useState, useRef } from \"react\";\nimport { JSONView } from \"@macrostrat/ui-components\";\nimport { group } from \"d3-array\";\nimport { ExpansionPanel } from \"../expansion-panel\";\n\nconst h = hyper.styled(styles);\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nexport function FeatureRecord({ feature }) {\n const props = feature.properties;\n return h(\"div.feature-record\", [\n h.if(Object.keys(props).length > 0)(\"div.feature-properties\", [\n h(JSONView, {\n data: props,\n hideRoot: true,\n }),\n ]),\n ]);\n}\n\nexport function FeatureSelectionHandler({\n selectedLocation,\n setFeatures,\n radius = 2,\n}: {\n selectedLocation: mapboxgl.LngLat;\n setFeatures: (features: mapboxgl.MapboxGeoJSONFeature[]) => void;\n radius?: number;\n}) {\n const mapRef = useMapRef();\n const { isLoading } = useMapStatus();\n const prevLocation = usePrevious(selectedLocation);\n\n useEffect(() => {\n const map = mapRef?.current;\n if (map == null) return;\n if (selectedLocation == null) {\n setFeatures(null);\n return;\n }\n\n // Don't update if the location hasn't changed\n if (selectedLocation == prevLocation) return;\n\n const r = radius;\n const pt = map.project(selectedLocation);\n\n const bbox: [mapboxgl.PointLike, mapboxgl.PointLike] = [\n [pt.x - r, pt.y - r],\n [pt.x + r, pt.y + r],\n ];\n const features = map.queryRenderedFeatures(bbox);\n setFeatures(features);\n }, [mapRef?.current, selectedLocation, isLoading]);\n\n return null;\n}\n\nfunction FeatureHeader({ feature }) {\n return h(\"div.feature-header\", [\n h(\"h3\", [\n h(KeyValue, { label: \"Source\", value: feature.source }),\n h(KeyValue, { label: \"Source layer\", value: feature.sourceLayer }),\n ]),\n ]);\n}\n\nfunction KeyValue({ label, value }) {\n return h(\"span.key-value\", [h(\"span.key\", label), h(\"code.value\", value)]);\n}\n\nfunction LoadingAwareFeatureSet({ features, sourceID }) {\n const map = useMapRef();\n if (map?.current == null) return null;\n const [isLoaded, setIsLoaded] = useState(false);\n\n const sourceFeatures = features.filter((d) => d.source == \"burwell\");\n\n useEffect(() => {\n if (sourceFeatures.length > 0) {\n setIsLoaded(true);\n return;\n }\n\n const isLoaded = map.current.isSourceLoaded(sourceID);\n setIsLoaded(isLoaded);\n if (!isLoaded) {\n map.current.once(\"sourcedata\", (e) => {\n if (e.sourceId == sourceID) {\n setIsLoaded(true);\n }\n });\n }\n }, [map.current, sourceID, sourceFeatures.length]);\n\n if (!isLoaded) return h(Spinner);\n return h(Features, { features: sourceFeatures });\n}\n\nexport function TileInfo({ feature, showExtent, setShowExtent }) {\n if (feature == null) return null;\n const size = feature._vectorTileFeature._pbf.length;\n return h(\"div.tile-info\", [\n h(\"h3\", \"Tile\"),\n h(\"div.tile-index\", [\n h(KeyValue, { label: \"x\", value: feature._x }),\n h(KeyValue, { label: \"y\", value: feature._y }),\n h(KeyValue, { label: \"z\", value: feature._z }),\n ]),\n h(\"div.spacer\"),\n h(KeyValue, { label: \"Size\", value: formatSize(size) }),\n h(Switch, {\n label: \"Show extent\",\n alignIndicator: \"right\",\n checked: showExtent,\n onChange() {\n setShowExtent(!showExtent);\n },\n }),\n ]);\n}\n\nfunction formatSize(size: number) {\n if (size > 1000000)\n return h(UnitNumber, { value: size / 1000000, unit: \"Mb\" });\n if (size > 1000) return h(UnitNumber, { value: size / 1000, unit: \"Kb\" });\n return `${size} bytes`;\n}\n\nfunction UnitNumber({ value, unit, precision = 1 }) {\n return h(\"span.unit-number\", [\n h(\"span.number\", value.toFixed(precision)),\n h(\"span.unit\", unit),\n ]);\n}\n\nexport function FeaturePanel({\n features,\n focusedSource = null,\n focusedSourceTitle = null,\n}) {\n if (features == null) return null;\n\n let focusedSourcePanel = null;\n let filteredFeatures = features;\n let title = \"Features\";\n\n if (focusedSource != null) {\n title = \"Basemap features\";\n focusedSourcePanel = h(\n ExpansionPanel,\n {\n title: \"Macrostrat features\",\n className: \"macrostrat-features\",\n expanded: true,\n },\n [\n h(LoadingAwareFeatureSet, {\n features,\n sourceID: focusedSource,\n }),\n ]\n );\n filteredFeatures = features.filter((d) => d.source != focusedSource);\n }\n\n return h(\"div.feature-panel\", [\n focusedSourcePanel,\n h(\n ExpansionPanel,\n { title, className: \"basemap-features\", expanded: focusedSource == null },\n [\n h(Features, {\n features: filteredFeatures,\n }),\n ]\n ),\n ]);\n}\n\nfunction Features({ features }) {\n /** Group features by source and sourceLayer */\n if (features == null) return null;\n\n const groups = group(features, (d) => `${d.source} - ${d.sourceLayer}`);\n\n return h(\n \"div.features\",\n Array.from(groups).map(([key, features]) => {\n return h(\"div.feature-group\", [\n h(FeatureHeader, { feature: features[0] }),\n features.map((feature, i) => h(FeatureRecord, { key: i, feature })),\n ]);\n })\n );\n}\n","import { useState } from \"react\";\nimport { Collapse, Icon } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { Button } from \"@blueprintjs/core\";\nimport { PanelSubhead } from \"./headers\";\n\nconst h = hyper.styled(styles);\n\nfunction ExpansionPanelSummary(props) {\n const { expanded, children, onChange, className, title, titleComponent } =\n props;\n const icon = expanded ? \"chevron-up\" : \"chevron-down\";\n return h(\n PanelSubhead,\n {\n className: classNames(\"expansion-panel-header\", className),\n onClick: onChange,\n title,\n component: titleComponent,\n },\n [children, h(Icon, { icon })]\n );\n}\n\nfunction ExpansionPanelBase(props) {\n let {\n title,\n titleComponent = \"h3\",\n children,\n expanded,\n helpText,\n onChange = () => {},\n sideComponent = null,\n className,\n } = props;\n const [isOpen, setOpen] = useState(expanded || false);\n\n const onChange_ = () => {\n onChange();\n setOpen(!isOpen);\n };\n\n return h(\n \"div.expansion-panel-base\",\n {\n className: classNames(className, {\n expanded: isOpen,\n collapsed: !isOpen,\n }),\n },\n [\n h(\n ExpansionPanelSummary,\n {\n onChange: onChange_,\n expanded: isOpen,\n title,\n titleComponent,\n },\n h(\"div.expansion-summary-title-help\", [\n h(\"span.expansion-panel-subtext\", helpText),\n \" \",\n sideComponent,\n ])\n ),\n h(Collapse, { isOpen }, h(\"div.expansion-children\", null, children)),\n ]\n );\n}\n\nexport function InfoPanelSection(props) {\n let { title, children, className, headerElement = null } = props;\n return h(\"div.info-panel-section\", { className }, [\n h(\"div.panel-subhead\", null, headerElement ?? h(\"h3\", title)),\n h(\"div.panel-content\", null, children),\n ]);\n}\n\nfunction ExpansionPanel(props) {\n return h(ExpansionPanelBase, {\n ...props,\n className: \"expansion-panel\",\n });\n}\n\nfunction SubExpansionPanel(props) {\n return h(ExpansionPanelBase, {\n ...props,\n className: \"expansion-panel sub-expansion-panel\",\n titleComponent: \"h4\",\n });\n}\n\nfunction ExpandableDetailsPanel(props) {\n let { title, children, value, headerElement, className } = props;\n const [isOpen, setIsOpen] = useState(false);\n headerElement ??= h([h(\"div.title\", title), value]);\n return h(\"div.expandable-details\", { className }, [\n h(\"div.expandable-details-main\", [\n h(\"div.expandable-details-header\", headerElement),\n h(\"div.expandable-details-toggle\", [\n h(Button, {\n small: true,\n minimal: true,\n active: isOpen,\n onClick: () => setIsOpen(!isOpen),\n icon: \"more\",\n }),\n ]),\n ]),\n h(\n Collapse,\n { isOpen },\n h(\"div.expandable-details-children\", null, children)\n ),\n ]);\n}\n\nfunction ExpansionBody({ title, className, children }) {\n return h(\"div.expansion-body\", { className }, [\n h(\"div.expansion-panel-detail-header\", title),\n h(\"div.expansion-panel-detail-body\", null, children),\n ]);\n}\n\nexport {\n ExpansionPanel,\n ExpansionPanelSummary,\n ExpandableDetailsPanel,\n SubExpansionPanel,\n ExpansionBody,\n};\n","\n.panel-subhead\n padding: 0.2em var(--box-horizontal-padding)\n border-top: 1px solid var(--accent-border-color)\n border-bottom: 1px solid var(--accent-border-color)\n background-color: var(--accent-color)\n display: flex\n flex-direction: row\n align-items: center\n z-index: 1\n gap: var(--box-horizontal-padding)\n top: 0px\n position: sticky\n h1, h2, h3, h4\n font-family: Montserrat,sans-serif\n font-weight: 700\n margin: 0.2em 0\n h4\n font-weight: 600\n .title\n flex-grow: 1\n\n// :global(.bp4-dark) .panel-subhead\n// margin 0 1px\n\n.expansion-panel\n padding: 0\n flex-wrap: wrap\n margin-top: -1px\n // &.collapsed\n // .expansion-panel-header\n // border-bottom-width: 0;\n\n.sub-expansion-panel\n margin: -1px calc(var(--panel-padding-h) * -0.5) 0\n overflow: hidden\n &:first-child\n .expansion-panel-header\n border-top-width: 0\n .panel-subhead\n border-top: none\n border-bottom: none\n\n .expansion-panel-header\n background-color: var(--accent-secondary-color)\n cursor: pointer\n &:hover\n background-color: var(--accent-secondary-hover-color)\n h2, h3, h4\n font-weight: 500\n border-bottom: 1px solid var(--tertiary-border-color)\n border-top: 1px solid var(--tertiary-border-color)\n margin-top: -1px\n padding: 5px 1em 5px\n align-items: center\n\n.expansion-summary-title-help\n margin-left: 5px\n :global(.bp4-icon)\n margin-left: 5px\n\n.expansion-panel-header\n cursor: pointer\n &:hover\n background-color: var(--accent-hover-color)\n :global(.bp4-icon)\n transform: translate(0,3px)\n\n.expansion-children\n padding: 5px 1em 10px\n .expansion-panel\n margin-left: -1em\n margin-right: -1em\n &:first-child\n margin-top: -5px\n\n.expansion-panel-subtext\n font-size: 85%\n font-weight: 400\n\n:global\n .expansion-panel-root\n padding-left: 15px !important\n\n .expansion-panel-detail\n display: block !important\n padding: 0 !important\n\n .expansion-panel-detail-sub\n display: block !important\n\n// New expandable panel for details\n.expandable-details-main\n display: flex\n flex-direction: row\n align-items: center\n justify-content: space-between\n margin: 3px 0\n\n.expandable-details-header\n display: inline-flex\n flex-direction: row\n align-items: baseline\n flex-grow: 1\n\n.expandable-details-children\n position: relative\n\n.expandable-details-toggle\n :global(.bp4-button)\n font-size: 10px\n\n.expandable-details\n &.macrostrat-unit\n .title:after\n content: none\n .title\n margin-right: 1em\n &:after\n content: \":\"\n\n.expansion-body\n display: inline-block\n //flex-direction row\n align-items: baseline\n background-color: var(--tertiary-background)\n padding: 2px 6px\n border-radius: 4px\n width: 100%\n box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.2)\n margin-bottom: 6px\n\n.expansion-panel-detail-header\n font-size: 90%\n font-style: italic\n margin-right: 1em\n display: inline\n color: var(--secondary-color)\n &:after\n content: \":\"\n\n.expansion-panel-detail-body\n display: inline\n","import hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\n\nconst h = hyper.styled(styles);\n\nexport function PanelSubhead(props) {\n const { title, component = \"h3\", children, ...rest } = props;\n return h(\"div.panel-subhead\", rest, [\n h(\n component,\n {\n className: \"title\",\n },\n title\n ),\n children,\n ]);\n}\n"],"names":[],"version":3,"file":"index.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/map-interface/src/index.ts","packages/map-interface/src/context-panel/index.ts","packages/map-interface/src/context-panel/main.module.sass","packages/mapbox-react/src/index.ts","packages/mapbox-react/src/context.ts","packages/mapbox-react/src/hooks.ts","packages/mapbox-utils/src/index.ts","packages/mapbox-utils/src/preprocess-styles.ts","packages/mapbox-utils/src/position.ts","packages/mapbox-utils/src/view-info.ts","packages/mapbox-utils/src/labels.ts","packages/mapbox-react/src/controls.ts","packages/mapbox-react/src/terrain.ts","packages/mapbox-react/src/debugger.ts","packages/mapbox-react/src/focus-state.ts","packages/mapbox-react/src/main.module.scss","packages/map-interface/src/location-panel/index.ts","packages/map-interface/src/location-panel/header.ts","packages/map-interface/src/location-panel/main.module.sass","packages/ui-components/src/index.ts","packages/ui-components/src/api/index.ts","packages/ui-components/src/api/provider.ts","packages/ui-components/src/util/index.ts","packages/ui-components/src/util/state-hooks.ts","packages/ui-components/src/util/layout-hooks.ts","packages/ui-components/src/util/query-string.ts","packages/ui-components/src/util/local-storage.ts","packages/ui-components/src/util/json-view.ts","packages/ui-components/src/dark-mode.ts","packages/ui-components/src/util/main.module.scss","packages/ui-components/src/util/scroll-helpers.ts","packages/ui-components/src/util/migration-helpers.ts","packages/ui-components/src/util/box-model.ts","packages/ui-components/src/util/event-hooks.ts","packages/ui-components/src/util/flexbox.ts","packages/ui-components/src/api/data-provider.ts","packages/ui-components/src/api/frontend.ts","packages/ui-components/src/api/indexing.ts","packages/ui-components/src/api/paged.ts","packages/ui-components/src/api/types.ts","packages/ui-components/src/infinite-scroll.ts","packages/ui-components/src/buttons/index.ts","packages/ui-components/src/buttons/delete-button.ts","packages/ui-components/src/collapse-panel/index.ts","packages/ui-components/src/link-card.ts","packages/ui-components/src/file-upload/index.ts","packages/ui-components/src/image.ts","packages/ui-components/src/model-editor.ts","packages/ui-components/src/toaster.ts","packages/ui-components/src/citations/index.ts","packages/ui-components/src/citations/author-list.ts","packages/ui-components/src/geodeepdive/index.ts","packages/ui-components/src/geodeepdive/reference-card.ts","packages/ui-components/src/text.ts","packages/ui-components/src/form-controls/index.ts","packages/ui-components/src/form-controls/slider.ts","packages/ui-components/src/form-controls/main.module.sass","packages/ui-components/src/settings/index.ts","packages/ui-components/src/error-boundary.ts","packages/ui-components/src/patterns/index.ts","packages/ui-components/src/patterns/composite-image.ts","packages/ui-components/src/collapse-card.ts","packages/ui-components/src/modal-panel/index.ts","packages/ui-components/src/modal-panel/main.module.sass","packages/ui-components/src/modal-panel/draggable-overlay.ts","packages/ui-components/src/page-layouts/index.ts","packages/ui-components/src/page-layouts/main.module.sass","packages/map-interface/src/location-info/index.ts","packages/map-interface/src/location-info/utils.ts","packages/map-interface/src/dev/index.ts","packages/map-interface/src/dev/xray.ts","packages/map-interface/src/container.ts","packages/map-interface/src/main.module.sass","packages/map-interface/src/controls.ts","packages/map-interface/src/map-view/index.ts","packages/map-interface/src/map-view/main.module.sass","packages/map-interface/src/map-view/terrain.ts","packages/map-interface/src/helpers.ts","packages/map-interface/src/utils.ts","packages/map-interface/src/dev/main.module.sass","packages/map-interface/src/dev/tile-extent.ts","packages/map-interface/src/dev/vector-tile-features.ts","packages/map-interface/src/expansion-panel/index.ts","packages/map-interface/src/expansion-panel/main.module.sass","packages/map-interface/src/expansion-panel/headers.ts"],"sourcesContent":["export * from \"./context-panel\";\nexport * from \"./location-panel\";\nexport * from \"./dev\";\nexport * from \"./container\";\nexport * from \"./map-view\";\n","import { useMemo } from \"react\";\nimport { Navbar, Button, InputGroup, Spinner, Card } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useMapStatus } from \"@macrostrat/mapbox-react\";\n\nconst h = hyper.styled(styles);\n\nconst spinnerElement = h(Spinner, { size: 16 });\n\nexport function LoadingButton({\n isLoading = false,\n onClick,\n active = false,\n icon = \"menu\",\n}) {\n return h(Button, {\n icon: isLoading ? spinnerElement : icon,\n large: true,\n minimal: true,\n onClick,\n active: active && !isLoading,\n });\n}\n\nexport function MapLoadingButton(props) {\n const { isLoading } = useMapStatus();\n const mapIsLoading = useMemo(() => isLoading, [isLoading]);\n return h(LoadingButton, { ...props, isLoading: mapIsLoading });\n}\n\ntype AnyChildren = React.ReactNode | React.ReactFragment;\n\nexport function FloatingNavbar({\n className,\n children,\n statusElement = null,\n}: {\n className?: string;\n children?: AnyChildren;\n statusElement?: AnyChildren;\n}) {\n return h(\"div.searchbar-holder\", { className }, [\n h(\"div.navbar-holder\", [\n h(Navbar, { className: \"searchbar panel\" }, children),\n ]),\n h.if(statusElement != null)(\n Card,\n { className: \"status-tongue\" },\n statusElement\n ),\n ]);\n}\n",".searchbar-holder\n transition: margin 300ms\n display: flex\n flex-direction: column\n margin: 0\n .navbar-holder\n display: flex\n flex-direction: row\n .searchbar\n width: 100%\n background-color: var(--panel-background-color)\n border-radius: 3px\n padding: 0 5px\n display: flex\n flex-direction: row\n align-items: center\n :global(.bp4-input-group)\n flex-grow: 1\n cursor: text\n &>*\n margin-right: 5px\n &:last-child\n margin-right: 0\n\n.status-tongue\n background-color: var(--panel-background-color)\n margin: 5px\n margin-top: -12px\n padding: 0\n padding-top: 12px\n\n@media screen and (max-width: 768px)\n .status-tongue\n max-width: 100vw\n margin: 0\n border-radius: 0\n margin-top: -3px\n","export * from \"./context\";\nexport * from \"./hooks\";\nexport * from \"./controls\";\nexport * from \"./terrain\";\nexport * from \"./debugger\";\nexport * from \"./focus-state\";\n","import {\n createContext,\n useContext,\n RefObject,\n useRef,\n useCallback,\n useMemo,\n useReducer,\n Reducer,\n} from \"react\";\nimport update from \"immutability-helper\";\nimport { Map } from \"mapbox-gl\";\nimport h from \"@macrostrat/hyper\";\nimport { MapPosition } from \"@macrostrat/mapbox-utils\";\n\ninterface MapStatus {\n isLoading: boolean;\n isInitialized: boolean;\n isStyleLoaded: boolean;\n}\n\ninterface MapCtx {\n mapRef: RefObject<Map | null>;\n status: MapStatus;\n position: MapPosition;\n}\n\nconst MapContext = createContext<MapCtx>({\n mapRef: null,\n status: {\n isLoading: false,\n isInitialized: false,\n isStyleLoaded: false,\n },\n position: null,\n});\n\nconst MapDispatchContext = createContext<React.Dispatch<MapAction>>(null);\n\nexport function useMapRef() {\n const { mapRef } = useContext(MapContext);\n return useMemo(() => mapRef, [mapRef]);\n}\n\nexport function useMapStatus() {\n const { status } = useContext(MapContext);\n return useMemo(() => status, [status]);\n}\n\nexport function useMapPosition() {\n const { position } = useContext(MapContext);\n return useMemo(() => position, [position]);\n}\n\nexport function useMapElement() {\n return useMapRef().current;\n}\n\nexport function useMap(): Map | null {\n return useMapRef().current;\n}\n\nexport function useMapDispatch() {\n return useContext(MapDispatchContext);\n}\n\ntype MapAction =\n | { type: \"set-loading\"; payload: boolean }\n | { type: \"set-initialized\"; payload: boolean }\n | { type: \"set-style-loaded\"; payload: boolean }\n | { type: \"map-moved\"; payload: MapPosition }\n | { type: \"set-map\"; payload: Map };\n\nfunction mapReducer(state: MapCtx, action: MapAction): MapCtx {\n switch (action.type) {\n case \"set-map\":\n return update(state, {\n mapRef: { current: { $set: action.payload } },\n status: { isInitialized: { $set: true } },\n });\n case \"set-loading\":\n return update(state, { status: { isLoading: { $set: action.payload } } });\n case \"set-initialized\":\n return update(state, {\n status: { isInitialized: { $set: action.payload } },\n });\n case \"set-style-loaded\":\n return update(state, {\n status: { isStyleLoaded: { $set: action.payload } },\n });\n case \"map-moved\":\n return { ...state, position: action.payload };\n }\n}\n\nexport function MapboxMapProvider({ children }) {\n const mapRef = useRef<Map | null>();\n const [value, dispatch] = useReducer<Reducer<MapCtx, MapAction>>(mapReducer, {\n mapRef,\n status: {\n isLoading: false,\n isInitialized: false,\n isStyleLoaded: false,\n },\n position: null,\n });\n\n return h(\n MapDispatchContext.Provider,\n { value: dispatch },\n h(MapContext.Provider, { value }, children)\n );\n}\n","import { RefObject } from \"react\";\nimport { useEffect } from \"react\";\nimport mapboxgl from \"mapbox-gl\";\nimport { toggleMapLabelVisibility } from \"@macrostrat/mapbox-utils\";\n\nexport function useMapConditionalStyle<T = any>(\n mapRef: RefObject<mapboxgl.Map>,\n state: T,\n operator: (map: mapboxgl.Map, a: T) => void\n) {\n /** Apply conditional style logic depending on a state value or object.\n * The operator function can operate on the Map and the state, and is applied on state changes\n * and on style load events. */\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n if (map.isStyleLoaded()) {\n operator(map, state);\n }\n const fn = () => operator(map, state);\n map.on(\"style.load\", fn);\n return () => {\n map.off(\"style.load\", fn);\n };\n }, [mapRef.current, state]);\n}\n\nconst _toggleMapLabels = (map, state) =>\n toggleMapLabelVisibility(map, state.mapShowLabels, state.omitLayers);\n\nexport function useMapLabelVisibility(\n mapRef: RefObject<mapboxgl.Map>,\n mapShowLabels: boolean,\n omitLayers: string[] = []\n) {\n useMapConditionalStyle(\n mapRef,\n { mapShowLabels, omitLayers },\n _toggleMapLabels\n );\n}\n","export * from \"./preprocess-styles\";\nexport * from \"./position\";\nexport * from \"./view-info\";\nexport * from \"./labels\";","import axios from \"axios\";\nimport { Style } from \"mapbox-gl\";\n\nexport function canonicalizeMapboxURL(url: string) {\n return url.replace(\"mapbox://styles/\", \"https://api.mapbox.com/styles/v1/\");\n}\n\nexport async function getMapboxStyle(\n style: string | object,\n params: { access_token: string; [k: string]: any }\n): Promise<Style> {\n if (typeof style !== \"string\") {\n return style as Style;\n }\n\n // We fetch styles if they aren't avaialable locally\n let { data, status, statusText } = await axios.get(\n canonicalizeMapboxURL(style),\n {\n params,\n }\n );\n if (status !== 200) {\n throw new Error(`Returned ${status}: ${statusText}`);\n }\n return data;\n}\n\nexport function mergeStyles(...styles) {\n let merged = { ...styles[0] };\n merged.sources = {};\n merged.layers = [];\n for (let s of styles) {\n merged.sources = { ...merged.sources, ...(s.sources ?? {}) };\n merged.layers = merged.layers.concat(s.layers);\n merged.sprite = s.sprite ?? merged.sprite;\n merged.glyphs = s.glyphs ?? merged.glyphs;\n }\n return merged;\n}\n","/** Utilities for dealing with map coordinates. */\nimport { FreeCameraOptions, MercatorCoordinate, Map } from \"mapbox-gl\";\n\ntype LatLng = {\n lng: number;\n lat: number;\n};\n\ntype TargetPosition = LatLng & {\n zoom: number;\n};\n\ntype CameraPosition = LatLng & {\n bearing?: number;\n pitch?: number;\n altitude: number;\n};\n\nexport type MapPosition = {\n camera: CameraPosition;\n target?: TargetPosition;\n};\n\nexport function getMapPosition(map: Map): MapPosition {\n const pos = map.getFreeCameraOptions();\n const cameraPos = pos.position.toLngLat();\n let center = map.getCenter();\n return {\n camera: {\n ...cameraPos,\n altitude: pos.position.toAltitude(),\n bearing: map.getBearing(),\n pitch: map.getPitch(),\n },\n target: {\n ...center,\n zoom: map.getZoom(),\n },\n };\n}\n\nexport function setMapPosition(map: Map, pos: MapPosition) {\n const { pitch = 0, bearing = 0, altitude } = pos.camera;\n const zoom = pos.target?.zoom;\n if (zoom != null && altitude == null && pitch == 0 && bearing == 0) {\n const { lng, lat } = pos.target;\n map.setCenter([lng, lat]);\n map.setZoom(zoom);\n } else {\n const { altitude, lng, lat } = pos.camera;\n const cameraOptions = new FreeCameraOptions(\n MercatorCoordinate.fromLngLat({ lng, lat }, altitude),\n [0, 0, 0, 1]\n );\n cameraOptions.setPitchBearing(pitch, bearing);\n map.setFreeCameraOptions(cameraOptions);\n }\n}\n","import { MapPosition } from \"./position\";\n\nexport interface MapViewInfo {\n mapIsRotated: boolean;\n mapUse3D: boolean;\n mapIsGlobal: boolean;\n mapIsLoaded: boolean;\n}\n\nexport function mapViewInfo(mapPosition: MapPosition | null): MapViewInfo {\n if (mapPosition == null) {\n return {\n mapIsRotated: false,\n mapUse3D: false,\n mapIsGlobal: false,\n mapIsLoaded: false,\n };\n }\n // Switch to 3D mode at high zoom levels or with a rotated map\n const pitch = mapPosition.camera.pitch ?? 0;\n const bearing = mapPosition.camera.bearing ?? 0;\n const alt = mapPosition.camera.altitude ?? 10000000;\n const mapIsRotated = pitch != 0 || bearing != 0;\n\n const mapIsGlobal = alt > 1600000;\n\n let mapUse3D = false;\n if (alt != null) {\n mapUse3D = (pitch > 0 && alt < 200000) || alt < 80000;\n }\n\n return {\n mapIsRotated,\n mapUse3D,\n mapIsGlobal,\n mapIsLoaded: true,\n };\n}\n","import mapboxgl, { Map } from \"mapbox-gl\";\n\nexport function removeMapLabels(\n style: mapboxgl.Style,\n shouldRemove: boolean = true\n): mapboxgl.Style {\n // Disable labels on the map\n for (let lyr of style.layers) {\n if (!(\"layout\" in lyr)) continue;\n const isLabelLayer = lyr.layout[\"text-field\"] != null;\n if (isLabelLayer) {\n lyr.layout.visibility = shouldRemove ? \"none\" : \"visible\";\n }\n }\n return style;\n}\n\nexport function toggleMapLabelVisibility(\n map: Map,\n visible: boolean,\n omitLayers: string[] = []\n) {\n // Disable labels on the map\n for (let lyr of map.getStyle().layers) {\n if (!(\"layout\" in lyr)) continue;\n const isLabelLayer = lyr.layout[\"text-field\"] != null;\n if (isLabelLayer && !omitLayers.includes(lyr.id)) {\n map.setLayoutProperty(lyr.id, \"visibility\", visible ? \"visible\" : \"none\");\n }\n }\n}\n","import h from \"@macrostrat/hyper\";\nimport Base from \"mapbox-gl-controls/lib/Base/Base\";\nimport Button from \"mapbox-gl-controls/lib/Button/Button\";\nimport {\n CompassControl as _CompassControl,\n ZoomControl as _ZoomControl,\n} from \"mapbox-gl-controls\";\nimport { Icon } from \"@blueprintjs/core\";\nimport { useRef, useEffect, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { useMapElement, useMapRef } from \"./context\";\n\nexport function MapControlWrapper({ className, control, options = {} }) {\n /** A wrapper for using Mapbox GL controls with a Mapbox GL map */\n const mapRef = useMapRef();\n const controlContainer = useRef<HTMLDivElement>();\n const controlRef = useRef<Base>();\n\n // Memoize the options object so that we don't continually recreate the control.\n const _options = useRef(options);\n useEffect(() => {\n _options.current = options;\n }, Object.values(options));\n\n useEffect(() => {\n if (mapRef.current == null) return;\n const ctrl = new control(_options);\n\n controlRef.current = ctrl;\n const controlElement = ctrl.onAdd(mapRef.current);\n controlContainer.current.appendChild(controlElement);\n return () => {\n controlRef.current?.onRemove();\n };\n }, [mapRef.current, controlContainer.current, control, _options]);\n\n return h(\"div.map-control-wrapper\", { className, ref: controlContainer });\n}\n\nexport function GlobeControl({ className }) {\n const map = useMapElement();\n\n const [mapIsGlobe, setIsGlobe] = useState(false);\n useEffect(() => {\n // @ts-ignore\n let proj = map?.getProjection().name;\n setIsGlobe(proj == \"globe\");\n }, [map]);\n const nextProj = mapIsGlobe ? \"mercator\" : \"globe\";\n const icon = mapIsGlobe ? \"map\" : \"globe\";\n\n return h(\n \"div.map-control.globe-control.mapboxgl-ctrl-group.mapboxgl-ctrl.mapbox-control\",\n { className },\n [\n h(\n \"button.globe-control-button\",\n {\n onClick() {\n if (map == null) return;\n // @ts-ignore\n map.setProjection(nextProj);\n setIsGlobe(nextProj == \"globe\");\n },\n },\n h(Icon, { icon })\n ),\n ]\n );\n}\n\n// Control for managing map 3D settings\n\nclass _ThreeDControl extends Base {\n /** A Mapbox GL control for entering 3D mode. */\n button: Button;\n\n constructor() {\n super();\n this.button = new Button();\n }\n\n insert() {\n this.addClassName(\"mapbox-3d\");\n this.button.setText(\"3D\");\n this.button.onClick(() => {\n this.map.easeTo({ pitch: 60, duration: 1000 });\n });\n this.addButton(this.button);\n }\n\n onAddControl() {\n this.insert();\n }\n}\n\nexport function CompassControl({ className, options }) {\n return h(MapControlWrapper, {\n className: classNames(\"compass-control\", className),\n control: _CompassControl,\n options,\n });\n}\n\nexport const ZoomControl = ({ className, options }) =>\n h(MapControlWrapper, {\n className: classNames(\"zoom-control\", className),\n control: _ZoomControl,\n options,\n });\n\nexport const ThreeDControl = ({ className, options }) =>\n h(MapControlWrapper, {\n className: classNames(\"map-3d-control\", className),\n control: _ThreeDControl,\n options,\n });\n","import { useMapRef } from \"./context\";\nimport { useEffect } from \"react\";\nimport { AnySourceImpl, AnyLayer, RasterDemSource, Map } from \"mapbox-gl\";\n\ntype SourceConfig = Partial<RasterDemSource>;\n\nexport function use3DTerrain(\n shouldEnable: boolean = true,\n sourceName: string = \"terrain\",\n sourceCfg: SourceConfig = {}\n) {\n const mapRef = useMapRef();\n const map = mapRef.current;\n useEffect(() => {\n if (map == null) return;\n setup3DTerrain(map, shouldEnable, sourceName, sourceCfg);\n map.on(\"style.load\", () => {\n setup3DTerrain(map, shouldEnable, sourceName, sourceCfg);\n });\n }, [map, shouldEnable, sourceName]);\n}\n\nexport function setup3DTerrain(\n map: mapboxgl.Map,\n shouldEnable: boolean = true,\n sourceName: string = \"terrain\",\n sourceCfg: SourceConfig = {}\n) {\n if (!map.isStyleLoaded()) {\n return;\n }\n if (shouldEnable) {\n addDefault3DStyles(map, sourceName, sourceCfg);\n }\n // Enable or disable terrain depending on our current desires...\n const currentTerrain = map.getTerrain();\n if (shouldEnable && currentTerrain == null) {\n map.setTerrain({ source: sourceName, exaggeration: 1 });\n } else if (!shouldEnable && currentTerrain != null) {\n map.setTerrain(null);\n }\n}\n\nfunction addDefault3DStyles(\n map,\n sourceName = \"terrain\",\n sourceCfg: Partial<RasterDemSource> = {}\n) {\n const style = map.getStyle();\n const hasTerrain = Object.values(style.sources).some(\n (source: AnySourceImpl) => source.type === \"raster-dem\"\n );\n\n const hasSky = Object.values(style.layers).some(\n (lyr: AnyLayer) => lyr.type == \"sky\"\n );\n\n if (!hasTerrain) {\n map.addSource(sourceName, {\n type: \"raster-dem\",\n url: \"mapbox://mapbox.mapbox-terrain-dem-v1\",\n tileSize: 512,\n maxzoom: 14,\n ...sourceCfg,\n });\n }\n\n if (!hasSky) {\n map.addLayer({\n id: \"sky\",\n type: \"sky\",\n paint: {\n \"sky-type\": \"atmosphere\",\n \"sky-atmosphere-sun\": [0.0, 0.0],\n \"sky-atmosphere-sun-intensity\": 15,\n },\n });\n }\n if (map.getFog() == null) {\n map.setFog({\n color: \"#ffffff\",\n // @ts-ignore\n \"space-color\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 4,\n \"hsl(215, 28%, 64%)\",\n 7,\n \"hsl(209, 92%, 85%)\",\n ],\n \"star-intensity\": [\"interpolate\", [\"linear\"], [\"zoom\"], 5, 0.35, 6, 0],\n range: [5, 15],\n });\n }\n}\n","import { Map } from \"mapbox-gl\";\nimport { useMapRef } from \"./context\";\nimport { useEffect } from \"react\";\n\nexport interface DebugOptions {\n showTileBoundaries?: boolean;\n showTerrainWireframe?: boolean;\n showCollisionBoxes?: boolean;\n}\n\nexport function MapDebugger({\n mapRef,\n ...rest\n}: DebugOptions & { mapRef: React.RefObject<Map> }) {\n const {\n showTileBoundaries = false,\n showTerrainWireframe = false,\n showCollisionBoxes = false,\n } = rest;\n\n const ref = mapRef ?? useMapRef();\n\n useEffect(() => {\n const map = ref.current;\n if (map == null) return;\n map.showTileBoundaries = showTileBoundaries;\n map.showTerrainWireframe = showTerrainWireframe;\n map.showCollisionBoxes = showCollisionBoxes;\n map.triggerRepaint();\n }, [\n ref.current,\n showTileBoundaries,\n showTerrainWireframe,\n showCollisionBoxes,\n ]);\n return null;\n}\n","/* Reporters and buttons for evaluating a feature's focus on the map. */\nimport { Intent, Button } from \"@blueprintjs/core\";\nimport { useMapRef } from \"./context\";\nimport classNames from \"classnames\";\nimport { useState, useRef, useEffect } from \"react\";\nimport bbox from \"@turf/bbox\";\nimport styles from \"./main.module.scss\";\nimport hyper from \"@macrostrat/hyper\";\nimport mapboxgl from \"mapbox-gl\";\nimport centroid from \"@turf/centroid\";\n\nconst h = hyper.styled(styles);\n\nexport enum PositionFocusState {\n CENTERED,\n NEAR_CENTER,\n OFF_CENTER,\n OUT_OF_PADDING,\n OUT_OF_VIEW,\n}\n\nexport function classNameForFocusState(pos: PositionFocusState): string {\n switch (pos) {\n case PositionFocusState.CENTERED:\n return \"centered\";\n case PositionFocusState.NEAR_CENTER:\n return \"near-center\";\n case PositionFocusState.OFF_CENTER:\n return \"off-center\";\n case PositionFocusState.OUT_OF_PADDING:\n return \"out-of-padding\";\n case PositionFocusState.OUT_OF_VIEW:\n return \"out-of-view\";\n }\n}\n\nexport function intentForFocusState(pos: PositionFocusState): Intent {\n switch (pos) {\n case PositionFocusState.CENTERED:\n case PositionFocusState.NEAR_CENTER:\n return Intent.NONE;\n case PositionFocusState.OFF_CENTER:\n return Intent.PRIMARY;\n case PositionFocusState.OUT_OF_PADDING:\n return Intent.SUCCESS;\n case PositionFocusState.OUT_OF_VIEW:\n return Intent.WARNING;\n }\n}\n\nexport function useMapEaseToCenter(position, padding) {\n const mapRef = useMapRef();\n\n const prevPosition = useRef<any>(null);\n const prevPadding = useRef<any>(null);\n // Handle map position easing (for both map padding and markers)\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n let opts = null;\n if (position != prevPosition.current) {\n opts ??= {};\n opts.center = position;\n }\n if (padding != prevPadding.current) {\n opts ??= {};\n opts.padding = padding;\n }\n if (opts == null) return;\n opts.duration = 800;\n map.flyTo(opts);\n map.once(\"moveend\", () => {\n /* Waiting until moveend to update the refs allows us to\n batch overlapping movements together, which increases UI\n smoothness when, e.g., flying to new panels */\n prevPosition.current = position;\n prevPadding.current = padding;\n });\n }, [position, padding]);\n}\n\nfunction greatCircleDistance(\n l1: mapboxgl.LngLatLike,\n l2: mapboxgl.LngLatLike\n): number {\n // get distance in radians between l1 and l2\n const dLon = ((l2[0] - l1[0]) * Math.PI) / 180;\n\n // Spherical law of cosines (accurate at large distances)\n const lat1 = (l1[1] * Math.PI) / 180;\n const lat2 = (l2[1] * Math.PI) / 180;\n return Math.acos(\n Math.sin(lat1) * Math.sin(lat2) +\n Math.cos(lat1) * Math.cos(lat2) * Math.cos(dLon)\n );\n}\n\nexport function getFocusState(\n map: mapboxgl.Map,\n location: mapboxgl.LngLatLike | GeoJSON.Geometry | null\n): PositionFocusState | null {\n /** Determine whether the infomarker is positioned in the viewport */\n if (location == null) return null;\n\n const mapCenter = map.getCenter();\n\n if (location.hasOwnProperty(\"lng\") && location.hasOwnProperty(\"lat\")) {\n location = [location.lng, location.lat];\n }\n\n if (!(location instanceof Array)) {\n // Get geometry bounding box\n const bounds = bbox(location);\n location = [(bounds[0] + bounds[2]) / 2, (bounds[1] + bounds[3]) / 2];\n // For non-points this is extremely simplistic at the moment\n }\n\n const dist = greatCircleDistance(location, mapCenter);\n if (dist > Math.PI / 4) {\n return PositionFocusState.OFF_CENTER;\n } else if (dist > Math.PI / 2) {\n return PositionFocusState.OUT_OF_VIEW;\n }\n\n const markerPos = map.project(location);\n const mapPos = map.project(mapCenter);\n const dx = Math.abs(markerPos.x - mapPos.x);\n const dy = Math.abs(markerPos.y - mapPos.y);\n const padding = map.getPadding();\n let { width, height } = map.getCanvas();\n width /= 2;\n height /= 2;\n\n if (dx < 10 && dy < 10) {\n return PositionFocusState.CENTERED;\n }\n if (dx < 150 && dy < 150) {\n return PositionFocusState.NEAR_CENTER;\n }\n\n if (\n markerPos.x > padding.left &&\n markerPos.x < width - padding.right &&\n markerPos.y > padding.top &&\n markerPos.y < height - padding.bottom\n ) {\n return PositionFocusState.OFF_CENTER;\n }\n\n if (\n markerPos.x > 0 &&\n markerPos.x < width &&\n markerPos.y > 0 &&\n markerPos.y < height\n ) {\n return PositionFocusState.OUT_OF_PADDING;\n }\n return PositionFocusState.OUT_OF_VIEW;\n}\n\nexport function useFocusState(\n position: mapboxgl.LngLatLike | GeoJSON.Geometry\n) {\n const map = useMapRef();\n const [focusState, setFocusState] = useState<PositionFocusState | null>(null);\n\n useEffect(() => {\n if (map.current == null || position == null) return;\n const cb = () => {\n setFocusState(getFocusState(map.current, position));\n };\n map.current?.on(\"move\", cb);\n cb();\n\n return () => {\n map.current?.off(\"move\", cb);\n };\n }, [map.current, position]);\n\n return focusState;\n}\n\nexport function isCentered(focusState: PositionFocusState) {\n return (\n focusState == PositionFocusState.CENTERED ||\n focusState == PositionFocusState.NEAR_CENTER\n );\n}\n\nfunction getCenterAndBestZoom(\n input: [number, number] | GeoJSON.Geometry | GeoJSON.BBox\n) {\n let box: GeoJSON.BBox;\n let center: [number, number] | null = null;\n let zoom: number | null = null;\n\n if (input instanceof Array) {\n if (input.length === 2) {\n point = input;\n } else if (input.length === 4) {\n box = input;\n }\n }\n\n if (input.hasOwnProperty(\"lat\") && input.hasOwnProperty(\"lng\")) {\n center = [input.lng, input.lat];\n }\n\n // If input is a geometry, get its bounding box\n if (input.hasOwnProperty(\"type\")) {\n if (input.type === \"Point\") {\n center = input.coordinates as [number, number];\n } else {\n box = bbox(input);\n }\n }\n\n if (box != null) {\n center = [(box[0] + box[2]) / 2, (box[1] + box[3]) / 2];\n const dist = greatCircleDistance(center, [box[0], box[1]]);\n zoom = Math.log2((Math.PI * 2) / dist) - 1;\n }\n return { center, zoom };\n}\n\nexport function LocationFocusButton({\n location,\n className,\n easeDuration = 800,\n focusState = null,\n ...rest\n}) {\n const map = useMapRef();\n const defaultFocusState = useFocusState(location);\n focusState ??= defaultFocusState;\n const _isCentered = isCentered(focusState);\n\n return h(\n Button,\n {\n minimal: true,\n icon: \"map-marker\",\n onClick() {\n if (focusState == PositionFocusState.CENTERED) {\n map.current?.resetNorth();\n } else {\n let opts = { duration: easeDuration };\n const { center, zoom } = getCenterAndBestZoom(location);\n if (center == null) {\n return;\n } else {\n opts = { ...opts, center };\n }\n if (zoom != null) {\n opts = { ...opts, zoom };\n }\n map.current?.flyTo(opts);\n }\n },\n className: classNames(\n \"recenter-button\",\n className,\n classNameForFocusState(focusState)\n ),\n intent: intentForFocusState(focusState),\n ...rest,\n },\n [_isCentered ? null : h(\"span.recenter-label\", \"Recenter\")]\n );\n}\n",".recenter-button :global(.bp4-icon):first-child {\n margin-left: -3px;\n margin-right: -3px;\n}\n.recenter-button.off-center {\n .recenter-label {\n display: none;\n }\n}\n.recenter-button.out-of-padding .recenter-label {\n opacity: 0.5;\n}\n.recenter-label {\n display: inline-block;\n padding-left: 1em;\n font-style: italic;\n font-size: 12px;\n}\n","import { Card } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport { InfoDrawerHeader } from \"./header\";\nimport classNames from \"classnames\";\nimport styles from \"./main.module.sass\";\nimport { ErrorBoundary } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\nexport function InfoDrawerContainer(props) {\n const className = classNames(\"infodrawer\", props.className);\n return h(Card, { ...props, className });\n}\n\nexport function LocationPanel(props) {\n const { children, className, loading = false, ...rest } = props;\n const cls = classNames(\"location-panel\", className, { loading });\n return h(InfoDrawerContainer, { className: cls }, [\n h(InfoDrawerHeader, rest),\n h(\"div.infodrawer-body\", h(\"div.infodrawer-contents\", h(ErrorBoundary, null, children))),\n ]);\n}\n","import { Icon, Button } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useToaster } from \"@macrostrat/ui-components\";\nimport { LngLatCoords, Elevation } from \"../location-info\";\nimport {\n LocationFocusButton,\n useFocusState,\n isCentered,\n} from \"@macrostrat/mapbox-react\";\n\nconst h = hyper.styled(styles);\n\nfunction PositionButton({ position }) {\n const focusState = useFocusState(position);\n\n return h(\"div.position-controls\", [\n h(LocationFocusButton, { location: position, focusState }, []),\n isCentered(focusState) ? h(CopyLinkButton, { itemName: \"position\" }) : null,\n ]);\n}\n\nfunction CopyLinkButton({ itemName, children, onClick, ...rest }) {\n const toaster = useToaster();\n\n let message = `Copied link`;\n if (itemName != null) {\n message += ` to ${itemName}`;\n }\n message += \"!\";\n\n return h(\n Button,\n {\n className: \"copy-link-button\",\n rightIcon: h(Icon, { icon: \"link\", size: 12 }),\n minimal: true,\n small: true,\n onClick() {\n navigator.clipboard.writeText(window.location.href).then(\n () => {\n toaster?.show({\n message,\n intent: \"success\",\n icon: \"clipboard\",\n timeout: 1000,\n });\n onClick?.();\n },\n () => {\n toaster?.show({\n message: \"Failed to copy link\",\n intent: \"danger\",\n icon: \"error\",\n timeout: 1000,\n });\n }\n );\n },\n ...rest,\n },\n children ?? \"Copy link\"\n );\n}\n\ninterface InfoDrawerHeaderProps {\n onClose: () => void;\n position: mapboxgl.LngLat;\n zoom?: number;\n elevation?: number;\n}\n\nexport function InfoDrawerHeader(props: InfoDrawerHeaderProps) {\n const { onClose, position, zoom = 7, elevation } = props;\n\n return h(\"header.location-panel-header\", [\n h(PositionButton, { position }),\n h(\"div.spacer\"),\n h(LngLatCoords, { position, zoom, className: \"infodrawer-header-item\" }),\n h.if(elevation != null)(Elevation, {\n elevation,\n className: \"infodrawer-header-item\",\n }),\n h(Button, { minimal: true, icon: \"cross\", onClick: onClose }),\n ]);\n}\n",".copy-link-button:global(.bp4-minimal.bp4-button)\n color: var(--text-subtle-color)\n svg\n fill: var(--text-subtle-color)\n\n.location-panel-header\n padding: 5px\n display: flex\n flex-direction: row\n align-items: center\n gap: 1em\n border-bottom: 1px solid var(--panel-rule-color)\n .spacer\n flex-grow: 1\n .left-icon\n padding: 7px\n\n .position-controls :global(.bp4-button)\n font-size: 12px !important\n\n.infodrawer-header-item\n font-size: 12px\n :global(.secondary)\n font-size: 0.9em\n color: var(--text-subtle-color)\n\n.infodrawer\n pointer-events: all\n max-height: 100%\n max-width: 100%\n height: fit-content\n display: flex\n flex-direction: column\n overflow: hidden\n &:global(.bp4-card)\n padding: 0\n\n &.loading\n .infodrawer-body\n overflow-y: hidden\n min-height: 70px\n\n.infodrawer-body\n flex-shrink: 1\n min-height: 0\n transition: min-height 0.5s ease\n overflow-y: scroll\n position: relative\n\n// TODO: remove this when we have a better way to handle card media queries\n@media screen and (max-width: 768px)\n .infodrawer\n border-radius: var(--panel-border-radius, 0px)\n","export * from \"./api\";\nexport * from \"./infinite-scroll\";\nexport * from \"./buttons\";\nexport * from \"./collapse-panel\";\nexport * from \"./link-card\";\nexport * from \"./file-upload\";\nexport * from \"./image\";\nexport * from \"./model-editor\";\nexport * from \"./toaster\";\nexport * from \"./util\";\nexport * from \"./citations\";\nexport * from \"./geodeepdive\";\nexport * from \"./text\";\nexport * from \"./dark-mode\";\nexport * from \"./form-controls\";\nexport * from \"./settings\";\nexport * from \"./error-boundary\";\nexport * from \"./patterns\";\nexport * from \"./collapse-card\";\nexport * from \"./modal-panel\";\nexport * from \"./page-layouts\";\n","export * from \"./provider\";\nexport * from \"./data-provider\";\nexport * from \"./frontend\";\nexport * from \"./paged\";\nexport * from \"./types\";\nexport * from \"./indexing\";\n","import { createContext, useState, useContext, Context } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { memoize } from \"underscore\";\nimport axios, {\n AxiosPromise,\n AxiosInstance,\n AxiosRequestConfig,\n AxiosResponse,\n} from \"axios\";\nimport useAsyncEffect from \"use-async-effect\";\nimport { debounce } from \"underscore\";\nimport { APIConfig, ResponseUnwrapper, APIConfigOptions } from \"./types\";\nimport { QueryParams } from \"../util/query-string\";\nimport { useMemoizedValue } from \"../util\";\n\n/*\nThe baseURL is used to prefix paths if they are not already absolute\nhttps://github.com/axios/axios/blob/master/lib/core/buildFullPath.js\n*/\ntype APIBase = { baseURL: string; axiosInstance: AxiosInstance };\ntype APIContextValue = APIBase & {\n config: APIConfig;\n};\n\ntype APIProviderCoreProps = APIConfigOptions &\n Partial<AxiosRequestConfig> & {\n config?: Partial<APIConfigOptions>;\n };\n\ntype APIProviderProps = APIProviderCoreProps & {\n context?: Context<APIContextValue>;\n children?: React.ReactChild;\n};\n\ntype APIContextType = Context<APIContextValue>;\n\nconst apiDefaults: APIConfig = {\n fullResponse: false,\n handleError: true,\n memoize: false,\n onError(err, opts) {\n let error = opts.error ?? opts;\n throw error;\n },\n onResponse(_) {},\n unwrapResponse(d) {\n return d;\n },\n};\n\nfunction removeUndefined(o1: object) {\n let obj = { ...o1 };\n Object.keys(obj).forEach((key) => {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n });\n return obj;\n}\n\nfunction splitConfig(\n props: APIProviderCoreProps\n): [AxiosRequestConfig, APIConfig] {\n const {\n config = {},\n // These should maybe be reworked into a legacy options set...\n fullResponse,\n handleError,\n memoize,\n onError,\n onResponse,\n unwrapResponse,\n ...axiosConfig\n } = props;\n\n let legacyConfig = removeUndefined({\n fullResponse,\n handleError,\n memoize,\n onError,\n onResponse,\n unwrapResponse,\n });\n\n const newConfig = { ...apiDefaults, ...legacyConfig, ...config };\n return [axiosConfig, newConfig];\n}\n\nconst defaultAxios = axios.create();\n\nfunction createAPIContext(\n defaultProps: APIProviderCoreProps = {}\n): APIContextType {\n const [axiosConfig, config] = splitConfig(defaultProps);\n\n const axiosInstance = axios.create(axiosConfig);\n\n const defaultValue = {\n axiosInstance,\n baseURL: axiosInstance.defaults.baseURL ?? \"\",\n config,\n };\n\n return createContext<APIContextValue>(defaultValue);\n}\n\nenum APIMethod {\n POST = \"POST\",\n GET = \"GET\",\n}\n\nconst APIContext = createAPIContext();\n\ninterface APIRequestInfo {\n route: string;\n params: QueryParams;\n method: APIMethod;\n opts?: APIConfigOptions;\n}\n\nasync function handleResult(\n ctx: APIContextValue,\n request: AxiosPromise,\n info: APIRequestInfo\n) {\n const { processOptions, buildURL } = APIHelpers(ctx);\n const { opts, method, params, route } = info;\n const cfg = processOptions(opts);\n\n let res: AxiosResponse | null = null;\n let error: Error | null = null;\n try {\n res = await request;\n cfg.onResponse(res);\n if (res.data != null) return cfg.unwrapResponse(res.data);\n } catch (err) {\n error = err;\n }\n error = error ?? Error(res.statusText || \"No data!\");\n if (cfg.handleError) {\n // Log errors if we're not throwing\n console.error(error);\n cfg.onError(error, {\n error: error,\n response: res,\n endpoint: buildURL(route, params),\n method,\n });\n } else {\n throw error;\n }\n}\n\nconst APIHelpers = (ctx: APIContextValue) => ({\n buildURL(route: string = \"\", params = {}) {\n // axios's getUri doesn't return baseURL for some inexplicable reason,\n // as of spring 2021.\n // this behavior could change sometime in the future...\n const uriPath = ctx.axiosInstance.getUri({\n url: route,\n params,\n });\n return ctx.baseURL + uriPath;\n },\n processOptions(opts: APIConfigOptions = {}): APIConfig {\n let o1: APIConfig = { ...ctx.config, ...opts };\n if (o1.fullResponse) o1.unwrapResponse = apiDefaults.unwrapResponse;\n return o1;\n },\n});\n\ninterface APIActions {\n post(\n route: string,\n params: QueryParams,\n payload: any,\n opts: APIConfigOptions\n ): Promise<any | null>;\n post(\n route: string,\n payload: any,\n opts?: APIConfigOptions\n ): Promise<any | null>;\n get(\n route: string,\n params: QueryParams,\n opts: APIConfigOptions\n ): Promise<any | null>;\n get(route: string, opts?: APIConfigOptions): Promise<any | null>;\n}\n\nconst APIActions = (ctx: APIContextValue): APIActions => {\n const { axiosInstance } = ctx;\n return {\n post(route: string, ...args) {\n let opts: APIConfigOptions, params: QueryParams, payload: any;\n if (args.length === 3) {\n [params, payload, opts] = args;\n } else if (args.length === 2) {\n [payload, opts] = args;\n } else if (args.length === 1) {\n [payload] = args;\n } else {\n throw \"No data to post\";\n }\n params ??= {};\n opts ??= {};\n\n const [axiosConfig, _] = splitConfig(opts);\n\n const req = axiosInstance.post(route, payload, {\n ...axiosConfig,\n params,\n });\n const info = { route, params, method: APIMethod.POST, opts };\n return handleResult(ctx, req, info);\n },\n get(route: string, ...args) {\n let params: QueryParams, opts: APIConfigOptions;\n if (args.length == 1) {\n [opts] = args;\n } else if (args.length == 2) {\n [params, opts] = args;\n }\n params ??= {};\n opts ??= {};\n\n const [axiosConfig, cfg] = splitConfig(opts);\n const fn = cfg.memoize ? memoize(axiosInstance.get) : axiosInstance.get;\n\n const request = fn(route, { ...axiosConfig, params });\n const info = { route, params, method: APIMethod.GET, opts };\n return handleResult(ctx, request, info);\n },\n };\n};\n\nfunction APIProvider(props: APIProviderProps) {\n /** Provider for APIContext\n\n can pass an alternative API context using \"context\" param\n */\n const { context = APIContext, children, ...rest } = props;\n const [axiosConfig, config] = splitConfig(rest);\n\n const axiosInstance = axios.create(axiosConfig);\n\n const value = {\n axiosInstance,\n baseURL: axiosInstance.defaults.baseURL ?? \"\",\n config,\n };\n return h(context.Provider, { value }, children);\n}\n\nconst useAPIActions = (ctx: APIContextType = APIContext) => {\n return APIActions(useContext(ctx));\n};\n\nconst useAPIHelpers = (ctx: APIContextType = APIContext) => {\n return APIHelpers(useContext(ctx));\n};\n\ntype APIHookOpts = Partial<\n APIConfig & {\n debounce?: number;\n context?: APIContextType;\n }\n>;\n\nfunction useAxiosInstance(context: APIContextType = APIContext) {\n return useContext(context).axiosInstance;\n}\n\nfunction useAPIResult<T>(\n route: string | null,\n params: QueryParams = null,\n opts: APIHookOpts | ResponseUnwrapper<any, T> = {}\n): T {\n /* React hook for API results */\n\n const paramsDep = useMemoizedValue(params);\n const deps = [route, paramsDep]; //...Object.values(params ?? {})];\n\n const [result, setResult] = useState<T | null>(null);\n\n if (typeof opts === \"function\") {\n opts = { unwrapResponse: opts };\n }\n\n const { debounce: _debounce, context, ...rest } = opts ?? {};\n let { get } = useAPIActions(context);\n\n const _getAPIData = async function () {\n if (route == null) {\n return setResult(null);\n }\n const res = await get(route, params, rest);\n return setResult(res);\n };\n\n const getAPIData =\n _debounce != null ? debounce(_getAPIData, _debounce) : _getAPIData;\n\n useAsyncEffect(getAPIData, deps);\n return result;\n}\n\nexport {\n createAPIContext,\n useAxiosInstance,\n APIContext,\n APIProvider,\n APIActions,\n APIHelpers,\n useAPIActions,\n useAPIResult,\n useAPIHelpers,\n};\n","export * from \"./state-hooks\";\nexport * from \"./layout-hooks\";\nexport * from \"./query-string\";\nexport * from \"./local-storage\";\nexport * from \"./json-view\";\nexport * from \"./scroll-helpers\";\nexport * from \"./migration-helpers\";\nexport * from \"./box-model\";\nexport * from \"./event-hooks\";\nexport * from \"./flexbox\";\n","import { Component, useState, useRef } from \"react\";\nimport { isEqual } from \"underscore\";\nimport update, { Spec } from \"immutability-helper\";\n\nexport function useImmutableState<S>(v: S): [S, (spec: Spec<S>) => void] {\n /** useState wrapper hook that requires updating using an \"immutability-helper\" spec */\n const [state, setState] = useState(v);\n const updateState = function (cset: Spec<S>) {\n const newState = update(state, cset);\n return setState(newState);\n };\n return [state, updateState];\n}\n\nexport function useMemoizedValue(\n obj: any,\n equalityFunction: (a: any, b: any) => boolean = isEqual\n) {\n /** Hook to keep a dependency up to date using a deep equals approach */\n const ref = useRef(obj);\n if ((obj == ref.current, equalityFunction(obj, ref.current))) {\n return ref.current;\n } else {\n ref.current = obj;\n return obj;\n }\n}\n\nexport class StatefulComponent<Props, State> extends Component<Props, State> {\n constructor(props: Props) {\n console.warn(\n \"StatefulComponent is deprecated. Use useImmutableState instead.\"\n );\n super(props);\n this.updateState.bind(this);\n }\n updateState(spec: Spec<State>) {\n const newState = update(this.state, spec);\n this.setState(newState);\n }\n}\n","import { useAsyncEffect } from \"use-async-effect\";\nimport {\n useLayoutEffect,\n useEffect,\n useState,\n useCallback,\n RefObject,\n} from \"react\";\n\ntype ElementSize = {\n height: number;\n width: number;\n};\n\ntype ElementSizeOpts = {\n trackWindowResize?: boolean;\n};\n\nfunction useElementSize(\n ref: RefObject<HTMLElement>,\n opts: ElementSizeOpts = {}\n): ElementSize | null {\n /** Also see https://github.com/Swizec/useDimensions */\n const { trackWindowResize = true } = opts;\n const [size, setSize] = useState<ElementSize>(null);\n\n const sizeCallback = useCallback(() => {\n if (ref.current == null) return;\n const { height, width } = ref.current.getBoundingClientRect();\n setSize({ height, width });\n }, [ref]);\n\n useLayoutEffect(sizeCallback, [ref]);\n\n // Also respond on window resize (if \"trackWindowResize\" is set)\n useEffect(() => {\n if (!trackWindowResize) return;\n window.addEventListener(\"resize\", sizeCallback);\n return function () {\n window.removeEventListener(\"resize\", sizeCallback);\n };\n }, [sizeCallback, trackWindowResize]);\n\n return size;\n}\n\nfunction useScrollOffset(ref: RefObject<HTMLElement>): number {\n const [offset, setOffset] = useState(0);\n useEffect(() => {\n ref.current?.addEventListener(\"scroll\", (evt) => {\n const el = evt.target as HTMLElement;\n setOffset(el.scrollTop);\n });\n }, [ref.current]);\n return offset;\n}\n\nexport { useElementSize, useScrollOffset, useAsyncEffect };\n","import { stringify, parse, StringifyOptions, ParseOptions } from \"query-string\";\n\n// API query string management\nexport type APIParams = Record<string, string>;\n\ninterface QueryArgs {\n [k: string]: any;\n}\n\nexport type QueryParams =\n | string\n | string[][]\n | QueryArgs\n | APIParams\n | URLSearchParams\n | null;\n\nfunction buildQueryString(\n params: QueryParams,\n opts: StringifyOptions = {}\n): string {\n let p: string;\n if (typeof params === \"string\") {\n p = params;\n } else {\n p = stringify(params, { arrayFormat: \"comma\", ...opts });\n }\n return p;\n}\n\nfunction buildQueryURL(\n route: string,\n params: QueryParams = {},\n opts?: StringifyOptions\n): string {\n const queryStr = buildQueryString(params, opts);\n if (queryStr == \"\") {\n return route;\n } else {\n return route + \"?\" + queryStr;\n }\n}\n\n// Base query string management\n\nfunction parseParams(paramString: string, opts?: ParseOptions) {\n const params = parse(paramString, {\n parseBooleans: true,\n parseNumbers: true,\n arrayFormat: \"comma\",\n ...opts,\n });\n // Return null unless we have params defined\n return Object.keys(params).length > 0 ? params : null;\n}\n\nfunction updateURL(joinWith: string, args: QueryArgs, opts?: StringifyOptions) {\n const params = buildQueryString(args, opts);\n let pathname = document.location.pathname;\n if (params != \"\") {\n pathname += joinWith + params;\n }\n window.history.replaceState({}, \"\", pathname);\n}\n\nconst getHashString = (hashString: string | null) =>\n parseParams(hashString ?? document.location.hash);\nconst setHashString = (args: QueryArgs, opts?: StringifyOptions) =>\n updateURL(\"#\", args, opts);\n\nconst getQueryString = (queryString: string | null) =>\n parseParams(queryString ?? document.location.search);\nconst setQueryString = (args: QueryArgs, opts?: StringifyOptions) =>\n updateURL(\"?\", args, opts);\n\nexport {\n buildQueryString,\n buildQueryURL,\n getQueryString,\n setQueryString,\n getHashString,\n setHashString,\n};\n","import {\n useMemo,\n useState,\n Dispatch,\n SetStateAction,\n useCallback,\n} from \"react\";\n\nclass LocalStorage<T> {\n name: string;\n constructor(name: string) {\n this.get = this.get.bind(this);\n this.set = this.set.bind(this);\n this.name = name;\n }\n get(): T | null {\n const str = window.localStorage.getItem(this.name);\n try {\n const obj = JSON.parse(str);\n return obj;\n } catch {\n return null;\n }\n }\n set(obj: T) {\n const str = JSON.stringify(obj);\n return window.localStorage.setItem(this.name, str);\n }\n\n remove() {\n window.localStorage.removeItem(this.name);\n }\n}\n\nfunction useStoredState<S>(\n key: string,\n initialState: S | (() => S),\n isValid: (S) => boolean = null\n): [S, Dispatch<SetStateAction<S>>, VoidFunction] {\n /** React hook for setting and getting values on local storage */\n const storage = useMemo(() => new LocalStorage<S>(key), [key]);\n let initialValue = storage.get();\n\n const validator = useCallback(\n (state: S) => {\n if (isValid != null) return isValid(state);\n if (state == null) return false;\n if (typeof state != typeof initialState) return false;\n if (typeof state == \"object\") {\n const expectedKeys = Object.keys(initialState);\n const actualKeys = Object.keys(state);\n if (expectedKeys.length != actualKeys.length) return false;\n for (const [key, value] of Object.entries(initialState)) {\n if (!actualKeys.includes(key)) return false;\n if (typeof value != typeof state[key]) return false;\n }\n }\n return true;\n },\n [initialState, isValid]\n );\n\n if (!validator(initialValue)) initialValue = null;\n const [state, _setState] = useState<S>(initialValue ?? initialState);\n\n const setState = useCallback(\n (nextState: S, validate = true) => {\n if (validate && !validator(nextState))\n throw `State ${nextState} is not valid.`;\n _setState(nextState);\n storage.set(nextState);\n },\n [validator]\n );\n\n const resetState = useCallback(() => {\n _setState(initialState);\n storage.remove();\n }, [initialState]);\n\n return [state, setState, resetState];\n}\n\nexport { LocalStorage, useStoredState };\n","import JSONTree from \"react-json-tree\";\nimport { hyperStyled, classed } from \"@macrostrat/hyper\";\nimport { inDarkMode, useDarkMode } from \"../dark-mode\";\nimport classNames from \"classnames\";\nimport styles from \"./main.module.scss\";\n\nconst h = hyperStyled(styles);\n\nconst monokai = {\n scheme: \"monokai\",\n author: \"wimer hazenberg (http://www.monokai.nl)\",\n base00: \"transparent\",\n base01: \"#383830\",\n base02: \"#49483e\",\n base03: \"#75715e\",\n base04: \"#a59f85\",\n base05: \"#f8f8f2\",\n base06: \"#f5f4f1\",\n base07: \"#f9f8f5\",\n base08: \"#f92672\",\n base09: \"#fd971f\",\n base0A: \"#f4bf75\",\n base0B: \"#a6e22e\",\n base0C: \"#a1efe4\",\n base0D: \"#66d9ef\",\n base0E: \"#ae81ff\",\n base0F: \"#cc6633\",\n};\n\nexport function JSONView(props) {\n const invertTheme = !inDarkMode();\n return h(\n \"div.json-view-container\",\n {\n className: classNames(props.className, {\n \"root-hidden\": props.hideRoot,\n \"invert-theme\": invertTheme,\n }),\n },\n h(JSONTree, {\n theme: monokai,\n invertTheme,\n ...props,\n })\n );\n}\n","import React, {\n createContext,\n useContext,\n useEffect,\n ReactNode,\n useCallback,\n} from \"react\";\nimport { Button, ButtonProps } from \"@blueprintjs/core\";\nimport { useStoredState } from \"./util/local-storage\";\nimport h from \"@macrostrat/hyper\";\n\ntype DarkModeState = { isEnabled: boolean; isAutoset: boolean };\n\ntype DarkModeUpdater = (enabled?: boolean) => void;\n\nconst systemDarkMode = (): DarkModeState => ({\n isEnabled: matcher?.matches ?? false,\n isAutoset: true,\n});\n\nconst ValueContext = createContext<DarkModeState>({\n isEnabled: false,\n isAutoset: false,\n});\nconst UpdaterContext = createContext<DarkModeUpdater | null>(null);\n\nconst matcher = window?.matchMedia(\"(prefers-color-scheme: dark)\");\n\ntype DarkModeProps = {\n children?: ReactNode;\n addBodyClasses: boolean;\n isEnabled?: boolean;\n followSystem?: boolean;\n};\n\nconst _DarkModeProvider = (props: DarkModeProps) => {\n const {\n addBodyClasses = true,\n isEnabled,\n followSystem = false,\n children,\n } = props;\n const [storedValue, updateValue, resetState] = useStoredState(\n \"ui-dark-mode\",\n systemDarkMode()\n );\n // Guards so that we don't error on an invalid stored value\n const value = {\n isEnabled: storedValue?.isEnabled ?? false,\n isAutoset: storedValue?.isAutoset ?? false,\n };\n\n useEffect(() => {\n if (!followSystem) return;\n updateValue(systemDarkMode());\n }, []);\n\n useEffect(() => {\n // Update value if isEnabled is provided\n if (isEnabled == null) return;\n updateValue({ isAutoset: false, isEnabled });\n }, [isEnabled]);\n\n // Manage dark mode body classes\n useEffect(() => {\n if (!addBodyClasses) return;\n if (value.isEnabled) {\n document.body.classList.add(\"bp4-dark\");\n } else {\n document.body.classList.remove(\"bp4-dark\");\n }\n }, [storedValue]);\n\n const update: DarkModeUpdater = (enabled: boolean | null) => {\n if (enabled == null) return resetState();\n const isEnabled = enabled ?? !value.isEnabled;\n updateValue({ isAutoset: false, isEnabled });\n };\n\n const onSystemChange = useCallback(\n (e) => {\n if (value.isAutoset || followSystem) updateValue(systemDarkMode());\n },\n [value.isAutoset, followSystem]\n );\n\n useEffect(() => {\n if (matcher == null) return;\n matcher.addEventListener(\"change\", onSystemChange);\n return () => {\n matcher.removeEventListener(\"change\", onSystemChange);\n };\n }, [onSystemChange]);\n\n return h(\n ValueContext.Provider,\n { value },\n h(UpdaterContext.Provider, { value: update }, children)\n );\n};\n\nconst DarkModeProvider = (props: DarkModeProps) => {\n // Ensure that only one provider is active for an application\n const parentCtx = useContext(UpdaterContext);\n if (parentCtx != null) return props.children ?? null;\n return h(_DarkModeProvider, props);\n};\n\nconst useDarkMode = () => useContext(ValueContext);\nconst inDarkMode = () => useDarkMode()?.isEnabled ?? false;\nconst darkModeUpdater = () => useContext(UpdaterContext);\n\nconst DarkModeButton = (\n props: ButtonProps & { allowReset: boolean; showText: boolean }\n) => {\n const { allowReset = true, showText = false, children, ...rest } = props;\n const { isEnabled, isAutoset } = useDarkMode();\n const icon = isEnabled ? \"flash\" : \"moon\";\n const update = darkModeUpdater();\n const onClick: React.MouseEventHandler = (event) => {\n if (update == null) {\n console.warn(\"No DarkModeProvider is available\");\n return;\n }\n if (allowReset && event.shiftKey) {\n update(null);\n return;\n }\n update(!isEnabled);\n };\n const active = !isAutoset;\n\n return h(Button, { active, ...rest, icon, onClick }, [\n h.if(showText)([isEnabled ? \"Light\" : \"Dark\"]),\n children,\n ]);\n};\n\nexport {\n DarkModeProvider,\n useDarkMode,\n inDarkMode,\n darkModeUpdater,\n DarkModeButton,\n};\n",".json-view-container.root-hidden {\n padding-left: 0.8em;\n}\n\n.flex-row {\n display: flex;\n flex-direction: row;\n}\n\n.flex-col {\n display: flex;\n flex-direction: column;\n}\n\n.flex-spacer {\n flex: 1;\n}\n","import { useState, useEffect, useMemo } from \"react\";\nimport { pairs } from \"d3-array\";\n\ninterface ScrollMarker {\n id: string;\n offset: number;\n}\n\nfunction useScrollMarkers(\n markers: ScrollMarker[],\n callback?: (marker: ScrollMarker | null) => void\n): ScrollMarker | null {\n /** Hook that notifies when we pass a scroll marker */\n const [lastMarker, setLastMarker] = useState<ScrollMarker | null>(null);\n const [offset, setOffset] = useState(null);\n\n useEffect(() => {\n const handleScroll = (event) =>\n setOffset(document.scrollingElement.scrollTop);\n window.addEventListener(\"scroll\", handleScroll);\n return () => {\n window.removeEventListener(\"scroll\", handleScroll);\n };\n });\n\n const markerPairs: [ScrollMarker, ScrollMarker][] = useMemo(() => {\n let sortedMarkers = [...markers];\n sortedMarkers.sort((a, b) => a.offset - b.offset);\n return pairs([\n { id: \"start\", offset: 0 },\n ...sortedMarkers,\n { id: \"end\", offset: Number.MAX_SAFE_INTEGER },\n ]);\n }, [markers]);\n\n useEffect(() => {\n for (const [m1, m2] of markerPairs) {\n if (offset >= m1.offset && offset < m2.offset) {\n let markerToSet = m1.id === \"start\" ? null : m1;\n if (markerToSet != lastMarker) {\n setLastMarker(markerToSet);\n callback?.(markerToSet);\n }\n }\n }\n }, [markerPairs, offset]);\n\n return lastMarker;\n}\n\nexport { useScrollMarkers, ScrollMarker };\n","import { useRef, useEffect } from \"react\";\n\nfunction usePrevious<T>(value: T): T {\n /** Use the previous value of a value */\n const ref = useRef<T>();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nexport function useComponentDidUpdate<\n Props extends object,\n State extends object\n>(\n componentUpdater: (prevProps: Props, prevState: State) => void,\n props = {} as Props,\n state = {} as State\n) {\n /** Run a function every time props and state changes.\n * Analogous to componentDidUpdate in a class component. This is useful for incrementally\n * transitioning from class to functional React components. */\n const prevProps = usePrevious<Props>(props);\n const prevState = usePrevious<State>(state);\n useEffect(\n () =>\n console.warn(\n \"The useComponentDidUpdate hook performs poorly and is only meant \" +\n \"to ease the transition to functional components. \" +\n \"Please transition to direct use of useEffect to remove this warning.\"\n ),\n []\n );\n useEffect(() => {\n if (prevProps == null) return;\n componentUpdater(prevProps, prevState ?? ({} as State));\n }, [...Object.values(props ?? {}), ...Object.values(state ?? {})]);\n}\n","export interface StrictPadding {\n paddingLeft: number;\n paddingRight: number;\n paddingTop: number;\n paddingBottom: number;\n}\n\nexport interface Padding extends StrictPadding {\n paddingV: number;\n paddingH: number;\n padding: number;\n}\n\nconst keys = function (main) {\n const allKeys = [\"\", \"V\", \"H\", \"Left\", \"Right\", \"Top\", \"Bottom\"];\n return allKeys.map((d) => main + d);\n};\n\nconst keyRemover = (type) =>\n function (obj) {\n let o1 = obj;\n for (let key of keys(type)) {\n delete o1[key];\n }\n return o1;\n };\n\nconst removeMargin = keyRemover(\"margin\");\nconst removePadding = keyRemover(\"padding\");\n\nconst extractMargin = function (obj, remove = false) {\n /*\n I'm really annoyed I can't find a third-party implementation\n of this that covers edge cases...\n This eventually is useful for a React version of the SVG \"margin convention\"\n https://bl.ocks.org/mbostock/3019563\n */\n let {\n marginLeft,\n marginRight,\n marginTop,\n marginBottom,\n marginV,\n marginH,\n margin,\n } = obj;\n if (margin == null) {\n margin = 0;\n }\n if (marginV == null) {\n marginV = margin;\n }\n if (marginH == null) {\n marginH = margin;\n }\n if (marginLeft == null) {\n marginLeft = marginH;\n }\n if (marginRight == null) {\n marginRight = marginH;\n }\n if (marginTop == null) {\n marginTop = marginV;\n }\n if (marginBottom == null) {\n marginBottom = marginV;\n }\n\n if (remove) {\n removeMargin(obj);\n }\n\n return { marginLeft, marginRight, marginTop, marginBottom };\n};\n\nconst extractPadding = function (obj, remove = false) {\n /*\n I'm really annoyed I can't find a third-party implementation\n of this that covers edge cases...\n This eventually is useful for a React version of the SVG \"padding convention\"\n https://bl.ocks.org/mbostock/3019563\n */\n let {\n paddingLeft,\n paddingRight,\n paddingTop,\n paddingBottom,\n paddingV,\n paddingH,\n padding,\n } = obj;\n if (padding == null) {\n padding = 0;\n }\n if (paddingV == null) {\n paddingV = padding;\n }\n if (paddingH == null) {\n paddingH = padding;\n }\n if (paddingLeft == null) {\n paddingLeft = paddingH;\n }\n if (paddingRight == null) {\n paddingRight = paddingH;\n }\n if (paddingTop == null) {\n paddingTop = paddingV;\n }\n if (paddingBottom == null) {\n paddingBottom = paddingV;\n }\n\n if (remove) {\n removePadding(obj);\n }\n\n return { paddingLeft, paddingRight, paddingTop, paddingBottom };\n};\n\nconst expandMargin = function (obj) {\n const margin = extractMargin(obj);\n let o1 = { ...obj };\n for (let key of [\"margin\", \"marginV\", \"marginH\"]) {\n delete o1[key];\n }\n return { ...o1, ...margin };\n};\n\nconst expandPadding = function (obj) {\n const margin = extractPadding(obj);\n let o1 = { ...obj };\n for (let key of [\"padding\", \"paddingV\", \"paddingH\"]) {\n delete o1[key];\n }\n return { ...o1, ...margin };\n};\n\nconst expandInnerSize = function (obj) {\n const n = expandPadding(obj);\n const { innerHeight, innerWidth, height, width, ...rest } = n;\n if (innerHeight != null) {\n if (n.height == null) {\n n.height = innerHeight + n.paddingTop + n.paddingBottom;\n }\n }\n if (innerWidth != null) {\n if (n.width == null) {\n n.width = innerWidth + n.paddingLeft + n.paddingRight;\n }\n }\n delete n.innerHeight;\n delete n.innerWidth;\n return n;\n};\n\nexport {\n extractMargin,\n extractPadding,\n expandMargin,\n expandPadding,\n expandInnerSize,\n removeMargin,\n removePadding,\n};\n","import { useEffect, useCallback } from \"react\";\n\nexport function useKeyHandler(\n handler: (event: KeyboardEvent) => void,\n options:\n | { event?: string; keys?: string[]; target?: HTMLElement }\n | any[] = undefined,\n deps: any[] | undefined = undefined\n) {\n if (Array.isArray(options)) {\n deps = options;\n options = {};\n }\n const { event = \"keydown\", keys = [], target = document } = options;\n const _callback = useCallback(\n (event: KeyboardEvent) => {\n if (keys.length === 0 || keys.includes(event.key)) {\n handler(event);\n }\n },\n [handler, keys]\n );\n\n return useEventHandler(target, event, _callback, deps);\n}\n\nexport function useEventHandler(\n target: HTMLElement | Document,\n event: string,\n handler: (event: Event) => void,\n deps: any[] | undefined = undefined\n) {\n const _callback = deps ? useCallback(handler, deps) : handler;\n\n useEffect(() => {\n const handleEvent = (event: Event) => {\n _callback(event);\n };\n\n target.addEventListener(event, handleEvent);\n return () => {\n target.removeEventListener(event, handleEvent);\n };\n }, [_callback, event, target]);\n}\n","import hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.scss\";\nimport { forwardRef } from \"react\";\nimport _Box from \"ui-box\";\nconst h = hyper.styled(styles);\n\nexport const Box = _Box;\n\nexport const FlexBox = forwardRef((props, ref) => {\n const { grow, shrink, className, style, textAlign, ...rest } = props;\n return h(Box, {\n className,\n flexGrow: grow,\n flexShrink: shrink,\n ...rest,\n });\n});\n\nexport function FlexRow(props) {\n return h(FlexBox, { display: \"flex\", flexDirection: \"row\", ...props });\n}\n\nexport function FlexCol(props) {\n return h(FlexBox, { display: \"flex\", flexDirection: \"row\", ...props });\n}\n\nexport function Spacer(props) {\n return h(FlexBox, { flex: 1, ...props });\n}\n","import h from \"@macrostrat/hyper\";\nimport { createContext, useContext, ReactNode } from \"react\";\nimport { QueryParams } from \"../util/query-string\";\nimport { APIConfigOptions } from \"./types\";\nimport { useAPIResult } from \"./provider\";\n\ninterface DataProviderCtx {\n [key: string]: string | object | object[] | null;\n}\n\ninterface DataProviderProps {\n children?: ReactNode;\n key: string;\n data: any;\n}\n\nconst APIResultContext = createContext<DataProviderCtx>({});\n\nexport function DataProvider(props: DataProviderProps) {\n const { children, key, data } = props;\n const baseValue = useContext(APIResultContext);\n const value = { ...baseValue, [key]: data };\n return h(APIResultContext.Provider, { value }, children);\n}\n\ninterface APIDataProviderProps extends Partial<APIConfigOptions> {\n key: string;\n route: string;\n params?: QueryParams;\n children?: ReactNode;\n}\n\nexport function APIDataProvider<T>(props: APIDataProviderProps) {\n const { route, params, children, key, ...opts } = props;\n const data: T | null = useAPIResult(route, params, opts);\n return h(DataProvider, { key, data }, children);\n}\n\nexport function useData(key: string) {\n return useContext(APIResultContext)[key];\n}\n","// @ts-nocheck\nimport { Component, cloneElement, isValidElement } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Spinner } from \"@blueprintjs/core\";\nimport { APIContext, APIActions, APIHelpers } from \"./provider\";\nimport { debounce } from \"underscore\";\nimport { APIConfig } from \"./types\";\nimport { QueryParams } from \"../util/query-string\";\nimport { JSONView } from \"../util/json-view\";\nimport { IndexingProvider } from \"./indexing\";\nimport { number } from \"fp-ts\";\n\ninterface APIPlaceholderProps {\n isLoading: boolean;\n}\n\nconst APIResultPlaceholder = (props: APIPlaceholderProps) => {\n return h(\"div.api-result-placeholder\", [h(Spinner)]);\n};\n\ntype ChildFunction<T> = (d: T) => React.ReactNode;\n\ntype APIChild<T> =\n | React.ReactElement<{ data: T; isLoading: boolean }>\n | ChildFunction<T>;\n\ntype APIViewProps<T> = {\n children?: APIChild<T>;\n placeholder: React.ComponentType<APIPlaceholderProps>;\n params: QueryParams;\n route: string | null;\n isLoading: boolean;\n data: T;\n totalCount?: number;\n pageCount?: number;\n};\n\ninterface APIResultProps<T> extends APIViewProps<T> {\n onSuccess: (d: T) => void;\n debounce: number;\n opts?: Partial<APIConfig>;\n}\n\ntype APIResultState<T> = { data: T; isLoading: boolean };\n\nclass APIResultView<T> extends Component<APIResultProps<T>, APIResultState<T>> {\n static contextType = APIContext;\n static defaultProps = {\n route: null,\n params: {},\n opts: {}, // Options passed to `get`\n debug: false,\n onSuccess: () => {},\n primaryKey: \"id\",\n // If placeholder is not defined, the render\n // method will be called with null data\n placeholder: APIResultPlaceholder,\n debounce: 300,\n children: data => {\n return h(JSONView, { data });\n }\n };\n _didFetch: boolean;\n _lazyGetData: () => Promise<void>;\n\n constructor(props, context) {\n super(props, context);\n\n this._didFetch = false;\n\n this.getData = this.getData.bind(this);\n this._lazyGetData = debounce(this.getData, this.props.debounce);\n\n this.state = { data: null, isLoading: false };\n this.getData();\n }\n\n buildURL(props = null) {\n const { route, params } = props ?? this.props;\n const { buildURL } = APIHelpers(this.context);\n return buildURL(route, params);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.debounce !== this.props.debounce) {\n this._lazyGetData = debounce(this.getData, this.props.debounce);\n }\n if (this.buildURL() === this.buildURL(prevProps)) return;\n\n return this._lazyGetData();\n }\n\n async getData() {\n this._didFetch = false;\n // if (this.context?.get == null) {\n // return\n // }\n const { route, params, opts } = this.props;\n if (route == null) {\n return;\n }\n const { get } = APIActions(this.context);\n this.setState({ isLoading: true });\n const data = await get(route, params, opts);\n this._didFetch = true;\n // Run side effects...\n this.props.onSuccess(data);\n this.setState({ data, isLoading: false });\n }\n\n renderInner() {\n const { data, isLoading } = this.state;\n const { children } = this.props;\n\n if (typeof children == \"function\") {\n return children(data) as React.ReactElement;\n } else if (isValidElement(children)) {\n return cloneElement(children, {\n data,\n isLoading\n });\n } else {\n throw new Error(\n \"The APIResultView component must have a single child element or a function\"\n );\n }\n }\n\n render() {\n const { data, isLoading } = this.state;\n const { placeholder } = this.props;\n if (data == null && placeholder != null) {\n return h(placeholder, { isLoading });\n }\n\n if (Array.isArray(data)) {\n return h(\n IndexingProvider,\n {\n totalCount: data.length,\n indexOffset: 0\n },\n this.renderInner()\n );\n }\n return this.renderInner();\n }\n}\n\nexport { APIResultView, APIResultProps, APIPlaceholderProps };\n","import { createContext, useContext } from \"react\";\nimport h from \"@macrostrat/hyper\";\n\ntype IndexingCtx = {\n totalCount?: number;\n indexOffset?: number;\n};\n\nconst IndexingContext = createContext<IndexingCtx | null>(null);\n\nfunction IndexingProvider(props: { children?: React.ReactNode } & IndexingCtx) {\n const { children, ...value } = props;\n return h(IndexingContext.Provider, { value }, children);\n}\n\nconst useIndexing = () => useContext(IndexingContext);\n\nexport { IndexingProvider, useIndexing };\n","// @ts-nocheck\nimport { Component } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Button, ButtonGroup, NonIdealState } from \"@blueprintjs/core\";\nimport { APIResultView } from \"./frontend\";\n\nconst Pagination = props => {\n const { currentPage, nextDisabled, setPage } = props;\n return h(ButtonGroup, [\n h(\n Button,\n {\n onClick: setPage(currentPage - 1),\n icon: \"arrow-left\",\n disabled: currentPage <= 0\n },\n \"Previous\"\n ),\n h(\n Button,\n {\n onClick: setPage(currentPage + 1),\n rightIcon: \"arrow-right\",\n disabled: nextDisabled\n },\n \"Next\"\n )\n ]);\n};\n\nclass PagedAPIView extends Component<any, any> {\n static defaultProps = {\n count: null,\n perPage: 20,\n topPagination: false,\n bottomPagination: true,\n extraPagination: null,\n opts: {}, // Options passed to GET\n params: {},\n getTotalCount(response) {\n const { headers } = response;\n return parseInt(headers[\"x-total-count\"]);\n }\n };\n constructor(props) {\n super(props);\n this.setPage = this.setPage.bind(this);\n this.params = this.params.bind(this);\n this.state = { currentPage: 0, count: null };\n }\n\n setPage(i) {\n return () => {\n return this.setState({ currentPage: i });\n };\n }\n\n renderPagination() {\n const { perPage } = this.props;\n const { count } = this.state;\n let nextDisabled = false;\n let paginationInfo = null;\n let currentPage = this.currentPage();\n const lastPage = this.lastPage();\n\n if (lastPage != null) {\n if (currentPage >= lastPage) {\n currentPage = lastPage;\n nextDisabled = true;\n }\n paginationInfo = h(\"div\", { disabled: true }, [\n `${currentPage + 1} of ${lastPage + 1} (${count} records)`\n ]);\n }\n\n return h(\"div.pagination-controls\", [\n h(Pagination, { currentPage, nextDisabled, setPage: this.setPage }),\n this.props.extraPagination,\n paginationInfo\n ]);\n }\n\n lastPage() {\n const { count } = this.state;\n const { perPage } = this.props;\n if (count == null) {\n return null;\n }\n let pages = Math.floor(count / perPage);\n if (count % perPage === 0) {\n pages -= 1;\n }\n return pages;\n }\n\n currentPage() {\n let { currentPage } = this.state;\n const lastPage = this.lastPage();\n if (lastPage != null && currentPage >= lastPage) {\n return lastPage;\n }\n if (currentPage < 0) {\n currentPage = 0;\n }\n return currentPage;\n }\n\n params() {\n const { params, perPage } = this.props;\n let { offset, limit, ...otherParams } = params;\n const currentPage = this.currentPage();\n if (offset == null) {\n offset = 0;\n }\n offset += currentPage * perPage;\n\n // This shouldn't happen but it does\n if (offset < 0) {\n offset = 0;\n }\n\n if (limit == null || limit > perPage) {\n limit = perPage;\n }\n\n return { offset, limit, ...otherParams };\n }\n\n render() {\n let {\n route,\n perPage,\n children,\n getTotalCount,\n primaryKey,\n count,\n topPagination,\n bottomPagination,\n extraPagination,\n params,\n opts,\n ...rest\n } = this.props;\n\n params = this.params();\n\n // Create new onResponse function\n const { onResponse: __onResponse } = opts;\n const onResponse = response => {\n count = getTotalCount(response);\n this.setState({ count });\n // Run inherited onResponse if it exists\n if (__onResponse != null) {\n return __onResponse(response);\n }\n };\n\n // Options for get\n opts = { ...opts, onResponse };\n\n const _children = data => {\n if (this.state.count === 0) {\n return h(NonIdealState, { icon: \"search\", title: \"No results\" });\n }\n // @ts-ignore\n return children(data);\n };\n\n return h(\"div.pagination-container\", rest, [\n topPagination ? this.renderPagination() : undefined,\n h(APIResultView, { route, params, opts, primaryKey }, _children),\n bottomPagination ? this.renderPagination() : undefined\n ]);\n }\n}\n\nexport { PagedAPIView, Pagination };\n","import { AxiosRequestConfig } from \"axios\";\n\nexport type ResponseUnwrapper<T = any, U = any> = (input: T) => U;\n\nexport interface APIConfig {\n fullResponse: boolean;\n handleError: boolean;\n memoize: boolean;\n onError(e: Error, opts: any): void;\n onResponse<T>(a: T): void;\n unwrapResponse: ResponseUnwrapper;\n}\n\nexport type APIConfigOptions = Partial<APIConfig> & AxiosRequestConfig;\n","// @ts-nocheck\nimport h from \"@macrostrat/hyper\";\nimport update, { Spec } from \"immutability-helper\";\nimport React, { useReducer, useEffect, useRef, useCallback, memo } from \"react\";\nimport { Spinner, NonIdealState } from \"@blueprintjs/core\";\nimport { APIParams, QueryParams } from \"./util/query-string\";\nimport { useInView } from \"react-intersection-observer\";\n\nimport { APIResultProps, useAPIActions } from \"./api\";\nimport { JSONView } from \"./util/json-view\";\nimport { IndexingProvider } from \"./api/indexing\";\n\ninterface ScrollState<T = object> {\n items: T[];\n scrollParams: APIParams;\n count: number | null;\n error?: any;\n hasMore: boolean;\n isLoadingPage: number | null;\n pageIndex: number;\n}\n\ntype ScrollResponseItems<T> = Pick<\n ScrollState<T>,\n \"count\" | \"hasMore\" | \"items\"\n>;\n\ninterface InfiniteScrollProps<T> extends Omit<APIResultProps<T>, \"params\"> {\n getCount(r: T): number;\n getNextParams(r: T, params: QueryParams): QueryParams;\n getItems(r: T): any;\n hasMore(res: T): boolean;\n totalCount?: number;\n // Only allow more restrictive parameter types\n params: APIParams;\n className?: string;\n itemComponent?: React.ComponentType<{ data: T; index: number }>;\n loadingPlaceholder?: React.ComponentType;\n emptyPlaceholder?: React.ComponentType;\n finishedPlaceholder?: React.ComponentType;\n resultsComponent?: React.ComponentType<{ data: T[] }>;\n perPage?: number;\n startPage?: number;\n}\n\ntype UpdateState<T> = { type: \"update-state\"; spec: Spec<ScrollState<T>> };\ntype LoadNextPage = {\n type: \"load-next-page\";\n page: number;\n};\ntype LoadPage<T> = {\n type: \"load-page\";\n params: APIParams;\n dispatch: Dispatch<T>;\n callback<T>(action: LoadPage<T>): void;\n};\n\ntype ScrollAction<T> = UpdateState<T> | LoadNextPage | LoadPage<T>;\n\ntype Reducer<T> = (\n state: ScrollState<T>,\n action: ScrollAction<T>\n) => ScrollState<T>;\ntype Dispatch<T> = (action: ScrollAction<T>) => void;\n\nfunction infiniteScrollReducer<T>(\n state: ScrollState<T>,\n action: ScrollAction<T>\n) {\n switch (action.type) {\n case \"update-state\":\n return update(state, action.spec);\n case \"load-page\":\n action.callback(action);\n return update(state, {\n // @ts-ignore\n isLoadingPage: { $set: action.params.page ?? 0 },\n });\n }\n}\n\nfunction InfiniteScroll(props) {\n const { hasMore, children, className, loadMore } = props;\n const { ref, inView } = useInView({ rootMargin: \"0px 0px -100px 0px\" });\n\n useEffect(() => {\n if (!hasMore || !inView) return;\n loadMore();\n }, [inView, hasMore]);\n\n return h(\"div.infinite-scroll-container\", { className }, [\n children,\n //h.if(state.isLoadingPage != null)(placeholder),\n h(\"div.bottom-marker\", { ref }),\n ]);\n}\n\nconst Placeholder = (props) => {\n const {\n loading,\n title = \"No results yet\",\n description = null,\n ...rest\n } = props;\n\n return h(\"div.placeholder\", [\n h(NonIdealState, {\n icon: \"search-template\",\n className: \"placeholder-inner\",\n title,\n description,\n ...rest,\n }),\n ]);\n};\n\nconst LoadingPlaceholder = (props: {\n itemName?: string;\n scrollParams?: APIParams;\n pageIndex?: number | null;\n loadedCount?: number;\n totalCount?: number;\n perPage?: number;\n}) => {\n const { perPage = 10, loadedCount = 0, itemName = \"results\" } = props;\n const { totalCount = 0 } = props;\n\n let description = null;\n if (totalCount != null) {\n const loadedPages = Math.ceil(loadedCount / perPage);\n const totalPages = Math.ceil(totalCount / perPage);\n description = `Page ${loadedPages} of ${totalPages}`;\n }\n\n return h(Placeholder, {\n icon: h(Spinner),\n title: \"Loading \" + itemName,\n description,\n });\n};\n\nfunction EmptyPlaceholder() {\n return h(Placeholder, {\n icon: \"inbox\",\n title: \"No results\",\n });\n}\n\nfunction FinishedPlaceholder({ totalCount, ...rest }: { totalCount?: number }) {\n const description = totalCount != null ? `${totalCount} total items` : null;\n return h(Placeholder, {\n icon: null,\n title: \"No more results\",\n description,\n ...rest,\n });\n}\n\nfunction InfiniteScrollView<T>(props: InfiniteScrollProps<T>) {\n /*\n A container for cursor-based pagination. This is built for\n the GeoDeepDive API right now, but it can likely be generalized\n for other uses.\n */\n const {\n route,\n params,\n opts,\n placeholder,\n className,\n itemComponent = JSONView,\n loadingPlaceholder = LoadingPlaceholder,\n emptyPlaceholder = EmptyPlaceholder,\n finishedPlaceholder = FinishedPlaceholder,\n resultsComponent = \"div.results\",\n perPage = 10,\n startPage = 0,\n } = props;\n const { get } = useAPIActions();\n const { getCount, getNextParams, getItems, hasMore } = props;\n\n const initialState: ScrollState<T> = {\n items: [],\n scrollParams: params,\n count: null,\n error: null,\n hasMore: true,\n isLoadingPage: null,\n pageIndex: startPage,\n };\n\n const pageOffset = 0;\n\n const [state, dispatch] = useReducer<Reducer<T>>(\n infiniteScrollReducer,\n initialState\n );\n\n const loadPage = useCallback(\n async (action: LoadPage<T>) => {\n const res = await get(route, action.params, opts);\n console.log(\"Loaded page with params\", action.params);\n const itemVals = getItems(res);\n const ival = { $push: itemVals };\n const nextLength = state.items.length + itemVals.length;\n const count = getCount(res);\n console.log(state.items);\n // if (state.isLoadingPage == null) {\n // // We have externally cancelled this request (by e.g. moving to a new results set)\n // console.log(\"Loading cancelled\")\n // return\n // }\n\n let p1: QueryParams = getNextParams(res, params);\n let hasNextParams = p1 != null;\n console.log(\"Next page parameters\", p1);\n\n action.dispatch({\n type: \"update-state\",\n spec: {\n items: ival,\n // @ts-ignore\n scrollParams: { $set: p1 },\n pageIndex: { $set: state.pageIndex + 1 },\n count: { $set: count },\n hasMore: {\n $set: hasMore(res) && itemVals.length > 0 && hasNextParams,\n },\n isLoadingPage: { $set: null },\n },\n });\n },\n [state.items, route, params, opts]\n );\n\n const loadMore = useCallback(() => {\n dispatch({\n type: \"load-page\",\n params: state.scrollParams,\n dispatch,\n // @ts-ignore\n callback: loadPage,\n });\n }, [state.scrollParams, loadPage, route, params, opts]);\n\n const isInitialRender = useRef(true);\n const loadInitialData = useCallback(\n function () {\n // Don't run on initial render\n if (isInitialRender.current) {\n isInitialRender.current = false;\n return;\n }\n console.log(\"Resetting to initial data\");\n /*\n Get the initial dataset\n */\n // const success = await get(route, params, opts);\n // parseResponse(success, true)\n //if (state.items.length == 0 && state.isLoadingPage == null) return\n dispatch({ type: \"update-state\", spec: { $set: initialState } });\n //await loadNext(0)\n },\n [isInitialRender, route, params, opts]\n );\n\n useEffect(loadInitialData, [props.route, props.params]);\n\n if (state == null) return null;\n\n //useAsyncEffect(getInitialData, [route, params]);\n\n //const showLoader = state.isLoadingPage != null && state.items.length > 0\n\n const data = state.items;\n const isLoading = state.isLoadingPage != null;\n const isEmpty = data.length == 0 && !isLoading;\n const isFinished = !state.hasMore && !isLoading;\n const totalCount = props.totalCount ?? state.count;\n\n return h(\n InfiniteScroll,\n {\n pageStart: -1,\n loadMore,\n hasMore: state.hasMore && state.isLoadingPage == null,\n loader: placeholder,\n useWindow: true,\n className,\n },\n [\n h.if(isEmpty)(emptyPlaceholder),\n h.if(!isEmpty)(IndexingProvider, { totalCount, indexOffset: 0 }, [\n h(\n resultsComponent,\n { data },\n data.map((d, i) => {\n return h(itemComponent, { key: i, data: d, index: i });\n })\n ),\n // @ts-ignore\n h.if(isLoading)(loadingPlaceholder, {\n totalCount,\n scrollParams: state.scrollParams,\n pageIndex: state.pageIndex,\n loadedCount: data.length,\n perPage,\n }),\n // @ts-ignore\n h.if(isFinished)(finishedPlaceholder, { totalCount }),\n ]),\n ]\n );\n}\n\nInfiniteScrollView.defaultProps = {\n hasMore(a, b) {\n return true;\n },\n getItems(d) {\n return d;\n },\n getCount(d) {\n return null;\n },\n getNextParams(response, params) {\n const lastPage = params.page ?? 0;\n return { ...params, page: lastPage + 1 };\n },\n placeholder: h(Spinner),\n};\n\nexport { InfiniteScrollView };\n","import h from \"@macrostrat/hyper\";\nimport { Button, Intent, Spinner } from \"@blueprintjs/core\";\nimport classNames from \"classnames\";\n\nconst SaveButton = function (props) {\n let { className, inProgress, disabled, ...rest } = props;\n className = classNames(className, \"save-button\");\n let icon: React.ReactNode | string = \"floppy-disk\";\n if (inProgress) {\n icon = h(Spinner, { size: 20 });\n disabled = true;\n }\n\n return h(Button, {\n icon,\n intent: Intent.SUCCESS,\n className,\n disabled,\n ...rest,\n });\n};\n\nconst CancelButton = function (props) {\n let { className, ...rest } = props;\n className = classNames(className, \"cancel-button\");\n\n return h(Button, {\n intent: Intent.WARNING,\n className,\n ...rest,\n });\n};\n\nconst EditButton = function (props) {\n let { isEditing, intent, icon, className, ...rest } = props;\n if (isEditing) {\n if (intent == null) {\n intent = null;\n }\n if (icon == null) {\n icon = \"tick\";\n }\n } else {\n if (intent == null) {\n intent = Intent.PRIMARY;\n }\n if (icon == null) {\n icon = \"edit\";\n }\n }\n\n className = classNames(className, \"edit-button\");\n\n return h(Button, {\n icon,\n intent,\n className,\n ...rest,\n });\n};\n\nexport { SaveButton, EditButton, CancelButton };\nexport * from \"./delete-button\";\n","import { useState, ReactNode } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Intent, Button, ButtonProps, Alert } from \"@blueprintjs/core\";\n\ninterface P extends ButtonProps {\n handleDelete(): void;\n alertContent?: ReactNode;\n itemDescription?: ReactNode;\n}\n\nfunction DeleteButton(props: P) {\n let {\n handleDelete = () => {},\n alertContent,\n itemDescription = \"this item\",\n ...rest\n } = props;\n const [alertIsShown, setIsShown] = useState(false);\n\n alertContent =\n alertContent ??\n h([\"Are you sure you want to delete \", itemDescription, \"?\"]);\n\n const onCancel = (e) => {\n setIsShown(false);\n e.stopPropagation();\n };\n\n const onClick = (e) => {\n setIsShown(true);\n e.stopPropagation();\n };\n\n const intent = Intent.DANGER;\n const icon = \"trash\";\n\n return h([\n h(Button, { onClick, icon, intent, ...rest }),\n h(\n Alert,\n {\n isOpen: alertIsShown,\n cancelButtonText: \"Cancel\",\n confirmButtonText: \"Delete\",\n icon,\n intent,\n onCancel,\n onConfirm: (e) => {\n handleDelete();\n onCancel(e);\n },\n },\n alertContent\n ),\n ]);\n}\n\nexport { DeleteButton };\n","// This component should be refactored into a shared UI component\n// @ts-nocheck\nimport { Component } from \"react\";\nimport h, { classed } from \"@macrostrat/hyper\";\nimport { Button, Collapse } from \"@blueprintjs/core\";\n//import \"./main.sass\";\n\nconst HeaderButton = classed(Button, \"ms-header-button\");\n\ntype P = {\n storageID?: string;\n title: string;\n headerRight: React.ReactNode;\n};\n\nclass CollapsePanel extends Component<P, { isOpen: boolean }> {\n static defaultProps = {\n title: \"Panel\",\n // `storageID` prop allows storage of state in\n // localStorage or equivalent.\n storageID: null,\n };\n constructor(props) {\n super(props);\n this.state = { isOpen: false };\n }\n\n componentWillMount() {\n // Set open state from local storage if it is available\n const { storageID } = this.props;\n if (storageID == null) {\n return;\n }\n const isOpen = this.savedState()[storageID];\n if (isOpen == null) {\n return;\n }\n return this.setState({ isOpen });\n }\n\n /*\n Next functions are for state management\n across pages, if storageID prop is passed\n */\n savedState() {\n try {\n const st = window.localStorage.getItem(\"collapse-panel-state\");\n return JSON.parse(st) || {};\n } catch (error) {\n return {};\n }\n }\n\n checkLocalStorage() {\n // Set open state from local storage if it is available\n const { storageID } = this.props;\n if (storageID == null) {\n return;\n }\n let isOpen = this.savedState()[storageID] || null;\n if (isOpen == null) {\n isOpen = false;\n }\n return this.setState({ isOpen });\n }\n\n componentDidUpdate(prevProps, prevState) {\n // Refresh object in local storage\n const { storageID } = this.props;\n if (storageID == null) {\n return;\n }\n const { isOpen } = this.state;\n if (isOpen === prevState.isOpen) {\n return;\n }\n const s = this.savedState();\n s[storageID] = isOpen;\n const j = JSON.stringify(s);\n return window.localStorage.setItem(\"collapse-panel-state\", j);\n }\n\n render() {\n let { title, children, storageID, headerRight, ...props } = this.props;\n const { isOpen } = this.state;\n\n const icon = isOpen ? \"collapse-all\" : \"expand-all\";\n const onClick = () => this.setState({ isOpen: !isOpen });\n\n if (headerRight == null) {\n headerRight = null;\n }\n\n return h(\"div.collapse-panel\", props, [\n h(\"div.panel-header\", [\n h(HeaderButton, { icon, minimal: true, onClick, fill: true }, [\n h(\"h2\", title),\n h(\"span.expander\"),\n ]),\n headerRight,\n ]),\n h(Collapse, { isOpen }, children),\n ]);\n }\n}\n\nexport { CollapsePanel };\n","import h from \"@macrostrat/hyper\";\nimport classNames from \"classnames\";\n\nfunction LinkCard(props) {\n let {\n linkComponent = \"a\",\n to,\n href,\n className,\n elevation = 0,\n ...rest\n } = props;\n\n className = classNames(\n \"link-card\",\n \"bp4-card\",\n `bp4-elevation-${elevation}`,\n className\n );\n\n if (linkComponent == \"a\" && href == null) href = to;\n return h(linkComponent, { to, href, className, ...rest });\n}\n\nexport { LinkCard };\n","// @ts-nocheck\n//import \"./main.sass\";\nimport { Component } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Tag } from \"@blueprintjs/core\";\nimport Dropzone from \"react-dropzone\";\nimport classNames from \"classnames\";\n\nconst FileListItem = function (props) {\n const { file } = props;\n return h(Tag, { icon: \"document\" }, file.name);\n};\n\nconst FileList = function (props) {\n let { files, placeholder } = props;\n if (placeholder == null) {\n placeholder = \"Choose file...\";\n }\n if (files == null || !(files.length > 0)) {\n return placeholder;\n }\n return h(\n \"div.files\",\n files.map((file) => h(FileListItem, { file }))\n );\n};\n\ninterface FileUploadProps {\n files: any[];\n onAddFile(): void;\n onCancel(): void;\n}\n\nclass FileUploadComponent extends Component<FileUploadProps> {\n static defaultProps = {\n onAddFile() {},\n onCancel() {},\n };\n\n constructor(props) {\n super(props);\n this.renderDropzone = this.renderDropzone.bind(this);\n }\n\n renderDropzone({ getRootProps, getInputProps, isDragActive }) {\n const { files } = this.props;\n const rootProps = getRootProps();\n const className = classNames(\"file-upload\", {\n \"dropzone-active\": isDragActive,\n });\n const inputProps = getInputProps();\n inputProps.style = {};\n inputProps.className = \"bp4-large\";\n let msg = \"Drop files here\";\n if (!isDragActive) {\n msg += \", or click to upload\";\n }\n\n return h(\"div\", { className, ...rootProps }, [\n h(\"label.bp4-file-input.bp4-large\", [\n h(\"input\", inputProps),\n h(\"div.bp4-file-upload-input\", [\n h(FileList, { files, placeholder: msg }),\n ]),\n ]),\n ]);\n }\n\n render() {\n return h(\n Dropzone,\n {\n onDrop: this.props.onAddFile,\n onFileDialogCancel: this.props.onCancel,\n },\n this.renderDropzone\n );\n }\n}\n\nexport { FileUploadComponent };\n","import { Component } from \"react\";\nimport { findDOMNode } from \"react-dom\";\nimport h from \"@macrostrat/hyper\";\n\ntype ConfinedImageProps = {\n maxHeight?: number | null;\n maxWidth?: number | null;\n src: string;\n};\n\ntype ConfinedImageState = {\n imageSize?: {\n width: number;\n height: number;\n };\n};\n\nclass ConfinedImage extends Component<ConfinedImageProps, ConfinedImageState> {\n constructor(props) {\n super(props);\n this.state = { imageSize: null };\n }\n\n render() {\n let { maxHeight, maxWidth, src } = this.props;\n const { imageSize } = this.state;\n if (maxHeight == null) {\n maxHeight = 200;\n }\n if (maxWidth == null) {\n maxWidth = 200;\n }\n if (imageSize != null) {\n if (maxHeight > imageSize.height) {\n maxHeight = imageSize.height;\n }\n if (maxWidth > imageSize.width) {\n maxWidth = imageSize.width;\n }\n }\n\n const imgStyle = {\n maxHeight,\n maxWidth,\n };\n\n const style = { maxHeight, maxWidth };\n return h(\"div.image-container\", { style }, [\n h(\"img\", { src, style: imgStyle }),\n ]);\n }\n\n componentDidMount() {\n const el = findDOMNode(this);\n // @ts-ignore\n const img = el.querySelector(\"img\");\n return (img.onload = () => {\n const height = img.naturalHeight / 2;\n const width = img.naturalWidth / 2;\n return this.setState({ imageSize: { height, width } });\n });\n }\n}\n\nexport { ConfinedImage };\n","// @ts-nocheck\nimport { Component, createContext, ReactElement, useContext } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { DateInput } from \"@blueprintjs/datetime\";\nimport { EditableText } from \"@blueprintjs/core\";\nimport { EditButton, DeleteButton } from \"./buttons\";\nimport { StatefulComponent } from \"./util\";\nimport classNames from \"classnames\";\nimport update, { Spec } from \"immutability-helper\";\n\nimport \"@blueprintjs/datetime/lib/css/blueprint-datetime.css\";\n\nconst ModelEditorContext = createContext<any>({});\n\nfunction ModelEditButton(props): ReactElement {\n const { isEditing, actions } = useContext(ModelEditorContext);\n return h(EditButton, {\n isEditing,\n onClick: actions.toggleEditing,\n ...props,\n });\n}\n\ninterface ModelEditorProps<T> {\n model: T;\n canEdit: boolean;\n isEditing: boolean;\n persistChanges(v: T, spec: Spec<T>): void;\n}\n\ninterface ModelEditorState<T> {\n isEditing: boolean;\n isPersisting: boolean | null;\n error: any | null;\n model: T;\n initialModel: T;\n}\n\nclass ModelEditor<T> extends StatefulComponent<\n ModelEditorProps<T>,\n ModelEditorState<T>\n> {\n static defaultProps = {\n canEdit: true,\n };\n constructor(props) {\n super(props);\n this.getValue = this.getValue.bind(this);\n this.hasChanges = this.hasChanges.bind(this);\n this.onChange = this.onChange.bind(this);\n this.toggleEditing = this.toggleEditing.bind(this);\n this.persistChanges = this.persistChanges.bind(this);\n this.onPersistChanges = this.onPersistChanges.bind(this);\n this.state = {\n isEditing: props.isEditing || false,\n isPersisting: null,\n error: null,\n model: props.model,\n initialModel: props.model,\n };\n }\n\n render(): ReactElement {\n const { model } = this.state;\n const { canEdit } = this.props;\n const isEditing = this.state.isEditing && canEdit;\n const actions = (() => {\n let onChange, persistChanges, toggleEditing, updateState;\n return ({ onChange, toggleEditing, updateState, persistChanges } = this);\n })();\n const value = {\n actions,\n model,\n isEditing,\n canEdit,\n hasChanges: this.hasChanges,\n };\n return h(ModelEditorContext.Provider, { value }, this.props.children);\n }\n\n getValue(field) {\n return this.state.model[field];\n }\n\n hasChanges(field) {\n if (field == null) {\n return this.state.initialModel !== this.state.model;\n }\n return this.state.initialModel[field] !== this.state.model[field];\n }\n\n onChange(field) {\n return (value) => {\n // @ts-ignore\n return this.updateState({ model: { [field]: { $set: value } } });\n };\n }\n\n toggleEditing() {\n const spec: any = { $toggle: [\"isEditing\"] };\n if (this.state.isEditing) {\n spec.model = { $set: this.state.initialModel };\n }\n return this.updateState(spec);\n }\n\n onPersistChanges() {\n return this.persistChanges(null);\n }\n\n async persistChanges(spec: any | undefined) {\n const { persistChanges } = this.props;\n // Persist changes expects a promise\n\n let updatedModel = this.state.model;\n if (spec != null) {\n // If changeset is provided, we need to integrate\n // it before proceeding\n console.log(spec);\n updatedModel = update(this.state.model, spec);\n }\n console.log(updatedModel);\n\n let ret = null;\n if (persistChanges == null) {\n return null;\n }\n try {\n this.updateState({ isPersisting: { $set: true } });\n\n // Compute a shallow changeset of the model fields\n const changeset: any = {};\n for (let k in updatedModel) {\n const v = updatedModel[k];\n if (v === this.state.initialModel[k]) {\n continue;\n }\n changeset[k] = v;\n }\n\n ret = await persistChanges(updatedModel, changeset);\n } catch (err) {\n console.error(err);\n } finally {\n spec = { isPersisting: { $set: false } };\n\n if (ret != null) {\n // @ts-ignore\n const newModel = update(this.state.initialModel, { $merge: ret });\n console.log(newModel);\n spec.model = { $set: newModel };\n spec.initialModel = { $set: newModel };\n }\n this.updateState(spec);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps == null) {\n return;\n }\n if (prevProps === this.props) {\n return;\n }\n const spec: any = {};\n if (\n this.props.isEditing !== prevProps.isEditing &&\n this.props.isEditing !== this.state.isEditing\n ) {\n spec.isEditing = { $set: this.props.isEditing };\n }\n if (this.props.model !== prevProps.model) {\n spec.initialModel = { $set: this.props.model };\n if (!this.props.isEditing) {\n // If we aren't in edit mode, we want to propagate changes into the model\n spec.model = { $set: this.props.model };\n }\n }\n return this.updateState(spec);\n }\n}\n\nfunction EditableMultilineText(props: any): React.ReactNode {\n let { field, className } = props;\n const { actions, model, isEditing } = useContext(ModelEditorContext);\n let value = model[field];\n const onChange = actions.onChange(field);\n className = classNames(className, `field-${field}`);\n\n if (isEditing) {\n value = h(EditableText, {\n placeholder: `Edit ${field}`,\n multiline: true,\n className,\n onChange,\n value,\n });\n }\n return h(\"div.text\", { className }, value);\n}\n\nclass EditableDateField extends Component<any, any> {\n static contextType = ModelEditorContext;\n render() {\n const { field } = this.props;\n const { actions, model, isEditing } = this.context;\n const value = model[field];\n if (!isEditing) {\n return h(\"div.date-input.disabled\", value);\n }\n return h(DateInput, {\n className: \"date-input\",\n value: new Date(value),\n formatDate: (date) => date.toLocaleDateString(),\n placeholder: \"MM/DD/YYYY\",\n showActionsBar: true,\n onChange: actions.onChange(field),\n parseDate(d) {\n return new Date(d);\n },\n });\n }\n}\n\nconst useModelEditor = () => useContext(ModelEditorContext);\n\nexport {\n ModelEditor,\n ModelEditorContext,\n ModelEditButton,\n EditableMultilineText,\n EditableDateField,\n useModelEditor,\n};\n","import { Toaster } from \"@blueprintjs/core\";\nimport h from \"@macrostrat/hyper\";\nimport {\n createContext,\n useRef,\n useState,\n useContext,\n RefObject,\n useEffect,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport type { IToasterProps, ToasterInstance } from \"@blueprintjs/core\";\n\n// We might want to refactor this\nfunction createAppToaster() {\n return Toaster.create();\n}\n\ntype ContextualToasterProps = Omit<IToasterProps, \"ref\" | \"usePortal\"> & {};\n\nexport type ToasterContextProps = ContextualToasterProps & {\n children?: React.ReactNode;\n toasts?: React.ReactNode;\n containerRef?: RefObject<HTMLElement>;\n};\n\nconst ToasterCtx = createContext<ToasterInstance>(null);\n\nfunction ContextualToaster({ containerRef, setToaster, ...rest }) {\n const toaster = h(Toaster, {\n usePortal: false,\n ref: (t) => setToaster(t),\n ...rest,\n });\n if (containerRef?.current == null) {\n return toaster;\n }\n return createPortal(toaster, containerRef.current);\n}\n\nfunction ToasterContext(props: ToasterContextProps) {\n const { children, toasts, containerRef, ...rest } = props;\n const [toaster, setToaster] = useState<ToasterInstance>(null);\n\n return h(ToasterCtx.Provider, { value: toaster }, [\n h(ContextualToaster, { containerRef, setToaster, ...rest }, toasts),\n children,\n ]);\n}\n\nfunction useToaster(): ToasterInstance | null {\n return useContext(ToasterCtx);\n}\n\nexport { createAppToaster, ToasterContext, useToaster };\n","export * from \"./author-list\";\n","import h from \"@macrostrat/hyper\";\n\nconst Author = function (props) {\n const { name, highlight } = props;\n\n if (name === highlight) {\n return h(\"b.author\", name);\n }\n return h(\"span.author\", name);\n};\n\nexport interface AuthorListProps {\n names: string[];\n highlight?: string;\n limit?: number;\n}\n\nconst AuthorList = function (props: AuthorListProps) {\n const { names, highlight } = props;\n const A = (name) => h(Author, { name, highlight });\n\n if (!Array.isArray(names)) {\n return A(names);\n }\n\n const n = names.length;\n if (n === 0) {\n return null;\n }\n if (n === 1) {\n return A(names[0]);\n }\n\n const limit = props.limit ?? n;\n const truncated = n > limit;\n\n const penultimateIx = limit - 1;\n const L = [];\n for (const [i, name] of names.entries()) {\n L.push(A(name));\n L.push(i < penultimateIx && n != 2 ? \", \" : \" \");\n if (i === penultimateIx - 1 && n != 1 && !truncated) {\n L.push(\"and \");\n }\n if (i >= limit - 1 && truncated) {\n L.push(\"et al.\");\n break;\n }\n }\n\n return h(\"span.author-list\", L);\n};\n\nexport { AuthorList };\n","export * from \"./reference-card\";\n","// @ts-nocheck\nimport { Component } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Card, Classes } from \"@blueprintjs/core\";\n\nimport { APIResultView } from \"../api\";\nimport { LinkCard } from \"../link-card\";\nimport { AuthorList } from \"../citations\";\n\nconst VolumeNumber = function(props) {\n const { volume, number } = props;\n const _ = [];\n if (volume != null && volume !== \"\") {\n _.push(h(\"span.volume\", null, volume));\n }\n if (number != null && number !== \"\") {\n _.push(\"(\");\n _.push(h(\"span.number\", number));\n _.push(\")\");\n }\n if (_.length === 0) {\n return null;\n }\n _.push(\", \");\n return h(\"span\", null, _);\n};\n\nfunction InnerCard(props: { [k: string]: any }) {\n let { title, author, doi, journal, identifier, volume, number, year } = props;\n try {\n ({ id: doi } = identifier.find(d => d.type === \"doi\"));\n } catch (error) {\n doi = null;\n }\n\n const names = author.map(function(d) {\n const n = d.name.split(\", \");\n n.reverse();\n return n.join(\" \");\n });\n\n return h([\n h(AuthorList, { names, limit: 3 }),\n \", \",\n h(\"span.title\", title),\n \", \",\n h(\"span.journal\", journal),\n \", \",\n h(VolumeNumber, { volume, number }),\n h(\"span.year\", year),\n \", \",\n h(\"span.doi-title\", \"doi: \"),\n h(\"span.doi\", doi)\n ]);\n}\n\nfunction GeoDeepDiveSwatchInnerBare(props: any) {\n return h(Card, { interactive: false, className: \"gdd-article\" }, [\n // @ts-ignore\n h(InnerCard, props)\n ]);\n}\n\nclass GeoDeepDiveSwatch extends Component<any, any> {\n render() {\n let url;\n const { link, ...rest } = this.props;\n try {\n ({ url } = link.find(d => d.type === \"publisher\"));\n } catch (error) {\n url = null;\n }\n return h(\n LinkCard,\n {\n href: url,\n target: \"_blank\",\n className: \"gdd-article\"\n },\n // @ts-ignore\n h(InnerCard, rest)\n );\n }\n}\n\nfunction GeoDeepDiveRelatedTerms(props: { data: any[] }) {\n const { data } = props;\n return h([\n h(\"h1\", \"Related Terms\"),\n h(\n \"ul#related_terms\",\n data.map(item => h(\"li\", item[0]))\n )\n ]);\n}\n\nconst PlaceholderReference = () => {\n return h(\n Card,\n {\n className: `gdd-article ${Classes.SKELETON}`\n },\n \"word \".repeat(35)\n );\n};\n\nconst GDDReferenceCard = (props: { docid: string }) => {\n const { docid } = props;\n return h(\n APIResultView,\n {\n route: \"https://geodeepdive.org/api/articles\",\n params: { docid },\n\n opts: {\n unwrapResponse(res) {\n return res.success.data[0];\n },\n memoize: true\n },\n placeholder: PlaceholderReference\n },\n data => {\n try {\n return h(GeoDeepDiveSwatch, data);\n } catch (error) {\n return null;\n }\n }\n );\n};\n\nexport {\n GDDReferenceCard,\n GeoDeepDiveSwatch,\n GeoDeepDiveSwatchInnerBare,\n GeoDeepDiveRelatedTerms\n};\n","import h from \"@macrostrat/hyper\";\nimport { ReactElement } from \"react\";\n\nconst Markdown = ({ src, ...rest }): ReactElement =>\n h(\"div\", { dangerouslySetInnerHTML: { __html: src, ...rest } });\n\nconst HTML = Markdown;\n\nexport { Markdown, HTML };\n","export * from \"./slider\";\n","import {hyperStyled} from \"@macrostrat/hyper\";\nimport { useState, useEffect } from \"react\";\nimport {\n InputGroup,\n Button,\n ButtonGroup,\n Collapse,\n Slider,\n Card,\n Intent,\n FormGroup,\n ISliderProps,\n} from \"@blueprintjs/core\";\nimport { Spec } from \"immutability-helper\";\nimport classNames from \"classnames\";\nimport styles from \"./main.module.sass\";\n\nconst h = hyperStyled(styles);\n\nconst ControlledSlider = (props: ISliderProps) => {\n const [value, setValue] = useState<number>(props.value);\n const onChange = (v) => {\n setValue(v), props.onChange?.(v);\n };\n useEffect(() => setValue(props.value), [props.value]);\n\n return h(Slider, { ...props, onChange, value });\n};\n\nconst NullableSlider = (props: ISliderProps) => {\n let { value, showTrackFill, className, ...rest } = props;\n if (value == null) {\n value = rest.min ?? 0;\n showTrackFill = false;\n className = classNames(className, \"mui-slider-disabled\");\n }\n\n const handleChange = props.onRelease ?? props.onChange;\n const onClick = () => handleChange?.(null);\n\n return h(\"div.nullable-slider\", [\n h(ControlledSlider, { ...rest, className, value, showTrackFill }),\n h(\"div.controls\", [\n h(Button, {\n minimal: true,\n onClick,\n small: true,\n icon: \"cross\",\n disabled: props.value == null,\n intent: props.value == null ? null : Intent.DANGER,\n }),\n ]),\n ]);\n};\n\nexport { ControlledSlider, NullableSlider };\n",".mui-slider-disabled\n .bp4-slider-handle\n display: none\n\n.nullable-slider\n display: flex\n flex-direction: row\n align-items: center\n .bp4-slider\n flex-grow: 1\n margin-right: 1em\n margin-left: 1em\n .controls\n margin-top: -22px\n","import h from \"@macrostrat/hyper\";\nimport { ReactNode } from \"react\";\nimport { createContext, useState, useContext } from \"react\";\nimport update, { Spec } from \"immutability-helper\";\nimport { LocalStorage } from \"../util/local-storage\";\n\ninterface SettingsProviderProps {\n children: ReactNode;\n storageID?: string;\n}\n\n// Could rework this to use `constate` or similar\n\nfunction createSettingsContext<T extends object>(defaultValue: T) {\n /** Function that creates a context with an updateable settings object\n */\n const Context = createContext<T>(defaultValue);\n\n type SettingsUpdateSpec = Spec<T>;\n type Updater = (spec: SettingsUpdateSpec) => void;\n const UpdateContext = createContext<Updater | null>(null);\n\n const Provider = function (props: SettingsProviderProps & T) {\n /*\n A settings provider that can be used with LocalStorage\n */\n let { storageID, children, ...defaultSettings } = props;\n // Update from local storage\n let storage = null;\n console.log(\"Setting up SettingsProvider [ui-components]\");\n if (storageID != null) {\n // Merge initial options if set\n storage = new LocalStorage(storageID);\n const v = storage.get() || {};\n console.log(\"Loading from local storage\", v);\n // @ts-ignore\n defaultSettings = update(defaultSettings, { $merge: v });\n }\n\n // @ts-ignore\n const [settings, setState] = useState<T>(defaultSettings);\n const updateState = function (spec: SettingsUpdateSpec) {\n const newSettings = update(settings, spec);\n setState(newSettings);\n if (storage != null) {\n return storage.set(newSettings);\n }\n };\n\n return h(Context.Provider, { value: settings }, [\n h(UpdateContext.Provider, { value: updateState }, children),\n ]);\n };\n\n const useValue = () => useContext(Context);\n\n const useUpdater = (key: string | undefined) => {\n const updater = useContext(UpdateContext);\n if (key == null) return updater;\n //@ts-ignore\n return (spec: Spec<any>) => updater({ [key]: spec });\n };\n\n return [Provider, useValue, useUpdater];\n}\n\nconst [SettingsProvider, useSettings, useSettingsUpdater] =\n createSettingsContext<object>({});\n\n// Deprecated: this is kind of confusing\nconst updateSettings = function (func) {\n // Update settings using `immutability-helper` semantics\n //@ts-ignore\n const updater = useSettingsUpdater();\n return function () {\n //@ts-ignore\n return updater(func(...arguments));\n };\n};\n\nexport { SettingsProvider, useSettings, updateSettings, createSettingsContext };\n","// @ts-nocheck\nimport { Component, ReactNode } from \"react\";\nimport { Callout } from \"@blueprintjs/core\";\nimport h from \"@macrostrat/hyper\";\n\nfunction ErrorCallout(props) {\n const { error, title = \"Unknown error\" } = props;\n\n return h(\n Callout,\n {\n title,\n icon: \"error\",\n intent: \"danger\",\n },\n h(\n \"p\",\n null,\n props.description ?? error?.toString() ?? \"No description available\"\n )\n );\n}\n\ntype ErrorBoundaryProps = {\n description?: string;\n title?: string;\n fallback?: ReactNode;\n override?: boolean;\n onCatch?(error: Error, info: any): void;\n};\ntype ErrorBoundaryState = {\n error: Error | null;\n};\n\nclass ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error) {\n // Update state so the next render will show the fallback UI.\n return { error };\n }\n\n componentDidCatch(error, info) {\n // You can also log the error to an error reporting service\n console.log(error);\n this.props.onCatch?.(error, info);\n }\n\n render() {\n const { error } = this.state;\n const { override = false } = this.props;\n if (error != null || override) {\n if (this.props.fallback != null) return this.props.fallback;\n\n // You can render any custom fallback UI\n return h(ErrorCallout, {\n error,\n description:\n this.props.description ??\n error?.toString() ??\n \"No description available\",\n title: this.props.title ?? \"A rendering error has occured\",\n });\n }\n\n return this.props.children;\n }\n}\n\nexport { ErrorBoundary, ErrorCallout };\n","import {\n createPatternImage,\n loadImage,\n ImageDataFormat,\n} from \"./composite-image\";\nimport { memoize } from \"underscore\";\n\nconst vizBaseURL = \"https://visualization-assets.s3.amazonaws.com\";\nconst patternBaseURL = vizBaseURL + \"/geologic-patterns/png\";\nconst lineSymbolsURL = vizBaseURL + \"/geologic-line-symbols/png\";\n\nfunction _geologyPatternBaseURL(\n symbol: string | null,\n baseURL = patternBaseURL\n) {\n if (symbol == null) return null;\n return baseURL + `/${symbol}.png`;\n}\n\nasync function _geologyPatternURL(\n patternID: string | null,\n color = null,\n patternColor = null\n): Promise<string> {\n const url = _geologyPatternBaseURL(patternID);\n if (color == null && patternColor == null) {\n return url;\n }\n\n const img = (await createPatternImage(\n {\n patternURL: url,\n color,\n patternColor,\n },\n ImageDataFormat.Base64\n )) as string;\n return img;\n}\n\nconst geologyPatternURL = _geologyPatternURL;\n\nconst geologyPatternImage = async (...args) =>\n loadImage(await geologyPatternImage(...args));\n\nexport { geologyPatternURL, geologyPatternImage };\nexport * from \"./composite-image\";\n","interface PatternFillSpec {\n color: string;\n patternURL?: string;\n patternColor?: string;\n}\n\nfunction loadImage(url): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.addEventListener(\"load\", () => resolve(img));\n img.addEventListener(\"error\", (err) => reject(err));\n img.src = url;\n });\n}\n\nfunction recolorPatternImage(\n ctx: CanvasRenderingContext2D,\n img: HTMLImageElement,\n backgroundColor: string,\n color: string,\n backgroundAlpha = 1,\n alpha = 1\n) {\n // create hidden canvas\n ctx.drawImage(img, 0, 0, img.width, img.height);\n\n //ctx.fillStyle = imgColor;\n //ctx.fillRect(0, 0, 40, 40);\n\n // overlay using source-atop to follow transparency\n ctx.globalCompositeOperation = \"source-in\";\n //ctx.globalAlpha = 0.3;\n ctx.globalAlpha = alpha;\n ctx.fillStyle = color;\n ctx.fillRect(0, 0, img.width, img.height);\n\n ctx.globalCompositeOperation = \"destination-over\";\n\n //const map = ctx.getImageData(0, 0, img.width, img.height);\n\n ctx.globalAlpha = backgroundAlpha;\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(0, 0, img.width, img.height);\n\n //ctx.putImageData(map, 0, 0);\n\n // replace image source with canvas data\n return ctx;\n}\n\nfunction createSolidColorImage(ctx, imgColor, alpha = 1) {\n ctx.globalAlpha = alpha;\n ctx.fillStyle = imgColor;\n ctx.fillRect(0, 0, 40, 40);\n return ctx;\n //return ctx.getImageData(0, 0, 40, 40);\n}\n\nenum ImageDataFormat {\n HTMLImageData = \"image-data\",\n Base64 = \"base64\",\n}\n\nasync function createPatternImage(\n spec: PatternFillSpec,\n outputFormat = ImageDataFormat.HTMLImageData\n): Promise<ImageData | string> {\n let ctx;\n var canvas = document.createElement(\"canvas\");\n if (spec.patternURL == null) {\n canvas.width = 40;\n canvas.height = 40;\n ctx = createSolidColorImage(\n canvas.getContext(\"2d\"),\n spec.color ?? spec.patternColor\n );\n } else {\n const img = await loadImage(spec.patternURL);\n canvas.width = img.width;\n canvas.height = img.height;\n ctx = canvas.getContext(\"2d\");\n ctx = recolorPatternImage(\n ctx,\n img,\n spec.color,\n spec.patternColor ?? \"#000000\"\n );\n }\n switch (outputFormat) {\n case ImageDataFormat.HTMLImageData:\n return ctx.getImageData(0, 0, canvas.width, canvas.height);\n case ImageDataFormat.Base64:\n return canvas.toDataURL();\n }\n}\n\nexport { recolorPatternImage, createPatternImage, loadImage, ImageDataFormat };\n","import h from \"@macrostrat/hyper\";\nimport classNames from \"classnames\";\nimport { Collapse, Card, ICardProps, ICollapseProps } from \"@blueprintjs/core\";\n\ntype CollapseCardProps = ICardProps &\n Pick<ICollapseProps, \"isOpen\" | \"keepChildrenMounted\" | \"transitionDuration\">;\n\nexport function CollapseCard(props: CollapseCardProps) {\n /** Collapsible card taken from COSMOS visualizer */\n const {\n isOpen = true,\n keepChildrenMounted = true,\n transitionDuration = 500,\n className,\n children,\n ...rest\n } = props;\n return h(Collapse, { isOpen, keepChildrenMounted, transitionDuration }, [\n h(\"div.collapse-card-outer\", [\n h(\n Card,\n {\n elevation: 1,\n className: classNames(className, \"mui-collapse-card\"),\n ...rest,\n },\n h(\"div.inner\", null, children)\n ),\n ]),\n ]);\n}\n","import { hyperStyled } from \"@macrostrat/hyper\";\nimport { Button } from \"@blueprintjs/core\";\nimport styles from \"./main.module.sass\";\nimport React from \"react\";\n\nconst h = hyperStyled(styles);\n\ninterface PanelHeaderProps {\n title: string | null;\n onClose: () => void;\n allowTitleWrap?: boolean;\n children?: React.ReactNode;\n}\n\nconst PanelHeader = function (props: PanelHeaderProps) {\n const { title, onClose, children, allowTitleWrap = false } = props;\n return h(\"div.panel-header\", [\n h.if(title != null)(\n \"h1.title\",\n { className: allowTitleWrap ? null : \"overflow-hidden\" },\n title\n ),\n h.if(children != null)([h(\"div.expander\"), children, h(\"div.extra-space\")]),\n h(Button, { minimal: true, icon: \"cross\", onClick: onClose }),\n ]);\n};\n\nfunction MinimalModalPanel(props) {\n const { children, className, style, headerChildren, ...rest } = props;\n return h(\"div.panel-column\", [\n h(\"div.panel.minimal\", { className, style }, [\n h(PanelHeader, rest, headerChildren),\n h(\"div.panel-content\", null, children),\n ]),\n h(\"div.expander\"),\n ]);\n}\n\nexport interface ModalPanelProps {\n title: string | null;\n onClose: () => void;\n children?: React.ReactNode;\n headerChildren?: React.ReactNode;\n style?: object;\n minimal?: boolean;\n className?: string;\n}\n\nfunction ModalPanel(props: ModalPanelProps) {\n const {\n children,\n className,\n style,\n minimal = false,\n headerChildren = null,\n ...rest\n } = props;\n if (minimal) {\n return h(MinimalModalPanel, {\n ...rest,\n children,\n headerChildren,\n className,\n style,\n });\n }\n return h(\"div.panel-column\", [\n h(\"div.panel-container\", [\n h(\"div.panel-container-inner\", [\n h(\"div.panel-outer\", [\n h(\"div.panel\", { className, style }, [\n h(PanelHeader, rest, headerChildren),\n h(\"div.panel-content\", null, children),\n ]),\n h(\"div.expander\"),\n ]),\n ]),\n ]),\n ]);\n}\n\nconst ContentPanel = (props) => h(\"div.content-panel\", props);\n\nexport * from \"./draggable-overlay\";\nexport { ModalPanel, PanelHeader, ContentPanel };\n","\n$c1: rgb(16, 22, 26)\n\n.panel-header\n background-color: var(--panel-secondary-background-color, #eee)\n display: flex\n flex-direction: row\n justify-content: space-between\n align-items: center\n padding: 0.2em 0.6em\n border-bottom: 1px solid var(--panel-rule-color, #ddd)\n\n h1\n margin-bottom: 0.2em\n margin-top: 0.2em\n font-size: var(--panel-header-font-size, 1.2em)\n &.overflow-hidden\n white-space: nowrap\n overflow: hidden\n text-overflow: ellipsis\n\n // \\:global(.bp4-button)\n // align-self: center\n\n:global(.bp4-dark)\n .panel, .content-panel\n $c2: rgb(255, 255, 255)\n box-shadow: 0 0 0 1px rgba($c2, 0.2), 0 0 0 rgba($c2, 0), 0 1px 1px rgba($c2, 0.4)\n\n.expander\n flex-grow: 1\n\n.panel-column\n flex-grow: 1\n position: relative\n\n.panel,.content-panel\n overflow: hidden\n box-shadow: 0 0 0 1px rgba($c1, 0.2), 0 0 0 rgba($c1, 0), 0 1px 1px rgba($c1, 0.4)\n border-radius: 6px\n background-color: var(--panel-background-color, #fff)\n display: flex\n flex-direction: column\n\n.content-panel\n padding: 0.5em\n\n.panel\n flex-shrink: 1\n height: 100%\n max-height: 100vh\n\n &.minimal\n border-radius: 0\n //box-shadow: none\n .panel-content\n padding: 0\n border-radius: 0\n\n.panel-content\n overflow-y: scroll\n padding: 1em\n flex: 1\n &>:last-child\n margin-bottom: 1em\n\n.panel-outer\n display: flex\n flex-direction: column\n position: relative\n max-height: 100%\n\n.panel-container-inner\n position: absolute\n top: 2em\n bottom: 2em\n left: 1em\n right: 1em\n display: flex\n flex-direction: column\n .expander\n flex: 1\n\n.extra-space\n width: 1em\n\n.panel-container\n position: sticky\n height: 100vh\n top: 0\n display: flex\n flex-direction: column\n","import h from \"@macrostrat/hyper\";\nimport { useState, useEffect, ReactChild, ReactElement } from \"react\";\nimport { Overlay, Card } from \"@blueprintjs/core\";\n\ninterface DraggableOverlayPropsI {\n open: boolean;\n children: ReactChild;\n HeaderComponent: ReactElement<any>;\n className: string;\n cardStyles: object;\n headerStyles: object;\n top: number;\n left: number;\n}\n\nfunction DraggableOverlay(props: DraggableOverlayPropsI) {\n const {\n open,\n children,\n headerStyles = {},\n className = \"overlay\",\n cardStyles = {},\n top = 100,\n left = 20,\n } = props;\n\n const [state, setState] = useState({ top, left });\n const [offset, setOffset] = useState({ rel_x: 0, rel_y: 0 });\n const [dragging, setDragging] = useState(false);\n\n useEffect(() => {\n //setup event listeners\n if (!dragging) return;\n document.addEventListener(\"mousemove\", onMouseMove, true);\n document.addEventListener(\"mouseup\", onMouseUp, true);\n return () => {\n document.removeEventListener(\"mouseup\", onMouseUp, true);\n document.removeEventListener(\"mousemove\", onMouseMove, true);\n };\n }, [dragging]);\n\n const onMouseDown = (e) => {\n if (e.button !== 0) return;\n setDragging(true);\n setOffset(getOffest(e));\n };\n\n const onMouseUp = (e) => {\n setDragging(false);\n e.stopPropagation();\n e.preventDefault();\n };\n\n const getOffest = (e) => {\n const rel_x = e.pageX - state.left;\n const rel_y = e.pageY - state.top;\n return { rel_x, rel_y };\n };\n\n const onMouseMove = (e) => {\n if (dragging) {\n const { rel_x, rel_y } = offset;\n const left_ = e.pageX - rel_x;\n const top_ = e.pageY - rel_y;\n setState({ top: top_, left: left_ });\n }\n e.stopPropagation();\n e.preventDefault();\n };\n\n const overlayProperties = {\n autoFocus: true,\n canEscapeKeyClose: true,\n canOutsideClickClose: true,\n enforceFocus: false,\n hasBackdrop: false,\n usePortal: true,\n useTallContent: false,\n };\n\n const style = { top: `${state.top}px`, left: `${state.left}px` };\n\n return h(Overlay, { isOpen: open, ...overlayProperties }, [\n h(`div.${className}`, { styles: style }, [\n h(Card, { style: cardStyles }, [\n h(\"div\", { onMouseDown, styles: headerStyles }, [\n props.HeaderComponent,\n ]),\n children,\n ]),\n ]),\n ]);\n}\n\nexport { DraggableOverlay };\n","import {\n Navbar,\n Button,\n ButtonGroup,\n NavbarGroup,\n Alignment,\n Intent,\n Position,\n} from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useReducer, useEffect } from \"react\";\nimport useElementDimensions from \"use-element-dimensions\";\nimport { useContext, createContext } from \"react\";\nimport classNames from \"classnames\";\nconst h = hyper.styled(styles);\n\ninterface ThreeColumnLayoutProps {\n contextPanel: React.ReactNode;\n children: React.ReactNode;\n detailPanel: React.ReactNode;\n footer?: React.ReactNode;\n panelState: {\n [key in SidePanel]?: boolean;\n };\n title?: string;\n twoPanelBreakpoint?: number;\n preferredMainWidth?: number;\n expandedContext?: boolean;\n contextButtonPlacement?: \"left\" | \"right\";\n headerActions: any;\n}\n\nenum SidePanel {\n Context = \"context\",\n Detail = \"detail\",\n}\n\ntype PanelState = {\n [key in SidePanel]: boolean;\n};\ninterface LayoutState {\n panelState: PanelState;\n keyPanel: SidePanel | null;\n isReduced: boolean;\n}\n\ntype LayoutAction =\n | { type: \"toggle-panel\"; panel: SidePanel }\n | { type: \"show-panel\"; panel: SidePanel; shouldShow: boolean }\n | { type: \"set-is-reduced\"; value: boolean };\n\nfunction openPanels(panelState: PanelState): Set<SidePanel> {\n const keys = Object.keys(panelState) as SidePanel[];\n return new Set(keys.filter((k) => panelState[k]));\n}\n\nconst LayoutDispatchContext = createContext<React.Dispatch<LayoutAction>>(\n (a) => a\n);\n\nfunction useLayoutDispatch() {\n return useContext(LayoutDispatchContext);\n}\n\nfunction layoutReducer(state: LayoutState, action: LayoutAction) {\n let panel: SidePanel;\n let shouldShow: boolean;\n switch (action.type) {\n case \"set-is-reduced\":\n return { ...state, isReduced: action.value };\n case \"show-panel\":\n shouldShow = action.shouldShow;\n case \"toggle-panel\":\n panel = action.panel;\n shouldShow ??= !state.panelState[panel];\n const panelState = {\n ...state.panelState,\n [panel]: shouldShow,\n };\n let keyPanel = state.keyPanel;\n if (shouldShow) {\n keyPanel = panel;\n } else if (state.keyPanel == panel) {\n keyPanel = null;\n }\n const currentPanels = openPanels(panelState);\n if (currentPanels.size == 1) {\n keyPanel = currentPanels.values().next().value;\n }\n return { ...state, panelState, keyPanel };\n }\n}\n\nfunction buttonProps(\n panel: SidePanel,\n desiredState: PanelState,\n actualState: PanelState,\n dispatch: React.Dispatch<LayoutAction>\n) {\n const active = desiredState[panel];\n const isActuallyShown = active && active == actualState[panel];\n return {\n active,\n minimal: true,\n intent: isActuallyShown ? Intent.PRIMARY : null,\n onClick() {\n dispatch({ type: \"show-panel\", panel, shouldShow: !isActuallyShown });\n },\n };\n}\n\nfunction ThreeColumnLayout(props: ThreeColumnLayoutProps) {\n const {\n contextPanel,\n detailPanel,\n title = \"User interface\",\n children,\n footer,\n panelState = {},\n twoPanelBreakpoint = 800,\n preferredMainWidth,\n expandedContext = false,\n headerActions = null,\n contextButtonPlacement = Position.LEFT,\n ...rest\n } = props;\n\n let keyPanel = null;\n if (panelState.detail) {\n keyPanel = SidePanel.Detail;\n } else if (panelState.context) {\n keyPanel = SidePanel.Context;\n }\n\n const [layoutState, dispatch] = useReducer(\n layoutReducer,\n {\n panelState: { context: true, ...panelState },\n keyPanel,\n isReduced: false,\n },\n undefined\n );\n\n const [size, ref] = useElementDimensions();\n const [mainSize, mainRef] = useElementDimensions();\n\n const panelDesiredState = { ...layoutState.panelState, ...panelState };\n\n let panelActualState = { ...panelDesiredState };\n const nonKeyPanel =\n layoutState.keyPanel == SidePanel.Context\n ? SidePanel.Detail\n : SidePanel.Context;\n\n // We'd like the main panel to take up at least half the screen width\n const preferredMainPanelWidth =\n preferredMainWidth ??\n Math.max((size?.width ?? 0) * 0.5, twoPanelBreakpoint * 0.66);\n\n if (layoutState.isReduced) {\n panelActualState[nonKeyPanel] = false;\n }\n\n if (expandedContext) {\n panelActualState[SidePanel.Context] = true;\n panelActualState[SidePanel.Detail] = false;\n }\n\n useEffect(() => {\n if (openPanels(panelActualState).size <= 1) {\n return;\n }\n // Decide whether we need to reduce the layout ONLY when both panels are open\n const shouldReduce = mainSize?.width < preferredMainPanelWidth;\n dispatch({ type: \"set-is-reduced\", value: shouldReduce });\n }, [mainSize]);\n\n const contextButton = h.if(contextPanel != null)(Button, {\n icon: \"projects\",\n ...buttonProps(\n SidePanel.Context,\n panelDesiredState,\n panelActualState,\n dispatch\n ),\n });\n\n return h(\n LayoutDispatchContext.Provider,\n { value: dispatch },\n h(\n \"div.user-interface\",\n {\n ref,\n ...rest,\n },\n [\n h(Navbar, [\n h(Navbar.Group, [\n h.if(contextButtonPlacement == \"left\")([\n contextButton,\n h(\"div.spacer\"),\n ]),\n h(Navbar.Heading, null, title),\n ]),\n h(NavbarGroup, { align: Alignment.RIGHT }, [\n headerActions,\n h(\"div.spacer\"),\n h(ButtonGroup, { minimal: true }, [\n h.if(contextButtonPlacement == \"right\")([contextButton]),\n h.if(detailPanel != null)(Button, {\n icon: \"properties\",\n ...buttonProps(\n SidePanel.Detail,\n panelDesiredState,\n panelActualState,\n dispatch\n ),\n }),\n ]),\n ]),\n ]),\n h(\"div.three-column\", [\n h.if(contextPanel != null && panelActualState.context)(\n \"div.column.context-column\",\n { className: classNames({ expanded: expandedContext ?? false }) },\n contextPanel\n ),\n h.if(children != null)(\n \"div.column.main-column\",\n { ref: mainRef },\n children\n ),\n h.if(detailPanel != null && panelActualState.detail)(\n \"div.column.detail-column\",\n null,\n detailPanel\n ),\n ]),\n h.if(footer != null)(\"footer\", null, footer),\n ]\n )\n );\n}\n\nThreeColumnLayout.Panels = SidePanel;\n\nexport { ThreeColumnLayout, ThreeColumnLayoutProps, useLayoutDispatch };\n",".user-interface\n position: absolute\n width: 100%\n height: 100%\n top: 0\n display: flex\n flex-direction: column\n overflow: hidden\n\n.spacer\n width: 1em\n\n.three-column\n display: flex\n flex: 1\n flex-direction: row\n position: relative\n height: 100%\n overflow: hidden\n &>div\n min-width: 50px\n height: 100%\n //max-width: 50%\n position: relative\n overflow-y: scroll\n flex-shrink: 1\n &.main-column\n flex-grow: 1\n max-width: 100%\n &.context-column.expanded\n flex-grow: 2\n max-width: 100%","import h from \"@macrostrat/hyper\";\nimport {\n formatValue,\n normalizeLng,\n metersToFeet,\n formatCoordForZoomLevel,\n} from \"./utils\";\n\nexport function ValueWithUnit(props) {\n const { value, unit } = props;\n return h(\"span.value-with-unit\", [\n h(\"span.value\", [value]),\n h(\"span.spacer\", [\" \"]),\n h(\"span.unit\", [unit]),\n ]);\n}\n\nexport function DegreeCoord(props) {\n const { value, labels, precision = 3, format = formatValue } = props;\n const direction = value < 0 ? labels[1] : labels[0];\n\n return h(ValueWithUnit, {\n value: format(Math.abs(value), precision) + \"°\",\n unit: direction,\n });\n}\n\nexport interface LngLatProps {\n /** Map position */\n position: [number, number] | { lat: number; lng: number };\n className?: string;\n /** Zoom level (used to infer coordinate rounding if provided) */\n zoom?: number | null;\n /** Number of decimal places to round coordinates to */\n precision: number | null;\n /** Function to format coordinates */\n format?: (val: number, precision: number) => string;\n}\n\nexport function LngLatCoords(props: LngLatProps) {\n /** Formatted geographic coordinates */\n const { position, className, precision, zoom } = props;\n let { format } = props;\n if (position == null) {\n return null;\n }\n let lat, lng;\n if (Array.isArray(position)) {\n [lng, lat] = position;\n } else {\n ({ lat, lng } = position);\n }\n\n if (zoom != null && format == null && precision == null) {\n format = (val, _) => formatCoordForZoomLevel(val, zoom);\n }\n\n return h(\"div.lnglat-container\", { className }, [\n h(\"span.lnglat\", [\n h(DegreeCoord, {\n value: lat,\n labels: [\"N\", \"S\"],\n precision,\n format,\n }),\n \", \",\n h(DegreeCoord, {\n value: normalizeLng(lng),\n labels: [\"E\", \"W\"],\n precision,\n format,\n }),\n ]),\n ]);\n}\n\nexport function Elevation(props) {\n /** Renders an elevation value in meters and a parenthetical conversion to feet. */\n const { elevation, className, includeFeet = true } = props;\n if (elevation == null) return null;\n return h(\"div.elevation\", { className }, [\n h(ValueWithUnit, { value: elevation, unit: \"m\" }),\n h.if(includeFeet)(\"span.secondary\", [\n \" (\",\n h(ValueWithUnit, { value: metersToFeet(elevation), unit: \"ft\" }),\n \")\",\n ]),\n ]);\n}\n","import { format } from \"d3-format\";\n\nexport function formatCoordForZoomLevel(val: number, zoom: number): string {\n if (zoom < 2) {\n return fmt1(val);\n } else if (zoom < 4) {\n return fmt2(val);\n } else if (zoom < 7) {\n return fmt3(val);\n }\n return fmt4(val);\n}\n\nexport function normalizeLng(lng) {\n // via https://github.com/Leaflet/Leaflet/blob/32c9156cb1d1c9bd53130639ec4d8575fbeef5a6/src/core/Util.js#L87\n return (((((lng - 180) % 360) + 360) % 360) - 180).toFixed(4);\n}\n\nexport const fmt4 = format(\".4~f\");\nexport const fmt3 = format(\".3~f\");\nexport const fmt2 = format(\".2~f\");\nexport const fmt1 = format(\".1~f\");\nexport const fmtInt = format(\".0f\");\n\nexport function formatValue(val: number, precision: number = 0): string {\n switch (precision) {\n case 4:\n return fmt4(val);\n case 3:\n return fmt3(val);\n case 2:\n return fmt2(val);\n case 1:\n return fmt1(val);\n case 0:\n return fmtInt(val);\n default:\n return fmt4(val);\n }\n}\n\nexport function metersToFeet(meters, precision = 0) {\n return (meters * 3.28084).toFixed(precision);\n}\n","// Import other components\nimport { Switch } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport { Spacer, useDarkMode, useStoredState } from \"@macrostrat/ui-components\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useCallback, useState, useEffect } from \"react\";\nimport { buildInspectorStyle, buildXRayStyle } from \"./xray\";\nimport { MapAreaContainer, PanelCard } from \"../container\";\nimport { FloatingNavbar, MapLoadingButton } from \"../context-panel\";\nimport { MapMarker } from \"../helpers\";\nimport { LocationPanel } from \"../location-panel\";\nimport { MapView } from \"../map-view\";\nimport styles from \"./main.module.sass\";\nimport { TileExtentLayer } from \"./tile-extent\";\nimport {\n FeaturePanel,\n FeatureSelectionHandler,\n TileInfo,\n} from \"./vector-tile-features\";\nimport { MapPosition } from \"@macrostrat/mapbox-utils\";\n\nexport enum MacrostratVectorTileset {\n Carto = \"carto\",\n CartoSlim = \"carto-slim\",\n IGCPOrogens = \"igcp-orogens\",\n}\n\nexport enum MacrostratRasterTileset {\n Carto = \"carto\",\n Emphasized = \"emphasized\",\n}\n\nexport const h = hyper.styled(styles);\n\nexport function DevMapPage({\n title = \"Map inspector\",\n headerElement = null,\n transformRequest = null,\n mapPosition = null,\n mapboxToken = null,\n overlayStyle = null,\n children,\n style,\n focusedSource = null,\n focusedSourceTitle = null,\n projection = null,\n}: {\n headerElement?: React.ReactElement;\n transformRequest?: mapboxgl.TransformRequestFunction;\n title?: string;\n style: mapboxgl.Style | string;\n children?: React.ReactNode;\n mapboxToken?: string;\n overlayStyle?: mapboxgl.Style | string;\n focusedSource?: string;\n focusedSourceTitle?: string;\n projection?: string;\n mapPosition?: MapPosition;\n}) {\n /* We apply a custom style to the panel container when we are interacting\n with the search bar, so that we can block map interactions until search\n bar focus is lost.\n We also apply a custom style when the infodrawer is open so we can hide\n the search bar on mobile platforms\n */\n\n const dark = useDarkMode();\n const isEnabled = dark?.isEnabled;\n\n if (mapboxToken != null) {\n mapboxgl.accessToken = mapboxToken;\n }\n\n style ??= isEnabled\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\n\n const [isOpen, setOpen] = useState(false);\n\n const [state, setState] = useStoredState(\"macrostrat:dev-map-page\", {\n showTileExtent: false,\n xRay: false,\n });\n const { showTileExtent, xRay } = state;\n\n const [actualStyle, setActualStyle] = useState(style);\n\n useEffect(() => {\n buildInspectorStyle(style, overlayStyle, {\n mapboxToken,\n inDarkMode: isEnabled,\n xRay,\n }).then(setActualStyle);\n }, [style, xRay, mapboxToken, isEnabled, overlayStyle]);\n\n const [inspectPosition, setInspectPosition] =\n useState<mapboxgl.LngLat | null>(null);\n\n const [data, setData] = useState(null);\n\n const onSelectPosition = useCallback((position: mapboxgl.LngLat) => {\n setInspectPosition(position);\n }, []);\n\n let detailElement = null;\n if (inspectPosition != null) {\n detailElement = h(\n LocationPanel,\n {\n onClose() {\n setInspectPosition(null);\n },\n position: inspectPosition,\n },\n [\n h(TileInfo, {\n feature: data?.[0] ?? null,\n showExtent: showTileExtent,\n setShowExtent() {\n setState({ ...state, showTileExtent: !showTileExtent });\n },\n }),\n h(FeaturePanel, { features: data, focusedSource, focusedSourceTitle }),\n ]\n );\n }\n\n let tile = null;\n if (showTileExtent && data?.[0] != null) {\n let f = data[0];\n tile = { x: f._x, y: f._y, z: f._z };\n }\n\n return h(\n MapAreaContainer,\n {\n navbar: h(FloatingNavbar, [\n headerElement ?? h(\"h2\", title),\n h(Spacer),\n h(MapLoadingButton, {\n active: isOpen,\n onClick: () => setOpen(!isOpen),\n }),\n ]),\n contextPanel: h(PanelCard, [\n h(Switch, {\n checked: xRay,\n label: \"X-ray mode\",\n onChange() {\n setState({ ...state, xRay: !xRay });\n },\n }),\n children,\n ]),\n detailPanel: detailElement,\n contextPanelOpen: isOpen,\n },\n h(\n MapView,\n {\n style: actualStyle,\n transformRequest,\n mapPosition,\n projection: \"globe\",\n },\n [\n h(FeatureSelectionHandler, {\n selectedLocation: inspectPosition,\n setFeatures: setData,\n }),\n h(MapMarker, {\n position: inspectPosition,\n setPosition: onSelectPosition,\n }),\n h(TileExtentLayer, { tile, color: isEnabled ? \"white\" : \"black\" }),\n ]\n )\n );\n}\n","import { getMapboxStyle, mergeStyles } from \"@macrostrat/mapbox-utils\";\nimport chroma from \"chroma-js\";\nimport mapboxgl from \"mapbox-gl\";\n\ninterface XRayOptions {\n color?: string;\n inDarkMode?: boolean;\n mapboxToken?: string;\n xRaySources?: string[];\n}\n\nexport async function buildXRayStyle(\n baseStyle: string | object,\n params: XRayOptions = null\n) {\n const {\n inDarkMode = false,\n color = \"rgb(74, 242, 161)\",\n mapboxToken,\n xRaySources\n } = params;\n const style = await getMapboxStyle(baseStyle, { access_token: mapboxToken });\n const sources = xRaySources ?? Object.keys(style.sources);\n\n let layers = [];\n for (let layer of style.layers) {\n if (!sources.includes(layer.source)) {\n layers.push(layer);\n continue;\n }\n let newLayer = transformMapboxLayer(layer, color, inDarkMode);\n if (newLayer != null) {\n layers.push(newLayer);\n }\n }\n\n return {\n ...style,\n layers,\n };\n}\n\nfunction transformMapboxLayer(layer, color, inDarkMode) {\n const c = chroma(color);\n const xRayColor = (opacity = 1, darken = 0) => {\n if (!inDarkMode) {\n return chroma(color)\n .darken(2 - darken)\n .alpha(opacity)\n .css();\n }\n return c.alpha(opacity).darken(darken).css();\n };\n\n if (layer.type == \"background\") {\n return null;\n }\n\n let newLayer = { ...layer };\n\n if (layer.type == \"fill\") {\n newLayer.paint = {\n \"fill-color\": xRayColor(0.1),\n \"fill-outline-color\": xRayColor(0.5),\n };\n } else if (layer.type == \"line\") {\n newLayer.paint = {\n \"line-color\": xRayColor(0.5, 0),\n \"line-width\": 1.5,\n };\n } else if (layer.type == \"symbol\") {\n newLayer.paint = {\n \"text-color\": xRayColor(1, -0.5),\n \"text-halo-color\": \"#000\",\n };\n } else if (layer.type == \"circle\") {\n newLayer.paint = {\n \"circle-color\": xRayColor(0.5, 0),\n \"circle-stroke-color\": xRayColor(0.5, 1),\n \"circle-radius\": 2,\n };\n }\n\n return newLayer;\n}\n\ntype InspectorStyleOptions = XRayOptions & {\n xRay?: boolean;\n};\n\nexport async function buildInspectorStyle(\n baseStyle: mapboxgl.Style | string,\n overlayStyle: mapboxgl.Style | string | null = null,\n params: InspectorStyleOptions = {}\n) {\n const { mapboxToken, xRay = false, xRaySources: _xRaySources, ...rest } = params;\n let xRaySources = _xRaySources;\n let style = await getMapboxStyle(baseStyle, {\n access_token: mapboxToken,\n });\n\n if (overlayStyle != null) {\n const overlay = await getMapboxStyle(overlayStyle, {\n access_token: mapboxToken,\n });\n style = mergeStyles(style, overlay);\n xRaySources ??= Object.keys(overlay.sources);\n }\n\n\n if (xRay) {\n // If we haven't specified sources, then we'll use all of them\n xRaySources ??= Object.keys(style.sources);\n\n style = await buildXRayStyle(style, { ...rest, mapboxToken, xRaySources });\n }\n return style;\n}\n","import hyper from \"@macrostrat/hyper\";\nimport { HTMLDivProps } from \"@blueprintjs/core\";\nimport styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { useTransition } from \"transition-hook\";\nimport {\n MapboxMapProvider,\n ZoomControl,\n useMapStatus,\n} from \"@macrostrat/mapbox-react\";\nimport { ToasterContext } from \"@macrostrat/ui-components\";\nimport { MapBottomControls } from \"./controls\";\nimport { mapViewInfo, MapPosition } from \"@macrostrat/mapbox-utils\";\nimport { Card } from \"@blueprintjs/core\";\n\nimport { ReactNode } from \"react\";\n\nexport * from \"./location-panel\";\nexport * from \"./context-panel\";\n//export * from \"./dev\";\n\nexport function MapInterface() {\n return h(\"div\", \"Hello world\");\n}\n\nconst h = hyper.styled(styles);\n\ntype AnyElement = React.ReactNode | React.ReactElement | React.ReactFragment;\n\nexport const PanelCard = (props) =>\n h(Card, { ...props, className: classNames(\"panel-card\", props.className) });\n\nfunction _MapAreaContainer({\n children,\n className,\n navbar,\n contextPanel = null,\n detailPanel = null,\n detailPanelOpen,\n contextPanelOpen = true,\n bottomPanel = null,\n mainPanel,\n mapControls = h(MapBottomControls),\n contextStackProps = null,\n detailStackProps = null,\n mapPosition = null,\n fitViewport = true,\n ...rest\n}: {\n navbar: AnyElement;\n children?: AnyElement;\n mapControls?: AnyElement;\n contextPanel?: AnyElement;\n mainPanel?: AnyElement;\n detailPanel?: AnyElement;\n bottomPanel?: AnyElement;\n className?: string;\n detailPanelOpen?: boolean;\n contextPanelOpen?: boolean;\n contextStackProps?: HTMLDivProps;\n detailStackProps?: HTMLDivProps;\n mapPosition?: MapPosition;\n fitViewport?: boolean;\n}) {\n const _detailPanelOpen = detailPanelOpen ?? detailPanel != null;\n const contextPanelTrans = useTransition(contextPanelOpen, 800);\n const detailPanelTrans = useTransition(_detailPanelOpen, 800);\n\n /*- We apply a custom style to the panel container when we are interacting\n with the search bar, so that we can block map interactions until search\n bar focus is lost.\n - We also apply a custom style when the infodrawer is open so we can hide\n the search bar on mobile platforms\n - These styles are doubly applied so we can have both namespaced and\n outside-accessible styles for each case.\n */\n const _className = classNames(\n {\n searching: false,\n \"detail-panel-open\": _detailPanelOpen,\n \"map-context-open\": _detailPanelOpen,\n \"fit-viewport\": fitViewport,\n },\n `context-panel-${contextPanelTrans.stage}`,\n `map-context-${contextPanelTrans.stage}`,\n `detail-panel-${detailPanelTrans.stage}`,\n `map-detail-${detailPanelTrans.stage}`\n );\n\n return h(\n MapStyledContainer,\n { className: classNames(\"map-page\", className), mapPosition },\n [\n h(\"div.main-ui\", { className: _className, ...rest }, [\n h(\"div.context-stack\", contextStackProps, [\n navbar,\n h.if(contextPanelTrans.shouldMount)([contextPanel]),\n ]),\n //h(MapView),\n children ?? mainPanel,\n h(\"div.detail-stack.infodrawer-container\", detailStackProps, [\n detailPanel,\n h(ZoomControl, { className: \"zoom-control\" }),\n h(\"div.spacer\"),\n mapControls,\n ]),\n ]),\n h(\"div.bottom\", null, bottomPanel),\n ]\n );\n}\n\nconst MapProviders = ({ children }) =>\n h(ToasterContext, h(MapboxMapProvider, children));\n\nexport const MapAreaContainer = (props) =>\n h(MapProviders, h(_MapAreaContainer, props));\n\ninterface MapContainerProps {\n className?: string;\n mapPosition?: MapPosition;\n children?: ReactNode;\n}\n\nexport function MapStyledContainer({ className, children }: MapContainerProps) {\n const { mapPosition } = useMapStatus();\n if (mapPosition != null) {\n const { mapIsRotated, mapUse3D, mapIsGlobal } = mapViewInfo(mapPosition);\n className = classNames(className, {\n \"map-is-rotated\": mapIsRotated,\n \"map-3d-available\": mapUse3D,\n \"map-is-global\": mapIsGlobal,\n });\n }\n\n return h(\"div\", { className }, children);\n}\n\nexport * from \"./map-view\";\n//const _MapPage = compose(HotkeysProvider, MapPage);\n",".map-page\n display: flex\n flex-direction: column\n position: relative\n width: 100%\n height: 100%\n &.fit-viewport\n height: 100vh\n width: 100vw\n /* mobile viewport bug fix */\n max-height: -webkit-fill-available\n\n // Compass display\n .compass-control\n display: none\n &.map-is-rotated\n .compass-control\n display: block\n\n .map-3d-control\n display: none\n &.map-3d-available .map-3d-control\n display: block\n &.map-is-rotated.map-3d-available .map-3d-control\n display: none\n\n .globe-control\n display: none\n svg\n color: var(--secondary-color)\n &.map-is-global .globe-control\n display: block\n\n.main-ui\n flex: 1\n position: relative\n display: flex\n flex-direction: column\n max-height: 100%\n height: 100%\n box-shadow: 0 0 10px 4px var(--card-shadow-color)\n\n.panel-card\n padding: 10px\n background-color: var(--panel-background-color)\n\n & >:last-child\n margin-bottom: 0\n\n:global(.bp4-dark) .panel-card\n background-color: var(--panel-background-color)\n\n.context-stack\n display: flex\n flex-direction: column\n max-height: 100%\n\n &>div\n flex-shrink: 1\n\n &>.searchbar\n flex: 0\n\n.context-stack,\n.detail-stack\n z-index: 100\n\n.panel-container\n display: flex\n flex-direction: column\n\n &>div\n pointer-events: all\n\n.panel-title\n font-size: 16px\n\n.spacer\n flex-grow: 1\n pointer-events: none\n\n.map-view-container\n flex-grow: 1\n position: relative\n overflow: hidden\n\n.searchbar-holder\n margin-bottom: 0.5em\n\n.right-panel\n width: 24em\n\n.buttons\n display: flex\n flex-direction: row\n flex: 1\n min-width: 0\n\n.tab-button\n flex-shrink: 1\n min-width: 40px\n overflow: hidden\n text-align: right\n\n & :global(.bp4-button-text)\n transition: all 0.2s\n transition-delay: 0.1s\n\n .menu-card.narrow-card .panel-header:not(.minimal) &:global(.bp4-active) ~ & :global(.bp4-button-text)\n width: 0\n opacity: 0\n margin-left: -7px\n\n .context-panel-leave .menu-card .panel-header & :global(.bp4-button-text)\n opacity: 0\n width: 0\n\n.narrow-card.narrow-enter .panel-header .buttons\n margin-right: -500px\n\n.panel-header.minimal .tab-button:not(:hover):not(:global(.bp4-active))\n padding-left: 0\n padding-right: 0\n min-width: 30px\n width: 30px\n\n.panel-header.minimal .tab-button:not(:hover) :global(.bp4-button-text)\n width: 0\n opacity: 0\n margin-left: -7px\n\n.menu-group\n margin-bottom: 0.5em\n margin-top: 0.2em\n\n.menu-card :global .bp4-text ul,\n.menu-card :global .text-panel ul\n padding-left: 1em\n\n.menu-content\n display: flex\n flex-direction: column\n margin-bottom: -8px\n\n & .bp4-button-group\n margin-bottom: 4px\n\n & hr\n width: 100%\n\n:global #map\n position: absolute\n top: 0\n bottom: 0\n left: 0\n right: 0\n\n:global #map .mapbox-compass,\n:global #map .mapbox-3d\n display: none\n\n:global .mapboxgl-ctrl.mapbox-3d.mapbox-control\n width: unset\n\n:global .mapboxgl-ctrl.mapbox-3d.mapbox-control button\n width: unset\n padding-inline: 4px\n\n:global .mapboxgl-canvas-container\n width: 100%\n height: 100%\n\n:global .mapboxgl-ctrl.mapboxgl-ctrl-attrib\n background-color: var(--translucent-panel-background-color) !important\n\n:global .mapboxgl-ctrl.mapboxgl-ctrl-attrib a\n color: var(--text-color)\n\n:global .mapboxgl-marker svg path\n fill: var(--panel-background-color) !important\n\n:global .mapboxgl-marker svg circle\n fill: var(--secondary-color) !important\n\n:global .mapbox-control.mapbox-zoom\n background: var(--translucent-panel-background-inner)\n\n:global .mapbox-control.mapbox-zoom svg\n fill: var(--text-color) !important\n\n:global .mapboxgl-ctrl-logo\n transform: scale(0.9) translate(-8px, 2px)\n\n:global .bp4-dark .mapboxgl-ctrl-logo\n filter: invert(100%)\n\n:global .mapboxgl-ctrl-group button + button\n border-top: 1px solid var(--panel-rule-color) !important\n\n:global .bp4-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon\n filter: invert(40%)\n\n:global .bp4-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon:hover\n filter: invert(50%)\n\n:global .mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon\n filter: invert(40%)\n\n:global .mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon:hover\n filter: invert(50%)\n\n.detail-stack\n position: relative\n\n.main-ui.detail-panel-open .zoom-control\n opacity: 0\n display: none\n\n.zoom-control\n transition: opacity 1s ease-in-out\n width: 30px\n position: absolute\n top: 0\n right: 0\n\n.main-ui.searching .map-view-container\n pointer-events: none\n\n.map-controls\n display: flex\n flex-direction: row\n justify-content: right\n margin-bottom: 0\n\n &>*\n margin-left: 0.5em\n\n.map-controls :global(.mapbox-control),\n.map-controls :global(.map-control-wrapper),\n.map-controls .map-control\n min-width: 22px\n min-height: 22px\n border-radius: 4px\n background-color: var(--panel-background-color)\n box-shadow: 0 0 0 1px var(--card-shadow-color)\n\n.map-controls :global(.mapbox-control) button,\n.map-controls :global(.map-control-wrapper) button,\n.map-controls .map-control button\n width: 22px\n height: 22px\n background-position: center center\n padding: 0\n background-color: var(--panel-background-color)\n color: var(--text-color)\n\n.map-controls :global(.mapbox-control) button:hover,\n.map-controls :global(.map-control-wrapper) button:hover,\n.map-controls .map-control button:hover\n background-color: var(--panel-background-color) !important\n\n.map-controls .map-scale-control\n background: none\n box-shadow: none\n padding-top: 8px\n\n :global(.mapboxgl-ctrl-scale)\n background-color: var(--translucent-panel-background-color)\n border-color: var(--secondary-text-color)\n color: var(--secondary-text-color)\n\n/* For mobile phones, we want to make the most of screen space,\n which in some cases means adding complications to the basic page. */\n@media only screen and (max-width: 768px)\n .main-ui.detail-panel-enter .context-stack\n height: 0\n visibility: hidden\n transition: height 0.5s ease-in-out\n\n .detail-stack\n height: fit-content\n position: inherit\n max-height: 70%\n\n .infodrawer-stack\n max-height: 70%\n\n :global(.exit-active)\n max-height: 0\n\n :global(.mapbox-control.mapbox-zoom)\n display: none\n\n .map-controls\n position: absolute\n top: -60px\n right: 10px\n\n .detail-panel\n border-radius: 0px\n\n/* Desktop styling is necessarily much more complicated than mobile\n to handle a two-column layout. */\n@media screen and (min-width: 768px)\n .main-ui\n flex-direction: row\n padding: 1em 1em 2em\n min-height: 80px\n &>*\n margin-right: 0.5em\n &>*:last-child\n margin-right: 0\n\n &.searching .context-stack\n width: 24em\n\n .context-stack\n max-width: 34em\n min-width: 14em\n width: 16em\n transition: width 300ms ease\n padding-bottom: 0.5em\n\n &.panel-open\n width: 34em\n margin-right: 0.5em\n\n .context-stack.layers,\n .context-stack.settings\n width: 18em\n margin-right: 0.5em\n\n .main-ui.detail-panel-open .detail-stack\n width: 30em\n\n .detail-stack\n width: 30em\n pointer-events: none\n display: flex\n flex-direction: column\n\n .context-stack,\n .detail-stack\n pointer-events: none\n z-index: 100\n\n .context-stack>div,\n .detail-stack>div\n pointer-events: all\n margin-bottom: 0.5em\n\n .context-stack>div:last-child,\n .detail-stack>div:last-child\n margin-bottom: 0\n\n .context-stack>div.spacer,\n .detail-stack>div.spacer\n pointer-events: none\n\n .map-view-container\n position: unset\n\n.main-ui .detail-panel\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n.main-ui.detail-panel-from .detail-panel\n opacity: 0\n\n.main-ui.detail-panel-enter .detail-panel\n opacity: 1\n\n.main-ui.detail-panel-leave .detail-panel\n opacity: 0\n\n.main-ui .context-panel\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n.main-ui.context-panel-from .context-panel\n opacity: 0\n\n.main-ui.context-panel-enter .context-panel\n opacity: 1\n\n.main-ui.context-panel-leave .context-panel\n opacity: 0\n\n@media only screen and (max-width: 768px)\n .main-ui .detail-stack\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n .main-ui.detail-panel-from .detail-stack\n max-height: 0\n height: 0\n\n .main-ui.detail-panel-leave .detail-stack\n max-height: 0\n max-height: 0\n\n .main-ui .context-panel\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n .main-ui.context-panel-from .context-panel\n max-height: 0\n height: 0\n\n .main-ui.context-panel-leave .context-panel\n max-height: 0\n max-height: 0\n\n// Shift UI around to center elements if we're in the global view \n@media only screen and (min-width: 768px)\n .map-page .main-ui.detail-panel-leave .map-view-container\n margin-right: -14em\n\n .map-page.map-is-global .main-ui.detail-panel-leave .map-view-container\n margin-right: -30em\n\n .map-page.map-is-global .main-ui.context-panel-leave .map-view-container\n margin-left: -16em\n","import { useRef } from \"react\";\nimport { GeolocateControl } from \"mapbox-gl\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport {\n CompassControl,\n GlobeControl,\n ThreeDControl,\n MapControlWrapper,\n} from \"@macrostrat/mapbox-react\";\nimport { ScaleControl as BaseScaleControl } from \"mapbox-gl\";\n\nconst h = hyper.styled(styles);\n\nfunction ScaleControl(props) {\n const optionsRef = useRef({\n maxWidth: 200,\n unit: \"metric\",\n });\n return h(MapControlWrapper, {\n className: \"map-scale-control\",\n control: BaseScaleControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nfunction GeolocationControl(props) {\n const optionsRef = useRef({\n showAccuracyCircle: true,\n showUserLocation: true,\n trackUserLocation: true,\n positionOptions: {\n enableHighAccuracy: true,\n },\n });\n return h(MapControlWrapper, {\n control: GeolocateControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nexport function MapBottomControls() {\n return h(\"div.map-controls\", [\n h(ScaleControl),\n h(ThreeDControl, { className: \"map-3d-control\" }),\n h(CompassControl, { className: \"compass-control\" }),\n h(GlobeControl, { className: \"globe-control\" }),\n h(GeolocationControl, { className: \"geolocation-control\" }),\n ]);\n}\n","import hyper from \"@macrostrat/hyper\";\nimport {\n useMapRef,\n useMapStatus,\n useMapDispatch,\n} from \"@macrostrat/mapbox-react\";\nimport {\n mapViewInfo,\n MapPosition,\n setMapPosition,\n} from \"@macrostrat/mapbox-utils\";\nimport classNames from \"classnames\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useEffect, useRef } from \"react\";\nimport styles from \"./main.module.sass\";\nimport rootStyles from \"../main.module.sass\";\nimport { enable3DTerrain } from \"./terrain\";\nimport {\n MapLoadingReporter,\n MapMovedReporter,\n MapPaddingManager,\n MapResizeManager,\n} from \"../helpers\";\n\nconst h = hyper.styled({ ...styles, ...rootStyles });\n\ntype MapboxCoreOptions = Omit<mapboxgl.MapboxOptions, \"container\">;\n\nexport interface MapViewProps extends MapboxCoreOptions {\n showLineSymbols?: boolean;\n children?: React.ReactNode;\n accessToken?: string;\n terrainSourceID?: string;\n enableTerrain?: boolean;\n infoMarkerPosition?: mapboxgl.LngLatLike;\n //style: mapboxgl.Style | string;\n //transformRequest?: mapboxgl.TransformRequestFunction;\n mapPosition?: MapPosition;\n}\n\nfunction initializeMap(container, args: MapboxCoreOptions = {}) {\n const map = new mapboxgl.Map({\n container,\n maxZoom: 18,\n //maxTileCacheSize: 0,\n logoPosition: \"bottom-left\",\n trackResize: true,\n antialias: true,\n optimizeForTerrain: true,\n ...args,\n });\n\n //setMapPosition(map, mapPosition);\n return map;\n}\n\nconst defaultMapPosition: MapPosition = {\n camera: {\n lat: 34,\n lng: -120,\n altitude: 300000,\n },\n};\n\nexport function MapView(props: MapViewProps) {\n let { terrainSourceID } = props;\n const {\n enableTerrain = true,\n style,\n transformRequest,\n mapPosition = defaultMapPosition,\n children,\n accessToken,\n infoMarkerPosition,\n projection,\n } = props;\n if (enableTerrain) {\n terrainSourceID ??= \"mapbox-3d-dem\";\n }\n\n if (accessToken != null) {\n mapboxgl.accessToken = accessToken;\n }\n\n const dispatch = useMapDispatch();\n let mapRef = useMapRef();\n const ref = useRef<HTMLDivElement>();\n const parentRef = useRef<HTMLDivElement>();\n\n // Keep track of map position for reloads\n\n useEffect(() => {\n if (style == null || ref.current == null || dispatch == null) return;\n if (mapRef?.current != null) return;\n console.log(\"Initializing map\");\n const map = initializeMap(ref.current, {\n style,\n transformRequest,\n projection,\n });\n dispatch({ type: \"set-map\", payload: map });\n console.log(\"Map initialized\");\n return () => {\n map.remove();\n dispatch({ type: \"set-map\", payload: null });\n };\n }, [transformRequest, dispatch, style]);\n\n // Map style updating\n useEffect(() => {\n if (mapRef?.current == null || style == null) return;\n mapRef?.current?.setStyle(style);\n }, [mapRef.current, style]);\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null || mapPosition == null) return;\n setMapPosition(map, mapPosition);\n }, [mapRef.current]);\n\n const { mapPosition: _computedMapPosition } = useMapStatus();\n const { mapUse3D, mapIsRotated } = mapViewInfo(_computedMapPosition);\n\n // Get map projection\n const _projection = mapRef.current?.getProjection()?.name ?? \"mercator\";\n\n const className = classNames(\n {\n \"is-rotated\": mapIsRotated ?? false,\n \"is-3d-available\": mapUse3D ?? false,\n },\n `${_projection}-projection`\n );\n\n return h(\"div.map-view-container.main-view\", { ref: parentRef }, [\n h(\"div.mapbox-map#map\", { ref, className }),\n h(MapLoadingReporter, {\n ignoredSources: [\"elevationMarker\", \"crossSectionEndpoints\"],\n }),\n h(MapMovedReporter),\n h(MapResizeManager, { containerRef: ref }),\n h(MapPaddingManager, { containerRef: ref, parentRef, infoMarkerPosition }),\n h(MapTerrainManager, { mapUse3D, terrainSourceID }),\n children,\n ]);\n}\n\nexport function MapTerrainManager({\n mapUse3D,\n terrainSourceID,\n}: {\n mapUse3D?: boolean;\n terrainSourceID?: string;\n}) {\n const mapRef = useMapRef();\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n enable3DTerrain(map, mapUse3D, terrainSourceID);\n }, [mapRef.current, mapUse3D]);\n return null;\n}\n",".map-view-container\n flex-grow: 1\n position: relative\n overflow: hidden\n\n/* Desktop styling is necessarily much more complicated than mobile\n to handle a two-column layout. */\n@media screen and (min-width: 768px)\n /* Make map fill page rather than containing div,\n by unsetting map position */\n // We should move this to another file.\n .map-view-container\n position: unset\n","// We should merge this with code in @macrostrat/mapbox-react/src/terrain.ts:\n\nexport function enable3DTerrain(\n map,\n shouldEnable: boolean,\n sourceID: string | null = null\n) {\n let demSourceID = sourceID ?? getTerrainSourceID(map) ?? \"mapbox-dem\";\n\n console.log(\"Enabling 3D terrain with source\", demSourceID);\n\n if (!map.style?._loaded) {\n map.once(\"style.load\", () => {\n enable3DTerrain(map, shouldEnable, demSourceID);\n });\n return;\n }\n\n // Enable or disable terrain depending on our current desires...\n const currentTerrain = map.getTerrain();\n if (!shouldEnable) {\n if (currentTerrain != null) map.setTerrain(null);\n return;\n }\n if (currentTerrain != null) return;\n\n // Add a DEM source if one is not found already.\n if (map.getSource(demSourceID) == null) {\n map.addSource(demSourceID, {\n type: \"raster-dem\",\n url: \"mapbox://mapbox.mapbox-terrain-dem-v1\",\n tileSize: 512,\n maxzoom: 14,\n });\n }\n\n // add a sky layer that will show when the map is highly pitched\n if (map.getLayer(\"sky\") == null) {\n map.addLayer({\n id: \"sky\",\n type: \"sky\",\n paint: {\n \"sky-type\": \"atmosphere\",\n \"sky-atmosphere-sun\": [0.0, 0.0],\n \"sky-atmosphere-sun-intensity\": 15,\n },\n });\n }\n\n map.setTerrain({ source: demSourceID, exaggeration: 1 });\n}\n\nfunction getTerrainSourceID(map) {\n for (const [key, source] of Object.entries(map.getStyle().sources)) {\n if (source.type == \"raster-dem\") {\n return key;\n }\n }\n return null;\n}\n","import {\n useMapRef,\n useMapEaseToCenter,\n useMapDispatch,\n useMapStatus,\n} from \"@macrostrat/mapbox-react\";\nimport { useRef } from \"react\";\nimport { debounce } from \"underscore\";\nimport useResizeObserver from \"use-resize-observer\";\n\nimport { getMapPosition } from \"@macrostrat/mapbox-utils\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { getMapPadding, useMapMarker } from \"./utils\";\n\nexport function MapResizeManager({ containerRef }) {\n const mapRef = useMapRef();\n\n const debouncedResize = useRef(\n debounce(() => {\n mapRef.current?.resize();\n }, 100)\n );\n\n useResizeObserver({\n ref: containerRef,\n onResize: debouncedResize.current,\n });\n\n return null;\n}\n\ninterface MapPaddingManagerProps {\n containerRef: React.RefObject<HTMLDivElement>;\n parentRef: React.RefObject<HTMLDivElement>;\n infoMarkerPosition: mapboxgl.LngLatLike;\n}\n\nexport function MapPaddingManager({\n containerRef,\n parentRef,\n infoMarkerPosition,\n}: MapPaddingManagerProps) {\n const mapRef = useMapRef();\n\n const [padding, setPadding] = useState(\n getMapPadding(containerRef, parentRef)\n );\n\n const updateMapPadding = useCallback(() => {\n const newPadding = getMapPadding(containerRef, parentRef);\n setPadding(newPadding);\n }, [containerRef.current, parentRef.current]);\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n // Update map padding on load\n updateMapPadding();\n }, [mapRef.current]);\n\n useResizeObserver({\n ref: parentRef,\n onResize(sz) {\n updateMapPadding();\n },\n });\n\n useMapEaseToCenter(infoMarkerPosition, padding);\n\n return null;\n}\n\nexport function MapMovedReporter({ onMapMoved = null }) {\n const mapRef = useMapRef();\n const dispatch = useMapDispatch();\n\n const mapMovedCallback = useCallback(() => {\n const map = mapRef.current;\n if (map == null) return;\n const mapPosition = getMapPosition(map);\n dispatch({ type: \"map-moved\", payload: mapPosition });\n onMapMoved?.(mapPosition, map);\n }, [mapRef.current, onMapMoved, dispatch]);\n\n useEffect(() => {\n // Get the current value of the map. Useful for gradually moving away\n // from class component\n const map = mapRef.current;\n if (map == null) return;\n // Update the URI when the map moves\n mapMovedCallback();\n const cb = debounce(mapMovedCallback, 100);\n map.on(\"moveend\", cb);\n return () => {\n map?.off(\"moveend\", cb);\n };\n }, [mapMovedCallback]);\n return null;\n}\n\nexport function MapLoadingReporter({\n ignoredSources,\n onMapLoading = null,\n onMapIdle = null,\n mapIsLoading,\n}) {\n const mapRef = useMapRef();\n const loadingRef = useRef(false);\n const dispatch = useMapDispatch();\n\n useEffect(() => {\n const map = mapRef.current;\n const mapIsLoading = loadingRef.current;\n if (map == null) return;\n\n let didSendLoading = false;\n\n const loadingCallback = (evt) => {\n if (ignoredSources.includes(evt.sourceId) || mapIsLoading) return;\n if (didSendLoading) return;\n onMapLoading?.(evt);\n dispatch({ type: \"set-loading\", payload: true });\n loadingRef.current = true;\n didSendLoading = true;\n };\n const idleCallback = (evt) => {\n if (!mapIsLoading) return;\n dispatch({ type: \"set-loading\", payload: false });\n loadingRef.current = false;\n onMapIdle?.(evt);\n };\n map.on(\"sourcedataloading\", loadingCallback);\n map.on(\"idle\", idleCallback);\n return () => {\n map?.off(\"sourcedataloading\", loadingCallback);\n map?.off(\"idle\", idleCallback);\n };\n }, [ignoredSources, mapRef.current, mapIsLoading]);\n return null;\n}\n\nexport function MapMarker({ position, setPosition, centerMarker = true }) {\n const mapRef = useMapRef();\n const markerRef = useRef(null);\n\n useMapMarker(mapRef, markerRef, position);\n\n const handleMapClick = useCallback(\n (event: mapboxgl.MapMouseEvent) => {\n setPosition(event.lngLat, event, mapRef.current);\n // We should integrate this with the \"easeToCenter\" hook\n if (centerMarker) {\n mapRef.current?.flyTo({ center: event.lngLat, duration: 800 });\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [mapRef.current, setPosition]\n );\n\n useEffect(() => {\n const map = mapRef.current;\n if (map != null && setPosition != null) {\n map.on(\"click\", handleMapClick);\n }\n return () => {\n map?.off(\"click\", handleMapClick);\n };\n }, [mapRef.current, setPosition]);\n\n return null;\n}\n","import { useEffect } from \"react\";\nimport { Marker } from \"mapbox-gl\";\n\nfunction calcMapPadding(rect, childRect) {\n return {\n left: Math.max(rect.left - childRect.left, 0),\n top: Math.max(rect.top - childRect.top, 0),\n right: Math.max(childRect.right - rect.right, 0),\n bottom: Math.max(childRect.bottom - rect.bottom, 0),\n };\n}\n\nexport function getMapPadding(ref, parentRef) {\n const rect = parentRef.current?.getBoundingClientRect();\n const childRect = ref.current?.getBoundingClientRect();\n if (rect == null || childRect == null) return;\n return calcMapPadding(rect, childRect);\n}\n\nexport function useMapMarker(mapRef, markerRef, markerPosition) {\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n if (markerPosition == null) {\n markerRef.current?.remove();\n return;\n }\n const marker = markerRef.current ?? new Marker();\n marker.setLngLat(markerPosition).addTo(map);\n markerRef.current = marker;\n return () => marker.remove();\n }, [mapRef.current, markerPosition]);\n}\n",".feature-panel\n position: relative\n overflow-x: hidden\n\n.key-value\n display: inline-block\n margin-right: 1em\n .key\n font-weight: bold\n font-size: 0.9em\n &:after\n content: ': '\n .value\n font-size: 0.9em\n\n.feature-properties\n position: relative\n &:before\n content: \"–\"\n position: absolute\n top: 4px\n left: 0\n\n.feature-header h3\n margin-bottom: 0\n margin-top: 0.5em\n\n.feature-group\n border-bottom: 1px solid var(--panel-rule-inner)\n padding: 0 1em\n margin-left: -1em\n margin-right: -1em\n margin-bottom: 0.5em\n &:last-child\n border-bottom: none\n\n.tile-info\n display: flex\n flex-direction: row\n align-items: baseline\n padding: 0 1em\n h3\n margin-right: 0.5em\n\n.opacity-slider\n margin: 0 1em 0.5em\n :global\n .bp4-slider-handle .bp4-slider-label\n background-color: var(--secondary-color)\n color: var(--text-color)\n\n.unit-number\n .unit\n font-size: 0.9em\n margin-left: 0.2em\n font-weight: bold\n\n.page\n margin: 2em auto\n max-width: 50em\n\n.dev-index-page\n overflow-y: scroll\n","import { useMapConditionalStyle, useMapRef } from \"@macrostrat/mapbox-react\";\nimport { tileToGeoJSON } from \"@mapbox/tilebelt\";\nimport { useCallback } from \"react\";\n\ntype TileIndex = { x: number; y: number; z: number };\n\nexport function TileExtentLayer({\n tile,\n color = \"red\",\n}: {\n tile: TileIndex | null;\n color?: string;\n}) {\n const styleCallback = useCallback(\n (map, val: TileIndex) => {\n const style = map.getStyle();\n if (style.layers == null) return;\n style.layers = style.layers.filter((l) => l.id != \"tile-extent\");\n if (val == null) {\n return map.setStyle(style);\n }\n const { x, y, z } = val;\n const extent = tileToGeoJSON([x, y, z]);\n const source = {\n type: \"geojson\",\n data: extent,\n };\n const layer = {\n id: \"tile-extent\",\n type: \"line\",\n source: \"tile-extent\",\n paint: {\n \"line-color\": color,\n \"line-width\": 2,\n },\n };\n style.sources[\"tile-extent\"] = source;\n style.layers.push(layer);\n map.setStyle(style);\n },\n [color]\n );\n const map = useMapRef();\n useMapConditionalStyle(map, tile, styleCallback);\n return null;\n}\n","import { Spinner, Switch } from \"@blueprintjs/core\";\nimport { useMapRef, useMapStatus } from \"@macrostrat/mapbox-react\";\nimport mapboxgl from \"mapbox-gl\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useEffect, useState, useRef } from \"react\";\nimport { JSONView } from \"@macrostrat/ui-components\";\nimport { group } from \"d3-array\";\nimport { ExpansionPanel } from \"../expansion-panel\";\n\nconst h = hyper.styled(styles);\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nexport function FeatureRecord({ feature }) {\n const props = feature.properties;\n return h(\"div.feature-record\", [\n h.if(Object.keys(props).length > 0)(\"div.feature-properties\", [\n h(JSONView, {\n data: props,\n hideRoot: true,\n }),\n ]),\n ]);\n}\n\nexport function FeatureSelectionHandler({\n selectedLocation,\n setFeatures,\n radius = 2,\n}: {\n selectedLocation: mapboxgl.LngLat;\n setFeatures: (features: mapboxgl.MapboxGeoJSONFeature[]) => void;\n radius?: number;\n}) {\n const mapRef = useMapRef();\n const { isLoading } = useMapStatus();\n const prevLocation = usePrevious(selectedLocation);\n\n useEffect(() => {\n const map = mapRef?.current;\n if (map == null) return;\n if (selectedLocation == null) {\n setFeatures(null);\n return;\n }\n\n // Don't update if the location hasn't changed\n if (selectedLocation == prevLocation) return;\n\n const r = radius;\n const pt = map.project(selectedLocation);\n\n const bbox: [mapboxgl.PointLike, mapboxgl.PointLike] = [\n [pt.x - r, pt.y - r],\n [pt.x + r, pt.y + r],\n ];\n const features = map.queryRenderedFeatures(bbox);\n setFeatures(features);\n }, [mapRef?.current, selectedLocation, isLoading]);\n\n return null;\n}\n\nfunction FeatureHeader({ feature }) {\n return h(\"div.feature-header\", [\n h(\"h3\", [\n h(KeyValue, { label: \"Source\", value: feature.source }),\n h(KeyValue, { label: \"Source layer\", value: feature.sourceLayer }),\n ]),\n ]);\n}\n\nfunction KeyValue({ label, value }) {\n return h(\"span.key-value\", [h(\"span.key\", label), h(\"code.value\", value)]);\n}\n\nfunction LoadingAwareFeatureSet({ features, sourceID }) {\n const map = useMapRef();\n if (map?.current == null) return null;\n const [isLoaded, setIsLoaded] = useState(false);\n\n const sourceFeatures = features.filter((d) => d.source == \"burwell\");\n\n useEffect(() => {\n if (sourceFeatures.length > 0) {\n setIsLoaded(true);\n return;\n }\n\n const isLoaded = map.current.isSourceLoaded(sourceID);\n setIsLoaded(isLoaded);\n if (!isLoaded) {\n map.current.once(\"sourcedata\", (e) => {\n if (e.sourceId == sourceID) {\n setIsLoaded(true);\n }\n });\n }\n }, [map.current, sourceID, sourceFeatures.length]);\n\n if (!isLoaded) return h(Spinner);\n return h(Features, { features: sourceFeatures });\n}\n\nexport function TileInfo({ feature, showExtent, setShowExtent }) {\n if (feature == null) return null;\n const size = feature._vectorTileFeature._pbf.length;\n return h(\"div.tile-info\", [\n h(\"h3\", \"Tile\"),\n h(\"div.tile-index\", [\n h(KeyValue, { label: \"x\", value: feature._x }),\n h(KeyValue, { label: \"y\", value: feature._y }),\n h(KeyValue, { label: \"z\", value: feature._z }),\n ]),\n h(\"div.spacer\"),\n h(KeyValue, { label: \"Size\", value: formatSize(size) }),\n h(Switch, {\n label: \"Show extent\",\n alignIndicator: \"right\",\n checked: showExtent,\n onChange() {\n setShowExtent(!showExtent);\n },\n }),\n ]);\n}\n\nfunction formatSize(size: number) {\n if (size > 1000000)\n return h(UnitNumber, { value: size / 1000000, unit: \"Mb\" });\n if (size > 1000) return h(UnitNumber, { value: size / 1000, unit: \"Kb\" });\n return `${size} bytes`;\n}\n\nfunction UnitNumber({ value, unit, precision = 1 }) {\n return h(\"span.unit-number\", [\n h(\"span.number\", value.toFixed(precision)),\n h(\"span.unit\", unit),\n ]);\n}\n\nexport function FeaturePanel({\n features,\n focusedSource = null,\n focusedSourceTitle = null,\n}) {\n if (features == null) return null;\n\n let focusedSourcePanel = null;\n let filteredFeatures = features;\n let title = \"Features\";\n\n if (focusedSource != null) {\n title = \"Basemap features\";\n focusedSourcePanel = h(\n ExpansionPanel,\n {\n title: \"Macrostrat features\",\n className: \"macrostrat-features\",\n expanded: true,\n },\n [\n h(LoadingAwareFeatureSet, {\n features,\n sourceID: focusedSource,\n }),\n ]\n );\n filteredFeatures = features.filter((d) => d.source != focusedSource);\n }\n\n return h(\"div.feature-panel\", [\n focusedSourcePanel,\n h(\n ExpansionPanel,\n { title, className: \"basemap-features\", expanded: focusedSource == null },\n [\n h(Features, {\n features: filteredFeatures,\n }),\n ]\n ),\n ]);\n}\n\nfunction Features({ features }) {\n /** Group features by source and sourceLayer */\n if (features == null) return null;\n\n const groups = group(features, (d) => `${d.source} - ${d.sourceLayer}`);\n\n return h(\n \"div.features\",\n Array.from(groups).map(([key, features]) => {\n return h(\"div.feature-group\", [\n h(FeatureHeader, { feature: features[0] }),\n features.map((feature, i) => h(FeatureRecord, { key: i, feature })),\n ]);\n })\n );\n}\n","import { useState } from \"react\";\nimport { Collapse, Icon } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { Button } from \"@blueprintjs/core\";\nimport { PanelSubhead } from \"./headers\";\n\nconst h = hyper.styled(styles);\n\nfunction ExpansionPanelSummary(props) {\n const { expanded, children, onChange, className, title, titleComponent } =\n props;\n const icon = expanded ? \"chevron-up\" : \"chevron-down\";\n return h(\n PanelSubhead,\n {\n className: classNames(\"expansion-panel-header\", className),\n onClick: onChange,\n title,\n component: titleComponent,\n },\n [children, h(Icon, { icon })]\n );\n}\n\nfunction ExpansionPanelBase(props) {\n let {\n title,\n titleComponent = \"h3\",\n children,\n expanded,\n helpText,\n onChange = () => {},\n sideComponent = null,\n className,\n } = props;\n const [isOpen, setOpen] = useState(expanded || false);\n\n const onChange_ = () => {\n onChange();\n setOpen(!isOpen);\n };\n\n return h(\n \"div.expansion-panel-base\",\n {\n className: classNames(className, {\n expanded: isOpen,\n collapsed: !isOpen,\n }),\n },\n [\n h(\n ExpansionPanelSummary,\n {\n onChange: onChange_,\n expanded: isOpen,\n title,\n titleComponent,\n },\n h(\"div.expansion-summary-title-help\", [\n h(\"span.expansion-panel-subtext\", helpText),\n \" \",\n sideComponent,\n ])\n ),\n h(Collapse, { isOpen }, h(\"div.expansion-children\", null, children)),\n ]\n );\n}\n\nexport function InfoPanelSection(props) {\n let { title, children, className, headerElement = null } = props;\n return h(\"div.info-panel-section\", { className }, [\n h(\"div.panel-subhead\", null, headerElement ?? h(\"h3\", title)),\n h(\"div.panel-content\", null, children),\n ]);\n}\n\nfunction ExpansionPanel(props) {\n return h(ExpansionPanelBase, {\n ...props,\n className: \"expansion-panel\",\n });\n}\n\nfunction SubExpansionPanel(props) {\n return h(ExpansionPanelBase, {\n ...props,\n className: \"expansion-panel sub-expansion-panel\",\n titleComponent: \"h4\",\n });\n}\n\nfunction ExpandableDetailsPanel(props) {\n let { title, children, value, headerElement, className } = props;\n const [isOpen, setIsOpen] = useState(false);\n headerElement ??= h([h(\"div.title\", title), value]);\n return h(\"div.expandable-details\", { className }, [\n h(\"div.expandable-details-main\", [\n h(\"div.expandable-details-header\", headerElement),\n h(\"div.expandable-details-toggle\", [\n h(Button, {\n small: true,\n minimal: true,\n active: isOpen,\n onClick: () => setIsOpen(!isOpen),\n icon: \"more\",\n }),\n ]),\n ]),\n h(\n Collapse,\n { isOpen },\n h(\"div.expandable-details-children\", null, children)\n ),\n ]);\n}\n\nfunction ExpansionBody({ title, className, children }) {\n return h(\"div.expansion-body\", { className }, [\n h(\"div.expansion-panel-detail-header\", title),\n h(\"div.expansion-panel-detail-body\", null, children),\n ]);\n}\n\nexport {\n ExpansionPanel,\n ExpansionPanelSummary,\n ExpandableDetailsPanel,\n SubExpansionPanel,\n ExpansionBody,\n};\n","\n.panel-subhead\n padding: 0.2em var(--box-horizontal-padding)\n border-top: 1px solid var(--accent-border-color)\n border-bottom: 1px solid var(--accent-border-color)\n background-color: var(--accent-color)\n display: flex\n flex-direction: row\n align-items: center\n z-index: 1\n gap: var(--box-horizontal-padding)\n top: 0px\n position: sticky\n h1, h2, h3, h4\n font-family: Montserrat,sans-serif\n font-weight: 700\n margin: 0.2em 0\n h4\n font-weight: 600\n .title\n flex-grow: 1\n\n// :global(.bp4-dark) .panel-subhead\n// margin 0 1px\n\n.expansion-panel\n padding: 0\n flex-wrap: wrap\n margin-top: -1px\n // &.collapsed\n // .expansion-panel-header\n // border-bottom-width: 0;\n\n.sub-expansion-panel\n margin: -1px calc(var(--panel-padding-h) * -0.5) 0\n overflow: hidden\n &:first-child\n .expansion-panel-header\n border-top-width: 0\n .panel-subhead\n border-top: none\n border-bottom: none\n\n .expansion-panel-header\n background-color: var(--accent-secondary-color)\n cursor: pointer\n &:hover\n background-color: var(--accent-secondary-hover-color)\n h2, h3, h4\n font-weight: 500\n border-bottom: 1px solid var(--tertiary-border-color)\n border-top: 1px solid var(--tertiary-border-color)\n margin-top: -1px\n padding: 5px 1em 5px\n align-items: center\n\n.expansion-summary-title-help\n margin-left: 5px\n :global(.bp4-icon)\n margin-left: 5px\n\n.expansion-panel-header\n cursor: pointer\n &:hover\n background-color: var(--accent-hover-color)\n :global(.bp4-icon)\n transform: translate(0,3px)\n\n.expansion-children\n padding: 5px 1em 10px\n .expansion-panel\n margin-left: -1em\n margin-right: -1em\n &:first-child\n margin-top: -5px\n\n.expansion-panel-subtext\n font-size: 85%\n font-weight: 400\n\n:global\n .expansion-panel-root\n padding-left: 15px !important\n\n .expansion-panel-detail\n display: block !important\n padding: 0 !important\n\n .expansion-panel-detail-sub\n display: block !important\n\n// New expandable panel for details\n.expandable-details-main\n display: flex\n flex-direction: row\n align-items: center\n justify-content: space-between\n margin: 3px 0\n\n.expandable-details-header\n display: inline-flex\n flex-direction: row\n align-items: baseline\n flex-grow: 1\n\n.expandable-details-children\n position: relative\n\n.expandable-details-toggle\n :global(.bp4-button)\n font-size: 10px\n\n.expandable-details\n &.macrostrat-unit\n .title:after\n content: none\n .title\n margin-right: 1em\n &:after\n content: \":\"\n\n.expansion-body\n display: inline-block\n //flex-direction row\n align-items: baseline\n background-color: var(--tertiary-background)\n padding: 2px 6px\n border-radius: 4px\n width: 100%\n box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.2)\n margin-bottom: 6px\n\n.expansion-panel-detail-header\n font-size: 90%\n font-style: italic\n margin-right: 1em\n display: inline\n color: var(--secondary-color)\n &:after\n content: \":\"\n\n.expansion-panel-detail-body\n display: inline\n","import hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\n\nconst h = hyper.styled(styles);\n\nexport function PanelSubhead(props) {\n const { title, component = \"h3\", children, ...rest } = props;\n return h(\"div.panel-subhead\", rest, [\n h(\n component,\n {\n className: \"title\",\n },\n title\n ),\n children,\n ]);\n}\n"],"names":[],"version":3,"file":"index.js.map"}
|