@abcagency/hc-ui-components 1.2.8 → 1.2.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/_virtual/_rollupPluginBabelHelpers.js +516 -516
- package/dist/apis/hcApi.js +189 -189
- package/dist/apis/hcApi.js.map +1 -1
- package/dist/clientToken.js +10 -10
- package/dist/clientToken.js.map +1 -1
- package/dist/components/HireControlMap.js +135 -135
- package/dist/components/modules/accordions/MapAccordionItem.js +76 -76
- package/dist/components/modules/accordions/default.js +108 -108
- package/dist/components/modules/accordions/filterItem.js +50 -50
- package/dist/components/modules/accordions/filters.js +46 -46
- package/dist/components/modules/buttons/button-group-apply.js +87 -87
- package/dist/components/modules/buttons/commute-pill.js +18 -18
- package/dist/components/modules/buttons/default.js +145 -145
- package/dist/components/modules/buttons/items-pill.js +23 -23
- package/dist/components/modules/buttons/pill-wrapper.js +20 -20
- package/dist/components/modules/buttons/show-all-button.js +39 -39
- package/dist/components/modules/cards/default.js +102 -102
- package/dist/components/modules/cards/filter.js +38 -38
- package/dist/components/modules/dialogs/apply-dialog.js +46 -46
- package/dist/components/modules/filter/commute.js +184 -184
- package/dist/components/modules/filter/index.js +79 -79
- package/dist/components/modules/filter/item.js +71 -71
- package/dist/components/modules/filter/location.js +68 -68
- package/dist/components/modules/filter/points-of-interest.js +38 -38
- package/dist/components/modules/filter/radio-item.js +46 -46
- package/dist/components/modules/filter/search.js +83 -83
- package/dist/components/modules/filter/sort.js +93 -93
- package/dist/components/modules/grid.js +39 -39
- package/dist/components/modules/icon.js +23 -23
- package/dist/components/modules/jobListing/listing-details.js +71 -71
- package/dist/components/modules/maps/info-window-card.js +14 -14
- package/dist/components/modules/maps/info-window-content.js +49 -39
- package/dist/components/modules/maps/info-window-content.js.map +1 -1
- package/dist/components/modules/maps/list/field-mapper.js +88 -88
- package/dist/components/modules/maps/list/field-mapper.js.map +1 -1
- package/dist/components/modules/maps/list/header-item.js +59 -59
- package/dist/components/modules/maps/list/header.js +37 -37
- package/dist/components/modules/maps/list/index.js +93 -93
- package/dist/components/modules/maps/list/item-expand-card/index.js +16 -16
- package/dist/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js +38 -38
- package/dist/components/modules/maps/list/item-expand-card/recruiter-details.js +40 -40
- package/dist/components/modules/maps/list/item-expand-card/recruiter-headshot.js +20 -20
- package/dist/components/modules/maps/list/list-item/index.js +98 -98
- package/dist/components/modules/maps/map-list.js +57 -57
- package/dist/components/modules/maps/map-marker.js +85 -85
- package/dist/components/modules/maps/map.js +201 -201
- package/dist/components/modules/maps/place-marker.js +37 -37
- package/dist/components/modules/maps/tabs.js +84 -84
- package/dist/constants/placeTypes.js +11 -11
- package/dist/contexts/mapContext.js +133 -133
- package/dist/contexts/mapListContext.js +280 -280
- package/dist/contexts/placesContext.js +152 -152
- package/dist/hooks/useList.js +119 -119
- package/dist/index.js +2 -2
- package/dist/services/_virtual/_rollupPluginBabelHelpers.js +372 -372
- package/dist/services/apis/hcApi.js +189 -189
- package/dist/services/apis/hcApi.js.map +1 -1
- package/dist/services/clientToken.js +7 -7
- package/dist/services/clientToken.js.map +1 -1
- package/dist/services/configService.js +33 -33
- package/dist/services/googlePlacesNearbyService.js +61 -61
- package/dist/services/googlePlacesNearbyService.js.map +1 -1
- package/dist/services/listingAggregatorService.js +56 -56
- package/dist/services/listingAggregatorService.js.map +1 -1
- package/dist/services/listingEntityService.js +36 -36
- package/dist/services/listingService.js +64 -64
- package/dist/services/recruiterService.js +36 -36
- package/dist/services/styles/index.css +2 -2
- package/dist/styles/index.css +2 -2
- package/dist/util/filterUtil.js +213 -213
- package/dist/util/filterUtil.js.map +1 -1
- package/dist/util/loading.js +16 -16
- package/dist/util/localStorageUtil.js +32 -32
- package/dist/util/mapIconUtil.js +73 -73
- package/dist/util/mapIconUtil.js.map +1 -1
- package/dist/util/mapUtil.js +76 -76
- package/dist/util/mapUtil.js.map +1 -1
- package/dist/util/sortUtil.js +33 -33
- package/dist/util/stringUtils.js +9 -9
- package/jsconfig.json +7 -7
- package/package.json +1 -1
- package/postcss.config.js +13 -13
- package/preset.default.js +15 -15
- package/rollup.config.mjs +87 -87
- package/src/apis/hcApi.js +93 -93
- package/src/clientToken.js +9 -9
- package/src/components/HireControlMap.js +124 -124
- package/src/components/modules/accordions/MapAccordionItem.js +72 -72
- package/src/components/modules/accordions/default.js +171 -171
- package/src/components/modules/accordions/filterItem.js +53 -53
- package/src/components/modules/accordions/filters.js +47 -47
- package/src/components/modules/buttons/button-group-apply.js +116 -116
- package/src/components/modules/buttons/commute-pill.js +22 -22
- package/src/components/modules/buttons/default.js +196 -196
- package/src/components/modules/buttons/items-pill.js +32 -32
- package/src/components/modules/buttons/pill-wrapper.js +27 -27
- package/src/components/modules/buttons/show-all-button.js +20 -20
- package/src/components/modules/cards/default.js +167 -167
- package/src/components/modules/cards/filter.js +56 -56
- package/src/components/modules/dialogs/apply-dialog.js +48 -48
- package/src/components/modules/filter/commute.js +148 -148
- package/src/components/modules/filter/index.js +87 -87
- package/src/components/modules/filter/item.js +76 -76
- package/src/components/modules/filter/location.js +71 -71
- package/src/components/modules/filter/points-of-interest.js +44 -44
- package/src/components/modules/filter/radio-item.js +53 -53
- package/src/components/modules/filter/search.js +92 -92
- package/src/components/modules/filter/sort.js +83 -83
- package/src/components/modules/grid.js +55 -55
- package/src/components/modules/icon.js +33 -33
- package/src/components/modules/jobListing/listing-details.js +95 -95
- package/src/components/modules/maps/info-window-card.js +17 -17
- package/src/components/modules/maps/list/field-mapper.js +112 -112
- package/src/components/modules/maps/list/header-item.js +91 -91
- package/src/components/modules/maps/list/header.js +47 -47
- package/src/components/modules/maps/list/index.js +107 -107
- package/src/components/modules/maps/list/item-expand-card/index.js +22 -22
- package/src/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js +50 -50
- package/src/components/modules/maps/list/item-expand-card/recruiter-details.js +68 -68
- package/src/components/modules/maps/list/item-expand-card/recruiter-headshot.js +22 -22
- package/src/components/modules/maps/list/list-item/index.js +133 -133
- package/src/components/modules/maps/map-list.js +74 -74
- package/src/components/modules/maps/map-marker.js +86 -86
- package/src/components/modules/maps/map.js +229 -229
- package/src/components/modules/maps/place-marker.js +41 -41
- package/src/components/modules/maps/tabs.js +81 -81
- package/src/constants/placeTypes.js +8 -8
- package/src/contexts/mapContext.js +117 -117
- package/src/contexts/mapListContext.js +221 -221
- package/src/contexts/placesContext.js +102 -102
- package/src/hooks/useList.js +104 -104
- package/src/index.js +3 -3
- package/src/services/configService.js +16 -16
- package/src/services/googlePlacesNearbyService.js +33 -33
- package/src/services/listingAggregatorService.js +43 -43
- package/src/services/listingEntityService.js +15 -15
- package/src/services/listingService.js +27 -27
- package/src/services/recruiterService.js +17 -17
- package/src/styles/index.css +23 -23
- package/src/util/arrayUtil.js +3 -3
- package/src/util/fieldMapper.js +22 -22
- package/src/util/filterUtil.js +195 -195
- package/src/util/loading.js +17 -17
- package/src/util/localStorageUtil.js +26 -26
- package/src/util/mapIconUtil.js +179 -179
- package/src/util/mapUtil.js +91 -91
- package/src/util/sortUtil.js +32 -32
- package/src/util/stringUtils.js +6 -6
- package/src/util/urlFilterUtil.js +90 -90
- package/tailwind.config.js +126 -126
- package/.vscode/settings.json +0 -10
- package/apps/test-react-app/build/favicon.ico +0 -0
- package/apps/test-react-app/build/logo192.png +0 -0
- package/apps/test-react-app/build/logo512.png +0 -0
- package/apps/test-react-app/build/manifest.json +0 -25
- package/apps/test-react-app/build/robots.txt +0 -3
- package/apps/test-react-app/node_modules/.cache/.eslintcache +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0085c0c286641ae796a6712f374649d5b85448a5b1489d1c56e182e2d051e512.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/00da50c7b5ce07beb5bae2428b8832de8617c52c5b4fede1e4266c3c26bb208f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/00dce76ed87da6053239297bfc8c0a5ee8cb31e31a2cb8cac131bcc058de8ea1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/00f8d2f1f7470c3887da73db3b3d17fc29eccac85e6ac4d04a4caff55659d495.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/01214a7f79b0c6eafcc119e34cc5ae04611944183df299a658500fd6806dbf07.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0170171c11d316c7c412eb44cf798e7ffe8b4248811e01bc50ee9417d4f086ae.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/01a7458942b99b4831b33a4870e9d2713539a999d7199a8338d02fe59a909cec.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/02ba8db7951099b3ec7b28f4fbbffce65dc1edd7fef59e61b4cdd68f1cced7d7.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/034aa929886304521b1ec9efeb37d7f3e926381d2700827088a0279c91d26b90.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/039f99eb3553aa141924dfadd4dd527a7da6460ba6ab26243ea99d4d0eb40f14.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0479524b6ec10d6c5291a24f8c854ba567b36739aac2b9c9ec92b925b05c9d0c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/04882f27b6f2ca4832960006b3780ee2f9aca0f3aa438af9be8f467f4be9a649.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0597f750065a78184cd43564fdefeaf6be6f893dee59370f7cdf7e8a683645b1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/060e499c26f66d19ff3041ddce2df6a06115d47cc480eec4870e589c9ce14a1c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/06ba8bb3c289dede0f52d4ae6f2d402c59df3236161d372f08a26382871c6377.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/077ba788f44b797fe11f8de1ab1e799efaf38bc24e991176dc3f86df0228acb2.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/08df5b1d2f5f7dddae5294b6103cb77ed0ee1246da8c17f94dd1c3aff3b02140.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0a17e67275146ebecae344519c275a7a00aecc9195918c68ea1a90616060a8f1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0aea84bfb2caef4ebaf3baab5c498299db9572ead0188584b4ed566ca3d96fa6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0b0d81111dd0b9939d5601379e379352e6fa0d6b456bffd335ed19e2ac1ae791.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0baeaf7ea6743e6b04a78ed2c78b15100d7234f5973c41e6fa0d1942caba5e15.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0bef3f79462c45d9e09f6f5fcfed063c55923b254872e61c2f925969bceabd3e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0c692b8f3068550baecf1c696bf7213110556a89032be7dc4efb862f7a1ef2c2.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0c83670c9622a969d8112e9dc525e5abbc7c569acc9ed0563957fcac16192065.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0d0f68f823f4aab6e6b331a5dc12a3b1d1ebdcc87d3fc373d614408eb6e044af.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0df770752167aa9f2d0925fb8da210e8c68a2e3f1fe032355ebd5f63872adde6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0e1b92ce32b27b3a8c4f3dbcdb27fc542ef6d08489813d2fbf6f06ae86ab882c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0ee3ad041b303db8aca03180d564afaedc89b623ff7e165deddfd95e23d2b598.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0fb357d973c5080be04461110a3e49ac2ef1582e27c07ec8359e18cdb3052153.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/0fc62d7da8fad2065927d9671e1f388c813a16eecec68b1d8cc57c43bd1c4050.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/105d410ca45669fd7c85c60ded922624de0c35b08b3c6f9765c4983b236eea39.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/113efe105a19ddda5c7ce7dab17e9d85ff46b4ba25a9ec4af60550e3f0e007fa.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1182e0afd36e4a1feca6dbd1315af23e2130808db693a3d3e74fe85e2f8ca2ab.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/11a6107c634650efabdc382546f28ba9658438f377a6ed6e557134a36cf749fb.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/12034b6bd6813cad66bdec8b5131502e0c6e39aae1a1aae04e7f4083ae8a85e2.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/12b4297e61778fa37aba5ba76b3e56e4e20b0ae3947aab100d2cf531abdbf0c6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/12efb189d229612dfd4459b06010007a5dd8e71f60beb2ae65a9b0d2946cf08c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1323008eed9e8d743c4fe24e9f6aa6b33d327324e774dde4b4aa288b51f930c4.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/135d67d8e51c1afc99bdb614b80bd1dc041460f5f5f7ba9bf094dd2308d54f11.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1378cebbd482ef4766c9150a5ee5172881a199c69b69285b72af8324e1a4c108.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/13af8660420dc289a0ad4150cc2c9b057ffec762b6d5d61b0bc2092693a5b230.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/13f0f439b20e4ea346c2979cf3ec17263f151e8bdac1fbe47ccfa55edd66190e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/14dd85691e76ef98e27acc98c0071ee7f1eb059ed5d170c13e004ef272bd1dc1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/15451c27c456edc498f823fd5c968a9c51a343a4337f63a1aad65c7f55905fb0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/15bfb452a882860bd732aa0c1ef0f4b76a41d1a916a0508fbc3e17dade2198cb.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1615ecf87c91ae42dcc6fd74c21564a76341e36bbc5c2b8f9ff30775fa571b0a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/18a39a14c7a5a21cd95d6bbe38325efa356ffc4d20d81307b092fba345ba70b9.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/18ad9e6f5dfe4060a1a027b11fecabaa0b9fbfdd2d25bf19aea8a15915ce68d7.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/18de0ce5b0ef4bcf3155c13c99993a3550789caf843ea1287fd8739be7c007c9.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/19e7fa824b8e5ef10d4c39236a6dd41e4ba7c0a45e9e03167668386e0fede4ba.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1a0e8b2a4526c877a8b7f94019e26eba45a78588390568992e74367ef70c2034.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1b190beb6d1a3a8b43edc3f3181c6eae372268c6918bf30d136a8d87b02523a1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1b2a6c691a43bee17daec0f71144b0e70061af906428ed2828548a9639ed24fd.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1b4ae50955cb5e1e543aa58a863e2cce96d0b4cd08c0a50bed2e77aeaa398daa.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1b96a6b04da45011c50302cb31acef5c2807430ee87d87586d9e86701470af95.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1b96d423443f617db1999a1a513a85f5e4817b8725c60858d8a8cff1f7dcd92c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1bb1f8f72455818b43b288897a2b8ace3d171a98897ddfb9b3baf437df82ff17.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1c2973c5318797c68dd1834d0f261a023f738a301e5d51052301d4350465df56.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1cac2dcac1cfa20e37d6abaa033bea4203118a3fe1bbd34d6a5d89220859fd07.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1cfe851ddcac164137d105d4ca69f9fbb7b264d7697f5abf24566897c6f88c17.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1df1f643a8641470033e78e11793643e79cba9a08b1254774e3c65047ac4f43c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1e3f9e4f5faefb74dd3ec8b5c933315547bc3814efccf8c1b31bfd865d118893.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/1ede29fb8d67989309854f250b96f2bb96e97c76e143dc73ad6f24c40a7489bd.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/210a9aa1fc68721a244bd6a8220bcbebedeb6c9bf86b404a3d92dd8e53738c3d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/210daa2c53a80a23beec6276342eb683d0cce3290a921f16d60002bd434c2dd1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2276f61636f7b3b6bf297c4c1fc362f70c4aa259ca91f88876b27631c6eadf93.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/22925643d3ffda55b9e89d7e585e14cf11d73ea435595867f788aecfbb46705a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/22be91fb79e7c8587b960398636c2718a313964eb5760da7981b63994e6849a1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/232013eee57bd285141f28a71af2a068b1c68b784f120897a8b147e18f66477d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/250ac287fd6b1430f43253f18d58e51c3d6c5b48a8793639b1ef9ac2dc38e4ee.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/25942d9e5dd3719ad19d0eab6a6f4b8e58e588cc580d591bc07618a621569b31.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/263f27acd7bca771954149186396331d2b84d44d9ae5ea926a5d7b57bbb259c6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/272d9aaff2cab7413fa2af8cf659ad6caee031447965c5460c8bc8ff92c5d8b3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2745c0d29ced3cb23989a3c3ba2fc02268da880dbfe2288d007f3bbcaae2baef.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2c69a87e076fe5a38f09a9856251cc950a82d03cecf1a1bc957020401097bd5a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2cd67a568f6fa9ec08a112827507ff0093c2b87fb0d84062863d7dcc04a4c8db.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2cfab0ad2064603f103a82fb21968cf9060fe48263a038254d47930a3d721fac.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2cff11cb72001a0a994db21e0ae28aa28c504ff5850a4c2046c6f81480a9fc80.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2d7e4753b409c12f4318b093a8576ffa020c3595aecf8c3d849f0a5f79d77f4e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2dac349cf3ad1659f727bd65d7e062f7e79067f848131ae975573cbc8d8969cf.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2dbfb3ddc843b384ee0cc86c81f97c8b611f16db3f6082e838c9b73369116f84.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2dea3000017b74cb1dc8895099ad334d1115a72ef3216d2f32c721d1d6dfd474.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2e1362ac5119a331132502aa4b9bf608449141aaeda1331a402fa8b777895983.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2e31557b6099d3cd5a11d29ebaf9b1c0f65dd5181e87862222c74ff38087d039.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2f4d108d875b2a5ecffe737c893ee512cef36167a4123c8749ed058ae313bf49.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/2f545b53b295f9ef5b135562b8ebd37005df87b9509b5fba6341ea720f2fab46.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/314a57cebcbb00bbb2780b0c877f1aacd1e2ef09c1977a341c82746b474bb9cd.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/31da1a1257196c34b8ee6dfbfe450bf7c7b716aab42349088aa2c54e65fb9ddc.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/33c7bd6b0b71d0c0756b2c42db7a1e252a0b35874a7e00ad46bc4311a4842ca2.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/33d64a0a34cb66deda9a7c432590cc111cb1271998a9a1cdeed5f56bcb8e12a5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/33e94f3d35f39c165885a2e702fefee73aa8a46d71115d22d96a3c334534c9b1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/34129f1f5f48c145412db9c600646df5794d427b5411391c6f4153fcc438c87d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/34afb1ad2465a659057163e8924e38944b7bf7f1cbc1b6a2a22121dd21caae8d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/351c842655010b7480f63be7973d3b28598031e8f2bf7d3c08f0331777f32ca7.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/35c5aac88e501fd61fe290833bd00dcaf40de2b6b166148fce432903fd69a283.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3600337f06903f507623e386ea259f59f8f549861bf09b54b893aed1064d9fb1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/36684ee4d8abfc4577c5cec9f23e17f54a11b895ff040dff444e999bb3b1291a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3750413324b6d772be14b7865694e085ab562a9d2817e7d0ccffabd8eeead65e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/37ccde7003e8fbbf6f6f6a0ca245dea517a11bc74bc1a90035de31ff12595ff5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/38493e4ffce7d8cc190704b342f1b966a19728c39a3fb12b9cf89cba438d707b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/38516c0689d789f3a1d71fd9240c5772d87755d614476f4eb87b08bdaebb2640.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/38a2b0dfe3ec2d66b8eeef5b3001376d012a8bc21d55f2c00eff46014ca0f93b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/38b50e51b0f9d5d604bd1940eadba9d49978117a0c8c2f0d6c751d4f563af81d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/394ac415010aefb13900fff01caf624deb64aeaaa055dc2fc97d8c2400d69ca3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/396c958df778a28c156adb8d7f0642cbfc220855643552552a47d6a4a45abd66.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/39b6da73ea5539fe9f2b2931a20370dae5b3cd50ef5ec04ed3806accb648a517.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3afdf09920932a690157e827fe31ce95236d5eeeef86580a7af987b76060aefa.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3b0eea74f650ea3decb4912338a94119cabb80ae55f711e60f7e7911107b49c1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3b585730f63cfeedeac9d64df2c4f3bf8654114d31ad3ad03bc1aa4e0f663090.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3b7238648d1b28a332594ff52b8a38b98fb162e1fef562c08229e33bc31a0db9.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3bae87207a4c042884ebbaba54452c26dc334f20ef5adc6eb7ea082bd060b247.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3bd894b6b5fc7a16c76d74c545e55ec3e8d918559bb5c56f6b028804aee1ad34.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3c1713326f08fc02c26b26ebec7eaebcf06360dd7b07dc005e3731be79de0f6c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3c2667bd1a8811a4d2d7a86c131ee3977fb24a0704dc14fcdab47062e6d67029.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3c4808ba9ddc690978952b3a8080628391f22166b895fd90e936ca10d9aaa831.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3cc9a2d0549df208fecce358e4ee3daae83b3fcf3978290c6240f8612561c317.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3cdc2372d772cdd76fbc7f1faae7dfdb105a8c687f5195729f82ed66eed693df.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3dea604770ce5a0839fb40a6e855ff781429259bab7fc3c878bb8f67a947b4ea.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3df653bd6efba4e71b659c7e0dfa501c032c14dd7dea75c4a3b294ef064afd8b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3e630bec34f91d12cc39b481be904638bbdb6d07bae2f0546bc19ab1571d0b53.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3ea626115de8440207e8db78cdaa9a3d88f1f0064e3a20fc44aeb1ed9e961691.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3ebdba38a77f2910769ffcea2e5d078c060c66d95fa8a73c90dda863195945e6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3ed55ec2f9773e5b0db4996e9e02f9ef855abca047f04484d7fd7e24d36df56b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3f03e088d99dc6eb46c516b9059255debfccc81b983b69fbfcf70d93fdf7a91c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/3fa35dd64f42a13ec444c4458b9a1a542405871fdfd3e7e4eb9d8e6409be750d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/40482709befd2c80e95b324659d90c50267473ad499433ac7730d77311ec86d7.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/40d7b713abcb6baf883f259c7bf5bef45558bd92e2e02b2d6786d41cc5583190.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/40f4c5cd6223f55c8458181ab76e32c63fc26cebb1962c94d55f7a42eee49fb1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4188513af830697a751cdf7ebcaaadff78684b411d5dfcb3241e962f53223882.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/421b3d19985066567e0b62283d7c1574d0546a5e42febcfd58b6122f6409d65b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/427240b76a617157c15ee59b6583000193d7431e496fa1f2baeb6e4516b02ff1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/428e78245fd9badcfaf82edd50cde7761883396dd64710659c474e29201092b0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/42a3084103061e74c575bd08de08c045465238793a34fc41454c299c4fc5234c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/432da571fa6e9768939e926cd9b5fcf12185fe6966d11d9a9a84846d69763507.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/43a71e0449e4dce01a1e24c1264e63612869ac0f6e76871fa0fedcd2b361173a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/44160b1d5c92d2710fff677aa9e2b42e7999d51cdf7ec320fc0c7d01e872ed2c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/44361b56cc0957cbf138e37aa1640d340459e80704cad98fd0e744bac2263bfe.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4448b4c3b129d191d44c240963301daaa0ab795b574cbffad10815331ff5ab02.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/45eede11a41e44b518c5094e21c99964357452cb67d77fc37fd2b5fdbef77932.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/46ace1ee4abc53f855c4b2df8029e7bfe2d327e6b66b381a6700443527bb92be.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/46e1bb42e0a8030e0b064f5ca6c204b4d3e6cedc5ca9b6d1a8d3049e51e4ce59.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/470ffc202c5670802cf8063f283dd0d34c5e2701f598251231c3281045c93a41.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/48279dbfb9dcd616646aa602033d822e8f5b7eecad574e83a72a2f1116ff89c2.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/48a2b45cccd65f513e4f355862a576bafffcb03906d3d5c1a6e3dbda4bb9f9da.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4a5a7fc9205ae1a3474148615b244da4d1709420ff71acddb03b50895a47d41b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4ac46639492967c64effc053bd98407d622a59489b408be1cf656ea9a0aa82b8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4b38b57c200242b432bef99ed2445387c7e718e1bbb6250980151824cc9651d6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4b3cc9718da9b62910cb0abd98c0d7d4d3943915ec7498331c04ab8f57d3fe29.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4b3d1955349192041b123271dcfc59be77ef8064b122682cedac8d7167b51b16.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4b42e3d00879485ab8334908c775588b5194492bd34ddcdeb51523f75487e48e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4b685132c47cb9311019c2035633f464495241fcf88987a9700bfece29bc1e60.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4bcb45b42c171fc44554c6ddc76c48e69ff7a493d92b9dcb8ce5b4bd47320f9b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4c537e3770e3b88f73d7a75289abbd35aa2dd2f7aa15783db82eb4b77cde3650.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4d212f37839f4d3e0c40b1185244874326543a25257431c3b0773e50c988b2f1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4d627f8cd146a3caeb0e0bb44cf7e7c87188e938fc6dbdcc5ce91ff31ed89e04.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4df68cc24085d7c18fa24b2a171b24e98706551d9851d03df899c3d3f946eafd.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4f2b444119b65b7013438a4fda11a3fa26365e972bd23308474fc148c342b85e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4faff44899ce3cf659012bd0aaf43fc80e2b708c575ca0f282a6d0f3906ce8ea.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/4fb3d971603ce85488ef563dfa98c57019a1f2c8d85e678e4e09dd424825204e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/500f2ce2ad1153dc97da8686ff6133d1a43b2cbacded993dc220be1e833d45a6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/506a00af612fdc1a8ad22ee2b71cb7fd2ce059a0482b0bc32f337c233eda233b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/508dc31055ca38469c04ff367289cb80b189514f8cbfa9dafaf05cd6326f8611.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/509f4956d1168aeb16080324699c6af5e05b6444a9c421bb53264bd41de98152.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/50a3e00c17b95e3f72e986b41fe904ecd0886869a9cd450223f60dfe0eb87d9f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/50c122ae2b8d91d5a1c1fddd6cf1c7140e7f172f1cceca3dae940f6b6e1b9be1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/50e96ef61b68b77bb2f75a60aee4adcd5e8f6793516867906791c9c80e8ea573.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/50fe81b2b9bdf98b9f77b091d93b00e26a26c765bd293d4d955cb3af2d48b236.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/51966f53d8134de89695b76d2942710c29b14486ae4d042b4bed3150d33c68e0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/51d02c7ec8bca4d0ceb48b7925337a0bdbbbf83a0bbb6006a5f845ebe4252812.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/527b7ebfa03da1aa29de0488ca9fdb00c2a2346932451d6590d57e3f8c2512ef.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/53240130b2dab9acb2805c6bb58ca59b76a0e3f2738bef4a8994eca03eae1269.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5335bc83df7ec58c808140b6a9a67612500e945cef4cac50694aa0824b64f54e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/53576ed4e40d1cb875281371eec9104a4ad913e5d4102abc1fbe7997b92ebb18.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/541b33007148cde17393ddb7e77cdd8f90f54beebe649283f4da41321121b4d0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5451e6b7f2c301fa61b6a94ffe35a8bd06b5d7e8adc2dab8c64709850969bd64.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/549f74523cba26b597c1e1bb692dad7ac16d7978326934eac99e444e91c984de.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/54b23bac3c5c012f340416f1005a2f620c16078ce373939f98aaadcaac373054.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/54fe7940b5d9779c4ab251b75880da558e8e2ed38a7b345a16eb9224422f6219.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/553f0e7f402cfaa876a0ba240b175015608e7e052b748e7831824e157bef7da6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/555cb72d1ca601e9ece9f6757e788c9034109e25acd34c48b2dcad61e6d03f5e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/558e2be76e918cfe9e1732d2641c49ef384e29550f46e384a63f18de26a11218.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/561eb10d77a29f83ecc3ba03d15bdfe3ba127a635cd33e64e163c3fbef0260ee.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/567fbf4a92ba4d00c66fc7b19a385c19228acc9b44868cd0465b42a9e0241eaa.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5690e1f169365852318c99065516d84f79ecd84591e200688a0273e3cca05985.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/56b7f70b1a625fcbb46c9f3ad5f0b8151265c8a4902a6a5d7f71c53355a5cfbb.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/56c27b11a309118413c7d30d362f5f765a00a3f78cad88f3e6be5e6c7fa34f3e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/573ade94f277b3086eec7ed5548caffab27e5a04629b99ef2143a7e93ce7b9d9.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/57746a3ba20bc917bda91b087126a13d3ad29deacffacaa4c31941228c81755f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/57866b32a863be277f477639173ef893d0f0796d3ddd4e563a972d7a2b5f0291.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/579fef71c078453deff8674274cc2e8163cd82e3977b415fc969cd48bd629ffb.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/57ba0c0e0b56a89a7ab475d3b99187e3f5ceb4d927bdfb8b14f210e22564fc3d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/57bb9203c894113b524bcbd4177492e23888242758efb053e4a13f5987ca2c11.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5845d8cacd217b5893246ba66ffdd85b8e9e135070510a732a450b58e31f9a03.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5ab50f8a5cc35d8f05b6de5baad51b873ee0bab1ef76f44b3f0f81b9bebdd396.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5ae9c5186d08102730371c4990bfa33595c743590ee19e1440f4dfdf705c2f1a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5af1db0784202110e90ce8176a551228161457c908f068c61f562ae795c773de.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5c6df9615c4884de607cc46a2be45cef1aaba63fb11ab5c33626f6c0eead86bf.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5c90f15bd87a52d4ded9b6aafbd15eeec8c48d606269c93442c8b65cd232dc41.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5cacb84031f0033c994ee4684966c59a2322bc2e08fd57a6513cd79b325d6ca5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5cda6632f9e4ff47b14affd2244cfce625834cdf53c47bc0490f6a48f98dba4f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5d2f449671da626ffbf3978e8e5d08e15790346f7b8e6df1836ebbcada701e30.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5d7d41597acf653d5fbc7fd6b202acd94e03c2ffdf69bd4cc706df3b19919b6e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5dbe6ded7b90557aaa19cfe27dc7a78630660a6a9319bf33b06cc66d5d44c6ff.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5ddec4a55e42dcbde2f22deca886fd8de024320fa044509aeda5ab032c3e2a64.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5ef8e533cb3044ec683ddf67bb162295bd380d9574af5fdcfa683e43dbcf0423.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5efa4702ab213203521b2d7de885fe3522c39300696a35463e500fd8be321469.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/5f8668fcb38dfda36b877111f91024bcafdae0be24ba5153b48781fd9d4971b0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/615149ed0787f985d233eccfe0901533477a525bd3af95e4d6eccf1488c34c76.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/61807400a001281e79ceb000b479c0d0f184b633fe9ece80644317ecd0be5d4e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/61bd9baa73f7e229e3698e2aaef6f1048bd4229085cb688c28a15af8e5ccf156.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/626c05dd4e82c3379090e64414a1691e1337b0968e84b448ed2d6aac0a2ad380.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/63b1fdedf5be729e1be2e1af53ffd25358c336628bc8a0622e888b50bc99aa6d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/63f0797e402890dd46900e1be5bc8873e81923f33ed70815228bbfb56c77bdc8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/64616173b53d92a772d7f8654cb423992ff822ee0f9418cc127029084ece2e5d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/655902327da6f5206687064be9e9d2d189ac34eac94e3076ea9c6fb721c14d7d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/656a7addc988b94def90006f2a2ab36f622dded1f5d0dd2f262682c5cd2e5ada.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/658f98c7b6766539f0e04cc6a41c30c69fe225a1d57a95f180359a07e9197213.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/659e7a1e1d66cebf088b24a2179c91436527eec5c8c99f79e30542b43f2fdcdb.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/66059658e4c671112ca68d90342149e0be3d4fce595f37e262984822bd2d6117.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/662c2c45025ef2370511a492221242c71cca7c188d997040ec3968a4fc311ac7.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/67f30f784e9143069278235641400e9f010dbd890ac884e171b227aaf9c90d54.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/6872bc30aee5314c968e32dbeec85254bf7981b5d3cce74c3baa194f73c4ac7f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/690b33463ba87f2259d1144ed735cc91b307dc0c2dc22059fbfc96811a69bfab.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/698116ddba286aa63a79268f1518e0b7893a26562b0b614faa14a5781ca3e768.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/69f2478b78d52bee09dd503df120ba77b39609b7037f7d68d2f0f747b0bd1ef2.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/6a36509979845ad91574c323402201b562722d33d26458a6cb7e8709fefe589b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/6b5f232b5c4bf34633f72126d1910a628fbbd10ae963eb25aa9b0894b8380331.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/6d1c1cd3a6ff87f7373d92b8b49119b1ea5c6c1a8aad830c203820d6cb802da4.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/6d590d611d286927a4b20c3729b47f5ee86433af618f4c2718a3168454f22bcf.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/6ed41e8b5206e419357d6c2135eb2e55312150a329d565131ffc5af3e7c83b41.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/6f83cdd65c8f30cccf7f2d52eefa77f4b72bddce1284591f8125579409a33e3e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/6fc923142d37307093e2a777ae5e88ce787978df26442094ea10079da58d8a85.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/701a631bee423ce8cfddec7a431970db8b821ca792be19350f655854d0c47a7e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/707ae4cdbfb00bb9bdaf2db9f3d52dc80cb639f27ad9ba66cb27b4c1b0dc1990.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/707d7aedf77cbd0d1ad569762f15eeb2ec8697699d3c0d2510af1884ee955b75.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/70e30e516530aa9750f686c87273fcec95d6652732028bbf6ba95e0298b59e95.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/715298ddbe282b721fc7e1983ea9690d06495e5ab955aaf19ac2ade2a3bb8a8c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/733bd57d6f416adf1882da2a6eb5c402183faba519eed260fc058a894d9c5383.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/739b6426485d7e16575456ff7981ea4073d2d6ce491819dbb52bf5a56ae0d6db.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/73fabbdab5b6a6d90515e572bb9967c237e3c98b97bc8b2f9347eee9186b0ea5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/747c46303a4f2e72f5f227ed64e31a933aff9808a641f34e0975e607f4fd87d8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/74b23b6861e61afc94db0b861e27b7286fecf9b8448d5a7cdf93e378c10726d0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/762d3e3c49039e0b09061d7880c2a2d24b763eac9841161b99b3d733f840b3f1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/76917b7278b00a959e9631308d5a86651ddf22df1abc8172f7cf1fe43364a422.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/77243a7556bfb16b5952c5913d46a636f597185b4816f393802f9cfe41804269.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/774c0b63cbdcf7ed46e9850a038b245ac5b3a3459c617db3846360d1295f17d4.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/776b978bb1853c7b4778750bd6cfb5c723193267b137fdf26c27780e7abfe96f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/77f09f4820448818712365f23229ca2172cae605ddea68ea47d14060ac757904.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/781d0b5806c6db24bc5f99b1823a4fa26943af5c9a876c255f56abfe45eedb18.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/78a9348e5bbb74089277e97936cc1928d8b9ae96bf1eb4ff5baea92811e89486.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/78e8427abeeb03a73377429d5be58d277c498f54e4c543c6d8a2a42d72ad009b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7a18d6937f6a490da669d59155610d7df802da7d9e74277c051fd1ec0ac91145.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7aaee49956ddae9ea5c647df365799520fdec8630ff25c6149e5823bbd7fbeba.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7ac4dbe12365a155e0ee57b911769d6e6ec0b7e91cdae66a5d8c3a0e90a048bd.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7ac813fcfe6416097411d4624ed1e067d679035610a2071aeee204efa4ef4cb1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7b58c7fb74939f8f72772e8c5af2689c45f48bc87b3cf6f6325b4a4c55f711f8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7b87cab6c66e0c834426dad15340cbf1b4879415365f435421295ba42605890f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7bd78d6b29097138d35f27b2be6ecfae8956c5988df7a5c37459b068475a372c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7caefc6c31eee24fae5fb471617bd5cff7dfef443e0a8a4415454195216e5fd0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7d2ddc54ba7a774547a2c2e5603a075fc3e743a0f059ce2873633780f2ad4b64.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7d326318709b2f1305636d2b9ed503aebe8edaff2d14c2427fde3392875a5aa4.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7d3a1247e7b21d4032971e11ae4c2a3dbe4bb19c7cffa0ede76f23cba8388426.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7d5448b843fb1d61b812d4e2fc93f7f1f3dd1243732f1c911d02f329acfa3f2b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7d831edd2acc75cf3da251ff60d7a75ccf5906b059e7e7fd5a5c0cd3a9485cf6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7d898340b9a80e5575b2dbcff619d6a6f1a2e5774ad31aa9f994a517057085ff.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7e3b6d4ca4cc2bb376ffec043ed27eab92e4fcf88f0477b377014a8d8c782098.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/7f2c39a3af2106908e2d880b13074ff9b80f64041b5303fb8aaab340e7533ed0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/805b8d37df2d0f1dfb064fa6f8c752dba719caaea037416d2499fe3dd4bce81a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/80605312064c733f83f74a6590731ad2f32a49f87406bd34fa238b8f88d3710a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/811b531182456fcbda3e667978b5285f702715a0e928957826bbffe002d41659.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/819a9b22d771ba4c0506a8003a7267036cc127cc023be6295d72d3f5e4af7f99.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/82564e59defb5684d45aeee5bd683620305214a370b71579fd462f42ec33bab2.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/82c26fbd3a638be08776ecda868a671a65cd35e13c7cf6a99aedde836db2ddf3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8325d639a36f07c882d6b5b2a3c781d1a577470f1b652b5ad3d34602e04be24d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/837d4c2093c8a745739455eb66618c88cd43da118580ed4b448e16f2f385bf82.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/840a98b825637e324ea573720c21cd0d9dbd43da6ced3998e92ca1570adacb86.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/848a5279b6e43db46905c900c752483f63cfd54d580f9dd8764afc699ec2b34b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/84abfed50f07415c3252878eb281fbe4194494abe43f31cfb8a2473793b3fd87.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/84fa0531a47ead005f3bd76bcff3a61a5e6c4c35082c2a6cdf29b91a9d2856c7.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8533211df5d7a054f0b6c5557a88b39d829a556bcee38aa8d9c54a578ddc2ba0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/85b1dd8b6b967243e09da79ae13129bc52dd4986323fd1e71c0ee300844e5c70.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/85de81d8db7489081abb0fac75f30ede398f205e93191b3f2b356ca366b441b9.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/86689b341d4c669bc67ba4e1c76638140ef1b5dab465247b811571fd5f8a15df.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/86b6a277de1db2116b79816655cf32917580f4c2749faf50c5474337321c2dd8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/87889c7ed20f8faf94ed32b336b657f08401bb7a8bf1588200e3325901a53f9a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8793909d04ffb705c309ba27ae2db9eeb6befa5a9373423c83bc63756e2b5cac.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/87e81640062417e53e7341d1e72b55edbd5fc3bcfb4d50c28122c05d5f79efc3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/87f21064b7c7593106bd153863ddaea13f994f8fa5e2af697bc0e43c8df59948.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8805c43fbc816c77573568710401b4753df15f41b4b0514d9f19799142802e7b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8815b831414a88650ca308ff95d09c407ad1250719119570696a902c31d3f6ab.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/88a6c7bd37f1c23112bc05649469a49c62fcda65200b3d4d0b9c60f1ba3166bb.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/88d49cb20f552ec2929557b564188696f12bf769e4f14c3db3b5f6e3d9dda2a9.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8a6f86666e7b35ac4b0364e76653b49a376bb4c3ff7e49a464dedb0a54b73761.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8b361d1d90410563044cc4f74fedf80ec7c69d00a5f6a7da610aa8bf40a8f9b5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8d3ee6377bd647655c847a8de8856bf6ac11e47bb1e2d567670fd76d2c46233f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8d7b38bd640a4f450facf01dee716b9fffa7c969decb1695aa4b7de06e728bfc.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8dd1d3b656f519ebbc86915d6e2eb8f44707abd7814acf64fa92893902be4f10.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8e00349cfc68468e2930083d594df044f588a01c1f1a47a7a71aefeac71f08c3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8e1b3836d6d9818af4c719ce4a196de2b79951821345ca0eacf812f7e8eb0bf2.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8ee20c337af917a69cdce99c199e9ad2fe22c83444f404c66ce0251d277d12df.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8f2565338cfd4be287e62d0b4e2542690c29d6cf16996dba0fb31a25de98577e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8f691dd602502606ec630dc610d163cc4230ad5d9cbe2a40e3f473ee3468a334.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/8fe62d2a6632ef007cbffe238176f0b133a71057b30d0d1e05889cec3965bee0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/90c98004b166c044e12e49c60904a5ab15894dbdf06d2d701dd8081dccaa6064.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/919730f3cfa29bd613f6be917fce5b84d4c83bc22b9a8de7850f0b71151fcb0c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/91c77ab4f0eb7dc97f68f2f867c39710c1d92fcd16811727cb02b3019ab0ab75.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/91f54a195926a1bb6b04935082466b2e7bc8f98a85a104757fea8c338bafa346.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/920515bae964b19c507c85d66d442c0c1a319ab736de276516ceaf6d5e8233e1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/92a894d96ca72fd0814f1fb2e7d3c5f7accfd8801dd9c3bce0a52c617d67cc22.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/92b2ea8cf651ea64e8b12d234e19f5fa596a80cd7ddaa13c5d45bc32814540d3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/93390354b35331af5a9c9f4acca0cf26a5c63a01118ece956ba9ecf466c9e051.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/954a3ff50a4473d0ed3ec5198f0f3540942dd4a20f58a139139edb8c2fb97b4e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9586765e01ecbe9ed51ecbb6d86440ba6a3b02262e1c06621230d8e913e7c4de.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/95f03fb33f7ef5b3eb532520d7b6c5cb2cd112458fc0392af52844170ce2b557.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/964eae66f63679f547e63bd462bee494c2d7b319cd70f6aabf57aa4c2d1a4f19.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9680b3103d4141d766ac88d7288985ea2031ae03bc008bb6e8e2b50a25f81f32.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/96a32620d7f76d7e1826d4d7756f21d26dc9893b519e502dc58e96663b509581.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/96ae369a436db58c8915627aebd41291afbc6d1ca6b1c32a4e1f21204ec5f23e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/970f5ec30cbc78e0505054f8065fa0e1c6813cb534f44d7562ede9b078a907c1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/989e16962814f65052ec52783357c70497bd8321f0ca97823a7ddcfa6b160a08.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/98c079e0e7bc530f42b062e75d5f54c026f387682d426b151c0fc0268c12c30e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/98f69088a4119cfd429523487a1e5b1dc052615d22d452e7b926909f04165c14.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/99e6d81afb3fefcc6cce7e4313521e9c9e91dd069a75e42e594d300d33a32a07.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9a4ea62e634b930bd2b1c5950cdc9e54cf523cd22a226c363ca8e108ec7ba87a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9addca1d806d6b827bf46e158ebfbfe0c2516bfac7067dbf169fd15d5a90a68e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9b2952f20d3accaf7d9516e68a557a344df695ae600d719a46e0a513b3f426ff.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9b2d2d5b2d621cc6e723dcccaa18ac0e19959302874e5842d15d2ce129fc8198.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9bfdd56caeace637c4bf8f6b439e591266d734a5c37368c0ffa1b9ae2b259c21.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9cc6ee4d5a1b10506e02f948a701e5c4200a11e67ba2492294366d08847874aa.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9d3dad44e737fd41d71be135034f82757b0bdc0481e30d64c89857713cb2441d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9da99af00f7a63ce8a4185fa1cc84ecb723aa211d1a3231f61fa735d36587032.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9e7e5c4e043cec0389671429dfe7ca80565225dc685dcb53f0a1eb129e38af3f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9f5ba684fc640bab221d85bd149f913c47917dc6a8169246a3936bdd54e391b8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/9fc4fc8fd2358af7b248f274aab6c432c0893c725e52f4483d79cfb656a9277a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a046574eb9122742ceae7f75d7241e979e4fec1064ce8e97ff254f4d387be7e1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a08d8c0a7067131a8ceca0950cdf1bcf115072213ab6e101607118e0a5b84e3f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a137b94c491a30d8baa4aba78abe70e44329064d7eb3bde9118eb0d94d548a81.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a13ff0df823cd56f7e623478345b0773d63f4fe8f291ccfd69e26167987d8c51.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a1577c193e87c49630349db18333fcdaa1119df5cacdf4be5506d5b093b90a90.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a17047144d3ce80c178a69ab1daa59fb96d9e8b3e74424611740e3b2e04bdd0f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a32b255a187eabf5272df08ad22cece87ca96e851c10bbb6b022eb986b681f2b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a3a4b1c002b486d4bc1836c0b9caf0e5787cdaca884bcdaeb606f97f29e153ae.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a3d3141687145f39576c52cf039955edf0799edf231fedc5d16da79be5cd9f8b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a3daf5b9e109de5ee5d3cc5f7df0c0af6eab173a6236e44bcbb43bda5f9bc0dd.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a4bf6253c6ae687de5dc866c0111714b6d0f0fe18ffc552377ae72c0fb1e5a98.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a4c993c137995760990eeb7e7aae97696577c33d2174feca17ea768a97971e9e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a4d8708a8bf5925cdd0e8d1ae11ba0af33e57d5739b96e96ee1496b64109b27b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a54dc2bda2167ca5c641a24c5db793c1d8a74c6adac6ecaeab18f5f64c406e59.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a5582642b1b1b30937849f52a140b6877b92dbb697046fad2671759e2949f7cc.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a58daecab541dac36e2d82d6af0d63f2b8fc0895e57b9e25f822152289d09af0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a5df754cb9ebd9786c312b81af41010df5e20db5b723bafe6f50ef2339beab3e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a5e7b4d69b8c94cbb6bb7bf6e6cad896cf10fd0a92dcaf1ecfe9b5ec89337fe6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a61164657054fd898fa35cafa5639674baedd8f8493f7b28ed37dbfa62ef62eb.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a63abdb5bf95f7efb970fc9fcc02bda59f4025edc1104b994dacd93844835471.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a72be33b409a8196586e3c445f321da57db1812e02373ff1abcb72de09751bd9.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a731ef7ee59f5ee94420911995d3674cb2f22beefac0d4b084de84c4356254ad.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a73b87e3f32e96b31201abfb04a3902afa528bd85a7b1aa12c5af06fbe537d5b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a788d47f9727d9e4d75b89524244ae978e71fdaf5c47ae0f6ace66fe61e46601.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a8ea19e989d0a16212876ce88d14f7c206ed8f4015cdc7ee786d8fa271bea303.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a8fb8bf0f0a2a23b335b6d07da34f856ce2041c2b276d4cc963ce350ed8db332.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a9090d59490d723cdb3be386ccc931f46286b77e1730aa8631b7a5ac98a8b7ec.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a98a1a5bf00231cbd65496862591b717ee76f29dc553e3bf778aab22a8ac956a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/a9a8dbeb937464d7718a432613ab1ad289b444fc248b64876e2413f1164ac65c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/aa8f70bedc9f64c580c6a0adad44508d24ce4f581a25d866cabfc02928ec0e8c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/aa9278bd9650acdb836b98500bce368e4a171c4d9c5b278aafc09100e105b91f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ab1fbf6c0a08caef0af1d1be8ac724071a121bb5172165de8c06c28b0e175920.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/abd6451026b8981d6c6ec03e6fbc3fe6e642f24ed287846dfae30e8de2d728d8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/abf5a77d0ee92b0588514916d4740c610201aed86c3f5d546667ef1ab17e270f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ac4827c8e9c14371e90fe668f1196b88396481e0086a6d73101ea3f12c1709e3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ac7fd9ca4256c55e32404a78b073ac398849562975fe2e9a802702d9945f63e3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ac987841827371d3a062f8b8497e0c05c8e5300bbe45792872d03bf938cc42a8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ad5ccb0b57b7117f21b8f240249a18c99aa0662516a93ef237cf48a481527d35.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/aec850bfa0daa1e3ec96d47b46d1d8d03559803f3a7975309135106bca8afc31.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/af2cbe6f61993e62306ace4ddfd661a16bf070bce3bb2f7485fa39c4ad258a31.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b04f8dd1cd926695fd83ae65c61f8fa387527d47baa084e3d30b61faa44a63b4.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b0a4481f3f50be12a4688c2fa01b211037b1b45aae69b3db296f918de6003ef6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b350dff625726a22d42a10b2aa465b2195c8a5e513f72827b00235f5ced77ef5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b4195252ae72cd601ff5420f052d61b86abb66fa142968c385821e30f39d872a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b4262a9e2063b624b4bc230830d8afcba418f4cbe2a21aa4e743cfd3b4efb0b9.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b4cdea4ce2a43eb28a7cd56f0d366b53fe3bf1349a20c795961bda7776791403.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b4e5359e72b6339be93b4ff2661db34e7d946f8aad95bbc49ba648c686cb70a4.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b4fc76d430ca8b21e474bd78e8307684023fea4f23b5b7c059cb86a05e5b852a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b535e82d6b7159fb08bd344cce32793eee6ae69a3727b186e5fe0f96835dffb5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b5b1e7d53a6d21c04e527ceb7de829c849164ccaf3c55eba616f767dd87acb00.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b5de1565e30a5799126657c899b6b0278924280fe476e7dd20e28d3be140c557.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b61883f58bad14e6c5d94c77c58b56918136cb4704bb1772a72312dcff9e3721.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b6c8c692950f97e5599867ba932111f83d98bb37e746189a414bde7db7a18183.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b6c92d9430453e7bb1616f6f4a3e66a1d980d4cde16f060732bc3a003f9246bf.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b6fdf59c7c03055e404d7e06b8b1c9045190188d9f855f01b676e5cd374de3db.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b7472d9af48a9855e8172774f0af6ae71446046ab8fec2ae511ebb79ea9cd106.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b7af5f41bf28125aee369a91361cf78a6afb9df6a57855a1fe19addc3ebd890c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b7ddeb9e21b1379c88d721d62d5df6406e0afe7463b0c70e32973ad1bbba7295.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b834b683d489d5b3f3eefdd41658e6e6b8cba6885d875dd852ecffe27e206958.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b84647e2730396d6205046ca29dfb8c5e35ba67b6a842809dac7dbf02565a664.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b846bff415b19dbe1ea045459dac355fb9671bcf71114888e14b3587b0d10781.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b85197cb7b8d973998746b39885280d7a3da951fb61fa491b8610debb61c0c37.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b86891d1f00a6c8d8d1a8f4b9fd41d9986d26d0ddd817c38ddfa44d7f77a988e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/b8e67d2c3cbdee4171d4c33ab3d98315a6e06cbb1fd00ab491aeaf1c94b3a99a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ba73cfa65d3635e7202f662549bbbef70749c763b253c959f2225add3d589d5e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/bb7607f2213a0155e6519d38557bbbf515d9c7094213ec65b5039a0ec24db1a6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/bc066ea840bed8fdff24ab3f5fb35e75b9e4f3059f7108b2f00fab6e55439495.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/bcbaf5aacd95e7c5acc7bb248134e8e72ba82c1818d6a9567c16a6b812799716.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/bd320c3e5094679b8586412d974daa333a2cb299310238f74c5a669caca1b3ff.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/bdab2a114cbba732044775c41dfe2ac948fbbf8c1cc2a34dfb4759f077ff7dae.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/bde4a5af99bc5c4a42d36c77abdc227e13b88ab107c95032a255d90b5183ba23.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/be0ae803e84befe58f9b7bb4ff8465e4f0ae9b4a29a77d869359a68f956ea2e6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/be5cc49fdbfd979955130a52b6389d614d7780ebec6cd6a71bbdb49fdc5a651f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/bfef939826a067e93185de3597b903d3399881b30b8ff90564ec66817fd8222b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c0422f01e9469a981c4a191dc583e01ba84f92f23c3fa4cdf831b430ee96575c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c0548e826637d4a6448066b50eb86ffd8ccea6e47ef13a9a669606aaa6ea587c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c088be638a62d891511f57e46f6c671f7f32bde4afc2e8d4350da48898d7a042.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c0927428f142c0c69cf38d6e00f6137fc9d13951b6df6744ce84336164bf9a23.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c0ab24eb81be9a5e1a748f5e8e50ea698f3c9333065a2f1f900d8b8f5a4e7cd1.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c0ee4660dfd2cb370e09df7efae8ea66ae9153ca368dbe415906810577982e9e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c121997c3754d8899b11b74edab2989edc10884f779c97418f2c1d0f96444e0e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c1a97051c3b93b8afb8092d05e6bb536ed4d252da0c617dbf321939cbda0dbb8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c28deadf6b20252cc5eefdb759d82f3542b02dc0d10fa88cfbf80de334bd0e22.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c29e8dcc8bf38108bc2358be4ad42a3f0055e3cb9d644c80efcae63b89ef777f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c389b0365a058c68a0508755b24e09130eb18f83bea2fb854e7ffc1a461b4ea8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c48afb87f30107cc8efb2f6e2e1adbec077d4d1a65da0e842efd44d03abe703a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c4f02856c9d16ffe270804883f1ed0e37a845aaaa3c918c0fe3991e68d76c7b4.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c5265d773dfc533e207af1058c5c37c45e87b733f03f622f482ae3ce0cb016ae.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c5c249a676c023a68a53b8e0c86518d167eef533721ca438944f302605947367.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c616245d278b0be6b27fad16d521ad39760da1a549684b56aed16dc0ba17f872.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c6291c0d56bff9852167ea25c356bee3c5d08da31b82e39f7eb0210ab3a4f6e4.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c6c88f9d73496e93fe31951947824a9bcd676e4109d25f9b425130b32b596cb0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c74a779cc2a0067a975a053357f9c58a864a16c19562526774afddb588a53aea.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c74ac21c4abd0356a3b05df2aa6ce1c901ba47b9c429f2ccffbafe94ce1f8f45.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c768ad9cc6af1bd9bd357dbeb073f872736168b30292011c67a11aa6c9be4514.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c85ea81c6f0a7a8921259805645039f854604654f371f5658830a7a10abbd961.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c866a502764f5d9d42af3a3cb5c3bf2381e2291ccdd7acbc22f468dc4e0b2b8a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c87dc92afa8f2185acb5836cbc4eab1ccd11a3a087901f6a0d7dea6258bfd586.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c8babeba007180b6b56a092ed814da4dfc4714298d82c9c87e49ef1176db76ad.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c9a4ce07ee24df4ce0e940718658e9420aad761857293f9beeb1d2a01aee1e7c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c9be3f96fabb3ef258c3aa7f8ad1041385b0bbbfe23c0aa2568d81f3dd03b6ee.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c9c53ffe3208332ccda66ba230cd392569db6281ad479148a095497c71647826.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/c9deafe1d9095c3d05f146e97dded0da3d71ada00c00fee32e7b9e994366cc4b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/cb221006e82f11bf20113ec58057c42a5ce630de9a31bd80d0ab1041df68e9de.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/cb355931c55e61b5a0dd8e714d8f6909b655e882ae41b19a5f79395f4391cd5f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/cc4a04e426d488567c768b24bff53bbfbc8dced11a9aa52ec9c1f04961da2bfd.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ce0d5c1f8b23a050372b017f26409c8ffdbe7c1415426c75ae57bc186902679b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/cf747002288bec4a8156336a9dc7fd14a40cfa24784ab28dfadb2de995f3e5ac.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d004cacf37d5f814b5d66c0297e29e055caf0144cd6e55318abfe9740d493042.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d0b062446ac334c88c1e66a8b96e7f6a9af9803521801a911014c437050f1677.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d14331756f2f616731f3861187c59593a784946387bcde45adce8100f731197a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d14ffb712b85bc970cef0eb7075bea73f53e0b739fe2ebdb35d55d5ef6cee6ff.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d1d5b44d9f343d0e5b99fdf31ca53ef70f310a5dc5a8ceaad47ccfae8489c70a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d1ec40b009181c0e2e80467ff98b0ec8d328dba8948d49aaf6ba32fcf8b73519.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d29e0ba3e519153c64930359fc3e1c445c293ec5889fa08e06f30f7e25d02427.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d37640bffdf14d5207f4da8b975de51a141ee5b177aaadf39ceaf697411fd7f9.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d3b7aa8cde8995ef14939e2e4afcfe5639a1d6c9a55ea237aebab68e900ede82.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d3e3758364556100ff4cfac4e1939b1cb49d94003b5f84346be4c2ff909952a3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d4210fb8f5ea9b1ef97c72b7c2e462c13be9ffc7a9c2b8f71f4da2a23d66948f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d429099f7668028b2f9387c408ac6da70df0288a26ae6eb7d570359f46155215.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d43765298c89d41e7492a63c602f189b9ac5c00b998ce696c1b3c51113f3e040.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d49267811d25e9f61d288ec37d9d60be924e0f3593f0b605ba1a16e8e6d16c1b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d6113341e39b86a463320c0056f1cc459e654f875cad727d7b988d8439534408.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d61490ff86b19f3c763ec441b3354ec2a79004bb6f976d6c9261b6ab385a8781.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d6170034d9e232fe22eba384a5e7c299f3c0044301880fbd0548f139fc3a0727.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d6a4714f3a95a2ec99fb584961561d1e7f1ca9167ca33e3de8b76a1e2ce3a66e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d6eae94d1f8bcae867b6ee704c220843a9fe7379852fb0370121586130cbe15e.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d7313c02f0c2bbe06f35555f7e6d21454cd09dfd5b5b38c36fffbe60c25016c4.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d740e54fa2e474759ac8e1a5199d769ccc9646b0e1dec2664e0a4e43b4e6374d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d8a3d7cee6700176eab4c888667971609507c992f8edfba1c945ec01c921a4a5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d90747d07f8c0645e89106b1e967d07cbc7862e258b66d012c5df81c5a5e07ed.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d9161ec06c3e5beba36ffe3e26979d594f031b760d1d4d82ac87108b00ff94c6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d9233219318270d270d1ce513195e85f0f02f71fe1a89e21eed1402db47f7858.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d92c9cf19472198e74188fcf2cdd100979dbb7cc4c877a117e481e15465e0ccb.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d941b6311015df2c7608fadfc27882bb2904d64ae65c3c30f7869b2599642d28.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d97feffbbaeae5eca4c17283423453908af7c2054de98714bf96ffe296ff4db0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/d9e0c6275dde98ca883a95e9d84d5b3a3ca808e8fb159a3a060331d75b899cfa.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/da35cfd2e3dc2be3d2ba6d17f8099e0763a247c4db6e410b218aa6d9f8c24392.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/dad28b0ff7b697cbe6d958a8f80ed12da6245c26c176a7bfa65ad006473d30b4.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/db1099bce069c32350f4a49f2708c49f06ef744f8022cb1ca28141fd7aee7003.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/dc5538fb8e518a7f213a794f52d90af787abf058df42829aaf517867382a35ef.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/dc8c05d5077134f3dea2a08d3a65908570c6f84f8c668b9e1358b27109ea9d80.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/dd087323e3d96bc802904695a6ace179cefc07890be60ecbf8d2c75c17125bb5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/dd9b06ce9e9291198a58fb39184e6ea6a641f44ee3c9c0924770a2dc0de6276a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/dde2b442ea4ff8d83d202f42703a69e1c9d2b3fcceef191eb6a7729d6d7debd7.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/dff1d97eed812df4aa4fc9eec50f1fff09e81aba75567ce0d4fa4ea34d90f7ca.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e010d0da18376b359ef37479e7084afcaff589d9dfddd1e1c538db1ecec1efd9.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e043585dd6534fb43f9bb3cefc2a48244d4a4a88dba57fd5fdf0859bf0dc8680.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e0505646d010443b54eeee489066390d32c73328581773676520fb3eea69666a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e06470d44232b63d8b8f64d1a3abdaa2eaada5858943bdc18e0b449f49e8fef6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e088c52a5155e0df462e368ee10a929af44e2c6b3dedc106c8838cb2b368089a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e0d2deba3018521627da6ae26c131135eed07f17ba98d8cd6556e7c0dbcf6c22.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e153ea115ae525c9aa04102228d9cfb9fc9fd709cc5c42f3b286f871e5baa8a6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e2b71307a312caa98eddce7f378320a06583b9c4ef39dc8e542eff9af8ee88e3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e2df8fd8ea193345d3fa34860fd1ac7bb994a63495e0eb1daa79949c3f49e1fc.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e306fcda41ce4569af999db6694862ec5288cd6272ba90d9e24eb6e725a5e006.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e433b859eed341c42cd30f6ca58f8d23fa78913716a28e10da3ee3e37ff38663.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e43e767ab362e574dd10f49de3920284e7593b169603d456758e0ac799ede81f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e51b298e1d1f89bdb6595bb1db93cde55c4c4ef3591e947832a96cbfb2f7f5d8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e56a844097fc0ef54e9f35b8bf7c02737a0382a55ac4392f2648e1a7e212a535.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e5a16376aae719201f4a85d159800d7d5219d675d7809ee65c6817a4147cffad.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e5a34820a471346a20e1288a8d832184543ae8b2eb9a9ca7fe745f54d6ca6d32.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e5d0461160a7b8757bff1e9c6a5823d5c773a9c574b72905eb25958c8010f36d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e66f7e491ff051331912ac842cffa31c30af3e4389fd50c967bd175236ba2bd6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e6b0aa4b477b3ffbfb3b865adc5c1352639d018feb71d527d20a9c29c0b78ea3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e72a57de735eca9f97a53affd50810184e54f03a12e2fdc4292d5757c9b401d6.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e8ad3e8309da2a431a6884e41a03d384d7f80317d1a91990debc962bab68e20a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e8d9dd3c7454557cfe286f4557dc72d05e8d320daad1bf9f212754b5667ea1ef.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e911843795d6808ebc3b96bb057f24fdc7392799660c621524999582d0fd8c6b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e939a055166cc4f111b174ab91b92fc046607db2722662c8b1f739c1f6cd646f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e965e380193ef4c7e0477164ae855304031acbb3923937b5f82acb25039db05d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/e9f78560ded49ae3cb7e894dcb02995156938bb6bf5d82138524db8a703a5c3c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ea650a226de9f46c427ce3f1aba333e184df4247781d7b199dbaef1a930954c5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ea81fe8ef65d351c696adc5c017a7b6e195ff5ca8161c1a0895d172adbae973d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/eb000a85bbf20159f039bd6bfd140e6c4de076c623d90253cfc12d723cc017ca.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/eb3a6796304a8bd1d9b4086c2411aa7b5f252dda5bab4bd4c01fd2ca1c86a498.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ebce94506cdbcdc2087ff94a3032248b1d7ba560d28a04160b8ab593924be6b8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ebf535bb167965c83ecf8a0a2f45131308d96fad7a47b2f2e5748a6f506bfb3c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ec35701b908762915bb879a728702ed7dd7f6321227c4f869dbc35e036a73687.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ec5a8bc43cdd8e33afc35864a5f35194721a686367525a8325da7a71eb9f3b2f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ed0e84807a34cf90fbc36e593fe2ec230774431831bf1435f99771183f459dca.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ed1b4b1d8ff796c33bbe3f2bceae8d0fb5f7c52782919c6e802ef9104838a623.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/edcb9544bc35643eb2501d5d8eca34fddd7bc2477e1f01e65769c7c5e02bc468.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/edf84efa94415bbec46d67d16349f2825bc7962a95c9ec91fe86cdb919bb534f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/edfbb502a1ed94991e234a166134805212c3b284b7fedaae3f23215e218f5598.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ee74d42867c112d6b562661039fd32b233aa939814cc49131c75601f1514d8d0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ef38d74da375afa37d038949caf8dc6e817c8ed8d5006268383143e3d8e4053d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ef50ffd80fdfd2fa496c24d725f834c337d6306cb76f4eebf1d45256960b1e33.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f048ba16afaa5d37fdaf9bb598802549a5ac95925cf22411ae622fdaf0510d3f.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f103a1d2af9f9ef3a5d5dd189f9fffb91213041c7a3dca3087baec52dfe67c17.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f231bad3430c894d0bf66be5db4739bc7228022811c011cb25d0b01b90b2b0bc.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f2c35da584a03ace06d9c9f442f6557bc4f65f3214e7333a147b4c6b85f5a122.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f3578c31f7152610362e86a8bfb21b170b6b5eb747bf0820581df95b1c0dc55b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f39f64119713fb5f07ef0e40a552398c9ab6702b3baae0e9592d82f43eb3a74d.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f3bce9edcfb6fd0495cac66a0cd6fd834da469dc7b0fe5709e4c1dabfbde586c.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f405c5653744d8c5e663e2263218cb8dfd9c33f2c034bb48c5bae970e4a15774.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f41df7715ae1d9132c08c16e2ff695fff44318b131141b82806aed0ca75d8a6a.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f483d553325c9f1059e44230d08cc0c6b3a1f4b1041113458813d792b5b387d8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f50028873e78e304d852602f12a95276eac2194be1dd6f728eab26fe2457cdec.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f52d535e9c09c16aa3b99de166eeda2e436de1c8f77d8c1d716e00eb8bfbd395.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f550326e92130d7f3416895779af74fccaeee52683f351370bfec6c1e4f40130.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f5615b8888ac46caeec8f88503bdf74efaaeb4615255a6bf717362cec59f83ef.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f5a80090dbfdb34920be2e3b403780730cf7760362896a41460d7533eadd2eca.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f5bee60290870292012f54f20dd626bb614a34d58896fe16e9ae8b1a6c274327.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f5e305c7ead32cb24f0d35515d1e88ff9c0125076d41d401ea05aafd5e1928e8.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f642c66db6c5157d1d716c7b60d1484b85a3b36733ac5f9f6b5479dbea85fc02.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f6b6c25c4bca9383c189965ec289379ea0c93558ad11b66679f21cbbd106c4df.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f79f9a157b3870773d72e4280aae81ab3fd028b9647e8ce342c133d90ac04d10.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f7de43c7ecca092650f3520742c421bd807732df818c37eb648633ec09ecdf66.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f81ef0d0622552860c0fb70c8d6e0559dd3ff0132fcaea1ffc94b603436e5fef.json +0 -0
- package/apps/test-react-app/node_modules/.cache/babel-loader/f843c9b5a346eee92c8c690f20cdcbfd95269586ba385cdaae29079fe75a4028.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f856b4db4597a8e6ffd7f835cbbac0da286a1620da6cb9f66dadde452b2c0fb4.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f8b05447b64b9271b83a4ea4cf1c163a8815cbe29bb579424830d2a423f0cdd5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/f99346cff55b1afa9b01c4b4286d627188035d5e6647cb026fe7c677158cdfe3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/fb0c370e8fd8e419abfc695cd5412cfa4972c22e69265d3d1d7e9e7bc84ca191.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/fb244385e5c4fd6a07859cc94e709ee456bf74257530b81b09063c55fb80f68b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/fb29862b194e86616ad9601567a90883f1944be4194431087bb53e624bdd5bbb.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/fb80fd7e48b15bbd07961f7c3a02fbd554f620d9ad5fc1dd9049c1c835ec02d9.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/fb8df47d75099f1f2ed847377fde7a9825859d3540e1d86945256fd5b1bd275b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/fc60b8099aee588c0a5db14773ae71a83682083eb03b199dabb4a6c01a11eed5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/fd52e80725256709a0405311d9fd19406062aeee224dd5bdaee02616e341aef0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/fe31aa33c86ba5d2c4b81477e97dd49a63acfa3a09f8cca020d543cd0d4cfdc3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/fe5ccdcb55a78aac3e9654a6971875500c5482f7af7835b4319724c34b678eea.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/feb8d039e112f8b6ceb1873ff7f028e5ac34abebacf8dbcfb2e8ed4cc91674c3.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ff22f63aa715bceb6fd28424aae332edab0a0845a8896458a2f980a144420cc0.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ff67c99eca6fb5a136b4defeb21124e325dc19c5286961b3f484c7518a885d13.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ffbe4d09751ff77547e59883e63d9c6f9958a88dd48468557286f5b415ad00f5.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ffc5cdd6dc5d9d1a9c4482466ba0db74e619ac3b1665ae066aa2fed9894dcffd.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ffcdec75fdf20a82a4d398537e624084f870d363fbfd729f0a62f22ccddb535b.json +0 -1
- package/apps/test-react-app/node_modules/.cache/babel-loader/ffded430801aa363f87aaa3ac97a1f0d10904a6778b010c920e91b97b8efe025.json +0 -1
- package/apps/test-react-app/node_modules/.cache/default-development/0.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/1.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/10.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/11.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/12.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/13.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/14.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/15.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/16.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/17.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/18.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/19.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/2.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/20.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/3.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/4.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/5.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/6.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/7.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/8.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/9.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/index.pack +0 -0
- package/apps/test-react-app/node_modules/.cache/default-development/index.pack.old +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"ast":null,"code":"import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { createContext, memo, useRef, useState, useEffect, PureComponent, createRef, useContext, useMemo, Children, isValidElement, cloneElement } from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPortal } from 'react-dom';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n};\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest$1(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __awaiter$1(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, [])).next());\n });\n}\nfunction __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar NODE_ENV = process.env.NODE_ENV;\nvar invariant = function (condition, format, a, b, c, d, e, f) {\n if (NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\nvar invariant_1 = invariant;\nvar invariant$1 = /*@__PURE__*/getDefaultExportFromCjs(invariant_1);\nvar MapContext = createContext(null);\nfunction useGoogleMap() {\n invariant$1(!!useContext, 'useGoogleMap is React hook and requires React version 16.8+');\n var map = useContext(MapContext);\n invariant$1(!!map, 'useGoogleMap needs a GoogleMap available up in the tree');\n return map;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction reduce(obj, fn, acc) {\n return Object.keys(obj).reduce(function reducer(newAcc, key) {\n return fn(newAcc, obj[key], key);\n }, acc);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction forEach(obj, fn) {\n Object.keys(obj).forEach(function (key) {\n return fn(obj[key], key);\n });\n}\n\n/* global google */\nfunction applyUpdaterToNextProps(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nupdaterMap,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprevProps,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nnextProps,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninstance\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var map = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var iter = function (fn, key) {\n var nextValue = nextProps[key];\n if (nextValue !== prevProps[key]) {\n map[key] = nextValue;\n fn(instance, nextValue);\n }\n };\n forEach(updaterMap, iter);\n return map;\n}\nfunction registerEvents(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprops,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninstance, eventMap) {\n var registeredList = reduce(eventMap, function reducer(acc, googleEventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onEventName) {\n if (typeof props[onEventName] === 'function') {\n acc.push(google.maps.event.addListener(instance, googleEventName, props[onEventName]));\n }\n return acc;\n }, []);\n return registeredList;\n}\nfunction unregisterEvent(registered) {\n google.maps.event.removeListener(registered);\n}\nfunction unregisterEvents(events) {\n if (events === void 0) {\n events = [];\n }\n events.forEach(unregisterEvent);\n}\nfunction applyUpdatersToPropsAndRegisterEvents(_a) {\n var updaterMap = _a.updaterMap,\n eventMap = _a.eventMap,\n prevProps = _a.prevProps,\n nextProps = _a.nextProps,\n instance = _a.instance;\n var registeredEvents = registerEvents(nextProps, instance, eventMap);\n applyUpdaterToNextProps(updaterMap, prevProps, nextProps, instance);\n return registeredEvents;\n}\nvar eventMap$i = {\n onDblClick: 'dblclick',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMapTypeIdChanged: 'maptypeid_changed',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseDown: 'mousedown',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n onTilesLoaded: 'tilesloaded',\n onBoundsChanged: 'bounds_changed',\n onCenterChanged: 'center_changed',\n onClick: 'click',\n onDrag: 'drag',\n onHeadingChanged: 'heading_changed',\n onIdle: 'idle',\n onProjectionChanged: 'projection_changed',\n onResize: 'resize',\n onTiltChanged: 'tilt_changed',\n onZoomChanged: 'zoom_changed'\n};\nvar updaterMap$i = {\n extraMapTypes: function (map, extra) {\n extra.forEach(function forEachExtra(it, i) {\n map.mapTypes.set(String(i), it);\n });\n },\n center: function (map, center) {\n map.setCenter(center);\n },\n clickableIcons: function (map, clickable) {\n map.setClickableIcons(clickable);\n },\n heading: function (map, heading) {\n map.setHeading(heading);\n },\n mapTypeId: function (map, mapTypeId) {\n map.setMapTypeId(mapTypeId);\n },\n options: function (map, options) {\n map.setOptions(options);\n },\n streetView: function (map, streetView) {\n map.setStreetView(streetView);\n },\n tilt: function (map, tilt) {\n map.setTilt(tilt);\n },\n zoom: function (map, zoom) {\n map.setZoom(zoom);\n }\n};\n// TODO: unfinished!\nfunction GoogleMapFunctional(_a) {\n var children = _a.children,\n options = _a.options,\n id = _a.id,\n mapContainerStyle = _a.mapContainerStyle,\n mapContainerClassName = _a.mapContainerClassName,\n center = _a.center,\n // clickableIcons,\n // extraMapTypes,\n // heading,\n // mapTypeId,\n onClick = _a.onClick,\n onDblClick = _a.onDblClick,\n onDrag = _a.onDrag,\n onDragEnd = _a.onDragEnd,\n onDragStart = _a.onDragStart,\n onMouseMove = _a.onMouseMove,\n onMouseOut = _a.onMouseOut,\n onMouseOver = _a.onMouseOver,\n onMouseDown = _a.onMouseDown,\n onMouseUp = _a.onMouseUp,\n onRightClick = _a.onRightClick,\n // onMapTypeIdChanged,\n // onTilesLoaded,\n // onBoundsChanged,\n onCenterChanged = _a.onCenterChanged,\n // onHeadingChanged,\n // onIdle,\n // onProjectionChanged,\n // onResize,\n // onTiltChanged,\n // onZoomChanged,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount;\n var _b = useState(null),\n map = _b[0],\n setMap = _b[1];\n var ref = useRef(null);\n // const [extraMapTypesListener, setExtraMapTypesListener] = useState<google.maps.MapsEventListener | null>(null)\n var _c = useState(null),\n centerChangedListener = _c[0],\n setCenterChangedListener = _c[1];\n var _d = useState(null),\n dblclickListener = _d[0],\n setDblclickListener = _d[1];\n var _e = useState(null),\n dragendListener = _e[0],\n setDragendListener = _e[1];\n var _f = useState(null),\n dragstartListener = _f[0],\n setDragstartListener = _f[1];\n var _g = useState(null),\n mousedownListener = _g[0],\n setMousedownListener = _g[1];\n var _h = useState(null),\n mousemoveListener = _h[0],\n setMousemoveListener = _h[1];\n var _j = useState(null),\n mouseoutListener = _j[0],\n setMouseoutListener = _j[1];\n var _k = useState(null),\n mouseoverListener = _k[0],\n setMouseoverListener = _k[1];\n var _l = useState(null),\n mouseupListener = _l[0],\n setMouseupListener = _l[1];\n var _m = useState(null),\n rightclickListener = _m[0],\n setRightclickListener = _m[1];\n var _o = useState(null),\n clickListener = _o[0],\n setClickListener = _o[1];\n var _p = useState(null),\n dragListener = _p[0],\n setDragListener = _p[1];\n // Order does matter\n useEffect(function () {\n if (options && map !== null) {\n map.setOptions(options);\n }\n }, [map, options]);\n useEffect(function () {\n if (map !== null && typeof center !== 'undefined') {\n map.setCenter(center);\n }\n }, [map, center]);\n useEffect(function () {\n if (map && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(map, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (map && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(map, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(function () {\n if (map && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(map, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(function () {\n if (map && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(map, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (map && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(map, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(function () {\n if (map && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(map, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (map && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(map, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (map && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(map, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (map && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(map, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (map && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(map, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (map && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(map, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(function () {\n if (map && onCenterChanged) {\n if (centerChangedListener !== null) {\n google.maps.event.removeListener(centerChangedListener);\n }\n setCenterChangedListener(google.maps.event.addListener(map, 'center_changed', onCenterChanged));\n }\n }, [onClick]);\n useEffect(function () {\n var map = ref.current === null ? null : new google.maps.Map(ref.current, options);\n setMap(map);\n if (map !== null && onLoad) {\n onLoad(map);\n }\n return function () {\n if (map !== null) {\n if (onUnmount) {\n onUnmount(map);\n }\n }\n };\n }, []);\n return jsx(\"div\", {\n id: id,\n ref: ref,\n style: mapContainerStyle,\n className: mapContainerClassName,\n children: jsx(MapContext.Provider, {\n value: map,\n children: map !== null ? children : null\n })\n });\n}\nmemo(GoogleMapFunctional);\nvar GoogleMap = /** @class */function (_super) {\n __extends(GoogleMap, _super);\n function GoogleMap() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n map: null\n };\n _this.registeredEvents = [];\n _this.mapRef = null;\n _this.getInstance = function () {\n if (_this.mapRef === null) {\n return null;\n }\n return new google.maps.Map(_this.mapRef, _this.props.options);\n };\n _this.panTo = function (latLng) {\n var map = _this.getInstance();\n if (map) {\n map.panTo(latLng);\n }\n };\n _this.setMapCallback = function () {\n if (_this.state.map !== null) {\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.state.map);\n }\n }\n };\n _this.getRef = function (ref) {\n _this.mapRef = ref;\n };\n return _this;\n }\n GoogleMap.prototype.componentDidMount = function () {\n var map = this.getInstance();\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$i,\n eventMap: eventMap$i,\n prevProps: {},\n nextProps: this.props,\n instance: map\n });\n this.setState(function setMap() {\n return {\n map: map\n };\n }, this.setMapCallback);\n };\n GoogleMap.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.map !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$i,\n eventMap: eventMap$i,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.map\n });\n }\n };\n GoogleMap.prototype.componentWillUnmount = function () {\n if (this.state.map !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.map);\n }\n unregisterEvents(this.registeredEvents);\n }\n };\n GoogleMap.prototype.render = function () {\n return jsx(\"div\", {\n id: this.props.id,\n ref: this.getRef,\n style: this.props.mapContainerStyle,\n className: this.props.mapContainerClassName,\n children: jsx(MapContext.Provider, {\n value: this.state.map,\n children: this.state.map !== null ? this.props.children : null\n })\n });\n };\n return GoogleMap;\n}(PureComponent);\nvar isBrowser = typeof document !== 'undefined';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction injectScript(_a) {\n var url = _a.url,\n id = _a.id,\n nonce = _a.nonce;\n if (!isBrowser) {\n return Promise.reject(new Error('document is undefined'));\n }\n return new Promise(function injectScriptCallback(resolve, reject) {\n var existingScript = document.getElementById(id);\n var windowWithGoogleMap = window;\n if (existingScript) {\n // Same script id/url: keep same script\n var dataStateAttribute = existingScript.getAttribute('data-state');\n if (existingScript.src === url && dataStateAttribute !== 'error') {\n if (dataStateAttribute === 'ready') {\n return resolve(id);\n } else {\n var originalInitMap_1 = windowWithGoogleMap.initMap;\n var originalErrorCallback_1 = existingScript.onerror;\n windowWithGoogleMap.initMap = function initMap() {\n if (originalInitMap_1) {\n originalInitMap_1();\n }\n resolve(id);\n };\n existingScript.onerror = function (err) {\n if (originalErrorCallback_1) {\n originalErrorCallback_1(err);\n }\n reject(err);\n };\n return;\n }\n }\n // Same script id, but either\n // 1. requested URL is different\n // 2. script failed to load\n else {\n existingScript.remove();\n }\n }\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n script.id = id;\n script.async = true;\n script.nonce = nonce || '';\n script.onerror = function onerror(err) {\n script.setAttribute('data-state', 'error');\n reject(err);\n };\n windowWithGoogleMap.initMap = function onload() {\n script.setAttribute('data-state', 'ready');\n resolve(id);\n };\n document.head.appendChild(script);\n }).catch(function (err) {\n console.error('injectScript error: ', err);\n throw err;\n });\n}\nfunction isGoogleFontStyle(element) {\n // 'Roboto' or 'Google Sans Text' font download\n var href = element.href;\n if (href && (href.indexOf('https://fonts.googleapis.com/css?family=Roboto') === 0 || href.indexOf('https://fonts.googleapis.com/css?family=Google+Sans+Text') === 0)) {\n return true;\n }\n // font style elements\n if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.tagName.toLowerCase() === 'style' &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.styleSheet &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.styleSheet.cssText &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.styleSheet.cssText.replace('\\r\\n', '').indexOf('.gm-style') === 0) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.styleSheet.cssText = '';\n return true;\n }\n // font style elements for other browsers\n if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.tagName.toLowerCase() === 'style' &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.innerHTML &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.innerHTML.replace('\\r\\n', '').indexOf('.gm-style') === 0) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.innerHTML = '';\n return true;\n }\n // when google tries to add empty style\n if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.tagName.toLowerCase() === 'style' &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n !element.styleSheet &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n !element.innerHTML) {\n return true;\n }\n return false;\n}\n// Preventing the Google Maps library from downloading an extra font\nfunction preventGoogleFonts() {\n // we override these methods only for one particular head element\n // default methods for other elements are not affected\n var head = document.getElementsByTagName('head')[0];\n if (head) {\n var trueInsertBefore_1 = head.insertBefore.bind(head);\n // TODO: adding return before reflect solves the TS issue\n head.insertBefore = function insertBefore(newElement, referenceElement) {\n if (!isGoogleFontStyle(newElement)) {\n Reflect.apply(trueInsertBefore_1, head, [newElement, referenceElement]);\n }\n return newElement;\n };\n var trueAppend_1 = head.appendChild.bind(head);\n // TODO: adding return before reflect solves the TS issue\n head.appendChild = function appendChild(textNode) {\n if (!isGoogleFontStyle(textNode)) {\n Reflect.apply(trueAppend_1, head, [textNode]);\n }\n return textNode;\n };\n }\n}\nfunction makeLoadScriptUrl(_a) {\n var googleMapsApiKey = _a.googleMapsApiKey,\n googleMapsClientId = _a.googleMapsClientId,\n _b = _a.version,\n version = _b === void 0 ? 'weekly' : _b,\n language = _a.language,\n region = _a.region,\n libraries = _a.libraries,\n channel = _a.channel,\n mapIds = _a.mapIds,\n authReferrerPolicy = _a.authReferrerPolicy;\n var params = [];\n invariant$1(googleMapsApiKey && googleMapsClientId || !(googleMapsApiKey && googleMapsClientId), 'You need to specify either googleMapsApiKey or googleMapsClientId for @react-google-maps/api load script to work. You cannot use both at the same time.');\n if (googleMapsApiKey) {\n params.push(\"key=\".concat(googleMapsApiKey));\n } else if (googleMapsClientId) {\n params.push(\"client=\".concat(googleMapsClientId));\n }\n if (version) {\n params.push(\"v=\".concat(version));\n }\n if (language) {\n params.push(\"language=\".concat(language));\n }\n if (region) {\n params.push(\"region=\".concat(region));\n }\n if (libraries && libraries.length) {\n params.push(\"libraries=\".concat(libraries.sort().join(',')));\n }\n if (channel) {\n params.push(\"channel=\".concat(channel));\n }\n if (mapIds && mapIds.length) {\n params.push(\"map_ids=\".concat(mapIds.join(',')));\n }\n if (authReferrerPolicy) {\n params.push(\"auth_referrer_policy=\".concat(authReferrerPolicy));\n }\n params.push('callback=initMap');\n return \"https://maps.googleapis.com/maps/api/js?\".concat(params.join('&'));\n}\nvar cleaningUp = false;\nfunction DefaultLoadingElement() {\n return jsx(\"div\", {\n children: \"Loading...\"\n });\n}\nvar defaultLoadScriptProps = {\n id: 'script-loader',\n version: 'weekly'\n};\n/** @class */\n(function (_super) {\n __extends(LoadScript, _super);\n function LoadScript() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.check = createRef();\n _this.state = {\n loaded: false\n };\n _this.cleanupCallback = function () {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete window.google.maps;\n _this.injectScript();\n };\n _this.isCleaningUp = function () {\n return __awaiter$1(_this, void 0, void 0, function () {\n function promiseCallback(resolve) {\n if (!cleaningUp) {\n resolve();\n } else {\n if (isBrowser) {\n var timer_1 = window.setInterval(function interval() {\n if (!cleaningUp) {\n window.clearInterval(timer_1);\n resolve();\n }\n }, 1);\n }\n }\n return;\n }\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(promiseCallback)];\n });\n });\n };\n _this.cleanup = function () {\n cleaningUp = true;\n var script = document.getElementById(_this.props.id);\n if (script && script.parentNode) {\n script.parentNode.removeChild(script);\n }\n Array.prototype.slice.call(document.getElementsByTagName('script')).filter(function filter(script) {\n return typeof script.src === 'string' && script.src.includes('maps.googleapis');\n }).forEach(function forEach(script) {\n if (script.parentNode) {\n script.parentNode.removeChild(script);\n }\n });\n Array.prototype.slice.call(document.getElementsByTagName('link')).filter(function filter(link) {\n return link.href === 'https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Google+Sans';\n }).forEach(function forEach(link) {\n if (link.parentNode) {\n link.parentNode.removeChild(link);\n }\n });\n Array.prototype.slice.call(document.getElementsByTagName('style')).filter(function filter(style) {\n return style.innerText !== undefined && style.innerText.length > 0 && style.innerText.includes('.gm-');\n }).forEach(function forEach(style) {\n if (style.parentNode) {\n style.parentNode.removeChild(style);\n }\n });\n };\n _this.injectScript = function () {\n if (_this.props.preventGoogleFontsLoading) {\n preventGoogleFonts();\n }\n invariant$1(!!_this.props.id, 'LoadScript requires \"id\" prop to be a string: %s', _this.props.id);\n var injectScriptOptions = {\n id: _this.props.id,\n nonce: _this.props.nonce,\n url: makeLoadScriptUrl(_this.props)\n };\n injectScript(injectScriptOptions).then(function () {\n if (_this.props.onLoad) {\n _this.props.onLoad();\n }\n _this.setState(function setLoaded() {\n return {\n loaded: true\n };\n });\n return;\n }).catch(function (err) {\n if (_this.props.onError) {\n _this.props.onError(err);\n }\n console.error(\"\\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key (\".concat(_this.props.googleMapsApiKey || '-', \") or Client ID (\").concat(_this.props.googleMapsClientId || '-', \") to <LoadScript />\\n Otherwise it is a Network issue.\\n \"));\n });\n };\n return _this;\n }\n LoadScript.prototype.componentDidMount = function () {\n if (isBrowser) {\n if (window.google && window.google.maps && !cleaningUp) {\n console.error('google api is already presented');\n return;\n }\n this.isCleaningUp().then(this.injectScript).catch(function error(err) {\n console.error('Error at injecting script after cleaning up: ', err);\n });\n }\n };\n LoadScript.prototype.componentDidUpdate = function (prevProps) {\n if (this.props.libraries !== prevProps.libraries) {\n console.warn('Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables');\n }\n if (isBrowser && prevProps.language !== this.props.language) {\n this.cleanup();\n // TODO: refactor to use gDSFP maybe... wait for hooks refactoring.\n this.setState(function setLoaded() {\n return {\n loaded: false\n };\n }, this.cleanupCallback);\n }\n };\n LoadScript.prototype.componentWillUnmount = function () {\n var _this = this;\n if (isBrowser) {\n this.cleanup();\n var timeoutCallback = function () {\n if (!_this.check.current) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete window.google;\n cleaningUp = false;\n }\n };\n window.setTimeout(timeoutCallback, 1);\n if (this.props.onUnmount) {\n this.props.onUnmount();\n }\n }\n };\n LoadScript.prototype.render = function () {\n return jsxs(Fragment, {\n children: [jsx(\"div\", {\n ref: this.check\n }), this.state.loaded ? this.props.children : this.props.loadingElement || jsx(DefaultLoadingElement, {})]\n });\n };\n LoadScript.defaultProps = defaultLoadScriptProps;\n return LoadScript;\n})(PureComponent);\n\n/* eslint-disable filenames/match-regex */\nvar previouslyLoadedUrl;\nfunction useLoadScript(_a) {\n var _b = _a.id,\n id = _b === void 0 ? defaultLoadScriptProps.id : _b,\n _c = _a.version,\n version = _c === void 0 ? defaultLoadScriptProps.version : _c,\n nonce = _a.nonce,\n googleMapsApiKey = _a.googleMapsApiKey,\n googleMapsClientId = _a.googleMapsClientId,\n language = _a.language,\n region = _a.region,\n libraries = _a.libraries,\n preventGoogleFontsLoading = _a.preventGoogleFontsLoading,\n channel = _a.channel,\n mapIds = _a.mapIds,\n authReferrerPolicy = _a.authReferrerPolicy;\n var isMounted = useRef(false);\n var _d = useState(false),\n isLoaded = _d[0],\n setLoaded = _d[1];\n var _e = useState(undefined),\n loadError = _e[0],\n setLoadError = _e[1];\n useEffect(function trackMountedState() {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n useEffect(function applyPreventGoogleFonts() {\n if (isBrowser && preventGoogleFontsLoading) {\n preventGoogleFonts();\n }\n }, [preventGoogleFontsLoading]);\n useEffect(function validateLoadedState() {\n if (isLoaded) {\n invariant$1(!!window.google, 'useLoadScript was marked as loaded, but window.google is not present. Something went wrong.');\n }\n }, [isLoaded]);\n var url = makeLoadScriptUrl({\n version: version,\n googleMapsApiKey: googleMapsApiKey,\n googleMapsClientId: googleMapsClientId,\n language: language,\n region: region,\n libraries: libraries,\n channel: channel,\n mapIds: mapIds,\n authReferrerPolicy: authReferrerPolicy\n });\n useEffect(function loadScriptAndModifyLoadedState() {\n if (!isBrowser) {\n return;\n }\n function setLoadedIfMounted() {\n if (isMounted.current) {\n setLoaded(true);\n previouslyLoadedUrl = url;\n }\n }\n if (window.google && window.google.maps && previouslyLoadedUrl === url) {\n setLoadedIfMounted();\n return;\n }\n injectScript({\n id: id,\n url: url,\n nonce: nonce\n }).then(setLoadedIfMounted).catch(function handleInjectError(err) {\n if (isMounted.current) {\n setLoadError(err);\n }\n console.warn(\"\\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key (\".concat(googleMapsApiKey || '-', \") or Client ID (\").concat(googleMapsClientId || '-', \")\\n Otherwise it is a Network issue.\\n \"));\n console.error(err);\n });\n }, [id, url, nonce]);\n var prevLibraries = useRef();\n useEffect(function checkPerformance() {\n if (prevLibraries.current && libraries !== prevLibraries.current) {\n console.warn('Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables');\n }\n prevLibraries.current = libraries;\n }, [libraries]);\n return {\n isLoaded: isLoaded,\n loadError: loadError,\n url: url\n };\n}\nvar defaultLoadingElement = jsx(DefaultLoadingElement, {});\nfunction LoadScriptNext(_a) {\n var loadingElement = _a.loadingElement,\n onLoad = _a.onLoad,\n onError = _a.onError,\n onUnmount = _a.onUnmount,\n children = _a.children,\n hookOptions = __rest$1(_a, [\"loadingElement\", \"onLoad\", \"onError\", \"onUnmount\", \"children\"]);\n var _b = useLoadScript(hookOptions),\n isLoaded = _b.isLoaded,\n loadError = _b.loadError;\n useEffect(function handleOnLoad() {\n if (isLoaded && typeof onLoad === 'function') {\n onLoad();\n }\n }, [isLoaded, onLoad]);\n useEffect(function handleOnError() {\n if (loadError && typeof onError === 'function') {\n onError(loadError);\n }\n }, [loadError, onError]);\n useEffect(function handleOnUnmount() {\n return function () {\n if (onUnmount) {\n onUnmount();\n }\n };\n }, [onUnmount]);\n return isLoaded ? children : loadingElement || defaultLoadingElement;\n}\nmemo(LoadScriptNext);\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\nvar eventMap$h = {};\nvar updaterMap$h = {\n options: function (instance, options) {\n instance.setOptions(options);\n }\n};\nfunction TrafficLayerFunctional(_a) {\n var options = _a.options,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n var trafficLayer = new google.maps.TrafficLayer(__assign(__assign({}, options || {}), {\n map: map\n }));\n setInstance(trafficLayer);\n if (onLoad) {\n onLoad(trafficLayer);\n }\n return function () {\n if (instance !== null) {\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nmemo(TrafficLayerFunctional);\n/** @class */\n(function (_super) {\n __extends(TrafficLayer, _super);\n function TrafficLayer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n trafficLayer: null\n };\n _this.setTrafficLayerCallback = function () {\n if (_this.state.trafficLayer !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.trafficLayer);\n }\n };\n _this.registeredEvents = [];\n return _this;\n }\n TrafficLayer.prototype.componentDidMount = function () {\n var trafficLayer = new google.maps.TrafficLayer(__assign(__assign({}, this.props.options || {}), {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$h,\n eventMap: eventMap$h,\n prevProps: {},\n nextProps: this.props,\n instance: trafficLayer\n });\n this.setState(function setTrafficLayer() {\n return {\n trafficLayer: trafficLayer\n };\n }, this.setTrafficLayerCallback);\n };\n TrafficLayer.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.trafficLayer !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$h,\n eventMap: eventMap$h,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.trafficLayer\n });\n }\n };\n TrafficLayer.prototype.componentWillUnmount = function () {\n if (this.state.trafficLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.trafficLayer);\n }\n unregisterEvents(this.registeredEvents);\n this.state.trafficLayer.setMap(null);\n }\n };\n TrafficLayer.prototype.render = function () {\n return null;\n };\n TrafficLayer.contextType = MapContext;\n return TrafficLayer;\n})(PureComponent);\nfunction BicyclingLayerFunctional(_a) {\n var onLoad = _a.onLoad,\n onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n var bicyclingLayer = new google.maps.BicyclingLayer();\n setInstance(bicyclingLayer);\n bicyclingLayer.setMap(map);\n if (onLoad) {\n onLoad(bicyclingLayer);\n }\n return function () {\n if (bicyclingLayer !== null) {\n if (onUnmount) {\n onUnmount(bicyclingLayer);\n }\n bicyclingLayer.setMap(null);\n }\n };\n }, []);\n return null;\n}\nmemo(BicyclingLayerFunctional);\n/** @class */\n(function (_super) {\n __extends(BicyclingLayer, _super);\n function BicyclingLayer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n bicyclingLayer: null\n };\n _this.setBicyclingLayerCallback = function () {\n if (_this.state.bicyclingLayer !== null) {\n _this.state.bicyclingLayer.setMap(_this.context);\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.state.bicyclingLayer);\n }\n }\n };\n return _this;\n }\n BicyclingLayer.prototype.componentDidMount = function () {\n var bicyclingLayer = new google.maps.BicyclingLayer();\n this.setState(function () {\n return {\n bicyclingLayer: bicyclingLayer\n };\n }, this.setBicyclingLayerCallback);\n };\n BicyclingLayer.prototype.componentWillUnmount = function () {\n if (this.state.bicyclingLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.bicyclingLayer);\n }\n this.state.bicyclingLayer.setMap(null);\n }\n };\n BicyclingLayer.prototype.render = function () {\n return null;\n };\n BicyclingLayer.contextType = MapContext;\n return BicyclingLayer;\n})(PureComponent);\nfunction TransitLayerFunctional(_a) {\n var onLoad = _a.onLoad,\n onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n var transitLayer = new google.maps.TransitLayer();\n setInstance(transitLayer);\n transitLayer.setMap(map);\n if (onLoad) {\n onLoad(transitLayer);\n }\n return function () {\n if (instance !== null) {\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nmemo(TransitLayerFunctional);\n/** @class */\n(function (_super) {\n __extends(TransitLayer, _super);\n function TransitLayer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n transitLayer: null\n };\n _this.setTransitLayerCallback = function () {\n if (_this.state.transitLayer !== null) {\n _this.state.transitLayer.setMap(_this.context);\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.state.transitLayer);\n }\n }\n };\n return _this;\n }\n TransitLayer.prototype.componentDidMount = function () {\n var transitLayer = new google.maps.TransitLayer();\n this.setState(function setTransitLayer() {\n return {\n transitLayer: transitLayer\n };\n }, this.setTransitLayerCallback);\n };\n TransitLayer.prototype.componentWillUnmount = function () {\n if (this.state.transitLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.transitLayer);\n }\n this.state.transitLayer.setMap(null);\n }\n };\n TransitLayer.prototype.render = function () {\n return null;\n };\n TransitLayer.contextType = MapContext;\n return TransitLayer;\n})(PureComponent);\nvar eventMap$g = {\n onCircleComplete: 'circlecomplete',\n onMarkerComplete: 'markercomplete',\n onOverlayComplete: 'overlaycomplete',\n onPolygonComplete: 'polygoncomplete',\n onPolylineComplete: 'polylinecomplete',\n onRectangleComplete: 'rectanglecomplete'\n};\nvar updaterMap$g = {\n drawingMode: function (instance, drawingMode) {\n instance.setDrawingMode(drawingMode);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n }\n};\nfunction DrawingManagerFunctional(_a) {\n var options = _a.options,\n drawingMode = _a.drawingMode,\n onCircleComplete = _a.onCircleComplete,\n onMarkerComplete = _a.onMarkerComplete,\n onOverlayComplete = _a.onOverlayComplete,\n onPolygonComplete = _a.onPolygonComplete,\n onPolylineComplete = _a.onPolylineComplete,\n onRectangleComplete = _a.onRectangleComplete,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n var _c = useState(null),\n circlecompleteListener = _c[0],\n setCircleCompleteListener = _c[1];\n var _d = useState(null),\n markercompleteListener = _d[0],\n setMarkerCompleteListener = _d[1];\n var _e = useState(null),\n overlaycompleteListener = _e[0],\n setOverlayCompleteListener = _e[1];\n var _f = useState(null),\n polygoncompleteListener = _f[0],\n setPolygonCompleteListener = _f[1];\n var _g = useState(null),\n polylinecompleteListener = _g[0],\n setPolylineCompleteListener = _g[1];\n var _h = useState(null),\n rectanglecompleteListener = _h[0],\n setRectangleCompleteListener = _h[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (instance !== null) {\n instance.setDrawingMode(drawingMode !== null && drawingMode !== void 0 ? drawingMode : null);\n }\n }, [instance, drawingMode]);\n useEffect(function () {\n if (instance && onCircleComplete) {\n if (circlecompleteListener !== null) {\n google.maps.event.removeListener(circlecompleteListener);\n }\n setCircleCompleteListener(google.maps.event.addListener(instance, 'circlecomplete', onCircleComplete));\n }\n }, [instance, onCircleComplete]);\n useEffect(function () {\n if (instance && onMarkerComplete) {\n if (markercompleteListener !== null) {\n google.maps.event.removeListener(markercompleteListener);\n }\n setMarkerCompleteListener(google.maps.event.addListener(instance, 'markercomplete', onMarkerComplete));\n }\n }, [instance, onMarkerComplete]);\n useEffect(function () {\n if (instance && onOverlayComplete) {\n if (overlaycompleteListener !== null) {\n google.maps.event.removeListener(overlaycompleteListener);\n }\n setOverlayCompleteListener(google.maps.event.addListener(instance, 'overlaycomplete', onOverlayComplete));\n }\n }, [instance, onOverlayComplete]);\n useEffect(function () {\n if (instance && onPolygonComplete) {\n if (polygoncompleteListener !== null) {\n google.maps.event.removeListener(polygoncompleteListener);\n }\n setPolygonCompleteListener(google.maps.event.addListener(instance, 'polygoncomplete', onPolygonComplete));\n }\n }, [instance, onPolygonComplete]);\n useEffect(function () {\n if (instance && onPolylineComplete) {\n if (polylinecompleteListener !== null) {\n google.maps.event.removeListener(polylinecompleteListener);\n }\n setPolylineCompleteListener(google.maps.event.addListener(instance, 'polylinecomplete', onPolylineComplete));\n }\n }, [instance, onPolylineComplete]);\n useEffect(function () {\n if (instance && onRectangleComplete) {\n if (rectanglecompleteListener !== null) {\n google.maps.event.removeListener(rectanglecompleteListener);\n }\n setRectangleCompleteListener(google.maps.event.addListener(instance, 'rectanglecomplete', onRectangleComplete));\n }\n }, [instance, onRectangleComplete]);\n useEffect(function () {\n invariant$1(!!google.maps.drawing, \"Did you include prop libraries={['drawing']} in the URL? %s\", google.maps.drawing);\n var drawingManager = new google.maps.drawing.DrawingManager(__assign(__assign({}, options || {}), {\n map: map\n }));\n if (drawingMode) {\n drawingManager.setDrawingMode(drawingMode);\n }\n if (onCircleComplete) {\n setCircleCompleteListener(google.maps.event.addListener(drawingManager, 'circlecomplete', onCircleComplete));\n }\n if (onMarkerComplete) {\n setMarkerCompleteListener(google.maps.event.addListener(drawingManager, 'markercomplete', onMarkerComplete));\n }\n if (onOverlayComplete) {\n setOverlayCompleteListener(google.maps.event.addListener(drawingManager, 'overlaycomplete', onOverlayComplete));\n }\n if (onPolygonComplete) {\n setPolygonCompleteListener(google.maps.event.addListener(drawingManager, 'polygoncomplete', onPolygonComplete));\n }\n if (onPolylineComplete) {\n setPolylineCompleteListener(google.maps.event.addListener(drawingManager, 'polylinecomplete', onPolylineComplete));\n }\n if (onRectangleComplete) {\n setRectangleCompleteListener(google.maps.event.addListener(drawingManager, 'rectanglecomplete', onRectangleComplete));\n }\n setInstance(drawingManager);\n if (onLoad) {\n onLoad(drawingManager);\n }\n return function () {\n if (instance !== null) {\n if (circlecompleteListener) {\n google.maps.event.removeListener(circlecompleteListener);\n }\n if (markercompleteListener) {\n google.maps.event.removeListener(markercompleteListener);\n }\n if (overlaycompleteListener) {\n google.maps.event.removeListener(overlaycompleteListener);\n }\n if (polygoncompleteListener) {\n google.maps.event.removeListener(polygoncompleteListener);\n }\n if (polylinecompleteListener) {\n google.maps.event.removeListener(polylinecompleteListener);\n }\n if (rectanglecompleteListener) {\n google.maps.event.removeListener(rectanglecompleteListener);\n }\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nmemo(DrawingManagerFunctional);\n/** @class */\n(function (_super) {\n __extends(DrawingManager, _super);\n function DrawingManager(props) {\n var _this = _super.call(this, props) || this;\n _this.registeredEvents = [];\n _this.state = {\n drawingManager: null\n };\n _this.setDrawingManagerCallback = function () {\n if (_this.state.drawingManager !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.drawingManager);\n }\n };\n invariant$1(!!google.maps.drawing, \"Did you include prop libraries={['drawing']} in the URL? %s\", google.maps.drawing);\n return _this;\n }\n DrawingManager.prototype.componentDidMount = function () {\n var drawingManager = new google.maps.drawing.DrawingManager(__assign(__assign({}, this.props.options || {}), {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$g,\n eventMap: eventMap$g,\n prevProps: {},\n nextProps: this.props,\n instance: drawingManager\n });\n this.setState(function setDrawingManager() {\n return {\n drawingManager: drawingManager\n };\n }, this.setDrawingManagerCallback);\n };\n DrawingManager.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.drawingManager !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$g,\n eventMap: eventMap$g,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.drawingManager\n });\n }\n };\n DrawingManager.prototype.componentWillUnmount = function () {\n if (this.state.drawingManager !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.drawingManager);\n }\n unregisterEvents(this.registeredEvents);\n this.state.drawingManager.setMap(null);\n }\n };\n DrawingManager.prototype.render = function () {\n return null;\n };\n DrawingManager.contextType = MapContext;\n return DrawingManager;\n})(PureComponent);\nvar eventMap$f = {\n onAnimationChanged: 'animation_changed',\n onClick: 'click',\n onClickableChanged: 'clickable_changed',\n onCursorChanged: 'cursor_changed',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDraggableChanged: 'draggable_changed',\n onDragStart: 'dragstart',\n onFlatChanged: 'flat_changed',\n onIconChanged: 'icon_changed',\n onMouseDown: 'mousedown',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onPositionChanged: 'position_changed',\n onRightClick: 'rightclick',\n onShapeChanged: 'shape_changed',\n onTitleChanged: 'title_changed',\n onVisibleChanged: 'visible_changed',\n onZindexChanged: 'zindex_changed'\n};\nvar updaterMap$f = {\n animation: function (instance, animation) {\n instance.setAnimation(animation);\n },\n clickable: function (instance, clickable) {\n instance.setClickable(clickable);\n },\n cursor: function (instance, cursor) {\n instance.setCursor(cursor);\n },\n draggable: function (instance, draggable) {\n instance.setDraggable(draggable);\n },\n icon: function (instance, icon) {\n instance.setIcon(icon);\n },\n label: function (instance, label) {\n instance.setLabel(label);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n opacity: function (instance, opacity) {\n instance.setOpacity(opacity);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n position: function (instance, position) {\n instance.setPosition(position);\n },\n shape: function (instance, shape) {\n instance.setShape(shape);\n },\n title: function (instance, title) {\n instance.setTitle(title);\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n },\n zIndex: function (instance, zIndex) {\n instance.setZIndex(zIndex);\n }\n};\nvar defaultOptions$5 = {};\nfunction MarkerFunctional(_a) {\n var position = _a.position,\n options = _a.options,\n clusterer = _a.clusterer,\n noClustererRedraw = _a.noClustererRedraw,\n children = _a.children,\n draggable = _a.draggable,\n visible = _a.visible,\n animation = _a.animation,\n clickable = _a.clickable,\n cursor = _a.cursor,\n icon = _a.icon,\n label = _a.label,\n opacity = _a.opacity,\n shape = _a.shape,\n title = _a.title,\n zIndex = _a.zIndex,\n onClick = _a.onClick,\n onDblClick = _a.onDblClick,\n onDrag = _a.onDrag,\n onDragEnd = _a.onDragEnd,\n onDragStart = _a.onDragStart,\n onMouseOut = _a.onMouseOut,\n onMouseOver = _a.onMouseOver,\n onMouseUp = _a.onMouseUp,\n onMouseDown = _a.onMouseDown,\n onRightClick = _a.onRightClick,\n onClickableChanged = _a.onClickableChanged,\n onCursorChanged = _a.onCursorChanged,\n onAnimationChanged = _a.onAnimationChanged,\n onDraggableChanged = _a.onDraggableChanged,\n onFlatChanged = _a.onFlatChanged,\n onIconChanged = _a.onIconChanged,\n onPositionChanged = _a.onPositionChanged,\n onShapeChanged = _a.onShapeChanged,\n onTitleChanged = _a.onTitleChanged,\n onVisibleChanged = _a.onVisibleChanged,\n onZindexChanged = _a.onZindexChanged,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n var _c = useState(null),\n dblclickListener = _c[0],\n setDblclickListener = _c[1];\n var _d = useState(null),\n dragendListener = _d[0],\n setDragendListener = _d[1];\n var _e = useState(null),\n dragstartListener = _e[0],\n setDragstartListener = _e[1];\n var _f = useState(null),\n mousedownListener = _f[0],\n setMousedownListener = _f[1];\n var _g = useState(null),\n mouseoutListener = _g[0],\n setMouseoutListener = _g[1];\n var _h = useState(null),\n mouseoverListener = _h[0],\n setMouseoverListener = _h[1];\n var _j = useState(null),\n mouseupListener = _j[0],\n setMouseupListener = _j[1];\n var _k = useState(null),\n rightclickListener = _k[0],\n setRightclickListener = _k[1];\n var _l = useState(null),\n clickListener = _l[0],\n setClickListener = _l[1];\n var _m = useState(null),\n dragListener = _m[0],\n setDragListener = _m[1];\n var _o = useState(null),\n clickableChangedListener = _o[0],\n setClickableChangedListener = _o[1];\n var _p = useState(null),\n cursorChangedListener = _p[0],\n setCursorChangedListener = _p[1];\n var _q = useState(null),\n animationChangedListener = _q[0],\n setAnimationChangedListener = _q[1];\n var _r = useState(null),\n draggableChangedListener = _r[0],\n setDraggableChangedListener = _r[1];\n var _s = useState(null),\n flatChangedListener = _s[0],\n setFlatChangedListener = _s[1];\n var _t = useState(null),\n iconChangedListener = _t[0],\n setIconChangedListener = _t[1];\n var _u = useState(null),\n positionChangedListener = _u[0],\n setPositionChangedListener = _u[1];\n var _v = useState(null),\n shapeChangedListener = _v[0],\n setShapeChangedListener = _v[1];\n var _w = useState(null),\n titleChangedListener = _w[0],\n setTitleChangedListener = _w[1];\n var _x = useState(null),\n visibleChangedListener = _x[0],\n setVisibleChangedListener = _x[1];\n var _y = useState(null),\n zIndexChangedListener = _y[0],\n setZindexChangedListener = _y[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(function () {\n if (position && instance !== null) {\n instance.setPosition(position);\n }\n }, [instance, position]);\n useEffect(function () {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(function () {\n instance === null || instance === void 0 ? void 0 : instance.setAnimation(animation);\n }, [instance, animation]);\n useEffect(function () {\n if (instance && clickable !== undefined) {\n instance.setClickable(clickable);\n }\n }, [instance, clickable]);\n useEffect(function () {\n if (instance && cursor !== undefined) {\n instance.setCursor(cursor);\n }\n }, [instance, cursor]);\n useEffect(function () {\n if (instance && icon !== undefined) {\n instance.setIcon(icon);\n }\n }, [instance, icon]);\n useEffect(function () {\n if (instance && label !== undefined) {\n instance.setLabel(label);\n }\n }, [instance, label]);\n useEffect(function () {\n if (instance && opacity !== undefined) {\n instance.setOpacity(opacity);\n }\n }, [instance, opacity]);\n useEffect(function () {\n if (instance && shape !== undefined) {\n instance.setShape(shape);\n }\n }, [instance, shape]);\n useEffect(function () {\n if (instance && title !== undefined) {\n instance.setTitle(title);\n }\n }, [instance, title]);\n useEffect(function () {\n if (instance && zIndex !== undefined) {\n instance.setZIndex(zIndex);\n }\n }, [instance, zIndex]);\n useEffect(function () {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(function () {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(function () {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(function () {\n if (instance && onClickableChanged) {\n if (clickableChangedListener !== null) {\n google.maps.event.removeListener(clickableChangedListener);\n }\n setClickableChangedListener(google.maps.event.addListener(instance, 'clickable_changed', onClickableChanged));\n }\n }, [onClickableChanged]);\n useEffect(function () {\n if (instance && onCursorChanged) {\n if (cursorChangedListener !== null) {\n google.maps.event.removeListener(cursorChangedListener);\n }\n setCursorChangedListener(google.maps.event.addListener(instance, 'cursor_changed', onCursorChanged));\n }\n }, [onCursorChanged]);\n useEffect(function () {\n if (instance && onAnimationChanged) {\n if (animationChangedListener !== null) {\n google.maps.event.removeListener(animationChangedListener);\n }\n setAnimationChangedListener(google.maps.event.addListener(instance, 'animation_changed', onAnimationChanged));\n }\n }, [onAnimationChanged]);\n useEffect(function () {\n if (instance && onDraggableChanged) {\n if (draggableChangedListener !== null) {\n google.maps.event.removeListener(draggableChangedListener);\n }\n setDraggableChangedListener(google.maps.event.addListener(instance, 'draggable_changed', onDraggableChanged));\n }\n }, [onDraggableChanged]);\n useEffect(function () {\n if (instance && onFlatChanged) {\n if (flatChangedListener !== null) {\n google.maps.event.removeListener(flatChangedListener);\n }\n setFlatChangedListener(google.maps.event.addListener(instance, 'flat_changed', onFlatChanged));\n }\n }, [onFlatChanged]);\n useEffect(function () {\n if (instance && onIconChanged) {\n if (iconChangedListener !== null) {\n google.maps.event.removeListener(iconChangedListener);\n }\n setIconChangedListener(google.maps.event.addListener(instance, 'icon_changed', onIconChanged));\n }\n }, [onIconChanged]);\n useEffect(function () {\n if (instance && onPositionChanged) {\n if (positionChangedListener !== null) {\n google.maps.event.removeListener(positionChangedListener);\n }\n setPositionChangedListener(google.maps.event.addListener(instance, 'position_changed', onPositionChanged));\n }\n }, [onPositionChanged]);\n useEffect(function () {\n if (instance && onShapeChanged) {\n if (shapeChangedListener !== null) {\n google.maps.event.removeListener(shapeChangedListener);\n }\n setShapeChangedListener(google.maps.event.addListener(instance, 'shape_changed', onShapeChanged));\n }\n }, [onShapeChanged]);\n useEffect(function () {\n if (instance && onTitleChanged) {\n if (titleChangedListener !== null) {\n google.maps.event.removeListener(titleChangedListener);\n }\n setTitleChangedListener(google.maps.event.addListener(instance, 'title_changed', onTitleChanged));\n }\n }, [onTitleChanged]);\n useEffect(function () {\n if (instance && onVisibleChanged) {\n if (visibleChangedListener !== null) {\n google.maps.event.removeListener(visibleChangedListener);\n }\n setVisibleChangedListener(google.maps.event.addListener(instance, 'visible_changed', onVisibleChanged));\n }\n }, [onVisibleChanged]);\n useEffect(function () {\n if (instance && onZindexChanged) {\n if (zIndexChangedListener !== null) {\n google.maps.event.removeListener(zIndexChangedListener);\n }\n setZindexChangedListener(google.maps.event.addListener(instance, 'zindex_changed', onZindexChanged));\n }\n }, [onZindexChanged]);\n useEffect(function () {\n var markerOptions = __assign(__assign(__assign({}, options || defaultOptions$5), clusterer ? defaultOptions$5 : {\n map: map\n }), {\n position: position\n });\n var marker = new google.maps.Marker(markerOptions);\n if (clusterer) {\n clusterer.addMarker(marker, !!noClustererRedraw);\n } else {\n marker.setMap(map);\n }\n if (position) {\n marker.setPosition(position);\n }\n if (typeof visible !== 'undefined') {\n marker.setVisible(visible);\n }\n if (typeof draggable !== 'undefined') {\n marker.setDraggable(draggable);\n }\n if (typeof clickable !== 'undefined') {\n marker.setClickable(clickable);\n }\n if (typeof cursor === 'string') {\n marker.setCursor(cursor);\n }\n if (icon) {\n marker.setIcon(icon);\n }\n if (typeof label !== 'undefined') {\n marker.setLabel(label);\n }\n if (typeof opacity !== 'undefined') {\n marker.setOpacity(opacity);\n }\n if (shape) {\n marker.setShape(shape);\n }\n if (typeof title === 'string') {\n marker.setTitle(title);\n }\n if (typeof zIndex === 'number') {\n marker.setZIndex(zIndex);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(marker, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(marker, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(marker, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(marker, 'mousedown', onMouseDown));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(marker, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(marker, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(marker, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(marker, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(marker, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(marker, 'drag', onDrag));\n }\n if (onClickableChanged) {\n setClickableChangedListener(google.maps.event.addListener(marker, 'clickable_changed', onClickableChanged));\n }\n if (onCursorChanged) {\n setCursorChangedListener(google.maps.event.addListener(marker, 'cursor_changed', onCursorChanged));\n }\n if (onAnimationChanged) {\n setAnimationChangedListener(google.maps.event.addListener(marker, 'animation_changed', onAnimationChanged));\n }\n if (onDraggableChanged) {\n setDraggableChangedListener(google.maps.event.addListener(marker, 'draggable_changed', onDraggableChanged));\n }\n if (onFlatChanged) {\n setFlatChangedListener(google.maps.event.addListener(marker, 'flat_changed', onFlatChanged));\n }\n if (onIconChanged) {\n setIconChangedListener(google.maps.event.addListener(marker, 'icon_changed', onIconChanged));\n }\n if (onPositionChanged) {\n setPositionChangedListener(google.maps.event.addListener(marker, 'position_changed', onPositionChanged));\n }\n if (onShapeChanged) {\n setShapeChangedListener(google.maps.event.addListener(marker, 'shape_changed', onShapeChanged));\n }\n if (onTitleChanged) {\n setTitleChangedListener(google.maps.event.addListener(marker, 'title_changed', onTitleChanged));\n }\n if (onVisibleChanged) {\n setVisibleChangedListener(google.maps.event.addListener(marker, 'visible_changed', onVisibleChanged));\n }\n if (onZindexChanged) {\n setZindexChangedListener(google.maps.event.addListener(marker, 'zindex_changed', onZindexChanged));\n }\n setInstance(marker);\n if (onLoad) {\n onLoad(marker);\n }\n return function () {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (clickableChangedListener !== null) {\n google.maps.event.removeListener(clickableChangedListener);\n }\n if (cursorChangedListener !== null) {\n google.maps.event.removeListener(cursorChangedListener);\n }\n if (animationChangedListener !== null) {\n google.maps.event.removeListener(animationChangedListener);\n }\n if (draggableChangedListener !== null) {\n google.maps.event.removeListener(draggableChangedListener);\n }\n if (flatChangedListener !== null) {\n google.maps.event.removeListener(flatChangedListener);\n }\n if (iconChangedListener !== null) {\n google.maps.event.removeListener(iconChangedListener);\n }\n if (positionChangedListener !== null) {\n google.maps.event.removeListener(positionChangedListener);\n }\n if (titleChangedListener !== null) {\n google.maps.event.removeListener(titleChangedListener);\n }\n if (visibleChangedListener !== null) {\n google.maps.event.removeListener(visibleChangedListener);\n }\n if (zIndexChangedListener !== null) {\n google.maps.event.removeListener(zIndexChangedListener);\n }\n if (onUnmount) {\n onUnmount(marker);\n }\n if (clusterer) {\n clusterer.removeMarker(marker, !!noClustererRedraw);\n } else if (marker) {\n marker.setMap(null);\n }\n };\n }, []);\n var chx = useMemo(function () {\n return children ? Children.map(children, function (child) {\n if (!isValidElement(child)) {\n return child;\n }\n var elementChild = child;\n return cloneElement(elementChild, {\n anchor: instance\n });\n }) : null;\n }, [children, instance]);\n return jsx(Fragment, {\n children: chx\n }) || null;\n}\nvar MarkerF = memo(MarkerFunctional);\nvar Marker = /** @class */function (_super) {\n __extends(Marker, _super);\n function Marker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n return _this;\n }\n Marker.prototype.componentDidMount = function () {\n var markerOptions = __assign(__assign(__assign({}, this.props.options || defaultOptions$5), this.props.clusterer ? defaultOptions$5 : {\n map: this.context\n }), {\n position: this.props.position\n });\n // Unfortunately we can't just do this in the contstructor, because the\n // `MapContext` might not be filled in yet.\n this.marker = new google.maps.Marker(markerOptions);\n if (this.props.clusterer) {\n this.props.clusterer.addMarker(this.marker, !!this.props.noClustererRedraw);\n } else {\n this.marker.setMap(this.context);\n }\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$f,\n eventMap: eventMap$f,\n prevProps: {},\n nextProps: this.props,\n instance: this.marker\n });\n if (this.props.onLoad) {\n this.props.onLoad(this.marker);\n }\n };\n Marker.prototype.componentDidUpdate = function (prevProps) {\n if (this.marker) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$f,\n eventMap: eventMap$f,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.marker\n });\n }\n };\n Marker.prototype.componentWillUnmount = function () {\n if (this.marker) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.marker);\n }\n unregisterEvents(this.registeredEvents);\n if (this.props.clusterer) {\n this.props.clusterer.removeMarker(this.marker, !!this.props.noClustererRedraw);\n } else {\n this.marker && this.marker.setMap(null);\n }\n }\n };\n Marker.prototype.render = function () {\n var _this = this;\n var children = null;\n if (this.props.children) {\n children = Children.map(this.props.children, function (child) {\n if (!isValidElement(child)) {\n return child;\n }\n var elementChild = child;\n return cloneElement(elementChild, {\n anchor: _this.marker\n });\n });\n }\n return children || null;\n };\n Marker.contextType = MapContext;\n return Marker;\n}(PureComponent);\nvar ClusterIcon = /** @class */function () {\n function ClusterIcon(cluster, styles) {\n cluster.getClusterer().extend(ClusterIcon, google.maps.OverlayView);\n this.cluster = cluster;\n this.clusterClassName = this.cluster.getClusterer().getClusterClass();\n this.className = this.clusterClassName;\n this.styles = styles;\n this.center = undefined;\n this.div = null;\n this.sums = null;\n this.visible = false;\n this.boundsChangedListener = null;\n this.url = '';\n this.height = 0;\n this.width = 0;\n this.anchorText = [0, 0];\n this.anchorIcon = [0, 0];\n this.textColor = 'black';\n this.textSize = 11;\n this.textDecoration = 'none';\n this.fontWeight = 'bold';\n this.fontStyle = 'normal';\n this.fontFamily = 'Arial,sans-serif';\n this.backgroundPosition = '0 0';\n this.cMouseDownInCluster = null;\n this.cDraggingMapByCluster = null;\n this.timeOut = null;\n this.setMap(cluster.getMap()); // Note: this causes onAdd to be called\n this.onBoundsChanged = this.onBoundsChanged.bind(this);\n this.onMouseDown = this.onMouseDown.bind(this);\n this.onClick = this.onClick.bind(this);\n this.onMouseOver = this.onMouseOver.bind(this);\n this.onMouseOut = this.onMouseOut.bind(this);\n this.onAdd = this.onAdd.bind(this);\n this.onRemove = this.onRemove.bind(this);\n this.draw = this.draw.bind(this);\n this.hide = this.hide.bind(this);\n this.show = this.show.bind(this);\n this.useStyle = this.useStyle.bind(this);\n this.setCenter = this.setCenter.bind(this);\n this.getPosFromLatLng = this.getPosFromLatLng.bind(this);\n }\n ClusterIcon.prototype.onBoundsChanged = function () {\n this.cDraggingMapByCluster = this.cMouseDownInCluster;\n };\n ClusterIcon.prototype.onMouseDown = function () {\n this.cMouseDownInCluster = true;\n this.cDraggingMapByCluster = false;\n };\n ClusterIcon.prototype.onClick = function (event) {\n this.cMouseDownInCluster = false;\n if (!this.cDraggingMapByCluster) {\n var markerClusterer_1 = this.cluster.getClusterer();\n /**\n * This event is fired when a cluster marker is clicked.\n * @name MarkerClusterer#click\n * @param {Cluster} c The cluster that was clicked.\n * @event\n */\n google.maps.event.trigger(markerClusterer_1, 'click', this.cluster);\n google.maps.event.trigger(markerClusterer_1, 'clusterclick', this.cluster); // deprecated name\n // The default click handler follows. Disable it by setting\n // the zoomOnClick property to false.\n if (markerClusterer_1.getZoomOnClick()) {\n // Zoom into the cluster.\n var maxZoom_1 = markerClusterer_1.getMaxZoom();\n var bounds_1 = this.cluster.getBounds();\n var map = markerClusterer_1.getMap();\n if (map !== null && 'fitBounds' in map) {\n map.fitBounds(bounds_1);\n }\n // There is a fix for Issue 170 here:\n this.timeOut = window.setTimeout(function () {\n var map = markerClusterer_1.getMap();\n if (map !== null) {\n if ('fitBounds' in map) {\n map.fitBounds(bounds_1);\n }\n var zoom = map.getZoom() || 0;\n // Don't zoom beyond the max zoom level\n if (maxZoom_1 !== null && zoom > maxZoom_1) {\n map.setZoom(maxZoom_1 + 1);\n }\n }\n }, 100);\n }\n // Prevent event propagation to the map:\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n }\n };\n ClusterIcon.prototype.onMouseOver = function () {\n /**\n * This event is fired when the mouse moves over a cluster marker.\n * @name MarkerClusterer#mouseover\n * @param {Cluster} c The cluster that the mouse moved over.\n * @event\n */\n google.maps.event.trigger(this.cluster.getClusterer(), 'mouseover', this.cluster);\n };\n ClusterIcon.prototype.onMouseOut = function () {\n /**\n * This event is fired when the mouse moves out of a cluster marker.\n * @name MarkerClusterer#mouseout\n * @param {Cluster} c The cluster that the mouse moved out of.\n * @event\n */\n google.maps.event.trigger(this.cluster.getClusterer(), 'mouseout', this.cluster);\n };\n ClusterIcon.prototype.onAdd = function () {\n var _a;\n this.div = document.createElement('div');\n this.div.className = this.className;\n if (this.visible) {\n this.show();\n }\n (_a = this.getPanes()) === null || _a === void 0 ? void 0 : _a.overlayMouseTarget.appendChild(this.div);\n var map = this.getMap();\n if (map !== null) {\n // Fix for Issue 157\n this.boundsChangedListener = google.maps.event.addListener(map, 'bounds_changed', this.onBoundsChanged);\n this.div.addEventListener('mousedown', this.onMouseDown);\n this.div.addEventListener('click', this.onClick);\n this.div.addEventListener('mouseover', this.onMouseOver);\n this.div.addEventListener('mouseout', this.onMouseOut);\n }\n };\n ClusterIcon.prototype.onRemove = function () {\n if (this.div && this.div.parentNode) {\n this.hide();\n if (this.boundsChangedListener !== null) {\n google.maps.event.removeListener(this.boundsChangedListener);\n }\n this.div.removeEventListener('mousedown', this.onMouseDown);\n this.div.removeEventListener('click', this.onClick);\n this.div.removeEventListener('mouseover', this.onMouseOver);\n this.div.removeEventListener('mouseout', this.onMouseOut);\n this.div.parentNode.removeChild(this.div);\n if (this.timeOut !== null) {\n window.clearTimeout(this.timeOut);\n this.timeOut = null;\n }\n this.div = null;\n }\n };\n ClusterIcon.prototype.draw = function () {\n if (this.visible && this.div !== null && this.center) {\n var pos = this.getPosFromLatLng(this.center);\n this.div.style.top = pos !== null ? \"\".concat(pos.y, \"px\") : '0';\n this.div.style.left = pos !== null ? \"\".concat(pos.x, \"px\") : '0';\n }\n };\n ClusterIcon.prototype.hide = function () {\n if (this.div) {\n this.div.style.display = 'none';\n }\n this.visible = false;\n };\n ClusterIcon.prototype.show = function () {\n var _a, _b, _c, _d, _e, _f;\n if (this.div && this.center) {\n var divTitle = this.sums === null || typeof this.sums.title === 'undefined' || this.sums.title === '' ? this.cluster.getClusterer().getTitle() : this.sums.title;\n // NOTE: values must be specified in px units\n var bp = this.backgroundPosition.split(' ');\n var spriteH = parseInt(((_a = bp[0]) === null || _a === void 0 ? void 0 : _a.replace(/^\\s+|\\s+$/g, '')) || '0', 10);\n var spriteV = parseInt(((_b = bp[1]) === null || _b === void 0 ? void 0 : _b.replace(/^\\s+|\\s+$/g, '')) || '0', 10);\n var pos = this.getPosFromLatLng(this.center);\n this.div.className = this.className;\n this.div.setAttribute('style', \"cursor: pointer; position: absolute; top: \".concat(pos !== null ? \"\".concat(pos.y, \"px\") : '0', \"; left: \").concat(pos !== null ? \"\".concat(pos.x, \"px\") : '0', \"; width: \").concat(this.width, \"px; height: \").concat(this.height, \"px; \"));\n var img = document.createElement('img');\n img.alt = divTitle;\n img.src = this.url;\n img.width = this.width;\n img.height = this.height;\n img.setAttribute('style', \"position: absolute; top: \".concat(spriteV, \"px; left: \").concat(spriteH, \"px\"));\n if (!this.cluster.getClusterer().enableRetinaIcons) {\n img.style.clip = \"rect(-\".concat(spriteV, \"px, -\").concat(spriteH + this.width, \"px, -\").concat(spriteV + this.height, \", -\").concat(spriteH, \")\");\n }\n var textElm = document.createElement('div');\n textElm.setAttribute('style', \"position: absolute; top: \".concat(this.anchorText[0], \"px; left: \").concat(this.anchorText[1], \"px; color: \").concat(this.textColor, \"; font-size: \").concat(this.textSize, \"px; font-family: \").concat(this.fontFamily, \"; font-weight: \").concat(this.fontWeight, \"; fontStyle: \").concat(this.fontStyle, \"; text-decoration: \").concat(this.textDecoration, \"; text-align: center; width: \").concat(this.width, \"px; line-height: \").concat(this.height, \"px\"));\n if ((_c = this.sums) === null || _c === void 0 ? void 0 : _c.text) textElm.innerText = \"\".concat((_d = this.sums) === null || _d === void 0 ? void 0 : _d.text);\n if ((_e = this.sums) === null || _e === void 0 ? void 0 : _e.html) textElm.innerHTML = \"\".concat((_f = this.sums) === null || _f === void 0 ? void 0 : _f.html);\n this.div.innerHTML = '';\n this.div.appendChild(img);\n this.div.appendChild(textElm);\n this.div.title = divTitle;\n this.div.style.display = '';\n }\n this.visible = true;\n };\n ClusterIcon.prototype.useStyle = function (sums) {\n this.sums = sums;\n var styles = this.cluster.getClusterer().getStyles();\n var style = styles[Math.min(styles.length - 1, Math.max(0, sums.index - 1))];\n if (style) {\n this.url = style.url;\n this.height = style.height;\n this.width = style.width;\n if (style.className) {\n this.className = \"\".concat(this.clusterClassName, \" \").concat(style.className);\n }\n this.anchorText = style.anchorText || [0, 0];\n this.anchorIcon = style.anchorIcon || [this.height / 2, this.width / 2];\n this.textColor = style.textColor || 'black';\n this.textSize = style.textSize || 11;\n this.textDecoration = style.textDecoration || 'none';\n this.fontWeight = style.fontWeight || 'bold';\n this.fontStyle = style.fontStyle || 'normal';\n this.fontFamily = style.fontFamily || 'Arial,sans-serif';\n this.backgroundPosition = style.backgroundPosition || '0 0';\n }\n };\n ClusterIcon.prototype.setCenter = function (center) {\n this.center = center;\n };\n ClusterIcon.prototype.getPosFromLatLng = function (latlng) {\n var pos = this.getProjection().fromLatLngToDivPixel(latlng);\n if (pos !== null) {\n pos.x -= this.anchorIcon[1];\n pos.y -= this.anchorIcon[0];\n }\n return pos;\n };\n return ClusterIcon;\n}();\n\n/* global google */\nvar Cluster$1 = /** @class */function () {\n function Cluster(markerClusterer) {\n this.markerClusterer = markerClusterer;\n this.map = this.markerClusterer.getMap();\n this.gridSize = this.markerClusterer.getGridSize();\n this.minClusterSize = this.markerClusterer.getMinimumClusterSize();\n this.averageCenter = this.markerClusterer.getAverageCenter();\n this.markers = [];\n this.center = undefined;\n this.bounds = null;\n this.clusterIcon = new ClusterIcon(this, this.markerClusterer.getStyles());\n this.getSize = this.getSize.bind(this);\n this.getMarkers = this.getMarkers.bind(this);\n this.getCenter = this.getCenter.bind(this);\n this.getMap = this.getMap.bind(this);\n this.getClusterer = this.getClusterer.bind(this);\n this.getBounds = this.getBounds.bind(this);\n this.remove = this.remove.bind(this);\n this.addMarker = this.addMarker.bind(this);\n this.isMarkerInClusterBounds = this.isMarkerInClusterBounds.bind(this);\n this.calculateBounds = this.calculateBounds.bind(this);\n this.updateIcon = this.updateIcon.bind(this);\n this.isMarkerAlreadyAdded = this.isMarkerAlreadyAdded.bind(this);\n }\n Cluster.prototype.getSize = function () {\n return this.markers.length;\n };\n Cluster.prototype.getMarkers = function () {\n return this.markers;\n };\n Cluster.prototype.getCenter = function () {\n return this.center;\n };\n Cluster.prototype.getMap = function () {\n return this.map;\n };\n Cluster.prototype.getClusterer = function () {\n return this.markerClusterer;\n };\n Cluster.prototype.getBounds = function () {\n var bounds = new google.maps.LatLngBounds(this.center, this.center);\n var markers = this.getMarkers();\n for (var _i = 0, markers_1 = markers; _i < markers_1.length; _i++) {\n var marker = markers_1[_i];\n var position = marker.getPosition();\n if (position) {\n bounds.extend(position);\n }\n }\n return bounds;\n };\n Cluster.prototype.remove = function () {\n this.clusterIcon.setMap(null);\n this.markers = [];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete this.markers;\n };\n Cluster.prototype.addMarker = function (marker) {\n var _a;\n if (this.isMarkerAlreadyAdded(marker)) {\n return false;\n }\n if (!this.center) {\n var position = marker.getPosition();\n if (position) {\n this.center = position;\n this.calculateBounds();\n }\n } else {\n if (this.averageCenter) {\n var position = marker.getPosition();\n if (position) {\n var length_1 = this.markers.length + 1;\n this.center = new google.maps.LatLng((this.center.lat() * (length_1 - 1) + position.lat()) / length_1, (this.center.lng() * (length_1 - 1) + position.lng()) / length_1);\n this.calculateBounds();\n }\n }\n }\n marker.isAdded = true;\n this.markers.push(marker);\n var mCount = this.markers.length;\n var maxZoom = this.markerClusterer.getMaxZoom();\n var zoom = (_a = this.map) === null || _a === void 0 ? void 0 : _a.getZoom();\n if (maxZoom !== null && typeof zoom !== 'undefined' && zoom > maxZoom) {\n // Zoomed in past max zoom, so show the marker.\n if (marker.getMap() !== this.map) {\n marker.setMap(this.map);\n }\n } else if (mCount < this.minClusterSize) {\n // Min cluster size not reached so show the marker.\n if (marker.getMap() !== this.map) {\n marker.setMap(this.map);\n }\n } else if (mCount === this.minClusterSize) {\n // Hide the markers that were showing.\n for (var _i = 0, _b = this.markers; _i < _b.length; _i++) {\n var markerElement = _b[_i];\n markerElement.setMap(null);\n }\n } else {\n marker.setMap(null);\n }\n return true;\n };\n Cluster.prototype.isMarkerInClusterBounds = function (marker) {\n if (this.bounds !== null) {\n var position = marker.getPosition();\n if (position) {\n return this.bounds.contains(position);\n }\n }\n return false;\n };\n Cluster.prototype.calculateBounds = function () {\n this.bounds = this.markerClusterer.getExtendedBounds(new google.maps.LatLngBounds(this.center, this.center));\n };\n Cluster.prototype.updateIcon = function () {\n var _a;\n var mCount = this.markers.length;\n var maxZoom = this.markerClusterer.getMaxZoom();\n var zoom = (_a = this.map) === null || _a === void 0 ? void 0 : _a.getZoom();\n if (maxZoom !== null && typeof zoom !== 'undefined' && zoom > maxZoom) {\n this.clusterIcon.hide();\n return;\n }\n if (mCount < this.minClusterSize) {\n // Min cluster size not yet reached.\n this.clusterIcon.hide();\n return;\n }\n if (this.center) {\n this.clusterIcon.setCenter(this.center);\n }\n this.clusterIcon.useStyle(this.markerClusterer.getCalculator()(this.markers, this.markerClusterer.getStyles().length));\n this.clusterIcon.show();\n };\n Cluster.prototype.isMarkerAlreadyAdded = function (marker) {\n if (this.markers.includes) {\n return this.markers.includes(marker);\n }\n for (var i = 0; i < this.markers.length; i++) {\n if (marker === this.markers[i]) {\n return true;\n }\n }\n return false;\n };\n return Cluster;\n}();\n\n/* global google */\n/**\n * Supports up to 9007199254740991 (Number.MAX_SAFE_INTEGER) markers\n * which is not a problem as max array length is 4294967296 (2**32)\n */\nfunction CALCULATOR(markers, numStyles) {\n var count = markers.length;\n var numberOfDigits = count.toString().length;\n var index = Math.min(numberOfDigits, numStyles);\n return {\n text: count.toString(),\n index: index,\n title: ''\n };\n}\nvar BATCH_SIZE = 2000;\nvar BATCH_SIZE_IE = 500;\nvar IMAGE_PATH = 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m';\nvar IMAGE_EXTENSION = 'png';\nvar IMAGE_SIZES = [53, 56, 66, 78, 90];\nvar CLUSTERER_CLASS = 'cluster';\nvar Clusterer = /** @class */function () {\n function Clusterer(map, optMarkers, optOptions) {\n if (optMarkers === void 0) {\n optMarkers = [];\n }\n if (optOptions === void 0) {\n optOptions = {};\n }\n this.getMinimumClusterSize = this.getMinimumClusterSize.bind(this);\n this.setMinimumClusterSize = this.setMinimumClusterSize.bind(this);\n this.getEnableRetinaIcons = this.getEnableRetinaIcons.bind(this);\n this.setEnableRetinaIcons = this.setEnableRetinaIcons.bind(this);\n this.addToClosestCluster = this.addToClosestCluster.bind(this);\n this.getImageExtension = this.getImageExtension.bind(this);\n this.setImageExtension = this.setImageExtension.bind(this);\n this.getExtendedBounds = this.getExtendedBounds.bind(this);\n this.getAverageCenter = this.getAverageCenter.bind(this);\n this.setAverageCenter = this.setAverageCenter.bind(this);\n this.getTotalClusters = this.getTotalClusters.bind(this);\n this.fitMapToMarkers = this.fitMapToMarkers.bind(this);\n this.getIgnoreHidden = this.getIgnoreHidden.bind(this);\n this.setIgnoreHidden = this.setIgnoreHidden.bind(this);\n this.getClusterClass = this.getClusterClass.bind(this);\n this.setClusterClass = this.setClusterClass.bind(this);\n this.getTotalMarkers = this.getTotalMarkers.bind(this);\n this.getZoomOnClick = this.getZoomOnClick.bind(this);\n this.setZoomOnClick = this.setZoomOnClick.bind(this);\n this.getBatchSizeIE = this.getBatchSizeIE.bind(this);\n this.setBatchSizeIE = this.setBatchSizeIE.bind(this);\n this.createClusters = this.createClusters.bind(this);\n this.onZoomChanged = this.onZoomChanged.bind(this);\n this.getImageSizes = this.getImageSizes.bind(this);\n this.setImageSizes = this.setImageSizes.bind(this);\n this.getCalculator = this.getCalculator.bind(this);\n this.setCalculator = this.setCalculator.bind(this);\n this.removeMarkers = this.removeMarkers.bind(this);\n this.resetViewport = this.resetViewport.bind(this);\n this.getImagePath = this.getImagePath.bind(this);\n this.setImagePath = this.setImagePath.bind(this);\n this.pushMarkerTo = this.pushMarkerTo.bind(this);\n this.removeMarker = this.removeMarker.bind(this);\n this.clearMarkers = this.clearMarkers.bind(this);\n this.setupStyles = this.setupStyles.bind(this);\n this.getGridSize = this.getGridSize.bind(this);\n this.setGridSize = this.setGridSize.bind(this);\n this.getClusters = this.getClusters.bind(this);\n this.getMaxZoom = this.getMaxZoom.bind(this);\n this.setMaxZoom = this.setMaxZoom.bind(this);\n this.getMarkers = this.getMarkers.bind(this);\n this.addMarkers = this.addMarkers.bind(this);\n this.getStyles = this.getStyles.bind(this);\n this.setStyles = this.setStyles.bind(this);\n this.addMarker = this.addMarker.bind(this);\n this.onRemove = this.onRemove.bind(this);\n this.getTitle = this.getTitle.bind(this);\n this.setTitle = this.setTitle.bind(this);\n this.repaint = this.repaint.bind(this);\n this.onIdle = this.onIdle.bind(this);\n this.redraw = this.redraw.bind(this);\n this.onAdd = this.onAdd.bind(this);\n this.draw = this.draw.bind(this);\n this.extend = this.extend.bind(this);\n this.extend(Clusterer, google.maps.OverlayView);\n this.markers = [];\n this.clusters = [];\n this.listeners = [];\n this.activeMap = null;\n this.ready = false;\n this.gridSize = optOptions.gridSize || 60;\n this.minClusterSize = optOptions.minimumClusterSize || 2;\n this.maxZoom = optOptions.maxZoom || null;\n this.styles = optOptions.styles || [];\n this.title = optOptions.title || '';\n this.zoomOnClick = true;\n if (optOptions.zoomOnClick !== undefined) {\n this.zoomOnClick = optOptions.zoomOnClick;\n }\n this.averageCenter = false;\n if (optOptions.averageCenter !== undefined) {\n this.averageCenter = optOptions.averageCenter;\n }\n this.ignoreHidden = false;\n if (optOptions.ignoreHidden !== undefined) {\n this.ignoreHidden = optOptions.ignoreHidden;\n }\n this.enableRetinaIcons = false;\n if (optOptions.enableRetinaIcons !== undefined) {\n this.enableRetinaIcons = optOptions.enableRetinaIcons;\n }\n this.imagePath = optOptions.imagePath || IMAGE_PATH;\n this.imageExtension = optOptions.imageExtension || IMAGE_EXTENSION;\n this.imageSizes = optOptions.imageSizes || IMAGE_SIZES;\n this.calculator = optOptions.calculator || CALCULATOR;\n this.batchSize = optOptions.batchSize || BATCH_SIZE;\n this.batchSizeIE = optOptions.batchSizeIE || BATCH_SIZE_IE;\n this.clusterClass = optOptions.clusterClass || CLUSTERER_CLASS;\n if (navigator.userAgent.toLowerCase().indexOf('msie') !== -1) {\n // Try to avoid IE timeout when processing a huge number of markers:\n this.batchSize = this.batchSizeIE;\n }\n this.timerRefStatic = null;\n this.setupStyles();\n this.addMarkers(optMarkers, true);\n this.setMap(map); // Note: this causes onAdd to be called\n }\n Clusterer.prototype.onZoomChanged = function () {\n var _a, _b;\n this.resetViewport(false);\n // Workaround for this Google bug: when map is at level 0 and \"-\" of\n // zoom slider is clicked, a \"zoom_changed\" event is fired even though\n // the map doesn't zoom out any further. In this situation, no \"idle\"\n // event is triggered so the cluster markers that have been removed\n // do not get redrawn. Same goes for a zoom in at maxZoom.\n if (((_a = this.getMap()) === null || _a === void 0 ? void 0 : _a.getZoom()) === (this.get('minZoom') || 0) || ((_b = this.getMap()) === null || _b === void 0 ? void 0 : _b.getZoom()) === this.get('maxZoom')) {\n google.maps.event.trigger(this, 'idle');\n }\n };\n Clusterer.prototype.onIdle = function () {\n this.redraw();\n };\n Clusterer.prototype.onAdd = function () {\n var map = this.getMap();\n this.activeMap = map;\n this.ready = true;\n this.repaint();\n if (map !== null) {\n // Add the map event listeners\n this.listeners = [google.maps.event.addListener(map, 'zoom_changed', this.onZoomChanged), google.maps.event.addListener(map, 'idle', this.onIdle)];\n }\n };\n Clusterer.prototype.onRemove = function () {\n // Put all the managed markers back on the map:\n for (var _i = 0, _a = this.markers; _i < _a.length; _i++) {\n var marker = _a[_i];\n if (marker.getMap() !== this.activeMap) {\n marker.setMap(this.activeMap);\n }\n }\n // Remove all clusters:\n for (var _b = 0, _c = this.clusters; _b < _c.length; _b++) {\n var cluster = _c[_b];\n cluster.remove();\n }\n this.clusters = [];\n // Remove map event listeners:\n for (var _d = 0, _e = this.listeners; _d < _e.length; _d++) {\n var listener = _e[_d];\n google.maps.event.removeListener(listener);\n }\n this.listeners = [];\n this.activeMap = null;\n this.ready = false;\n };\n Clusterer.prototype.draw = function () {\n return;\n };\n Clusterer.prototype.getMap = function () {\n return null;\n };\n Clusterer.prototype.getPanes = function () {\n return null;\n };\n Clusterer.prototype.getProjection = function () {\n return {\n fromContainerPixelToLatLng: function () {\n return null;\n },\n fromDivPixelToLatLng: function () {\n return null;\n },\n fromLatLngToContainerPixel: function () {\n return null;\n },\n fromLatLngToDivPixel: function () {\n return null;\n },\n getVisibleRegion: function () {\n return null;\n },\n getWorldWidth: function () {\n return 0;\n }\n };\n };\n Clusterer.prototype.setMap = function () {\n return;\n };\n Clusterer.prototype.addListener = function () {\n return {\n remove: function () {\n return;\n }\n };\n };\n Clusterer.prototype.bindTo = function () {\n return;\n };\n Clusterer.prototype.get = function () {\n return;\n };\n Clusterer.prototype.notify = function () {\n return;\n };\n Clusterer.prototype.set = function () {\n return;\n };\n Clusterer.prototype.setValues = function () {\n return;\n };\n Clusterer.prototype.unbind = function () {\n return;\n };\n Clusterer.prototype.unbindAll = function () {\n return;\n };\n Clusterer.prototype.setupStyles = function () {\n if (this.styles.length > 0) {\n return;\n }\n for (var i = 0; i < this.imageSizes.length; i++) {\n this.styles.push({\n url: \"\".concat(this.imagePath + (i + 1), \".\").concat(this.imageExtension),\n height: this.imageSizes[i] || 0,\n width: this.imageSizes[i] || 0\n });\n }\n };\n Clusterer.prototype.fitMapToMarkers = function () {\n var markers = this.getMarkers();\n var bounds = new google.maps.LatLngBounds();\n for (var _i = 0, markers_1 = markers; _i < markers_1.length; _i++) {\n var marker = markers_1[_i];\n var position = marker.getPosition();\n if (position) {\n bounds.extend(position);\n }\n }\n var map = this.getMap();\n if (map !== null && 'fitBounds' in map) {\n map.fitBounds(bounds);\n }\n };\n Clusterer.prototype.getGridSize = function () {\n return this.gridSize;\n };\n Clusterer.prototype.setGridSize = function (gridSize) {\n this.gridSize = gridSize;\n };\n Clusterer.prototype.getMinimumClusterSize = function () {\n return this.minClusterSize;\n };\n Clusterer.prototype.setMinimumClusterSize = function (minimumClusterSize) {\n this.minClusterSize = minimumClusterSize;\n };\n Clusterer.prototype.getMaxZoom = function () {\n return this.maxZoom;\n };\n Clusterer.prototype.setMaxZoom = function (maxZoom) {\n this.maxZoom = maxZoom;\n };\n Clusterer.prototype.getStyles = function () {\n return this.styles;\n };\n Clusterer.prototype.setStyles = function (styles) {\n this.styles = styles;\n };\n Clusterer.prototype.getTitle = function () {\n return this.title;\n };\n Clusterer.prototype.setTitle = function (title) {\n this.title = title;\n };\n Clusterer.prototype.getZoomOnClick = function () {\n return this.zoomOnClick;\n };\n Clusterer.prototype.setZoomOnClick = function (zoomOnClick) {\n this.zoomOnClick = zoomOnClick;\n };\n Clusterer.prototype.getAverageCenter = function () {\n return this.averageCenter;\n };\n Clusterer.prototype.setAverageCenter = function (averageCenter) {\n this.averageCenter = averageCenter;\n };\n Clusterer.prototype.getIgnoreHidden = function () {\n return this.ignoreHidden;\n };\n Clusterer.prototype.setIgnoreHidden = function (ignoreHidden) {\n this.ignoreHidden = ignoreHidden;\n };\n Clusterer.prototype.getEnableRetinaIcons = function () {\n return this.enableRetinaIcons;\n };\n Clusterer.prototype.setEnableRetinaIcons = function (enableRetinaIcons) {\n this.enableRetinaIcons = enableRetinaIcons;\n };\n Clusterer.prototype.getImageExtension = function () {\n return this.imageExtension;\n };\n Clusterer.prototype.setImageExtension = function (imageExtension) {\n this.imageExtension = imageExtension;\n };\n Clusterer.prototype.getImagePath = function () {\n return this.imagePath;\n };\n Clusterer.prototype.setImagePath = function (imagePath) {\n this.imagePath = imagePath;\n };\n Clusterer.prototype.getImageSizes = function () {\n return this.imageSizes;\n };\n Clusterer.prototype.setImageSizes = function (imageSizes) {\n this.imageSizes = imageSizes;\n };\n Clusterer.prototype.getCalculator = function () {\n return this.calculator;\n };\n Clusterer.prototype.setCalculator = function (calculator) {\n this.calculator = calculator;\n };\n Clusterer.prototype.getBatchSizeIE = function () {\n return this.batchSizeIE;\n };\n Clusterer.prototype.setBatchSizeIE = function (batchSizeIE) {\n this.batchSizeIE = batchSizeIE;\n };\n Clusterer.prototype.getClusterClass = function () {\n return this.clusterClass;\n };\n Clusterer.prototype.setClusterClass = function (clusterClass) {\n this.clusterClass = clusterClass;\n };\n Clusterer.prototype.getMarkers = function () {\n return this.markers;\n };\n Clusterer.prototype.getTotalMarkers = function () {\n return this.markers.length;\n };\n Clusterer.prototype.getClusters = function () {\n return this.clusters;\n };\n Clusterer.prototype.getTotalClusters = function () {\n return this.clusters.length;\n };\n Clusterer.prototype.addMarker = function (marker, optNoDraw) {\n this.pushMarkerTo(marker);\n if (!optNoDraw) {\n this.redraw();\n }\n };\n Clusterer.prototype.addMarkers = function (markers, optNoDraw) {\n for (var key in markers) {\n if (Object.prototype.hasOwnProperty.call(markers, key)) {\n var marker = markers[key];\n if (marker) {\n this.pushMarkerTo(marker);\n }\n }\n }\n if (!optNoDraw) {\n this.redraw();\n }\n };\n Clusterer.prototype.pushMarkerTo = function (marker) {\n var _this = this;\n // If the marker is draggable add a listener so we can update the clusters on the dragend:\n if (marker.getDraggable()) {\n google.maps.event.addListener(marker, 'dragend', function () {\n if (_this.ready) {\n marker.isAdded = false;\n _this.repaint();\n }\n });\n }\n marker.isAdded = false;\n this.markers.push(marker);\n };\n Clusterer.prototype.removeMarker_ = function (marker) {\n var index = -1;\n if (this.markers.indexOf) {\n index = this.markers.indexOf(marker);\n } else {\n for (var i = 0; i < this.markers.length; i++) {\n if (marker === this.markers[i]) {\n index = i;\n break;\n }\n }\n }\n if (index === -1) {\n // Marker is not in our list of markers, so do nothing:\n return false;\n }\n marker.setMap(null);\n this.markers.splice(index, 1); // Remove the marker from the list of managed markers\n return true;\n };\n Clusterer.prototype.removeMarker = function (marker, optNoDraw) {\n var removed = this.removeMarker_(marker);\n if (!optNoDraw && removed) {\n this.repaint();\n }\n return removed;\n };\n Clusterer.prototype.removeMarkers = function (markers, optNoDraw) {\n var removed = false;\n for (var _i = 0, markers_2 = markers; _i < markers_2.length; _i++) {\n var marker = markers_2[_i];\n removed = removed || this.removeMarker_(marker);\n }\n if (!optNoDraw && removed) {\n this.repaint();\n }\n return removed;\n };\n Clusterer.prototype.clearMarkers = function () {\n this.resetViewport(true);\n this.markers = [];\n };\n Clusterer.prototype.repaint = function () {\n var oldClusters = this.clusters.slice();\n this.clusters = [];\n this.resetViewport(false);\n this.redraw();\n // Remove the old clusters.\n // Do it in a timeout to prevent blinking effect.\n setTimeout(function timeout() {\n for (var _i = 0, oldClusters_1 = oldClusters; _i < oldClusters_1.length; _i++) {\n var oldCluster = oldClusters_1[_i];\n oldCluster.remove();\n }\n }, 0);\n };\n Clusterer.prototype.getExtendedBounds = function (bounds) {\n var projection = this.getProjection();\n // Convert the points to pixels and the extend out by the grid size.\n var trPix = projection.fromLatLngToDivPixel(\n // Turn the bounds into latlng.\n new google.maps.LatLng(bounds.getNorthEast().lat(), bounds.getNorthEast().lng()));\n if (trPix !== null) {\n trPix.x += this.gridSize;\n trPix.y -= this.gridSize;\n }\n var blPix = projection.fromLatLngToDivPixel(\n // Turn the bounds into latlng.\n new google.maps.LatLng(bounds.getSouthWest().lat(), bounds.getSouthWest().lng()));\n if (blPix !== null) {\n blPix.x -= this.gridSize;\n blPix.y += this.gridSize;\n }\n // Extend the bounds to contain the new bounds.\n if (trPix !== null) {\n // Convert the pixel points back to LatLng nw\n var point1 = projection.fromDivPixelToLatLng(trPix);\n if (point1 !== null) {\n bounds.extend(point1);\n }\n }\n if (blPix !== null) {\n // Convert the pixel points back to LatLng sw\n var point2 = projection.fromDivPixelToLatLng(blPix);\n if (point2 !== null) {\n bounds.extend(point2);\n }\n }\n return bounds;\n };\n Clusterer.prototype.redraw = function () {\n // Redraws all the clusters.\n this.createClusters(0);\n };\n Clusterer.prototype.resetViewport = function (optHide) {\n // Remove all the clusters\n for (var _i = 0, _a = this.clusters; _i < _a.length; _i++) {\n var cluster = _a[_i];\n cluster.remove();\n }\n this.clusters = [];\n // Reset the markers to not be added and to be removed from the map.\n for (var _b = 0, _c = this.markers; _b < _c.length; _b++) {\n var marker = _c[_b];\n marker.isAdded = false;\n if (optHide) {\n marker.setMap(null);\n }\n }\n };\n Clusterer.prototype.distanceBetweenPoints = function (p1, p2) {\n var R = 6371; // Radius of the Earth in km\n var dLat = (p2.lat() - p1.lat()) * Math.PI / 180;\n var dLon = (p2.lng() - p1.lng()) * Math.PI / 180;\n var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(p1.lat() * Math.PI / 180) * Math.cos(p2.lat() * Math.PI / 180) * Math.sin(dLon / 2) * Math.sin(dLon / 2);\n return R * (2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)));\n };\n Clusterer.prototype.isMarkerInBounds = function (marker, bounds) {\n var position = marker.getPosition();\n if (position) {\n return bounds.contains(position);\n }\n return false;\n };\n Clusterer.prototype.addToClosestCluster = function (marker) {\n var cluster;\n var distance = 40000; // Some large number\n var clusterToAddTo = null;\n for (var _i = 0, _a = this.clusters; _i < _a.length; _i++) {\n var clusterElement = _a[_i];\n cluster = clusterElement;\n var center = cluster.getCenter();\n var position = marker.getPosition();\n if (center && position) {\n var d = this.distanceBetweenPoints(center, position);\n if (d < distance) {\n distance = d;\n clusterToAddTo = cluster;\n }\n }\n }\n if (clusterToAddTo && clusterToAddTo.isMarkerInClusterBounds(marker)) {\n clusterToAddTo.addMarker(marker);\n } else {\n cluster = new Cluster$1(this);\n cluster.addMarker(marker);\n this.clusters.push(cluster);\n }\n };\n Clusterer.prototype.createClusters = function (iFirst) {\n var _this = this;\n if (!this.ready) {\n return;\n }\n // Cancel previous batch processing if we're working on the first batch:\n if (iFirst === 0) {\n /**\n * This event is fired when the <code>Clusterer</code> begins\n * clustering markers.\n * @name Clusterer#clusteringbegin\n * @param {Clusterer} mc The Clusterer whose markers are being clustered.\n * @event\n */\n google.maps.event.trigger(this, 'clusteringbegin', this);\n if (this.timerRefStatic !== null) {\n window.clearTimeout(this.timerRefStatic);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete this.timerRefStatic;\n }\n }\n var map = this.getMap();\n var bounds = map !== null && 'getBounds' in map ? map.getBounds() : null;\n var zoom = (map === null || map === void 0 ? void 0 : map.getZoom()) || 0;\n // Get our current map view bounds.\n // Create a new bounds object so we don't affect the map.\n //\n // See Comments 9 & 11 on Issue 3651 relating to this workaround for a Google Maps bug:\n var mapBounds = zoom > 3 ? new google.maps.LatLngBounds(bounds === null || bounds === void 0 ? void 0 : bounds.getSouthWest(), bounds === null || bounds === void 0 ? void 0 : bounds.getNorthEast()) : new google.maps.LatLngBounds(new google.maps.LatLng(85.02070771743472, -178.48388434375), new google.maps.LatLng(-85.08136444384544, 178.00048865625));\n var extendedMapBounds = this.getExtendedBounds(mapBounds);\n var iLast = Math.min(iFirst + this.batchSize, this.markers.length);\n for (var i = iFirst; i < iLast; i++) {\n var marker = this.markers[i];\n if (marker && !marker.isAdded && this.isMarkerInBounds(marker, extendedMapBounds) && (!this.ignoreHidden || this.ignoreHidden && marker.getVisible())) {\n this.addToClosestCluster(marker);\n }\n }\n if (iLast < this.markers.length) {\n this.timerRefStatic = window.setTimeout(function () {\n _this.createClusters(iLast);\n }, 0);\n } else {\n this.timerRefStatic = null;\n /**\n * This event is fired when the <code>Clusterer</code> stops\n * clustering markers.\n * @name Clusterer#clusteringend\n * @param {Clusterer} mc The Clusterer whose markers are being clustered.\n * @event\n */\n google.maps.event.trigger(this, 'clusteringend', this);\n for (var _i = 0, _a = this.clusters; _i < _a.length; _i++) {\n var cluster = _a[_i];\n cluster.updateIcon();\n }\n }\n };\n Clusterer.prototype.extend = function (obj1, obj2) {\n return function applyExtend(object) {\n for (var property in object.prototype) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var prop = property;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.prototype[prop] = object.prototype[prop];\n }\n return this;\n }.apply(obj1, [obj2]);\n };\n return Clusterer;\n}();\nvar eventMap$e = {\n onClick: 'click',\n onClusteringBegin: 'clusteringbegin',\n onClusteringEnd: 'clusteringend',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover'\n};\nvar updaterMap$e = {\n averageCenter: function (instance, averageCenter) {\n instance.setAverageCenter(averageCenter);\n },\n batchSizeIE: function (instance, batchSizeIE) {\n instance.setBatchSizeIE(batchSizeIE);\n },\n calculator: function (instance, calculator) {\n instance.setCalculator(calculator);\n },\n clusterClass: function (instance, clusterClass) {\n instance.setClusterClass(clusterClass);\n },\n enableRetinaIcons: function (instance, enableRetinaIcons) {\n instance.setEnableRetinaIcons(enableRetinaIcons);\n },\n gridSize: function (instance, gridSize) {\n instance.setGridSize(gridSize);\n },\n ignoreHidden: function (instance, ignoreHidden) {\n instance.setIgnoreHidden(ignoreHidden);\n },\n imageExtension: function (instance, imageExtension) {\n instance.setImageExtension(imageExtension);\n },\n imagePath: function (instance, imagePath) {\n instance.setImagePath(imagePath);\n },\n imageSizes: function (instance, imageSizes) {\n instance.setImageSizes(imageSizes);\n },\n maxZoom: function (instance, maxZoom) {\n instance.setMaxZoom(maxZoom);\n },\n minimumClusterSize: function (instance, minimumClusterSize) {\n instance.setMinimumClusterSize(minimumClusterSize);\n },\n styles: function (instance, styles) {\n instance.setStyles(styles);\n },\n title: function (instance, title) {\n instance.setTitle(title);\n },\n zoomOnClick: function (instance, zoomOnClick) {\n instance.setZoomOnClick(zoomOnClick);\n }\n};\nvar defaultOptions$4 = {};\nfunction MarkerClustererFunctional(props) {\n var children = props.children,\n options = props.options,\n averageCenter = props.averageCenter,\n batchSizeIE = props.batchSizeIE,\n calculator = props.calculator,\n clusterClass = props.clusterClass,\n enableRetinaIcons = props.enableRetinaIcons,\n gridSize = props.gridSize,\n ignoreHidden = props.ignoreHidden,\n imageExtension = props.imageExtension,\n imagePath = props.imagePath,\n imageSizes = props.imageSizes,\n maxZoom = props.maxZoom,\n minimumClusterSize = props.minimumClusterSize,\n styles = props.styles,\n title = props.title,\n zoomOnClick = props.zoomOnClick,\n onClick = props.onClick,\n onClusteringBegin = props.onClusteringBegin,\n onClusteringEnd = props.onClusteringEnd,\n onMouseOver = props.onMouseOver,\n onMouseOut = props.onMouseOut,\n onLoad = props.onLoad,\n onUnmount = props.onUnmount;\n var _a = useState(null),\n instance = _a[0],\n setInstance = _a[1];\n var map = useContext(MapContext);\n var _b = useState(null),\n clickListener = _b[0],\n setClickListener = _b[1];\n var _c = useState(null),\n clusteringBeginListener = _c[0],\n setClusteringBeginListener = _c[1];\n var _d = useState(null),\n clusteringEndListener = _d[0],\n setClusteringEndListener = _d[1];\n var _e = useState(null),\n mouseoutListener = _e[0],\n setMouseoutListener = _e[1];\n var _f = useState(null),\n mouseoverListener = _f[0],\n setMouseoverListener = _f[1];\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, eventMap$e.onMouseOut, onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, eventMap$e.onMouseOver, onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, eventMap$e.onClick, onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onClusteringBegin) {\n if (clusteringBeginListener !== null) {\n google.maps.event.removeListener(clusteringBeginListener);\n }\n setClusteringBeginListener(google.maps.event.addListener(instance, eventMap$e.onClusteringBegin, onClusteringBegin));\n }\n }, [onClusteringBegin]);\n useEffect(function () {\n if (instance && onClusteringEnd) {\n if (clusteringEndListener !== null) {\n google.maps.event.removeListener(clusteringEndListener);\n }\n setClusteringBeginListener(google.maps.event.addListener(instance, eventMap$e.onClusteringEnd, onClusteringEnd));\n }\n }, [onClusteringEnd]);\n useEffect(function () {\n if (typeof averageCenter !== 'undefined' && instance !== null) {\n updaterMap$e.averageCenter(instance, averageCenter);\n }\n }, [instance, averageCenter]);\n useEffect(function () {\n if (typeof batchSizeIE !== 'undefined' && instance !== null) {\n updaterMap$e.batchSizeIE(instance, batchSizeIE);\n }\n }, [instance, batchSizeIE]);\n useEffect(function () {\n if (typeof calculator !== 'undefined' && instance !== null) {\n updaterMap$e.calculator(instance, calculator);\n }\n }, [instance, calculator]);\n useEffect(function () {\n if (typeof clusterClass !== 'undefined' && instance !== null) {\n updaterMap$e.clusterClass(instance, clusterClass);\n }\n }, [instance, clusterClass]);\n useEffect(function () {\n if (typeof enableRetinaIcons !== 'undefined' && instance !== null) {\n updaterMap$e.enableRetinaIcons(instance, enableRetinaIcons);\n }\n }, [instance, enableRetinaIcons]);\n useEffect(function () {\n if (typeof gridSize !== 'undefined' && instance !== null) {\n updaterMap$e.gridSize(instance, gridSize);\n }\n }, [instance, gridSize]);\n useEffect(function () {\n if (typeof ignoreHidden !== 'undefined' && instance !== null) {\n updaterMap$e.ignoreHidden(instance, ignoreHidden);\n }\n }, [instance, ignoreHidden]);\n useEffect(function () {\n if (typeof imageExtension !== 'undefined' && instance !== null) {\n updaterMap$e.imageExtension(instance, imageExtension);\n }\n }, [instance, imageExtension]);\n useEffect(function () {\n if (typeof imagePath !== 'undefined' && instance !== null) {\n updaterMap$e.imagePath(instance, imagePath);\n }\n }, [instance, imagePath]);\n useEffect(function () {\n if (typeof imageSizes !== 'undefined' && instance !== null) {\n updaterMap$e.imageSizes(instance, imageSizes);\n }\n }, [instance, imageSizes]);\n useEffect(function () {\n if (typeof maxZoom !== 'undefined' && instance !== null) {\n updaterMap$e.maxZoom(instance, maxZoom);\n }\n }, [instance, maxZoom]);\n useEffect(function () {\n if (typeof minimumClusterSize !== 'undefined' && instance !== null) {\n updaterMap$e.minimumClusterSize(instance, minimumClusterSize);\n }\n }, [instance, minimumClusterSize]);\n useEffect(function () {\n if (typeof styles !== 'undefined' && instance !== null) {\n updaterMap$e.styles(instance, styles);\n }\n }, [instance, styles]);\n useEffect(function () {\n if (typeof title !== 'undefined' && instance !== null) {\n updaterMap$e.title(instance, title);\n }\n }, [instance, title]);\n useEffect(function () {\n if (typeof zoomOnClick !== 'undefined' && instance !== null) {\n updaterMap$e.zoomOnClick(instance, zoomOnClick);\n }\n }, [instance, zoomOnClick]);\n useEffect(function () {\n if (!map) return;\n var clustererOptions = __assign({}, options || defaultOptions$4);\n var clusterer = new Clusterer(map, [], clustererOptions);\n if (averageCenter) {\n updaterMap$e.averageCenter(clusterer, averageCenter);\n }\n if (batchSizeIE) {\n updaterMap$e.batchSizeIE(clusterer, batchSizeIE);\n }\n if (calculator) {\n updaterMap$e.calculator(clusterer, calculator);\n }\n if (clusterClass) {\n updaterMap$e.clusterClass(clusterer, clusterClass);\n }\n if (enableRetinaIcons) {\n updaterMap$e.enableRetinaIcons(clusterer, enableRetinaIcons);\n }\n if (gridSize) {\n updaterMap$e.gridSize(clusterer, gridSize);\n }\n if (ignoreHidden) {\n updaterMap$e.ignoreHidden(clusterer, ignoreHidden);\n }\n if (imageExtension) {\n updaterMap$e.imageExtension(clusterer, imageExtension);\n }\n if (imagePath) {\n updaterMap$e.imagePath(clusterer, imagePath);\n }\n if (imageSizes) {\n updaterMap$e.imageSizes(clusterer, imageSizes);\n }\n if (maxZoom) {\n updaterMap$e.maxZoom(clusterer, maxZoom);\n }\n if (minimumClusterSize) {\n updaterMap$e.minimumClusterSize(clusterer, minimumClusterSize);\n }\n if (styles) {\n updaterMap$e.styles(clusterer, styles);\n }\n if (title) {\n updaterMap$e.title(clusterer, title);\n }\n if (zoomOnClick) {\n updaterMap$e.zoomOnClick(clusterer, zoomOnClick);\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(clusterer, eventMap$e.onMouseOut, onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(clusterer, eventMap$e.onMouseOver, onMouseOver));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(clusterer, eventMap$e.onClick, onClick));\n }\n if (onClusteringBegin) {\n setClusteringBeginListener(google.maps.event.addListener(clusterer, eventMap$e.onClusteringBegin, onClusteringBegin));\n }\n if (onClusteringEnd) {\n setClusteringEndListener(google.maps.event.addListener(clusterer, eventMap$e.onClusteringEnd, onClusteringEnd));\n }\n setInstance(clusterer);\n if (onLoad) {\n onLoad(clusterer);\n }\n return function () {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (clusteringBeginListener !== null) {\n google.maps.event.removeListener(clusteringBeginListener);\n }\n if (clusteringEndListener !== null) {\n google.maps.event.removeListener(clusteringEndListener);\n }\n if (onUnmount) {\n onUnmount(clusterer);\n }\n };\n }, []);\n return instance !== null ? children(instance) || null : null;\n}\nvar MarkerClustererF = memo(MarkerClustererFunctional);\n/** @class */\n(function (_super) {\n __extends(ClustererComponent, _super);\n function ClustererComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n markerClusterer: null\n };\n _this.setClustererCallback = function () {\n if (_this.state.markerClusterer !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.markerClusterer);\n }\n };\n return _this;\n }\n ClustererComponent.prototype.componentDidMount = function () {\n if (this.context) {\n var markerClusterer_1 = new Clusterer(this.context, [], this.props.options);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$e,\n eventMap: eventMap$e,\n prevProps: {},\n nextProps: this.props,\n instance: markerClusterer_1\n });\n this.setState(function () {\n return {\n markerClusterer: markerClusterer_1\n };\n }, this.setClustererCallback);\n }\n };\n ClustererComponent.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.markerClusterer) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$e,\n eventMap: eventMap$e,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.markerClusterer\n });\n }\n };\n ClustererComponent.prototype.componentWillUnmount = function () {\n if (this.state.markerClusterer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.markerClusterer);\n }\n unregisterEvents(this.registeredEvents);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.state.markerClusterer.setMap(null);\n }\n };\n ClustererComponent.prototype.render = function () {\n return this.state.markerClusterer !== null ? this.props.children(this.state.markerClusterer) : null;\n };\n ClustererComponent.contextType = MapContext;\n return ClustererComponent;\n})(PureComponent);\n\n// This handler prevents an event in the InfoBox from being passed on to the map.\nfunction cancelHandler(event) {\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n}\nvar InfoBox = /** @class */function () {\n function InfoBox(options) {\n if (options === void 0) {\n options = {};\n }\n this.getCloseClickHandler = this.getCloseClickHandler.bind(this);\n this.closeClickHandler = this.closeClickHandler.bind(this);\n this.createInfoBoxDiv = this.createInfoBoxDiv.bind(this);\n this.addClickHandler = this.addClickHandler.bind(this);\n this.getCloseBoxImg = this.getCloseBoxImg.bind(this);\n this.getBoxWidths = this.getBoxWidths.bind(this);\n this.setBoxStyle = this.setBoxStyle.bind(this);\n this.setPosition = this.setPosition.bind(this);\n this.getPosition = this.getPosition.bind(this);\n this.setOptions = this.setOptions.bind(this);\n this.setContent = this.setContent.bind(this);\n this.setVisible = this.setVisible.bind(this);\n this.getContent = this.getContent.bind(this);\n this.getVisible = this.getVisible.bind(this);\n this.setZIndex = this.setZIndex.bind(this);\n this.getZIndex = this.getZIndex.bind(this);\n this.onRemove = this.onRemove.bind(this);\n this.panBox = this.panBox.bind(this);\n this.extend = this.extend.bind(this);\n this.close = this.close.bind(this);\n this.draw = this.draw.bind(this);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n this.open = this.open.bind(this);\n this.extend(InfoBox, google.maps.OverlayView);\n // Standard options (in common with google.maps.InfoWindow):\n this.content = options.content || '';\n this.disableAutoPan = options.disableAutoPan || false;\n this.maxWidth = options.maxWidth || 0;\n this.pixelOffset = options.pixelOffset || new google.maps.Size(0, 0);\n this.position = options.position || new google.maps.LatLng(0, 0);\n this.zIndex = options.zIndex || null;\n // Additional options (unique to InfoBox):\n this.boxClass = options.boxClass || 'infoBox';\n this.boxStyle = options.boxStyle || {};\n this.closeBoxMargin = options.closeBoxMargin || '2px';\n this.closeBoxURL = options.closeBoxURL || 'http://www.google.com/intl/en_us/mapfiles/close.gif';\n if (options.closeBoxURL === '') {\n this.closeBoxURL = '';\n }\n this.infoBoxClearance = options.infoBoxClearance || new google.maps.Size(1, 1);\n if (typeof options.visible === 'undefined') {\n if (typeof options.isHidden === 'undefined') {\n options.visible = true;\n } else {\n options.visible = !options.isHidden;\n }\n }\n this.isHidden = !options.visible;\n this.alignBottom = options.alignBottom || false;\n this.pane = options.pane || 'floatPane';\n this.enableEventPropagation = options.enableEventPropagation || false;\n this.div = null;\n this.closeListener = null;\n this.moveListener = null;\n this.mapListener = null;\n this.contextListener = null;\n this.eventListeners = null;\n this.fixedWidthSet = null;\n }\n InfoBox.prototype.createInfoBoxDiv = function () {\n var _this = this;\n // This handler ignores the current event in the InfoBox and conditionally prevents\n // the event from being passed on to the map. It is used for the contextmenu event.\n var ignoreHandler = function (event) {\n event.returnValue = false;\n if (event.preventDefault) {\n event.preventDefault();\n }\n if (!_this.enableEventPropagation) {\n cancelHandler(event);\n }\n };\n if (!this.div) {\n this.div = document.createElement('div');\n this.setBoxStyle();\n if (typeof this.content === 'string') {\n this.div.innerHTML = this.getCloseBoxImg() + this.content;\n } else {\n this.div.innerHTML = this.getCloseBoxImg();\n this.div.appendChild(this.content);\n }\n var panes = this.getPanes();\n if (panes !== null) {\n panes[this.pane].appendChild(this.div); // Add the InfoBox div to the DOM\n }\n this.addClickHandler();\n if (this.div.style.width) {\n this.fixedWidthSet = true;\n } else {\n if (this.maxWidth !== 0 && this.div.offsetWidth > this.maxWidth) {\n this.div.style.width = this.maxWidth + 'px';\n this.fixedWidthSet = true;\n } else {\n // The following code is needed to overcome problems with MSIE\n var bw = this.getBoxWidths();\n this.div.style.width = this.div.offsetWidth - bw.left - bw.right + 'px';\n this.fixedWidthSet = false;\n }\n }\n this.panBox(this.disableAutoPan);\n if (!this.enableEventPropagation) {\n this.eventListeners = [];\n // Cancel event propagation.\n // Note: mousemove not included (to resolve Issue 152)\n var events = ['mousedown', 'mouseover', 'mouseout', 'mouseup', 'click', 'dblclick', 'touchstart', 'touchend', 'touchmove'];\n for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {\n var event_1 = events_1[_i];\n this.eventListeners.push(google.maps.event.addListener(this.div, event_1, cancelHandler));\n }\n // Workaround for Google bug that causes the cursor to change to a pointer\n // when the mouse moves over a marker underneath InfoBox.\n this.eventListeners.push(google.maps.event.addListener(this.div, 'mouseover', function () {\n if (_this.div) {\n _this.div.style.cursor = 'default';\n }\n }));\n }\n this.contextListener = google.maps.event.addListener(this.div, 'contextmenu', ignoreHandler);\n /**\n * This event is fired when the DIV containing the InfoBox's content is attached to the DOM.\n * @name InfoBox#domready\n * @event\n */\n google.maps.event.trigger(this, 'domready');\n }\n };\n InfoBox.prototype.getCloseBoxImg = function () {\n var img = '';\n if (this.closeBoxURL !== '') {\n img = '<img alt=\"\"';\n img += ' aria-hidden=\"true\"';\n img += \" src='\" + this.closeBoxURL + \"'\";\n img += ' align=right'; // Do this because Opera chokes on style='float: right;'\n img += \" style='\";\n img += ' position: relative;'; // Required by MSIE\n img += ' cursor: pointer;';\n img += ' margin: ' + this.closeBoxMargin + ';';\n img += \"'>\";\n }\n return img;\n };\n InfoBox.prototype.addClickHandler = function () {\n this.closeListener = this.div && this.div.firstChild && this.closeBoxURL !== '' ? google.maps.event.addListener(this.div.firstChild, 'click', this.getCloseClickHandler()) : null;\n };\n InfoBox.prototype.closeClickHandler = function (event) {\n // 1.0.3 fix: Always prevent propagation of a close box click to the map:\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n /**\n * This event is fired when the InfoBox's close box is clicked.\n * @name InfoBox#closeclick\n * @event\n */\n google.maps.event.trigger(this, 'closeclick');\n this.close();\n };\n InfoBox.prototype.getCloseClickHandler = function () {\n return this.closeClickHandler;\n };\n InfoBox.prototype.panBox = function (disablePan) {\n if (this.div && !disablePan) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var map = this.getMap();\n // Only pan if attached to map, not panorama\n if (map instanceof google.maps.Map) {\n var xOffset = 0;\n var yOffset = 0;\n var bounds = map.getBounds();\n if (bounds && !bounds.contains(this.position)) {\n // Marker not in visible area of map, so set center\n // of map to the marker position first.\n map.setCenter(this.position);\n }\n var mapDiv = map.getDiv();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var mapWidth = mapDiv.offsetWidth;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var mapHeight = mapDiv.offsetHeight;\n var iwOffsetX = this.pixelOffset.width;\n var iwOffsetY = this.pixelOffset.height;\n var iwWidth = this.div.offsetWidth;\n var iwHeight = this.div.offsetHeight;\n var padX = this.infoBoxClearance.width;\n var padY = this.infoBoxClearance.height;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var projection = this.getProjection();\n var pixPosition = projection.fromLatLngToContainerPixel(this.position);\n if (pixPosition !== null) {\n if (pixPosition.x < -iwOffsetX + padX) {\n xOffset = pixPosition.x + iwOffsetX - padX;\n } else if (pixPosition.x + iwWidth + iwOffsetX + padX > mapWidth) {\n xOffset = pixPosition.x + iwWidth + iwOffsetX + padX - mapWidth;\n }\n if (this.alignBottom) {\n if (pixPosition.y < -iwOffsetY + padY + iwHeight) {\n yOffset = pixPosition.y + iwOffsetY - padY - iwHeight;\n } else if (pixPosition.y + iwOffsetY + padY > mapHeight) {\n yOffset = pixPosition.y + iwOffsetY + padY - mapHeight;\n }\n } else {\n if (pixPosition.y < -iwOffsetY + padY) {\n yOffset = pixPosition.y + iwOffsetY - padY;\n } else if (pixPosition.y + iwHeight + iwOffsetY + padY > mapHeight) {\n yOffset = pixPosition.y + iwHeight + iwOffsetY + padY - mapHeight;\n }\n }\n }\n if (!(xOffset === 0 && yOffset === 0)) {\n // Move the map to the shifted center.\n map.panBy(xOffset, yOffset);\n }\n }\n }\n };\n InfoBox.prototype.setBoxStyle = function () {\n if (this.div) {\n // Apply style values from the style sheet defined in the boxClass parameter:\n this.div.className = this.boxClass;\n // Clear existing inline style values:\n this.div.style.cssText = '';\n // Apply style values defined in the boxStyle parameter:\n var boxStyle = this.boxStyle;\n for (var i in boxStyle) {\n if (Object.prototype.hasOwnProperty.call(boxStyle, i)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.div.style[i] = boxStyle[i];\n }\n }\n // Fix for iOS disappearing InfoBox problem\n // See http://stackoverflow.com/questions/9229535/google-maps-markers-disappear-at-certain-zoom-level-only-on-iphone-ipad\n this.div.style.webkitTransform = 'translateZ(0)';\n // Fix up opacity style for benefit of MSIE\n if (typeof this.div.style.opacity !== 'undefined' && this.div.style.opacity !== '') {\n // See http://www.quirksmode.org/css/opacity.html\n var opacity = parseFloat(this.div.style.opacity || '');\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.div.style.msFilter = '\"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + opacity * 100 + ')\"';\n this.div.style.filter = 'alpha(opacity=' + opacity * 100 + ')';\n }\n // Apply required styles\n this.div.style.position = 'absolute';\n this.div.style.visibility = 'hidden';\n if (this.zIndex !== null) {\n this.div.style.zIndex = this.zIndex + '';\n }\n if (!this.div.style.overflow) {\n this.div.style.overflow = 'auto';\n }\n }\n };\n InfoBox.prototype.getBoxWidths = function () {\n var bw = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n if (!this.div) {\n return bw;\n }\n if (document.defaultView) {\n var ownerDocument = this.div.ownerDocument;\n var computedStyle = ownerDocument && ownerDocument.defaultView ? ownerDocument.defaultView.getComputedStyle(this.div, '') : null;\n if (computedStyle) {\n // The computed styles are always in pixel units (good!)\n bw.top = parseInt(computedStyle.borderTopWidth || '', 10) || 0;\n bw.bottom = parseInt(computedStyle.borderBottomWidth || '', 10) || 0;\n bw.left = parseInt(computedStyle.borderLeftWidth || '', 10) || 0;\n bw.right = parseInt(computedStyle.borderRightWidth || '', 10) || 0;\n }\n } else if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n document.documentElement.currentStyle // MSIE\n ) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var currentStyle = this.div.currentStyle;\n if (currentStyle) {\n // The current styles may not be in pixel units, but assume they are (bad!)\n bw.top = parseInt(currentStyle.borderTopWidth || '', 10) || 0;\n bw.bottom = parseInt(currentStyle.borderBottomWidth || '', 10) || 0;\n bw.left = parseInt(currentStyle.borderLeftWidth || '', 10) || 0;\n bw.right = parseInt(currentStyle.borderRightWidth || '', 10) || 0;\n }\n }\n return bw;\n };\n InfoBox.prototype.onRemove = function () {\n if (this.div && this.div.parentNode) {\n this.div.parentNode.removeChild(this.div);\n this.div = null;\n }\n };\n InfoBox.prototype.draw = function () {\n this.createInfoBoxDiv();\n if (this.div) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var projection = this.getProjection();\n var pixPosition = projection.fromLatLngToDivPixel(this.position);\n if (pixPosition !== null) {\n this.div.style.left = pixPosition.x + this.pixelOffset.width + 'px';\n if (this.alignBottom) {\n this.div.style.bottom = -(pixPosition.y + this.pixelOffset.height) + 'px';\n } else {\n this.div.style.top = pixPosition.y + this.pixelOffset.height + 'px';\n }\n }\n if (this.isHidden) {\n this.div.style.visibility = 'hidden';\n } else {\n this.div.style.visibility = 'visible';\n }\n }\n };\n InfoBox.prototype.setOptions = function (options) {\n if (options === void 0) {\n options = {};\n }\n if (typeof options.boxClass !== 'undefined') {\n // Must be first\n this.boxClass = options.boxClass;\n this.setBoxStyle();\n }\n if (typeof options.boxStyle !== 'undefined') {\n // Must be second\n this.boxStyle = options.boxStyle;\n this.setBoxStyle();\n }\n if (typeof options.content !== 'undefined') {\n this.setContent(options.content);\n }\n if (typeof options.disableAutoPan !== 'undefined') {\n this.disableAutoPan = options.disableAutoPan;\n }\n if (typeof options.maxWidth !== 'undefined') {\n this.maxWidth = options.maxWidth;\n }\n if (typeof options.pixelOffset !== 'undefined') {\n this.pixelOffset = options.pixelOffset;\n }\n if (typeof options.alignBottom !== 'undefined') {\n this.alignBottom = options.alignBottom;\n }\n if (typeof options.position !== 'undefined') {\n this.setPosition(options.position);\n }\n if (typeof options.zIndex !== 'undefined') {\n this.setZIndex(options.zIndex);\n }\n if (typeof options.closeBoxMargin !== 'undefined') {\n this.closeBoxMargin = options.closeBoxMargin;\n }\n if (typeof options.closeBoxURL !== 'undefined') {\n this.closeBoxURL = options.closeBoxURL;\n }\n if (typeof options.infoBoxClearance !== 'undefined') {\n this.infoBoxClearance = options.infoBoxClearance;\n }\n if (typeof options.isHidden !== 'undefined') {\n this.isHidden = options.isHidden;\n }\n if (typeof options.visible !== 'undefined') {\n this.isHidden = !options.visible;\n }\n if (typeof options.enableEventPropagation !== 'undefined') {\n this.enableEventPropagation = options.enableEventPropagation;\n }\n if (this.div) {\n this.draw();\n }\n };\n InfoBox.prototype.setContent = function (content) {\n this.content = content;\n if (this.div) {\n if (this.closeListener) {\n google.maps.event.removeListener(this.closeListener);\n this.closeListener = null;\n }\n // Odd code required to make things work with MSIE.\n if (!this.fixedWidthSet) {\n this.div.style.width = '';\n }\n if (typeof content === 'string') {\n this.div.innerHTML = this.getCloseBoxImg() + content;\n } else {\n this.div.innerHTML = this.getCloseBoxImg();\n this.div.appendChild(content);\n }\n // Perverse code required to make things work with MSIE.\n // (Ensures the close box does, in fact, float to the right.)\n if (!this.fixedWidthSet) {\n this.div.style.width = this.div.offsetWidth + 'px';\n if (typeof content === 'string') {\n this.div.innerHTML = this.getCloseBoxImg() + content;\n } else {\n this.div.innerHTML = this.getCloseBoxImg();\n this.div.appendChild(content);\n }\n }\n this.addClickHandler();\n }\n /**\n * This event is fired when the content of the InfoBox changes.\n * @name InfoBox#content_changed\n * @event\n */\n google.maps.event.trigger(this, 'content_changed');\n };\n InfoBox.prototype.setPosition = function (latLng) {\n this.position = latLng;\n if (this.div) {\n this.draw();\n }\n /**\n * This event is fired when the position of the InfoBox changes.\n * @name InfoBox#position_changed\n * @event\n */\n google.maps.event.trigger(this, 'position_changed');\n };\n InfoBox.prototype.setVisible = function (isVisible) {\n this.isHidden = !isVisible;\n if (this.div) {\n this.div.style.visibility = this.isHidden ? 'hidden' : 'visible';\n }\n };\n InfoBox.prototype.setZIndex = function (index) {\n this.zIndex = index;\n if (this.div) {\n this.div.style.zIndex = index + '';\n }\n /**\n * This event is fired when the zIndex of the InfoBox changes.\n * @name InfoBox#zindex_changed\n * @event\n */\n google.maps.event.trigger(this, 'zindex_changed');\n };\n InfoBox.prototype.getContent = function () {\n return this.content;\n };\n InfoBox.prototype.getPosition = function () {\n return this.position;\n };\n InfoBox.prototype.getZIndex = function () {\n return this.zIndex;\n };\n InfoBox.prototype.getVisible = function () {\n var map = this.getMap();\n return typeof map === 'undefined' || map === null ? false : !this.isHidden;\n };\n InfoBox.prototype.show = function () {\n this.isHidden = false;\n if (this.div) {\n this.div.style.visibility = 'visible';\n }\n };\n InfoBox.prototype.hide = function () {\n this.isHidden = true;\n if (this.div) {\n this.div.style.visibility = 'hidden';\n }\n };\n InfoBox.prototype.open = function (map, anchor) {\n var _this = this;\n if (anchor) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.position = anchor.getPosition();\n this.moveListener = google.maps.event.addListener(anchor, 'position_changed', function () {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var position = anchor.getPosition();\n _this.setPosition(position);\n });\n this.mapListener = google.maps.event.addListener(anchor, 'map_changed', function () {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n _this.setMap(anchor.map);\n });\n }\n this.setMap(map);\n if (this.div) {\n this.panBox();\n }\n };\n InfoBox.prototype.close = function () {\n if (this.closeListener) {\n google.maps.event.removeListener(this.closeListener);\n this.closeListener = null;\n }\n if (this.eventListeners) {\n for (var _i = 0, _a = this.eventListeners; _i < _a.length; _i++) {\n var eventListener = _a[_i];\n google.maps.event.removeListener(eventListener);\n }\n this.eventListeners = null;\n }\n if (this.moveListener) {\n google.maps.event.removeListener(this.moveListener);\n this.moveListener = null;\n }\n if (this.mapListener) {\n google.maps.event.removeListener(this.mapListener);\n this.mapListener = null;\n }\n if (this.contextListener) {\n google.maps.event.removeListener(this.contextListener);\n this.contextListener = null;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.setMap(null);\n };\n InfoBox.prototype.extend = function (obj1, obj2) {\n return function applyExtend(object) {\n for (var property in object.prototype) {\n if (!Object.prototype.hasOwnProperty.call(this, property)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.prototype[property] = object.prototype[property];\n }\n }\n return this;\n }.apply(obj1, [obj2]);\n };\n return InfoBox;\n}();\nvar eventMap$d = {\n onCloseClick: 'closeclick',\n onContentChanged: 'content_changed',\n onDomReady: 'domready',\n onPositionChanged: 'position_changed',\n onZindexChanged: 'zindex_changed'\n};\nvar updaterMap$d = {\n options: function (instance, options) {\n instance.setOptions(options);\n },\n position: function (instance, position) {\n if (position instanceof google.maps.LatLng) {\n instance.setPosition(position);\n } else {\n instance.setPosition(new google.maps.LatLng(position.lat, position.lng));\n }\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n },\n zIndex: function (instance, zIndex) {\n instance.setZIndex(zIndex);\n }\n};\nvar defaultOptions$3 = {};\nfunction InfoBoxFunctional(_a) {\n var children = _a.children,\n anchor = _a.anchor,\n options = _a.options,\n position = _a.position,\n zIndex = _a.zIndex,\n onCloseClick = _a.onCloseClick,\n onDomReady = _a.onDomReady,\n onContentChanged = _a.onContentChanged,\n onPositionChanged = _a.onPositionChanged,\n onZindexChanged = _a.onZindexChanged,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n var _c = useState(null),\n closeClickListener = _c[0],\n setCloseClickListener = _c[1];\n var _d = useState(null),\n domReadyClickListener = _d[0],\n setDomReadyClickListener = _d[1];\n var _e = useState(null),\n contentChangedClickListener = _e[0],\n setContentChangedClickListener = _e[1];\n var _f = useState(null),\n positionChangedClickListener = _f[0],\n setPositionChangedClickListener = _f[1];\n var _g = useState(null),\n zIndexChangedClickListener = _g[0],\n setZindexChangedClickListener = _g[1];\n var containerElementRef = useRef(null);\n // Order does matter\n useEffect(function () {\n if (map && instance !== null) {\n instance.close();\n if (anchor) {\n instance.open(map, anchor);\n } else if (instance.getPosition()) {\n instance.open(map);\n }\n }\n }, [map, instance, anchor]);\n useEffect(function () {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (position && instance !== null) {\n var positionLatLng = position instanceof google.maps.LatLng ? position\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n : new google.maps.LatLng(position.lat, position.lng);\n instance.setPosition(positionLatLng);\n }\n }, [position]);\n useEffect(function () {\n if (typeof zIndex === 'number' && instance !== null) {\n instance.setZIndex(zIndex);\n }\n }, [zIndex]);\n useEffect(function () {\n if (instance && onCloseClick) {\n if (closeClickListener !== null) {\n google.maps.event.removeListener(closeClickListener);\n }\n setCloseClickListener(google.maps.event.addListener(instance, 'closeclick', onCloseClick));\n }\n }, [onCloseClick]);\n useEffect(function () {\n if (instance && onDomReady) {\n if (domReadyClickListener !== null) {\n google.maps.event.removeListener(domReadyClickListener);\n }\n setDomReadyClickListener(google.maps.event.addListener(instance, 'domready', onDomReady));\n }\n }, [onDomReady]);\n useEffect(function () {\n if (instance && onContentChanged) {\n if (contentChangedClickListener !== null) {\n google.maps.event.removeListener(contentChangedClickListener);\n }\n setContentChangedClickListener(google.maps.event.addListener(instance, 'content_changed', onContentChanged));\n }\n }, [onContentChanged]);\n useEffect(function () {\n if (instance && onPositionChanged) {\n if (positionChangedClickListener !== null) {\n google.maps.event.removeListener(positionChangedClickListener);\n }\n setPositionChangedClickListener(google.maps.event.addListener(instance, 'position_changed', onPositionChanged));\n }\n }, [onPositionChanged]);\n useEffect(function () {\n if (instance && onZindexChanged) {\n if (zIndexChangedClickListener !== null) {\n google.maps.event.removeListener(zIndexChangedClickListener);\n }\n setZindexChangedClickListener(google.maps.event.addListener(instance, 'zindex_changed', onZindexChanged));\n }\n }, [onZindexChanged]);\n useEffect(function () {\n if (map) {\n var _a = options || defaultOptions$3,\n position_1 = _a.position,\n infoBoxOptions = __rest$1(_a, [\"position\"]);\n var positionLatLng = void 0;\n if (position_1 && !(position_1 instanceof google.maps.LatLng)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n positionLatLng = new google.maps.LatLng(position_1.lat, position_1.lng);\n }\n var infoBox = new InfoBox(__assign(__assign({}, infoBoxOptions), positionLatLng ? {\n position: positionLatLng\n } : {}));\n containerElementRef.current = document.createElement('div');\n setInstance(infoBox);\n if (onCloseClick) {\n setCloseClickListener(google.maps.event.addListener(infoBox, 'closeclick', onCloseClick));\n }\n if (onDomReady) {\n setDomReadyClickListener(google.maps.event.addListener(infoBox, 'domready', onDomReady));\n }\n if (onContentChanged) {\n setContentChangedClickListener(google.maps.event.addListener(infoBox, 'content_changed', onContentChanged));\n }\n if (onPositionChanged) {\n setPositionChangedClickListener(google.maps.event.addListener(infoBox, 'position_changed', onPositionChanged));\n }\n if (onZindexChanged) {\n setZindexChangedClickListener(google.maps.event.addListener(infoBox, 'zindex_changed', onZindexChanged));\n }\n infoBox.setContent(containerElementRef.current);\n if (anchor) {\n infoBox.open(map, anchor);\n } else if (infoBox.getPosition()) {\n infoBox.open(map);\n } else {\n invariant$1(false, 'You must provide either an anchor or a position prop for <InfoBox>.');\n }\n if (onLoad) {\n onLoad(infoBox);\n }\n }\n return function () {\n if (instance !== null) {\n if (closeClickListener) {\n google.maps.event.removeListener(closeClickListener);\n }\n if (contentChangedClickListener) {\n google.maps.event.removeListener(contentChangedClickListener);\n }\n if (domReadyClickListener) {\n google.maps.event.removeListener(domReadyClickListener);\n }\n if (positionChangedClickListener) {\n google.maps.event.removeListener(positionChangedClickListener);\n }\n if (zIndexChangedClickListener) {\n google.maps.event.removeListener(zIndexChangedClickListener);\n }\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.close();\n }\n };\n }, []);\n return containerElementRef.current ? createPortal(Children.only(children), containerElementRef.current) : null;\n}\nmemo(InfoBoxFunctional);\n/** @class */\n(function (_super) {\n __extends(InfoBoxComponent, _super);\n function InfoBoxComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.containerElement = null;\n _this.state = {\n infoBox: null\n };\n _this.open = function (infoBox, anchor) {\n if (anchor) {\n if (_this.context !== null) {\n infoBox.open(_this.context, anchor);\n }\n } else if (infoBox.getPosition()) {\n if (_this.context !== null) {\n infoBox.open(_this.context);\n }\n } else {\n invariant$1(false, 'You must provide either an anchor or a position prop for <InfoBox>.');\n }\n };\n _this.setInfoBoxCallback = function () {\n if (_this.state.infoBox !== null && _this.containerElement !== null) {\n _this.state.infoBox.setContent(_this.containerElement);\n _this.open(_this.state.infoBox, _this.props.anchor);\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.state.infoBox);\n }\n }\n };\n return _this;\n }\n InfoBoxComponent.prototype.componentDidMount = function () {\n var _a = this.props.options || {},\n position = _a.position,\n infoBoxOptions = __rest$1(_a, [\"position\"]);\n var positionLatLng;\n if (position && !(position instanceof google.maps.LatLng)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n positionLatLng = new google.maps.LatLng(position.lat, position.lng);\n }\n var infoBox = new InfoBox(__assign(__assign({}, infoBoxOptions), positionLatLng ? {\n position: positionLatLng\n } : {}));\n this.containerElement = document.createElement('div');\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$d,\n eventMap: eventMap$d,\n prevProps: {},\n nextProps: this.props,\n instance: infoBox\n });\n this.setState({\n infoBox: infoBox\n }, this.setInfoBoxCallback);\n };\n InfoBoxComponent.prototype.componentDidUpdate = function (prevProps) {\n var infoBox = this.state.infoBox;\n if (infoBox !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$d,\n eventMap: eventMap$d,\n prevProps: prevProps,\n nextProps: this.props,\n instance: infoBox\n });\n }\n };\n InfoBoxComponent.prototype.componentWillUnmount = function () {\n var onUnmount = this.props.onUnmount;\n var infoBox = this.state.infoBox;\n if (infoBox !== null) {\n if (onUnmount) {\n onUnmount(infoBox);\n }\n unregisterEvents(this.registeredEvents);\n infoBox.close();\n }\n };\n InfoBoxComponent.prototype.render = function () {\n return this.containerElement ? createPortal(Children.only(this.props.children), this.containerElement) : null;\n };\n InfoBoxComponent.contextType = MapContext;\n return InfoBoxComponent;\n})(PureComponent);\n\n// do not edit .js files directly - edit src/index.jst\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n return true;\n }\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n if (!equal(a[key], b[key])) return false;\n }\n return true;\n }\n\n // true if both NaN, false otherwise\n return a !== a && b !== b;\n};\nvar equal = /*@__PURE__*/getDefaultExportFromCjs(fastDeepEqual);\nconst ARRAY_TYPES = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];\n\n/** @typedef {Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor} TypedArrayConstructor */\n\nconst VERSION = 1; // serialized format version\nconst HEADER_SIZE = 8;\nclass KDBush {\n /**\n * Creates an index from raw `ArrayBuffer` data.\n * @param {ArrayBuffer} data\n */\n static from(data) {\n if (!(data instanceof ArrayBuffer)) {\n throw new Error('Data must be an instance of ArrayBuffer.');\n }\n const [magic, versionAndType] = new Uint8Array(data, 0, 2);\n if (magic !== 0xdb) {\n throw new Error('Data does not appear to be in a KDBush format.');\n }\n const version = versionAndType >> 4;\n if (version !== VERSION) {\n throw new Error(`Got v${version} data when expected v${VERSION}.`);\n }\n const ArrayType = ARRAY_TYPES[versionAndType & 0x0f];\n if (!ArrayType) {\n throw new Error('Unrecognized array type.');\n }\n const [nodeSize] = new Uint16Array(data, 2, 1);\n const [numItems] = new Uint32Array(data, 4, 1);\n return new KDBush(numItems, nodeSize, ArrayType, data);\n }\n\n /**\n * Creates an index that will hold a given number of items.\n * @param {number} numItems\n * @param {number} [nodeSize=64] Size of the KD-tree node (64 by default).\n * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).\n * @param {ArrayBuffer} [data] (For internal use only)\n */\n constructor(numItems, nodeSize = 64, ArrayType = Float64Array, data) {\n if (isNaN(numItems) || numItems < 0) throw new Error(`Unpexpected numItems value: ${numItems}.`);\n this.numItems = +numItems;\n this.nodeSize = Math.min(Math.max(+nodeSize, 2), 65535);\n this.ArrayType = ArrayType;\n this.IndexArrayType = numItems < 65536 ? Uint16Array : Uint32Array;\n const arrayTypeIndex = ARRAY_TYPES.indexOf(this.ArrayType);\n const coordsByteSize = numItems * 2 * this.ArrayType.BYTES_PER_ELEMENT;\n const idsByteSize = numItems * this.IndexArrayType.BYTES_PER_ELEMENT;\n const padCoords = (8 - idsByteSize % 8) % 8;\n if (arrayTypeIndex < 0) {\n throw new Error(`Unexpected typed array class: ${ArrayType}.`);\n }\n if (data && data instanceof ArrayBuffer) {\n // reconstruct an index from a buffer\n this.data = data;\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = numItems * 2;\n this._finished = true;\n } else {\n // initialize a new index\n this.data = new ArrayBuffer(HEADER_SIZE + coordsByteSize + idsByteSize + padCoords);\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = 0;\n this._finished = false;\n\n // set header\n new Uint8Array(this.data, 0, 2).set([0xdb, (VERSION << 4) + arrayTypeIndex]);\n new Uint16Array(this.data, 2, 1)[0] = nodeSize;\n new Uint32Array(this.data, 4, 1)[0] = numItems;\n }\n }\n\n /**\n * Add a point to the index.\n * @param {number} x\n * @param {number} y\n * @returns {number} An incremental index associated with the added item (starting from `0`).\n */\n add(x, y) {\n const index = this._pos >> 1;\n this.ids[index] = index;\n this.coords[this._pos++] = x;\n this.coords[this._pos++] = y;\n return index;\n }\n\n /**\n * Perform indexing of the added points.\n */\n finish() {\n const numAdded = this._pos >> 1;\n if (numAdded !== this.numItems) {\n throw new Error(`Added ${numAdded} items when expected ${this.numItems}.`);\n }\n // kd-sort both arrays for efficient search\n sort(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0);\n this._finished = true;\n return this;\n }\n\n /**\n * Search the index for items within a given bounding box.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @returns {number[]} An array of indices correponding to the found items.\n */\n range(minX, minY, maxX, maxY) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n const {\n ids,\n coords,\n nodeSize\n } = this;\n const stack = [0, ids.length - 1, 0];\n const result = [];\n\n // recursively search for items in range in the kd-sorted arrays\n while (stack.length) {\n const axis = stack.pop() || 0;\n const right = stack.pop() || 0;\n const left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n const m = left + right >> 1;\n\n // include the middle item if it's in range\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n return result;\n }\n\n /**\n * Search the index for items within a given radius.\n * @param {number} qx\n * @param {number} qy\n * @param {number} r Query radius.\n * @returns {number[]} An array of indices correponding to the found items.\n */\n within(qx, qy, r) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n const {\n ids,\n coords,\n nodeSize\n } = this;\n const stack = [0, ids.length - 1, 0];\n const result = [];\n const r2 = r * r;\n\n // recursively search for items within radius in the kd-sorted arrays\n while (stack.length) {\n const axis = stack.pop() || 0;\n const right = stack.pop() || 0;\n const left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n const m = left + right >> 1;\n\n // include the middle item if it's in range\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n return result;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} nodeSize\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction sort(ids, coords, nodeSize, left, right, axis) {\n if (right - left <= nodeSize) return;\n const m = left + right >> 1; // middle index\n\n // sort ids and coords around the middle index so that the halves lie\n // either left/right or top/bottom correspondingly (taking turns)\n select(ids, coords, m, left, right, axis);\n\n // recursively kd-sort first half and second half on the opposite axis\n sort(ids, coords, nodeSize, left, m - 1, 1 - axis);\n sort(ids, coords, nodeSize, m + 1, right, 1 - axis);\n}\n\n/**\n * Custom Floyd-Rivest selection algorithm: sort ids and coords so that\n * [left..k-1] items are smaller than k-th item (on either x or y axis)\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} k\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction select(ids, coords, k, left, right, axis) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, axis);\n }\n const t = coords[2 * k + axis];\n let i = left;\n let j = right;\n swapItem(ids, coords, left, k);\n if (coords[2 * right + axis] > t) swapItem(ids, coords, left, right);\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + axis] < t) i++;\n while (coords[2 * j + axis] > t) j--;\n }\n if (coords[2 * left + axis] === t) swapItem(ids, coords, left, j);else {\n j++;\n swapItem(ids, coords, j, right);\n }\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} i\n * @param {number} j\n */\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\n\n/**\n * @param {InstanceType<TypedArrayConstructor>} arr\n * @param {number} i\n * @param {number} j\n */\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\n/**\n * @param {number} ax\n * @param {number} ay\n * @param {number} bx\n * @param {number} by\n */\nfunction sqDist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\nconst defaultOptions$2 = {\n minZoom: 0,\n // min zoom to generate clusters on\n maxZoom: 16,\n // max zoom level to cluster the points on\n minPoints: 2,\n // minimum points to form a cluster\n radius: 40,\n // cluster radius in pixels\n extent: 512,\n // tile extent (radius is calculated relative to it)\n nodeSize: 64,\n // size of the KD-tree leaf node, affects performance\n log: false,\n // whether to log timing info\n\n // whether to generate numeric ids for input features (in vector tiles)\n generateId: false,\n // a reduce function for calculating custom cluster properties\n reduce: null,\n // (accumulated, props) => { accumulated.sum += props.sum; }\n\n // properties to use for individual points when running the reducer\n map: props => props // props => ({sum: props.my_value})\n};\nconst fround = Math.fround || (tmp => x => {\n tmp[0] = +x;\n return tmp[0];\n})(new Float32Array(1));\nconst OFFSET_ZOOM = 2;\nconst OFFSET_ID = 3;\nconst OFFSET_PARENT = 4;\nconst OFFSET_NUM = 5;\nconst OFFSET_PROP = 6;\nclass Supercluster {\n constructor(options) {\n this.options = Object.assign(Object.create(defaultOptions$2), options);\n this.trees = new Array(this.options.maxZoom + 1);\n this.stride = this.options.reduce ? 7 : 6;\n this.clusterProps = [];\n }\n load(points) {\n const {\n log,\n minZoom,\n maxZoom\n } = this.options;\n if (log) console.time('total time');\n const timerId = `prepare ${points.length} points`;\n if (log) console.time(timerId);\n this.points = points;\n\n // generate a cluster object for each point and index input points into a KD-tree\n const data = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n if (!p.geometry) continue;\n const [lng, lat] = p.geometry.coordinates;\n const x = fround(lngX(lng));\n const y = fround(latY(lat));\n // store internal point/cluster data in flat numeric arrays for performance\n data.push(x, y,\n // projected point coordinates\n Infinity,\n // the last zoom the point was processed at\n i,\n // index of the source feature in the original input array\n -1,\n // parent cluster id\n 1 // number of points in a cluster\n );\n if (this.options.reduce) data.push(0); // noop\n }\n let tree = this.trees[maxZoom + 1] = this._createTree(data);\n if (log) console.timeEnd(timerId);\n\n // cluster points on max zoom, then cluster the results on previous zoom, etc.;\n // results in a cluster hierarchy across zoom levels\n for (let z = maxZoom; z >= minZoom; z--) {\n const now = +Date.now();\n\n // create a new set of clusters for the zoom and index them with a KD-tree\n tree = this.trees[z] = this._createTree(this._cluster(tree, z));\n if (log) console.log('z%d: %d clusters in %dms', z, tree.numItems, +Date.now() - now);\n }\n if (log) console.timeEnd('total time');\n return this;\n }\n getClusters(bbox, zoom) {\n let minLng = ((bbox[0] + 180) % 360 + 360) % 360 - 180;\n const minLat = Math.max(-90, Math.min(90, bbox[1]));\n let maxLng = bbox[2] === 180 ? 180 : ((bbox[2] + 180) % 360 + 360) % 360 - 180;\n const maxLat = Math.max(-90, Math.min(90, bbox[3]));\n if (bbox[2] - bbox[0] >= 360) {\n minLng = -180;\n maxLng = 180;\n } else if (minLng > maxLng) {\n const easternHem = this.getClusters([minLng, minLat, 180, maxLat], zoom);\n const westernHem = this.getClusters([-180, minLat, maxLng, maxLat], zoom);\n return easternHem.concat(westernHem);\n }\n const tree = this.trees[this._limitZoom(zoom)];\n const ids = tree.range(lngX(minLng), latY(maxLat), lngX(maxLng), latY(minLat));\n const data = tree.data;\n const clusters = [];\n for (const id of ids) {\n const k = this.stride * id;\n clusters.push(data[k + OFFSET_NUM] > 1 ? getClusterJSON(data, k, this.clusterProps) : this.points[data[k + OFFSET_ID]]);\n }\n return clusters;\n }\n getChildren(clusterId) {\n const originId = this._getOriginId(clusterId);\n const originZoom = this._getOriginZoom(clusterId);\n const errorMsg = 'No cluster with the specified id.';\n const tree = this.trees[originZoom];\n if (!tree) throw new Error(errorMsg);\n const data = tree.data;\n if (originId * this.stride >= data.length) throw new Error(errorMsg);\n const r = this.options.radius / (this.options.extent * Math.pow(2, originZoom - 1));\n const x = data[originId * this.stride];\n const y = data[originId * this.stride + 1];\n const ids = tree.within(x, y, r);\n const children = [];\n for (const id of ids) {\n const k = id * this.stride;\n if (data[k + OFFSET_PARENT] === clusterId) {\n children.push(data[k + OFFSET_NUM] > 1 ? getClusterJSON(data, k, this.clusterProps) : this.points[data[k + OFFSET_ID]]);\n }\n }\n if (children.length === 0) throw new Error(errorMsg);\n return children;\n }\n getLeaves(clusterId, limit, offset) {\n limit = limit || 10;\n offset = offset || 0;\n const leaves = [];\n this._appendLeaves(leaves, clusterId, limit, offset, 0);\n return leaves;\n }\n getTile(z, x, y) {\n const tree = this.trees[this._limitZoom(z)];\n const z2 = Math.pow(2, z);\n const {\n extent,\n radius\n } = this.options;\n const p = radius / extent;\n const top = (y - p) / z2;\n const bottom = (y + 1 + p) / z2;\n const tile = {\n features: []\n };\n this._addTileFeatures(tree.range((x - p) / z2, top, (x + 1 + p) / z2, bottom), tree.data, x, y, z2, tile);\n if (x === 0) {\n this._addTileFeatures(tree.range(1 - p / z2, top, 1, bottom), tree.data, z2, y, z2, tile);\n }\n if (x === z2 - 1) {\n this._addTileFeatures(tree.range(0, top, p / z2, bottom), tree.data, -1, y, z2, tile);\n }\n return tile.features.length ? tile : null;\n }\n getClusterExpansionZoom(clusterId) {\n let expansionZoom = this._getOriginZoom(clusterId) - 1;\n while (expansionZoom <= this.options.maxZoom) {\n const children = this.getChildren(clusterId);\n expansionZoom++;\n if (children.length !== 1) break;\n clusterId = children[0].properties.cluster_id;\n }\n return expansionZoom;\n }\n _appendLeaves(result, clusterId, limit, offset, skipped) {\n const children = this.getChildren(clusterId);\n for (const child of children) {\n const props = child.properties;\n if (props && props.cluster) {\n if (skipped + props.point_count <= offset) {\n // skip the whole cluster\n skipped += props.point_count;\n } else {\n // enter the cluster\n skipped = this._appendLeaves(result, props.cluster_id, limit, offset, skipped);\n // exit the cluster\n }\n } else if (skipped < offset) {\n // skip a single point\n skipped++;\n } else {\n // add a single point\n result.push(child);\n }\n if (result.length === limit) break;\n }\n return skipped;\n }\n _createTree(data) {\n const tree = new KDBush(data.length / this.stride | 0, this.options.nodeSize, Float32Array);\n for (let i = 0; i < data.length; i += this.stride) tree.add(data[i], data[i + 1]);\n tree.finish();\n tree.data = data;\n return tree;\n }\n _addTileFeatures(ids, data, x, y, z2, tile) {\n for (const i of ids) {\n const k = i * this.stride;\n const isCluster = data[k + OFFSET_NUM] > 1;\n let tags, px, py;\n if (isCluster) {\n tags = getClusterProperties(data, k, this.clusterProps);\n px = data[k];\n py = data[k + 1];\n } else {\n const p = this.points[data[k + OFFSET_ID]];\n tags = p.properties;\n const [lng, lat] = p.geometry.coordinates;\n px = lngX(lng);\n py = latY(lat);\n }\n const f = {\n type: 1,\n geometry: [[Math.round(this.options.extent * (px * z2 - x)), Math.round(this.options.extent * (py * z2 - y))]],\n tags\n };\n\n // assign id\n let id;\n if (isCluster || this.options.generateId) {\n // optionally generate id for points\n id = data[k + OFFSET_ID];\n } else {\n // keep id if already assigned\n id = this.points[data[k + OFFSET_ID]].id;\n }\n if (id !== undefined) f.id = id;\n tile.features.push(f);\n }\n }\n _limitZoom(z) {\n return Math.max(this.options.minZoom, Math.min(Math.floor(+z), this.options.maxZoom + 1));\n }\n _cluster(tree, zoom) {\n const {\n radius,\n extent,\n reduce,\n minPoints\n } = this.options;\n const r = radius / (extent * Math.pow(2, zoom));\n const data = tree.data;\n const nextData = [];\n const stride = this.stride;\n\n // loop through each point\n for (let i = 0; i < data.length; i += stride) {\n // if we've already visited the point at this zoom level, skip it\n if (data[i + OFFSET_ZOOM] <= zoom) continue;\n data[i + OFFSET_ZOOM] = zoom;\n\n // find all nearby points\n const x = data[i];\n const y = data[i + 1];\n const neighborIds = tree.within(data[i], data[i + 1], r);\n const numPointsOrigin = data[i + OFFSET_NUM];\n let numPoints = numPointsOrigin;\n\n // count the number of points in a potential cluster\n for (const neighborId of neighborIds) {\n const k = neighborId * stride;\n // filter out neighbors that are already processed\n if (data[k + OFFSET_ZOOM] > zoom) numPoints += data[k + OFFSET_NUM];\n }\n\n // if there were neighbors to merge, and there are enough points to form a cluster\n if (numPoints > numPointsOrigin && numPoints >= minPoints) {\n let wx = x * numPointsOrigin;\n let wy = y * numPointsOrigin;\n let clusterProperties;\n let clusterPropIndex = -1;\n\n // encode both zoom and point index on which the cluster originated -- offset by total length of features\n const id = ((i / stride | 0) << 5) + (zoom + 1) + this.points.length;\n for (const neighborId of neighborIds) {\n const k = neighborId * stride;\n if (data[k + OFFSET_ZOOM] <= zoom) continue;\n data[k + OFFSET_ZOOM] = zoom; // save the zoom (so it doesn't get processed twice)\n\n const numPoints2 = data[k + OFFSET_NUM];\n wx += data[k] * numPoints2; // accumulate coordinates for calculating weighted center\n wy += data[k + 1] * numPoints2;\n data[k + OFFSET_PARENT] = id;\n if (reduce) {\n if (!clusterProperties) {\n clusterProperties = this._map(data, i, true);\n clusterPropIndex = this.clusterProps.length;\n this.clusterProps.push(clusterProperties);\n }\n reduce(clusterProperties, this._map(data, k));\n }\n }\n data[i + OFFSET_PARENT] = id;\n nextData.push(wx / numPoints, wy / numPoints, Infinity, id, -1, numPoints);\n if (reduce) nextData.push(clusterPropIndex);\n } else {\n // left points as unclustered\n for (let j = 0; j < stride; j++) nextData.push(data[i + j]);\n if (numPoints > 1) {\n for (const neighborId of neighborIds) {\n const k = neighborId * stride;\n if (data[k + OFFSET_ZOOM] <= zoom) continue;\n data[k + OFFSET_ZOOM] = zoom;\n for (let j = 0; j < stride; j++) nextData.push(data[k + j]);\n }\n }\n }\n }\n return nextData;\n }\n\n // get index of the point from which the cluster originated\n _getOriginId(clusterId) {\n return clusterId - this.points.length >> 5;\n }\n\n // get zoom of the point from which the cluster originated\n _getOriginZoom(clusterId) {\n return (clusterId - this.points.length) % 32;\n }\n _map(data, i, clone) {\n if (data[i + OFFSET_NUM] > 1) {\n const props = this.clusterProps[data[i + OFFSET_PROP]];\n return clone ? Object.assign({}, props) : props;\n }\n const original = this.points[data[i + OFFSET_ID]].properties;\n const result = this.options.map(original);\n return clone && result === original ? Object.assign({}, result) : result;\n }\n}\nfunction getClusterJSON(data, i, clusterProps) {\n return {\n type: 'Feature',\n id: data[i + OFFSET_ID],\n properties: getClusterProperties(data, i, clusterProps),\n geometry: {\n type: 'Point',\n coordinates: [xLng(data[i]), yLat(data[i + 1])]\n }\n };\n}\nfunction getClusterProperties(data, i, clusterProps) {\n const count = data[i + OFFSET_NUM];\n const abbrev = count >= 10000 ? `${Math.round(count / 1000)}k` : count >= 1000 ? `${Math.round(count / 100) / 10}k` : count;\n const propIndex = data[i + OFFSET_PROP];\n const properties = propIndex === -1 ? {} : Object.assign({}, clusterProps[propIndex]);\n return Object.assign(properties, {\n cluster: true,\n cluster_id: data[i + OFFSET_ID],\n point_count: count,\n point_count_abbreviated: abbrev\n });\n}\n\n// longitude/latitude to spherical mercator in [0..1] range\nfunction lngX(lng) {\n return lng / 360 + 0.5;\n}\nfunction latY(lat) {\n const sin = Math.sin(lat * Math.PI / 180);\n const y = 0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI;\n return y < 0 ? 0 : y > 1 ? 1 : y;\n}\n\n// spherical mercator to longitude/latitude\nfunction xLng(x) {\n return (x - 0.5) * 360;\n}\nfunction yLat(y) {\n const y2 = (180 - y * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(y2)) / Math.PI - 90;\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\n/**\n * Copyright 2023 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * util class that creates a common set of convenience functions to wrap\n * shared behavior of Advanced Markers and Markers.\n */\nclass MarkerUtils {\n static isAdvancedMarkerAvailable(map) {\n return google.maps.marker && map.getMapCapabilities().isAdvancedMarkersAvailable === true;\n }\n static isAdvancedMarker(marker) {\n return google.maps.marker && marker instanceof google.maps.marker.AdvancedMarkerElement;\n }\n static setMap(marker, map) {\n if (this.isAdvancedMarker(marker)) {\n marker.map = map;\n } else {\n marker.setMap(map);\n }\n }\n static getPosition(marker) {\n // SuperClusterAlgorithm.calculate expects a LatLng instance so we fake it for Adv Markers\n if (this.isAdvancedMarker(marker)) {\n if (marker.position) {\n if (marker.position instanceof google.maps.LatLng) {\n return marker.position;\n }\n // since we can't cast to LatLngLiteral for reasons =(\n if (marker.position.lat && marker.position.lng) {\n return new google.maps.LatLng(marker.position.lat, marker.position.lng);\n }\n }\n return new google.maps.LatLng(null);\n }\n return marker.getPosition();\n }\n static getVisible(marker) {\n if (this.isAdvancedMarker(marker)) {\n /**\n * Always return true for Advanced Markers because the clusterer\n * uses getVisible as a way to count legacy markers not as an actual\n * indicator of visibility for some reason. Even when markers are hidden\n * Marker.getVisible returns `true` and this is used to set the marker count\n * on the cluster. See the behavior of Cluster.count\n */\n return true;\n }\n return marker.getVisible();\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass Cluster {\n constructor({\n markers,\n position\n }) {\n this.markers = markers;\n if (position) {\n if (position instanceof google.maps.LatLng) {\n this._position = position;\n } else {\n this._position = new google.maps.LatLng(position);\n }\n }\n }\n get bounds() {\n if (this.markers.length === 0 && !this._position) {\n return;\n }\n const bounds = new google.maps.LatLngBounds(this._position, this._position);\n for (const marker of this.markers) {\n bounds.extend(MarkerUtils.getPosition(marker));\n }\n return bounds;\n }\n get position() {\n return this._position || this.bounds.getCenter();\n }\n /**\n * Get the count of **visible** markers.\n */\n get count() {\n return this.markers.filter(m => MarkerUtils.getVisible(m)).length;\n }\n /**\n * Add a marker to the cluster.\n */\n push(marker) {\n this.markers.push(marker);\n }\n /**\n * Cleanup references and remove marker from map.\n */\n delete() {\n if (this.marker) {\n MarkerUtils.setMap(this.marker, null);\n this.marker = undefined;\n }\n this.markers.length = 0;\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @hidden\n */\nclass AbstractAlgorithm {\n constructor({\n maxZoom = 16\n }) {\n this.maxZoom = maxZoom;\n }\n /**\n * Helper function to bypass clustering based upon some map state such as\n * zoom, number of markers, etc.\n *\n * ```typescript\n * cluster({markers, map}: AlgorithmInput): Cluster[] {\n * if (shouldBypassClustering(map)) {\n * return this.noop({markers})\n * }\n * }\n * ```\n */\n noop({\n markers\n }) {\n return noop$1(markers);\n }\n}\n/**\n * @hidden\n */\nconst noop$1 = markers => {\n const clusters = markers.map(marker => new Cluster({\n position: MarkerUtils.getPosition(marker),\n markers: [marker]\n }));\n return clusters;\n};\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A very fast JavaScript algorithm for geospatial point clustering using KD trees.\n *\n * @see https://www.npmjs.com/package/supercluster for more information on options.\n */\nclass SuperClusterAlgorithm extends AbstractAlgorithm {\n constructor(_a) {\n var {\n maxZoom,\n radius = 60\n } = _a,\n options = __rest(_a, [\"maxZoom\", \"radius\"]);\n super({\n maxZoom\n });\n this.state = {\n zoom: -1\n };\n this.superCluster = new Supercluster(Object.assign({\n maxZoom: this.maxZoom,\n radius\n }, options));\n }\n calculate(input) {\n let changed = false;\n const state = {\n zoom: input.map.getZoom()\n };\n if (!equal(input.markers, this.markers)) {\n changed = true;\n // TODO use proxy to avoid copy?\n this.markers = [...input.markers];\n const points = this.markers.map(marker => {\n const position = MarkerUtils.getPosition(marker);\n const coordinates = [position.lng(), position.lat()];\n return {\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates\n },\n properties: {\n marker\n }\n };\n });\n this.superCluster.load(points);\n }\n if (!changed) {\n if (this.state.zoom <= this.maxZoom || state.zoom <= this.maxZoom) {\n changed = !equal(this.state, state);\n }\n }\n this.state = state;\n if (changed) {\n this.clusters = this.cluster(input);\n }\n return {\n clusters: this.clusters,\n changed\n };\n }\n cluster({\n map\n }) {\n return this.superCluster.getClusters([-180, -90, 180, 90], Math.round(map.getZoom())).map(feature => this.transformCluster(feature));\n }\n transformCluster({\n geometry: {\n coordinates: [lng, lat]\n },\n properties\n }) {\n if (properties.cluster) {\n return new Cluster({\n markers: this.superCluster.getLeaves(properties.cluster_id, Infinity).map(leaf => leaf.properties.marker),\n position: {\n lat,\n lng\n }\n });\n }\n const marker = properties.marker;\n return new Cluster({\n markers: [marker],\n position: MarkerUtils.getPosition(marker)\n });\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Provides statistics on all clusters in the current render cycle for use in {@link Renderer.render}.\n */\nclass ClusterStats {\n constructor(markers, clusters) {\n this.markers = {\n sum: markers.length\n };\n const clusterMarkerCounts = clusters.map(a => a.count);\n const clusterMarkerSum = clusterMarkerCounts.reduce((a, b) => a + b, 0);\n this.clusters = {\n count: clusters.length,\n markers: {\n mean: clusterMarkerSum / clusters.length,\n sum: clusterMarkerSum,\n min: Math.min(...clusterMarkerCounts),\n max: Math.max(...clusterMarkerCounts)\n }\n };\n }\n}\nclass DefaultRenderer {\n /**\n * The default render function for the library used by {@link MarkerClusterer}.\n *\n * Currently set to use the following:\n *\n * ```typescript\n * // change color if this cluster has more markers than the mean cluster\n * const color =\n * count > Math.max(10, stats.clusters.markers.mean)\n * ? \"#ff0000\"\n * : \"#0000ff\";\n *\n * // create svg url with fill color\n * const svg = window.btoa(`\n * <svg fill=\"${color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 240\">\n * <circle cx=\"120\" cy=\"120\" opacity=\".6\" r=\"70\" />\n * <circle cx=\"120\" cy=\"120\" opacity=\".3\" r=\"90\" />\n * <circle cx=\"120\" cy=\"120\" opacity=\".2\" r=\"110\" />\n * <circle cx=\"120\" cy=\"120\" opacity=\".1\" r=\"130\" />\n * </svg>`);\n *\n * // create marker using svg icon\n * return new google.maps.Marker({\n * position,\n * icon: {\n * url: `data:image/svg+xml;base64,${svg}`,\n * scaledSize: new google.maps.Size(45, 45),\n * },\n * label: {\n * text: String(count),\n * color: \"rgba(255,255,255,0.9)\",\n * fontSize: \"12px\",\n * },\n * // adjust zIndex to be above other markers\n * zIndex: 1000 + count,\n * });\n * ```\n */\n render({\n count,\n position\n }, stats, map) {\n // change color if this cluster has more markers than the mean cluster\n const color = count > Math.max(10, stats.clusters.markers.mean) ? \"#ff0000\" : \"#0000ff\";\n // create svg literal with fill color\n const svg = `<svg fill=\"${color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 240\" width=\"50\" height=\"50\">\n<circle cx=\"120\" cy=\"120\" opacity=\".6\" r=\"70\" />\n<circle cx=\"120\" cy=\"120\" opacity=\".3\" r=\"90\" />\n<circle cx=\"120\" cy=\"120\" opacity=\".2\" r=\"110\" />\n<text x=\"50%\" y=\"50%\" style=\"fill:#fff\" text-anchor=\"middle\" font-size=\"50\" dominant-baseline=\"middle\" font-family=\"roboto,arial,sans-serif\">${count}</text>\n</svg>`;\n const title = `Cluster of ${count} markers`,\n // adjust zIndex to be above other markers\n zIndex = Number(google.maps.Marker.MAX_ZINDEX) + count;\n if (MarkerUtils.isAdvancedMarkerAvailable(map)) {\n // create cluster SVG element\n const parser = new DOMParser();\n const svgEl = parser.parseFromString(svg, \"image/svg+xml\").documentElement;\n svgEl.setAttribute(\"transform\", \"translate(0 25)\");\n const clusterOptions = {\n map,\n position,\n zIndex,\n title,\n content: svgEl\n };\n return new google.maps.marker.AdvancedMarkerElement(clusterOptions);\n }\n const clusterOptions = {\n position,\n zIndex,\n title,\n icon: {\n url: `data:image/svg+xml;base64,${btoa(svg)}`,\n anchor: new google.maps.Point(25, 25)\n }\n };\n return new google.maps.Marker(clusterOptions);\n }\n}\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Extends an object's prototype by another's.\n *\n * @param type1 The Type to be extended.\n * @param type2 The Type to extend with.\n * @ignore\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extend(type1, type2) {\n /* istanbul ignore next */\n // eslint-disable-next-line prefer-const\n for (let property in type2.prototype) {\n type1.prototype[property] = type2.prototype[property];\n }\n}\n/**\n * @ignore\n */\nclass OverlayViewSafe {\n constructor() {\n // MarkerClusterer implements google.maps.OverlayView interface. We use the\n // extend function to extend MarkerClusterer with google.maps.OverlayView\n // because it might not always be available when the code is defined so we\n // look for it at the last possible moment. If it doesn't exist now then\n // there is no point going ahead :)\n extend(OverlayViewSafe, google.maps.OverlayView);\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar MarkerClustererEvents;\n(function (MarkerClustererEvents) {\n MarkerClustererEvents[\"CLUSTERING_BEGIN\"] = \"clusteringbegin\";\n MarkerClustererEvents[\"CLUSTERING_END\"] = \"clusteringend\";\n MarkerClustererEvents[\"CLUSTER_CLICK\"] = \"click\";\n})(MarkerClustererEvents || (MarkerClustererEvents = {}));\nconst defaultOnClusterClickHandler = (_, cluster, map) => {\n map.fitBounds(cluster.bounds);\n};\n/**\n * MarkerClusterer creates and manages per-zoom-level clusters for large amounts\n * of markers. See {@link MarkerClustererOptions} for more details.\n *\n */\nclass MarkerClusterer extends OverlayViewSafe {\n constructor({\n map,\n markers = [],\n algorithmOptions = {},\n algorithm = new SuperClusterAlgorithm(algorithmOptions),\n renderer = new DefaultRenderer(),\n onClusterClick = defaultOnClusterClickHandler\n }) {\n super();\n this.markers = [...markers];\n this.clusters = [];\n this.algorithm = algorithm;\n this.renderer = renderer;\n this.onClusterClick = onClusterClick;\n if (map) {\n this.setMap(map);\n }\n }\n addMarker(marker, noDraw) {\n if (this.markers.includes(marker)) {\n return;\n }\n this.markers.push(marker);\n if (!noDraw) {\n this.render();\n }\n }\n addMarkers(markers, noDraw) {\n markers.forEach(marker => {\n this.addMarker(marker, true);\n });\n if (!noDraw) {\n this.render();\n }\n }\n removeMarker(marker, noDraw) {\n const index = this.markers.indexOf(marker);\n if (index === -1) {\n // Marker is not in our list of markers, so do nothing:\n return false;\n }\n MarkerUtils.setMap(marker, null);\n this.markers.splice(index, 1); // Remove the marker from the list of managed markers\n if (!noDraw) {\n this.render();\n }\n return true;\n }\n removeMarkers(markers, noDraw) {\n let removed = false;\n markers.forEach(marker => {\n removed = this.removeMarker(marker, true) || removed;\n });\n if (removed && !noDraw) {\n this.render();\n }\n return removed;\n }\n clearMarkers(noDraw) {\n this.markers.length = 0;\n if (!noDraw) {\n this.render();\n }\n }\n /**\n * Recalculates and draws all the marker clusters.\n */\n render() {\n const map = this.getMap();\n if (map instanceof google.maps.Map && map.getProjection()) {\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTERING_BEGIN, this);\n const {\n clusters,\n changed\n } = this.algorithm.calculate({\n markers: this.markers,\n map,\n mapCanvasProjection: this.getProjection()\n });\n // Allow algorithms to return flag on whether the clusters/markers have changed.\n if (changed || changed == undefined) {\n // Accumulate the markers of the clusters composed of a single marker.\n // Those clusters directly use the marker.\n // Clusters with more than one markers use a group marker generated by a renderer.\n const singleMarker = new Set();\n for (const cluster of clusters) {\n if (cluster.markers.length == 1) {\n singleMarker.add(cluster.markers[0]);\n }\n }\n const groupMarkers = [];\n // Iterate the clusters that are currently rendered.\n for (const cluster of this.clusters) {\n if (cluster.marker == null) {\n continue;\n }\n if (cluster.markers.length == 1) {\n if (!singleMarker.has(cluster.marker)) {\n // The marker:\n // - was previously rendered because it is from a cluster with 1 marker,\n // - should no more be rendered as it is not in singleMarker.\n MarkerUtils.setMap(cluster.marker, null);\n }\n } else {\n // Delay the removal of old group markers to avoid flickering.\n groupMarkers.push(cluster.marker);\n }\n }\n this.clusters = clusters;\n this.renderClusters();\n // Delayed removal of the markers of the former groups.\n requestAnimationFrame(() => groupMarkers.forEach(marker => MarkerUtils.setMap(marker, null)));\n }\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTERING_END, this);\n }\n }\n onAdd() {\n this.idleListener = this.getMap().addListener(\"idle\", this.render.bind(this));\n this.render();\n }\n onRemove() {\n google.maps.event.removeListener(this.idleListener);\n this.reset();\n }\n reset() {\n this.markers.forEach(marker => MarkerUtils.setMap(marker, null));\n this.clusters.forEach(cluster => cluster.delete());\n this.clusters = [];\n }\n renderClusters() {\n // Generate stats to pass to renderers.\n const stats = new ClusterStats(this.markers, this.clusters);\n const map = this.getMap();\n this.clusters.forEach(cluster => {\n if (cluster.markers.length === 1) {\n cluster.marker = cluster.markers[0];\n } else {\n // Generate the marker to represent the group.\n cluster.marker = this.renderer.render(cluster, stats, map);\n // Make sure all individual markers are removed from the map.\n cluster.markers.forEach(marker => MarkerUtils.setMap(marker, null));\n if (this.onClusterClick) {\n cluster.marker.addListener(\"click\", /* istanbul ignore next */\n event => {\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTER_CLICK, cluster);\n this.onClusterClick(event, cluster, map);\n });\n }\n }\n MarkerUtils.setMap(cluster.marker, map);\n });\n }\n}\nfunction useGoogleMarkerClusterer(options) {\n var map = useGoogleMap();\n var _a = useState(null),\n markerClusterer = _a[0],\n setMarkerClusterer = _a[1];\n useEffect(function () {\n if (map && markerClusterer === null) {\n var markerCluster = new MarkerClusterer(__assign(__assign({}, options), {\n map: map\n }));\n setMarkerClusterer(markerCluster);\n }\n }, [map]);\n return markerClusterer;\n}\n/** Wrapper around [@googlemaps/markerclusterer](https://github.com/googlemaps/js-markerclusterer)\n *\n * Accepts {@link MarkerClustererOptionsSubset} which is a subset of {@link MarkerClustererOptions}\n */\nfunction GoogleMarkerClusterer(_a) {\n var children = _a.children,\n options = _a.options;\n var markerClusterer = useGoogleMarkerClusterer(options);\n return markerClusterer !== null ? children(markerClusterer) : null;\n}\nmemo(GoogleMarkerClusterer);\nvar eventMap$c = {\n onCloseClick: 'closeclick',\n onContentChanged: 'content_changed',\n onDomReady: 'domready',\n onPositionChanged: 'position_changed',\n onZindexChanged: 'zindex_changed'\n};\nvar updaterMap$c = {\n options: function (instance, options) {\n instance.setOptions(options);\n },\n position: function (instance, position) {\n instance.setPosition(position);\n },\n zIndex: function (instance, zIndex) {\n instance.setZIndex(zIndex);\n }\n};\nfunction InfoWindowFunctional(_a) {\n var children = _a.children,\n anchor = _a.anchor,\n options = _a.options,\n position = _a.position,\n zIndex = _a.zIndex,\n onCloseClick = _a.onCloseClick,\n onDomReady = _a.onDomReady,\n onContentChanged = _a.onContentChanged,\n onPositionChanged = _a.onPositionChanged,\n onZindexChanged = _a.onZindexChanged,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n var _c = useState(null),\n closeclickListener = _c[0],\n setCloseClickListener = _c[1];\n var _d = useState(null),\n domreadyclickListener = _d[0],\n setDomReadyClickListener = _d[1];\n var _e = useState(null),\n contentchangedclickListener = _e[0],\n setContentChangedClickListener = _e[1];\n var _f = useState(null),\n positionchangedclickListener = _f[0],\n setPositionChangedClickListener = _f[1];\n var _g = useState(null),\n zindexchangedclickListener = _g[0],\n setZindexChangedClickListener = _g[1];\n var containerElementRef = useRef(null);\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.close();\n if (anchor) {\n instance.open(map, anchor);\n } else if (instance.getPosition()) {\n instance.open(map);\n }\n }\n }, [map, instance, anchor]);\n useEffect(function () {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (position && instance !== null) {\n instance.setPosition(position);\n }\n }, [position]);\n useEffect(function () {\n if (typeof zIndex === 'number' && instance !== null) {\n instance.setZIndex(zIndex);\n }\n }, [zIndex]);\n useEffect(function () {\n if (instance && onCloseClick) {\n if (closeclickListener !== null) {\n google.maps.event.removeListener(closeclickListener);\n }\n setCloseClickListener(google.maps.event.addListener(instance, 'closeclick', onCloseClick));\n }\n }, [onCloseClick]);\n useEffect(function () {\n if (instance && onDomReady) {\n if (domreadyclickListener !== null) {\n google.maps.event.removeListener(domreadyclickListener);\n }\n setDomReadyClickListener(google.maps.event.addListener(instance, 'domready', onDomReady));\n }\n }, [onDomReady]);\n useEffect(function () {\n if (instance && onContentChanged) {\n if (contentchangedclickListener !== null) {\n google.maps.event.removeListener(contentchangedclickListener);\n }\n setContentChangedClickListener(google.maps.event.addListener(instance, 'content_changed', onContentChanged));\n }\n }, [onContentChanged]);\n useEffect(function () {\n if (instance && onPositionChanged) {\n if (positionchangedclickListener !== null) {\n google.maps.event.removeListener(positionchangedclickListener);\n }\n setPositionChangedClickListener(google.maps.event.addListener(instance, 'position_changed', onPositionChanged));\n }\n }, [onPositionChanged]);\n useEffect(function () {\n if (instance && onZindexChanged) {\n if (zindexchangedclickListener !== null) {\n google.maps.event.removeListener(zindexchangedclickListener);\n }\n setZindexChangedClickListener(google.maps.event.addListener(instance, 'zindex_changed', onZindexChanged));\n }\n }, [onZindexChanged]);\n useEffect(function () {\n var infoWindow = new google.maps.InfoWindow(__assign({}, options || {}));\n setInstance(infoWindow);\n containerElementRef.current = document.createElement('div');\n if (onCloseClick) {\n setCloseClickListener(google.maps.event.addListener(infoWindow, 'closeclick', onCloseClick));\n }\n if (onDomReady) {\n setDomReadyClickListener(google.maps.event.addListener(infoWindow, 'domready', onDomReady));\n }\n if (onContentChanged) {\n setContentChangedClickListener(google.maps.event.addListener(infoWindow, 'content_changed', onContentChanged));\n }\n if (onPositionChanged) {\n setPositionChangedClickListener(google.maps.event.addListener(infoWindow, 'position_changed', onPositionChanged));\n }\n if (onZindexChanged) {\n setZindexChangedClickListener(google.maps.event.addListener(infoWindow, 'zindex_changed', onZindexChanged));\n }\n infoWindow.setContent(containerElementRef.current);\n if (position) {\n infoWindow.setPosition(position);\n }\n if (zIndex) {\n infoWindow.setZIndex(zIndex);\n }\n if (anchor) {\n infoWindow.open(map, anchor);\n } else if (infoWindow.getPosition()) {\n infoWindow.open(map);\n } else {\n invariant$1(false, \"You must provide either an anchor (typically render it inside a <Marker>) or a position props for <InfoWindow>.\");\n }\n if (onLoad) {\n onLoad(infoWindow);\n }\n return function () {\n if (closeclickListener) {\n google.maps.event.removeListener(closeclickListener);\n }\n if (contentchangedclickListener) {\n google.maps.event.removeListener(contentchangedclickListener);\n }\n if (domreadyclickListener) {\n google.maps.event.removeListener(domreadyclickListener);\n }\n if (positionchangedclickListener) {\n google.maps.event.removeListener(positionchangedclickListener);\n }\n if (zindexchangedclickListener) {\n google.maps.event.removeListener(zindexchangedclickListener);\n }\n if (onUnmount) {\n onUnmount(infoWindow);\n }\n infoWindow.close();\n };\n }, []);\n return containerElementRef.current ? createPortal(Children.only(children), containerElementRef.current) : null;\n}\nvar InfoWindowF = memo(InfoWindowFunctional);\nvar InfoWindow = /** @class */function (_super) {\n __extends(InfoWindow, _super);\n function InfoWindow() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.containerElement = null;\n _this.state = {\n infoWindow: null\n };\n _this.open = function (infoWindow, anchor) {\n if (anchor) {\n infoWindow.open(_this.context, anchor);\n } else if (infoWindow.getPosition()) {\n infoWindow.open(_this.context);\n } else {\n invariant$1(false, \"You must provide either an anchor (typically render it inside a <Marker>) or a position props for <InfoWindow>.\");\n }\n };\n _this.setInfoWindowCallback = function () {\n if (_this.state.infoWindow !== null && _this.containerElement !== null) {\n _this.state.infoWindow.setContent(_this.containerElement);\n _this.open(_this.state.infoWindow, _this.props.anchor);\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.state.infoWindow);\n }\n }\n };\n return _this;\n }\n InfoWindow.prototype.componentDidMount = function () {\n var infoWindow = new google.maps.InfoWindow(__assign({}, this.props.options || {}));\n this.containerElement = document.createElement('div');\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$c,\n eventMap: eventMap$c,\n prevProps: {},\n nextProps: this.props,\n instance: infoWindow\n });\n this.setState(function () {\n return {\n infoWindow: infoWindow\n };\n }, this.setInfoWindowCallback);\n };\n InfoWindow.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.infoWindow !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$c,\n eventMap: eventMap$c,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.infoWindow\n });\n }\n };\n InfoWindow.prototype.componentWillUnmount = function () {\n if (this.state.infoWindow !== null) {\n unregisterEvents(this.registeredEvents);\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.infoWindow);\n }\n this.state.infoWindow.close();\n }\n };\n InfoWindow.prototype.render = function () {\n return this.containerElement ? createPortal(Children.only(this.props.children), this.containerElement) : null;\n };\n InfoWindow.contextType = MapContext;\n return InfoWindow;\n}(PureComponent);\nvar eventMap$b = {\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick'\n};\nvar updaterMap$b = {\n draggable: function (instance, draggable) {\n instance.setDraggable(draggable);\n },\n editable: function (instance, editable) {\n instance.setEditable(editable);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n path: function (instance, path) {\n instance.setPath(path);\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n }\n};\nvar defaultOptions$1 = {};\nfunction PolylineFunctional(_a) {\n var options = _a.options,\n draggable = _a.draggable,\n editable = _a.editable,\n visible = _a.visible,\n path = _a.path,\n onDblClick = _a.onDblClick,\n onDragEnd = _a.onDragEnd,\n onDragStart = _a.onDragStart,\n onMouseDown = _a.onMouseDown,\n onMouseMove = _a.onMouseMove,\n onMouseOut = _a.onMouseOut,\n onMouseOver = _a.onMouseOver,\n onMouseUp = _a.onMouseUp,\n onRightClick = _a.onRightClick,\n onClick = _a.onClick,\n onDrag = _a.onDrag,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n var _c = useState(null),\n dblclickListener = _c[0],\n setDblclickListener = _c[1];\n var _d = useState(null),\n dragendListener = _d[0],\n setDragendListener = _d[1];\n var _e = useState(null),\n dragstartListener = _e[0],\n setDragstartListener = _e[1];\n var _f = useState(null),\n mousedownListener = _f[0],\n setMousedownListener = _f[1];\n var _g = useState(null),\n mousemoveListener = _g[0],\n setMousemoveListener = _g[1];\n var _h = useState(null),\n mouseoutListener = _h[0],\n setMouseoutListener = _h[1];\n var _j = useState(null),\n mouseoverListener = _j[0],\n setMouseoverListener = _j[1];\n var _k = useState(null),\n mouseupListener = _k[0],\n setMouseupListener = _k[1];\n var _l = useState(null),\n rightclickListener = _l[0],\n setRightclickListener = _l[1];\n var _m = useState(null),\n clickListener = _m[0],\n setClickListener = _m[1];\n var _o = useState(null),\n dragListener = _o[0],\n setDragListener = _o[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(function () {\n if (typeof editable !== 'undefined' && instance !== null) {\n instance.setEditable(editable);\n }\n }, [instance, editable]);\n useEffect(function () {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(function () {\n if (typeof path !== 'undefined' && instance !== null) {\n instance.setPath(path);\n }\n }, [instance, path]);\n useEffect(function () {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(function () {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(function () {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(function () {\n var polyline = new google.maps.Polyline(__assign(__assign({}, options || defaultOptions$1), {\n map: map\n }));\n if (path) {\n polyline.setPath(path);\n }\n if (typeof visible !== 'undefined') {\n polyline.setVisible(visible);\n }\n if (typeof editable !== 'undefined') {\n polyline.setEditable(editable);\n }\n if (typeof draggable !== 'undefined') {\n polyline.setDraggable(draggable);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(polyline, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(polyline, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(polyline, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(polyline, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(polyline, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(polyline, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(polyline, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(polyline, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(polyline, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(polyline, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(polyline, 'drag', onDrag));\n }\n setInstance(polyline);\n if (onLoad) {\n onLoad(polyline);\n }\n return function () {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (onUnmount) {\n onUnmount(polyline);\n }\n polyline.setMap(null);\n };\n }, []);\n return null;\n}\nmemo(PolylineFunctional);\n/** @class */\n(function (_super) {\n __extends(Polyline, _super);\n function Polyline() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n polyline: null\n };\n _this.setPolylineCallback = function () {\n if (_this.state.polyline !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.polyline);\n }\n };\n return _this;\n }\n Polyline.prototype.componentDidMount = function () {\n var polyline = new google.maps.Polyline(__assign(__assign({}, this.props.options || {}), {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$b,\n eventMap: eventMap$b,\n prevProps: {},\n nextProps: this.props,\n instance: polyline\n });\n this.setState(function setPolyline() {\n return {\n polyline: polyline\n };\n }, this.setPolylineCallback);\n };\n Polyline.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.polyline !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$b,\n eventMap: eventMap$b,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.polyline\n });\n }\n };\n Polyline.prototype.componentWillUnmount = function () {\n if (this.state.polyline !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.polyline);\n }\n unregisterEvents(this.registeredEvents);\n this.state.polyline.setMap(null);\n }\n };\n Polyline.prototype.render = function () {\n return null;\n };\n Polyline.contextType = MapContext;\n return Polyline;\n})(PureComponent);\nvar eventMap$a = {\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick'\n};\nvar updaterMap$a = {\n draggable: function (instance, draggable) {\n instance.setDraggable(draggable);\n },\n editable: function (instance, editable) {\n instance.setEditable(editable);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n path: function (instance, path) {\n instance.setPath(path);\n },\n paths: function (instance, paths) {\n instance.setPaths(paths);\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n }\n};\nfunction PolygonFunctional(_a) {\n var options = _a.options,\n draggable = _a.draggable,\n editable = _a.editable,\n visible = _a.visible,\n path = _a.path,\n paths = _a.paths,\n onDblClick = _a.onDblClick,\n onDragEnd = _a.onDragEnd,\n onDragStart = _a.onDragStart,\n onMouseDown = _a.onMouseDown,\n onMouseMove = _a.onMouseMove,\n onMouseOut = _a.onMouseOut,\n onMouseOver = _a.onMouseOver,\n onMouseUp = _a.onMouseUp,\n onRightClick = _a.onRightClick,\n onClick = _a.onClick,\n onDrag = _a.onDrag,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount,\n onEdit = _a.onEdit;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n var _c = useState(null),\n dblclickListener = _c[0],\n setDblclickListener = _c[1];\n var _d = useState(null),\n dragendListener = _d[0],\n setDragendListener = _d[1];\n var _e = useState(null),\n dragstartListener = _e[0],\n setDragstartListener = _e[1];\n var _f = useState(null),\n mousedownListener = _f[0],\n setMousedownListener = _f[1];\n var _g = useState(null),\n mousemoveListener = _g[0],\n setMousemoveListener = _g[1];\n var _h = useState(null),\n mouseoutListener = _h[0],\n setMouseoutListener = _h[1];\n var _j = useState(null),\n mouseoverListener = _j[0],\n setMouseoverListener = _j[1];\n var _k = useState(null),\n mouseupListener = _k[0],\n setMouseupListener = _k[1];\n var _l = useState(null),\n rightclickListener = _l[0],\n setRightclickListener = _l[1];\n var _m = useState(null),\n clickListener = _m[0],\n setClickListener = _m[1];\n var _o = useState(null),\n dragListener = _o[0],\n setDragListener = _o[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(function () {\n if (typeof editable !== 'undefined' && instance !== null) {\n instance.setEditable(editable);\n }\n }, [instance, editable]);\n useEffect(function () {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(function () {\n if (typeof path !== 'undefined' && instance !== null) {\n instance.setPath(path);\n }\n }, [instance, path]);\n useEffect(function () {\n if (typeof paths !== 'undefined' && instance !== null) {\n instance.setPaths(paths);\n }\n }, [instance, paths]);\n useEffect(function () {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (instance) {\n google.maps.event.addListener(instance.getPath(), 'insert_at', function () {\n onEdit === null || onEdit === void 0 ? void 0 : onEdit(instance);\n });\n google.maps.event.addListener(instance.getPath(), 'set_at', function () {\n onEdit === null || onEdit === void 0 ? void 0 : onEdit(instance);\n });\n }\n }, [instance, onEdit]);\n useEffect(function () {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(function () {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(function () {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(function () {\n var polygon = new google.maps.Polygon(__assign(__assign({}, options || {}), {\n map: map\n }));\n if (path) {\n polygon.setPath(path);\n }\n if (paths) {\n polygon.setPaths(paths);\n }\n if (typeof visible !== 'undefined') {\n polygon.setVisible(visible);\n }\n if (typeof editable !== 'undefined') {\n polygon.setEditable(editable);\n }\n if (typeof draggable !== 'undefined') {\n polygon.setDraggable(draggable);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(polygon, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(polygon, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(polygon, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(polygon, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(polygon, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(polygon, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(polygon, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(polygon, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(polygon, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(polygon, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(polygon, 'drag', onDrag));\n }\n setInstance(polygon);\n if (onLoad) {\n onLoad(polygon);\n }\n return function () {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (onUnmount) {\n onUnmount(polygon);\n }\n polygon.setMap(null);\n };\n }, []);\n return null;\n}\nmemo(PolygonFunctional);\n/** @class */\n(function (_super) {\n __extends(Polygon, _super);\n function Polygon() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n polygon: null\n };\n _this.setPolygonCallback = function () {\n if (_this.state.polygon !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.polygon);\n }\n };\n return _this;\n }\n Polygon.prototype.componentDidMount = function () {\n var polygon = new google.maps.Polygon(__assign(__assign({}, this.props.options || {}), {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$a,\n eventMap: eventMap$a,\n prevProps: {},\n nextProps: this.props,\n instance: polygon\n });\n this.setState(function setPolygon() {\n return {\n polygon: polygon\n };\n }, this.setPolygonCallback);\n };\n Polygon.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.polygon !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$a,\n eventMap: eventMap$a,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.polygon\n });\n }\n };\n Polygon.prototype.componentWillUnmount = function () {\n if (this.state.polygon !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.polygon);\n }\n unregisterEvents(this.registeredEvents);\n this.state.polygon && this.state.polygon.setMap(null);\n }\n };\n Polygon.prototype.render = function () {\n return null;\n };\n Polygon.contextType = MapContext;\n return Polygon;\n})(PureComponent);\nvar eventMap$9 = {\n onBoundsChanged: 'bounds_changed',\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick'\n};\nvar updaterMap$9 = {\n bounds: function (instance, bounds) {\n instance.setBounds(bounds);\n },\n draggable: function (instance, draggable) {\n instance.setDraggable(draggable);\n },\n editable: function (instance, editable) {\n instance.setEditable(editable);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n }\n};\nfunction RectangleFunctional(_a) {\n var options = _a.options,\n bounds = _a.bounds,\n draggable = _a.draggable,\n editable = _a.editable,\n visible = _a.visible,\n onDblClick = _a.onDblClick,\n onDragEnd = _a.onDragEnd,\n onDragStart = _a.onDragStart,\n onMouseDown = _a.onMouseDown,\n onMouseMove = _a.onMouseMove,\n onMouseOut = _a.onMouseOut,\n onMouseOver = _a.onMouseOver,\n onMouseUp = _a.onMouseUp,\n onRightClick = _a.onRightClick,\n onClick = _a.onClick,\n onDrag = _a.onDrag,\n onBoundsChanged = _a.onBoundsChanged,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n var _c = useState(null),\n dblclickListener = _c[0],\n setDblclickListener = _c[1];\n var _d = useState(null),\n dragendListener = _d[0],\n setDragendListener = _d[1];\n var _e = useState(null),\n dragstartListener = _e[0],\n setDragstartListener = _e[1];\n var _f = useState(null),\n mousedownListener = _f[0],\n setMousedownListener = _f[1];\n var _g = useState(null),\n mousemoveListener = _g[0],\n setMousemoveListener = _g[1];\n var _h = useState(null),\n mouseoutListener = _h[0],\n setMouseoutListener = _h[1];\n var _j = useState(null),\n mouseoverListener = _j[0],\n setMouseoverListener = _j[1];\n var _k = useState(null),\n mouseupListener = _k[0],\n setMouseupListener = _k[1];\n var _l = useState(null),\n rightClickListener = _l[0],\n setRightClickListener = _l[1];\n var _m = useState(null),\n clickListener = _m[0],\n setClickListener = _m[1];\n var _o = useState(null),\n dragListener = _o[0],\n setDragListener = _o[1];\n var _p = useState(null),\n boundsChangedListener = _p[0],\n setBoundsChangedListener = _p[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(function () {\n if (typeof editable !== 'undefined' && instance !== null) {\n instance.setEditable(editable);\n }\n }, [instance, editable]);\n useEffect(function () {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(function () {\n if (typeof bounds !== 'undefined' && instance !== null) {\n instance.setBounds(bounds);\n }\n }, [instance, bounds]);\n useEffect(function () {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(function () {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(function () {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (instance && onRightClick) {\n if (rightClickListener !== null) {\n google.maps.event.removeListener(rightClickListener);\n }\n setRightClickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(function () {\n if (instance && onBoundsChanged) {\n if (boundsChangedListener !== null) {\n google.maps.event.removeListener(boundsChangedListener);\n }\n setBoundsChangedListener(google.maps.event.addListener(instance, 'bounds_changed', onBoundsChanged));\n }\n }, [onBoundsChanged]);\n useEffect(function () {\n var rectangle = new google.maps.Rectangle(__assign(__assign({}, options || {}), {\n map: map\n }));\n if (typeof visible !== 'undefined') {\n rectangle.setVisible(visible);\n }\n if (typeof editable !== 'undefined') {\n rectangle.setEditable(editable);\n }\n if (typeof draggable !== 'undefined') {\n rectangle.setDraggable(draggable);\n }\n if (typeof bounds !== 'undefined') {\n rectangle.setBounds(bounds);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(rectangle, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(rectangle, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(rectangle, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(rectangle, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(rectangle, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(rectangle, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(rectangle, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(rectangle, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightClickListener(google.maps.event.addListener(rectangle, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(rectangle, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(rectangle, 'drag', onDrag));\n }\n if (onBoundsChanged) {\n setBoundsChangedListener(google.maps.event.addListener(rectangle, 'bounds_changed', onBoundsChanged));\n }\n setInstance(rectangle);\n if (onLoad) {\n onLoad(rectangle);\n }\n return function () {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightClickListener !== null) {\n google.maps.event.removeListener(rightClickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n if (boundsChangedListener !== null) {\n google.maps.event.removeListener(boundsChangedListener);\n }\n if (onUnmount) {\n onUnmount(rectangle);\n }\n rectangle.setMap(null);\n };\n }, []);\n return null;\n}\nmemo(RectangleFunctional);\n/** @class */\n(function (_super) {\n __extends(Rectangle, _super);\n function Rectangle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n rectangle: null\n };\n _this.setRectangleCallback = function () {\n if (_this.state.rectangle !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.rectangle);\n }\n };\n return _this;\n }\n Rectangle.prototype.componentDidMount = function () {\n var rectangle = new google.maps.Rectangle(__assign(__assign({}, this.props.options || {}), {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$9,\n eventMap: eventMap$9,\n prevProps: {},\n nextProps: this.props,\n instance: rectangle\n });\n this.setState(function setRectangle() {\n return {\n rectangle: rectangle\n };\n }, this.setRectangleCallback);\n };\n Rectangle.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.rectangle !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$9,\n eventMap: eventMap$9,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.rectangle\n });\n }\n };\n Rectangle.prototype.componentWillUnmount = function () {\n if (this.state.rectangle !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.rectangle);\n }\n unregisterEvents(this.registeredEvents);\n this.state.rectangle.setMap(null);\n }\n };\n Rectangle.prototype.render = function () {\n return null;\n };\n Rectangle.contextType = MapContext;\n return Rectangle;\n})(PureComponent);\nvar eventMap$8 = {\n onCenterChanged: 'center_changed',\n onRadiusChanged: 'radius_changed',\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick'\n};\nvar updaterMap$8 = {\n center: function (instance, center) {\n instance.setCenter(center);\n },\n draggable: function (instance, draggable) {\n instance.setDraggable(draggable);\n },\n editable: function (instance, editable) {\n instance.setEditable(editable);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n radius: function (instance, radius) {\n instance.setRadius(radius);\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n }\n};\nvar defaultOptions = {};\nfunction CircleFunctional(_a) {\n var options = _a.options,\n center = _a.center,\n radius = _a.radius,\n draggable = _a.draggable,\n editable = _a.editable,\n visible = _a.visible,\n onDblClick = _a.onDblClick,\n onDragEnd = _a.onDragEnd,\n onDragStart = _a.onDragStart,\n onMouseDown = _a.onMouseDown,\n onMouseMove = _a.onMouseMove,\n onMouseOut = _a.onMouseOut,\n onMouseOver = _a.onMouseOver,\n onMouseUp = _a.onMouseUp,\n onRightClick = _a.onRightClick,\n onClick = _a.onClick,\n onDrag = _a.onDrag,\n onCenterChanged = _a.onCenterChanged,\n onRadiusChanged = _a.onRadiusChanged,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n var _c = useState(null),\n dblclickListener = _c[0],\n setDblclickListener = _c[1];\n var _d = useState(null),\n dragendListener = _d[0],\n setDragendListener = _d[1];\n var _e = useState(null),\n dragstartListener = _e[0],\n setDragstartListener = _e[1];\n var _f = useState(null),\n mousedownListener = _f[0],\n setMousedownListener = _f[1];\n var _g = useState(null),\n mousemoveListener = _g[0],\n setMousemoveListener = _g[1];\n var _h = useState(null),\n mouseoutListener = _h[0],\n setMouseoutListener = _h[1];\n var _j = useState(null),\n mouseoverListener = _j[0],\n setMouseoverListener = _j[1];\n var _k = useState(null),\n mouseupListener = _k[0],\n setMouseupListener = _k[1];\n var _l = useState(null),\n rightclickListener = _l[0],\n setRightclickListener = _l[1];\n var _m = useState(null),\n clickListener = _m[0],\n setClickListener = _m[1];\n var _o = useState(null),\n dragListener = _o[0],\n setDragListener = _o[1];\n var _p = useState(null),\n centerChangedListener = _p[0],\n setCenterChangedListener = _p[1];\n var _q = useState(null),\n radiusChangedListener = _q[0],\n setRadiusChangedListener = _q[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(function () {\n if (typeof editable !== 'undefined' && instance !== null) {\n instance.setEditable(editable);\n }\n }, [instance, editable]);\n useEffect(function () {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(function () {\n if (typeof radius === 'number' && instance !== null) {\n instance.setRadius(radius);\n }\n }, [instance, radius]);\n useEffect(function () {\n if (typeof center !== 'undefined' && instance !== null) {\n instance.setCenter(center);\n }\n }, [instance, center]);\n useEffect(function () {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(function () {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(function () {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(function () {\n if (instance && onCenterChanged) {\n if (centerChangedListener !== null) {\n google.maps.event.removeListener(centerChangedListener);\n }\n setCenterChangedListener(google.maps.event.addListener(instance, 'center_changed', onCenterChanged));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onRadiusChanged) {\n if (radiusChangedListener !== null) {\n google.maps.event.removeListener(radiusChangedListener);\n }\n setRadiusChangedListener(google.maps.event.addListener(instance, 'radius_changed', onRadiusChanged));\n }\n }, [onRadiusChanged]);\n useEffect(function () {\n var circle = new google.maps.Circle(__assign(__assign({}, options || defaultOptions), {\n map: map\n }));\n if (typeof radius === 'number') {\n circle.setRadius(radius);\n }\n if (typeof center !== 'undefined') {\n circle.setCenter(center);\n }\n if (typeof radius === 'number') {\n circle.setRadius(radius);\n }\n if (typeof visible !== 'undefined') {\n circle.setVisible(visible);\n }\n if (typeof editable !== 'undefined') {\n circle.setEditable(editable);\n }\n if (typeof draggable !== 'undefined') {\n circle.setDraggable(draggable);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(circle, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(circle, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(circle, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(circle, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(circle, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(circle, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(circle, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(circle, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(circle, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(circle, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(circle, 'drag', onDrag));\n }\n if (onCenterChanged) {\n setCenterChangedListener(google.maps.event.addListener(circle, 'center_changed', onCenterChanged));\n }\n if (onRadiusChanged) {\n setRadiusChangedListener(google.maps.event.addListener(circle, 'radius_changed', onRadiusChanged));\n }\n setInstance(circle);\n if (onLoad) {\n onLoad(circle);\n }\n return function () {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (centerChangedListener !== null) {\n google.maps.event.removeListener(centerChangedListener);\n }\n if (radiusChangedListener !== null) {\n google.maps.event.removeListener(radiusChangedListener);\n }\n if (onUnmount) {\n onUnmount(circle);\n }\n circle.setMap(null);\n };\n }, []);\n return null;\n}\nmemo(CircleFunctional);\n/** @class */\n(function (_super) {\n __extends(Circle, _super);\n function Circle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n circle: null\n };\n _this.setCircleCallback = function () {\n if (_this.state.circle !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.circle);\n }\n };\n return _this;\n }\n Circle.prototype.componentDidMount = function () {\n var circle = new google.maps.Circle(__assign(__assign({}, this.props.options || {}), {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$8,\n eventMap: eventMap$8,\n prevProps: {},\n nextProps: this.props,\n instance: circle\n });\n this.setState(function setCircle() {\n return {\n circle: circle\n };\n }, this.setCircleCallback);\n };\n Circle.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.circle !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$8,\n eventMap: eventMap$8,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.circle\n });\n }\n };\n Circle.prototype.componentWillUnmount = function () {\n var _a;\n if (this.state.circle !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.circle);\n }\n unregisterEvents(this.registeredEvents);\n (_a = this.state.circle) === null || _a === void 0 ? void 0 : _a.setMap(null);\n }\n };\n Circle.prototype.render = function () {\n return null;\n };\n Circle.contextType = MapContext;\n return Circle;\n})(PureComponent);\nvar eventMap$7 = {\n onClick: 'click',\n onDblClick: 'dblclick',\n onMouseDown: 'mousedown',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n onAddFeature: 'addfeature',\n onRemoveFeature: 'removefeature',\n onRemoveProperty: 'removeproperty',\n onSetGeometry: 'setgeometry',\n onSetProperty: 'setproperty'\n};\nvar updaterMap$7 = {\n add: function (instance, feature) {\n instance.add(feature);\n },\n addgeojson: function (instance, geojson, options) {\n instance.addGeoJson(geojson, options);\n },\n contains: function (instance, feature) {\n instance.contains(feature);\n },\n foreach: function (instance, callback) {\n instance.forEach(callback);\n },\n loadgeojson: function (instance, url, options, callback) {\n instance.loadGeoJson(url, options, callback);\n },\n overridestyle: function (instance, feature, style) {\n instance.overrideStyle(feature, style);\n },\n remove: function (instance, feature) {\n instance.remove(feature);\n },\n revertstyle: function (instance, feature) {\n instance.revertStyle(feature);\n },\n controlposition: function (instance, controlPosition) {\n instance.setControlPosition(controlPosition);\n },\n controls: function (instance, controls) {\n instance.setControls(controls);\n },\n drawingmode: function (instance, mode) {\n instance.setDrawingMode(mode);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n style: function (instance, style) {\n instance.setStyle(style);\n },\n togeojson: function (instance, callback) {\n instance.toGeoJson(callback);\n }\n};\nfunction DataFunctional(_a) {\n var options = _a.options,\n onClick = _a.onClick,\n onDblClick = _a.onDblClick,\n onMouseDown = _a.onMouseDown,\n onMouseMove = _a.onMouseMove,\n onMouseOut = _a.onMouseOut,\n onMouseOver = _a.onMouseOver,\n onMouseUp = _a.onMouseUp,\n onRightClick = _a.onRightClick,\n onAddFeature = _a.onAddFeature,\n onRemoveFeature = _a.onRemoveFeature,\n onRemoveProperty = _a.onRemoveProperty,\n onSetGeometry = _a.onSetGeometry,\n onSetProperty = _a.onSetProperty,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n var _c = useState(null),\n dblclickListener = _c[0],\n setDblclickListener = _c[1];\n var _d = useState(null),\n mousedownListener = _d[0],\n setMousedownListener = _d[1];\n var _e = useState(null),\n mousemoveListener = _e[0],\n setMousemoveListener = _e[1];\n var _f = useState(null),\n mouseoutListener = _f[0],\n setMouseoutListener = _f[1];\n var _g = useState(null),\n mouseoverListener = _g[0],\n setMouseoverListener = _g[1];\n var _h = useState(null),\n mouseupListener = _h[0],\n setMouseupListener = _h[1];\n var _j = useState(null),\n rightclickListener = _j[0],\n setRightclickListener = _j[1];\n var _k = useState(null),\n clickListener = _k[0],\n setClickListener = _k[1];\n var _l = useState(null),\n addFeatureListener = _l[0],\n setAddFeatureListener = _l[1];\n var _m = useState(null),\n removeFeatureListener = _m[0],\n setRemoveFeatureListener = _m[1];\n var _o = useState(null),\n removePropertyListener = _o[0],\n setRemovePropertyListener = _o[1];\n var _p = useState(null),\n setGeometryListener = _p[0],\n setSetGeometryListener = _p[1];\n var _q = useState(null),\n setPropertyListener = _q[0],\n setSetPropertyListener = _q[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onAddFeature) {\n if (addFeatureListener !== null) {\n google.maps.event.removeListener(addFeatureListener);\n }\n setAddFeatureListener(google.maps.event.addListener(instance, 'addfeature', onAddFeature));\n }\n }, [onAddFeature]);\n useEffect(function () {\n if (instance && onRemoveFeature) {\n if (removeFeatureListener !== null) {\n google.maps.event.removeListener(removeFeatureListener);\n }\n setRemoveFeatureListener(google.maps.event.addListener(instance, 'removefeature', onRemoveFeature));\n }\n }, [onRemoveFeature]);\n useEffect(function () {\n if (instance && onRemoveProperty) {\n if (removePropertyListener !== null) {\n google.maps.event.removeListener(removePropertyListener);\n }\n setRemovePropertyListener(google.maps.event.addListener(instance, 'removeproperty', onRemoveProperty));\n }\n }, [onRemoveProperty]);\n useEffect(function () {\n if (instance && onSetGeometry) {\n if (setGeometryListener !== null) {\n google.maps.event.removeListener(setGeometryListener);\n }\n setSetGeometryListener(google.maps.event.addListener(instance, 'setgeometry', onSetGeometry));\n }\n }, [onSetGeometry]);\n useEffect(function () {\n if (instance && onSetProperty) {\n if (setPropertyListener !== null) {\n google.maps.event.removeListener(setPropertyListener);\n }\n setSetPropertyListener(google.maps.event.addListener(instance, 'setproperty', onSetProperty));\n }\n }, [onSetProperty]);\n useEffect(function () {\n if (map !== null) {\n var data = new google.maps.Data(__assign(__assign({}, options || {}), {\n map: map\n }));\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(data, 'dblclick', onDblClick));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(data, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(data, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(data, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(data, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(data, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(data, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(data, 'click', onClick));\n }\n if (onAddFeature) {\n setAddFeatureListener(google.maps.event.addListener(data, 'addfeature', onAddFeature));\n }\n if (onRemoveFeature) {\n setRemoveFeatureListener(google.maps.event.addListener(data, 'removefeature', onRemoveFeature));\n }\n if (onRemoveProperty) {\n setRemovePropertyListener(google.maps.event.addListener(data, 'removeproperty', onRemoveProperty));\n }\n if (onSetGeometry) {\n setSetGeometryListener(google.maps.event.addListener(data, 'setgeometry', onSetGeometry));\n }\n if (onSetProperty) {\n setSetPropertyListener(google.maps.event.addListener(data, 'setproperty', onSetProperty));\n }\n setInstance(data);\n if (onLoad) {\n onLoad(data);\n }\n }\n return function () {\n if (instance) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (addFeatureListener !== null) {\n google.maps.event.removeListener(addFeatureListener);\n }\n if (removeFeatureListener !== null) {\n google.maps.event.removeListener(removeFeatureListener);\n }\n if (removePropertyListener !== null) {\n google.maps.event.removeListener(removePropertyListener);\n }\n if (setGeometryListener !== null) {\n google.maps.event.removeListener(setGeometryListener);\n }\n if (setPropertyListener !== null) {\n google.maps.event.removeListener(setPropertyListener);\n }\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nmemo(DataFunctional);\n/** @class */\n(function (_super) {\n __extends(Data, _super);\n function Data() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n data: null\n };\n _this.setDataCallback = function () {\n if (_this.state.data !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.data);\n }\n };\n return _this;\n }\n Data.prototype.componentDidMount = function () {\n if (this.context !== null) {\n var data_1 = new google.maps.Data(__assign(__assign({}, this.props.options || {}), {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$7,\n eventMap: eventMap$7,\n prevProps: {},\n nextProps: this.props,\n instance: data_1\n });\n this.setState(function () {\n return {\n data: data_1\n };\n }, this.setDataCallback);\n }\n };\n Data.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.data !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$7,\n eventMap: eventMap$7,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.data\n });\n }\n };\n Data.prototype.componentWillUnmount = function () {\n if (this.state.data !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.data);\n }\n unregisterEvents(this.registeredEvents);\n if (this.state.data) {\n this.state.data.setMap(null);\n }\n }\n };\n Data.prototype.render = function () {\n return null;\n };\n Data.contextType = MapContext;\n return Data;\n})(PureComponent);\nvar eventMap$6 = {\n onClick: 'click',\n onDefaultViewportChanged: 'defaultviewport_changed',\n onStatusChanged: 'status_changed'\n};\nvar updaterMap$6 = {\n options: function (instance, options) {\n instance.setOptions(options);\n },\n url: function (instance, url) {\n instance.setUrl(url);\n },\n zIndex: function (instance, zIndex) {\n instance.setZIndex(zIndex);\n }\n};\n/** @class */\n(function (_super) {\n __extends(KmlLayer, _super);\n function KmlLayer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n kmlLayer: null\n };\n _this.setKmlLayerCallback = function () {\n if (_this.state.kmlLayer !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.kmlLayer);\n }\n };\n return _this;\n }\n KmlLayer.prototype.componentDidMount = function () {\n var kmlLayer = new google.maps.KmlLayer(__assign(__assign({}, this.props.options), {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$6,\n eventMap: eventMap$6,\n prevProps: {},\n nextProps: this.props,\n instance: kmlLayer\n });\n this.setState(function setLmlLayer() {\n return {\n kmlLayer: kmlLayer\n };\n }, this.setKmlLayerCallback);\n };\n KmlLayer.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.kmlLayer !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$6,\n eventMap: eventMap$6,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.kmlLayer\n });\n }\n };\n KmlLayer.prototype.componentWillUnmount = function () {\n if (this.state.kmlLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.kmlLayer);\n }\n unregisterEvents(this.registeredEvents);\n this.state.kmlLayer.setMap(null);\n }\n };\n KmlLayer.prototype.render = function () {\n return null;\n };\n KmlLayer.contextType = MapContext;\n return KmlLayer;\n})(PureComponent);\nfunction getOffsetOverride(containerElement, getPixelPositionOffset) {\n return typeof getPixelPositionOffset === 'function' ? getPixelPositionOffset(containerElement.offsetWidth, containerElement.offsetHeight) : {\n x: 0,\n y: 0\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction createLatLng(inst, Type) {\n return new Type(inst.lat, inst.lng);\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction createLatLngBounds(inst, Type) {\n return new Type(new google.maps.LatLng(inst.ne.lat, inst.ne.lng), new google.maps.LatLng(inst.sw.lat, inst.sw.lng));\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction ensureOfType(inst,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfactory\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n return inst instanceof type ? inst : factory(inst, type);\n}\nfunction ensureOfTypeBounds(inst,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfactory\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n return inst instanceof type ? inst : factory(inst, type);\n}\nfunction getLayoutStylesByBounds(mapCanvasProjection, offset, bounds) {\n var ne = mapCanvasProjection && mapCanvasProjection.fromLatLngToDivPixel(bounds.getNorthEast());\n var sw = mapCanvasProjection && mapCanvasProjection.fromLatLngToDivPixel(bounds.getSouthWest());\n if (ne && sw) {\n return {\n left: \"\".concat(sw.x + offset.x, \"px\"),\n top: \"\".concat(ne.y + offset.y, \"px\"),\n width: \"\".concat(ne.x - sw.x - offset.x, \"px\"),\n height: \"\".concat(sw.y - ne.y - offset.y, \"px\")\n };\n }\n return {\n left: '-9999px',\n top: '-9999px'\n };\n}\nfunction getLayoutStylesByPosition(mapCanvasProjection, offset, position) {\n var point = mapCanvasProjection && mapCanvasProjection.fromLatLngToDivPixel(position);\n if (point) {\n var x = point.x,\n y = point.y;\n return {\n left: \"\".concat(x + offset.x, \"px\"),\n top: \"\".concat(y + offset.y, \"px\")\n };\n }\n return {\n left: '-9999px',\n top: '-9999px'\n };\n}\nfunction getLayoutStyles(mapCanvasProjection, offset, bounds, position) {\n return bounds !== undefined ? getLayoutStylesByBounds(mapCanvasProjection, offset, ensureOfTypeBounds(bounds, google.maps.LatLngBounds, createLatLngBounds)) : getLayoutStylesByPosition(mapCanvasProjection, offset, ensureOfType(position, google.maps.LatLng, createLatLng));\n}\nfunction arePositionsEqual(currentPosition, previousPosition) {\n return currentPosition.left === previousPosition.left && currentPosition.top === previousPosition.top && currentPosition.width === previousPosition.height && currentPosition.height === previousPosition.height;\n}\nfunction createOverlay(container, pane, position, bounds, getPixelPositionOffset) {\n var Overlay = /** @class */function (_super) {\n __extends(Overlay, _super);\n function Overlay(container, pane, position, bounds) {\n var _this = _super.call(this) || this;\n _this.container = container;\n _this.pane = pane;\n _this.position = position;\n _this.bounds = bounds;\n return _this;\n }\n Overlay.prototype.onAdd = function () {\n var _a;\n var pane = (_a = this.getPanes()) === null || _a === void 0 ? void 0 : _a[this.pane];\n pane === null || pane === void 0 ? void 0 : pane.appendChild(this.container);\n };\n Overlay.prototype.draw = function () {\n var projection = this.getProjection();\n var offset = __assign({}, this.container ? getOffsetOverride(this.container, getPixelPositionOffset) : {\n x: 0,\n y: 0\n });\n var layoutStyles = getLayoutStyles(projection, offset, this.bounds, this.position);\n for (var _i = 0, _a = Object.entries(layoutStyles); _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b[0],\n value = _b[1];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.container.style[key] = value;\n }\n };\n Overlay.prototype.onRemove = function () {\n if (this.container.parentNode !== null) {\n this.container.parentNode.removeChild(this.container);\n }\n };\n return Overlay;\n }(google.maps.OverlayView);\n return new Overlay(container, pane, position, bounds);\n}\nfunction convertToLatLngString(latLngLike) {\n if (!latLngLike) {\n return '';\n }\n var latLng = latLngLike instanceof google.maps.LatLng ? latLngLike : new google.maps.LatLng(latLngLike.lat, latLngLike.lng);\n return latLng + '';\n}\nfunction convertToLatLngBoundsString(latLngBoundsLike) {\n if (!latLngBoundsLike) {\n return '';\n }\n var latLngBounds = latLngBoundsLike instanceof google.maps.LatLngBounds ? latLngBoundsLike : new google.maps.LatLngBounds(new google.maps.LatLng(latLngBoundsLike.south, latLngBoundsLike.east), new google.maps.LatLng(latLngBoundsLike.north, latLngBoundsLike.west));\n return latLngBounds + '';\n}\nfunction OverlayViewFunctional(_a) {\n var position = _a.position,\n bounds = _a.bounds,\n mapPaneName = _a.mapPaneName,\n zIndex = _a.zIndex,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount,\n getPixelPositionOffset = _a.getPixelPositionOffset,\n children = _a.children;\n var map = useContext(MapContext);\n var container = useMemo(function () {\n var div = document.createElement('div');\n div.style.position = 'absolute';\n return div;\n }, []);\n var overlay = useMemo(function () {\n return createOverlay(container, mapPaneName, position, bounds, getPixelPositionOffset);\n }, [container, mapPaneName, position, bounds]);\n useEffect(function () {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(overlay);\n overlay === null || overlay === void 0 ? void 0 : overlay.setMap(map);\n return function () {\n onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount(overlay);\n overlay === null || overlay === void 0 ? void 0 : overlay.setMap(null);\n };\n }, [map, overlay]);\n // to move the container to the foreground and background\n useEffect(function () {\n container.style.zIndex = \"\".concat(zIndex);\n }, [zIndex, container]);\n return ReactDOM.createPortal(children, container);\n}\nmemo(OverlayViewFunctional);\n/** @class */\n(function (_super) {\n __extends(OverlayView, _super);\n function OverlayView(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n paneEl: null,\n containerStyle: {\n // set initial position\n position: 'absolute'\n }\n };\n _this.updatePane = function () {\n var mapPaneName = _this.props.mapPaneName;\n // https://developers.google.com/maps/documentation/javascript/3.exp/reference#MapPanes\n var mapPanes = _this.overlayView.getPanes();\n invariant$1(!!mapPaneName, \"OverlayView requires props.mapPaneName but got %s\", mapPaneName);\n if (mapPanes) {\n _this.setState({\n paneEl: mapPanes[mapPaneName]\n });\n } else {\n _this.setState({\n paneEl: null\n });\n }\n };\n _this.onAdd = function () {\n var _a, _b;\n _this.updatePane();\n (_b = (_a = _this.props).onLoad) === null || _b === void 0 ? void 0 : _b.call(_a, _this.overlayView);\n };\n _this.onPositionElement = function () {\n var mapCanvasProjection = _this.overlayView.getProjection();\n var offset = __assign({\n x: 0,\n y: 0\n }, _this.containerRef.current ? getOffsetOverride(_this.containerRef.current, _this.props.getPixelPositionOffset) : {});\n var layoutStyles = getLayoutStyles(mapCanvasProjection, offset, _this.props.bounds, _this.props.position);\n var _a = _this.state.containerStyle,\n left = _a.left,\n top = _a.top,\n width = _a.width,\n height = _a.height;\n if (!arePositionsEqual(layoutStyles, {\n left: left,\n top: top,\n width: width,\n height: height\n })) {\n _this.setState({\n containerStyle: {\n top: layoutStyles.top || 0,\n left: layoutStyles.left || 0,\n width: layoutStyles.width || 0,\n height: layoutStyles.height || 0,\n position: 'absolute'\n }\n });\n }\n };\n _this.draw = function () {\n _this.onPositionElement();\n };\n _this.onRemove = function () {\n var _a, _b;\n _this.setState(function () {\n return {\n paneEl: null\n };\n });\n (_b = (_a = _this.props).onUnmount) === null || _b === void 0 ? void 0 : _b.call(_a, _this.overlayView);\n };\n _this.containerRef = createRef();\n // You must implement three methods: onAdd(), draw(), and onRemove().\n var overlayView = new google.maps.OverlayView();\n overlayView.onAdd = _this.onAdd;\n overlayView.draw = _this.draw;\n overlayView.onRemove = _this.onRemove;\n _this.overlayView = overlayView;\n return _this;\n }\n OverlayView.prototype.componentDidMount = function () {\n this.overlayView.setMap(this.context);\n };\n OverlayView.prototype.componentDidUpdate = function (prevProps) {\n var prevPositionString = convertToLatLngString(prevProps.position);\n var positionString = convertToLatLngString(this.props.position);\n var prevBoundsString = convertToLatLngBoundsString(prevProps.bounds);\n var boundsString = convertToLatLngBoundsString(this.props.bounds);\n if (prevPositionString !== positionString || prevBoundsString !== boundsString) {\n this.overlayView.draw();\n }\n if (prevProps.mapPaneName !== this.props.mapPaneName) {\n this.updatePane();\n }\n };\n OverlayView.prototype.componentWillUnmount = function () {\n this.overlayView.setMap(null);\n };\n OverlayView.prototype.render = function () {\n var paneEl = this.state.paneEl;\n if (paneEl) {\n return ReactDOM.createPortal(jsx(\"div\", {\n ref: this.containerRef,\n style: this.state.containerStyle,\n children: Children.only(this.props.children)\n }), paneEl);\n } else {\n return null;\n }\n };\n OverlayView.FLOAT_PANE = \"floatPane\";\n OverlayView.MAP_PANE = \"mapPane\";\n OverlayView.MARKER_LAYER = \"markerLayer\";\n OverlayView.OVERLAY_LAYER = \"overlayLayer\";\n OverlayView.OVERLAY_MOUSE_TARGET = \"overlayMouseTarget\";\n OverlayView.contextType = MapContext;\n return OverlayView;\n})(PureComponent);\nfunction noop() {\n return;\n}\nvar eventMap$5 = {\n onDblClick: 'dblclick',\n onClick: 'click'\n};\nvar updaterMap$5 = {\n opacity: function (instance, opacity) {\n instance.setOpacity(opacity);\n }\n};\nfunction GroundOverlayFunctional(_a) {\n var url = _a.url,\n bounds = _a.bounds,\n options = _a.options,\n visible = _a.visible;\n var map = useContext(MapContext);\n var imageBounds = new google.maps.LatLngBounds(new google.maps.LatLng(bounds.south, bounds.west), new google.maps.LatLng(bounds.north, bounds.east));\n var groundOverlay = useMemo(function () {\n var overlay = new google.maps.GroundOverlay(url, imageBounds, __assign({}, options));\n return overlay;\n }, []);\n useEffect(function () {\n if (groundOverlay !== null) {\n groundOverlay.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (typeof url !== 'undefined' && groundOverlay !== null) {\n groundOverlay.set(\"url\", url);\n groundOverlay.setMap(map);\n }\n }, [groundOverlay, url]);\n useEffect(function () {\n if (typeof visible !== 'undefined' && groundOverlay !== null) {\n groundOverlay.setOpacity(visible ? 1 : 0);\n }\n }, [groundOverlay, visible]);\n useEffect(function () {\n var newBounds = new google.maps.LatLngBounds(new google.maps.LatLng(bounds.south, bounds.west), new google.maps.LatLng(bounds.north, bounds.east));\n if (typeof bounds !== 'undefined' && groundOverlay !== null) {\n groundOverlay.set(\"bounds\", newBounds);\n groundOverlay.setMap(map);\n }\n }, [groundOverlay, bounds]);\n return null;\n}\nmemo(GroundOverlayFunctional);\n/** @class */\n(function (_super) {\n __extends(GroundOverlay, _super);\n function GroundOverlay() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n groundOverlay: null\n };\n _this.setGroundOverlayCallback = function () {\n if (_this.state.groundOverlay !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.groundOverlay);\n }\n };\n return _this;\n }\n GroundOverlay.prototype.componentDidMount = function () {\n invariant$1(!!this.props.url || !!this.props.bounds, \"For GroundOverlay, url and bounds are passed in to constructor and are immutable after instantiated. This is the behavior of Google Maps JavaScript API v3 ( See https://developers.google.com/maps/documentation/javascript/reference#GroundOverlay) Hence, use the corresponding two props provided by `react-google-maps-api`, url and bounds. In some cases, you'll need the GroundOverlay component to reflect the changes of url and bounds. You can leverage the React's key property to remount the component. Typically, just `key={url}` would serve your need. See https://github.com/tomchentw/react-google-maps/issues/655\");\n var groundOverlay = new google.maps.GroundOverlay(this.props.url, this.props.bounds, __assign(__assign({}, this.props.options), {\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$5,\n eventMap: eventMap$5,\n prevProps: {},\n nextProps: this.props,\n instance: groundOverlay\n });\n this.setState(function setGroundOverlay() {\n return {\n groundOverlay: groundOverlay\n };\n }, this.setGroundOverlayCallback);\n };\n GroundOverlay.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.groundOverlay !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$5,\n eventMap: eventMap$5,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.groundOverlay\n });\n }\n };\n GroundOverlay.prototype.componentWillUnmount = function () {\n if (this.state.groundOverlay) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.groundOverlay);\n }\n this.state.groundOverlay.setMap(null);\n }\n };\n GroundOverlay.prototype.render = function () {\n return null;\n };\n GroundOverlay.defaultProps = {\n onLoad: noop\n };\n GroundOverlay.contextType = MapContext;\n return GroundOverlay;\n})(PureComponent);\nvar eventMap$4 = {};\nvar updaterMap$4 = {\n data: function (instance, data) {\n instance.setData(data);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n }\n};\nfunction HeatmapLayerFunctional(_a) {\n var data = _a.data,\n onLoad = _a.onLoad,\n onUnmount = _a.onUnmount,\n options = _a.options;\n var map = useContext(MapContext);\n var _b = useState(null),\n instance = _b[0],\n setInstance = _b[1];\n useEffect(function () {\n if (!google.maps.visualization) {\n invariant$1(!!google.maps.visualization, 'Did you include prop libraries={[\"visualization\"]} in useJsApiScript? %s', google.maps.visualization);\n }\n }, []);\n useEffect(function () {\n invariant$1(!!data, 'data property is required in HeatmapLayer %s', data);\n }, [data]);\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n var heatmapLayer = new google.maps.visualization.HeatmapLayer(__assign(__assign({}, options || {}), {\n data: data,\n map: map\n }));\n setInstance(heatmapLayer);\n if (onLoad) {\n onLoad(heatmapLayer);\n }\n return function () {\n if (instance !== null) {\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nmemo(HeatmapLayerFunctional);\n/** @class */\n(function (_super) {\n __extends(HeatmapLayer, _super);\n function HeatmapLayer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n heatmapLayer: null\n };\n _this.setHeatmapLayerCallback = function () {\n if (_this.state.heatmapLayer !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.heatmapLayer);\n }\n };\n return _this;\n }\n HeatmapLayer.prototype.componentDidMount = function () {\n invariant$1(!!google.maps.visualization, 'Did you include prop libraries={[\"visualization\"]} to <LoadScript />? %s', google.maps.visualization);\n invariant$1(!!this.props.data, 'data property is required in HeatmapLayer %s', this.props.data);\n var heatmapLayer = new google.maps.visualization.HeatmapLayer(__assign(__assign({}, this.props.options || {}), {\n data: this.props.data,\n map: this.context\n }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$4,\n eventMap: eventMap$4,\n prevProps: {},\n nextProps: this.props,\n instance: heatmapLayer\n });\n this.setState(function setHeatmapLayer() {\n return {\n heatmapLayer: heatmapLayer\n };\n }, this.setHeatmapLayerCallback);\n };\n HeatmapLayer.prototype.componentDidUpdate = function (prevProps) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$4,\n eventMap: eventMap$4,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.heatmapLayer\n });\n };\n HeatmapLayer.prototype.componentWillUnmount = function () {\n if (this.state.heatmapLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.heatmapLayer);\n }\n unregisterEvents(this.registeredEvents);\n this.state.heatmapLayer.setMap(null);\n }\n };\n HeatmapLayer.prototype.render = function () {\n return null;\n };\n HeatmapLayer.contextType = MapContext;\n return HeatmapLayer;\n})(PureComponent);\nvar eventMap$3 = {\n onCloseClick: 'closeclick',\n onPanoChanged: 'pano_changed',\n onPositionChanged: 'position_changed',\n onPovChanged: 'pov_changed',\n onResize: 'resize',\n onStatusChanged: 'status_changed',\n onVisibleChanged: 'visible_changed',\n onZoomChanged: 'zoom_changed'\n};\nvar updaterMap$3 = {\n register: function (instance, provider, options) {\n instance.registerPanoProvider(provider, options);\n },\n links: function (instance, links) {\n instance.setLinks(links);\n },\n motionTracking: function (instance, motionTracking) {\n instance.setMotionTracking(motionTracking);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n pano: function (instance, pano) {\n instance.setPano(pano);\n },\n position: function (instance, position) {\n instance.setPosition(position);\n },\n pov: function (instance, pov) {\n instance.setPov(pov);\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n },\n zoom: function (instance, zoom) {\n instance.setZoom(zoom);\n }\n};\n/** @class */\n(function (_super) {\n __extends(StreetViewPanorama, _super);\n function StreetViewPanorama() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n streetViewPanorama: null\n };\n _this.setStreetViewPanoramaCallback = function () {\n if (_this.state.streetViewPanorama !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.streetViewPanorama);\n }\n };\n return _this;\n }\n StreetViewPanorama.prototype.componentDidMount = function () {\n var _a, _b;\n var streetViewPanorama = (_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.getStreetView()) !== null && _b !== void 0 ? _b : null;\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$3,\n eventMap: eventMap$3,\n prevProps: {},\n nextProps: this.props,\n instance: streetViewPanorama\n });\n this.setState(function () {\n return {\n streetViewPanorama: streetViewPanorama\n };\n }, this.setStreetViewPanoramaCallback);\n };\n StreetViewPanorama.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.streetViewPanorama !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$3,\n eventMap: eventMap$3,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.streetViewPanorama\n });\n }\n };\n StreetViewPanorama.prototype.componentWillUnmount = function () {\n if (this.state.streetViewPanorama !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.streetViewPanorama);\n }\n unregisterEvents(this.registeredEvents);\n this.state.streetViewPanorama.setVisible(false);\n }\n };\n StreetViewPanorama.prototype.render = function () {\n return null;\n };\n StreetViewPanorama.contextType = MapContext;\n return StreetViewPanorama;\n})(PureComponent);\n\n/** @class */\n(function (_super) {\n __extends(StreetViewService, _super);\n function StreetViewService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n streetViewService: null\n };\n _this.setStreetViewServiceCallback = function () {\n if (_this.state.streetViewService !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.streetViewService);\n }\n };\n return _this;\n }\n StreetViewService.prototype.componentDidMount = function () {\n var streetViewService = new google.maps.StreetViewService();\n this.setState(function setStreetViewService() {\n return {\n streetViewService: streetViewService\n };\n }, this.setStreetViewServiceCallback);\n };\n StreetViewService.prototype.componentWillUnmount = function () {\n if (this.state.streetViewService !== null && this.props.onUnmount) {\n this.props.onUnmount(this.state.streetViewService);\n }\n };\n StreetViewService.prototype.render = function () {\n return null;\n };\n StreetViewService.contextType = MapContext;\n return StreetViewService;\n})(PureComponent);\n\n/** @class */\n(function (_super) {\n __extends(DirectionsService, _super);\n function DirectionsService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n directionsService: null\n };\n _this.setDirectionsServiceCallback = function () {\n if (_this.state.directionsService !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.directionsService);\n }\n };\n return _this;\n }\n DirectionsService.prototype.componentDidMount = function () {\n invariant$1(!!this.props.options, 'DirectionsService expected options object as parameter, but got %s', this.props.options);\n var directionsService = new google.maps.DirectionsService();\n this.setState(function setDirectionsService() {\n return {\n directionsService: directionsService\n };\n }, this.setDirectionsServiceCallback);\n };\n DirectionsService.prototype.componentDidUpdate = function () {\n if (this.state.directionsService !== null) {\n this.state.directionsService.route(this.props.options, this.props.callback);\n }\n };\n DirectionsService.prototype.componentWillUnmount = function () {\n if (this.state.directionsService !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.directionsService);\n }\n }\n };\n DirectionsService.prototype.render = function () {\n return null;\n };\n return DirectionsService;\n})(PureComponent);\nvar eventMap$2 = {\n onDirectionsChanged: 'directions_changed'\n};\nvar updaterMap$2 = {\n directions: function (instance, directions) {\n instance.setDirections(directions);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n panel: function (instance, panel) {\n instance.setPanel(panel);\n },\n routeIndex: function (instance, routeIndex) {\n instance.setRouteIndex(routeIndex);\n }\n};\n/** @class */\n(function (_super) {\n __extends(DirectionsRenderer, _super);\n function DirectionsRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n directionsRenderer: null\n };\n _this.setDirectionsRendererCallback = function () {\n if (_this.state.directionsRenderer !== null) {\n _this.state.directionsRenderer.setMap(_this.context);\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.state.directionsRenderer);\n }\n }\n };\n return _this;\n }\n DirectionsRenderer.prototype.componentDidMount = function () {\n var directionsRenderer = new google.maps.DirectionsRenderer(this.props.options);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$2,\n eventMap: eventMap$2,\n prevProps: {},\n nextProps: this.props,\n instance: directionsRenderer\n });\n this.setState(function setDirectionsRenderer() {\n return {\n directionsRenderer: directionsRenderer\n };\n }, this.setDirectionsRendererCallback);\n };\n DirectionsRenderer.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.directionsRenderer !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$2,\n eventMap: eventMap$2,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.directionsRenderer\n });\n }\n };\n DirectionsRenderer.prototype.componentWillUnmount = function () {\n if (this.state.directionsRenderer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.directionsRenderer);\n }\n unregisterEvents(this.registeredEvents);\n if (this.state.directionsRenderer) {\n this.state.directionsRenderer.setMap(null);\n }\n }\n };\n DirectionsRenderer.prototype.render = function () {\n return jsx(Fragment, {});\n };\n DirectionsRenderer.contextType = MapContext;\n return DirectionsRenderer;\n})(PureComponent);\n\n/** @class */\n(function (_super) {\n __extends(DistanceMatrixService, _super);\n function DistanceMatrixService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n distanceMatrixService: null\n };\n _this.setDistanceMatrixServiceCallback = function () {\n if (_this.state.distanceMatrixService !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.distanceMatrixService);\n }\n };\n return _this;\n }\n DistanceMatrixService.prototype.componentDidMount = function () {\n invariant$1(!!this.props.options, 'DistanceMatrixService expected options object as parameter, but go %s', this.props.options);\n var distanceMatrixService = new google.maps.DistanceMatrixService();\n this.setState(function setDistanceMatrixService() {\n return {\n distanceMatrixService: distanceMatrixService\n };\n }, this.setDistanceMatrixServiceCallback);\n };\n DistanceMatrixService.prototype.componentDidUpdate = function () {\n if (this.state.distanceMatrixService !== null) {\n this.state.distanceMatrixService.getDistanceMatrix(this.props.options, this.props.callback);\n }\n };\n DistanceMatrixService.prototype.componentWillUnmount = function () {\n if (this.state.distanceMatrixService !== null && this.props.onUnmount) {\n this.props.onUnmount(this.state.distanceMatrixService);\n }\n };\n DistanceMatrixService.prototype.render = function () {\n return null;\n };\n return DistanceMatrixService;\n})(PureComponent);\nvar eventMap$1 = {\n onPlacesChanged: 'places_changed'\n};\nvar updaterMap$1 = {\n bounds: function (instance, bounds) {\n instance.setBounds(bounds);\n }\n};\n/** @class */\n(function (_super) {\n __extends(StandaloneSearchBox, _super);\n function StandaloneSearchBox() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.containerElement = createRef();\n _this.state = {\n searchBox: null\n };\n _this.setSearchBoxCallback = function () {\n if (_this.state.searchBox !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.searchBox);\n }\n };\n return _this;\n }\n StandaloneSearchBox.prototype.componentDidMount = function () {\n invariant$1(!!google.maps.places, 'You need to provide libraries={[\"places\"]} prop to <LoadScript /> component %s', google.maps.places);\n if (this.containerElement !== null && this.containerElement.current !== null) {\n var input = this.containerElement.current.querySelector('input');\n if (input !== null) {\n var searchBox_1 = new google.maps.places.SearchBox(input, this.props.options);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$1,\n eventMap: eventMap$1,\n prevProps: {},\n nextProps: this.props,\n instance: searchBox_1\n });\n this.setState(function setSearchBox() {\n return {\n searchBox: searchBox_1\n };\n }, this.setSearchBoxCallback);\n }\n }\n };\n StandaloneSearchBox.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.searchBox !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$1,\n eventMap: eventMap$1,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.searchBox\n });\n }\n };\n StandaloneSearchBox.prototype.componentWillUnmount = function () {\n if (this.state.searchBox !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.searchBox);\n }\n unregisterEvents(this.registeredEvents);\n }\n };\n StandaloneSearchBox.prototype.render = function () {\n return jsx(\"div\", {\n ref: this.containerElement,\n children: Children.only(this.props.children)\n });\n };\n StandaloneSearchBox.contextType = MapContext;\n return StandaloneSearchBox;\n})(PureComponent);\nvar eventMap = {\n onPlaceChanged: 'place_changed'\n};\nvar updaterMap = {\n bounds: function (instance, bounds) {\n instance.setBounds(bounds);\n },\n restrictions: function (instance, restrictions) {\n instance.setComponentRestrictions(restrictions);\n },\n fields: function (instance, fields) {\n instance.setFields(fields);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n types: function (instance, types) {\n instance.setTypes(types);\n }\n};\n/** @class */\n(function (_super) {\n __extends(Autocomplete, _super);\n function Autocomplete() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.containerElement = createRef();\n _this.state = {\n autocomplete: null\n };\n _this.setAutocompleteCallback = function () {\n if (_this.state.autocomplete !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.autocomplete);\n }\n };\n return _this;\n }\n Autocomplete.prototype.componentDidMount = function () {\n var _a;\n invariant$1(!!google.maps.places, 'You need to provide libraries={[\"places\"]} prop to <LoadScript /> component %s', google.maps.places);\n // TODO: why current could be equal null?\n var input = (_a = this.containerElement.current) === null || _a === void 0 ? void 0 : _a.querySelector('input');\n if (input) {\n var autocomplete_1 = new google.maps.places.Autocomplete(input, this.props.options);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap,\n eventMap: eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: autocomplete_1\n });\n this.setState(function () {\n return {\n autocomplete: autocomplete_1\n };\n }, this.setAutocompleteCallback);\n }\n };\n Autocomplete.prototype.componentDidUpdate = function (prevProps) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap,\n eventMap: eventMap,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.autocomplete\n });\n };\n Autocomplete.prototype.componentWillUnmount = function () {\n if (this.state.autocomplete !== null) {\n unregisterEvents(this.registeredEvents);\n }\n };\n Autocomplete.prototype.render = function () {\n return jsx(\"div\", {\n ref: this.containerElement,\n className: this.props.className,\n children: Children.only(this.props.children)\n });\n };\n Autocomplete.defaultProps = {\n className: ''\n };\n Autocomplete.contextType = MapContext;\n return Autocomplete;\n})(PureComponent);\nexport { GoogleMap, InfoWindow, InfoWindowF, MapContext, Marker, MarkerClustererF, MarkerF, useGoogleMap, useLoadScript };","map":{"version":3,"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__rest$1","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter$1","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","pop","push","getDefaultExportFromCjs","x","__esModule","NODE_ENV","process","env","invariant","condition","format","a","c","undefined","Error","error","args","argIndex","replace","name","framesToPop","invariant_1","invariant$1","MapContext","createContext","useGoogleMap","useContext","map","reduce","obj","fn","acc","keys","reducer","newAcc","key","forEach","applyUpdaterToNextProps","updaterMap","prevProps","nextProps","instance","iter","nextValue","registerEvents","props","eventMap","registeredList","googleEventName","onEventName","google","maps","event","addListener","unregisterEvent","registered","removeListener","unregisterEvents","events","applyUpdatersToPropsAndRegisterEvents","_a","registeredEvents","eventMap$i","onDblClick","onDragEnd","onDragStart","onMapTypeIdChanged","onMouseMove","onMouseOut","onMouseOver","onMouseDown","onMouseUp","onRightClick","onTilesLoaded","onBoundsChanged","onCenterChanged","onClick","onDrag","onHeadingChanged","onIdle","onProjectionChanged","onResize","onTiltChanged","onZoomChanged","updaterMap$i","extraMapTypes","extra","forEachExtra","it","mapTypes","set","center","setCenter","clickableIcons","clickable","setClickableIcons","heading","setHeading","mapTypeId","setMapTypeId","options","setOptions","streetView","setStreetView","tilt","setTilt","zoom","setZoom","GoogleMapFunctional","children","id","mapContainerStyle","mapContainerClassName","onLoad","onUnmount","_b","useState","setMap","ref","useRef","_c","centerChangedListener","setCenterChangedListener","_d","dblclickListener","setDblclickListener","_e","dragendListener","setDragendListener","_f","dragstartListener","setDragstartListener","_g","mousedownListener","setMousedownListener","_h","mousemoveListener","setMousemoveListener","_j","mouseoutListener","setMouseoutListener","_k","mouseoverListener","setMouseoverListener","_l","mouseupListener","setMouseupListener","_m","rightclickListener","setRightclickListener","_o","clickListener","setClickListener","_p","dragListener","setDragListener","useEffect","current","Map","jsx","style","className","Provider","memo","GoogleMap","_super","_this","state","mapRef","getInstance","panTo","latLng","setMapCallback","getRef","componentDidMount","setState","componentDidUpdate","componentWillUnmount","render","PureComponent","isBrowser","document","injectScript","url","nonce","injectScriptCallback","existingScript","getElementById","windowWithGoogleMap","window","dataStateAttribute","getAttribute","src","originalInitMap_1","initMap","originalErrorCallback_1","onerror","err","remove","script","createElement","type","async","setAttribute","onload","head","appendChild","catch","console","isGoogleFontStyle","element","href","tagName","toLowerCase","styleSheet","cssText","innerHTML","preventGoogleFonts","getElementsByTagName","trueInsertBefore_1","insertBefore","bind","newElement","referenceElement","Reflect","trueAppend_1","textNode","makeLoadScriptUrl","googleMapsApiKey","googleMapsClientId","version","language","region","libraries","channel","mapIds","authReferrerPolicy","params","concat","sort","join","cleaningUp","DefaultLoadingElement","defaultLoadScriptProps","LoadScript","check","createRef","loaded","cleanupCallback","isCleaningUp","promiseCallback","timer_1","setInterval","interval","clearInterval","cleanup","parentNode","removeChild","slice","filter","includes","link","innerText","preventGoogleFontsLoading","injectScriptOptions","setLoaded","onError","warn","timeoutCallback","setTimeout","jsxs","Fragment","loadingElement","defaultProps","previouslyLoadedUrl","useLoadScript","isMounted","isLoaded","loadError","setLoadError","trackMountedState","applyPreventGoogleFonts","validateLoadedState","loadScriptAndModifyLoadedState","setLoadedIfMounted","handleInjectError","prevLibraries","checkPerformance","defaultLoadingElement","LoadScriptNext","hookOptions","handleOnLoad","handleOnError","handleOnUnmount","LoaderStatus","eventMap$h","updaterMap$h","TrafficLayerFunctional","setInstance","trafficLayer","TrafficLayer","setTrafficLayerCallback","context","setTrafficLayer","contextType","BicyclingLayerFunctional","bicyclingLayer","BicyclingLayer","setBicyclingLayerCallback","TransitLayerFunctional","transitLayer","TransitLayer","setTransitLayerCallback","setTransitLayer","eventMap$g","onCircleComplete","onMarkerComplete","onOverlayComplete","onPolygonComplete","onPolylineComplete","onRectangleComplete","updaterMap$g","drawingMode","setDrawingMode","DrawingManagerFunctional","circlecompleteListener","setCircleCompleteListener","markercompleteListener","setMarkerCompleteListener","overlaycompleteListener","setOverlayCompleteListener","polygoncompleteListener","setPolygonCompleteListener","polylinecompleteListener","setPolylineCompleteListener","rectanglecompleteListener","setRectangleCompleteListener","drawing","drawingManager","DrawingManager","setDrawingManagerCallback","setDrawingManager","eventMap$f","onAnimationChanged","onClickableChanged","onCursorChanged","onDraggableChanged","onFlatChanged","onIconChanged","onPositionChanged","onShapeChanged","onTitleChanged","onVisibleChanged","onZindexChanged","updaterMap$f","animation","setAnimation","setClickable","cursor","setCursor","draggable","setDraggable","icon","setIcon","setLabel","opacity","setOpacity","position","setPosition","shape","setShape","title","setTitle","visible","setVisible","zIndex","setZIndex","defaultOptions$5","MarkerFunctional","clusterer","noClustererRedraw","clickableChangedListener","setClickableChangedListener","cursorChangedListener","setCursorChangedListener","_q","animationChangedListener","setAnimationChangedListener","_r","draggableChangedListener","setDraggableChangedListener","_s","flatChangedListener","setFlatChangedListener","_t","iconChangedListener","setIconChangedListener","_u","positionChangedListener","setPositionChangedListener","_v","shapeChangedListener","setShapeChangedListener","_w","titleChangedListener","setTitleChangedListener","_x","visibleChangedListener","setVisibleChangedListener","_y","zIndexChangedListener","setZindexChangedListener","markerOptions","marker","Marker","addMarker","removeMarker","chx","useMemo","Children","child","isValidElement","elementChild","cloneElement","anchor","MarkerF","ClusterIcon","cluster","styles","getClusterer","extend","OverlayView","clusterClassName","getClusterClass","div","sums","boundsChangedListener","height","width","anchorText","anchorIcon","textColor","textSize","textDecoration","fontWeight","fontStyle","fontFamily","backgroundPosition","cMouseDownInCluster","cDraggingMapByCluster","timeOut","getMap","onAdd","onRemove","draw","hide","show","useStyle","getPosFromLatLng","markerClusterer_1","trigger","getZoomOnClick","maxZoom_1","getMaxZoom","bounds_1","getBounds","fitBounds","getZoom","cancelBubble","stopPropagation","getPanes","overlayMouseTarget","addEventListener","removeEventListener","clearTimeout","pos","top","left","display","divTitle","getTitle","bp","split","spriteH","parseInt","spriteV","img","alt","enableRetinaIcons","clip","textElm","text","html","getStyles","Math","min","max","index","latlng","getProjection","fromLatLngToDivPixel","Cluster$1","Cluster","markerClusterer","gridSize","getGridSize","minClusterSize","getMinimumClusterSize","averageCenter","getAverageCenter","markers","bounds","clusterIcon","getSize","getMarkers","getCenter","isMarkerInClusterBounds","calculateBounds","updateIcon","isMarkerAlreadyAdded","LatLngBounds","_i","markers_1","getPosition","length_1","LatLng","lat","lng","isAdded","mCount","maxZoom","markerElement","contains","getExtendedBounds","getCalculator","CALCULATOR","numStyles","count","numberOfDigits","toString","BATCH_SIZE","BATCH_SIZE_IE","IMAGE_PATH","IMAGE_EXTENSION","IMAGE_SIZES","CLUSTERER_CLASS","Clusterer","optMarkers","optOptions","setMinimumClusterSize","getEnableRetinaIcons","setEnableRetinaIcons","addToClosestCluster","getImageExtension","setImageExtension","setAverageCenter","getTotalClusters","fitMapToMarkers","getIgnoreHidden","setIgnoreHidden","setClusterClass","getTotalMarkers","setZoomOnClick","getBatchSizeIE","setBatchSizeIE","createClusters","getImageSizes","setImageSizes","setCalculator","removeMarkers","resetViewport","getImagePath","setImagePath","pushMarkerTo","clearMarkers","setupStyles","setGridSize","getClusters","setMaxZoom","addMarkers","setStyles","repaint","redraw","clusters","listeners","activeMap","ready","minimumClusterSize","zoomOnClick","ignoreHidden","imagePath","imageExtension","imageSizes","calculator","batchSize","batchSizeIE","clusterClass","navigator","userAgent","timerRefStatic","get","listener","fromContainerPixelToLatLng","fromDivPixelToLatLng","fromLatLngToContainerPixel","getVisibleRegion","getWorldWidth","bindTo","notify","setValues","unbind","unbindAll","optNoDraw","getDraggable","removeMarker_","splice","removed","markers_2","oldClusters","timeout","oldClusters_1","oldCluster","projection","trPix","getNorthEast","blPix","getSouthWest","point1","point2","optHide","distanceBetweenPoints","p1","p2","R","dLat","PI","dLon","sin","cos","atan2","sqrt","isMarkerInBounds","distance","clusterToAddTo","clusterElement","iFirst","mapBounds","extendedMapBounds","iLast","getVisible","obj1","obj2","applyExtend","object","property","prop","eventMap$e","onClusteringBegin","onClusteringEnd","updaterMap$e","defaultOptions$4","MarkerClustererFunctional","clusteringBeginListener","setClusteringBeginListener","clusteringEndListener","setClusteringEndListener","clustererOptions","MarkerClustererF","ClustererComponent","setClustererCallback","cancelHandler","InfoBox","getCloseClickHandler","closeClickHandler","createInfoBoxDiv","addClickHandler","getCloseBoxImg","getBoxWidths","setBoxStyle","setContent","getContent","getZIndex","panBox","close","open","content","disableAutoPan","maxWidth","pixelOffset","Size","boxClass","boxStyle","closeBoxMargin","closeBoxURL","infoBoxClearance","isHidden","alignBottom","pane","enableEventPropagation","closeListener","moveListener","mapListener","contextListener","eventListeners","fixedWidthSet","ignoreHandler","returnValue","preventDefault","panes","offsetWidth","bw","right","events_1","event_1","firstChild","disablePan","xOffset","yOffset","mapDiv","getDiv","mapWidth","mapHeight","offsetHeight","iwOffsetX","iwOffsetY","iwWidth","iwHeight","padX","padY","pixPosition","panBy","webkitTransform","parseFloat","msFilter","visibility","overflow","bottom","defaultView","ownerDocument","computedStyle","getComputedStyle","borderTopWidth","borderBottomWidth","borderLeftWidth","borderRightWidth","documentElement","currentStyle","isVisible","eventListener","eventMap$d","onCloseClick","onContentChanged","onDomReady","updaterMap$d","defaultOptions$3","InfoBoxFunctional","closeClickListener","setCloseClickListener","domReadyClickListener","setDomReadyClickListener","contentChangedClickListener","setContentChangedClickListener","positionChangedClickListener","setPositionChangedClickListener","zIndexChangedClickListener","setZindexChangedClickListener","containerElementRef","positionLatLng","position_1","infoBoxOptions","infoBox","createPortal","only","InfoBoxComponent","containerElement","setInfoBoxCallback","fastDeepEqual","equal","isArray","RegExp","source","flags","valueOf","ARRAY_TYPES","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","VERSION","HEADER_SIZE","KDBush","from","data","ArrayBuffer","magic","versionAndType","ArrayType","nodeSize","numItems","isNaN","IndexArrayType","arrayTypeIndex","coordsByteSize","BYTES_PER_ELEMENT","idsByteSize","padCoords","ids","coords","_pos","_finished","add","finish","numAdded","range","minX","minY","maxX","maxY","stack","axis","m","within","qx","qy","r","r2","sqDist","select","k","z","log","exp","sd","newLeft","floor","newRight","j","swapItem","swap","arr","tmp","ax","ay","bx","by","dx","dy","defaultOptions$2","minZoom","minPoints","radius","extent","generateId","fround","OFFSET_ZOOM","OFFSET_ID","OFFSET_PARENT","OFFSET_NUM","OFFSET_PROP","Supercluster","trees","stride","clusterProps","load","points","time","timerId","geometry","coordinates","lngX","latY","Infinity","tree","_createTree","timeEnd","now","Date","_cluster","bbox","minLng","minLat","maxLng","maxLat","easternHem","westernHem","_limitZoom","getClusterJSON","getChildren","clusterId","originId","_getOriginId","originZoom","_getOriginZoom","errorMsg","pow","getLeaves","limit","offset","leaves","_appendLeaves","getTile","z2","tile","features","_addTileFeatures","getClusterExpansionZoom","expansionZoom","properties","cluster_id","skipped","point_count","isCluster","tags","px","py","getClusterProperties","round","nextData","neighborIds","numPointsOrigin","numPoints","neighborId","wx","wy","clusterProperties","clusterPropIndex","numPoints2","_map","clone","original","xLng","yLat","abbrev","propIndex","point_count_abbreviated","y2","atan","__rest","MarkerUtils","isAdvancedMarkerAvailable","getMapCapabilities","isAdvancedMarkersAvailable","isAdvancedMarker","AdvancedMarkerElement","_position","delete","AbstractAlgorithm","noop","noop$1","SuperClusterAlgorithm","superCluster","calculate","input","changed","feature","transformCluster","leaf","ClusterStats","sum","clusterMarkerCounts","clusterMarkerSum","mean","DefaultRenderer","stats","color","svg","Number","MAX_ZINDEX","parser","DOMParser","svgEl","parseFromString","clusterOptions","btoa","Point","type1","type2","OverlayViewSafe","MarkerClustererEvents","defaultOnClusterClickHandler","MarkerClusterer","algorithmOptions","algorithm","renderer","onClusterClick","noDraw","CLUSTERING_BEGIN","mapCanvasProjection","singleMarker","Set","groupMarkers","has","renderClusters","requestAnimationFrame","CLUSTERING_END","idleListener","reset","CLUSTER_CLICK","useGoogleMarkerClusterer","setMarkerClusterer","markerCluster","GoogleMarkerClusterer","eventMap$c","updaterMap$c","InfoWindowFunctional","closeclickListener","domreadyclickListener","contentchangedclickListener","positionchangedclickListener","zindexchangedclickListener","infoWindow","InfoWindow","InfoWindowF","setInfoWindowCallback","eventMap$b","updaterMap$b","editable","setEditable","path","setPath","defaultOptions$1","PolylineFunctional","polyline","Polyline","setPolylineCallback","setPolyline","eventMap$a","updaterMap$a","paths","setPaths","PolygonFunctional","onEdit","getPath","polygon","Polygon","setPolygonCallback","setPolygon","eventMap$9","updaterMap$9","setBounds","RectangleFunctional","rightClickListener","setRightClickListener","setBoundsChangedListener","rectangle","Rectangle","setRectangleCallback","setRectangle","eventMap$8","onRadiusChanged","updaterMap$8","setRadius","defaultOptions","CircleFunctional","radiusChangedListener","setRadiusChangedListener","circle","Circle","setCircleCallback","setCircle","eventMap$7","onAddFeature","onRemoveFeature","onRemoveProperty","onSetGeometry","onSetProperty","updaterMap$7","addgeojson","geojson","addGeoJson","foreach","callback","loadgeojson","loadGeoJson","overridestyle","overrideStyle","revertstyle","revertStyle","controlposition","controlPosition","setControlPosition","controls","setControls","drawingmode","mode","setStyle","togeojson","toGeoJson","DataFunctional","addFeatureListener","setAddFeatureListener","removeFeatureListener","setRemoveFeatureListener","removePropertyListener","setRemovePropertyListener","setGeometryListener","setSetGeometryListener","setPropertyListener","setSetPropertyListener","Data","setDataCallback","data_1","eventMap$6","onDefaultViewportChanged","onStatusChanged","updaterMap$6","setUrl","KmlLayer","kmlLayer","setKmlLayerCallback","setLmlLayer","getOffsetOverride","getPixelPositionOffset","createLatLng","inst","Type","createLatLngBounds","ne","sw","ensureOfType","factory","ensureOfTypeBounds","getLayoutStylesByBounds","getLayoutStylesByPosition","point","getLayoutStyles","arePositionsEqual","currentPosition","previousPosition","createOverlay","container","Overlay","layoutStyles","entries","convertToLatLngString","latLngLike","convertToLatLngBoundsString","latLngBoundsLike","latLngBounds","south","east","north","west","OverlayViewFunctional","mapPaneName","overlay","ReactDOM","paneEl","containerStyle","updatePane","mapPanes","overlayView","onPositionElement","containerRef","prevPositionString","positionString","prevBoundsString","boundsString","FLOAT_PANE","MAP_PANE","MARKER_LAYER","OVERLAY_LAYER","OVERLAY_MOUSE_TARGET","eventMap$5","updaterMap$5","GroundOverlayFunctional","imageBounds","groundOverlay","GroundOverlay","newBounds","setGroundOverlayCallback","setGroundOverlay","eventMap$4","updaterMap$4","setData","HeatmapLayerFunctional","visualization","heatmapLayer","HeatmapLayer","setHeatmapLayerCallback","setHeatmapLayer","eventMap$3","onPanoChanged","onPovChanged","updaterMap$3","register","provider","registerPanoProvider","links","setLinks","motionTracking","setMotionTracking","pano","setPano","pov","setPov","StreetViewPanorama","streetViewPanorama","setStreetViewPanoramaCallback","getStreetView","StreetViewService","streetViewService","setStreetViewServiceCallback","setStreetViewService","DirectionsService","directionsService","setDirectionsServiceCallback","setDirectionsService","route","eventMap$2","onDirectionsChanged","updaterMap$2","directions","setDirections","panel","setPanel","routeIndex","setRouteIndex","DirectionsRenderer","directionsRenderer","setDirectionsRendererCallback","setDirectionsRenderer","DistanceMatrixService","distanceMatrixService","setDistanceMatrixServiceCallback","setDistanceMatrixService","getDistanceMatrix","eventMap$1","onPlacesChanged","updaterMap$1","StandaloneSearchBox","searchBox","setSearchBoxCallback","places","querySelector","searchBox_1","SearchBox","setSearchBox","onPlaceChanged","restrictions","setComponentRestrictions","fields","setFields","types","setTypes","Autocomplete","autocomplete","setAutocompleteCallback","autocomplete_1"],"sources":["C:\\Users\\beast\\source\\abc_repos\\hc_react_map_npm\\node_modules\\@react-google-maps\\api\\dist\\esm.js"],"sourcesContent":["import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { createContext, useContext, memo, useState, useRef, useEffect, PureComponent, createRef, useMemo, Children, isValidElement, cloneElement } from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPortal } from 'react-dom';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest$1(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter$1(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar NODE_ENV = process.env.NODE_ENV;\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nvar invariant_1 = invariant;\n\nvar invariant$1 = /*@__PURE__*/getDefaultExportFromCjs(invariant_1);\n\nvar MapContext = createContext(null);\nfunction useGoogleMap() {\n invariant$1(!!useContext, 'useGoogleMap is React hook and requires React version 16.8+');\n var map = useContext(MapContext);\n invariant$1(!!map, 'useGoogleMap needs a GoogleMap available up in the tree');\n return map;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction reduce(obj, fn, acc) {\n return Object.keys(obj).reduce(function reducer(newAcc, key) {\n return fn(newAcc, obj[key], key);\n }, acc);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction forEach(obj, fn) {\n Object.keys(obj).forEach(function (key) {\n return fn(obj[key], key);\n });\n}\n\n/* global google */\nfunction applyUpdaterToNextProps(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nupdaterMap, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprevProps, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nnextProps, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninstance\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var map = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var iter = function (fn, key) {\n var nextValue = nextProps[key];\n if (nextValue !== prevProps[key]) {\n map[key] = nextValue;\n fn(instance, nextValue);\n }\n };\n forEach(updaterMap, iter);\n return map;\n}\nfunction registerEvents(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprops, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninstance, eventMap) {\n var registeredList = reduce(eventMap, function reducer(acc, googleEventName, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onEventName) {\n if (typeof props[onEventName] === 'function') {\n acc.push(google.maps.event.addListener(instance, googleEventName, props[onEventName]));\n }\n return acc;\n }, []);\n return registeredList;\n}\nfunction unregisterEvent(registered) {\n google.maps.event.removeListener(registered);\n}\nfunction unregisterEvents(events) {\n if (events === void 0) { events = []; }\n events.forEach(unregisterEvent);\n}\nfunction applyUpdatersToPropsAndRegisterEvents(_a) {\n var updaterMap = _a.updaterMap, eventMap = _a.eventMap, prevProps = _a.prevProps, nextProps = _a.nextProps, instance = _a.instance;\n var registeredEvents = registerEvents(nextProps, instance, eventMap);\n applyUpdaterToNextProps(updaterMap, prevProps, nextProps, instance);\n return registeredEvents;\n}\n\nvar eventMap$i = {\n onDblClick: 'dblclick',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMapTypeIdChanged: 'maptypeid_changed',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseDown: 'mousedown',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n onTilesLoaded: 'tilesloaded',\n onBoundsChanged: 'bounds_changed',\n onCenterChanged: 'center_changed',\n onClick: 'click',\n onDrag: 'drag',\n onHeadingChanged: 'heading_changed',\n onIdle: 'idle',\n onProjectionChanged: 'projection_changed',\n onResize: 'resize',\n onTiltChanged: 'tilt_changed',\n onZoomChanged: 'zoom_changed',\n};\nvar updaterMap$i = {\n extraMapTypes: function (map, extra) {\n extra.forEach(function forEachExtra(it, i) {\n map.mapTypes.set(String(i), it);\n });\n },\n center: function (map, center) {\n map.setCenter(center);\n },\n clickableIcons: function (map, clickable) {\n map.setClickableIcons(clickable);\n },\n heading: function (map, heading) {\n map.setHeading(heading);\n },\n mapTypeId: function (map, mapTypeId) {\n map.setMapTypeId(mapTypeId);\n },\n options: function (map, options) {\n map.setOptions(options);\n },\n streetView: function (map, streetView) {\n map.setStreetView(streetView);\n },\n tilt: function (map, tilt) {\n map.setTilt(tilt);\n },\n zoom: function (map, zoom) {\n map.setZoom(zoom);\n },\n};\n// TODO: unfinished!\nfunction GoogleMapFunctional(_a) {\n var children = _a.children, options = _a.options, id = _a.id, mapContainerStyle = _a.mapContainerStyle, mapContainerClassName = _a.mapContainerClassName, center = _a.center, \n // clickableIcons,\n // extraMapTypes,\n // heading,\n // mapTypeId,\n onClick = _a.onClick, onDblClick = _a.onDblClick, onDrag = _a.onDrag, onDragEnd = _a.onDragEnd, onDragStart = _a.onDragStart, onMouseMove = _a.onMouseMove, onMouseOut = _a.onMouseOut, onMouseOver = _a.onMouseOver, onMouseDown = _a.onMouseDown, onMouseUp = _a.onMouseUp, onRightClick = _a.onRightClick, \n // onMapTypeIdChanged,\n // onTilesLoaded,\n // onBoundsChanged,\n onCenterChanged = _a.onCenterChanged, \n // onHeadingChanged,\n // onIdle,\n // onProjectionChanged,\n // onResize,\n // onTiltChanged,\n // onZoomChanged,\n onLoad = _a.onLoad, onUnmount = _a.onUnmount;\n var _b = useState(null), map = _b[0], setMap = _b[1];\n var ref = useRef(null);\n // const [extraMapTypesListener, setExtraMapTypesListener] = useState<google.maps.MapsEventListener | null>(null)\n var _c = useState(null), centerChangedListener = _c[0], setCenterChangedListener = _c[1];\n var _d = useState(null), dblclickListener = _d[0], setDblclickListener = _d[1];\n var _e = useState(null), dragendListener = _e[0], setDragendListener = _e[1];\n var _f = useState(null), dragstartListener = _f[0], setDragstartListener = _f[1];\n var _g = useState(null), mousedownListener = _g[0], setMousedownListener = _g[1];\n var _h = useState(null), mousemoveListener = _h[0], setMousemoveListener = _h[1];\n var _j = useState(null), mouseoutListener = _j[0], setMouseoutListener = _j[1];\n var _k = useState(null), mouseoverListener = _k[0], setMouseoverListener = _k[1];\n var _l = useState(null), mouseupListener = _l[0], setMouseupListener = _l[1];\n var _m = useState(null), rightclickListener = _m[0], setRightclickListener = _m[1];\n var _o = useState(null), clickListener = _o[0], setClickListener = _o[1];\n var _p = useState(null), dragListener = _p[0], setDragListener = _p[1];\n // Order does matter\n useEffect(function () {\n if (options && map !== null) {\n map.setOptions(options);\n }\n }, [map, options]);\n useEffect(function () {\n if (map !== null && typeof center !== 'undefined') {\n map.setCenter(center);\n }\n }, [map, center]);\n useEffect(function () {\n if (map && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(map, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (map && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(map, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(function () {\n if (map && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(map, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(function () {\n if (map && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(map, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (map && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(map, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(function () {\n if (map && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(map, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (map && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(map, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (map && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(map, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (map && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(map, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (map && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(map, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (map && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(map, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(function () {\n if (map && onCenterChanged) {\n if (centerChangedListener !== null) {\n google.maps.event.removeListener(centerChangedListener);\n }\n setCenterChangedListener(google.maps.event.addListener(map, 'center_changed', onCenterChanged));\n }\n }, [onClick]);\n useEffect(function () {\n var map = ref.current === null\n ? null\n : new google.maps.Map(ref.current, options);\n setMap(map);\n if (map !== null && onLoad) {\n onLoad(map);\n }\n return function () {\n if (map !== null) {\n if (onUnmount) {\n onUnmount(map);\n }\n }\n };\n }, []);\n return (jsx(\"div\", { id: id, ref: ref, style: mapContainerStyle, className: mapContainerClassName, children: jsx(MapContext.Provider, { value: map, children: map !== null ? children : null }) }));\n}\nmemo(GoogleMapFunctional);\nvar GoogleMap = /** @class */ (function (_super) {\n __extends(GoogleMap, _super);\n function GoogleMap() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n map: null,\n };\n _this.registeredEvents = [];\n _this.mapRef = null;\n _this.getInstance = function () {\n if (_this.mapRef === null) {\n return null;\n }\n return new google.maps.Map(_this.mapRef, _this.props.options);\n };\n _this.panTo = function (latLng) {\n var map = _this.getInstance();\n if (map) {\n map.panTo(latLng);\n }\n };\n _this.setMapCallback = function () {\n if (_this.state.map !== null) {\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.state.map);\n }\n }\n };\n _this.getRef = function (ref) {\n _this.mapRef = ref;\n };\n return _this;\n }\n GoogleMap.prototype.componentDidMount = function () {\n var map = this.getInstance();\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$i,\n eventMap: eventMap$i,\n prevProps: {},\n nextProps: this.props,\n instance: map,\n });\n this.setState(function setMap() {\n return {\n map: map,\n };\n }, this.setMapCallback);\n };\n GoogleMap.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.map !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$i,\n eventMap: eventMap$i,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.map,\n });\n }\n };\n GoogleMap.prototype.componentWillUnmount = function () {\n if (this.state.map !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.map);\n }\n unregisterEvents(this.registeredEvents);\n }\n };\n GoogleMap.prototype.render = function () {\n return (jsx(\"div\", { id: this.props.id, ref: this.getRef, style: this.props.mapContainerStyle, className: this.props.mapContainerClassName, children: jsx(MapContext.Provider, { value: this.state.map, children: this.state.map !== null ? this.props.children : null }) }));\n };\n return GoogleMap;\n}(PureComponent));\n\nvar isBrowser = typeof document !== 'undefined';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction injectScript(_a) {\n var url = _a.url, id = _a.id, nonce = _a.nonce;\n if (!isBrowser) {\n return Promise.reject(new Error('document is undefined'));\n }\n return new Promise(function injectScriptCallback(resolve, reject) {\n var existingScript = document.getElementById(id);\n var windowWithGoogleMap = window;\n if (existingScript) {\n // Same script id/url: keep same script\n var dataStateAttribute = existingScript.getAttribute('data-state');\n if (existingScript.src === url && dataStateAttribute !== 'error') {\n if (dataStateAttribute === 'ready') {\n return resolve(id);\n }\n else {\n var originalInitMap_1 = windowWithGoogleMap.initMap;\n var originalErrorCallback_1 = existingScript.onerror;\n windowWithGoogleMap.initMap = function initMap() {\n if (originalInitMap_1) {\n originalInitMap_1();\n }\n resolve(id);\n };\n existingScript.onerror = function (err) {\n if (originalErrorCallback_1) {\n originalErrorCallback_1(err);\n }\n reject(err);\n };\n return;\n }\n }\n // Same script id, but either\n // 1. requested URL is different\n // 2. script failed to load\n else {\n existingScript.remove();\n }\n }\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n script.id = id;\n script.async = true;\n script.nonce = nonce || '';\n script.onerror = function onerror(err) {\n script.setAttribute('data-state', 'error');\n reject(err);\n };\n windowWithGoogleMap.initMap = function onload() {\n script.setAttribute('data-state', 'ready');\n resolve(id);\n };\n document.head.appendChild(script);\n }).catch(function (err) {\n console.error('injectScript error: ', err);\n throw err;\n });\n}\n\nfunction isGoogleFontStyle(element) {\n // 'Roboto' or 'Google Sans Text' font download\n var href = element.href;\n if (href && (href.indexOf('https://fonts.googleapis.com/css?family=Roboto') === 0 ||\n href.indexOf('https://fonts.googleapis.com/css?family=Google+Sans+Text') === 0)) {\n return true;\n }\n // font style elements\n if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.tagName.toLowerCase() === 'style' &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.styleSheet &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.styleSheet.cssText &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.styleSheet.cssText.replace('\\r\\n', '').indexOf('.gm-style') === 0) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.styleSheet.cssText = '';\n return true;\n }\n // font style elements for other browsers\n if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.tagName.toLowerCase() === 'style' &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.innerHTML &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.innerHTML.replace('\\r\\n', '').indexOf('.gm-style') === 0) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.innerHTML = '';\n return true;\n }\n // when google tries to add empty style\n if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n element.tagName.toLowerCase() === 'style' &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n !element.styleSheet &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n !element.innerHTML) {\n return true;\n }\n return false;\n}\n// Preventing the Google Maps library from downloading an extra font\nfunction preventGoogleFonts() {\n // we override these methods only for one particular head element\n // default methods for other elements are not affected\n var head = document.getElementsByTagName('head')[0];\n if (head) {\n var trueInsertBefore_1 = head.insertBefore.bind(head);\n // TODO: adding return before reflect solves the TS issue\n head.insertBefore = function insertBefore(newElement, referenceElement) {\n if (!isGoogleFontStyle(newElement)) {\n Reflect.apply(trueInsertBefore_1, head, [newElement, referenceElement]);\n }\n return newElement;\n };\n var trueAppend_1 = head.appendChild.bind(head);\n // TODO: adding return before reflect solves the TS issue\n head.appendChild = function appendChild(textNode) {\n if (!isGoogleFontStyle(textNode)) {\n Reflect.apply(trueAppend_1, head, [textNode]);\n }\n return textNode;\n };\n }\n}\n\nfunction makeLoadScriptUrl(_a) {\n var googleMapsApiKey = _a.googleMapsApiKey, googleMapsClientId = _a.googleMapsClientId, _b = _a.version, version = _b === void 0 ? 'weekly' : _b, language = _a.language, region = _a.region, libraries = _a.libraries, channel = _a.channel, mapIds = _a.mapIds, authReferrerPolicy = _a.authReferrerPolicy;\n var params = [];\n invariant$1((googleMapsApiKey && googleMapsClientId) || !(googleMapsApiKey && googleMapsClientId), 'You need to specify either googleMapsApiKey or googleMapsClientId for @react-google-maps/api load script to work. You cannot use both at the same time.');\n if (googleMapsApiKey) {\n params.push(\"key=\".concat(googleMapsApiKey));\n }\n else if (googleMapsClientId) {\n params.push(\"client=\".concat(googleMapsClientId));\n }\n if (version) {\n params.push(\"v=\".concat(version));\n }\n if (language) {\n params.push(\"language=\".concat(language));\n }\n if (region) {\n params.push(\"region=\".concat(region));\n }\n if (libraries && libraries.length) {\n params.push(\"libraries=\".concat(libraries.sort().join(',')));\n }\n if (channel) {\n params.push(\"channel=\".concat(channel));\n }\n if (mapIds && mapIds.length) {\n params.push(\"map_ids=\".concat(mapIds.join(',')));\n }\n if (authReferrerPolicy) {\n params.push(\"auth_referrer_policy=\".concat(authReferrerPolicy));\n }\n params.push('callback=initMap');\n return \"https://maps.googleapis.com/maps/api/js?\".concat(params.join('&'));\n}\n\nvar cleaningUp = false;\nfunction DefaultLoadingElement() {\n return jsx(\"div\", { children: \"Loading...\" });\n}\nvar defaultLoadScriptProps = {\n id: 'script-loader',\n version: 'weekly',\n};\nvar LoadScript = /** @class */ (function (_super) {\n __extends(LoadScript, _super);\n function LoadScript() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.check = createRef();\n _this.state = {\n loaded: false,\n };\n _this.cleanupCallback = function () {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete window.google.maps;\n _this.injectScript();\n };\n _this.isCleaningUp = function () { return __awaiter$1(_this, void 0, void 0, function () {\n function promiseCallback(resolve) {\n if (!cleaningUp) {\n resolve();\n }\n else {\n if (isBrowser) {\n var timer_1 = window.setInterval(function interval() {\n if (!cleaningUp) {\n window.clearInterval(timer_1);\n resolve();\n }\n }, 1);\n }\n }\n return;\n }\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(promiseCallback)];\n });\n }); };\n _this.cleanup = function () {\n cleaningUp = true;\n var script = document.getElementById(_this.props.id);\n if (script && script.parentNode) {\n script.parentNode.removeChild(script);\n }\n Array.prototype.slice\n .call(document.getElementsByTagName('script'))\n .filter(function filter(script) {\n return typeof script.src === 'string' && script.src.includes('maps.googleapis');\n })\n .forEach(function forEach(script) {\n if (script.parentNode) {\n script.parentNode.removeChild(script);\n }\n });\n Array.prototype.slice\n .call(document.getElementsByTagName('link'))\n .filter(function filter(link) {\n return (link.href === 'https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Google+Sans');\n })\n .forEach(function forEach(link) {\n if (link.parentNode) {\n link.parentNode.removeChild(link);\n }\n });\n Array.prototype.slice\n .call(document.getElementsByTagName('style'))\n .filter(function filter(style) {\n return (style.innerText !== undefined &&\n style.innerText.length > 0 &&\n style.innerText.includes('.gm-'));\n })\n .forEach(function forEach(style) {\n if (style.parentNode) {\n style.parentNode.removeChild(style);\n }\n });\n };\n _this.injectScript = function () {\n if (_this.props.preventGoogleFontsLoading) {\n preventGoogleFonts();\n }\n invariant$1(!!_this.props.id, 'LoadScript requires \"id\" prop to be a string: %s', _this.props.id);\n var injectScriptOptions = {\n id: _this.props.id,\n nonce: _this.props.nonce,\n url: makeLoadScriptUrl(_this.props),\n };\n injectScript(injectScriptOptions)\n .then(function () {\n if (_this.props.onLoad) {\n _this.props.onLoad();\n }\n _this.setState(function setLoaded() {\n return {\n loaded: true,\n };\n });\n return;\n })\n .catch(function (err) {\n if (_this.props.onError) {\n _this.props.onError(err);\n }\n console.error(\"\\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key (\".concat(_this\n .props.googleMapsApiKey || '-', \") or Client ID (\").concat(_this.props.googleMapsClientId ||\n '-', \") to <LoadScript />\\n Otherwise it is a Network issue.\\n \"));\n });\n };\n return _this;\n }\n LoadScript.prototype.componentDidMount = function () {\n if (isBrowser) {\n if (window.google && window.google.maps && !cleaningUp) {\n console.error('google api is already presented');\n return;\n }\n this.isCleaningUp()\n .then(this.injectScript)\n .catch(function error(err) {\n console.error('Error at injecting script after cleaning up: ', err);\n });\n }\n };\n LoadScript.prototype.componentDidUpdate = function (prevProps) {\n if (this.props.libraries !== prevProps.libraries) {\n console.warn('Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables');\n }\n if (isBrowser && prevProps.language !== this.props.language) {\n this.cleanup();\n // TODO: refactor to use gDSFP maybe... wait for hooks refactoring.\n this.setState(function setLoaded() {\n return {\n loaded: false,\n };\n }, this.cleanupCallback);\n }\n };\n LoadScript.prototype.componentWillUnmount = function () {\n var _this = this;\n if (isBrowser) {\n this.cleanup();\n var timeoutCallback = function () {\n if (!_this.check.current) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete window.google;\n cleaningUp = false;\n }\n };\n window.setTimeout(timeoutCallback, 1);\n if (this.props.onUnmount) {\n this.props.onUnmount();\n }\n }\n };\n LoadScript.prototype.render = function () {\n return (jsxs(Fragment, { children: [jsx(\"div\", { ref: this.check }), this.state.loaded\n ? this.props.children\n : this.props.loadingElement || jsx(DefaultLoadingElement, {})] }));\n };\n LoadScript.defaultProps = defaultLoadScriptProps;\n return LoadScript;\n}(PureComponent));\n\n/* eslint-disable filenames/match-regex */\nvar previouslyLoadedUrl;\nfunction useLoadScript(_a) {\n var _b = _a.id, id = _b === void 0 ? defaultLoadScriptProps.id : _b, _c = _a.version, version = _c === void 0 ? defaultLoadScriptProps.version : _c, nonce = _a.nonce, googleMapsApiKey = _a.googleMapsApiKey, googleMapsClientId = _a.googleMapsClientId, language = _a.language, region = _a.region, libraries = _a.libraries, preventGoogleFontsLoading = _a.preventGoogleFontsLoading, channel = _a.channel, mapIds = _a.mapIds, authReferrerPolicy = _a.authReferrerPolicy;\n var isMounted = useRef(false);\n var _d = useState(false), isLoaded = _d[0], setLoaded = _d[1];\n var _e = useState(undefined), loadError = _e[0], setLoadError = _e[1];\n useEffect(function trackMountedState() {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n useEffect(function applyPreventGoogleFonts() {\n if (isBrowser && preventGoogleFontsLoading) {\n preventGoogleFonts();\n }\n }, [preventGoogleFontsLoading]);\n useEffect(function validateLoadedState() {\n if (isLoaded) {\n invariant$1(!!window.google, 'useLoadScript was marked as loaded, but window.google is not present. Something went wrong.');\n }\n }, [isLoaded]);\n var url = makeLoadScriptUrl({\n version: version,\n googleMapsApiKey: googleMapsApiKey,\n googleMapsClientId: googleMapsClientId,\n language: language,\n region: region,\n libraries: libraries,\n channel: channel,\n mapIds: mapIds,\n authReferrerPolicy: authReferrerPolicy\n });\n useEffect(function loadScriptAndModifyLoadedState() {\n if (!isBrowser) {\n return;\n }\n function setLoadedIfMounted() {\n if (isMounted.current) {\n setLoaded(true);\n previouslyLoadedUrl = url;\n }\n }\n if (window.google && window.google.maps && previouslyLoadedUrl === url) {\n setLoadedIfMounted();\n return;\n }\n injectScript({ id: id, url: url, nonce: nonce })\n .then(setLoadedIfMounted)\n .catch(function handleInjectError(err) {\n if (isMounted.current) {\n setLoadError(err);\n }\n console.warn(\"\\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key (\".concat(googleMapsApiKey ||\n '-', \") or Client ID (\").concat(googleMapsClientId || '-', \")\\n Otherwise it is a Network issue.\\n \"));\n console.error(err);\n });\n }, [id, url, nonce]);\n var prevLibraries = useRef();\n useEffect(function checkPerformance() {\n if (prevLibraries.current && libraries !== prevLibraries.current) {\n console.warn('Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables');\n }\n prevLibraries.current = libraries;\n }, [libraries]);\n return { isLoaded: isLoaded, loadError: loadError, url: url };\n}\n\nvar defaultLoadingElement = jsx(DefaultLoadingElement, {});\nfunction LoadScriptNext(_a) {\n var loadingElement = _a.loadingElement, onLoad = _a.onLoad, onError = _a.onError, onUnmount = _a.onUnmount, children = _a.children, hookOptions = __rest$1(_a, [\"loadingElement\", \"onLoad\", \"onError\", \"onUnmount\", \"children\"]);\n var _b = useLoadScript(hookOptions), isLoaded = _b.isLoaded, loadError = _b.loadError;\n useEffect(function handleOnLoad() {\n if (isLoaded && typeof onLoad === 'function') {\n onLoad();\n }\n }, [isLoaded, onLoad]);\n useEffect(function handleOnError() {\n if (loadError && typeof onError === 'function') {\n onError(loadError);\n }\n }, [loadError, onError]);\n useEffect(function handleOnUnmount() {\n return function () {\n if (onUnmount) {\n onUnmount();\n }\n };\n }, [onUnmount]);\n return isLoaded ? children : loadingElement || defaultLoadingElement;\n}\nvar LoadScriptNext$1 = memo(LoadScriptNext);\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual$1 = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey, authReferrerPolicy, channel, client, id = DEFAULT_ID, language, libraries = [], mapIds, nonce, region, retries = 3, url = \"https://maps.googleapis.com/maps/api/js\", version, }) {\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.apiKey = apiKey;\n this.authReferrerPolicy = authReferrerPolicy;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.language = language;\n this.libraries = libraries;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.region = region;\n this.retries = retries;\n this.url = url;\n this.version = version;\n if (Loader.instance) {\n if (!fastDeepEqual$1(this.options, Loader.instance.options)) {\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n * @deprecated\n */\n createUrl() {\n let url = this.url;\n url += `?callback=__googleMapsCallback`;\n if (this.apiKey) {\n url += `&key=${this.apiKey}`;\n }\n if (this.channel) {\n url += `&channel=${this.channel}`;\n }\n if (this.client) {\n url += `&client=${this.client}`;\n }\n if (this.libraries.length > 0) {\n url += `&libraries=${this.libraries.join(\",\")}`;\n }\n if (this.language) {\n url += `&language=${this.language}`;\n }\n if (this.region) {\n url += `®ion=${this.region}`;\n }\n if (this.version) {\n url += `&v=${this.version}`;\n }\n if (this.mapIds) {\n url += `&map_ids=${this.mapIds.join(\",\")}`;\n }\n if (this.authReferrerPolicy) {\n url += `&auth_referrer_policy=${this.authReferrerPolicy}`;\n }\n return url;\n }\n deleteScript() {\n const script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n * @deprecated, use importLibrary() instead.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n * @deprecated, use importLibrary() instead.\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback((err) => {\n if (!err) {\n resolve(window.google);\n }\n else {\n reject(err.error);\n }\n });\n });\n }\n importLibrary(name) {\n this.execute();\n return google.maps.importLibrary(name);\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n * @deprecated, use importLibrary() instead.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n var _a, _b;\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n const params = {\n key: this.apiKey,\n channel: this.channel,\n client: this.client,\n libraries: this.libraries.length && this.libraries,\n v: this.version,\n mapIds: this.mapIds,\n language: this.language,\n region: this.region,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n // keep the URL minimal:\n Object.keys(params).forEach(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (key) => !params[key] && delete params[key]);\n if (!((_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.importLibrary)) {\n // tweaked copy of https://developers.google.com/maps/documentation/javascript/load-maps-js-api#dynamic-library-import\n // which also sets the base url, the id, and the nonce\n /* eslint-disable */\n ((g) => {\n // @ts-ignore\n let h, a, k, p = \"The Google Maps JavaScript API\", c = \"google\", l = \"importLibrary\", q = \"__ib__\", m = document, b = window;\n // @ts-ignore\n b = b[c] || (b[c] = {});\n // @ts-ignore\n const d = b.maps || (b.maps = {}), r = new Set(), e = new URLSearchParams(), u = () => \n // @ts-ignore\n h || (h = new Promise((f, n) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n yield (a = m.createElement(\"script\"));\n a.id = this.id;\n e.set(\"libraries\", [...r] + \"\");\n // @ts-ignore\n for (k in g)\n e.set(k.replace(/[A-Z]/g, (t) => \"_\" + t[0].toLowerCase()), g[k]);\n e.set(\"callback\", c + \".maps.\" + q);\n a.src = this.url + `?` + e;\n d[q] = f;\n a.onerror = () => (h = n(Error(p + \" could not load.\")));\n // @ts-ignore\n a.nonce = this.nonce || ((_a = m.querySelector(\"script[nonce]\")) === null || _a === void 0 ? void 0 : _a.nonce) || \"\";\n m.head.append(a);\n })));\n // @ts-ignore\n d[l] ? console.warn(p + \" only loads once. Ignoring:\", g) : (d[l] = (f, ...n) => r.add(f) && u().then(() => d[l](f, ...n)));\n })(params);\n /* eslint-enable */\n }\n // While most libraries populate the global namespace when loaded via bootstrap params,\n // this is not the case for \"marker\" when used with the inline bootstrap loader\n // (and maybe others in the future). So ensure there is an importLibrary for each:\n const libraryPromises = this.libraries.map((library) => this.importLibrary(library));\n // ensure at least one library, to kick off loading...\n if (!libraryPromises.length) {\n libraryPromises.push(this.importLibrary(\"core\"));\n }\n Promise.all(libraryPromises).then(() => this.callback(), (error) => {\n const event = new ErrorEvent(\"error\", { error }); // for backwards compat\n this.loadErrorCallback(event);\n });\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n const delay = this.errors.length * Math.pow(2, this.errors.length);\n console.error(`Failed to load Google Maps script, retrying in ${delay} ms.`);\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n }\n else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach((cb) => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.done) {\n this.callback();\n }\n else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.\" +\n \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n if (this.loading) ;\n else {\n this.loading = true;\n this.setScript();\n }\n }\n }\n}\n\nvar defaultLibraries = ['maps'];\nfunction useJsApiLoader(_a) {\n var _b = _a.id, id = _b === void 0 ? defaultLoadScriptProps.id : _b, _c = _a.version, version = _c === void 0 ? defaultLoadScriptProps.version : _c, nonce = _a.nonce, googleMapsApiKey = _a.googleMapsApiKey, \n // googleMapsClientId,\n language = _a.language, region = _a.region, _d = _a.libraries, libraries = _d === void 0 ? defaultLibraries : _d, preventGoogleFontsLoading = _a.preventGoogleFontsLoading, \n // channel,\n mapIds = _a.mapIds, authReferrerPolicy = _a.authReferrerPolicy;\n var isMounted = useRef(false);\n var _e = useState(false), isLoaded = _e[0], setLoaded = _e[1];\n var _f = useState(undefined), loadError = _f[0], setLoadError = _f[1];\n useEffect(function trackMountedState() {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n var loader = useMemo(function () {\n return new Loader({\n id: id,\n apiKey: googleMapsApiKey,\n version: version,\n libraries: libraries,\n language: language || 'en',\n region: region || 'US',\n mapIds: mapIds || [],\n nonce: nonce || '',\n authReferrerPolicy: authReferrerPolicy || 'origin',\n });\n }, [id, googleMapsApiKey, version, libraries, language, region, mapIds, nonce, authReferrerPolicy]);\n useEffect(function effect() {\n if (isLoaded) {\n return;\n }\n else {\n loader.load().then(function () {\n if (isMounted.current) {\n setLoaded(true);\n }\n return;\n })\n .catch(function (error) {\n setLoadError(error);\n });\n }\n }, []);\n useEffect(function () {\n if (isBrowser && preventGoogleFontsLoading) {\n preventGoogleFonts();\n }\n }, [preventGoogleFontsLoading]);\n var prevLibraries = useRef();\n useEffect(function () {\n if (prevLibraries.current && libraries !== prevLibraries.current) {\n console.warn('Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables');\n }\n prevLibraries.current = libraries;\n }, [libraries]);\n return { isLoaded: isLoaded, loadError: loadError };\n}\n\nvar eventMap$h = {};\nvar updaterMap$h = {\n options: function (instance, options) {\n instance.setOptions(options);\n },\n};\nfunction TrafficLayerFunctional(_a) {\n var options = _a.options, onLoad = _a.onLoad, onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n var trafficLayer = new google.maps.TrafficLayer(__assign(__assign({}, (options || {})), { map: map }));\n setInstance(trafficLayer);\n if (onLoad) {\n onLoad(trafficLayer);\n }\n return function () {\n if (instance !== null) {\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nvar TrafficLayerF = memo(TrafficLayerFunctional);\nvar TrafficLayer = /** @class */ (function (_super) {\n __extends(TrafficLayer, _super);\n function TrafficLayer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n trafficLayer: null,\n };\n _this.setTrafficLayerCallback = function () {\n if (_this.state.trafficLayer !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.trafficLayer);\n }\n };\n _this.registeredEvents = [];\n return _this;\n }\n TrafficLayer.prototype.componentDidMount = function () {\n var trafficLayer = new google.maps.TrafficLayer(__assign(__assign({}, (this.props.options || {})), { map: this.context }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$h,\n eventMap: eventMap$h,\n prevProps: {},\n nextProps: this.props,\n instance: trafficLayer,\n });\n this.setState(function setTrafficLayer() {\n return {\n trafficLayer: trafficLayer,\n };\n }, this.setTrafficLayerCallback);\n };\n TrafficLayer.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.trafficLayer !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$h,\n eventMap: eventMap$h,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.trafficLayer,\n });\n }\n };\n TrafficLayer.prototype.componentWillUnmount = function () {\n if (this.state.trafficLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.trafficLayer);\n }\n unregisterEvents(this.registeredEvents);\n this.state.trafficLayer.setMap(null);\n }\n };\n TrafficLayer.prototype.render = function () {\n return null;\n };\n TrafficLayer.contextType = MapContext;\n return TrafficLayer;\n}(PureComponent));\n\nfunction BicyclingLayerFunctional(_a) {\n var onLoad = _a.onLoad, onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n var bicyclingLayer = new google.maps.BicyclingLayer();\n setInstance(bicyclingLayer);\n bicyclingLayer.setMap(map);\n if (onLoad) {\n onLoad(bicyclingLayer);\n }\n return function () {\n if (bicyclingLayer !== null) {\n if (onUnmount) {\n onUnmount(bicyclingLayer);\n }\n bicyclingLayer.setMap(null);\n }\n };\n }, []);\n return null;\n}\nvar BicyclingLayerF = memo(BicyclingLayerFunctional);\nvar BicyclingLayer = /** @class */ (function (_super) {\n __extends(BicyclingLayer, _super);\n function BicyclingLayer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n bicyclingLayer: null,\n };\n _this.setBicyclingLayerCallback = function () {\n if (_this.state.bicyclingLayer !== null) {\n _this.state.bicyclingLayer.setMap(_this.context);\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.state.bicyclingLayer);\n }\n }\n };\n return _this;\n }\n BicyclingLayer.prototype.componentDidMount = function () {\n var bicyclingLayer = new google.maps.BicyclingLayer();\n this.setState(function () {\n return {\n bicyclingLayer: bicyclingLayer,\n };\n }, this.setBicyclingLayerCallback);\n };\n BicyclingLayer.prototype.componentWillUnmount = function () {\n if (this.state.bicyclingLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.bicyclingLayer);\n }\n this.state.bicyclingLayer.setMap(null);\n }\n };\n BicyclingLayer.prototype.render = function () {\n return null;\n };\n BicyclingLayer.contextType = MapContext;\n return BicyclingLayer;\n}(PureComponent));\n\nfunction TransitLayerFunctional(_a) {\n var onLoad = _a.onLoad, onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n var transitLayer = new google.maps.TransitLayer();\n setInstance(transitLayer);\n transitLayer.setMap(map);\n if (onLoad) {\n onLoad(transitLayer);\n }\n return function () {\n if (instance !== null) {\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nvar TransitLayerF = memo(TransitLayerFunctional);\nvar TransitLayer = /** @class */ (function (_super) {\n __extends(TransitLayer, _super);\n function TransitLayer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n transitLayer: null,\n };\n _this.setTransitLayerCallback = function () {\n if (_this.state.transitLayer !== null) {\n _this.state.transitLayer.setMap(_this.context);\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.state.transitLayer);\n }\n }\n };\n return _this;\n }\n TransitLayer.prototype.componentDidMount = function () {\n var transitLayer = new google.maps.TransitLayer();\n this.setState(function setTransitLayer() {\n return {\n transitLayer: transitLayer,\n };\n }, this.setTransitLayerCallback);\n };\n TransitLayer.prototype.componentWillUnmount = function () {\n if (this.state.transitLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.transitLayer);\n }\n this.state.transitLayer.setMap(null);\n }\n };\n TransitLayer.prototype.render = function () {\n return null;\n };\n TransitLayer.contextType = MapContext;\n return TransitLayer;\n}(PureComponent));\n\nvar eventMap$g = {\n onCircleComplete: 'circlecomplete',\n onMarkerComplete: 'markercomplete',\n onOverlayComplete: 'overlaycomplete',\n onPolygonComplete: 'polygoncomplete',\n onPolylineComplete: 'polylinecomplete',\n onRectangleComplete: 'rectanglecomplete',\n};\nvar updaterMap$g = {\n drawingMode: function (instance, drawingMode) {\n instance.setDrawingMode(drawingMode);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n};\nfunction DrawingManagerFunctional(_a) {\n var options = _a.options, drawingMode = _a.drawingMode, onCircleComplete = _a.onCircleComplete, onMarkerComplete = _a.onMarkerComplete, onOverlayComplete = _a.onOverlayComplete, onPolygonComplete = _a.onPolygonComplete, onPolylineComplete = _a.onPolylineComplete, onRectangleComplete = _a.onRectangleComplete, onLoad = _a.onLoad, onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n var _c = useState(null), circlecompleteListener = _c[0], setCircleCompleteListener = _c[1];\n var _d = useState(null), markercompleteListener = _d[0], setMarkerCompleteListener = _d[1];\n var _e = useState(null), overlaycompleteListener = _e[0], setOverlayCompleteListener = _e[1];\n var _f = useState(null), polygoncompleteListener = _f[0], setPolygonCompleteListener = _f[1];\n var _g = useState(null), polylinecompleteListener = _g[0], setPolylineCompleteListener = _g[1];\n var _h = useState(null), rectanglecompleteListener = _h[0], setRectangleCompleteListener = _h[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (instance !== null) {\n instance.setDrawingMode(drawingMode !== null && drawingMode !== void 0 ? drawingMode : null);\n }\n }, [instance, drawingMode]);\n useEffect(function () {\n if (instance && onCircleComplete) {\n if (circlecompleteListener !== null) {\n google.maps.event.removeListener(circlecompleteListener);\n }\n setCircleCompleteListener(google.maps.event.addListener(instance, 'circlecomplete', onCircleComplete));\n }\n }, [instance, onCircleComplete]);\n useEffect(function () {\n if (instance && onMarkerComplete) {\n if (markercompleteListener !== null) {\n google.maps.event.removeListener(markercompleteListener);\n }\n setMarkerCompleteListener(google.maps.event.addListener(instance, 'markercomplete', onMarkerComplete));\n }\n }, [instance, onMarkerComplete]);\n useEffect(function () {\n if (instance && onOverlayComplete) {\n if (overlaycompleteListener !== null) {\n google.maps.event.removeListener(overlaycompleteListener);\n }\n setOverlayCompleteListener(google.maps.event.addListener(instance, 'overlaycomplete', onOverlayComplete));\n }\n }, [instance, onOverlayComplete]);\n useEffect(function () {\n if (instance && onPolygonComplete) {\n if (polygoncompleteListener !== null) {\n google.maps.event.removeListener(polygoncompleteListener);\n }\n setPolygonCompleteListener(google.maps.event.addListener(instance, 'polygoncomplete', onPolygonComplete));\n }\n }, [instance, onPolygonComplete]);\n useEffect(function () {\n if (instance && onPolylineComplete) {\n if (polylinecompleteListener !== null) {\n google.maps.event.removeListener(polylinecompleteListener);\n }\n setPolylineCompleteListener(google.maps.event.addListener(instance, 'polylinecomplete', onPolylineComplete));\n }\n }, [instance, onPolylineComplete]);\n useEffect(function () {\n if (instance && onRectangleComplete) {\n if (rectanglecompleteListener !== null) {\n google.maps.event.removeListener(rectanglecompleteListener);\n }\n setRectangleCompleteListener(google.maps.event.addListener(instance, 'rectanglecomplete', onRectangleComplete));\n }\n }, [instance, onRectangleComplete]);\n useEffect(function () {\n invariant$1(!!google.maps.drawing, \"Did you include prop libraries={['drawing']} in the URL? %s\", google.maps.drawing);\n var drawingManager = new google.maps.drawing.DrawingManager(__assign(__assign({}, (options || {})), { map: map }));\n if (drawingMode) {\n drawingManager.setDrawingMode(drawingMode);\n }\n if (onCircleComplete) {\n setCircleCompleteListener(google.maps.event.addListener(drawingManager, 'circlecomplete', onCircleComplete));\n }\n if (onMarkerComplete) {\n setMarkerCompleteListener(google.maps.event.addListener(drawingManager, 'markercomplete', onMarkerComplete));\n }\n if (onOverlayComplete) {\n setOverlayCompleteListener(google.maps.event.addListener(drawingManager, 'overlaycomplete', onOverlayComplete));\n }\n if (onPolygonComplete) {\n setPolygonCompleteListener(google.maps.event.addListener(drawingManager, 'polygoncomplete', onPolygonComplete));\n }\n if (onPolylineComplete) {\n setPolylineCompleteListener(google.maps.event.addListener(drawingManager, 'polylinecomplete', onPolylineComplete));\n }\n if (onRectangleComplete) {\n setRectangleCompleteListener(google.maps.event.addListener(drawingManager, 'rectanglecomplete', onRectangleComplete));\n }\n setInstance(drawingManager);\n if (onLoad) {\n onLoad(drawingManager);\n }\n return function () {\n if (instance !== null) {\n if (circlecompleteListener) {\n google.maps.event.removeListener(circlecompleteListener);\n }\n if (markercompleteListener) {\n google.maps.event.removeListener(markercompleteListener);\n }\n if (overlaycompleteListener) {\n google.maps.event.removeListener(overlaycompleteListener);\n }\n if (polygoncompleteListener) {\n google.maps.event.removeListener(polygoncompleteListener);\n }\n if (polylinecompleteListener) {\n google.maps.event.removeListener(polylinecompleteListener);\n }\n if (rectanglecompleteListener) {\n google.maps.event.removeListener(rectanglecompleteListener);\n }\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nvar DrawingManagerF = memo(DrawingManagerFunctional);\nvar DrawingManager = /** @class */ (function (_super) {\n __extends(DrawingManager, _super);\n function DrawingManager(props) {\n var _this = _super.call(this, props) || this;\n _this.registeredEvents = [];\n _this.state = {\n drawingManager: null,\n };\n _this.setDrawingManagerCallback = function () {\n if (_this.state.drawingManager !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.drawingManager);\n }\n };\n invariant$1(!!google.maps.drawing, \"Did you include prop libraries={['drawing']} in the URL? %s\", google.maps.drawing);\n return _this;\n }\n DrawingManager.prototype.componentDidMount = function () {\n var drawingManager = new google.maps.drawing.DrawingManager(__assign(__assign({}, (this.props.options || {})), { map: this.context }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$g,\n eventMap: eventMap$g,\n prevProps: {},\n nextProps: this.props,\n instance: drawingManager,\n });\n this.setState(function setDrawingManager() {\n return {\n drawingManager: drawingManager,\n };\n }, this.setDrawingManagerCallback);\n };\n DrawingManager.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.drawingManager !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$g,\n eventMap: eventMap$g,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.drawingManager,\n });\n }\n };\n DrawingManager.prototype.componentWillUnmount = function () {\n if (this.state.drawingManager !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.drawingManager);\n }\n unregisterEvents(this.registeredEvents);\n this.state.drawingManager.setMap(null);\n }\n };\n DrawingManager.prototype.render = function () {\n return null;\n };\n DrawingManager.contextType = MapContext;\n return DrawingManager;\n}(PureComponent));\n\nvar eventMap$f = {\n onAnimationChanged: 'animation_changed',\n onClick: 'click',\n onClickableChanged: 'clickable_changed',\n onCursorChanged: 'cursor_changed',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDraggableChanged: 'draggable_changed',\n onDragStart: 'dragstart',\n onFlatChanged: 'flat_changed',\n onIconChanged: 'icon_changed',\n onMouseDown: 'mousedown',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onPositionChanged: 'position_changed',\n onRightClick: 'rightclick',\n onShapeChanged: 'shape_changed',\n onTitleChanged: 'title_changed',\n onVisibleChanged: 'visible_changed',\n onZindexChanged: 'zindex_changed',\n};\nvar updaterMap$f = {\n animation: function (instance, animation) {\n instance.setAnimation(animation);\n },\n clickable: function (instance, clickable) {\n instance.setClickable(clickable);\n },\n cursor: function (instance, cursor) {\n instance.setCursor(cursor);\n },\n draggable: function (instance, draggable) {\n instance.setDraggable(draggable);\n },\n icon: function (instance, icon) {\n instance.setIcon(icon);\n },\n label: function (instance, label) {\n instance.setLabel(label);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n opacity: function (instance, opacity) {\n instance.setOpacity(opacity);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n position: function (instance, position) {\n instance.setPosition(position);\n },\n shape: function (instance, shape) {\n instance.setShape(shape);\n },\n title: function (instance, title) {\n instance.setTitle(title);\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n },\n zIndex: function (instance, zIndex) {\n instance.setZIndex(zIndex);\n },\n};\nvar defaultOptions$5 = {};\nfunction MarkerFunctional(_a) {\n var position = _a.position, options = _a.options, clusterer = _a.clusterer, noClustererRedraw = _a.noClustererRedraw, children = _a.children, draggable = _a.draggable, visible = _a.visible, animation = _a.animation, clickable = _a.clickable, cursor = _a.cursor, icon = _a.icon, label = _a.label, opacity = _a.opacity, shape = _a.shape, title = _a.title, zIndex = _a.zIndex, onClick = _a.onClick, onDblClick = _a.onDblClick, onDrag = _a.onDrag, onDragEnd = _a.onDragEnd, onDragStart = _a.onDragStart, onMouseOut = _a.onMouseOut, onMouseOver = _a.onMouseOver, onMouseUp = _a.onMouseUp, onMouseDown = _a.onMouseDown, onRightClick = _a.onRightClick, onClickableChanged = _a.onClickableChanged, onCursorChanged = _a.onCursorChanged, onAnimationChanged = _a.onAnimationChanged, onDraggableChanged = _a.onDraggableChanged, onFlatChanged = _a.onFlatChanged, onIconChanged = _a.onIconChanged, onPositionChanged = _a.onPositionChanged, onShapeChanged = _a.onShapeChanged, onTitleChanged = _a.onTitleChanged, onVisibleChanged = _a.onVisibleChanged, onZindexChanged = _a.onZindexChanged, onLoad = _a.onLoad, onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n var _c = useState(null), dblclickListener = _c[0], setDblclickListener = _c[1];\n var _d = useState(null), dragendListener = _d[0], setDragendListener = _d[1];\n var _e = useState(null), dragstartListener = _e[0], setDragstartListener = _e[1];\n var _f = useState(null), mousedownListener = _f[0], setMousedownListener = _f[1];\n var _g = useState(null), mouseoutListener = _g[0], setMouseoutListener = _g[1];\n var _h = useState(null), mouseoverListener = _h[0], setMouseoverListener = _h[1];\n var _j = useState(null), mouseupListener = _j[0], setMouseupListener = _j[1];\n var _k = useState(null), rightclickListener = _k[0], setRightclickListener = _k[1];\n var _l = useState(null), clickListener = _l[0], setClickListener = _l[1];\n var _m = useState(null), dragListener = _m[0], setDragListener = _m[1];\n var _o = useState(null), clickableChangedListener = _o[0], setClickableChangedListener = _o[1];\n var _p = useState(null), cursorChangedListener = _p[0], setCursorChangedListener = _p[1];\n var _q = useState(null), animationChangedListener = _q[0], setAnimationChangedListener = _q[1];\n var _r = useState(null), draggableChangedListener = _r[0], setDraggableChangedListener = _r[1];\n var _s = useState(null), flatChangedListener = _s[0], setFlatChangedListener = _s[1];\n var _t = useState(null), iconChangedListener = _t[0], setIconChangedListener = _t[1];\n var _u = useState(null), positionChangedListener = _u[0], setPositionChangedListener = _u[1];\n var _v = useState(null), shapeChangedListener = _v[0], setShapeChangedListener = _v[1];\n var _w = useState(null), titleChangedListener = _w[0], setTitleChangedListener = _w[1];\n var _x = useState(null), visibleChangedListener = _x[0], setVisibleChangedListener = _x[1];\n var _y = useState(null), zIndexChangedListener = _y[0], setZindexChangedListener = _y[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(function () {\n if (position && instance !== null) {\n instance.setPosition(position);\n }\n }, [instance, position]);\n useEffect(function () {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(function () {\n instance === null || instance === void 0 ? void 0 : instance.setAnimation(animation);\n }, [instance, animation]);\n useEffect(function () {\n if (instance && clickable !== undefined) {\n instance.setClickable(clickable);\n }\n }, [instance, clickable]);\n useEffect(function () {\n if (instance && cursor !== undefined) {\n instance.setCursor(cursor);\n }\n }, [instance, cursor]);\n useEffect(function () {\n if (instance && icon !== undefined) {\n instance.setIcon(icon);\n }\n }, [instance, icon]);\n useEffect(function () {\n if (instance && label !== undefined) {\n instance.setLabel(label);\n }\n }, [instance, label]);\n useEffect(function () {\n if (instance && opacity !== undefined) {\n instance.setOpacity(opacity);\n }\n }, [instance, opacity]);\n useEffect(function () {\n if (instance && shape !== undefined) {\n instance.setShape(shape);\n }\n }, [instance, shape]);\n useEffect(function () {\n if (instance && title !== undefined) {\n instance.setTitle(title);\n }\n }, [instance, title]);\n useEffect(function () {\n if (instance && zIndex !== undefined) {\n instance.setZIndex(zIndex);\n }\n }, [instance, zIndex]);\n useEffect(function () {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(function () {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(function () {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(function () {\n if (instance && onClickableChanged) {\n if (clickableChangedListener !== null) {\n google.maps.event.removeListener(clickableChangedListener);\n }\n setClickableChangedListener(google.maps.event.addListener(instance, 'clickable_changed', onClickableChanged));\n }\n }, [onClickableChanged]);\n useEffect(function () {\n if (instance && onCursorChanged) {\n if (cursorChangedListener !== null) {\n google.maps.event.removeListener(cursorChangedListener);\n }\n setCursorChangedListener(google.maps.event.addListener(instance, 'cursor_changed', onCursorChanged));\n }\n }, [onCursorChanged]);\n useEffect(function () {\n if (instance && onAnimationChanged) {\n if (animationChangedListener !== null) {\n google.maps.event.removeListener(animationChangedListener);\n }\n setAnimationChangedListener(google.maps.event.addListener(instance, 'animation_changed', onAnimationChanged));\n }\n }, [onAnimationChanged]);\n useEffect(function () {\n if (instance && onDraggableChanged) {\n if (draggableChangedListener !== null) {\n google.maps.event.removeListener(draggableChangedListener);\n }\n setDraggableChangedListener(google.maps.event.addListener(instance, 'draggable_changed', onDraggableChanged));\n }\n }, [onDraggableChanged]);\n useEffect(function () {\n if (instance && onFlatChanged) {\n if (flatChangedListener !== null) {\n google.maps.event.removeListener(flatChangedListener);\n }\n setFlatChangedListener(google.maps.event.addListener(instance, 'flat_changed', onFlatChanged));\n }\n }, [onFlatChanged]);\n useEffect(function () {\n if (instance && onIconChanged) {\n if (iconChangedListener !== null) {\n google.maps.event.removeListener(iconChangedListener);\n }\n setIconChangedListener(google.maps.event.addListener(instance, 'icon_changed', onIconChanged));\n }\n }, [onIconChanged]);\n useEffect(function () {\n if (instance && onPositionChanged) {\n if (positionChangedListener !== null) {\n google.maps.event.removeListener(positionChangedListener);\n }\n setPositionChangedListener(google.maps.event.addListener(instance, 'position_changed', onPositionChanged));\n }\n }, [onPositionChanged]);\n useEffect(function () {\n if (instance && onShapeChanged) {\n if (shapeChangedListener !== null) {\n google.maps.event.removeListener(shapeChangedListener);\n }\n setShapeChangedListener(google.maps.event.addListener(instance, 'shape_changed', onShapeChanged));\n }\n }, [onShapeChanged]);\n useEffect(function () {\n if (instance && onTitleChanged) {\n if (titleChangedListener !== null) {\n google.maps.event.removeListener(titleChangedListener);\n }\n setTitleChangedListener(google.maps.event.addListener(instance, 'title_changed', onTitleChanged));\n }\n }, [onTitleChanged]);\n useEffect(function () {\n if (instance && onVisibleChanged) {\n if (visibleChangedListener !== null) {\n google.maps.event.removeListener(visibleChangedListener);\n }\n setVisibleChangedListener(google.maps.event.addListener(instance, 'visible_changed', onVisibleChanged));\n }\n }, [onVisibleChanged]);\n useEffect(function () {\n if (instance && onZindexChanged) {\n if (zIndexChangedListener !== null) {\n google.maps.event.removeListener(zIndexChangedListener);\n }\n setZindexChangedListener(google.maps.event.addListener(instance, 'zindex_changed', onZindexChanged));\n }\n }, [onZindexChanged]);\n useEffect(function () {\n var markerOptions = __assign(__assign(__assign({}, (options || defaultOptions$5)), (clusterer ? defaultOptions$5 : { map: map })), { position: position });\n var marker = new google.maps.Marker(markerOptions);\n if (clusterer) {\n clusterer.addMarker(marker, !!noClustererRedraw);\n }\n else {\n marker.setMap(map);\n }\n if (position) {\n marker.setPosition(position);\n }\n if (typeof visible !== 'undefined') {\n marker.setVisible(visible);\n }\n if (typeof draggable !== 'undefined') {\n marker.setDraggable(draggable);\n }\n if (typeof clickable !== 'undefined') {\n marker.setClickable(clickable);\n }\n if (typeof cursor === 'string') {\n marker.setCursor(cursor);\n }\n if (icon) {\n marker.setIcon(icon);\n }\n if (typeof label !== 'undefined') {\n marker.setLabel(label);\n }\n if (typeof opacity !== 'undefined') {\n marker.setOpacity(opacity);\n }\n if (shape) {\n marker.setShape(shape);\n }\n if (typeof title === 'string') {\n marker.setTitle(title);\n }\n if (typeof zIndex === 'number') {\n marker.setZIndex(zIndex);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(marker, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(marker, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(marker, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(marker, 'mousedown', onMouseDown));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(marker, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(marker, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(marker, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(marker, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(marker, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(marker, 'drag', onDrag));\n }\n if (onClickableChanged) {\n setClickableChangedListener(google.maps.event.addListener(marker, 'clickable_changed', onClickableChanged));\n }\n if (onCursorChanged) {\n setCursorChangedListener(google.maps.event.addListener(marker, 'cursor_changed', onCursorChanged));\n }\n if (onAnimationChanged) {\n setAnimationChangedListener(google.maps.event.addListener(marker, 'animation_changed', onAnimationChanged));\n }\n if (onDraggableChanged) {\n setDraggableChangedListener(google.maps.event.addListener(marker, 'draggable_changed', onDraggableChanged));\n }\n if (onFlatChanged) {\n setFlatChangedListener(google.maps.event.addListener(marker, 'flat_changed', onFlatChanged));\n }\n if (onIconChanged) {\n setIconChangedListener(google.maps.event.addListener(marker, 'icon_changed', onIconChanged));\n }\n if (onPositionChanged) {\n setPositionChangedListener(google.maps.event.addListener(marker, 'position_changed', onPositionChanged));\n }\n if (onShapeChanged) {\n setShapeChangedListener(google.maps.event.addListener(marker, 'shape_changed', onShapeChanged));\n }\n if (onTitleChanged) {\n setTitleChangedListener(google.maps.event.addListener(marker, 'title_changed', onTitleChanged));\n }\n if (onVisibleChanged) {\n setVisibleChangedListener(google.maps.event.addListener(marker, 'visible_changed', onVisibleChanged));\n }\n if (onZindexChanged) {\n setZindexChangedListener(google.maps.event.addListener(marker, 'zindex_changed', onZindexChanged));\n }\n setInstance(marker);\n if (onLoad) {\n onLoad(marker);\n }\n return function () {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (clickableChangedListener !== null) {\n google.maps.event.removeListener(clickableChangedListener);\n }\n if (cursorChangedListener !== null) {\n google.maps.event.removeListener(cursorChangedListener);\n }\n if (animationChangedListener !== null) {\n google.maps.event.removeListener(animationChangedListener);\n }\n if (draggableChangedListener !== null) {\n google.maps.event.removeListener(draggableChangedListener);\n }\n if (flatChangedListener !== null) {\n google.maps.event.removeListener(flatChangedListener);\n }\n if (iconChangedListener !== null) {\n google.maps.event.removeListener(iconChangedListener);\n }\n if (positionChangedListener !== null) {\n google.maps.event.removeListener(positionChangedListener);\n }\n if (titleChangedListener !== null) {\n google.maps.event.removeListener(titleChangedListener);\n }\n if (visibleChangedListener !== null) {\n google.maps.event.removeListener(visibleChangedListener);\n }\n if (zIndexChangedListener !== null) {\n google.maps.event.removeListener(zIndexChangedListener);\n }\n if (onUnmount) {\n onUnmount(marker);\n }\n if (clusterer) {\n clusterer.removeMarker(marker, !!noClustererRedraw);\n }\n else if (marker) {\n marker.setMap(null);\n }\n };\n }, []);\n var chx = useMemo(function () {\n return children\n ? Children.map(children, function (child) {\n if (!isValidElement(child)) {\n return child;\n }\n var elementChild = child;\n return cloneElement(elementChild, { anchor: instance });\n })\n : null;\n }, [children, instance]);\n return jsx(Fragment, { children: chx }) || null;\n}\nvar MarkerF = memo(MarkerFunctional);\nvar Marker = /** @class */ (function (_super) {\n __extends(Marker, _super);\n function Marker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n return _this;\n }\n Marker.prototype.componentDidMount = function () {\n var markerOptions = __assign(__assign(__assign({}, (this.props.options || defaultOptions$5)), (this.props.clusterer ? defaultOptions$5 : { map: this.context })), { position: this.props.position });\n // Unfortunately we can't just do this in the contstructor, because the\n // `MapContext` might not be filled in yet.\n this.marker = new google.maps.Marker(markerOptions);\n if (this.props.clusterer) {\n this.props.clusterer.addMarker(this.marker, !!this.props.noClustererRedraw);\n }\n else {\n this.marker.setMap(this.context);\n }\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$f,\n eventMap: eventMap$f,\n prevProps: {},\n nextProps: this.props,\n instance: this.marker,\n });\n if (this.props.onLoad) {\n this.props.onLoad(this.marker);\n }\n };\n Marker.prototype.componentDidUpdate = function (prevProps) {\n if (this.marker) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$f,\n eventMap: eventMap$f,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.marker,\n });\n }\n };\n Marker.prototype.componentWillUnmount = function () {\n if (this.marker) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.marker);\n }\n unregisterEvents(this.registeredEvents);\n if (this.props.clusterer) {\n this.props.clusterer.removeMarker(this.marker, !!this.props.noClustererRedraw);\n }\n else {\n this.marker && this.marker.setMap(null);\n }\n }\n };\n Marker.prototype.render = function () {\n var _this = this;\n var children = null;\n if (this.props.children) {\n children = Children.map(this.props.children, function (child) {\n if (!isValidElement(child)) {\n return child;\n }\n var elementChild = child;\n return cloneElement(elementChild, { anchor: _this.marker });\n });\n }\n return children || null;\n };\n Marker.contextType = MapContext;\n return Marker;\n}(PureComponent));\n\nvar ClusterIcon = /** @class */ (function () {\n function ClusterIcon(cluster, styles) {\n cluster.getClusterer().extend(ClusterIcon, google.maps.OverlayView);\n this.cluster = cluster;\n this.clusterClassName = this.cluster.getClusterer().getClusterClass();\n this.className = this.clusterClassName;\n this.styles = styles;\n this.center = undefined;\n this.div = null;\n this.sums = null;\n this.visible = false;\n this.boundsChangedListener = null;\n this.url = '';\n this.height = 0;\n this.width = 0;\n this.anchorText = [0, 0];\n this.anchorIcon = [0, 0];\n this.textColor = 'black';\n this.textSize = 11;\n this.textDecoration = 'none';\n this.fontWeight = 'bold';\n this.fontStyle = 'normal';\n this.fontFamily = 'Arial,sans-serif';\n this.backgroundPosition = '0 0';\n this.cMouseDownInCluster = null;\n this.cDraggingMapByCluster = null;\n this.timeOut = null;\n this.setMap(cluster.getMap()); // Note: this causes onAdd to be called\n this.onBoundsChanged = this.onBoundsChanged.bind(this);\n this.onMouseDown = this.onMouseDown.bind(this);\n this.onClick = this.onClick.bind(this);\n this.onMouseOver = this.onMouseOver.bind(this);\n this.onMouseOut = this.onMouseOut.bind(this);\n this.onAdd = this.onAdd.bind(this);\n this.onRemove = this.onRemove.bind(this);\n this.draw = this.draw.bind(this);\n this.hide = this.hide.bind(this);\n this.show = this.show.bind(this);\n this.useStyle = this.useStyle.bind(this);\n this.setCenter = this.setCenter.bind(this);\n this.getPosFromLatLng = this.getPosFromLatLng.bind(this);\n }\n ClusterIcon.prototype.onBoundsChanged = function () {\n this.cDraggingMapByCluster = this.cMouseDownInCluster;\n };\n ClusterIcon.prototype.onMouseDown = function () {\n this.cMouseDownInCluster = true;\n this.cDraggingMapByCluster = false;\n };\n ClusterIcon.prototype.onClick = function (event) {\n this.cMouseDownInCluster = false;\n if (!this.cDraggingMapByCluster) {\n var markerClusterer_1 = this.cluster.getClusterer();\n /**\n * This event is fired when a cluster marker is clicked.\n * @name MarkerClusterer#click\n * @param {Cluster} c The cluster that was clicked.\n * @event\n */\n google.maps.event.trigger(markerClusterer_1, 'click', this.cluster);\n google.maps.event.trigger(markerClusterer_1, 'clusterclick', this.cluster); // deprecated name\n // The default click handler follows. Disable it by setting\n // the zoomOnClick property to false.\n if (markerClusterer_1.getZoomOnClick()) {\n // Zoom into the cluster.\n var maxZoom_1 = markerClusterer_1.getMaxZoom();\n var bounds_1 = this.cluster.getBounds();\n var map = markerClusterer_1.getMap();\n if (map !== null && 'fitBounds' in map) {\n map.fitBounds(bounds_1);\n }\n // There is a fix for Issue 170 here:\n this.timeOut = window.setTimeout(function () {\n var map = markerClusterer_1.getMap();\n if (map !== null) {\n if ('fitBounds' in map) {\n map.fitBounds(bounds_1);\n }\n var zoom = map.getZoom() || 0;\n // Don't zoom beyond the max zoom level\n if (maxZoom_1 !== null &&\n zoom > maxZoom_1) {\n map.setZoom(maxZoom_1 + 1);\n }\n }\n }, 100);\n }\n // Prevent event propagation to the map:\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n }\n };\n ClusterIcon.prototype.onMouseOver = function () {\n /**\n * This event is fired when the mouse moves over a cluster marker.\n * @name MarkerClusterer#mouseover\n * @param {Cluster} c The cluster that the mouse moved over.\n * @event\n */\n google.maps.event.trigger(this.cluster.getClusterer(), 'mouseover', this.cluster);\n };\n ClusterIcon.prototype.onMouseOut = function () {\n /**\n * This event is fired when the mouse moves out of a cluster marker.\n * @name MarkerClusterer#mouseout\n * @param {Cluster} c The cluster that the mouse moved out of.\n * @event\n */\n google.maps.event.trigger(this.cluster.getClusterer(), 'mouseout', this.cluster);\n };\n ClusterIcon.prototype.onAdd = function () {\n var _a;\n this.div = document.createElement('div');\n this.div.className = this.className;\n if (this.visible) {\n this.show();\n }\n (_a = this.getPanes()) === null || _a === void 0 ? void 0 : _a.overlayMouseTarget.appendChild(this.div);\n var map = this.getMap();\n if (map !== null) {\n // Fix for Issue 157\n this.boundsChangedListener = google.maps.event.addListener(map, 'bounds_changed', this.onBoundsChanged);\n this.div.addEventListener('mousedown', this.onMouseDown);\n this.div.addEventListener('click', this.onClick);\n this.div.addEventListener('mouseover', this.onMouseOver);\n this.div.addEventListener('mouseout', this.onMouseOut);\n }\n };\n ClusterIcon.prototype.onRemove = function () {\n if (this.div && this.div.parentNode) {\n this.hide();\n if (this.boundsChangedListener !== null) {\n google.maps.event.removeListener(this.boundsChangedListener);\n }\n this.div.removeEventListener('mousedown', this.onMouseDown);\n this.div.removeEventListener('click', this.onClick);\n this.div.removeEventListener('mouseover', this.onMouseOver);\n this.div.removeEventListener('mouseout', this.onMouseOut);\n this.div.parentNode.removeChild(this.div);\n if (this.timeOut !== null) {\n window.clearTimeout(this.timeOut);\n this.timeOut = null;\n }\n this.div = null;\n }\n };\n ClusterIcon.prototype.draw = function () {\n if (this.visible && this.div !== null && this.center) {\n var pos = this.getPosFromLatLng(this.center);\n this.div.style.top = pos !== null ? \"\".concat(pos.y, \"px\") : '0';\n this.div.style.left = pos !== null ? \"\".concat(pos.x, \"px\") : '0';\n }\n };\n ClusterIcon.prototype.hide = function () {\n if (this.div) {\n this.div.style.display = 'none';\n }\n this.visible = false;\n };\n ClusterIcon.prototype.show = function () {\n var _a, _b, _c, _d, _e, _f;\n if (this.div && this.center) {\n var divTitle = this.sums === null ||\n typeof this.sums.title === 'undefined' ||\n this.sums.title === '' ? this.cluster.getClusterer().getTitle() : this.sums.title;\n // NOTE: values must be specified in px units\n var bp = this.backgroundPosition.split(' ');\n var spriteH = parseInt(((_a = bp[0]) === null || _a === void 0 ? void 0 : _a.replace(/^\\s+|\\s+$/g, '')) || '0', 10);\n var spriteV = parseInt(((_b = bp[1]) === null || _b === void 0 ? void 0 : _b.replace(/^\\s+|\\s+$/g, '')) || '0', 10);\n var pos = this.getPosFromLatLng(this.center);\n this.div.className = this.className;\n this.div.setAttribute('style', \"cursor: pointer; position: absolute; top: \".concat(pos !== null ? \"\".concat(pos.y, \"px\") : '0', \"; left: \").concat(pos !== null ? \"\".concat(pos.x, \"px\") : '0', \"; width: \").concat(this.width, \"px; height: \").concat(this.height, \"px; \"));\n var img = document.createElement('img');\n img.alt = divTitle;\n img.src = this.url;\n img.width = this.width;\n img.height = this.height;\n img.setAttribute('style', \"position: absolute; top: \".concat(spriteV, \"px; left: \").concat(spriteH, \"px\"));\n if (!this.cluster.getClusterer().enableRetinaIcons) {\n img.style.clip = \"rect(-\".concat(spriteV, \"px, -\").concat(spriteH + this.width, \"px, -\").concat(spriteV + this.height, \", -\").concat(spriteH, \")\");\n }\n var textElm = document.createElement('div');\n textElm.setAttribute('style', \"position: absolute; top: \".concat(this.anchorText[0], \"px; left: \").concat(this.anchorText[1], \"px; color: \").concat(this.textColor, \"; font-size: \").concat(this.textSize, \"px; font-family: \").concat(this.fontFamily, \"; font-weight: \").concat(this.fontWeight, \"; fontStyle: \").concat(this.fontStyle, \"; text-decoration: \").concat(this.textDecoration, \"; text-align: center; width: \").concat(this.width, \"px; line-height: \").concat(this.height, \"px\"));\n if ((_c = this.sums) === null || _c === void 0 ? void 0 : _c.text)\n textElm.innerText = \"\".concat((_d = this.sums) === null || _d === void 0 ? void 0 : _d.text);\n if ((_e = this.sums) === null || _e === void 0 ? void 0 : _e.html)\n textElm.innerHTML = \"\".concat((_f = this.sums) === null || _f === void 0 ? void 0 : _f.html);\n this.div.innerHTML = '';\n this.div.appendChild(img);\n this.div.appendChild(textElm);\n this.div.title = divTitle;\n this.div.style.display = '';\n }\n this.visible = true;\n };\n ClusterIcon.prototype.useStyle = function (sums) {\n this.sums = sums;\n var styles = this.cluster.getClusterer().getStyles();\n var style = styles[Math.min(styles.length - 1, Math.max(0, sums.index - 1))];\n if (style) {\n this.url = style.url;\n this.height = style.height;\n this.width = style.width;\n if (style.className) {\n this.className = \"\".concat(this.clusterClassName, \" \").concat(style.className);\n }\n this.anchorText = style.anchorText || [0, 0];\n this.anchorIcon = style.anchorIcon || [this.height / 2, this.width / 2];\n this.textColor = style.textColor || 'black';\n this.textSize = style.textSize || 11;\n this.textDecoration = style.textDecoration || 'none';\n this.fontWeight = style.fontWeight || 'bold';\n this.fontStyle = style.fontStyle || 'normal';\n this.fontFamily = style.fontFamily || 'Arial,sans-serif';\n this.backgroundPosition = style.backgroundPosition || '0 0';\n }\n };\n ClusterIcon.prototype.setCenter = function (center) {\n this.center = center;\n };\n ClusterIcon.prototype.getPosFromLatLng = function (latlng) {\n var pos = this.getProjection().fromLatLngToDivPixel(latlng);\n if (pos !== null) {\n pos.x -= this.anchorIcon[1];\n pos.y -= this.anchorIcon[0];\n }\n return pos;\n };\n return ClusterIcon;\n}());\n\n/* global google */\nvar Cluster$1 = /** @class */ (function () {\n function Cluster(markerClusterer) {\n this.markerClusterer = markerClusterer;\n this.map = this.markerClusterer.getMap();\n this.gridSize = this.markerClusterer.getGridSize();\n this.minClusterSize = this.markerClusterer.getMinimumClusterSize();\n this.averageCenter = this.markerClusterer.getAverageCenter();\n this.markers = [];\n this.center = undefined;\n this.bounds = null;\n this.clusterIcon = new ClusterIcon(this, this.markerClusterer.getStyles());\n this.getSize = this.getSize.bind(this);\n this.getMarkers = this.getMarkers.bind(this);\n this.getCenter = this.getCenter.bind(this);\n this.getMap = this.getMap.bind(this);\n this.getClusterer = this.getClusterer.bind(this);\n this.getBounds = this.getBounds.bind(this);\n this.remove = this.remove.bind(this);\n this.addMarker = this.addMarker.bind(this);\n this.isMarkerInClusterBounds = this.isMarkerInClusterBounds.bind(this);\n this.calculateBounds = this.calculateBounds.bind(this);\n this.updateIcon = this.updateIcon.bind(this);\n this.isMarkerAlreadyAdded = this.isMarkerAlreadyAdded.bind(this);\n }\n Cluster.prototype.getSize = function () {\n return this.markers.length;\n };\n Cluster.prototype.getMarkers = function () {\n return this.markers;\n };\n Cluster.prototype.getCenter = function () {\n return this.center;\n };\n Cluster.prototype.getMap = function () {\n return this.map;\n };\n Cluster.prototype.getClusterer = function () {\n return this.markerClusterer;\n };\n Cluster.prototype.getBounds = function () {\n var bounds = new google.maps.LatLngBounds(this.center, this.center);\n var markers = this.getMarkers();\n for (var _i = 0, markers_1 = markers; _i < markers_1.length; _i++) {\n var marker = markers_1[_i];\n var position = marker.getPosition();\n if (position) {\n bounds.extend(position);\n }\n }\n return bounds;\n };\n Cluster.prototype.remove = function () {\n this.clusterIcon.setMap(null);\n this.markers = [];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete this.markers;\n };\n Cluster.prototype.addMarker = function (marker) {\n var _a;\n if (this.isMarkerAlreadyAdded(marker)) {\n return false;\n }\n if (!this.center) {\n var position = marker.getPosition();\n if (position) {\n this.center = position;\n this.calculateBounds();\n }\n }\n else {\n if (this.averageCenter) {\n var position = marker.getPosition();\n if (position) {\n var length_1 = this.markers.length + 1;\n this.center = new google.maps.LatLng((this.center.lat() * (length_1 - 1) + position.lat()) / length_1, (this.center.lng() * (length_1 - 1) + position.lng()) / length_1);\n this.calculateBounds();\n }\n }\n }\n marker.isAdded = true;\n this.markers.push(marker);\n var mCount = this.markers.length;\n var maxZoom = this.markerClusterer.getMaxZoom();\n var zoom = (_a = this.map) === null || _a === void 0 ? void 0 : _a.getZoom();\n if (maxZoom !== null && typeof zoom !== 'undefined' && zoom > maxZoom) {\n // Zoomed in past max zoom, so show the marker.\n if (marker.getMap() !== this.map) {\n marker.setMap(this.map);\n }\n }\n else if (mCount < this.minClusterSize) {\n // Min cluster size not reached so show the marker.\n if (marker.getMap() !== this.map) {\n marker.setMap(this.map);\n }\n }\n else if (mCount === this.minClusterSize) {\n // Hide the markers that were showing.\n for (var _i = 0, _b = this.markers; _i < _b.length; _i++) {\n var markerElement = _b[_i];\n markerElement.setMap(null);\n }\n }\n else {\n marker.setMap(null);\n }\n return true;\n };\n Cluster.prototype.isMarkerInClusterBounds = function (marker) {\n if (this.bounds !== null) {\n var position = marker.getPosition();\n if (position) {\n return this.bounds.contains(position);\n }\n }\n return false;\n };\n Cluster.prototype.calculateBounds = function () {\n this.bounds = this.markerClusterer.getExtendedBounds(new google.maps.LatLngBounds(this.center, this.center));\n };\n Cluster.prototype.updateIcon = function () {\n var _a;\n var mCount = this.markers.length;\n var maxZoom = this.markerClusterer.getMaxZoom();\n var zoom = (_a = this.map) === null || _a === void 0 ? void 0 : _a.getZoom();\n if (maxZoom !== null && typeof zoom !== 'undefined' && zoom > maxZoom) {\n this.clusterIcon.hide();\n return;\n }\n if (mCount < this.minClusterSize) {\n // Min cluster size not yet reached.\n this.clusterIcon.hide();\n return;\n }\n if (this.center) {\n this.clusterIcon.setCenter(this.center);\n }\n this.clusterIcon.useStyle(this.markerClusterer.getCalculator()(this.markers, this.markerClusterer.getStyles().length));\n this.clusterIcon.show();\n };\n Cluster.prototype.isMarkerAlreadyAdded = function (marker) {\n if (this.markers.includes) {\n return this.markers.includes(marker);\n }\n for (var i = 0; i < this.markers.length; i++) {\n if (marker === this.markers[i]) {\n return true;\n }\n }\n return false;\n };\n return Cluster;\n}());\n\n/* global google */\n/**\n * Supports up to 9007199254740991 (Number.MAX_SAFE_INTEGER) markers\n * which is not a problem as max array length is 4294967296 (2**32)\n */\nfunction CALCULATOR(markers, numStyles) {\n var count = markers.length;\n var numberOfDigits = count.toString().length;\n var index = Math.min(numberOfDigits, numStyles);\n return {\n text: count.toString(),\n index: index,\n title: '',\n };\n}\nvar BATCH_SIZE = 2000;\nvar BATCH_SIZE_IE = 500;\nvar IMAGE_PATH = 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m';\nvar IMAGE_EXTENSION = 'png';\nvar IMAGE_SIZES = [53, 56, 66, 78, 90];\nvar CLUSTERER_CLASS = 'cluster';\nvar Clusterer = /** @class */ (function () {\n function Clusterer(map, optMarkers, optOptions) {\n if (optMarkers === void 0) { optMarkers = []; }\n if (optOptions === void 0) { optOptions = {}; }\n this.getMinimumClusterSize = this.getMinimumClusterSize.bind(this);\n this.setMinimumClusterSize = this.setMinimumClusterSize.bind(this);\n this.getEnableRetinaIcons = this.getEnableRetinaIcons.bind(this);\n this.setEnableRetinaIcons = this.setEnableRetinaIcons.bind(this);\n this.addToClosestCluster = this.addToClosestCluster.bind(this);\n this.getImageExtension = this.getImageExtension.bind(this);\n this.setImageExtension = this.setImageExtension.bind(this);\n this.getExtendedBounds = this.getExtendedBounds.bind(this);\n this.getAverageCenter = this.getAverageCenter.bind(this);\n this.setAverageCenter = this.setAverageCenter.bind(this);\n this.getTotalClusters = this.getTotalClusters.bind(this);\n this.fitMapToMarkers = this.fitMapToMarkers.bind(this);\n this.getIgnoreHidden = this.getIgnoreHidden.bind(this);\n this.setIgnoreHidden = this.setIgnoreHidden.bind(this);\n this.getClusterClass = this.getClusterClass.bind(this);\n this.setClusterClass = this.setClusterClass.bind(this);\n this.getTotalMarkers = this.getTotalMarkers.bind(this);\n this.getZoomOnClick = this.getZoomOnClick.bind(this);\n this.setZoomOnClick = this.setZoomOnClick.bind(this);\n this.getBatchSizeIE = this.getBatchSizeIE.bind(this);\n this.setBatchSizeIE = this.setBatchSizeIE.bind(this);\n this.createClusters = this.createClusters.bind(this);\n this.onZoomChanged = this.onZoomChanged.bind(this);\n this.getImageSizes = this.getImageSizes.bind(this);\n this.setImageSizes = this.setImageSizes.bind(this);\n this.getCalculator = this.getCalculator.bind(this);\n this.setCalculator = this.setCalculator.bind(this);\n this.removeMarkers = this.removeMarkers.bind(this);\n this.resetViewport = this.resetViewport.bind(this);\n this.getImagePath = this.getImagePath.bind(this);\n this.setImagePath = this.setImagePath.bind(this);\n this.pushMarkerTo = this.pushMarkerTo.bind(this);\n this.removeMarker = this.removeMarker.bind(this);\n this.clearMarkers = this.clearMarkers.bind(this);\n this.setupStyles = this.setupStyles.bind(this);\n this.getGridSize = this.getGridSize.bind(this);\n this.setGridSize = this.setGridSize.bind(this);\n this.getClusters = this.getClusters.bind(this);\n this.getMaxZoom = this.getMaxZoom.bind(this);\n this.setMaxZoom = this.setMaxZoom.bind(this);\n this.getMarkers = this.getMarkers.bind(this);\n this.addMarkers = this.addMarkers.bind(this);\n this.getStyles = this.getStyles.bind(this);\n this.setStyles = this.setStyles.bind(this);\n this.addMarker = this.addMarker.bind(this);\n this.onRemove = this.onRemove.bind(this);\n this.getTitle = this.getTitle.bind(this);\n this.setTitle = this.setTitle.bind(this);\n this.repaint = this.repaint.bind(this);\n this.onIdle = this.onIdle.bind(this);\n this.redraw = this.redraw.bind(this);\n this.onAdd = this.onAdd.bind(this);\n this.draw = this.draw.bind(this);\n this.extend = this.extend.bind(this);\n this.extend(Clusterer, google.maps.OverlayView);\n this.markers = [];\n this.clusters = [];\n this.listeners = [];\n this.activeMap = null;\n this.ready = false;\n this.gridSize = optOptions.gridSize || 60;\n this.minClusterSize = optOptions.minimumClusterSize || 2;\n this.maxZoom = optOptions.maxZoom || null;\n this.styles = optOptions.styles || [];\n this.title = optOptions.title || '';\n this.zoomOnClick = true;\n if (optOptions.zoomOnClick !== undefined) {\n this.zoomOnClick = optOptions.zoomOnClick;\n }\n this.averageCenter = false;\n if (optOptions.averageCenter !== undefined) {\n this.averageCenter = optOptions.averageCenter;\n }\n this.ignoreHidden = false;\n if (optOptions.ignoreHidden !== undefined) {\n this.ignoreHidden = optOptions.ignoreHidden;\n }\n this.enableRetinaIcons = false;\n if (optOptions.enableRetinaIcons !== undefined) {\n this.enableRetinaIcons = optOptions.enableRetinaIcons;\n }\n this.imagePath = optOptions.imagePath || IMAGE_PATH;\n this.imageExtension = optOptions.imageExtension || IMAGE_EXTENSION;\n this.imageSizes = optOptions.imageSizes || IMAGE_SIZES;\n this.calculator = optOptions.calculator || CALCULATOR;\n this.batchSize = optOptions.batchSize || BATCH_SIZE;\n this.batchSizeIE = optOptions.batchSizeIE || BATCH_SIZE_IE;\n this.clusterClass = optOptions.clusterClass || CLUSTERER_CLASS;\n if (navigator.userAgent.toLowerCase().indexOf('msie') !== -1) {\n // Try to avoid IE timeout when processing a huge number of markers:\n this.batchSize = this.batchSizeIE;\n }\n this.timerRefStatic = null;\n this.setupStyles();\n this.addMarkers(optMarkers, true);\n this.setMap(map); // Note: this causes onAdd to be called\n }\n Clusterer.prototype.onZoomChanged = function () {\n var _a, _b;\n this.resetViewport(false);\n // Workaround for this Google bug: when map is at level 0 and \"-\" of\n // zoom slider is clicked, a \"zoom_changed\" event is fired even though\n // the map doesn't zoom out any further. In this situation, no \"idle\"\n // event is triggered so the cluster markers that have been removed\n // do not get redrawn. Same goes for a zoom in at maxZoom.\n if (((_a = this.getMap()) === null || _a === void 0 ? void 0 : _a.getZoom()) === (this.get('minZoom') || 0) ||\n ((_b = this.getMap()) === null || _b === void 0 ? void 0 : _b.getZoom()) === this.get('maxZoom')) {\n google.maps.event.trigger(this, 'idle');\n }\n };\n Clusterer.prototype.onIdle = function () {\n this.redraw();\n };\n Clusterer.prototype.onAdd = function () {\n var map = this.getMap();\n this.activeMap = map;\n this.ready = true;\n this.repaint();\n if (map !== null) {\n // Add the map event listeners\n this.listeners = [\n google.maps.event.addListener(map, 'zoom_changed', this.onZoomChanged),\n google.maps.event.addListener(map, 'idle', this.onIdle),\n ];\n }\n };\n Clusterer.prototype.onRemove = function () {\n // Put all the managed markers back on the map:\n for (var _i = 0, _a = this.markers; _i < _a.length; _i++) {\n var marker = _a[_i];\n if (marker.getMap() !== this.activeMap) {\n marker.setMap(this.activeMap);\n }\n }\n // Remove all clusters:\n for (var _b = 0, _c = this.clusters; _b < _c.length; _b++) {\n var cluster = _c[_b];\n cluster.remove();\n }\n this.clusters = [];\n // Remove map event listeners:\n for (var _d = 0, _e = this.listeners; _d < _e.length; _d++) {\n var listener = _e[_d];\n google.maps.event.removeListener(listener);\n }\n this.listeners = [];\n this.activeMap = null;\n this.ready = false;\n };\n Clusterer.prototype.draw = function () { return; };\n Clusterer.prototype.getMap = function () { return null; };\n Clusterer.prototype.getPanes = function () { return null; };\n Clusterer.prototype.getProjection = function () {\n return {\n fromContainerPixelToLatLng: function () { return null; },\n fromDivPixelToLatLng: function () { return null; },\n fromLatLngToContainerPixel: function () { return null; },\n fromLatLngToDivPixel: function () { return null; },\n getVisibleRegion: function () { return null; },\n getWorldWidth: function () { return 0; }\n };\n };\n Clusterer.prototype.setMap = function () { return; };\n Clusterer.prototype.addListener = function () {\n return {\n remove: function () { return; }\n };\n };\n Clusterer.prototype.bindTo = function () { return; };\n Clusterer.prototype.get = function () { return; };\n Clusterer.prototype.notify = function () { return; };\n Clusterer.prototype.set = function () { return; };\n Clusterer.prototype.setValues = function () { return; };\n Clusterer.prototype.unbind = function () { return; };\n Clusterer.prototype.unbindAll = function () { return; };\n Clusterer.prototype.setupStyles = function () {\n if (this.styles.length > 0) {\n return;\n }\n for (var i = 0; i < this.imageSizes.length; i++) {\n this.styles.push({\n url: \"\".concat(this.imagePath + (i + 1), \".\").concat(this.imageExtension),\n height: this.imageSizes[i] || 0,\n width: this.imageSizes[i] || 0,\n });\n }\n };\n Clusterer.prototype.fitMapToMarkers = function () {\n var markers = this.getMarkers();\n var bounds = new google.maps.LatLngBounds();\n for (var _i = 0, markers_1 = markers; _i < markers_1.length; _i++) {\n var marker = markers_1[_i];\n var position = marker.getPosition();\n if (position) {\n bounds.extend(position);\n }\n }\n var map = this.getMap();\n if (map !== null && 'fitBounds' in map) {\n map.fitBounds(bounds);\n }\n };\n Clusterer.prototype.getGridSize = function () {\n return this.gridSize;\n };\n Clusterer.prototype.setGridSize = function (gridSize) {\n this.gridSize = gridSize;\n };\n Clusterer.prototype.getMinimumClusterSize = function () {\n return this.minClusterSize;\n };\n Clusterer.prototype.setMinimumClusterSize = function (minimumClusterSize) {\n this.minClusterSize = minimumClusterSize;\n };\n Clusterer.prototype.getMaxZoom = function () {\n return this.maxZoom;\n };\n Clusterer.prototype.setMaxZoom = function (maxZoom) {\n this.maxZoom = maxZoom;\n };\n Clusterer.prototype.getStyles = function () {\n return this.styles;\n };\n Clusterer.prototype.setStyles = function (styles) {\n this.styles = styles;\n };\n Clusterer.prototype.getTitle = function () {\n return this.title;\n };\n Clusterer.prototype.setTitle = function (title) {\n this.title = title;\n };\n Clusterer.prototype.getZoomOnClick = function () {\n return this.zoomOnClick;\n };\n Clusterer.prototype.setZoomOnClick = function (zoomOnClick) {\n this.zoomOnClick = zoomOnClick;\n };\n Clusterer.prototype.getAverageCenter = function () {\n return this.averageCenter;\n };\n Clusterer.prototype.setAverageCenter = function (averageCenter) {\n this.averageCenter = averageCenter;\n };\n Clusterer.prototype.getIgnoreHidden = function () {\n return this.ignoreHidden;\n };\n Clusterer.prototype.setIgnoreHidden = function (ignoreHidden) {\n this.ignoreHidden = ignoreHidden;\n };\n Clusterer.prototype.getEnableRetinaIcons = function () {\n return this.enableRetinaIcons;\n };\n Clusterer.prototype.setEnableRetinaIcons = function (enableRetinaIcons) {\n this.enableRetinaIcons = enableRetinaIcons;\n };\n Clusterer.prototype.getImageExtension = function () {\n return this.imageExtension;\n };\n Clusterer.prototype.setImageExtension = function (imageExtension) {\n this.imageExtension = imageExtension;\n };\n Clusterer.prototype.getImagePath = function () {\n return this.imagePath;\n };\n Clusterer.prototype.setImagePath = function (imagePath) {\n this.imagePath = imagePath;\n };\n Clusterer.prototype.getImageSizes = function () {\n return this.imageSizes;\n };\n Clusterer.prototype.setImageSizes = function (imageSizes) {\n this.imageSizes = imageSizes;\n };\n Clusterer.prototype.getCalculator = function () {\n return this.calculator;\n };\n Clusterer.prototype.setCalculator = function (calculator) {\n this.calculator = calculator;\n };\n Clusterer.prototype.getBatchSizeIE = function () {\n return this.batchSizeIE;\n };\n Clusterer.prototype.setBatchSizeIE = function (batchSizeIE) {\n this.batchSizeIE = batchSizeIE;\n };\n Clusterer.prototype.getClusterClass = function () {\n return this.clusterClass;\n };\n Clusterer.prototype.setClusterClass = function (clusterClass) {\n this.clusterClass = clusterClass;\n };\n Clusterer.prototype.getMarkers = function () {\n return this.markers;\n };\n Clusterer.prototype.getTotalMarkers = function () {\n return this.markers.length;\n };\n Clusterer.prototype.getClusters = function () {\n return this.clusters;\n };\n Clusterer.prototype.getTotalClusters = function () {\n return this.clusters.length;\n };\n Clusterer.prototype.addMarker = function (marker, optNoDraw) {\n this.pushMarkerTo(marker);\n if (!optNoDraw) {\n this.redraw();\n }\n };\n Clusterer.prototype.addMarkers = function (markers, optNoDraw) {\n for (var key in markers) {\n if (Object.prototype.hasOwnProperty.call(markers, key)) {\n var marker = markers[key];\n if (marker) {\n this.pushMarkerTo(marker);\n }\n }\n }\n if (!optNoDraw) {\n this.redraw();\n }\n };\n Clusterer.prototype.pushMarkerTo = function (marker) {\n var _this = this;\n // If the marker is draggable add a listener so we can update the clusters on the dragend:\n if (marker.getDraggable()) {\n google.maps.event.addListener(marker, 'dragend', function () {\n if (_this.ready) {\n marker.isAdded = false;\n _this.repaint();\n }\n });\n }\n marker.isAdded = false;\n this.markers.push(marker);\n };\n Clusterer.prototype.removeMarker_ = function (marker) {\n var index = -1;\n if (this.markers.indexOf) {\n index = this.markers.indexOf(marker);\n }\n else {\n for (var i = 0; i < this.markers.length; i++) {\n if (marker === this.markers[i]) {\n index = i;\n break;\n }\n }\n }\n if (index === -1) {\n // Marker is not in our list of markers, so do nothing:\n return false;\n }\n marker.setMap(null);\n this.markers.splice(index, 1); // Remove the marker from the list of managed markers\n return true;\n };\n Clusterer.prototype.removeMarker = function (marker, optNoDraw) {\n var removed = this.removeMarker_(marker);\n if (!optNoDraw && removed) {\n this.repaint();\n }\n return removed;\n };\n Clusterer.prototype.removeMarkers = function (markers, optNoDraw) {\n var removed = false;\n for (var _i = 0, markers_2 = markers; _i < markers_2.length; _i++) {\n var marker = markers_2[_i];\n removed = removed || this.removeMarker_(marker);\n }\n if (!optNoDraw && removed) {\n this.repaint();\n }\n return removed;\n };\n Clusterer.prototype.clearMarkers = function () {\n this.resetViewport(true);\n this.markers = [];\n };\n Clusterer.prototype.repaint = function () {\n var oldClusters = this.clusters.slice();\n this.clusters = [];\n this.resetViewport(false);\n this.redraw();\n // Remove the old clusters.\n // Do it in a timeout to prevent blinking effect.\n setTimeout(function timeout() {\n for (var _i = 0, oldClusters_1 = oldClusters; _i < oldClusters_1.length; _i++) {\n var oldCluster = oldClusters_1[_i];\n oldCluster.remove();\n }\n }, 0);\n };\n Clusterer.prototype.getExtendedBounds = function (bounds) {\n var projection = this.getProjection();\n // Convert the points to pixels and the extend out by the grid size.\n var trPix = projection.fromLatLngToDivPixel(\n // Turn the bounds into latlng.\n new google.maps.LatLng(bounds.getNorthEast().lat(), bounds.getNorthEast().lng()));\n if (trPix !== null) {\n trPix.x += this.gridSize;\n trPix.y -= this.gridSize;\n }\n var blPix = projection.fromLatLngToDivPixel(\n // Turn the bounds into latlng.\n new google.maps.LatLng(bounds.getSouthWest().lat(), bounds.getSouthWest().lng()));\n if (blPix !== null) {\n blPix.x -= this.gridSize;\n blPix.y += this.gridSize;\n }\n // Extend the bounds to contain the new bounds.\n if (trPix !== null) {\n // Convert the pixel points back to LatLng nw\n var point1 = projection.fromDivPixelToLatLng(trPix);\n if (point1 !== null) {\n bounds.extend(point1);\n }\n }\n if (blPix !== null) {\n // Convert the pixel points back to LatLng sw\n var point2 = projection.fromDivPixelToLatLng(blPix);\n if (point2 !== null) {\n bounds.extend(point2);\n }\n }\n return bounds;\n };\n Clusterer.prototype.redraw = function () {\n // Redraws all the clusters.\n this.createClusters(0);\n };\n Clusterer.prototype.resetViewport = function (optHide) {\n // Remove all the clusters\n for (var _i = 0, _a = this.clusters; _i < _a.length; _i++) {\n var cluster = _a[_i];\n cluster.remove();\n }\n this.clusters = [];\n // Reset the markers to not be added and to be removed from the map.\n for (var _b = 0, _c = this.markers; _b < _c.length; _b++) {\n var marker = _c[_b];\n marker.isAdded = false;\n if (optHide) {\n marker.setMap(null);\n }\n }\n };\n Clusterer.prototype.distanceBetweenPoints = function (p1, p2) {\n var R = 6371; // Radius of the Earth in km\n var dLat = ((p2.lat() - p1.lat()) * Math.PI) / 180;\n var dLon = ((p2.lng() - p1.lng()) * Math.PI) / 180;\n var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +\n Math.cos((p1.lat() * Math.PI) / 180) *\n Math.cos((p2.lat() * Math.PI) / 180) *\n Math.sin(dLon / 2) *\n Math.sin(dLon / 2);\n return R * (2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)));\n };\n Clusterer.prototype.isMarkerInBounds = function (marker, bounds) {\n var position = marker.getPosition();\n if (position) {\n return bounds.contains(position);\n }\n return false;\n };\n Clusterer.prototype.addToClosestCluster = function (marker) {\n var cluster;\n var distance = 40000; // Some large number\n var clusterToAddTo = null;\n for (var _i = 0, _a = this.clusters; _i < _a.length; _i++) {\n var clusterElement = _a[_i];\n cluster = clusterElement;\n var center = cluster.getCenter();\n var position = marker.getPosition();\n if (center && position) {\n var d = this.distanceBetweenPoints(center, position);\n if (d < distance) {\n distance = d;\n clusterToAddTo = cluster;\n }\n }\n }\n if (clusterToAddTo && clusterToAddTo.isMarkerInClusterBounds(marker)) {\n clusterToAddTo.addMarker(marker);\n }\n else {\n cluster = new Cluster$1(this);\n cluster.addMarker(marker);\n this.clusters.push(cluster);\n }\n };\n Clusterer.prototype.createClusters = function (iFirst) {\n var _this = this;\n if (!this.ready) {\n return;\n }\n // Cancel previous batch processing if we're working on the first batch:\n if (iFirst === 0) {\n /**\n * This event is fired when the <code>Clusterer</code> begins\n * clustering markers.\n * @name Clusterer#clusteringbegin\n * @param {Clusterer} mc The Clusterer whose markers are being clustered.\n * @event\n */\n google.maps.event.trigger(this, 'clusteringbegin', this);\n if (this.timerRefStatic !== null) {\n window.clearTimeout(this.timerRefStatic);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete this.timerRefStatic;\n }\n }\n var map = this.getMap();\n var bounds = map !== null && 'getBounds' in map ? map.getBounds() : null;\n var zoom = (map === null || map === void 0 ? void 0 : map.getZoom()) || 0;\n // Get our current map view bounds.\n // Create a new bounds object so we don't affect the map.\n //\n // See Comments 9 & 11 on Issue 3651 relating to this workaround for a Google Maps bug:\n var mapBounds = zoom > 3\n ? new google.maps.LatLngBounds(bounds === null || bounds === void 0 ? void 0 : bounds.getSouthWest(), bounds === null || bounds === void 0 ? void 0 : bounds.getNorthEast())\n : new google.maps.LatLngBounds(new google.maps.LatLng(85.02070771743472, -178.48388434375), new google.maps.LatLng(-85.08136444384544, 178.00048865625));\n var extendedMapBounds = this.getExtendedBounds(mapBounds);\n var iLast = Math.min(iFirst + this.batchSize, this.markers.length);\n for (var i = iFirst; i < iLast; i++) {\n var marker = this.markers[i];\n if (marker && !marker.isAdded && this.isMarkerInBounds(marker, extendedMapBounds) && (!this.ignoreHidden || (this.ignoreHidden && marker.getVisible()))) {\n this.addToClosestCluster(marker);\n }\n }\n if (iLast < this.markers.length) {\n this.timerRefStatic = window.setTimeout(function () {\n _this.createClusters(iLast);\n }, 0);\n }\n else {\n this.timerRefStatic = null;\n /**\n * This event is fired when the <code>Clusterer</code> stops\n * clustering markers.\n * @name Clusterer#clusteringend\n * @param {Clusterer} mc The Clusterer whose markers are being clustered.\n * @event\n */\n google.maps.event.trigger(this, 'clusteringend', this);\n for (var _i = 0, _a = this.clusters; _i < _a.length; _i++) {\n var cluster = _a[_i];\n cluster.updateIcon();\n }\n }\n };\n Clusterer.prototype.extend = function (obj1, obj2) {\n return function applyExtend(object) {\n for (var property in object.prototype) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var prop = property;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.prototype[prop] = object.prototype[prop];\n }\n return this;\n }.apply(obj1, [obj2]);\n };\n return Clusterer;\n}());\n\nvar eventMap$e = {\n onClick: 'click',\n onClusteringBegin: 'clusteringbegin',\n onClusteringEnd: 'clusteringend',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n};\nvar updaterMap$e = {\n averageCenter: function (instance, averageCenter) {\n instance.setAverageCenter(averageCenter);\n },\n batchSizeIE: function (instance, batchSizeIE) {\n instance.setBatchSizeIE(batchSizeIE);\n },\n calculator: function (instance, calculator) {\n instance.setCalculator(calculator);\n },\n clusterClass: function (instance, clusterClass) {\n instance.setClusterClass(clusterClass);\n },\n enableRetinaIcons: function (instance, enableRetinaIcons) {\n instance.setEnableRetinaIcons(enableRetinaIcons);\n },\n gridSize: function (instance, gridSize) {\n instance.setGridSize(gridSize);\n },\n ignoreHidden: function (instance, ignoreHidden) {\n instance.setIgnoreHidden(ignoreHidden);\n },\n imageExtension: function (instance, imageExtension) {\n instance.setImageExtension(imageExtension);\n },\n imagePath: function (instance, imagePath) {\n instance.setImagePath(imagePath);\n },\n imageSizes: function (instance, imageSizes) {\n instance.setImageSizes(imageSizes);\n },\n maxZoom: function (instance, maxZoom) {\n instance.setMaxZoom(maxZoom);\n },\n minimumClusterSize: function (instance, minimumClusterSize) {\n instance.setMinimumClusterSize(minimumClusterSize);\n },\n styles: function (instance, styles) {\n instance.setStyles(styles);\n },\n title: function (instance, title) {\n instance.setTitle(title);\n },\n zoomOnClick: function (instance, zoomOnClick) {\n instance.setZoomOnClick(zoomOnClick);\n },\n};\nvar defaultOptions$4 = {};\nfunction MarkerClustererFunctional(props) {\n var children = props.children, options = props.options, averageCenter = props.averageCenter, batchSizeIE = props.batchSizeIE, calculator = props.calculator, clusterClass = props.clusterClass, enableRetinaIcons = props.enableRetinaIcons, gridSize = props.gridSize, ignoreHidden = props.ignoreHidden, imageExtension = props.imageExtension, imagePath = props.imagePath, imageSizes = props.imageSizes, maxZoom = props.maxZoom, minimumClusterSize = props.minimumClusterSize, styles = props.styles, title = props.title, zoomOnClick = props.zoomOnClick, onClick = props.onClick, onClusteringBegin = props.onClusteringBegin, onClusteringEnd = props.onClusteringEnd, onMouseOver = props.onMouseOver, onMouseOut = props.onMouseOut, onLoad = props.onLoad, onUnmount = props.onUnmount;\n var _a = useState(null), instance = _a[0], setInstance = _a[1];\n var map = useContext(MapContext);\n var _b = useState(null), clickListener = _b[0], setClickListener = _b[1];\n var _c = useState(null), clusteringBeginListener = _c[0], setClusteringBeginListener = _c[1];\n var _d = useState(null), clusteringEndListener = _d[0], setClusteringEndListener = _d[1];\n var _e = useState(null), mouseoutListener = _e[0], setMouseoutListener = _e[1];\n var _f = useState(null), mouseoverListener = _f[0], setMouseoverListener = _f[1];\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, eventMap$e.onMouseOut, onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, eventMap$e.onMouseOver, onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, eventMap$e.onClick, onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onClusteringBegin) {\n if (clusteringBeginListener !== null) {\n google.maps.event.removeListener(clusteringBeginListener);\n }\n setClusteringBeginListener(google.maps.event.addListener(instance, eventMap$e.onClusteringBegin, onClusteringBegin));\n }\n }, [onClusteringBegin]);\n useEffect(function () {\n if (instance && onClusteringEnd) {\n if (clusteringEndListener !== null) {\n google.maps.event.removeListener(clusteringEndListener);\n }\n setClusteringBeginListener(google.maps.event.addListener(instance, eventMap$e.onClusteringEnd, onClusteringEnd));\n }\n }, [onClusteringEnd]);\n useEffect(function () {\n if (typeof averageCenter !== 'undefined' && instance !== null) {\n updaterMap$e.averageCenter(instance, averageCenter);\n }\n }, [instance, averageCenter]);\n useEffect(function () {\n if (typeof batchSizeIE !== 'undefined' && instance !== null) {\n updaterMap$e.batchSizeIE(instance, batchSizeIE);\n }\n }, [instance, batchSizeIE]);\n useEffect(function () {\n if (typeof calculator !== 'undefined' && instance !== null) {\n updaterMap$e.calculator(instance, calculator);\n }\n }, [instance, calculator]);\n useEffect(function () {\n if (typeof clusterClass !== 'undefined' && instance !== null) {\n updaterMap$e.clusterClass(instance, clusterClass);\n }\n }, [instance, clusterClass]);\n useEffect(function () {\n if (typeof enableRetinaIcons !== 'undefined' && instance !== null) {\n updaterMap$e.enableRetinaIcons(instance, enableRetinaIcons);\n }\n }, [instance, enableRetinaIcons]);\n useEffect(function () {\n if (typeof gridSize !== 'undefined' && instance !== null) {\n updaterMap$e.gridSize(instance, gridSize);\n }\n }, [instance, gridSize]);\n useEffect(function () {\n if (typeof ignoreHidden !== 'undefined' && instance !== null) {\n updaterMap$e.ignoreHidden(instance, ignoreHidden);\n }\n }, [instance, ignoreHidden]);\n useEffect(function () {\n if (typeof imageExtension !== 'undefined' && instance !== null) {\n updaterMap$e.imageExtension(instance, imageExtension);\n }\n }, [instance, imageExtension]);\n useEffect(function () {\n if (typeof imagePath !== 'undefined' && instance !== null) {\n updaterMap$e.imagePath(instance, imagePath);\n }\n }, [instance, imagePath]);\n useEffect(function () {\n if (typeof imageSizes !== 'undefined' && instance !== null) {\n updaterMap$e.imageSizes(instance, imageSizes);\n }\n }, [instance, imageSizes]);\n useEffect(function () {\n if (typeof maxZoom !== 'undefined' && instance !== null) {\n updaterMap$e.maxZoom(instance, maxZoom);\n }\n }, [instance, maxZoom]);\n useEffect(function () {\n if (typeof minimumClusterSize !== 'undefined' && instance !== null) {\n updaterMap$e.minimumClusterSize(instance, minimumClusterSize);\n }\n }, [instance, minimumClusterSize]);\n useEffect(function () {\n if (typeof styles !== 'undefined' && instance !== null) {\n updaterMap$e.styles(instance, styles);\n }\n }, [instance, styles]);\n useEffect(function () {\n if (typeof title !== 'undefined' && instance !== null) {\n updaterMap$e.title(instance, title);\n }\n }, [instance, title]);\n useEffect(function () {\n if (typeof zoomOnClick !== 'undefined' && instance !== null) {\n updaterMap$e.zoomOnClick(instance, zoomOnClick);\n }\n }, [instance, zoomOnClick]);\n useEffect(function () {\n if (!map)\n return;\n var clustererOptions = __assign({}, (options || defaultOptions$4));\n var clusterer = new Clusterer(map, [], clustererOptions);\n if (averageCenter) {\n updaterMap$e.averageCenter(clusterer, averageCenter);\n }\n if (batchSizeIE) {\n updaterMap$e.batchSizeIE(clusterer, batchSizeIE);\n }\n if (calculator) {\n updaterMap$e.calculator(clusterer, calculator);\n }\n if (clusterClass) {\n updaterMap$e.clusterClass(clusterer, clusterClass);\n }\n if (enableRetinaIcons) {\n updaterMap$e.enableRetinaIcons(clusterer, enableRetinaIcons);\n }\n if (gridSize) {\n updaterMap$e.gridSize(clusterer, gridSize);\n }\n if (ignoreHidden) {\n updaterMap$e.ignoreHidden(clusterer, ignoreHidden);\n }\n if (imageExtension) {\n updaterMap$e.imageExtension(clusterer, imageExtension);\n }\n if (imagePath) {\n updaterMap$e.imagePath(clusterer, imagePath);\n }\n if (imageSizes) {\n updaterMap$e.imageSizes(clusterer, imageSizes);\n }\n if (maxZoom) {\n updaterMap$e.maxZoom(clusterer, maxZoom);\n }\n if (minimumClusterSize) {\n updaterMap$e.minimumClusterSize(clusterer, minimumClusterSize);\n }\n if (styles) {\n updaterMap$e.styles(clusterer, styles);\n }\n if (title) {\n updaterMap$e.title(clusterer, title);\n }\n if (zoomOnClick) {\n updaterMap$e.zoomOnClick(clusterer, zoomOnClick);\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(clusterer, eventMap$e.onMouseOut, onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(clusterer, eventMap$e.onMouseOver, onMouseOver));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(clusterer, eventMap$e.onClick, onClick));\n }\n if (onClusteringBegin) {\n setClusteringBeginListener(google.maps.event.addListener(clusterer, eventMap$e.onClusteringBegin, onClusteringBegin));\n }\n if (onClusteringEnd) {\n setClusteringEndListener(google.maps.event.addListener(clusterer, eventMap$e.onClusteringEnd, onClusteringEnd));\n }\n setInstance(clusterer);\n if (onLoad) {\n onLoad(clusterer);\n }\n return function () {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (clusteringBeginListener !== null) {\n google.maps.event.removeListener(clusteringBeginListener);\n }\n if (clusteringEndListener !== null) {\n google.maps.event.removeListener(clusteringEndListener);\n }\n if (onUnmount) {\n onUnmount(clusterer);\n }\n };\n }, []);\n return instance !== null ? children(instance) || null : null;\n}\nvar MarkerClustererF = memo(MarkerClustererFunctional);\nvar ClustererComponent = /** @class */ (function (_super) {\n __extends(ClustererComponent, _super);\n function ClustererComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n markerClusterer: null,\n };\n _this.setClustererCallback = function () {\n if (_this.state.markerClusterer !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.markerClusterer);\n }\n };\n return _this;\n }\n ClustererComponent.prototype.componentDidMount = function () {\n if (this.context) {\n var markerClusterer_1 = new Clusterer(this.context, [], this.props.options);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$e,\n eventMap: eventMap$e,\n prevProps: {},\n nextProps: this.props,\n instance: markerClusterer_1,\n });\n this.setState(function () {\n return {\n markerClusterer: markerClusterer_1,\n };\n }, this.setClustererCallback);\n }\n };\n ClustererComponent.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.markerClusterer) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$e,\n eventMap: eventMap$e,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.markerClusterer,\n });\n }\n };\n ClustererComponent.prototype.componentWillUnmount = function () {\n if (this.state.markerClusterer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.markerClusterer);\n }\n unregisterEvents(this.registeredEvents);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.state.markerClusterer.setMap(null);\n }\n };\n ClustererComponent.prototype.render = function () {\n return this.state.markerClusterer !== null\n ? this.props.children(this.state.markerClusterer)\n : null;\n };\n ClustererComponent.contextType = MapContext;\n return ClustererComponent;\n}(PureComponent));\n\n// This handler prevents an event in the InfoBox from being passed on to the map.\nfunction cancelHandler(event) {\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n}\nvar InfoBox = /** @class */ (function () {\n function InfoBox(options) {\n if (options === void 0) { options = {}; }\n this.getCloseClickHandler = this.getCloseClickHandler.bind(this);\n this.closeClickHandler = this.closeClickHandler.bind(this);\n this.createInfoBoxDiv = this.createInfoBoxDiv.bind(this);\n this.addClickHandler = this.addClickHandler.bind(this);\n this.getCloseBoxImg = this.getCloseBoxImg.bind(this);\n this.getBoxWidths = this.getBoxWidths.bind(this);\n this.setBoxStyle = this.setBoxStyle.bind(this);\n this.setPosition = this.setPosition.bind(this);\n this.getPosition = this.getPosition.bind(this);\n this.setOptions = this.setOptions.bind(this);\n this.setContent = this.setContent.bind(this);\n this.setVisible = this.setVisible.bind(this);\n this.getContent = this.getContent.bind(this);\n this.getVisible = this.getVisible.bind(this);\n this.setZIndex = this.setZIndex.bind(this);\n this.getZIndex = this.getZIndex.bind(this);\n this.onRemove = this.onRemove.bind(this);\n this.panBox = this.panBox.bind(this);\n this.extend = this.extend.bind(this);\n this.close = this.close.bind(this);\n this.draw = this.draw.bind(this);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n this.open = this.open.bind(this);\n this.extend(InfoBox, google.maps.OverlayView);\n // Standard options (in common with google.maps.InfoWindow):\n this.content = options.content || '';\n this.disableAutoPan = options.disableAutoPan || false;\n this.maxWidth = options.maxWidth || 0;\n this.pixelOffset = options.pixelOffset || new google.maps.Size(0, 0);\n this.position = options.position || new google.maps.LatLng(0, 0);\n this.zIndex = options.zIndex || null;\n // Additional options (unique to InfoBox):\n this.boxClass = options.boxClass || 'infoBox';\n this.boxStyle = options.boxStyle || {};\n this.closeBoxMargin = options.closeBoxMargin || '2px';\n this.closeBoxURL = options.closeBoxURL || 'http://www.google.com/intl/en_us/mapfiles/close.gif';\n if (options.closeBoxURL === '') {\n this.closeBoxURL = '';\n }\n this.infoBoxClearance = options.infoBoxClearance || new google.maps.Size(1, 1);\n if (typeof options.visible === 'undefined') {\n if (typeof options.isHidden === 'undefined') {\n options.visible = true;\n }\n else {\n options.visible = !options.isHidden;\n }\n }\n this.isHidden = !options.visible;\n this.alignBottom = options.alignBottom || false;\n this.pane = options.pane || 'floatPane';\n this.enableEventPropagation = options.enableEventPropagation || false;\n this.div = null;\n this.closeListener = null;\n this.moveListener = null;\n this.mapListener = null;\n this.contextListener = null;\n this.eventListeners = null;\n this.fixedWidthSet = null;\n }\n InfoBox.prototype.createInfoBoxDiv = function () {\n var _this = this;\n // This handler ignores the current event in the InfoBox and conditionally prevents\n // the event from being passed on to the map. It is used for the contextmenu event.\n var ignoreHandler = function (event) {\n event.returnValue = false;\n if (event.preventDefault) {\n event.preventDefault();\n }\n if (!_this.enableEventPropagation) {\n cancelHandler(event);\n }\n };\n if (!this.div) {\n this.div = document.createElement('div');\n this.setBoxStyle();\n if (typeof this.content === 'string') {\n this.div.innerHTML = this.getCloseBoxImg() + this.content;\n }\n else {\n this.div.innerHTML = this.getCloseBoxImg();\n this.div.appendChild(this.content);\n }\n var panes = this.getPanes();\n if (panes !== null) {\n panes[this.pane].appendChild(this.div); // Add the InfoBox div to the DOM\n }\n this.addClickHandler();\n if (this.div.style.width) {\n this.fixedWidthSet = true;\n }\n else {\n if (this.maxWidth !== 0 && this.div.offsetWidth > this.maxWidth) {\n this.div.style.width = this.maxWidth + 'px';\n this.fixedWidthSet = true;\n }\n else {\n // The following code is needed to overcome problems with MSIE\n var bw = this.getBoxWidths();\n this.div.style.width = this.div.offsetWidth - bw.left - bw.right + 'px';\n this.fixedWidthSet = false;\n }\n }\n this.panBox(this.disableAutoPan);\n if (!this.enableEventPropagation) {\n this.eventListeners = [];\n // Cancel event propagation.\n // Note: mousemove not included (to resolve Issue 152)\n var events = [\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'mouseup',\n 'click',\n 'dblclick',\n 'touchstart',\n 'touchend',\n 'touchmove',\n ];\n for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {\n var event_1 = events_1[_i];\n this.eventListeners.push(google.maps.event.addListener(this.div, event_1, cancelHandler));\n }\n // Workaround for Google bug that causes the cursor to change to a pointer\n // when the mouse moves over a marker underneath InfoBox.\n this.eventListeners.push(google.maps.event.addListener(this.div, 'mouseover', function () {\n if (_this.div) {\n _this.div.style.cursor = 'default';\n }\n }));\n }\n this.contextListener = google.maps.event.addListener(this.div, 'contextmenu', ignoreHandler);\n /**\n * This event is fired when the DIV containing the InfoBox's content is attached to the DOM.\n * @name InfoBox#domready\n * @event\n */\n google.maps.event.trigger(this, 'domready');\n }\n };\n InfoBox.prototype.getCloseBoxImg = function () {\n var img = '';\n if (this.closeBoxURL !== '') {\n img = '<img alt=\"\"';\n img += ' aria-hidden=\"true\"';\n img += \" src='\" + this.closeBoxURL + \"'\";\n img += ' align=right'; // Do this because Opera chokes on style='float: right;'\n img += \" style='\";\n img += ' position: relative;'; // Required by MSIE\n img += ' cursor: pointer;';\n img += ' margin: ' + this.closeBoxMargin + ';';\n img += \"'>\";\n }\n return img;\n };\n InfoBox.prototype.addClickHandler = function () {\n this.closeListener = this.div && this.div.firstChild && this.closeBoxURL !== ''\n ? google.maps.event.addListener(this.div.firstChild, 'click', this.getCloseClickHandler())\n : null;\n };\n InfoBox.prototype.closeClickHandler = function (event) {\n // 1.0.3 fix: Always prevent propagation of a close box click to the map:\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n /**\n * This event is fired when the InfoBox's close box is clicked.\n * @name InfoBox#closeclick\n * @event\n */\n google.maps.event.trigger(this, 'closeclick');\n this.close();\n };\n InfoBox.prototype.getCloseClickHandler = function () {\n return this.closeClickHandler;\n };\n InfoBox.prototype.panBox = function (disablePan) {\n if (this.div && !disablePan) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var map = this.getMap();\n // Only pan if attached to map, not panorama\n if (map instanceof google.maps.Map) {\n var xOffset = 0;\n var yOffset = 0;\n var bounds = map.getBounds();\n if (bounds && !bounds.contains(this.position)) {\n // Marker not in visible area of map, so set center\n // of map to the marker position first.\n map.setCenter(this.position);\n }\n var mapDiv = map.getDiv();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var mapWidth = mapDiv.offsetWidth;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var mapHeight = mapDiv.offsetHeight;\n var iwOffsetX = this.pixelOffset.width;\n var iwOffsetY = this.pixelOffset.height;\n var iwWidth = this.div.offsetWidth;\n var iwHeight = this.div.offsetHeight;\n var padX = this.infoBoxClearance.width;\n var padY = this.infoBoxClearance.height;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var projection = this.getProjection();\n var pixPosition = projection.fromLatLngToContainerPixel(this.position);\n if (pixPosition !== null) {\n if (pixPosition.x < -iwOffsetX + padX) {\n xOffset = pixPosition.x + iwOffsetX - padX;\n }\n else if (pixPosition.x + iwWidth + iwOffsetX + padX > mapWidth) {\n xOffset = pixPosition.x + iwWidth + iwOffsetX + padX - mapWidth;\n }\n if (this.alignBottom) {\n if (pixPosition.y < -iwOffsetY + padY + iwHeight) {\n yOffset = pixPosition.y + iwOffsetY - padY - iwHeight;\n }\n else if (pixPosition.y + iwOffsetY + padY > mapHeight) {\n yOffset = pixPosition.y + iwOffsetY + padY - mapHeight;\n }\n }\n else {\n if (pixPosition.y < -iwOffsetY + padY) {\n yOffset = pixPosition.y + iwOffsetY - padY;\n }\n else if (pixPosition.y + iwHeight + iwOffsetY + padY > mapHeight) {\n yOffset = pixPosition.y + iwHeight + iwOffsetY + padY - mapHeight;\n }\n }\n }\n if (!(xOffset === 0 && yOffset === 0)) {\n // Move the map to the shifted center.\n map.panBy(xOffset, yOffset);\n }\n }\n }\n };\n InfoBox.prototype.setBoxStyle = function () {\n if (this.div) {\n // Apply style values from the style sheet defined in the boxClass parameter:\n this.div.className = this.boxClass;\n // Clear existing inline style values:\n this.div.style.cssText = '';\n // Apply style values defined in the boxStyle parameter:\n var boxStyle = this.boxStyle;\n for (var i in boxStyle) {\n if (Object.prototype.hasOwnProperty.call(boxStyle, i)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.div.style[i] = boxStyle[i];\n }\n }\n // Fix for iOS disappearing InfoBox problem\n // See http://stackoverflow.com/questions/9229535/google-maps-markers-disappear-at-certain-zoom-level-only-on-iphone-ipad\n this.div.style.webkitTransform = 'translateZ(0)';\n // Fix up opacity style for benefit of MSIE\n if (typeof this.div.style.opacity !== 'undefined' && this.div.style.opacity !== '') {\n // See http://www.quirksmode.org/css/opacity.html\n var opacity = parseFloat(this.div.style.opacity || '');\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.div.style.msFilter =\n '\"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + opacity * 100 + ')\"';\n this.div.style.filter = 'alpha(opacity=' + opacity * 100 + ')';\n }\n // Apply required styles\n this.div.style.position = 'absolute';\n this.div.style.visibility = 'hidden';\n if (this.zIndex !== null) {\n this.div.style.zIndex = this.zIndex + '';\n }\n if (!this.div.style.overflow) {\n this.div.style.overflow = 'auto';\n }\n }\n };\n InfoBox.prototype.getBoxWidths = function () {\n var bw = { top: 0, bottom: 0, left: 0, right: 0 };\n if (!this.div) {\n return bw;\n }\n if (document.defaultView) {\n var ownerDocument = this.div.ownerDocument;\n var computedStyle = ownerDocument && ownerDocument.defaultView\n ? ownerDocument.defaultView.getComputedStyle(this.div, '')\n : null;\n if (computedStyle) {\n // The computed styles are always in pixel units (good!)\n bw.top = parseInt(computedStyle.borderTopWidth || '', 10) || 0;\n bw.bottom = parseInt(computedStyle.borderBottomWidth || '', 10) || 0;\n bw.left = parseInt(computedStyle.borderLeftWidth || '', 10) || 0;\n bw.right = parseInt(computedStyle.borderRightWidth || '', 10) || 0;\n }\n }\n else if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n document.documentElement.currentStyle // MSIE\n ) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var currentStyle = this.div.currentStyle;\n if (currentStyle) {\n // The current styles may not be in pixel units, but assume they are (bad!)\n bw.top = parseInt(currentStyle.borderTopWidth || '', 10) || 0;\n bw.bottom = parseInt(currentStyle.borderBottomWidth || '', 10) || 0;\n bw.left = parseInt(currentStyle.borderLeftWidth || '', 10) || 0;\n bw.right = parseInt(currentStyle.borderRightWidth || '', 10) || 0;\n }\n }\n return bw;\n };\n InfoBox.prototype.onRemove = function () {\n if (this.div && this.div.parentNode) {\n this.div.parentNode.removeChild(this.div);\n this.div = null;\n }\n };\n InfoBox.prototype.draw = function () {\n this.createInfoBoxDiv();\n if (this.div) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var projection = this.getProjection();\n var pixPosition = projection.fromLatLngToDivPixel(this.position);\n if (pixPosition !== null) {\n this.div.style.left = pixPosition.x + this.pixelOffset.width + 'px';\n if (this.alignBottom) {\n this.div.style.bottom = -(pixPosition.y + this.pixelOffset.height) + 'px';\n }\n else {\n this.div.style.top = pixPosition.y + this.pixelOffset.height + 'px';\n }\n }\n if (this.isHidden) {\n this.div.style.visibility = 'hidden';\n }\n else {\n this.div.style.visibility = 'visible';\n }\n }\n };\n InfoBox.prototype.setOptions = function (options) {\n if (options === void 0) { options = {}; }\n if (typeof options.boxClass !== 'undefined') {\n // Must be first\n this.boxClass = options.boxClass;\n this.setBoxStyle();\n }\n if (typeof options.boxStyle !== 'undefined') {\n // Must be second\n this.boxStyle = options.boxStyle;\n this.setBoxStyle();\n }\n if (typeof options.content !== 'undefined') {\n this.setContent(options.content);\n }\n if (typeof options.disableAutoPan !== 'undefined') {\n this.disableAutoPan = options.disableAutoPan;\n }\n if (typeof options.maxWidth !== 'undefined') {\n this.maxWidth = options.maxWidth;\n }\n if (typeof options.pixelOffset !== 'undefined') {\n this.pixelOffset = options.pixelOffset;\n }\n if (typeof options.alignBottom !== 'undefined') {\n this.alignBottom = options.alignBottom;\n }\n if (typeof options.position !== 'undefined') {\n this.setPosition(options.position);\n }\n if (typeof options.zIndex !== 'undefined') {\n this.setZIndex(options.zIndex);\n }\n if (typeof options.closeBoxMargin !== 'undefined') {\n this.closeBoxMargin = options.closeBoxMargin;\n }\n if (typeof options.closeBoxURL !== 'undefined') {\n this.closeBoxURL = options.closeBoxURL;\n }\n if (typeof options.infoBoxClearance !== 'undefined') {\n this.infoBoxClearance = options.infoBoxClearance;\n }\n if (typeof options.isHidden !== 'undefined') {\n this.isHidden = options.isHidden;\n }\n if (typeof options.visible !== 'undefined') {\n this.isHidden = !options.visible;\n }\n if (typeof options.enableEventPropagation !== 'undefined') {\n this.enableEventPropagation = options.enableEventPropagation;\n }\n if (this.div) {\n this.draw();\n }\n };\n InfoBox.prototype.setContent = function (content) {\n this.content = content;\n if (this.div) {\n if (this.closeListener) {\n google.maps.event.removeListener(this.closeListener);\n this.closeListener = null;\n }\n // Odd code required to make things work with MSIE.\n if (!this.fixedWidthSet) {\n this.div.style.width = '';\n }\n if (typeof content === 'string') {\n this.div.innerHTML = this.getCloseBoxImg() + content;\n }\n else {\n this.div.innerHTML = this.getCloseBoxImg();\n this.div.appendChild(content);\n }\n // Perverse code required to make things work with MSIE.\n // (Ensures the close box does, in fact, float to the right.)\n if (!this.fixedWidthSet) {\n this.div.style.width = this.div.offsetWidth + 'px';\n if (typeof content === 'string') {\n this.div.innerHTML = this.getCloseBoxImg() + content;\n }\n else {\n this.div.innerHTML = this.getCloseBoxImg();\n this.div.appendChild(content);\n }\n }\n this.addClickHandler();\n }\n /**\n * This event is fired when the content of the InfoBox changes.\n * @name InfoBox#content_changed\n * @event\n */\n google.maps.event.trigger(this, 'content_changed');\n };\n InfoBox.prototype.setPosition = function (latLng) {\n this.position = latLng;\n if (this.div) {\n this.draw();\n }\n /**\n * This event is fired when the position of the InfoBox changes.\n * @name InfoBox#position_changed\n * @event\n */\n google.maps.event.trigger(this, 'position_changed');\n };\n InfoBox.prototype.setVisible = function (isVisible) {\n this.isHidden = !isVisible;\n if (this.div) {\n this.div.style.visibility = this.isHidden ? 'hidden' : 'visible';\n }\n };\n InfoBox.prototype.setZIndex = function (index) {\n this.zIndex = index;\n if (this.div) {\n this.div.style.zIndex = index + '';\n }\n /**\n * This event is fired when the zIndex of the InfoBox changes.\n * @name InfoBox#zindex_changed\n * @event\n */\n google.maps.event.trigger(this, 'zindex_changed');\n };\n InfoBox.prototype.getContent = function () {\n return this.content;\n };\n InfoBox.prototype.getPosition = function () {\n return this.position;\n };\n InfoBox.prototype.getZIndex = function () {\n return this.zIndex;\n };\n InfoBox.prototype.getVisible = function () {\n var map = this.getMap();\n return typeof map === 'undefined' || map === null ? false : !this.isHidden;\n };\n InfoBox.prototype.show = function () {\n this.isHidden = false;\n if (this.div) {\n this.div.style.visibility = 'visible';\n }\n };\n InfoBox.prototype.hide = function () {\n this.isHidden = true;\n if (this.div) {\n this.div.style.visibility = 'hidden';\n }\n };\n InfoBox.prototype.open = function (map, anchor) {\n var _this = this;\n if (anchor) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.position = anchor.getPosition();\n this.moveListener = google.maps.event.addListener(anchor, 'position_changed', function () {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var position = anchor.getPosition();\n _this.setPosition(position);\n });\n this.mapListener = google.maps.event.addListener(anchor, 'map_changed', function () {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n _this.setMap(anchor.map);\n });\n }\n this.setMap(map);\n if (this.div) {\n this.panBox();\n }\n };\n InfoBox.prototype.close = function () {\n if (this.closeListener) {\n google.maps.event.removeListener(this.closeListener);\n this.closeListener = null;\n }\n if (this.eventListeners) {\n for (var _i = 0, _a = this.eventListeners; _i < _a.length; _i++) {\n var eventListener = _a[_i];\n google.maps.event.removeListener(eventListener);\n }\n this.eventListeners = null;\n }\n if (this.moveListener) {\n google.maps.event.removeListener(this.moveListener);\n this.moveListener = null;\n }\n if (this.mapListener) {\n google.maps.event.removeListener(this.mapListener);\n this.mapListener = null;\n }\n if (this.contextListener) {\n google.maps.event.removeListener(this.contextListener);\n this.contextListener = null;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.setMap(null);\n };\n InfoBox.prototype.extend = function (obj1, obj2) {\n return function applyExtend(object) {\n for (var property in object.prototype) {\n if (!Object.prototype.hasOwnProperty.call(this, property)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.prototype[property] = object.prototype[property];\n }\n }\n return this;\n }.apply(obj1, [obj2]);\n };\n return InfoBox;\n}());\n\nvar eventMap$d = {\n onCloseClick: 'closeclick',\n onContentChanged: 'content_changed',\n onDomReady: 'domready',\n onPositionChanged: 'position_changed',\n onZindexChanged: 'zindex_changed',\n};\nvar updaterMap$d = {\n options: function (instance, options) {\n instance.setOptions(options);\n },\n position: function (instance, position) {\n if (position instanceof google.maps.LatLng) {\n instance.setPosition(position);\n }\n else {\n instance.setPosition(new google.maps.LatLng(position.lat, position.lng));\n }\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n },\n zIndex: function (instance, zIndex) {\n instance.setZIndex(zIndex);\n },\n};\nvar defaultOptions$3 = {};\nfunction InfoBoxFunctional(_a) {\n var children = _a.children, anchor = _a.anchor, options = _a.options, position = _a.position, zIndex = _a.zIndex, onCloseClick = _a.onCloseClick, onDomReady = _a.onDomReady, onContentChanged = _a.onContentChanged, onPositionChanged = _a.onPositionChanged, onZindexChanged = _a.onZindexChanged, onLoad = _a.onLoad, onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n var _c = useState(null), closeClickListener = _c[0], setCloseClickListener = _c[1];\n var _d = useState(null), domReadyClickListener = _d[0], setDomReadyClickListener = _d[1];\n var _e = useState(null), contentChangedClickListener = _e[0], setContentChangedClickListener = _e[1];\n var _f = useState(null), positionChangedClickListener = _f[0], setPositionChangedClickListener = _f[1];\n var _g = useState(null), zIndexChangedClickListener = _g[0], setZindexChangedClickListener = _g[1];\n var containerElementRef = useRef(null);\n // Order does matter\n useEffect(function () {\n if (map && instance !== null) {\n instance.close();\n if (anchor) {\n instance.open(map, anchor);\n }\n else if (instance.getPosition()) {\n instance.open(map);\n }\n }\n }, [map, instance, anchor]);\n useEffect(function () {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (position && instance !== null) {\n var positionLatLng = position instanceof google.maps.LatLng\n ? position\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n : new google.maps.LatLng(position.lat, position.lng);\n instance.setPosition(positionLatLng);\n }\n }, [position]);\n useEffect(function () {\n if (typeof zIndex === 'number' && instance !== null) {\n instance.setZIndex(zIndex);\n }\n }, [zIndex]);\n useEffect(function () {\n if (instance && onCloseClick) {\n if (closeClickListener !== null) {\n google.maps.event.removeListener(closeClickListener);\n }\n setCloseClickListener(google.maps.event.addListener(instance, 'closeclick', onCloseClick));\n }\n }, [onCloseClick]);\n useEffect(function () {\n if (instance && onDomReady) {\n if (domReadyClickListener !== null) {\n google.maps.event.removeListener(domReadyClickListener);\n }\n setDomReadyClickListener(google.maps.event.addListener(instance, 'domready', onDomReady));\n }\n }, [onDomReady]);\n useEffect(function () {\n if (instance && onContentChanged) {\n if (contentChangedClickListener !== null) {\n google.maps.event.removeListener(contentChangedClickListener);\n }\n setContentChangedClickListener(google.maps.event.addListener(instance, 'content_changed', onContentChanged));\n }\n }, [onContentChanged]);\n useEffect(function () {\n if (instance && onPositionChanged) {\n if (positionChangedClickListener !== null) {\n google.maps.event.removeListener(positionChangedClickListener);\n }\n setPositionChangedClickListener(google.maps.event.addListener(instance, 'position_changed', onPositionChanged));\n }\n }, [onPositionChanged]);\n useEffect(function () {\n if (instance && onZindexChanged) {\n if (zIndexChangedClickListener !== null) {\n google.maps.event.removeListener(zIndexChangedClickListener);\n }\n setZindexChangedClickListener(google.maps.event.addListener(instance, 'zindex_changed', onZindexChanged));\n }\n }, [onZindexChanged]);\n useEffect(function () {\n if (map) {\n var _a = options || defaultOptions$3, position_1 = _a.position, infoBoxOptions = __rest$1(_a, [\"position\"]);\n var positionLatLng = void 0;\n if (position_1 && !(position_1 instanceof google.maps.LatLng)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n positionLatLng = new google.maps.LatLng(position_1.lat, position_1.lng);\n }\n var infoBox = new InfoBox(__assign(__assign({}, infoBoxOptions), (positionLatLng ? { position: positionLatLng } : {})));\n containerElementRef.current = document.createElement('div');\n setInstance(infoBox);\n if (onCloseClick) {\n setCloseClickListener(google.maps.event.addListener(infoBox, 'closeclick', onCloseClick));\n }\n if (onDomReady) {\n setDomReadyClickListener(google.maps.event.addListener(infoBox, 'domready', onDomReady));\n }\n if (onContentChanged) {\n setContentChangedClickListener(google.maps.event.addListener(infoBox, 'content_changed', onContentChanged));\n }\n if (onPositionChanged) {\n setPositionChangedClickListener(google.maps.event.addListener(infoBox, 'position_changed', onPositionChanged));\n }\n if (onZindexChanged) {\n setZindexChangedClickListener(google.maps.event.addListener(infoBox, 'zindex_changed', onZindexChanged));\n }\n infoBox.setContent(containerElementRef.current);\n if (anchor) {\n infoBox.open(map, anchor);\n }\n else if (infoBox.getPosition()) {\n infoBox.open(map);\n }\n else {\n invariant$1(false, 'You must provide either an anchor or a position prop for <InfoBox>.');\n }\n if (onLoad) {\n onLoad(infoBox);\n }\n }\n return function () {\n if (instance !== null) {\n if (closeClickListener) {\n google.maps.event.removeListener(closeClickListener);\n }\n if (contentChangedClickListener) {\n google.maps.event.removeListener(contentChangedClickListener);\n }\n if (domReadyClickListener) {\n google.maps.event.removeListener(domReadyClickListener);\n }\n if (positionChangedClickListener) {\n google.maps.event.removeListener(positionChangedClickListener);\n }\n if (zIndexChangedClickListener) {\n google.maps.event.removeListener(zIndexChangedClickListener);\n }\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.close();\n }\n };\n }, []);\n return containerElementRef.current ? createPortal(Children.only(children), containerElementRef.current) : null;\n}\nvar InfoBoxF = memo(InfoBoxFunctional);\nvar InfoBoxComponent = /** @class */ (function (_super) {\n __extends(InfoBoxComponent, _super);\n function InfoBoxComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.containerElement = null;\n _this.state = {\n infoBox: null,\n };\n _this.open = function (infoBox, anchor) {\n if (anchor) {\n if (_this.context !== null) {\n infoBox.open(_this.context, anchor);\n }\n }\n else if (infoBox.getPosition()) {\n if (_this.context !== null) {\n infoBox.open(_this.context);\n }\n }\n else {\n invariant$1(false, 'You must provide either an anchor or a position prop for <InfoBox>.');\n }\n };\n _this.setInfoBoxCallback = function () {\n if (_this.state.infoBox !== null && _this.containerElement !== null) {\n _this.state.infoBox.setContent(_this.containerElement);\n _this.open(_this.state.infoBox, _this.props.anchor);\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.state.infoBox);\n }\n }\n };\n return _this;\n }\n InfoBoxComponent.prototype.componentDidMount = function () {\n var _a = this.props.options || {}, position = _a.position, infoBoxOptions = __rest$1(_a, [\"position\"]);\n var positionLatLng;\n if (position && !(position instanceof google.maps.LatLng)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n positionLatLng = new google.maps.LatLng(position.lat, position.lng);\n }\n var infoBox = new InfoBox(__assign(__assign({}, infoBoxOptions), (positionLatLng ? { position: positionLatLng } : {})));\n this.containerElement = document.createElement('div');\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$d,\n eventMap: eventMap$d,\n prevProps: {},\n nextProps: this.props,\n instance: infoBox,\n });\n this.setState({ infoBox: infoBox }, this.setInfoBoxCallback);\n };\n InfoBoxComponent.prototype.componentDidUpdate = function (prevProps) {\n var infoBox = this.state.infoBox;\n if (infoBox !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$d,\n eventMap: eventMap$d,\n prevProps: prevProps,\n nextProps: this.props,\n instance: infoBox,\n });\n }\n };\n InfoBoxComponent.prototype.componentWillUnmount = function () {\n var onUnmount = this.props.onUnmount;\n var infoBox = this.state.infoBox;\n if (infoBox !== null) {\n if (onUnmount) {\n onUnmount(infoBox);\n }\n unregisterEvents(this.registeredEvents);\n infoBox.close();\n }\n };\n InfoBoxComponent.prototype.render = function () {\n return this.containerElement ? createPortal(Children.only(this.props.children), this.containerElement) : null;\n };\n InfoBoxComponent.contextType = MapContext;\n return InfoBoxComponent;\n}(PureComponent));\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\nvar equal = /*@__PURE__*/getDefaultExportFromCjs(fastDeepEqual);\n\nconst ARRAY_TYPES = [\n Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array,\n Int32Array, Uint32Array, Float32Array, Float64Array\n];\n\n/** @typedef {Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor} TypedArrayConstructor */\n\nconst VERSION = 1; // serialized format version\nconst HEADER_SIZE = 8;\n\nclass KDBush {\n\n /**\n * Creates an index from raw `ArrayBuffer` data.\n * @param {ArrayBuffer} data\n */\n static from(data) {\n if (!(data instanceof ArrayBuffer)) {\n throw new Error('Data must be an instance of ArrayBuffer.');\n }\n const [magic, versionAndType] = new Uint8Array(data, 0, 2);\n if (magic !== 0xdb) {\n throw new Error('Data does not appear to be in a KDBush format.');\n }\n const version = versionAndType >> 4;\n if (version !== VERSION) {\n throw new Error(`Got v${version} data when expected v${VERSION}.`);\n }\n const ArrayType = ARRAY_TYPES[versionAndType & 0x0f];\n if (!ArrayType) {\n throw new Error('Unrecognized array type.');\n }\n const [nodeSize] = new Uint16Array(data, 2, 1);\n const [numItems] = new Uint32Array(data, 4, 1);\n\n return new KDBush(numItems, nodeSize, ArrayType, data);\n }\n\n /**\n * Creates an index that will hold a given number of items.\n * @param {number} numItems\n * @param {number} [nodeSize=64] Size of the KD-tree node (64 by default).\n * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).\n * @param {ArrayBuffer} [data] (For internal use only)\n */\n constructor(numItems, nodeSize = 64, ArrayType = Float64Array, data) {\n if (isNaN(numItems) || numItems < 0) throw new Error(`Unpexpected numItems value: ${numItems}.`);\n\n this.numItems = +numItems;\n this.nodeSize = Math.min(Math.max(+nodeSize, 2), 65535);\n this.ArrayType = ArrayType;\n this.IndexArrayType = numItems < 65536 ? Uint16Array : Uint32Array;\n\n const arrayTypeIndex = ARRAY_TYPES.indexOf(this.ArrayType);\n const coordsByteSize = numItems * 2 * this.ArrayType.BYTES_PER_ELEMENT;\n const idsByteSize = numItems * this.IndexArrayType.BYTES_PER_ELEMENT;\n const padCoords = (8 - idsByteSize % 8) % 8;\n\n if (arrayTypeIndex < 0) {\n throw new Error(`Unexpected typed array class: ${ArrayType}.`);\n }\n\n if (data && (data instanceof ArrayBuffer)) { // reconstruct an index from a buffer\n this.data = data;\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = numItems * 2;\n this._finished = true;\n } else { // initialize a new index\n this.data = new ArrayBuffer(HEADER_SIZE + coordsByteSize + idsByteSize + padCoords);\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = 0;\n this._finished = false;\n\n // set header\n new Uint8Array(this.data, 0, 2).set([0xdb, (VERSION << 4) + arrayTypeIndex]);\n new Uint16Array(this.data, 2, 1)[0] = nodeSize;\n new Uint32Array(this.data, 4, 1)[0] = numItems;\n }\n }\n\n /**\n * Add a point to the index.\n * @param {number} x\n * @param {number} y\n * @returns {number} An incremental index associated with the added item (starting from `0`).\n */\n add(x, y) {\n const index = this._pos >> 1;\n this.ids[index] = index;\n this.coords[this._pos++] = x;\n this.coords[this._pos++] = y;\n return index;\n }\n\n /**\n * Perform indexing of the added points.\n */\n finish() {\n const numAdded = this._pos >> 1;\n if (numAdded !== this.numItems) {\n throw new Error(`Added ${numAdded} items when expected ${this.numItems}.`);\n }\n // kd-sort both arrays for efficient search\n sort(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0);\n\n this._finished = true;\n return this;\n }\n\n /**\n * Search the index for items within a given bounding box.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @returns {number[]} An array of indices correponding to the found items.\n */\n range(minX, minY, maxX, maxY) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n\n const {ids, coords, nodeSize} = this;\n const stack = [0, ids.length - 1, 0];\n const result = [];\n\n // recursively search for items in range in the kd-sorted arrays\n while (stack.length) {\n const axis = stack.pop() || 0;\n const right = stack.pop() || 0;\n const left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n const m = (left + right) >> 1;\n\n // include the middle item if it's in range\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n\n return result;\n }\n\n /**\n * Search the index for items within a given radius.\n * @param {number} qx\n * @param {number} qy\n * @param {number} r Query radius.\n * @returns {number[]} An array of indices correponding to the found items.\n */\n within(qx, qy, r) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n\n const {ids, coords, nodeSize} = this;\n const stack = [0, ids.length - 1, 0];\n const result = [];\n const r2 = r * r;\n\n // recursively search for items within radius in the kd-sorted arrays\n while (stack.length) {\n const axis = stack.pop() || 0;\n const right = stack.pop() || 0;\n const left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n const m = (left + right) >> 1;\n\n // include the middle item if it's in range\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n\n return result;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} nodeSize\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction sort(ids, coords, nodeSize, left, right, axis) {\n if (right - left <= nodeSize) return;\n\n const m = (left + right) >> 1; // middle index\n\n // sort ids and coords around the middle index so that the halves lie\n // either left/right or top/bottom correspondingly (taking turns)\n select(ids, coords, m, left, right, axis);\n\n // recursively kd-sort first half and second half on the opposite axis\n sort(ids, coords, nodeSize, left, m - 1, 1 - axis);\n sort(ids, coords, nodeSize, m + 1, right, 1 - axis);\n}\n\n/**\n * Custom Floyd-Rivest selection algorithm: sort ids and coords so that\n * [left..k-1] items are smaller than k-th item (on either x or y axis)\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} k\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction select(ids, coords, k, left, right, axis) {\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, axis);\n }\n\n const t = coords[2 * k + axis];\n let i = left;\n let j = right;\n\n swapItem(ids, coords, left, k);\n if (coords[2 * right + axis] > t) swapItem(ids, coords, left, right);\n\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + axis] < t) i++;\n while (coords[2 * j + axis] > t) j--;\n }\n\n if (coords[2 * left + axis] === t) swapItem(ids, coords, left, j);\n else {\n j++;\n swapItem(ids, coords, j, right);\n }\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} i\n * @param {number} j\n */\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\n\n/**\n * @param {InstanceType<TypedArrayConstructor>} arr\n * @param {number} i\n * @param {number} j\n */\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\n/**\n * @param {number} ax\n * @param {number} ay\n * @param {number} bx\n * @param {number} by\n */\nfunction sqDist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n\nconst defaultOptions$2 = {\n minZoom: 0, // min zoom to generate clusters on\n maxZoom: 16, // max zoom level to cluster the points on\n minPoints: 2, // minimum points to form a cluster\n radius: 40, // cluster radius in pixels\n extent: 512, // tile extent (radius is calculated relative to it)\n nodeSize: 64, // size of the KD-tree leaf node, affects performance\n log: false, // whether to log timing info\n\n // whether to generate numeric ids for input features (in vector tiles)\n generateId: false,\n\n // a reduce function for calculating custom cluster properties\n reduce: null, // (accumulated, props) => { accumulated.sum += props.sum; }\n\n // properties to use for individual points when running the reducer\n map: props => props // props => ({sum: props.my_value})\n};\n\nconst fround = Math.fround || (tmp => ((x) => { tmp[0] = +x; return tmp[0]; }))(new Float32Array(1));\n\nconst OFFSET_ZOOM = 2;\nconst OFFSET_ID = 3;\nconst OFFSET_PARENT = 4;\nconst OFFSET_NUM = 5;\nconst OFFSET_PROP = 6;\n\nclass Supercluster {\n constructor(options) {\n this.options = Object.assign(Object.create(defaultOptions$2), options);\n this.trees = new Array(this.options.maxZoom + 1);\n this.stride = this.options.reduce ? 7 : 6;\n this.clusterProps = [];\n }\n\n load(points) {\n const {log, minZoom, maxZoom} = this.options;\n\n if (log) console.time('total time');\n\n const timerId = `prepare ${ points.length } points`;\n if (log) console.time(timerId);\n\n this.points = points;\n\n // generate a cluster object for each point and index input points into a KD-tree\n const data = [];\n\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n if (!p.geometry) continue;\n\n const [lng, lat] = p.geometry.coordinates;\n const x = fround(lngX(lng));\n const y = fround(latY(lat));\n // store internal point/cluster data in flat numeric arrays for performance\n data.push(\n x, y, // projected point coordinates\n Infinity, // the last zoom the point was processed at\n i, // index of the source feature in the original input array\n -1, // parent cluster id\n 1 // number of points in a cluster\n );\n if (this.options.reduce) data.push(0); // noop\n }\n let tree = this.trees[maxZoom + 1] = this._createTree(data);\n\n if (log) console.timeEnd(timerId);\n\n // cluster points on max zoom, then cluster the results on previous zoom, etc.;\n // results in a cluster hierarchy across zoom levels\n for (let z = maxZoom; z >= minZoom; z--) {\n const now = +Date.now();\n\n // create a new set of clusters for the zoom and index them with a KD-tree\n tree = this.trees[z] = this._createTree(this._cluster(tree, z));\n\n if (log) console.log('z%d: %d clusters in %dms', z, tree.numItems, +Date.now() - now);\n }\n\n if (log) console.timeEnd('total time');\n\n return this;\n }\n\n getClusters(bbox, zoom) {\n let minLng = ((bbox[0] + 180) % 360 + 360) % 360 - 180;\n const minLat = Math.max(-90, Math.min(90, bbox[1]));\n let maxLng = bbox[2] === 180 ? 180 : ((bbox[2] + 180) % 360 + 360) % 360 - 180;\n const maxLat = Math.max(-90, Math.min(90, bbox[3]));\n\n if (bbox[2] - bbox[0] >= 360) {\n minLng = -180;\n maxLng = 180;\n } else if (minLng > maxLng) {\n const easternHem = this.getClusters([minLng, minLat, 180, maxLat], zoom);\n const westernHem = this.getClusters([-180, minLat, maxLng, maxLat], zoom);\n return easternHem.concat(westernHem);\n }\n\n const tree = this.trees[this._limitZoom(zoom)];\n const ids = tree.range(lngX(minLng), latY(maxLat), lngX(maxLng), latY(minLat));\n const data = tree.data;\n const clusters = [];\n for (const id of ids) {\n const k = this.stride * id;\n clusters.push(data[k + OFFSET_NUM] > 1 ? getClusterJSON(data, k, this.clusterProps) : this.points[data[k + OFFSET_ID]]);\n }\n return clusters;\n }\n\n getChildren(clusterId) {\n const originId = this._getOriginId(clusterId);\n const originZoom = this._getOriginZoom(clusterId);\n const errorMsg = 'No cluster with the specified id.';\n\n const tree = this.trees[originZoom];\n if (!tree) throw new Error(errorMsg);\n\n const data = tree.data;\n if (originId * this.stride >= data.length) throw new Error(errorMsg);\n\n const r = this.options.radius / (this.options.extent * Math.pow(2, originZoom - 1));\n const x = data[originId * this.stride];\n const y = data[originId * this.stride + 1];\n const ids = tree.within(x, y, r);\n const children = [];\n for (const id of ids) {\n const k = id * this.stride;\n if (data[k + OFFSET_PARENT] === clusterId) {\n children.push(data[k + OFFSET_NUM] > 1 ? getClusterJSON(data, k, this.clusterProps) : this.points[data[k + OFFSET_ID]]);\n }\n }\n\n if (children.length === 0) throw new Error(errorMsg);\n\n return children;\n }\n\n getLeaves(clusterId, limit, offset) {\n limit = limit || 10;\n offset = offset || 0;\n\n const leaves = [];\n this._appendLeaves(leaves, clusterId, limit, offset, 0);\n\n return leaves;\n }\n\n getTile(z, x, y) {\n const tree = this.trees[this._limitZoom(z)];\n const z2 = Math.pow(2, z);\n const {extent, radius} = this.options;\n const p = radius / extent;\n const top = (y - p) / z2;\n const bottom = (y + 1 + p) / z2;\n\n const tile = {\n features: []\n };\n\n this._addTileFeatures(\n tree.range((x - p) / z2, top, (x + 1 + p) / z2, bottom),\n tree.data, x, y, z2, tile);\n\n if (x === 0) {\n this._addTileFeatures(\n tree.range(1 - p / z2, top, 1, bottom),\n tree.data, z2, y, z2, tile);\n }\n if (x === z2 - 1) {\n this._addTileFeatures(\n tree.range(0, top, p / z2, bottom),\n tree.data, -1, y, z2, tile);\n }\n\n return tile.features.length ? tile : null;\n }\n\n getClusterExpansionZoom(clusterId) {\n let expansionZoom = this._getOriginZoom(clusterId) - 1;\n while (expansionZoom <= this.options.maxZoom) {\n const children = this.getChildren(clusterId);\n expansionZoom++;\n if (children.length !== 1) break;\n clusterId = children[0].properties.cluster_id;\n }\n return expansionZoom;\n }\n\n _appendLeaves(result, clusterId, limit, offset, skipped) {\n const children = this.getChildren(clusterId);\n\n for (const child of children) {\n const props = child.properties;\n\n if (props && props.cluster) {\n if (skipped + props.point_count <= offset) {\n // skip the whole cluster\n skipped += props.point_count;\n } else {\n // enter the cluster\n skipped = this._appendLeaves(result, props.cluster_id, limit, offset, skipped);\n // exit the cluster\n }\n } else if (skipped < offset) {\n // skip a single point\n skipped++;\n } else {\n // add a single point\n result.push(child);\n }\n if (result.length === limit) break;\n }\n\n return skipped;\n }\n\n _createTree(data) {\n const tree = new KDBush(data.length / this.stride | 0, this.options.nodeSize, Float32Array);\n for (let i = 0; i < data.length; i += this.stride) tree.add(data[i], data[i + 1]);\n tree.finish();\n tree.data = data;\n return tree;\n }\n\n _addTileFeatures(ids, data, x, y, z2, tile) {\n for (const i of ids) {\n const k = i * this.stride;\n const isCluster = data[k + OFFSET_NUM] > 1;\n\n let tags, px, py;\n if (isCluster) {\n tags = getClusterProperties(data, k, this.clusterProps);\n px = data[k];\n py = data[k + 1];\n } else {\n const p = this.points[data[k + OFFSET_ID]];\n tags = p.properties;\n const [lng, lat] = p.geometry.coordinates;\n px = lngX(lng);\n py = latY(lat);\n }\n\n const f = {\n type: 1,\n geometry: [[\n Math.round(this.options.extent * (px * z2 - x)),\n Math.round(this.options.extent * (py * z2 - y))\n ]],\n tags\n };\n\n // assign id\n let id;\n if (isCluster || this.options.generateId) {\n // optionally generate id for points\n id = data[k + OFFSET_ID];\n } else {\n // keep id if already assigned\n id = this.points[data[k + OFFSET_ID]].id;\n }\n\n if (id !== undefined) f.id = id;\n\n tile.features.push(f);\n }\n }\n\n _limitZoom(z) {\n return Math.max(this.options.minZoom, Math.min(Math.floor(+z), this.options.maxZoom + 1));\n }\n\n _cluster(tree, zoom) {\n const {radius, extent, reduce, minPoints} = this.options;\n const r = radius / (extent * Math.pow(2, zoom));\n const data = tree.data;\n const nextData = [];\n const stride = this.stride;\n\n // loop through each point\n for (let i = 0; i < data.length; i += stride) {\n // if we've already visited the point at this zoom level, skip it\n if (data[i + OFFSET_ZOOM] <= zoom) continue;\n data[i + OFFSET_ZOOM] = zoom;\n\n // find all nearby points\n const x = data[i];\n const y = data[i + 1];\n const neighborIds = tree.within(data[i], data[i + 1], r);\n\n const numPointsOrigin = data[i + OFFSET_NUM];\n let numPoints = numPointsOrigin;\n\n // count the number of points in a potential cluster\n for (const neighborId of neighborIds) {\n const k = neighborId * stride;\n // filter out neighbors that are already processed\n if (data[k + OFFSET_ZOOM] > zoom) numPoints += data[k + OFFSET_NUM];\n }\n\n // if there were neighbors to merge, and there are enough points to form a cluster\n if (numPoints > numPointsOrigin && numPoints >= minPoints) {\n let wx = x * numPointsOrigin;\n let wy = y * numPointsOrigin;\n\n let clusterProperties;\n let clusterPropIndex = -1;\n\n // encode both zoom and point index on which the cluster originated -- offset by total length of features\n const id = ((i / stride | 0) << 5) + (zoom + 1) + this.points.length;\n\n for (const neighborId of neighborIds) {\n const k = neighborId * stride;\n\n if (data[k + OFFSET_ZOOM] <= zoom) continue;\n data[k + OFFSET_ZOOM] = zoom; // save the zoom (so it doesn't get processed twice)\n\n const numPoints2 = data[k + OFFSET_NUM];\n wx += data[k] * numPoints2; // accumulate coordinates for calculating weighted center\n wy += data[k + 1] * numPoints2;\n\n data[k + OFFSET_PARENT] = id;\n\n if (reduce) {\n if (!clusterProperties) {\n clusterProperties = this._map(data, i, true);\n clusterPropIndex = this.clusterProps.length;\n this.clusterProps.push(clusterProperties);\n }\n reduce(clusterProperties, this._map(data, k));\n }\n }\n\n data[i + OFFSET_PARENT] = id;\n nextData.push(wx / numPoints, wy / numPoints, Infinity, id, -1, numPoints);\n if (reduce) nextData.push(clusterPropIndex);\n\n } else { // left points as unclustered\n for (let j = 0; j < stride; j++) nextData.push(data[i + j]);\n\n if (numPoints > 1) {\n for (const neighborId of neighborIds) {\n const k = neighborId * stride;\n if (data[k + OFFSET_ZOOM] <= zoom) continue;\n data[k + OFFSET_ZOOM] = zoom;\n for (let j = 0; j < stride; j++) nextData.push(data[k + j]);\n }\n }\n }\n }\n\n return nextData;\n }\n\n // get index of the point from which the cluster originated\n _getOriginId(clusterId) {\n return (clusterId - this.points.length) >> 5;\n }\n\n // get zoom of the point from which the cluster originated\n _getOriginZoom(clusterId) {\n return (clusterId - this.points.length) % 32;\n }\n\n _map(data, i, clone) {\n if (data[i + OFFSET_NUM] > 1) {\n const props = this.clusterProps[data[i + OFFSET_PROP]];\n return clone ? Object.assign({}, props) : props;\n }\n const original = this.points[data[i + OFFSET_ID]].properties;\n const result = this.options.map(original);\n return clone && result === original ? Object.assign({}, result) : result;\n }\n}\n\nfunction getClusterJSON(data, i, clusterProps) {\n return {\n type: 'Feature',\n id: data[i + OFFSET_ID],\n properties: getClusterProperties(data, i, clusterProps),\n geometry: {\n type: 'Point',\n coordinates: [xLng(data[i]), yLat(data[i + 1])]\n }\n };\n}\n\nfunction getClusterProperties(data, i, clusterProps) {\n const count = data[i + OFFSET_NUM];\n const abbrev =\n count >= 10000 ? `${Math.round(count / 1000) }k` :\n count >= 1000 ? `${Math.round(count / 100) / 10 }k` : count;\n const propIndex = data[i + OFFSET_PROP];\n const properties = propIndex === -1 ? {} : Object.assign({}, clusterProps[propIndex]);\n return Object.assign(properties, {\n cluster: true,\n cluster_id: data[i + OFFSET_ID],\n point_count: count,\n point_count_abbreviated: abbrev\n });\n}\n\n// longitude/latitude to spherical mercator in [0..1] range\nfunction lngX(lng) {\n return lng / 360 + 0.5;\n}\nfunction latY(lat) {\n const sin = Math.sin(lat * Math.PI / 180);\n const y = (0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI);\n return y < 0 ? 0 : y > 1 ? 1 : y;\n}\n\n// spherical mercator to longitude/latitude\nfunction xLng(x) {\n return (x - 0.5) * 360;\n}\nfunction yLat(y) {\n const y2 = (180 - y * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(y2)) / Math.PI - 90;\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\n/**\n * Copyright 2023 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * util class that creates a common set of convenience functions to wrap\n * shared behavior of Advanced Markers and Markers.\n */\nclass MarkerUtils {\n static isAdvancedMarkerAvailable(map) {\n return (google.maps.marker &&\n map.getMapCapabilities().isAdvancedMarkersAvailable === true);\n }\n static isAdvancedMarker(marker) {\n return (google.maps.marker &&\n marker instanceof google.maps.marker.AdvancedMarkerElement);\n }\n static setMap(marker, map) {\n if (this.isAdvancedMarker(marker)) {\n marker.map = map;\n }\n else {\n marker.setMap(map);\n }\n }\n static getPosition(marker) {\n // SuperClusterAlgorithm.calculate expects a LatLng instance so we fake it for Adv Markers\n if (this.isAdvancedMarker(marker)) {\n if (marker.position) {\n if (marker.position instanceof google.maps.LatLng) {\n return marker.position;\n }\n // since we can't cast to LatLngLiteral for reasons =(\n if (marker.position.lat && marker.position.lng) {\n return new google.maps.LatLng(marker.position.lat, marker.position.lng);\n }\n }\n return new google.maps.LatLng(null);\n }\n return marker.getPosition();\n }\n static getVisible(marker) {\n if (this.isAdvancedMarker(marker)) {\n /**\n * Always return true for Advanced Markers because the clusterer\n * uses getVisible as a way to count legacy markers not as an actual\n * indicator of visibility for some reason. Even when markers are hidden\n * Marker.getVisible returns `true` and this is used to set the marker count\n * on the cluster. See the behavior of Cluster.count\n */\n return true;\n }\n return marker.getVisible();\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass Cluster {\n constructor({ markers, position }) {\n this.markers = markers;\n if (position) {\n if (position instanceof google.maps.LatLng) {\n this._position = position;\n }\n else {\n this._position = new google.maps.LatLng(position);\n }\n }\n }\n get bounds() {\n if (this.markers.length === 0 && !this._position) {\n return;\n }\n const bounds = new google.maps.LatLngBounds(this._position, this._position);\n for (const marker of this.markers) {\n bounds.extend(MarkerUtils.getPosition(marker));\n }\n return bounds;\n }\n get position() {\n return this._position || this.bounds.getCenter();\n }\n /**\n * Get the count of **visible** markers.\n */\n get count() {\n return this.markers.filter((m) => MarkerUtils.getVisible(m)).length;\n }\n /**\n * Add a marker to the cluster.\n */\n push(marker) {\n this.markers.push(marker);\n }\n /**\n * Cleanup references and remove marker from map.\n */\n delete() {\n if (this.marker) {\n MarkerUtils.setMap(this.marker, null);\n this.marker = undefined;\n }\n this.markers.length = 0;\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Returns the markers visible in a padded map viewport\n *\n * @param map\n * @param mapCanvasProjection\n * @param markers The list of marker to filter\n * @param viewportPaddingPixels The padding in pixel\n * @returns The list of markers in the padded viewport\n */\nconst filterMarkersToPaddedViewport = (map, mapCanvasProjection, markers, viewportPaddingPixels) => {\n const extendedMapBounds = extendBoundsToPaddedViewport(map.getBounds(), mapCanvasProjection, viewportPaddingPixels);\n return markers.filter((marker) => extendedMapBounds.contains(MarkerUtils.getPosition(marker)));\n};\n/**\n * Extends a bounds by a number of pixels in each direction\n */\nconst extendBoundsToPaddedViewport = (bounds, projection, numPixels) => {\n const { northEast, southWest } = latLngBoundsToPixelBounds(bounds, projection);\n const extendedPixelBounds = extendPixelBounds({ northEast, southWest }, numPixels);\n return pixelBoundsToLatLngBounds(extendedPixelBounds, projection);\n};\n/**\n * Gets the extended bounds as a bbox [westLng, southLat, eastLng, northLat]\n */\nconst getPaddedViewport = (bounds, projection, pixels) => {\n const extended = extendBoundsToPaddedViewport(bounds, projection, pixels);\n const ne = extended.getNorthEast();\n const sw = extended.getSouthWest();\n return [sw.lng(), sw.lat(), ne.lng(), ne.lat()];\n};\n/**\n * Returns the distance between 2 positions.\n *\n * @hidden\n */\nconst distanceBetweenPoints = (p1, p2) => {\n const R = 6371; // Radius of the Earth in km\n const dLat = ((p2.lat - p1.lat) * Math.PI) / 180;\n const dLon = ((p2.lng - p1.lng) * Math.PI) / 180;\n const sinDLat = Math.sin(dLat / 2);\n const sinDLon = Math.sin(dLon / 2);\n const a = sinDLat * sinDLat +\n Math.cos((p1.lat * Math.PI) / 180) *\n Math.cos((p2.lat * Math.PI) / 180) *\n sinDLon *\n sinDLon;\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n};\n/**\n * Converts a LatLng bound to pixels.\n *\n * @hidden\n */\nconst latLngBoundsToPixelBounds = (bounds, projection) => {\n return {\n northEast: projection.fromLatLngToDivPixel(bounds.getNorthEast()),\n southWest: projection.fromLatLngToDivPixel(bounds.getSouthWest()),\n };\n};\n/**\n * Extends a pixel bounds by numPixels in all directions.\n *\n * @hidden\n */\nconst extendPixelBounds = ({ northEast, southWest }, numPixels) => {\n northEast.x += numPixels;\n northEast.y -= numPixels;\n southWest.x -= numPixels;\n southWest.y += numPixels;\n return { northEast, southWest };\n};\n/**\n * @hidden\n */\nconst pixelBoundsToLatLngBounds = ({ northEast, southWest }, projection) => {\n const sw = projection.fromDivPixelToLatLng(southWest);\n const ne = projection.fromDivPixelToLatLng(northEast);\n return new google.maps.LatLngBounds(sw, ne);\n};\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @hidden\n */\nclass AbstractAlgorithm {\n constructor({ maxZoom = 16 }) {\n this.maxZoom = maxZoom;\n }\n /**\n * Helper function to bypass clustering based upon some map state such as\n * zoom, number of markers, etc.\n *\n * ```typescript\n * cluster({markers, map}: AlgorithmInput): Cluster[] {\n * if (shouldBypassClustering(map)) {\n * return this.noop({markers})\n * }\n * }\n * ```\n */\n noop({ markers, }) {\n return noop$1(markers);\n }\n}\n/**\n * Abstract viewport algorithm proves a class to filter markers by a padded\n * viewport. This is a common optimization.\n *\n * @hidden\n */\nclass AbstractViewportAlgorithm extends AbstractAlgorithm {\n constructor(_a) {\n var { viewportPadding = 60 } = _a, options = __rest(_a, [\"viewportPadding\"]);\n super(options);\n this.viewportPadding = 60;\n this.viewportPadding = viewportPadding;\n }\n calculate({ markers, map, mapCanvasProjection, }) {\n if (map.getZoom() >= this.maxZoom) {\n return {\n clusters: this.noop({\n markers,\n }),\n changed: false,\n };\n }\n return {\n clusters: this.cluster({\n markers: filterMarkersToPaddedViewport(map, mapCanvasProjection, markers, this.viewportPadding),\n map,\n mapCanvasProjection,\n }),\n };\n }\n}\n/**\n * @hidden\n */\nconst noop$1 = (markers) => {\n const clusters = markers.map((marker) => new Cluster({\n position: MarkerUtils.getPosition(marker),\n markers: [marker],\n }));\n return clusters;\n};\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The default Grid algorithm historically used in Google Maps marker\n * clustering.\n *\n * The Grid algorithm does not implement caching and markers may flash as the\n * viewport changes. Instead use {@link SuperClusterAlgorithm}.\n */\nclass GridAlgorithm extends AbstractViewportAlgorithm {\n constructor(_a) {\n var { maxDistance = 40000, gridSize = 40 } = _a, options = __rest(_a, [\"maxDistance\", \"gridSize\"]);\n super(options);\n this.clusters = [];\n this.state = { zoom: -1 };\n this.maxDistance = maxDistance;\n this.gridSize = gridSize;\n }\n calculate({ markers, map, mapCanvasProjection, }) {\n const state = { zoom: map.getZoom() };\n let changed = false;\n if (this.state.zoom >= this.maxZoom && state.zoom >= this.maxZoom) ;\n else {\n changed = !equal(this.state, state);\n }\n this.state = state;\n if (map.getZoom() >= this.maxZoom) {\n return {\n clusters: this.noop({\n markers,\n }),\n changed,\n };\n }\n return {\n clusters: this.cluster({\n markers: filterMarkersToPaddedViewport(map, mapCanvasProjection, markers, this.viewportPadding),\n map,\n mapCanvasProjection,\n }),\n };\n }\n cluster({ markers, map, mapCanvasProjection, }) {\n this.clusters = [];\n markers.forEach((marker) => {\n this.addToClosestCluster(marker, map, mapCanvasProjection);\n });\n return this.clusters;\n }\n addToClosestCluster(marker, map, projection) {\n let maxDistance = this.maxDistance; // Some large number\n let cluster = null;\n for (let i = 0; i < this.clusters.length; i++) {\n const candidate = this.clusters[i];\n const distance = distanceBetweenPoints(candidate.bounds.getCenter().toJSON(), MarkerUtils.getPosition(marker).toJSON());\n if (distance < maxDistance) {\n maxDistance = distance;\n cluster = candidate;\n }\n }\n if (cluster &&\n extendBoundsToPaddedViewport(cluster.bounds, projection, this.gridSize).contains(MarkerUtils.getPosition(marker))) {\n cluster.push(marker);\n }\n else {\n const cluster = new Cluster({ markers: [marker] });\n this.clusters.push(cluster);\n }\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Noop algorithm does not generate any clusters or filter markers by the an extended viewport.\n */\nclass NoopAlgorithm extends AbstractAlgorithm {\n constructor(_a) {\n var options = __rest(_a, []);\n super(options);\n }\n calculate({ markers, map, mapCanvasProjection, }) {\n return {\n clusters: this.cluster({ markers, map, mapCanvasProjection }),\n changed: false,\n };\n }\n cluster(input) {\n return this.noop(input);\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A very fast JavaScript algorithm for geospatial point clustering using KD trees.\n *\n * @see https://www.npmjs.com/package/supercluster for more information on options.\n */\nclass SuperClusterAlgorithm extends AbstractAlgorithm {\n constructor(_a) {\n var { maxZoom, radius = 60 } = _a, options = __rest(_a, [\"maxZoom\", \"radius\"]);\n super({ maxZoom });\n this.state = { zoom: -1 };\n this.superCluster = new Supercluster(Object.assign({ maxZoom: this.maxZoom, radius }, options));\n }\n calculate(input) {\n let changed = false;\n const state = { zoom: input.map.getZoom() };\n if (!equal(input.markers, this.markers)) {\n changed = true;\n // TODO use proxy to avoid copy?\n this.markers = [...input.markers];\n const points = this.markers.map((marker) => {\n const position = MarkerUtils.getPosition(marker);\n const coordinates = [position.lng(), position.lat()];\n return {\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates,\n },\n properties: { marker },\n };\n });\n this.superCluster.load(points);\n }\n if (!changed) {\n if (this.state.zoom <= this.maxZoom || state.zoom <= this.maxZoom) {\n changed = !equal(this.state, state);\n }\n }\n this.state = state;\n if (changed) {\n this.clusters = this.cluster(input);\n }\n return { clusters: this.clusters, changed };\n }\n cluster({ map }) {\n return this.superCluster\n .getClusters([-180, -90, 180, 90], Math.round(map.getZoom()))\n .map((feature) => this.transformCluster(feature));\n }\n transformCluster({ geometry: { coordinates: [lng, lat], }, properties, }) {\n if (properties.cluster) {\n return new Cluster({\n markers: this.superCluster\n .getLeaves(properties.cluster_id, Infinity)\n .map((leaf) => leaf.properties.marker),\n position: { lat, lng },\n });\n }\n const marker = properties.marker;\n return new Cluster({\n markers: [marker],\n position: MarkerUtils.getPosition(marker),\n });\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A very fast JavaScript algorithm for geospatial point clustering using KD trees.\n *\n * @see https://www.npmjs.com/package/supercluster for more information on options.\n */\nclass SuperClusterViewportAlgorithm extends AbstractViewportAlgorithm {\n constructor(_a) {\n var { maxZoom, radius = 60, viewportPadding = 60 } = _a, options = __rest(_a, [\"maxZoom\", \"radius\", \"viewportPadding\"]);\n super({ maxZoom, viewportPadding });\n this.superCluster = new Supercluster(Object.assign({ maxZoom: this.maxZoom, radius }, options));\n this.state = { zoom: -1, view: [0, 0, 0, 0] };\n }\n calculate(input) {\n const state = {\n zoom: Math.round(input.map.getZoom()),\n view: getPaddedViewport(input.map.getBounds(), input.mapCanvasProjection, this.viewportPadding),\n };\n let changed = !equal(this.state, state);\n if (!equal(input.markers, this.markers)) {\n changed = true;\n // TODO use proxy to avoid copy?\n this.markers = [...input.markers];\n const points = this.markers.map((marker) => {\n const position = MarkerUtils.getPosition(marker);\n const coordinates = [position.lng(), position.lat()];\n return {\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates,\n },\n properties: { marker },\n };\n });\n this.superCluster.load(points);\n }\n if (changed) {\n this.clusters = this.cluster(input);\n this.state = state;\n }\n return { clusters: this.clusters, changed };\n }\n cluster({ map, mapCanvasProjection }) {\n /* recalculate new state because we can't use the cached version. */\n const state = {\n zoom: Math.round(map.getZoom()),\n view: getPaddedViewport(map.getBounds(), mapCanvasProjection, this.viewportPadding),\n };\n return this.superCluster\n .getClusters(state.view, state.zoom)\n .map((feature) => this.transformCluster(feature));\n }\n transformCluster({ geometry: { coordinates: [lng, lat], }, properties, }) {\n if (properties.cluster) {\n return new Cluster({\n markers: this.superCluster\n .getLeaves(properties.cluster_id, Infinity)\n .map((leaf) => leaf.properties.marker),\n position: { lat, lng },\n });\n }\n const marker = properties.marker;\n return new Cluster({\n markers: [marker],\n position: MarkerUtils.getPosition(marker),\n });\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Provides statistics on all clusters in the current render cycle for use in {@link Renderer.render}.\n */\nclass ClusterStats {\n constructor(markers, clusters) {\n this.markers = { sum: markers.length };\n const clusterMarkerCounts = clusters.map((a) => a.count);\n const clusterMarkerSum = clusterMarkerCounts.reduce((a, b) => a + b, 0);\n this.clusters = {\n count: clusters.length,\n markers: {\n mean: clusterMarkerSum / clusters.length,\n sum: clusterMarkerSum,\n min: Math.min(...clusterMarkerCounts),\n max: Math.max(...clusterMarkerCounts),\n },\n };\n }\n}\nclass DefaultRenderer {\n /**\n * The default render function for the library used by {@link MarkerClusterer}.\n *\n * Currently set to use the following:\n *\n * ```typescript\n * // change color if this cluster has more markers than the mean cluster\n * const color =\n * count > Math.max(10, stats.clusters.markers.mean)\n * ? \"#ff0000\"\n * : \"#0000ff\";\n *\n * // create svg url with fill color\n * const svg = window.btoa(`\n * <svg fill=\"${color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 240\">\n * <circle cx=\"120\" cy=\"120\" opacity=\".6\" r=\"70\" />\n * <circle cx=\"120\" cy=\"120\" opacity=\".3\" r=\"90\" />\n * <circle cx=\"120\" cy=\"120\" opacity=\".2\" r=\"110\" />\n * <circle cx=\"120\" cy=\"120\" opacity=\".1\" r=\"130\" />\n * </svg>`);\n *\n * // create marker using svg icon\n * return new google.maps.Marker({\n * position,\n * icon: {\n * url: `data:image/svg+xml;base64,${svg}`,\n * scaledSize: new google.maps.Size(45, 45),\n * },\n * label: {\n * text: String(count),\n * color: \"rgba(255,255,255,0.9)\",\n * fontSize: \"12px\",\n * },\n * // adjust zIndex to be above other markers\n * zIndex: 1000 + count,\n * });\n * ```\n */\n render({ count, position }, stats, map) {\n // change color if this cluster has more markers than the mean cluster\n const color = count > Math.max(10, stats.clusters.markers.mean) ? \"#ff0000\" : \"#0000ff\";\n // create svg literal with fill color\n const svg = `<svg fill=\"${color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 240\" width=\"50\" height=\"50\">\n<circle cx=\"120\" cy=\"120\" opacity=\".6\" r=\"70\" />\n<circle cx=\"120\" cy=\"120\" opacity=\".3\" r=\"90\" />\n<circle cx=\"120\" cy=\"120\" opacity=\".2\" r=\"110\" />\n<text x=\"50%\" y=\"50%\" style=\"fill:#fff\" text-anchor=\"middle\" font-size=\"50\" dominant-baseline=\"middle\" font-family=\"roboto,arial,sans-serif\">${count}</text>\n</svg>`;\n const title = `Cluster of ${count} markers`, \n // adjust zIndex to be above other markers\n zIndex = Number(google.maps.Marker.MAX_ZINDEX) + count;\n if (MarkerUtils.isAdvancedMarkerAvailable(map)) {\n // create cluster SVG element\n const parser = new DOMParser();\n const svgEl = parser.parseFromString(svg, \"image/svg+xml\").documentElement;\n svgEl.setAttribute(\"transform\", \"translate(0 25)\");\n const clusterOptions = {\n map,\n position,\n zIndex,\n title,\n content: svgEl,\n };\n return new google.maps.marker.AdvancedMarkerElement(clusterOptions);\n }\n const clusterOptions = {\n position,\n zIndex,\n title,\n icon: {\n url: `data:image/svg+xml;base64,${btoa(svg)}`,\n anchor: new google.maps.Point(25, 25),\n },\n };\n return new google.maps.Marker(clusterOptions);\n }\n}\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Extends an object's prototype by another's.\n *\n * @param type1 The Type to be extended.\n * @param type2 The Type to extend with.\n * @ignore\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extend(type1, type2) {\n /* istanbul ignore next */\n // eslint-disable-next-line prefer-const\n for (let property in type2.prototype) {\n type1.prototype[property] = type2.prototype[property];\n }\n}\n/**\n * @ignore\n */\nclass OverlayViewSafe {\n constructor() {\n // MarkerClusterer implements google.maps.OverlayView interface. We use the\n // extend function to extend MarkerClusterer with google.maps.OverlayView\n // because it might not always be available when the code is defined so we\n // look for it at the last possible moment. If it doesn't exist now then\n // there is no point going ahead :)\n extend(OverlayViewSafe, google.maps.OverlayView);\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar MarkerClustererEvents;\n(function (MarkerClustererEvents) {\n MarkerClustererEvents[\"CLUSTERING_BEGIN\"] = \"clusteringbegin\";\n MarkerClustererEvents[\"CLUSTERING_END\"] = \"clusteringend\";\n MarkerClustererEvents[\"CLUSTER_CLICK\"] = \"click\";\n})(MarkerClustererEvents || (MarkerClustererEvents = {}));\nconst defaultOnClusterClickHandler = (_, cluster, map) => {\n map.fitBounds(cluster.bounds);\n};\n/**\n * MarkerClusterer creates and manages per-zoom-level clusters for large amounts\n * of markers. See {@link MarkerClustererOptions} for more details.\n *\n */\nclass MarkerClusterer extends OverlayViewSafe {\n constructor({ map, markers = [], algorithmOptions = {}, algorithm = new SuperClusterAlgorithm(algorithmOptions), renderer = new DefaultRenderer(), onClusterClick = defaultOnClusterClickHandler, }) {\n super();\n this.markers = [...markers];\n this.clusters = [];\n this.algorithm = algorithm;\n this.renderer = renderer;\n this.onClusterClick = onClusterClick;\n if (map) {\n this.setMap(map);\n }\n }\n addMarker(marker, noDraw) {\n if (this.markers.includes(marker)) {\n return;\n }\n this.markers.push(marker);\n if (!noDraw) {\n this.render();\n }\n }\n addMarkers(markers, noDraw) {\n markers.forEach((marker) => {\n this.addMarker(marker, true);\n });\n if (!noDraw) {\n this.render();\n }\n }\n removeMarker(marker, noDraw) {\n const index = this.markers.indexOf(marker);\n if (index === -1) {\n // Marker is not in our list of markers, so do nothing:\n return false;\n }\n MarkerUtils.setMap(marker, null);\n this.markers.splice(index, 1); // Remove the marker from the list of managed markers\n if (!noDraw) {\n this.render();\n }\n return true;\n }\n removeMarkers(markers, noDraw) {\n let removed = false;\n markers.forEach((marker) => {\n removed = this.removeMarker(marker, true) || removed;\n });\n if (removed && !noDraw) {\n this.render();\n }\n return removed;\n }\n clearMarkers(noDraw) {\n this.markers.length = 0;\n if (!noDraw) {\n this.render();\n }\n }\n /**\n * Recalculates and draws all the marker clusters.\n */\n render() {\n const map = this.getMap();\n if (map instanceof google.maps.Map && map.getProjection()) {\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTERING_BEGIN, this);\n const { clusters, changed } = this.algorithm.calculate({\n markers: this.markers,\n map,\n mapCanvasProjection: this.getProjection(),\n });\n // Allow algorithms to return flag on whether the clusters/markers have changed.\n if (changed || changed == undefined) {\n // Accumulate the markers of the clusters composed of a single marker.\n // Those clusters directly use the marker.\n // Clusters with more than one markers use a group marker generated by a renderer.\n const singleMarker = new Set();\n for (const cluster of clusters) {\n if (cluster.markers.length == 1) {\n singleMarker.add(cluster.markers[0]);\n }\n }\n const groupMarkers = [];\n // Iterate the clusters that are currently rendered.\n for (const cluster of this.clusters) {\n if (cluster.marker == null) {\n continue;\n }\n if (cluster.markers.length == 1) {\n if (!singleMarker.has(cluster.marker)) {\n // The marker:\n // - was previously rendered because it is from a cluster with 1 marker,\n // - should no more be rendered as it is not in singleMarker.\n MarkerUtils.setMap(cluster.marker, null);\n }\n }\n else {\n // Delay the removal of old group markers to avoid flickering.\n groupMarkers.push(cluster.marker);\n }\n }\n this.clusters = clusters;\n this.renderClusters();\n // Delayed removal of the markers of the former groups.\n requestAnimationFrame(() => groupMarkers.forEach((marker) => MarkerUtils.setMap(marker, null)));\n }\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTERING_END, this);\n }\n }\n onAdd() {\n this.idleListener = this.getMap().addListener(\"idle\", this.render.bind(this));\n this.render();\n }\n onRemove() {\n google.maps.event.removeListener(this.idleListener);\n this.reset();\n }\n reset() {\n this.markers.forEach((marker) => MarkerUtils.setMap(marker, null));\n this.clusters.forEach((cluster) => cluster.delete());\n this.clusters = [];\n }\n renderClusters() {\n // Generate stats to pass to renderers.\n const stats = new ClusterStats(this.markers, this.clusters);\n const map = this.getMap();\n this.clusters.forEach((cluster) => {\n if (cluster.markers.length === 1) {\n cluster.marker = cluster.markers[0];\n }\n else {\n // Generate the marker to represent the group.\n cluster.marker = this.renderer.render(cluster, stats, map);\n // Make sure all individual markers are removed from the map.\n cluster.markers.forEach((marker) => MarkerUtils.setMap(marker, null));\n if (this.onClusterClick) {\n cluster.marker.addListener(\"click\", \n /* istanbul ignore next */\n (event) => {\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTER_CLICK, cluster);\n this.onClusterClick(event, cluster, map);\n });\n }\n }\n MarkerUtils.setMap(cluster.marker, map);\n });\n }\n}\n\nvar index_esm = /*#__PURE__*/Object.freeze({\n __proto__: null,\n AbstractAlgorithm: AbstractAlgorithm,\n AbstractViewportAlgorithm: AbstractViewportAlgorithm,\n Cluster: Cluster,\n ClusterStats: ClusterStats,\n DefaultRenderer: DefaultRenderer,\n GridAlgorithm: GridAlgorithm,\n MarkerClusterer: MarkerClusterer,\n get MarkerClustererEvents () { return MarkerClustererEvents; },\n MarkerUtils: MarkerUtils,\n NoopAlgorithm: NoopAlgorithm,\n SuperClusterAlgorithm: SuperClusterAlgorithm,\n SuperClusterViewportAlgorithm: SuperClusterViewportAlgorithm,\n defaultOnClusterClickHandler: defaultOnClusterClickHandler,\n distanceBetweenPoints: distanceBetweenPoints,\n extendBoundsToPaddedViewport: extendBoundsToPaddedViewport,\n extendPixelBounds: extendPixelBounds,\n filterMarkersToPaddedViewport: filterMarkersToPaddedViewport,\n getPaddedViewport: getPaddedViewport,\n noop: noop$1,\n pixelBoundsToLatLngBounds: pixelBoundsToLatLngBounds\n});\n\nfunction useGoogleMarkerClusterer(options) {\n var map = useGoogleMap();\n var _a = useState(null), markerClusterer = _a[0], setMarkerClusterer = _a[1];\n useEffect(function () {\n if (map && markerClusterer === null) {\n var markerCluster = new MarkerClusterer(__assign(__assign({}, options), { map: map }));\n setMarkerClusterer(markerCluster);\n }\n }, [map]);\n return markerClusterer;\n}\n/** Wrapper around [@googlemaps/markerclusterer](https://github.com/googlemaps/js-markerclusterer)\n *\n * Accepts {@link MarkerClustererOptionsSubset} which is a subset of {@link MarkerClustererOptions}\n */\nfunction GoogleMarkerClusterer(_a) {\n var children = _a.children, options = _a.options;\n var markerClusterer = useGoogleMarkerClusterer(options);\n return markerClusterer !== null ? children(markerClusterer) : null;\n}\nvar GoogleMarkerClusterer$1 = memo(GoogleMarkerClusterer);\n\nvar eventMap$c = {\n onCloseClick: 'closeclick',\n onContentChanged: 'content_changed',\n onDomReady: 'domready',\n onPositionChanged: 'position_changed',\n onZindexChanged: 'zindex_changed',\n};\nvar updaterMap$c = {\n options: function (instance, options) {\n instance.setOptions(options);\n },\n position: function (instance, position) {\n instance.setPosition(position);\n },\n zIndex: function (instance, zIndex) {\n instance.setZIndex(zIndex);\n },\n};\nfunction InfoWindowFunctional(_a) {\n var children = _a.children, anchor = _a.anchor, options = _a.options, position = _a.position, zIndex = _a.zIndex, onCloseClick = _a.onCloseClick, onDomReady = _a.onDomReady, onContentChanged = _a.onContentChanged, onPositionChanged = _a.onPositionChanged, onZindexChanged = _a.onZindexChanged, onLoad = _a.onLoad, onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n var _c = useState(null), closeclickListener = _c[0], setCloseClickListener = _c[1];\n var _d = useState(null), domreadyclickListener = _d[0], setDomReadyClickListener = _d[1];\n var _e = useState(null), contentchangedclickListener = _e[0], setContentChangedClickListener = _e[1];\n var _f = useState(null), positionchangedclickListener = _f[0], setPositionChangedClickListener = _f[1];\n var _g = useState(null), zindexchangedclickListener = _g[0], setZindexChangedClickListener = _g[1];\n var containerElementRef = useRef(null);\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.close();\n if (anchor) {\n instance.open(map, anchor);\n }\n else if (instance.getPosition()) {\n instance.open(map);\n }\n }\n }, [map, instance, anchor]);\n useEffect(function () {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (position && instance !== null) {\n instance.setPosition(position);\n }\n }, [position]);\n useEffect(function () {\n if (typeof zIndex === 'number' && instance !== null) {\n instance.setZIndex(zIndex);\n }\n }, [zIndex]);\n useEffect(function () {\n if (instance && onCloseClick) {\n if (closeclickListener !== null) {\n google.maps.event.removeListener(closeclickListener);\n }\n setCloseClickListener(google.maps.event.addListener(instance, 'closeclick', onCloseClick));\n }\n }, [onCloseClick]);\n useEffect(function () {\n if (instance && onDomReady) {\n if (domreadyclickListener !== null) {\n google.maps.event.removeListener(domreadyclickListener);\n }\n setDomReadyClickListener(google.maps.event.addListener(instance, 'domready', onDomReady));\n }\n }, [onDomReady]);\n useEffect(function () {\n if (instance && onContentChanged) {\n if (contentchangedclickListener !== null) {\n google.maps.event.removeListener(contentchangedclickListener);\n }\n setContentChangedClickListener(google.maps.event.addListener(instance, 'content_changed', onContentChanged));\n }\n }, [onContentChanged]);\n useEffect(function () {\n if (instance && onPositionChanged) {\n if (positionchangedclickListener !== null) {\n google.maps.event.removeListener(positionchangedclickListener);\n }\n setPositionChangedClickListener(google.maps.event.addListener(instance, 'position_changed', onPositionChanged));\n }\n }, [onPositionChanged]);\n useEffect(function () {\n if (instance && onZindexChanged) {\n if (zindexchangedclickListener !== null) {\n google.maps.event.removeListener(zindexchangedclickListener);\n }\n setZindexChangedClickListener(google.maps.event.addListener(instance, 'zindex_changed', onZindexChanged));\n }\n }, [onZindexChanged]);\n useEffect(function () {\n var infoWindow = new google.maps.InfoWindow(__assign({}, (options || {})));\n setInstance(infoWindow);\n containerElementRef.current = document.createElement('div');\n if (onCloseClick) {\n setCloseClickListener(google.maps.event.addListener(infoWindow, 'closeclick', onCloseClick));\n }\n if (onDomReady) {\n setDomReadyClickListener(google.maps.event.addListener(infoWindow, 'domready', onDomReady));\n }\n if (onContentChanged) {\n setContentChangedClickListener(google.maps.event.addListener(infoWindow, 'content_changed', onContentChanged));\n }\n if (onPositionChanged) {\n setPositionChangedClickListener(google.maps.event.addListener(infoWindow, 'position_changed', onPositionChanged));\n }\n if (onZindexChanged) {\n setZindexChangedClickListener(google.maps.event.addListener(infoWindow, 'zindex_changed', onZindexChanged));\n }\n infoWindow.setContent(containerElementRef.current);\n if (position) {\n infoWindow.setPosition(position);\n }\n if (zIndex) {\n infoWindow.setZIndex(zIndex);\n }\n if (anchor) {\n infoWindow.open(map, anchor);\n }\n else if (infoWindow.getPosition()) {\n infoWindow.open(map);\n }\n else {\n invariant$1(false, \"You must provide either an anchor (typically render it inside a <Marker>) or a position props for <InfoWindow>.\");\n }\n if (onLoad) {\n onLoad(infoWindow);\n }\n return function () {\n if (closeclickListener) {\n google.maps.event.removeListener(closeclickListener);\n }\n if (contentchangedclickListener) {\n google.maps.event.removeListener(contentchangedclickListener);\n }\n if (domreadyclickListener) {\n google.maps.event.removeListener(domreadyclickListener);\n }\n if (positionchangedclickListener) {\n google.maps.event.removeListener(positionchangedclickListener);\n }\n if (zindexchangedclickListener) {\n google.maps.event.removeListener(zindexchangedclickListener);\n }\n if (onUnmount) {\n onUnmount(infoWindow);\n }\n infoWindow.close();\n };\n }, []);\n return containerElementRef.current ? (createPortal(Children.only(children), containerElementRef.current)) : (null);\n}\nvar InfoWindowF = memo(InfoWindowFunctional);\nvar InfoWindow = /** @class */ (function (_super) {\n __extends(InfoWindow, _super);\n function InfoWindow() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.containerElement = null;\n _this.state = {\n infoWindow: null,\n };\n _this.open = function (infoWindow, anchor) {\n if (anchor) {\n infoWindow.open(_this.context, anchor);\n }\n else if (infoWindow.getPosition()) {\n infoWindow.open(_this.context);\n }\n else {\n invariant$1(false, \"You must provide either an anchor (typically render it inside a <Marker>) or a position props for <InfoWindow>.\");\n }\n };\n _this.setInfoWindowCallback = function () {\n if (_this.state.infoWindow !== null && _this.containerElement !== null) {\n _this.state.infoWindow.setContent(_this.containerElement);\n _this.open(_this.state.infoWindow, _this.props.anchor);\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.state.infoWindow);\n }\n }\n };\n return _this;\n }\n InfoWindow.prototype.componentDidMount = function () {\n var infoWindow = new google.maps.InfoWindow(__assign({}, (this.props.options || {})));\n this.containerElement = document.createElement('div');\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$c,\n eventMap: eventMap$c,\n prevProps: {},\n nextProps: this.props,\n instance: infoWindow,\n });\n this.setState(function () {\n return {\n infoWindow: infoWindow,\n };\n }, this.setInfoWindowCallback);\n };\n InfoWindow.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.infoWindow !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$c,\n eventMap: eventMap$c,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.infoWindow,\n });\n }\n };\n InfoWindow.prototype.componentWillUnmount = function () {\n if (this.state.infoWindow !== null) {\n unregisterEvents(this.registeredEvents);\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.infoWindow);\n }\n this.state.infoWindow.close();\n }\n };\n InfoWindow.prototype.render = function () {\n return this.containerElement ? (createPortal(Children.only(this.props.children), this.containerElement)) : (null);\n };\n InfoWindow.contextType = MapContext;\n return InfoWindow;\n}(PureComponent));\n\nvar eventMap$b = {\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n};\nvar updaterMap$b = {\n draggable: function (instance, draggable) {\n instance.setDraggable(draggable);\n },\n editable: function (instance, editable) {\n instance.setEditable(editable);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n path: function (instance, path) {\n instance.setPath(path);\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n },\n};\nvar defaultOptions$1 = {};\nfunction PolylineFunctional(_a) {\n var options = _a.options, draggable = _a.draggable, editable = _a.editable, visible = _a.visible, path = _a.path, onDblClick = _a.onDblClick, onDragEnd = _a.onDragEnd, onDragStart = _a.onDragStart, onMouseDown = _a.onMouseDown, onMouseMove = _a.onMouseMove, onMouseOut = _a.onMouseOut, onMouseOver = _a.onMouseOver, onMouseUp = _a.onMouseUp, onRightClick = _a.onRightClick, onClick = _a.onClick, onDrag = _a.onDrag, onLoad = _a.onLoad, onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n var _c = useState(null), dblclickListener = _c[0], setDblclickListener = _c[1];\n var _d = useState(null), dragendListener = _d[0], setDragendListener = _d[1];\n var _e = useState(null), dragstartListener = _e[0], setDragstartListener = _e[1];\n var _f = useState(null), mousedownListener = _f[0], setMousedownListener = _f[1];\n var _g = useState(null), mousemoveListener = _g[0], setMousemoveListener = _g[1];\n var _h = useState(null), mouseoutListener = _h[0], setMouseoutListener = _h[1];\n var _j = useState(null), mouseoverListener = _j[0], setMouseoverListener = _j[1];\n var _k = useState(null), mouseupListener = _k[0], setMouseupListener = _k[1];\n var _l = useState(null), rightclickListener = _l[0], setRightclickListener = _l[1];\n var _m = useState(null), clickListener = _m[0], setClickListener = _m[1];\n var _o = useState(null), dragListener = _o[0], setDragListener = _o[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(function () {\n if (typeof editable !== 'undefined' && instance !== null) {\n instance.setEditable(editable);\n }\n }, [instance, editable]);\n useEffect(function () {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(function () {\n if (typeof path !== 'undefined' && instance !== null) {\n instance.setPath(path);\n }\n }, [instance, path]);\n useEffect(function () {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(function () {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(function () {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(function () {\n var polyline = new google.maps.Polyline(__assign(__assign({}, (options || defaultOptions$1)), { map: map }));\n if (path) {\n polyline.setPath(path);\n }\n if (typeof visible !== 'undefined') {\n polyline.setVisible(visible);\n }\n if (typeof editable !== 'undefined') {\n polyline.setEditable(editable);\n }\n if (typeof draggable !== 'undefined') {\n polyline.setDraggable(draggable);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(polyline, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(polyline, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(polyline, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(polyline, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(polyline, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(polyline, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(polyline, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(polyline, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(polyline, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(polyline, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(polyline, 'drag', onDrag));\n }\n setInstance(polyline);\n if (onLoad) {\n onLoad(polyline);\n }\n return function () {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (onUnmount) {\n onUnmount(polyline);\n }\n polyline.setMap(null);\n };\n }, []);\n return null;\n}\nvar PolylineF = memo(PolylineFunctional);\nvar Polyline = /** @class */ (function (_super) {\n __extends(Polyline, _super);\n function Polyline() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n polyline: null,\n };\n _this.setPolylineCallback = function () {\n if (_this.state.polyline !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.polyline);\n }\n };\n return _this;\n }\n Polyline.prototype.componentDidMount = function () {\n var polyline = new google.maps.Polyline(__assign(__assign({}, (this.props.options || {})), { map: this.context }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$b,\n eventMap: eventMap$b,\n prevProps: {},\n nextProps: this.props,\n instance: polyline,\n });\n this.setState(function setPolyline() {\n return {\n polyline: polyline,\n };\n }, this.setPolylineCallback);\n };\n Polyline.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.polyline !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$b,\n eventMap: eventMap$b,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.polyline,\n });\n }\n };\n Polyline.prototype.componentWillUnmount = function () {\n if (this.state.polyline !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.polyline);\n }\n unregisterEvents(this.registeredEvents);\n this.state.polyline.setMap(null);\n }\n };\n Polyline.prototype.render = function () {\n return null;\n };\n Polyline.contextType = MapContext;\n return Polyline;\n}(PureComponent));\n\nvar eventMap$a = {\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n};\nvar updaterMap$a = {\n draggable: function (instance, draggable) {\n instance.setDraggable(draggable);\n },\n editable: function (instance, editable) {\n instance.setEditable(editable);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n path: function (instance, path) {\n instance.setPath(path);\n },\n paths: function (instance, paths) {\n instance.setPaths(paths);\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n },\n};\nfunction PolygonFunctional(_a) {\n var options = _a.options, draggable = _a.draggable, editable = _a.editable, visible = _a.visible, path = _a.path, paths = _a.paths, onDblClick = _a.onDblClick, onDragEnd = _a.onDragEnd, onDragStart = _a.onDragStart, onMouseDown = _a.onMouseDown, onMouseMove = _a.onMouseMove, onMouseOut = _a.onMouseOut, onMouseOver = _a.onMouseOver, onMouseUp = _a.onMouseUp, onRightClick = _a.onRightClick, onClick = _a.onClick, onDrag = _a.onDrag, onLoad = _a.onLoad, onUnmount = _a.onUnmount, onEdit = _a.onEdit;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n var _c = useState(null), dblclickListener = _c[0], setDblclickListener = _c[1];\n var _d = useState(null), dragendListener = _d[0], setDragendListener = _d[1];\n var _e = useState(null), dragstartListener = _e[0], setDragstartListener = _e[1];\n var _f = useState(null), mousedownListener = _f[0], setMousedownListener = _f[1];\n var _g = useState(null), mousemoveListener = _g[0], setMousemoveListener = _g[1];\n var _h = useState(null), mouseoutListener = _h[0], setMouseoutListener = _h[1];\n var _j = useState(null), mouseoverListener = _j[0], setMouseoverListener = _j[1];\n var _k = useState(null), mouseupListener = _k[0], setMouseupListener = _k[1];\n var _l = useState(null), rightclickListener = _l[0], setRightclickListener = _l[1];\n var _m = useState(null), clickListener = _m[0], setClickListener = _m[1];\n var _o = useState(null), dragListener = _o[0], setDragListener = _o[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(function () {\n if (typeof editable !== 'undefined' && instance !== null) {\n instance.setEditable(editable);\n }\n }, [instance, editable]);\n useEffect(function () {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(function () {\n if (typeof path !== 'undefined' && instance !== null) {\n instance.setPath(path);\n }\n }, [instance, path]);\n useEffect(function () {\n if (typeof paths !== 'undefined' && instance !== null) {\n instance.setPaths(paths);\n }\n }, [instance, paths]);\n useEffect(function () {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (instance) {\n google.maps.event.addListener(instance.getPath(), 'insert_at', function () {\n onEdit === null || onEdit === void 0 ? void 0 : onEdit(instance);\n });\n google.maps.event.addListener(instance.getPath(), 'set_at', function () {\n onEdit === null || onEdit === void 0 ? void 0 : onEdit(instance);\n });\n }\n }, [instance, onEdit]);\n useEffect(function () {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(function () {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(function () {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(function () {\n var polygon = new google.maps.Polygon(__assign(__assign({}, (options || {})), { map: map }));\n if (path) {\n polygon.setPath(path);\n }\n if (paths) {\n polygon.setPaths(paths);\n }\n if (typeof visible !== 'undefined') {\n polygon.setVisible(visible);\n }\n if (typeof editable !== 'undefined') {\n polygon.setEditable(editable);\n }\n if (typeof draggable !== 'undefined') {\n polygon.setDraggable(draggable);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(polygon, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(polygon, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(polygon, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(polygon, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(polygon, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(polygon, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(polygon, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(polygon, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(polygon, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(polygon, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(polygon, 'drag', onDrag));\n }\n setInstance(polygon);\n if (onLoad) {\n onLoad(polygon);\n }\n return function () {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (onUnmount) {\n onUnmount(polygon);\n }\n polygon.setMap(null);\n };\n }, []);\n return null;\n}\nvar PolygonF = memo(PolygonFunctional);\nvar Polygon = /** @class */ (function (_super) {\n __extends(Polygon, _super);\n function Polygon() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n polygon: null,\n };\n _this.setPolygonCallback = function () {\n if (_this.state.polygon !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.polygon);\n }\n };\n return _this;\n }\n Polygon.prototype.componentDidMount = function () {\n var polygon = new google.maps.Polygon(__assign(__assign({}, (this.props.options || {})), { map: this.context }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$a,\n eventMap: eventMap$a,\n prevProps: {},\n nextProps: this.props,\n instance: polygon,\n });\n this.setState(function setPolygon() {\n return {\n polygon: polygon,\n };\n }, this.setPolygonCallback);\n };\n Polygon.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.polygon !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$a,\n eventMap: eventMap$a,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.polygon,\n });\n }\n };\n Polygon.prototype.componentWillUnmount = function () {\n if (this.state.polygon !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.polygon);\n }\n unregisterEvents(this.registeredEvents);\n this.state.polygon && this.state.polygon.setMap(null);\n }\n };\n Polygon.prototype.render = function () {\n return null;\n };\n Polygon.contextType = MapContext;\n return Polygon;\n}(PureComponent));\n\nvar eventMap$9 = {\n onBoundsChanged: 'bounds_changed',\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n};\nvar updaterMap$9 = {\n bounds: function (instance, bounds) {\n instance.setBounds(bounds);\n },\n draggable: function (instance, draggable) {\n instance.setDraggable(draggable);\n },\n editable: function (instance, editable) {\n instance.setEditable(editable);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n },\n};\nfunction RectangleFunctional(_a) {\n var options = _a.options, bounds = _a.bounds, draggable = _a.draggable, editable = _a.editable, visible = _a.visible, onDblClick = _a.onDblClick, onDragEnd = _a.onDragEnd, onDragStart = _a.onDragStart, onMouseDown = _a.onMouseDown, onMouseMove = _a.onMouseMove, onMouseOut = _a.onMouseOut, onMouseOver = _a.onMouseOver, onMouseUp = _a.onMouseUp, onRightClick = _a.onRightClick, onClick = _a.onClick, onDrag = _a.onDrag, onBoundsChanged = _a.onBoundsChanged, onLoad = _a.onLoad, onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n var _c = useState(null), dblclickListener = _c[0], setDblclickListener = _c[1];\n var _d = useState(null), dragendListener = _d[0], setDragendListener = _d[1];\n var _e = useState(null), dragstartListener = _e[0], setDragstartListener = _e[1];\n var _f = useState(null), mousedownListener = _f[0], setMousedownListener = _f[1];\n var _g = useState(null), mousemoveListener = _g[0], setMousemoveListener = _g[1];\n var _h = useState(null), mouseoutListener = _h[0], setMouseoutListener = _h[1];\n var _j = useState(null), mouseoverListener = _j[0], setMouseoverListener = _j[1];\n var _k = useState(null), mouseupListener = _k[0], setMouseupListener = _k[1];\n var _l = useState(null), rightClickListener = _l[0], setRightClickListener = _l[1];\n var _m = useState(null), clickListener = _m[0], setClickListener = _m[1];\n var _o = useState(null), dragListener = _o[0], setDragListener = _o[1];\n var _p = useState(null), boundsChangedListener = _p[0], setBoundsChangedListener = _p[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(function () {\n if (typeof editable !== 'undefined' && instance !== null) {\n instance.setEditable(editable);\n }\n }, [instance, editable]);\n useEffect(function () {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(function () {\n if (typeof bounds !== 'undefined' && instance !== null) {\n instance.setBounds(bounds);\n }\n }, [instance, bounds]);\n useEffect(function () {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(function () {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(function () {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (instance && onRightClick) {\n if (rightClickListener !== null) {\n google.maps.event.removeListener(rightClickListener);\n }\n setRightClickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(function () {\n if (instance && onBoundsChanged) {\n if (boundsChangedListener !== null) {\n google.maps.event.removeListener(boundsChangedListener);\n }\n setBoundsChangedListener(google.maps.event.addListener(instance, 'bounds_changed', onBoundsChanged));\n }\n }, [onBoundsChanged]);\n useEffect(function () {\n var rectangle = new google.maps.Rectangle(__assign(__assign({}, (options || {})), { map: map }));\n if (typeof visible !== 'undefined') {\n rectangle.setVisible(visible);\n }\n if (typeof editable !== 'undefined') {\n rectangle.setEditable(editable);\n }\n if (typeof draggable !== 'undefined') {\n rectangle.setDraggable(draggable);\n }\n if (typeof bounds !== 'undefined') {\n rectangle.setBounds(bounds);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(rectangle, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(rectangle, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(rectangle, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(rectangle, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(rectangle, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(rectangle, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(rectangle, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(rectangle, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightClickListener(google.maps.event.addListener(rectangle, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(rectangle, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(rectangle, 'drag', onDrag));\n }\n if (onBoundsChanged) {\n setBoundsChangedListener(google.maps.event.addListener(rectangle, 'bounds_changed', onBoundsChanged));\n }\n setInstance(rectangle);\n if (onLoad) {\n onLoad(rectangle);\n }\n return function () {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightClickListener !== null) {\n google.maps.event.removeListener(rightClickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n if (boundsChangedListener !== null) {\n google.maps.event.removeListener(boundsChangedListener);\n }\n if (onUnmount) {\n onUnmount(rectangle);\n }\n rectangle.setMap(null);\n };\n }, []);\n return null;\n}\nvar RectangleF = memo(RectangleFunctional);\nvar Rectangle = /** @class */ (function (_super) {\n __extends(Rectangle, _super);\n function Rectangle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n rectangle: null,\n };\n _this.setRectangleCallback = function () {\n if (_this.state.rectangle !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.rectangle);\n }\n };\n return _this;\n }\n Rectangle.prototype.componentDidMount = function () {\n var rectangle = new google.maps.Rectangle(__assign(__assign({}, (this.props.options || {})), { map: this.context }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$9,\n eventMap: eventMap$9,\n prevProps: {},\n nextProps: this.props,\n instance: rectangle,\n });\n this.setState(function setRectangle() {\n return {\n rectangle: rectangle,\n };\n }, this.setRectangleCallback);\n };\n Rectangle.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.rectangle !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$9,\n eventMap: eventMap$9,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.rectangle,\n });\n }\n };\n Rectangle.prototype.componentWillUnmount = function () {\n if (this.state.rectangle !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.rectangle);\n }\n unregisterEvents(this.registeredEvents);\n this.state.rectangle.setMap(null);\n }\n };\n Rectangle.prototype.render = function () {\n return null;\n };\n Rectangle.contextType = MapContext;\n return Rectangle;\n}(PureComponent));\n\nvar eventMap$8 = {\n onCenterChanged: 'center_changed',\n onRadiusChanged: 'radius_changed',\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n};\nvar updaterMap$8 = {\n center: function (instance, center) {\n instance.setCenter(center);\n },\n draggable: function (instance, draggable) {\n instance.setDraggable(draggable);\n },\n editable: function (instance, editable) {\n instance.setEditable(editable);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n radius: function (instance, radius) {\n instance.setRadius(radius);\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n },\n};\nvar defaultOptions = {};\nfunction CircleFunctional(_a) {\n var options = _a.options, center = _a.center, radius = _a.radius, draggable = _a.draggable, editable = _a.editable, visible = _a.visible, onDblClick = _a.onDblClick, onDragEnd = _a.onDragEnd, onDragStart = _a.onDragStart, onMouseDown = _a.onMouseDown, onMouseMove = _a.onMouseMove, onMouseOut = _a.onMouseOut, onMouseOver = _a.onMouseOver, onMouseUp = _a.onMouseUp, onRightClick = _a.onRightClick, onClick = _a.onClick, onDrag = _a.onDrag, onCenterChanged = _a.onCenterChanged, onRadiusChanged = _a.onRadiusChanged, onLoad = _a.onLoad, onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n var _c = useState(null), dblclickListener = _c[0], setDblclickListener = _c[1];\n var _d = useState(null), dragendListener = _d[0], setDragendListener = _d[1];\n var _e = useState(null), dragstartListener = _e[0], setDragstartListener = _e[1];\n var _f = useState(null), mousedownListener = _f[0], setMousedownListener = _f[1];\n var _g = useState(null), mousemoveListener = _g[0], setMousemoveListener = _g[1];\n var _h = useState(null), mouseoutListener = _h[0], setMouseoutListener = _h[1];\n var _j = useState(null), mouseoverListener = _j[0], setMouseoverListener = _j[1];\n var _k = useState(null), mouseupListener = _k[0], setMouseupListener = _k[1];\n var _l = useState(null), rightclickListener = _l[0], setRightclickListener = _l[1];\n var _m = useState(null), clickListener = _m[0], setClickListener = _m[1];\n var _o = useState(null), dragListener = _o[0], setDragListener = _o[1];\n var _p = useState(null), centerChangedListener = _p[0], setCenterChangedListener = _p[1];\n var _q = useState(null), radiusChangedListener = _q[0], setRadiusChangedListener = _q[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (typeof options !== 'undefined' && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n if (typeof draggable !== 'undefined' && instance !== null) {\n instance.setDraggable(draggable);\n }\n }, [instance, draggable]);\n useEffect(function () {\n if (typeof editable !== 'undefined' && instance !== null) {\n instance.setEditable(editable);\n }\n }, [instance, editable]);\n useEffect(function () {\n if (typeof visible !== 'undefined' && instance !== null) {\n instance.setVisible(visible);\n }\n }, [instance, visible]);\n useEffect(function () {\n if (typeof radius === 'number' && instance !== null) {\n instance.setRadius(radius);\n }\n }, [instance, radius]);\n useEffect(function () {\n if (typeof center !== 'undefined' && instance !== null) {\n instance.setCenter(center);\n }\n }, [instance, center]);\n useEffect(function () {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (instance && onDragEnd) {\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n setDragendListener(google.maps.event.addListener(instance, 'dragend', onDragEnd));\n }\n }, [onDragEnd]);\n useEffect(function () {\n if (instance && onDragStart) {\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n setDragstartListener(google.maps.event.addListener(instance, 'dragstart', onDragStart));\n }\n }, [onDragStart]);\n useEffect(function () {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onDrag) {\n if (dragListener !== null) {\n google.maps.event.removeListener(dragListener);\n }\n setDragListener(google.maps.event.addListener(instance, 'drag', onDrag));\n }\n }, [onDrag]);\n useEffect(function () {\n if (instance && onCenterChanged) {\n if (centerChangedListener !== null) {\n google.maps.event.removeListener(centerChangedListener);\n }\n setCenterChangedListener(google.maps.event.addListener(instance, 'center_changed', onCenterChanged));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onRadiusChanged) {\n if (radiusChangedListener !== null) {\n google.maps.event.removeListener(radiusChangedListener);\n }\n setRadiusChangedListener(google.maps.event.addListener(instance, 'radius_changed', onRadiusChanged));\n }\n }, [onRadiusChanged]);\n useEffect(function () {\n var circle = new google.maps.Circle(__assign(__assign({}, (options || defaultOptions)), { map: map }));\n if (typeof radius === 'number') {\n circle.setRadius(radius);\n }\n if (typeof center !== 'undefined') {\n circle.setCenter(center);\n }\n if (typeof radius === 'number') {\n circle.setRadius(radius);\n }\n if (typeof visible !== 'undefined') {\n circle.setVisible(visible);\n }\n if (typeof editable !== 'undefined') {\n circle.setEditable(editable);\n }\n if (typeof draggable !== 'undefined') {\n circle.setDraggable(draggable);\n }\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(circle, 'dblclick', onDblClick));\n }\n if (onDragEnd) {\n setDragendListener(google.maps.event.addListener(circle, 'dragend', onDragEnd));\n }\n if (onDragStart) {\n setDragstartListener(google.maps.event.addListener(circle, 'dragstart', onDragStart));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(circle, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(circle, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(circle, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(circle, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(circle, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(circle, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(circle, 'click', onClick));\n }\n if (onDrag) {\n setDragListener(google.maps.event.addListener(circle, 'drag', onDrag));\n }\n if (onCenterChanged) {\n setCenterChangedListener(google.maps.event.addListener(circle, 'center_changed', onCenterChanged));\n }\n if (onRadiusChanged) {\n setRadiusChangedListener(google.maps.event.addListener(circle, 'radius_changed', onRadiusChanged));\n }\n setInstance(circle);\n if (onLoad) {\n onLoad(circle);\n }\n return function () {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (dragendListener !== null) {\n google.maps.event.removeListener(dragendListener);\n }\n if (dragstartListener !== null) {\n google.maps.event.removeListener(dragstartListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (centerChangedListener !== null) {\n google.maps.event.removeListener(centerChangedListener);\n }\n if (radiusChangedListener !== null) {\n google.maps.event.removeListener(radiusChangedListener);\n }\n if (onUnmount) {\n onUnmount(circle);\n }\n circle.setMap(null);\n };\n }, []);\n return null;\n}\nvar CircleF = memo(CircleFunctional);\nvar Circle = /** @class */ (function (_super) {\n __extends(Circle, _super);\n function Circle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n circle: null,\n };\n _this.setCircleCallback = function () {\n if (_this.state.circle !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.circle);\n }\n };\n return _this;\n }\n Circle.prototype.componentDidMount = function () {\n var circle = new google.maps.Circle(__assign(__assign({}, (this.props.options || {})), { map: this.context }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$8,\n eventMap: eventMap$8,\n prevProps: {},\n nextProps: this.props,\n instance: circle,\n });\n this.setState(function setCircle() {\n return {\n circle: circle,\n };\n }, this.setCircleCallback);\n };\n Circle.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.circle !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$8,\n eventMap: eventMap$8,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.circle,\n });\n }\n };\n Circle.prototype.componentWillUnmount = function () {\n var _a;\n if (this.state.circle !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.circle);\n }\n unregisterEvents(this.registeredEvents);\n (_a = this.state.circle) === null || _a === void 0 ? void 0 : _a.setMap(null);\n }\n };\n Circle.prototype.render = function () {\n return null;\n };\n Circle.contextType = MapContext;\n return Circle;\n}(PureComponent));\n\nvar eventMap$7 = {\n onClick: 'click',\n onDblClick: 'dblclick',\n onMouseDown: 'mousedown',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n onAddFeature: 'addfeature',\n onRemoveFeature: 'removefeature',\n onRemoveProperty: 'removeproperty',\n onSetGeometry: 'setgeometry',\n onSetProperty: 'setproperty',\n};\nvar updaterMap$7 = {\n add: function (instance, feature) {\n instance.add(feature);\n },\n addgeojson: function (instance, geojson, options) {\n instance.addGeoJson(geojson, options);\n },\n contains: function (instance, feature) {\n instance.contains(feature);\n },\n foreach: function (instance, callback) {\n instance.forEach(callback);\n },\n loadgeojson: function (instance, url, options, callback) {\n instance.loadGeoJson(url, options, callback);\n },\n overridestyle: function (instance, feature, style) {\n instance.overrideStyle(feature, style);\n },\n remove: function (instance, feature) {\n instance.remove(feature);\n },\n revertstyle: function (instance, feature) {\n instance.revertStyle(feature);\n },\n controlposition: function (instance, controlPosition) {\n instance.setControlPosition(controlPosition);\n },\n controls: function (instance, controls) {\n instance.setControls(controls);\n },\n drawingmode: function (instance, mode) {\n instance.setDrawingMode(mode);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n style: function (instance, style) {\n instance.setStyle(style);\n },\n togeojson: function (instance, callback) {\n instance.toGeoJson(callback);\n },\n};\nfunction DataFunctional(_a) {\n var options = _a.options, onClick = _a.onClick, onDblClick = _a.onDblClick, onMouseDown = _a.onMouseDown, onMouseMove = _a.onMouseMove, onMouseOut = _a.onMouseOut, onMouseOver = _a.onMouseOver, onMouseUp = _a.onMouseUp, onRightClick = _a.onRightClick, onAddFeature = _a.onAddFeature, onRemoveFeature = _a.onRemoveFeature, onRemoveProperty = _a.onRemoveProperty, onSetGeometry = _a.onSetGeometry, onSetProperty = _a.onSetProperty, onLoad = _a.onLoad, onUnmount = _a.onUnmount;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n var _c = useState(null), dblclickListener = _c[0], setDblclickListener = _c[1];\n var _d = useState(null), mousedownListener = _d[0], setMousedownListener = _d[1];\n var _e = useState(null), mousemoveListener = _e[0], setMousemoveListener = _e[1];\n var _f = useState(null), mouseoutListener = _f[0], setMouseoutListener = _f[1];\n var _g = useState(null), mouseoverListener = _g[0], setMouseoverListener = _g[1];\n var _h = useState(null), mouseupListener = _h[0], setMouseupListener = _h[1];\n var _j = useState(null), rightclickListener = _j[0], setRightclickListener = _j[1];\n var _k = useState(null), clickListener = _k[0], setClickListener = _k[1];\n var _l = useState(null), addFeatureListener = _l[0], setAddFeatureListener = _l[1];\n var _m = useState(null), removeFeatureListener = _m[0], setRemoveFeatureListener = _m[1];\n var _o = useState(null), removePropertyListener = _o[0], setRemovePropertyListener = _o[1];\n var _p = useState(null), setGeometryListener = _p[0], setSetGeometryListener = _p[1];\n var _q = useState(null), setPropertyListener = _q[0], setSetPropertyListener = _q[1];\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (instance && onDblClick) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n setDblclickListener(google.maps.event.addListener(instance, 'dblclick', onDblClick));\n }\n }, [onDblClick]);\n useEffect(function () {\n if (instance && onMouseDown) {\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n setMousedownListener(google.maps.event.addListener(instance, 'mousedown', onMouseDown));\n }\n }, [onMouseDown]);\n useEffect(function () {\n if (instance && onMouseMove) {\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n setMousemoveListener(google.maps.event.addListener(instance, 'mousemove', onMouseMove));\n }\n }, [onMouseMove]);\n useEffect(function () {\n if (instance && onMouseOut) {\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n setMouseoutListener(google.maps.event.addListener(instance, 'mouseout', onMouseOut));\n }\n }, [onMouseOut]);\n useEffect(function () {\n if (instance && onMouseOver) {\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n setMouseoverListener(google.maps.event.addListener(instance, 'mouseover', onMouseOver));\n }\n }, [onMouseOver]);\n useEffect(function () {\n if (instance && onMouseUp) {\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n setMouseupListener(google.maps.event.addListener(instance, 'mouseup', onMouseUp));\n }\n }, [onMouseUp]);\n useEffect(function () {\n if (instance && onRightClick) {\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n setRightclickListener(google.maps.event.addListener(instance, 'rightclick', onRightClick));\n }\n }, [onRightClick]);\n useEffect(function () {\n if (instance && onClick) {\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n setClickListener(google.maps.event.addListener(instance, 'click', onClick));\n }\n }, [onClick]);\n useEffect(function () {\n if (instance && onAddFeature) {\n if (addFeatureListener !== null) {\n google.maps.event.removeListener(addFeatureListener);\n }\n setAddFeatureListener(google.maps.event.addListener(instance, 'addfeature', onAddFeature));\n }\n }, [onAddFeature]);\n useEffect(function () {\n if (instance && onRemoveFeature) {\n if (removeFeatureListener !== null) {\n google.maps.event.removeListener(removeFeatureListener);\n }\n setRemoveFeatureListener(google.maps.event.addListener(instance, 'removefeature', onRemoveFeature));\n }\n }, [onRemoveFeature]);\n useEffect(function () {\n if (instance && onRemoveProperty) {\n if (removePropertyListener !== null) {\n google.maps.event.removeListener(removePropertyListener);\n }\n setRemovePropertyListener(google.maps.event.addListener(instance, 'removeproperty', onRemoveProperty));\n }\n }, [onRemoveProperty]);\n useEffect(function () {\n if (instance && onSetGeometry) {\n if (setGeometryListener !== null) {\n google.maps.event.removeListener(setGeometryListener);\n }\n setSetGeometryListener(google.maps.event.addListener(instance, 'setgeometry', onSetGeometry));\n }\n }, [onSetGeometry]);\n useEffect(function () {\n if (instance && onSetProperty) {\n if (setPropertyListener !== null) {\n google.maps.event.removeListener(setPropertyListener);\n }\n setSetPropertyListener(google.maps.event.addListener(instance, 'setproperty', onSetProperty));\n }\n }, [onSetProperty]);\n useEffect(function () {\n if (map !== null) {\n var data = new google.maps.Data(__assign(__assign({}, (options || {})), { map: map }));\n if (onDblClick) {\n setDblclickListener(google.maps.event.addListener(data, 'dblclick', onDblClick));\n }\n if (onMouseDown) {\n setMousedownListener(google.maps.event.addListener(data, 'mousedown', onMouseDown));\n }\n if (onMouseMove) {\n setMousemoveListener(google.maps.event.addListener(data, 'mousemove', onMouseMove));\n }\n if (onMouseOut) {\n setMouseoutListener(google.maps.event.addListener(data, 'mouseout', onMouseOut));\n }\n if (onMouseOver) {\n setMouseoverListener(google.maps.event.addListener(data, 'mouseover', onMouseOver));\n }\n if (onMouseUp) {\n setMouseupListener(google.maps.event.addListener(data, 'mouseup', onMouseUp));\n }\n if (onRightClick) {\n setRightclickListener(google.maps.event.addListener(data, 'rightclick', onRightClick));\n }\n if (onClick) {\n setClickListener(google.maps.event.addListener(data, 'click', onClick));\n }\n if (onAddFeature) {\n setAddFeatureListener(google.maps.event.addListener(data, 'addfeature', onAddFeature));\n }\n if (onRemoveFeature) {\n setRemoveFeatureListener(google.maps.event.addListener(data, 'removefeature', onRemoveFeature));\n }\n if (onRemoveProperty) {\n setRemovePropertyListener(google.maps.event.addListener(data, 'removeproperty', onRemoveProperty));\n }\n if (onSetGeometry) {\n setSetGeometryListener(google.maps.event.addListener(data, 'setgeometry', onSetGeometry));\n }\n if (onSetProperty) {\n setSetPropertyListener(google.maps.event.addListener(data, 'setproperty', onSetProperty));\n }\n setInstance(data);\n if (onLoad) {\n onLoad(data);\n }\n }\n return function () {\n if (instance) {\n if (dblclickListener !== null) {\n google.maps.event.removeListener(dblclickListener);\n }\n if (mousedownListener !== null) {\n google.maps.event.removeListener(mousedownListener);\n }\n if (mousemoveListener !== null) {\n google.maps.event.removeListener(mousemoveListener);\n }\n if (mouseoutListener !== null) {\n google.maps.event.removeListener(mouseoutListener);\n }\n if (mouseoverListener !== null) {\n google.maps.event.removeListener(mouseoverListener);\n }\n if (mouseupListener !== null) {\n google.maps.event.removeListener(mouseupListener);\n }\n if (rightclickListener !== null) {\n google.maps.event.removeListener(rightclickListener);\n }\n if (clickListener !== null) {\n google.maps.event.removeListener(clickListener);\n }\n if (addFeatureListener !== null) {\n google.maps.event.removeListener(addFeatureListener);\n }\n if (removeFeatureListener !== null) {\n google.maps.event.removeListener(removeFeatureListener);\n }\n if (removePropertyListener !== null) {\n google.maps.event.removeListener(removePropertyListener);\n }\n if (setGeometryListener !== null) {\n google.maps.event.removeListener(setGeometryListener);\n }\n if (setPropertyListener !== null) {\n google.maps.event.removeListener(setPropertyListener);\n }\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nvar DataF = memo(DataFunctional);\nvar Data = /** @class */ (function (_super) {\n __extends(Data, _super);\n function Data() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n data: null,\n };\n _this.setDataCallback = function () {\n if (_this.state.data !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.data);\n }\n };\n return _this;\n }\n Data.prototype.componentDidMount = function () {\n if (this.context !== null) {\n var data_1 = new google.maps.Data(__assign(__assign({}, (this.props.options || {})), { map: this.context }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$7,\n eventMap: eventMap$7,\n prevProps: {},\n nextProps: this.props,\n instance: data_1,\n });\n this.setState(function () {\n return {\n data: data_1,\n };\n }, this.setDataCallback);\n }\n };\n Data.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.data !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$7,\n eventMap: eventMap$7,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.data,\n });\n }\n };\n Data.prototype.componentWillUnmount = function () {\n if (this.state.data !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.data);\n }\n unregisterEvents(this.registeredEvents);\n if (this.state.data) {\n this.state.data.setMap(null);\n }\n }\n };\n Data.prototype.render = function () {\n return null;\n };\n Data.contextType = MapContext;\n return Data;\n}(PureComponent));\n\nvar eventMap$6 = {\n onClick: 'click',\n onDefaultViewportChanged: 'defaultviewport_changed',\n onStatusChanged: 'status_changed',\n};\nvar updaterMap$6 = {\n options: function (instance, options) {\n instance.setOptions(options);\n },\n url: function (instance, url) {\n instance.setUrl(url);\n },\n zIndex: function (instance, zIndex) {\n instance.setZIndex(zIndex);\n },\n};\nvar KmlLayer = /** @class */ (function (_super) {\n __extends(KmlLayer, _super);\n function KmlLayer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n kmlLayer: null,\n };\n _this.setKmlLayerCallback = function () {\n if (_this.state.kmlLayer !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.kmlLayer);\n }\n };\n return _this;\n }\n KmlLayer.prototype.componentDidMount = function () {\n var kmlLayer = new google.maps.KmlLayer(__assign(__assign({}, this.props.options), { map: this.context }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$6,\n eventMap: eventMap$6,\n prevProps: {},\n nextProps: this.props,\n instance: kmlLayer,\n });\n this.setState(function setLmlLayer() {\n return {\n kmlLayer: kmlLayer,\n };\n }, this.setKmlLayerCallback);\n };\n KmlLayer.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.kmlLayer !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$6,\n eventMap: eventMap$6,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.kmlLayer,\n });\n }\n };\n KmlLayer.prototype.componentWillUnmount = function () {\n if (this.state.kmlLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.kmlLayer);\n }\n unregisterEvents(this.registeredEvents);\n this.state.kmlLayer.setMap(null);\n }\n };\n KmlLayer.prototype.render = function () {\n return null;\n };\n KmlLayer.contextType = MapContext;\n return KmlLayer;\n}(PureComponent));\n\nfunction getOffsetOverride(containerElement, getPixelPositionOffset) {\n return typeof getPixelPositionOffset === 'function'\n ? getPixelPositionOffset(containerElement.offsetWidth, containerElement.offsetHeight)\n : {\n x: 0,\n y: 0,\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction createLatLng(inst, Type) { return new Type(inst.lat, inst.lng); }\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction createLatLngBounds(inst, Type) {\n return new Type(new google.maps.LatLng(inst.ne.lat, inst.ne.lng), new google.maps.LatLng(inst.sw.lat, inst.sw.lng));\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction ensureOfType(inst, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfactory\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n return inst instanceof type ? inst : factory(inst, type);\n}\nfunction ensureOfTypeBounds(inst, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfactory\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n return inst instanceof type ? inst : factory(inst, type);\n}\nfunction getLayoutStylesByBounds(mapCanvasProjection, offset, bounds) {\n var ne = mapCanvasProjection && mapCanvasProjection.fromLatLngToDivPixel(bounds.getNorthEast());\n var sw = mapCanvasProjection && mapCanvasProjection.fromLatLngToDivPixel(bounds.getSouthWest());\n if (ne && sw) {\n return {\n left: \"\".concat(sw.x + offset.x, \"px\"),\n top: \"\".concat(ne.y + offset.y, \"px\"),\n width: \"\".concat(ne.x - sw.x - offset.x, \"px\"),\n height: \"\".concat(sw.y - ne.y - offset.y, \"px\"),\n };\n }\n return {\n left: '-9999px',\n top: '-9999px',\n };\n}\nfunction getLayoutStylesByPosition(mapCanvasProjection, offset, position) {\n var point = mapCanvasProjection && mapCanvasProjection.fromLatLngToDivPixel(position);\n if (point) {\n var x = point.x, y = point.y;\n return {\n left: \"\".concat(x + offset.x, \"px\"),\n top: \"\".concat(y + offset.y, \"px\"),\n };\n }\n return {\n left: '-9999px',\n top: '-9999px',\n };\n}\nfunction getLayoutStyles(mapCanvasProjection, offset, bounds, position) {\n return bounds !== undefined\n ? getLayoutStylesByBounds(mapCanvasProjection, offset, ensureOfTypeBounds(bounds, google.maps.LatLngBounds, createLatLngBounds))\n : getLayoutStylesByPosition(mapCanvasProjection, offset, ensureOfType(position, google.maps.LatLng, createLatLng));\n}\nfunction arePositionsEqual(currentPosition, previousPosition) {\n return currentPosition.left === previousPosition.left\n && currentPosition.top === previousPosition.top\n && currentPosition.width === previousPosition.height\n && currentPosition.height === previousPosition.height;\n}\n\nfunction createOverlay(container, pane, position, bounds, getPixelPositionOffset) {\n var Overlay = /** @class */ (function (_super) {\n __extends(Overlay, _super);\n function Overlay(container, pane, position, bounds) {\n var _this = _super.call(this) || this;\n _this.container = container;\n _this.pane = pane;\n _this.position = position;\n _this.bounds = bounds;\n return _this;\n }\n Overlay.prototype.onAdd = function () {\n var _a;\n var pane = (_a = this.getPanes()) === null || _a === void 0 ? void 0 : _a[this.pane];\n pane === null || pane === void 0 ? void 0 : pane.appendChild(this.container);\n };\n Overlay.prototype.draw = function () {\n var projection = this.getProjection();\n var offset = __assign({}, (this.container\n ? getOffsetOverride(this.container, getPixelPositionOffset)\n : {\n x: 0,\n y: 0,\n }));\n var layoutStyles = getLayoutStyles(projection, offset, this.bounds, this.position);\n for (var _i = 0, _a = Object.entries(layoutStyles); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.container.style[key] = value;\n }\n };\n Overlay.prototype.onRemove = function () {\n if (this.container.parentNode !== null) {\n this.container.parentNode.removeChild(this.container);\n }\n };\n return Overlay;\n }(google.maps.OverlayView));\n return new Overlay(container, pane, position, bounds);\n}\n\nfunction convertToLatLngString(latLngLike) {\n if (!latLngLike) {\n return '';\n }\n var latLng = latLngLike instanceof google.maps.LatLng\n ? latLngLike\n : new google.maps.LatLng(latLngLike.lat, latLngLike.lng);\n return latLng + '';\n}\nfunction convertToLatLngBoundsString(latLngBoundsLike) {\n if (!latLngBoundsLike) {\n return '';\n }\n var latLngBounds = latLngBoundsLike instanceof google.maps.LatLngBounds\n ? latLngBoundsLike\n : new google.maps.LatLngBounds(new google.maps.LatLng(latLngBoundsLike.south, latLngBoundsLike.east), new google.maps.LatLng(latLngBoundsLike.north, latLngBoundsLike.west));\n return latLngBounds + '';\n}\nvar FLOAT_PANE = \"floatPane\";\nvar MAP_PANE = \"mapPane\";\nvar MARKER_LAYER = \"markerLayer\";\nvar OVERLAY_LAYER = \"overlayLayer\";\nvar OVERLAY_MOUSE_TARGET = \"overlayMouseTarget\";\nfunction OverlayViewFunctional(_a) {\n var position = _a.position, bounds = _a.bounds, mapPaneName = _a.mapPaneName, zIndex = _a.zIndex, onLoad = _a.onLoad, onUnmount = _a.onUnmount, getPixelPositionOffset = _a.getPixelPositionOffset, children = _a.children;\n var map = useContext(MapContext);\n var container = useMemo(function () {\n var div = document.createElement('div');\n div.style.position = 'absolute';\n return div;\n }, []);\n var overlay = useMemo(function () {\n return createOverlay(container, mapPaneName, position, bounds, getPixelPositionOffset);\n }, [container, mapPaneName, position, bounds]);\n useEffect(function () {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(overlay);\n overlay === null || overlay === void 0 ? void 0 : overlay.setMap(map);\n return function () {\n onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount(overlay);\n overlay === null || overlay === void 0 ? void 0 : overlay.setMap(null);\n };\n }, [map, overlay]);\n // to move the container to the foreground and background\n useEffect(function () {\n container.style.zIndex = \"\".concat(zIndex);\n }, [zIndex, container]);\n return ReactDOM.createPortal(children, container);\n}\nvar OverlayViewF = memo(OverlayViewFunctional);\nvar OverlayView = /** @class */ (function (_super) {\n __extends(OverlayView, _super);\n function OverlayView(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n paneEl: null,\n containerStyle: {\n // set initial position\n position: 'absolute',\n },\n };\n _this.updatePane = function () {\n var mapPaneName = _this.props.mapPaneName;\n // https://developers.google.com/maps/documentation/javascript/3.exp/reference#MapPanes\n var mapPanes = _this.overlayView.getPanes();\n invariant$1(!!mapPaneName, \"OverlayView requires props.mapPaneName but got %s\", mapPaneName);\n if (mapPanes) {\n _this.setState({\n paneEl: mapPanes[mapPaneName],\n });\n }\n else {\n _this.setState({\n paneEl: null,\n });\n }\n };\n _this.onAdd = function () {\n var _a, _b;\n _this.updatePane();\n (_b = (_a = _this.props).onLoad) === null || _b === void 0 ? void 0 : _b.call(_a, _this.overlayView);\n };\n _this.onPositionElement = function () {\n var mapCanvasProjection = _this.overlayView.getProjection();\n var offset = __assign({ x: 0, y: 0 }, (_this.containerRef.current\n ? getOffsetOverride(_this.containerRef.current, _this.props.getPixelPositionOffset)\n : {}));\n var layoutStyles = getLayoutStyles(mapCanvasProjection, offset, _this.props.bounds, _this.props.position);\n var _a = _this.state.containerStyle, left = _a.left, top = _a.top, width = _a.width, height = _a.height;\n if (!arePositionsEqual(layoutStyles, { left: left, top: top, width: width, height: height })) {\n _this.setState({\n containerStyle: {\n top: layoutStyles.top || 0,\n left: layoutStyles.left || 0,\n width: layoutStyles.width || 0,\n height: layoutStyles.height || 0,\n position: 'absolute',\n },\n });\n }\n };\n _this.draw = function () {\n _this.onPositionElement();\n };\n _this.onRemove = function () {\n var _a, _b;\n _this.setState(function () { return ({\n paneEl: null,\n }); });\n (_b = (_a = _this.props).onUnmount) === null || _b === void 0 ? void 0 : _b.call(_a, _this.overlayView);\n };\n _this.containerRef = createRef();\n // You must implement three methods: onAdd(), draw(), and onRemove().\n var overlayView = new google.maps.OverlayView();\n overlayView.onAdd = _this.onAdd;\n overlayView.draw = _this.draw;\n overlayView.onRemove = _this.onRemove;\n _this.overlayView = overlayView;\n return _this;\n }\n OverlayView.prototype.componentDidMount = function () {\n this.overlayView.setMap(this.context);\n };\n OverlayView.prototype.componentDidUpdate = function (prevProps) {\n var prevPositionString = convertToLatLngString(prevProps.position);\n var positionString = convertToLatLngString(this.props.position);\n var prevBoundsString = convertToLatLngBoundsString(prevProps.bounds);\n var boundsString = convertToLatLngBoundsString(this.props.bounds);\n if (prevPositionString !== positionString ||\n prevBoundsString !== boundsString) {\n this.overlayView.draw();\n }\n if (prevProps.mapPaneName !== this.props.mapPaneName) {\n this.updatePane();\n }\n };\n OverlayView.prototype.componentWillUnmount = function () {\n this.overlayView.setMap(null);\n };\n OverlayView.prototype.render = function () {\n var paneEl = this.state.paneEl;\n if (paneEl) {\n return ReactDOM.createPortal(jsx(\"div\", { ref: this.containerRef, style: this.state.containerStyle, children: Children.only(this.props.children) }), paneEl);\n }\n else {\n return null;\n }\n };\n OverlayView.FLOAT_PANE = \"floatPane\";\n OverlayView.MAP_PANE = \"mapPane\";\n OverlayView.MARKER_LAYER = \"markerLayer\";\n OverlayView.OVERLAY_LAYER = \"overlayLayer\";\n OverlayView.OVERLAY_MOUSE_TARGET = \"overlayMouseTarget\";\n OverlayView.contextType = MapContext;\n return OverlayView;\n}(PureComponent));\n\nfunction noop() { return; }\n\nvar eventMap$5 = {\n onDblClick: 'dblclick',\n onClick: 'click',\n};\nvar updaterMap$5 = {\n opacity: function (instance, opacity) {\n instance.setOpacity(opacity);\n },\n};\nfunction GroundOverlayFunctional(_a) {\n var url = _a.url, bounds = _a.bounds, options = _a.options, visible = _a.visible;\n var map = useContext(MapContext);\n var imageBounds = new google.maps.LatLngBounds(new google.maps.LatLng(bounds.south, bounds.west), new google.maps.LatLng(bounds.north, bounds.east));\n var groundOverlay = useMemo(function () {\n var overlay = new google.maps.GroundOverlay(url, imageBounds, __assign({}, options));\n return overlay;\n }, []);\n useEffect(function () {\n if (groundOverlay !== null) {\n groundOverlay.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (typeof url !== 'undefined' && groundOverlay !== null) {\n groundOverlay.set(\"url\", url);\n groundOverlay.setMap(map);\n }\n }, [groundOverlay, url]);\n useEffect(function () {\n if (typeof visible !== 'undefined' && groundOverlay !== null) {\n groundOverlay.setOpacity(visible ? 1 : 0);\n }\n }, [groundOverlay, visible]);\n useEffect(function () {\n var newBounds = new google.maps.LatLngBounds(new google.maps.LatLng(bounds.south, bounds.west), new google.maps.LatLng(bounds.north, bounds.east));\n if (typeof bounds !== 'undefined' && groundOverlay !== null) {\n groundOverlay.set(\"bounds\", newBounds);\n groundOverlay.setMap(map);\n }\n }, [groundOverlay, bounds]);\n return null;\n}\nvar GroundOverlayF = memo(GroundOverlayFunctional);\nvar GroundOverlay = /** @class */ (function (_super) {\n __extends(GroundOverlay, _super);\n function GroundOverlay() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n groundOverlay: null,\n };\n _this.setGroundOverlayCallback = function () {\n if (_this.state.groundOverlay !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.groundOverlay);\n }\n };\n return _this;\n }\n GroundOverlay.prototype.componentDidMount = function () {\n invariant$1(!!this.props.url || !!this.props.bounds, \"For GroundOverlay, url and bounds are passed in to constructor and are immutable after instantiated. This is the behavior of Google Maps JavaScript API v3 ( See https://developers.google.com/maps/documentation/javascript/reference#GroundOverlay) Hence, use the corresponding two props provided by `react-google-maps-api`, url and bounds. In some cases, you'll need the GroundOverlay component to reflect the changes of url and bounds. You can leverage the React's key property to remount the component. Typically, just `key={url}` would serve your need. See https://github.com/tomchentw/react-google-maps/issues/655\");\n var groundOverlay = new google.maps.GroundOverlay(this.props.url, this.props.bounds, __assign(__assign({}, this.props.options), { map: this.context }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$5,\n eventMap: eventMap$5,\n prevProps: {},\n nextProps: this.props,\n instance: groundOverlay,\n });\n this.setState(function setGroundOverlay() {\n return {\n groundOverlay: groundOverlay,\n };\n }, this.setGroundOverlayCallback);\n };\n GroundOverlay.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.groundOverlay !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$5,\n eventMap: eventMap$5,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.groundOverlay,\n });\n }\n };\n GroundOverlay.prototype.componentWillUnmount = function () {\n if (this.state.groundOverlay) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.groundOverlay);\n }\n this.state.groundOverlay.setMap(null);\n }\n };\n GroundOverlay.prototype.render = function () {\n return null;\n };\n GroundOverlay.defaultProps = {\n onLoad: noop,\n };\n GroundOverlay.contextType = MapContext;\n return GroundOverlay;\n}(PureComponent));\n\nvar eventMap$4 = {};\nvar updaterMap$4 = {\n data: function (instance, data) {\n instance.setData(data);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n};\nfunction HeatmapLayerFunctional(_a) {\n var data = _a.data, onLoad = _a.onLoad, onUnmount = _a.onUnmount, options = _a.options;\n var map = useContext(MapContext);\n var _b = useState(null), instance = _b[0], setInstance = _b[1];\n useEffect(function () {\n if (!google.maps.visualization) {\n invariant$1(!!google.maps.visualization, 'Did you include prop libraries={[\"visualization\"]} in useJsApiScript? %s', google.maps.visualization);\n }\n }, []);\n useEffect(function () {\n invariant$1(!!data, 'data property is required in HeatmapLayer %s', data);\n }, [data]);\n // Order does matter\n useEffect(function () {\n if (instance !== null) {\n instance.setMap(map);\n }\n }, [map]);\n useEffect(function () {\n if (options && instance !== null) {\n instance.setOptions(options);\n }\n }, [instance, options]);\n useEffect(function () {\n var heatmapLayer = new google.maps.visualization.HeatmapLayer(__assign(__assign({}, (options || {})), { data: data, map: map }));\n setInstance(heatmapLayer);\n if (onLoad) {\n onLoad(heatmapLayer);\n }\n return function () {\n if (instance !== null) {\n if (onUnmount) {\n onUnmount(instance);\n }\n instance.setMap(null);\n }\n };\n }, []);\n return null;\n}\nvar HeatmapLayerF = memo(HeatmapLayerFunctional);\nvar HeatmapLayer = /** @class */ (function (_super) {\n __extends(HeatmapLayer, _super);\n function HeatmapLayer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n heatmapLayer: null,\n };\n _this.setHeatmapLayerCallback = function () {\n if (_this.state.heatmapLayer !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.heatmapLayer);\n }\n };\n return _this;\n }\n HeatmapLayer.prototype.componentDidMount = function () {\n invariant$1(!!google.maps.visualization, 'Did you include prop libraries={[\"visualization\"]} to <LoadScript />? %s', google.maps.visualization);\n invariant$1(!!this.props.data, 'data property is required in HeatmapLayer %s', this.props.data);\n var heatmapLayer = new google.maps.visualization.HeatmapLayer(__assign(__assign({}, (this.props.options || {})), { data: this.props.data, map: this.context }));\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$4,\n eventMap: eventMap$4,\n prevProps: {},\n nextProps: this.props,\n instance: heatmapLayer,\n });\n this.setState(function setHeatmapLayer() {\n return {\n heatmapLayer: heatmapLayer,\n };\n }, this.setHeatmapLayerCallback);\n };\n HeatmapLayer.prototype.componentDidUpdate = function (prevProps) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$4,\n eventMap: eventMap$4,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.heatmapLayer,\n });\n };\n HeatmapLayer.prototype.componentWillUnmount = function () {\n if (this.state.heatmapLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.heatmapLayer);\n }\n unregisterEvents(this.registeredEvents);\n this.state.heatmapLayer.setMap(null);\n }\n };\n HeatmapLayer.prototype.render = function () {\n return null;\n };\n HeatmapLayer.contextType = MapContext;\n return HeatmapLayer;\n}(PureComponent));\n\nvar eventMap$3 = {\n onCloseClick: 'closeclick',\n onPanoChanged: 'pano_changed',\n onPositionChanged: 'position_changed',\n onPovChanged: 'pov_changed',\n onResize: 'resize',\n onStatusChanged: 'status_changed',\n onVisibleChanged: 'visible_changed',\n onZoomChanged: 'zoom_changed',\n};\nvar updaterMap$3 = {\n register: function (instance, provider, options) {\n instance.registerPanoProvider(provider, options);\n },\n links: function (instance, links) {\n instance.setLinks(links);\n },\n motionTracking: function (instance, motionTracking) {\n instance.setMotionTracking(motionTracking);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n pano: function (instance, pano) {\n instance.setPano(pano);\n },\n position: function (instance, position) {\n instance.setPosition(position);\n },\n pov: function (instance, pov) {\n instance.setPov(pov);\n },\n visible: function (instance, visible) {\n instance.setVisible(visible);\n },\n zoom: function (instance, zoom) {\n instance.setZoom(zoom);\n },\n};\nvar StreetViewPanorama = /** @class */ (function (_super) {\n __extends(StreetViewPanorama, _super);\n function StreetViewPanorama() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n streetViewPanorama: null,\n };\n _this.setStreetViewPanoramaCallback = function () {\n if (_this.state.streetViewPanorama !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.streetViewPanorama);\n }\n };\n return _this;\n }\n StreetViewPanorama.prototype.componentDidMount = function () {\n var _a, _b;\n var streetViewPanorama = (_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.getStreetView()) !== null && _b !== void 0 ? _b : null;\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$3,\n eventMap: eventMap$3,\n prevProps: {},\n nextProps: this.props,\n instance: streetViewPanorama,\n });\n this.setState(function () {\n return {\n streetViewPanorama: streetViewPanorama,\n };\n }, this.setStreetViewPanoramaCallback);\n };\n StreetViewPanorama.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.streetViewPanorama !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$3,\n eventMap: eventMap$3,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.streetViewPanorama,\n });\n }\n };\n StreetViewPanorama.prototype.componentWillUnmount = function () {\n if (this.state.streetViewPanorama !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.streetViewPanorama);\n }\n unregisterEvents(this.registeredEvents);\n this.state.streetViewPanorama.setVisible(false);\n }\n };\n StreetViewPanorama.prototype.render = function () {\n return null;\n };\n StreetViewPanorama.contextType = MapContext;\n return StreetViewPanorama;\n}(PureComponent));\n\nvar StreetViewService = /** @class */ (function (_super) {\n __extends(StreetViewService, _super);\n function StreetViewService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n streetViewService: null,\n };\n _this.setStreetViewServiceCallback = function () {\n if (_this.state.streetViewService !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.streetViewService);\n }\n };\n return _this;\n }\n StreetViewService.prototype.componentDidMount = function () {\n var streetViewService = new google.maps.StreetViewService();\n this.setState(function setStreetViewService() {\n return {\n streetViewService: streetViewService,\n };\n }, this.setStreetViewServiceCallback);\n };\n StreetViewService.prototype.componentWillUnmount = function () {\n if (this.state.streetViewService !== null && this.props.onUnmount) {\n this.props.onUnmount(this.state.streetViewService);\n }\n };\n StreetViewService.prototype.render = function () {\n return null;\n };\n StreetViewService.contextType = MapContext;\n return StreetViewService;\n}(PureComponent));\n\nvar DirectionsService = /** @class */ (function (_super) {\n __extends(DirectionsService, _super);\n function DirectionsService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n directionsService: null,\n };\n _this.setDirectionsServiceCallback = function () {\n if (_this.state.directionsService !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.directionsService);\n }\n };\n return _this;\n }\n DirectionsService.prototype.componentDidMount = function () {\n invariant$1(!!this.props.options, 'DirectionsService expected options object as parameter, but got %s', this.props.options);\n var directionsService = new google.maps.DirectionsService();\n this.setState(function setDirectionsService() {\n return {\n directionsService: directionsService,\n };\n }, this.setDirectionsServiceCallback);\n };\n DirectionsService.prototype.componentDidUpdate = function () {\n if (this.state.directionsService !== null) {\n this.state.directionsService.route(this.props.options, this.props.callback);\n }\n };\n DirectionsService.prototype.componentWillUnmount = function () {\n if (this.state.directionsService !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.directionsService);\n }\n }\n };\n DirectionsService.prototype.render = function () {\n return null;\n };\n return DirectionsService;\n}(PureComponent));\n\nvar eventMap$2 = {\n onDirectionsChanged: 'directions_changed',\n};\nvar updaterMap$2 = {\n directions: function (instance, directions) {\n instance.setDirections(directions);\n },\n map: function (instance, map) {\n instance.setMap(map);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n panel: function (instance, panel) {\n instance.setPanel(panel);\n },\n routeIndex: function (instance, routeIndex) {\n instance.setRouteIndex(routeIndex);\n },\n};\nvar DirectionsRenderer = /** @class */ (function (_super) {\n __extends(DirectionsRenderer, _super);\n function DirectionsRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.state = {\n directionsRenderer: null,\n };\n _this.setDirectionsRendererCallback = function () {\n if (_this.state.directionsRenderer !== null) {\n _this.state.directionsRenderer.setMap(_this.context);\n if (_this.props.onLoad) {\n _this.props.onLoad(_this.state.directionsRenderer);\n }\n }\n };\n return _this;\n }\n DirectionsRenderer.prototype.componentDidMount = function () {\n var directionsRenderer = new google.maps.DirectionsRenderer(this.props.options);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$2,\n eventMap: eventMap$2,\n prevProps: {},\n nextProps: this.props,\n instance: directionsRenderer,\n });\n this.setState(function setDirectionsRenderer() {\n return {\n directionsRenderer: directionsRenderer,\n };\n }, this.setDirectionsRendererCallback);\n };\n DirectionsRenderer.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.directionsRenderer !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$2,\n eventMap: eventMap$2,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.directionsRenderer,\n });\n }\n };\n DirectionsRenderer.prototype.componentWillUnmount = function () {\n if (this.state.directionsRenderer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.directionsRenderer);\n }\n unregisterEvents(this.registeredEvents);\n if (this.state.directionsRenderer) {\n this.state.directionsRenderer.setMap(null);\n }\n }\n };\n DirectionsRenderer.prototype.render = function () {\n return jsx(Fragment, {});\n };\n DirectionsRenderer.contextType = MapContext;\n return DirectionsRenderer;\n}(PureComponent));\n\nvar DistanceMatrixService = /** @class */ (function (_super) {\n __extends(DistanceMatrixService, _super);\n function DistanceMatrixService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n distanceMatrixService: null,\n };\n _this.setDistanceMatrixServiceCallback = function () {\n if (_this.state.distanceMatrixService !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.distanceMatrixService);\n }\n };\n return _this;\n }\n DistanceMatrixService.prototype.componentDidMount = function () {\n invariant$1(!!this.props.options, 'DistanceMatrixService expected options object as parameter, but go %s', this.props.options);\n var distanceMatrixService = new google.maps.DistanceMatrixService();\n this.setState(function setDistanceMatrixService() {\n return {\n distanceMatrixService: distanceMatrixService,\n };\n }, this.setDistanceMatrixServiceCallback);\n };\n DistanceMatrixService.prototype.componentDidUpdate = function () {\n if (this.state.distanceMatrixService !== null) {\n this.state.distanceMatrixService.getDistanceMatrix(this.props.options, this.props.callback);\n }\n };\n DistanceMatrixService.prototype.componentWillUnmount = function () {\n if (this.state.distanceMatrixService !== null && this.props.onUnmount) {\n this.props.onUnmount(this.state.distanceMatrixService);\n }\n };\n DistanceMatrixService.prototype.render = function () {\n return null;\n };\n return DistanceMatrixService;\n}(PureComponent));\n\nvar eventMap$1 = {\n onPlacesChanged: 'places_changed',\n};\nvar updaterMap$1 = {\n bounds: function (instance, bounds) {\n instance.setBounds(bounds);\n },\n};\nvar StandaloneSearchBox = /** @class */ (function (_super) {\n __extends(StandaloneSearchBox, _super);\n function StandaloneSearchBox() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.containerElement = createRef();\n _this.state = {\n searchBox: null,\n };\n _this.setSearchBoxCallback = function () {\n if (_this.state.searchBox !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.searchBox);\n }\n };\n return _this;\n }\n StandaloneSearchBox.prototype.componentDidMount = function () {\n invariant$1(!!google.maps.places, 'You need to provide libraries={[\"places\"]} prop to <LoadScript /> component %s', google.maps.places);\n if (this.containerElement !== null && this.containerElement.current !== null) {\n var input = this.containerElement.current.querySelector('input');\n if (input !== null) {\n var searchBox_1 = new google.maps.places.SearchBox(input, this.props.options);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$1,\n eventMap: eventMap$1,\n prevProps: {},\n nextProps: this.props,\n instance: searchBox_1,\n });\n this.setState(function setSearchBox() {\n return {\n searchBox: searchBox_1,\n };\n }, this.setSearchBoxCallback);\n }\n }\n };\n StandaloneSearchBox.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.searchBox !== null) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap$1,\n eventMap: eventMap$1,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.searchBox,\n });\n }\n };\n StandaloneSearchBox.prototype.componentWillUnmount = function () {\n if (this.state.searchBox !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.searchBox);\n }\n unregisterEvents(this.registeredEvents);\n }\n };\n StandaloneSearchBox.prototype.render = function () {\n return jsx(\"div\", { ref: this.containerElement, children: Children.only(this.props.children) });\n };\n StandaloneSearchBox.contextType = MapContext;\n return StandaloneSearchBox;\n}(PureComponent));\n\nvar eventMap = {\n onPlaceChanged: 'place_changed',\n};\nvar updaterMap = {\n bounds: function (instance, bounds) {\n instance.setBounds(bounds);\n },\n restrictions: function (instance, restrictions) {\n instance.setComponentRestrictions(restrictions);\n },\n fields: function (instance, fields) {\n instance.setFields(fields);\n },\n options: function (instance, options) {\n instance.setOptions(options);\n },\n types: function (instance, types) {\n instance.setTypes(types);\n },\n};\nvar Autocomplete = /** @class */ (function (_super) {\n __extends(Autocomplete, _super);\n function Autocomplete() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registeredEvents = [];\n _this.containerElement = createRef();\n _this.state = {\n autocomplete: null,\n };\n _this.setAutocompleteCallback = function () {\n if (_this.state.autocomplete !== null && _this.props.onLoad) {\n _this.props.onLoad(_this.state.autocomplete);\n }\n };\n return _this;\n }\n Autocomplete.prototype.componentDidMount = function () {\n var _a;\n invariant$1(!!google.maps.places, 'You need to provide libraries={[\"places\"]} prop to <LoadScript /> component %s', google.maps.places);\n // TODO: why current could be equal null?\n var input = (_a = this.containerElement.current) === null || _a === void 0 ? void 0 : _a.querySelector('input');\n if (input) {\n var autocomplete_1 = new google.maps.places.Autocomplete(input, this.props.options);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap,\n eventMap: eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: autocomplete_1,\n });\n this.setState(function () {\n return {\n autocomplete: autocomplete_1,\n };\n }, this.setAutocompleteCallback);\n }\n };\n Autocomplete.prototype.componentDidUpdate = function (prevProps) {\n unregisterEvents(this.registeredEvents);\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap: updaterMap,\n eventMap: eventMap,\n prevProps: prevProps,\n nextProps: this.props,\n instance: this.state.autocomplete,\n });\n };\n Autocomplete.prototype.componentWillUnmount = function () {\n if (this.state.autocomplete !== null) {\n unregisterEvents(this.registeredEvents);\n }\n };\n Autocomplete.prototype.render = function () {\n return jsx(\"div\", { ref: this.containerElement, className: this.props.className, children: Children.only(this.props.children) });\n };\n Autocomplete.defaultProps = {\n className: ''\n };\n Autocomplete.contextType = MapContext;\n return Autocomplete;\n}(PureComponent));\n\nexport { Autocomplete, BicyclingLayer, BicyclingLayerF, Circle, CircleF, Data, DataF, DirectionsRenderer, DirectionsService, DistanceMatrixService, DrawingManager, DrawingManagerF, FLOAT_PANE, GoogleMap, index_esm as GoogleMapsMarkerClusterer, GoogleMarkerClusterer$1 as GoogleMarkerClusterer, GroundOverlay, GroundOverlayF, HeatmapLayer, HeatmapLayerF, InfoBoxComponent as InfoBox, InfoBoxF, InfoWindow, InfoWindowF, KmlLayer, LoadScript, LoadScriptNext$1 as LoadScriptNext, MAP_PANE, MARKER_LAYER, MapContext, Marker, ClustererComponent as MarkerClusterer, MarkerClustererF, MarkerF, OVERLAY_LAYER, OVERLAY_MOUSE_TARGET, OverlayView, OverlayViewF, Polygon, PolygonF, Polyline, PolylineF, Rectangle, RectangleF, StandaloneSearchBox, StreetViewPanorama, StreetViewService, TrafficLayer, TrafficLayerF, TransitLayer, TransitLayerF, useGoogleMap, useJsApiLoader, useLoadScript };\n//# sourceMappingURL=esm.js.map\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|