From 3750850ed613c94570b766924d31d48c03eb548d Mon Sep 17 00:00:00 2001 From: Tom Winskell <129330818+tomwinskell@users.noreply.github.com> Date: Fri, 7 Feb 2025 16:38:20 -0500 Subject: [PATCH 01/23] Dropdown with list of cities works. --- cities.json | 1115 ++ dropdown.js | 59 + index.html | 45 + latlong.js | 14 + node_modules/.package-lock.json | 37 + node_modules/@popperjs/core/LICENSE.md | 20 + node_modules/@popperjs/core/README.md | 376 + node_modules/@popperjs/core/dist/cjs/enums.js | 65 + .../@popperjs/core/dist/cjs/enums.js.flow | 3 + .../@popperjs/core/dist/cjs/enums.js.map | 1 + .../@popperjs/core/dist/cjs/popper-base.js | 939 ++ .../core/dist/cjs/popper-base.js.flow | 3 + .../core/dist/cjs/popper-base.js.map | 1 + .../@popperjs/core/dist/cjs/popper-lite.js | 1260 ++ .../core/dist/cjs/popper-lite.js.flow | 3 + .../core/dist/cjs/popper-lite.js.map | 1 + .../@popperjs/core/dist/cjs/popper.js | 1819 +++ .../@popperjs/core/dist/cjs/popper.js.flow | 3 + .../@popperjs/core/dist/cjs/popper.js.map | 1 + .../@popperjs/core/dist/esm/createPopper.js | 199 + .../core/dist/esm/dom-utils/contains.js | 23 + .../esm/dom-utils/getBoundingClientRect.js | 41 + .../dist/esm/dom-utils/getClippingRect.js | 70 + .../dist/esm/dom-utils/getCompositeRect.js | 58 + .../dist/esm/dom-utils/getComputedStyle.js | 4 + .../dist/esm/dom-utils/getDocumentElement.js | 6 + .../dist/esm/dom-utils/getDocumentRect.js | 29 + .../esm/dom-utils/getHTMLElementScroll.js | 6 + .../core/dist/esm/dom-utils/getLayoutRect.js | 25 + .../core/dist/esm/dom-utils/getNodeName.js | 3 + .../core/dist/esm/dom-utils/getNodeScroll.js | 11 + .../dist/esm/dom-utils/getOffsetParent.js | 69 + .../core/dist/esm/dom-utils/getParentNode.js | 19 + .../dist/esm/dom-utils/getScrollParent.js | 16 + .../dist/esm/dom-utils/getViewportRect.js | 31 + .../core/dist/esm/dom-utils/getWindow.js | 12 + .../dist/esm/dom-utils/getWindowScroll.js | 10 + .../dist/esm/dom-utils/getWindowScrollBarX.js | 13 + .../core/dist/esm/dom-utils/instanceOf.js | 23 + .../dist/esm/dom-utils/isLayoutViewport.js | 4 + .../core/dist/esm/dom-utils/isScrollParent.js | 10 + .../core/dist/esm/dom-utils/isTableElement.js | 4 + .../dist/esm/dom-utils/listScrollParents.js | 26 + node_modules/@popperjs/core/dist/esm/enums.js | 31 + node_modules/@popperjs/core/dist/esm/index.js | 8 + .../core/dist/esm/modifiers/applyStyles.js | 84 + .../core/dist/esm/modifiers/arrow.js | 90 + .../core/dist/esm/modifiers/computeStyles.js | 169 + .../core/dist/esm/modifiers/eventListeners.js | 49 + .../@popperjs/core/dist/esm/modifiers/flip.js | 147 + .../@popperjs/core/dist/esm/modifiers/hide.js | 61 + .../core/dist/esm/modifiers/index.js | 9 + .../core/dist/esm/modifiers/offset.js | 54 + .../core/dist/esm/modifiers/popperOffsets.js | 25 + .../dist/esm/modifiers/preventOverflow.js | 142 + .../@popperjs/core/dist/esm/popper-base.js | 3 + .../@popperjs/core/dist/esm/popper-lite.js | 11 + .../@popperjs/core/dist/esm/popper.js | 20 + node_modules/@popperjs/core/dist/esm/types.js | 0 .../dist/esm/utils/computeAutoPlacement.js | 43 + .../core/dist/esm/utils/computeOffsets.js | 70 + .../@popperjs/core/dist/esm/utils/debounce.js | 15 + .../core/dist/esm/utils/detectOverflow.js | 65 + .../core/dist/esm/utils/expandToHashMap.js | 6 + .../core/dist/esm/utils/getAltAxis.js | 3 + .../core/dist/esm/utils/getAltLen.js | 3 + .../core/dist/esm/utils/getBasePlacement.js | 4 + .../core/dist/esm/utils/getFreshSideObject.js | 8 + .../esm/utils/getMainAxisFromPlacement.js | 3 + .../dist/esm/utils/getOppositePlacement.js | 11 + .../utils/getOppositeVariationPlacement.js | 9 + .../core/dist/esm/utils/getVariation.js | 3 + .../@popperjs/core/dist/esm/utils/math.js | 3 + .../core/dist/esm/utils/mergeByName.js | 14 + .../core/dist/esm/utils/mergePaddingObject.js | 4 + .../core/dist/esm/utils/orderModifiers.js | 44 + .../core/dist/esm/utils/rectToClientRect.js | 8 + .../@popperjs/core/dist/esm/utils/uniqueBy.js | 11 + .../core/dist/esm/utils/userAgent.js | 11 + .../@popperjs/core/dist/esm/utils/within.js | 8 + node_modules/@popperjs/core/dist/umd/enums.js | 71 + .../@popperjs/core/dist/umd/enums.js.map | 1 + .../@popperjs/core/dist/umd/enums.min.js | 6 + .../@popperjs/core/dist/umd/enums.min.js.flow | 3 + .../@popperjs/core/dist/umd/enums.min.js.map | 1 + .../@popperjs/core/dist/umd/popper-base.js | 945 ++ .../core/dist/umd/popper-base.js.map | 1 + .../core/dist/umd/popper-base.min.js | 6 + .../core/dist/umd/popper-base.min.js.flow | 3 + .../core/dist/umd/popper-base.min.js.map | 1 + .../@popperjs/core/dist/umd/popper-lite.js | 1266 ++ .../core/dist/umd/popper-lite.js.map | 1 + .../core/dist/umd/popper-lite.min.js | 6 + .../core/dist/umd/popper-lite.min.js.flow | 3 + .../core/dist/umd/popper-lite.min.js.map | 1 + .../@popperjs/core/dist/umd/popper.js | 1825 +++ .../@popperjs/core/dist/umd/popper.js.map | 1 + .../@popperjs/core/dist/umd/popper.min.js | 6 + .../core/dist/umd/popper.min.js.flow | 3 + .../@popperjs/core/dist/umd/popper.min.js.map | 1 + node_modules/@popperjs/core/index.d.ts | 1 + .../@popperjs/core/lib/createPopper.d.ts | 9 + .../@popperjs/core/lib/createPopper.js | 199 + .../@popperjs/core/lib/createPopper.js.flow | 218 + .../core/lib/dom-utils/contains.d.ts | 1 + .../@popperjs/core/lib/dom-utils/contains.js | 23 + .../core/lib/dom-utils/contains.js.flow | 25 + .../lib/dom-utils/getBoundingClientRect.d.ts | 2 + .../lib/dom-utils/getBoundingClientRect.js | 41 + .../dom-utils/getBoundingClientRect.js.flow | 52 + .../core/lib/dom-utils/getClippingRect.d.ts | 3 + .../core/lib/dom-utils/getClippingRect.js | 70 + .../lib/dom-utils/getClippingRect.js.flow | 106 + .../core/lib/dom-utils/getCompositeRect.d.ts | 2 + .../core/lib/dom-utils/getCompositeRect.js | 58 + .../lib/dom-utils/getCompositeRect.js.flow | 64 + .../core/lib/dom-utils/getComputedStyle.d.ts | 1 + .../core/lib/dom-utils/getComputedStyle.js | 4 + .../lib/dom-utils/getComputedStyle.js.flow | 8 + .../lib/dom-utils/getDocumentElement.d.ts | 2 + .../core/lib/dom-utils/getDocumentElement.js | 6 + .../lib/dom-utils/getDocumentElement.js.flow | 15 + .../core/lib/dom-utils/getDocumentRect.d.ts | 2 + .../core/lib/dom-utils/getDocumentRect.js | 29 + .../lib/dom-utils/getDocumentRect.js.flow | 37 + .../lib/dom-utils/getHTMLElementScroll.d.ts | 4 + .../lib/dom-utils/getHTMLElementScroll.js | 6 + .../dom-utils/getHTMLElementScroll.js.flow | 8 + .../core/lib/dom-utils/getLayoutRect.d.ts | 2 + .../core/lib/dom-utils/getLayoutRect.js | 25 + .../core/lib/dom-utils/getLayoutRect.js.flow | 29 + .../core/lib/dom-utils/getNodeName.d.ts | 2 + .../core/lib/dom-utils/getNodeName.js | 3 + .../core/lib/dom-utils/getNodeName.js.flow | 6 + .../core/lib/dom-utils/getNodeScroll.d.ts | 5 + .../core/lib/dom-utils/getNodeScroll.js | 11 + .../core/lib/dom-utils/getNodeScroll.js.flow | 14 + .../core/lib/dom-utils/getOffsetParent.d.ts | 1 + .../core/lib/dom-utils/getOffsetParent.js | 69 + .../lib/dom-utils/getOffsetParent.js.flow | 93 + .../core/lib/dom-utils/getParentNode.d.ts | 1 + .../core/lib/dom-utils/getParentNode.js | 19 + .../core/lib/dom-utils/getParentNode.js.flow | 21 + .../core/lib/dom-utils/getScrollParent.d.ts | 1 + .../core/lib/dom-utils/getScrollParent.js | 16 + .../lib/dom-utils/getScrollParent.js.flow | 18 + .../core/lib/dom-utils/getViewportRect.d.ts | 7 + .../core/lib/dom-utils/getViewportRect.js | 31 + .../lib/dom-utils/getViewportRect.js.flow | 39 + .../core/lib/dom-utils/getWindow.d.ts | 1 + .../@popperjs/core/lib/dom-utils/getWindow.js | 12 + .../core/lib/dom-utils/getWindow.js.flow | 16 + .../core/lib/dom-utils/getWindowScroll.d.ts | 5 + .../core/lib/dom-utils/getWindowScroll.js | 10 + .../lib/dom-utils/getWindowScroll.js.flow | 14 + .../lib/dom-utils/getWindowScrollBarX.d.ts | 1 + .../core/lib/dom-utils/getWindowScrollBarX.js | 13 + .../lib/dom-utils/getWindowScrollBarX.js.flow | 18 + .../core/lib/dom-utils/instanceOf.d.ts | 4 + .../core/lib/dom-utils/instanceOf.js | 23 + .../core/lib/dom-utils/instanceOf.js.flow | 29 + .../core/lib/dom-utils/isLayoutViewport.d.ts | 1 + .../core/lib/dom-utils/isLayoutViewport.js | 4 + .../lib/dom-utils/isLayoutViewport.js.flow | 6 + .../core/lib/dom-utils/isScrollParent.d.ts | 1 + .../core/lib/dom-utils/isScrollParent.js | 10 + .../core/lib/dom-utils/isScrollParent.js.flow | 8 + .../core/lib/dom-utils/isTableElement.d.ts | 1 + .../core/lib/dom-utils/isTableElement.js | 4 + .../core/lib/dom-utils/isTableElement.js.flow | 6 + .../core/lib/dom-utils/listScrollParents.d.ts | 2 + .../core/lib/dom-utils/listScrollParents.js | 26 + .../lib/dom-utils/listScrollParents.js.flow | 33 + node_modules/@popperjs/core/lib/enums.d.ts | 34 + node_modules/@popperjs/core/lib/enums.js | 31 + node_modules/@popperjs/core/lib/enums.js.flow | 91 + node_modules/@popperjs/core/lib/index.d.ts | 6 + node_modules/@popperjs/core/lib/index.js | 8 + node_modules/@popperjs/core/lib/index.js.flow | 13 + .../core/lib/modifiers/applyStyles.d.ts | 4 + .../core/lib/modifiers/applyStyles.js | 84 + .../core/lib/modifiers/applyStyles.js.flow | 98 + .../@popperjs/core/lib/modifiers/arrow.d.ts | 13 + .../@popperjs/core/lib/modifiers/arrow.js | 90 + .../core/lib/modifiers/arrow.js.flow | 120 + .../core/lib/modifiers/computeStyles.d.ts | 38 + .../core/lib/modifiers/computeStyles.js | 169 + .../core/lib/modifiers/computeStyles.js.flow | 233 + .../core/lib/modifiers/eventListeners.d.ts | 8 + .../core/lib/modifiers/eventListeners.js | 49 + .../core/lib/modifiers/eventListeners.js.flow | 54 + .../@popperjs/core/lib/modifiers/flip.d.ts | 16 + .../@popperjs/core/lib/modifiers/flip.js | 147 + .../@popperjs/core/lib/modifiers/flip.js.flow | 177 + .../@popperjs/core/lib/modifiers/hide.d.ts | 4 + .../@popperjs/core/lib/modifiers/hide.js | 61 + .../@popperjs/core/lib/modifiers/hide.js.flow | 76 + .../@popperjs/core/lib/modifiers/index.d.ts | 9 + .../@popperjs/core/lib/modifiers/index.js | 9 + .../core/lib/modifiers/index.js.flow | 10 + .../@popperjs/core/lib/modifiers/offset.d.ts | 18 + .../@popperjs/core/lib/modifiers/offset.js | 54 + .../core/lib/modifiers/offset.js.flow | 71 + .../core/lib/modifiers/popperOffsets.d.ts | 4 + .../core/lib/modifiers/popperOffsets.js | 25 + .../core/lib/modifiers/popperOffsets.js.flow | 26 + .../core/lib/modifiers/preventOverflow.d.ts | 30 + .../core/lib/modifiers/preventOverflow.js | 142 + .../lib/modifiers/preventOverflow.js.flow | 220 + .../@popperjs/core/lib/popper-base.d.ts | 3 + .../@popperjs/core/lib/popper-base.js | 3 + .../@popperjs/core/lib/popper-base.js.flow | 7 + .../@popperjs/core/lib/popper-lite.d.ts | 5 + .../@popperjs/core/lib/popper-lite.js | 11 + .../@popperjs/core/lib/popper-lite.js.flow | 21 + node_modules/@popperjs/core/lib/popper.d.ts | 7 + node_modules/@popperjs/core/lib/popper.js | 20 + .../@popperjs/core/lib/popper.js.flow | 35 + node_modules/@popperjs/core/lib/types.d.ts | 167 + node_modules/@popperjs/core/lib/types.js | 0 node_modules/@popperjs/core/lib/types.js.flow | 199 + .../core/lib/utils/computeAutoPlacement.d.ts | 12 + .../core/lib/utils/computeAutoPlacement.js | 43 + .../lib/utils/computeAutoPlacement.js.flow | 73 + .../core/lib/utils/computeOffsets.d.ts | 8 + .../core/lib/utils/computeOffsets.js | 70 + .../core/lib/utils/computeOffsets.js.flow | 82 + .../@popperjs/core/lib/utils/debounce.d.ts | 1 + .../@popperjs/core/lib/utils/debounce.js | 15 + .../@popperjs/core/lib/utils/debounce.js.flow | 17 + .../core/lib/utils/detectOverflow.d.ts | 12 + .../core/lib/utils/detectOverflow.js | 65 + .../core/lib/utils/detectOverflow.js.flow | 112 + .../core/lib/utils/expandToHashMap.d.ts | 3 + .../core/lib/utils/expandToHashMap.js | 6 + .../core/lib/utils/expandToHashMap.js.flow | 11 + .../@popperjs/core/lib/utils/getAltAxis.d.ts | 1 + .../@popperjs/core/lib/utils/getAltAxis.js | 3 + .../core/lib/utils/getAltAxis.js.flow | 5 + .../@popperjs/core/lib/utils/getAltLen.d.ts | 1 + .../@popperjs/core/lib/utils/getAltLen.js | 3 + .../core/lib/utils/getAltLen.js.flow | 5 + .../core/lib/utils/getBasePlacement.d.ts | 2 + .../core/lib/utils/getBasePlacement.js | 4 + .../core/lib/utils/getBasePlacement.js.flow | 8 + .../core/lib/utils/getFreshSideObject.d.ts | 2 + .../core/lib/utils/getFreshSideObject.js | 8 + .../core/lib/utils/getFreshSideObject.js.flow | 11 + .../lib/utils/getMainAxisFromPlacement.d.ts | 2 + .../lib/utils/getMainAxisFromPlacement.js | 3 + .../utils/getMainAxisFromPlacement.js.flow | 8 + .../core/lib/utils/getOppositePlacement.d.ts | 2 + .../core/lib/utils/getOppositePlacement.js | 11 + .../lib/utils/getOppositePlacement.js.flow | 11 + .../utils/getOppositeVariationPlacement.d.ts | 2 + .../utils/getOppositeVariationPlacement.js | 9 + .../getOppositeVariationPlacement.js.flow | 10 + .../core/lib/utils/getVariation.d.ts | 2 + .../@popperjs/core/lib/utils/getVariation.js | 3 + .../core/lib/utils/getVariation.js.flow | 6 + .../@popperjs/core/lib/utils/math.d.ts | 3 + node_modules/@popperjs/core/lib/utils/math.js | 3 + .../@popperjs/core/lib/utils/math.js.flow | 4 + .../@popperjs/core/lib/utils/mergeByName.d.ts | 2 + .../@popperjs/core/lib/utils/mergeByName.js | 14 + .../core/lib/utils/mergeByName.js.flow | 22 + .../core/lib/utils/mergePaddingObject.d.ts | 2 + .../core/lib/utils/mergePaddingObject.js | 4 + .../core/lib/utils/mergePaddingObject.js.flow | 12 + .../core/lib/utils/orderModifiers.d.ts | 2 + .../core/lib/utils/orderModifiers.js | 44 + .../core/lib/utils/orderModifiers.js.flow | 59 + .../core/lib/utils/rectToClientRect.d.ts | 2 + .../core/lib/utils/rectToClientRect.js | 8 + .../core/lib/utils/rectToClientRect.js.flow | 12 + .../@popperjs/core/lib/utils/uniqueBy.d.ts | 1 + .../@popperjs/core/lib/utils/uniqueBy.js | 11 + .../@popperjs/core/lib/utils/uniqueBy.js.flow | 14 + .../@popperjs/core/lib/utils/userAgent.d.ts | 1 + .../@popperjs/core/lib/utils/userAgent.js | 11 + .../core/lib/utils/userAgent.js.flow | 20 + .../@popperjs/core/lib/utils/within.d.ts | 2 + .../@popperjs/core/lib/utils/within.js | 8 + .../@popperjs/core/lib/utils/within.js.flow | 11 + node_modules/@popperjs/core/package.json | 119 + node_modules/bootstrap/LICENSE | 21 + node_modules/bootstrap/README.md | 246 + .../bootstrap/dist/css/bootstrap-grid.css | 4085 ++++++ .../bootstrap/dist/css/bootstrap-grid.css.map | 1 + .../bootstrap/dist/css/bootstrap-grid.min.css | 6 + .../dist/css/bootstrap-grid.min.css.map | 1 + .../bootstrap/dist/css/bootstrap-grid.rtl.css | 4084 ++++++ .../dist/css/bootstrap-grid.rtl.css.map | 1 + .../dist/css/bootstrap-grid.rtl.min.css | 6 + .../dist/css/bootstrap-grid.rtl.min.css.map | 1 + .../bootstrap/dist/css/bootstrap-reboot.css | 597 + .../dist/css/bootstrap-reboot.css.map | 1 + .../dist/css/bootstrap-reboot.min.css | 6 + .../dist/css/bootstrap-reboot.min.css.map | 1 + .../dist/css/bootstrap-reboot.rtl.css | 594 + .../dist/css/bootstrap-reboot.rtl.css.map | 1 + .../dist/css/bootstrap-reboot.rtl.min.css | 6 + .../dist/css/bootstrap-reboot.rtl.min.css.map | 1 + .../dist/css/bootstrap-utilities.css | 5402 +++++++ .../dist/css/bootstrap-utilities.css.map | 1 + .../dist/css/bootstrap-utilities.min.css | 6 + .../dist/css/bootstrap-utilities.min.css.map | 1 + .../dist/css/bootstrap-utilities.rtl.css | 5393 +++++++ .../dist/css/bootstrap-utilities.rtl.css.map | 1 + .../dist/css/bootstrap-utilities.rtl.min.css | 6 + .../css/bootstrap-utilities.rtl.min.css.map | 1 + node_modules/bootstrap/dist/css/bootstrap.css | 12057 ++++++++++++++++ .../bootstrap/dist/css/bootstrap.css.map | 1 + .../bootstrap/dist/css/bootstrap.min.css | 6 + .../bootstrap/dist/css/bootstrap.min.css.map | 1 + .../bootstrap/dist/css/bootstrap.rtl.css | 12030 +++++++++++++++ .../bootstrap/dist/css/bootstrap.rtl.css.map | 1 + .../bootstrap/dist/css/bootstrap.rtl.min.css | 6 + .../dist/css/bootstrap.rtl.min.css.map | 1 + .../bootstrap/dist/js/bootstrap.bundle.js | 6314 ++++++++ .../bootstrap/dist/js/bootstrap.bundle.js.map | 1 + .../bootstrap/dist/js/bootstrap.bundle.min.js | 7 + .../dist/js/bootstrap.bundle.min.js.map | 1 + .../bootstrap/dist/js/bootstrap.esm.js | 4447 ++++++ .../bootstrap/dist/js/bootstrap.esm.js.map | 1 + .../bootstrap/dist/js/bootstrap.esm.min.js | 7 + .../dist/js/bootstrap.esm.min.js.map | 1 + node_modules/bootstrap/dist/js/bootstrap.js | 4494 ++++++ .../bootstrap/dist/js/bootstrap.js.map | 1 + .../bootstrap/dist/js/bootstrap.min.js | 7 + .../bootstrap/dist/js/bootstrap.min.js.map | 1 + node_modules/bootstrap/js/dist/alert.js | 90 + node_modules/bootstrap/js/dist/alert.js.map | 1 + .../bootstrap/js/dist/base-component.js | 84 + .../bootstrap/js/dist/base-component.js.map | 1 + node_modules/bootstrap/js/dist/button.js | 79 + node_modules/bootstrap/js/dist/button.js.map | 1 + node_modules/bootstrap/js/dist/carousel.js | 388 + .../bootstrap/js/dist/carousel.js.map | 1 + node_modules/bootstrap/js/dist/collapse.js | 249 + .../bootstrap/js/dist/collapse.js.map | 1 + node_modules/bootstrap/js/dist/dom/data.js | 63 + .../bootstrap/js/dist/dom/data.js.map | 1 + .../bootstrap/js/dist/dom/event-handler.js | 237 + .../js/dist/dom/event-handler.js.map | 1 + .../bootstrap/js/dist/dom/manipulator.js | 72 + .../bootstrap/js/dist/dom/manipulator.js.map | 1 + .../bootstrap/js/dist/dom/selector-engine.js | 104 + .../js/dist/dom/selector-engine.js.map | 1 + node_modules/bootstrap/js/dist/dropdown.js | 402 + .../bootstrap/js/dist/dropdown.js.map | 1 + node_modules/bootstrap/js/dist/modal.js | 320 + node_modules/bootstrap/js/dist/modal.js.map | 1 + node_modules/bootstrap/js/dist/offcanvas.js | 246 + .../bootstrap/js/dist/offcanvas.js.map | 1 + node_modules/bootstrap/js/dist/popover.js | 96 + node_modules/bootstrap/js/dist/popover.js.map | 1 + node_modules/bootstrap/js/dist/scrollspy.js | 275 + .../bootstrap/js/dist/scrollspy.js.map | 1 + node_modules/bootstrap/js/dist/tab.js | 285 + node_modules/bootstrap/js/dist/tab.js.map | 1 + node_modules/bootstrap/js/dist/toast.js | 199 + node_modules/bootstrap/js/dist/toast.js.map | 1 + node_modules/bootstrap/js/dist/tooltip.js | 546 + node_modules/bootstrap/js/dist/tooltip.js.map | 1 + .../bootstrap/js/dist/util/backdrop.js | 139 + .../bootstrap/js/dist/util/backdrop.js.map | 1 + .../js/dist/util/component-functions.js | 42 + .../js/dist/util/component-functions.js.map | 1 + node_modules/bootstrap/js/dist/util/config.js | 68 + .../bootstrap/js/dist/util/config.js.map | 1 + .../bootstrap/js/dist/util/focustrap.js | 113 + .../bootstrap/js/dist/util/focustrap.js.map | 1 + node_modules/bootstrap/js/dist/util/index.js | 281 + .../bootstrap/js/dist/util/index.js.map | 1 + .../bootstrap/js/dist/util/sanitizer.js | 114 + .../bootstrap/js/dist/util/sanitizer.js.map | 1 + .../bootstrap/js/dist/util/scrollbar.js | 113 + .../bootstrap/js/dist/util/scrollbar.js.map | 1 + node_modules/bootstrap/js/dist/util/swipe.js | 135 + .../bootstrap/js/dist/util/swipe.js.map | 1 + .../js/dist/util/template-factory.js | 151 + .../js/dist/util/template-factory.js.map | 1 + node_modules/bootstrap/js/index.esm.js | 19 + node_modules/bootstrap/js/index.umd.js | 34 + node_modules/bootstrap/js/src/alert.js | 87 + .../bootstrap/js/src/base-component.js | 85 + node_modules/bootstrap/js/src/button.js | 72 + node_modules/bootstrap/js/src/carousel.js | 474 + node_modules/bootstrap/js/src/collapse.js | 297 + node_modules/bootstrap/js/src/dom/data.js | 55 + .../bootstrap/js/src/dom/event-handler.js | 317 + .../bootstrap/js/src/dom/manipulator.js | 71 + .../bootstrap/js/src/dom/selector-engine.js | 126 + node_modules/bootstrap/js/src/dropdown.js | 455 + node_modules/bootstrap/js/src/modal.js | 378 + node_modules/bootstrap/js/src/offcanvas.js | 282 + node_modules/bootstrap/js/src/popover.js | 97 + node_modules/bootstrap/js/src/scrollspy.js | 296 + node_modules/bootstrap/js/src/tab.js | 315 + node_modules/bootstrap/js/src/toast.js | 225 + node_modules/bootstrap/js/src/tooltip.js | 633 + .../bootstrap/js/src/util/backdrop.js | 151 + .../js/src/util/component-functions.js | 35 + node_modules/bootstrap/js/src/util/config.js | 65 + .../bootstrap/js/src/util/focustrap.js | 115 + node_modules/bootstrap/js/src/util/index.js | 306 + .../bootstrap/js/src/util/sanitizer.js | 117 + .../bootstrap/js/src/util/scrollbar.js | 114 + node_modules/bootstrap/js/src/util/swipe.js | 146 + .../bootstrap/js/src/util/template-factory.js | 160 + node_modules/bootstrap/package.json | 184 + node_modules/bootstrap/scss/_accordion.scss | 158 + node_modules/bootstrap/scss/_alert.scss | 68 + node_modules/bootstrap/scss/_badge.scss | 38 + node_modules/bootstrap/scss/_breadcrumb.scss | 40 + .../bootstrap/scss/_button-group.scss | 142 + node_modules/bootstrap/scss/_buttons.scss | 216 + node_modules/bootstrap/scss/_card.scss | 239 + node_modules/bootstrap/scss/_carousel.scss | 236 + node_modules/bootstrap/scss/_close.scss | 63 + node_modules/bootstrap/scss/_containers.scss | 41 + node_modules/bootstrap/scss/_dropdown.scss | 250 + node_modules/bootstrap/scss/_forms.scss | 9 + node_modules/bootstrap/scss/_functions.scss | 302 + node_modules/bootstrap/scss/_grid.scss | 39 + node_modules/bootstrap/scss/_helpers.scss | 12 + node_modules/bootstrap/scss/_images.scss | 42 + node_modules/bootstrap/scss/_list-group.scss | 197 + node_modules/bootstrap/scss/_maps.scss | 174 + node_modules/bootstrap/scss/_mixins.scss | 42 + node_modules/bootstrap/scss/_modal.scss | 236 + node_modules/bootstrap/scss/_nav.scss | 197 + node_modules/bootstrap/scss/_navbar.scss | 289 + node_modules/bootstrap/scss/_offcanvas.scss | 143 + node_modules/bootstrap/scss/_pagination.scss | 109 + .../bootstrap/scss/_placeholders.scss | 51 + node_modules/bootstrap/scss/_popover.scss | 196 + node_modules/bootstrap/scss/_progress.scss | 68 + node_modules/bootstrap/scss/_reboot.scss | 611 + node_modules/bootstrap/scss/_root.scss | 187 + node_modules/bootstrap/scss/_spinners.scss | 85 + node_modules/bootstrap/scss/_tables.scss | 171 + node_modules/bootstrap/scss/_toasts.scss | 73 + node_modules/bootstrap/scss/_tooltip.scss | 119 + node_modules/bootstrap/scss/_transitions.scss | 27 + node_modules/bootstrap/scss/_type.scss | 106 + node_modules/bootstrap/scss/_utilities.scss | 806 ++ .../bootstrap/scss/_variables-dark.scss | 87 + node_modules/bootstrap/scss/_variables.scss | 1751 +++ .../bootstrap/scss/bootstrap-grid.scss | 62 + .../bootstrap/scss/bootstrap-reboot.scss | 10 + .../bootstrap/scss/bootstrap-utilities.scss | 19 + node_modules/bootstrap/scss/bootstrap.scss | 52 + .../scss/forms/_floating-labels.scss | 95 + .../bootstrap/scss/forms/_form-check.scss | 189 + .../bootstrap/scss/forms/_form-control.scss | 214 + .../bootstrap/scss/forms/_form-range.scss | 91 + .../bootstrap/scss/forms/_form-select.scss | 80 + .../bootstrap/scss/forms/_form-text.scss | 11 + .../bootstrap/scss/forms/_input-group.scss | 132 + .../bootstrap/scss/forms/_labels.scss | 36 + .../bootstrap/scss/forms/_validation.scss | 12 + .../bootstrap/scss/helpers/_clearfix.scss | 3 + .../bootstrap/scss/helpers/_color-bg.scss | 7 + .../scss/helpers/_colored-links.scss | 30 + .../bootstrap/scss/helpers/_focus-ring.scss | 5 + .../bootstrap/scss/helpers/_icon-link.scss | 25 + .../bootstrap/scss/helpers/_position.scss | 36 + .../bootstrap/scss/helpers/_ratio.scss | 26 + .../bootstrap/scss/helpers/_stacks.scss | 15 + .../scss/helpers/_stretched-link.scss | 15 + .../scss/helpers/_text-truncation.scss | 7 + .../scss/helpers/_visually-hidden.scss | 8 + node_modules/bootstrap/scss/helpers/_vr.scss | 8 + .../bootstrap/scss/mixins/_alert.scss | 18 + .../bootstrap/scss/mixins/_backdrop.scss | 14 + .../bootstrap/scss/mixins/_banner.scss | 7 + .../bootstrap/scss/mixins/_border-radius.scss | 78 + .../bootstrap/scss/mixins/_box-shadow.scss | 18 + .../bootstrap/scss/mixins/_breakpoints.scss | 127 + .../bootstrap/scss/mixins/_buttons.scss | 70 + .../bootstrap/scss/mixins/_caret.scss | 69 + .../bootstrap/scss/mixins/_clearfix.scss | 9 + .../bootstrap/scss/mixins/_color-mode.scss | 21 + .../bootstrap/scss/mixins/_color-scheme.scss | 7 + .../bootstrap/scss/mixins/_container.scss | 11 + .../bootstrap/scss/mixins/_deprecate.scss | 10 + .../bootstrap/scss/mixins/_forms.scss | 163 + .../bootstrap/scss/mixins/_gradients.scss | 47 + node_modules/bootstrap/scss/mixins/_grid.scss | 151 + .../bootstrap/scss/mixins/_image.scss | 16 + .../bootstrap/scss/mixins/_list-group.scss | 26 + .../bootstrap/scss/mixins/_lists.scss | 7 + .../bootstrap/scss/mixins/_pagination.scss | 10 + .../bootstrap/scss/mixins/_reset-text.scss | 17 + .../bootstrap/scss/mixins/_resize.scss | 6 + .../scss/mixins/_table-variants.scss | 24 + .../bootstrap/scss/mixins/_text-truncate.scss | 8 + .../bootstrap/scss/mixins/_transition.scss | 26 + .../bootstrap/scss/mixins/_utilities.scss | 97 + .../scss/mixins/_visually-hidden.scss | 33 + .../bootstrap/scss/utilities/_api.scss | 47 + node_modules/bootstrap/scss/vendor/_rfs.scss | 348 + package-lock.json | 42 + package.json | 5 + 506 files changed, 98120 insertions(+) create mode 100644 cities.json create mode 100644 dropdown.js create mode 100644 index.html create mode 100644 latlong.js create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@popperjs/core/LICENSE.md create mode 100644 node_modules/@popperjs/core/README.md create mode 100644 node_modules/@popperjs/core/dist/cjs/enums.js create mode 100644 node_modules/@popperjs/core/dist/cjs/enums.js.flow create mode 100644 node_modules/@popperjs/core/dist/cjs/enums.js.map create mode 100644 node_modules/@popperjs/core/dist/cjs/popper-base.js create mode 100644 node_modules/@popperjs/core/dist/cjs/popper-base.js.flow create mode 100644 node_modules/@popperjs/core/dist/cjs/popper-base.js.map create mode 100644 node_modules/@popperjs/core/dist/cjs/popper-lite.js create mode 100644 node_modules/@popperjs/core/dist/cjs/popper-lite.js.flow create mode 100644 node_modules/@popperjs/core/dist/cjs/popper-lite.js.map create mode 100644 node_modules/@popperjs/core/dist/cjs/popper.js create mode 100644 node_modules/@popperjs/core/dist/cjs/popper.js.flow create mode 100644 node_modules/@popperjs/core/dist/cjs/popper.js.map create mode 100644 node_modules/@popperjs/core/dist/esm/createPopper.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/contains.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getBoundingClientRect.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getClippingRect.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getCompositeRect.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getComputedStyle.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getDocumentElement.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getDocumentRect.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getHTMLElementScroll.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getLayoutRect.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getNodeName.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getNodeScroll.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getOffsetParent.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getParentNode.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getScrollParent.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getViewportRect.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getWindow.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getWindowScroll.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/getWindowScrollBarX.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/instanceOf.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/isLayoutViewport.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/isScrollParent.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/isTableElement.js create mode 100644 node_modules/@popperjs/core/dist/esm/dom-utils/listScrollParents.js create mode 100644 node_modules/@popperjs/core/dist/esm/enums.js create mode 100644 node_modules/@popperjs/core/dist/esm/index.js create mode 100644 node_modules/@popperjs/core/dist/esm/modifiers/applyStyles.js create mode 100644 node_modules/@popperjs/core/dist/esm/modifiers/arrow.js create mode 100644 node_modules/@popperjs/core/dist/esm/modifiers/computeStyles.js create mode 100644 node_modules/@popperjs/core/dist/esm/modifiers/eventListeners.js create mode 100644 node_modules/@popperjs/core/dist/esm/modifiers/flip.js create mode 100644 node_modules/@popperjs/core/dist/esm/modifiers/hide.js create mode 100644 node_modules/@popperjs/core/dist/esm/modifiers/index.js create mode 100644 node_modules/@popperjs/core/dist/esm/modifiers/offset.js create mode 100644 node_modules/@popperjs/core/dist/esm/modifiers/popperOffsets.js create mode 100644 node_modules/@popperjs/core/dist/esm/modifiers/preventOverflow.js create mode 100644 node_modules/@popperjs/core/dist/esm/popper-base.js create mode 100644 node_modules/@popperjs/core/dist/esm/popper-lite.js create mode 100644 node_modules/@popperjs/core/dist/esm/popper.js create mode 100644 node_modules/@popperjs/core/dist/esm/types.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/computeAutoPlacement.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/computeOffsets.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/debounce.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/detectOverflow.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/expandToHashMap.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/getAltAxis.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/getAltLen.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/getBasePlacement.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/getFreshSideObject.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/getMainAxisFromPlacement.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/getOppositePlacement.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/getOppositeVariationPlacement.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/getVariation.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/math.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/mergeByName.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/mergePaddingObject.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/orderModifiers.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/rectToClientRect.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/uniqueBy.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/userAgent.js create mode 100644 node_modules/@popperjs/core/dist/esm/utils/within.js create mode 100644 node_modules/@popperjs/core/dist/umd/enums.js create mode 100644 node_modules/@popperjs/core/dist/umd/enums.js.map create mode 100644 node_modules/@popperjs/core/dist/umd/enums.min.js create mode 100644 node_modules/@popperjs/core/dist/umd/enums.min.js.flow create mode 100644 node_modules/@popperjs/core/dist/umd/enums.min.js.map create mode 100644 node_modules/@popperjs/core/dist/umd/popper-base.js create mode 100644 node_modules/@popperjs/core/dist/umd/popper-base.js.map create mode 100644 node_modules/@popperjs/core/dist/umd/popper-base.min.js create mode 100644 node_modules/@popperjs/core/dist/umd/popper-base.min.js.flow create mode 100644 node_modules/@popperjs/core/dist/umd/popper-base.min.js.map create mode 100644 node_modules/@popperjs/core/dist/umd/popper-lite.js create mode 100644 node_modules/@popperjs/core/dist/umd/popper-lite.js.map create mode 100644 node_modules/@popperjs/core/dist/umd/popper-lite.min.js create mode 100644 node_modules/@popperjs/core/dist/umd/popper-lite.min.js.flow create mode 100644 node_modules/@popperjs/core/dist/umd/popper-lite.min.js.map create mode 100644 node_modules/@popperjs/core/dist/umd/popper.js create mode 100644 node_modules/@popperjs/core/dist/umd/popper.js.map create mode 100644 node_modules/@popperjs/core/dist/umd/popper.min.js create mode 100644 node_modules/@popperjs/core/dist/umd/popper.min.js.flow create mode 100644 node_modules/@popperjs/core/dist/umd/popper.min.js.map create mode 100644 node_modules/@popperjs/core/index.d.ts create mode 100644 node_modules/@popperjs/core/lib/createPopper.d.ts create mode 100644 node_modules/@popperjs/core/lib/createPopper.js create mode 100644 node_modules/@popperjs/core/lib/createPopper.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/contains.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/contains.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/contains.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getClippingRect.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getNodeName.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getNodeName.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getNodeName.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getParentNode.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getParentNode.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getParentNode.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getScrollParent.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getViewportRect.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getWindow.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getWindow.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getWindow.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/instanceOf.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/instanceOf.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/instanceOf.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/isScrollParent.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/isTableElement.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/isTableElement.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/isTableElement.js.flow create mode 100644 node_modules/@popperjs/core/lib/dom-utils/listScrollParents.d.ts create mode 100644 node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js create mode 100644 node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js.flow create mode 100644 node_modules/@popperjs/core/lib/enums.d.ts create mode 100644 node_modules/@popperjs/core/lib/enums.js create mode 100644 node_modules/@popperjs/core/lib/enums.js.flow create mode 100644 node_modules/@popperjs/core/lib/index.d.ts create mode 100644 node_modules/@popperjs/core/lib/index.js create mode 100644 node_modules/@popperjs/core/lib/index.js.flow create mode 100644 node_modules/@popperjs/core/lib/modifiers/applyStyles.d.ts create mode 100644 node_modules/@popperjs/core/lib/modifiers/applyStyles.js create mode 100644 node_modules/@popperjs/core/lib/modifiers/applyStyles.js.flow create mode 100644 node_modules/@popperjs/core/lib/modifiers/arrow.d.ts create mode 100644 node_modules/@popperjs/core/lib/modifiers/arrow.js create mode 100644 node_modules/@popperjs/core/lib/modifiers/arrow.js.flow create mode 100644 node_modules/@popperjs/core/lib/modifiers/computeStyles.d.ts create mode 100644 node_modules/@popperjs/core/lib/modifiers/computeStyles.js create mode 100644 node_modules/@popperjs/core/lib/modifiers/computeStyles.js.flow create mode 100644 node_modules/@popperjs/core/lib/modifiers/eventListeners.d.ts create mode 100644 node_modules/@popperjs/core/lib/modifiers/eventListeners.js create mode 100644 node_modules/@popperjs/core/lib/modifiers/eventListeners.js.flow create mode 100644 node_modules/@popperjs/core/lib/modifiers/flip.d.ts create mode 100644 node_modules/@popperjs/core/lib/modifiers/flip.js create mode 100644 node_modules/@popperjs/core/lib/modifiers/flip.js.flow create mode 100644 node_modules/@popperjs/core/lib/modifiers/hide.d.ts create mode 100644 node_modules/@popperjs/core/lib/modifiers/hide.js create mode 100644 node_modules/@popperjs/core/lib/modifiers/hide.js.flow create mode 100644 node_modules/@popperjs/core/lib/modifiers/index.d.ts create mode 100644 node_modules/@popperjs/core/lib/modifiers/index.js create mode 100644 node_modules/@popperjs/core/lib/modifiers/index.js.flow create mode 100644 node_modules/@popperjs/core/lib/modifiers/offset.d.ts create mode 100644 node_modules/@popperjs/core/lib/modifiers/offset.js create mode 100644 node_modules/@popperjs/core/lib/modifiers/offset.js.flow create mode 100644 node_modules/@popperjs/core/lib/modifiers/popperOffsets.d.ts create mode 100644 node_modules/@popperjs/core/lib/modifiers/popperOffsets.js create mode 100644 node_modules/@popperjs/core/lib/modifiers/popperOffsets.js.flow create mode 100644 node_modules/@popperjs/core/lib/modifiers/preventOverflow.d.ts create mode 100644 node_modules/@popperjs/core/lib/modifiers/preventOverflow.js create mode 100644 node_modules/@popperjs/core/lib/modifiers/preventOverflow.js.flow create mode 100644 node_modules/@popperjs/core/lib/popper-base.d.ts create mode 100644 node_modules/@popperjs/core/lib/popper-base.js create mode 100644 node_modules/@popperjs/core/lib/popper-base.js.flow create mode 100644 node_modules/@popperjs/core/lib/popper-lite.d.ts create mode 100644 node_modules/@popperjs/core/lib/popper-lite.js create mode 100644 node_modules/@popperjs/core/lib/popper-lite.js.flow create mode 100644 node_modules/@popperjs/core/lib/popper.d.ts create mode 100644 node_modules/@popperjs/core/lib/popper.js create mode 100644 node_modules/@popperjs/core/lib/popper.js.flow create mode 100644 node_modules/@popperjs/core/lib/types.d.ts create mode 100644 node_modules/@popperjs/core/lib/types.js create mode 100644 node_modules/@popperjs/core/lib/types.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/computeAutoPlacement.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js create mode 100644 node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/computeOffsets.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/computeOffsets.js create mode 100644 node_modules/@popperjs/core/lib/utils/computeOffsets.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/debounce.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/debounce.js create mode 100644 node_modules/@popperjs/core/lib/utils/debounce.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/detectOverflow.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/detectOverflow.js create mode 100644 node_modules/@popperjs/core/lib/utils/detectOverflow.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/expandToHashMap.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/expandToHashMap.js create mode 100644 node_modules/@popperjs/core/lib/utils/expandToHashMap.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/getAltAxis.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/getAltAxis.js create mode 100644 node_modules/@popperjs/core/lib/utils/getAltAxis.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/getAltLen.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/getAltLen.js create mode 100644 node_modules/@popperjs/core/lib/utils/getAltLen.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/getBasePlacement.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/getBasePlacement.js create mode 100644 node_modules/@popperjs/core/lib/utils/getBasePlacement.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/getFreshSideObject.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/getFreshSideObject.js create mode 100644 node_modules/@popperjs/core/lib/utils/getFreshSideObject.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js create mode 100644 node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/getOppositePlacement.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/getOppositePlacement.js create mode 100644 node_modules/@popperjs/core/lib/utils/getOppositePlacement.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js create mode 100644 node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/getVariation.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/getVariation.js create mode 100644 node_modules/@popperjs/core/lib/utils/getVariation.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/math.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/math.js create mode 100644 node_modules/@popperjs/core/lib/utils/math.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/mergeByName.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/mergeByName.js create mode 100644 node_modules/@popperjs/core/lib/utils/mergeByName.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/mergePaddingObject.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/mergePaddingObject.js create mode 100644 node_modules/@popperjs/core/lib/utils/mergePaddingObject.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/orderModifiers.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/orderModifiers.js create mode 100644 node_modules/@popperjs/core/lib/utils/orderModifiers.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/rectToClientRect.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/rectToClientRect.js create mode 100644 node_modules/@popperjs/core/lib/utils/rectToClientRect.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/uniqueBy.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/uniqueBy.js create mode 100644 node_modules/@popperjs/core/lib/utils/uniqueBy.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/userAgent.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/userAgent.js create mode 100644 node_modules/@popperjs/core/lib/utils/userAgent.js.flow create mode 100644 node_modules/@popperjs/core/lib/utils/within.d.ts create mode 100644 node_modules/@popperjs/core/lib/utils/within.js create mode 100644 node_modules/@popperjs/core/lib/utils/within.js.flow create mode 100644 node_modules/@popperjs/core/package.json create mode 100644 node_modules/bootstrap/LICENSE create mode 100644 node_modules/bootstrap/README.md create mode 100644 node_modules/bootstrap/dist/css/bootstrap-grid.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap-grid.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap-grid.min.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap-grid.min.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap-grid.rtl.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap-grid.rtl.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap-grid.rtl.min.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap-reboot.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap-reboot.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap-reboot.min.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap-reboot.min.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap-reboot.rtl.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap-reboot.rtl.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap-reboot.rtl.min.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap-utilities.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap-utilities.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap-utilities.min.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap-utilities.min.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap-utilities.rtl.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap-utilities.rtl.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap-utilities.rtl.min.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap.min.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap.min.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap.rtl.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap.rtl.css.map create mode 100644 node_modules/bootstrap/dist/css/bootstrap.rtl.min.css create mode 100644 node_modules/bootstrap/dist/css/bootstrap.rtl.min.css.map create mode 100644 node_modules/bootstrap/dist/js/bootstrap.bundle.js create mode 100644 node_modules/bootstrap/dist/js/bootstrap.bundle.js.map create mode 100644 node_modules/bootstrap/dist/js/bootstrap.bundle.min.js create mode 100644 node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map create mode 100644 node_modules/bootstrap/dist/js/bootstrap.esm.js create mode 100644 node_modules/bootstrap/dist/js/bootstrap.esm.js.map create mode 100644 node_modules/bootstrap/dist/js/bootstrap.esm.min.js create mode 100644 node_modules/bootstrap/dist/js/bootstrap.esm.min.js.map create mode 100644 node_modules/bootstrap/dist/js/bootstrap.js create mode 100644 node_modules/bootstrap/dist/js/bootstrap.js.map create mode 100644 node_modules/bootstrap/dist/js/bootstrap.min.js create mode 100644 node_modules/bootstrap/dist/js/bootstrap.min.js.map create mode 100644 node_modules/bootstrap/js/dist/alert.js create mode 100644 node_modules/bootstrap/js/dist/alert.js.map create mode 100644 node_modules/bootstrap/js/dist/base-component.js create mode 100644 node_modules/bootstrap/js/dist/base-component.js.map create mode 100644 node_modules/bootstrap/js/dist/button.js create mode 100644 node_modules/bootstrap/js/dist/button.js.map create mode 100644 node_modules/bootstrap/js/dist/carousel.js create mode 100644 node_modules/bootstrap/js/dist/carousel.js.map create mode 100644 node_modules/bootstrap/js/dist/collapse.js create mode 100644 node_modules/bootstrap/js/dist/collapse.js.map create mode 100644 node_modules/bootstrap/js/dist/dom/data.js create mode 100644 node_modules/bootstrap/js/dist/dom/data.js.map create mode 100644 node_modules/bootstrap/js/dist/dom/event-handler.js create mode 100644 node_modules/bootstrap/js/dist/dom/event-handler.js.map create mode 100644 node_modules/bootstrap/js/dist/dom/manipulator.js create mode 100644 node_modules/bootstrap/js/dist/dom/manipulator.js.map create mode 100644 node_modules/bootstrap/js/dist/dom/selector-engine.js create mode 100644 node_modules/bootstrap/js/dist/dom/selector-engine.js.map create mode 100644 node_modules/bootstrap/js/dist/dropdown.js create mode 100644 node_modules/bootstrap/js/dist/dropdown.js.map create mode 100644 node_modules/bootstrap/js/dist/modal.js create mode 100644 node_modules/bootstrap/js/dist/modal.js.map create mode 100644 node_modules/bootstrap/js/dist/offcanvas.js create mode 100644 node_modules/bootstrap/js/dist/offcanvas.js.map create mode 100644 node_modules/bootstrap/js/dist/popover.js create mode 100644 node_modules/bootstrap/js/dist/popover.js.map create mode 100644 node_modules/bootstrap/js/dist/scrollspy.js create mode 100644 node_modules/bootstrap/js/dist/scrollspy.js.map create mode 100644 node_modules/bootstrap/js/dist/tab.js create mode 100644 node_modules/bootstrap/js/dist/tab.js.map create mode 100644 node_modules/bootstrap/js/dist/toast.js create mode 100644 node_modules/bootstrap/js/dist/toast.js.map create mode 100644 node_modules/bootstrap/js/dist/tooltip.js create mode 100644 node_modules/bootstrap/js/dist/tooltip.js.map create mode 100644 node_modules/bootstrap/js/dist/util/backdrop.js create mode 100644 node_modules/bootstrap/js/dist/util/backdrop.js.map create mode 100644 node_modules/bootstrap/js/dist/util/component-functions.js create mode 100644 node_modules/bootstrap/js/dist/util/component-functions.js.map create mode 100644 node_modules/bootstrap/js/dist/util/config.js create mode 100644 node_modules/bootstrap/js/dist/util/config.js.map create mode 100644 node_modules/bootstrap/js/dist/util/focustrap.js create mode 100644 node_modules/bootstrap/js/dist/util/focustrap.js.map create mode 100644 node_modules/bootstrap/js/dist/util/index.js create mode 100644 node_modules/bootstrap/js/dist/util/index.js.map create mode 100644 node_modules/bootstrap/js/dist/util/sanitizer.js create mode 100644 node_modules/bootstrap/js/dist/util/sanitizer.js.map create mode 100644 node_modules/bootstrap/js/dist/util/scrollbar.js create mode 100644 node_modules/bootstrap/js/dist/util/scrollbar.js.map create mode 100644 node_modules/bootstrap/js/dist/util/swipe.js create mode 100644 node_modules/bootstrap/js/dist/util/swipe.js.map create mode 100644 node_modules/bootstrap/js/dist/util/template-factory.js create mode 100644 node_modules/bootstrap/js/dist/util/template-factory.js.map create mode 100644 node_modules/bootstrap/js/index.esm.js create mode 100644 node_modules/bootstrap/js/index.umd.js create mode 100644 node_modules/bootstrap/js/src/alert.js create mode 100644 node_modules/bootstrap/js/src/base-component.js create mode 100644 node_modules/bootstrap/js/src/button.js create mode 100644 node_modules/bootstrap/js/src/carousel.js create mode 100644 node_modules/bootstrap/js/src/collapse.js create mode 100644 node_modules/bootstrap/js/src/dom/data.js create mode 100644 node_modules/bootstrap/js/src/dom/event-handler.js create mode 100644 node_modules/bootstrap/js/src/dom/manipulator.js create mode 100644 node_modules/bootstrap/js/src/dom/selector-engine.js create mode 100644 node_modules/bootstrap/js/src/dropdown.js create mode 100644 node_modules/bootstrap/js/src/modal.js create mode 100644 node_modules/bootstrap/js/src/offcanvas.js create mode 100644 node_modules/bootstrap/js/src/popover.js create mode 100644 node_modules/bootstrap/js/src/scrollspy.js create mode 100644 node_modules/bootstrap/js/src/tab.js create mode 100644 node_modules/bootstrap/js/src/toast.js create mode 100644 node_modules/bootstrap/js/src/tooltip.js create mode 100644 node_modules/bootstrap/js/src/util/backdrop.js create mode 100644 node_modules/bootstrap/js/src/util/component-functions.js create mode 100644 node_modules/bootstrap/js/src/util/config.js create mode 100644 node_modules/bootstrap/js/src/util/focustrap.js create mode 100644 node_modules/bootstrap/js/src/util/index.js create mode 100644 node_modules/bootstrap/js/src/util/sanitizer.js create mode 100644 node_modules/bootstrap/js/src/util/scrollbar.js create mode 100644 node_modules/bootstrap/js/src/util/swipe.js create mode 100644 node_modules/bootstrap/js/src/util/template-factory.js create mode 100644 node_modules/bootstrap/package.json create mode 100644 node_modules/bootstrap/scss/_accordion.scss create mode 100644 node_modules/bootstrap/scss/_alert.scss create mode 100644 node_modules/bootstrap/scss/_badge.scss create mode 100644 node_modules/bootstrap/scss/_breadcrumb.scss create mode 100644 node_modules/bootstrap/scss/_button-group.scss create mode 100644 node_modules/bootstrap/scss/_buttons.scss create mode 100644 node_modules/bootstrap/scss/_card.scss create mode 100644 node_modules/bootstrap/scss/_carousel.scss create mode 100644 node_modules/bootstrap/scss/_close.scss create mode 100644 node_modules/bootstrap/scss/_containers.scss create mode 100644 node_modules/bootstrap/scss/_dropdown.scss create mode 100644 node_modules/bootstrap/scss/_forms.scss create mode 100644 node_modules/bootstrap/scss/_functions.scss create mode 100644 node_modules/bootstrap/scss/_grid.scss create mode 100644 node_modules/bootstrap/scss/_helpers.scss create mode 100644 node_modules/bootstrap/scss/_images.scss create mode 100644 node_modules/bootstrap/scss/_list-group.scss create mode 100644 node_modules/bootstrap/scss/_maps.scss create mode 100644 node_modules/bootstrap/scss/_mixins.scss create mode 100644 node_modules/bootstrap/scss/_modal.scss create mode 100644 node_modules/bootstrap/scss/_nav.scss create mode 100644 node_modules/bootstrap/scss/_navbar.scss create mode 100644 node_modules/bootstrap/scss/_offcanvas.scss create mode 100644 node_modules/bootstrap/scss/_pagination.scss create mode 100644 node_modules/bootstrap/scss/_placeholders.scss create mode 100644 node_modules/bootstrap/scss/_popover.scss create mode 100644 node_modules/bootstrap/scss/_progress.scss create mode 100644 node_modules/bootstrap/scss/_reboot.scss create mode 100644 node_modules/bootstrap/scss/_root.scss create mode 100644 node_modules/bootstrap/scss/_spinners.scss create mode 100644 node_modules/bootstrap/scss/_tables.scss create mode 100644 node_modules/bootstrap/scss/_toasts.scss create mode 100644 node_modules/bootstrap/scss/_tooltip.scss create mode 100644 node_modules/bootstrap/scss/_transitions.scss create mode 100644 node_modules/bootstrap/scss/_type.scss create mode 100644 node_modules/bootstrap/scss/_utilities.scss create mode 100644 node_modules/bootstrap/scss/_variables-dark.scss create mode 100644 node_modules/bootstrap/scss/_variables.scss create mode 100644 node_modules/bootstrap/scss/bootstrap-grid.scss create mode 100644 node_modules/bootstrap/scss/bootstrap-reboot.scss create mode 100644 node_modules/bootstrap/scss/bootstrap-utilities.scss create mode 100644 node_modules/bootstrap/scss/bootstrap.scss create mode 100644 node_modules/bootstrap/scss/forms/_floating-labels.scss create mode 100644 node_modules/bootstrap/scss/forms/_form-check.scss create mode 100644 node_modules/bootstrap/scss/forms/_form-control.scss create mode 100644 node_modules/bootstrap/scss/forms/_form-range.scss create mode 100644 node_modules/bootstrap/scss/forms/_form-select.scss create mode 100644 node_modules/bootstrap/scss/forms/_form-text.scss create mode 100644 node_modules/bootstrap/scss/forms/_input-group.scss create mode 100644 node_modules/bootstrap/scss/forms/_labels.scss create mode 100644 node_modules/bootstrap/scss/forms/_validation.scss create mode 100644 node_modules/bootstrap/scss/helpers/_clearfix.scss create mode 100644 node_modules/bootstrap/scss/helpers/_color-bg.scss create mode 100644 node_modules/bootstrap/scss/helpers/_colored-links.scss create mode 100644 node_modules/bootstrap/scss/helpers/_focus-ring.scss create mode 100644 node_modules/bootstrap/scss/helpers/_icon-link.scss create mode 100644 node_modules/bootstrap/scss/helpers/_position.scss create mode 100644 node_modules/bootstrap/scss/helpers/_ratio.scss create mode 100644 node_modules/bootstrap/scss/helpers/_stacks.scss create mode 100644 node_modules/bootstrap/scss/helpers/_stretched-link.scss create mode 100644 node_modules/bootstrap/scss/helpers/_text-truncation.scss create mode 100644 node_modules/bootstrap/scss/helpers/_visually-hidden.scss create mode 100644 node_modules/bootstrap/scss/helpers/_vr.scss create mode 100644 node_modules/bootstrap/scss/mixins/_alert.scss create mode 100644 node_modules/bootstrap/scss/mixins/_backdrop.scss create mode 100644 node_modules/bootstrap/scss/mixins/_banner.scss create mode 100644 node_modules/bootstrap/scss/mixins/_border-radius.scss create mode 100644 node_modules/bootstrap/scss/mixins/_box-shadow.scss create mode 100644 node_modules/bootstrap/scss/mixins/_breakpoints.scss create mode 100644 node_modules/bootstrap/scss/mixins/_buttons.scss create mode 100644 node_modules/bootstrap/scss/mixins/_caret.scss create mode 100644 node_modules/bootstrap/scss/mixins/_clearfix.scss create mode 100644 node_modules/bootstrap/scss/mixins/_color-mode.scss create mode 100644 node_modules/bootstrap/scss/mixins/_color-scheme.scss create mode 100644 node_modules/bootstrap/scss/mixins/_container.scss create mode 100644 node_modules/bootstrap/scss/mixins/_deprecate.scss create mode 100644 node_modules/bootstrap/scss/mixins/_forms.scss create mode 100644 node_modules/bootstrap/scss/mixins/_gradients.scss create mode 100644 node_modules/bootstrap/scss/mixins/_grid.scss create mode 100644 node_modules/bootstrap/scss/mixins/_image.scss create mode 100644 node_modules/bootstrap/scss/mixins/_list-group.scss create mode 100644 node_modules/bootstrap/scss/mixins/_lists.scss create mode 100644 node_modules/bootstrap/scss/mixins/_pagination.scss create mode 100644 node_modules/bootstrap/scss/mixins/_reset-text.scss create mode 100644 node_modules/bootstrap/scss/mixins/_resize.scss create mode 100644 node_modules/bootstrap/scss/mixins/_table-variants.scss create mode 100644 node_modules/bootstrap/scss/mixins/_text-truncate.scss create mode 100644 node_modules/bootstrap/scss/mixins/_transition.scss create mode 100644 node_modules/bootstrap/scss/mixins/_utilities.scss create mode 100644 node_modules/bootstrap/scss/mixins/_visually-hidden.scss create mode 100644 node_modules/bootstrap/scss/utilities/_api.scss create mode 100644 node_modules/bootstrap/scss/vendor/_rfs.scss create mode 100644 package-lock.json create mode 100644 package.json diff --git a/cities.json b/cities.json new file mode 100644 index 00000000..2a5633b2 --- /dev/null +++ b/cities.json @@ -0,0 +1,1115 @@ +[ + { + "name": "Abidjan" + }, + { + "name": "Abu Dhabi" + }, + { + "name": "Abuja" + }, + { + "name": "Accra" + }, + { + "name": "Addis Ababa" + }, + { + "name": "Ahmedabad" + }, + { + "name": "Aleppo" + }, + { + "name": "Alexandria" + }, + { + "name": "Algiers" + }, + { + "name": "Almaty" + }, + { + "name": "Amman" + }, + { + "name": "Amsterdam" + }, + { + "name": "Anchorage" + }, + { + "name": "Andorra la Vella" + }, + { + "name": "Ankara" + }, + { + "name": "Antananarivo" + }, + { + "name": "Apia" + }, + { + "name": "Arnold" + }, + { + "name": "Ashgabat" + }, + { + "name": "Asmara" + }, + { + "name": "Asuncion" + }, + { + "name": "Athens" + }, + { + "name": "Auckland" + }, + { + "name": "Avarua" + }, + { + "name": "Baghdad" + }, + { + "name": "Baku" + }, + { + "name": "Bamako" + }, + { + "name": "Banda Aceh" + }, + { + "name": "Bandar Seri Begawan" + }, + { + "name": "Bandung" + }, + { + "name": "Bangkok" + }, + { + "name": "Bangui" + }, + { + "name": "Banjul" + }, + { + "name": "Barcelona" + }, + { + "name": "Barranquilla" + }, + { + "name": "Basrah" + }, + { + "name": "Basse-Terre" + }, + { + "name": "Basseterre" + }, + { + "name": "Beijing" + }, + { + "name": "Beirut" + }, + { + "name": "Bekasi" + }, + { + "name": "Belem" + }, + { + "name": "Belgrade" + }, + { + "name": "Belmopan" + }, + { + "name": "Belo Horizonte" + }, + { + "name": "Bengaluru" + }, + { + "name": "Berlin" + }, + { + "name": "Bern" + }, + { + "name": "Bishkek" + }, + { + "name": "Bissau" + }, + { + "name": "Bogota" + }, + { + "name": "Brasilia" + }, + { + "name": "Bratislava" + }, + { + "name": "Brazzaville" + }, + { + "name": "Bridgetown" + }, + { + "name": "Brisbane" + }, + { + "name": "Brussels" + }, + { + "name": "Bucharest" + }, + { + "name": "Budapest" + }, + { + "name": "Buenos Aires" + }, + { + "name": "Bujumbura" + }, + { + "name": "Bursa" + }, + { + "name": "Busan" + }, + { + "name": "Cairo" + }, + { + "name": "Cali" + }, + { + "name": "Caloocan" + }, + { + "name": "Camayenne" + }, + { + "name": "Canberra" + }, + { + "name": "Cape Town" + }, + { + "name": "Caracas" + }, + { + "name": "Casablanca" + }, + { + "name": "Castries" + }, + { + "name": "Cayenne" + }, + { + "name": "Charlotte Amalie" + }, + { + "name": "Chengdu" + }, + { + "name": "Chennai" + }, + { + "name": "Chicago" + }, + { + "name": "Chisinau" + }, + { + "name": "Chittagong" + }, + { + "name": "Chongqing" + }, + { + "name": "Colombo" + }, + { + "name": "Conakry" + }, + { + "name": "Copenhagen" + }, + { + "name": "Cordoba" + }, + { + "name": "Curitiba" + }, + { + "name": "Daegu" + }, + { + "name": "Daejeon" + }, + { + "name": "Dakar" + }, + { + "name": "Dallas" + }, + { + "name": "Damascus" + }, + { + "name": "Dar es Salaam" + }, + { + "name": "Delhi" + }, + { + "name": "Denver" + }, + { + "name": "Dhaka" + }, + { + "name": "Dili" + }, + { + "name": "Djibouti" + }, + { + "name": "Dodoma" + }, + { + "name": "Doha" + }, + { + "name": "Dongguan" + }, + { + "name": "Douala" + }, + { + "name": "Douglas" + }, + { + "name": "Dubai" + }, + { + "name": "Dublin" + }, + { + "name": "Durban" + }, + { + "name": "Dushanbe" + }, + { + "name": "Faisalabad" + }, + { + "name": "Fort-de-France" + }, + { + "name": "Fortaleza" + }, + { + "name": "Freetown" + }, + { + "name": "Fukuoka" + }, + { + "name": "Funafuti" + }, + { + "name": "Gaborone" + }, + { + "name": "George Town" + }, + { + "name": "Georgetown" + }, + { + "name": "Gibraltar" + }, + { + "name": "Gitega" + }, + { + "name": "Giza" + }, + { + "name": "Guadalajara" + }, + { + "name": "Guangzhou" + }, + { + "name": "Guatemala City" + }, + { + "name": "Guayaquil" + }, + { + "name": "Gujranwala" + }, + { + "name": "Gustavia" + }, + { + "name": "Gwangju" + }, + { + "name": "Hamburg" + }, + { + "name": "Hanoi" + }, + { + "name": "Harare" + }, + { + "name": "Havana" + }, + { + "name": "Helsinki" + }, + { + "name": "Ho Chi Minh City" + }, + { + "name": "Hong Kong" + }, + { + "name": "Honiara" + }, + { + "name": "Honolulu" + }, + { + "name": "Houston" + }, + { + "name": "Hyderabad" + }, + { + "name": "Hyderabad" + }, + { + "name": "Ibadan" + }, + { + "name": "Incheon" + }, + { + "name": "Isfahan" + }, + { + "name": "Islamabad" + }, + { + "name": "Istanbul" + }, + { + "name": "Izmir" + }, + { + "name": "Jaipur" + }, + { + "name": "Jakarta" + }, + { + "name": "Jeddah" + }, + { + "name": "Jerusalem" + }, + { + "name": "Johannesburg" + }, + { + "name": "Juarez" + }, + { + "name": "Juba" + }, + { + "name": "Kabul" + }, + { + "name": "Kaduna" + }, + { + "name": "Kampala" + }, + { + "name": "Kano" + }, + { + "name": "Kanpur" + }, + { + "name": "Kaohsiung" + }, + { + "name": "Karachi" + }, + { + "name": "Karaj" + }, + { + "name": "Kathmandu" + }, + { + "name": "Kawasaki" + }, + { + "name": "Kharkiv" + }, + { + "name": "Khartoum" + }, + { + "name": "Khulna" + }, + { + "name": "Kigali" + }, + { + "name": "Kingsburg" + }, + { + "name": "Kingston" + }, + { + "name": "Kingstown" + }, + { + "name": "Kinshasa" + }, + { + "name": "Kobe" + }, + { + "name": "Kolkata" + }, + { + "name": "Kota Bharu" + }, + { + "name": "Kowloon" + }, + { + "name": "Kuala Lumpur" + }, + { + "name": "Kumasi" + }, + { + "name": "Kuwait" + }, + { + "name": "Kyiv" + }, + { + "name": "Kyoto" + }, + { + "name": "La Paz" + }, + { + "name": "Lagos" + }, + { + "name": "Lahore" + }, + { + "name": "Libreville" + }, + { + "name": "Lilongwe" + }, + { + "name": "Lima" + }, + { + "name": "Lisbon" + }, + { + "name": "Ljubljana" + }, + { + "name": "Lome" + }, + { + "name": "London" + }, + { + "name": "Los Angeles" + }, + { + "name": "Luanda" + }, + { + "name": "Lubumbashi" + }, + { + "name": "Lusaka" + }, + { + "name": "Luxembourg" + }, + { + "name": "Macau" + }, + { + "name": "Madrid" + }, + { + "name": "Majuro" + }, + { + "name": "Makassar" + }, + { + "name": "Malabo" + }, + { + "name": "Male" + }, + { + "name": "Mamoudzou" + }, + { + "name": "Managua" + }, + { + "name": "Manama" + }, + { + "name": "Manaus" + }, + { + "name": "Manila" + }, + { + "name": "Maputo" + }, + { + "name": "Maracaibo" + }, + { + "name": "Maracay" + }, + { + "name": "Mariehamn" + }, + { + "name": "Marigot" + }, + { + "name": "Maseru" + }, + { + "name": "Mashhad" + }, + { + "name": "Mbabane" + }, + { + "name": "Mecca" + }, + { + "name": "Medan" + }, + { + "name": "Medellin" + }, + { + "name": "Medina" + }, + { + "name": "Melbourne" + }, + { + "name": "Mexico City" + }, + { + "name": "Miami" + }, + { + "name": "Minsk" + }, + { + "name": "Mogadishu" + }, + { + "name": "Monaco" + }, + { + "name": "Monrovia" + }, + { + "name": "Montevideo" + }, + { + "name": "Montreal" + }, + { + "name": "Moroni" + }, + { + "name": "Moscow" + }, + { + "name": "Mosul" + }, + { + "name": "Multan" + }, + { + "name": "Mumbai" + }, + { + "name": "Muscat" + }, + { + "name": "N'Djamena" + }, + { + "name": "Nagoya" + }, + { + "name": "Nairobi" + }, + { + "name": "Nanchong" + }, + { + "name": "Nanjing" + }, + { + "name": "Nassau" + }, + { + "name": "Nay Pyi Taw" + }, + { + "name": "New York" + }, + { + "name": "Niamey" + }, + { + "name": "Nicosia" + }, + { + "name": "Nouakchott" + }, + { + "name": "Noumea" + }, + { + "name": "Novosibirsk" + }, + { + "name": "Nuku'alofa" + }, + { + "name": "Nur-Sultan" + }, + { + "name": "Nuuk" + }, + { + "name": "Oranjestad" + }, + { + "name": "Osaka" + }, + { + "name": "Oslo" + }, + { + "name": "Ottawa" + }, + { + "name": "Ouagadougou" + }, + { + "name": "Pago Pago" + }, + { + "name": "Palembang" + }, + { + "name": "Palo Alto" + }, + { + "name": "Panama" + }, + { + "name": "Papeete" + }, + { + "name": "Paramaribo" + }, + { + "name": "Paris" + }, + { + "name": "Perth" + }, + { + "name": "Philadelphia" + }, + { + "name": "Phnom Penh" + }, + { + "name": "Phoenix" + }, + { + "name": "Podgorica" + }, + { + "name": "Port Louis" + }, + { + "name": "Port Moresby" + }, + { + "name": "Port of Spain" + }, + { + "name": "Port-Vila" + }, + { + "name": "Port-au-Prince" + }, + { + "name": "Porto Alegre" + }, + { + "name": "Porto-Novo" + }, + { + "name": "Prague" + }, + { + "name": "Praia" + }, + { + "name": "Pretoria" + }, + { + "name": "Pristina" + }, + { + "name": "Puebla" + }, + { + "name": "Pune" + }, + { + "name": "Pyongyang" + }, + { + "name": "Quezon City" + }, + { + "name": "Quito" + }, + { + "name": "Rabat" + }, + { + "name": "Rawalpindi" + }, + { + "name": "Recife" + }, + { + "name": "Reykjavik" + }, + { + "name": "Riga" + }, + { + "name": "Rio de Janeiro" + }, + { + "name": "Riyadh" + }, + { + "name": "Road Town" + }, + { + "name": "Rome" + }, + { + "name": "Roseau" + }, + { + "name": "Saint George's" + }, + { + "name": "Saint Helier" + }, + { + "name": "Saint John's" + }, + { + "name": "Saint Peter Port" + }, + { + "name": "Saint Petersburg" + }, + { + "name": "Saint-Denis" + }, + { + "name": "Saint-Pierre" + }, + { + "name": "Saipan" + }, + { + "name": "Salvador" + }, + { + "name": "San Antonio" + }, + { + "name": "San Diego" + }, + { + "name": "San Francisco" + }, + { + "name": "San Jose" + }, + { + "name": "San Juan" + }, + { + "name": "San Marino" + }, + { + "name": "San Salvador" + }, + { + "name": "Sanaa" + }, + { + "name": "Santa Cruz de la Sierra" + }, + { + "name": "Santiago" + }, + { + "name": "Santo Domingo" + }, + { + "name": "Sao Paulo" + }, + { + "name": "Sao Tome" + }, + { + "name": "Sapporo" + }, + { + "name": "Sarajevo" + }, + { + "name": "Seattle" + }, + { + "name": "Semarang" + }, + { + "name": "Seoul" + }, + { + "name": "Shanghai" + }, + { + "name": "Sharjah" + }, + { + "name": "Shenzhen" + }, + { + "name": "Singapore" + }, + { + "name": "Skopje" + }, + { + "name": "Sofia" + }, + { + "name": "South Tangerang" + }, + { + "name": "Soweto" + }, + { + "name": "Stockholm" + }, + { + "name": "Sucre" + }, + { + "name": "Surabaya" + }, + { + "name": "Surat" + }, + { + "name": "Suva" + }, + { + "name": "Sydney" + }, + { + "name": "Tabriz" + }, + { + "name": "Taipei" + }, + { + "name": "Tallinn" + }, + { + "name": "Tangerang" + }, + { + "name": "Tarawa" + }, + { + "name": "Tashkent" + }, + { + "name": "Tbilisi" + }, + { + "name": "Tegucigalpa" + }, + { + "name": "Tehran" + }, + { + "name": "Tel Aviv" + }, + { + "name": "Thimphu" + }, + { + "name": "Tianjin" + }, + { + "name": "Tijuana" + }, + { + "name": "Tirana" + }, + { + "name": "Tokyo" + }, + { + "name": "Toronto" + }, + { + "name": "Torshavn" + }, + { + "name": "Tripoli" + }, + { + "name": "Tunis" + }, + { + "name": "Ulan Bator" + }, + { + "name": "Vaduz" + }, + { + "name": "Valencia" + }, + { + "name": "Valletta" + }, + { + "name": "Vancouver" + }, + { + "name": "Victoria" + }, + { + "name": "Vienna" + }, + { + "name": "Vientiane" + }, + { + "name": "Vilnius" + }, + { + "name": "Warsaw" + }, + { + "name": "Washington" + }, + { + "name": "Wellington" + }, + { + "name": "Willemstad" + }, + { + "name": "Windhoek" + }, + { + "name": "Wuhan" + }, + { + "name": "Xi'an" + }, + { + "name": "Yamoussoukro" + }, + { + "name": "Yangon" + }, + { + "name": "Yaounde" + }, + { + "name": "Yekaterinburg" + }, + { + "name": "Yerevan" + }, + { + "name": "Yokohama" + }, + { + "name": "Zagreb" + } +] diff --git a/dropdown.js b/dropdown.js new file mode 100644 index 00000000..efcda975 --- /dev/null +++ b/dropdown.js @@ -0,0 +1,59 @@ +let cities; +let isDataLoaded = false; + +(async function getCities() { + try { + const res = await fetch('./cities.json'); + cities = await res.json(); + isDataLoaded = true; + } catch (error) { + console.error('Error fetching data:', error); + } +})(); + +const input = document.getElementById('search'); +const dropdown = document.getElementById('dropdown'); + +function updateDropdown() { + // get user input + const query = input.value.toLowerCase(); + // clear previous results + dropdown.innerHTML = ''; + + // if no user input display none dropdown + if (!query) { + dropdown.classList.add('d-none'); + } + + if (!cities) { + dropdown.innerHTML = 'Data is not loaded yet. Please wait.'; + } + + const filtered = cities + .filter((city) => { + return city.name.toLowerCase().includes(query); + }) + .slice(0, 10); + + filtered.forEach((city) => { + const tr = document.createElement('tr'); + const td = document.createElement('td'); + tr.setAttribute('style', 'cursor:pointer'); + td.textContent = city.name; + tr.appendChild(td); + tr.addEventListener('click', () => { + input.value = city.name; + dropdown.classList.add('d-none'); + }); + dropdown.appendChild(tr); + }); + dropdown.classList.remove('d-none'); +} + +input.addEventListener('input', () => updateDropdown()); + +document.addEventListener('click', (e) => { + if (!e.target.closest('.autocomplete-container')) { + dropdown.classList.add('d-none'); + } +}); diff --git a/index.html b/index.html new file mode 100644 index 00000000..f96ec922 --- /dev/null +++ b/index.html @@ -0,0 +1,45 @@ + + +
+ + +
+
+