@abcagency/hc-ui-components 1.9.34 → 1.9.36
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/jsx-runtime.js +4 -0
- package/dist/_virtual/jsx-runtime.js.map +1 -0
- package/dist/_virtual/react-jsx-runtime.production.min.js +4 -0
- package/dist/_virtual/react-jsx-runtime.production.min.js.map +1 -0
- package/dist/apis/hcApi.js +91 -0
- package/dist/apis/hcApi.js.map +1 -0
- package/dist/clientToken.js +10 -0
- package/dist/clientToken.js.map +1 -0
- package/dist/components/HireControlMap.js +175 -203
- package/dist/components/HireControlMap.js.map +1 -1
- package/dist/components/containers/accordions/filter-container.js +9 -22
- package/dist/components/containers/accordions/filter-container.js.map +1 -1
- package/dist/components/containers/accordions/filter-item-container.js +11 -16
- package/dist/components/containers/accordions/filter-item-container.js.map +1 -1
- package/dist/components/containers/accordions/map-accordion-item-container.js +12 -37
- package/dist/components/containers/accordions/map-accordion-item-container.js.map +1 -1
- package/dist/components/containers/filter/commute-container.js +7 -18
- package/dist/components/containers/filter/commute-container.js.map +1 -1
- package/dist/components/containers/filter/filter-container.js +16 -12
- package/dist/components/containers/filter/filter-container.js.map +1 -1
- package/dist/components/containers/filter/filter-item-container.js +28 -44
- package/dist/components/containers/filter/filter-item-container.js.map +1 -1
- package/dist/components/containers/filter/location-container.js +7 -15
- package/dist/components/containers/filter/location-container.js.map +1 -1
- package/dist/components/containers/filter/points-of-interest-container.js +8 -21
- package/dist/components/containers/filter/points-of-interest-container.js.map +1 -1
- package/dist/components/containers/filter/points-of-interest-radio-item-container.js +3 -6
- package/dist/components/containers/filter/points-of-interest-radio-item-container.js.map +1 -1
- package/dist/components/containers/filter/search-container.js +4 -11
- package/dist/components/containers/filter/search-container.js.map +1 -1
- package/dist/components/containers/jobListing/listing-details-container.js +5 -10
- package/dist/components/containers/jobListing/listing-details-container.js.map +1 -1
- package/dist/components/containers/list/item-list-container.js +15 -22
- package/dist/components/containers/list/item-list-container.js.map +1 -1
- package/dist/components/containers/list/list-item/list-item-container.js +5 -16
- package/dist/components/containers/list/list-item/list-item-container.js.map +1 -1
- package/dist/components/containers/maps/info-window-content-container.js +3 -6
- package/dist/components/containers/maps/info-window-content-container.js.map +1 -1
- package/dist/components/containers/maps/map-container.js +28 -106
- package/dist/components/containers/maps/map-container.js.map +1 -1
- package/dist/components/containers/maps/map-list-container.js +7 -35
- package/dist/components/containers/maps/map-list-container.js.map +1 -1
- package/dist/components/containers/maps/map-marker-container.js +8 -11
- package/dist/components/containers/maps/map-marker-container.js.map +1 -1
- package/dist/components/modules/accordions/MapAccordionItem.js +5 -5
- package/dist/components/modules/accordions/MapAccordionItem.js.map +1 -1
- package/dist/components/modules/accordions/default.js +15 -15
- package/dist/components/modules/accordions/default.js.map +1 -1
- package/dist/components/modules/accordions/filterItem.js +7 -12
- package/dist/components/modules/accordions/filterItem.js.map +1 -1
- package/dist/components/modules/accordions/filters.js +7 -17
- package/dist/components/modules/accordions/filters.js.map +1 -1
- package/dist/components/modules/buttons/button-group-apply.js +19 -20
- package/dist/components/modules/buttons/button-group-apply.js.map +1 -1
- package/dist/components/modules/buttons/default.js +9 -9
- package/dist/components/modules/buttons/default.js.map +1 -1
- package/dist/components/modules/buttons/items-pill.js +2 -2
- package/dist/components/modules/buttons/items-pill.js.map +1 -1
- package/dist/components/modules/buttons/pill-wrapper.js +3 -4
- package/dist/components/modules/buttons/pill-wrapper.js.map +1 -1
- package/dist/components/modules/buttons/show-all-button.js +3 -3
- package/dist/components/modules/buttons/show-all-button.js.map +1 -1
- package/dist/components/modules/cards/default.js +11 -11
- package/dist/components/modules/cards/default.js.map +1 -1
- package/dist/components/modules/cards/filter.js +5 -5
- package/dist/components/modules/cards/filter.js.map +1 -1
- package/dist/components/modules/dialogs/apply-dialog.js +19 -19
- package/dist/components/modules/dialogs/apply-dialog.js.map +1 -1
- package/dist/components/modules/filter/commute.js +20 -21
- package/dist/components/modules/filter/commute.js.map +1 -1
- package/dist/components/modules/filter/index.js +30 -122
- package/dist/components/modules/filter/index.js.map +1 -1
- package/dist/components/modules/filter/item.js +9 -15
- package/dist/components/modules/filter/item.js.map +1 -1
- package/dist/components/modules/filter/location.js +6 -6
- package/dist/components/modules/filter/location.js.map +1 -1
- package/dist/components/modules/filter/radio-item.js +6 -6
- package/dist/components/modules/filter/radio-item.js.map +1 -1
- package/dist/components/modules/filter/search.js +11 -16
- package/dist/components/modules/filter/search.js.map +1 -1
- package/dist/components/modules/filter/sort.js +28 -28
- package/dist/components/modules/filter/sort.js.map +1 -1
- package/dist/components/modules/grid.js +4 -4
- package/dist/components/modules/grid.js.map +1 -1
- package/dist/components/modules/icon.js +4 -4
- package/dist/components/modules/icon.js.map +1 -1
- package/dist/components/modules/jobListing/listing-details.js +5 -8
- package/dist/components/modules/jobListing/listing-details.js.map +1 -1
- package/dist/components/modules/list/field-mapper-desktop.js +14 -38
- package/dist/components/modules/list/field-mapper-desktop.js.map +1 -1
- package/dist/components/modules/list/field-mapper-mobile.js +63 -94
- package/dist/components/modules/list/field-mapper-mobile.js.map +1 -1
- package/dist/components/modules/list/header-item.js +7 -7
- package/dist/components/modules/list/header-item.js.map +1 -1
- package/dist/components/modules/list/header.js +5 -5
- package/dist/components/modules/list/header.js.map +1 -1
- package/dist/components/modules/list/item-expand-card/index.js +3 -3
- package/dist/components/modules/list/item-expand-card/index.js.map +1 -1
- package/dist/components/modules/list/item-list.js +18 -15
- package/dist/components/modules/list/item-list.js.map +1 -1
- package/dist/components/modules/list/list-item/list-item.js +18 -95
- package/dist/components/modules/list/list-item/list-item.js.map +1 -1
- package/dist/components/modules/maps/info-window-card.js +2 -2
- package/dist/components/modules/maps/info-window-card.js.map +1 -1
- package/dist/components/modules/maps/info-window-content.js +5 -5
- package/dist/components/modules/maps/info-window-content.js.map +1 -1
- package/dist/components/modules/maps/map-list.js +5 -5
- package/dist/components/modules/maps/map-list.js.map +1 -1
- package/dist/components/modules/maps/map-marker.js +3 -3
- package/dist/components/modules/maps/map-marker.js.map +1 -1
- package/dist/components/modules/maps/map.js +5 -17
- package/dist/components/modules/maps/map.js.map +1 -1
- package/dist/components/modules/maps/place-marker.js +5 -5
- package/dist/components/modules/maps/place-marker.js.map +1 -1
- package/dist/components/modules/maps/tabs.js +25 -25
- package/dist/components/modules/maps/tabs.js.map +1 -1
- package/dist/contexts/componentContext.js +68 -6
- package/dist/contexts/componentContext.js.map +1 -1
- package/dist/contexts/mapContext.js +20 -49
- package/dist/contexts/mapContext.js.map +1 -1
- package/dist/contexts/mapListContext.js +70 -218
- package/dist/contexts/mapListContext.js.map +1 -1
- package/dist/contexts/placesContext.js +5 -7
- package/dist/contexts/placesContext.js.map +1 -1
- package/dist/contexts/themeContext.js +5 -10
- package/dist/contexts/themeContext.js.map +1 -1
- package/dist/contexts/trackEventContext.js +2 -2
- package/dist/contexts/trackEventContext.js.map +1 -1
- package/dist/hc_react_map_npm/packages/hc-ui-components/node_modules/tslib/tslib.es6.js +45 -0
- package/dist/hc_react_map_npm/packages/hc-ui-components/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/hooks/useList.js +1 -3
- package/dist/hooks/useList.js.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js +1 -0
- package/dist/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js.map +1 -1
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +802 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +679 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +343 -0
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +140 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +137 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox.js +33 -0
- package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/keyboard.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/components/keyboard.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/transitions/transition.js +19 -0
- package/dist/node_modules/@headlessui/react/dist/components/transitions/transition.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/transitions/utils/transition.js +8 -0
- package/dist/node_modules/@headlessui/react/dist/components/transitions/utils/transition.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-computed.js +8 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-computed.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-controllable.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-controllable.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-id.js +9 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-id.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js +10 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js +11 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js +8 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-watch.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-watch.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/hidden.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/internal/hidden.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/open-closed.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/internal/open-closed.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/active-element-history.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/utils/active-element-history.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/bugs.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/bugs.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/calculate-active-index.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/calculate-active-index.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/class-names.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/class-names.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/disposables.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/utils/disposables.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/document-ready.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/document-ready.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/env.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/env.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/form.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/form.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/match.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/match.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/once.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/once.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/owner.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/utils/owner.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/platform.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/platform.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/render.js +11 -0
- package/dist/node_modules/@headlessui/react/dist/utils/render.js.map +1 -0
- package/dist/node_modules/@iconify/react/dist/iconify.js +1928 -0
- package/dist/node_modules/@iconify/react/dist/iconify.js.map +1 -0
- package/dist/node_modules/@radix-ui/number/dist/index.js +7 -0
- package/dist/node_modules/@radix-ui/number/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/primitive/dist/index.js +12 -0
- package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-accordion/dist/index.js +304 -0
- package/dist/node_modules/@radix-ui/react-accordion/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +26 -0
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js +145 -0
- package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-collection/dist/index.js +69 -0
- package/dist/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +19 -0
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-context/dist/index.js +80 -0
- package/dist/node_modules/@radix-ui/react-context/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-dialog/dist/index.js +320 -0
- package/dist/node_modules/@radix-ui/react-dialog/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-direction/dist/index.js +12 -0
- package/dist/node_modules/@radix-ui/react-direction/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +212 -0
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +27 -0
- package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +208 -0
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-id/dist/index.js +16 -0
- package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-popper/dist/index.js +279 -0
- package/dist/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-portal/dist/index.js +18 -0
- package/dist/node_modules/@radix-ui/react-portal/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-presence/dist/index.js +120 -0
- package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +42 -0
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +221 -0
- package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-select/dist/index.js +1109 -0
- package/dist/node_modules/@radix-ui/react-select/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-slot/dist/index.js +82 -0
- package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-tabs/dist/index.js +187 -0
- package/dist/node_modules/@radix-ui/react-tabs/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +13 -0
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +47 -0
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +19 -0
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +8 -0
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js +16 -0
- package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +41 -0
- package/dist/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +35 -0
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +1 -0
- package/dist/node_modules/@react-google-maps/api/dist/esm.js +8515 -0
- package/dist/node_modules/@react-google-maps/api/dist/esm.js.map +1 -0
- package/dist/node_modules/@remix-run/router/dist/router.js +271 -0
- package/dist/node_modules/@remix-run/router/dist/router.js.map +1 -0
- package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js +43 -0
- package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js.map +1 -0
- package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js +669 -0
- package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js.map +1 -0
- package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js +61 -0
- package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js.map +1 -0
- package/dist/node_modules/aria-hidden/dist/es2015/index.js +137 -0
- package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +1 -0
- package/dist/node_modules/fuse.js/dist/fuse.js +1779 -0
- package/dist/node_modules/fuse.js/dist/fuse.js.map +1 -0
- package/dist/node_modules/get-nonce/dist/es2015/index.js +9 -0
- package/dist/node_modules/get-nonce/dist/es2015/index.js.map +1 -0
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +17 -0
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +1 -0
- package/dist/node_modules/react/jsx-runtime.js +12 -0
- package/dist/node_modules/react/jsx-runtime.js.map +1 -0
- package/dist/node_modules/react-loader-spinner/dist/index.js +134 -83
- package/dist/node_modules/react-loader-spinner/dist/index.js.map +1 -1
- package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +10 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +161 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +39 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +22 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +107 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +6 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +8 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js.map +1 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +57 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +11 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +32 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -0
- package/dist/node_modules/react-router/dist/index.js +280 -0
- package/dist/node_modules/react-router/dist/index.js.map +1 -0
- package/dist/node_modules/react-router-dom/dist/index.js +201 -0
- package/dist/node_modules/react-router-dom/dist/index.js.map +1 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/component.js +20 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +26 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +52 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -0
- package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js +716 -4
- package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js.map +1 -1
- package/dist/node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js +5 -7
- package/dist/node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js.map +1 -1
- package/dist/node_modules/styled-components/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js.map +1 -1
- package/dist/node_modules/stylis/src/Enum.js +2 -2
- package/dist/node_modules/stylis/src/Enum.js.map +1 -1
- package/dist/node_modules/stylis/src/Middleware.js +59 -49
- package/dist/node_modules/stylis/src/Middleware.js.map +1 -1
- package/dist/node_modules/stylis/src/Parser.js +135 -137
- package/dist/node_modules/stylis/src/Parser.js.map +1 -1
- package/dist/node_modules/stylis/src/Prefixer.js +187 -135
- package/dist/node_modules/stylis/src/Prefixer.js.map +1 -1
- package/dist/node_modules/stylis/src/Serializer.js +21 -18
- package/dist/node_modules/stylis/src/Serializer.js.map +1 -1
- package/dist/node_modules/stylis/src/Tokenizer.js +121 -117
- package/dist/node_modules/stylis/src/Tokenizer.js.map +1 -1
- package/dist/node_modules/stylis/src/Utility.js +26 -24
- package/dist/node_modules/stylis/src/Utility.js.map +1 -1
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2530 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/dist/node_modules/tinycolor2/esm/tinycolor.js.map +1 -1
- package/dist/node_modules/tslib/tslib.es6.js +13 -1
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +25 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +1 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +49 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +43 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -0
- package/dist/node_modules/use-places-autocomplete/dist/index.esm.js +243 -0
- package/dist/node_modules/use-places-autocomplete/dist/index.esm.js.map +1 -0
- package/dist/node_modules/use-sidecar/dist/es2015/exports.js +22 -0
- package/dist/node_modules/use-sidecar/dist/es2015/exports.js.map +1 -0
- package/dist/node_modules/use-sidecar/dist/es2015/medium.js +78 -0
- package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -0
- package/dist/services/configService.js +15 -0
- package/dist/services/configService.js.map +1 -0
- package/dist/services/listingAggregatorService.js +37 -0
- package/dist/services/listingAggregatorService.js.map +1 -0
- package/dist/services/listingEntityService.js +15 -0
- package/dist/services/listingEntityService.js.map +1 -0
- package/dist/services/listingService.js +30 -0
- package/dist/services/listingService.js.map +1 -0
- package/dist/styles/index.css +3 -1
- package/dist/types/components/containers/accordions/filter-container.d.ts +11 -0
- package/dist/types/components/containers/accordions/map-accordion-item-container.d.ts +1 -2
- package/dist/types/components/containers/filter/commute-container.d.ts +5 -0
- package/dist/types/components/containers/filter/filter-container.d.ts +7 -0
- package/dist/types/components/containers/filter/location-container.d.ts +10 -0
- package/dist/types/components/containers/filter/points-of-interest-container.d.ts +10 -0
- package/dist/types/components/containers/filter/points-of-interest-radio-item-container.d.ts +8 -0
- package/dist/types/components/containers/filter/search-container.d.ts +8 -0
- package/dist/types/components/containers/list/list-item/list-item-container.d.ts +1 -3
- package/dist/types/components/containers/maps/info-window-content-container.d.ts +5 -0
- package/dist/types/components/containers/maps/map-container.d.ts +7 -0
- package/dist/types/components/containers/maps/map-list-container.d.ts +15 -0
- package/dist/types/components/containers/maps/map-marker-container.d.ts +13 -0
- package/dist/types/components/modules/buttons/button-group-apply.d.ts +1 -2
- package/dist/types/components/modules/jobListing/listing-details.d.ts +1 -2
- package/dist/types/components/modules/list/field-mapper-desktop.d.ts +1 -2
- package/dist/types/components/modules/list/field-mapper-mobile.d.ts +1 -2
- package/dist/types/components/modules/list/list-item/list-item.d.ts +1 -1
- package/dist/types/constants/placeTypes.d.ts +8 -0
- package/dist/types/contexts/mapContext.d.ts +0 -1
- package/dist/types/contexts/mapListContext.d.ts +2 -54
- package/dist/types/contexts/placesContext.d.ts +10 -0
- package/dist/types/hooks/useList.d.ts +3 -3
- package/dist/types/services/configService.d.ts +6 -0
- package/dist/types/services/listingAggregatorService.d.ts +9 -0
- package/dist/types/services/listingEntityService.d.ts +6 -0
- package/dist/types/services/listingService.d.ts +9 -0
- package/dist/types/services/recruiterService.d.ts +6 -0
- package/dist/types/types/GetListingParams.d.ts +1 -1
- package/dist/types/types/ListingEntity.d.ts +1 -2
- package/dist/types/types/ListingFields.d.ts +2 -4
- package/dist/types/types/Listings.d.ts +1 -0
- package/dist/types/types/config/Colors.d.ts +0 -1
- package/dist/types/types/config/MapConfig.d.ts +0 -4
- package/dist/types/types/config/PointsOfInterestConfig.d.ts +0 -1
- package/dist/types/util/filterUtil.d.ts +8 -12
- package/dist/types/util/mapIconUtil.d.ts +24 -0
- package/dist/types/util/mapUtil.d.ts +3 -3
- package/dist/types/util/urlFilterUtil.d.ts +0 -1
- package/dist/util/filterUtil.js +122 -413
- package/dist/util/filterUtil.js.map +1 -1
- package/dist/util/loading.js +3 -3
- package/dist/util/loading.js.map +1 -1
- package/dist/util/mapUtil.js +25 -43
- package/dist/util/mapUtil.js.map +1 -1
- package/dist/util/urlFilterUtil.js +1 -5
- package/dist/util/urlFilterUtil.js.map +1 -1
- package/package.json +17 -66
- package/src/apis/hcApi.ts +2 -9
- package/src/components/HireControlMap.js +95 -160
- package/src/components/containers/accordions/filter-container.js +4 -14
- package/src/components/containers/accordions/filter-item-container.js +5 -7
- package/src/components/containers/accordions/map-accordion-item-container.js +7 -28
- package/src/components/containers/filter/commute-container.js +4 -15
- package/src/components/containers/filter/filter-container.js +13 -8
- package/src/components/containers/filter/filter-item-container.js +25 -39
- package/src/components/containers/filter/location-container.js +4 -9
- package/src/components/containers/filter/points-of-interest-container.js +3 -14
- package/src/components/containers/filter/points-of-interest-radio-item-container.js +1 -4
- package/src/components/containers/filter/search-container.js +2 -8
- package/src/components/containers/jobListing/listing-details-container.js +2 -6
- package/src/components/containers/list/item-list-container.tsx +13 -22
- package/src/components/containers/list/list-item/list-item-container.js +2 -11
- package/src/components/containers/maps/info-window-content-container.js +2 -5
- package/src/components/containers/maps/map-container.js +14 -92
- package/src/components/containers/maps/map-list-container.js +5 -33
- package/src/components/containers/maps/map-marker-container.js +2 -4
- package/src/components/modules/accordions/filterItem.js +3 -16
- package/src/components/modules/accordions/filters.js +4 -19
- package/src/components/modules/buttons/button-group-apply.js +9 -14
- package/src/components/modules/buttons/pill-wrapper.js +1 -2
- package/src/components/modules/dialogs/apply-dialog.js +2 -2
- package/src/components/modules/filter/commute.js +5 -7
- package/src/components/modules/filter/index.js +50 -137
- package/src/components/modules/filter/item.js +3 -16
- package/src/components/modules/filter/search.js +1 -7
- package/src/components/modules/jobListing/listing-details.js +3 -5
- package/src/components/modules/list/field-mapper-desktop.jsx +13 -32
- package/src/components/modules/list/field-mapper-mobile.jsx +80 -92
- package/src/components/modules/list/header-item.js +1 -1
- package/src/components/modules/list/item-list.tsx +5 -2
- package/src/components/modules/list/list-item/list-item.jsx +11 -85
- package/src/components/modules/maps/map-list.js +1 -1
- package/src/components/modules/maps/map.js +18 -30
- package/src/components/modules/maps/tabs.js +5 -5
- package/src/contexts/mapContext.tsx +18 -45
- package/src/contexts/mapListContext.tsx +86 -308
- package/src/contexts/placesContext.js +3 -3
- package/src/contexts/themeContext.js +3 -8
- package/src/hooks/useList.js +1 -3
- package/src/index.js +0 -9
- package/src/services/configService.ts +16 -0
- package/src/services/listingAggregatorService.ts +58 -0
- package/src/services/listingEntityService.ts +16 -0
- package/src/services/listingService.ts +40 -0
- package/src/services/recruiterService.ts +18 -0
- package/src/styles/bundle.css +1 -3
- package/src/styles/index.css +2 -4
- package/src/types/GetListingParams.ts +1 -1
- package/src/types/ListingEntity.ts +1 -2
- package/src/types/ListingFields.ts +2 -4
- package/src/types/Listings.ts +1 -0
- package/src/types/config/Colors.ts +0 -1
- package/src/types/config/MapConfig.ts +0 -2
- package/src/types/config/PointsOfInterestConfig.ts +0 -1
- package/src/util/fieldMapper.js +2 -6
- package/src/util/filterUtil.js +55 -261
- package/src/util/mapUtil.js +41 -59
- package/src/util/urlFilterUtil.js +1 -4
- package/README.md +0 -323
- package/src/components/modules/maps/map.js.bak +0 -67
- package/src/components/modules/maps/map.js.bak2 +0 -67
- package/src/contexts/componentContext.tsx +0 -213
- package/src/styles/components.css +0 -30
- package/src/util/algoliaSearchUtil.js +0 -151
- package/src/util/twMerge.js +0 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { Root as Root2, List, Trigger, Content } from '../../../node_modules/@radix-ui/react-tabs/dist/index.js';
|
|
3
3
|
import Button from '../buttons/default.js';
|
|
4
4
|
import { useMapList } from '../../../contexts/mapListContext.js';
|
|
5
5
|
|
|
@@ -14,70 +14,70 @@ var MapTabs = function MapTabs(_ref) {
|
|
|
14
14
|
mobileTab = _useMapList.mobileTab,
|
|
15
15
|
setMobileTab = _useMapList.setMobileTab,
|
|
16
16
|
containerStyle = _useMapList.containerStyle;
|
|
17
|
-
return /*#__PURE__*/
|
|
17
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
18
18
|
style: containerStyle,
|
|
19
19
|
className: "\n hc-relative hc-overflow-hidden\n ".concat(className !== null && className !== void 0 ? className : "", "\n ")
|
|
20
|
-
}, /*#__PURE__*/
|
|
20
|
+
}, /*#__PURE__*/React__default.createElement(Root2, {
|
|
21
21
|
className: "hc-flex hc-flex-col hc-h-full",
|
|
22
22
|
value: mobileTab
|
|
23
|
-
}, /*#__PURE__*/
|
|
23
|
+
}, /*#__PURE__*/React__default.createElement(List, {
|
|
24
24
|
className: "hc-w-full hc-shrink-0 hc-flex hc-divide-x hc-divide-primary hc-bg-white hc-z-10",
|
|
25
25
|
"aria-label": "Review positions"
|
|
26
|
-
}, /*#__PURE__*/
|
|
26
|
+
}, /*#__PURE__*/React__default.createElement(Trigger, {
|
|
27
27
|
value: "listTab",
|
|
28
28
|
asChild: true,
|
|
29
29
|
onClick: function onClick() {
|
|
30
30
|
return setMobileTab("listTab");
|
|
31
31
|
}
|
|
32
|
-
}, /*#__PURE__*/
|
|
32
|
+
}, /*#__PURE__*/React__default.createElement(Button.Btn, {
|
|
33
33
|
variant: "outline",
|
|
34
34
|
isBlock: true,
|
|
35
35
|
className: tabButtonClasses
|
|
36
|
-
}, /*#__PURE__*/
|
|
36
|
+
}, /*#__PURE__*/React__default.createElement(Button.Body, {
|
|
37
37
|
className: "hc-justify-center"
|
|
38
|
-
}, /*#__PURE__*/
|
|
38
|
+
}, /*#__PURE__*/React__default.createElement(Button.Icon, {
|
|
39
39
|
icon: "mdi:view-list",
|
|
40
40
|
size: "hc-size-5"
|
|
41
|
-
}), "List"))), showMap && /*#__PURE__*/
|
|
41
|
+
}), "List"))), showMap && /*#__PURE__*/React__default.createElement(Trigger, {
|
|
42
42
|
value: "mapTab",
|
|
43
43
|
asChild: true,
|
|
44
44
|
onClick: function onClick() {
|
|
45
45
|
return setMobileTab("mapTab");
|
|
46
46
|
}
|
|
47
|
-
}, /*#__PURE__*/
|
|
47
|
+
}, /*#__PURE__*/React__default.createElement(Button.Btn, {
|
|
48
48
|
variant: "outline",
|
|
49
49
|
isBlock: true,
|
|
50
50
|
className: tabButtonClasses
|
|
51
|
-
}, /*#__PURE__*/
|
|
51
|
+
}, /*#__PURE__*/React__default.createElement(Button.Body, {
|
|
52
52
|
className: "hc-justify-center"
|
|
53
|
-
}, /*#__PURE__*/
|
|
53
|
+
}, /*#__PURE__*/React__default.createElement(Button.Icon, {
|
|
54
54
|
icon: "mdi:map",
|
|
55
55
|
size: "hc-size-5"
|
|
56
|
-
}), "Map"))), /*#__PURE__*/
|
|
56
|
+
}), "Map"))), /*#__PURE__*/React__default.createElement(Trigger, {
|
|
57
57
|
value: "filterTab",
|
|
58
58
|
asChild: true,
|
|
59
59
|
onClick: function onClick() {
|
|
60
60
|
return setMobileTab("filterTab");
|
|
61
61
|
}
|
|
62
|
-
}, /*#__PURE__*/
|
|
62
|
+
}, /*#__PURE__*/React__default.createElement(Button.Btn, {
|
|
63
63
|
variant: "outline",
|
|
64
64
|
isBlock: true,
|
|
65
65
|
className: tabButtonClasses
|
|
66
|
-
}, /*#__PURE__*/
|
|
66
|
+
}, /*#__PURE__*/React__default.createElement(Button.Body, {
|
|
67
67
|
className: "hc-justify-center"
|
|
68
|
-
}, /*#__PURE__*/
|
|
68
|
+
}, /*#__PURE__*/React__default.createElement(Button.Icon, {
|
|
69
69
|
icon: "fluent:search-12-filled",
|
|
70
70
|
size: "hc-size-5"
|
|
71
|
-
}), "Filter")))), /*#__PURE__*/
|
|
72
|
-
className: "hc-flex-grow hc-h-[calc(
|
|
73
|
-
}, /*#__PURE__*/
|
|
74
|
-
className: "hc-h-full hc-bg-white hc-outline-none",
|
|
71
|
+
}), "Filter")))), /*#__PURE__*/React__default.createElement("div", {
|
|
72
|
+
className: "hc-flex-grow hc-h-[calc(100%-48px)]"
|
|
73
|
+
}, /*#__PURE__*/React__default.createElement(Content, {
|
|
74
|
+
className: "hc-h-full hc-overflow-auto hc-bg-white hc-outline-none",
|
|
75
75
|
value: "listTab"
|
|
76
|
-
}, list), showMap && /*#__PURE__*/
|
|
77
|
-
className: "hc-h-
|
|
76
|
+
}, list), showMap && /*#__PURE__*/React__default.createElement(Content, {
|
|
77
|
+
className: "hc-h-full hc-overflow-auto hc-bg-white hc-outline-none",
|
|
78
78
|
value: "mapTab"
|
|
79
|
-
}, map), /*#__PURE__*/
|
|
80
|
-
className: "hc-h-full hc-
|
|
79
|
+
}, map), /*#__PURE__*/React__default.createElement(Content, {
|
|
80
|
+
className: "hc-h-full hc-bg-white hc-outline-none",
|
|
81
81
|
value: "filterTab"
|
|
82
82
|
}, filter))));
|
|
83
83
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sources":["../../../../src/components/modules/maps/tabs.js"],"sourcesContent":["import React from 'react';\nimport * as Tabs from '@radix-ui/react-tabs';\nimport Button from '~/components/modules/buttons/default';\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst MapTabs = ({\n\tmap,\n\tlist,\n\tfilter,\n\tclassName,\n\tshowMap\n}) => {\n\tconst tabButtonClasses =\n \"hc-flex hc-items-center hc-gap-2 hc-rounded-none hc-border-x-0 data-[state=active]:hc-bg-primary data-[state=active]:hc-text-white\";\n\tconst { mobileTab, setMobileTab, containerStyle } = useMapList();\n\n\treturn (\n\t\t<div\n\t\t\tstyle={containerStyle}\n\t\t\tclassName={`\n hc-relative hc-overflow-hidden\n ${className ?? \"\"}\n `}\n\t\t>\n\t\t\t<Tabs.Root\n\t\t\t\tclassName=\"hc-flex hc-flex-col hc-h-full\"\n\t\t\t\tvalue={mobileTab}\n\t\t\t>\n\t\t\t\t{/* Fixed tab header */}\n\t\t\t\t<Tabs.List\n\t\t\t\t\tclassName=\"hc-w-full hc-shrink-0 hc-flex hc-divide-x hc-divide-primary hc-bg-white hc-z-10\"\n\t\t\t\t\taria-label=\"Review positions\"\n\t\t\t\t>\n\t\t\t\t\t<Tabs.Trigger value=\"listTab\" asChild onClick={() => setMobileTab(\"listTab\")}>\n\t\t\t\t\t\t<Button.Btn variant=\"outline\" isBlock className={tabButtonClasses}>\n\t\t\t\t\t\t\t<Button.Body className=\"hc-justify-center\">\n\t\t\t\t\t\t\t\t<Button.Icon icon=\"mdi:view-list\" size=\"hc-size-5\" />\n List\n\t\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t</Tabs.Trigger>\n\t\t\t\t\t{showMap && (\n\t\t\t\t\t\t<Tabs.Trigger value=\"mapTab\" asChild onClick={() => setMobileTab(\"mapTab\")}>\n\t\t\t\t\t\t\t<Button.Btn\n\t\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\tclassName={tabButtonClasses}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Button.Body className=\"hc-justify-center\">\n\t\t\t\t\t\t\t\t\t<Button.Icon icon=\"mdi:map\" size=\"hc-size-5\" />\n Map\n\t\t\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t\t</Tabs.Trigger>\n\t\t\t\t\t)}\n\t\t\t\t\t<Tabs.Trigger value=\"filterTab\" asChild onClick={() => setMobileTab(\"filterTab\")}>\n\t\t\t\t\t\t<Button.Btn variant=\"outline\" isBlock className={tabButtonClasses}>\n\t\t\t\t\t\t\t<Button.Body className=\"hc-justify-center\">\n\t\t\t\t\t\t\t\t<Button.Icon icon=\"fluent:search-12-filled\" size=\"hc-size-5\" />\n Filter\n\t\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t</Tabs.Trigger>\n\t\t\t\t</Tabs.List>\n\n\t\t\t\t{/* Tab content */}\n\t\t\t\t<div className=\"hc-flex-grow hc-h-[calc(
|
|
1
|
+
{"version":3,"file":"tabs.js","sources":["../../../../src/components/modules/maps/tabs.js"],"sourcesContent":["import React from 'react';\nimport * as Tabs from '@radix-ui/react-tabs';\nimport Button from '~/components/modules/buttons/default';\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst MapTabs = ({\n\tmap,\n\tlist,\n\tfilter,\n\tclassName,\n\tshowMap\n}) => {\n\tconst tabButtonClasses =\n \"hc-flex hc-items-center hc-gap-2 hc-rounded-none hc-border-x-0 data-[state=active]:hc-bg-primary data-[state=active]:hc-text-white\";\n\tconst { mobileTab, setMobileTab, containerStyle } = useMapList();\n\n\treturn (\n\t\t<div\n\t\t\tstyle={containerStyle}\n\t\t\tclassName={`\n hc-relative hc-overflow-hidden\n ${className ?? \"\"}\n `}\n\t\t>\n\t\t\t<Tabs.Root\n\t\t\t\tclassName=\"hc-flex hc-flex-col hc-h-full\"\n\t\t\t\tvalue={mobileTab}\n\t\t\t>\n\t\t\t\t{/* Fixed tab header */}\n\t\t\t\t<Tabs.List\n\t\t\t\t\tclassName=\"hc-w-full hc-shrink-0 hc-flex hc-divide-x hc-divide-primary hc-bg-white hc-z-10\"\n\t\t\t\t\taria-label=\"Review positions\"\n\t\t\t\t>\n\t\t\t\t\t<Tabs.Trigger value=\"listTab\" asChild onClick={() => setMobileTab(\"listTab\")}>\n\t\t\t\t\t\t<Button.Btn variant=\"outline\" isBlock className={tabButtonClasses}>\n\t\t\t\t\t\t\t<Button.Body className=\"hc-justify-center\">\n\t\t\t\t\t\t\t\t<Button.Icon icon=\"mdi:view-list\" size=\"hc-size-5\" />\n List\n\t\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t</Tabs.Trigger>\n\t\t\t\t\t{showMap && (\n\t\t\t\t\t\t<Tabs.Trigger value=\"mapTab\" asChild onClick={() => setMobileTab(\"mapTab\")}>\n\t\t\t\t\t\t\t<Button.Btn\n\t\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\tclassName={tabButtonClasses}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Button.Body className=\"hc-justify-center\">\n\t\t\t\t\t\t\t\t\t<Button.Icon icon=\"mdi:map\" size=\"hc-size-5\" />\n Map\n\t\t\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t\t</Tabs.Trigger>\n\t\t\t\t\t)}\n\t\t\t\t\t<Tabs.Trigger value=\"filterTab\" asChild onClick={() => setMobileTab(\"filterTab\")}>\n\t\t\t\t\t\t<Button.Btn variant=\"outline\" isBlock className={tabButtonClasses}>\n\t\t\t\t\t\t\t<Button.Body className=\"hc-justify-center\">\n\t\t\t\t\t\t\t\t<Button.Icon icon=\"fluent:search-12-filled\" size=\"hc-size-5\" />\n Filter\n\t\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t</Tabs.Trigger>\n\t\t\t\t</Tabs.List>\n\n\t\t\t\t{/* Tab content */}\n\t\t\t\t<div className=\"hc-flex-grow hc-h-[calc(100%-48px)]\">\n\t\t\t\t\t{/* List Tab Content */}\n\t\t\t\t\t<Tabs.Content\n\t\t\t\t\t\tclassName=\"hc-h-full hc-overflow-auto hc-bg-white hc-outline-none\"\n\t\t\t\t\t\tvalue=\"listTab\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{list}\n\t\t\t\t\t</Tabs.Content>\n\n\t\t\t\t\t{/* Map Tab Content */}\n\t\t\t\t\t{showMap && (\n\t\t\t\t\t\t<Tabs.Content\n\t\t\t\t\t\t\tclassName=\"hc-h-full hc-overflow-auto hc-bg-white hc-outline-none\"\n\t\t\t\t\t\t\tvalue=\"mapTab\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{map}\n\t\t\t\t\t\t</Tabs.Content>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Filter Tab Content */}\n\t\t\t\t\t<Tabs.Content\n\t\t\t\t\t\tclassName=\"hc-h-full hc-bg-white hc-outline-none\"\n\t\t\t\t\t\tvalue=\"filterTab\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{filter}\n\t\t\t\t\t</Tabs.Content>\n\t\t\t\t</div>\n\t\t\t</Tabs.Root>\n\t\t</div>\n\t);\n};\n\nexport default MapTabs;"],"names":["MapTabs","_ref","map","list","filter","className","showMap","tabButtonClasses","_useMapList","useMapList","mobileTab","setMobileTab","containerStyle","React","createElement","style","concat","Tabs","value","asChild","onClick","Button","Btn","variant","isBlock","Body","Icon","icon","size"],"mappings":"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"}
|
|
@@ -38,9 +38,26 @@ import CardFilter from '../components/modules/cards/filter.js';
|
|
|
38
38
|
import ApplyDialog from '../components/modules/dialogs/apply-dialog.js';
|
|
39
39
|
import Grid from '../components/modules/grid.js';
|
|
40
40
|
import IconContained from '../components/modules/icon.js';
|
|
41
|
+
import MapContainer from '../components/containers/maps/map-container.js';
|
|
42
|
+
import MapListContainer from '../components/containers/maps/map-list-container.js';
|
|
43
|
+
import MapMarkerContainer from '../components/containers/maps/map-marker-container.js';
|
|
44
|
+
import InfoWindowContentContainer from '../components/containers/maps/info-window-content-container.js';
|
|
45
|
+
import FilterContainer from '../components/containers/filter/filter-container.js';
|
|
46
|
+
import FilterItemContainer from '../components/containers/filter/filter-item-container.js';
|
|
47
|
+
import SearchContainer from '../components/containers/filter/search-container.js';
|
|
48
|
+
import FilterLocationContainer from '../components/containers/filter/location-container.js';
|
|
49
|
+
import FilterCommuteContainer from '../components/containers/filter/commute-container.js';
|
|
50
|
+
import FilterPointsOfInterestContainer from '../components/containers/filter/points-of-interest-container.js';
|
|
51
|
+
import RadioItemContainer from '../components/containers/filter/points-of-interest-radio-item-container.js';
|
|
52
|
+
import ItemsListContainer from '../components/containers/list/item-list-container.js';
|
|
53
|
+
import ListItemContainer from '../components/containers/list/list-item/list-item-container.js';
|
|
54
|
+
import ListingDetailsContainer from '../components/containers/jobListing/listing-details-container.js';
|
|
55
|
+
import AccordionFiltersContainer from '../components/containers/accordions/filter-container.js';
|
|
56
|
+
import AccordionFilterItemContainer from '../components/containers/accordions/filter-item-container.js';
|
|
57
|
+
import MapAccordionItemContainer from '../components/containers/accordions/map-accordion-item-container.js';
|
|
41
58
|
|
|
42
59
|
/**
|
|
43
|
-
* Default component registry - all available components
|
|
60
|
+
* Default component registry - all available UI components (modules)
|
|
44
61
|
*/
|
|
45
62
|
const defaultComponents = {
|
|
46
63
|
// Map components
|
|
@@ -92,10 +109,44 @@ const defaultComponents = {
|
|
|
92
109
|
Grid,
|
|
93
110
|
Icon: IconContained,
|
|
94
111
|
};
|
|
112
|
+
/**
|
|
113
|
+
* Default container registry - all available logic containers
|
|
114
|
+
*/
|
|
115
|
+
const defaultContainers = {
|
|
116
|
+
// Map containers
|
|
117
|
+
MapContainer,
|
|
118
|
+
MapListContainer,
|
|
119
|
+
MapMarkerContainer,
|
|
120
|
+
InfoWindowContentContainer,
|
|
121
|
+
// Filter containers
|
|
122
|
+
FilterContainer,
|
|
123
|
+
FilterItemContainer,
|
|
124
|
+
FilterSearchContainer: SearchContainer,
|
|
125
|
+
FilterLocationContainer,
|
|
126
|
+
FilterCommuteContainer,
|
|
127
|
+
FilterPointsOfInterestContainer,
|
|
128
|
+
FilterPointsOfInterestRadioItemContainer: RadioItemContainer,
|
|
129
|
+
// List containers
|
|
130
|
+
ItemListContainer: ItemsListContainer,
|
|
131
|
+
ListItemContainer,
|
|
132
|
+
// Job listing containers
|
|
133
|
+
ListingDetailsContainer,
|
|
134
|
+
// Accordion containers
|
|
135
|
+
AccordionFilterContainer: AccordionFiltersContainer,
|
|
136
|
+
AccordionFilterItemContainer,
|
|
137
|
+
AccordionMapItemContainer: MapAccordionItemContainer,
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Combined component registry - includes both modules and containers
|
|
141
|
+
*/
|
|
142
|
+
const defaultComponentRegistry = {
|
|
143
|
+
...defaultComponents,
|
|
144
|
+
...defaultContainers,
|
|
145
|
+
};
|
|
95
146
|
/**
|
|
96
147
|
* Context for accessing components throughout the app
|
|
97
148
|
*/
|
|
98
|
-
const ComponentContext = createContext(
|
|
149
|
+
const ComponentContext = createContext(defaultComponentRegistry);
|
|
99
150
|
/**
|
|
100
151
|
* ComponentProvider - Provides component registry with optional overrides
|
|
101
152
|
*
|
|
@@ -106,10 +157,11 @@ const ComponentContext = createContext(defaultComponents);
|
|
|
106
157
|
* <HireControlMap />
|
|
107
158
|
* </ComponentProvider>
|
|
108
159
|
*
|
|
109
|
-
* // With custom components
|
|
160
|
+
* // With custom components/containers
|
|
110
161
|
* <ComponentProvider components={{
|
|
111
162
|
* Filter: MyCustomFilter,
|
|
112
|
-
* ListItem: MyCustomListItem
|
|
163
|
+
* ListItem: MyCustomListItem,
|
|
164
|
+
* MapContainer: MyCustomMapContainer
|
|
113
165
|
* }}>
|
|
114
166
|
* <HireControlMap />
|
|
115
167
|
* </ComponentProvider>
|
|
@@ -118,7 +170,7 @@ const ComponentContext = createContext(defaultComponents);
|
|
|
118
170
|
const ComponentProvider = ({ children, components = {} }) => {
|
|
119
171
|
// Merge default components with custom overrides
|
|
120
172
|
const componentRegistry = useMemo(() => ({
|
|
121
|
-
...
|
|
173
|
+
...defaultComponentRegistry,
|
|
122
174
|
...components,
|
|
123
175
|
}), [components]);
|
|
124
176
|
return (React.createElement(ComponentContext.Provider, { value: componentRegistry }, children));
|
|
@@ -157,8 +209,18 @@ const useComponents = () => {
|
|
|
157
209
|
*/
|
|
158
210
|
const withComponents = (componentKeys) => {
|
|
159
211
|
return (Component) => {
|
|
212
|
+
const WrappedComponent = (props) => {
|
|
213
|
+
const components = useComponents();
|
|
214
|
+
const selectedComponents = componentKeys.reduce((acc, key) => {
|
|
215
|
+
acc[key] = components[key];
|
|
216
|
+
return acc;
|
|
217
|
+
}, {});
|
|
218
|
+
return React.createElement(Component, { ...props, ...selectedComponents });
|
|
219
|
+
};
|
|
220
|
+
WrappedComponent.displayName = `withComponents(${Component.displayName || Component.name || 'Component'})`;
|
|
221
|
+
return WrappedComponent;
|
|
160
222
|
};
|
|
161
223
|
};
|
|
162
224
|
|
|
163
|
-
export { ComponentProvider, defaultComponents, useComponents, withComponents };
|
|
225
|
+
export { ComponentProvider, ComponentProvider as default, defaultComponentRegistry, defaultComponents, defaultContainers, useComponents, withComponents };
|
|
164
226
|
//# sourceMappingURL=componentContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentContext.js","sources":["../../src/contexts/componentContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useMemo } from 'react';\n\n// Import all default components\nimport MapList from '~/components/modules/maps/map-list';\nimport MapTabs from '~/components/modules/maps/tabs';\nimport Map from '~/components/modules/maps/map';\nimport PlaceMarker from '~/components/modules/maps/place-marker';\nimport MapMarker from '~/components/modules/maps/map-marker';\nimport InfoWindowCard from '~/components/modules/maps/info-window-card';\nimport InfoWindowContent from '~/components/modules/maps/info-window-content';\n\nimport Filter from '~/components/modules/filter/index';\nimport FilterItem from '~/components/modules/filter/item';\nimport FilterSearch from '~/components/modules/filter/search';\nimport FilterLocation from '~/components/modules/filter/location';\nimport FilterCommute from '~/components/modules/filter/commute';\nimport FilterRadioItem from '~/components/modules/filter/radio-item';\nimport FilterSort from '~/components/modules/filter/sort';\n\nimport ListItem from '~/components/modules/list/list-item/list-item';\nimport ItemsList from '~/components/modules/list/item-list';\nimport ListHeader from '~/components/modules/list/header';\nimport ListHeaderItem from '~/components/modules/list/header-item';\nimport FieldMapperDesktop from '~/components/modules/list/field-mapper-desktop';\nimport FieldMapperMobile from '~/components/modules/list/field-mapper-mobile';\nimport ItemExpandCard from '~/components/modules/list/item-expand-card/index';\nimport RecruiterDetails from '~/components/modules/list/item-expand-card/recruiter-details';\nimport RecruiterHeadshot from '~/components/modules/list/item-expand-card/recruiter-headshot';\nimport RecruiterContactNav from '~/components/modules/list/item-expand-card/recruiter-contact-nav';\n\nimport ListingDetails from '~/components/modules/jobListing/listing-details';\n\nimport Accordion from '~/components/modules/accordions/default';\nimport FiltersAccordion from '~/components/modules/accordions/filters';\nimport FilterItemAccordion from '~/components/modules/accordions/filterItem';\nimport MapAccordionItem from '~/components/modules/accordions/MapAccordionItem';\n\nimport Button from '~/components/modules/buttons/default';\nimport ButtonGroupApply from '~/components/modules/buttons/button-group-apply';\nimport ItemsPill from '~/components/modules/buttons/items-pill';\nimport PillWrapper from '~/components/modules/buttons/pill-wrapper';\nimport ShowAllButton from '~/components/modules/buttons/show-all-button';\n\nimport Card from '~/components/modules/cards/default';\nimport CardFilter from '~/components/modules/cards/filter';\n\nimport ApplyDialog from '~/components/modules/dialogs/apply-dialog';\n\nimport Grid from '~/components/modules/grid';\nimport Icon from '~/components/modules/icon';\n\n/**\n * Default component registry - all available components in the library\n */\nexport const defaultComponents = {\n\t// Map components\n\tMapList,\n\tMapTabs,\n\tMap,\n\tPlaceMarker,\n\tMapMarker,\n\tInfoWindowCard,\n\tInfoWindowContent,\n\n\t// Filter components\n\tFilter,\n\tFilterItem,\n\tFilterSearch,\n\tFilterLocation,\n\tFilterCommute,\n\tFilterRadioItem,\n\tFilterSort,\n\n\t// List components\n\tListItem,\n\tItemsList,\n\tListHeader,\n\tListHeaderItem,\n\tFieldMapperDesktop,\n\tFieldMapperMobile,\n\tItemExpandCard,\n\tRecruiterDetails,\n\tRecruiterHeadshot,\n\tRecruiterContactNav,\n\n\t// Job listing components\n\tListingDetails,\n\n\t// Accordion components\n\tAccordion,\n\tFiltersAccordion,\n\tFilterItemAccordion,\n\tMapAccordionItem,\n\n\t// Button components\n\tButton,\n\tButtonGroupApply,\n\tItemsPill,\n\tPillWrapper,\n\tShowAllButton,\n\n\t// Card components\n\tCard,\n\tCardFilter,\n\n\t// Dialog components\n\tApplyDialog,\n\n\t// Utility components\n\tGrid,\n\tIcon,\n};\n\n/**\n * Type for component overrides\n * Users can override any component by passing a custom implementation\n */\nexport type ComponentOverrides = Partial<typeof defaultComponents>;\n\n/**\n * Component registry type - combines defaults with overrides\n */\nexport type ComponentRegistry = typeof defaultComponents;\n\ninterface ComponentProviderProps {\n\tchildren: React.ReactNode;\n\tcomponents?: ComponentOverrides;\n}\n\n/**\n * Context for accessing components throughout the app\n */\nconst ComponentContext = createContext<ComponentRegistry>(defaultComponents);\n\n/**\n * ComponentProvider - Provides component registry with optional overrides\n *\n * @example\n * ```tsx\n * // Using default components\n * <ComponentProvider>\n * <HireControlMap />\n * </ComponentProvider>\n *\n * // With custom components\n * <ComponentProvider components={{\n * Filter: MyCustomFilter,\n * ListItem: MyCustomListItem\n * }}>\n * <HireControlMap />\n * </ComponentProvider>\n * ```\n */\nexport const ComponentProvider: React.FC<ComponentProviderProps> = ({\n\tchildren,\n\tcomponents = {}\n}) => {\n\t// Merge default components with custom overrides\n\tconst componentRegistry = useMemo(() => ({\n\t\t...defaultComponents,\n\t\t...components,\n\t}), [components]);\n\n\treturn (\n\t\t<ComponentContext.Provider value={componentRegistry}>\n\t\t\t{children}\n\t\t</ComponentContext.Provider>\n\t);\n};\n\n/**\n * Hook to access component registry\n *\n * @example\n * ```tsx\n * const { Filter, ListItem } = useComponents();\n * return <Filter {...props} />;\n * ```\n */\nexport const useComponents = (): ComponentRegistry => {\n\tconst context = useContext(ComponentContext);\n\tif (!context) {\n\t\tthrow new Error('useComponents must be used within a ComponentProvider');\n\t}\n\treturn context;\n};\n\n/**\n * HOC to inject specific components as props\n * Useful for containers that need specific components\n *\n * @example\n * ```tsx\n * const MyContainer = withComponents(['Filter', 'ListItem'])(({ Filter, ListItem, ...props }) => {\n * return (\n * <div>\n * <Filter {...filterProps} />\n * <ListItem {...itemProps} />\n * </div>\n * );\n * });\n * ```\n */\nexport const withComponents = <T extends (keyof ComponentRegistry)[]>(\n\tcomponentKeys: T\n) => {\n\treturn <P extends object>(\n\t\tComponent: React.ComponentType<P & Pick<ComponentRegistry, T[number]>>\n\t) => {\n\t\tconst WrappedComponent = (props: P) => {\n\t\t\tconst components = useComponents();\n\t\t\tconst selectedComponents = componentKeys.reduce((acc, key) => {\n\t\t\t\t(acc as any)[key] = components[key];\n"],"names":["InfoWindowCard","FilterSearch","FilterRadioItem","ListHeaderItem","ItemExpandCard","FiltersAccordion","FilterItemAccordion","ItemsPill","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA;;AAEG;AACU,MAAA,iBAAiB,GAAG;;IAEhC,OAAO;IACP,OAAO;IACP,GAAG;IACH,WAAW;IACX,SAAS;oBACTA,cAAc;IACd,iBAAiB;;IAGjB,MAAM;IACN,UAAU;kBACVC,MAAY;IACZ,cAAc;IACd,aAAa;qBACbC,SAAe;IACf,UAAU;;IAGV,QAAQ;IACR,SAAS;IACT,UAAU;oBACVC,UAAc;IACd,kBAAkB;IAClB,iBAAiB;oBACjBC,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;;IAGnB,cAAc;;IAGd,SAAS;sBACTC,gBAAgB;yBAChBC,mBAAmB;IACnB,gBAAgB;;IAGhB,MAAM;IACN,gBAAgB;eAChBC,eAAS;IACT,WAAW;IACX,aAAa;;IAGb,IAAI;IACJ,UAAU;;IAGV,WAAW;;IAGX,IAAI;UACJC,aAAI;EACH;AAkBF;;AAEG;AACH,MAAM,gBAAgB,GAAG,aAAa,CAAoB,iBAAiB,CAAC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;AAkBG;AACI,MAAM,iBAAiB,GAAqC,CAAC,EACnE,QAAQ,EACR,UAAU,GAAG,EAAE,EACf,KAAI;;AAEJ,IAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO;AACxC,QAAA,GAAG,iBAAiB;AACpB,QAAA,GAAG,UAAU;AACb,KAAA,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAElB,IAAA,QACC,KAAA,CAAA,aAAA,CAAC,gBAAgB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,iBAAiB,EAAA,EACjD,QAAQ,CACkB,EAC3B;AACH,EAAE;AAEF;;;;;;;;AAQG;AACI,MAAM,aAAa,GAAG,MAAwB;AACpD,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE;AACb,QAAA,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;AACzE,KAAA;AACD,IAAA,OAAO,OAAO,CAAC;AAChB,EAAE;AAEF;;;;;;;;;;;;;;;AAeG;AACU,MAAA,cAAc,GAAG,CAC7B,aAAgB,KACb;IACH,OAAO,CACN,SAAsE,KACnE;AAKL,KAAC,CADuC;AACxC;;;;"}
|
|
1
|
+
{"version":3,"file":"componentContext.js","sources":["../../src/contexts/componentContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useMemo } from 'react';\n\n// Import all default components\nimport MapList from '~/components/modules/maps/map-list';\nimport MapTabs from '~/components/modules/maps/tabs';\nimport Map from '~/components/modules/maps/map';\nimport PlaceMarker from '~/components/modules/maps/place-marker';\nimport MapMarker from '~/components/modules/maps/map-marker';\nimport InfoWindowCard from '~/components/modules/maps/info-window-card';\nimport InfoWindowContent from '~/components/modules/maps/info-window-content';\n\nimport Filter from '~/components/modules/filter/index';\nimport FilterItem from '~/components/modules/filter/item';\nimport FilterSearch from '~/components/modules/filter/search';\nimport FilterLocation from '~/components/modules/filter/location';\nimport FilterCommute from '~/components/modules/filter/commute';\nimport FilterRadioItem from '~/components/modules/filter/radio-item';\nimport FilterSort from '~/components/modules/filter/sort';\n\nimport ListItem from '~/components/modules/list/list-item/list-item';\nimport ItemsList from '~/components/modules/list/item-list';\nimport ListHeader from '~/components/modules/list/header';\nimport ListHeaderItem from '~/components/modules/list/header-item';\nimport FieldMapperDesktop from '~/components/modules/list/field-mapper-desktop';\nimport FieldMapperMobile from '~/components/modules/list/field-mapper-mobile';\nimport ItemExpandCard from '~/components/modules/list/item-expand-card/index';\nimport RecruiterDetails from '~/components/modules/list/item-expand-card/recruiter-details';\nimport RecruiterHeadshot from '~/components/modules/list/item-expand-card/recruiter-headshot';\nimport RecruiterContactNav from '~/components/modules/list/item-expand-card/recruiter-contact-nav';\n\nimport ListingDetails from '~/components/modules/jobListing/listing-details';\n\nimport Accordion from '~/components/modules/accordions/default';\nimport FiltersAccordion from '~/components/modules/accordions/filters';\nimport FilterItemAccordion from '~/components/modules/accordions/filterItem';\nimport MapAccordionItem from '~/components/modules/accordions/MapAccordionItem';\n\nimport Button from '~/components/modules/buttons/default';\nimport ButtonGroupApply from '~/components/modules/buttons/button-group-apply';\nimport ItemsPill from '~/components/modules/buttons/items-pill';\nimport PillWrapper from '~/components/modules/buttons/pill-wrapper';\nimport ShowAllButton from '~/components/modules/buttons/show-all-button';\n\nimport Card from '~/components/modules/cards/default';\nimport CardFilter from '~/components/modules/cards/filter';\n\nimport ApplyDialog from '~/components/modules/dialogs/apply-dialog';\n\nimport Grid from '~/components/modules/grid';\nimport Icon from '~/components/modules/icon';\n\n// Import all default containers\nimport MapContainer from '~/components/containers/maps/map-container';\nimport MapListContainer from '~/components/containers/maps/map-list-container';\nimport MapMarkerContainer from '~/components/containers/maps/map-marker-container';\nimport InfoWindowContentContainer from '~/components/containers/maps/info-window-content-container';\n\nimport FilterContainer from '~/components/containers/filter/filter-container';\nimport FilterItemContainer from '~/components/containers/filter/filter-item-container';\nimport FilterSearchContainer from '~/components/containers/filter/search-container';\nimport FilterLocationContainer from '~/components/containers/filter/location-container';\nimport FilterCommuteContainer from '~/components/containers/filter/commute-container';\nimport FilterPointsOfInterestContainer from '~/components/containers/filter/points-of-interest-container';\nimport FilterPointsOfInterestRadioItemContainer from '~/components/containers/filter/points-of-interest-radio-item-container';\n\nimport ItemListContainer from '~/components/containers/list/item-list-container';\nimport ListItemContainer from '~/components/containers/list/list-item/list-item-container';\n\nimport ListingDetailsContainer from '~/components/containers/jobListing/listing-details-container';\n\nimport AccordionFilterContainer from '~/components/containers/accordions/filter-container';\nimport AccordionFilterItemContainer from '~/components/containers/accordions/filter-item-container';\nimport AccordionMapItemContainer from '~/components/containers/accordions/map-accordion-item-container';\n\n/**\n * Default component registry - all available UI components (modules)\n */\nexport const defaultComponents = {\n\t// Map components\n\tMapList,\n\tMapTabs,\n\tMap,\n\tPlaceMarker,\n\tMapMarker,\n\tInfoWindowCard,\n\tInfoWindowContent,\n\n\t// Filter components\n\tFilter,\n\tFilterItem,\n\tFilterSearch,\n\tFilterLocation,\n\tFilterCommute,\n\tFilterRadioItem,\n\tFilterSort,\n\n\t// List components\n\tListItem,\n\tItemsList,\n\tListHeader,\n\tListHeaderItem,\n\tFieldMapperDesktop,\n\tFieldMapperMobile,\n\tItemExpandCard,\n\tRecruiterDetails,\n\tRecruiterHeadshot,\n\tRecruiterContactNav,\n\n\t// Job listing components\n\tListingDetails,\n\n\t// Accordion components\n\tAccordion,\n\tFiltersAccordion,\n\tFilterItemAccordion,\n\tMapAccordionItem,\n\n\t// Button components\n\tButton,\n\tButtonGroupApply,\n\tItemsPill,\n\tPillWrapper,\n\tShowAllButton,\n\n\t// Card components\n\tCard,\n\tCardFilter,\n\n\t// Dialog components\n\tApplyDialog,\n\n\t// Utility components\n\tGrid,\n\tIcon,\n};\n\n/**\n * Default container registry - all available logic containers\n */\nexport const defaultContainers = {\n\t// Map containers\n\tMapContainer,\n\tMapListContainer,\n\tMapMarkerContainer,\n\tInfoWindowContentContainer,\n\n\t// Filter containers\n\tFilterContainer,\n\tFilterItemContainer,\n\tFilterSearchContainer,\n\tFilterLocationContainer,\n\tFilterCommuteContainer,\n\tFilterPointsOfInterestContainer,\n\tFilterPointsOfInterestRadioItemContainer,\n\n\t// List containers\n\tItemListContainer,\n\tListItemContainer,\n\n\t// Job listing containers\n\tListingDetailsContainer,\n\n\t// Accordion containers\n\tAccordionFilterContainer,\n\tAccordionFilterItemContainer,\n\tAccordionMapItemContainer,\n};\n\n/**\n * Combined component registry - includes both modules and containers\n */\nexport const defaultComponentRegistry = {\n\t...defaultComponents,\n\t...defaultContainers,\n};\n\n/**\n * Type for component overrides\n * Users can override any component or container by passing a custom implementation\n */\nexport type ComponentOverrides = Partial<typeof defaultComponentRegistry>;\n\n/**\n * Component registry type - combines defaults with overrides\n */\nexport type ComponentRegistry = typeof defaultComponentRegistry;\n\ninterface ComponentProviderProps {\n\tchildren: React.ReactNode;\n\tcomponents?: ComponentOverrides;\n}\n\n/**\n * Context for accessing components throughout the app\n */\nconst ComponentContext = createContext<ComponentRegistry>(defaultComponentRegistry);\n\n/**\n * ComponentProvider - Provides component registry with optional overrides\n *\n * @example\n * ```tsx\n * // Using default components\n * <ComponentProvider>\n * <HireControlMap />\n * </ComponentProvider>\n *\n * // With custom components/containers\n * <ComponentProvider components={{\n * Filter: MyCustomFilter,\n * ListItem: MyCustomListItem,\n * MapContainer: MyCustomMapContainer\n * }}>\n * <HireControlMap />\n * </ComponentProvider>\n * ```\n */\nexport const ComponentProvider: React.FC<ComponentProviderProps> = ({\n\tchildren,\n\tcomponents = {}\n}) => {\n\t// Merge default components with custom overrides\n\tconst componentRegistry = useMemo(() => ({\n\t\t...defaultComponentRegistry,\n\t\t...components,\n\t}), [components]);\n\n\treturn (\n\t\t<ComponentContext.Provider value={componentRegistry}>\n\t\t\t{children}\n\t\t</ComponentContext.Provider>\n\t);\n};\n\n/**\n * Hook to access component registry\n *\n * @example\n * ```tsx\n * const { Filter, ListItem } = useComponents();\n * return <Filter {...props} />;\n * ```\n */\nexport const useComponents = (): ComponentRegistry => {\n\tconst context = useContext(ComponentContext);\n\tif (!context) {\n\t\tthrow new Error('useComponents must be used within a ComponentProvider');\n\t}\n\treturn context;\n};\n\n/**\n * HOC to inject specific components as props\n * Useful for containers that need specific components\n *\n * @example\n * ```tsx\n * const MyContainer = withComponents(['Filter', 'ListItem'])(({ Filter, ListItem, ...props }) => {\n * return (\n * <div>\n * <Filter {...filterProps} />\n * <ListItem {...itemProps} />\n * </div>\n * );\n * });\n * ```\n */\nexport const withComponents = <T extends (keyof ComponentRegistry)[]>(\n\tcomponentKeys: T\n) => {\n\treturn <P extends object>(\n\t\tComponent: React.ComponentType<P & Pick<ComponentRegistry, T[number]>>\n\t) => {\n\t\tconst WrappedComponent = (props: P) => {\n\t\t\tconst components = useComponents();\n\t\t\tconst selectedComponents = componentKeys.reduce((acc, key) => {\n\t\t\t\tacc[key] = components[key];\n\t\t\t\treturn acc;\n\t\t\t}, {} as Pick<ComponentRegistry, T[number]>);\n\n\t\t\treturn <Component {...props} {...selectedComponents} />;\n\t\t};\n\n\t\tWrappedComponent.displayName = `withComponents(${Component.displayName || Component.name || 'Component'})`;\n\n\t\treturn WrappedComponent;\n\t};\n};\n\nexport default ComponentProvider;\n"],"names":["InfoWindowCard","FilterSearch","FilterRadioItem","ListHeaderItem","ItemExpandCard","FiltersAccordion","FilterItemAccordion","ItemsPill","Icon","FilterSearchContainer","FilterPointsOfInterestRadioItemContainer","ItemListContainer","AccordionFilterContainer","AccordionMapItemContainer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EA;;AAEG;AACU,MAAA,iBAAiB,GAAG;;IAEhC,OAAO;IACP,OAAO;IACP,GAAG;IACH,WAAW;IACX,SAAS;oBACTA,cAAc;IACd,iBAAiB;;IAGjB,MAAM;IACN,UAAU;kBACVC,MAAY;IACZ,cAAc;IACd,aAAa;qBACbC,SAAe;IACf,UAAU;;IAGV,QAAQ;IACR,SAAS;IACT,UAAU;oBACVC,UAAc;IACd,kBAAkB;IAClB,iBAAiB;oBACjBC,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;;IAGnB,cAAc;;IAGd,SAAS;sBACTC,gBAAgB;yBAChBC,mBAAmB;IACnB,gBAAgB;;IAGhB,MAAM;IACN,gBAAgB;eAChBC,eAAS;IACT,WAAW;IACX,aAAa;;IAGb,IAAI;IACJ,UAAU;;IAGV,WAAW;;IAGX,IAAI;UACJC,aAAI;EACH;AAEF;;AAEG;AACU,MAAA,iBAAiB,GAAG;;IAEhC,YAAY;IACZ,gBAAgB;IAChB,kBAAkB;IAClB,0BAA0B;;IAG1B,eAAe;IACf,mBAAmB;2BACnBC,eAAqB;IACrB,uBAAuB;IACvB,sBAAsB;IACtB,+BAA+B;8CAC/BC,kBAAwC;;uBAGxCC,kBAAiB;IACjB,iBAAiB;;IAGjB,uBAAuB;;8BAGvBC,yBAAwB;IACxB,4BAA4B;+BAC5BC,yBAAyB;EACxB;AAEF;;AAEG;AACU,MAAA,wBAAwB,GAAG;AACvC,IAAA,GAAG,iBAAiB;AACpB,IAAA,GAAG,iBAAiB;EACnB;AAkBF;;AAEG;AACH,MAAM,gBAAgB,GAAG,aAAa,CAAoB,wBAAwB,CAAC,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;AAmBG;AACI,MAAM,iBAAiB,GAAqC,CAAC,EACnE,QAAQ,EACR,UAAU,GAAG,EAAE,EACf,KAAI;;AAEJ,IAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO;AACxC,QAAA,GAAG,wBAAwB;AAC3B,QAAA,GAAG,UAAU;AACb,KAAA,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAElB,IAAA,QACC,KAAA,CAAA,aAAA,CAAC,gBAAgB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,iBAAiB,EAAA,EACjD,QAAQ,CACkB,EAC3B;AACH,EAAE;AAEF;;;;;;;;AAQG;AACI,MAAM,aAAa,GAAG,MAAwB;AACpD,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE;AACb,QAAA,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;AACzE,KAAA;AACD,IAAA,OAAO,OAAO,CAAC;AAChB,EAAE;AAEF;;;;;;;;;;;;;;;AAeG;AACU,MAAA,cAAc,GAAG,CAC7B,aAAgB,KACb;IACH,OAAO,CACN,SAAsE,KACnE;AACH,QAAA,MAAM,gBAAgB,GAAG,CAAC,KAAQ,KAAI;AACrC,YAAA,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;gBAC5D,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3B,gBAAA,OAAO,GAAG,CAAC;aACX,EAAE,EAAwC,CAAC,CAAC;AAE7C,YAAA,OAAO,oBAAC,SAAS,EAAA,EAAA,GAAK,KAAK,EAAM,GAAA,kBAAkB,GAAI,CAAC;AACzD,SAAC,CAAC;AAEF,QAAA,gBAAgB,CAAC,WAAW,GAAG,CAAA,eAAA,EAAkB,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC;AAE3G,QAAA,OAAO,gBAAgB,CAAC;AACzB,KAAC,CAAC;AACH;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React__default, { createContext, useContext, useState, useRef, useEffect } from 'react';
|
|
2
2
|
import { getStorageObject, setStorageObject } from '../util/localStorageUtil.js';
|
|
3
3
|
|
|
4
4
|
const MapContext = createContext(undefined);
|
|
@@ -9,59 +9,32 @@ const useMap = () => {
|
|
|
9
9
|
}
|
|
10
10
|
return context;
|
|
11
11
|
};
|
|
12
|
-
const MapProvider = ({ children, resetFilters, defaultZoomOverride
|
|
13
|
-
|
|
14
|
-
const [
|
|
15
|
-
const [
|
|
16
|
-
const [
|
|
17
|
-
const [zoom, setZoom] = useState(9);
|
|
12
|
+
const MapProvider = ({ children, resetFilters, defaultZoomOverride }) => {
|
|
13
|
+
const [selectedListItem, setSelectedListItem] = useState(getStorageObject('selectedListItem'));
|
|
14
|
+
const [location, setLocation] = useState(getStorageObject('location'));
|
|
15
|
+
const [center, setCenter] = useState(getStorageObject("center", { lat: 39.8283, lng: -98.5795 }) || { lat: 39.8283, lng: -98.5795 });
|
|
16
|
+
const [zoom, setZoom] = useState(getStorageObject("zoom", 9) || 9);
|
|
18
17
|
const [selectedPlaces, setSelectedPlaces] = useState([]);
|
|
19
18
|
const [mapInteracted, setMapInteracted] = useState(false);
|
|
20
|
-
const [firstLoadListItem
|
|
19
|
+
const [firstLoadListItem] = useState(getStorageObject('selectedListItem', { id: "defaultId" }));
|
|
21
20
|
const userSetZoom = useRef(true);
|
|
22
|
-
const [hasMounted, setHasMounted] = useState(false);
|
|
23
|
-
// Load from localStorage after mount to avoid hydration mismatch
|
|
24
21
|
useEffect(() => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const storedLocation = getStorageObject(localStorageKey + 'location');
|
|
28
|
-
const storedCenter = getStorageObject(localStorageKey + "center", { lat: 39.8283, lng: -98.5795 });
|
|
29
|
-
const storedZoom = getStorageObject(localStorageKey + "zoom", 9);
|
|
30
|
-
const storedFirstLoad = getStorageObject(localStorageKey + 'selectedListItem', { id: "defaultId" });
|
|
31
|
-
if (storedItem)
|
|
32
|
-
setSelectedListItem(storedItem);
|
|
33
|
-
if (storedLocation)
|
|
34
|
-
setLocation(storedLocation);
|
|
35
|
-
if (storedCenter)
|
|
36
|
-
setCenter(storedCenter);
|
|
37
|
-
if (storedZoom)
|
|
38
|
-
setZoom(storedZoom);
|
|
39
|
-
if (storedFirstLoad)
|
|
40
|
-
setFirstLoadListItem(storedFirstLoad);
|
|
41
|
-
setHasMounted(true);
|
|
42
|
-
}
|
|
43
|
-
}, [localStorageKey]);
|
|
22
|
+
setStorageObject("selectedListItem", selectedListItem);
|
|
23
|
+
}, [selectedListItem]);
|
|
44
24
|
useEffect(() => {
|
|
45
|
-
|
|
46
|
-
}, [
|
|
25
|
+
localStorage.setItem("zoom", zoom.toString());
|
|
26
|
+
}, [zoom]);
|
|
47
27
|
useEffect(() => {
|
|
48
|
-
if (
|
|
49
|
-
localStorage.
|
|
28
|
+
if (location == null) {
|
|
29
|
+
localStorage.removeItem("location");
|
|
50
30
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (typeof window !== 'undefined') {
|
|
54
|
-
if (location == null) {
|
|
55
|
-
localStorage.removeItem(localStorageKey + "location");
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
setStorageObject(localStorageKey + "location", location);
|
|
59
|
-
}
|
|
31
|
+
else {
|
|
32
|
+
setStorageObject("location", location);
|
|
60
33
|
}
|
|
61
|
-
}, [location
|
|
34
|
+
}, [location]);
|
|
62
35
|
useEffect(() => {
|
|
63
|
-
setStorageObject(
|
|
64
|
-
}, [center
|
|
36
|
+
setStorageObject("center", center);
|
|
37
|
+
}, [center]);
|
|
65
38
|
const selectItem = (item, itemLocation, zoom, center) => {
|
|
66
39
|
setSelectedListItem(item);
|
|
67
40
|
if (mapInteracted === false && itemLocation != null) {
|
|
@@ -88,13 +61,11 @@ const MapProvider = ({ children, resetFilters, defaultZoomOverride, localStorage
|
|
|
88
61
|
}
|
|
89
62
|
}, [resetFilters]);
|
|
90
63
|
const selectLocationEntity = (location) => {
|
|
91
|
-
|
|
92
|
-
localStorage.removeItem(localStorageKey + "selectedListItem");
|
|
93
|
-
}
|
|
64
|
+
localStorage.removeItem("selectedListItem");
|
|
94
65
|
setTimeout(() => setLocation(location), 200);
|
|
95
66
|
setSelectedListItem(null);
|
|
96
67
|
};
|
|
97
|
-
return (
|
|
68
|
+
return (React__default.createElement(MapContext.Provider, { value: {
|
|
98
69
|
selectedListItem,
|
|
99
70
|
setSelectedListItem,
|
|
100
71
|
location,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapContext.js","sources":["../../src/contexts/mapContext.tsx"],"sourcesContent":["import React, { createContext, useState, useContext, useEffect, useRef, ReactNode } from 'react';\nimport { getStorageObject, setStorageObject } from '~/util/localStorageUtil';\nimport { Listing } from '~/types/Listings';\nimport { LatLng } from '~/types/LatLng';\ninterface IMapContext {\n selectedListItem: Listing | null;\n setSelectedListItem: (item: Listing | null) => void;\n location: any | null;\n setLocation: (location: LatLng | null) => void;\n center: LatLng;\n setCenter: (center: LatLng) => void;\n zoom: number;\n setZoom: (zoom: number) => void;\n selectedPlaces: string[];\n setSelectedPlaces: (places: string[]) => void;\n mapInteracted: boolean;\n setMapInteracted: (interacted: boolean) => void;\n userSetZoom: React.MutableRefObject<boolean>;\n firstLoadListItem: any;\n selectItem: (item: Listing, itemLocation: LatLng | null, zoom: number, center: LatLng) => void;\n filterReset: () => void;\n selectLocationEntity: (location: LatLng) => void;\n\tdefaultZoomOverride?: number | null;\n}\n\nconst MapContext = createContext<IMapContext | undefined>(undefined);\n\nexport const useMap = () => {\n\tconst context = useContext(MapContext);\n\tif (!context) {\n\t\tthrow new Error(\"useMap must be used within a MapProvider\");\n\t}\n\treturn context;\n};\n\ninterface MapProviderProps {\n children: ReactNode;\n resetFilters: boolean;\n\tdefaultZoomOverride?: number | null;\n
|
|
1
|
+
{"version":3,"file":"mapContext.js","sources":["../../src/contexts/mapContext.tsx"],"sourcesContent":["import React, { createContext, useState, useContext, useEffect, useRef, ReactNode } from 'react';\nimport { getStorageObject, setStorageObject } from '~/util/localStorageUtil';\nimport { Listing } from '~/types/Listings';\nimport { LatLng } from '~/types/LatLng';\ninterface IMapContext {\n selectedListItem: Listing | null;\n setSelectedListItem: (item: Listing | null) => void;\n location: any | null;\n setLocation: (location: LatLng | null) => void;\n center: LatLng;\n setCenter: (center: LatLng) => void;\n zoom: number;\n setZoom: (zoom: number) => void;\n selectedPlaces: string[];\n setSelectedPlaces: (places: string[]) => void;\n mapInteracted: boolean;\n setMapInteracted: (interacted: boolean) => void;\n userSetZoom: React.MutableRefObject<boolean>;\n firstLoadListItem: any;\n selectItem: (item: Listing, itemLocation: LatLng | null, zoom: number, center: LatLng) => void;\n filterReset: () => void;\n selectLocationEntity: (location: LatLng) => void;\n\tdefaultZoomOverride?: number | null;\n}\n\nconst MapContext = createContext<IMapContext | undefined>(undefined);\n\nexport const useMap = () => {\n\tconst context = useContext(MapContext);\n\tif (!context) {\n\t\tthrow new Error(\"useMap must be used within a MapProvider\");\n\t}\n\treturn context;\n};\n\ninterface MapProviderProps {\n children: ReactNode;\n resetFilters: boolean;\n\tdefaultZoomOverride?: number | null;\n}\n\nexport const MapProvider: React.FC<MapProviderProps> = ({ children, resetFilters, defaultZoomOverride }) => {\n\tconst [selectedListItem, setSelectedListItem] = useState<Listing | null>(getStorageObject('selectedListItem'));\n\tconst [location, setLocation] = useState<any>(getStorageObject('location'));\n\tconst [center, setCenter] = useState<LatLng>(getStorageObject(\"center\", { lat: 39.8283, lng: -98.5795 }) || { lat: 39.8283, lng: -98.5795 });\n\tconst [zoom, setZoom] = useState<number>(getStorageObject(\"zoom\", 9) || 9);\n\tconst [selectedPlaces, setSelectedPlaces] = useState<string[]>([]);\n\tconst [mapInteracted, setMapInteracted] = useState<boolean>(false);\n\tconst [firstLoadListItem] = useState<any>(getStorageObject('selectedListItem', { id: \"defaultId\" }));\n\tconst userSetZoom = useRef<boolean>(true);\n\n\tuseEffect(() => {\n\t\tsetStorageObject(\"selectedListItem\", selectedListItem);\n\t}, [selectedListItem]);\n\n\tuseEffect(() => {\n\t\tlocalStorage.setItem(\"zoom\", zoom.toString());\n\t}, [zoom]);\n\n\tuseEffect(() => {\n\t\tif (location == null) {\n\t\t\tlocalStorage.removeItem(\"location\");\n\t\t} else {\n\t\t\tsetStorageObject(\"location\", location);\n\t\t}\n\t}, [location]);\n\n\tuseEffect(() => {\n\t\tsetStorageObject(\"center\", center);\n\t}, [center]);\n\n\tconst selectItem = (item: Listing, itemLocation: LatLng | null, zoom: number, center: LatLng) => {\n\t\tsetSelectedListItem(item);\n\t\tif (mapInteracted === false && itemLocation != null) {\n\t\t\tsetLocation(itemLocation);\n\t\t}\n\t\tif (mapInteracted === false || itemLocation != null) {\n\t\t\tsetLocation(itemLocation);\n\t\t\tsetCenter(center);\n\t\t}\n\t\tif (mapInteracted === false) {\n\t\t\tsetZoom(zoom);\n\t\t}\n\t};\n\n\tconst filterReset = () => {\n\t\tsetSelectedPlaces([]);\n\t\tsetSelectedListItem(null);\n\t\tsetLocation(null);\n\t\tsetZoom(8);\n\t\tsetMapInteracted(false);\n\t};\n\n\tuseEffect(() => {\n\t\tif (resetFilters === true) {\n\t\t\tfilterReset();\n\t\t}\n\t}, [resetFilters]);\n\n\tconst selectLocationEntity = (location: LatLng) => {\n\t\tlocalStorage.removeItem(\"selectedListItem\");\n\t\tsetTimeout(() => setLocation(location), 200);\n\t\tsetSelectedListItem(null);\n\t};\n\n\treturn (\n\t\t<MapContext.Provider\n\t\t\tvalue={{\n\t\t\t\tselectedListItem,\n\t\t\t\tsetSelectedListItem,\n\t\t\t\tlocation,\n\t\t\t\tcenter,\n\t\t\t\tsetCenter,\n\t\t\t\tzoom,\n\t\t\t\tsetZoom,\n\t\t\t\tselectItem,\n\t\t\t\tsetSelectedPlaces,\n\t\t\t\tselectedPlaces,\n\t\t\t\tselectLocationEntity,\n\t\t\t\tsetLocation,\n\t\t\t\tsetMapInteracted,\n\t\t\t\tmapInteracted,\n\t\t\t\tuserSetZoom,\n\t\t\t\tfirstLoadListItem,\n\t\t\t\tfilterReset,\n\t\t\t\tdefaultZoomOverride\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</MapContext.Provider>\n\t);\n};\n"],"names":["React"],"mappings":"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"}
|