@macrostrat/column-views 2.2.1 → 2.2.2
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 +8 -0
- package/dist/esm/{column-views.df34441c.js → column-views.058c0083.js} +5 -5
- package/dist/esm/{column-views.df34441c.js.map → column-views.058c0083.js.map} +1 -1
- package/dist/esm/{column-views.2e854496.js → column-views.11ae78f7.js} +3 -3
- package/dist/esm/{column-views.2e854496.js.map → column-views.11ae78f7.js.map} +1 -1
- package/dist/esm/{column-views.faacfc3c.js → column-views.1e579112.js} +3 -3
- package/dist/esm/{column-views.faacfc3c.js.map → column-views.1e579112.js.map} +1 -1
- package/dist/esm/{column-views.8284c3a9.js → column-views.218e8f5d.js} +5 -5
- package/dist/esm/{column-views.8284c3a9.js.map → column-views.218e8f5d.js.map} +1 -1
- package/dist/esm/{column-views.bbc77227.js → column-views.30950997.js} +2 -2
- package/dist/esm/{column-views.bbc77227.js.map → column-views.30950997.js.map} +1 -1
- package/dist/esm/{column-views.f0b0fc56.js → column-views.35efe006.js} +2 -2
- package/dist/esm/{column-views.f0b0fc56.js.map → column-views.35efe006.js.map} +1 -1
- package/dist/esm/{column-views.418f948f.js → column-views.43beafa3.js} +6 -6
- package/dist/esm/{column-views.418f948f.js.map → column-views.43beafa3.js.map} +1 -1
- package/dist/esm/{column-views.b29f8718.js → column-views.44d3797a.js} +2 -2
- package/dist/esm/{column-views.b29f8718.js.map → column-views.44d3797a.js.map} +1 -1
- package/dist/esm/{column-views.29a551f6.js → column-views.52ad973a.js} +21 -15
- package/dist/esm/column-views.52ad973a.js.map +1 -0
- package/dist/esm/{column-views.60365cdb.js → column-views.5456a1ee.js} +2 -2
- package/dist/esm/{column-views.60365cdb.js.map → column-views.5456a1ee.js.map} +1 -1
- package/dist/esm/{column-views.81bddbee.js → column-views.66ccfc44.js} +3 -3
- package/dist/esm/{column-views.81bddbee.js.map → column-views.66ccfc44.js.map} +1 -1
- package/dist/esm/{column-views.469a4952.js → column-views.6ce8cb61.js} +3 -3
- package/dist/esm/{column-views.469a4952.js.map → column-views.6ce8cb61.js.map} +1 -1
- package/dist/esm/{column-views.413217dc.js → column-views.6d63971b.js} +2 -2
- package/dist/esm/{column-views.413217dc.js.map → column-views.6d63971b.js.map} +1 -1
- package/dist/esm/{column-views.e17f00d3.js → column-views.7243e77d.js} +2 -2
- package/dist/esm/{column-views.e17f00d3.js.map → column-views.7243e77d.js.map} +1 -1
- package/dist/esm/{column-views.382c486d.js → column-views.729a6728.js} +3 -3
- package/dist/esm/{column-views.382c486d.js.map → column-views.729a6728.js.map} +1 -1
- package/dist/esm/{column-views.7683bb52.js → column-views.75e5aebe.js} +5 -5
- package/dist/esm/{column-views.7683bb52.js.map → column-views.75e5aebe.js.map} +1 -1
- package/dist/esm/{column-views.748dce47.js → column-views.76a220c4.js} +2 -2
- package/dist/esm/{column-views.748dce47.js.map → column-views.76a220c4.js.map} +1 -1
- package/dist/esm/{column-views.b08d82e6.js → column-views.77e22590.js} +2 -2
- package/dist/esm/{column-views.b08d82e6.js.map → column-views.77e22590.js.map} +1 -1
- package/dist/esm/{column-views.0265cf7f.js → column-views.7b4a1f15.js} +15 -10
- package/dist/esm/column-views.7b4a1f15.js.map +1 -0
- package/dist/esm/{column-views.d86555b0.js → column-views.7c95c3d7.js} +2 -2
- package/dist/esm/{column-views.d86555b0.js.map → column-views.7c95c3d7.js.map} +1 -1
- package/dist/esm/{column-views.e1bc3cfa.js → column-views.7d69838d.js} +2 -2
- package/dist/esm/{column-views.e1bc3cfa.js.map → column-views.7d69838d.js.map} +1 -1
- package/dist/esm/{column-views.cae1a6a1.js → column-views.7faf00ed.js} +3 -3
- package/dist/esm/{column-views.cae1a6a1.js.map → column-views.7faf00ed.js.map} +1 -1
- package/dist/esm/{column-views.0ce9b697.js → column-views.817752b6.js} +3 -3
- package/dist/esm/{column-views.0ce9b697.js.map → column-views.817752b6.js.map} +1 -1
- package/dist/esm/{column-views.41e5f0dc.js → column-views.833c2b74.js} +2 -2
- package/dist/esm/{column-views.41e5f0dc.js.map → column-views.833c2b74.js.map} +1 -1
- package/dist/esm/{column-views.adec2e4c.js → column-views.9dd25b5b.js} +3 -3
- package/dist/esm/{column-views.adec2e4c.js.map → column-views.9dd25b5b.js.map} +1 -1
- package/dist/esm/{column-views.4ed90896.js → column-views.abf6aedd.js} +41 -10
- package/dist/esm/column-views.abf6aedd.js.map +1 -0
- package/dist/esm/{column-views.8b623b27.js → column-views.ad080c0e.js} +2 -2
- package/dist/esm/{column-views.8b623b27.js.map → column-views.ad080c0e.js.map} +1 -1
- package/dist/esm/{column-views.c3495702.js → column-views.aeb61926.js} +2 -2
- package/dist/esm/{column-views.c3495702.js.map → column-views.aeb61926.js.map} +1 -1
- package/dist/esm/{column-views.c2fbcba8.js → column-views.b0e6c0b3.js} +4 -4
- package/dist/esm/{column-views.c2fbcba8.js.map → column-views.b0e6c0b3.js.map} +1 -1
- package/dist/esm/{column-views.a3fabf0f.js → column-views.c44febd0.js} +9 -6
- package/dist/esm/column-views.c44febd0.js.map +1 -0
- package/dist/esm/column-views.cc733361.js.map +1 -1
- package/dist/esm/{column-views.787d7696.js → column-views.d2214a99.js} +3 -3
- package/dist/esm/{column-views.787d7696.js.map → column-views.d2214a99.js.map} +1 -1
- package/dist/esm/{column-views.abeab9aa.js → column-views.d6d6df77.js} +3 -3
- package/dist/esm/{column-views.abeab9aa.js.map → column-views.d6d6df77.js.map} +1 -1
- package/dist/esm/{column-views.e33ac5c9.css → column-views.e93478c3.css} +7 -2
- package/dist/esm/column-views.e93478c3.css.map +1 -0
- package/dist/esm/{column-views.53722d0a.js → column-views.ee525e88.js} +8 -8
- package/dist/esm/{column-views.53722d0a.js.map → column-views.ee525e88.js.map} +1 -1
- package/dist/esm/{column-views.2eceafb5.js → column-views.ef88c46c.js} +2 -2
- package/dist/esm/{column-views.2eceafb5.js.map → column-views.ef88c46c.js.map} +1 -1
- package/dist/esm/{column-views.2aef5df8.js → column-views.faa4e06d.js} +4 -4
- package/dist/esm/{column-views.2aef5df8.js.map → column-views.faa4e06d.js.map} +1 -1
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +10 -10
- package/dist/node/{column-views.6919fd2a.js → column-views.003348f6.js} +2 -2
- package/dist/node/{column-views.6919fd2a.js.map → column-views.003348f6.js.map} +1 -1
- package/dist/node/{column-views.a1e29a15.js → column-views.05cfc627.js} +2 -2
- package/dist/node/{column-views.a1e29a15.js.map → column-views.05cfc627.js.map} +1 -1
- package/dist/node/column-views.0beae29d.js +2 -0
- package/dist/node/column-views.0beae29d.js.map +1 -0
- package/dist/node/{column-views.54363c13.js → column-views.105c28fa.js} +2 -2
- package/dist/node/{column-views.54363c13.js.map → column-views.105c28fa.js.map} +1 -1
- package/dist/node/{column-views.45a03acc.js → column-views.1ac9e2ed.js} +2 -2
- package/dist/node/{column-views.45a03acc.js.map → column-views.1ac9e2ed.js.map} +1 -1
- package/dist/node/{column-views.abe0a664.js → column-views.1c567bfd.js} +2 -2
- package/dist/node/{column-views.abe0a664.js.map → column-views.1c567bfd.js.map} +1 -1
- package/dist/node/{column-views.93febe9b.js → column-views.21a73236.js} +2 -2
- package/dist/node/{column-views.93febe9b.js.map → column-views.21a73236.js.map} +1 -1
- package/dist/node/{column-views.6099a3a9.js → column-views.22c2d45b.js} +2 -2
- package/dist/node/{column-views.6099a3a9.js.map → column-views.22c2d45b.js.map} +1 -1
- package/dist/node/{column-views.0e7ac946.js → column-views.2901b649.js} +2 -2
- package/dist/node/{column-views.0e7ac946.js.map → column-views.2901b649.js.map} +1 -1
- package/dist/node/{column-views.29483479.js → column-views.2d00d842.js} +2 -2
- package/dist/node/{column-views.29483479.js.map → column-views.2d00d842.js.map} +1 -1
- package/dist/node/{column-views.f0f5cefd.js → column-views.38835c99.js} +2 -2
- package/dist/node/{column-views.f0f5cefd.js.map → column-views.38835c99.js.map} +1 -1
- package/dist/node/{column-views.57dd069c.js → column-views.3913cd0f.js} +2 -2
- package/dist/node/{column-views.57dd069c.js.map → column-views.3913cd0f.js.map} +1 -1
- package/dist/node/{column-views.f7d72702.js → column-views.39c21f22.js} +2 -2
- package/dist/node/{column-views.f7d72702.js.map → column-views.39c21f22.js.map} +1 -1
- package/dist/node/{column-views.588b02a1.js → column-views.420b60d2.js} +2 -2
- package/dist/node/{column-views.588b02a1.js.map → column-views.420b60d2.js.map} +1 -1
- package/dist/node/{column-views.ae9536b3.js → column-views.4ce5f5e4.js} +2 -2
- package/dist/node/{column-views.ae9536b3.js.map → column-views.4ce5f5e4.js.map} +1 -1
- package/dist/node/column-views.52cc4dd0.js +2 -0
- package/dist/node/column-views.52cc4dd0.js.map +1 -0
- package/dist/node/column-views.60b5663d.js +2 -0
- package/dist/node/column-views.60b5663d.js.map +1 -0
- package/dist/node/{column-views.554d44a7.js → column-views.61dc64bc.js} +2 -2
- package/dist/node/{column-views.554d44a7.js.map → column-views.61dc64bc.js.map} +1 -1
- package/dist/node/{column-views.4b4c214a.js → column-views.67fed1f5.js} +2 -2
- package/dist/node/{column-views.4b4c214a.js.map → column-views.67fed1f5.js.map} +1 -1
- package/dist/node/{column-views.fcdc74c4.js → column-views.7faaf6c8.js} +2 -2
- package/dist/node/{column-views.fcdc74c4.js.map → column-views.7faaf6c8.js.map} +1 -1
- package/dist/node/{column-views.07c503d3.js → column-views.a08b0c9f.js} +2 -2
- package/dist/node/column-views.a08b0c9f.js.map +1 -0
- package/dist/node/{column-views.f1ad131a.js → column-views.a19be00f.js} +2 -2
- package/dist/node/{column-views.f1ad131a.js.map → column-views.a19be00f.js.map} +1 -1
- package/dist/node/{column-views.ebe61439.js → column-views.a281d5bb.js} +2 -2
- package/dist/node/{column-views.ebe61439.js.map → column-views.a281d5bb.js.map} +1 -1
- package/dist/node/{column-views.19a84c01.js → column-views.a9576bac.js} +2 -2
- package/dist/node/{column-views.19a84c01.js.map → column-views.a9576bac.js.map} +1 -1
- package/dist/node/{column-views.6b8424fd.js → column-views.ae22e8b1.js} +2 -2
- package/dist/node/{column-views.6b8424fd.js.map → column-views.ae22e8b1.js.map} +1 -1
- package/dist/node/{column-views.ce5904a6.js → column-views.ae54d3e1.js} +2 -2
- package/dist/node/{column-views.ce5904a6.js.map → column-views.ae54d3e1.js.map} +1 -1
- package/dist/node/{column-views.44952ae6.js → column-views.b12f8c81.js} +2 -2
- package/dist/node/{column-views.44952ae6.js.map → column-views.b12f8c81.js.map} +1 -1
- package/dist/node/{column-views.db4ccacc.js → column-views.b6943236.js} +2 -2
- package/dist/node/{column-views.db4ccacc.js.map → column-views.b6943236.js.map} +1 -1
- package/dist/node/{column-views.32344397.js → column-views.bde2dfa8.js} +2 -2
- package/dist/node/{column-views.32344397.js.map → column-views.bde2dfa8.js.map} +1 -1
- package/dist/node/{column-views.d4545f9f.js → column-views.c3c15cc2.js} +2 -2
- package/dist/node/{column-views.d4545f9f.js.map → column-views.c3c15cc2.js.map} +1 -1
- package/dist/node/{column-views.108db52e.js → column-views.d08e4328.js} +2 -2
- package/dist/node/{column-views.108db52e.js.map → column-views.d08e4328.js.map} +1 -1
- package/dist/node/{column-views.0201566d.js → column-views.db47fe3c.js} +2 -2
- package/dist/node/{column-views.0201566d.js.map → column-views.db47fe3c.js.map} +1 -1
- package/dist/node/{column-views.e803e4ae.css → column-views.ddc6184e.css} +2 -2
- package/dist/node/column-views.ddc6184e.css.map +1 -0
- package/dist/node/column-views.e1813308.js +2 -0
- package/dist/node/column-views.e1813308.js.map +1 -0
- package/dist/node/{column-views.94c84716.js → column-views.f2ee436e.js} +2 -2
- package/dist/node/{column-views.94c84716.js.map → column-views.f2ee436e.js.map} +1 -1
- package/dist/node/{column-views.5a8bc8e3.js → column-views.f6ac1161.js} +2 -2
- package/dist/node/{column-views.5a8bc8e3.js.map → column-views.f6ac1161.js.map} +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +1 -1
- package/src/column.module.sass +7 -5
- package/src/column.ts +25 -6
- package/src/data-provider/store.ts +48 -5
- package/src/data-provider/unit-selection.ts +1 -0
- package/src/section.ts +9 -4
- package/src/unit-details/panel.ts +2 -1
- package/dist/esm/column-views.0265cf7f.js.map +0 -1
- package/dist/esm/column-views.29a551f6.js.map +0 -1
- package/dist/esm/column-views.4ed90896.js.map +0 -1
- package/dist/esm/column-views.a3fabf0f.js.map +0 -1
- package/dist/esm/column-views.e33ac5c9.css.map +0 -1
- package/dist/node/column-views.07c503d3.js.map +0 -1
- package/dist/node/column-views.18d54bbb.js +0 -2
- package/dist/node/column-views.18d54bbb.js.map +0 -1
- package/dist/node/column-views.1a3c399e.js +0 -2
- package/dist/node/column-views.1a3c399e.js.map +0 -1
- package/dist/node/column-views.312db572.js +0 -2
- package/dist/node/column-views.312db572.js.map +0 -1
- package/dist/node/column-views.92e29010.js +0 -2
- package/dist/node/column-views.92e29010.js.map +0 -1
- package/dist/node/column-views.e803e4ae.css.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,Q,Q,C,K,U,A,Q,iB,C,C,c,C,K,O,A,Q,M,mB,A,Q,uB,C,K,+B,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,E,SCWA,IAAM,EAAqB,SAAU,CAAI,EACvC,GAAM,CAAA,OAAE,CAAM,CAAA,MAAE,CAAK,CAAA,UAAE,CAAS,CAAE,GAAG,EAAM,CAAG,EAC9C,OAAO,SAAU,CAAC,CAAE,EAAI,CAAC,EACvB,IAAM,EAAS,EAAU,SACzB,AAAK,AATQ,CAAA,CAAC,EAAO,KACvB,IAAM,EAAS,EAAM,MAAM,GAC3B,OAAO,CAAM,CAAC,EAAE,CAAG,EAAM,CAAM,CAAC,EAAE,AACpC,CAAA,EAMkB,EAAO,GACd,CAAC,EAAO,EAAE,KAAK,EAAG,EAAM,GAAQ,CADF,IAEvC,CACF,EAEM,EAAsB,AAAA,EAAc,MAWpC,EAAmB,SAAU,CAAoB,EACrD,IAAM,EAAS,AAAA,EAAW,IAAsB,OAE1C,EAAQ,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,IAEV,CAAA,UAAE,CAAS,CAAA,OAAE,CAAM,CAAA,SAAE,CAAQ,CAAA,UAAE,CAAS,CAAA,MAAE,EAAQ,CAAA,CAAA,CAAO,CAAG,CAC5D,AAAa,OAAb,GACF,CAAA,EAAY,SAAU,CAAC,EAIrB,OAHI,AAAY,MAAZ,EAAE,MAAM,EACV,QAAQ,GAAG,CAAC,GAEP,EAAE,MAAM,AACjB,CAAA,EAIF,IAAM,EAAe,EAAmB,CACtC,OAAA,EACA,MAAA,EACA,UAAA,EACA,OAAA,EACA,UAAA,CACF,GAEI,EAAS,OAAS,CAClB,CAAA,GACF,CAAA,GAAU,OADZ,EAGA,IAAM,EAAc,AAAA,IACjB,CAAC,CAAC,AAAC,GAAM,EAAO,CAAC,CAAC,EAAO,GAEzB,CAAC,CAAC,AAAC,GAAM,EAAM,EAAE,MAAM,GAG1B,OAAO,AAAA,EAAE,EAAoB,QAAQ,CAAE,CAAE,MAD3B,CAAE,aAAA,EAAc,YAAA,EAAa,UAAA,EAAW,OAAA,EAAQ,MAAA,CAAM,CACrB,EAAG,AAAA,EAAE,SAAU,GAChE,EAEM,EAAmB,SAAU,CAAK,EACtC,GAAM,CAAA,aAAE,CAAY,CAAE,CAAG,AAAA,EAAW,GAC9B,CAAA,MAAE,CAAK,CAAA,YAAE,CAAW,CAAE,GAAG,EAAM,CAAG,EAClC,EAAM,EAAa,GACzB,GAAI,AAAO,MAAP,EAAa,OAAO,KACxB,GAAM,CAAC,EAAI,EAAG,CAAG,EAEjB,OAAO,AAAA,EAAE,SAAU,CACjB,IAAK,EAAM,SAAS,CACpB,GAAA,EACA,GAAA,EACA,EAAG,EACH,GAAG,CAAI,AACT,EACF,EAEM,EAAkB,SAAU,CAAK,EACrC,GAAM,CAAE,OAAQ,CAAU,CAAE,GAAG,EAAM,CAAG,EAClC,CAAA,YAAE,CAAW,CAAE,CAAG,AAAA,EAAW,GACnC,OAAO,AAAA,EAAE,OAAQ,CACf,EAAG,EAAY,GACf,KAAM,cACN,GAAG,CAAI,AACT,EACF,EAEM,EAAiB,IAAM,AAAA,EAAW,U,K,gB,C,K,gB,C,K,e,C,K,c","sources":["<anon>","packages/column-views/src/facets/carbon-isotopes/data-area.ts"],"sourcesContent":["import \"./column-views.92e29010.js\";\nimport {line as $5eSmp$line} from \"d3-shape\";\nimport {createContext as $5eSmp$createContext, useContext as $5eSmp$useContext} from \"react\";\nimport $5eSmp$macrostrathyper from \"@macrostrat/hyper\";\nimport {ColumnLayoutContext as $5eSmp$ColumnLayoutContext} from \"@macrostrat/column-components\";\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;\n\n\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nconst $561e9bb965350dc6$var$inDomain = (scale, num)=>{\n const domain = scale.domain();\n return domain[0] < num < domain[1];\n};\nconst $561e9bb965350dc6$var$createPointLocator = function(opts) {\n const { xScale: xScale, scale: scale, getHeight: getHeight, ...rest } = opts;\n return function(d, s = 0) {\n const height = getHeight(d);\n if (!$561e9bb965350dc6$var$inDomain(scale, height)) return null;\n return [\n xScale(d.value),\n scale(height)\n ];\n };\n};\nconst $561e9bb965350dc6$var$IsotopesDataContext = (0, $5eSmp$createContext)(null);\nconst $561e9bb965350dc6$export$309ef8546e07d921 = function(props) {\n const xScale = (0, $5eSmp$useContext)((0, $5eSmp$ColumnLayoutContext))?.xScale;\n const scale = (0, $wtIgl.useCompositeScale)();\n let { corrected: corrected, system: system, children: children, getHeight: getHeight, clipY: clipY = false } = props;\n if (getHeight == null) getHeight = function(d) {\n if (d.height == null) console.log(d);\n return d.height;\n };\n // Handlers for creating points and lines\n const pointLocator = $561e9bb965350dc6$var$createPointLocator({\n xScale: xScale,\n scale: scale,\n corrected: corrected,\n system: system,\n getHeight: getHeight\n });\n let column = \"avg_\" + system;\n if (corrected) column += \"_corr\";\n const lineLocator = (0, $5eSmp$line)().x((d)=>xScale(d[column]))// @ts-ignore\n .y((d)=>scale(d.height));\n const value = {\n pointLocator: pointLocator,\n lineLocator: lineLocator,\n corrected: corrected,\n system: system,\n clipY: clipY\n };\n return (0, $5eSmp$macrostrathyper)($561e9bb965350dc6$var$IsotopesDataContext.Provider, {\n value: value\n }, (0, $5eSmp$macrostrathyper)(\"g.data\", children));\n};\nconst $561e9bb965350dc6$export$4cb5d059db4e2bd = function(props) {\n const { pointLocator: pointLocator } = (0, $5eSmp$useContext)($561e9bb965350dc6$var$IsotopesDataContext);\n const { datum: datum, strokeWidth: strokeWidth, ...rest } = props;\n const loc = pointLocator(datum);\n if (loc == null) return null;\n const [cx, cy] = loc;\n return (0, $5eSmp$macrostrathyper)(\"circle\", {\n key: datum.sample_id,\n cx: cx,\n cy: cy,\n r: 2,\n ...rest\n });\n};\nconst $561e9bb965350dc6$export$628a3ef6eb9c3a89 = function(props) {\n const { values: lineValues, ...rest } = props;\n const { lineLocator: lineLocator } = (0, $5eSmp$useContext)($561e9bb965350dc6$var$IsotopesDataContext);\n return (0, $5eSmp$macrostrathyper)(\"path\", {\n d: lineLocator(lineValues),\n fill: \"transparent\",\n ...rest\n });\n};\nconst $561e9bb965350dc6$export$919dbb10b6b5b75 = ()=>(0, $5eSmp$useContext)($561e9bb965350dc6$var$IsotopesDataContext);\n\n\nexport {$561e9bb965350dc6$export$309ef8546e07d921 as IsotopesDataArea, $561e9bb965350dc6$export$4cb5d059db4e2bd as IsotopeDataPoint, $561e9bb965350dc6$export$628a3ef6eb9c3a89 as IsotopeDataLine, $561e9bb965350dc6$export$919dbb10b6b5b75 as useDataLocator};\n//# sourceMappingURL=column-views.ae9536b3.js.map\n","import { line } from \"d3-shape\";\nimport { createContext, useContext } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { ColumnLayoutContext } from \"@macrostrat/column-components\";\nimport { useCompositeScale } from \"../../data-provider\";\n\nconst inDomain = (scale, num) => {\n const domain = scale.domain();\n return domain[0] < num < domain[1];\n};\n\nconst createPointLocator = function (opts) {\n const { xScale, scale, getHeight, ...rest } = opts;\n return function (d, s = 0) {\n const height = getHeight(d);\n if (!inDomain(scale, height)) return null;\n return [xScale(d.value), scale(height)];\n };\n};\n\nconst IsotopesDataContext = createContext(null);\n\nexport interface DataAreaProps {\n clipY: boolean;\n parameter: string;\n corrected: boolean;\n system: string;\n children: React.ReactNode;\n getHeight?: Function;\n}\n\nconst IsotopesDataArea = function (props: DataAreaProps) {\n const xScale = useContext(ColumnLayoutContext)?.xScale;\n\n const scale = useCompositeScale();\n\n let { corrected, system, children, getHeight, clipY = false } = props;\n if (getHeight == null) {\n getHeight = function (d) {\n if (d.height == null) {\n console.log(d);\n }\n return d.height;\n };\n }\n\n // Handlers for creating points and lines\n const pointLocator = createPointLocator({\n xScale,\n scale,\n corrected,\n system,\n getHeight,\n });\n\n let column = \"avg_\" + system;\n if (corrected) {\n column += \"_corr\";\n }\n const lineLocator = line()\n .x((d) => xScale(d[column]))\n // @ts-ignore\n .y((d) => scale(d.height));\n\n const value = { pointLocator, lineLocator, corrected, system, clipY };\n return h(IsotopesDataContext.Provider, { value }, h(\"g.data\", children));\n};\n\nconst IsotopeDataPoint = function (props) {\n const { pointLocator } = useContext(IsotopesDataContext);\n const { datum, strokeWidth, ...rest } = props;\n const loc = pointLocator(datum);\n if (loc == null) return null;\n const [cx, cy] = loc;\n\n return h(\"circle\", {\n key: datum.sample_id,\n cx,\n cy,\n r: 2,\n ...rest,\n });\n};\n\nconst IsotopeDataLine = function (props) {\n const { values: lineValues, ...rest } = props;\n const { lineLocator } = useContext(IsotopesDataContext);\n return h(\"path\", {\n d: lineLocator(lineValues),\n fill: \"transparent\",\n ...rest,\n });\n};\n\nconst useDataLocator = () => useContext(IsotopesDataContext);\n\nexport { IsotopesDataArea, IsotopeDataPoint, IsotopeDataLine, useDataLocator };\n"],"names":["line","$5eSmp$line","createContext","$5eSmp$createContext","useContext","$5eSmp$useContext","$5eSmp$macrostrathyper","ColumnLayoutContext","$5eSmp$ColumnLayoutContext","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$wtIgl","$561e9bb965350dc6$var$createPointLocator","opts","xScale","scale","getHeight","rest","d","s","height","$561e9bb965350dc6$var$inDomain","num","domain","value","$561e9bb965350dc6$var$IsotopesDataContext","$561e9bb965350dc6$export$309ef8546e07d921","props","useCompositeScale","corrected","system","children","clipY","console","log","pointLocator","column","lineLocator","x","y","Provider","$561e9bb965350dc6$export$4cb5d059db4e2bd","datum","strokeWidth","loc","cx","cy","key","sample_id","r","$561e9bb965350dc6$export$628a3ef6eb9c3a89","values","lineValues","fill","$561e9bb965350dc6$export$919dbb10b6b5b75","IsotopesDataArea","IsotopeDataPoint","IsotopeDataLine","useDataLocator"],"version":3,"file":"column-views.ae9536b3.js.map","sourceRoot":"../../../../"}
|
|
1
|
+
{"mappings":"A,M,6C,A,Q,Q,C,K,U,A,Q,iB,C,C,c,C,K,O,A,Q,M,mB,A,Q,uB,C,K,+B,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,E,SCWA,IAAM,EAAqB,SAAU,CAAI,EACvC,GAAM,CAAA,OAAE,CAAM,CAAA,MAAE,CAAK,CAAA,UAAE,CAAS,CAAE,GAAG,EAAM,CAAG,EAC9C,OAAO,SAAU,CAAC,CAAE,EAAI,CAAC,EACvB,IAAM,EAAS,EAAU,SACzB,AAAK,AATQ,CAAA,CAAC,EAAO,KACvB,IAAM,EAAS,EAAM,MAAM,GAC3B,OAAO,CAAM,CAAC,EAAE,CAAG,EAAM,CAAM,CAAC,EAAE,AACpC,CAAA,EAMkB,EAAO,GACd,CAAC,EAAO,EAAE,KAAK,EAAG,EAAM,GAAQ,CADF,IAEvC,CACF,EAEM,EAAsB,AAAA,EAAc,MAWpC,EAAmB,SAAU,CAAoB,EACrD,IAAM,EAAS,AAAA,EAAW,IAAsB,OAE1C,EAAQ,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,IAEV,CAAA,UAAE,CAAS,CAAA,OAAE,CAAM,CAAA,SAAE,CAAQ,CAAA,UAAE,CAAS,CAAA,MAAE,EAAQ,CAAA,CAAA,CAAO,CAAG,CAC5D,AAAa,OAAb,GACF,CAAA,EAAY,SAAU,CAAC,EAIrB,OAHI,AAAY,MAAZ,EAAE,MAAM,EACV,QAAQ,GAAG,CAAC,GAEP,EAAE,MAAM,AACjB,CAAA,EAIF,IAAM,EAAe,EAAmB,CACtC,OAAA,EACA,MAAA,EACA,UAAA,EACA,OAAA,EACA,UAAA,CACF,GAEI,EAAS,OAAS,CAClB,CAAA,GACF,CAAA,GAAU,OADZ,EAGA,IAAM,EAAc,AAAA,IACjB,CAAC,CAAC,AAAC,GAAM,EAAO,CAAC,CAAC,EAAO,GAEzB,CAAC,CAAC,AAAC,GAAM,EAAM,EAAE,MAAM,GAG1B,OAAO,AAAA,EAAE,EAAoB,QAAQ,CAAE,CAAE,MAD3B,CAAE,aAAA,EAAc,YAAA,EAAa,UAAA,EAAW,OAAA,EAAQ,MAAA,CAAM,CACrB,EAAG,AAAA,EAAE,SAAU,GAChE,EAEM,EAAmB,SAAU,CAAK,EACtC,GAAM,CAAA,aAAE,CAAY,CAAE,CAAG,AAAA,EAAW,GAC9B,CAAA,MAAE,CAAK,CAAA,YAAE,CAAW,CAAE,GAAG,EAAM,CAAG,EAClC,EAAM,EAAa,GACzB,GAAI,AAAO,MAAP,EAAa,OAAO,KACxB,GAAM,CAAC,EAAI,EAAG,CAAG,EAEjB,OAAO,AAAA,EAAE,SAAU,CACjB,IAAK,EAAM,SAAS,CACpB,GAAA,EACA,GAAA,EACA,EAAG,EACH,GAAG,CAAI,AACT,EACF,EAEM,EAAkB,SAAU,CAAK,EACrC,GAAM,CAAE,OAAQ,CAAU,CAAE,GAAG,EAAM,CAAG,EAClC,CAAA,YAAE,CAAW,CAAE,CAAG,AAAA,EAAW,GACnC,OAAO,AAAA,EAAE,OAAQ,CACf,EAAG,EAAY,GACf,KAAM,cACN,GAAG,CAAI,AACT,EACF,EAEM,EAAiB,IAAM,AAAA,EAAW,U,K,gB,C,K,gB,C,K,e,C,K,c","sources":["<anon>","packages/column-views/src/facets/carbon-isotopes/data-area.ts"],"sourcesContent":["import \"./column-views.e1813308.js\";\nimport {line as $5eSmp$line} from \"d3-shape\";\nimport {createContext as $5eSmp$createContext, useContext as $5eSmp$useContext} from \"react\";\nimport $5eSmp$macrostrathyper from \"@macrostrat/hyper\";\nimport {ColumnLayoutContext as $5eSmp$ColumnLayoutContext} from \"@macrostrat/column-components\";\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;\n\n\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nconst $561e9bb965350dc6$var$inDomain = (scale, num)=>{\n const domain = scale.domain();\n return domain[0] < num < domain[1];\n};\nconst $561e9bb965350dc6$var$createPointLocator = function(opts) {\n const { xScale: xScale, scale: scale, getHeight: getHeight, ...rest } = opts;\n return function(d, s = 0) {\n const height = getHeight(d);\n if (!$561e9bb965350dc6$var$inDomain(scale, height)) return null;\n return [\n xScale(d.value),\n scale(height)\n ];\n };\n};\nconst $561e9bb965350dc6$var$IsotopesDataContext = (0, $5eSmp$createContext)(null);\nconst $561e9bb965350dc6$export$309ef8546e07d921 = function(props) {\n const xScale = (0, $5eSmp$useContext)((0, $5eSmp$ColumnLayoutContext))?.xScale;\n const scale = (0, $wtIgl.useCompositeScale)();\n let { corrected: corrected, system: system, children: children, getHeight: getHeight, clipY: clipY = false } = props;\n if (getHeight == null) getHeight = function(d) {\n if (d.height == null) console.log(d);\n return d.height;\n };\n // Handlers for creating points and lines\n const pointLocator = $561e9bb965350dc6$var$createPointLocator({\n xScale: xScale,\n scale: scale,\n corrected: corrected,\n system: system,\n getHeight: getHeight\n });\n let column = \"avg_\" + system;\n if (corrected) column += \"_corr\";\n const lineLocator = (0, $5eSmp$line)().x((d)=>xScale(d[column]))// @ts-ignore\n .y((d)=>scale(d.height));\n const value = {\n pointLocator: pointLocator,\n lineLocator: lineLocator,\n corrected: corrected,\n system: system,\n clipY: clipY\n };\n return (0, $5eSmp$macrostrathyper)($561e9bb965350dc6$var$IsotopesDataContext.Provider, {\n value: value\n }, (0, $5eSmp$macrostrathyper)(\"g.data\", children));\n};\nconst $561e9bb965350dc6$export$4cb5d059db4e2bd = function(props) {\n const { pointLocator: pointLocator } = (0, $5eSmp$useContext)($561e9bb965350dc6$var$IsotopesDataContext);\n const { datum: datum, strokeWidth: strokeWidth, ...rest } = props;\n const loc = pointLocator(datum);\n if (loc == null) return null;\n const [cx, cy] = loc;\n return (0, $5eSmp$macrostrathyper)(\"circle\", {\n key: datum.sample_id,\n cx: cx,\n cy: cy,\n r: 2,\n ...rest\n });\n};\nconst $561e9bb965350dc6$export$628a3ef6eb9c3a89 = function(props) {\n const { values: lineValues, ...rest } = props;\n const { lineLocator: lineLocator } = (0, $5eSmp$useContext)($561e9bb965350dc6$var$IsotopesDataContext);\n return (0, $5eSmp$macrostrathyper)(\"path\", {\n d: lineLocator(lineValues),\n fill: \"transparent\",\n ...rest\n });\n};\nconst $561e9bb965350dc6$export$919dbb10b6b5b75 = ()=>(0, $5eSmp$useContext)($561e9bb965350dc6$var$IsotopesDataContext);\n\n\nexport {$561e9bb965350dc6$export$309ef8546e07d921 as IsotopesDataArea, $561e9bb965350dc6$export$4cb5d059db4e2bd as IsotopeDataPoint, $561e9bb965350dc6$export$628a3ef6eb9c3a89 as IsotopeDataLine, $561e9bb965350dc6$export$919dbb10b6b5b75 as useDataLocator};\n//# sourceMappingURL=column-views.4ce5f5e4.js.map\n","import { line } from \"d3-shape\";\nimport { createContext, useContext } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { ColumnLayoutContext } from \"@macrostrat/column-components\";\nimport { useCompositeScale } from \"../../data-provider\";\n\nconst inDomain = (scale, num) => {\n const domain = scale.domain();\n return domain[0] < num < domain[1];\n};\n\nconst createPointLocator = function (opts) {\n const { xScale, scale, getHeight, ...rest } = opts;\n return function (d, s = 0) {\n const height = getHeight(d);\n if (!inDomain(scale, height)) return null;\n return [xScale(d.value), scale(height)];\n };\n};\n\nconst IsotopesDataContext = createContext(null);\n\nexport interface DataAreaProps {\n clipY: boolean;\n parameter: string;\n corrected: boolean;\n system: string;\n children: React.ReactNode;\n getHeight?: Function;\n}\n\nconst IsotopesDataArea = function (props: DataAreaProps) {\n const xScale = useContext(ColumnLayoutContext)?.xScale;\n\n const scale = useCompositeScale();\n\n let { corrected, system, children, getHeight, clipY = false } = props;\n if (getHeight == null) {\n getHeight = function (d) {\n if (d.height == null) {\n console.log(d);\n }\n return d.height;\n };\n }\n\n // Handlers for creating points and lines\n const pointLocator = createPointLocator({\n xScale,\n scale,\n corrected,\n system,\n getHeight,\n });\n\n let column = \"avg_\" + system;\n if (corrected) {\n column += \"_corr\";\n }\n const lineLocator = line()\n .x((d) => xScale(d[column]))\n // @ts-ignore\n .y((d) => scale(d.height));\n\n const value = { pointLocator, lineLocator, corrected, system, clipY };\n return h(IsotopesDataContext.Provider, { value }, h(\"g.data\", children));\n};\n\nconst IsotopeDataPoint = function (props) {\n const { pointLocator } = useContext(IsotopesDataContext);\n const { datum, strokeWidth, ...rest } = props;\n const loc = pointLocator(datum);\n if (loc == null) return null;\n const [cx, cy] = loc;\n\n return h(\"circle\", {\n key: datum.sample_id,\n cx,\n cy,\n r: 2,\n ...rest,\n });\n};\n\nconst IsotopeDataLine = function (props) {\n const { values: lineValues, ...rest } = props;\n const { lineLocator } = useContext(IsotopesDataContext);\n return h(\"path\", {\n d: lineLocator(lineValues),\n fill: \"transparent\",\n ...rest,\n });\n};\n\nconst useDataLocator = () => useContext(IsotopesDataContext);\n\nexport { IsotopesDataArea, IsotopeDataPoint, IsotopeDataLine, useDataLocator };\n"],"names":["line","$5eSmp$line","createContext","$5eSmp$createContext","useContext","$5eSmp$useContext","$5eSmp$macrostrathyper","ColumnLayoutContext","$5eSmp$ColumnLayoutContext","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$wtIgl","$561e9bb965350dc6$var$createPointLocator","opts","xScale","scale","getHeight","rest","d","s","height","$561e9bb965350dc6$var$inDomain","num","domain","value","$561e9bb965350dc6$var$IsotopesDataContext","$561e9bb965350dc6$export$309ef8546e07d921","props","useCompositeScale","corrected","system","children","clipY","console","log","pointLocator","column","lineLocator","x","y","Provider","$561e9bb965350dc6$export$4cb5d059db4e2bd","datum","strokeWidth","loc","cx","cy","key","sample_id","r","$561e9bb965350dc6$export$628a3ef6eb9c3a89","values","lineValues","fill","$561e9bb965350dc6$export$919dbb10b6b5b75","IsotopesDataArea","IsotopeDataPoint","IsotopeDataLine","useDataLocator"],"version":3,"file":"column-views.4ce5f5e4.js.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./column-views.1261be59.js";import"./column-views.003348f6.js";import"./column-views.e1813308.js";import"./column-views.0beae29d.js";import"./column-views.a08b0c9f.js";import"./column-views.d08e4328.js";import"./column-views.60b5663d.js";import"./column-views.db47fe3c.js";import"./column-views.7f9c7448.js";import"./column-views.a16cd1f2.js";import{ColumnAxisType as e}from"@macrostrat/column-components";import{hyperStyled as o}from"@macrostrat/hyper";import{extractPadding as n,useDarkMode as t,Box as i}from"@macrostrat/ui-components";import l from"classnames";import{useRef as a,useCallback as s}from"react";import{NonIdealState as r}from"@blueprintjs/core";import{DataField as c}from"@macrostrat/data-components";function m(e,o,n,t){Object.defineProperty(e,o,{get:n,set:t,enumerable:!0,configurable:!0})}var u=globalThis,p={},d={},f=u.parcelRequirea149;null==f&&((f=function(e){if(e in p)return p[e].exports;if(e in d){var o=d[e];delete d[e];var n={id:e,exports:{}};return p[e]=n,o.call(n.exports,n,n.exports),n.exports}var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}).register=function(e,o){d[e]=o},u.parcelRequirea149=f),f.register;var b={};m(b,"Column",()=>R),m(b,"ColumnContainer",()=>E),m(b,"ColumnBasicInfo",()=>M);var g=f("7YHvf"),v=f("7tWYE"),h=f("wtIgl"),_=f("5SO8b"),x=f("iYfAq"),S=f("2KV3o"),H=f("7exMg"),C=f("4hG2H"),w=f("76iYI"),A=f("610tc");let y=o(g&&g.__esModule?g.default:g);function R(o){let{showUnitPopover:n=!1,keyboardNavigation:t=!1,mergeSections:i,onUnitSelected:l,selectedUnit:s,children:c,units:m,t_age:u,b_age:p,t_pos:d,b_pos:f,unconformityHeight:b=30,targetUnitHeight:g=20,pixelScale:v,minPixelScale:x=.2,minSectionHeight:H=50,collapseSmallUnconformities:R=!0,allowUnitSelection:E,hybridScale:M,scale:F,axisType:$,...j}=o,T=a(),N=g,L=H,O=x;null!=v&&(N=null,L=0,O=v);let I=$??e.AGE,P=C.CompositeAgeAxis;M?.type===w.HybridScaleType.ApproximateHeight&&I!=e.AGE&&(P=C.ApproximateHeightAxis,I=e.AGE);let{sections:D,units:k,totalHeight:G}=(0,A.usePreparedColumnUnits)(m,{axisType:I,t_age:u,b_age:p,t_pos:d,b_pos:f,mergeSections:i,targetUnitHeight:N,unconformityHeight:b,pixelScale:v,minPixelScale:O,minSectionHeight:L,collapseSmallUnconformities:R,scale:F,hybridScale:M});if(0===D.length)return y("div.column-container.empty",y(r,{title:"Empty column",description:"No sections found in this column.",icon:"warning-sign"}));let B=y(U,{columnRef:T,ageAxisComponent:P,...j},[c,y.if(n)(S.UnitSelectionPopover),y.if(t)(_.UnitKeyboardNavigation,{units:k})]),Y=E??!1;return(n||null!=s||null!=l)&&(Y=!0),Y&&(B=y(_.UnitSelectionProvider,{columnRef:T,onUnitSelected:l,selectedUnit:s,units:k},B)),y(h.MacrostratColumnDataProvider,{units:k,sections:D,totalHeight:G,axisType:I},B)}function U(o){let t=n(o),i={"--column-padding-top":`${t.paddingTop}px`,"--column-padding-bottom":`${t.paddingBottom}px`,"--column-padding-left":`${t.paddingLeft}px`,"--column-padding-right":`${t.paddingRight}px`},{unitComponent:l=v.UnitComponent,unconformityLabels:a="minimal",showLabels:r=!0,width:c=300,columnWidth:m=150,showLabelColumn:u=!0,className:p,columnRef:d,clipUnits:f=!1,children:b,showTimescale:g,timescaleLevels:x,maxInternalColumns:S,onMouseOver:w,ageAxisComponent:A=C.CompositeAgeAxis}=o,{axisType:R}=(0,h.useMacrostratColumnData)(),U=!1,M=!1;!0===a||"prominent"===a?M=!0:"minimal"===a&&(U=!0);let F=m;F>c&&(F=c);let $=u;F>c-10&&($=!1);let j=g??!0;return null!=x&&(j=!0),j=R==e.AGE&&j,y(E,{...function(e=null){let o=(0,_.useUnitSelectionDispatch)(),n=s(e=>{o?.(null,null,e)},[o]),t=(0,h.useCompositeScale)(),i=s(o=>{let n=t.invert(o.clientY-o.currentTarget.getBoundingClientRect().top);e?.(null,n,o)},[t,e]),l=s(()=>{e?.(null,null,null)},[e]);return null==e?{onClick:n,onMouseOver:void 0,onMouseMove:void 0,onMouseOut:void 0}:{onMouseOver:i,onMouseMove:i,onMouseOut:l,onClick:n}}(w),style:i,className:p},y("div.column",{ref:d},[y(A),y.if(j)(H.CompositeTimescale,{levels:x,unconformityLabels:U}),y(H.SectionsColumn,{unitComponent:l,showLabels:r,width:c,columnWidth:F,showLabelColumn:$,clipUnits:f,unconformityLabels:M,maxInternalColumns:S}),b]))}function E(e){let{className:o,...n}=e,a=t();return y(i,{className:l(o,{"dark-mode":a?.isEnabled??!1},"column-container"),...n})}function M({data:e,showColumnID:o=!0,showReferences:n=!0}){return null==e?null:y("div.column-info",[y("div.column-title-row",[y("h2",e.col_name),y.if(o)("h4",y(x.Identifier,{id:e.col_id}))]),y(c,{row:!0,label:"Group",value:e.col_group}),y.if(n)(x.ReferencesField,{refs:e.refs,inline:!1,row:!1,className:"column-refs"})])}export{R as Column,E as ColumnContainer,M as ColumnBasicInfo};
|
|
2
|
+
//# sourceMappingURL=column-views.52cc4dd0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,kB,C,K,+B,A,Q,e,C,K,mB,A,Q,kB,C,C,e,C,C,O,C,K,2B,A,Q,M,Y,A,Q,U,C,C,e,C,K,O,A,Q,iB,C,K,mB,A,Q,a,C,K,6B,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,S,I,G,E,E,kB,I,G,E,E,kB,I,G,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SCoDA,IAAM,EAAI,AAAA,E,AAAY,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAuCf,SAAS,EAAO,CAAkB,EACvC,GAAM,CAAA,gBACJ,EAAkB,CAAA,CAAA,CAAA,mBAClB,EAAqB,CAAA,CAAA,CAAA,cACrB,CAAa,CAAA,eACb,CAAc,CAAA,aACd,CAAY,CAAA,SACZ,CAAQ,CACR,MAAO,CAAQ,CAAA,MACf,CAAK,CAAA,MACL,CAAK,CAAA,MACL,CAAK,CAAA,MACL,CAAK,CAAA,mBACL,EAAqB,EAAA,CAAA,iBACrB,EAAmB,EAAA,CAAA,WACnB,CAAU,CAAA,cACV,EAAgB,EAAA,CAAA,iBAChB,EAAmB,EAAA,CAAA,4BACnB,EAA8B,CAAA,CAAA,CAAA,mBAC9B,CAAkB,CAAA,YAClB,CAAW,CAAA,MACX,CAAK,CAAA,SACL,CAAQ,CACR,GAAG,EACJ,CAAG,EACE,EAAM,AAAA,IAKR,EAAoB,EACpB,EAAoB,EACpB,EAAiB,CACH,OAAd,IACF,EAAoB,KACpB,EAAoB,EACpB,EAAiB,GAInB,IAAI,EAAY,GAAY,AAAA,EAAe,GAAG,CAC1C,EAAmB,EAA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","sources":["<anon>","packages/column-views/src/column.ts"],"sourcesContent":["import \"./column-views.1261be59.js\";\nimport \"./column-views.003348f6.js\";\nimport \"./column-views.e1813308.js\";\nimport \"./column-views.0beae29d.js\";\nimport \"./column-views.a08b0c9f.js\";\nimport \"./column-views.d08e4328.js\";\nimport \"./column-views.60b5663d.js\";\nimport \"./column-views.db47fe3c.js\";\nimport \"./column-views.7f9c7448.js\";\nimport \"./column-views.a16cd1f2.js\";\nimport {ColumnAxisType as $6sU8d$ColumnAxisType} from \"@macrostrat/column-components\";\nimport {hyperStyled as $6sU8d$hyperStyled} from \"@macrostrat/hyper\";\nimport {extractPadding as $6sU8d$extractPadding, useDarkMode as $6sU8d$useDarkMode, Box as $6sU8d$Box} from \"@macrostrat/ui-components\";\nimport $6sU8d$classnames from \"classnames\";\nimport {useRef as $6sU8d$useRef, useCallback as $6sU8d$useCallback} from \"react\";\nimport {NonIdealState as $6sU8d$NonIdealState} from \"@blueprintjs/core\";\nimport {DataField as $6sU8d$DataField} from \"@macrostrat/data-components\";\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 $4721fb147cb3f5e1$exports = {};\n\n$parcel$export($4721fb147cb3f5e1$exports, \"Column\", () => $4721fb147cb3f5e1$export$816b5d811295e6bc);\n$parcel$export($4721fb147cb3f5e1$exports, \"ColumnContainer\", () => $4721fb147cb3f5e1$export$2194471aa3d52446);\n$parcel$export($4721fb147cb3f5e1$exports, \"ColumnBasicInfo\", () => $4721fb147cb3f5e1$export$fcdf79c491a4504f);\n\n\n\n\n\n\nvar $7YHvf = parcelRequire(\"7YHvf\");\n\nvar $7tWYE = parcelRequire(\"7tWYE\");\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nvar $5SO8b = parcelRequire(\"5SO8b\");\n\nvar $iYfAq = parcelRequire(\"iYfAq\");\nvar $2KV3o = parcelRequire(\"2KV3o\");\n\nvar $7exMg = parcelRequire(\"7exMg\");\n\nvar $4hG2H = parcelRequire(\"4hG2H\");\n\nvar $76iYI = parcelRequire(\"76iYI\");\nvar $610tc = parcelRequire(\"610tc\");\n\n\nconst $4721fb147cb3f5e1$var$h = (0, $6sU8d$hyperStyled)((0, (/*@__PURE__*/$parcel$interopDefault($7YHvf))));\nfunction $4721fb147cb3f5e1$export$816b5d811295e6bc(props) {\n const { showUnitPopover: showUnitPopover = false, keyboardNavigation: keyboardNavigation = false, mergeSections: mergeSections, onUnitSelected: onUnitSelected, selectedUnit: selectedUnit, children: children, units: rawUnits, t_age: t_age, b_age: b_age, t_pos: t_pos, b_pos: b_pos, unconformityHeight: unconformityHeight = 30, targetUnitHeight: targetUnitHeight = 20, pixelScale: pixelScale, minPixelScale: minPixelScale = 0.2, minSectionHeight: minSectionHeight = 50, collapseSmallUnconformities: collapseSmallUnconformities = true, allowUnitSelection: allowUnitSelection, hybridScale: hybridScale, scale: scale, axisType: axisType, ...rest } = props;\n const ref = (0, $6sU8d$useRef)();\n // Selected item position\n /* Make pixelScale and targetUnitHeight mutually exclusive. PixelScale implies\n * standardization of scales in all sections */ let _targetUnitHeight = targetUnitHeight;\n let _minSectionHeight = minSectionHeight;\n let _minPixelScale = minPixelScale;\n if (pixelScale != null) {\n _targetUnitHeight = null;\n _minSectionHeight = 0;\n _minPixelScale = pixelScale;\n }\n // Handle special cases for hybrid scales (WIP, we need to regularize this)\n let _axisType = axisType ?? (0, $6sU8d$ColumnAxisType).AGE;\n let ageAxisComponent = (0, $4hG2H.CompositeAgeAxis);\n if (hybridScale?.type === (0, $76iYI.HybridScaleType).ApproximateHeight && _axisType != (0, $6sU8d$ColumnAxisType).AGE) {\n // Use approximate height axis for non-age columns if a non-age axis type is requested\n ageAxisComponent = (0, $4hG2H.ApproximateHeightAxis);\n _axisType = (0, $6sU8d$ColumnAxisType).AGE;\n }\n const { sections: sections, units: units, totalHeight: totalHeight } = (0, $610tc.usePreparedColumnUnits)(rawUnits, {\n axisType: _axisType,\n t_age: t_age,\n b_age: b_age,\n t_pos: t_pos,\n b_pos: b_pos,\n mergeSections: mergeSections,\n targetUnitHeight: _targetUnitHeight,\n unconformityHeight: unconformityHeight,\n pixelScale: pixelScale,\n minPixelScale: _minPixelScale,\n minSectionHeight: _minSectionHeight,\n collapseSmallUnconformities: collapseSmallUnconformities,\n scale: // TODO: consider unifying scale and hybridScale options\n scale,\n hybridScale: hybridScale\n });\n if (sections.length === 0) return $4721fb147cb3f5e1$var$h(\"div.column-container.empty\", $4721fb147cb3f5e1$var$h((0, $6sU8d$NonIdealState), {\n title: \"Empty column\",\n description: \"No sections found in this column.\",\n icon: \"warning-sign\"\n }));\n let main = $4721fb147cb3f5e1$var$h($4721fb147cb3f5e1$var$ColumnInner, {\n columnRef: ref,\n ageAxisComponent: ageAxisComponent,\n ...rest\n }, [\n children,\n $4721fb147cb3f5e1$var$h.if(showUnitPopover)((0, $2KV3o.UnitSelectionPopover)),\n $4721fb147cb3f5e1$var$h.if(keyboardNavigation)((0, $5SO8b.UnitKeyboardNavigation), {\n units: units\n })\n ]);\n /* By default, unit selection is disabled. However, if any related props are passed,\n we enable it.\n */ let _allowUnitSelection = allowUnitSelection ?? false;\n if (showUnitPopover || selectedUnit != null || onUnitSelected != null) _allowUnitSelection = true;\n if (_allowUnitSelection) main = $4721fb147cb3f5e1$var$h((0, $5SO8b.UnitSelectionProvider), {\n columnRef: ref,\n onUnitSelected: onUnitSelected,\n selectedUnit: selectedUnit,\n units: units\n }, main);\n return $4721fb147cb3f5e1$var$h((0, $wtIgl.MacrostratColumnDataProvider), {\n units: units,\n sections: sections,\n totalHeight: totalHeight,\n axisType: _axisType\n }, main);\n}\nfunction $4721fb147cb3f5e1$var$ColumnInner(props) {\n const padding = (0, $6sU8d$extractPadding)(props);\n // TODO: integrate padding vars more closely with the rest of the spacing (right now padding is a bit ad-hoc)\n const paddingVars = {\n \"--column-padding-top\": `${padding.paddingTop}px`,\n \"--column-padding-bottom\": `${padding.paddingBottom}px`,\n \"--column-padding-left\": `${padding.paddingLeft}px`,\n \"--column-padding-right\": `${padding.paddingRight}px`\n };\n const { unitComponent: unitComponent = (0, $7tWYE.UnitComponent), unconformityLabels: unconformityLabels = \"minimal\", showLabels: showLabels = true, width: _width = 300, columnWidth: _columnWidth = 150, showLabelColumn: _showLabelColumn = true, className: className, columnRef: columnRef, clipUnits: clipUnits = false, children: children, showTimescale: showTimescale, timescaleLevels: timescaleLevels, maxInternalColumns: maxInternalColumns, onMouseOver: onMouseOver, ageAxisComponent: ageAxisComponent = (0, $4hG2H.CompositeAgeAxis) } = props;\n const { axisType: axisType } = (0, $wtIgl.useMacrostratColumnData)();\n // Coalesce unconformity label setting to a boolean\n let _timescaleUnconformityLabels = false;\n let _sectionUnconformityLabels = false;\n if (unconformityLabels === true || unconformityLabels === \"prominent\") _sectionUnconformityLabels = true;\n else if (unconformityLabels === \"minimal\") _timescaleUnconformityLabels = true;\n let width = _width;\n let columnWidth = _columnWidth;\n if (columnWidth > width) columnWidth = width;\n let showLabelColumn = _showLabelColumn;\n if (columnWidth > width - 10) showLabelColumn = false;\n let _showTimescale = showTimescale ?? true;\n if (timescaleLevels != null) _showTimescale = true;\n _showTimescale = axisType == (0, $6sU8d$ColumnAxisType).AGE && _showTimescale;\n return $4721fb147cb3f5e1$var$h($4721fb147cb3f5e1$export$2194471aa3d52446, {\n ...$4721fb147cb3f5e1$var$useMouseEventHandlers(onMouseOver),\n style: paddingVars,\n className: className\n }, $4721fb147cb3f5e1$var$h(\"div.column\", {\n ref: columnRef\n }, [\n $4721fb147cb3f5e1$var$h(ageAxisComponent),\n $4721fb147cb3f5e1$var$h.if(_showTimescale)((0, $7exMg.CompositeTimescale), {\n levels: timescaleLevels,\n unconformityLabels: _timescaleUnconformityLabels\n }),\n $4721fb147cb3f5e1$var$h((0, $7exMg.SectionsColumn), {\n unitComponent: unitComponent,\n showLabels: showLabels,\n width: width,\n columnWidth: columnWidth,\n showLabelColumn: showLabelColumn,\n clipUnits: clipUnits,\n unconformityLabels: _sectionUnconformityLabels,\n maxInternalColumns: maxInternalColumns\n }),\n children\n ]));\n}\nfunction $4721fb147cb3f5e1$var$useMouseEventHandlers(_onMouseOver = null) {\n /** Click event handler */ // Click handler for unit selection\n const dispatch = (0, $5SO8b.useUnitSelectionDispatch)();\n const onClick = (0, $6sU8d$useCallback)((evt)=>{\n dispatch?.(null, null, evt);\n }, [\n dispatch\n ]);\n /** Hover event handlers */ const scale = (0, $wtIgl.useCompositeScale)();\n const onMouseOver = (0, $6sU8d$useCallback)((evt)=>{\n const height = scale.invert(evt.clientY - evt.currentTarget.getBoundingClientRect().top);\n _onMouseOver?.(null, height, evt);\n }, [\n scale,\n _onMouseOver\n ]);\n const onMouseOut = (0, $6sU8d$useCallback)(()=>{\n _onMouseOver?.(null, null, null);\n }, [\n _onMouseOver\n ]);\n if (_onMouseOver == null) return {\n onClick: onClick,\n onMouseOver: undefined,\n onMouseMove: undefined,\n onMouseOut: undefined\n };\n return {\n onMouseOver: onMouseOver,\n onMouseMove: onMouseOver,\n onMouseOut: onMouseOut,\n onClick: onClick\n };\n}\nfunction $4721fb147cb3f5e1$export$2194471aa3d52446(props) {\n const { className: className, ...rest } = props;\n const darkMode = (0, $6sU8d$useDarkMode)();\n return $4721fb147cb3f5e1$var$h((0, $6sU8d$Box), {\n className: (0, $6sU8d$classnames)(className, {\n \"dark-mode\": darkMode?.isEnabled ?? false\n }, \"column-container\"),\n ...rest\n });\n}\nfunction $4721fb147cb3f5e1$export$fcdf79c491a4504f({ data: data, showColumnID: showColumnID = true, showReferences: showReferences = true }) {\n if (data == null) return null;\n return $4721fb147cb3f5e1$var$h(\"div.column-info\", [\n $4721fb147cb3f5e1$var$h(\"div.column-title-row\", [\n $4721fb147cb3f5e1$var$h(\"h2\", data.col_name),\n $4721fb147cb3f5e1$var$h.if(showColumnID)(\"h4\", $4721fb147cb3f5e1$var$h((0, $iYfAq.Identifier), {\n id: data.col_id\n }))\n ]),\n $4721fb147cb3f5e1$var$h((0, $6sU8d$DataField), {\n row: true,\n label: \"Group\",\n value: data.col_group\n }),\n $4721fb147cb3f5e1$var$h.if(showReferences)((0, $iYfAq.ReferencesField), {\n refs: data.refs,\n inline: false,\n row: false,\n className: \"column-refs\"\n })\n ]);\n}\n\n\nexport {$4721fb147cb3f5e1$export$816b5d811295e6bc as Column, $4721fb147cb3f5e1$export$2194471aa3d52446 as ColumnContainer, $4721fb147cb3f5e1$export$fcdf79c491a4504f as ColumnBasicInfo};\n//# sourceMappingURL=column-views.52cc4dd0.js.map\n","import { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { hyperStyled } from \"@macrostrat/hyper\";\nimport {\n Box,\n extractPadding,\n Padding,\n useDarkMode,\n} from \"@macrostrat/ui-components\";\nimport classNames from \"classnames\";\nimport {\n RefObject,\n useRef,\n HTMLAttributes,\n useCallback,\n CSSProperties,\n ComponentType,\n} from \"react\";\nimport styles from \"./column.module.sass\";\nimport { UnitComponent } from \"./units\";\nimport {\n UnitSelectionProvider,\n UnitKeyboardNavigation,\n useUnitSelectionDispatch,\n} from \"./data-provider\";\n\nimport {\n Identifier,\n ReferencesField,\n UnitSelectionPopover,\n} from \"./unit-details\";\nimport {\n MacrostratColumnDataProvider,\n useCompositeScale,\n useMacrostratColumnData,\n} from \"./data-provider\";\nimport {\n SectionSharedProps,\n CompositeTimescale,\n SectionsColumn,\n} from \"./section\";\nimport { ApproximateHeightAxis, CompositeAgeAxis } from \"./age-axis\";\nimport {\n MergeSectionsMode,\n usePreparedColumnUnits,\n HybridScaleType,\n ColumnHeightScaleOptions,\n} from \"./prepare-units\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { NonIdealState } from \"@blueprintjs/core\";\nimport { DataField } from \"@macrostrat/data-components\";\nimport { ScaleContinuousNumeric } from \"d3-scale\";\n\nconst h = hyperStyled(styles);\n\ninterface BaseColumnProps extends SectionSharedProps {\n className?: string;\n showLabelColumn?: boolean;\n keyboardNavigation?: boolean;\n showLabels?: boolean;\n maxInternalColumns?: number;\n // Timescale properties\n showTimescale?: boolean;\n timescaleLevels?: number | [number, number];\n unconformityLabels?: boolean | UnconformityLabelPlacement;\n onMouseOver?: (\n unit: UnitLong | null,\n height: number | null,\n evt: MouseEvent,\n ) => void;\n}\n\nexport type UnconformityLabelPlacement = \"minimal\" | \"prominent\" | \"none\";\n\nexport interface ColumnProps\n extends Padding, BaseColumnProps, ColumnHeightScaleOptions {\n // Macrostrat units\n units: UnitLong[];\n t_age?: number;\n b_age?: number;\n t_pos?: number;\n b_pos?: number;\n mergeSections?: MergeSectionsMode;\n showUnitPopover?: boolean;\n allowUnitSelection?: boolean;\n selectedUnit?: number | null;\n onUnitSelected?: (unitID: number | null, unit: any) => void;\n // Unconformity height in pixels\n unconformityHeight?: number;\n scale?: ScaleContinuousNumeric<number, number>;\n}\n\nexport function Column(props: ColumnProps) {\n const {\n showUnitPopover = false,\n keyboardNavigation = false,\n mergeSections,\n onUnitSelected,\n selectedUnit,\n children,\n units: rawUnits,\n t_age,\n b_age,\n t_pos,\n b_pos,\n unconformityHeight = 30,\n targetUnitHeight = 20,\n pixelScale,\n minPixelScale = 0.2,\n minSectionHeight = 50,\n collapseSmallUnconformities = true,\n allowUnitSelection,\n hybridScale,\n scale,\n axisType,\n ...rest\n } = props;\n const ref = useRef<HTMLElement>();\n // Selected item position\n\n /* Make pixelScale and targetUnitHeight mutually exclusive. PixelScale implies\n * standardization of scales in all sections */\n let _targetUnitHeight = targetUnitHeight;\n let _minSectionHeight = minSectionHeight;\n let _minPixelScale = minPixelScale;\n if (pixelScale != null) {\n _targetUnitHeight = null;\n _minSectionHeight = 0;\n _minPixelScale = pixelScale;\n }\n\n // Handle special cases for hybrid scales (WIP, we need to regularize this)\n let _axisType = axisType ?? ColumnAxisType.AGE;\n let ageAxisComponent = CompositeAgeAxis;\n if (\n hybridScale?.type === HybridScaleType.ApproximateHeight &&\n _axisType != ColumnAxisType.AGE\n ) {\n // Use approximate height axis for non-age columns if a non-age axis type is requested\n ageAxisComponent = ApproximateHeightAxis;\n _axisType = ColumnAxisType.AGE;\n }\n\n const { sections, units, totalHeight } = usePreparedColumnUnits(rawUnits, {\n axisType: _axisType,\n t_age,\n b_age,\n t_pos,\n b_pos,\n mergeSections,\n targetUnitHeight: _targetUnitHeight,\n unconformityHeight,\n pixelScale,\n minPixelScale: _minPixelScale,\n minSectionHeight: _minSectionHeight,\n collapseSmallUnconformities,\n // TODO: consider unifying scale and hybridScale options\n scale,\n hybridScale,\n });\n\n if (sections.length === 0) {\n return h(\n \"div.column-container.empty\",\n h(NonIdealState, {\n title: \"Empty column\",\n description: \"No sections found in this column.\",\n icon: \"warning-sign\",\n }),\n );\n }\n\n let main: any = h(\n ColumnInner,\n { columnRef: ref, ageAxisComponent, ...rest },\n [\n children,\n h.if(showUnitPopover)(UnitSelectionPopover),\n h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),\n ],\n );\n\n /* By default, unit selection is disabled. However, if any related props are passed,\n we enable it.\n */\n let _allowUnitSelection = allowUnitSelection ?? false;\n if (showUnitPopover || selectedUnit != null || onUnitSelected != null) {\n _allowUnitSelection = true;\n }\n\n if (_allowUnitSelection) {\n main = h(\n UnitSelectionProvider,\n {\n columnRef: ref,\n onUnitSelected,\n selectedUnit,\n units,\n },\n main,\n );\n }\n\n return h(\n MacrostratColumnDataProvider,\n { units, sections, totalHeight, axisType: _axisType },\n main,\n );\n}\n\ninterface ColumnInnerProps extends BaseColumnProps {\n columnRef: RefObject<HTMLElement>;\n ageAxisComponent?: ComponentType;\n}\n\nfunction ColumnInner(props: ColumnInnerProps) {\n const padding = extractPadding(props);\n\n // TODO: integrate padding vars more closely with the rest of the spacing (right now padding is a bit ad-hoc)\n const paddingVars: any = {\n \"--column-padding-top\": `${padding.paddingTop}px`,\n \"--column-padding-bottom\": `${padding.paddingBottom}px`,\n \"--column-padding-left\": `${padding.paddingLeft}px`,\n \"--column-padding-right\": `${padding.paddingRight}px`,\n };\n\n const {\n unitComponent = UnitComponent,\n unconformityLabels = \"minimal\",\n showLabels = true,\n width: _width = 300,\n columnWidth: _columnWidth = 150,\n showLabelColumn: _showLabelColumn = true,\n className,\n columnRef,\n clipUnits = false,\n children,\n showTimescale,\n timescaleLevels,\n maxInternalColumns,\n onMouseOver,\n ageAxisComponent = CompositeAgeAxis,\n } = props;\n\n const { axisType } = useMacrostratColumnData();\n\n // Coalesce unconformity label setting to a boolean\n let _timescaleUnconformityLabels = false;\n let _sectionUnconformityLabels = false;\n if (unconformityLabels === true || unconformityLabels === \"prominent\") {\n _sectionUnconformityLabels = true;\n } else if (unconformityLabels === \"minimal\") {\n _timescaleUnconformityLabels = true;\n }\n\n let width = _width;\n let columnWidth = _columnWidth;\n if (columnWidth > width) {\n columnWidth = width;\n }\n let showLabelColumn = _showLabelColumn;\n if (columnWidth > width - 10) {\n showLabelColumn = false;\n }\n\n let _showTimescale = showTimescale ?? true;\n if (timescaleLevels != null) {\n _showTimescale = true;\n }\n _showTimescale = axisType == ColumnAxisType.AGE && _showTimescale;\n\n return h(\n ColumnContainer,\n {\n ...useMouseEventHandlers(onMouseOver),\n style: paddingVars,\n className,\n },\n h(\"div.column\", { ref: columnRef }, [\n h(ageAxisComponent),\n h.if(_showTimescale)(CompositeTimescale, {\n levels: timescaleLevels,\n unconformityLabels: _timescaleUnconformityLabels,\n }),\n h(SectionsColumn, {\n unitComponent,\n showLabels,\n width,\n columnWidth,\n showLabelColumn,\n clipUnits,\n unconformityLabels: _sectionUnconformityLabels,\n maxInternalColumns,\n }),\n children,\n ]),\n );\n}\n\ntype ColumnMouseOverHandler = (\n unit: UnitLong | null,\n height: number | null,\n evt: MouseEvent,\n) => void;\n\nfunction useMouseEventHandlers(\n _onMouseOver: ColumnMouseOverHandler | null = null,\n) {\n /** Click event handler */\n\n // Click handler for unit selection\n const dispatch = useUnitSelectionDispatch();\n const onClick = useCallback(\n (evt) => {\n dispatch?.(null, null, evt as any);\n },\n [dispatch],\n );\n\n /** Hover event handlers */\n const scale = useCompositeScale();\n\n const onMouseOver = useCallback(\n (evt) => {\n const height = scale.invert(\n evt.clientY - evt.currentTarget.getBoundingClientRect().top,\n );\n _onMouseOver?.(null, height, evt);\n },\n [scale, _onMouseOver],\n );\n\n const onMouseOut = useCallback(() => {\n _onMouseOver?.(null, null, null);\n }, [_onMouseOver]);\n\n if (_onMouseOver == null) {\n return {\n onClick,\n onMouseOver: undefined,\n onMouseMove: undefined,\n onMouseOut: undefined,\n };\n }\n\n return { onMouseOver, onMouseMove: onMouseOver, onMouseOut, onClick };\n}\n\nexport interface ColumnContainerProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n style?: CSSProperties;\n}\n\nexport function ColumnContainer(props: ColumnContainerProps) {\n const { className, ...rest } = props;\n const darkMode = useDarkMode();\n\n return h(Box, {\n className: classNames(\n className,\n {\n \"dark-mode\": darkMode?.isEnabled ?? false,\n },\n \"column-container\",\n ),\n ...rest,\n });\n}\n\nexport function ColumnBasicInfo({\n data,\n showColumnID = true,\n showReferences = true,\n}) {\n if (data == null) return null;\n return h(\"div.column-info\", [\n h(\"div.column-title-row\", [\n h(\"h2\", data.col_name),\n h.if(showColumnID)(\"h4\", h(Identifier, { id: data.col_id })),\n ]),\n h(DataField, { row: true, label: \"Group\", value: data.col_group }),\n h.if(showReferences)(ReferencesField, {\n refs: data.refs,\n inline: false,\n row: false,\n className: \"column-refs\",\n }),\n ]);\n}\n"],"names":["ColumnAxisType","$6sU8d$ColumnAxisType","hyperStyled","$6sU8d$hyperStyled","extractPadding","$6sU8d$extractPadding","useDarkMode","$6sU8d$useDarkMode","Box","$6sU8d$Box","$6sU8d$classnames","useRef","$6sU8d$useRef","useCallback","$6sU8d$useCallback","NonIdealState","$6sU8d$NonIdealState","DataField","$6sU8d$DataField","$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","$4721fb147cb3f5e1$exports","$4721fb147cb3f5e1$export$816b5d811295e6bc","$4721fb147cb3f5e1$export$2194471aa3d52446","$4721fb147cb3f5e1$export$fcdf79c491a4504f","$7YHvf","$7tWYE","$wtIgl","$5SO8b","$iYfAq","$2KV3o","$7exMg","$4hG2H","$76iYI","$610tc","$4721fb147cb3f5e1$var$h","a","__esModule","default","props","showUnitPopover","keyboardNavigation","mergeSections","onUnitSelected","selectedUnit","children","units","rawUnits","t_age","b_age","t_pos","b_pos","unconformityHeight","targetUnitHeight","pixelScale","minPixelScale","minSectionHeight","collapseSmallUnconformities","allowUnitSelection","hybridScale","scale","axisType","rest","ref","_targetUnitHeight","_minSectionHeight","_minPixelScale","_axisType","AGE","ageAxisComponent","CompositeAgeAxis","type","HybridScaleType","ApproximateHeight","ApproximateHeightAxis","sections","totalHeight","usePreparedColumnUnits","length","title","description","icon","main","$4721fb147cb3f5e1$var$ColumnInner","columnRef","if","UnitSelectionPopover","UnitKeyboardNavigation","_allowUnitSelection","UnitSelectionProvider","MacrostratColumnDataProvider","padding","paddingVars","paddingTop","paddingBottom","paddingLeft","paddingRight","unitComponent","UnitComponent","unconformityLabels","showLabels","width","_width","columnWidth","_columnWidth","showLabelColumn","_showLabelColumn","className","clipUnits","showTimescale","timescaleLevels","maxInternalColumns","onMouseOver","useMacrostratColumnData","_timescaleUnconformityLabels","_sectionUnconformityLabels","_showTimescale","$4721fb147cb3f5e1$var$useMouseEventHandlers","_onMouseOver","dispatch","useUnitSelectionDispatch","onClick","evt","useCompositeScale","height","invert","clientY","currentTarget","getBoundingClientRect","top","onMouseOut","undefined","onMouseMove","style","CompositeTimescale","levels","SectionsColumn","darkMode","isEnabled","data","showColumnID","showReferences","col_name","Identifier","col_id","row","label","value","col_group","ReferencesField","refs","inline","Column","ColumnContainer","ColumnBasicInfo"],"version":3,"file":"column-views.52cc4dd0.js.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./column-views.38835c99.js";import"./column-views.1261be59.js";import"./column-views.22c2d45b.js";import"./column-views.e1813308.js";import"./column-views.a08b0c9f.js";import{useMemo as e}from"react";import{useMacrostratIntervals as t,Timescale as n,TimescaleOrientation as o}from"@macrostrat/timescale";import{SVG as a,ColumnAxisType as s}from"@macrostrat/column-components";import i from"@macrostrat/hyper";import{Value as l}from"@macrostrat/data-components";var r=globalThis,c={},m={},u=r.parcelRequirea149;null==u&&((u=function(e){if(e in c)return c[e].exports;if(e in m){var t=m[e];delete m[e];var n={id:e,exports:{}};return c[e]=n,t.call(n.exports,n,n.exports),n.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,t){m[e]=t},r.parcelRequirea149=u),u.register;var p=u("4Abge"),d=u("7YHvf"),f=u("lgTAP"),b=u("wtIgl"),h=u("iYfAq");let g=i.styled(d&&d.__esModule?d.default:d);function x(e){let{unconformityLabels:t=!0,unitComponent:n,unitComponentProps:o,showLabels:a=!0,width:s=300,columnWidth:i=150,showLabelColumn:l=!0,clipUnits:r=!0,maxInternalColumns:c}=e,m=(0,b.useMacrostratUnits)(),u=m[0]?.col_id;return g(p.LabelTrackerProvider,{units:m,key:u},[g(C,{width:i,unitComponent:n,unitComponentProps:o,showLabels:a,clipUnits:r,maxInternalColumns:c,unconformityLabels:t}),g.if(l)(p.SectionLabelsColumn,{width:s-i})])}function C(e){let{width:t,showLabels:n,unitComponent:o,unitComponentProps:s,clipUnits:i,maxInternalColumns:l,axisType:r,unconformityLabels:c=!0}=e,{sections:m,totalHeight:u}=(0,b.useMacrostratColumnData)(),p=m.map(e=>e.scaleInfo),d=t-2;return g("div.section-units-container",{style:{width:t}},[g(a,{className:"sections",height:u,innerWidth:d,paddingH:1},m.map(e=>{let{units:t,scaleInfo:a,section_id:r}=e;return g(v,{units:t,scaleInfo:a,key:`section-${r}`,unitComponent:o,unitComponentProps:s,showLabels:n,width:d,clipUnits:i,maxInternalColumns:l})})),g.if(c)(T,{width:t,sections:p,verbose:!1})])}function v(t){let{units:n,scaleInfo:o,unitComponent:a,showLabels:s=!0,width:i=300,unitComponentProps:l,className:r,clipUnits:c=!0,maxInternalColumns:m}=t,{domain:u,pixelScale:d,pixelHeight:b,scale:h}=o,x=e(()=>({...l,nColumns:Math.min(m??Math.floor(i/10),l?.nColumns??1/0,Math.max(...n.map(e=>e.column))+1)}),[n,l,m,i]);return g("g.section",{className:r,style:{"--section-height":`${b}px`,"--section-width":`${i}px`},transform:`translate(0 ${o.offset})`},g(f.MacrostratColumnProvider,{units:n,domain:u,pixelScale:d,scale:h},g(p.CompositeUnitsColumn,{width:i,showLabels:s,unitComponent:a,unitComponentProps:x,clipToFrame:c})))}function w(e){let{sections:t}=(0,b.useMacrostratColumnData)();return g(y,{packages:t.map(e=>e.scaleInfo),...e})}function y(e){let a,{levels:i=3,packages:l,unconformityLabels:r=!1}=e,c=t((0,f.useMacrostratBaseURL)()),m=(a="number"==typeof i?[2,Math.max(2+Math.min(i,5)-1,1)]:i)[1]-a[0]+1;return g("div.timescale-column",[g("div.timescales",l.map(e=>{let{pixelHeight:t,paddingTop:s,key:i,scale:l}=e;return g("div.timescale-container",{style:{paddingTop:s,"--timescale-level-count":m},key:i},[g(n,{orientation:o.VERTICAL,length:t,levels:a,absoluteAgeScale:!0,showAgeAxis:!1,scale:l,intervals:c})])})),g.if(r)(T,{width:"100%",sections:l,className:"unconformity-labels",axisType:s.AGE})])}function T(e){let{width:t,sections:n,className:o,axisType:a,verbose:s}=e;return g("div.unconformity-labels",{style:{width:t},className:o},n.map((e,o)=>{let i=n[o-1],l=e.offset-e.paddingTop;return g(A,{axisType:a,upperAge:i?.domain[0],lowerAge:e.domain[1],style:{width:t,height:e.paddingTop,top:l},verbose:s})}))}function A({upperAge:e,lowerAge:t,style:n,axisType:o,verbose:a=!1}){let i;if(null==e||null==t)return null;let r=Math.abs(e-t),c=0,m=null;r>1e3?m="giga":r>100?m="mega":r>10?m="large":r<1?(m="small",c=2):c=1,i=o===s.DEPTH||o===s.HEIGHT?g(l,{value:r.toLocaleString("en-US",{maximumFractionDigits:c}),unit:"m"}):g(h.Duration,{value:r,maximumFractionDigits:c});let u=null;return a&&(u=g([" ",g("span.prefix"," gap")])),g("div.unconformity",{style:n,className:m},[g("div.unconformity-inner",g("div.unconformity-text",[i,u]))])}export{x as SectionsColumn,T as UnconformityLabels,w as CompositeTimescale,y as CompositeTimescaleCore};
|
|
2
|
+
//# sourceMappingURL=column-views.60b5663d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,W,C,K,O,A,Q,0B,C,C,a,C,C,wB,C,K,uB,A,Q,O,C,C,kB,C,K,+B,A,Q,M,mB,A,Q,S,C,K,6B,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,E,S,E,E,S,E,E,S,E,E,S,E,E,SCwBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAyBhB,SAAS,EAAe,CAAyB,EACtD,GAAM,CAAA,mBACJ,EAAqB,CAAA,CAAA,CAAA,cACrB,CAAa,CAAA,mBACb,CAAkB,CAAA,WAClB,EAAa,CAAA,CAAA,CAAA,MACb,EAAQ,GAAA,CAAA,YACR,EAAc,GAAA,CAAA,gBACd,EAAkB,CAAA,CAAA,CAAA,UAClB,EAAY,CAAA,CAAA,CAAA,mBACZ,CAAkB,CACnB,CAAG,EAEE,EAAQ,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,IAGR,EAAM,CAAK,CAAC,EAAE,EAAE,OAEtB,OAAO,EAAE,EAAA,oBAAmB,CAAG,CAAE,MAAA,EAAO,IAAA,CAAI,EAAG,CAC7C,EAAE,EAAoB,CACpB,MAAO,EACP,cAAA,EACA,mBAAA,EACA,WAAA,EACA,UAAA,EACA,mBAAA,EACA,mBAAA,CACF,GACA,EAAE,EAAE,CAAC,GAAiB,EAAA,mBAAkB,CAAG,CACzC,MAAO,EAAQ,CACjB,GACD,CACH,CAEA,SAAS,EAAmB,CAAyB,EACnD,GAAM,CAAA,MACJ,CAAK,CAAA,WACL,CAAU,CAAA,cACV,CAAa,CAAA,mBACb,CAAkB,CAAA,UAClB,CAAS,CAAA,mBACT,CAAkB,CAAA,SAClB,CAAQ,CAAA,mBACR,EAAqB,CAAA,CAAA,CACtB,CAAG,EAEE,CAAA,SAAE,CAAQ,CAAA,YAAE,CAA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","sources":["<anon>","packages/column-views/src/section.ts"],"sourcesContent":["import \"./column-views.38835c99.js\";\nimport \"./column-views.1261be59.js\";\nimport \"./column-views.22c2d45b.js\";\nimport \"./column-views.e1813308.js\";\nimport \"./column-views.a08b0c9f.js\";\nimport {useMemo as $dA1GT$useMemo} from \"react\";\nimport {useMacrostratIntervals as $dA1GT$useMacrostratIntervals, Timescale as $dA1GT$Timescale, TimescaleOrientation as $dA1GT$TimescaleOrientation} from \"@macrostrat/timescale\";\nimport {SVG as $dA1GT$SVG, ColumnAxisType as $dA1GT$ColumnAxisType} from \"@macrostrat/column-components\";\nimport $dA1GT$macrostrathyper from \"@macrostrat/hyper\";\nimport {Value as $dA1GT$Value} from \"@macrostrat/data-components\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\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;\n\nvar $4Abge = parcelRequire(\"4Abge\");\n\n\n\n\n\nvar $7YHvf = parcelRequire(\"7YHvf\");\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\nvar $iYfAq = parcelRequire(\"iYfAq\");\n\nconst $69e10b1ec4ac73f6$var$h = (0, $dA1GT$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($7YHvf))));\nfunction $69e10b1ec4ac73f6$export$38cb0ab5af8f50d7(props) {\n const { unconformityLabels: unconformityLabels = true, unitComponent: unitComponent, unitComponentProps: unitComponentProps, showLabels: showLabels = true, width: width = 300, columnWidth: columnWidth = 150, showLabelColumn: showLabelColumn = true, clipUnits: clipUnits = true, maxInternalColumns: maxInternalColumns } = props;\n const units = (0, $wtIgl.useMacrostratUnits)();\n // Get a unique key for the column\n const key = units[0]?.col_id;\n return $69e10b1ec4ac73f6$var$h((0, $4Abge.LabelTrackerProvider), {\n units: units,\n key: key\n }, [\n $69e10b1ec4ac73f6$var$h($69e10b1ec4ac73f6$var$SectionUnitsColumn, {\n width: columnWidth,\n unitComponent: unitComponent,\n unitComponentProps: unitComponentProps,\n showLabels: showLabels,\n clipUnits: clipUnits,\n maxInternalColumns: maxInternalColumns,\n unconformityLabels: unconformityLabels\n }),\n $69e10b1ec4ac73f6$var$h.if(showLabelColumn)((0, $4Abge.SectionLabelsColumn), {\n width: width - columnWidth\n })\n ]);\n}\nfunction $69e10b1ec4ac73f6$var$SectionUnitsColumn(props) {\n const { width: width, showLabels: showLabels, unitComponent: unitComponent, unitComponentProps: unitComponentProps, clipUnits: clipUnits, maxInternalColumns: maxInternalColumns, axisType: axisType, unconformityLabels: unconformityLabels = true } = props;\n const { sections: sections, totalHeight: totalHeight } = (0, $wtIgl.useMacrostratColumnData)();\n const scaleData = sections.map((section)=>{\n return section.scaleInfo;\n });\n const innerWidth = width - 2;\n return $69e10b1ec4ac73f6$var$h(\"div.section-units-container\", {\n style: {\n width: width\n }\n }, [\n $69e10b1ec4ac73f6$var$h((0, $dA1GT$SVG), {\n className: \"sections\",\n height: totalHeight,\n innerWidth: innerWidth,\n paddingH: 1\n }, sections.map((group)=>{\n const { units: units, scaleInfo: scaleInfo, section_id: section_id } = group;\n const key = `section-${section_id}`;\n return $69e10b1ec4ac73f6$var$h($69e10b1ec4ac73f6$var$SectionUnits, {\n units: units,\n scaleInfo: scaleInfo,\n key: key,\n unitComponent: unitComponent,\n unitComponentProps: unitComponentProps,\n showLabels: showLabels,\n width: innerWidth,\n clipUnits: clipUnits,\n maxInternalColumns: maxInternalColumns\n });\n })),\n $69e10b1ec4ac73f6$var$h.if(unconformityLabels)($69e10b1ec4ac73f6$export$e12e53eeee198b99, {\n width: width,\n sections: scaleData,\n verbose: false\n })\n ]);\n}\nfunction $69e10b1ec4ac73f6$var$SectionUnits(props) {\n // Section with \"squishy\" timescale\n const { units: units, scaleInfo: scaleInfo, unitComponent: unitComponent, showLabels: showLabels = true, width: width = 300, unitComponentProps: unitComponentProps, className: className, clipUnits: clipUnits = true, maxInternalColumns: maxInternalColumns } = props;\n const { domain: domain, pixelScale: pixelScale, pixelHeight: pixelHeight, scale: scale } = scaleInfo;\n /** Ensure that we can arrange units into the maximum number\n * of columns defined by unitComponentProps, but that we don't\n * use more than necessary.\n */ const _unitComponentProps = (0, $dA1GT$useMemo)(()=>{\n return {\n ...unitComponentProps,\n nColumns: Math.min(maxInternalColumns ?? Math.floor(width / 10), unitComponentProps?.nColumns ?? Infinity, Math.max(...units.map((d)=>d.column)) + 1)\n };\n }, [\n units,\n unitComponentProps,\n maxInternalColumns,\n width\n ]);\n const style = {\n \"--section-height\": `${pixelHeight}px`,\n \"--section-width\": `${width}px`\n };\n return $69e10b1ec4ac73f6$var$h(\"g.section\", {\n className: className,\n style: style,\n transform: `translate(0 ${scaleInfo.offset})`\n }, $69e10b1ec4ac73f6$var$h((0, $lgTAP.MacrostratColumnProvider), {\n units: units,\n domain: domain,\n pixelScale: pixelScale,\n scale: scale\n }, $69e10b1ec4ac73f6$var$h((0, $4Abge.CompositeUnitsColumn), {\n width: width,\n showLabels: showLabels,\n unitComponent: unitComponent,\n unitComponentProps: _unitComponentProps,\n clipToFrame: clipUnits\n })));\n}\nfunction $69e10b1ec4ac73f6$export$db2df5a73a6fbe10(props) {\n const { sections: sections } = (0, $wtIgl.useMacrostratColumnData)();\n const sectionScales = sections.map((section)=>{\n return section.scaleInfo;\n });\n return $69e10b1ec4ac73f6$var$h($69e10b1ec4ac73f6$export$463f46772c64d403, {\n packages: sectionScales,\n ...props\n });\n}\nfunction $69e10b1ec4ac73f6$export$463f46772c64d403(props) {\n const { levels: levels = 3, packages: packages, unconformityLabels: unconformityLabels = false } = props;\n // Use intervals from Macrostrat API\n const baseURL = (0, $lgTAP.useMacrostratBaseURL)();\n const intervals = (0, $dA1GT$useMacrostratIntervals)(baseURL);\n let _levels;\n if (typeof levels === \"number\") // If levels is a number, use the most common starting level\n _levels = [\n 2,\n Math.max(2 + Math.min(levels, 5) - 1, 1)\n ];\n else _levels = levels;\n const nCols = _levels[1] - _levels[0] + 1;\n return $69e10b1ec4ac73f6$var$h(\"div.timescale-column\", [\n $69e10b1ec4ac73f6$var$h(\"div.timescales\", packages.map((group)=>{\n const { pixelHeight: pixelHeight, paddingTop: paddingTop, key: key, scale: scale } = group;\n return $69e10b1ec4ac73f6$var$h(\"div.timescale-container\", {\n style: {\n paddingTop: paddingTop,\n \"--timescale-level-count\": nCols\n },\n key: key\n }, [\n $69e10b1ec4ac73f6$var$h((0, $dA1GT$Timescale), {\n orientation: (0, $dA1GT$TimescaleOrientation).VERTICAL,\n length: pixelHeight,\n levels: _levels,\n absoluteAgeScale: true,\n showAgeAxis: false,\n scale: scale,\n intervals: intervals\n })\n ]);\n })),\n $69e10b1ec4ac73f6$var$h.if(unconformityLabels)($69e10b1ec4ac73f6$export$e12e53eeee198b99, {\n width: \"100%\",\n sections: packages,\n className: \"unconformity-labels\",\n axisType: (0, $dA1GT$ColumnAxisType).AGE\n })\n ]);\n}\nfunction $69e10b1ec4ac73f6$export$e12e53eeee198b99(props) {\n const { width: width, sections: sections, className: className, axisType: axisType, verbose: verbose } = props;\n return $69e10b1ec4ac73f6$var$h(\"div.unconformity-labels\", {\n style: {\n width: width\n },\n className: className\n }, sections.map((scaleInfo, i)=>{\n const lastGroup = sections[i - 1];\n const top = scaleInfo.offset - scaleInfo.paddingTop;\n const upperAge = lastGroup?.domain[0];\n const lowerAge = scaleInfo.domain[1];\n return $69e10b1ec4ac73f6$var$h($69e10b1ec4ac73f6$var$Unconformity, {\n axisType: axisType,\n upperAge: upperAge,\n lowerAge: lowerAge,\n style: {\n width: width,\n height: scaleInfo.paddingTop,\n top: top\n },\n verbose: verbose\n });\n }));\n}\nfunction $69e10b1ec4ac73f6$var$Unconformity({ upperAge: upperAge, lowerAge: lowerAge, style: style, axisType: axisType, verbose: verbose = false }) {\n if (upperAge == null || lowerAge == null) return null;\n const ageGap = Math.abs(upperAge - lowerAge);\n let maximumFractionDigits = 0;\n let className = null;\n if (ageGap > 1000) className = \"giga\";\n else if (ageGap > 100) className = \"mega\";\n else if (ageGap > 10) className = \"large\";\n else if (ageGap < 1) {\n className = \"small\";\n maximumFractionDigits = 2;\n } else maximumFractionDigits = 1;\n let val;\n if (axisType === (0, $dA1GT$ColumnAxisType).DEPTH || axisType === (0, $dA1GT$ColumnAxisType).HEIGHT) {\n const _txt = ageGap.toLocaleString(\"en-US\", {\n maximumFractionDigits: maximumFractionDigits\n });\n val = $69e10b1ec4ac73f6$var$h((0, $dA1GT$Value), {\n value: _txt,\n unit: \"m\"\n });\n } else val = $69e10b1ec4ac73f6$var$h((0, $iYfAq.Duration), {\n value: ageGap,\n maximumFractionDigits: maximumFractionDigits\n });\n let prefix = null;\n if (verbose) prefix = $69e10b1ec4ac73f6$var$h([\n \" \",\n $69e10b1ec4ac73f6$var$h(\"span.prefix\", \" gap\")\n ]);\n return $69e10b1ec4ac73f6$var$h(\"div.unconformity\", {\n style: style,\n className: className\n }, [\n $69e10b1ec4ac73f6$var$h(\"div.unconformity-inner\", $69e10b1ec4ac73f6$var$h(\"div.unconformity-text\", [\n val,\n prefix\n ]))\n ]);\n}\n\n\nexport {$69e10b1ec4ac73f6$export$38cb0ab5af8f50d7 as SectionsColumn, $69e10b1ec4ac73f6$export$e12e53eeee198b99 as UnconformityLabels, $69e10b1ec4ac73f6$export$db2df5a73a6fbe10 as CompositeTimescale, $69e10b1ec4ac73f6$export$463f46772c64d403 as CompositeTimescaleCore};\n//# sourceMappingURL=column-views.60b5663d.js.map\n","import {\n CompositeUnitsColumn,\n LabelTrackerProvider,\n SectionLabelsColumn,\n} from \"./units\";\nimport { ReactNode, FunctionComponent, useMemo } from \"react\";\nimport {\n Timescale,\n TimescaleOrientation,\n useMacrostratIntervals,\n} from \"@macrostrat/timescale\";\nimport { ColumnAxisType, SVG } from \"@macrostrat/column-components\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./column.module.sass\";\nimport {\n useMacrostratColumnData,\n useMacrostratUnits,\n MacrostratColumnProvider,\n useMacrostratBaseURL,\n} from \"./data-provider\";\nimport { Duration } from \"./unit-details\";\nimport { Value } from \"@macrostrat/data-components\";\nimport type { ExtUnit, PackageScaleLayoutData } from \"./prepare-units/types\";\n\nconst h = hyper.styled(styles);\n\nexport interface SectionSharedProps {\n unitComponent?: FunctionComponent<any>;\n unitComponentProps?: any;\n showLabels?: boolean;\n width?: number;\n columnWidth?: number;\n children?: ReactNode;\n showLabelColumn?: boolean;\n axisType?: ColumnAxisType;\n className?: string;\n clipUnits?: boolean;\n maxInternalColumns?: number;\n // Space between sections\n verticalSpacing?: number;\n // Whether to render unconformity labels\n unconformityLabels?: boolean;\n}\n\nexport interface SectionProps extends SectionSharedProps {\n units: ExtUnit[];\n scaleInfo: PackageScaleLayoutData;\n}\n\nexport function SectionsColumn(props: SectionSharedProps) {\n const {\n unconformityLabels = true,\n unitComponent,\n unitComponentProps,\n showLabels = true,\n width = 300,\n columnWidth = 150,\n showLabelColumn = true,\n clipUnits = true,\n maxInternalColumns,\n } = props;\n\n const units = useMacrostratUnits();\n\n // Get a unique key for the column\n const key = units[0]?.col_id;\n\n return h(LabelTrackerProvider, { units, key }, [\n h(SectionUnitsColumn, {\n width: columnWidth,\n unitComponent,\n unitComponentProps,\n showLabels,\n clipUnits,\n maxInternalColumns,\n unconformityLabels,\n }),\n h.if(showLabelColumn)(SectionLabelsColumn, {\n width: width - columnWidth,\n }),\n ]);\n}\n\nfunction SectionUnitsColumn(props: SectionSharedProps) {\n const {\n width,\n showLabels,\n unitComponent,\n unitComponentProps,\n clipUnits,\n maxInternalColumns,\n axisType,\n unconformityLabels = true,\n } = props;\n\n const { sections, totalHeight } = useMacrostratColumnData();\n\n const scaleData: PackageScaleLayoutData[] = sections.map((section) => {\n return section.scaleInfo;\n });\n\n const innerWidth = width - 2;\n\n return h(\"div.section-units-container\", { style: { width } }, [\n h(\n SVG,\n {\n className: \"sections\",\n height: totalHeight,\n innerWidth,\n paddingH: 1,\n },\n sections.map((group) => {\n const { units, scaleInfo, section_id } = group;\n\n const key = `section-${section_id}`;\n return h(\n SectionUnits,\n {\n units,\n scaleInfo,\n key,\n unitComponent,\n unitComponentProps,\n showLabels,\n width: innerWidth,\n clipUnits,\n maxInternalColumns,\n }, // This unconformity is with the section _above_\n );\n }),\n ),\n h.if(unconformityLabels)(UnconformityLabels, {\n width,\n sections: scaleData,\n verbose: false,\n }),\n ]);\n}\n\nfunction SectionUnits(props: SectionProps) {\n // Section with \"squishy\" timescale\n const {\n units,\n scaleInfo,\n unitComponent,\n showLabels = true,\n width = 300,\n unitComponentProps,\n className,\n clipUnits = true,\n maxInternalColumns,\n } = props;\n\n const { domain, pixelScale, pixelHeight, scale } = scaleInfo;\n\n /** Ensure that we can arrange units into the maximum number\n * of columns defined by unitComponentProps, but that we don't\n * use more than necessary.\n */\n const _unitComponentProps = useMemo(() => {\n return {\n ...unitComponentProps,\n nColumns: Math.min(\n maxInternalColumns ?? Math.floor(width / 10),\n unitComponentProps?.nColumns ?? Infinity,\n Math.max(...units.map((d) => d.column)) + 1,\n ),\n //axisType,\n };\n }, [units, unitComponentProps, maxInternalColumns, width]);\n\n const style = {\n \"--section-height\": `${pixelHeight}px`,\n \"--section-width\": `${width}px`,\n };\n\n return h(\n \"g.section\",\n { className, style, transform: `translate(0 ${scaleInfo.offset})` },\n h(\n MacrostratColumnProvider,\n {\n units,\n domain,\n pixelScale, // Actually pixels per myr,\n scale,\n },\n h(CompositeUnitsColumn, {\n width,\n showLabels,\n unitComponent,\n unitComponentProps: _unitComponentProps,\n clipToFrame: clipUnits,\n }),\n ),\n );\n}\n\ninterface CompositeTimescaleProps {\n levels?: [number, number] | number;\n unconformityLabels?: boolean;\n}\n\nexport function CompositeTimescale(props: CompositeTimescaleProps) {\n const { sections } = useMacrostratColumnData();\n const sectionScales = sections.map((section) => {\n return section.scaleInfo;\n });\n\n return h(CompositeTimescaleCore, {\n packages: sectionScales,\n ...props,\n });\n}\n\ntype CompositeTimescaleCoreProps = CompositeTimescaleProps & {\n packages: PackageScaleLayoutData[];\n};\n\nexport function CompositeTimescaleCore(props: CompositeTimescaleCoreProps) {\n const { levels = 3, packages, unconformityLabels = false } = props;\n\n // Use intervals from Macrostrat API\n const baseURL = useMacrostratBaseURL();\n const intervals = useMacrostratIntervals(baseURL);\n\n let _levels: [number, number];\n if (typeof levels === \"number\") {\n // If levels is a number, use the most common starting level\n _levels = [2, Math.max(2 + Math.min(levels, 5) - 1, 1)];\n } else {\n _levels = levels;\n }\n\n const nCols = _levels[1] - _levels[0] + 1;\n\n return h(\"div.timescale-column\", [\n h(\n \"div.timescales\",\n packages.map((group) => {\n const { pixelHeight, paddingTop, key, scale } = group;\n return h(\n \"div.timescale-container\",\n { style: { paddingTop, \"--timescale-level-count\": nCols }, key },\n [\n h(Timescale, {\n orientation: TimescaleOrientation.VERTICAL,\n length: pixelHeight,\n levels: _levels,\n absoluteAgeScale: true,\n showAgeAxis: false,\n scale,\n intervals,\n }),\n ],\n );\n }),\n ),\n h.if(unconformityLabels)(UnconformityLabels, {\n width: \"100%\",\n sections: packages,\n className: \"unconformity-labels\",\n axisType: ColumnAxisType.AGE,\n }),\n ]);\n}\n\nexport function UnconformityLabels(props: {\n width: string | number;\n sections: PackageScaleLayoutData[];\n axisType?: ColumnAxisType;\n className?: string;\n verbose?: boolean;\n}) {\n const { width, sections, className, axisType, verbose } = props;\n\n return h(\n \"div.unconformity-labels\",\n {\n style: {\n width,\n },\n className,\n },\n sections.map((scaleInfo, i) => {\n const lastGroup = sections[i - 1];\n const top = scaleInfo.offset - scaleInfo.paddingTop;\n const upperAge = lastGroup?.domain[0];\n const lowerAge = scaleInfo.domain[1];\n return h(Unconformity, {\n axisType,\n upperAge,\n lowerAge,\n style: {\n width,\n height: scaleInfo.paddingTop,\n top,\n },\n verbose,\n });\n }),\n );\n}\n\nfunction Unconformity({\n upperAge,\n lowerAge,\n style,\n axisType,\n verbose = false,\n}) {\n if (upperAge == null || lowerAge == null) {\n return null;\n }\n\n const ageGap = Math.abs(upperAge - lowerAge);\n\n let maximumFractionDigits = 0;\n\n let className: string = null;\n if (ageGap > 1000) {\n className = \"giga\";\n } else if (ageGap > 100) {\n className = \"mega\";\n } else if (ageGap > 10) {\n className = \"large\";\n } else if (ageGap < 1) {\n className = \"small\";\n maximumFractionDigits = 2;\n } else {\n maximumFractionDigits = 1;\n }\n\n let val: ReactNode;\n if (axisType === ColumnAxisType.DEPTH || axisType === ColumnAxisType.HEIGHT) {\n const _txt = ageGap.toLocaleString(\"en-US\", { maximumFractionDigits });\n val = h(Value, { value: _txt, unit: \"m\" });\n } else {\n val = h(Duration, { value: ageGap, maximumFractionDigits });\n }\n\n let prefix: ReactNode = null;\n if (verbose) {\n prefix = h([\" \", h(\"span.prefix\", \" gap\")]);\n }\n\n return h(\"div.unconformity\", { style, className }, [\n h(\"div.unconformity-inner\", h(\"div.unconformity-text\", [val, prefix])),\n ]);\n}\n"],"names":["useMemo","$dA1GT$useMemo","useMacrostratIntervals","$dA1GT$useMacrostratIntervals","Timescale","$dA1GT$Timescale","TimescaleOrientation","$dA1GT$TimescaleOrientation","SVG","$dA1GT$SVG","ColumnAxisType","$dA1GT$ColumnAxisType","$dA1GT$macrostrathyper","Value","$dA1GT$Value","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$4Abge","$7YHvf","$lgTAP","$wtIgl","$iYfAq","$69e10b1ec4ac73f6$var$h","styled","a","__esModule","default","$69e10b1ec4ac73f6$export$38cb0ab5af8f50d7","props","unconformityLabels","unitComponent","unitComponentProps","showLabels","width","columnWidth","showLabelColumn","clipUnits","maxInternalColumns","units","useMacrostratUnits","key","col_id","LabelTrackerProvider","$69e10b1ec4ac73f6$var$SectionUnitsColumn","if","SectionLabelsColumn","axisType","sections","totalHeight","useMacrostratColumnData","scaleData","map","section","scaleInfo","innerWidth","style","className","height","paddingH","group","section_id","$69e10b1ec4ac73f6$var$SectionUnits","$69e10b1ec4ac73f6$export$e12e53eeee198b99","verbose","domain","pixelScale","pixelHeight","scale","_unitComponentProps","nColumns","Math","min","floor","Infinity","max","d","column","transform","offset","MacrostratColumnProvider","CompositeUnitsColumn","clipToFrame","$69e10b1ec4ac73f6$export$db2df5a73a6fbe10","$69e10b1ec4ac73f6$export$463f46772c64d403","packages","_levels","levels","intervals","useMacrostratBaseURL","nCols","paddingTop","orientation","VERTICAL","length","absoluteAgeScale","showAgeAxis","AGE","i","lastGroup","top","$69e10b1ec4ac73f6$var$Unconformity","upperAge","lowerAge","val","ageGap","abs","maximumFractionDigits","DEPTH","HEIGHT","value","toLocaleString","unit","Duration","prefix","SectionsColumn","UnconformityLabels","CompositeTimescale","CompositeTimescaleCore"],"version":3,"file":"column-views.60b5663d.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./column-views.
|
|
2
|
-
//# sourceMappingURL=column-views.
|
|
1
|
+
import"./column-views.1ac9e2ed.js";import"./column-views.ae54d3e1.js";import"./column-views.8c00beb4.js";function e(e,a){return Object.keys(a).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return a[r]}})}),e}var a=globalThis,r={},o={},t=a.parcelRequirea149;null==t&&((t=function(e){if(e in r)return r[e].exports;if(e in o){var a=o[e];delete o[e];var t={id:e,exports:{}};return r[e]=t,a.call(t.exports,t,t.exports),t.exports}var c=Error("Cannot find module '"+e+"'");throw c.code="MODULE_NOT_FOUND",c}).register=function(e,a){o[e]=a},a.parcelRequirea149=t),t.register;var c={},n=t("34Mx7"),f=t("dYjy7"),$=t("6Tim5");e(c,n),e(c,f),e(c,$);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,$2e0f3abda6f981c3$export$8e7d97509e84cc49 as ColumnCorrelationMap,$c36af3ba15da093b$export$72ffe141ebf87ef1 as ColumnCorrelationProvider,$c36af3ba15da093b$export$21398703d3a9bb4d as useCorrelationMapStore,$ec03b0c93e1da04f$export$1e8149fc0d15fed0 as InsetMap,$25e107971dfb4328$export$d2995719c3a4ae17 as buildColumnsStyle};
|
|
2
|
+
//# sourceMappingURL=column-views.61dc64bc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,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,S,E,E,G,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,C,6C,oB,C,6C,yB,C,6C,sB,C,6C,Q,C,6C,iB","sources":["<anon>","packages/column-views/src/maps/index.ts"],"sourcesContent":["import \"./column-views.
|
|
1
|
+
{"mappings":"A,M,6C,A,O,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,S,E,E,G,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,C,6C,oB,C,6C,yB,C,6C,sB,C,6C,Q,C,6C,iB","sources":["<anon>","packages/column-views/src/maps/index.ts"],"sourcesContent":["import \"./column-views.1ac9e2ed.js\";\nimport \"./column-views.ae54d3e1.js\";\nimport \"./column-views.8c00beb4.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 $4a84f205caf763c1$exports = {};\n\nvar $34Mx7 = parcelRequire(\"34Mx7\");\n\nvar $dYjy7 = parcelRequire(\"dYjy7\");\n\nvar $6Tim5 = parcelRequire(\"6Tim5\");\n$parcel$exportWildcard($4a84f205caf763c1$exports, $34Mx7);\n$parcel$exportWildcard($4a84f205caf763c1$exports, $dYjy7);\n$parcel$exportWildcard($4a84f205caf763c1$exports, $6Tim5);\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, $2e0f3abda6f981c3$export$8e7d97509e84cc49 as ColumnCorrelationMap, $c36af3ba15da093b$export$72ffe141ebf87ef1 as ColumnCorrelationProvider, $c36af3ba15da093b$export$21398703d3a9bb4d as useCorrelationMapStore, $ec03b0c93e1da04f$export$1e8149fc0d15fed0 as InsetMap, $25e107971dfb4328$export$d2995719c3a4ae17 as buildColumnsStyle};\n//# sourceMappingURL=column-views.61dc64bc.js.map\n","export * from \"./column-navigation\";\nexport * from \"./column-correlation\";\nexport * from \"./_shared\";\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","$4a84f205caf763c1$exports","$34Mx7","$dYjy7","$6Tim5","$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","$2e0f3abda6f981c3$export$8e7d97509e84cc49","ColumnCorrelationMap","$c36af3ba15da093b$export$72ffe141ebf87ef1","ColumnCorrelationProvider","$c36af3ba15da093b$export$21398703d3a9bb4d","useCorrelationMapStore","$ec03b0c93e1da04f$export$1e8149fc0d15fed0","InsetMap","$25e107971dfb4328$export$d2995719c3a4ae17","buildColumnsStyle"],"version":3,"file":"column-views.61dc64bc.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./column-views.82cf7c0d.js";import"./column-views.
|
|
2
|
-
//# sourceMappingURL=column-views.
|
|
1
|
+
import"./column-views.82cf7c0d.js";import"./column-views.4ce5f5e4.js";import"./column-views.e1813308.js";import"./column-views.eea80478.js";import{useMemo as e}from"react";import t from"@macrostrat/hyper";import a from"classnames";import{AxisBottom as r}from"@visx/axis";import{referenceMeasuresToColumn as o}from"@macrostrat/stratigraphy-utils";import{useColumnLayout as s,SVG as l,ColumnLayoutProvider as i}from"@macrostrat/column-components";import{scaleLinear as n}from"d3-scale";function c(e,t,a,r){Object.defineProperty(e,t,{get:a,set:r,enumerable:!0,configurable:!0})}var u=globalThis,m={},p={},d=u.parcelRequirea149;null==d&&((d=function(e){if(e in m)return m[e].exports;if(e in p){var t=p[e];delete p[e];var a={id:e,exports:{}};return m[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){p[e]=t},u.parcelRequirea149=d),d.register;var f={};c(f,"IsotopesDataset",()=>_),c(f,"IsotopesColumn",()=>H);var g=d("62IHc"),h=d("l5EV6"),v=d("wtIgl"),x=d("6nrRo");let k=t.styled(x&&x.__esModule?x.default:x);function b(e){let{value:t,className:r,labelBottom:o,labelOffset:l,...i}=e,{sections:n}=(0,v.useMacrostratColumnData)(),{xScale:c}=s(),u=c(t);return k("g.tick",{transform:`translate(${u})`,className:r=a(r,{zero:0===t}),key:t},[k("g.tick-lines",n.map(t=>{let{scaleInfo:a}=t,r=a.offset,o=r+a.pixelHeight;return k("line",{y1:r,y2:o,strokeDasharray:e.strokeDasharray,strokeWidth:1})}))])}function _(t){let{parameter:a,color:r="dodgerblue"}=t,s=(0,v.useMacrostratUnits)(),l=(0,g.useMeasurementData)()??[],i=e(()=>{var e=o(s,l.filter(e=>e.measurement===a));let t=[];for(let a of e){let e=a.measure_value.map((e,t)=>({value:e,age:a.measure_age[t],position:a.measure_position[t],unit_id:a.unit_id,sample_id:a.sample_no[t],measurement:a.measurement}));Array.prototype.push.apply(t,e)}return t},[l,a,s]);return k(h.IsotopesDataArea,{getHeight:e=>e.age},k("g.data-points",i.map(e=>k(h.IsotopeDataPoint,{datum:e,fill:r}))))}function H(t){let{width:a=120,domain:r=[-14,6],parameter:o,label:s,color:c="dodgerblue",children:u=null,transform:m,getHeight:p,showAxis:d=!0,tickValues:f,nTicks:g=6,...h}=t,{totalHeight:x}=(0,v.useMacrostratColumnData)(),b=u;null==u&&null!=o&&(b=k(_,{parameter:o,color:c,getHeight:p}));let H=e(()=>n().domain(r).range([0,a]),[r,a]),S=f??H.ticks(g);return k("div.isotopes-column",[k(l,{height:x,innerWidth:a,paddingH:15},k(i,{width:a,xScale:H},k("g.isotopes-column",{className:o,transform:m},[k(w,{xScale:H,tickValues:S,width:a,...h}),b]))),k.if(d)(y,{width:a,label:s??o,xScale:H,tickValues:S,...h})])}function y(e){let{label:t,xScale:a,width:o,showAxis:s=!0,tickValues:i,...n}=e;return k("div.isotopes-scale-axis",[k(l,{innerWidth:o,height:45,paddingH:15},[k(r,{scale:a,tickLength:5,tickValues:i,stroke:"var(--column-stroke-color)",tickStroke:"var(--column-stroke-color)",...n,label:t})])])}function w(e){let{tickValues:t,xScale:a}=e;return k("g.scale-lines",t.map(e=>k(b,{value:e})))}export{_ as IsotopesDataset,H as IsotopesColumn};
|
|
2
|
+
//# sourceMappingURL=column-views.67fed1f5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,W,C,K,O,A,Q,M,mB,A,Q,M,Y,A,Q,c,C,K,Y,A,Q,6B,C,K,gC,A,Q,mB,C,C,O,C,C,wB,C,K,+B,A,Q,e,C,K,U,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,kB,I,G,E,E,iB,I,G,I,E,E,S,E,E,S,E,E,S,E,E,SCwBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GA8BvB,SAAS,EAAU,CAAqB,EACtC,GAAI,CAAA,MAAE,CAAK,CAAA,UAAE,CAAS,CAAA,YAAE,CAAW,CAAA,YAAE,CAAW,CAAE,GAAG,EAAM,CAAG,EACxD,CAAA,SAAE,CAAQ,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IAEf,CAAA,OAAE,CAAM,CAAE,CAAG,AAAA,IACb,EAAI,EAAO,GAGjB,OAAO,EAAE,SAAU,CAAE,UAFH,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAEH,UADhC,EAAY,AAAA,EAAW,EAAW,CAAE,KAAM,AAAU,IAAV,CAAY,GACX,IAAK,CAAM,EAAG,CACvD,EACE,eACA,EAAS,GAAG,CAAC,AAAC,IACZ,GAAM,CAAA,UAAE,CAAS,CAAE,CAAG,EAChB,EAAK,EAAU,MAAM,CACrB,EAAK,EAAK,EAAU,WAAW,CACrC,OAAO,EAAE,OAAQ,CACf,GAAA,EACA,GAAA,EACA,gBAAiB,EAAM,eAAe,CACtC,YAAa,CACf,EACF,IAEH,CACH,CAoCA,SAAS,EAAgB,CAAK,EAC5B,GAAM,CAAA,UAAE,CAAS,CAAA,MAAE,EAAQ,YAAA,CAAc,CAAG,EACtC,EAAQ,AAAA,CAAA,E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","sources":["<anon>","packages/column-views/src/facets/carbon-isotopes/isotopes-column.ts"],"sourcesContent":["import \"./column-views.82cf7c0d.js\";\nimport \"./column-views.ae9536b3.js\";\nimport \"./column-views.92e29010.js\";\nimport \"./column-views.eea80478.js\";\nimport {useMemo as $2wsb4$useMemo} from \"react\";\nimport $2wsb4$macrostrathyper from \"@macrostrat/hyper\";\nimport $2wsb4$classnames from \"classnames\";\nimport {AxisBottom as $2wsb4$AxisBottom} from \"@visx/axis\";\nimport {referenceMeasuresToColumn as $2wsb4$referenceMeasuresToColumn} from \"@macrostrat/stratigraphy-utils\";\nimport {useColumnLayout as $2wsb4$useColumnLayout, SVG as $2wsb4$SVG, ColumnLayoutProvider as $2wsb4$ColumnLayoutProvider} from \"@macrostrat/column-components\";\nimport {scaleLinear as $2wsb4$scaleLinear} from \"d3-scale\";\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 $5ccf8f2b270f7458$exports = {};\n\n$parcel$export($5ccf8f2b270f7458$exports, \"IsotopesDataset\", () => $5ccf8f2b270f7458$export$c69bd0285aa5d775);\n$parcel$export($5ccf8f2b270f7458$exports, \"IsotopesColumn\", () => $5ccf8f2b270f7458$export$5d8aa8022c284748);\n\n\n\n\n\nvar $62IHc = parcelRequire(\"62IHc\");\n\nvar $l5EV6 = parcelRequire(\"l5EV6\");\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\nvar $6nrRo = parcelRequire(\"6nrRo\");\n\nconst $5ccf8f2b270f7458$var$h = (0, $2wsb4$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($6nrRo))));\nfunction $5ccf8f2b270f7458$var$IsotopeText({ datum: datum, text: text, ...rest }) {\n const { pointLocator: pointLocator } = (0, $l5EV6.useDataLocator)();\n const [x, y] = pointLocator(datum);\n return $5ccf8f2b270f7458$var$h(\"text\", {\n x: x,\n y: y,\n ...rest\n }, text);\n}\nfunction $5ccf8f2b270f7458$var$ScaleLine(props) {\n let { value: value, className: className, labelBottom: labelBottom, labelOffset: labelOffset, ...rest } = props;\n const { sections: sections } = (0, $wtIgl.useMacrostratColumnData)();\n const { xScale: xScale } = (0, $2wsb4$useColumnLayout)();\n const x = xScale(value);\n const transform = `translate(${x})`;\n className = (0, $2wsb4$classnames)(className, {\n zero: value === 0\n });\n return $5ccf8f2b270f7458$var$h(\"g.tick\", {\n transform: transform,\n className: className,\n key: value\n }, [\n $5ccf8f2b270f7458$var$h(\"g.tick-lines\", sections.map((d)=>{\n const { scaleInfo: scaleInfo } = d;\n const y1 = scaleInfo.offset;\n const y2 = y1 + scaleInfo.pixelHeight;\n return $5ccf8f2b270f7458$var$h(\"line\", {\n y1: y1,\n y2: y2,\n strokeDasharray: props.strokeDasharray,\n strokeWidth: 1\n });\n }))\n ]);\n}\nfunction $5ccf8f2b270f7458$var$unnestPoints(measures) {\n let points = [];\n for (const meas of measures){\n const vals = meas.measure_value.map((d, i)=>{\n return {\n value: d,\n age: meas.measure_age[i],\n position: meas.measure_position[i],\n unit_id: meas.unit_id,\n sample_id: meas.sample_no[i],\n measurement: meas.measurement\n };\n });\n Array.prototype.push.apply(points, vals);\n }\n return points;\n}\nfunction $5ccf8f2b270f7458$export$c69bd0285aa5d775(props) {\n const { parameter: parameter, color: color = \"dodgerblue\" } = props;\n const units = (0, $wtIgl.useMacrostratUnits)();\n const measures = (0, $62IHc.useMeasurementData)() ?? [];\n const points = (0, $2wsb4$useMemo)(()=>{\n const data = measures.filter((d)=>d.measurement === parameter);\n const refMeasures = (0, $2wsb4$referenceMeasuresToColumn)(units, data);\n return $5ccf8f2b270f7458$var$unnestPoints(refMeasures);\n }, [\n measures,\n parameter,\n units\n ]);\n return $5ccf8f2b270f7458$var$h((0, $l5EV6.IsotopesDataArea), {\n getHeight (d) {\n return d.age;\n }\n }, $5ccf8f2b270f7458$var$h(\"g.data-points\", points.map((d)=>{\n return $5ccf8f2b270f7458$var$h((0, $l5EV6.IsotopeDataPoint), {\n datum: d,\n fill: color\n });\n })));\n}\nfunction $5ccf8f2b270f7458$export$5d8aa8022c284748(props) {\n const { width: width = 120, domain: domain = [\n -14,\n 6\n ], parameter: parameter, label: label, color: color = \"dodgerblue\", children: children = null, transform: transform, getHeight: getHeight, showAxis: showAxis = true, tickValues: _tickVals, nTicks: nTicks = 6, ...rest } = props;\n const { totalHeight: totalHeight } = (0, $wtIgl.useMacrostratColumnData)();\n let _children = children;\n if (children == null && parameter != null) _children = $5ccf8f2b270f7458$var$h($5ccf8f2b270f7458$export$c69bd0285aa5d775, {\n parameter: parameter,\n color: color,\n getHeight: getHeight\n });\n const xScale = (0, $2wsb4$useMemo)(()=>(0, $2wsb4$scaleLinear)().domain(domain).range([\n 0,\n width\n ]), [\n domain,\n width\n ]);\n const tickValues = _tickVals ?? xScale.ticks(nTicks);\n return $5ccf8f2b270f7458$var$h(\"div.isotopes-column\", [\n $5ccf8f2b270f7458$var$h((0, $2wsb4$SVG), {\n height: totalHeight,\n innerWidth: width,\n paddingH: 15\n }, $5ccf8f2b270f7458$var$h((0, $2wsb4$ColumnLayoutProvider), {\n width: width,\n xScale: xScale\n }, $5ccf8f2b270f7458$var$h(\"g.isotopes-column\", {\n className: parameter,\n transform: transform\n }, [\n $5ccf8f2b270f7458$var$h($5ccf8f2b270f7458$var$ColumnScaleLines, {\n xScale: xScale,\n tickValues: tickValues,\n width: width,\n ...rest\n }),\n _children\n ]))),\n $5ccf8f2b270f7458$var$h.if(showAxis)($5ccf8f2b270f7458$var$ColumnScaleAxis, {\n width: width,\n label: label ?? parameter,\n xScale: xScale,\n tickValues: tickValues,\n ...rest\n })\n ]);\n}\nfunction $5ccf8f2b270f7458$var$ColumnScaleAxis(props) {\n const { label: label, xScale: xScale, width: width, showAxis: showAxis = true, tickValues: tickValues, ...rest } = props;\n return $5ccf8f2b270f7458$var$h(\"div.isotopes-scale-axis\", [\n $5ccf8f2b270f7458$var$h((0, $2wsb4$SVG), {\n innerWidth: width,\n height: 45,\n paddingH: 15\n }, [\n $5ccf8f2b270f7458$var$h((0, $2wsb4$AxisBottom), {\n scale: xScale,\n tickLength: 5,\n tickValues: tickValues,\n stroke: \"var(--column-stroke-color)\",\n tickStroke: \"var(--column-stroke-color)\",\n ...rest,\n label: label\n })\n ])\n ]);\n}\nfunction $5ccf8f2b270f7458$var$ColumnScaleLines(props) {\n const { tickValues: tickValues, xScale: xScale } = props;\n return $5ccf8f2b270f7458$var$h(\"g.scale-lines\", tickValues.map((value)=>{\n return $5ccf8f2b270f7458$var$h($5ccf8f2b270f7458$var$ScaleLine, {\n value: value\n });\n }));\n}\n\n\nexport {$5ccf8f2b270f7458$export$c69bd0285aa5d775 as IsotopesDataset, $5ccf8f2b270f7458$export$5d8aa8022c284748 as IsotopesColumn};\n//# sourceMappingURL=column-views.4b4c214a.js.map\n","import { useMemo } from \"react\";\nimport hyper from \"@macrostrat/hyper\";\nimport classNames from \"classnames\";\nimport { AxisBottom } from \"@visx/axis\";\nimport { useMeasurementData } from \"./data-provider\";\n\nimport {\n IsotopesDataArea,\n useDataLocator,\n IsotopeDataPoint,\n} from \"./data-area\";\nimport { referenceMeasuresToColumn } from \"@macrostrat/stratigraphy-utils\";\nimport {\n SVG,\n ColumnLayoutProvider,\n useColumnLayout,\n} from \"@macrostrat/column-components\";\nimport {\n useMacrostratColumnData,\n useMacrostratUnits,\n} from \"../../data-provider\";\nimport styles from \"./isotopes-column.module.sass\";\nimport { scaleLinear } from \"d3-scale\";\n\nconst h = hyper.styled(styles);\n\ntype IsotopesTextProps = {\n datum: any;\n text: string;\n};\n\nfunction IsotopeText({ datum, text, ...rest }: IsotopesTextProps) {\n const { pointLocator } = useDataLocator();\n const [x, y] = pointLocator(datum);\n return h(\n \"text\",\n {\n x,\n y,\n ...rest,\n },\n text,\n );\n}\n\ninterface ScaleLineProps {\n value: number;\n className?: string;\n labelBottom?: boolean;\n labelOffset?: number;\n strokeDasharray?: string;\n stroke?: string | number;\n}\n\nfunction ScaleLine(props: ScaleLineProps) {\n let { value, className, labelBottom, labelOffset, ...rest } = props;\n const { sections } = useMacrostratColumnData();\n\n const { xScale } = useColumnLayout();\n const x = xScale(value);\n const transform = `translate(${x})`;\n className = classNames(className, { zero: value === 0 });\n return h(\"g.tick\", { transform, className, key: value }, [\n h(\n \"g.tick-lines\",\n sections.map((d) => {\n const { scaleInfo } = d;\n const y1 = scaleInfo.offset;\n const y2 = y1 + scaleInfo.pixelHeight;\n return h(\"line\", {\n y1,\n y2,\n strokeDasharray: props.strokeDasharray,\n strokeWidth: 1,\n });\n }),\n ),\n ]);\n}\n\nfunction unnestPoints(measures) {\n let points = [];\n for (const meas of measures) {\n const vals = meas.measure_value.map((d, i) => {\n return {\n value: d,\n age: meas.measure_age[i],\n position: meas.measure_position[i],\n unit_id: meas.unit_id,\n sample_id: meas.sample_no[i],\n measurement: meas.measurement,\n };\n });\n Array.prototype.push.apply(points, vals);\n }\n return points;\n}\n\ninterface IsotopesDatasetProps {\n color: string;\n parameter: string;\n}\n\ninterface IsotopeColumnProps extends IsotopesDatasetProps {\n width: number;\n tickValues?: number[];\n label: string;\n domain: [number, number];\n transform?: string;\n getHeight?: Function;\n nTicks?: number;\n showAxis?: boolean;\n}\n\nfunction IsotopesDataset(props) {\n const { parameter, color = \"dodgerblue\" } = props;\n const units = useMacrostratUnits();\n const measures = useMeasurementData() ?? [];\n\n const points = useMemo(() => {\n const data = measures.filter((d) => d.measurement === parameter);\n const refMeasures = referenceMeasuresToColumn(units, data);\n return unnestPoints(refMeasures);\n }, [measures, parameter, units]);\n\n return h(\n IsotopesDataArea,\n {\n getHeight(d) {\n return d.age;\n },\n } as any,\n h(\n \"g.data-points\",\n points.map((d) => {\n return h(IsotopeDataPoint, {\n datum: d,\n fill: color,\n });\n }),\n ),\n );\n}\n\nfunction IsotopesColumn(\n props: IsotopeColumnProps & { children?: React.ReactNode },\n) {\n const {\n width = 120,\n domain = [-14, 6],\n parameter,\n label,\n color = \"dodgerblue\",\n children = null,\n transform,\n getHeight,\n showAxis = true,\n tickValues: _tickVals,\n nTicks = 6,\n ...rest\n } = props;\n\n const { totalHeight } = useMacrostratColumnData();\n\n let _children: any = children;\n if (children == null && parameter != null) {\n _children = h(IsotopesDataset, { parameter, color, getHeight });\n }\n\n const xScale = useMemo(\n () => scaleLinear().domain(domain).range([0, width]),\n [domain, width],\n );\n\n const tickValues = _tickVals ?? xScale.ticks(nTicks);\n\n return h(\"div.isotopes-column\", [\n h(\n SVG,\n {\n height: totalHeight,\n innerWidth: width,\n paddingH: 15,\n },\n h(\n ColumnLayoutProvider,\n { width, xScale },\n h(\"g.isotopes-column\", { className: parameter, transform }, [\n h(ColumnScaleLines, {\n xScale,\n tickValues,\n width,\n ...rest,\n }),\n _children,\n ]),\n ),\n ),\n h.if(showAxis)(ColumnScaleAxis, {\n width,\n label: label ?? parameter,\n xScale,\n tickValues,\n ...rest,\n }),\n ]);\n}\n\nfunction ColumnScaleAxis(props) {\n const { label, xScale, width, showAxis = true, tickValues, ...rest } = props;\n\n return h(\"div.isotopes-scale-axis\", [\n h(\n SVG,\n {\n innerWidth: width,\n height: 45,\n paddingH: 15,\n },\n [\n h(AxisBottom, {\n scale: xScale,\n tickLength: 5,\n tickValues,\n stroke: \"var(--column-stroke-color)\",\n tickStroke: \"var(--column-stroke-color)\",\n ...rest,\n label,\n }),\n ],\n ),\n ]);\n}\n\nfunction ColumnScaleLines(props) {\n const { tickValues, xScale } = props;\n\n return h(\n \"g.scale-lines\",\n tickValues.map((value) => {\n return h(ScaleLine, { value });\n }),\n );\n}\n\nexport { IsotopesColumn, IsotopesDataset };\n"],"names":["useMemo","$2wsb4$useMemo","$2wsb4$macrostrathyper","$2wsb4$classnames","AxisBottom","$2wsb4$AxisBottom","referenceMeasuresToColumn","$2wsb4$referenceMeasuresToColumn","useColumnLayout","$2wsb4$useColumnLayout","SVG","$2wsb4$SVG","ColumnLayoutProvider","$2wsb4$ColumnLayoutProvider","scaleLinear","$2wsb4$scaleLinear","$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","$5ccf8f2b270f7458$exports","$5ccf8f2b270f7458$export$c69bd0285aa5d775","$5ccf8f2b270f7458$export$5d8aa8022c284748","$62IHc","$l5EV6","$wtIgl","$6nrRo","$5ccf8f2b270f7458$var$h","styled","a","__esModule","default","$5ccf8f2b270f7458$var$ScaleLine","props","value","className","labelBottom","labelOffset","rest","sections","useMacrostratColumnData","xScale","x","transform","zero","key","map","d","scaleInfo","y1","offset","y2","pixelHeight","strokeDasharray","strokeWidth","parameter","color","units","useMacrostratUnits","measures","useMeasurementData","points","filter","measurement","meas","vals","measure_value","i","age","measure_age","position","measure_position","unit_id","sample_id","sample_no","Array","prototype","push","apply","IsotopesDataArea","getHeight","IsotopeDataPoint","datum","fill","width","domain","label","children","showAxis","tickValues","_tickVals","nTicks","totalHeight","_children","range","ticks","height","innerWidth","paddingH","$5ccf8f2b270f7458$var$ColumnScaleLines","if","$5ccf8f2b270f7458$var$ColumnScaleAxis","scale","tickLength","stroke","tickStroke","IsotopesDataset","IsotopesColumn"],"version":3,"file":"column-views.4b4c214a.js.map","sourceRoot":"../../../../"}
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,W,C,K,O,A,Q,M,mB,A,Q,M,Y,A,Q,c,C,K,Y,A,Q,6B,C,K,gC,A,Q,mB,C,C,O,C,C,wB,C,K,+B,A,Q,e,C,K,U,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,kB,I,G,E,E,iB,I,G,I,E,E,S,E,E,S,E,E,S,E,E,SCwBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GA8BvB,SAAS,EAAU,CAAqB,EACtC,GAAI,CAAA,MAAE,CAAK,CAAA,UAAE,CAAS,CAAA,YAAE,CAAW,CAAA,YAAE,CAAW,CAAE,GAAG,EAAM,CAAG,EACxD,CAAA,SAAE,CAAQ,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IAEf,CAAA,OAAE,CAAM,CAAE,CAAG,AAAA,IACb,EAAI,EAAO,GAGjB,OAAO,EAAE,SAAU,CAAE,UAFH,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAEH,UADhC,EAAY,AAAA,EAAW,EAAW,CAAE,KAAM,AAAU,IAAV,CAAY,GACX,IAAK,CAAM,EAAG,CACvD,EACE,eACA,EAAS,GAAG,CAAC,AAAC,IACZ,GAAM,CAAA,UAAE,CAAS,CAAE,CAAG,EAChB,EAAK,EAAU,MAAM,CACrB,EAAK,EAAK,EAAU,WAAW,CACrC,OAAO,EAAE,OAAQ,CACf,GAAA,EACA,GAAA,EACA,gBAAiB,EAAM,eAAe,CACtC,YAAa,CACf,EACF,IAEH,CACH,CAoCA,SAAS,EAAgB,CAAK,EAC5B,GAAM,CAAA,UAAE,CAAS,CAAA,MAAE,EAAQ,YAAA,CAAc,CAAG,EACtC,EAAQ,AAAA,CAAA,E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","sources":["<anon>","packages/column-views/src/facets/carbon-isotopes/isotopes-column.ts"],"sourcesContent":["import \"./column-views.82cf7c0d.js\";\nimport \"./column-views.4ce5f5e4.js\";\nimport \"./column-views.e1813308.js\";\nimport \"./column-views.eea80478.js\";\nimport {useMemo as $2wsb4$useMemo} from \"react\";\nimport $2wsb4$macrostrathyper from \"@macrostrat/hyper\";\nimport $2wsb4$classnames from \"classnames\";\nimport {AxisBottom as $2wsb4$AxisBottom} from \"@visx/axis\";\nimport {referenceMeasuresToColumn as $2wsb4$referenceMeasuresToColumn} from \"@macrostrat/stratigraphy-utils\";\nimport {useColumnLayout as $2wsb4$useColumnLayout, SVG as $2wsb4$SVG, ColumnLayoutProvider as $2wsb4$ColumnLayoutProvider} from \"@macrostrat/column-components\";\nimport {scaleLinear as $2wsb4$scaleLinear} from \"d3-scale\";\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 $5ccf8f2b270f7458$exports = {};\n\n$parcel$export($5ccf8f2b270f7458$exports, \"IsotopesDataset\", () => $5ccf8f2b270f7458$export$c69bd0285aa5d775);\n$parcel$export($5ccf8f2b270f7458$exports, \"IsotopesColumn\", () => $5ccf8f2b270f7458$export$5d8aa8022c284748);\n\n\n\n\n\nvar $62IHc = parcelRequire(\"62IHc\");\n\nvar $l5EV6 = parcelRequire(\"l5EV6\");\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\nvar $6nrRo = parcelRequire(\"6nrRo\");\n\nconst $5ccf8f2b270f7458$var$h = (0, $2wsb4$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($6nrRo))));\nfunction $5ccf8f2b270f7458$var$IsotopeText({ datum: datum, text: text, ...rest }) {\n const { pointLocator: pointLocator } = (0, $l5EV6.useDataLocator)();\n const [x, y] = pointLocator(datum);\n return $5ccf8f2b270f7458$var$h(\"text\", {\n x: x,\n y: y,\n ...rest\n }, text);\n}\nfunction $5ccf8f2b270f7458$var$ScaleLine(props) {\n let { value: value, className: className, labelBottom: labelBottom, labelOffset: labelOffset, ...rest } = props;\n const { sections: sections } = (0, $wtIgl.useMacrostratColumnData)();\n const { xScale: xScale } = (0, $2wsb4$useColumnLayout)();\n const x = xScale(value);\n const transform = `translate(${x})`;\n className = (0, $2wsb4$classnames)(className, {\n zero: value === 0\n });\n return $5ccf8f2b270f7458$var$h(\"g.tick\", {\n transform: transform,\n className: className,\n key: value\n }, [\n $5ccf8f2b270f7458$var$h(\"g.tick-lines\", sections.map((d)=>{\n const { scaleInfo: scaleInfo } = d;\n const y1 = scaleInfo.offset;\n const y2 = y1 + scaleInfo.pixelHeight;\n return $5ccf8f2b270f7458$var$h(\"line\", {\n y1: y1,\n y2: y2,\n strokeDasharray: props.strokeDasharray,\n strokeWidth: 1\n });\n }))\n ]);\n}\nfunction $5ccf8f2b270f7458$var$unnestPoints(measures) {\n let points = [];\n for (const meas of measures){\n const vals = meas.measure_value.map((d, i)=>{\n return {\n value: d,\n age: meas.measure_age[i],\n position: meas.measure_position[i],\n unit_id: meas.unit_id,\n sample_id: meas.sample_no[i],\n measurement: meas.measurement\n };\n });\n Array.prototype.push.apply(points, vals);\n }\n return points;\n}\nfunction $5ccf8f2b270f7458$export$c69bd0285aa5d775(props) {\n const { parameter: parameter, color: color = \"dodgerblue\" } = props;\n const units = (0, $wtIgl.useMacrostratUnits)();\n const measures = (0, $62IHc.useMeasurementData)() ?? [];\n const points = (0, $2wsb4$useMemo)(()=>{\n const data = measures.filter((d)=>d.measurement === parameter);\n const refMeasures = (0, $2wsb4$referenceMeasuresToColumn)(units, data);\n return $5ccf8f2b270f7458$var$unnestPoints(refMeasures);\n }, [\n measures,\n parameter,\n units\n ]);\n return $5ccf8f2b270f7458$var$h((0, $l5EV6.IsotopesDataArea), {\n getHeight (d) {\n return d.age;\n }\n }, $5ccf8f2b270f7458$var$h(\"g.data-points\", points.map((d)=>{\n return $5ccf8f2b270f7458$var$h((0, $l5EV6.IsotopeDataPoint), {\n datum: d,\n fill: color\n });\n })));\n}\nfunction $5ccf8f2b270f7458$export$5d8aa8022c284748(props) {\n const { width: width = 120, domain: domain = [\n -14,\n 6\n ], parameter: parameter, label: label, color: color = \"dodgerblue\", children: children = null, transform: transform, getHeight: getHeight, showAxis: showAxis = true, tickValues: _tickVals, nTicks: nTicks = 6, ...rest } = props;\n const { totalHeight: totalHeight } = (0, $wtIgl.useMacrostratColumnData)();\n let _children = children;\n if (children == null && parameter != null) _children = $5ccf8f2b270f7458$var$h($5ccf8f2b270f7458$export$c69bd0285aa5d775, {\n parameter: parameter,\n color: color,\n getHeight: getHeight\n });\n const xScale = (0, $2wsb4$useMemo)(()=>(0, $2wsb4$scaleLinear)().domain(domain).range([\n 0,\n width\n ]), [\n domain,\n width\n ]);\n const tickValues = _tickVals ?? xScale.ticks(nTicks);\n return $5ccf8f2b270f7458$var$h(\"div.isotopes-column\", [\n $5ccf8f2b270f7458$var$h((0, $2wsb4$SVG), {\n height: totalHeight,\n innerWidth: width,\n paddingH: 15\n }, $5ccf8f2b270f7458$var$h((0, $2wsb4$ColumnLayoutProvider), {\n width: width,\n xScale: xScale\n }, $5ccf8f2b270f7458$var$h(\"g.isotopes-column\", {\n className: parameter,\n transform: transform\n }, [\n $5ccf8f2b270f7458$var$h($5ccf8f2b270f7458$var$ColumnScaleLines, {\n xScale: xScale,\n tickValues: tickValues,\n width: width,\n ...rest\n }),\n _children\n ]))),\n $5ccf8f2b270f7458$var$h.if(showAxis)($5ccf8f2b270f7458$var$ColumnScaleAxis, {\n width: width,\n label: label ?? parameter,\n xScale: xScale,\n tickValues: tickValues,\n ...rest\n })\n ]);\n}\nfunction $5ccf8f2b270f7458$var$ColumnScaleAxis(props) {\n const { label: label, xScale: xScale, width: width, showAxis: showAxis = true, tickValues: tickValues, ...rest } = props;\n return $5ccf8f2b270f7458$var$h(\"div.isotopes-scale-axis\", [\n $5ccf8f2b270f7458$var$h((0, $2wsb4$SVG), {\n innerWidth: width,\n height: 45,\n paddingH: 15\n }, [\n $5ccf8f2b270f7458$var$h((0, $2wsb4$AxisBottom), {\n scale: xScale,\n tickLength: 5,\n tickValues: tickValues,\n stroke: \"var(--column-stroke-color)\",\n tickStroke: \"var(--column-stroke-color)\",\n ...rest,\n label: label\n })\n ])\n ]);\n}\nfunction $5ccf8f2b270f7458$var$ColumnScaleLines(props) {\n const { tickValues: tickValues, xScale: xScale } = props;\n return $5ccf8f2b270f7458$var$h(\"g.scale-lines\", tickValues.map((value)=>{\n return $5ccf8f2b270f7458$var$h($5ccf8f2b270f7458$var$ScaleLine, {\n value: value\n });\n }));\n}\n\n\nexport {$5ccf8f2b270f7458$export$c69bd0285aa5d775 as IsotopesDataset, $5ccf8f2b270f7458$export$5d8aa8022c284748 as IsotopesColumn};\n//# sourceMappingURL=column-views.67fed1f5.js.map\n","import { useMemo } from \"react\";\nimport hyper from \"@macrostrat/hyper\";\nimport classNames from \"classnames\";\nimport { AxisBottom } from \"@visx/axis\";\nimport { useMeasurementData } from \"./data-provider\";\n\nimport {\n IsotopesDataArea,\n useDataLocator,\n IsotopeDataPoint,\n} from \"./data-area\";\nimport { referenceMeasuresToColumn } from \"@macrostrat/stratigraphy-utils\";\nimport {\n SVG,\n ColumnLayoutProvider,\n useColumnLayout,\n} from \"@macrostrat/column-components\";\nimport {\n useMacrostratColumnData,\n useMacrostratUnits,\n} from \"../../data-provider\";\nimport styles from \"./isotopes-column.module.sass\";\nimport { scaleLinear } from \"d3-scale\";\n\nconst h = hyper.styled(styles);\n\ntype IsotopesTextProps = {\n datum: any;\n text: string;\n};\n\nfunction IsotopeText({ datum, text, ...rest }: IsotopesTextProps) {\n const { pointLocator } = useDataLocator();\n const [x, y] = pointLocator(datum);\n return h(\n \"text\",\n {\n x,\n y,\n ...rest,\n },\n text,\n );\n}\n\ninterface ScaleLineProps {\n value: number;\n className?: string;\n labelBottom?: boolean;\n labelOffset?: number;\n strokeDasharray?: string;\n stroke?: string | number;\n}\n\nfunction ScaleLine(props: ScaleLineProps) {\n let { value, className, labelBottom, labelOffset, ...rest } = props;\n const { sections } = useMacrostratColumnData();\n\n const { xScale } = useColumnLayout();\n const x = xScale(value);\n const transform = `translate(${x})`;\n className = classNames(className, { zero: value === 0 });\n return h(\"g.tick\", { transform, className, key: value }, [\n h(\n \"g.tick-lines\",\n sections.map((d) => {\n const { scaleInfo } = d;\n const y1 = scaleInfo.offset;\n const y2 = y1 + scaleInfo.pixelHeight;\n return h(\"line\", {\n y1,\n y2,\n strokeDasharray: props.strokeDasharray,\n strokeWidth: 1,\n });\n }),\n ),\n ]);\n}\n\nfunction unnestPoints(measures) {\n let points = [];\n for (const meas of measures) {\n const vals = meas.measure_value.map((d, i) => {\n return {\n value: d,\n age: meas.measure_age[i],\n position: meas.measure_position[i],\n unit_id: meas.unit_id,\n sample_id: meas.sample_no[i],\n measurement: meas.measurement,\n };\n });\n Array.prototype.push.apply(points, vals);\n }\n return points;\n}\n\ninterface IsotopesDatasetProps {\n color: string;\n parameter: string;\n}\n\ninterface IsotopeColumnProps extends IsotopesDatasetProps {\n width: number;\n tickValues?: number[];\n label: string;\n domain: [number, number];\n transform?: string;\n getHeight?: Function;\n nTicks?: number;\n showAxis?: boolean;\n}\n\nfunction IsotopesDataset(props) {\n const { parameter, color = \"dodgerblue\" } = props;\n const units = useMacrostratUnits();\n const measures = useMeasurementData() ?? [];\n\n const points = useMemo(() => {\n const data = measures.filter((d) => d.measurement === parameter);\n const refMeasures = referenceMeasuresToColumn(units, data);\n return unnestPoints(refMeasures);\n }, [measures, parameter, units]);\n\n return h(\n IsotopesDataArea,\n {\n getHeight(d) {\n return d.age;\n },\n } as any,\n h(\n \"g.data-points\",\n points.map((d) => {\n return h(IsotopeDataPoint, {\n datum: d,\n fill: color,\n });\n }),\n ),\n );\n}\n\nfunction IsotopesColumn(\n props: IsotopeColumnProps & { children?: React.ReactNode },\n) {\n const {\n width = 120,\n domain = [-14, 6],\n parameter,\n label,\n color = \"dodgerblue\",\n children = null,\n transform,\n getHeight,\n showAxis = true,\n tickValues: _tickVals,\n nTicks = 6,\n ...rest\n } = props;\n\n const { totalHeight } = useMacrostratColumnData();\n\n let _children: any = children;\n if (children == null && parameter != null) {\n _children = h(IsotopesDataset, { parameter, color, getHeight });\n }\n\n const xScale = useMemo(\n () => scaleLinear().domain(domain).range([0, width]),\n [domain, width],\n );\n\n const tickValues = _tickVals ?? xScale.ticks(nTicks);\n\n return h(\"div.isotopes-column\", [\n h(\n SVG,\n {\n height: totalHeight,\n innerWidth: width,\n paddingH: 15,\n },\n h(\n ColumnLayoutProvider,\n { width, xScale },\n h(\"g.isotopes-column\", { className: parameter, transform }, [\n h(ColumnScaleLines, {\n xScale,\n tickValues,\n width,\n ...rest,\n }),\n _children,\n ]),\n ),\n ),\n h.if(showAxis)(ColumnScaleAxis, {\n width,\n label: label ?? parameter,\n xScale,\n tickValues,\n ...rest,\n }),\n ]);\n}\n\nfunction ColumnScaleAxis(props) {\n const { label, xScale, width, showAxis = true, tickValues, ...rest } = props;\n\n return h(\"div.isotopes-scale-axis\", [\n h(\n SVG,\n {\n innerWidth: width,\n height: 45,\n paddingH: 15,\n },\n [\n h(AxisBottom, {\n scale: xScale,\n tickLength: 5,\n tickValues,\n stroke: \"var(--column-stroke-color)\",\n tickStroke: \"var(--column-stroke-color)\",\n ...rest,\n label,\n }),\n ],\n ),\n ]);\n}\n\nfunction ColumnScaleLines(props) {\n const { tickValues, xScale } = props;\n\n return h(\n \"g.scale-lines\",\n tickValues.map((value) => {\n return h(ScaleLine, { value });\n }),\n );\n}\n\nexport { IsotopesColumn, IsotopesDataset };\n"],"names":["useMemo","$2wsb4$useMemo","$2wsb4$macrostrathyper","$2wsb4$classnames","AxisBottom","$2wsb4$AxisBottom","referenceMeasuresToColumn","$2wsb4$referenceMeasuresToColumn","useColumnLayout","$2wsb4$useColumnLayout","SVG","$2wsb4$SVG","ColumnLayoutProvider","$2wsb4$ColumnLayoutProvider","scaleLinear","$2wsb4$scaleLinear","$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","$5ccf8f2b270f7458$exports","$5ccf8f2b270f7458$export$c69bd0285aa5d775","$5ccf8f2b270f7458$export$5d8aa8022c284748","$62IHc","$l5EV6","$wtIgl","$6nrRo","$5ccf8f2b270f7458$var$h","styled","a","__esModule","default","$5ccf8f2b270f7458$var$ScaleLine","props","value","className","labelBottom","labelOffset","rest","sections","useMacrostratColumnData","xScale","x","transform","zero","key","map","d","scaleInfo","y1","offset","y2","pixelHeight","strokeDasharray","strokeWidth","parameter","color","units","useMacrostratUnits","measures","useMeasurementData","points","filter","measurement","meas","vals","measure_value","i","age","measure_age","position","measure_position","unit_id","sample_id","sample_no","Array","prototype","push","apply","IsotopesDataArea","getHeight","IsotopeDataPoint","datum","fill","width","domain","label","children","showAxis","tickValues","_tickVals","nTicks","totalHeight","_children","range","ticks","height","innerWidth","paddingH","$5ccf8f2b270f7458$var$ColumnScaleLines","if","$5ccf8f2b270f7458$var$ColumnScaleAxis","scale","tickLength","stroke","tickStroke","IsotopesDataset","IsotopesColumn"],"version":3,"file":"column-views.67fed1f5.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./column-views.
|
|
2
|
-
//# sourceMappingURL=column-views.
|
|
1
|
+
import"./column-views.22c2d45b.js";import{create as e,useStore as r}from"zustand";import{lineIntersect as t}from"@turf/line-intersect";import o from"@turf/distance";import{nearestPointOnLine as n}from"@turf/nearest-point-on-line";import{centroid as i}from"@turf/centroid";import{createContext as a,useState as s,useEffect as l,useContext as u}from"react";import c from"@macrostrat/hyper";import{createComputed as f}from"zustand-computed";function p(e,r,t,o){Object.defineProperty(e,r,{get:t,set:o,enumerable:!0,configurable:!0})}var d=globalThis,m={},g={},b=d.parcelRequirea149;null==b&&((b=function(e){if(e in m)return m[e].exports;if(e in g){var r=g[e];delete g[e];var t={id:e,exports:{}};return m[e]=t,r.call(t.exports,t,t.exports),t.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,r){g[e]=r},d.parcelRequirea149=b),b.register;var C={};p(C,"ColumnCorrelationProvider",()=>P),p(C,"useCorrelationMapStore",()=>x);var v=b("lgTAP");let L=a(null),y=f(e=>{var r,a,s,l;return{focusedColumns:(r=e.columns,a=e.focusedLine,null==r||null==a||a.coordinates.length<2?[]:function(e,r){var t,a;let s=e.map(e=>i(e.geometry)),l=s.map(e=>n(r,e)),u=l.map(e=>o(e.geometry.coordinates,r.coordinates[0]));return t=e.map((e,r)=>({...e,properties:{...e.properties,centroid:s[r],nearestPointOnLine:l[r],distanceAlongLine:u[r]}})),a=e=>e.properties.distanceAlongLine,t.sort((e,r)=>a(e)-a(r))}((s=r,l=a,null==s||null==l?[]:s.filter(e=>{let r=e.geometry;return null!=r&&("Polygon"==r.type||"MultiPolygon"==r.type)&&t(l,r).features.length>0})),a))}});function P({children:t,columns:o,projectID:n,inProcess:i,focusedLine:a,onSelectColumns:u}){let[f]=s(()=>e(y((e,r)=>({focusedLine:a,columns:null,onClickMap(t,o){let n=r(),i=t.originalEvent.shiftKey,a=n.focusedLine?.coordinates??[];a.length>=2&&!i&&(a=[]),e({focusedLine:{type:"LineString",coordinates:[...a,o.coordinates]}})}})))),p=(0,v.useMacrostratColumns)(n,i);l(()=>{null!=p&&f.setState({columns:p})},[p]);let d=r(f,e=>e.focusedColumns),m=r(f,e=>e.focusedLine);return l(()=>{u?.(d,m)},[d,m]),c(L.Provider,{value:f},t)}function x(e){let t=u(L);if(null==t)throw Error("Missing CorrelationMapProvider");return r(t,e)}export{P as ColumnCorrelationProvider,x as useCorrelationMapStore};
|
|
2
|
+
//# sourceMappingURL=column-views.7faaf6c8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,Q,U,C,C,Y,C,K,S,A,Q,iB,C,K,sB,A,Q,M,gB,A,Q,sB,C,K,6B,A,Q,Y,C,K,gB,A,Q,iB,C,C,Y,C,C,a,C,C,c,C,K,O,A,Q,M,mB,A,Q,kB,C,K,kB,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,4B,I,G,E,E,yB,I,G,I,E,E,SCuCA,IAAM,EACJ,AAAA,EAAoD,MAOhD,EAAW,AAAA,EAAe,AAAC,QA0E/B,EACA,EAYA,EACA,QAvFO,CAEL,cAAA,EAuEF,EAvE0C,EAAM,OAAO,CAwEvD,EAxEyD,EAAM,WAAW,CA0E1E,AAAI,AAAW,MAAX,GAAmB,AAAQ,MAAR,GAAgB,EAAK,WAAW,CAAC,MAAM,CAAG,EACxD,EAAE,CAEJ,AAkCT,SACE,CAA8B,CAC9B,CAAgB,MAyBF,EAAM,EAvBpB,IAAM,EAAY,EAAQ,GAAG,CAAC,AAAC,GAAQ,AAAA,EAAS,EAAI,QAAQ,GACtD,EAAkB,EAAU,GAAG,CAAC,AAAC,GACrC,AAAA,EAAmB,EAAM,IAErB,EAAY,EAAgB,GAAG,CAAC,AAAC,GACrC,AAAA,EAAS,EAAM,QAAQ,CAAC,WAAW,CAAE,EAAK,WAAW,CAAC,EAAE,GAe1D,OAGc,EAfG,EAAQ,GAAG,CAAC,CAAC,EAAK,IAC1B,CAAA,CACL,GAAG,CAAG,CACN,WAAY,CACV,GAAG,EAAI,UAAU,CACjB,SAAU,CAAS,CAAC,EAAE,CACtB,mBAAoB,CAAe,CAAC,EAAE,CACtC,kBAAmB,CAAS,CAAC,EAAE,AACjC,CACF,CAAA,GAMkB,EAHM,AAAC,GAAM,EAAE,UAAU,CAAC,iBAAiB,CAIxD,EAAK,IAAI,CAAC,CAAC,EAAG,IAAM,EAAS,GAAK,EAAS,GAHpD,GApDE,EAN6B,EAO7B,EAPsC,EAStC,AAAI,AAAW,MAAX,GAAmB,AAAQ,MAAR,EACd,EAAE,CAGJ,EAAQ,MAAM,CAAC,AAAC,IACrB,IAAM,EAAO,EAAI,QAAQ,QAGzB,AAAY,MAAR,GACA,CAAA,AAAa,WAAb,EAAK,IAAI,EAAiB,AAAa,gBAAb,EAAK,IAAI,AAAI,GAGpC,AADc,AAAA,EAAc,EAAM,GACrB,QAAQ,CAAC,MAAM,CAAG,CACxC,IArBE,GA9EF,IAGK,SAAS,EAA0B,CAAA,SACxC,CAAQ,CAAA,QACR,CAAO,CAAA,UACP,CAAS,CAAA,UACT,CAAS,CAAA,YACT,CAAW,CAAA,gBACX,CAAe,CACU,EACzB,GAAM,CAAC,EAAM,CAAG,AAAA,EAAS,IAChB,AAAA,EACL,EAAS,CAAC,EAAK,IACN,CAAA,CACL,YAAA,EACA,QAAS,KACT,WAAW,CAA6B,CAAE,CAAY,EACpD,IAAM,EAAQ,IAER,EAAkB,EAAM,aAAa,CAAC,QAAQ,CAChD,EAAiB,EAAM,WAAW,EAAE,aAAe,EAAE,AAErD,CAAA,EAAe,MAAM,EAAI,GAAK,CAAC,GAEjC,CAAA,EAAiB,EAAE,AAAF,EAEnB,EAAI,CACF,YAAa,CACX,KAAM,aACN,YAAa,IAAI,EAAgB,EAAM,WAAW,CAAC,AACrD,CACF,EACF,CACF,CAAA,KAOA,EAAW,AAAA,CAAA,EAAA,EAAA,oBAAmB,AAAnB,EAAqB,EAAW,GACjD,AAAA,EAAU,KACJ,AAAY,MAAZ,GACF,EAAM,QAAQ,CAAC,CAAE,QAAS,CAAS,EAEvC,EAAG,CAAC,EAAS,EAGb,IAAM,EAAiB,AAAA,EAAS,EAAO,AAAC,GAAU,EAAM,cAAc,EAChE,EAAe,AAAA,EAAS,EAAO,AAAC,GAAU,EAAM,WAAW,EAMjE,OAJA,AAAA,EAAU,KACR,IAAkB,EAAgB,EACpC,EAAG,CAAC,EAAgB,EAAa,EAE1B,AAAA,EAAE,EAAwB,QAAQ,CAAE,CAAE,MAAO,CAAM,EAAG,EAC/D,CAEO,SAAS,EACd,CAA6D,EAE7D,IAAM,EAAW,AAAA,EAAW,GAC5B,GAAI,AAAY,MAAZ,EACF,MAAM,AAAI,MAAM,kCAElB,OAAO,AAAA,EAAS,EAAU,EAC5B,Q,K,yB,C,K,sB","sources":["<anon>","packages/column-views/src/maps/column-correlation/state.ts"],"sourcesContent":["import \"./column-views.6099a3a9.js\";\nimport {create as $g7zod$create, useStore as $g7zod$useStore} from \"zustand\";\nimport {lineIntersect as $g7zod$lineIntersect} from \"@turf/line-intersect\";\nimport $g7zod$turfdistance from \"@turf/distance\";\nimport {nearestPointOnLine as $g7zod$nearestPointOnLine} from \"@turf/nearest-point-on-line\";\nimport {centroid as $g7zod$centroid} from \"@turf/centroid\";\nimport {createContext as $g7zod$createContext, useState as $g7zod$useState, useEffect as $g7zod$useEffect, useContext as $g7zod$useContext} from \"react\";\nimport $g7zod$macrostrathyper from \"@macrostrat/hyper\";\nimport {createComputed as $g7zod$createComputed} from \"zustand-computed\";\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 $c36af3ba15da093b$exports = {};\n\n$parcel$export($c36af3ba15da093b$exports, \"ColumnCorrelationProvider\", () => $c36af3ba15da093b$export$72ffe141ebf87ef1);\n$parcel$export($c36af3ba15da093b$exports, \"useCorrelationMapStore\", () => $c36af3ba15da093b$export$21398703d3a9bb4d);\n\n\n\n\n\n\n\n\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\nconst $c36af3ba15da093b$var$CorrelationStoreContext = (0, $g7zod$createContext)(null);\n/** A computed store that will automatically update when the state changes */ const $c36af3ba15da093b$var$computed = (0, $g7zod$createComputed)((state)=>{\n return {\n // We compute the focused columns based on columns and focusedLine\n focusedColumns: $c36af3ba15da093b$var$buildCorrelationColumns(state.columns, state.focusedLine)\n };\n});\nfunction $c36af3ba15da093b$export$72ffe141ebf87ef1({ children: children, columns: columns, projectID: projectID, inProcess: inProcess, focusedLine: focusedLine, onSelectColumns: onSelectColumns }) {\n const [store] = (0, $g7zod$useState)(()=>{\n return (0, $g7zod$create)($c36af3ba15da093b$var$computed((set, get)=>{\n return {\n focusedLine: focusedLine,\n columns: null,\n onClickMap (event, point) {\n const state = get();\n // Check if shift key is pressed\n const shiftKeyPressed = event.originalEvent.shiftKey;\n let existingCoords = state.focusedLine?.coordinates ?? [];\n if (existingCoords.length >= 2 && !shiftKeyPressed) // Reset the line to zero length\n existingCoords = [];\n set({\n focusedLine: {\n type: \"LineString\",\n coordinates: [\n ...existingCoords,\n point.coordinates\n ]\n }\n });\n }\n };\n }));\n });\n // Set up the store\n /** TODO: move the fetching of all columns to within the map */ const _columns = (0, $lgTAP.useMacrostratColumns)(projectID, inProcess);\n (0, $g7zod$useEffect)(()=>{\n if (_columns != null) store.setState({\n columns: _columns\n });\n }, [\n _columns\n ]);\n // Kind of an awkward way to do this but we need to allow the selector to run\n const focusedColumns = (0, $g7zod$useStore)(store, (state)=>state.focusedColumns);\n const _focusedLine = (0, $g7zod$useStore)(store, (state)=>state.focusedLine);\n (0, $g7zod$useEffect)(()=>{\n onSelectColumns?.(focusedColumns, _focusedLine);\n }, [\n focusedColumns,\n _focusedLine\n ]);\n return (0, $g7zod$macrostrathyper)($c36af3ba15da093b$var$CorrelationStoreContext.Provider, {\n value: store\n }, children);\n}\nfunction $c36af3ba15da093b$export$21398703d3a9bb4d(selector) {\n const storeApi = (0, $g7zod$useContext)($c36af3ba15da093b$var$CorrelationStoreContext);\n if (storeApi == null) throw new Error(\"Missing CorrelationMapProvider\");\n return (0, $g7zod$useStore)(storeApi, selector);\n}\nfunction $c36af3ba15da093b$var$buildCorrelationColumns(columns, line) {\n if (columns == null || line == null || line.coordinates.length < 2) return [];\n return $c36af3ba15da093b$var$orderColumnsByDistance($c36af3ba15da093b$var$computeIntersectingColumns(columns, line), line);\n}\nfunction $c36af3ba15da093b$var$computeIntersectingColumns(columns, line) {\n if (columns == null || line == null) return [];\n return columns.filter((col)=>{\n const poly = col.geometry;\n // Some in-process datasets seem to have null geometries\n if (poly == null) return false;\n if (poly.type != \"Polygon\" && poly.type != \"MultiPolygon\") return false;\n const intersection = (0, $g7zod$lineIntersect)(line, poly);\n return intersection.features.length > 0;\n });\n}\nfunction $c36af3ba15da093b$var$orderColumnsByDistance(columns, line) {\n const centroids = columns.map((col)=>(0, $g7zod$centroid)(col.geometry));\n const projectedPoints = centroids.map((point)=>(0, $g7zod$nearestPointOnLine)(line, point));\n const distances = projectedPoints.map((point)=>(0, $g7zod$turfdistance)(point.geometry.coordinates, line.coordinates[0]));\n let newColumns = columns.map((col, i)=>{\n return {\n ...col,\n properties: {\n ...col.properties,\n centroid: centroids[i],\n nearestPointOnLine: projectedPoints[i],\n distanceAlongLine: distances[i]\n }\n };\n });\n return $c36af3ba15da093b$var$sorted(newColumns, (d)=>d.properties.distanceAlongLine);\n}\nfunction $c36af3ba15da093b$var$sorted(data, accessor) {\n return data.sort((a, b)=>accessor(a) - accessor(b));\n}\n\n\nexport {$c36af3ba15da093b$export$72ffe141ebf87ef1 as ColumnCorrelationProvider, $c36af3ba15da093b$export$21398703d3a9bb4d as useCorrelationMapStore};\n//# sourceMappingURL=column-views.fcdc74c4.js.map\n","import { LineString, Point } from \"geojson\";\nimport { create, StoreApi, useStore } from \"zustand\";\nimport type { ColumnGeoJSONRecord } from \"@macrostrat/api-types\";\n// Turf intersection\nimport { lineIntersect } from \"@turf/line-intersect\";\nimport distance from \"@turf/distance\";\nimport { nearestPointOnLine } from \"@turf/nearest-point-on-line\";\nimport { centroid } from \"@turf/centroid\";\nimport {\n createContext,\n useState,\n useContext,\n ReactNode,\n useEffect,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { createComputed } from \"zustand-computed\";\nimport { useMacrostratColumns } from \"../../data-provider/base\";\n\nexport interface CorrelationMapInput {\n columns: ColumnGeoJSONRecord[];\n focusedLine: LineString | null;\n}\n\nexport interface CorrelationMapStore extends CorrelationMapInput {\n onClickMap: (event: mapboxgl.MapMouseEvent, point: Point) => void;\n}\n\nexport interface CorrelationProviderProps extends CorrelationMapInput {\n projectID?: number;\n inProcess?: boolean;\n columns: ColumnGeoJSONRecord[] | null;\n children: ReactNode;\n onSelectColumns?: (\n columns: FocusedColumnGeoJSONRecord[],\n line: LineString | null,\n ) => void;\n}\n\nconst CorrelationStoreContext =\n createContext<StoreApi<CorrelationMapStore> | null>(null);\n\ntype ComputedStore = {\n focusedColumns: FocusedColumnGeoJSONRecord[];\n};\n\n/** A computed store that will automatically update when the state changes */\nconst computed = createComputed((state: CorrelationMapStore): ComputedStore => {\n return {\n // We compute the focused columns based on columns and focusedLine\n focusedColumns: buildCorrelationColumns(state.columns, state.focusedLine),\n };\n}) as any;\n\nexport function ColumnCorrelationProvider({\n children,\n columns,\n projectID,\n inProcess,\n focusedLine,\n onSelectColumns,\n}: CorrelationProviderProps) {\n const [store] = useState(() => {\n return create<CorrelationMapStore & ComputedStore>(\n computed((set, get): CorrelationMapStore => {\n return {\n focusedLine,\n columns: null,\n onClickMap(event: mapboxgl.MapMouseEvent, point: Point) {\n const state = get();\n // Check if shift key is pressed\n const shiftKeyPressed = event.originalEvent.shiftKey;\n let existingCoords = state.focusedLine?.coordinates ?? [];\n\n if (existingCoords.length >= 2 && !shiftKeyPressed) {\n // Reset the line to zero length\n existingCoords = [];\n }\n set({\n focusedLine: {\n type: \"LineString\",\n coordinates: [...existingCoords, point.coordinates],\n },\n });\n },\n };\n }),\n );\n });\n\n // Set up the store\n /** TODO: move the fetching of all columns to within the map */\n const _columns = useMacrostratColumns(projectID, inProcess);\n useEffect(() => {\n if (_columns != null) {\n store.setState({ columns: _columns });\n }\n }, [_columns]);\n\n // Kind of an awkward way to do this but we need to allow the selector to run\n const focusedColumns = useStore(store, (state) => state.focusedColumns);\n const _focusedLine = useStore(store, (state) => state.focusedLine);\n\n useEffect(() => {\n onSelectColumns?.(focusedColumns, _focusedLine);\n }, [focusedColumns, _focusedLine]);\n\n return h(CorrelationStoreContext.Provider, { value: store }, children);\n}\n\nexport function useCorrelationMapStore(\n selector: (state: CorrelationMapStore & ComputedStore) => any,\n) {\n const storeApi = useContext(CorrelationStoreContext);\n if (storeApi == null) {\n throw new Error(\"Missing CorrelationMapProvider\");\n }\n return useStore(storeApi, selector);\n}\n\nfunction buildCorrelationColumns(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): FocusedColumnGeoJSONRecord[] {\n if (columns == null || line == null || line.coordinates.length < 2) {\n return [];\n }\n return orderColumnsByDistance(\n computeIntersectingColumns(columns, line),\n line,\n );\n}\n\nfunction computeIntersectingColumns(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): ColumnGeoJSONRecord[] {\n if (columns == null || line == null) {\n return [];\n }\n\n return columns.filter((col) => {\n const poly = col.geometry;\n\n // Some in-process datasets seem to have null geometries\n if (poly == null) return false;\n if (poly.type != \"Polygon\" && poly.type != \"MultiPolygon\") return false;\n\n const intersection = lineIntersect(line, poly);\n return intersection.features.length > 0;\n });\n}\n\ninterface FocusedColumnGeoJSONRecord extends ColumnGeoJSONRecord {\n properties: {\n centroid: Point;\n nearestPointOnLine: Point;\n distanceAlongLine: number;\n } & ColumnGeoJSONRecord[\"properties\"];\n}\n\nfunction orderColumnsByDistance(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): FocusedColumnGeoJSONRecord[] {\n const centroids = columns.map((col) => centroid(col.geometry));\n const projectedPoints = centroids.map((point) =>\n nearestPointOnLine(line, point),\n );\n const distances = projectedPoints.map((point) =>\n distance(point.geometry.coordinates, line.coordinates[0]),\n );\n\n let newColumns = columns.map((col, i) => {\n return {\n ...col,\n properties: {\n ...col.properties,\n centroid: centroids[i],\n nearestPointOnLine: projectedPoints[i],\n distanceAlongLine: distances[i],\n },\n };\n });\n\n return sorted(newColumns, (d) => d.properties.distanceAlongLine);\n}\n\nfunction sorted(data, accessor: (d) => number) {\n return data.sort((a, b) => accessor(a) - accessor(b));\n}\n"],"names":["create","$g7zod$create","useStore","$g7zod$useStore","lineIntersect","$g7zod$lineIntersect","$g7zod$turfdistance","nearestPointOnLine","$g7zod$nearestPointOnLine","centroid","$g7zod$centroid","createContext","$g7zod$createContext","useState","$g7zod$useState","useEffect","$g7zod$useEffect","useContext","$g7zod$useContext","$g7zod$macrostrathyper","createComputed","$g7zod$createComputed","$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","$c36af3ba15da093b$exports","$c36af3ba15da093b$export$72ffe141ebf87ef1","$c36af3ba15da093b$export$21398703d3a9bb4d","$lgTAP","$c36af3ba15da093b$var$CorrelationStoreContext","$c36af3ba15da093b$var$computed","state","columns","line","focusedColumns","focusedLine","coordinates","length","$c36af3ba15da093b$var$orderColumnsByDistance","data","accessor","centroids","map","col","geometry","projectedPoints","point","distances","i","properties","distanceAlongLine","d","sort","a","b","filter","poly","type","intersection","features","children","projectID","inProcess","onSelectColumns","store","onClickMap","event","shiftKeyPressed","originalEvent","shiftKey","existingCoords","_columns","useMacrostratColumns","setState","_focusedLine","Provider","value","selector","storeApi","ColumnCorrelationProvider","useCorrelationMapStore"],"version":3,"file":"column-views.fcdc74c4.js.map","sourceRoot":"../../../../"}
|
|
1
|
+
{"mappings":"A,M,6C,A,Q,U,C,C,Y,C,K,S,A,Q,iB,C,K,sB,A,Q,M,gB,A,Q,sB,C,K,6B,A,Q,Y,C,K,gB,A,Q,iB,C,C,Y,C,C,a,C,C,c,C,K,O,A,Q,M,mB,A,Q,kB,C,K,kB,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,4B,I,G,E,E,yB,I,G,I,E,E,SCuCA,IAAM,EACJ,AAAA,EAAoD,MAOhD,EAAW,AAAA,EAAe,AAAC,QA0E/B,EACA,EAYA,EACA,QAvFO,CAEL,cAAA,EAuEF,EAvE0C,EAAM,OAAO,CAwEvD,EAxEyD,EAAM,WAAW,CA0E1E,AAAI,AAAW,MAAX,GAAmB,AAAQ,MAAR,GAAgB,EAAK,WAAW,CAAC,MAAM,CAAG,EACxD,EAAE,CAEJ,AAkCT,SACE,CAA8B,CAC9B,CAAgB,MAyBF,EAAM,EAvBpB,IAAM,EAAY,EAAQ,GAAG,CAAC,AAAC,GAAQ,AAAA,EAAS,EAAI,QAAQ,GACtD,EAAkB,EAAU,GAAG,CAAC,AAAC,GACrC,AAAA,EAAmB,EAAM,IAErB,EAAY,EAAgB,GAAG,CAAC,AAAC,GACrC,AAAA,EAAS,EAAM,QAAQ,CAAC,WAAW,CAAE,EAAK,WAAW,CAAC,EAAE,GAe1D,OAGc,EAfG,EAAQ,GAAG,CAAC,CAAC,EAAK,IAC1B,CAAA,CACL,GAAG,CAAG,CACN,WAAY,CACV,GAAG,EAAI,UAAU,CACjB,SAAU,CAAS,CAAC,EAAE,CACtB,mBAAoB,CAAe,CAAC,EAAE,CACtC,kBAAmB,CAAS,CAAC,EAAE,AACjC,CACF,CAAA,GAMkB,EAHM,AAAC,GAAM,EAAE,UAAU,CAAC,iBAAiB,CAIxD,EAAK,IAAI,CAAC,CAAC,EAAG,IAAM,EAAS,GAAK,EAAS,GAHpD,GApDE,EAN6B,EAO7B,EAPsC,EAStC,AAAI,AAAW,MAAX,GAAmB,AAAQ,MAAR,EACd,EAAE,CAGJ,EAAQ,MAAM,CAAC,AAAC,IACrB,IAAM,EAAO,EAAI,QAAQ,QAGzB,AAAY,MAAR,GACA,CAAA,AAAa,WAAb,EAAK,IAAI,EAAiB,AAAa,gBAAb,EAAK,IAAI,AAAI,GAGpC,AADc,AAAA,EAAc,EAAM,GACrB,QAAQ,CAAC,MAAM,CAAG,CACxC,IArBE,GA9EF,IAGK,SAAS,EAA0B,CAAA,SACxC,CAAQ,CAAA,QACR,CAAO,CAAA,UACP,CAAS,CAAA,UACT,CAAS,CAAA,YACT,CAAW,CAAA,gBACX,CAAe,CACU,EACzB,GAAM,CAAC,EAAM,CAAG,AAAA,EAAS,IAChB,AAAA,EACL,EAAS,CAAC,EAAK,IACN,CAAA,CACL,YAAA,EACA,QAAS,KACT,WAAW,CAA6B,CAAE,CAAY,EACpD,IAAM,EAAQ,IAER,EAAkB,EAAM,aAAa,CAAC,QAAQ,CAChD,EAAiB,EAAM,WAAW,EAAE,aAAe,EAAE,AAErD,CAAA,EAAe,MAAM,EAAI,GAAK,CAAC,GAEjC,CAAA,EAAiB,EAAE,AAAF,EAEnB,EAAI,CACF,YAAa,CACX,KAAM,aACN,YAAa,IAAI,EAAgB,EAAM,WAAW,CAAC,AACrD,CACF,EACF,CACF,CAAA,KAOA,EAAW,AAAA,CAAA,EAAA,EAAA,oBAAmB,AAAnB,EAAqB,EAAW,GACjD,AAAA,EAAU,KACJ,AAAY,MAAZ,GACF,EAAM,QAAQ,CAAC,CAAE,QAAS,CAAS,EAEvC,EAAG,CAAC,EAAS,EAGb,IAAM,EAAiB,AAAA,EAAS,EAAO,AAAC,GAAU,EAAM,cAAc,EAChE,EAAe,AAAA,EAAS,EAAO,AAAC,GAAU,EAAM,WAAW,EAMjE,OAJA,AAAA,EAAU,KACR,IAAkB,EAAgB,EACpC,EAAG,CAAC,EAAgB,EAAa,EAE1B,AAAA,EAAE,EAAwB,QAAQ,CAAE,CAAE,MAAO,CAAM,EAAG,EAC/D,CAEO,SAAS,EACd,CAA6D,EAE7D,IAAM,EAAW,AAAA,EAAW,GAC5B,GAAI,AAAY,MAAZ,EACF,MAAM,AAAI,MAAM,kCAElB,OAAO,AAAA,EAAS,EAAU,EAC5B,Q,K,yB,C,K,sB","sources":["<anon>","packages/column-views/src/maps/column-correlation/state.ts"],"sourcesContent":["import \"./column-views.22c2d45b.js\";\nimport {create as $g7zod$create, useStore as $g7zod$useStore} from \"zustand\";\nimport {lineIntersect as $g7zod$lineIntersect} from \"@turf/line-intersect\";\nimport $g7zod$turfdistance from \"@turf/distance\";\nimport {nearestPointOnLine as $g7zod$nearestPointOnLine} from \"@turf/nearest-point-on-line\";\nimport {centroid as $g7zod$centroid} from \"@turf/centroid\";\nimport {createContext as $g7zod$createContext, useState as $g7zod$useState, useEffect as $g7zod$useEffect, useContext as $g7zod$useContext} from \"react\";\nimport $g7zod$macrostrathyper from \"@macrostrat/hyper\";\nimport {createComputed as $g7zod$createComputed} from \"zustand-computed\";\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 $c36af3ba15da093b$exports = {};\n\n$parcel$export($c36af3ba15da093b$exports, \"ColumnCorrelationProvider\", () => $c36af3ba15da093b$export$72ffe141ebf87ef1);\n$parcel$export($c36af3ba15da093b$exports, \"useCorrelationMapStore\", () => $c36af3ba15da093b$export$21398703d3a9bb4d);\n\n\n\n\n\n\n\n\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\nconst $c36af3ba15da093b$var$CorrelationStoreContext = (0, $g7zod$createContext)(null);\n/** A computed store that will automatically update when the state changes */ const $c36af3ba15da093b$var$computed = (0, $g7zod$createComputed)((state)=>{\n return {\n // We compute the focused columns based on columns and focusedLine\n focusedColumns: $c36af3ba15da093b$var$buildCorrelationColumns(state.columns, state.focusedLine)\n };\n});\nfunction $c36af3ba15da093b$export$72ffe141ebf87ef1({ children: children, columns: columns, projectID: projectID, inProcess: inProcess, focusedLine: focusedLine, onSelectColumns: onSelectColumns }) {\n const [store] = (0, $g7zod$useState)(()=>{\n return (0, $g7zod$create)($c36af3ba15da093b$var$computed((set, get)=>{\n return {\n focusedLine: focusedLine,\n columns: null,\n onClickMap (event, point) {\n const state = get();\n // Check if shift key is pressed\n const shiftKeyPressed = event.originalEvent.shiftKey;\n let existingCoords = state.focusedLine?.coordinates ?? [];\n if (existingCoords.length >= 2 && !shiftKeyPressed) // Reset the line to zero length\n existingCoords = [];\n set({\n focusedLine: {\n type: \"LineString\",\n coordinates: [\n ...existingCoords,\n point.coordinates\n ]\n }\n });\n }\n };\n }));\n });\n // Set up the store\n /** TODO: move the fetching of all columns to within the map */ const _columns = (0, $lgTAP.useMacrostratColumns)(projectID, inProcess);\n (0, $g7zod$useEffect)(()=>{\n if (_columns != null) store.setState({\n columns: _columns\n });\n }, [\n _columns\n ]);\n // Kind of an awkward way to do this but we need to allow the selector to run\n const focusedColumns = (0, $g7zod$useStore)(store, (state)=>state.focusedColumns);\n const _focusedLine = (0, $g7zod$useStore)(store, (state)=>state.focusedLine);\n (0, $g7zod$useEffect)(()=>{\n onSelectColumns?.(focusedColumns, _focusedLine);\n }, [\n focusedColumns,\n _focusedLine\n ]);\n return (0, $g7zod$macrostrathyper)($c36af3ba15da093b$var$CorrelationStoreContext.Provider, {\n value: store\n }, children);\n}\nfunction $c36af3ba15da093b$export$21398703d3a9bb4d(selector) {\n const storeApi = (0, $g7zod$useContext)($c36af3ba15da093b$var$CorrelationStoreContext);\n if (storeApi == null) throw new Error(\"Missing CorrelationMapProvider\");\n return (0, $g7zod$useStore)(storeApi, selector);\n}\nfunction $c36af3ba15da093b$var$buildCorrelationColumns(columns, line) {\n if (columns == null || line == null || line.coordinates.length < 2) return [];\n return $c36af3ba15da093b$var$orderColumnsByDistance($c36af3ba15da093b$var$computeIntersectingColumns(columns, line), line);\n}\nfunction $c36af3ba15da093b$var$computeIntersectingColumns(columns, line) {\n if (columns == null || line == null) return [];\n return columns.filter((col)=>{\n const poly = col.geometry;\n // Some in-process datasets seem to have null geometries\n if (poly == null) return false;\n if (poly.type != \"Polygon\" && poly.type != \"MultiPolygon\") return false;\n const intersection = (0, $g7zod$lineIntersect)(line, poly);\n return intersection.features.length > 0;\n });\n}\nfunction $c36af3ba15da093b$var$orderColumnsByDistance(columns, line) {\n const centroids = columns.map((col)=>(0, $g7zod$centroid)(col.geometry));\n const projectedPoints = centroids.map((point)=>(0, $g7zod$nearestPointOnLine)(line, point));\n const distances = projectedPoints.map((point)=>(0, $g7zod$turfdistance)(point.geometry.coordinates, line.coordinates[0]));\n let newColumns = columns.map((col, i)=>{\n return {\n ...col,\n properties: {\n ...col.properties,\n centroid: centroids[i],\n nearestPointOnLine: projectedPoints[i],\n distanceAlongLine: distances[i]\n }\n };\n });\n return $c36af3ba15da093b$var$sorted(newColumns, (d)=>d.properties.distanceAlongLine);\n}\nfunction $c36af3ba15da093b$var$sorted(data, accessor) {\n return data.sort((a, b)=>accessor(a) - accessor(b));\n}\n\n\nexport {$c36af3ba15da093b$export$72ffe141ebf87ef1 as ColumnCorrelationProvider, $c36af3ba15da093b$export$21398703d3a9bb4d as useCorrelationMapStore};\n//# sourceMappingURL=column-views.7faaf6c8.js.map\n","import { LineString, Point } from \"geojson\";\nimport { create, StoreApi, useStore } from \"zustand\";\nimport type { ColumnGeoJSONRecord } from \"@macrostrat/api-types\";\n// Turf intersection\nimport { lineIntersect } from \"@turf/line-intersect\";\nimport distance from \"@turf/distance\";\nimport { nearestPointOnLine } from \"@turf/nearest-point-on-line\";\nimport { centroid } from \"@turf/centroid\";\nimport {\n createContext,\n useState,\n useContext,\n ReactNode,\n useEffect,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { createComputed } from \"zustand-computed\";\nimport { useMacrostratColumns } from \"../../data-provider/base\";\n\nexport interface CorrelationMapInput {\n columns: ColumnGeoJSONRecord[];\n focusedLine: LineString | null;\n}\n\nexport interface CorrelationMapStore extends CorrelationMapInput {\n onClickMap: (event: mapboxgl.MapMouseEvent, point: Point) => void;\n}\n\nexport interface CorrelationProviderProps extends CorrelationMapInput {\n projectID?: number;\n inProcess?: boolean;\n columns: ColumnGeoJSONRecord[] | null;\n children: ReactNode;\n onSelectColumns?: (\n columns: FocusedColumnGeoJSONRecord[],\n line: LineString | null,\n ) => void;\n}\n\nconst CorrelationStoreContext =\n createContext<StoreApi<CorrelationMapStore> | null>(null);\n\ntype ComputedStore = {\n focusedColumns: FocusedColumnGeoJSONRecord[];\n};\n\n/** A computed store that will automatically update when the state changes */\nconst computed = createComputed((state: CorrelationMapStore): ComputedStore => {\n return {\n // We compute the focused columns based on columns and focusedLine\n focusedColumns: buildCorrelationColumns(state.columns, state.focusedLine),\n };\n}) as any;\n\nexport function ColumnCorrelationProvider({\n children,\n columns,\n projectID,\n inProcess,\n focusedLine,\n onSelectColumns,\n}: CorrelationProviderProps) {\n const [store] = useState(() => {\n return create<CorrelationMapStore & ComputedStore>(\n computed((set, get): CorrelationMapStore => {\n return {\n focusedLine,\n columns: null,\n onClickMap(event: mapboxgl.MapMouseEvent, point: Point) {\n const state = get();\n // Check if shift key is pressed\n const shiftKeyPressed = event.originalEvent.shiftKey;\n let existingCoords = state.focusedLine?.coordinates ?? [];\n\n if (existingCoords.length >= 2 && !shiftKeyPressed) {\n // Reset the line to zero length\n existingCoords = [];\n }\n set({\n focusedLine: {\n type: \"LineString\",\n coordinates: [...existingCoords, point.coordinates],\n },\n });\n },\n };\n }),\n );\n });\n\n // Set up the store\n /** TODO: move the fetching of all columns to within the map */\n const _columns = useMacrostratColumns(projectID, inProcess);\n useEffect(() => {\n if (_columns != null) {\n store.setState({ columns: _columns });\n }\n }, [_columns]);\n\n // Kind of an awkward way to do this but we need to allow the selector to run\n const focusedColumns = useStore(store, (state) => state.focusedColumns);\n const _focusedLine = useStore(store, (state) => state.focusedLine);\n\n useEffect(() => {\n onSelectColumns?.(focusedColumns, _focusedLine);\n }, [focusedColumns, _focusedLine]);\n\n return h(CorrelationStoreContext.Provider, { value: store }, children);\n}\n\nexport function useCorrelationMapStore(\n selector: (state: CorrelationMapStore & ComputedStore) => any,\n) {\n const storeApi = useContext(CorrelationStoreContext);\n if (storeApi == null) {\n throw new Error(\"Missing CorrelationMapProvider\");\n }\n return useStore(storeApi, selector);\n}\n\nfunction buildCorrelationColumns(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): FocusedColumnGeoJSONRecord[] {\n if (columns == null || line == null || line.coordinates.length < 2) {\n return [];\n }\n return orderColumnsByDistance(\n computeIntersectingColumns(columns, line),\n line,\n );\n}\n\nfunction computeIntersectingColumns(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): ColumnGeoJSONRecord[] {\n if (columns == null || line == null) {\n return [];\n }\n\n return columns.filter((col) => {\n const poly = col.geometry;\n\n // Some in-process datasets seem to have null geometries\n if (poly == null) return false;\n if (poly.type != \"Polygon\" && poly.type != \"MultiPolygon\") return false;\n\n const intersection = lineIntersect(line, poly);\n return intersection.features.length > 0;\n });\n}\n\ninterface FocusedColumnGeoJSONRecord extends ColumnGeoJSONRecord {\n properties: {\n centroid: Point;\n nearestPointOnLine: Point;\n distanceAlongLine: number;\n } & ColumnGeoJSONRecord[\"properties\"];\n}\n\nfunction orderColumnsByDistance(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): FocusedColumnGeoJSONRecord[] {\n const centroids = columns.map((col) => centroid(col.geometry));\n const projectedPoints = centroids.map((point) =>\n nearestPointOnLine(line, point),\n );\n const distances = projectedPoints.map((point) =>\n distance(point.geometry.coordinates, line.coordinates[0]),\n );\n\n let newColumns = columns.map((col, i) => {\n return {\n ...col,\n properties: {\n ...col.properties,\n centroid: centroids[i],\n nearestPointOnLine: projectedPoints[i],\n distanceAlongLine: distances[i],\n },\n };\n });\n\n return sorted(newColumns, (d) => d.properties.distanceAlongLine);\n}\n\nfunction sorted(data, accessor: (d) => number) {\n return data.sort((a, b) => accessor(a) - accessor(b));\n}\n"],"names":["create","$g7zod$create","useStore","$g7zod$useStore","lineIntersect","$g7zod$lineIntersect","$g7zod$turfdistance","nearestPointOnLine","$g7zod$nearestPointOnLine","centroid","$g7zod$centroid","createContext","$g7zod$createContext","useState","$g7zod$useState","useEffect","$g7zod$useEffect","useContext","$g7zod$useContext","$g7zod$macrostrathyper","createComputed","$g7zod$createComputed","$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","$c36af3ba15da093b$exports","$c36af3ba15da093b$export$72ffe141ebf87ef1","$c36af3ba15da093b$export$21398703d3a9bb4d","$lgTAP","$c36af3ba15da093b$var$CorrelationStoreContext","$c36af3ba15da093b$var$computed","state","columns","line","focusedColumns","focusedLine","coordinates","length","$c36af3ba15da093b$var$orderColumnsByDistance","data","accessor","centroids","map","col","geometry","projectedPoints","point","distances","i","properties","distanceAlongLine","d","sort","a","b","filter","poly","type","intersection","features","children","projectID","inProcess","onSelectColumns","store","onClickMap","event","shiftKeyPressed","originalEvent","shiftKey","existingCoords","_columns","useMacrostratColumns","setState","_focusedLine","Provider","value","selector","storeApi","ColumnCorrelationProvider","useCorrelationMapStore"],"version":3,"file":"column-views.7faaf6c8.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./column-views.e2562224.js";import"./column-views.
|
|
2
|
-
//# sourceMappingURL=column-views.
|
|
1
|
+
import"./column-views.e2562224.js";import"./column-views.e1813308.js";import"./column-views.22c2d45b.js";import"./column-views.420b60d2.js";import e from"@macrostrat/hyper";import{JSONView as t}from"@macrostrat/ui-components";import{Button as n,ButtonGroup as a}from"@blueprintjs/core";import{useState as i,useMemo as l}from"react";import{LithologyTagFeature as o,DataField as r,Parenthetical as s,Value as u,LithologyList as c,EnvironmentsList as m,ItemList as d,IntervalTag as p}from"@macrostrat/data-components";import f from"classnames";function g(e,t,n,a){Object.defineProperty(e,t,{get:n,set:a,enumerable:!0,configurable:!0})}var _,b=globalThis,h={},v={},k=b.parcelRequirea149;null==k&&((k=function(e){if(e in h)return h[e].exports;if(e in v){var t=v[e];delete v[e];var n={id:e,exports:{}};return h[e]=n,t.call(n.exports,n,n.exports),n.exports}var a=Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}).register=function(e,t){v[e]=t},b.parcelRequirea149=k),k.register;var C={};g(C,"UnitDetailsPanel",()=>$),g(C,"LegendPanelHeader",()=>S),g(C,"UnitDetailsFeature",()=>w),g(C,"Duration",()=>R),g(C,"ReferencesField",()=>I),g(C,"Identifier",()=>P),g(C,"AgeLabel",()=>L),g(C,"ClickableText",()=>T);var D=k("lMX1H"),x=k("wtIgl"),F=k("lgTAP"),N=k("jiUaC");let y=e.styled(D&&D.__esModule?D.default:D);function $({unit:e,onClose:a,className:l,features:o=new Set(["adjacent-units","outcrop-type","json-toggle","depth-range"]),lithologyFeatures:r,actions:s,hiddenActions:u=null,onSelectUnit:c,columnUnits:m,onClickItem:d}){let[p,g]=i(!1),_=null;_=p?y(t,{data:e,showRoot:!1}):y(U,{unit:e,features:o,lithologyFeatures:r,onClickItem:d,onSelectUnit:c});let b=(0,N.defaultNameFunction)(e);return o.has("json-toggle")&&(u=y([y(n,{icon:"code",small:!0,minimal:!0,key:"json-view-toggle",className:f("json-view-toggle",{enabled:g}),onClick(e){g(!p),e.stopPropagation()}}),u])),y("div.unit-details-panel",{className:l},[y(S,{onClose:a,title:b,id:e.unit_id,actions:s,hiddenActions:u}),y("div.unit-details-content-holder",_)])}function S({title:e,id:t,onClose:i,actions:l=null,hiddenActions:o}){return y("header.legend-panel-header",[y("div.title-container",[y.if(null!=e)("h3",e),y.if(null!=o)("span.hidden-actions-container",y("div.hidden-actions",o))]),y("div.spacer"),y.if(null!=t)("code.unit-id",t),y.if(null!=l)(a,{minimal:!0},l),y.if(null!=i)(n,{icon:"cross",minimal:!0,small:!0,onClick(){i()}})])}var w=((_={}).AdjacentUnits="adjacent-units",_.Color="color",_.OutcropType="outcrop-type",_.JSONToggle="json-toggle",_.DepthRange="depth-range",_);function U({unit:e,onSelectUnit:t,columnUnits:n,lithologyFeatures:a=new Set([o.Proportion,o.Attributes]),features:i=new Set(["adjacent-units","outcrop-type"]),onClickItem:d,getItemHref:p}){var f,g,_,b,h;let v,k,C,D=(0,F.useMacrostratDefs)("lithologies"),x=(0,F.useMacrostratDefs)("environments"),N=(f=e.environ,g=x,f.map(e=>({...g?.get(e.environ_id)??{},...e}))),$=(_=e.lith??[],b=D,_.map(e=>({...b?.get(e.lith_id)??{},...e})));l(()=>{let e=new Map;for(let t of n??[])e.set(t.unit_id,t);return e},[n]);let S=null;if(i.has("outcrop-type")){let t=e.outcrop;"both"==t&&(t="surface and subsurface"),S=y(r,{label:"Outcrop",value:t})}let w=null,[U,H]=(v=(h=e).min_thick??0,k=h.max_thick??h.min_thick??0,C="m",0==v&&0==k?["Unknown",null]:(v<.8&&k<1.2?(v*=100,k*=100,C="cm"):v>800&&k>1200&&(v/=1e3,k/=1e3,C="km"),v==k)?[J(v),C]:[q(v,k),C]);i.has("depth-range")&&null!=e.t_pos&&null!=e.b_pos&&e.min_thick==e.max_thick&&0!=e.min_thick&&(w=y(r,{unit:"m",label:e.t_pos<e.b_pos?"Depth":"Height",value:q(e.b_pos,e.t_pos),children:y(s,y(u,{value:U,unit:H}))})),w??(w=y(r,{label:"Thickness",value:U,unit:H}));let M=null;return"color"in e&&i.has("color")&&(M=y("div.color-swatch",{style:{backgroundColor:e.color}})),y("div.unit-details-content",[w,y(c,{label:"Lithology",lithologies:$,features:a,getItemHref:p,onClickItem:d}),y(A,{unit:e},[y(s,y(R,{value:e.b_age-e.t_age})),y(G,{unit:e,onClickItem:d})]),y(m,{environments:N,onClickItem:d,getItemHref:p}),y.if(null!=e.strat_name_id)(j,{strat_name_id:e.strat_name_id}),S,y.if(i.has("adjacent-units"))([y(r,{label:"Above"},y(O,{units:e.units_above,onSelectUnit:t,showNames:!0})),y(r,{label:"Below"},y(O,{units:e.units_below,onSelectUnit:t,showNames:!0}))]),M,y(I,{refs:e.refs,inline:!0})])}function I({refs:e,className:t=null,...n}){return null==e||0===e.length?null:y(r,{label:"References",className:f("refs-field",t),...n},y(H,{refs:e}))}function j({strat_name_id:e,onClickItem:t}){let n=l(()=>[e],[e]),a=(0,F.useMacrostratData)("strat_names",n),i=a?.[0],o=y(P,{id:e}),s=i?.strat_name_long;null!=s&&(o=y("span.strat-name",s));let u=null!=t,c=f({clickable:u});return y(r,{label:"Stratigraphic name"},y(u?"a":"span",{className:c,onClick:n=>t(n,{strat_name_id:e})},o))}function H({refs:e}){let t=(0,F.useMacrostratData)("refs",e);return null==t||0===t.length?null:1==t.length?y(M,{data:t[0],tag:"span",key:t[0].ref_id}):y("ul.refs",t.map((e,t)=>y(M,{data:e,tag:"li",key:e.ref_id})))}function M({data:e,tag:t="p"}){return y(t,{className:"citation"},[y("span.authors",e.author),", ",y("span.year",e.pub_year),", ",y("span.title",e.ref)])}function A({unit:e,children:t}){var n;let a,i,l,[o,s,u]=(a=(n=e).b_age,i=n.t_age,l="Ma",a<.8&&i<1.2?(a*=1e3,i*=1e3,l="ka"):a>800&&i>1200&&(a/=1e3,i/=1e3,l="Ga"),[a,i,l]);return y(r,{label:"Age",value:q(o,s),unit:u},t)}function L({age:e,maximumFractionDigits:t=2,minimumFractionDigits:n=0,className:a}){var i;let l,[o,r]=(l="Ma",(i=e)<.8?(l="ka",(i*=1e3)<5&&(l="yr",i*=1e3)):i>1e3&&(l="Ga",i/=1e3),[i,l]);return y(u,{value:o.toLocaleString("en-US",{maximumFractionDigits:t,minimumFractionDigits:n}),unit:r,className:a})}function R({value:e,maximumFractionDigits:t=2,minimumFractionDigits:n=0}){let a="Myr";return e<.8?(a="kyr",(e*=1e3)<5&&(a="yr",e*=1e3)):e>1e3&&(a="Gyr",e/=1e3),y(u,{value:e.toLocaleString("en-US",{maximumFractionDigits:t,minimumFractionDigits:n}),unit:a})}function T({onClick:e,className:t,children:n}){return y(null!=e?"a":"span",{onClick:e,className:t},n)}function P({id:e,onClick:t,className:n}){return y(T,{onClick:null!=t?()=>t(e):null,className:f("identifier",n)},e)}function O({units:e,onSelectUnit:t,showNames:n=!1}){let a=(0,x.useColumnUnitsMap)(),i=l(()=>{let t=e.filter(e=>0!=e);return n?t.map(e=>{let t,n=a?.get(e);return null!=n&&(t=(0,N.defaultNameFunction)(n)),{unitID:e,colID:n?.col_id,name:t}}):t.map(e=>({unitID:e}))},[e,a]);return 0===i.length?y("span.no-units","None"):y(d,{className:"units-list"},i.map(e=>y("span.item",y(E,{...e,onSelectUnit:t}))))}function E({unitID:e,colID:t,name:n,onSelectUnit:a}){let i=l(()=>null==a?null:()=>{a(e)},[a]);return null!=n?y(T,{className:"unit-name",onClick:i},n):y(P,{className:"unit-id",onClick:i,key:e,id:e})}function G({unit:e,onClickItem:t}){let n=e.b_int_id,a=e.t_int_id,i=e.b_prop??0,l=e.t_prop??1,o=(0,F.useMacrostratDefs)("intervals"),r={...o?.get(n)??{},id:n,name:e.b_int_name},s=null,u=o?.get(a)??{},c=y(B,{value:l});(n!==a||0!==i||1!==l)&&(s=y(B,{value:i})),n===a&&(0!==i||1!==l)&&(s=y("span.joint-proportion",[s,y("span.sep","to"),c]));let m=null!=t,d=e=>{t&&t(e,r)};return y("div.interval-proportions",[y(p,{className:m?"clickable":"",onClick:m?d:void 0,interval:r,prefix:s}),y.if(n!=a)("span.discourage-break",[y("span.sep","to"),y(p,{className:m?"clickable":"",onClick:m?d:void 0,interval:{...u,id:a,name:e.t_int_name},prefix:c})])])}function B({value:e}){let t=null;if(0==e)t="base";else if(1==e)t="top";else t=(100*e).toFixed(1)+"%";return y("span.proportion",t)}function q(e,t,n=null){return null==e||null==t?null:e===t?e.toFixed(n):`${J(e,n)}\u{2013}${J(t,n)}`}function J(e,t=null){return null==t?e.toLocaleString():t>=0?e.toFixed(t):t<0?(e/Math.pow(10,-t)).toFixed(0)+"0".repeat(-t):void 0}export{$ as UnitDetailsPanel,S as LegendPanelHeader,w as UnitDetailsFeature,R as Duration,I as ReferencesField,P as Identifier,L as AgeLabel,T as ClickableText};
|
|
2
|
+
//# sourceMappingURL=column-views.a08b0c9f.js.map
|