@abcagency/hc-ui-components 1.9.35 → 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 +58 -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 -271
- 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 -373
- 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 -226
- package/src/styles/components.css +0 -30
- package/src/util/algoliaSearchUtil.js +0 -151
- package/src/util/twMerge.js +0 -6
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import React, { useEffect, useRef } from "react";
|
|
4
|
-
import
|
|
4
|
+
import MapMarker from "~/components/modules/maps/map-marker";
|
|
5
5
|
import { InfoWindow } from "@react-google-maps/api";
|
|
6
|
+
import InfoWindowCard from "~/components/modules/maps/info-window-card";
|
|
6
7
|
import InfoWindowContent from "~/components/containers/maps/info-window-content-container";
|
|
7
8
|
|
|
8
9
|
import { useMap } from "~/contexts/mapContext";
|
|
@@ -20,9 +21,6 @@ const MapMarkerContainer = ({
|
|
|
20
21
|
selectedLocation,
|
|
21
22
|
setMapInteracted
|
|
22
23
|
}) => {
|
|
23
|
-
// Get injected components from context
|
|
24
|
-
const { MapMarker, InfoWindowCard } = useComponents();
|
|
25
|
-
|
|
26
24
|
const { setLocation, commuteLocation } = useMap();
|
|
27
25
|
const isSelected = item.id === selectedLocation?.id;
|
|
28
26
|
const markerRef = useRef(null);
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Accordion from '~/components/modules/accordions/default';
|
|
3
|
-
import { twMerge } from '~/util/twMerge';
|
|
4
|
-
import { useMapList } from '~/contexts/mapListContext';
|
|
5
3
|
|
|
6
4
|
const AccordionFilterItem = ({
|
|
7
5
|
id,
|
|
@@ -9,28 +7,17 @@ const AccordionFilterItem = ({
|
|
|
9
7
|
header,
|
|
10
8
|
body
|
|
11
9
|
}) => {
|
|
12
|
-
const { filterConfig } = useMapList();
|
|
13
|
-
|
|
14
10
|
return (
|
|
15
11
|
<Accordion.Item key={id} id={id}>
|
|
16
12
|
<Accordion.Trigger.HasHeader
|
|
17
13
|
onClick={() => setDefaultValue(id)}
|
|
18
|
-
className=
|
|
19
|
-
"hc-stretched-link hc-text-left",
|
|
20
|
-
filterConfig?.classNames?.filterAccordion
|
|
21
|
-
)}
|
|
14
|
+
className="hc-stretched-link hc-text-left"
|
|
22
15
|
iconClassName="hc-order-last"
|
|
23
|
-
headerClassName=
|
|
24
|
-
"hc-relative hc-py-2 hc-rounded hc-border hc-border-uiAccent/20 hc-bg-white hc-text-sm hc-transition data-[state=open]:hc-border-b-transparent data-[state=open]:hc-rounded-b-none",
|
|
25
|
-
filterConfig?.classNames?.filterAccordionHeader
|
|
26
|
-
)}
|
|
16
|
+
headerClassName="hc-relative hc-py-2 hc-rounded hc-border hc-border-uiAccent/20 hc-bg-white hc-text-sm hc-transition data-[state=open]:hc-border-b-transparent data-[state=open]:hc-rounded-b-none"
|
|
27
17
|
>
|
|
28
18
|
{header}
|
|
29
19
|
</Accordion.Trigger.HasHeader>
|
|
30
|
-
<Accordion.Content bodyClassName=
|
|
31
|
-
"hc-px-2 hc-py-1 hc-bg-white hc-rounded-b hc-border hc-border-uiAccent/20 hc-border-t-0 hc-max-h-[20vh] md:hc-max-h-[25vh] hc-overflow-auto",
|
|
32
|
-
filterConfig?.classNames?.filterAccordionContent
|
|
33
|
-
)}>
|
|
20
|
+
<Accordion.Content bodyClassName="hc-px-2 hc-py-1 hc-bg-white hc-rounded-b hc-border hc-border-uiAccent/20 hc-border-t-0 hc-max-h-[20vh] md:hc-max-h-[25vh] hc-overflow-auto">
|
|
34
21
|
{body}
|
|
35
22
|
</Accordion.Content>
|
|
36
23
|
</Accordion.Item>
|
|
@@ -2,34 +2,19 @@ import React from 'react';
|
|
|
2
2
|
import Accordion from '~/components/modules/accordions/default';
|
|
3
3
|
import FilterCard from '~/components/modules/cards/filter';
|
|
4
4
|
import Loading from '~/util/loading';
|
|
5
|
-
import Button from '~/components/modules/buttons/default';
|
|
6
5
|
|
|
7
6
|
const AccordionFilters = ({
|
|
8
7
|
className,
|
|
9
8
|
defaultValue,
|
|
10
9
|
children,
|
|
11
|
-
filterOptions
|
|
12
|
-
handleReset
|
|
10
|
+
filterOptions
|
|
13
11
|
}) => {
|
|
14
12
|
return (
|
|
15
13
|
<FilterCard className={className ?? ""}>
|
|
16
14
|
<FilterCard.Title icon="fa-solid:sliders-h">
|
|
17
|
-
<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
</span>
|
|
21
|
-
{handleReset && (
|
|
22
|
-
<Button.Btn
|
|
23
|
-
type="button"
|
|
24
|
-
variant="outline"
|
|
25
|
-
size="none"
|
|
26
|
-
onClick={handleReset}
|
|
27
|
-
className="hc-ml-auto hc-text-xs hc-px-2 hc-py-0.5"
|
|
28
|
-
>
|
|
29
|
-
Reset
|
|
30
|
-
</Button.Btn>
|
|
31
|
-
)}
|
|
32
|
-
</div>
|
|
15
|
+
<span>
|
|
16
|
+
Filter <span className="md:hc-hidden lg:hc-inline">your search</span>
|
|
17
|
+
</span>
|
|
33
18
|
</FilterCard.Title>
|
|
34
19
|
|
|
35
20
|
<Accordion defaultValue={defaultValue} className="hc-space-y-4" >
|
|
@@ -25,32 +25,27 @@ const ButtonGroupApply = ({
|
|
|
25
25
|
item,
|
|
26
26
|
companyName,
|
|
27
27
|
trackEvent,
|
|
28
|
-
eventTypes
|
|
29
|
-
mobileDetailsCallback = null
|
|
28
|
+
eventTypes
|
|
30
29
|
}) => {
|
|
31
30
|
const href = linkFormat.replace('[slug]', item.slug ?? item.id);
|
|
32
31
|
|
|
33
32
|
const trackApplyNow = () => {
|
|
34
33
|
//console.log('calling trackApplyNow');
|
|
35
|
-
trackEvent(eventTypes.APPLY_NOW_CLICKED, { jobCategory: item.fields.
|
|
34
|
+
trackEvent(eventTypes.APPLY_NOW_CLICKED, { jobCategory: item.fields.category, jobCategoryClass: item.fields.categoryClass, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
|
|
36
35
|
};
|
|
37
36
|
const trackApplyOpen = () => {
|
|
38
37
|
//console.log('calling trackApplyOpen');
|
|
39
|
-
trackEvent(eventTypes.APPLY_OPEN_CLICKED, { jobCategory: item.fields.
|
|
38
|
+
trackEvent(eventTypes.APPLY_OPEN_CLICKED, { jobCategory: item.fields.category, jobCategoryClass: item.fields.categoryClass, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
|
|
40
39
|
};
|
|
41
40
|
const trackEasyApply = () => {
|
|
42
41
|
//console.log('calling trackEasyApply');
|
|
43
|
-
trackEvent(eventTypes.EASY_APPLY_CLICKED, { jobCategory: item.fields.
|
|
42
|
+
trackEvent(eventTypes.EASY_APPLY_CLICKED, { jobCategory: item.fields.category, jobCategoryClass: item.fields.categoryClass, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
|
|
44
43
|
};
|
|
45
44
|
const trackViewDetails = () => {
|
|
46
45
|
//console.log('calling trackViewDetails');
|
|
47
|
-
trackEvent(eventTypes.VIEW_DETAILS_CLICKED, { jobCategory: item.fields.
|
|
46
|
+
trackEvent(eventTypes.VIEW_DETAILS_CLICKED, { jobCategory: item.fields.category, jobCategoryClass: item.fields.categoryClass, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
|
|
48
47
|
};
|
|
49
48
|
|
|
50
|
-
// Check if on mobile (same breakpoint as mobile callback check)
|
|
51
|
-
const isMobile = typeof window !== 'undefined' && window.innerWidth < 768;
|
|
52
|
-
const hideDetailsOnMobile = isMobile && mobileDetailsCallback;
|
|
53
|
-
|
|
54
49
|
return (
|
|
55
50
|
<nav
|
|
56
51
|
className={twMerge`
|
|
@@ -83,9 +78,9 @@ const ButtonGroupApply = ({
|
|
|
83
78
|
</Button.Anchor>
|
|
84
79
|
) : null}
|
|
85
80
|
|
|
86
|
-
{item.
|
|
81
|
+
{item.applyOnline == 1 && item.applyUrl && !includeDialog &&
|
|
87
82
|
<Button.Anchor
|
|
88
|
-
href={item.
|
|
83
|
+
href={item.applyUrl}
|
|
89
84
|
variant={applyButtonVariant}
|
|
90
85
|
size={buttonSize}
|
|
91
86
|
className={"map-apply-now-button"}
|
|
@@ -96,8 +91,8 @@ const ButtonGroupApply = ({
|
|
|
96
91
|
{applyNowText}
|
|
97
92
|
</Button.Anchor>
|
|
98
93
|
}
|
|
99
|
-
{item.
|
|
100
|
-
<ApplyDialog applyUrl={item.
|
|
94
|
+
{item.applyOnline == 1 && item.applyUrl && includeDialog &&
|
|
95
|
+
<ApplyDialog applyUrl={item.applyUrl} internalApplyLink={internalApplyLink} companyName={companyName} item={item} trackEvent={trackEvent} eventTypes={eventTypes} isIframe={isIframe}>
|
|
101
96
|
<Button.Anchor
|
|
102
97
|
variant={applyButtonVariant}
|
|
103
98
|
size={buttonSize}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React, { forwardRef } from 'react';
|
|
2
|
-
import { twMerge } from 'tailwind-merge';
|
|
3
2
|
|
|
4
3
|
import Button from '~/components/modules/buttons/default';
|
|
5
4
|
|
|
@@ -16,7 +15,7 @@ export const PillWrapper = forwardRef((
|
|
|
16
15
|
ref={ref}
|
|
17
16
|
size="none"
|
|
18
17
|
variant="none"
|
|
19
|
-
className={
|
|
18
|
+
className={`hc-relative hc-group hc-inline-flex hc-items-center hc-gap-px hc-ml-auto hc-mr-1.5 hc-pl-1.5 hc-pr-1 hc-py-0.5 hc-rounded hc-bg-primary/10 hc-text-xs hc-font-bold hc-text-primary hc-ring-1 hc-ring-inset hc-ring-primary/20 ${className}`}
|
|
20
19
|
{...props}
|
|
21
20
|
>
|
|
22
21
|
{children}
|
|
@@ -7,11 +7,11 @@ import Icon from '~/components/modules/icon';
|
|
|
7
7
|
const ApplyDialog = ({ children, applyUrl, internalApplyLink, companyName, item, trackEvent, eventTypes, isIframe }) => {
|
|
8
8
|
const trackApplyOption1 = () => {
|
|
9
9
|
//console.log('calling trackApplyOption1');
|
|
10
|
-
trackEvent(eventTypes.APPLY_OPTION_1_CLICKED, { jobCategory: item.fields.
|
|
10
|
+
trackEvent(eventTypes.APPLY_OPTION_1_CLICKED, { jobCategory: item.fields.category, jobCategoryClass: item.fields.categoryClass, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
|
|
11
11
|
};
|
|
12
12
|
const trackApplyOption2 = () => {
|
|
13
13
|
//console.log('calling trackApplyOption2');
|
|
14
|
-
trackEvent(eventTypes.APPLY_OPTION_2_CLICKED, { jobCategory: item.fields.
|
|
14
|
+
trackEvent(eventTypes.APPLY_OPTION_2_CLICKED, { jobCategory: item.fields.category, jobCategoryClass: item.fields.categoryClass, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
return (
|
|
@@ -57,14 +57,12 @@ const FilterCommute = ({
|
|
|
57
57
|
size="sqsm"
|
|
58
58
|
onClick={() => {
|
|
59
59
|
setIsCurrentLocation(!isCurrentLocation);
|
|
60
|
-
if (typeof window !== 'undefined') {
|
|
61
60
|
localStorage.setItem('isCurrentLocation', !isCurrentLocation);
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
}}
|
|
61
|
+
if (isCurrentLocation || commuteLocation) {
|
|
62
|
+
setCommuteLocation("");
|
|
63
|
+
setSelected("");
|
|
64
|
+
} else if (!commuteLocation) { fetchLocation(); }
|
|
65
|
+
}}
|
|
68
66
|
|
|
69
67
|
className=""
|
|
70
68
|
>
|
|
@@ -1,163 +1,76 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import Button from "~/components/modules/buttons/default";
|
|
3
|
-
import React
|
|
4
|
-
import { twMerge } from '~/util/twMerge';
|
|
5
|
-
import { useMapList } from "~/contexts/mapListContext";
|
|
6
|
-
|
|
3
|
+
import React from "react";
|
|
7
4
|
const Filter = ({
|
|
8
5
|
className,
|
|
9
6
|
hasActiveFilters,
|
|
10
7
|
filteredListings,
|
|
11
8
|
selectedFilters,
|
|
12
9
|
setMobileTab,
|
|
10
|
+
handleReset,
|
|
13
11
|
isDesktop = false,
|
|
14
12
|
style,
|
|
15
13
|
children
|
|
16
14
|
}) => {
|
|
17
|
-
const { filterConfig } = useMapList();
|
|
18
|
-
const contentRef = useRef(null);
|
|
19
|
-
const containerRef = useRef(null);
|
|
20
|
-
const [hasOverflow, setHasOverflow] = useState(false);
|
|
21
|
-
const [showFixedFooter, setShowFixedFooter] = useState(false);
|
|
22
|
-
const [hasMounted, setHasMounted] = useState(false);
|
|
23
|
-
const transitionTimeoutRef = useRef(null);
|
|
24
|
-
|
|
25
|
-
// Set mounted state to avoid hydration mismatch
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
setHasMounted(true);
|
|
28
|
-
}, []);
|
|
29
|
-
|
|
30
|
-
useEffect(() => {
|
|
31
|
-
if (typeof window === 'undefined' || !hasMounted) return;
|
|
32
|
-
|
|
33
|
-
const checkOverflow = () => {
|
|
34
|
-
if (contentRef.current) {
|
|
35
|
-
// Add a small tolerance (5px) to avoid false positives from rounding/padding
|
|
36
|
-
const hasScroll = contentRef.current.scrollHeight > contentRef.current.clientHeight + 5;
|
|
37
|
-
|
|
38
|
-
if (hasScroll !== hasOverflow) {
|
|
39
|
-
setHasOverflow(hasScroll);
|
|
40
|
-
|
|
41
|
-
// Clear any pending transitions
|
|
42
|
-
if (transitionTimeoutRef.current) {
|
|
43
|
-
clearTimeout(transitionTimeoutRef.current);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Add a delay when transitioning to fixed footer to smooth the transition
|
|
47
|
-
if (hasScroll) {
|
|
48
|
-
transitionTimeoutRef.current = setTimeout(() => setShowFixedFooter(true), 200);
|
|
49
|
-
} else {
|
|
50
|
-
// Delay hiding fixed footer to allow animation to complete and prevent flashing
|
|
51
|
-
transitionTimeoutRef.current = setTimeout(() => setShowFixedFooter(false), 200);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
// Delay initial check to ensure layout is complete
|
|
58
|
-
setTimeout(checkOverflow, 100);
|
|
59
|
-
|
|
60
|
-
// Check on resize
|
|
61
|
-
window.addEventListener('resize', checkOverflow);
|
|
62
|
-
|
|
63
|
-
// Use ResizeObserver to detect container size changes
|
|
64
|
-
const resizeObserver = new ResizeObserver(() => {
|
|
65
|
-
setTimeout(checkOverflow, 50);
|
|
66
|
-
});
|
|
67
|
-
if (containerRef.current) {
|
|
68
|
-
resizeObserver.observe(containerRef.current);
|
|
69
|
-
}
|
|
70
|
-
if (contentRef.current) {
|
|
71
|
-
resizeObserver.observe(contentRef.current);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// Use MutationObserver to detect content changes
|
|
75
|
-
const mutationObserver = new MutationObserver(() => {
|
|
76
|
-
setTimeout(checkOverflow, 50);
|
|
77
|
-
});
|
|
78
|
-
if (contentRef.current) {
|
|
79
|
-
mutationObserver.observe(contentRef.current, { childList: true, subtree: true, attributes: true });
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return () => {
|
|
83
|
-
window.removeEventListener('resize', checkOverflow);
|
|
84
|
-
resizeObserver.disconnect();
|
|
85
|
-
mutationObserver.disconnect();
|
|
86
|
-
// Clear timeout on unmount
|
|
87
|
-
if (transitionTimeoutRef.current) {
|
|
88
|
-
clearTimeout(transitionTimeoutRef.current);
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
}, [children, hasOverflow, hasMounted]);
|
|
92
|
-
|
|
93
|
-
// Reusable button component
|
|
94
|
-
const MobileButtons = () => (
|
|
95
|
-
<>
|
|
96
|
-
{selectedFilters && Object.keys(selectedFilters).length > 0 && (
|
|
97
|
-
<Button.Btn
|
|
98
|
-
onClick={() => setMobileTab("listTab")}
|
|
99
|
-
variant="primary"
|
|
100
|
-
size="sm"
|
|
101
|
-
className={twMerge(
|
|
102
|
-
`${hasActiveFilters ? "hc-opacity-0 hc-pointer-events-none" : "hc-opacity-100"}`,
|
|
103
|
-
filterConfig?.classNames?.showJobsButton
|
|
104
|
-
)}
|
|
105
|
-
>
|
|
106
|
-
<Button.Body>
|
|
107
|
-
<Button.Icon icon="fluent:search-12-filled" size="hc-size-3.5" />
|
|
108
|
-
Show {filteredListings.length} Jobs
|
|
109
|
-
</Button.Body>
|
|
110
|
-
</Button.Btn>
|
|
111
|
-
)}
|
|
112
|
-
</>
|
|
113
|
-
);
|
|
114
|
-
|
|
115
15
|
return (
|
|
116
16
|
<div
|
|
117
|
-
ref={containerRef}
|
|
118
17
|
style={isDesktop ? style : undefined}
|
|
119
|
-
className={
|
|
120
|
-
|
|
121
|
-
|
|
18
|
+
className={`
|
|
19
|
+
/* Mobile layout */
|
|
20
|
+
hc-relative hc-w-full hc-h-full hc-flex hc-flex-col
|
|
122
21
|
|
|
123
|
-
|
|
124
|
-
|
|
22
|
+
/* Desktop layout */
|
|
23
|
+
md:hc-block md:hc-max-h-[100%] md:hc-overflow-y-auto md:hc-overflow-x-auto
|
|
125
24
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
)}
|
|
25
|
+
${className ?? ""}
|
|
26
|
+
`}
|
|
129
27
|
>
|
|
130
28
|
{/* Content area with scroll */}
|
|
131
|
-
<div
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
`hc-w-full hc-flex-grow hc-max-h-full hc-overflow-auto ${hasOverflow ? 'hc-pb-16' : ''} md:hc-overflow-y-auto ${hasOverflow ? 'md:hc-pb-16' : 'md:hc-pb-0'}`,
|
|
135
|
-
filterConfig?.classNames?.filterContent
|
|
136
|
-
)}
|
|
137
|
-
>
|
|
138
|
-
<div className="hc-px-4 md:hc-pt-4 hc-space-y-4">
|
|
139
|
-
{children}
|
|
29
|
+
<div className="hc-w-full hc-flex-grow hc-overflow-auto hc-pb-16 md:hc-pb-0">
|
|
30
|
+
<div className="hc-px-4 md:hc-pt-4 hc-space-y-4">{children}</div>
|
|
31
|
+
</div>
|
|
140
32
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
)}>
|
|
147
|
-
<MobileButtons />
|
|
148
|
-
</div>
|
|
149
|
-
)}
|
|
150
|
-
</div>
|
|
33
|
+
{/* Desktop Reset Button - left aligned */}
|
|
34
|
+
<div className="hc-hidden md:hc-flex md:hc-justify-start hc-px-4 hc-py-4">
|
|
35
|
+
<Button.Btn onClick={handleReset} variant="outline" size="sm">
|
|
36
|
+
Reset All
|
|
37
|
+
</Button.Btn>
|
|
151
38
|
</div>
|
|
152
39
|
|
|
153
|
-
{/* Mobile Footer - fixed at bottom
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
40
|
+
{/* Mobile Footer - fixed at bottom */}
|
|
41
|
+
<div
|
|
42
|
+
className="
|
|
43
|
+
hc-w-full
|
|
44
|
+
hc-absolute hc-bottom-0 hc-left-0 hc-right-0
|
|
45
|
+
hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4
|
|
46
|
+
hc-bg-white hc-border-t hc-border-gray-200
|
|
47
|
+
hc-z-10
|
|
48
|
+
|
|
49
|
+
/* Hide on desktop */
|
|
50
|
+
md:hc-hidden
|
|
51
|
+
"
|
|
52
|
+
>
|
|
53
|
+
<Button.Btn onClick={handleReset} variant="outline" size="sm">
|
|
54
|
+
Reset All
|
|
55
|
+
</Button.Btn>
|
|
56
|
+
{selectedFilters && Object.keys(selectedFilters).length > 0 && (
|
|
57
|
+
<Button.Btn
|
|
58
|
+
onClick={() => setMobileTab("listTab")}
|
|
59
|
+
variant="primary"
|
|
60
|
+
size="sm"
|
|
61
|
+
className={`
|
|
62
|
+
${hasActiveFilters ? "hc-opacity-0 hc-pointer-events-none" : "hc-opacity-100"}
|
|
63
|
+
`}
|
|
64
|
+
>
|
|
65
|
+
<Button.Body>
|
|
66
|
+
<Button.Icon icon="fluent:search-12-filled" size="hc-size-3.5" />
|
|
67
|
+
Show {filteredListings.length} Jobs
|
|
68
|
+
</Button.Body>
|
|
69
|
+
</Button.Btn>
|
|
70
|
+
)}
|
|
71
|
+
</div>
|
|
159
72
|
</div>
|
|
160
73
|
);
|
|
161
74
|
};
|
|
162
75
|
|
|
163
|
-
export default Filter;
|
|
76
|
+
export default Filter;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Icon from '~/components/modules/icon';
|
|
3
|
-
import { twMerge } from '~/util/twMerge';
|
|
4
|
-
import { useMapList } from '~/contexts/mapListContext';
|
|
5
3
|
|
|
6
4
|
const FilterItem = ({
|
|
7
5
|
className,
|
|
@@ -19,7 +17,6 @@ const FilterItem = ({
|
|
|
19
17
|
eventTypes,
|
|
20
18
|
...rest
|
|
21
19
|
}) => {
|
|
22
|
-
const { filterConfig } = useMapList();
|
|
23
20
|
const itemName = item.name ? item.name : item;
|
|
24
21
|
|
|
25
22
|
return (
|
|
@@ -28,7 +25,6 @@ const FilterItem = ({
|
|
|
28
25
|
onClick={() =>
|
|
29
26
|
{
|
|
30
27
|
if(!isExternalLink) return;
|
|
31
|
-
if (typeof window === 'undefined') return;
|
|
32
28
|
trackEvent(eventTypes.EXTERNAL_LINK_CLICKED, { link: externalLinkUrl });
|
|
33
29
|
window.location.href = externalLinkUrl;
|
|
34
30
|
}}
|
|
@@ -51,10 +47,7 @@ const FilterItem = ({
|
|
|
51
47
|
disabled={item.count === 0}
|
|
52
48
|
value={itemName}
|
|
53
49
|
type={type}
|
|
54
|
-
className=
|
|
55
|
-
"hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-sm",
|
|
56
|
-
filterConfig?.classNames?.filterItemCheckbox
|
|
57
|
-
)}
|
|
50
|
+
className="hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-sm"
|
|
58
51
|
checked={activeItem}
|
|
59
52
|
onChange={() => {
|
|
60
53
|
setActiveItem(!activeItem);
|
|
@@ -63,15 +56,9 @@ const FilterItem = ({
|
|
|
63
56
|
/>
|
|
64
57
|
)}
|
|
65
58
|
|
|
66
|
-
<span className={
|
|
67
|
-
"hc-text-left hc-font-medium",
|
|
68
|
-
filterConfig?.classNames?.filterItemLabel
|
|
69
|
-
)}>{itemName}</span>
|
|
59
|
+
<span className="hc-text-left hc-font-medium">{itemName}</span>
|
|
70
60
|
{hasCount && !isExternalLink && (
|
|
71
|
-
<span className=
|
|
72
|
-
"hc-inline-block hc-mt-1 hc-ml-auto hc-text-xs hc-leading-none hc-text-primary",
|
|
73
|
-
filterConfig?.classNames?.filterItemCount
|
|
74
|
-
)}>
|
|
61
|
+
<span className="hc-inline-block hc-mt-1 hc-ml-auto hc-text-xs hc-leading-none hc-text-primary">
|
|
75
62
|
({item.count})
|
|
76
63
|
</span>
|
|
77
64
|
)}
|
|
@@ -2,8 +2,6 @@ import React, { useRef } from 'react';
|
|
|
2
2
|
import Button from '~/components/modules/buttons/default';
|
|
3
3
|
import Icon from '~/components/modules/icon';
|
|
4
4
|
import FilterCard from '~/components/modules/cards/filter';
|
|
5
|
-
import { twMerge } from '~/util/twMerge';
|
|
6
|
-
import { useMapList } from '~/contexts/mapListContext';
|
|
7
5
|
|
|
8
6
|
const Search = ({
|
|
9
7
|
inputPlaceholder,
|
|
@@ -16,7 +14,6 @@ const Search = ({
|
|
|
16
14
|
handleReset,
|
|
17
15
|
label
|
|
18
16
|
}) => {
|
|
19
|
-
const { filterConfig } = useMapList();
|
|
20
17
|
const inputRef = useRef(null);
|
|
21
18
|
const buttonRef = useRef(null);
|
|
22
19
|
|
|
@@ -50,10 +47,7 @@ const Search = ({
|
|
|
50
47
|
}}
|
|
51
48
|
placeholder={inputPlaceholder}
|
|
52
49
|
value={inputValue}
|
|
53
|
-
className=
|
|
54
|
-
"hc-w-full hc-px-0 hc-py-2 hc-text-sm hc-border-0 hc-transition-colors placeholder:hc-text-uiText/50 focus:hc-ring-0 focus:hc-outline-none",
|
|
55
|
-
filterConfig?.classNames?.searchInput
|
|
56
|
-
)}
|
|
50
|
+
className="hc-w-full hc-px-0 hc-py-2 hc-text-sm hc-border-0 hc-transition-colors placeholder:hc-text-uiText/50 focus:hc-ring-0 focus:hc-outline-none"
|
|
57
51
|
onChange={handleInputChange}
|
|
58
52
|
/>
|
|
59
53
|
|
|
@@ -16,8 +16,7 @@ const ListingDetails = ({
|
|
|
16
16
|
companyName,
|
|
17
17
|
jobsDomain,
|
|
18
18
|
trackEvent,
|
|
19
|
-
eventTypes
|
|
20
|
-
mobileDetailsCallback = null
|
|
19
|
+
eventTypes
|
|
21
20
|
}) => {
|
|
22
21
|
if (!item) {
|
|
23
22
|
return null;
|
|
@@ -40,9 +39,8 @@ const ListingDetails = ({
|
|
|
40
39
|
companyName={companyName}
|
|
41
40
|
item={item}
|
|
42
41
|
trackEvent={trackEvent}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
detailsUrl={item.useClientJobUrl ? item?.detailsUrl : `${jobsDomain}${item.id}`}
|
|
42
|
+
eventTypes={eventTypes}
|
|
43
|
+
detailsUrl={item.useClientJobUrl ? item?.detailsUrl : `${jobsDomain}${item.id}`}
|
|
46
44
|
className={`
|
|
47
45
|
lg:hc-w-auto hc-order-first lg:hc-order-last md:hc-self-center hc-py-2 lg:hc-p-0 lg:hc-mb-0 hc-border-b lg:hc-border-none hc-border-uiAccent/20
|
|
48
46
|
lg:hc-flex-row
|
|
@@ -2,59 +2,40 @@ import React from 'react';
|
|
|
2
2
|
import Grid from '~/components/modules/grid';
|
|
3
3
|
import PillWrapper from '~/components/modules/buttons/pill-wrapper';
|
|
4
4
|
import { capitalize } from '~/util/stringUtils';
|
|
5
|
-
import { getFieldValue } from '~/util/filterUtil';
|
|
6
|
-
import { twMerge } from 'tailwind-merge';
|
|
7
5
|
|
|
8
6
|
const FieldMapperDesktop = ({
|
|
9
7
|
item,
|
|
10
8
|
fieldsShown,
|
|
11
|
-
specialFeatures
|
|
12
|
-
specialFeaturePills
|
|
9
|
+
specialFeatures
|
|
13
10
|
}) => {
|
|
14
|
-
|
|
15
|
-
const orderedFields = fieldsShown.filter(field => {
|
|
16
|
-
const value = getFieldValue(item, field);
|
|
17
|
-
return value !== undefined && value !== null;
|
|
18
|
-
});
|
|
11
|
+
const orderedFields = fieldsShown.filter(field => field in item.fields);
|
|
19
12
|
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const value = getFieldValue(item, featureKey);
|
|
28
|
-
const customClassName = specialFeaturePills[featureKey]?.className || '';
|
|
29
|
-
|
|
30
|
-
// Handle boolean fields (value == 1 or "true")
|
|
31
|
-
if (value == 1 || value === 1 || value === '1' || value === 'true' || value === 'True' || value === true) {
|
|
32
|
-
return <PillWrapper key={featureKey} className={customClassName}>{featureLabel}</PillWrapper>;
|
|
33
|
-
}
|
|
34
|
-
// Handle multi-value custom fields - show the value if it's not empty/false
|
|
35
|
-
if (value && value !== '' && value !== 'false' && value !== 'False' && value !== '0' && value !== 0) {
|
|
36
|
-
return <PillWrapper key={featureKey} className={customClassName}>{featureLabel}: {value}</PillWrapper>;
|
|
37
|
-
}
|
|
38
|
-
return null;
|
|
39
|
-
});
|
|
13
|
+
const specialFeaturePills = field => {
|
|
14
|
+
return field === 'position' && specialFeatures &&
|
|
15
|
+
Object.entries(specialFeatures).map(([featureKey, featureLabel]) => {
|
|
16
|
+
return item.fields[featureKey] == 1 && (
|
|
17
|
+
<PillWrapper key={featureKey}>{featureLabel}</PillWrapper>
|
|
18
|
+
);
|
|
19
|
+
});
|
|
40
20
|
};
|
|
41
21
|
|
|
42
22
|
return (
|
|
43
23
|
<>
|
|
44
24
|
{orderedFields.map((field, index) => {
|
|
45
|
-
let value =
|
|
25
|
+
let value = item.fields[field];
|
|
46
26
|
return (
|
|
47
27
|
<Grid.Item
|
|
48
28
|
key={field}
|
|
49
29
|
className={`
|
|
50
30
|
hc-hidden md:hc-block hc-px-2
|
|
51
31
|
${index === 0 ? "hc-pl-7" : ""}
|
|
52
|
-
${field.toLowerCase() === "
|
|
32
|
+
${field.toLowerCase() === "position" ? "hc-col-span-4 hc-text-balance hc-font-semibold" : (field.toLowerCase() === "state" || field.toLowerCase() == "favorite") ? "hc-col-span-1" : "hc-col-span-2"}
|
|
53
33
|
`}
|
|
54
34
|
>
|
|
55
35
|
<span className="hc-sr-only">{capitalize(field)}</span>
|
|
56
36
|
{value}
|
|
57
|
-
|
|
37
|
+
<br />
|
|
38
|
+
{specialFeaturePills(field)}
|
|
58
39
|
</Grid.Item>
|
|
59
40
|
);
|
|
60
41
|
})}
|