@macrostrat/column-views 2.3.2 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/esm/{column-views.ce3a3ac8.js → column-views.0f910df6.js} +2 -2
- package/dist/esm/{column-views.ce3a3ac8.js.map → column-views.0f910df6.js.map} +1 -1
- package/dist/esm/{column-views.4e6eead3.js → column-views.1cd57b96.js} +2 -2
- package/dist/esm/{column-views.4e6eead3.js.map → column-views.1cd57b96.js.map} +1 -1
- package/dist/esm/{column-views.ee9d71ba.js → column-views.1d356b7e.js} +2 -2
- package/dist/esm/{column-views.ee9d71ba.js.map → column-views.1d356b7e.js.map} +1 -1
- package/dist/esm/{column-views.3d3e00be.js → column-views.1ef0f7e8.js} +2 -2
- package/dist/esm/{column-views.3d3e00be.js.map → column-views.1ef0f7e8.js.map} +1 -1
- package/dist/esm/{column-views.ad2fe46c.js → column-views.1f954206.js} +2 -2
- package/dist/esm/{column-views.ad2fe46c.js.map → column-views.1f954206.js.map} +1 -1
- package/dist/esm/{column-views.24060b85.js → column-views.25713aad.js} +4 -4
- package/dist/esm/{column-views.24060b85.js.map → column-views.25713aad.js.map} +1 -1
- package/dist/esm/{column-views.9ffc089b.js → column-views.28cab78c.js} +3 -3
- package/dist/esm/{column-views.9ffc089b.js.map → column-views.28cab78c.js.map} +1 -1
- package/dist/esm/column-views.2e517e39.js +126 -0
- package/dist/esm/column-views.2e517e39.js.map +1 -0
- package/dist/esm/{column-views.18aac6a5.js → column-views.3067c5e3.js} +3 -3
- package/dist/esm/{column-views.18aac6a5.js.map → column-views.3067c5e3.js.map} +1 -1
- package/dist/esm/{column-views.6f96d1c3.js → column-views.31152763.js} +20 -17
- package/dist/esm/column-views.31152763.js.map +1 -0
- package/dist/esm/{column-views.04636815.js → column-views.33daabd5.js} +5 -5
- package/dist/esm/{column-views.04636815.js.map → column-views.33daabd5.js.map} +1 -1
- package/dist/esm/{column-views.e075af15.js → column-views.3c1cde51.js} +2 -2
- package/dist/esm/{column-views.e075af15.js.map → column-views.3c1cde51.js.map} +1 -1
- package/dist/esm/{column-views.0da4503a.js → column-views.3c9f5ba9.js} +2 -2
- package/dist/esm/{column-views.0da4503a.js.map → column-views.3c9f5ba9.js.map} +1 -1
- package/dist/esm/{column-views.c149f7a5.js → column-views.3d33ef0f.js} +3 -3
- package/dist/esm/{column-views.c149f7a5.js.map → column-views.3d33ef0f.js.map} +1 -1
- package/dist/esm/{column-views.8d972657.js → column-views.4099a246.js} +3 -3
- package/dist/esm/{column-views.8d972657.js.map → column-views.4099a246.js.map} +1 -1
- package/dist/esm/{column-views.b9265595.js → column-views.45acb682.js} +6 -6
- package/dist/esm/column-views.45acb682.js.map +1 -0
- package/dist/esm/{column-views.26e0e0b6.js → column-views.4e5746da.js} +2 -2
- package/dist/esm/{column-views.26e0e0b6.js.map → column-views.4e5746da.js.map} +1 -1
- package/dist/esm/{column-views.f7cdf6be.js → column-views.55bce35c.js} +3 -3
- package/dist/esm/{column-views.f7cdf6be.js.map → column-views.55bce35c.js.map} +1 -1
- package/dist/esm/{column-views.029ea8f1.js → column-views.631f55d4.js} +3 -3
- package/dist/esm/{column-views.029ea8f1.js.map → column-views.631f55d4.js.map} +1 -1
- package/dist/esm/column-views.67804ce5.js +68 -0
- package/dist/esm/column-views.67804ce5.js.map +1 -0
- package/dist/esm/column-views.8168c37d.js +113 -0
- package/dist/esm/column-views.8168c37d.js.map +1 -0
- package/dist/esm/{column-views.b977da35.js → column-views.848349c0.js} +5 -5
- package/dist/esm/{column-views.b977da35.js.map → column-views.848349c0.js.map} +1 -1
- package/dist/esm/{column-views.73fc96cb.js → column-views.86b879ba.js} +5 -5
- package/dist/esm/{column-views.73fc96cb.js.map → column-views.86b879ba.js.map} +1 -1
- package/dist/esm/{column-views.d6c0b7bc.js → column-views.8c8f3fe0.js} +2 -2
- package/dist/esm/{column-views.d6c0b7bc.js.map → column-views.8c8f3fe0.js.map} +1 -1
- package/dist/esm/{column-views.3f1cdc18.js → column-views.9b210fb2.js} +2 -2
- package/dist/esm/{column-views.3f1cdc18.js.map → column-views.9b210fb2.js.map} +1 -1
- package/dist/esm/{column-views.4685ea28.js → column-views.9d0d78aa.js} +2 -2
- package/dist/esm/{column-views.4685ea28.js.map → column-views.9d0d78aa.js.map} +1 -1
- package/dist/esm/{column-views.e3f0cd7b.js → column-views.af89f2b1.js} +23 -33
- package/dist/esm/column-views.af89f2b1.js.map +1 -0
- package/dist/esm/{column-views.75b83110.js → column-views.b3398cca.js} +5 -5
- package/dist/esm/{column-views.75b83110.js.map → column-views.b3398cca.js.map} +1 -1
- package/dist/esm/{column-views.2f979aee.js → column-views.b7b0be88.js} +3 -3
- package/dist/esm/{column-views.2f979aee.js.map → column-views.b7b0be88.js.map} +1 -1
- package/dist/esm/{column-views.d1b49f5c.js → column-views.b8933ea2.js} +2 -2
- package/dist/esm/{column-views.d1b49f5c.js.map → column-views.b8933ea2.js.map} +1 -1
- package/dist/esm/{column-views.0a010643.js → column-views.b9c4d94c.js} +4 -4
- package/dist/esm/{column-views.0a010643.js.map → column-views.b9c4d94c.js.map} +1 -1
- package/dist/esm/{column-views.5fff0716.js → column-views.d3a4596e.js} +3 -3
- package/dist/esm/{column-views.5fff0716.js.map → column-views.d3a4596e.js.map} +1 -1
- package/dist/esm/{column-views.d5fff9b8.js → column-views.dda76243.js} +3 -3
- package/dist/esm/{column-views.d5fff9b8.js.map → column-views.dda76243.js.map} +1 -1
- package/dist/esm/{column-views.9d51a5ab.js → column-views.df872a2c.js} +2 -2
- package/dist/esm/column-views.df872a2c.js.map +1 -0
- package/dist/esm/{column-views.488f24b6.js → column-views.e21f4e50.js} +2 -2
- package/dist/esm/{column-views.488f24b6.js.map → column-views.e21f4e50.js.map} +1 -1
- package/dist/esm/{column-views.a665cbb2.js → column-views.f046b170.js} +5 -5
- package/dist/esm/{column-views.a665cbb2.js.map → column-views.f046b170.js.map} +1 -1
- package/dist/esm/{column-views.82a5112b.js → column-views.fc4d28d8.js} +4 -4
- package/dist/esm/{column-views.82a5112b.js.map → column-views.fc4d28d8.js.map} +1 -1
- package/dist/esm/{column-views.faa7e52e.js → column-views.fdb3799c.js} +3 -3
- package/dist/esm/{column-views.faa7e52e.js.map → column-views.fdb3799c.js.map} +1 -1
- package/dist/esm/index.d.ts +73 -57
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +11 -11
- package/dist/node/{column-views.75456275.js → column-views.00c19fe8.js} +2 -2
- package/dist/node/{column-views.75456275.js.map → column-views.00c19fe8.js.map} +1 -1
- package/dist/node/{column-views.7c322202.js → column-views.00caa49a.js} +2 -2
- package/dist/node/{column-views.7c322202.js.map → column-views.00caa49a.js.map} +1 -1
- package/dist/node/{column-views.9efa91f1.js → column-views.07680def.js} +2 -2
- package/dist/node/{column-views.9efa91f1.js.map → column-views.07680def.js.map} +1 -1
- package/dist/node/column-views.0980c2a0.js +2 -0
- package/dist/node/column-views.0980c2a0.js.map +1 -0
- package/dist/node/column-views.1495397b.js +2 -0
- package/dist/node/column-views.1495397b.js.map +1 -0
- package/dist/node/{column-views.47440961.js → column-views.190241c4.js} +2 -2
- package/dist/node/{column-views.47440961.js.map → column-views.190241c4.js.map} +1 -1
- package/dist/node/{column-views.fafbc028.js → column-views.1d1d6117.js} +2 -2
- package/dist/node/{column-views.fafbc028.js.map → column-views.1d1d6117.js.map} +1 -1
- package/dist/node/column-views.26306041.js +2 -0
- package/dist/node/column-views.26306041.js.map +1 -0
- package/dist/node/{column-views.6556e004.js → column-views.3ce34544.js} +2 -2
- package/dist/node/{column-views.6556e004.js.map → column-views.3ce34544.js.map} +1 -1
- package/dist/node/{column-views.c007152b.js → column-views.41d72280.js} +2 -2
- package/dist/node/{column-views.c007152b.js.map → column-views.41d72280.js.map} +1 -1
- package/dist/node/{column-views.59ce629d.js → column-views.4e677bc4.js} +2 -2
- package/dist/node/{column-views.59ce629d.js.map → column-views.4e677bc4.js.map} +1 -1
- package/dist/node/{column-views.2fe8feb9.js → column-views.60dc38f3.js} +2 -2
- package/dist/node/{column-views.2fe8feb9.js.map → column-views.60dc38f3.js.map} +1 -1
- package/dist/node/{column-views.d818b387.js → column-views.68fe4814.js} +2 -2
- package/dist/node/{column-views.d818b387.js.map → column-views.68fe4814.js.map} +1 -1
- package/dist/node/{column-views.3a947d58.js → column-views.69ddf14d.js} +2 -2
- package/dist/node/{column-views.3a947d58.js.map → column-views.69ddf14d.js.map} +1 -1
- package/dist/node/column-views.6d6a8fde.js +2 -0
- package/dist/node/column-views.6d6a8fde.js.map +1 -0
- package/dist/node/{column-views.08bef1f6.js → column-views.705f66b1.js} +2 -2
- package/dist/node/{column-views.08bef1f6.js.map → column-views.705f66b1.js.map} +1 -1
- package/dist/node/{column-views.8e846c57.js → column-views.7714173b.js} +2 -2
- package/dist/node/{column-views.8e846c57.js.map → column-views.7714173b.js.map} +1 -1
- package/dist/node/{column-views.a14f0134.js → column-views.7ee01d2b.js} +2 -2
- package/dist/node/{column-views.a14f0134.js.map → column-views.7ee01d2b.js.map} +1 -1
- package/dist/node/column-views.861b8e3e.js +2 -0
- package/dist/node/column-views.861b8e3e.js.map +1 -0
- package/dist/node/{column-views.c921fa1a.js → column-views.89afd6b3.js} +2 -2
- package/dist/node/{column-views.c921fa1a.js.map → column-views.89afd6b3.js.map} +1 -1
- package/dist/node/{column-views.8eae7028.js → column-views.8f5532b0.js} +2 -2
- package/dist/node/{column-views.8eae7028.js.map → column-views.8f5532b0.js.map} +1 -1
- package/dist/node/{column-views.67e7a200.js → column-views.97f7f353.js} +2 -2
- package/dist/node/{column-views.67e7a200.js.map → column-views.97f7f353.js.map} +1 -1
- package/dist/node/{column-views.3d0c2bea.js → column-views.9a408bbf.js} +2 -2
- package/dist/node/{column-views.3d0c2bea.js.map → column-views.9a408bbf.js.map} +1 -1
- package/dist/node/column-views.a0969fc8.js +2 -0
- package/dist/node/column-views.a0969fc8.js.map +1 -0
- package/dist/node/{column-views.02869dc5.js → column-views.a0e23210.js} +2 -2
- package/dist/node/{column-views.02869dc5.js.map → column-views.a0e23210.js.map} +1 -1
- package/dist/node/{column-views.8f540f78.js → column-views.a54c0820.js} +2 -2
- package/dist/node/{column-views.8f540f78.js.map → column-views.a54c0820.js.map} +1 -1
- package/dist/node/{column-views.0f401891.js → column-views.b3aa406d.js} +2 -2
- package/dist/node/{column-views.0f401891.js.map → column-views.b3aa406d.js.map} +1 -1
- package/dist/node/{column-views.0a2596c2.js → column-views.b7f69f19.js} +2 -2
- package/dist/node/{column-views.0a2596c2.js.map → column-views.b7f69f19.js.map} +1 -1
- package/dist/node/{column-views.cd54f1b1.js → column-views.b9900855.js} +2 -2
- package/dist/node/{column-views.cd54f1b1.js.map → column-views.b9900855.js.map} +1 -1
- package/dist/node/{column-views.6b391d60.js → column-views.bd1481f0.js} +2 -2
- package/dist/node/{column-views.6b391d60.js.map → column-views.bd1481f0.js.map} +1 -1
- package/dist/node/{column-views.e264a767.js → column-views.bf90c8a3.js} +2 -2
- package/dist/node/column-views.bf90c8a3.js.map +1 -0
- package/dist/node/{column-views.fee4e65d.js → column-views.bfaf5ddb.js} +2 -2
- package/dist/node/{column-views.fee4e65d.js.map → column-views.bfaf5ddb.js.map} +1 -1
- package/dist/node/{column-views.00ad98fa.js → column-views.dedafcae.js} +2 -2
- package/dist/node/{column-views.00ad98fa.js.map → column-views.dedafcae.js.map} +1 -1
- package/dist/node/{column-views.e153680b.js → column-views.e1481ea6.js} +2 -2
- package/dist/node/{column-views.e153680b.js.map → column-views.e1481ea6.js.map} +1 -1
- package/dist/node/{column-views.c4188442.js → column-views.e4e014cd.js} +2 -2
- package/dist/node/{column-views.c4188442.js.map → column-views.e4e014cd.js.map} +1 -1
- package/dist/node/{column-views.465e593b.js → column-views.ed7b4c16.js} +2 -2
- package/dist/node/{column-views.465e593b.js.map → column-views.ed7b4c16.js.map} +1 -1
- package/dist/node/{column-views.2577dec0.js → column-views.f749dbd6.js} +2 -2
- package/dist/node/{column-views.2577dec0.js.map → column-views.f749dbd6.js.map} +1 -1
- package/dist/node/{column-views.825d2719.js → column-views.fcf2be3c.js} +2 -2
- package/dist/node/{column-views.825d2719.js.map → column-views.fcf2be3c.js.map} +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +5 -4
- package/src/age-model-overlay.ts +4 -2
- package/src/column.ts +18 -41
- package/src/correlation-chart/main.ts +11 -9
- package/src/data-provider/core.ts +89 -0
- package/src/data-provider/store.ts +79 -88
- package/src/data-provider/unit-selection.ts +120 -147
- package/src/unit-details/popover.ts +8 -4
- package/dist/esm/column-views.4b259f9e.js +0 -136
- package/dist/esm/column-views.4b259f9e.js.map +0 -1
- package/dist/esm/column-views.6f96d1c3.js.map +0 -1
- package/dist/esm/column-views.9d51a5ab.js.map +0 -1
- package/dist/esm/column-views.b9265595.js.map +0 -1
- package/dist/esm/column-views.c44febd0.js +0 -169
- package/dist/esm/column-views.c44febd0.js.map +0 -1
- package/dist/esm/column-views.e3f0cd7b.js.map +0 -1
- package/dist/node/column-views.0beae29d.js +0 -2
- package/dist/node/column-views.0beae29d.js.map +0 -1
- package/dist/node/column-views.46efb749.js +0 -2
- package/dist/node/column-views.46efb749.js.map +0 -1
- package/dist/node/column-views.868c04dc.js +0 -2
- package/dist/node/column-views.868c04dc.js.map +0 -1
- package/dist/node/column-views.dfe9a971.js +0 -2
- package/dist/node/column-views.dfe9a971.js.map +0 -1
- package/dist/node/column-views.e264a767.js.map +0 -1
- package/dist/node/column-views.ed2fd268.js +0 -2
- package/dist/node/column-views.ed2fd268.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,W,C,K,mB,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,qB,I,G,E,E,uB,I,G,I,E,E,S,E,E,S,E,E,SCUA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAEhB,SAAS,EAAmB,CAAA,MACjC,CAAK,CAAA,SACL,CAAQ,CAAA,gBACR,EAAkB,EAAA,CAKnB,EACC,IAAM,EAAU,EAAE,EAAoB,GAEtC,OAAO,EACL,mBACA,CACE,MAAA,CACF,EACA,EACE,EAEA,CACE,QAAA,EACA,OAAQ,CAAA,EACR,UAAW,CAAA,EACX,SAAU,QACV,UAAW,CACT,gBAAiB,CAAE,QAAS,CAAE,QAAS,CAAgB,CAAE,CAC3D,CACF,EACA,EAAE,wBAGR,CAEA,SAAS,EAAmB,CAAA,SAAE,CAAQ,CAAE,EACtC,OAAO,EACL,MACA,CACE,QAAQ,CAAC,EAEP,EAAE,eAAe,EACnB,CACF,EACA,EAEJ,CAEO,SAAS,IACd,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,eAAc,AAAd,IACP,EAAa,AAAA,CAAA,EAAA,EAAA,wBAAuB,AAAvB,IACb,EAAW,AAAA,CAAA,EAAA,EAAA,sBAAqB,AAArB,WACjB,AAAI,AAAQ,MAAR,EACK,KAGF,EACL,6BACA,EACE,EACA,CACE,MAAO,CACL,SAAU,WACV,IAAK,GAAU,GAAK,EACpB,MAAO,GAAU,OAAS,IAC1B,KAAM,GAAU,GAAK,EACrB,OAAQ,GAAU,QAAU,GAC9B,CACF,EACA,EAAE,EAAA,gBAAe,CAAG,CAClB,KAAA,EACA,yBAA0B,CAAA,EAC1B,UAAW,eACX,aAAc,AAAC,IACb,QAAQ,GAAG,CAAC,4BAA6B,GACzC,EAAW,EAAI,KACjB,CACF,IAGN,Q,K,kB,C,K,oB","sources":["<anon>","packages/column-views/src/unit-details/popover.ts"],"sourcesContent":["import \"./column-views.6a9da051.js\";\nimport \"./column-views.861b8e3e.js\";\nimport \"./column-views.bfaf5ddb.js\";\nimport $jhKOD$macrostrathyper from \"@macrostrat/hyper\";\nimport {Popover as $jhKOD$Popover} from \"@blueprintjs/core\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $1c6e0a5d10814cef$exports = {};\n\n$parcel$export($1c6e0a5d10814cef$exports, \"UnitDetailsPopover\", () => $1c6e0a5d10814cef$export$6716aecc2c9afbe2);\n$parcel$export($1c6e0a5d10814cef$exports, \"UnitSelectionPopover\", () => $1c6e0a5d10814cef$export$db1115efab13710d);\n\n\n\nvar $bHbph = parcelRequire(\"bHbph\");\n\nvar $5SO8b = parcelRequire(\"5SO8b\");\n\nvar $iYfAq = parcelRequire(\"iYfAq\");\nconst $1c6e0a5d10814cef$var$h = (0, $jhKOD$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($bHbph))));\nfunction $1c6e0a5d10814cef$export$6716aecc2c9afbe2({ style: style, children: children, viewportPadding: viewportPadding = 20 }) {\n const content = $1c6e0a5d10814cef$var$h($1c6e0a5d10814cef$var$InteractionBarrier, children);\n return $1c6e0a5d10814cef$var$h(\"div.popover-main\", {\n style: style\n }, $1c6e0a5d10814cef$var$h((0, $jhKOD$Popover), // @ts-ignore\n {\n content: content,\n isOpen: true,\n usePortal: false,\n position: \"right\",\n modifiers: {\n preventOverflow: {\n options: {\n padding: viewportPadding\n }\n }\n }\n }, $1c6e0a5d10814cef$var$h(\"span.popover-target\")));\n}\nfunction $1c6e0a5d10814cef$var$InteractionBarrier({ children: children }) {\n return $1c6e0a5d10814cef$var$h(\"div\", {\n onClick (e) {\n // Stop events from leaking to the parent\n e.stopPropagation();\n }\n }, children);\n}\nfunction $1c6e0a5d10814cef$export$db1115efab13710d() {\n const unit = (0, $5SO8b.useSelectedUnit)();\n const selectUnit = (0, $5SO8b.useUnitSelectionDispatch)();\n const position = (0, $5SO8b.useAtomOverlayPosition)();\n if (unit == null) return null;\n return $1c6e0a5d10814cef$var$h(\"div.unit-popover-container\", $1c6e0a5d10814cef$var$h($1c6e0a5d10814cef$export$6716aecc2c9afbe2, {\n style: {\n position: \"absolute\",\n top: position?.y ?? 0,\n width: position?.width ?? 100,\n left: position?.x ?? 0,\n height: position?.height ?? 100\n }\n }, $1c6e0a5d10814cef$var$h((0, $iYfAq.UnitDetailsPanel), {\n unit: unit,\n showLithologyProportions: true,\n className: \"legend-panel\",\n onSelectUnit: (id)=>{\n console.log(\"Selected unit in popover:\", id);\n selectUnit(id, null);\n }\n })));\n}\n\n\nexport {$1c6e0a5d10814cef$export$6716aecc2c9afbe2 as UnitDetailsPopover, $1c6e0a5d10814cef$export$db1115efab13710d as UnitSelectionPopover};\n//# sourceMappingURL=column-views.26306041.js.map\n","import hyper from \"@macrostrat/hyper\";\nimport { Popover } from \"@blueprintjs/core\";\nimport styles from \"./popover.module.sass\";\nimport {\n useAtomOverlayPosition,\n useSelectedUnit,\n useUnitSelectionDispatch,\n} from \"../data-provider\";\nimport { UnitDetailsPanel } from \"./panel\";\n\nconst h = hyper.styled(styles);\n\nexport function UnitDetailsPopover({\n style,\n children,\n viewportPadding = 20,\n}: {\n style: object;\n viewportPadding?: number;\n children: React.ReactNode;\n}) {\n const content = h(InteractionBarrier, children);\n\n return h(\n \"div.popover-main\",\n {\n style,\n },\n h(\n Popover,\n // @ts-ignore\n {\n content,\n isOpen: true,\n usePortal: false,\n position: \"right\",\n modifiers: {\n preventOverflow: { options: { padding: viewportPadding } },\n },\n },\n h(\"span.popover-target\"),\n ),\n );\n}\n\nfunction InteractionBarrier({ children }) {\n return h(\n \"div\",\n {\n onClick(e) {\n // Stop events from leaking to the parent\n e.stopPropagation();\n },\n },\n children,\n );\n}\n\nexport function UnitSelectionPopover() {\n const unit = useSelectedUnit();\n const selectUnit = useUnitSelectionDispatch();\n const position = useAtomOverlayPosition();\n if (unit == null) {\n return null;\n }\n\n return h(\n \"div.unit-popover-container\",\n h(\n UnitDetailsPopover,\n {\n style: {\n position: \"absolute\",\n top: position?.y ?? 0,\n width: position?.width ?? 100,\n left: position?.x ?? 0,\n height: position?.height ?? 100,\n },\n },\n h(UnitDetailsPanel, {\n unit,\n showLithologyProportions: true,\n className: \"legend-panel\",\n onSelectUnit: (id: number) => {\n console.log(\"Selected unit in popover:\", id);\n selectUnit(id, null);\n },\n }),\n ),\n );\n}\n"],"names":["$jhKOD$macrostrathyper","Popover","$jhKOD$Popover","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$1c6e0a5d10814cef$exports","$1c6e0a5d10814cef$export$6716aecc2c9afbe2","$1c6e0a5d10814cef$export$db1115efab13710d","$bHbph","$5SO8b","$iYfAq","$1c6e0a5d10814cef$var$h","styled","a","__esModule","default","style","children","viewportPadding","content","$1c6e0a5d10814cef$var$InteractionBarrier","isOpen","usePortal","position","modifiers","preventOverflow","options","padding","onClick","stopPropagation","unit","useSelectedUnit","selectUnit","useUnitSelectionDispatch","useAtomOverlayPosition","top","y","width","left","x","height","UnitDetailsPanel","showLithologyProportions","className","onSelectUnit","console","log","UnitDetailsPopover","UnitSelectionPopover"],"version":3,"file":"column-views.26306041.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./column-views.4ec769a6.js";import"./column-views.
|
|
2
|
-
//# sourceMappingURL=column-views.
|
|
1
|
+
import"./column-views.4ec769a6.js";import"./column-views.0980c2a0.js";import"./column-views.672b683c.js";import e from"@macrostrat/hyper";import{Box as t,useElementSize as a}from"@macrostrat/ui-components";import{group as r}from"d3-array";import{ColumnSVG as n,ColumnAxisType as o}from"@macrostrat/column-components";import{useRef as s}from"react";var l=globalThis,i={},u={},c=l.parcelRequirea149;null==c&&((c=function(e){if(e in i)return i[e].exports;if(e in u){var t=u[e];delete u[e];var a={id:e,exports:{}};return i[e]=a,t.call(a.exports,a,a.exports),a.exports}var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,t){u[e]=t},l.parcelRequirea149=c),c.register,Object.defineProperty({},"PBDBOccurrencesMatrix",{get:()=>d,set:void 0,enumerable:!0,configurable:!0});var p=c("dx7no"),m=c("wtIgl"),f=c("f7qDU");let x=e.styled(f&&f.__esModule?f.default:f);function d({columnID:e}){let a=(0,p.useFossilData)(e,p.FossilDataType.Occurrences),s=(0,m.useMacrostratColumnData)(),l=(0,m.useCompositeScale)();if(null==a)return null;let i=new Map(r(a,e=>e.unit_id)),{taxonRanges:u}=function(e,t,a=o.AGE){let r=new Map,n=new Map;for(let[e,a]of t.entries())for(let t of a){let a=t.best_name??t.taxon_name;r.has(a)||(r.set(a,new Set),n.set(a,[])),r.get(a).add(e),n.get(a).push(t)}let s=Array.from(r.entries()).sort((e,t)=>t[0].localeCompare(e[0])),l=new Map;for(let[t,n]of r.entries())l.set(t,function(e,t,a){let r=[],n=null;for(let s of e)t.has(s.unit_id)?null==n?n=a==o.DEPTH||a==o.HEIGHT?[s.t_pos,s.b_pos]:[s.t_age,s.b_age]:a==o.DEPTH||a==o.HEIGHT?n[1]=s.b_pos:n[1]=s.b_age:null!=n&&(r.push(n),n=null);return null!=n&&r.push(n),r}(e,n,a));return{occurrenceMap:t,taxonUnitMap:new Map(s),taxonOccurrenceMap:n,taxonRanges:l}}(s.units,i,s.axisType),c=Array.from(u.entries());return x(t,{className:"taxon-ranges",width:32+16*c.length,height:s.totalHeight},[x(g,{taxonEntries:c,padding:16,spacing:16,scale:l}),x(n,{width:32+16*c.length},x("g.taxa-occurrences-matrix",c.map(([e,t],a)=>x("g",{transform:`translate(${16+16*a})`},[t.map(([e,t])=>x("line",{y1:l(e),y2:l(t)}))]))))])}function g({taxonEntries:e,padding:t,spacing:a,scale:r}){return x("div.taxon-labels",[e.map(([e,n],o)=>{let s=r(n[0]?.[0]??0)-20;return s<200&&(s=0),x(_,{top:s,left:t+o*a,taxonName:e})})])}function _({top:e,left:t,taxonName:r}){let n=s(),o=a(n),l=o?.height??200;return x("div.taxon-label",{style:{top:`${e}px`,marginLeft:`${t}px`,"--label-width":`${l}px`}},x("div.taxon-label-inner",x("div.taxon-label-text",{ref:n},r)))}export{d as PBDBOccurrencesMatrix};
|
|
2
|
+
//# sourceMappingURL=column-views.3ce34544.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,O,C,C,kB,C,K,2B,A,Q,S,C,K,U,A,Q,a,C,C,kB,C,K,+B,A,Q,U,C,K,O,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,O,c,C,C,E,wB,C,I,I,E,I,K,E,W,C,E,a,C,C,G,I,E,E,S,E,E,S,E,E,SCkBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAEhB,SAAS,EAAsB,CAAA,SAAE,CAAQ,CAAE,EAIhD,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,EAAU,AAAA,EAAA,cAAa,CAAE,WAAW,EACzD,EAAM,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IACN,EAAQ,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,IAEd,GAAI,AAAQ,MAAR,EAAc,OAAO,KAGzB,IAAM,EAAgB,IAAI,IAAI,AAAA,EAAM,EAAM,AAAC,GAAM,EAAE,OAAO,GAOpD,CAAA,YAAE,CAAW,CAAE,CAFN,AA0GjB,SACE,CAAiB,CACjB,CAAmC,CACnC,EAA2B,AAAA,EAAe,GAAG,EAE7C,IAAM,EAAe,IAAI,IACnB,EAAqB,IAAI,IAE/B,IAAK,GAAM,CAAC,EAAS,EAAY,GAAI,EAAK,OAAO,GAC/C,IAAK,IAAM,KAAO,EAAa,CAC7B,IAAM,EAAY,EAAI,SAAS,EAAI,EAAI,UAAU,CAC5C,EAAa,GAAG,CAAC,KACpB,EAAa,GAAG,CAAC,EAAW,IAAI,KAChC,EAAmB,GAAG,CAAC,EAAW,EAAE,GAEtC,EAAa,GAAG,CAAC,GAAW,GAAG,CAAC,GAChC,EAAmB,GAAG,CAAC,GAAW,IAAI,CAAC,EACzC,CAIF,IAAM,EAAa,MAAM,IAAI,CAAC,EAAa,OAAO,IAAI,IAAI,CAAC,CAAC,EAAG,IAEtD,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAG1B,EAAc,IAAI,IACxB,IAAK,GAAM,CAAC,EAAW,EAAQ,GAAI,EAAa,OAAO,GACrD,EAAY,GAAG,CACb,EACA,AAYN,SACE,CAAgB,CAChB,CAA0B,CAC1B,CAAwB,EAExB,IAAM,EAAmC,EAAE,CACvC,EAAyC,KAE7C,IAAK,IAAM,KAAK,EACV,EAAc,GAAG,CAAC,EAAE,OAAO,EACzB,AAAiB,MAAjB,EAKA,EAHA,GAAY,AAAA,EAAe,KAAK,EAChC,GAAY,AAAA,EAAe,MAAM,CAEjB,CAAC,EAAE,KAAK,CAAE,EAAE,KAAK,CAAC,CAElB,CAAC,EAAE,KAAK,CAAE,EAAE,KAAK,CAAC,CAIlC,GAAY,AAAA,EAAe,KAAK,EAChC,GAAY,AAAA,EAAe,MAAM,CAEjC,CAAa,CAAC,EAAE,CAAG,EAAE,KAAK,CAE1B,CAAa,CAAC,EAAE,CAAG,EAAE,KAAK,CAIT,MAAjB,IACF,EAAQ,IAAI,CAAC,GACb,EAAgB,MAStB,OAJI,AAAiB,MAAjB,GACF,EAAQ,IAAI,CAAC,GAGR,CACT,EAtDgC,EAAO,EAAS,IAI9C,MAAO,CACL,cAAe,EACf,aAAc,IAAI,IAAI,GACtB,mBAAoB,EACpB,YAAA,CACF,CACF,EAlJwC,EAAI,KAAK,CAAE,EAAe,EAAI,QAAQ,EAOtE,EAAe,MAAM,IAAI,CAAC,EAAY,OAAO,IAKnD,OAAO,EAAE,EAAK,CAAE,UAAW,eAAgB,MAF7B,GAAc,AALZ,GAKsB,EAAa,MAAM,CAEP,OAAQ,EAAI,WAAW,AAAC,EAAG,CAC3E,EAAE,EAAuB,CACvB,aAAA,EACA,QAXY,GAYZ,QAXY,GAYZ,MAAA,CACF,GACA,EACE,EACA,CACE,MAAO,GAAc,AAjBX,GAiBqB,EAAa,MAAM,AACpD,EACA,EACE,4BACA,EAAa,GAAG,CAAC,CAAC,CAAC,EAAW,EAAO,CAAE,IAE9B,EAAE,IAAK,CAAE,UAAW,CAAC,UAAU,EADpB,AAvBV,GAuBoB,AAtBpB,GAsBoB,EACsB,CAAC,CAAC,AAAC,EAAG,CACtD,EAAO,GAAG,CAAC,CAAC,CAAC,EAAK,EAAO,GAChB,EAAE,OAAQ,CACf,GAAI,EAAM,GACV,GAAI,EAAM,EACZ,IAEH,KAIR,CACH,CAEA,SAAS,EAAsB,CAAA,aAAE,CAAY,CAAA,QAAE,CAAO,CAAA,QAAE,CAAO,CAAA,MAAE,CAAK,CAAE,EACtE,OAAO,EAAE,mBAAoB,CAC3B,EAAa,GAAG,CAAC,CAAC,CAAC,EAAW,EAAO,CAAE,KAErC,IAAI,EAAQ,EADA,CAAM,CAAC,EAAE,EAAE,CAAC,EAAE,EAAI,GACL,GAGzB,OAFI,EAAQ,KAAK,CAAA,EAAQ,CAAA,EAElB,EAAE,EAAY,CACnB,IAAK,EACL,KAAM,EAAU,EAAW,EAC3B,UAAA,CACF,EACF,GACD,CACH,CAEA,SAAS,EAAW,CAAA,IAAE,CAAG,CAAA,KAAE,CAAI,CAAA,UAAE,CAAS,CAAE,EAC1C,IAAM,EAAM,AAAA,IACN,EAAW,AAAA,EAAe,GAC1B,EAAa,GAAU,QAAU,IACvC,OAAO,EACL,kBACA,CACE,MAAO,CACL,IAAK,CAAA,EAAG,EAAI,EAAE,CAAC,CACf,WAAY,CAAA,EAAG,EAAK,EAAE,CAAC,CACvB,gBAAiB,CAAA,EAAG,EAAW,EAAE,CAAC,AACpC,CACF,EACA,EAAE,wBAAyB,EAAE,uBAAwB,CAAE,IAAA,CAAI,EAAG,IAElE,Q,K,qB","sources":["<anon>","packages/column-views/src/facets/fossils/taxon-ranges.ts"],"sourcesContent":["import \"./column-views.4ec769a6.js\";\nimport \"./column-views.46efb749.js\";\nimport \"./column-views.672b683c.js\";\nimport $1vN9E$macrostrathyper from \"@macrostrat/hyper\";\nimport {Box as $1vN9E$Box, useElementSize as $1vN9E$useElementSize} from \"@macrostrat/ui-components\";\nimport {group as $1vN9E$group} from \"d3-array\";\nimport {ColumnSVG as $1vN9E$ColumnSVG, ColumnAxisType as $1vN9E$ColumnAxisType} from \"@macrostrat/column-components\";\nimport {useRef as $1vN9E$useRef} from \"react\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $9cea14fa75e12a56$exports = {};\n\n$parcel$export($9cea14fa75e12a56$exports, \"PBDBOccurrencesMatrix\", () => $9cea14fa75e12a56$export$652730986cccff7a);\n\n\nvar $dx7no = parcelRequire(\"dx7no\");\n\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\nvar $f7qDU = parcelRequire(\"f7qDU\");\n\nconst $9cea14fa75e12a56$var$h = (0, $1vN9E$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($f7qDU))));\nfunction $9cea14fa75e12a56$export$652730986cccff7a({ columnID: columnID }) {\n /* A column for a matrix of taxon occurrences displayed as a table beside the main column. This will\n eventually be extended with first/last occurrence markers and range bars.\n */ const data = (0, $dx7no.useFossilData)(columnID, (0, $dx7no.FossilDataType).Occurrences);\n const col = (0, $wtIgl.useMacrostratColumnData)();\n const scale = (0, $wtIgl.useCompositeScale)();\n if (data == null) return null;\n // convert the data to a map\n const occurrenceMap = new Map((0, $1vN9E$group)(data, (d)=>d.unit_id));\n const matrix = $9cea14fa75e12a56$var$createOccurrenceMatrix(col.units, occurrenceMap, col.axisType);\n const { taxonRanges: taxonRanges } = matrix;\n const padding = 16;\n const spacing = 16;\n const taxonEntries = Array.from(taxonRanges.entries());\n //const taxon = taxonEntries.slice(0, 50); // limit to top 50 taxa\n const width = padding * 2 + spacing * taxonEntries.length;\n return $9cea14fa75e12a56$var$h((0, $1vN9E$Box), {\n className: \"taxon-ranges\",\n width: width,\n height: col.totalHeight\n }, [\n $9cea14fa75e12a56$var$h($9cea14fa75e12a56$var$TaxonOccurrenceLabels, {\n taxonEntries: taxonEntries,\n padding: padding,\n spacing: spacing,\n scale: scale\n }),\n $9cea14fa75e12a56$var$h((0, $1vN9E$ColumnSVG), {\n width: padding * 2 + spacing * taxonEntries.length\n }, $9cea14fa75e12a56$var$h(\"g.taxa-occurrences-matrix\", taxonEntries.map(([taxonName, ranges], rowIndex)=>{\n const xPosition = padding + rowIndex * spacing;\n return $9cea14fa75e12a56$var$h(\"g\", {\n transform: `translate(${xPosition})`\n }, [\n ranges.map(([top, bottom])=>{\n return $9cea14fa75e12a56$var$h(\"line\", {\n y1: scale(top),\n y2: scale(bottom)\n });\n })\n ]);\n })))\n ]);\n}\nfunction $9cea14fa75e12a56$var$TaxonOccurrenceLabels({ taxonEntries: taxonEntries, padding: padding, spacing: spacing, scale: scale }) {\n return $9cea14fa75e12a56$var$h(\"div.taxon-labels\", [\n taxonEntries.map(([taxonName, ranges], rowIndex)=>{\n const top = ranges[0]?.[0] ?? 0;\n let topPx = scale(top) - 20;\n if (topPx < 200) topPx = 0;\n return $9cea14fa75e12a56$var$h($9cea14fa75e12a56$var$TaxonLabel, {\n top: topPx,\n left: padding + rowIndex * spacing,\n taxonName: taxonName\n });\n })\n ]);\n}\nfunction $9cea14fa75e12a56$var$TaxonLabel({ top: top, left: left, taxonName: taxonName }) {\n const ref = (0, $1vN9E$useRef)();\n const textSize = (0, $1vN9E$useElementSize)(ref);\n const labelWidth = textSize?.height ?? 200;\n return $9cea14fa75e12a56$var$h(\"div.taxon-label\", {\n style: {\n top: `${top}px`,\n marginLeft: `${left}px`,\n \"--label-width\": `${labelWidth}px`\n }\n }, $9cea14fa75e12a56$var$h(\"div.taxon-label-inner\", $9cea14fa75e12a56$var$h(\"div.taxon-label-text\", {\n ref: ref\n }, taxonName)));\n}\nfunction $9cea14fa75e12a56$var$TaxonOccurrenceEntry({ xPosition: xPosition, ranges: ranges, scale: scale, name: name }) {\n return $9cea14fa75e12a56$var$h(\"g\", {\n transform: `translate(${xPosition})`\n }, [\n ranges.map(([top, bottom])=>{\n return $9cea14fa75e12a56$var$h(\"line\", {\n y1: scale(top),\n y2: scale(bottom)\n });\n })\n ]);\n}\nfunction $9cea14fa75e12a56$var$createOccurrenceMatrix(units, data, axisType = (0, $1vN9E$ColumnAxisType).AGE) {\n const taxonUnitMap = new Map();\n const taxonOccurrenceMap = new Map();\n for (const [unit_id, occurrences] of data.entries())for (const occ of occurrences){\n const taxonName = occ.best_name ?? occ.taxon_name;\n if (!taxonUnitMap.has(taxonName)) {\n taxonUnitMap.set(taxonName, new Set());\n taxonOccurrenceMap.set(taxonName, []);\n }\n taxonUnitMap.get(taxonName).add(unit_id);\n taxonOccurrenceMap.get(taxonName).push(occ);\n }\n // sort the taxon occurrence map by number of occurrences\n const sortedTaxa = Array.from(taxonUnitMap.entries()).sort((a, b)=>{\n // Sort alphabetically by taxon name\n return b[0].localeCompare(a[0]);\n });\n const taxonRanges = new Map();\n for (const [taxonName, unitSet] of taxonUnitMap.entries())taxonRanges.set(taxonName, $9cea14fa75e12a56$var$accumulatePresenceDomains(units, unitSet, axisType));\n return {\n occurrenceMap: data,\n taxonUnitMap: new Map(sortedTaxa),\n taxonOccurrenceMap: taxonOccurrenceMap,\n taxonRanges: taxonRanges\n };\n}\nfunction $9cea14fa75e12a56$var$accumulatePresenceDomains(unit, presenceUnits, axisType) {\n const domains = [];\n let currentDomain = null;\n for (const u of unit){\n if (presenceUnits.has(u.unit_id)) {\n if (currentDomain == null) {\n if (axisType == (0, $1vN9E$ColumnAxisType).DEPTH || axisType == (0, $1vN9E$ColumnAxisType).HEIGHT) currentDomain = [\n u.t_pos,\n u.b_pos\n ];\n else currentDomain = [\n u.t_age,\n u.b_age\n ];\n } else if (axisType == (0, $1vN9E$ColumnAxisType).DEPTH || axisType == (0, $1vN9E$ColumnAxisType).HEIGHT) currentDomain[1] = u.b_pos;\n else currentDomain[1] = u.b_age;\n } else if (currentDomain != null) {\n domains.push(currentDomain);\n currentDomain = null;\n }\n }\n if (currentDomain != null) domains.push(currentDomain);\n return domains;\n}\n\n\nexport {$9cea14fa75e12a56$export$652730986cccff7a as PBDBOccurrencesMatrix};\n//# sourceMappingURL=column-views.6556e004.js.map\n","import hyper from \"@macrostrat/hyper\";\nimport {\n FossilDataType,\n PBDBEntity,\n PBDBOccurrence,\n useFossilData,\n} from \"./provider\";\nimport { Box, useElementSize } from \"@macrostrat/ui-components\";\nimport { group } from \"d3-array\";\nimport { ColumnAxisType, ColumnSVG } from \"@macrostrat/column-components\";\nimport {\n useMacrostratColumnData,\n useCompositeScale,\n} from \"../../data-provider\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport styles from \"./taxon-ranges.module.sass\";\nimport { useRef } from \"react\";\n\nconst h = hyper.styled(styles);\n\nexport function PBDBOccurrencesMatrix({ columnID }) {\n /* A column for a matrix of taxon occurrences displayed as a table beside the main column. This will\n eventually be extended with first/last occurrence markers and range bars.\n */\n const data = useFossilData(columnID, FossilDataType.Occurrences);\n const col = useMacrostratColumnData();\n const scale = useCompositeScale();\n\n if (data == null) return null;\n\n // convert the data to a map\n const occurrenceMap = new Map(group(data, (d) => d.unit_id)) as Map<\n number,\n PBDBOccurrence[]\n >;\n\n const matrix = createOccurrenceMatrix(col.units, occurrenceMap, col.axisType);\n\n const { taxonRanges } = matrix;\n\n const padding = 16;\n const spacing = 16;\n\n const taxonEntries = Array.from(taxonRanges.entries());\n //const taxon = taxonEntries.slice(0, 50); // limit to top 50 taxa\n\n const width = padding * 2 + spacing * taxonEntries.length;\n\n return h(Box, { className: \"taxon-ranges\", width, height: col.totalHeight }, [\n h(TaxonOccurrenceLabels, {\n taxonEntries,\n padding,\n spacing,\n scale,\n }),\n h(\n ColumnSVG,\n {\n width: padding * 2 + spacing * taxonEntries.length,\n },\n h(\n \"g.taxa-occurrences-matrix\",\n taxonEntries.map(([taxonName, ranges], rowIndex) => {\n const xPosition = padding + rowIndex * spacing;\n return h(\"g\", { transform: `translate(${xPosition})` }, [\n ranges.map(([top, bottom]) => {\n return h(\"line\", {\n y1: scale(top),\n y2: scale(bottom),\n });\n }),\n ]);\n }),\n ),\n ),\n ]);\n}\n\nfunction TaxonOccurrenceLabels({ taxonEntries, padding, spacing, scale }) {\n return h(\"div.taxon-labels\", [\n taxonEntries.map(([taxonName, ranges], rowIndex) => {\n const top = ranges[0]?.[0] ?? 0;\n let topPx = scale(top) - 20;\n if (topPx < 200) topPx = 0;\n\n return h(TaxonLabel, {\n top: topPx,\n left: padding + rowIndex * spacing,\n taxonName,\n });\n }),\n ]);\n}\n\nfunction TaxonLabel({ top, left, taxonName }) {\n const ref = useRef();\n const textSize = useElementSize(ref);\n const labelWidth = textSize?.height ?? 200;\n return h(\n \"div.taxon-label\",\n {\n style: {\n top: `${top}px`,\n marginLeft: `${left}px`,\n \"--label-width\": `${labelWidth}px`,\n },\n },\n h(\"div.taxon-label-inner\", h(\"div.taxon-label-text\", { ref }, taxonName)),\n );\n}\n\ntype TaxonUnitMap = Map<string, Set<number>>;\n\ninterface OccurrenceMatrixData {\n occurrenceMap: Map<number, PBDBEntity[]>; // Map of unit IDs to occurrences (original data)\n taxonUnitMap: TaxonUnitMap; // Map of taxon names to sets of unit IDs\n taxonOccurrenceMap: Map<string, PBDBOccurrence[]>; // Map of taxon names to occurrences\n taxonRanges: Map<string, [number, number][]>; // Map of taxon names to [top, bottom] pixel ranges\n}\n\nfunction TaxonOccurrenceEntry({\n xPosition,\n ranges,\n scale,\n name,\n}: {\n xPosition: number;\n units: Set<number>;\n ranges: any;\n scale: any;\n name: string;\n}) {\n return h(\"g\", { transform: `translate(${xPosition})` }, [\n ranges.map(([top, bottom]) => {\n return h(\"line\", {\n y1: scale(top),\n y2: scale(bottom),\n });\n }),\n ]);\n}\n\nfunction createOccurrenceMatrix(\n units: UnitLong[],\n data: Map<number, PBDBOccurrence[]>,\n axisType: ColumnAxisType = ColumnAxisType.AGE,\n): OccurrenceMatrixData {\n const taxonUnitMap = new Map<string, Set<number>>();\n const taxonOccurrenceMap = new Map<string, PBDBOccurrence[]>();\n\n for (const [unit_id, occurrences] of data.entries()) {\n for (const occ of occurrences) {\n const taxonName = occ.best_name ?? occ.taxon_name;\n if (!taxonUnitMap.has(taxonName)) {\n taxonUnitMap.set(taxonName, new Set());\n taxonOccurrenceMap.set(taxonName, []);\n }\n taxonUnitMap.get(taxonName).add(unit_id);\n taxonOccurrenceMap.get(taxonName).push(occ);\n }\n }\n\n // sort the taxon occurrence map by number of occurrences\n const sortedTaxa = Array.from(taxonUnitMap.entries()).sort((a, b) => {\n // Sort alphabetically by taxon name\n return b[0].localeCompare(a[0]);\n });\n\n const taxonRanges = new Map<string, [number, number][]>();\n for (const [taxonName, unitSet] of taxonUnitMap.entries()) {\n taxonRanges.set(\n taxonName,\n accumulatePresenceDomains(units, unitSet, axisType),\n );\n }\n\n return {\n occurrenceMap: data,\n taxonUnitMap: new Map(sortedTaxa),\n taxonOccurrenceMap: taxonOccurrenceMap,\n taxonRanges,\n };\n}\n\nfunction accumulatePresenceDomains(\n unit: UnitLong[],\n presenceUnits: Set<number>,\n axisType: ColumnAxisType,\n): Array<[number, number]> {\n const domains: Array<[number, number]> = [];\n let currentDomain: [number, number] | null = null;\n\n for (const u of unit) {\n if (presenceUnits.has(u.unit_id)) {\n if (currentDomain == null) {\n if (\n axisType == ColumnAxisType.DEPTH ||\n axisType == ColumnAxisType.HEIGHT\n ) {\n currentDomain = [u.t_pos, u.b_pos];\n } else {\n currentDomain = [u.t_age, u.b_age];\n }\n } else {\n if (\n axisType == ColumnAxisType.DEPTH ||\n axisType == ColumnAxisType.HEIGHT\n ) {\n currentDomain[1] = u.b_pos;\n } else {\n currentDomain[1] = u.b_age;\n }\n }\n } else {\n if (currentDomain != null) {\n domains.push(currentDomain);\n currentDomain = null;\n }\n }\n }\n\n if (currentDomain != null) {\n domains.push(currentDomain);\n }\n\n return domains;\n}\n"],"names":["$1vN9E$macrostrathyper","Box","$1vN9E$Box","useElementSize","$1vN9E$useElementSize","group","$1vN9E$group","ColumnSVG","$1vN9E$ColumnSVG","ColumnAxisType","$1vN9E$ColumnAxisType","useRef","$1vN9E$useRef","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","Object","defineProperty","get","$9cea14fa75e12a56$export$652730986cccff7a","set","s","enumerable","configurable","$dx7no","$wtIgl","$f7qDU","$9cea14fa75e12a56$var$h","styled","a","__esModule","default","columnID","data","useFossilData","FossilDataType","Occurrences","col","useMacrostratColumnData","scale","useCompositeScale","occurrenceMap","Map","d","unit_id","taxonRanges","$9cea14fa75e12a56$var$createOccurrenceMatrix","units","axisType","AGE","taxonUnitMap","taxonOccurrenceMap","occurrences","entries","occ","taxonName","best_name","taxon_name","has","Set","add","push","sortedTaxa","Array","from","sort","b","localeCompare","unitSet","$9cea14fa75e12a56$var$accumulatePresenceDomains","unit","presenceUnits","domains","currentDomain","u","DEPTH","HEIGHT","t_pos","b_pos","t_age","b_age","taxonEntries","className","width","padding","spacing","length","height","totalHeight","$9cea14fa75e12a56$var$TaxonOccurrenceLabels","map","ranges","rowIndex","transform","top","bottom","y1","y2","topPx","$9cea14fa75e12a56$var$TaxonLabel","left","ref","textSize","labelWidth","style","marginLeft","PBDBOccurrencesMatrix"],"version":3,"file":"column-views.6556e004.js.map","sourceRoot":"../../../../"}
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,O,C,C,kB,C,K,2B,A,Q,S,C,K,U,A,Q,a,C,C,kB,C,K,+B,A,Q,U,C,K,O,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,O,c,C,C,E,wB,C,I,I,E,I,K,E,W,C,E,a,C,C,G,I,E,E,S,E,E,S,E,E,SCkBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAEhB,SAAS,EAAsB,CAAA,SAAE,CAAQ,CAAE,EAIhD,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,EAAU,AAAA,EAAA,cAAa,CAAE,WAAW,EACzD,EAAM,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IACN,EAAQ,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,IAEd,GAAI,AAAQ,MAAR,EAAc,OAAO,KAGzB,IAAM,EAAgB,IAAI,IAAI,AAAA,EAAM,EAAM,AAAC,GAAM,EAAE,OAAO,GAOpD,CAAA,YAAE,CAAW,CAAE,CAFN,AA0GjB,SACE,CAAiB,CACjB,CAAmC,CACnC,EAA2B,AAAA,EAAe,GAAG,EAE7C,IAAM,EAAe,IAAI,IACnB,EAAqB,IAAI,IAE/B,IAAK,GAAM,CAAC,EAAS,EAAY,GAAI,EAAK,OAAO,GAC/C,IAAK,IAAM,KAAO,EAAa,CAC7B,IAAM,EAAY,EAAI,SAAS,EAAI,EAAI,UAAU,CAC5C,EAAa,GAAG,CAAC,KACpB,EAAa,GAAG,CAAC,EAAW,IAAI,KAChC,EAAmB,GAAG,CAAC,EAAW,EAAE,GAEtC,EAAa,GAAG,CAAC,GAAW,GAAG,CAAC,GAChC,EAAmB,GAAG,CAAC,GAAW,IAAI,CAAC,EACzC,CAIF,IAAM,EAAa,MAAM,IAAI,CAAC,EAAa,OAAO,IAAI,IAAI,CAAC,CAAC,EAAG,IAEtD,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAG1B,EAAc,IAAI,IACxB,IAAK,GAAM,CAAC,EAAW,EAAQ,GAAI,EAAa,OAAO,GACrD,EAAY,GAAG,CACb,EACA,AAYN,SACE,CAAgB,CAChB,CAA0B,CAC1B,CAAwB,EAExB,IAAM,EAAmC,EAAE,CACvC,EAAyC,KAE7C,IAAK,IAAM,KAAK,EACV,EAAc,GAAG,CAAC,EAAE,OAAO,EACzB,AAAiB,MAAjB,EAKA,EAHA,GAAY,AAAA,EAAe,KAAK,EAChC,GAAY,AAAA,EAAe,MAAM,CAEjB,CAAC,EAAE,KAAK,CAAE,EAAE,KAAK,CAAC,CAElB,CAAC,EAAE,KAAK,CAAE,EAAE,KAAK,CAAC,CAIlC,GAAY,AAAA,EAAe,KAAK,EAChC,GAAY,AAAA,EAAe,MAAM,CAEjC,CAAa,CAAC,EAAE,CAAG,EAAE,KAAK,CAE1B,CAAa,CAAC,EAAE,CAAG,EAAE,KAAK,CAIT,MAAjB,IACF,EAAQ,IAAI,CAAC,GACb,EAAgB,MAStB,OAJI,AAAiB,MAAjB,GACF,EAAQ,IAAI,CAAC,GAGR,CACT,EAtDgC,EAAO,EAAS,IAI9C,MAAO,CACL,cAAe,EACf,aAAc,IAAI,IAAI,GACtB,mBAAoB,EACpB,YAAA,CACF,CACF,EAlJwC,EAAI,KAAK,CAAE,EAAe,EAAI,QAAQ,EAOtE,EAAe,MAAM,IAAI,CAAC,EAAY,OAAO,IAKnD,OAAO,EAAE,EAAK,CAAE,UAAW,eAAgB,MAF7B,GAAc,AALZ,GAKsB,EAAa,MAAM,CAEP,OAAQ,EAAI,WAAW,AAAC,EAAG,CAC3E,EAAE,EAAuB,CACvB,aAAA,EACA,QAXY,GAYZ,QAXY,GAYZ,MAAA,CACF,GACA,EACE,EACA,CACE,MAAO,GAAc,AAjBX,GAiBqB,EAAa,MAAM,AACpD,EACA,EACE,4BACA,EAAa,GAAG,CAAC,CAAC,CAAC,EAAW,EAAO,CAAE,IAE9B,EAAE,IAAK,CAAE,UAAW,CAAC,UAAU,EADpB,AAvBV,GAuBoB,AAtBpB,GAsBoB,EACsB,CAAC,CAAC,AAAC,EAAG,CACtD,EAAO,GAAG,CAAC,CAAC,CAAC,EAAK,EAAO,GAChB,EAAE,OAAQ,CACf,GAAI,EAAM,GACV,GAAI,EAAM,EACZ,IAEH,KAIR,CACH,CAEA,SAAS,EAAsB,CAAA,aAAE,CAAY,CAAA,QAAE,CAAO,CAAA,QAAE,CAAO,CAAA,MAAE,CAAK,CAAE,EACtE,OAAO,EAAE,mBAAoB,CAC3B,EAAa,GAAG,CAAC,CAAC,CAAC,EAAW,EAAO,CAAE,KAErC,IAAI,EAAQ,EADA,CAAM,CAAC,EAAE,EAAE,CAAC,EAAE,EAAI,GACL,GAGzB,OAFI,EAAQ,KAAK,CAAA,EAAQ,CAAA,EAElB,EAAE,EAAY,CACnB,IAAK,EACL,KAAM,EAAU,EAAW,EAC3B,UAAA,CACF,EACF,GACD,CACH,CAEA,SAAS,EAAW,CAAA,IAAE,CAAG,CAAA,KAAE,CAAI,CAAA,UAAE,CAAS,CAAE,EAC1C,IAAM,EAAM,AAAA,IACN,EAAW,AAAA,EAAe,GAC1B,EAAa,GAAU,QAAU,IACvC,OAAO,EACL,kBACA,CACE,MAAO,CACL,IAAK,CAAA,EAAG,EAAI,EAAE,CAAC,CACf,WAAY,CAAA,EAAG,EAAK,EAAE,CAAC,CACvB,gBAAiB,CAAA,EAAG,EAAW,EAAE,CAAC,AACpC,CACF,EACA,EAAE,wBAAyB,EAAE,uBAAwB,CAAE,IAAA,CAAI,EAAG,IAElE,Q,K,qB","sources":["<anon>","packages/column-views/src/facets/fossils/taxon-ranges.ts"],"sourcesContent":["import \"./column-views.4ec769a6.js\";\nimport \"./column-views.0980c2a0.js\";\nimport \"./column-views.672b683c.js\";\nimport $1vN9E$macrostrathyper from \"@macrostrat/hyper\";\nimport {Box as $1vN9E$Box, useElementSize as $1vN9E$useElementSize} from \"@macrostrat/ui-components\";\nimport {group as $1vN9E$group} from \"d3-array\";\nimport {ColumnSVG as $1vN9E$ColumnSVG, ColumnAxisType as $1vN9E$ColumnAxisType} from \"@macrostrat/column-components\";\nimport {useRef as $1vN9E$useRef} from \"react\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $9cea14fa75e12a56$exports = {};\n\n$parcel$export($9cea14fa75e12a56$exports, \"PBDBOccurrencesMatrix\", () => $9cea14fa75e12a56$export$652730986cccff7a);\n\n\nvar $dx7no = parcelRequire(\"dx7no\");\n\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\nvar $f7qDU = parcelRequire(\"f7qDU\");\n\nconst $9cea14fa75e12a56$var$h = (0, $1vN9E$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($f7qDU))));\nfunction $9cea14fa75e12a56$export$652730986cccff7a({ columnID: columnID }) {\n /* A column for a matrix of taxon occurrences displayed as a table beside the main column. This will\n eventually be extended with first/last occurrence markers and range bars.\n */ const data = (0, $dx7no.useFossilData)(columnID, (0, $dx7no.FossilDataType).Occurrences);\n const col = (0, $wtIgl.useMacrostratColumnData)();\n const scale = (0, $wtIgl.useCompositeScale)();\n if (data == null) return null;\n // convert the data to a map\n const occurrenceMap = new Map((0, $1vN9E$group)(data, (d)=>d.unit_id));\n const matrix = $9cea14fa75e12a56$var$createOccurrenceMatrix(col.units, occurrenceMap, col.axisType);\n const { taxonRanges: taxonRanges } = matrix;\n const padding = 16;\n const spacing = 16;\n const taxonEntries = Array.from(taxonRanges.entries());\n //const taxon = taxonEntries.slice(0, 50); // limit to top 50 taxa\n const width = padding * 2 + spacing * taxonEntries.length;\n return $9cea14fa75e12a56$var$h((0, $1vN9E$Box), {\n className: \"taxon-ranges\",\n width: width,\n height: col.totalHeight\n }, [\n $9cea14fa75e12a56$var$h($9cea14fa75e12a56$var$TaxonOccurrenceLabels, {\n taxonEntries: taxonEntries,\n padding: padding,\n spacing: spacing,\n scale: scale\n }),\n $9cea14fa75e12a56$var$h((0, $1vN9E$ColumnSVG), {\n width: padding * 2 + spacing * taxonEntries.length\n }, $9cea14fa75e12a56$var$h(\"g.taxa-occurrences-matrix\", taxonEntries.map(([taxonName, ranges], rowIndex)=>{\n const xPosition = padding + rowIndex * spacing;\n return $9cea14fa75e12a56$var$h(\"g\", {\n transform: `translate(${xPosition})`\n }, [\n ranges.map(([top, bottom])=>{\n return $9cea14fa75e12a56$var$h(\"line\", {\n y1: scale(top),\n y2: scale(bottom)\n });\n })\n ]);\n })))\n ]);\n}\nfunction $9cea14fa75e12a56$var$TaxonOccurrenceLabels({ taxonEntries: taxonEntries, padding: padding, spacing: spacing, scale: scale }) {\n return $9cea14fa75e12a56$var$h(\"div.taxon-labels\", [\n taxonEntries.map(([taxonName, ranges], rowIndex)=>{\n const top = ranges[0]?.[0] ?? 0;\n let topPx = scale(top) - 20;\n if (topPx < 200) topPx = 0;\n return $9cea14fa75e12a56$var$h($9cea14fa75e12a56$var$TaxonLabel, {\n top: topPx,\n left: padding + rowIndex * spacing,\n taxonName: taxonName\n });\n })\n ]);\n}\nfunction $9cea14fa75e12a56$var$TaxonLabel({ top: top, left: left, taxonName: taxonName }) {\n const ref = (0, $1vN9E$useRef)();\n const textSize = (0, $1vN9E$useElementSize)(ref);\n const labelWidth = textSize?.height ?? 200;\n return $9cea14fa75e12a56$var$h(\"div.taxon-label\", {\n style: {\n top: `${top}px`,\n marginLeft: `${left}px`,\n \"--label-width\": `${labelWidth}px`\n }\n }, $9cea14fa75e12a56$var$h(\"div.taxon-label-inner\", $9cea14fa75e12a56$var$h(\"div.taxon-label-text\", {\n ref: ref\n }, taxonName)));\n}\nfunction $9cea14fa75e12a56$var$TaxonOccurrenceEntry({ xPosition: xPosition, ranges: ranges, scale: scale, name: name }) {\n return $9cea14fa75e12a56$var$h(\"g\", {\n transform: `translate(${xPosition})`\n }, [\n ranges.map(([top, bottom])=>{\n return $9cea14fa75e12a56$var$h(\"line\", {\n y1: scale(top),\n y2: scale(bottom)\n });\n })\n ]);\n}\nfunction $9cea14fa75e12a56$var$createOccurrenceMatrix(units, data, axisType = (0, $1vN9E$ColumnAxisType).AGE) {\n const taxonUnitMap = new Map();\n const taxonOccurrenceMap = new Map();\n for (const [unit_id, occurrences] of data.entries())for (const occ of occurrences){\n const taxonName = occ.best_name ?? occ.taxon_name;\n if (!taxonUnitMap.has(taxonName)) {\n taxonUnitMap.set(taxonName, new Set());\n taxonOccurrenceMap.set(taxonName, []);\n }\n taxonUnitMap.get(taxonName).add(unit_id);\n taxonOccurrenceMap.get(taxonName).push(occ);\n }\n // sort the taxon occurrence map by number of occurrences\n const sortedTaxa = Array.from(taxonUnitMap.entries()).sort((a, b)=>{\n // Sort alphabetically by taxon name\n return b[0].localeCompare(a[0]);\n });\n const taxonRanges = new Map();\n for (const [taxonName, unitSet] of taxonUnitMap.entries())taxonRanges.set(taxonName, $9cea14fa75e12a56$var$accumulatePresenceDomains(units, unitSet, axisType));\n return {\n occurrenceMap: data,\n taxonUnitMap: new Map(sortedTaxa),\n taxonOccurrenceMap: taxonOccurrenceMap,\n taxonRanges: taxonRanges\n };\n}\nfunction $9cea14fa75e12a56$var$accumulatePresenceDomains(unit, presenceUnits, axisType) {\n const domains = [];\n let currentDomain = null;\n for (const u of unit){\n if (presenceUnits.has(u.unit_id)) {\n if (currentDomain == null) {\n if (axisType == (0, $1vN9E$ColumnAxisType).DEPTH || axisType == (0, $1vN9E$ColumnAxisType).HEIGHT) currentDomain = [\n u.t_pos,\n u.b_pos\n ];\n else currentDomain = [\n u.t_age,\n u.b_age\n ];\n } else if (axisType == (0, $1vN9E$ColumnAxisType).DEPTH || axisType == (0, $1vN9E$ColumnAxisType).HEIGHT) currentDomain[1] = u.b_pos;\n else currentDomain[1] = u.b_age;\n } else if (currentDomain != null) {\n domains.push(currentDomain);\n currentDomain = null;\n }\n }\n if (currentDomain != null) domains.push(currentDomain);\n return domains;\n}\n\n\nexport {$9cea14fa75e12a56$export$652730986cccff7a as PBDBOccurrencesMatrix};\n//# sourceMappingURL=column-views.3ce34544.js.map\n","import hyper from \"@macrostrat/hyper\";\nimport {\n FossilDataType,\n PBDBEntity,\n PBDBOccurrence,\n useFossilData,\n} from \"./provider\";\nimport { Box, useElementSize } from \"@macrostrat/ui-components\";\nimport { group } from \"d3-array\";\nimport { ColumnAxisType, ColumnSVG } from \"@macrostrat/column-components\";\nimport {\n useMacrostratColumnData,\n useCompositeScale,\n} from \"../../data-provider\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport styles from \"./taxon-ranges.module.sass\";\nimport { useRef } from \"react\";\n\nconst h = hyper.styled(styles);\n\nexport function PBDBOccurrencesMatrix({ columnID }) {\n /* A column for a matrix of taxon occurrences displayed as a table beside the main column. This will\n eventually be extended with first/last occurrence markers and range bars.\n */\n const data = useFossilData(columnID, FossilDataType.Occurrences);\n const col = useMacrostratColumnData();\n const scale = useCompositeScale();\n\n if (data == null) return null;\n\n // convert the data to a map\n const occurrenceMap = new Map(group(data, (d) => d.unit_id)) as Map<\n number,\n PBDBOccurrence[]\n >;\n\n const matrix = createOccurrenceMatrix(col.units, occurrenceMap, col.axisType);\n\n const { taxonRanges } = matrix;\n\n const padding = 16;\n const spacing = 16;\n\n const taxonEntries = Array.from(taxonRanges.entries());\n //const taxon = taxonEntries.slice(0, 50); // limit to top 50 taxa\n\n const width = padding * 2 + spacing * taxonEntries.length;\n\n return h(Box, { className: \"taxon-ranges\", width, height: col.totalHeight }, [\n h(TaxonOccurrenceLabels, {\n taxonEntries,\n padding,\n spacing,\n scale,\n }),\n h(\n ColumnSVG,\n {\n width: padding * 2 + spacing * taxonEntries.length,\n },\n h(\n \"g.taxa-occurrences-matrix\",\n taxonEntries.map(([taxonName, ranges], rowIndex) => {\n const xPosition = padding + rowIndex * spacing;\n return h(\"g\", { transform: `translate(${xPosition})` }, [\n ranges.map(([top, bottom]) => {\n return h(\"line\", {\n y1: scale(top),\n y2: scale(bottom),\n });\n }),\n ]);\n }),\n ),\n ),\n ]);\n}\n\nfunction TaxonOccurrenceLabels({ taxonEntries, padding, spacing, scale }) {\n return h(\"div.taxon-labels\", [\n taxonEntries.map(([taxonName, ranges], rowIndex) => {\n const top = ranges[0]?.[0] ?? 0;\n let topPx = scale(top) - 20;\n if (topPx < 200) topPx = 0;\n\n return h(TaxonLabel, {\n top: topPx,\n left: padding + rowIndex * spacing,\n taxonName,\n });\n }),\n ]);\n}\n\nfunction TaxonLabel({ top, left, taxonName }) {\n const ref = useRef();\n const textSize = useElementSize(ref);\n const labelWidth = textSize?.height ?? 200;\n return h(\n \"div.taxon-label\",\n {\n style: {\n top: `${top}px`,\n marginLeft: `${left}px`,\n \"--label-width\": `${labelWidth}px`,\n },\n },\n h(\"div.taxon-label-inner\", h(\"div.taxon-label-text\", { ref }, taxonName)),\n );\n}\n\ntype TaxonUnitMap = Map<string, Set<number>>;\n\ninterface OccurrenceMatrixData {\n occurrenceMap: Map<number, PBDBEntity[]>; // Map of unit IDs to occurrences (original data)\n taxonUnitMap: TaxonUnitMap; // Map of taxon names to sets of unit IDs\n taxonOccurrenceMap: Map<string, PBDBOccurrence[]>; // Map of taxon names to occurrences\n taxonRanges: Map<string, [number, number][]>; // Map of taxon names to [top, bottom] pixel ranges\n}\n\nfunction TaxonOccurrenceEntry({\n xPosition,\n ranges,\n scale,\n name,\n}: {\n xPosition: number;\n units: Set<number>;\n ranges: any;\n scale: any;\n name: string;\n}) {\n return h(\"g\", { transform: `translate(${xPosition})` }, [\n ranges.map(([top, bottom]) => {\n return h(\"line\", {\n y1: scale(top),\n y2: scale(bottom),\n });\n }),\n ]);\n}\n\nfunction createOccurrenceMatrix(\n units: UnitLong[],\n data: Map<number, PBDBOccurrence[]>,\n axisType: ColumnAxisType = ColumnAxisType.AGE,\n): OccurrenceMatrixData {\n const taxonUnitMap = new Map<string, Set<number>>();\n const taxonOccurrenceMap = new Map<string, PBDBOccurrence[]>();\n\n for (const [unit_id, occurrences] of data.entries()) {\n for (const occ of occurrences) {\n const taxonName = occ.best_name ?? occ.taxon_name;\n if (!taxonUnitMap.has(taxonName)) {\n taxonUnitMap.set(taxonName, new Set());\n taxonOccurrenceMap.set(taxonName, []);\n }\n taxonUnitMap.get(taxonName).add(unit_id);\n taxonOccurrenceMap.get(taxonName).push(occ);\n }\n }\n\n // sort the taxon occurrence map by number of occurrences\n const sortedTaxa = Array.from(taxonUnitMap.entries()).sort((a, b) => {\n // Sort alphabetically by taxon name\n return b[0].localeCompare(a[0]);\n });\n\n const taxonRanges = new Map<string, [number, number][]>();\n for (const [taxonName, unitSet] of taxonUnitMap.entries()) {\n taxonRanges.set(\n taxonName,\n accumulatePresenceDomains(units, unitSet, axisType),\n );\n }\n\n return {\n occurrenceMap: data,\n taxonUnitMap: new Map(sortedTaxa),\n taxonOccurrenceMap: taxonOccurrenceMap,\n taxonRanges,\n };\n}\n\nfunction accumulatePresenceDomains(\n unit: UnitLong[],\n presenceUnits: Set<number>,\n axisType: ColumnAxisType,\n): Array<[number, number]> {\n const domains: Array<[number, number]> = [];\n let currentDomain: [number, number] | null = null;\n\n for (const u of unit) {\n if (presenceUnits.has(u.unit_id)) {\n if (currentDomain == null) {\n if (\n axisType == ColumnAxisType.DEPTH ||\n axisType == ColumnAxisType.HEIGHT\n ) {\n currentDomain = [u.t_pos, u.b_pos];\n } else {\n currentDomain = [u.t_age, u.b_age];\n }\n } else {\n if (\n axisType == ColumnAxisType.DEPTH ||\n axisType == ColumnAxisType.HEIGHT\n ) {\n currentDomain[1] = u.b_pos;\n } else {\n currentDomain[1] = u.b_age;\n }\n }\n } else {\n if (currentDomain != null) {\n domains.push(currentDomain);\n currentDomain = null;\n }\n }\n }\n\n if (currentDomain != null) {\n domains.push(currentDomain);\n }\n\n return domains;\n}\n"],"names":["$1vN9E$macrostrathyper","Box","$1vN9E$Box","useElementSize","$1vN9E$useElementSize","group","$1vN9E$group","ColumnSVG","$1vN9E$ColumnSVG","ColumnAxisType","$1vN9E$ColumnAxisType","useRef","$1vN9E$useRef","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","Object","defineProperty","get","$9cea14fa75e12a56$export$652730986cccff7a","set","s","enumerable","configurable","$dx7no","$wtIgl","$f7qDU","$9cea14fa75e12a56$var$h","styled","a","__esModule","default","columnID","data","useFossilData","FossilDataType","Occurrences","col","useMacrostratColumnData","scale","useCompositeScale","occurrenceMap","Map","d","unit_id","taxonRanges","$9cea14fa75e12a56$var$createOccurrenceMatrix","units","axisType","AGE","taxonUnitMap","taxonOccurrenceMap","occurrences","entries","occ","taxonName","best_name","taxon_name","has","Set","add","push","sortedTaxa","Array","from","sort","b","localeCompare","unitSet","$9cea14fa75e12a56$var$accumulatePresenceDomains","unit","presenceUnits","domains","currentDomain","u","DEPTH","HEIGHT","t_pos","b_pos","t_age","b_age","taxonEntries","className","width","padding","spacing","length","height","totalHeight","$9cea14fa75e12a56$var$TaxonOccurrenceLabels","map","ranges","rowIndex","transform","top","bottom","y1","y2","topPx","$9cea14fa75e12a56$var$TaxonLabel","left","ref","textSize","labelWidth","style","marginLeft","PBDBOccurrencesMatrix"],"version":3,"file":"column-views.3ce34544.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./column-views.7425d37b.js";import"./column-views.
|
|
2
|
-
//# sourceMappingURL=column-views.
|
|
1
|
+
import"./column-views.7425d37b.js";import"./column-views.0980c2a0.js";import e from"cross-fetch";import{useContext as t,useEffect as r,useMemo as a,useState as s,createContext as n}from"react";import o from"@macrostrat/hyper";import{create as l,useStore as i}from"zustand";import{APIProvider as u}from"@macrostrat/ui-components";import{ColumnProvider as c}from"@macrostrat/column-components";function f(e,t,r,a){Object.defineProperty(e,t,{get:r,set:a,enumerable:!0,configurable:!0})}var m=globalThis,p={},d={},v=m.parcelRequirea149;null==v&&((v=function(e){if(e in p)return p[e].exports;if(e in d){var t=d[e];delete d[e];var r={id:e,exports:{}};return p[e]=r,t.call(r.exports,r,r.exports),r.exports}var a=Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}).register=function(e,t){d[e]=t},m.parcelRequirea149=v),v.register;var h={};f(h,"useMacrostratStore",()=>M),f(h,"useMacrostratBaseURL",()=>w),f(h,"useMacrostratDefs",()=>x),f(h,"useMacrostratColumns",()=>R),f(h,"useMacrostratData",()=>L),f(h,"MacrostratDataProvider",()=>y),f(h,"MacrostratAPIProvider",()=>C),f(h,"MacrostratColumnProvider",()=>D),f(h,"LithologiesProvider",()=>E),f(h,"useLithologies",()=>S),f(h,"useEnvironments",()=>U);var g=v("Piirt"),b=v("wtIgl");function $(t="https://macrostrat.org/api/v2"){return l((r,a)=>{var s,n,o,l,i,u,c,f,m,p,d,v;return{baseURL:t,inFlightRequests:new Set,async fetch(r,s){let n=t+r,{inFlightRequests:o}=a();if(o.has(n))return null;o.add(n);let l=await e(n,s);return o.delete(n),l},...(s=r,n=a,{lithologies:null,async getLithologies(e){let{lithologies:t,fetch:r}=n(),a=t;if(null==a){let e=await (0,g.fetchLithologies)(r);if(null==e)return;s({lithologies:a=new Map(e.map(e=>[e.lith_id,e]))})}return null==e?a.values():e.map(e=>a.get(e))}}),...(o=r,l=a,{intervals:null,async getIntervals(e,t){var r,a;let{intervals:s,fetch:n}=l(),i=s;if(null==s||(r=s,a=t,!(null!=r&&(null==a||Array.from(r.values()).some(e=>e.timescale_id==a))))){let e=await (0,g.fetchIntervals)(t,n);if(null==e)return[];let r=s??new Map;for(let t of e)r.set(t.int_id,t);o({intervals:i=r})}return null==e&&null==t?Array.from(i.values()):null!=t?Array.from(i.values()).filter(e=>e.timescale_id==t):e.map(e=>s.get(e))}}),...(i=r,u=a,{environments:null,async getEnvironments(e){let{environments:t,fetch:r}=u(),a=t;if(null==a){let e=await (0,g.fetchEnvironments)(r);if(null==e)return[];i({environments:a=new Map(e.map(e=>[e.environ_id,e]))})}return null==e?a.values():e.map(e=>a.get(e))}}),...(c=r,f=a,{columnFootprints:new Map,async getColumns(e,t){let{columnFootprints:r,baseURL:a,fetch:s}=f(),n=e??-1,o=r.get(n);if(null==o||o.inProcess!=t){let a=["active"];t&&a.push("in process");let l=await (0,g.fetchAllColumns)({projectID:e,statusCode:a,fetch:s});if(null==l)return;o={project_id:e,inProcess:t,columns:l};let i=new Map(r);i.set(n,o),c({columnFootprints:i})}return o.columns}}),...(m=r,p=a,{refs:new Map,async getRefs(e){let{refs:t,fetch:r}=p(),a=e.filter(e=>!t.has(e));if(0==a.length)return e.map(e=>t.get(e));let s=await (0,g.fetchRefs)(a,r);if(null==s)return[];for(let e of s)t.set(e.ref_id,e);return m({refs:t}),e.map(e=>t.get(e))}}),...(d=r,v=a,{stratNames:null,async getStratNames(e){let{stratNames:t,fetch:r}=v(),a=t??new Map,s=[],n=[];for(let t of e)a.has(t)?s.push(a.get(t)):n.push(t);if(n.length>0){let e=await (0,g.fetchStratNames)(n,r);if(null==e)return s;for(let t of e)a.set(t.strat_name_id,t);d({stratNames:a})}return e.map(e=>a.get(e))}})}})}function M(e){let r=t(_);if(null==r)throw Error("Missing MacrostratDataProvider");return"api"===e?r:i(r,e)}function w(e="https://macrostrat.org/api/v2"){let r=t(_);return null==r?e:r.getState().baseURL}let P={lithologies:e=>e.getLithologies,intervals:e=>e.getIntervals,columns:e=>e.getColumns,environments:e=>e.getEnvironments,refs:e=>e.getRefs,strat_names:e=>e.getStratNames};function x(e){if("columns"==e)throw Error("Columns are not provided as a map");let t=M(P[e]);return r(()=>{t()},[]),M(t=>t[e])}function R(e,t){let s=M(e=>e.getColumns),n=M(e=>e.columnFootprints),o=n?.get(e??-1);return r(()=>{(null==o||t&&!o.inProcess)&&s(e,t)},[o,t,s]),a(()=>{if(null==o)return null;let e=o.columns;return!t&&o.inProcess&&(e.features=e.features?.filter(e=>"in process"!=e.properties.status)),e},[o,t])}function L(e,...t){let a=M(P[e]),[n,o]=s(null);return r(()=>{try{a(...t).then(o)}catch(e){console.error(e)}},[a,...t]),n}let _=n($());function y(e){let{baseURL:t="https://dev.macrostrat.org/api/v2",children:r}=e,[a]=s(()=>$(t));return o(C,{baseURL:t},o(_.Provider,{value:a},r))}function C({children:e,useDev:t=!1,baseURL:r}){return r??(r=t?"https://dev.macrostrat.org/api/v2":"https://macrostrat.org/api/v2"),o(u,{baseURL:r,unwrapResponse:e=>e.success.data},e)}function D(e){let{axisType:t}=(0,b.useMacrostratColumnData)(),{units:r,domain:a,pixelScale:s,scale:n,children:l}=e;return o(c,{axisType:t,divisions:r,range:a,pixelsPerMeter:s,scale:n},l)}function E({children:e}){return r(()=>{console.warn("LithologiesProvider is deprecated. Replace with MacrostratDataProvider")},[]),e}function S(){let e=M(e=>e.getLithologies),t=M(e=>e.lithologies);return r(()=>{null==t&&e()},[t,e]),t}function U(){let e=M(e=>e.getEnvironments),t=M(e=>e.environments);return r(()=>{null==t&&e()},[t,e]),t}export{M as useMacrostratStore,w as useMacrostratBaseURL,x as useMacrostratDefs,R as useMacrostratColumns,L as useMacrostratData,y as MacrostratDataProvider,C as MacrostratAPIProvider,D as MacrostratColumnProvider,E as LithologiesProvider,S as useLithologies,U as useEnvironments};
|
|
2
|
+
//# sourceMappingURL=column-views.41d72280.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,A,Q,M,a,A,Q,c,C,C,a,C,C,W,C,C,Y,C,C,iB,C,K,O,A,Q,M,mB,A,Q,U,C,C,Y,C,K,S,A,Q,e,C,K,2B,A,Q,kB,C,K,+B,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,qB,I,G,E,E,uB,I,G,E,E,oB,I,G,E,E,uB,I,G,E,E,oB,I,G,E,E,yB,I,G,E,E,wB,I,G,E,E,2B,I,G,E,E,sB,I,G,E,E,iB,I,G,E,E,kB,I,G,I,E,E,S,E,E,SCqEA,SAAS,EACP,EAAkB,+BAA+B,EAEjD,OAAO,AAAA,EAAwB,CAAC,EAAK,SAwFP,EAAK,EAsCP,EAAK,EAnBF,EAAK,EA3DV,EAAK,EApBR,EAAK,EAiIC,EAAK,QA5JzB,CACL,QAAA,EACA,iBAAkB,IAAI,IACtB,MAAM,MAAM,CAAW,CAAE,CAAqB,EAC5C,IAAM,EAAO,EAAU,EAEjB,CAAA,iBAAE,CAAgB,CAAE,CAAG,IAC7B,GAAI,EAAiB,GAAG,CAAC,GACvB,OAAO,KAET,EAAiB,GAAG,CAAC,GAErB,IAAM,EAAM,MAAM,AAAA,EAAU,EAAM,GAGlC,OAFA,EAAiB,MAAM,CAAC,GAEjB,CACT,MAuE0B,EAtEA,EAsEK,EAtEA,EAuE5B,CACL,YAAa,KACb,MAAM,eAAe,CAAoB,EACvC,GAAM,CAAA,YAAE,CAAW,CAAA,MAAE,CAAK,CAAE,CAAG,IAC3B,EAAU,EACd,GAAI,AAAW,MAAX,EAAiB,CACnB,IAAM,EAAO,MAAM,AAAA,CAAA,EAAA,EAAA,gBAAe,AAAf,EAAiB,GACpC,GAAI,AAAQ,MAAR,EAAc,OAElB,EAAI,CAAE,YADN,EAAU,IAAI,IAAI,EAAK,GAAG,CAA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","sources":["<anon>","packages/column-views/src/data-provider/base.ts"],"sourcesContent":["import \"./column-views.7425d37b.js\";\nimport \"./column-views.46efb749.js\";\nimport $fUENy$crossfetch from \"cross-fetch\";\nimport {useContext as $fUENy$useContext, useEffect as $fUENy$useEffect, useMemo as $fUENy$useMemo, useState as $fUENy$useState, createContext as $fUENy$createContext} from \"react\";\nimport $fUENy$macrostrathyper from \"@macrostrat/hyper\";\nimport {create as $fUENy$create, useStore as $fUENy$useStore} from \"zustand\";\nimport {APIProvider as $fUENy$APIProvider} from \"@macrostrat/ui-components\";\nimport {ColumnProvider as $fUENy$ColumnProvider} from \"@macrostrat/column-components\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $8750144f23b92eb9$exports = {};\n\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratStore\", () => $8750144f23b92eb9$export$fb98d5bae3a6800);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratBaseURL\", () => $8750144f23b92eb9$export$33b1392d23dde04);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratDefs\", () => $8750144f23b92eb9$export$89dd4e5ae4a82373);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratColumns\", () => $8750144f23b92eb9$export$81eaae0b474404fd);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratData\", () => $8750144f23b92eb9$export$b9c9fc603d74a555);\n$parcel$export($8750144f23b92eb9$exports, \"MacrostratDataProvider\", () => $8750144f23b92eb9$export$690613f93cdc5576);\n$parcel$export($8750144f23b92eb9$exports, \"MacrostratAPIProvider\", () => $8750144f23b92eb9$export$3098013bc6cc316d);\n$parcel$export($8750144f23b92eb9$exports, \"MacrostratColumnProvider\", () => $8750144f23b92eb9$export$9e42f9b6e0d67c7d);\n$parcel$export($8750144f23b92eb9$exports, \"LithologiesProvider\", () => $8750144f23b92eb9$export$8492a5cae82b6a70);\n$parcel$export($8750144f23b92eb9$exports, \"useLithologies\", () => $8750144f23b92eb9$export$4d18a90c945d129f);\n$parcel$export($8750144f23b92eb9$exports, \"useEnvironments\", () => $8750144f23b92eb9$export$c6b216bf4c71b61f);\n/** Data provider for information that needs to be loaded in bulk for frontend views */ \n\n\n\n\nvar $Piirt = parcelRequire(\"Piirt\");\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nfunction $8750144f23b92eb9$var$createMacrostratStore(baseURL = \"https://macrostrat.org/api/v2\") {\n return (0, $fUENy$create)((set, get)=>{\n return {\n baseURL: baseURL,\n inFlightRequests: new Set(),\n async fetch (url, options) {\n const url1 = baseURL + url;\n // Avoid duplicate requests\n const { inFlightRequests: inFlightRequests } = get();\n if (inFlightRequests.has(url1)) return null; // Return null if already in flight\n inFlightRequests.add(url1);\n //set({ inFlightRequests });\n const res = await (0, $fUENy$crossfetch)(url1, options);\n inFlightRequests.delete(url1);\n //set({in})\n return res;\n },\n ...$8750144f23b92eb9$var$createLithologiesSlice(set, get),\n ...$8750144f23b92eb9$var$createIntervalsSlice(set, get),\n ...$8750144f23b92eb9$var$createEnvironmentsSlice(set, get),\n ...$8750144f23b92eb9$var$createColumnsSlice(set, get),\n ...$8750144f23b92eb9$var$createRefsSlice(set, get),\n ...$8750144f23b92eb9$var$createStratNamesSlice(set, get)\n };\n });\n}\nfunction $8750144f23b92eb9$var$createRefsSlice(set, get) {\n return {\n refs: new Map(),\n async getRefs (ids) {\n const { refs: refs, fetch: fetch } = get();\n const missing = ids.filter((id)=>!refs.has(id));\n if (missing.length == 0) return ids.map((id)=>refs.get(id));\n const data = await (0, $Piirt.fetchRefs)(missing, fetch);\n if (data == null) return [];\n for (const d of data)refs.set(d.ref_id, d);\n set({\n refs: refs\n });\n return ids.map((id)=>refs.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createColumnsSlice(set, get) {\n // Column footprints separated by project\n return {\n columnFootprints: new Map(),\n async getColumns (projectID, inProcess) {\n const { columnFootprints: columnFootprints, baseURL: baseURL, fetch: fetch } = get();\n const key = projectID ?? -1;\n let _inProcess = inProcess;\n let footprints = columnFootprints.get(key);\n if (footprints == null || footprints.inProcess != _inProcess) {\n // Fetch the columns\n const statusCode = [\n \"active\"\n ];\n if (_inProcess) statusCode.push(\"in process\");\n const columns = await (0, $Piirt.fetchAllColumns)({\n projectID: projectID,\n statusCode: statusCode,\n fetch: fetch\n });\n if (columns == null) return;\n footprints = {\n project_id: projectID,\n inProcess: inProcess,\n columns: columns\n };\n // We could break multi-project result sets into separate caches here...\n // Copy the original map\n const columnFootprints2 = new Map(columnFootprints);\n columnFootprints2.set(key, footprints);\n set({\n columnFootprints: columnFootprints2\n });\n }\n return footprints.columns;\n }\n };\n}\nfunction $8750144f23b92eb9$var$createLithologiesSlice(set, get) {\n return {\n lithologies: null,\n async getLithologies (ids) {\n const { lithologies: lithologies, fetch: fetch } = get();\n let lithMap = lithologies;\n if (lithMap == null) {\n const data = await (0, $Piirt.fetchLithologies)(fetch);\n if (data == null) return;\n lithMap = new Map(data.map((d)=>[\n d.lith_id,\n d\n ]));\n set({\n lithologies: lithMap\n });\n }\n // Now get the lithologies\n if (ids == null) return lithMap.values();\n return ids.map((id)=>lithMap.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createEnvironmentsSlice(set, get) {\n return {\n environments: null,\n async getEnvironments (ids) {\n const { environments: environments, fetch: fetch } = get();\n let envMap = environments;\n if (envMap == null) {\n const data = await (0, $Piirt.fetchEnvironments)(fetch);\n if (data == null) return [];\n envMap = new Map(data.map((d)=>[\n d.environ_id,\n d\n ]));\n set({\n environments: envMap\n });\n }\n // Now get the environments\n if (ids == null) return envMap.values();\n return ids.map((id)=>envMap.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createIntervalsSlice(set, get) {\n return {\n intervals: null,\n async getIntervals (ids, timescaleID) {\n const { intervals: intervals, fetch: fetch } = get();\n let _intervals = intervals;\n if (intervals == null || !$8750144f23b92eb9$var$includesTimescale(intervals, timescaleID)) {\n // Fetch the intervals\n const data = await (0, $Piirt.fetchIntervals)(timescaleID, fetch);\n if (data == null) return [];\n const intervalMap = intervals ?? new Map();\n for (const d of data)intervalMap.set(d.int_id, d);\n _intervals = intervalMap;\n set({\n intervals: _intervals\n });\n }\n if (ids == null && timescaleID == null) return Array.from(_intervals.values());\n if (timescaleID != null) return Array.from(_intervals.values()).filter((d)=>d.timescale_id == timescaleID);\n return ids.map((id)=>intervals.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createStratNamesSlice(set, get) {\n return {\n stratNames: null,\n async getStratNames (ids) {\n const { stratNames: stratNames, fetch: fetch } = get();\n let nameMap = stratNames ?? new Map();\n let stratNamesAlreadyLoaded = [];\n let stratNamesToLoad = [];\n for (const id of ids)if (nameMap.has(id)) stratNamesAlreadyLoaded.push(nameMap.get(id));\n else stratNamesToLoad.push(id);\n if (stratNamesToLoad.length > 0) {\n const data = await (0, $Piirt.fetchStratNames)(stratNamesToLoad, fetch);\n if (data == null) return stratNamesAlreadyLoaded;\n for (const d of data)nameMap.set(d.strat_name_id, d);\n set({\n stratNames: nameMap\n });\n }\n return ids.map((id)=>nameMap.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$includesTimescale(intervals, timescaleID) {\n if (intervals == null) return false;\n if (timescaleID == null) return true;\n return Array.from(intervals.values()).some((d)=>d.timescale_id == timescaleID);\n}\nfunction $8750144f23b92eb9$export$fb98d5bae3a6800(selector) {\n const ctx = (0, $fUENy$useContext)($8750144f23b92eb9$var$MacrostratDataProviderContext);\n if (ctx == null) throw new Error(\"Missing MacrostratDataProvider\");\n if (selector === \"api\") return ctx;\n return (0, $fUENy$useStore)(ctx, selector);\n}\nfunction $8750144f23b92eb9$export$33b1392d23dde04(defaultURL = \"https://macrostrat.org/api/v2\") {\n /** Get the Macrostrat base URL from the store if set, otherwise return a default value */ const ctx = (0, $fUENy$useContext)($8750144f23b92eb9$var$MacrostratDataProviderContext);\n if (ctx == null) // Return default URL if no provider is present\n return defaultURL;\n return ctx.getState().baseURL;\n}\nconst $8750144f23b92eb9$var$dataTypeMapping = {\n lithologies: (store)=>store.getLithologies,\n intervals: (store)=>store.getIntervals,\n columns: (store)=>store.getColumns,\n environments: (store)=>store.getEnvironments,\n refs: (store)=>store.getRefs,\n strat_names: (store)=>store.getStratNames\n};\nfunction $8750144f23b92eb9$export$89dd4e5ae4a82373(dataType) {\n if (dataType == \"columns\") throw new Error(\"Columns are not provided as a map\");\n const operator = $8750144f23b92eb9$export$fb98d5bae3a6800($8750144f23b92eb9$var$dataTypeMapping[dataType]);\n (0, $fUENy$useEffect)(()=>{\n operator();\n }, []);\n return $8750144f23b92eb9$export$fb98d5bae3a6800((state)=>state[dataType]);\n}\nfunction $8750144f23b92eb9$export$81eaae0b474404fd(projectID, inProcess) {\n const getColumns = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.getColumns);\n const columnsMap = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.columnFootprints);\n const key = projectID ?? -1;\n const colData = columnsMap?.get(key);\n (0, $fUENy$useEffect)(()=>{\n // Refetch if the columns are not available, or if we have requested inProcess columns where we didn't before\n if (colData == null || inProcess && !colData.inProcess) getColumns(projectID, inProcess);\n // If we've already fetched the columns there's nothing to do...\n }, [\n colData,\n inProcess,\n getColumns\n ]);\n return (0, $fUENy$useMemo)(()=>{\n if (colData == null) return null;\n let columns = colData.columns;\n if (!inProcess && colData.inProcess) // Our available set of columns includes 'in process' columns, but we don't want them\n columns.features = columns.features?.filter((d)=>d.properties.status != \"in process\");\n return columns;\n }, [\n colData,\n inProcess\n ]);\n}\nfunction $8750144f23b92eb9$export$b9c9fc603d74a555(dataType, ...args) {\n const selector = $8750144f23b92eb9$var$dataTypeMapping[dataType];\n const operator = $8750144f23b92eb9$export$fb98d5bae3a6800(selector);\n const [value, setValue] = (0, $fUENy$useState)(null);\n (0, $fUENy$useEffect)(()=>{\n try {\n operator(...args).then(setValue);\n } catch (e) {\n console.error(e);\n }\n }, [\n operator,\n ...args\n ]);\n return value;\n}\n/** By default, we provide a store linked to the production API */ const $8750144f23b92eb9$var$MacrostratDataProviderContext = (0, $fUENy$createContext)($8750144f23b92eb9$var$createMacrostratStore());\nfunction $8750144f23b92eb9$export$690613f93cdc5576(props) {\n const { baseURL: baseURL = \"https://dev.macrostrat.org/api/v2\", children: children } = props;\n const [store] = (0, $fUENy$useState)(()=>$8750144f23b92eb9$var$createMacrostratStore(baseURL));\n return (0, $fUENy$macrostrathyper)($8750144f23b92eb9$export$3098013bc6cc316d, {\n baseURL: baseURL\n }, (0, $fUENy$macrostrathyper)($8750144f23b92eb9$var$MacrostratDataProviderContext.Provider, {\n value: store\n }, children));\n}\nfunction $8750144f23b92eb9$export$3098013bc6cc316d({ children: children, useDev: useDev = false, baseURL: baseURL }) {\n baseURL ?? (baseURL = useDev ? \"https://dev.macrostrat.org/api/v2\" : \"https://macrostrat.org/api/v2\");\n return (0, $fUENy$macrostrathyper)((0, $fUENy$APIProvider), {\n baseURL: baseURL,\n unwrapResponse: (res)=>res.success.data\n }, children);\n}\nfunction $8750144f23b92eb9$export$9e42f9b6e0d67c7d(props) {\n /** A column provider specialized the Macrostrat API. Maps more\n * generic concepts to Macrostrat-specific ones.\n */ const { axisType: axisType } = (0, $wtIgl.useMacrostratColumnData)();\n const { units: units, domain: domain, pixelScale: pixelScale, scale: scale, children: children } = props;\n return (0, $fUENy$macrostrathyper)((0, $fUENy$ColumnProvider), {\n axisType: axisType,\n divisions: units,\n range: domain,\n pixelsPerMeter: pixelScale,\n scale: scale\n }, children);\n}\nfunction $8750144f23b92eb9$export$8492a5cae82b6a70({ children: children }) {\n (0, $fUENy$useEffect)(()=>{\n console.warn(\"LithologiesProvider is deprecated. Replace with MacrostratDataProvider\");\n }, []);\n return children;\n}\nfunction $8750144f23b92eb9$export$4d18a90c945d129f() {\n const getLithologies = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.getLithologies);\n const lithologies = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.lithologies);\n (0, $fUENy$useEffect)(()=>{\n if (lithologies == null) getLithologies();\n }, [\n lithologies,\n getLithologies\n ]);\n return lithologies;\n}\nfunction $8750144f23b92eb9$export$c6b216bf4c71b61f() {\n const getEnvironments = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.getEnvironments);\n const environments = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.environments);\n (0, $fUENy$useEffect)(()=>{\n if (environments == null) getEnvironments();\n }, [\n environments,\n getEnvironments\n ]);\n return environments;\n}\n\n\nexport {$8750144f23b92eb9$export$fb98d5bae3a6800 as useMacrostratStore, $8750144f23b92eb9$export$33b1392d23dde04 as useMacrostratBaseURL, $8750144f23b92eb9$export$89dd4e5ae4a82373 as useMacrostratDefs, $8750144f23b92eb9$export$81eaae0b474404fd as useMacrostratColumns, $8750144f23b92eb9$export$b9c9fc603d74a555 as useMacrostratData, $8750144f23b92eb9$export$690613f93cdc5576 as MacrostratDataProvider, $8750144f23b92eb9$export$3098013bc6cc316d as MacrostratAPIProvider, $8750144f23b92eb9$export$9e42f9b6e0d67c7d as MacrostratColumnProvider, $8750144f23b92eb9$export$8492a5cae82b6a70 as LithologiesProvider, $8750144f23b92eb9$export$4d18a90c945d129f as useLithologies, $8750144f23b92eb9$export$c6b216bf4c71b61f as useEnvironments};\n//# sourceMappingURL=column-views.c007152b.js.map\n","/** Data provider for information that needs to be loaded in bulk for frontend views */\nimport baseFetch from \"cross-fetch\";\nimport { createContext, useContext, useEffect, useMemo, useState } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { create, useStore } from \"zustand\";\nimport {\n ColumnGeoJSONRecord,\n ColumnGeoJSONRecordWithID,\n Environment,\n MacrostratRef,\n StratName,\n Interval,\n} from \"@macrostrat/api-types\";\nimport {\n fetchAllColumns,\n fetchEnvironments,\n fetchIntervals,\n fetchLithologies,\n fetchRefs,\n fetchStratNames,\n type ColumnStatusCode,\n} from \"./fetch\";\nimport { APIProvider } from \"@macrostrat/ui-components\";\nimport { ColumnProvider } from \"@macrostrat/column-components\";\n\nimport { ReactNode } from \"react\";\nimport { useMacrostratColumnData } from \"./store\";\n\nexport interface MacrostratDataProviderProps {\n baseURL: string;\n children: React.ReactNode;\n}\n\ninterface ColumnFootprintsStorage {\n project_id: number;\n // Whether the \"in process\" flag was used\n inProcess: boolean;\n // The column footprints\n columns: ColumnGeoJSONRecordWithID[];\n}\n\ninterface RefsSlice {\n refs: Map<number, MacrostratRef>;\n inFlightRequests: Set<string>; // Track requests to avoid duplicates\n getRefs(ids: number[]): Promise<MacrostratRef[]>;\n}\n\ninterface MacrostratStore extends RefsSlice {\n baseURL: string;\n fetch: any;\n lithologies: Map<number, any> | null;\n getLithologies(ids: number[] | null): Promise<any>;\n intervals: Map<number, any> | null;\n getIntervals(\n ids: number[] | null,\n timescaleID: number | null,\n ): Promise<Interval[]>;\n environments: Map<number, Environment> | null;\n getEnvironments(ids: number[] | null): Promise<Environment[]>;\n columnFootprints: Map<number, ColumnFootprintsStorage>;\n getColumns(\n projectID: number | null,\n inProcess: boolean,\n ): Promise<ColumnGeoJSONRecord[]>;\n // Strat names unify both \"strat names\" and \"concepts\"\n stratNames: Map<number, StratName> | null;\n getStratNames(ids: number[] | null): Promise<StratName[]>;\n}\n\nfunction createMacrostratStore(\n baseURL: string = \"https://macrostrat.org/api/v2\",\n) {\n return create<MacrostratStore>((set, get): MacrostratStore => {\n return {\n baseURL,\n inFlightRequests: new Set(),\n async fetch(url: string, options?: RequestInit) {\n const url1 = baseURL + url;\n // Avoid duplicate requests\n const { inFlightRequests } = get();\n if (inFlightRequests.has(url1)) {\n return null; // Return null if already in flight\n }\n inFlightRequests.add(url1);\n //set({ inFlightRequests });\n const res = await baseFetch(url1, options);\n inFlightRequests.delete(url1);\n //set({in})\n return res;\n },\n ...createLithologiesSlice(set, get),\n ...createIntervalsSlice(set, get),\n ...createEnvironmentsSlice(set, get),\n ...createColumnsSlice(set, get),\n ...createRefsSlice(set, get),\n ...createStratNamesSlice(set, get),\n };\n });\n}\n\nfunction createRefsSlice(set, get) {\n return {\n refs: new Map(),\n async getRefs(ids: number[]): Promise<MacrostratRef[]> {\n const { refs, fetch } = get();\n const missing = ids.filter((id) => !refs.has(id));\n if (missing.length == 0) {\n return ids.map((id) => refs.get(id));\n }\n const data = await fetchRefs(missing, fetch);\n if (data == null) return [];\n for (const d of data) {\n refs.set(d.ref_id, d);\n }\n set({ refs });\n return ids.map((id) => refs.get(id));\n },\n };\n}\n\nfunction createColumnsSlice(set, get) {\n // Column footprints separated by project\n return {\n columnFootprints: new Map(),\n async getColumns(projectID: number | null, inProcess: boolean) {\n const { columnFootprints, baseURL, fetch } = get();\n const key = projectID ?? -1;\n let _inProcess = inProcess;\n\n let footprints = columnFootprints.get(key);\n if (footprints == null || footprints.inProcess != _inProcess) {\n // Fetch the columns\n const statusCode: ColumnStatusCode[] = [\"active\"];\n if (_inProcess) {\n statusCode.push(\"in process\");\n }\n const columns = await fetchAllColumns({\n projectID,\n statusCode,\n fetch,\n });\n if (columns == null) {\n return;\n }\n footprints = {\n project_id: projectID,\n inProcess,\n columns,\n };\n // We could break multi-project result sets into separate caches here...\n // Copy the original map\n const columnFootprints2 = new Map(columnFootprints);\n columnFootprints2.set(key, footprints);\n set({ columnFootprints: columnFootprints2 });\n }\n return footprints.columns;\n },\n };\n}\n\nfunction createLithologiesSlice(set, get) {\n return {\n lithologies: null,\n async getLithologies(ids: number[] | null) {\n const { lithologies, fetch } = get();\n let lithMap = lithologies;\n if (lithMap == null) {\n const data = await fetchLithologies(fetch);\n if (data == null) return;\n lithMap = new Map(data.map((d) => [d.lith_id, d]));\n set({ lithologies: lithMap });\n }\n // Now get the lithologies\n if (ids == null) return lithMap.values();\n return ids.map((id) => lithMap.get(id));\n },\n };\n}\n\nfunction createEnvironmentsSlice(set, get) {\n return {\n environments: null,\n async getEnvironments(ids: number[] | null): Promise<Environment[]> {\n const { environments, fetch } = get();\n let envMap = environments;\n if (envMap == null) {\n const data = await fetchEnvironments(fetch);\n if (data == null) return [];\n envMap = new Map(data.map((d) => [d.environ_id, d]));\n set({ environments: envMap });\n }\n // Now get the environments\n if (ids == null) return envMap.values();\n return ids.map((id) => envMap.get(id));\n },\n };\n}\n\nfunction createIntervalsSlice(set, get) {\n return {\n intervals: null,\n async getIntervals(ids: number[] | null, timescaleID: number | null) {\n const { intervals, fetch } = get();\n let _intervals = intervals;\n if (intervals == null || !includesTimescale(intervals, timescaleID)) {\n // Fetch the intervals\n const data = await fetchIntervals(timescaleID, fetch);\n if (data == null) {\n return [];\n }\n const intervalMap = intervals ?? new Map();\n for (const d of data) {\n intervalMap.set(d.int_id, d);\n }\n _intervals = intervalMap;\n set({ intervals: _intervals });\n }\n if (ids == null && timescaleID == null)\n return Array.from(_intervals.values());\n if (timescaleID != null) {\n return Array.from(_intervals.values() as any[]).filter(\n (d) => d.timescale_id == timescaleID,\n );\n }\n return ids.map((id) => intervals.get(id));\n },\n };\n}\n\nfunction createStratNamesSlice(set, get) {\n return {\n stratNames: null,\n async getStratNames(ids: number[] | null): Promise<StratName[]> {\n const { stratNames, fetch } = get();\n let nameMap = stratNames ?? new Map();\n let stratNamesAlreadyLoaded = [];\n let stratNamesToLoad = [];\n for (const id of ids) {\n if (nameMap.has(id)) {\n stratNamesAlreadyLoaded.push(nameMap.get(id));\n } else {\n stratNamesToLoad.push(id);\n }\n }\n if (stratNamesToLoad.length > 0) {\n const data = await fetchStratNames(stratNamesToLoad, fetch);\n if (data == null) return stratNamesAlreadyLoaded;\n for (const d of data) {\n nameMap.set(d.strat_name_id, d);\n }\n set({ stratNames: nameMap });\n }\n return ids.map((id) => nameMap.get(id));\n },\n };\n}\n\nfunction includesTimescale(intervals: Map<number, any>, timescaleID: number) {\n if (intervals == null) return false;\n if (timescaleID == null) return true;\n return Array.from(intervals.values()).some(\n (d) => d.timescale_id == timescaleID,\n );\n}\n\ntype MacrostratSelector = (store: MacrostratStore) => any;\n\nexport function useMacrostratStore(selector: MacrostratSelector | \"api\") {\n const ctx = useContext(MacrostratDataProviderContext);\n if (ctx == null) {\n throw new Error(\"Missing MacrostratDataProvider\");\n }\n if (selector === \"api\") {\n return ctx;\n }\n return useStore(ctx, selector);\n}\n\nexport function useMacrostratBaseURL(\n defaultURL = \"https://macrostrat.org/api/v2\",\n): string {\n /** Get the Macrostrat base URL from the store if set, otherwise return a default value */\n const ctx = useContext(MacrostratDataProviderContext);\n if (ctx == null) {\n // Return default URL if no provider is present\n return defaultURL;\n }\n return ctx.getState().baseURL;\n}\n\ntype DataTypeKey =\n | \"lithologies\"\n | \"intervals\"\n | \"columns\"\n | \"environments\"\n | \"refs\"\n | \"strat_names\";\n\nconst dataTypeMapping = {\n lithologies: (store) => store.getLithologies,\n intervals: (store) => store.getIntervals,\n columns: (store) => store.getColumns,\n environments: (store) => store.getEnvironments,\n refs: (store) => store.getRefs,\n strat_names: (store) => store.getStratNames,\n};\n\nexport function useMacrostratDefs(dataType: string): Map<number, any> | null {\n if (dataType == \"columns\") {\n throw new Error(\"Columns are not provided as a map\");\n }\n const operator = useMacrostratStore(dataTypeMapping[dataType]);\n useEffect(() => {\n operator();\n }, []);\n return useMacrostratStore((state) => state[dataType]);\n}\n\nexport function useMacrostratColumns(\n projectID: number | null,\n inProcess: boolean,\n) {\n const getColumns = useMacrostratStore((s) => s.getColumns);\n const columnsMap = useMacrostratStore((s) => s.columnFootprints);\n const key = projectID ?? -1;\n const colData = columnsMap?.get(key);\n useEffect(() => {\n // Refetch if the columns are not available, or if we have requested inProcess columns where we didn't before\n if (colData == null || (inProcess && !colData.inProcess)) {\n getColumns(projectID, inProcess);\n }\n // If we've already fetched the columns there's nothing to do...\n }, [colData, inProcess, getColumns]);\n\n return useMemo(() => {\n if (colData == null) return null;\n let columns = colData.columns;\n if (!inProcess && colData.inProcess) {\n // Our available set of columns includes 'in process' columns, but we don't want them\n columns.features = columns.features?.filter(\n (d) => d.properties.status != \"in process\",\n );\n }\n return columns;\n }, [colData, inProcess]);\n}\n\nexport function useMacrostratData(dataType: DataTypeKey, ...args: any[]) {\n const selector = dataTypeMapping[dataType];\n const operator = useMacrostratStore(selector);\n\n const [value, setValue] = useState(null);\n\n useEffect(() => {\n try {\n operator(...args).then(setValue);\n } catch (e) {\n console.error(e);\n }\n }, [operator, ...args]);\n\n return value;\n}\n\n/** By default, we provide a store linked to the production API */\nconst MacrostratDataProviderContext = createContext(createMacrostratStore());\n\nexport function MacrostratDataProvider(props: MacrostratDataProviderProps) {\n const { baseURL = \"https://dev.macrostrat.org/api/v2\", children } = props;\n\n const [store] = useState(() => createMacrostratStore(baseURL));\n\n return h(\n MacrostratAPIProvider,\n { baseURL },\n h(MacrostratDataProviderContext.Provider, { value: store }, children),\n );\n}\n\n/** Legacy API provider so useAPIResult can work */\n\ntype APIProviderProps = {\n children: ReactNode;\n useDev?: boolean;\n baseURL?: string;\n};\n\nexport function MacrostratAPIProvider({\n children,\n useDev = false,\n baseURL,\n}: APIProviderProps) {\n baseURL ??= useDev\n ? \"https://dev.macrostrat.org/api/v2\"\n : \"https://macrostrat.org/api/v2\";\n\n return h(\n APIProvider,\n {\n baseURL,\n unwrapResponse: (res) => res.success.data,\n },\n children,\n );\n}\n\nexport function MacrostratColumnProvider(props) {\n /** A column provider specialized the Macrostrat API. Maps more\n * generic concepts to Macrostrat-specific ones.\n */\n\n const { axisType } = useMacrostratColumnData();\n const { units, domain, pixelScale, scale, children } = props;\n return h(\n ColumnProvider,\n {\n axisType,\n divisions: units,\n range: domain,\n pixelsPerMeter: pixelScale,\n scale,\n },\n children,\n );\n}\n\n/** This is now a legacy provider */\nexport function LithologiesProvider({ children }) {\n useEffect(() => {\n console.warn(\n \"LithologiesProvider is deprecated. Replace with MacrostratDataProvider\",\n );\n }, []);\n return children;\n}\n\nexport function useLithologies() {\n const getLithologies = useMacrostratStore((s) => s.getLithologies);\n const lithologies = useMacrostratStore((s) => s.lithologies);\n useEffect(() => {\n if (lithologies == null) getLithologies();\n }, [lithologies, getLithologies]);\n return lithologies;\n}\n\nexport function useEnvironments() {\n const getEnvironments = useMacrostratStore((s) => s.getEnvironments);\n const environments = useMacrostratStore((s) => s.environments);\n useEffect(() => {\n if (environments == null) getEnvironments();\n }, [environments, getEnvironments]);\n return environments;\n}\n"],"names":["$fUENy$crossfetch","useContext","$fUENy$useContext","useEffect","$fUENy$useEffect","useMemo","$fUENy$useMemo","useState","$fUENy$useState","createContext","$fUENy$createContext","$fUENy$macrostrathyper","create","$fUENy$create","useStore","$fUENy$useStore","APIProvider","$fUENy$APIProvider","ColumnProvider","$fUENy$ColumnProvider","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$8750144f23b92eb9$exports","$8750144f23b92eb9$export$fb98d5bae3a6800","$8750144f23b92eb9$export$33b1392d23dde04","$8750144f23b92eb9$export$89dd4e5ae4a82373","$8750144f23b92eb9$export$81eaae0b474404fd","$8750144f23b92eb9$export$b9c9fc603d74a555","$8750144f23b92eb9$export$690613f93cdc5576","$8750144f23b92eb9$export$3098013bc6cc316d","$8750144f23b92eb9$export$9e42f9b6e0d67c7d","$8750144f23b92eb9$export$8492a5cae82b6a70","$8750144f23b92eb9$export$4d18a90c945d129f","$8750144f23b92eb9$export$c6b216bf4c71b61f","$Piirt","$wtIgl","$8750144f23b92eb9$var$createMacrostratStore","baseURL","inFlightRequests","Set","fetch","url","options","url1","has","add","res","delete","lithologies","getLithologies","ids","lithMap","data","fetchLithologies","Map","map","d","lith_id","values","intervals","getIntervals","timescaleID","_intervals","Array","from","some","timescale_id","fetchIntervals","intervalMap","int_id","filter","environments","getEnvironments","envMap","fetchEnvironments","environ_id","columnFootprints","getColumns","projectID","inProcess","key","footprints","statusCode","_inProcess","push","columns","fetchAllColumns","project_id","columnFootprints2","refs","getRefs","missing","length","fetchRefs","ref_id","stratNames","getStratNames","nameMap","stratNamesAlreadyLoaded","stratNamesToLoad","fetchStratNames","strat_name_id","selector","ctx","$8750144f23b92eb9$var$MacrostratDataProviderContext","defaultURL","getState","$8750144f23b92eb9$var$dataTypeMapping","store","strat_names","dataType","operator","state","columnsMap","colData","features","properties","status","args","value","setValue","then","console","error","props","children","Provider","useDev","unwrapResponse","success","axisType","useMacrostratColumnData","units","domain","pixelScale","scale","divisions","range","pixelsPerMeter","warn","useMacrostratStore","useMacrostratBaseURL","useMacrostratDefs","useMacrostratColumns","useMacrostratData","MacrostratDataProvider","MacrostratAPIProvider","MacrostratColumnProvider","LithologiesProvider","useLithologies","useEnvironments"],"version":3,"file":"column-views.c007152b.js.map","sourceRoot":"../../../../"}
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,A,Q,M,a,A,Q,c,C,C,a,C,C,W,C,C,Y,C,C,iB,C,K,O,A,Q,M,mB,A,Q,U,C,C,Y,C,K,S,A,Q,e,C,K,2B,A,Q,kB,C,K,+B,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,qB,I,G,E,E,uB,I,G,E,E,oB,I,G,E,E,uB,I,G,E,E,oB,I,G,E,E,yB,I,G,E,E,wB,I,G,E,E,2B,I,G,E,E,sB,I,G,E,E,iB,I,G,E,E,kB,I,G,I,E,E,S,E,E,SCqEA,SAAS,EACP,EAAkB,+BAA+B,EAEjD,OAAO,AAAA,EAAwB,CAAC,EAAK,SAwFP,EAAK,EAsCP,EAAK,EAnBF,EAAK,EA3DV,EAAK,EApBR,EAAK,EAiIC,EAAK,QA5JzB,CACL,QAAA,EACA,iBAAkB,IAAI,IACtB,MAAM,MAAM,CAAW,CAAE,CAAqB,EAC5C,IAAM,EAAO,EAAU,EAEjB,CAAA,iBAAE,CAAgB,CAAE,CAAG,IAC7B,GAAI,EAAiB,GAAG,CAAC,GACvB,OAAO,KAET,EAAiB,GAAG,CAAC,GAErB,IAAM,EAAM,MAAM,AAAA,EAAU,EAAM,GAGlC,OAFA,EAAiB,MAAM,CAAC,GAEjB,CACT,MAuE0B,EAtEA,EAsEK,EAtEA,EAuE5B,CACL,YAAa,KACb,MAAM,eAAe,CAAoB,EACvC,GAAM,CAAA,YAAE,CAAW,CAAA,MAAE,CAAK,CAAE,CAAG,IAC3B,EAAU,EACd,GAAI,AAAW,MAAX,EAAiB,CACnB,IAAM,EAAO,MAAM,AAAA,CAAA,EAAA,EAAA,gBAAe,AAAf,EAAiB,GACpC,GAAI,AAAQ,MAAR,EAAc,OAElB,EAAI,CAAE,YADN,EAAU,IAAI,IAAI,EAAK,GAAG,CAA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","sources":["<anon>","packages/column-views/src/data-provider/base.ts"],"sourcesContent":["import \"./column-views.7425d37b.js\";\nimport \"./column-views.0980c2a0.js\";\nimport $fUENy$crossfetch from \"cross-fetch\";\nimport {useContext as $fUENy$useContext, useEffect as $fUENy$useEffect, useMemo as $fUENy$useMemo, useState as $fUENy$useState, createContext as $fUENy$createContext} from \"react\";\nimport $fUENy$macrostrathyper from \"@macrostrat/hyper\";\nimport {create as $fUENy$create, useStore as $fUENy$useStore} from \"zustand\";\nimport {APIProvider as $fUENy$APIProvider} from \"@macrostrat/ui-components\";\nimport {ColumnProvider as $fUENy$ColumnProvider} from \"@macrostrat/column-components\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $8750144f23b92eb9$exports = {};\n\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratStore\", () => $8750144f23b92eb9$export$fb98d5bae3a6800);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratBaseURL\", () => $8750144f23b92eb9$export$33b1392d23dde04);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratDefs\", () => $8750144f23b92eb9$export$89dd4e5ae4a82373);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratColumns\", () => $8750144f23b92eb9$export$81eaae0b474404fd);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratData\", () => $8750144f23b92eb9$export$b9c9fc603d74a555);\n$parcel$export($8750144f23b92eb9$exports, \"MacrostratDataProvider\", () => $8750144f23b92eb9$export$690613f93cdc5576);\n$parcel$export($8750144f23b92eb9$exports, \"MacrostratAPIProvider\", () => $8750144f23b92eb9$export$3098013bc6cc316d);\n$parcel$export($8750144f23b92eb9$exports, \"MacrostratColumnProvider\", () => $8750144f23b92eb9$export$9e42f9b6e0d67c7d);\n$parcel$export($8750144f23b92eb9$exports, \"LithologiesProvider\", () => $8750144f23b92eb9$export$8492a5cae82b6a70);\n$parcel$export($8750144f23b92eb9$exports, \"useLithologies\", () => $8750144f23b92eb9$export$4d18a90c945d129f);\n$parcel$export($8750144f23b92eb9$exports, \"useEnvironments\", () => $8750144f23b92eb9$export$c6b216bf4c71b61f);\n/** Data provider for information that needs to be loaded in bulk for frontend views */ \n\n\n\n\nvar $Piirt = parcelRequire(\"Piirt\");\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nfunction $8750144f23b92eb9$var$createMacrostratStore(baseURL = \"https://macrostrat.org/api/v2\") {\n return (0, $fUENy$create)((set, get)=>{\n return {\n baseURL: baseURL,\n inFlightRequests: new Set(),\n async fetch (url, options) {\n const url1 = baseURL + url;\n // Avoid duplicate requests\n const { inFlightRequests: inFlightRequests } = get();\n if (inFlightRequests.has(url1)) return null; // Return null if already in flight\n inFlightRequests.add(url1);\n //set({ inFlightRequests });\n const res = await (0, $fUENy$crossfetch)(url1, options);\n inFlightRequests.delete(url1);\n //set({in})\n return res;\n },\n ...$8750144f23b92eb9$var$createLithologiesSlice(set, get),\n ...$8750144f23b92eb9$var$createIntervalsSlice(set, get),\n ...$8750144f23b92eb9$var$createEnvironmentsSlice(set, get),\n ...$8750144f23b92eb9$var$createColumnsSlice(set, get),\n ...$8750144f23b92eb9$var$createRefsSlice(set, get),\n ...$8750144f23b92eb9$var$createStratNamesSlice(set, get)\n };\n });\n}\nfunction $8750144f23b92eb9$var$createRefsSlice(set, get) {\n return {\n refs: new Map(),\n async getRefs (ids) {\n const { refs: refs, fetch: fetch } = get();\n const missing = ids.filter((id)=>!refs.has(id));\n if (missing.length == 0) return ids.map((id)=>refs.get(id));\n const data = await (0, $Piirt.fetchRefs)(missing, fetch);\n if (data == null) return [];\n for (const d of data)refs.set(d.ref_id, d);\n set({\n refs: refs\n });\n return ids.map((id)=>refs.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createColumnsSlice(set, get) {\n // Column footprints separated by project\n return {\n columnFootprints: new Map(),\n async getColumns (projectID, inProcess) {\n const { columnFootprints: columnFootprints, baseURL: baseURL, fetch: fetch } = get();\n const key = projectID ?? -1;\n let _inProcess = inProcess;\n let footprints = columnFootprints.get(key);\n if (footprints == null || footprints.inProcess != _inProcess) {\n // Fetch the columns\n const statusCode = [\n \"active\"\n ];\n if (_inProcess) statusCode.push(\"in process\");\n const columns = await (0, $Piirt.fetchAllColumns)({\n projectID: projectID,\n statusCode: statusCode,\n fetch: fetch\n });\n if (columns == null) return;\n footprints = {\n project_id: projectID,\n inProcess: inProcess,\n columns: columns\n };\n // We could break multi-project result sets into separate caches here...\n // Copy the original map\n const columnFootprints2 = new Map(columnFootprints);\n columnFootprints2.set(key, footprints);\n set({\n columnFootprints: columnFootprints2\n });\n }\n return footprints.columns;\n }\n };\n}\nfunction $8750144f23b92eb9$var$createLithologiesSlice(set, get) {\n return {\n lithologies: null,\n async getLithologies (ids) {\n const { lithologies: lithologies, fetch: fetch } = get();\n let lithMap = lithologies;\n if (lithMap == null) {\n const data = await (0, $Piirt.fetchLithologies)(fetch);\n if (data == null) return;\n lithMap = new Map(data.map((d)=>[\n d.lith_id,\n d\n ]));\n set({\n lithologies: lithMap\n });\n }\n // Now get the lithologies\n if (ids == null) return lithMap.values();\n return ids.map((id)=>lithMap.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createEnvironmentsSlice(set, get) {\n return {\n environments: null,\n async getEnvironments (ids) {\n const { environments: environments, fetch: fetch } = get();\n let envMap = environments;\n if (envMap == null) {\n const data = await (0, $Piirt.fetchEnvironments)(fetch);\n if (data == null) return [];\n envMap = new Map(data.map((d)=>[\n d.environ_id,\n d\n ]));\n set({\n environments: envMap\n });\n }\n // Now get the environments\n if (ids == null) return envMap.values();\n return ids.map((id)=>envMap.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createIntervalsSlice(set, get) {\n return {\n intervals: null,\n async getIntervals (ids, timescaleID) {\n const { intervals: intervals, fetch: fetch } = get();\n let _intervals = intervals;\n if (intervals == null || !$8750144f23b92eb9$var$includesTimescale(intervals, timescaleID)) {\n // Fetch the intervals\n const data = await (0, $Piirt.fetchIntervals)(timescaleID, fetch);\n if (data == null) return [];\n const intervalMap = intervals ?? new Map();\n for (const d of data)intervalMap.set(d.int_id, d);\n _intervals = intervalMap;\n set({\n intervals: _intervals\n });\n }\n if (ids == null && timescaleID == null) return Array.from(_intervals.values());\n if (timescaleID != null) return Array.from(_intervals.values()).filter((d)=>d.timescale_id == timescaleID);\n return ids.map((id)=>intervals.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createStratNamesSlice(set, get) {\n return {\n stratNames: null,\n async getStratNames (ids) {\n const { stratNames: stratNames, fetch: fetch } = get();\n let nameMap = stratNames ?? new Map();\n let stratNamesAlreadyLoaded = [];\n let stratNamesToLoad = [];\n for (const id of ids)if (nameMap.has(id)) stratNamesAlreadyLoaded.push(nameMap.get(id));\n else stratNamesToLoad.push(id);\n if (stratNamesToLoad.length > 0) {\n const data = await (0, $Piirt.fetchStratNames)(stratNamesToLoad, fetch);\n if (data == null) return stratNamesAlreadyLoaded;\n for (const d of data)nameMap.set(d.strat_name_id, d);\n set({\n stratNames: nameMap\n });\n }\n return ids.map((id)=>nameMap.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$includesTimescale(intervals, timescaleID) {\n if (intervals == null) return false;\n if (timescaleID == null) return true;\n return Array.from(intervals.values()).some((d)=>d.timescale_id == timescaleID);\n}\nfunction $8750144f23b92eb9$export$fb98d5bae3a6800(selector) {\n const ctx = (0, $fUENy$useContext)($8750144f23b92eb9$var$MacrostratDataProviderContext);\n if (ctx == null) throw new Error(\"Missing MacrostratDataProvider\");\n if (selector === \"api\") return ctx;\n return (0, $fUENy$useStore)(ctx, selector);\n}\nfunction $8750144f23b92eb9$export$33b1392d23dde04(defaultURL = \"https://macrostrat.org/api/v2\") {\n /** Get the Macrostrat base URL from the store if set, otherwise return a default value */ const ctx = (0, $fUENy$useContext)($8750144f23b92eb9$var$MacrostratDataProviderContext);\n if (ctx == null) // Return default URL if no provider is present\n return defaultURL;\n return ctx.getState().baseURL;\n}\nconst $8750144f23b92eb9$var$dataTypeMapping = {\n lithologies: (store)=>store.getLithologies,\n intervals: (store)=>store.getIntervals,\n columns: (store)=>store.getColumns,\n environments: (store)=>store.getEnvironments,\n refs: (store)=>store.getRefs,\n strat_names: (store)=>store.getStratNames\n};\nfunction $8750144f23b92eb9$export$89dd4e5ae4a82373(dataType) {\n if (dataType == \"columns\") throw new Error(\"Columns are not provided as a map\");\n const operator = $8750144f23b92eb9$export$fb98d5bae3a6800($8750144f23b92eb9$var$dataTypeMapping[dataType]);\n (0, $fUENy$useEffect)(()=>{\n operator();\n }, []);\n return $8750144f23b92eb9$export$fb98d5bae3a6800((state)=>state[dataType]);\n}\nfunction $8750144f23b92eb9$export$81eaae0b474404fd(projectID, inProcess) {\n const getColumns = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.getColumns);\n const columnsMap = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.columnFootprints);\n const key = projectID ?? -1;\n const colData = columnsMap?.get(key);\n (0, $fUENy$useEffect)(()=>{\n // Refetch if the columns are not available, or if we have requested inProcess columns where we didn't before\n if (colData == null || inProcess && !colData.inProcess) getColumns(projectID, inProcess);\n // If we've already fetched the columns there's nothing to do...\n }, [\n colData,\n inProcess,\n getColumns\n ]);\n return (0, $fUENy$useMemo)(()=>{\n if (colData == null) return null;\n let columns = colData.columns;\n if (!inProcess && colData.inProcess) // Our available set of columns includes 'in process' columns, but we don't want them\n columns.features = columns.features?.filter((d)=>d.properties.status != \"in process\");\n return columns;\n }, [\n colData,\n inProcess\n ]);\n}\nfunction $8750144f23b92eb9$export$b9c9fc603d74a555(dataType, ...args) {\n const selector = $8750144f23b92eb9$var$dataTypeMapping[dataType];\n const operator = $8750144f23b92eb9$export$fb98d5bae3a6800(selector);\n const [value, setValue] = (0, $fUENy$useState)(null);\n (0, $fUENy$useEffect)(()=>{\n try {\n operator(...args).then(setValue);\n } catch (e) {\n console.error(e);\n }\n }, [\n operator,\n ...args\n ]);\n return value;\n}\n/** By default, we provide a store linked to the production API */ const $8750144f23b92eb9$var$MacrostratDataProviderContext = (0, $fUENy$createContext)($8750144f23b92eb9$var$createMacrostratStore());\nfunction $8750144f23b92eb9$export$690613f93cdc5576(props) {\n const { baseURL: baseURL = \"https://dev.macrostrat.org/api/v2\", children: children } = props;\n const [store] = (0, $fUENy$useState)(()=>$8750144f23b92eb9$var$createMacrostratStore(baseURL));\n return (0, $fUENy$macrostrathyper)($8750144f23b92eb9$export$3098013bc6cc316d, {\n baseURL: baseURL\n }, (0, $fUENy$macrostrathyper)($8750144f23b92eb9$var$MacrostratDataProviderContext.Provider, {\n value: store\n }, children));\n}\nfunction $8750144f23b92eb9$export$3098013bc6cc316d({ children: children, useDev: useDev = false, baseURL: baseURL }) {\n baseURL ?? (baseURL = useDev ? \"https://dev.macrostrat.org/api/v2\" : \"https://macrostrat.org/api/v2\");\n return (0, $fUENy$macrostrathyper)((0, $fUENy$APIProvider), {\n baseURL: baseURL,\n unwrapResponse: (res)=>res.success.data\n }, children);\n}\nfunction $8750144f23b92eb9$export$9e42f9b6e0d67c7d(props) {\n /** A column provider specialized the Macrostrat API. Maps more\n * generic concepts to Macrostrat-specific ones.\n */ const { axisType: axisType } = (0, $wtIgl.useMacrostratColumnData)();\n const { units: units, domain: domain, pixelScale: pixelScale, scale: scale, children: children } = props;\n return (0, $fUENy$macrostrathyper)((0, $fUENy$ColumnProvider), {\n axisType: axisType,\n divisions: units,\n range: domain,\n pixelsPerMeter: pixelScale,\n scale: scale\n }, children);\n}\nfunction $8750144f23b92eb9$export$8492a5cae82b6a70({ children: children }) {\n (0, $fUENy$useEffect)(()=>{\n console.warn(\"LithologiesProvider is deprecated. Replace with MacrostratDataProvider\");\n }, []);\n return children;\n}\nfunction $8750144f23b92eb9$export$4d18a90c945d129f() {\n const getLithologies = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.getLithologies);\n const lithologies = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.lithologies);\n (0, $fUENy$useEffect)(()=>{\n if (lithologies == null) getLithologies();\n }, [\n lithologies,\n getLithologies\n ]);\n return lithologies;\n}\nfunction $8750144f23b92eb9$export$c6b216bf4c71b61f() {\n const getEnvironments = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.getEnvironments);\n const environments = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.environments);\n (0, $fUENy$useEffect)(()=>{\n if (environments == null) getEnvironments();\n }, [\n environments,\n getEnvironments\n ]);\n return environments;\n}\n\n\nexport {$8750144f23b92eb9$export$fb98d5bae3a6800 as useMacrostratStore, $8750144f23b92eb9$export$33b1392d23dde04 as useMacrostratBaseURL, $8750144f23b92eb9$export$89dd4e5ae4a82373 as useMacrostratDefs, $8750144f23b92eb9$export$81eaae0b474404fd as useMacrostratColumns, $8750144f23b92eb9$export$b9c9fc603d74a555 as useMacrostratData, $8750144f23b92eb9$export$690613f93cdc5576 as MacrostratDataProvider, $8750144f23b92eb9$export$3098013bc6cc316d as MacrostratAPIProvider, $8750144f23b92eb9$export$9e42f9b6e0d67c7d as MacrostratColumnProvider, $8750144f23b92eb9$export$8492a5cae82b6a70 as LithologiesProvider, $8750144f23b92eb9$export$4d18a90c945d129f as useLithologies, $8750144f23b92eb9$export$c6b216bf4c71b61f as useEnvironments};\n//# sourceMappingURL=column-views.41d72280.js.map\n","/** Data provider for information that needs to be loaded in bulk for frontend views */\nimport baseFetch from \"cross-fetch\";\nimport { createContext, useContext, useEffect, useMemo, useState } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { create, useStore } from \"zustand\";\nimport {\n ColumnGeoJSONRecord,\n ColumnGeoJSONRecordWithID,\n Environment,\n MacrostratRef,\n StratName,\n Interval,\n} from \"@macrostrat/api-types\";\nimport {\n fetchAllColumns,\n fetchEnvironments,\n fetchIntervals,\n fetchLithologies,\n fetchRefs,\n fetchStratNames,\n type ColumnStatusCode,\n} from \"./fetch\";\nimport { APIProvider } from \"@macrostrat/ui-components\";\nimport { ColumnProvider } from \"@macrostrat/column-components\";\n\nimport { ReactNode } from \"react\";\nimport { useMacrostratColumnData } from \"./store\";\n\nexport interface MacrostratDataProviderProps {\n baseURL: string;\n children: React.ReactNode;\n}\n\ninterface ColumnFootprintsStorage {\n project_id: number;\n // Whether the \"in process\" flag was used\n inProcess: boolean;\n // The column footprints\n columns: ColumnGeoJSONRecordWithID[];\n}\n\ninterface RefsSlice {\n refs: Map<number, MacrostratRef>;\n inFlightRequests: Set<string>; // Track requests to avoid duplicates\n getRefs(ids: number[]): Promise<MacrostratRef[]>;\n}\n\ninterface MacrostratStore extends RefsSlice {\n baseURL: string;\n fetch: any;\n lithologies: Map<number, any> | null;\n getLithologies(ids: number[] | null): Promise<any>;\n intervals: Map<number, any> | null;\n getIntervals(\n ids: number[] | null,\n timescaleID: number | null,\n ): Promise<Interval[]>;\n environments: Map<number, Environment> | null;\n getEnvironments(ids: number[] | null): Promise<Environment[]>;\n columnFootprints: Map<number, ColumnFootprintsStorage>;\n getColumns(\n projectID: number | null,\n inProcess: boolean,\n ): Promise<ColumnGeoJSONRecord[]>;\n // Strat names unify both \"strat names\" and \"concepts\"\n stratNames: Map<number, StratName> | null;\n getStratNames(ids: number[] | null): Promise<StratName[]>;\n}\n\nfunction createMacrostratStore(\n baseURL: string = \"https://macrostrat.org/api/v2\",\n) {\n return create<MacrostratStore>((set, get): MacrostratStore => {\n return {\n baseURL,\n inFlightRequests: new Set(),\n async fetch(url: string, options?: RequestInit) {\n const url1 = baseURL + url;\n // Avoid duplicate requests\n const { inFlightRequests } = get();\n if (inFlightRequests.has(url1)) {\n return null; // Return null if already in flight\n }\n inFlightRequests.add(url1);\n //set({ inFlightRequests });\n const res = await baseFetch(url1, options);\n inFlightRequests.delete(url1);\n //set({in})\n return res;\n },\n ...createLithologiesSlice(set, get),\n ...createIntervalsSlice(set, get),\n ...createEnvironmentsSlice(set, get),\n ...createColumnsSlice(set, get),\n ...createRefsSlice(set, get),\n ...createStratNamesSlice(set, get),\n };\n });\n}\n\nfunction createRefsSlice(set, get) {\n return {\n refs: new Map(),\n async getRefs(ids: number[]): Promise<MacrostratRef[]> {\n const { refs, fetch } = get();\n const missing = ids.filter((id) => !refs.has(id));\n if (missing.length == 0) {\n return ids.map((id) => refs.get(id));\n }\n const data = await fetchRefs(missing, fetch);\n if (data == null) return [];\n for (const d of data) {\n refs.set(d.ref_id, d);\n }\n set({ refs });\n return ids.map((id) => refs.get(id));\n },\n };\n}\n\nfunction createColumnsSlice(set, get) {\n // Column footprints separated by project\n return {\n columnFootprints: new Map(),\n async getColumns(projectID: number | null, inProcess: boolean) {\n const { columnFootprints, baseURL, fetch } = get();\n const key = projectID ?? -1;\n let _inProcess = inProcess;\n\n let footprints = columnFootprints.get(key);\n if (footprints == null || footprints.inProcess != _inProcess) {\n // Fetch the columns\n const statusCode: ColumnStatusCode[] = [\"active\"];\n if (_inProcess) {\n statusCode.push(\"in process\");\n }\n const columns = await fetchAllColumns({\n projectID,\n statusCode,\n fetch,\n });\n if (columns == null) {\n return;\n }\n footprints = {\n project_id: projectID,\n inProcess,\n columns,\n };\n // We could break multi-project result sets into separate caches here...\n // Copy the original map\n const columnFootprints2 = new Map(columnFootprints);\n columnFootprints2.set(key, footprints);\n set({ columnFootprints: columnFootprints2 });\n }\n return footprints.columns;\n },\n };\n}\n\nfunction createLithologiesSlice(set, get) {\n return {\n lithologies: null,\n async getLithologies(ids: number[] | null) {\n const { lithologies, fetch } = get();\n let lithMap = lithologies;\n if (lithMap == null) {\n const data = await fetchLithologies(fetch);\n if (data == null) return;\n lithMap = new Map(data.map((d) => [d.lith_id, d]));\n set({ lithologies: lithMap });\n }\n // Now get the lithologies\n if (ids == null) return lithMap.values();\n return ids.map((id) => lithMap.get(id));\n },\n };\n}\n\nfunction createEnvironmentsSlice(set, get) {\n return {\n environments: null,\n async getEnvironments(ids: number[] | null): Promise<Environment[]> {\n const { environments, fetch } = get();\n let envMap = environments;\n if (envMap == null) {\n const data = await fetchEnvironments(fetch);\n if (data == null) return [];\n envMap = new Map(data.map((d) => [d.environ_id, d]));\n set({ environments: envMap });\n }\n // Now get the environments\n if (ids == null) return envMap.values();\n return ids.map((id) => envMap.get(id));\n },\n };\n}\n\nfunction createIntervalsSlice(set, get) {\n return {\n intervals: null,\n async getIntervals(ids: number[] | null, timescaleID: number | null) {\n const { intervals, fetch } = get();\n let _intervals = intervals;\n if (intervals == null || !includesTimescale(intervals, timescaleID)) {\n // Fetch the intervals\n const data = await fetchIntervals(timescaleID, fetch);\n if (data == null) {\n return [];\n }\n const intervalMap = intervals ?? new Map();\n for (const d of data) {\n intervalMap.set(d.int_id, d);\n }\n _intervals = intervalMap;\n set({ intervals: _intervals });\n }\n if (ids == null && timescaleID == null)\n return Array.from(_intervals.values());\n if (timescaleID != null) {\n return Array.from(_intervals.values() as any[]).filter(\n (d) => d.timescale_id == timescaleID,\n );\n }\n return ids.map((id) => intervals.get(id));\n },\n };\n}\n\nfunction createStratNamesSlice(set, get) {\n return {\n stratNames: null,\n async getStratNames(ids: number[] | null): Promise<StratName[]> {\n const { stratNames, fetch } = get();\n let nameMap = stratNames ?? new Map();\n let stratNamesAlreadyLoaded = [];\n let stratNamesToLoad = [];\n for (const id of ids) {\n if (nameMap.has(id)) {\n stratNamesAlreadyLoaded.push(nameMap.get(id));\n } else {\n stratNamesToLoad.push(id);\n }\n }\n if (stratNamesToLoad.length > 0) {\n const data = await fetchStratNames(stratNamesToLoad, fetch);\n if (data == null) return stratNamesAlreadyLoaded;\n for (const d of data) {\n nameMap.set(d.strat_name_id, d);\n }\n set({ stratNames: nameMap });\n }\n return ids.map((id) => nameMap.get(id));\n },\n };\n}\n\nfunction includesTimescale(intervals: Map<number, any>, timescaleID: number) {\n if (intervals == null) return false;\n if (timescaleID == null) return true;\n return Array.from(intervals.values()).some(\n (d) => d.timescale_id == timescaleID,\n );\n}\n\ntype MacrostratSelector = (store: MacrostratStore) => any;\n\nexport function useMacrostratStore(selector: MacrostratSelector | \"api\") {\n const ctx = useContext(MacrostratDataProviderContext);\n if (ctx == null) {\n throw new Error(\"Missing MacrostratDataProvider\");\n }\n if (selector === \"api\") {\n return ctx;\n }\n return useStore(ctx, selector);\n}\n\nexport function useMacrostratBaseURL(\n defaultURL = \"https://macrostrat.org/api/v2\",\n): string {\n /** Get the Macrostrat base URL from the store if set, otherwise return a default value */\n const ctx = useContext(MacrostratDataProviderContext);\n if (ctx == null) {\n // Return default URL if no provider is present\n return defaultURL;\n }\n return ctx.getState().baseURL;\n}\n\ntype DataTypeKey =\n | \"lithologies\"\n | \"intervals\"\n | \"columns\"\n | \"environments\"\n | \"refs\"\n | \"strat_names\";\n\nconst dataTypeMapping = {\n lithologies: (store) => store.getLithologies,\n intervals: (store) => store.getIntervals,\n columns: (store) => store.getColumns,\n environments: (store) => store.getEnvironments,\n refs: (store) => store.getRefs,\n strat_names: (store) => store.getStratNames,\n};\n\nexport function useMacrostratDefs(dataType: string): Map<number, any> | null {\n if (dataType == \"columns\") {\n throw new Error(\"Columns are not provided as a map\");\n }\n const operator = useMacrostratStore(dataTypeMapping[dataType]);\n useEffect(() => {\n operator();\n }, []);\n return useMacrostratStore((state) => state[dataType]);\n}\n\nexport function useMacrostratColumns(\n projectID: number | null,\n inProcess: boolean,\n) {\n const getColumns = useMacrostratStore((s) => s.getColumns);\n const columnsMap = useMacrostratStore((s) => s.columnFootprints);\n const key = projectID ?? -1;\n const colData = columnsMap?.get(key);\n useEffect(() => {\n // Refetch if the columns are not available, or if we have requested inProcess columns where we didn't before\n if (colData == null || (inProcess && !colData.inProcess)) {\n getColumns(projectID, inProcess);\n }\n // If we've already fetched the columns there's nothing to do...\n }, [colData, inProcess, getColumns]);\n\n return useMemo(() => {\n if (colData == null) return null;\n let columns = colData.columns;\n if (!inProcess && colData.inProcess) {\n // Our available set of columns includes 'in process' columns, but we don't want them\n columns.features = columns.features?.filter(\n (d) => d.properties.status != \"in process\",\n );\n }\n return columns;\n }, [colData, inProcess]);\n}\n\nexport function useMacrostratData(dataType: DataTypeKey, ...args: any[]) {\n const selector = dataTypeMapping[dataType];\n const operator = useMacrostratStore(selector);\n\n const [value, setValue] = useState(null);\n\n useEffect(() => {\n try {\n operator(...args).then(setValue);\n } catch (e) {\n console.error(e);\n }\n }, [operator, ...args]);\n\n return value;\n}\n\n/** By default, we provide a store linked to the production API */\nconst MacrostratDataProviderContext = createContext(createMacrostratStore());\n\nexport function MacrostratDataProvider(props: MacrostratDataProviderProps) {\n const { baseURL = \"https://dev.macrostrat.org/api/v2\", children } = props;\n\n const [store] = useState(() => createMacrostratStore(baseURL));\n\n return h(\n MacrostratAPIProvider,\n { baseURL },\n h(MacrostratDataProviderContext.Provider, { value: store }, children),\n );\n}\n\n/** Legacy API provider so useAPIResult can work */\n\ntype APIProviderProps = {\n children: ReactNode;\n useDev?: boolean;\n baseURL?: string;\n};\n\nexport function MacrostratAPIProvider({\n children,\n useDev = false,\n baseURL,\n}: APIProviderProps) {\n baseURL ??= useDev\n ? \"https://dev.macrostrat.org/api/v2\"\n : \"https://macrostrat.org/api/v2\";\n\n return h(\n APIProvider,\n {\n baseURL,\n unwrapResponse: (res) => res.success.data,\n },\n children,\n );\n}\n\nexport function MacrostratColumnProvider(props) {\n /** A column provider specialized the Macrostrat API. Maps more\n * generic concepts to Macrostrat-specific ones.\n */\n\n const { axisType } = useMacrostratColumnData();\n const { units, domain, pixelScale, scale, children } = props;\n return h(\n ColumnProvider,\n {\n axisType,\n divisions: units,\n range: domain,\n pixelsPerMeter: pixelScale,\n scale,\n },\n children,\n );\n}\n\n/** This is now a legacy provider */\nexport function LithologiesProvider({ children }) {\n useEffect(() => {\n console.warn(\n \"LithologiesProvider is deprecated. Replace with MacrostratDataProvider\",\n );\n }, []);\n return children;\n}\n\nexport function useLithologies() {\n const getLithologies = useMacrostratStore((s) => s.getLithologies);\n const lithologies = useMacrostratStore((s) => s.lithologies);\n useEffect(() => {\n if (lithologies == null) getLithologies();\n }, [lithologies, getLithologies]);\n return lithologies;\n}\n\nexport function useEnvironments() {\n const getEnvironments = useMacrostratStore((s) => s.getEnvironments);\n const environments = useMacrostratStore((s) => s.environments);\n useEffect(() => {\n if (environments == null) getEnvironments();\n }, [environments, getEnvironments]);\n return environments;\n}\n"],"names":["$fUENy$crossfetch","useContext","$fUENy$useContext","useEffect","$fUENy$useEffect","useMemo","$fUENy$useMemo","useState","$fUENy$useState","createContext","$fUENy$createContext","$fUENy$macrostrathyper","create","$fUENy$create","useStore","$fUENy$useStore","APIProvider","$fUENy$APIProvider","ColumnProvider","$fUENy$ColumnProvider","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$8750144f23b92eb9$exports","$8750144f23b92eb9$export$fb98d5bae3a6800","$8750144f23b92eb9$export$33b1392d23dde04","$8750144f23b92eb9$export$89dd4e5ae4a82373","$8750144f23b92eb9$export$81eaae0b474404fd","$8750144f23b92eb9$export$b9c9fc603d74a555","$8750144f23b92eb9$export$690613f93cdc5576","$8750144f23b92eb9$export$3098013bc6cc316d","$8750144f23b92eb9$export$9e42f9b6e0d67c7d","$8750144f23b92eb9$export$8492a5cae82b6a70","$8750144f23b92eb9$export$4d18a90c945d129f","$8750144f23b92eb9$export$c6b216bf4c71b61f","$Piirt","$wtIgl","$8750144f23b92eb9$var$createMacrostratStore","baseURL","inFlightRequests","Set","fetch","url","options","url1","has","add","res","delete","lithologies","getLithologies","ids","lithMap","data","fetchLithologies","Map","map","d","lith_id","values","intervals","getIntervals","timescaleID","_intervals","Array","from","some","timescale_id","fetchIntervals","intervalMap","int_id","filter","environments","getEnvironments","envMap","fetchEnvironments","environ_id","columnFootprints","getColumns","projectID","inProcess","key","footprints","statusCode","_inProcess","push","columns","fetchAllColumns","project_id","columnFootprints2","refs","getRefs","missing","length","fetchRefs","ref_id","stratNames","getStratNames","nameMap","stratNamesAlreadyLoaded","stratNamesToLoad","fetchStratNames","strat_name_id","selector","ctx","$8750144f23b92eb9$var$MacrostratDataProviderContext","defaultURL","getState","$8750144f23b92eb9$var$dataTypeMapping","store","strat_names","dataType","operator","state","columnsMap","colData","features","properties","status","args","value","setValue","then","console","error","props","children","Provider","useDev","unwrapResponse","success","axisType","useMacrostratColumnData","units","domain","pixelScale","scale","divisions","range","pixelsPerMeter","warn","useMacrostratStore","useMacrostratBaseURL","useMacrostratDefs","useMacrostratColumns","useMacrostratData","MacrostratDataProvider","MacrostratAPIProvider","MacrostratColumnProvider","LithologiesProvider","useLithologies","useEnvironments"],"version":3,"file":"column-views.41d72280.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./column-views.
|
|
2
|
-
//# sourceMappingURL=column-views.
|
|
1
|
+
import"./column-views.69ddf14d.js";import"./column-views.8f5532b0.js";function e(e,r){return Object.keys(r).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return r[t]}})}),e}var r=globalThis,t={},a={},o=r.parcelRequirea149;null==o&&((o=function(e){if(e in t)return t[e].exports;if(e in a){var r=a[e];delete a[e];var o={id:e,exports:{}};return t[e]=o,r.call(o.exports,o,o.exports),o.exports}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}).register=function(e,r){a[e]=r},r.parcelRequirea149=o),o.register;var n={},c=o("kIQUG"),d=o("grgdF");e(n,c),e(n,d);export{$7e05644cbb5d2dbb$export$9d101e1fcb2166a6 as standardizeMeasurementHeight,$7e05644cbb5d2dbb$export$8f2afa8ddee7317e as mergeHeightRanges,$7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn,$7e05644cbb5d2dbb$export$653e47a7a0da0f0d as TruncatedList,$7e05644cbb5d2dbb$export$4e649f790614b299 as groupNotesByPixelDistance,$48680a4cd2abcbe4$export$c49cf57576706bab as SGPMeasurementsColumn};
|
|
2
|
+
//# sourceMappingURL=column-views.4e677bc4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,G,E,E,U,6C,4B,C,6C,iB,C,6C,sB,C,6C,a,C,6C,yB,C,6C,qB","sources":["<anon>","packages/column-views/src/facets/measurements/index.ts"],"sourcesContent":["import \"./column-views.
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,G,E,E,U,6C,4B,C,6C,iB,C,6C,sB,C,6C,a,C,6C,yB,C,6C,qB","sources":["<anon>","packages/column-views/src/facets/measurements/index.ts"],"sourcesContent":["import \"./column-views.69ddf14d.js\";\nimport \"./column-views.8f5532b0.js\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $30f674067bcc490b$exports = {};\n\nvar $kIQUG = parcelRequire(\"kIQUG\");\n\nvar $grgdF = parcelRequire(\"grgdF\");\n$parcel$exportWildcard($30f674067bcc490b$exports, $kIQUG);\n$parcel$exportWildcard($30f674067bcc490b$exports, $grgdF);\n\n\nexport {$7e05644cbb5d2dbb$export$9d101e1fcb2166a6 as standardizeMeasurementHeight, $7e05644cbb5d2dbb$export$8f2afa8ddee7317e as mergeHeightRanges, $7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $7e05644cbb5d2dbb$export$653e47a7a0da0f0d as TruncatedList, $7e05644cbb5d2dbb$export$4e649f790614b299 as groupNotesByPixelDistance, $48680a4cd2abcbe4$export$c49cf57576706bab as SGPMeasurementsColumn};\n//# sourceMappingURL=column-views.4e677bc4.js.map\n","export * from \"./base\";\nexport * from \"./sgp\";\n"],"names":["$parcel$exportWildcard","dest","source","Object","keys","forEach","key","prototype","hasOwnProperty","call","defineProperty","enumerable","get","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","err","Error","code","register","$30f674067bcc490b$exports","$kIQUG","$grgdF","$7e05644cbb5d2dbb$export$9d101e1fcb2166a6","standardizeMeasurementHeight","$7e05644cbb5d2dbb$export$8f2afa8ddee7317e","mergeHeightRanges","$7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d","BaseMeasurementsColumn","$7e05644cbb5d2dbb$export$653e47a7a0da0f0d","TruncatedList","$7e05644cbb5d2dbb$export$4e649f790614b299","groupNotesByPixelDistance","$48680a4cd2abcbe4$export$c49cf57576706bab","SGPMeasurementsColumn"],"version":3,"file":"column-views.4e677bc4.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./column-views.
|
|
2
|
-
//# sourceMappingURL=column-views.
|
|
1
|
+
import"./column-views.7ee01d2b.js";import"./column-views.d529d3aa.js";function e(e,r){return Object.keys(r).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:function(){return r[a]}})}),e}var r=globalThis,a={},o={},t=r.parcelRequirea149;null==t&&((t=function(e){if(e in a)return a[e].exports;if(e in o){var r=o[e];delete o[e];var t={id:e,exports:{}};return a[e]=t,r.call(t.exports,t,t.exports),t.exports}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}).register=function(e,r){o[e]=r},r.parcelRequirea149=t),t.register;var n={},c=t("fIgv5"),f=t("c27x8");e(n,c),e(n,f);export{$44d1d5e5d8e823d1$export$821baedf611249f3 as ColumnNavigationMap,$5a7fd801cb316afa$export$c4313db718750a5a as ResizableMapFrame,$5a7fd801cb316afa$export$9595c40c7a4c4f7b as ColumnNavigationSVGMap,$372e0c9189556f66$export$2254347cd20e6080 as MeasurementsLayer,$372e0c9189556f66$export$f177ff57c101017a as ColumnFeatures,$372e0c9189556f66$export$8c41dd563753848 as ColumnKeyboardNavigation,$372e0c9189556f66$export$f02cc02ad0e0bba3 as Columns,$372e0c9189556f66$export$4d8f6e6df85d9012 as ColumnCenters,$372e0c9189556f66$export$b9d912252344e099 as CurrentColumn};
|
|
2
|
+
//# sourceMappingURL=column-views.60dc38f3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,G,E,E,U,6C,mB,C,6C,iB,C,6C,sB,C,6C,iB,C,6C,c,C,4C,wB,C,6C,O,C,6C,a,C,6C,a","sources":["<anon>","packages/column-views/src/maps/column-navigation/index.ts"],"sourcesContent":["import \"./column-views.
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,G,E,E,U,6C,mB,C,6C,iB,C,6C,sB,C,6C,iB,C,6C,c,C,4C,wB,C,6C,O,C,6C,a,C,6C,a","sources":["<anon>","packages/column-views/src/maps/column-navigation/index.ts"],"sourcesContent":["import \"./column-views.7ee01d2b.js\";\nimport \"./column-views.d529d3aa.js\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $7ff4e0023faa490a$exports = {};\n\nvar $fIgv5 = parcelRequire(\"fIgv5\");\n\nvar $c27x8 = parcelRequire(\"c27x8\");\n$parcel$exportWildcard($7ff4e0023faa490a$exports, $fIgv5);\n$parcel$exportWildcard($7ff4e0023faa490a$exports, $c27x8);\n\n\nexport {$44d1d5e5d8e823d1$export$821baedf611249f3 as ColumnNavigationMap, $5a7fd801cb316afa$export$c4313db718750a5a as ResizableMapFrame, $5a7fd801cb316afa$export$9595c40c7a4c4f7b as ColumnNavigationSVGMap, $372e0c9189556f66$export$2254347cd20e6080 as MeasurementsLayer, $372e0c9189556f66$export$f177ff57c101017a as ColumnFeatures, $372e0c9189556f66$export$8c41dd563753848 as ColumnKeyboardNavigation, $372e0c9189556f66$export$f02cc02ad0e0bba3 as Columns, $372e0c9189556f66$export$4d8f6e6df85d9012 as ColumnCenters, $372e0c9189556f66$export$b9d912252344e099 as CurrentColumn};\n//# sourceMappingURL=column-views.60dc38f3.js.map\n","export * from \"./mapbox\";\nexport * from \"./svg\";\n"],"names":["$parcel$exportWildcard","dest","source","Object","keys","forEach","key","prototype","hasOwnProperty","call","defineProperty","enumerable","get","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","err","Error","code","register","$7ff4e0023faa490a$exports","$fIgv5","$c27x8","$44d1d5e5d8e823d1$export$821baedf611249f3","ColumnNavigationMap","$5a7fd801cb316afa$export$c4313db718750a5a","ResizableMapFrame","$5a7fd801cb316afa$export$9595c40c7a4c4f7b","ColumnNavigationSVGMap","$372e0c9189556f66$export$2254347cd20e6080","MeasurementsLayer","$372e0c9189556f66$export$f177ff57c101017a","ColumnFeatures","$372e0c9189556f66$export$8c41dd563753848","ColumnKeyboardNavigation","$372e0c9189556f66$export$f02cc02ad0e0bba3","Columns","$372e0c9189556f66$export$4d8f6e6df85d9012","ColumnCenters","$372e0c9189556f66$export$b9d912252344e099","CurrentColumn"],"version":3,"file":"column-views.60dc38f3.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./column-views.
|
|
2
|
-
//# sourceMappingURL=column-views.
|
|
1
|
+
import"./column-views.7714173b.js";import"./column-views.139b0855.js";import"./column-views.41876859.js";import{useMapClickHandler as e,useMapStyleOperator as o,useMapEaseTo as r}from"@macrostrat/mapbox-react";import{LngLatBounds as t}from"mapbox-gl";import n from"@macrostrat/hyper";import{useMemo as l}from"react";import{setGeoJSON as s,buildGeoJSONSource as i}from"@macrostrat/mapbox-utils";import{buildCrossSectionLayers as a}from"@macrostrat/map-styles";var c=globalThis,u={},p={},d=c.parcelRequirea149;null==d&&((d=function(e){if(e in u)return u[e].exports;if(e in p){var o=p[e];delete p[e];var r={id:e,exports:{}};return u[e]=r,o.call(r.exports,r,r.exports),r.exports}var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}).register=function(e,o){p[e]=o},c.parcelRequirea149=d),d.register,Object.defineProperty({},"ColumnCorrelationMap",{get:()=>g,set:void 0,enumerable:!0,configurable:!0});var m=d("gIQRH"),f=d("dETE9"),y=d("4pcLO");function g(e){let{padding:o=50,children:r,columnColor:t,...s}=e,i=l(()=>[(0,f.buildColumnsStyle)(t),M,v],[t]);return n(y.InsetMap,{...s,boxZoom:!1,dragRotate:!1,overlayStyles:i},[n(S),n(C),n(b),n(x,{padding:o}),r])}function b(){let o=(0,m.useCorrelationMapStore)(e=>e.onClickMap);return e(e=>{o(e,{type:"Point",coordinates:e.lngLat.toArray()})},[o]),null}function C(){let e=(0,m.useCorrelationMapStore)(e=>e.focusedColumns);return o(o=>{let r={type:"Feature",geometry:{type:"LineString",coordinates:e.map(e=>e.properties.centroid.geometry.coordinates)},properties:{}};s(o,"selected-columns",{type:"FeatureCollection",features:e}),s(o,"selected-column-centroids",{type:"FeatureCollection",features:[r]})},[e]),null}function S({enabled:e=!0}){let r=(0,m.useCorrelationMapStore)(e=>e.columns);return o(e=>{if(null==r)return;let o={type:"FeatureCollection",features:r};console.log(" columns",o),s(e,"columns",o)},[r,e]),null}let M={version:8,sources:{"selected-columns":i(),"selected-column-centroids":i()},layers:[{id:"selected-columns-fill",type:"fill",source:"selected-columns",paint:{"fill-color":"rgba(255, 0, 0, 0.1)"}},{id:"selected-column-centroids-line",type:"line",source:"selected-column-centroids",paint:{"line-color":"rgba(255, 0, 0, 0.8)","line-width":2,"line-dasharray":[2,2]}},{id:"selected-column-centroids-points",type:"circle",source:"selected-column-centroids",paint:{"circle-radius":4,"circle-color":"rgba(255, 0, 0, 0.8)"}}]},v={version:8,sources:{elevationMarker:i(),crossSectionLine:i(),crossSectionEndpoints:i()},layers:a()};function x({padding:e}){let n=(0,m.useCorrelationMapStore)(e=>e.focusedLine);return o(e=>{null!=n&&(s(e,"crossSectionLine",{type:"FeatureCollection",features:[{type:"Feature",geometry:n,properties:{id:"focusedLine"}}]}),s(e,"crossSectionEndpoints",{type:"FeatureCollection",features:n.coordinates.map(e=>({type:"Feature",geometry:{type:"Point",coordinates:e},properties:{}}))}))},[n]),r({bounds:l(()=>{if(null==n||n?.coordinates.length<2)return null;let e=new t;for(let o of n.coordinates)e.extend(o);return e},[n]),padding:e,trackResize:!0}),null}export{g as ColumnCorrelationMap};
|
|
2
|
+
//# sourceMappingURL=column-views.68fe4814.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,Q,sB,C,C,uB,C,C,gB,C,K,0B,A,Q,gB,C,K,W,A,Q,M,mB,A,Q,W,C,K,O,A,Q,c,C,C,sB,C,K,0B,A,Q,2B,C,K,wB,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,O,c,C,C,E,uB,C,I,I,E,I,K,E,W,C,E,a,C,C,G,I,E,E,S,E,E,S,E,E,SCsBO,SAAS,EAAqB,CAA0B,EAC7D,GAAM,CAAA,QAAE,EAAU,EAAA,CAAA,SAAI,CAAQ,CAAA,YAAE,CAAW,CAAE,GAAG,EAAM,CAAG,EAEnD,EAAkC,AAAA,EAAQ,IACvC,CACL,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,GAClB,EACA,EACD,CACA,CAAC,EAAY,EAEhB,OAAO,AAAA,EACL,EAAA,QAAO,CACP,CACE,GAAG,CAAI,CACP,QAAS,CAAA,EACT,WAAY,CAAA,EACZ,cAAA,CACF,EACA,CACE,AAAA,EAAE,GACF,AAAA,EAAE,GACF,AAAA,EAAE,GACF,AAAA,EAAE,EAAa,CAAE,QAAA,CAAQ,GACzB,EACD,CAEL,CAEA,SAAS,IACP,IAAM,EAAa,AAAA,CAAA,EAAA,EAAA,sBAAqB,AAArB,EAAuB,AAAC,GAAU,EAAM,UAAU,EASrE,OAPA,AAAA,EACE,AAAC,IACC,EAAW,EAAG,CAAE,KAAM,QAAS,YAAa,EAAE,MAAM,CAAC,OAAO,EAAG,EACjE,EACA,CAAC,EAAW,EAGP,IACT,CAEA,SAAS,IACP,IAAM,EAAiB,AAAA,CAAA,EAAA,EAAA,sBAAqB,AAArB,EACrB,AAAC,GAAU,EAAM,cAAc,EA+BjC,OA5BA,AAAA,EACE,AAAC,IAQC,IAAM,EAA8B,CAClC,KAAM,UACN,SAAU,CACR,KAAM,aACN,YAAa,AAXF,EAWW,GAAG,CACvB,AAAC,GAAQ,EAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAEzD,EACA,WAAY,CAAC,CACf,EAEA,AAAA,EAAW,EAAK,mBAhBgB,CAC9B,KAAM,oBACN,SAJa,CAKf,GAcA,AAAA,EAAW,EAAK,4BAA6B,CAC3C,KAAM,oBACN,SAAU,CAAC,EAAmB,AAChC,EACF,EACA,CAAC,EAAe,EAEX,IACT,CAEA,SAAS,EAAa,CAAA,QAAE,EAAU,CAAA,CAAA,CAAM,EACtC,IAAM,EAAU,AAAA,CAAA,EAAA,EAAA,sBAAqB,AAArB,EAAuB,AAAC,GAAU,EAAM,OAAO,EAiB/D,OAfA,AAAA,EACE,AAAC,IACC,GAAI,AAAW,MAAX,EACF,OAEF,IAAM,EAA0B,CAC9B,KAAM,oBACN,SAAU,CACZ,EAEA,QAAQ,GAAG,CAAC,WAAY,GACxB,AAAA,EAAW,EAAK,UAAW,EAC7B,EACA,CAAC,EAAS,EAAQ,EAEb,IACT,CAEA,IAAM,EAA8B,CAClC,QAAS,EACT,QAAS,CACP,mBAAoB,AAAA,IACpB,4BAA6B,AAAA,GAC/B,EACA,OAAQ,CACN,CACE,GAAI,wBACJ,KAAM,OACN,OAAQ,mBACR,MAAO,CACL,aAAc,sBAChB,CACF,EACA,CACE,GAAI,iCACJ,KAAM,OACN,OAAQ,4BACR,MAAO,CACL,aAAc,uBACd,aAAc,EACd,iBAAkB,CAAC,EAAG,EAAE,AAC1B,CACF,EACA,CACE,GAAI,mCACJ,KAAM,SACN,OAAQ,4BACR,MAAO,CACL,gBAAiB,EACjB,eAAgB,sBAClB,CACF,EACD,AACH,EAEM,EAA4B,CAChC,QAAS,EACT,QAAS,CACP,gBAAiB,AAAA,IACjB,iBAAkB,AAAA,IAClB,sBAAuB,AAAA,GACzB,EACA,OAAQ,AAAA,GACV,EAEA,SAAS,EAAY,CAAA,QAAE,CAAO,CAAuB,EACnD,IAAM,EAAc,AAAA,CAAA,EAAA,EAAA,sBAAqB,AAArB,EAAuB,AAAC,GAAU,EAAM,WAAW,EA6CvE,OA1CA,AAAA,EACE,AAAC,IACoB,MAAf,IAcJ,AAAA,EAAW,EAAK,mBAXgB,CAC9B,KAAM,oBACN,SAAU,CACR,CACE,KAAM,UACN,SAAU,EACV,WAAY,CAAE,GAAI,aAAc,CAClC,EACD,AACH,GAGA,AAAA,EAAW,EAAK,wBAAyB,CACvC,KAAM,oBACN,SAAU,EAAY,WAAW,CAAC,GAAG,CAAC,AAAC,GAAW,CAAA,CAChD,KAAM,UACN,SAAU,CAAE,KAAM,QAAS,YAAa,CAAM,EAC9C,WAAY,CAAC,CACf,CAAA,EACF,GACF,EACA,CAAC,EAAY,EAcf,AAAA,EAAa,CAAE,OAXA,AAAA,EAAQ,KACrB,GAAI,AAAe,MAAf,GAAuB,GAAa,YAAY,OAAS,EAC3D,OAAO,KAET,IAAI,EAAS,IAAI,EACjB,IAAK,IAAI,KAAS,EAAY,WAAW,CACvC,EAAO,MAAM,CAAC,GAEhB,OAAO,CACT,EAAG,CAAC,EAAY,EAEO,QAAA,EAAS,YAAa,CAAA,CAAK,GAE3C,IACT,Q,K,oB","sources":["<anon>","packages/column-views/src/maps/column-correlation/core.ts"],"sourcesContent":["import \"./column-views.8e846c57.js\";\nimport \"./column-views.139b0855.js\";\nimport \"./column-views.41876859.js\";\nimport {useMapClickHandler as $8s7LP$useMapClickHandler, useMapStyleOperator as $8s7LP$useMapStyleOperator, useMapEaseTo as $8s7LP$useMapEaseTo} from \"@macrostrat/mapbox-react\";\nimport {LngLatBounds as $8s7LP$LngLatBounds} from \"mapbox-gl\";\nimport $8s7LP$macrostrathyper from \"@macrostrat/hyper\";\nimport {useMemo as $8s7LP$useMemo} from \"react\";\nimport {setGeoJSON as $8s7LP$setGeoJSON, buildGeoJSONSource as $8s7LP$buildGeoJSONSource} from \"@macrostrat/mapbox-utils\";\nimport {buildCrossSectionLayers as $8s7LP$buildCrossSectionLayers} from \"@macrostrat/map-styles\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $2e0f3abda6f981c3$exports = {};\n\n$parcel$export($2e0f3abda6f981c3$exports, \"ColumnCorrelationMap\", () => $2e0f3abda6f981c3$export$8e7d97509e84cc49);\n\n\n\n\n\n\nvar $gIQRH = parcelRequire(\"gIQRH\");\n\nvar $dETE9 = parcelRequire(\"dETE9\");\nvar $4pcLO = parcelRequire(\"4pcLO\");\n\nfunction $2e0f3abda6f981c3$export$8e7d97509e84cc49(props) {\n const { padding: padding = 50, children: children, columnColor: columnColor, ...rest } = props;\n const overlayStyles = (0, $8s7LP$useMemo)(()=>{\n return [\n (0, $dETE9.buildColumnsStyle)(columnColor),\n $2e0f3abda6f981c3$var$selectedColumnsStyle,\n $2e0f3abda6f981c3$var$lineOfSectionStyle\n ];\n }, [\n columnColor\n ]);\n return (0, $8s7LP$macrostrathyper)((0, $4pcLO.InsetMap), {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n overlayStyles: overlayStyles\n }, [\n (0, $8s7LP$macrostrathyper)($2e0f3abda6f981c3$var$ColumnsLayer),\n (0, $8s7LP$macrostrathyper)($2e0f3abda6f981c3$var$SelectedColumnsLayer),\n (0, $8s7LP$macrostrathyper)($2e0f3abda6f981c3$var$MapClickHandler),\n (0, $8s7LP$macrostrathyper)($2e0f3abda6f981c3$var$SectionLine, {\n padding: padding\n }),\n children\n ]);\n}\nfunction $2e0f3abda6f981c3$var$MapClickHandler() {\n const onClickMap = (0, $gIQRH.useCorrelationMapStore)((state)=>state.onClickMap);\n (0, $8s7LP$useMapClickHandler)((e)=>{\n onClickMap(e, {\n type: \"Point\",\n coordinates: e.lngLat.toArray()\n });\n }, [\n onClickMap\n ]);\n return null;\n}\nfunction $2e0f3abda6f981c3$var$SelectedColumnsLayer() {\n const focusedColumns = (0, $gIQRH.useCorrelationMapStore)((state)=>state.focusedColumns);\n (0, $8s7LP$useMapStyleOperator)((map)=>{\n let features = focusedColumns;\n const data = {\n type: \"FeatureCollection\",\n features: features\n };\n const columnCentroidLine = {\n type: \"Feature\",\n geometry: {\n type: \"LineString\",\n coordinates: features.map((col)=>col.properties.centroid.geometry.coordinates)\n },\n properties: {}\n };\n (0, $8s7LP$setGeoJSON)(map, \"selected-columns\", data);\n (0, $8s7LP$setGeoJSON)(map, \"selected-column-centroids\", {\n type: \"FeatureCollection\",\n features: [\n columnCentroidLine\n ]\n });\n }, [\n focusedColumns\n ]);\n return null;\n}\nfunction $2e0f3abda6f981c3$var$ColumnsLayer({ enabled: enabled = true }) {\n const columns = (0, $gIQRH.useCorrelationMapStore)((state)=>state.columns);\n (0, $8s7LP$useMapStyleOperator)((map)=>{\n if (columns == null) return;\n const data = {\n type: \"FeatureCollection\",\n features: columns\n };\n console.log(\" columns\", data);\n (0, $8s7LP$setGeoJSON)(map, \"columns\", data);\n }, [\n columns,\n enabled\n ]);\n return null;\n}\nconst $2e0f3abda6f981c3$var$selectedColumnsStyle = {\n version: 8,\n sources: {\n \"selected-columns\": (0, $8s7LP$buildGeoJSONSource)(),\n \"selected-column-centroids\": (0, $8s7LP$buildGeoJSONSource)()\n },\n layers: [\n {\n id: \"selected-columns-fill\",\n type: \"fill\",\n source: \"selected-columns\",\n paint: {\n \"fill-color\": \"rgba(255, 0, 0, 0.1)\"\n }\n },\n {\n id: \"selected-column-centroids-line\",\n type: \"line\",\n source: \"selected-column-centroids\",\n paint: {\n \"line-color\": \"rgba(255, 0, 0, 0.8)\",\n \"line-width\": 2,\n \"line-dasharray\": [\n 2,\n 2\n ]\n }\n },\n {\n id: \"selected-column-centroids-points\",\n type: \"circle\",\n source: \"selected-column-centroids\",\n paint: {\n \"circle-radius\": 4,\n \"circle-color\": \"rgba(255, 0, 0, 0.8)\"\n }\n }\n ]\n};\nconst $2e0f3abda6f981c3$var$lineOfSectionStyle = {\n version: 8,\n sources: {\n elevationMarker: (0, $8s7LP$buildGeoJSONSource)(),\n crossSectionLine: (0, $8s7LP$buildGeoJSONSource)(),\n crossSectionEndpoints: (0, $8s7LP$buildGeoJSONSource)()\n },\n layers: (0, $8s7LP$buildCrossSectionLayers)()\n};\nfunction $2e0f3abda6f981c3$var$SectionLine({ padding: padding }) {\n const focusedLine = (0, $gIQRH.useCorrelationMapStore)((state)=>state.focusedLine);\n // Setup focused line\n (0, $8s7LP$useMapStyleOperator)((map)=>{\n if (focusedLine == null) return;\n const data = {\n type: \"FeatureCollection\",\n features: [\n {\n type: \"Feature\",\n geometry: focusedLine,\n properties: {\n id: \"focusedLine\"\n }\n }\n ]\n };\n (0, $8s7LP$setGeoJSON)(map, \"crossSectionLine\", data);\n (0, $8s7LP$setGeoJSON)(map, \"crossSectionEndpoints\", {\n type: \"FeatureCollection\",\n features: focusedLine.coordinates.map((coord)=>({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: coord\n },\n properties: {}\n }))\n });\n }, [\n focusedLine\n ]);\n const bounds = (0, $8s7LP$useMemo)(()=>{\n if (focusedLine == null || focusedLine?.coordinates.length < 2) return null;\n let bounds = new (0, $8s7LP$LngLatBounds)();\n for (let coord of focusedLine.coordinates)bounds.extend(coord);\n return bounds;\n }, [\n focusedLine\n ]);\n (0, $8s7LP$useMapEaseTo)({\n bounds: bounds,\n padding: padding,\n trackResize: true\n });\n return null;\n}\n\n\nexport {$2e0f3abda6f981c3$export$8e7d97509e84cc49 as ColumnCorrelationMap};\n//# sourceMappingURL=column-views.d818b387.js.map\n","import {\n useMapClickHandler,\n useMapEaseTo,\n useMapStyleOperator,\n} from \"@macrostrat/mapbox-react\";\nimport { LngLatBounds, Style } from \"mapbox-gl\";\nimport h from \"@macrostrat/hyper\";\nimport { Feature, FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo } from \"react\";\nimport { setGeoJSON, buildGeoJSONSource } from \"@macrostrat/mapbox-utils\";\n\nimport { useCorrelationMapStore } from \"./state\";\nimport { buildColumnsStyle, InsetMap, InsetMapProps } from \"../_shared\";\nimport { buildCrossSectionLayers } from \"@macrostrat/map-styles\";\n\nexport interface CorrelationMapProps extends InsetMapProps {\n padding?: number;\n children?: ReactNode;\n accessToken?: string;\n columnColor?: string;\n}\n\nexport function ColumnCorrelationMap(props: CorrelationMapProps) {\n const { padding = 50, children, columnColor, ...rest } = props;\n\n const overlayStyles: Partial<Style>[] = useMemo(() => {\n return [\n buildColumnsStyle(columnColor) as Style,\n selectedColumnsStyle as Style,\n lineOfSectionStyle as Style,\n ];\n }, [columnColor]);\n\n return h(\n InsetMap,\n {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n overlayStyles,\n },\n [\n h(ColumnsLayer),\n h(SelectedColumnsLayer),\n h(MapClickHandler),\n h(SectionLine, { padding }),\n children,\n ],\n );\n}\n\nfunction MapClickHandler() {\n const onClickMap = useCorrelationMapStore((state) => state.onClickMap);\n\n useMapClickHandler(\n (e) => {\n onClickMap(e, { type: \"Point\", coordinates: e.lngLat.toArray() });\n },\n [onClickMap],\n );\n\n return null;\n}\n\nfunction SelectedColumnsLayer() {\n const focusedColumns = useCorrelationMapStore(\n (state) => state.focusedColumns,\n );\n\n useMapStyleOperator(\n (map) => {\n let features = focusedColumns;\n\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features,\n };\n\n const columnCentroidLine: Feature = {\n type: \"Feature\",\n geometry: {\n type: \"LineString\",\n coordinates: features.map(\n (col) => col.properties.centroid.geometry.coordinates,\n ),\n },\n properties: {},\n };\n\n setGeoJSON(map, \"selected-columns\", data);\n setGeoJSON(map, \"selected-column-centroids\", {\n type: \"FeatureCollection\",\n features: [columnCentroidLine],\n });\n },\n [focusedColumns],\n );\n return null;\n}\n\nfunction ColumnsLayer({ enabled = true }) {\n const columns = useCorrelationMapStore((state) => state.columns);\n\n useMapStyleOperator(\n (map) => {\n if (columns == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: columns,\n };\n\n console.log(\" columns\", data);\n setGeoJSON(map, \"columns\", data);\n },\n [columns, enabled],\n );\n return null;\n}\n\nconst selectedColumnsStyle: Style = {\n version: 8,\n sources: {\n \"selected-columns\": buildGeoJSONSource(),\n \"selected-column-centroids\": buildGeoJSONSource(),\n },\n layers: [\n {\n id: \"selected-columns-fill\",\n type: \"fill\",\n source: \"selected-columns\",\n paint: {\n \"fill-color\": \"rgba(255, 0, 0, 0.1)\",\n },\n },\n {\n id: \"selected-column-centroids-line\",\n type: \"line\",\n source: \"selected-column-centroids\",\n paint: {\n \"line-color\": \"rgba(255, 0, 0, 0.8)\",\n \"line-width\": 2,\n \"line-dasharray\": [2, 2],\n },\n },\n {\n id: \"selected-column-centroids-points\",\n type: \"circle\",\n source: \"selected-column-centroids\",\n paint: {\n \"circle-radius\": 4,\n \"circle-color\": \"rgba(255, 0, 0, 0.8)\",\n },\n },\n ],\n};\n\nconst lineOfSectionStyle: Style = {\n version: 8,\n sources: {\n elevationMarker: buildGeoJSONSource(),\n crossSectionLine: buildGeoJSONSource(),\n crossSectionEndpoints: buildGeoJSONSource(),\n },\n layers: buildCrossSectionLayers(),\n};\n\nfunction SectionLine({ padding }: { padding: number }) {\n const focusedLine = useCorrelationMapStore((state) => state.focusedLine);\n\n // Setup focused line\n useMapStyleOperator(\n (map) => {\n if (focusedLine == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: [\n {\n type: \"Feature\",\n geometry: focusedLine,\n properties: { id: \"focusedLine\" },\n },\n ],\n };\n\n setGeoJSON(map, \"crossSectionLine\", data);\n setGeoJSON(map, \"crossSectionEndpoints\", {\n type: \"FeatureCollection\",\n features: focusedLine.coordinates.map((coord) => ({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: coord },\n properties: {},\n })),\n });\n },\n [focusedLine],\n );\n\n const bounds = useMemo(() => {\n if (focusedLine == null || focusedLine?.coordinates.length < 2) {\n return null;\n }\n let bounds = new LngLatBounds();\n for (let coord of focusedLine.coordinates) {\n bounds.extend(coord);\n }\n return bounds;\n }, [focusedLine]);\n\n useMapEaseTo({ bounds, padding, trackResize: true });\n\n return null;\n}\n"],"names":["useMapClickHandler","$8s7LP$useMapClickHandler","useMapStyleOperator","$8s7LP$useMapStyleOperator","useMapEaseTo","$8s7LP$useMapEaseTo","LngLatBounds","$8s7LP$LngLatBounds","$8s7LP$macrostrathyper","useMemo","$8s7LP$useMemo","setGeoJSON","$8s7LP$setGeoJSON","buildGeoJSONSource","$8s7LP$buildGeoJSONSource","buildCrossSectionLayers","$8s7LP$buildCrossSectionLayers","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","Object","defineProperty","get","$2e0f3abda6f981c3$export$8e7d97509e84cc49","set","s","enumerable","configurable","$gIQRH","$dETE9","$4pcLO","props","padding","children","columnColor","rest","overlayStyles","buildColumnsStyle","$2e0f3abda6f981c3$var$selectedColumnsStyle","$2e0f3abda6f981c3$var$lineOfSectionStyle","InsetMap","boxZoom","dragRotate","$2e0f3abda6f981c3$var$ColumnsLayer","$2e0f3abda6f981c3$var$SelectedColumnsLayer","$2e0f3abda6f981c3$var$MapClickHandler","$2e0f3abda6f981c3$var$SectionLine","onClickMap","useCorrelationMapStore","state","e","type","coordinates","lngLat","toArray","focusedColumns","map","columnCentroidLine","geometry","features","col","properties","centroid","enabled","columns","data","console","log","version","sources","layers","source","paint","elevationMarker","crossSectionLine","crossSectionEndpoints","focusedLine","coord","bounds","length","extend","trackResize","ColumnCorrelationMap"],"version":3,"file":"column-views.d818b387.js.map","sourceRoot":"../../../../"}
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,Q,sB,C,C,uB,C,C,gB,C,K,0B,A,Q,gB,C,K,W,A,Q,M,mB,A,Q,W,C,K,O,A,Q,c,C,C,sB,C,K,0B,A,Q,2B,C,K,wB,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,O,c,C,C,E,uB,C,I,I,E,I,K,E,W,C,E,a,C,C,G,I,E,E,S,E,E,S,E,E,SCsBO,SAAS,EAAqB,CAA0B,EAC7D,GAAM,CAAA,QAAE,EAAU,EAAA,CAAA,SAAI,CAAQ,CAAA,YAAE,CAAW,CAAE,GAAG,EAAM,CAAG,EAEnD,EAAkC,AAAA,EAAQ,IACvC,CACL,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,GAClB,EACA,EACD,CACA,CAAC,EAAY,EAEhB,OAAO,AAAA,EACL,EAAA,QAAO,CACP,CACE,GAAG,CAAI,CACP,QAAS,CAAA,EACT,WAAY,CAAA,EACZ,cAAA,CACF,EACA,CACE,AAAA,EAAE,GACF,AAAA,EAAE,GACF,AAAA,EAAE,GACF,AAAA,EAAE,EAAa,CAAE,QAAA,CAAQ,GACzB,EACD,CAEL,CAEA,SAAS,IACP,IAAM,EAAa,AAAA,CAAA,EAAA,EAAA,sBAAqB,AAArB,EAAuB,AAAC,GAAU,EAAM,UAAU,EASrE,OAPA,AAAA,EACE,AAAC,IACC,EAAW,EAAG,CAAE,KAAM,QAAS,YAAa,EAAE,MAAM,CAAC,OAAO,EAAG,EACjE,EACA,CAAC,EAAW,EAGP,IACT,CAEA,SAAS,IACP,IAAM,EAAiB,AAAA,CAAA,EAAA,EAAA,sBAAqB,AAArB,EACrB,AAAC,GAAU,EAAM,cAAc,EA+BjC,OA5BA,AAAA,EACE,AAAC,IAQC,IAAM,EAA8B,CAClC,KAAM,UACN,SAAU,CACR,KAAM,aACN,YAAa,AAXF,EAWW,GAAG,CACvB,AAAC,GAAQ,EAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAEzD,EACA,WAAY,CAAC,CACf,EAEA,AAAA,EAAW,EAAK,mBAhBgB,CAC9B,KAAM,oBACN,SAJa,CAKf,GAcA,AAAA,EAAW,EAAK,4BAA6B,CAC3C,KAAM,oBACN,SAAU,CAAC,EAAmB,AAChC,EACF,EACA,CAAC,EAAe,EAEX,IACT,CAEA,SAAS,EAAa,CAAA,QAAE,EAAU,CAAA,CAAA,CAAM,EACtC,IAAM,EAAU,AAAA,CAAA,EAAA,EAAA,sBAAqB,AAArB,EAAuB,AAAC,GAAU,EAAM,OAAO,EAiB/D,OAfA,AAAA,EACE,AAAC,IACC,GAAI,AAAW,MAAX,EACF,OAEF,IAAM,EAA0B,CAC9B,KAAM,oBACN,SAAU,CACZ,EAEA,QAAQ,GAAG,CAAC,WAAY,GACxB,AAAA,EAAW,EAAK,UAAW,EAC7B,EACA,CAAC,EAAS,EAAQ,EAEb,IACT,CAEA,IAAM,EAA8B,CAClC,QAAS,EACT,QAAS,CACP,mBAAoB,AAAA,IACpB,4BAA6B,AAAA,GAC/B,EACA,OAAQ,CACN,CACE,GAAI,wBACJ,KAAM,OACN,OAAQ,mBACR,MAAO,CACL,aAAc,sBAChB,CACF,EACA,CACE,GAAI,iCACJ,KAAM,OACN,OAAQ,4BACR,MAAO,CACL,aAAc,uBACd,aAAc,EACd,iBAAkB,CAAC,EAAG,EAAE,AAC1B,CACF,EACA,CACE,GAAI,mCACJ,KAAM,SACN,OAAQ,4BACR,MAAO,CACL,gBAAiB,EACjB,eAAgB,sBAClB,CACF,EACD,AACH,EAEM,EAA4B,CAChC,QAAS,EACT,QAAS,CACP,gBAAiB,AAAA,IACjB,iBAAkB,AAAA,IAClB,sBAAuB,AAAA,GACzB,EACA,OAAQ,AAAA,GACV,EAEA,SAAS,EAAY,CAAA,QAAE,CAAO,CAAuB,EACnD,IAAM,EAAc,AAAA,CAAA,EAAA,EAAA,sBAAqB,AAArB,EAAuB,AAAC,GAAU,EAAM,WAAW,EA6CvE,OA1CA,AAAA,EACE,AAAC,IACoB,MAAf,IAcJ,AAAA,EAAW,EAAK,mBAXgB,CAC9B,KAAM,oBACN,SAAU,CACR,CACE,KAAM,UACN,SAAU,EACV,WAAY,CAAE,GAAI,aAAc,CAClC,EACD,AACH,GAGA,AAAA,EAAW,EAAK,wBAAyB,CACvC,KAAM,oBACN,SAAU,EAAY,WAAW,CAAC,GAAG,CAAC,AAAC,GAAW,CAAA,CAChD,KAAM,UACN,SAAU,CAAE,KAAM,QAAS,YAAa,CAAM,EAC9C,WAAY,CAAC,CACf,CAAA,EACF,GACF,EACA,CAAC,EAAY,EAcf,AAAA,EAAa,CAAE,OAXA,AAAA,EAAQ,KACrB,GAAI,AAAe,MAAf,GAAuB,GAAa,YAAY,OAAS,EAC3D,OAAO,KAET,IAAI,EAAS,IAAI,EACjB,IAAK,IAAI,KAAS,EAAY,WAAW,CACvC,EAAO,MAAM,CAAC,GAEhB,OAAO,CACT,EAAG,CAAC,EAAY,EAEO,QAAA,EAAS,YAAa,CAAA,CAAK,GAE3C,IACT,Q,K,oB","sources":["<anon>","packages/column-views/src/maps/column-correlation/core.ts"],"sourcesContent":["import \"./column-views.7714173b.js\";\nimport \"./column-views.139b0855.js\";\nimport \"./column-views.41876859.js\";\nimport {useMapClickHandler as $8s7LP$useMapClickHandler, useMapStyleOperator as $8s7LP$useMapStyleOperator, useMapEaseTo as $8s7LP$useMapEaseTo} from \"@macrostrat/mapbox-react\";\nimport {LngLatBounds as $8s7LP$LngLatBounds} from \"mapbox-gl\";\nimport $8s7LP$macrostrathyper from \"@macrostrat/hyper\";\nimport {useMemo as $8s7LP$useMemo} from \"react\";\nimport {setGeoJSON as $8s7LP$setGeoJSON, buildGeoJSONSource as $8s7LP$buildGeoJSONSource} from \"@macrostrat/mapbox-utils\";\nimport {buildCrossSectionLayers as $8s7LP$buildCrossSectionLayers} from \"@macrostrat/map-styles\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $2e0f3abda6f981c3$exports = {};\n\n$parcel$export($2e0f3abda6f981c3$exports, \"ColumnCorrelationMap\", () => $2e0f3abda6f981c3$export$8e7d97509e84cc49);\n\n\n\n\n\n\nvar $gIQRH = parcelRequire(\"gIQRH\");\n\nvar $dETE9 = parcelRequire(\"dETE9\");\nvar $4pcLO = parcelRequire(\"4pcLO\");\n\nfunction $2e0f3abda6f981c3$export$8e7d97509e84cc49(props) {\n const { padding: padding = 50, children: children, columnColor: columnColor, ...rest } = props;\n const overlayStyles = (0, $8s7LP$useMemo)(()=>{\n return [\n (0, $dETE9.buildColumnsStyle)(columnColor),\n $2e0f3abda6f981c3$var$selectedColumnsStyle,\n $2e0f3abda6f981c3$var$lineOfSectionStyle\n ];\n }, [\n columnColor\n ]);\n return (0, $8s7LP$macrostrathyper)((0, $4pcLO.InsetMap), {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n overlayStyles: overlayStyles\n }, [\n (0, $8s7LP$macrostrathyper)($2e0f3abda6f981c3$var$ColumnsLayer),\n (0, $8s7LP$macrostrathyper)($2e0f3abda6f981c3$var$SelectedColumnsLayer),\n (0, $8s7LP$macrostrathyper)($2e0f3abda6f981c3$var$MapClickHandler),\n (0, $8s7LP$macrostrathyper)($2e0f3abda6f981c3$var$SectionLine, {\n padding: padding\n }),\n children\n ]);\n}\nfunction $2e0f3abda6f981c3$var$MapClickHandler() {\n const onClickMap = (0, $gIQRH.useCorrelationMapStore)((state)=>state.onClickMap);\n (0, $8s7LP$useMapClickHandler)((e)=>{\n onClickMap(e, {\n type: \"Point\",\n coordinates: e.lngLat.toArray()\n });\n }, [\n onClickMap\n ]);\n return null;\n}\nfunction $2e0f3abda6f981c3$var$SelectedColumnsLayer() {\n const focusedColumns = (0, $gIQRH.useCorrelationMapStore)((state)=>state.focusedColumns);\n (0, $8s7LP$useMapStyleOperator)((map)=>{\n let features = focusedColumns;\n const data = {\n type: \"FeatureCollection\",\n features: features\n };\n const columnCentroidLine = {\n type: \"Feature\",\n geometry: {\n type: \"LineString\",\n coordinates: features.map((col)=>col.properties.centroid.geometry.coordinates)\n },\n properties: {}\n };\n (0, $8s7LP$setGeoJSON)(map, \"selected-columns\", data);\n (0, $8s7LP$setGeoJSON)(map, \"selected-column-centroids\", {\n type: \"FeatureCollection\",\n features: [\n columnCentroidLine\n ]\n });\n }, [\n focusedColumns\n ]);\n return null;\n}\nfunction $2e0f3abda6f981c3$var$ColumnsLayer({ enabled: enabled = true }) {\n const columns = (0, $gIQRH.useCorrelationMapStore)((state)=>state.columns);\n (0, $8s7LP$useMapStyleOperator)((map)=>{\n if (columns == null) return;\n const data = {\n type: \"FeatureCollection\",\n features: columns\n };\n console.log(\" columns\", data);\n (0, $8s7LP$setGeoJSON)(map, \"columns\", data);\n }, [\n columns,\n enabled\n ]);\n return null;\n}\nconst $2e0f3abda6f981c3$var$selectedColumnsStyle = {\n version: 8,\n sources: {\n \"selected-columns\": (0, $8s7LP$buildGeoJSONSource)(),\n \"selected-column-centroids\": (0, $8s7LP$buildGeoJSONSource)()\n },\n layers: [\n {\n id: \"selected-columns-fill\",\n type: \"fill\",\n source: \"selected-columns\",\n paint: {\n \"fill-color\": \"rgba(255, 0, 0, 0.1)\"\n }\n },\n {\n id: \"selected-column-centroids-line\",\n type: \"line\",\n source: \"selected-column-centroids\",\n paint: {\n \"line-color\": \"rgba(255, 0, 0, 0.8)\",\n \"line-width\": 2,\n \"line-dasharray\": [\n 2,\n 2\n ]\n }\n },\n {\n id: \"selected-column-centroids-points\",\n type: \"circle\",\n source: \"selected-column-centroids\",\n paint: {\n \"circle-radius\": 4,\n \"circle-color\": \"rgba(255, 0, 0, 0.8)\"\n }\n }\n ]\n};\nconst $2e0f3abda6f981c3$var$lineOfSectionStyle = {\n version: 8,\n sources: {\n elevationMarker: (0, $8s7LP$buildGeoJSONSource)(),\n crossSectionLine: (0, $8s7LP$buildGeoJSONSource)(),\n crossSectionEndpoints: (0, $8s7LP$buildGeoJSONSource)()\n },\n layers: (0, $8s7LP$buildCrossSectionLayers)()\n};\nfunction $2e0f3abda6f981c3$var$SectionLine({ padding: padding }) {\n const focusedLine = (0, $gIQRH.useCorrelationMapStore)((state)=>state.focusedLine);\n // Setup focused line\n (0, $8s7LP$useMapStyleOperator)((map)=>{\n if (focusedLine == null) return;\n const data = {\n type: \"FeatureCollection\",\n features: [\n {\n type: \"Feature\",\n geometry: focusedLine,\n properties: {\n id: \"focusedLine\"\n }\n }\n ]\n };\n (0, $8s7LP$setGeoJSON)(map, \"crossSectionLine\", data);\n (0, $8s7LP$setGeoJSON)(map, \"crossSectionEndpoints\", {\n type: \"FeatureCollection\",\n features: focusedLine.coordinates.map((coord)=>({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: coord\n },\n properties: {}\n }))\n });\n }, [\n focusedLine\n ]);\n const bounds = (0, $8s7LP$useMemo)(()=>{\n if (focusedLine == null || focusedLine?.coordinates.length < 2) return null;\n let bounds = new (0, $8s7LP$LngLatBounds)();\n for (let coord of focusedLine.coordinates)bounds.extend(coord);\n return bounds;\n }, [\n focusedLine\n ]);\n (0, $8s7LP$useMapEaseTo)({\n bounds: bounds,\n padding: padding,\n trackResize: true\n });\n return null;\n}\n\n\nexport {$2e0f3abda6f981c3$export$8e7d97509e84cc49 as ColumnCorrelationMap};\n//# sourceMappingURL=column-views.68fe4814.js.map\n","import {\n useMapClickHandler,\n useMapEaseTo,\n useMapStyleOperator,\n} from \"@macrostrat/mapbox-react\";\nimport { LngLatBounds, Style } from \"mapbox-gl\";\nimport h from \"@macrostrat/hyper\";\nimport { Feature, FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo } from \"react\";\nimport { setGeoJSON, buildGeoJSONSource } from \"@macrostrat/mapbox-utils\";\n\nimport { useCorrelationMapStore } from \"./state\";\nimport { buildColumnsStyle, InsetMap, InsetMapProps } from \"../_shared\";\nimport { buildCrossSectionLayers } from \"@macrostrat/map-styles\";\n\nexport interface CorrelationMapProps extends InsetMapProps {\n padding?: number;\n children?: ReactNode;\n accessToken?: string;\n columnColor?: string;\n}\n\nexport function ColumnCorrelationMap(props: CorrelationMapProps) {\n const { padding = 50, children, columnColor, ...rest } = props;\n\n const overlayStyles: Partial<Style>[] = useMemo(() => {\n return [\n buildColumnsStyle(columnColor) as Style,\n selectedColumnsStyle as Style,\n lineOfSectionStyle as Style,\n ];\n }, [columnColor]);\n\n return h(\n InsetMap,\n {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n overlayStyles,\n },\n [\n h(ColumnsLayer),\n h(SelectedColumnsLayer),\n h(MapClickHandler),\n h(SectionLine, { padding }),\n children,\n ],\n );\n}\n\nfunction MapClickHandler() {\n const onClickMap = useCorrelationMapStore((state) => state.onClickMap);\n\n useMapClickHandler(\n (e) => {\n onClickMap(e, { type: \"Point\", coordinates: e.lngLat.toArray() });\n },\n [onClickMap],\n );\n\n return null;\n}\n\nfunction SelectedColumnsLayer() {\n const focusedColumns = useCorrelationMapStore(\n (state) => state.focusedColumns,\n );\n\n useMapStyleOperator(\n (map) => {\n let features = focusedColumns;\n\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features,\n };\n\n const columnCentroidLine: Feature = {\n type: \"Feature\",\n geometry: {\n type: \"LineString\",\n coordinates: features.map(\n (col) => col.properties.centroid.geometry.coordinates,\n ),\n },\n properties: {},\n };\n\n setGeoJSON(map, \"selected-columns\", data);\n setGeoJSON(map, \"selected-column-centroids\", {\n type: \"FeatureCollection\",\n features: [columnCentroidLine],\n });\n },\n [focusedColumns],\n );\n return null;\n}\n\nfunction ColumnsLayer({ enabled = true }) {\n const columns = useCorrelationMapStore((state) => state.columns);\n\n useMapStyleOperator(\n (map) => {\n if (columns == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: columns,\n };\n\n console.log(\" columns\", data);\n setGeoJSON(map, \"columns\", data);\n },\n [columns, enabled],\n );\n return null;\n}\n\nconst selectedColumnsStyle: Style = {\n version: 8,\n sources: {\n \"selected-columns\": buildGeoJSONSource(),\n \"selected-column-centroids\": buildGeoJSONSource(),\n },\n layers: [\n {\n id: \"selected-columns-fill\",\n type: \"fill\",\n source: \"selected-columns\",\n paint: {\n \"fill-color\": \"rgba(255, 0, 0, 0.1)\",\n },\n },\n {\n id: \"selected-column-centroids-line\",\n type: \"line\",\n source: \"selected-column-centroids\",\n paint: {\n \"line-color\": \"rgba(255, 0, 0, 0.8)\",\n \"line-width\": 2,\n \"line-dasharray\": [2, 2],\n },\n },\n {\n id: \"selected-column-centroids-points\",\n type: \"circle\",\n source: \"selected-column-centroids\",\n paint: {\n \"circle-radius\": 4,\n \"circle-color\": \"rgba(255, 0, 0, 0.8)\",\n },\n },\n ],\n};\n\nconst lineOfSectionStyle: Style = {\n version: 8,\n sources: {\n elevationMarker: buildGeoJSONSource(),\n crossSectionLine: buildGeoJSONSource(),\n crossSectionEndpoints: buildGeoJSONSource(),\n },\n layers: buildCrossSectionLayers(),\n};\n\nfunction SectionLine({ padding }: { padding: number }) {\n const focusedLine = useCorrelationMapStore((state) => state.focusedLine);\n\n // Setup focused line\n useMapStyleOperator(\n (map) => {\n if (focusedLine == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: [\n {\n type: \"Feature\",\n geometry: focusedLine,\n properties: { id: \"focusedLine\" },\n },\n ],\n };\n\n setGeoJSON(map, \"crossSectionLine\", data);\n setGeoJSON(map, \"crossSectionEndpoints\", {\n type: \"FeatureCollection\",\n features: focusedLine.coordinates.map((coord) => ({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: coord },\n properties: {},\n })),\n });\n },\n [focusedLine],\n );\n\n const bounds = useMemo(() => {\n if (focusedLine == null || focusedLine?.coordinates.length < 2) {\n return null;\n }\n let bounds = new LngLatBounds();\n for (let coord of focusedLine.coordinates) {\n bounds.extend(coord);\n }\n return bounds;\n }, [focusedLine]);\n\n useMapEaseTo({ bounds, padding, trackResize: true });\n\n return null;\n}\n"],"names":["useMapClickHandler","$8s7LP$useMapClickHandler","useMapStyleOperator","$8s7LP$useMapStyleOperator","useMapEaseTo","$8s7LP$useMapEaseTo","LngLatBounds","$8s7LP$LngLatBounds","$8s7LP$macrostrathyper","useMemo","$8s7LP$useMemo","setGeoJSON","$8s7LP$setGeoJSON","buildGeoJSONSource","$8s7LP$buildGeoJSONSource","buildCrossSectionLayers","$8s7LP$buildCrossSectionLayers","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","Object","defineProperty","get","$2e0f3abda6f981c3$export$8e7d97509e84cc49","set","s","enumerable","configurable","$gIQRH","$dETE9","$4pcLO","props","padding","children","columnColor","rest","overlayStyles","buildColumnsStyle","$2e0f3abda6f981c3$var$selectedColumnsStyle","$2e0f3abda6f981c3$var$lineOfSectionStyle","InsetMap","boxZoom","dragRotate","$2e0f3abda6f981c3$var$ColumnsLayer","$2e0f3abda6f981c3$var$SelectedColumnsLayer","$2e0f3abda6f981c3$var$MapClickHandler","$2e0f3abda6f981c3$var$SectionLine","onClickMap","useCorrelationMapStore","state","e","type","coordinates","lngLat","toArray","focusedColumns","map","columnCentroidLine","geometry","features","col","properties","centroid","enabled","columns","data","console","log","version","sources","layers","source","paint","elevationMarker","crossSectionLine","crossSectionEndpoints","focusedLine","coord","bounds","length","extend","trackResize","ColumnCorrelationMap"],"version":3,"file":"column-views.68fe4814.js.map","sourceRoot":"../../../../"}
|