@performant-software/geospatial 3.1.22-beta.0 → 3.1.22-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs100.js +1 -1
- package/dist/index.cjs101.js +1 -1
- package/dist/index.cjs102.js +1 -1
- package/dist/index.cjs103.js +1 -1
- package/dist/index.cjs104.js +1 -1
- package/dist/index.cjs105.js +1 -1
- package/dist/index.cjs106.js +1 -1
- package/dist/index.cjs107.js +1 -1
- package/dist/index.cjs110.js +1 -1
- package/dist/index.cjs111.js +1 -1
- package/dist/index.cjs113.js +1 -1
- package/dist/index.cjs114.js +1 -1
- package/dist/index.cjs115.js +1 -1
- package/dist/index.cjs116.js +1 -1
- package/dist/index.cjs121.js +1 -1
- package/dist/index.cjs122.js +1 -1
- package/dist/index.cjs123.js +1 -1
- package/dist/index.cjs124.js +1 -1
- package/dist/index.cjs127.js +1 -1
- package/dist/index.cjs128.js +1 -1
- package/dist/index.cjs129.js +1 -1
- package/dist/index.cjs13.js +1 -1
- package/dist/index.cjs13.js.map +1 -1
- package/dist/index.cjs133.js +1 -1
- package/dist/index.cjs136.js +1 -1
- package/dist/index.cjs14.js +1 -1
- package/dist/index.cjs14.js.map +1 -1
- package/dist/index.cjs140.js +1 -1
- package/dist/index.cjs143.js +1 -1
- package/dist/index.cjs15.js +1 -1
- package/dist/index.cjs151.js +1 -1
- package/dist/index.cjs152.js +1 -1
- package/dist/index.cjs153.js +1 -1
- package/dist/index.cjs154.js +1 -1
- package/dist/index.cjs155.js +1 -1
- package/dist/index.cjs156.js +1 -1
- package/dist/index.cjs157.js +1 -1
- package/dist/index.cjs159.js +1 -1
- package/dist/index.cjs16.js +1 -1
- package/dist/index.cjs160.js +1 -1
- package/dist/index.cjs161.js +1 -1
- package/dist/index.cjs162.js +1 -1
- package/dist/index.cjs163.js +1 -1
- package/dist/index.cjs164.js +1 -1
- package/dist/index.cjs165.js +1 -1
- package/dist/index.cjs166.js +1 -1
- package/dist/index.cjs167.js +1 -1
- package/dist/index.cjs17.js +1 -1
- package/dist/index.cjs170.js +1 -1
- package/dist/index.cjs171.js +1 -1
- package/dist/index.cjs173.js +1 -1
- package/dist/index.cjs174.js +1 -1
- package/dist/index.cjs175.js +1 -1
- package/dist/index.cjs176.js +1 -1
- package/dist/index.cjs177.js +1 -1
- package/dist/index.cjs178.js +1 -1
- package/dist/index.cjs179.js +1 -1
- package/dist/index.cjs18.js +1 -1
- package/dist/index.cjs180.js +1 -1
- package/dist/index.cjs186.js +1 -1
- package/dist/index.cjs187.js +1 -1
- package/dist/index.cjs188.js +1 -1
- package/dist/index.cjs189.js +1 -1
- package/dist/index.cjs19.js +1 -1
- package/dist/index.cjs190.js +1 -1
- package/dist/index.cjs193.js +1 -1
- package/dist/index.cjs193.js.map +1 -1
- package/dist/index.cjs194.js +1 -1
- package/dist/index.cjs194.js.map +1 -1
- package/dist/index.cjs196.js +1 -1
- package/dist/index.cjs197.js +1 -1
- package/dist/index.cjs198.js +1 -1
- package/dist/index.cjs199.js +1 -1
- package/dist/index.cjs20.js +1 -1
- package/dist/index.cjs201.js +1 -1
- package/dist/index.cjs202.js +1 -1
- package/dist/index.cjs203.js +1 -1
- package/dist/index.cjs204.js +1 -1
- package/dist/index.cjs206.js +1 -1
- package/dist/index.cjs207.js +1 -1
- package/dist/index.cjs209.js +1 -1
- package/dist/index.cjs209.js.map +1 -1
- package/dist/index.cjs21.js +1 -1
- package/dist/index.cjs210.js +1 -1
- package/dist/index.cjs210.js.map +1 -1
- package/dist/index.cjs211.js +1 -1
- package/dist/index.cjs211.js.map +1 -1
- package/dist/index.cjs212.js +1 -1
- package/dist/index.cjs212.js.map +1 -1
- package/dist/index.cjs213.js +1 -1
- package/dist/index.cjs213.js.map +1 -1
- package/dist/index.cjs214.js +1 -1
- package/dist/index.cjs214.js.map +1 -1
- package/dist/index.cjs215.js +1 -1
- package/dist/index.cjs215.js.map +1 -1
- package/dist/index.cjs216.js +1 -1
- package/dist/index.cjs216.js.map +1 -1
- package/dist/index.cjs217.js +1 -7
- package/dist/index.cjs217.js.map +1 -1
- package/dist/index.cjs218.js +1 -1
- package/dist/index.cjs218.js.map +1 -1
- package/dist/index.cjs219.js +1 -1
- package/dist/index.cjs219.js.map +1 -1
- package/dist/index.cjs22.js +1 -1
- package/dist/index.cjs220.js +1 -1
- package/dist/index.cjs220.js.map +1 -1
- package/dist/index.cjs221.js +1 -1
- package/dist/index.cjs221.js.map +1 -1
- package/dist/index.cjs222.js +1 -1
- package/dist/index.cjs222.js.map +1 -1
- package/dist/index.cjs223.js +1 -1
- package/dist/index.cjs223.js.map +1 -1
- package/dist/index.cjs224.js +1 -1
- package/dist/index.cjs224.js.map +1 -1
- package/dist/index.cjs225.js +1 -1
- package/dist/index.cjs225.js.map +1 -1
- package/dist/index.cjs226.js +1 -1
- package/dist/index.cjs226.js.map +1 -1
- package/dist/index.cjs227.js +1 -1
- package/dist/index.cjs227.js.map +1 -1
- package/dist/index.cjs228.js +1 -1
- package/dist/index.cjs228.js.map +1 -1
- package/dist/index.cjs229.js +1 -1
- package/dist/index.cjs229.js.map +1 -1
- package/dist/index.cjs23.js +1 -1
- package/dist/index.cjs230.js +1 -1
- package/dist/index.cjs230.js.map +1 -1
- package/dist/index.cjs231.js +1 -1
- package/dist/index.cjs231.js.map +1 -1
- package/dist/index.cjs232.js +1 -1
- package/dist/index.cjs232.js.map +1 -1
- package/dist/index.cjs233.js +1 -1
- package/dist/index.cjs233.js.map +1 -1
- package/dist/index.cjs234.js +1 -1
- package/dist/index.cjs234.js.map +1 -1
- package/dist/index.cjs235.js +1 -1
- package/dist/index.cjs235.js.map +1 -1
- package/dist/index.cjs236.js +7 -1
- package/dist/index.cjs236.js.map +1 -1
- package/dist/index.cjs237.js +1 -1
- package/dist/index.cjs237.js.map +1 -1
- package/dist/index.cjs238.js +1 -1
- package/dist/index.cjs238.js.map +1 -1
- package/dist/index.cjs239.js +1 -1
- package/dist/index.cjs239.js.map +1 -1
- package/dist/index.cjs24.js +1 -1
- package/dist/index.cjs240.js +1 -1
- package/dist/index.cjs240.js.map +1 -1
- package/dist/index.cjs241.js +1 -1
- package/dist/index.cjs241.js.map +1 -1
- package/dist/index.cjs242.js +1 -1
- package/dist/index.cjs242.js.map +1 -1
- package/dist/index.cjs243.js +1 -1
- package/dist/index.cjs243.js.map +1 -1
- package/dist/index.cjs244.js +1 -1
- package/dist/index.cjs244.js.map +1 -1
- package/dist/index.cjs245.js +1 -1
- package/dist/index.cjs245.js.map +1 -1
- package/dist/index.cjs246.js +1 -1
- package/dist/index.cjs246.js.map +1 -1
- package/dist/index.cjs247.js +1 -1
- package/dist/index.cjs247.js.map +1 -1
- package/dist/index.cjs248.js +1 -1
- package/dist/index.cjs248.js.map +1 -1
- package/dist/index.cjs249.js +1 -1
- package/dist/index.cjs249.js.map +1 -1
- package/dist/index.cjs25.js +1 -1
- package/dist/index.cjs250.js +1 -1
- package/dist/index.cjs250.js.map +1 -1
- package/dist/index.cjs251.js +1 -1
- package/dist/index.cjs251.js.map +1 -1
- package/dist/index.cjs252.js +1 -1
- package/dist/index.cjs252.js.map +1 -1
- package/dist/index.cjs253.js +1 -1
- package/dist/index.cjs253.js.map +1 -1
- package/dist/index.cjs254.js +1 -1
- package/dist/index.cjs254.js.map +1 -1
- package/dist/index.cjs255.js +1 -1
- package/dist/index.cjs255.js.map +1 -1
- package/dist/index.cjs256.js +1 -1
- package/dist/index.cjs256.js.map +1 -1
- package/dist/index.cjs257.js +1 -1
- package/dist/index.cjs257.js.map +1 -1
- package/dist/index.cjs258.js +1 -1
- package/dist/index.cjs258.js.map +1 -1
- package/dist/index.cjs259.js +1 -1
- package/dist/index.cjs259.js.map +1 -1
- package/dist/index.cjs26.js +1 -1
- package/dist/index.cjs260.js +1 -1
- package/dist/index.cjs260.js.map +1 -1
- package/dist/index.cjs261.js +1 -1
- package/dist/index.cjs261.js.map +1 -1
- package/dist/index.cjs262.js +1 -1
- package/dist/index.cjs262.js.map +1 -1
- package/dist/index.cjs263.js +1 -1
- package/dist/index.cjs263.js.map +1 -1
- package/dist/index.cjs264.js +1 -1
- package/dist/index.cjs264.js.map +1 -1
- package/dist/index.cjs265.js +1 -1
- package/dist/index.cjs265.js.map +1 -1
- package/dist/index.cjs266.js +1 -1
- package/dist/index.cjs266.js.map +1 -1
- package/dist/index.cjs267.js +1 -1
- package/dist/index.cjs267.js.map +1 -1
- package/dist/index.cjs268.js +1 -1
- package/dist/index.cjs268.js.map +1 -1
- package/dist/index.cjs27.js +1 -1
- package/dist/index.cjs270.js +1 -1
- package/dist/index.cjs270.js.map +1 -1
- package/dist/index.cjs271.js +1 -1
- package/dist/index.cjs271.js.map +1 -1
- package/dist/index.cjs272.js +1 -1
- package/dist/index.cjs272.js.map +1 -1
- package/dist/index.cjs29.js +1 -1
- package/dist/index.cjs32.js +1 -1
- package/dist/index.cjs34.js +1 -1
- package/dist/index.cjs35.js +1 -1
- package/dist/index.cjs38.js +1 -1
- package/dist/index.cjs39.js +1 -1
- package/dist/index.cjs40.js +1 -1
- package/dist/index.cjs42.js +1 -1
- package/dist/index.cjs43.js +1 -1
- package/dist/index.cjs44.js +1 -1
- package/dist/index.cjs46.js +1 -1
- package/dist/index.cjs47.js +1 -1
- package/dist/index.cjs48.js +1 -1
- package/dist/index.cjs50.js +1 -1
- package/dist/index.cjs51.js +1 -1
- package/dist/index.cjs52.js +1 -1
- package/dist/index.cjs56.js +1 -1
- package/dist/index.cjs57.js +1 -1
- package/dist/index.cjs58.js +1 -1
- package/dist/index.cjs60.js +1 -1
- package/dist/index.cjs61.js +1 -1
- package/dist/index.cjs63.js +1 -1
- package/dist/index.cjs69.js +1 -1
- package/dist/index.cjs71.js +1 -1
- package/dist/index.cjs72.js +1 -1
- package/dist/index.cjs73.js +1 -1
- package/dist/index.cjs75.js +1 -1
- package/dist/index.cjs76.js +1 -1
- package/dist/index.cjs78.js +743 -1
- package/dist/index.cjs78.js.map +1 -1
- package/dist/index.cjs80.js +1 -9
- package/dist/index.cjs80.js.map +1 -1
- package/dist/index.cjs81.js +1 -17
- package/dist/index.cjs81.js.map +1 -1
- package/dist/index.cjs82.js +9 -1
- package/dist/index.cjs82.js.map +1 -1
- package/dist/index.cjs83.js +17 -1
- package/dist/index.cjs83.js.map +1 -1
- package/dist/index.cjs84.js +1 -1
- package/dist/index.cjs84.js.map +1 -1
- package/dist/index.cjs85.js +1 -1
- package/dist/index.cjs85.js.map +1 -1
- package/dist/index.cjs86.js +1 -1
- package/dist/index.cjs86.js.map +1 -1
- package/dist/index.cjs87.js +1 -743
- package/dist/index.cjs87.js.map +1 -1
- package/dist/index.cjs88.js +1 -1
- package/dist/index.cjs88.js.map +1 -1
- package/dist/index.cjs92.js +1 -1
- package/dist/index.cjs99.js +1 -1
- package/dist/index.es100.js +1 -1
- package/dist/index.es101.js +1 -1
- package/dist/index.es102.js +1 -1
- package/dist/index.es103.js +1 -1
- package/dist/index.es104.js +1 -1
- package/dist/index.es105.js +1 -1
- package/dist/index.es106.js +1 -1
- package/dist/index.es107.js +1 -1
- package/dist/index.es110.js +1 -1
- package/dist/index.es111.js +1 -1
- package/dist/index.es113.js +3 -3
- package/dist/index.es114.js +1 -1
- package/dist/index.es115.js +2 -2
- package/dist/index.es116.js +1 -1
- package/dist/index.es121.js +1 -1
- package/dist/index.es122.js +1 -1
- package/dist/index.es123.js +1 -1
- package/dist/index.es124.js +1 -1
- package/dist/index.es127.js +2 -2
- package/dist/index.es128.js +2 -2
- package/dist/index.es129.js +1 -1
- package/dist/index.es13.js +32 -31
- package/dist/index.es13.js.map +1 -1
- package/dist/index.es133.js +2 -2
- package/dist/index.es136.js +1 -1
- package/dist/index.es14.js +5 -1
- package/dist/index.es14.js.map +1 -1
- package/dist/index.es140.js +1 -1
- package/dist/index.es143.js +1 -1
- package/dist/index.es15.js +1 -1
- package/dist/index.es151.js +1 -1
- package/dist/index.es152.js +1 -1
- package/dist/index.es153.js +1 -1
- package/dist/index.es154.js +2 -2
- package/dist/index.es155.js +1 -1
- package/dist/index.es156.js +1 -1
- package/dist/index.es157.js +1 -1
- package/dist/index.es159.js +2 -2
- package/dist/index.es16.js +4 -4
- package/dist/index.es160.js +2 -2
- package/dist/index.es161.js +1 -1
- package/dist/index.es162.js +1 -1
- package/dist/index.es163.js +1 -1
- package/dist/index.es164.js +1 -1
- package/dist/index.es165.js +2 -2
- package/dist/index.es166.js +2 -2
- package/dist/index.es167.js +1 -1
- package/dist/index.es17.js +3 -3
- package/dist/index.es170.js +2 -2
- package/dist/index.es171.js +2 -2
- package/dist/index.es173.js +2 -2
- package/dist/index.es174.js +1 -1
- package/dist/index.es175.js +2 -2
- package/dist/index.es176.js +1 -1
- package/dist/index.es177.js +2 -2
- package/dist/index.es178.js +1 -1
- package/dist/index.es179.js +1 -1
- package/dist/index.es18.js +3 -3
- package/dist/index.es180.js +1 -1
- package/dist/index.es186.js +1 -1
- package/dist/index.es187.js +2 -2
- package/dist/index.es188.js +1 -1
- package/dist/index.es189.js +1 -1
- package/dist/index.es19.js +1 -1
- package/dist/index.es190.js +1 -1
- package/dist/index.es193.js +146 -16
- package/dist/index.es193.js.map +1 -1
- package/dist/index.es194.js +16 -146
- package/dist/index.es194.js.map +1 -1
- package/dist/index.es196.js +2 -2
- package/dist/index.es197.js +1 -1
- package/dist/index.es198.js +1 -1
- package/dist/index.es199.js +2 -2
- package/dist/index.es20.js +1 -1
- package/dist/index.es201.js +3 -3
- package/dist/index.es202.js +1 -1
- package/dist/index.es203.js +1 -1
- package/dist/index.es204.js +1 -1
- package/dist/index.es206.js +2 -2
- package/dist/index.es207.js +3 -3
- package/dist/index.es209.js +7 -242
- package/dist/index.es209.js.map +1 -1
- package/dist/index.es21.js +1 -1
- package/dist/index.es210.js +4 -42
- package/dist/index.es210.js.map +1 -1
- package/dist/index.es211.js +4 -3
- package/dist/index.es211.js.map +1 -1
- package/dist/index.es212.js +3 -11
- package/dist/index.es212.js.map +1 -1
- package/dist/index.es213.js +3 -11
- package/dist/index.es213.js.map +1 -1
- package/dist/index.es214.js +8 -30
- package/dist/index.es214.js.map +1 -1
- package/dist/index.es215.js +18 -13
- package/dist/index.es215.js.map +1 -1
- package/dist/index.es216.js +20 -4
- package/dist/index.es216.js.map +1 -1
- package/dist/index.es217.js +12 -7506
- package/dist/index.es217.js.map +1 -1
- package/dist/index.es218.js +15 -2
- package/dist/index.es218.js.map +1 -1
- package/dist/index.es219.js +5 -7
- package/dist/index.es219.js.map +1 -1
- package/dist/index.es22.js +1 -1
- package/dist/index.es220.js +7 -4
- package/dist/index.es220.js.map +1 -1
- package/dist/index.es221.js +7 -4
- package/dist/index.es221.js.map +1 -1
- package/dist/index.es222.js +22 -3
- package/dist/index.es222.js.map +1 -1
- package/dist/index.es223.js +10 -3
- package/dist/index.es223.js.map +1 -1
- package/dist/index.es224.js +9 -9
- package/dist/index.es224.js.map +1 -1
- package/dist/index.es225.js +4 -19
- package/dist/index.es225.js.map +1 -1
- package/dist/index.es226.js +10 -20
- package/dist/index.es226.js.map +1 -1
- package/dist/index.es227.js +7 -12
- package/dist/index.es227.js.map +1 -1
- package/dist/index.es228.js +20 -14
- package/dist/index.es228.js.map +1 -1
- package/dist/index.es229.js +10 -5
- package/dist/index.es229.js.map +1 -1
- package/dist/index.es23.js +1 -1
- package/dist/index.es230.js +17 -7
- package/dist/index.es230.js.map +1 -1
- package/dist/index.es231.js +4 -7
- package/dist/index.es231.js.map +1 -1
- package/dist/index.es232.js +16 -20
- package/dist/index.es232.js.map +1 -1
- package/dist/index.es233.js +10 -8
- package/dist/index.es233.js.map +1 -1
- package/dist/index.es234.js +4 -9
- package/dist/index.es234.js.map +1 -1
- package/dist/index.es235.js +4 -3
- package/dist/index.es235.js.map +1 -1
- package/dist/index.es236.js +7506 -10
- package/dist/index.es236.js.map +1 -1
- package/dist/index.es237.js +2 -8
- package/dist/index.es237.js.map +1 -1
- package/dist/index.es238.js +242 -20
- package/dist/index.es238.js.map +1 -1
- package/dist/index.es239.js +41 -9
- package/dist/index.es239.js.map +1 -1
- package/dist/index.es24.js +1 -1
- package/dist/index.es240.js +3 -18
- package/dist/index.es240.js.map +1 -1
- package/dist/index.es241.js +10 -3
- package/dist/index.es241.js.map +1 -1
- package/dist/index.es242.js +10 -17
- package/dist/index.es242.js.map +1 -1
- package/dist/index.es243.js +30 -11
- package/dist/index.es243.js.map +1 -1
- package/dist/index.es244.js +13 -3
- package/dist/index.es244.js.map +1 -1
- package/dist/index.es245.js +4 -4
- package/dist/index.es245.js.map +1 -1
- package/dist/index.es246.js +3 -21
- package/dist/index.es246.js.map +1 -1
- package/dist/index.es247.js +5 -22
- package/dist/index.es247.js.map +1 -1
- package/dist/index.es248.js +7 -24
- package/dist/index.es248.js.map +1 -1
- package/dist/index.es249.js +23 -15
- package/dist/index.es249.js.map +1 -1
- package/dist/index.es25.js +1 -1
- package/dist/index.es250.js +15 -29
- package/dist/index.es250.js.map +1 -1
- package/dist/index.es251.js +29 -20
- package/dist/index.es251.js.map +1 -1
- package/dist/index.es252.js +21 -74
- package/dist/index.es252.js.map +1 -1
- package/dist/index.es253.js +72 -18
- package/dist/index.es253.js.map +1 -1
- package/dist/index.es254.js +19 -39
- package/dist/index.es254.js.map +1 -1
- package/dist/index.es255.js +36 -45
- package/dist/index.es255.js.map +1 -1
- package/dist/index.es256.js +49 -7
- package/dist/index.es256.js.map +1 -1
- package/dist/index.es257.js +7 -20
- package/dist/index.es257.js.map +1 -1
- package/dist/index.es258.js +18 -63
- package/dist/index.es258.js.map +1 -1
- package/dist/index.es259.js +64 -41
- package/dist/index.es259.js.map +1 -1
- package/dist/index.es26.js +2 -2
- package/dist/index.es260.js +41 -62
- package/dist/index.es260.js.map +1 -1
- package/dist/index.es261.js +62 -7
- package/dist/index.es261.js.map +1 -1
- package/dist/index.es262.js +8 -3
- package/dist/index.es262.js.map +1 -1
- package/dist/index.es263.js +3 -12
- package/dist/index.es263.js.map +1 -1
- package/dist/index.es264.js +11 -58
- package/dist/index.es264.js.map +1 -1
- package/dist/index.es265.js +57 -47
- package/dist/index.es265.js.map +1 -1
- package/dist/index.es266.js +50 -3
- package/dist/index.es266.js.map +1 -1
- package/dist/index.es267.js +19 -4
- package/dist/index.es267.js.map +1 -1
- package/dist/index.es268.js +22 -7
- package/dist/index.es268.js.map +1 -1
- package/dist/index.es27.js +2 -2
- package/dist/index.es270.js +15 -4
- package/dist/index.es270.js.map +1 -1
- package/dist/index.es271.js +69 -15
- package/dist/index.es271.js.map +1 -1
- package/dist/index.es272.js +4 -69
- package/dist/index.es272.js.map +1 -1
- package/dist/index.es29.js +2 -2
- package/dist/index.es32.js +2 -2
- package/dist/index.es34.js +2 -2
- package/dist/index.es35.js +2 -2
- package/dist/index.es38.js +1 -1
- package/dist/index.es39.js +1 -1
- package/dist/index.es40.js +2 -2
- package/dist/index.es42.js +2 -2
- package/dist/index.es43.js +2 -2
- package/dist/index.es44.js +2 -2
- package/dist/index.es46.js +1 -1
- package/dist/index.es47.js +2 -2
- package/dist/index.es48.js +2 -2
- package/dist/index.es50.js +1 -1
- package/dist/index.es51.js +1 -1
- package/dist/index.es52.js +1 -1
- package/dist/index.es56.js +2 -2
- package/dist/index.es57.js +3 -3
- package/dist/index.es58.js +1 -1
- package/dist/index.es60.js +1 -1
- package/dist/index.es61.js +1 -1
- package/dist/index.es63.js +1 -1
- package/dist/index.es69.js +1 -1
- package/dist/index.es71.js +1 -1
- package/dist/index.es72.js +1 -1
- package/dist/index.es73.js +1 -1
- package/dist/index.es75.js +1 -1
- package/dist/index.es76.js +1 -1
- package/dist/index.es78.js +21351 -7
- package/dist/index.es78.js.map +1 -1
- package/dist/index.es80.js +7 -25
- package/dist/index.es80.js.map +1 -1
- package/dist/index.es81.js +2 -589
- package/dist/index.es81.js.map +1 -1
- package/dist/index.es82.js +25 -1992
- package/dist/index.es82.js.map +1 -1
- package/dist/index.es83.js +588 -5
- package/dist/index.es83.js.map +1 -1
- package/dist/index.es84.js +1993 -2
- package/dist/index.es84.js.map +1 -1
- package/dist/index.es85.js +5 -105
- package/dist/index.es85.js.map +1 -1
- package/dist/index.es86.js +2 -10
- package/dist/index.es86.js.map +1 -1
- package/dist/index.es87.js +104 -21350
- package/dist/index.es87.js.map +1 -1
- package/dist/index.es88.js +10 -2
- package/dist/index.es88.js.map +1 -1
- package/dist/index.es92.js +1 -1
- package/dist/index.es99.js +1 -1
- package/package.json +4 -1
- package/src/components/CertaintyLayer.js +0 -42
- package/src/components/DrawControl.js +0 -43
- package/src/components/GeoJsonLayer.js +0 -44
- package/src/components/GeocodingControl.css +0 -3
- package/src/components/GeocodingControl.js +0 -34
- package/src/components/LayerMenu.css +0 -38
- package/src/components/LayerMenu.js +0 -162
- package/src/components/LocationMarkers.js +0 -163
- package/src/components/MapControl.js +0 -120
- package/src/components/MapDraw.css +0 -2
- package/src/components/MapDraw.js +0 -268
- package/src/components/RasterLayer.js +0 -38
- package/src/components/WarpedImageLayer.js +0 -72
- package/src/components/WarpedImageLayerPeripleo.js +0 -56
- package/src/index.js +0 -18
- package/src/utils/Map.js +0 -258
- package/src/utils/MapStyles.js +0 -44
- package/types/components/CertaintyLayer.js.flow +0 -42
- package/types/components/DrawControl.js.flow +0 -43
- package/types/components/GeoJsonLayer.js.flow +0 -44
- package/types/components/GeocodingControl.js.flow +0 -34
- package/types/components/LayerMenu.js.flow +0 -162
- package/types/components/LocationMarkers.js.flow +0 -163
- package/types/components/MapCertaintyControl.js.flow +0 -71
- package/types/components/MapControl.js.flow +0 -120
- package/types/components/MapDraw.js.flow +0 -268
- package/types/components/RasterLayer.js.flow +0 -38
- package/types/components/WarpedImageLayer.js.flow +0 -72
- package/types/components/WarpedImageLayerPeripleo.js.flow +0 -56
- package/types/index.js.flow +0 -18
- package/types/utils/Map.js.flow +0 -258
- package/types/utils/MapStyles.js.flow +0 -44
- package/vite.config.js +0 -40
package/src/utils/Map.js
DELETED
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { WarpedMapLayer } from '@allmaps/maplibre';
|
|
4
|
-
import {
|
|
5
|
-
bbox,
|
|
6
|
-
bboxPolygon,
|
|
7
|
-
bearing,
|
|
8
|
-
bezierSpline,
|
|
9
|
-
buffer,
|
|
10
|
-
destination,
|
|
11
|
-
distance,
|
|
12
|
-
feature,
|
|
13
|
-
featureCollection,
|
|
14
|
-
lineString,
|
|
15
|
-
midpoint
|
|
16
|
-
} from '@turf/turf';
|
|
17
|
-
import _ from 'underscore';
|
|
18
|
-
import circle from '@turf/circle';
|
|
19
|
-
|
|
20
|
-
const MIN_LATITUDE = -90;
|
|
21
|
-
const MAX_LATITUDE = 90;
|
|
22
|
-
const MIN_LONGITUDE = -180;
|
|
23
|
-
const MAX_LONGITUDE = 180;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Returns a GeoJSON circle feature with the given center point and radius.
|
|
27
|
-
* @param point - The center point of the circle.
|
|
28
|
-
* @param radius - The radius of the circle in kilometers.
|
|
29
|
-
* @returns {Feature<Geometry, Properties>} - The GeoJSON circle feature.
|
|
30
|
-
*/
|
|
31
|
-
const buildCircle = (point, radius) => (
|
|
32
|
-
circle(point.coordinates, radius, { units: 'kilometers', steps: 32 })
|
|
33
|
-
);
|
|
34
|
-
|
|
35
|
-
const toCertaintyCircle = (item, radius: number) => {
|
|
36
|
-
if (item.geometry?.type === 'FeatureCollection') {
|
|
37
|
-
let children = [];
|
|
38
|
-
|
|
39
|
-
for (const childFeature of item.geometry.features) {
|
|
40
|
-
if (childFeature.geometry?.type === 'Point') {
|
|
41
|
-
const { geometry, type } = buildCircle(childFeature.geometry, radius);
|
|
42
|
-
children.push({
|
|
43
|
-
...childFeature,
|
|
44
|
-
geometry,
|
|
45
|
-
type
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return featureCollection(children);
|
|
51
|
-
} else if (item.geometry?.type === 'GeometryCollection') {
|
|
52
|
-
return featureCollection(item.geometry.geometries.map((geometry) => geometry.type === 'Point'
|
|
53
|
-
? buildCircle(geometry, radius)
|
|
54
|
-
: feature(geometry)));
|
|
55
|
-
} else if (item.geometry?.type === 'Point') {
|
|
56
|
-
const { geometry, type } = buildCircle(item.geometry, radius);
|
|
57
|
-
return {
|
|
58
|
-
...item,
|
|
59
|
-
geometry,
|
|
60
|
-
type
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return item;
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Adds the geo-referenced image layer to the passed map.
|
|
69
|
-
*
|
|
70
|
-
* @param map
|
|
71
|
-
* @param layerId
|
|
72
|
-
* @param options
|
|
73
|
-
*/
|
|
74
|
-
const addGeoreferenceLayer = (map, layerId, options = {}) => {
|
|
75
|
-
const warpedMapLayer = new WarpedMapLayer(layerId);
|
|
76
|
-
map.addLayer(warpedMapLayer);
|
|
77
|
-
|
|
78
|
-
if (options.url) {
|
|
79
|
-
warpedMapLayer.addGeoreferenceAnnotationByUrl(options.url);
|
|
80
|
-
} else if (options.manifest) {
|
|
81
|
-
warpedMapLayer.addGeoreferenceAnnotation(options.manifest);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if (options.opacity) {
|
|
85
|
-
warpedMapLayer.setOpacity(options.opacity);
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Returns a bounding box for the passed geometry (with optional buffer).
|
|
91
|
-
*
|
|
92
|
-
* @param data
|
|
93
|
-
* @param bufferDistance
|
|
94
|
-
*
|
|
95
|
-
* @returns {BBox}
|
|
96
|
-
*/
|
|
97
|
-
const getBoundingBox = (data, bufferDistance = null) => {
|
|
98
|
-
// Convert the GeoJSON into a bounding box
|
|
99
|
-
const box = bbox(data);
|
|
100
|
-
|
|
101
|
-
if (!validateBoundingBox(box)) {
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// Convert the bounding box to a polygon
|
|
106
|
-
const polygon = bboxPolygon(box);
|
|
107
|
-
|
|
108
|
-
// Create a buffer around the polygon (if a distance is provided)
|
|
109
|
-
let polygonBuffer;
|
|
110
|
-
|
|
111
|
-
if (bufferDistance) {
|
|
112
|
-
polygonBuffer = buffer(polygon, bufferDistance, { units: 'miles' });
|
|
113
|
-
} else {
|
|
114
|
-
polygonBuffer = polygon;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// Convert the buffer to a bounding box
|
|
118
|
-
return bbox(polygonBuffer);
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Removes a layer from the passed map.
|
|
123
|
-
*
|
|
124
|
-
* @param map
|
|
125
|
-
* @param layerId
|
|
126
|
-
*
|
|
127
|
-
* @returns {*}
|
|
128
|
-
*/
|
|
129
|
-
const removeLayer = (map, layerId) => map && map.removeLayer(layerId);
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Wraps the passed record in a feature.
|
|
133
|
-
*
|
|
134
|
-
* @param record
|
|
135
|
-
* @param item
|
|
136
|
-
* @param geometry
|
|
137
|
-
* @param originalProperties
|
|
138
|
-
*
|
|
139
|
-
* @returns {Feature<Geometry, {
|
|
140
|
-
* id: *,
|
|
141
|
-
* ccode: [],
|
|
142
|
-
* title: *,
|
|
143
|
-
* uuid: *,
|
|
144
|
-
* record_id: *,
|
|
145
|
-
* name: *,
|
|
146
|
-
* names: *,
|
|
147
|
-
* type: *,
|
|
148
|
-
* items: [*],
|
|
149
|
-
* url: *
|
|
150
|
-
* }>}
|
|
151
|
-
*/
|
|
152
|
-
const toFeature = (record: any, item: any, geometry: any, originalProperties?: any) => {
|
|
153
|
-
const properties = {
|
|
154
|
-
id: record.record_id,
|
|
155
|
-
ccode: [],
|
|
156
|
-
title: record.name,
|
|
157
|
-
uuid: record.uuid,
|
|
158
|
-
record_id: record.record_id,
|
|
159
|
-
name: record.name,
|
|
160
|
-
names: record.names?.map((toponym: string) => ({ toponym })),
|
|
161
|
-
type: record.type,
|
|
162
|
-
items: [item],
|
|
163
|
-
url: record.url,
|
|
164
|
-
originalProperties: originalProperties || {}
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
const id = parseInt(record.record_id, 10);
|
|
168
|
-
return feature(geometry, properties, { id });
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Returns a feature collection for the passed set of features.
|
|
173
|
-
*
|
|
174
|
-
* @param features
|
|
175
|
-
*
|
|
176
|
-
* @returns {FeatureCollection<Geometry, GeoJsonProperties>}
|
|
177
|
-
*/
|
|
178
|
-
const toFeatureCollection = (features: Array<any>) => featureCollection(features);
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Validates that the passed bounding box contains finite coordinates.
|
|
182
|
-
*
|
|
183
|
-
* @param boundingBox
|
|
184
|
-
*
|
|
185
|
-
* @returns {*}
|
|
186
|
-
*/
|
|
187
|
-
const validateBoundingBox = (boundingBox: Array<number>) => _.every(boundingBox, _.isFinite);
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Returns true if the passed coordinates are valid.
|
|
191
|
-
*
|
|
192
|
-
* @param coordinates
|
|
193
|
-
*
|
|
194
|
-
* @returns {boolean}
|
|
195
|
-
*/
|
|
196
|
-
const validateCoordinates = (coordinates) => {
|
|
197
|
-
let valid = false;
|
|
198
|
-
|
|
199
|
-
if (coordinates) {
|
|
200
|
-
const [latitude, longitude] = coordinates;
|
|
201
|
-
|
|
202
|
-
valid = latitude >= MIN_LATITUDE
|
|
203
|
-
&& latitude <= MAX_LATITUDE
|
|
204
|
-
&& longitude >= MIN_LONGITUDE
|
|
205
|
-
&& longitude <= MAX_LONGITUDE;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
return valid;
|
|
209
|
-
};
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* Returns a GeoJSON FeatureCollection of LineStrings (arcs) for the passed coordinates.
|
|
213
|
-
*
|
|
214
|
-
* @param coordinates
|
|
215
|
-
* @param options
|
|
216
|
-
*
|
|
217
|
-
* @returns {FeatureCollection<LineString, GeoJsonProperties>}
|
|
218
|
-
*/
|
|
219
|
-
const toArcs = (coordinates, options = {}) => {
|
|
220
|
-
const { curvature = 0.2 } = options;
|
|
221
|
-
const features = [];
|
|
222
|
-
|
|
223
|
-
for (let i = 0; i < coordinates.length - 1; i += 1) {
|
|
224
|
-
const start = coordinates[i];
|
|
225
|
-
const end = coordinates[i + 1];
|
|
226
|
-
|
|
227
|
-
const d = distance(start, end);
|
|
228
|
-
const m = midpoint(start, end);
|
|
229
|
-
const b = bearing(start, end);
|
|
230
|
-
|
|
231
|
-
const offsetBearing = b + 90 > 180 ? b + 90 - 360 : b + 90;
|
|
232
|
-
const dest = destination(m, d * curvature, offsetBearing);
|
|
233
|
-
|
|
234
|
-
const line = lineString([start, dest.geometry.coordinates, end]);
|
|
235
|
-
const arc = bezierSpline(line);
|
|
236
|
-
|
|
237
|
-
arc.properties = {
|
|
238
|
-
...arc.properties,
|
|
239
|
-
index: i
|
|
240
|
-
};
|
|
241
|
-
|
|
242
|
-
features.push(arc);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
return featureCollection(features);
|
|
246
|
-
};
|
|
247
|
-
|
|
248
|
-
export default {
|
|
249
|
-
addGeoreferenceLayer,
|
|
250
|
-
toCertaintyCircle,
|
|
251
|
-
getBoundingBox,
|
|
252
|
-
removeLayer,
|
|
253
|
-
toArcs,
|
|
254
|
-
toFeature,
|
|
255
|
-
toFeatureCollection,
|
|
256
|
-
validateBoundingBox,
|
|
257
|
-
validateCoordinates
|
|
258
|
-
};
|
package/src/utils/MapStyles.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
const point = {
|
|
4
|
-
type: 'circle',
|
|
5
|
-
paint: {
|
|
6
|
-
'circle-radius': [
|
|
7
|
-
'interpolate',
|
|
8
|
-
['linear'],
|
|
9
|
-
['number', ['get', 'point_count'], 1],
|
|
10
|
-
0, 4,
|
|
11
|
-
10, 14
|
|
12
|
-
],
|
|
13
|
-
'circle-stroke-width': 1,
|
|
14
|
-
'circle-color': [
|
|
15
|
-
'case',
|
|
16
|
-
['boolean', ['feature-state', 'hover'], false],
|
|
17
|
-
'#3b62ff',
|
|
18
|
-
'#ff623b'
|
|
19
|
-
],
|
|
20
|
-
'circle-stroke-color': '#8d260c'
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const fill = {
|
|
25
|
-
type: 'fill',
|
|
26
|
-
paint: {
|
|
27
|
-
'fill-color': '#ff623b',
|
|
28
|
-
'fill-opacity': 0.2
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const stroke = {
|
|
33
|
-
type: 'line',
|
|
34
|
-
paint: {
|
|
35
|
-
'line-color': '#ff623b',
|
|
36
|
-
'line-opacity': 0.6
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
export default {
|
|
41
|
-
point,
|
|
42
|
-
fill,
|
|
43
|
-
stroke
|
|
44
|
-
};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import React, { useMemo } from 'react';
|
|
4
|
-
import { Layer, Source } from 'react-map-gl/maplibre';
|
|
5
|
-
import MapStyles from '../utils/MapStyles';
|
|
6
|
-
import MapUtils from '../utils/Map';
|
|
7
|
-
|
|
8
|
-
type Props = {
|
|
9
|
-
geometry?: any,
|
|
10
|
-
certaintyRadius: number
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Renders circles with the given certainty_radius circumference around all points in a new layer.
|
|
15
|
-
*/
|
|
16
|
-
const CertaintyLayer = (props: Props) => {
|
|
17
|
-
const data = useMemo(() => {
|
|
18
|
-
if (props.geometry) {
|
|
19
|
-
return MapUtils.toCertaintyCircle(props.geometry, props.certaintyRadius);
|
|
20
|
-
} else {
|
|
21
|
-
return {};
|
|
22
|
-
}
|
|
23
|
-
}, [props.geometry, props.certaintyRadius]);
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<Source
|
|
27
|
-
data={data}
|
|
28
|
-
type='geojson'
|
|
29
|
-
>
|
|
30
|
-
<Layer
|
|
31
|
-
{...MapStyles.fill}
|
|
32
|
-
id='certainty-layer'
|
|
33
|
-
paint={{
|
|
34
|
-
...MapStyles.fill.paint
|
|
35
|
-
}}
|
|
36
|
-
/>
|
|
37
|
-
</Source>
|
|
38
|
-
);
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export default CertaintyLayer;
|
|
42
|
-
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import MapboxDraw from '@mapbox/mapbox-gl-draw';
|
|
4
|
-
import { forwardRef, useImperativeHandle } from 'react';
|
|
5
|
-
import { useControl, type ControlPosition, type MapboxMap } from 'react-map-gl/maplibre';
|
|
6
|
-
|
|
7
|
-
type Props = {
|
|
8
|
-
position?: ControlPosition;
|
|
9
|
-
onCreate?: (evt: { features: Array<any> }) => void;
|
|
10
|
-
onUpdate?: (evt: { features: Array<any>, action: string }) => void;
|
|
11
|
-
onDelete?: (evt: { features: Array<any> }) => void;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
const DrawControl = forwardRef((props: Props, ref) => {
|
|
15
|
-
/**
|
|
16
|
-
* Creates the drawer ref using MapboxDraw.
|
|
17
|
-
*/
|
|
18
|
-
const drawRef = useControl(
|
|
19
|
-
() => new MapboxDraw(props),
|
|
20
|
-
({ map }: { map: MapboxMap }) => {
|
|
21
|
-
map.on('draw.create', props.onCreate);
|
|
22
|
-
map.on('draw.update', props.onUpdate);
|
|
23
|
-
map.on('draw.delete', props.onDelete);
|
|
24
|
-
},
|
|
25
|
-
({ map }: { map: MapboxMap }) => {
|
|
26
|
-
map.off('draw.create', props.onCreate);
|
|
27
|
-
map.off('draw.update', props.onUpdate);
|
|
28
|
-
map.off('draw.delete', props.onDelete);
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
position: props.position
|
|
32
|
-
}
|
|
33
|
-
);
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Exposes the ref for the MapboxDraw object.
|
|
37
|
-
*/
|
|
38
|
-
useImperativeHandle(ref, () => drawRef, [drawRef]);
|
|
39
|
-
|
|
40
|
-
return null;
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
export default DrawControl;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { Layer, Source } from 'react-map-gl/maplibre';
|
|
5
|
-
import MapStyles from '../utils/MapStyles';
|
|
6
|
-
|
|
7
|
-
type Props = {
|
|
8
|
-
data?: { [key: string]: any },
|
|
9
|
-
fillStyle?: { [key: string]: any },
|
|
10
|
-
lineStyle?: { [key: string]: any },
|
|
11
|
-
pointStyle?: { [key: string]: any },
|
|
12
|
-
url?: string
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const GeoJsonLayer = (props: Props) => (
|
|
16
|
-
<Source
|
|
17
|
-
data={props.data || props.url}
|
|
18
|
-
type='geojson'
|
|
19
|
-
>
|
|
20
|
-
<Layer
|
|
21
|
-
filter={['!=', '$type', 'Point']}
|
|
22
|
-
paint={props.fillStyle}
|
|
23
|
-
type='fill'
|
|
24
|
-
/>
|
|
25
|
-
<Layer
|
|
26
|
-
filter={['!=', '$type', 'Point']}
|
|
27
|
-
paint={props.lineStyle}
|
|
28
|
-
type='line'
|
|
29
|
-
/>
|
|
30
|
-
<Layer
|
|
31
|
-
filter={['==', '$type', 'Point']}
|
|
32
|
-
paint={props.pointStyle}
|
|
33
|
-
type='circle'
|
|
34
|
-
/>
|
|
35
|
-
</Source>
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
GeoJsonLayer.defaultProps = {
|
|
39
|
-
fillStyle: MapStyles.fill.paint,
|
|
40
|
-
pointStyle: MapStyles.point.paint,
|
|
41
|
-
strokeStyle: MapStyles.stroke.paint
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
export default GeoJsonLayer;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { GeocodingControl as MapTilerGeocoding } from '@maptiler/geocoding-control/maplibregl';
|
|
4
|
-
import maplibregl from 'maplibre-gl';
|
|
5
|
-
import { forwardRef, useImperativeHandle } from 'react';
|
|
6
|
-
import { useControl, type ControlPosition } from 'react-map-gl/maplibre';
|
|
7
|
-
import './GeocodingControl.css';
|
|
8
|
-
|
|
9
|
-
type Props = {
|
|
10
|
-
apiKey: string,
|
|
11
|
-
onSelection: () => void,
|
|
12
|
-
position?: ControlPosition
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const GeocodingControl = forwardRef(({ position, ...props }: Props, ref) => {
|
|
16
|
-
/**
|
|
17
|
-
* Creates the drawer ref using MapboxDraw.
|
|
18
|
-
*/
|
|
19
|
-
const geocodingRef = useControl(() => {
|
|
20
|
-
const control = new MapTilerGeocoding({ ...props, maplibregl });
|
|
21
|
-
control.on('pick', props.onSelection);
|
|
22
|
-
|
|
23
|
-
return control;
|
|
24
|
-
}, { position });
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Exposes the ref for the MapboxDraw object.
|
|
28
|
-
*/
|
|
29
|
-
useImperativeHandle(ref, () => geocodingRef, [geocodingRef]);
|
|
30
|
-
|
|
31
|
-
return null;
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
export default GeocodingControl;
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import React, {
|
|
4
|
-
Children,
|
|
5
|
-
useCallback,
|
|
6
|
-
useEffect,
|
|
7
|
-
useMemo,
|
|
8
|
-
useRef,
|
|
9
|
-
useState
|
|
10
|
-
} from 'react';
|
|
11
|
-
import { BsStack } from 'react-icons/bs';
|
|
12
|
-
import { IoCheckmarkOutline } from 'react-icons/io5';
|
|
13
|
-
import _ from 'underscore';
|
|
14
|
-
import MapControl from './MapControl';
|
|
15
|
-
import './LayerMenu.css';
|
|
16
|
-
|
|
17
|
-
type Props = {
|
|
18
|
-
children: Node,
|
|
19
|
-
className?: string,
|
|
20
|
-
names: Array<string>,
|
|
21
|
-
position: 'top-left' | 'bottom-left' | 'top-right' | 'bottom-right'
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const MENU_PADDING = 30;
|
|
25
|
-
|
|
26
|
-
const LayerMenu = (props: Props) => {
|
|
27
|
-
const [canvasHeight, setCanvasHeight] = useState(0);
|
|
28
|
-
const [visible, setVisible] = useState();
|
|
29
|
-
const [menuOpen, setMenuOpen] = useState(false);
|
|
30
|
-
|
|
31
|
-
const mapRef = useRef();
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Returns the name of the layer at the passed index.
|
|
35
|
-
*
|
|
36
|
-
* @type {unknown}
|
|
37
|
-
*/
|
|
38
|
-
const getLayerName = useCallback((index) => (
|
|
39
|
-
props.names && props.names.length > index && props.names[index]
|
|
40
|
-
), [props.names]);
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Returns true if the child element at the passed index is visible.
|
|
44
|
-
*
|
|
45
|
-
* @type {function(*): *}
|
|
46
|
-
*/
|
|
47
|
-
const isVisible = useCallback((index) => _.includes(visible, index), [visible]);
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Returns a memoized array of the child elements.
|
|
51
|
-
*
|
|
52
|
-
* @type {Array<$NonMaybeType<unknown>>}
|
|
53
|
-
*/
|
|
54
|
-
const children = useMemo(() => Children.toArray(props.children), [props.children]);
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Returns a memoized array of visible child elements.
|
|
58
|
-
*/
|
|
59
|
-
const visibleChildren = useMemo(() => _.filter(children, (child, index) => isVisible(index)), [children, isVisible]);
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Toggles the visibility for the child element at the passed index.
|
|
63
|
-
*
|
|
64
|
-
* @type {(function(*): void)|*}
|
|
65
|
-
*/
|
|
66
|
-
const toggleVisibility = useCallback((index) => {
|
|
67
|
-
let value;
|
|
68
|
-
|
|
69
|
-
if (isVisible(index)) {
|
|
70
|
-
value = _.without(visible, index);
|
|
71
|
-
} else {
|
|
72
|
-
value = [...visible, index];
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
setVisible(value);
|
|
76
|
-
}, [isVisible, visible]);
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Sets all of the child elements to be visible when the component mounts.
|
|
80
|
-
*/
|
|
81
|
-
useEffect(() => {
|
|
82
|
-
setVisible(_.times(children.length, (index) => index));
|
|
83
|
-
}, []);
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Sets the map canvas height.
|
|
87
|
-
*/
|
|
88
|
-
useEffect(() => {
|
|
89
|
-
const { current: instance } = mapRef;
|
|
90
|
-
|
|
91
|
-
if (instance && instance._canvas) {
|
|
92
|
-
const { offsetHeight = 0 } = mapRef.current._canvas;
|
|
93
|
-
setCanvasHeight(offsetHeight);
|
|
94
|
-
}
|
|
95
|
-
}, [mapRef.current]);
|
|
96
|
-
|
|
97
|
-
if (_.isEmpty(children)) {
|
|
98
|
-
return null;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return (
|
|
102
|
-
<>
|
|
103
|
-
<MapControl
|
|
104
|
-
mapRef={mapRef}
|
|
105
|
-
position={props.position}
|
|
106
|
-
>
|
|
107
|
-
<button
|
|
108
|
-
aria-label='Toggle Menu'
|
|
109
|
-
className={props.className || 'mapbox-gl-draw_ctrl-draw-btn layer-button'}
|
|
110
|
-
onClick={() => setMenuOpen((prevMenuOpen) => !prevMenuOpen)}
|
|
111
|
-
type='button'
|
|
112
|
-
>
|
|
113
|
-
<BsStack
|
|
114
|
-
size='1.25em'
|
|
115
|
-
/>
|
|
116
|
-
</button>
|
|
117
|
-
{ menuOpen && (
|
|
118
|
-
<div
|
|
119
|
-
className='layer-menu'
|
|
120
|
-
style={{
|
|
121
|
-
maxHeight: `calc(${canvasHeight}px - ${MENU_PADDING}px)`
|
|
122
|
-
}}
|
|
123
|
-
>
|
|
124
|
-
<div
|
|
125
|
-
className='menu'
|
|
126
|
-
>
|
|
127
|
-
{ _.map(children, (child, index) => (
|
|
128
|
-
<div
|
|
129
|
-
aria-selected={isVisible(index)}
|
|
130
|
-
className='option'
|
|
131
|
-
key={index}
|
|
132
|
-
onClick={() => toggleVisibility(index)}
|
|
133
|
-
onKeyDown={() => toggleVisibility(index)}
|
|
134
|
-
role='option'
|
|
135
|
-
tabIndex={index}
|
|
136
|
-
>
|
|
137
|
-
<div
|
|
138
|
-
className='checkmark-container'
|
|
139
|
-
>
|
|
140
|
-
{ isVisible(index) && (
|
|
141
|
-
<IoCheckmarkOutline
|
|
142
|
-
size='1em'
|
|
143
|
-
/>
|
|
144
|
-
)}
|
|
145
|
-
</div>
|
|
146
|
-
{ getLayerName(index) }
|
|
147
|
-
</div>
|
|
148
|
-
))}
|
|
149
|
-
</div>
|
|
150
|
-
</div>
|
|
151
|
-
)}
|
|
152
|
-
</MapControl>
|
|
153
|
-
{ visibleChildren }
|
|
154
|
-
</>
|
|
155
|
-
);
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
LayerMenu.defaultProps = {
|
|
159
|
-
position: 'top-left'
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
export default LayerMenu;
|