{"version":3,"sources":["webpack://_N_E/./src/components/tooltip-dialog/tooltip-dialog.styles.ts","webpack://_N_E/./src/components/tooltip-dialog/tooltip-dialog.tsx","webpack://_N_E/./node_modules/react-use/esm/useUnmount.js","webpack://_N_E/./node_modules/highlight-words-core/dist/index.js","webpack://_N_E/./node_modules/@reach/combobox/dist/combobox.esm.js","webpack://_N_E/./node_modules/react-use/esm/useThrottle.js","webpack://_N_E/./src/components/questions/location/location.styled.ts","webpack://_N_E/./src/components/questions/location/location.tsx","webpack://_N_E/./src/components/checkbox/checkbox.tsx","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://_N_E/./src/components/questions/form-controls.tsx","webpack://_N_E/./src/assets/icons/icon-baby.svg","webpack://_N_E/./src/assets/icons/icon-cow.svg","webpack://_N_E/./src/assets/icons/icon-people.svg","webpack://_N_E/./src/assets/icons/icon-person-walking-stick.svg","webpack://_N_E/./src/assets/icons/icon-pets.svg","webpack://_N_E/./src/components/questions/household/household.tsx"],"names":["TooltipLink","styled","a","rem","theme","textColor","colors","palette","black","bold","noUnderline","TooltipDialog","linkText","title","children","useState","showDialog","setShowDialog","id","useRef","nanoid","closeDialog","href","current","onClick","event","preventDefault","aria-hidden","role","width","height","isOpen","onDismiss","aria-labelledby","undefined","fn","fnRef","module","exports","modules","installedModules","__webpack_require__","moduleId","loaded","call","m","c","p","Object","defineProperty","value","_utils","enumerable","get","combineChunks","fillInChunks","findAll","findChunks","_ref","autoEscape","_ref$caseSensitive","caseSensitive","_ref$findChunks","defaultFindChunks","sanitize","searchWords","textToHighlight","chunksToHighlight","chunks","totalLength","length","_ref2","sort","first","second","start","reduce","processedChunks","nextChunk","prevChunk","pop","end","endIndex","Math","max","push","highlight","_ref3","_ref3$sanitize","defaultSanitize","filter","searchWord","replace","regex","RegExp","match","exec","_start","index","_end","lastIndex","_ref4","allChunks","append","forEach","chunk","string","_on","_on2","_on3","_on4","_states","_extends","assign","target","i","arguments","source","key","prototype","hasOwnProperty","apply","this","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","IDLE","SUGGESTING","NAVIGATING","INTERACTING","CLEAR","CHANGE","INITIAL_CHANGE","NAVIGATE","SELECT_WITH_KEYBOARD","SELECT_WITH_CLICK","ESCAPE","BLUR","INTERACT","FOCUS","OPEN_WITH_BUTTON","CLOSE_WITH_BUTTON","stateChart","initial","states","on","data","nextState","lastEventType","type","navigationValue","findNavigationValue","popoverIsExpanded","state","includes","stateData","persistSelection","ComboboxDescendantContext","ComboboxContext","OptionContext","forwardedRef","_data$navigationValue","onSelect","_ref$openOnFocus","openOnFocus","_ref$as","as","Comp","ariaLabel","ariaLabelledby","props","_useDescendantsInit","options","setOptions","inputRef","popoverRef","buttonRef","autocompletePropRef","persistSelectionRef","_useReducerMachine","chart","reducer","initialData","_React$useState","setState","_React$useReducer","dispatch","payload","currentState","useReducerMachine","transition","focus","useFocusManagement","listboxId","context","comboboxId","isExpanded","items","set","Provider","getDataState","ref","_ref2$as","_ref2$selectOnClick","selectOnClick","_ref2$autocomplete","autocomplete","onChange","onKeyDown","onBlur","onFocus","controlledValue","initialControlledValue","controlledValueChangedRef","_React$useContext","_React$useContext$dat","selectOnClickRef","handleKeyDown","useKeyDown","handleBlur","useBlur","isControlled","handleValueChange","trim","inputValue","String","makeHash","select","_ref3$as","_ref3$portal","portal","_ref3$position","position","_React$useContext2","sharedProps","hidden","tabIndex","targetRef","_ref4$persistSelectio","_ref4$as","_React$useContext3","_ref5","_ref5$as","_React$useContext4","ownRef","element","isActive","ComboboxOptionText","contextValue","results","str","split","map","result","slice","_React$useContext8","findIndex","_ref7","getFirstOption","getLastOption","next","prev","_React$useContext9","rafIds","Set","cancelAnimationFrame","ownerDocument","rafId","requestAnimationFrame","activeElement","contains","add","hash","charCodeAt","toLowerCase","ms","_a","timeout","nextValue","hasNextValue","timeoutCallback_1","setTimeout","useUnmount","clearTimeout","OPTION_PADDING","FieldWrapper","div","white","borderRadius","medium","mediaQueries","ComboboxInput","Input","TextInputStyles","small","ComboboxList","List","ComboboxOption","Option","grey","greyLight","ComboboxPopover","Popover","zIndex","NoResults","span","EMPTY_LOCALITIES","getLocationValue","location","suburb","postcode","getSchema","QuestionModeEnum","Survey","yup","shape","required","address","defined","Location","searchTerm","setSearchTerm","useUserProfileAPI","useUserProfile","updateUserProfile","useUpdateUserProfile","mutate","userProfile","initialLocationValue","showSuggestions","setShowSuggestions","locations","regions","setLocations","throttledTerm","useThrottle","allLocations","useMemo","entries","flatMap","name","useEffect","getLocalities","trimmedSearchTerm","isNaN","useLocationSearch","defaultValues","useForm","mode","resolver","yupResolver","register","setValue","trigger","handleSubmit","formState","watch","handleValueSelect","useCallback","join","shouldDirty","onSubmit","onSetLocation","navigateWithDirection","navigate","latestAcknowledgedVersion","PLAN_VERSION","isValid","isSubmitting","isDirty","canNavigate","isPlanMode","Plan","formData","noValidate","data-testid","htmlFor","placeholder","autoComplete","className","disabled","showPrevious","Checkbox","React","forwardRef","label","CustomIcon","icon","align","slim","inputProps","Icon","defaultProps","_toConsumableArray","arr","Array","isArray","arrayLikeToArray","iter","Symbol","iterator","from","unsupportedIterableToArray","TypeError","FormControls","submitter","setSubmitter","handleClick","currentTarget","NavigationDirectionEnum","Next","variant","Previous","d","fill","SvgIconBaby","xmlns","viewBox","clipPath","SvgIconCow","SvgIconPeople","transform","SvgIconPersonWalkingStick","SvgIconPets","members","of","min","Household","household","onSetHousehold","colCount","HouseholdMembersEnum","Me","PersonIcon","Others","PeopleIcon","Children","BabyIcon","Assistance","PersonWalkingStickIcon","Pets","PetsIcon","Livestock","CowIcon"],"mappings":"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","file":"static/chunks/9fa5d0463005adf9fdf6f33edc19c130d43af73e.4ecf0486626d5ab2b336.js","sourcesContent":["import { rem } from 'polished';\nimport styled, { Theme } from 'styled-components';\n\ninterface TooltipDialogProps {\n textColor?: keyof Theme['colors']['palette'];\n bold?: boolean;\n noUnderline?: boolean;\n}\n\nexport const TooltipLink = styled.a`\n padding-right: ${rem(3)};\n color: ${({ theme, textColor }) =>\n textColor ? theme.colors.palette[textColor] : theme.colors.palette.black};\n text-decoration: none;\n\n span {\n font-weight: ${(bold) => (bold ? 700 : 400)};\n text-decoration: ${({ noUnderline }) =>\n noUnderline ? 'none' : 'underline'};\n }\n\n svg {\n vertical-align: middle;\n }\n`;\n","import { ReactComponent as InfoIcon } from 'assets/icons/icon-info.svg';\nimport {\n DialogClose,\n DialogContent,\n DialogOverlay,\n DialogTitle,\n} from 'components/dialog';\nimport { nanoid } from 'nanoid';\nimport { FC, MouseEvent, useRef, useState } from 'react';\nimport { Theme } from 'styled-components';\nimport { TooltipLink } from './tooltip-dialog.styles';\n\ninterface Props {\n linkText: string;\n title?: string | boolean;\n textColor?: keyof Theme['colors']['palette'];\n bold?: boolean;\n noUnderline?: boolean;\n}\n\nconst TooltipDialog: FC = ({\n linkText,\n title,\n textColor,\n bold,\n noUnderline,\n children,\n}) => {\n const [showDialog, setShowDialog] = useState(false);\n const id = useRef(nanoid());\n\n const openDialog = (event: MouseEvent) => {\n event.preventDefault();\n setShowDialog(true);\n };\n\n const closeDialog = () => setShowDialog(false);\n\n return (\n <>\n \n {linkText} \n \n \n\n \n \n {title !== false && {title || linkText}}\n {children}\n Close\n \n \n \n );\n};\n\nexport default TooltipDialog;\n","import { useRef } from 'react';\nimport useEffectOnce from './useEffectOnce';\nvar useUnmount = function (fn) {\n var fnRef = useRef(fn);\n // update the ref each render so if it change the newest callback will be invoked\n fnRef.current = fn;\n useEffectOnce(function () { return function () { return fnRef.current(); }; });\n};\nexport default useUnmount;\n","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1);\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _utils = __webpack_require__(2);\n\t\n\tObject.defineProperty(exports, 'combineChunks', {\n\t enumerable: true,\n\t get: function get() {\n\t return _utils.combineChunks;\n\t }\n\t});\n\tObject.defineProperty(exports, 'fillInChunks', {\n\t enumerable: true,\n\t get: function get() {\n\t return _utils.fillInChunks;\n\t }\n\t});\n\tObject.defineProperty(exports, 'findAll', {\n\t enumerable: true,\n\t get: function get() {\n\t return _utils.findAll;\n\t }\n\t});\n\tObject.defineProperty(exports, 'findChunks', {\n\t enumerable: true,\n\t get: function get() {\n\t return _utils.findChunks;\n\t }\n\t});\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\t\n\t/**\n\t * Creates an array of chunk objects representing both higlightable and non highlightable pieces of text that match each search word.\n\t * @return Array of \"chunks\" (where a Chunk is { start:number, end:number, highlight:boolean })\n\t */\n\tvar findAll = exports.findAll = function findAll(_ref) {\n\t var autoEscape = _ref.autoEscape,\n\t _ref$caseSensitive = _ref.caseSensitive,\n\t caseSensitive = _ref$caseSensitive === undefined ? false : _ref$caseSensitive,\n\t _ref$findChunks = _ref.findChunks,\n\t findChunks = _ref$findChunks === undefined ? defaultFindChunks : _ref$findChunks,\n\t sanitize = _ref.sanitize,\n\t searchWords = _ref.searchWords,\n\t textToHighlight = _ref.textToHighlight;\n\t return fillInChunks({\n\t chunksToHighlight: combineChunks({\n\t chunks: findChunks({\n\t autoEscape: autoEscape,\n\t caseSensitive: caseSensitive,\n\t sanitize: sanitize,\n\t searchWords: searchWords,\n\t textToHighlight: textToHighlight\n\t })\n\t }),\n\t totalLength: textToHighlight ? textToHighlight.length : 0\n\t });\n\t};\n\t\n\t/**\n\t * Takes an array of {start:number, end:number} objects and combines chunks that overlap into single chunks.\n\t * @return {start:number, end:number}[]\n\t */\n\t\n\t\n\tvar combineChunks = exports.combineChunks = function combineChunks(_ref2) {\n\t var chunks = _ref2.chunks;\n\t\n\t chunks = chunks.sort(function (first, second) {\n\t return first.start - second.start;\n\t }).reduce(function (processedChunks, nextChunk) {\n\t // First chunk just goes straight in the array...\n\t if (processedChunks.length === 0) {\n\t return [nextChunk];\n\t } else {\n\t // ... subsequent chunks get checked to see if they overlap...\n\t var prevChunk = processedChunks.pop();\n\t if (nextChunk.start <= prevChunk.end) {\n\t // It may be the case that prevChunk completely surrounds nextChunk, so take the\n\t // largest of the end indeces.\n\t var endIndex = Math.max(prevChunk.end, nextChunk.end);\n\t processedChunks.push({ highlight: false, start: prevChunk.start, end: endIndex });\n\t } else {\n\t processedChunks.push(prevChunk, nextChunk);\n\t }\n\t return processedChunks;\n\t }\n\t }, []);\n\t\n\t return chunks;\n\t};\n\t\n\t/**\n\t * Examine text for any matches.\n\t * If we find matches, add them to the returned array as a \"chunk\" object ({start:number, end:number}).\n\t * @return {start:number, end:number}[]\n\t */\n\tvar defaultFindChunks = function defaultFindChunks(_ref3) {\n\t var autoEscape = _ref3.autoEscape,\n\t caseSensitive = _ref3.caseSensitive,\n\t _ref3$sanitize = _ref3.sanitize,\n\t sanitize = _ref3$sanitize === undefined ? defaultSanitize : _ref3$sanitize,\n\t searchWords = _ref3.searchWords,\n\t textToHighlight = _ref3.textToHighlight;\n\t\n\t textToHighlight = sanitize(textToHighlight);\n\t\n\t return searchWords.filter(function (searchWord) {\n\t return searchWord;\n\t }) // Remove empty words\n\t .reduce(function (chunks, searchWord) {\n\t searchWord = sanitize(searchWord);\n\t\n\t if (autoEscape) {\n\t searchWord = escapeRegExpFn(searchWord);\n\t }\n\t\n\t var regex = new RegExp(searchWord, caseSensitive ? 'g' : 'gi');\n\t\n\t var match = void 0;\n\t while (match = regex.exec(textToHighlight)) {\n\t var _start = match.index;\n\t var _end = regex.lastIndex;\n\t // We do not return zero-length matches\n\t if (_end > _start) {\n\t chunks.push({ highlight: false, start: _start, end: _end });\n\t }\n\t\n\t // Prevent browsers like Firefox from getting stuck in an infinite loop\n\t // See http://www.regexguru.com/2008/04/watch-out-for-zero-length-matches/\n\t if (match.index === regex.lastIndex) {\n\t regex.lastIndex++;\n\t }\n\t }\n\t\n\t return chunks;\n\t }, []);\n\t};\n\t// Allow the findChunks to be overridden in findAll,\n\t// but for backwards compatibility we export as the old name\n\texports.findChunks = defaultFindChunks;\n\t\n\t/**\n\t * Given a set of chunks to highlight, create an additional set of chunks\n\t * to represent the bits of text between the highlighted text.\n\t * @param chunksToHighlight {start:number, end:number}[]\n\t * @param totalLength number\n\t * @return {start:number, end:number, highlight:boolean}[]\n\t */\n\t\n\tvar fillInChunks = exports.fillInChunks = function fillInChunks(_ref4) {\n\t var chunksToHighlight = _ref4.chunksToHighlight,\n\t totalLength = _ref4.totalLength;\n\t\n\t var allChunks = [];\n\t var append = function append(start, end, highlight) {\n\t if (end - start > 0) {\n\t allChunks.push({\n\t start: start,\n\t end: end,\n\t highlight: highlight\n\t });\n\t }\n\t };\n\t\n\t if (chunksToHighlight.length === 0) {\n\t append(0, totalLength, false);\n\t } else {\n\t var lastIndex = 0;\n\t chunksToHighlight.forEach(function (chunk) {\n\t append(lastIndex, chunk.start, false);\n\t append(chunk.start, chunk.end, true);\n\t lastIndex = chunk.end;\n\t });\n\t append(lastIndex, totalLength, false);\n\t }\n\t return allChunks;\n\t};\n\t\n\tfunction defaultSanitize(string) {\n\t return string;\n\t}\n\t\n\tfunction escapeRegExpFn(string) {\n\t return string.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n\t}\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=index.js.map","import { useRef, createElement, useContext, useCallback, useEffect, useMemo, Fragment, useState, useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport { forwardRefWithAs, makeId, useCheckStyles, isFunction, useUpdateEffect, useForkedRef, getOwnerDocument, useIsomorphicLayoutEffect, wrapEvent, useLazyRef, createNamedContext, noop } from '@reach/utils';\nimport { useDescendantsInit, DescendantProvider, useDescendant, useDescendants, createDescendantContext } from '@reach/descendants';\nimport { findAll } from 'highlight-words-core';\nimport { useId } from '@reach/auto-id';\nimport { Popover, positionMatchWidth } from '@reach/popover';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _on, _on2, _on3, _on4, _states;\n// States\n// Nothing going on, waiting for the user to type or use the arrow keys\n\nvar IDLE = \"IDLE\"; // The component is suggesting options as the user types\n\nvar SUGGESTING = \"SUGGESTING\"; // The user is using the keyboard to navigate the list, not typing\n\nvar NAVIGATING = \"NAVIGATING\"; // The user is interacting with arbitrary elements inside the popup that\n// are not ComboboxInputs\n\nvar INTERACTING = \"INTERACTING\"; ////////////////////////////////////////////////////////////////////////////////\n// Events\n// User cleared the value w/ backspace, but input still has focus\n\nvar CLEAR = \"CLEAR\"; // User is typing\n\nvar CHANGE = \"CHANGE\"; // Initial input value change handler for syncing user state with state machine\n// Prevents initial change from sending the user to the NAVIGATING state\n// https://github.com/reach/reach-ui/issues/464\n\nvar INITIAL_CHANGE = \"INITIAL_CHANGE\"; // User is navigating w/ the keyboard\n\nvar NAVIGATE = \"NAVIGATE\"; // User can be navigating with keyboard and then click instead, we want the\n// value from the click, not the current nav item\n\nvar SELECT_WITH_KEYBOARD = \"SELECT_WITH_KEYBOARD\";\nvar SELECT_WITH_CLICK = \"SELECT_WITH_CLICK\"; // Pretty self-explanatory, user can hit escape or blur to close the popover\n\nvar ESCAPE = \"ESCAPE\";\nvar BLUR = \"BLUR\"; // The user left the input to interact with arbitrary elements inside the popup\n\nvar INTERACT = \"INTERACT\";\nvar FOCUS = \"FOCUS\";\nvar OPEN_WITH_BUTTON = \"OPEN_WITH_BUTTON\";\nvar CLOSE_WITH_BUTTON = \"CLOSE_WITH_BUTTON\"; ////////////////////////////////////////////////////////////////////////////////\n\nvar stateChart = {\n initial: IDLE,\n states: (_states = {}, _states[IDLE] = {\n on: (_on = {}, _on[BLUR] = IDLE, _on[CLEAR] = IDLE, _on[CHANGE] = SUGGESTING, _on[INITIAL_CHANGE] = IDLE, _on[FOCUS] = SUGGESTING, _on[NAVIGATE] = NAVIGATING, _on[OPEN_WITH_BUTTON] = SUGGESTING, _on)\n }, _states[SUGGESTING] = {\n on: (_on2 = {}, _on2[CHANGE] = SUGGESTING, _on2[FOCUS] = SUGGESTING, _on2[NAVIGATE] = NAVIGATING, _on2[CLEAR] = IDLE, _on2[ESCAPE] = IDLE, _on2[BLUR] = IDLE, _on2[SELECT_WITH_CLICK] = IDLE, _on2[INTERACT] = INTERACTING, _on2[CLOSE_WITH_BUTTON] = IDLE, _on2)\n }, _states[NAVIGATING] = {\n on: (_on3 = {}, _on3[CHANGE] = SUGGESTING, _on3[FOCUS] = SUGGESTING, _on3[CLEAR] = IDLE, _on3[BLUR] = IDLE, _on3[ESCAPE] = IDLE, _on3[NAVIGATE] = NAVIGATING, _on3[SELECT_WITH_CLICK] = IDLE, _on3[SELECT_WITH_KEYBOARD] = IDLE, _on3[CLOSE_WITH_BUTTON] = IDLE, _on3[INTERACT] = INTERACTING, _on3)\n }, _states[INTERACTING] = {\n on: (_on4 = {}, _on4[CLEAR] = IDLE, _on4[CHANGE] = SUGGESTING, _on4[FOCUS] = SUGGESTING, _on4[BLUR] = IDLE, _on4[ESCAPE] = IDLE, _on4[NAVIGATE] = NAVIGATING, _on4[CLOSE_WITH_BUTTON] = IDLE, _on4[SELECT_WITH_CLICK] = IDLE, _on4)\n }, _states)\n};\n\nvar reducer = function reducer(data, event) {\n var nextState = _extends({}, data, {\n lastEventType: event.type\n });\n\n switch (event.type) {\n case CHANGE:\n case INITIAL_CHANGE:\n return _extends({}, nextState, {\n navigationValue: null,\n value: event.value\n });\n\n case NAVIGATE:\n case OPEN_WITH_BUTTON:\n return _extends({}, nextState, {\n navigationValue: findNavigationValue(nextState, event)\n });\n\n case CLEAR:\n return _extends({}, nextState, {\n value: \"\",\n navigationValue: null\n });\n\n case BLUR:\n case ESCAPE:\n return _extends({}, nextState, {\n navigationValue: null\n });\n\n case SELECT_WITH_CLICK:\n return _extends({}, nextState, {\n value: event.value,\n navigationValue: null\n });\n\n case SELECT_WITH_KEYBOARD:\n return _extends({}, nextState, {\n value: data.navigationValue,\n navigationValue: null\n });\n\n case CLOSE_WITH_BUTTON:\n return _extends({}, nextState, {\n navigationValue: null\n });\n\n case INTERACT:\n return nextState;\n\n case FOCUS:\n return _extends({}, nextState, {\n navigationValue: findNavigationValue(nextState, event)\n });\n\n default:\n return nextState;\n }\n};\n\nfunction popoverIsExpanded(state) {\n return [SUGGESTING, NAVIGATING, INTERACTING].includes(state);\n}\n/**\r\n * When we open a list, set the navigation value to the value in the input, if\r\n * it's in the list, then it'll automatically be highlighted.\r\n *\r\n * @param stateData\r\n * @param event\r\n */\n\n\nfunction findNavigationValue(stateData, event) {\n // @ts-ignore\n if (event.value) {\n // @ts-ignore\n return event.value; // @ts-ignore\n } else if (event.persistSelection) {\n return stateData.value;\n } else {\n return null;\n }\n}\n\nvar ComboboxDescendantContext = /*#__PURE__*/createDescendantContext(\"ComboboxDescendantContext\");\nvar ComboboxContext = /*#__PURE__*/createNamedContext(\"ComboboxContext\", {}); // Allows us to put the option's value on context so that ComboboxOptionText\n// can work it's highlight text magic no matter what else is rendered around\n// it.\n\nvar OptionContext = /*#__PURE__*/createNamedContext(\"OptionContext\", {}); ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * Combobox\r\n *\r\n * @see Docs https://reach.tech/combobox#combobox\r\n */\n\nvar Combobox = /*#__PURE__*/forwardRefWithAs(function Combobox(_ref, forwardedRef) {\n var _data$navigationValue;\n\n var onSelect = _ref.onSelect,\n _ref$openOnFocus = _ref.openOnFocus,\n openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,\n children = _ref.children,\n _ref$as = _ref.as,\n Comp = _ref$as === void 0 ? \"div\" : _ref$as,\n ariaLabel = _ref[\"aria-label\"],\n ariaLabelledby = _ref[\"aria-labelledby\"],\n props = _objectWithoutPropertiesLoose(_ref, [\"onSelect\", \"openOnFocus\", \"children\", \"as\", \"aria-label\", \"aria-labelledby\"]);\n\n var _useDescendantsInit = useDescendantsInit(),\n options = _useDescendantsInit[0],\n setOptions = _useDescendantsInit[1]; // Need this to focus it\n\n\n var inputRef = useRef();\n var popoverRef = useRef();\n var buttonRef = useRef(); // When we don't want cycle back to\n // the user's value while navigating (because it's always the user's value),\n // but we need to know this in useKeyDown which is far away from the prop\n // here, so we do something sneaky and write it to this ref on context so we\n // can use it anywhere else 😛. Another new trick for me and I'm excited\n // about this one too!\n\n var autocompletePropRef = useRef();\n var persistSelectionRef = useRef();\n var defaultData = {\n // The value the user has typed. We derive this also when the developer is\n // controlling the value of ComboboxInput.\n value: \"\",\n // the value the user has navigated to with the keyboard\n navigationValue: null\n };\n\n var _useReducerMachine = useReducerMachine(stateChart, reducer, defaultData),\n state = _useReducerMachine[0],\n data = _useReducerMachine[1],\n transition = _useReducerMachine[2];\n\n useFocusManagement(data.lastEventType, inputRef);\n var id = useId(props.id);\n var listboxId = id ? makeId(\"listbox\", id) : \"listbox\";\n var context = {\n ariaLabel: ariaLabel,\n ariaLabelledby: ariaLabelledby,\n autocompletePropRef: autocompletePropRef,\n buttonRef: buttonRef,\n comboboxId: id,\n data: data,\n inputRef: inputRef,\n isExpanded: popoverIsExpanded(state),\n listboxId: listboxId,\n onSelect: onSelect || noop,\n openOnFocus: openOnFocus,\n persistSelectionRef: persistSelectionRef,\n popoverRef: popoverRef,\n state: state,\n transition: transition\n };\n useCheckStyles(\"combobox\");\n return createElement(DescendantProvider, {\n context: ComboboxDescendantContext,\n items: options,\n set: setOptions\n }, createElement(ComboboxContext.Provider, {\n value: context\n }, createElement(Comp, Object.assign({}, props, {\n \"data-reach-combobox\": \"\",\n \"data-state\": getDataState(state),\n ref: forwardedRef\n }), isFunction(children) ? children({\n id: id,\n isExpanded: popoverIsExpanded(state),\n navigationValue: (_data$navigationValue = data.navigationValue) !== null && _data$navigationValue !== void 0 ? _data$navigationValue : null,\n state: state\n }) : children)));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Combobox.displayName = \"Combobox\";\n Combobox.propTypes = {\n as: PropTypes.any,\n onSelect: PropTypes.func,\n openOnFocus: PropTypes.bool\n };\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * ComboboxInput\r\n *\r\n * Wraps an `` with a couple extra props that work with the combobox.\r\n *\r\n * @see Docs https://reach.tech/combobox#comboboxinput\r\n */\n\n\nvar ComboboxInput = /*#__PURE__*/forwardRefWithAs(function ComboboxInput(_ref2, forwardedRef) {\n var _ref2$as = _ref2.as,\n Comp = _ref2$as === void 0 ? \"input\" : _ref2$as,\n _ref2$selectOnClick = _ref2.selectOnClick,\n selectOnClick = _ref2$selectOnClick === void 0 ? false : _ref2$selectOnClick,\n _ref2$autocomplete = _ref2.autocomplete,\n autocomplete = _ref2$autocomplete === void 0 ? true : _ref2$autocomplete,\n onClick = _ref2.onClick,\n onChange = _ref2.onChange,\n onKeyDown = _ref2.onKeyDown,\n onBlur = _ref2.onBlur,\n onFocus = _ref2.onFocus,\n controlledValue = _ref2.value,\n props = _objectWithoutPropertiesLoose(_ref2, [\"as\", \"selectOnClick\", \"autocomplete\", \"onClick\", \"onChange\", \"onKeyDown\", \"onBlur\", \"onFocus\", \"value\"]);\n\n // https://github.com/reach/reach-ui/issues/464\n var _React$useRef = useRef(controlledValue),\n initialControlledValue = _React$useRef.current;\n\n var controlledValueChangedRef = useRef(false);\n useUpdateEffect(function () {\n controlledValueChangedRef.current = true;\n }, [controlledValue]);\n\n var _React$useContext = useContext(ComboboxContext),\n _React$useContext$dat = _React$useContext.data,\n navigationValue = _React$useContext$dat.navigationValue,\n value = _React$useContext$dat.value,\n lastEventType = _React$useContext$dat.lastEventType,\n inputRef = _React$useContext.inputRef,\n state = _React$useContext.state,\n transition = _React$useContext.transition,\n listboxId = _React$useContext.listboxId,\n autocompletePropRef = _React$useContext.autocompletePropRef,\n openOnFocus = _React$useContext.openOnFocus,\n isExpanded = _React$useContext.isExpanded,\n ariaLabel = _React$useContext.ariaLabel,\n ariaLabelledby = _React$useContext.ariaLabelledby;\n\n var ref = useForkedRef(inputRef, forwardedRef); // Because we close the List on blur, we need to track if the blur is\n // caused by clicking inside the list, and if so, don't close the List.\n\n var selectOnClickRef = useRef(false);\n var handleKeyDown = useKeyDown();\n var handleBlur = useBlur();\n var isControlled = controlledValue != null; // Layout effect should be SSR-safe here because we don't actually do\n // anything with this ref that involves rendering until after we've\n // let the client hydrate in nested components.\n\n useIsomorphicLayoutEffect(function () {\n autocompletePropRef.current = autocomplete;\n }, [autocomplete, autocompletePropRef]);\n var handleValueChange = useCallback(function (value) {\n if (value.trim() === \"\") {\n transition(CLEAR);\n } else if (value === initialControlledValue && !controlledValueChangedRef.current) {\n transition(INITIAL_CHANGE, {\n value: value\n });\n } else {\n transition(CHANGE, {\n value: value\n });\n }\n }, [initialControlledValue, transition]);\n useEffect(function () {\n // If they are controlling the value we still need to do our transitions,\n // so we have this derived state to emulate onChange of the input as we\n // receive new `value`s ...[*]\n if (isControlled && controlledValue !== value && ( // https://github.com/reach/reach-ui/issues/481\n controlledValue.trim() === \"\" ? (value || \"\").trim() !== \"\" : true)) {\n handleValueChange(controlledValue);\n }\n }, [controlledValue, handleValueChange, isControlled, value]); // [*]... and when controlled, we don't trigger handleValueChange as the\n // user types, instead the developer controls it with the normal input\n // onChange prop\n\n function handleChange(event) {\n var value = event.target.value;\n\n if (!isControlled) {\n handleValueChange(value);\n }\n }\n\n function handleFocus() {\n if (selectOnClick) {\n selectOnClickRef.current = true;\n } // If we select an option with click, useFocusManagement will focus the\n // input, in those cases we don't want to cause the menu to open back up,\n // so we guard behind these states.\n\n\n if (openOnFocus && lastEventType !== SELECT_WITH_CLICK) {\n transition(FOCUS);\n }\n }\n\n function handleClick() {\n if (selectOnClickRef.current) {\n selectOnClickRef.current = false;\n inputRef.current.select();\n }\n }\n\n var inputValue = autocomplete && (state === NAVIGATING || state === INTERACTING) ? // When idle, we don't have a navigationValue on ArrowUp/Down\n navigationValue || controlledValue || value : controlledValue || value;\n return createElement(Comp, Object.assign({\n \"aria-activedescendant\": navigationValue ? String(makeHash(navigationValue)) : undefined,\n \"aria-autocomplete\": \"both\",\n \"aria-controls\": listboxId,\n \"aria-expanded\": isExpanded,\n \"aria-haspopup\": \"listbox\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabel ? undefined : ariaLabelledby,\n role: \"combobox\"\n }, props, {\n \"data-reach-combobox-input\": \"\",\n \"data-state\": getDataState(state),\n ref: ref,\n onBlur: wrapEvent(onBlur, handleBlur),\n onChange: wrapEvent(onChange, handleChange),\n onClick: wrapEvent(onClick, handleClick),\n onFocus: wrapEvent(onFocus, handleFocus),\n onKeyDown: wrapEvent(onKeyDown, handleKeyDown),\n value: inputValue || \"\"\n }));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n ComboboxInput.displayName = \"ComboboxInput\";\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * ComboboxPopover\r\n *\r\n * Contains the popup that renders the list. Because some UI needs to render\r\n * more than the list in the popup, you need to render one of these around the\r\n * list. For example, maybe you want to render the number of results suggested.\r\n *\r\n * @see Docs https://reach.tech/combobox#comboboxpopover\r\n */\n\n\nvar ComboboxPopover = /*#__PURE__*/forwardRefWithAs(function ComboboxPopover(_ref3, forwardedRef) {\n var _ref3$as = _ref3.as,\n Comp = _ref3$as === void 0 ? \"div\" : _ref3$as,\n children = _ref3.children,\n _ref3$portal = _ref3.portal,\n portal = _ref3$portal === void 0 ? true : _ref3$portal,\n onKeyDown = _ref3.onKeyDown,\n onBlur = _ref3.onBlur,\n _ref3$position = _ref3.position,\n position = _ref3$position === void 0 ? positionMatchWidth : _ref3$position,\n props = _objectWithoutPropertiesLoose(_ref3, [\"as\", \"children\", \"portal\", \"onKeyDown\", \"onBlur\", \"position\"]);\n\n var _React$useContext2 = useContext(ComboboxContext),\n popoverRef = _React$useContext2.popoverRef,\n inputRef = _React$useContext2.inputRef,\n isExpanded = _React$useContext2.isExpanded,\n state = _React$useContext2.state;\n\n var ref = useForkedRef(popoverRef, forwardedRef);\n var handleKeyDown = useKeyDown();\n var handleBlur = useBlur();\n var sharedProps = {\n \"data-reach-combobox-popover\": \"\",\n \"data-state\": getDataState(state),\n onKeyDown: wrapEvent(onKeyDown, handleKeyDown),\n onBlur: wrapEvent(onBlur, handleBlur),\n // Instead of conditionally rendering the popover we use the `hidden` prop\n // because we don't want to unmount on close (from escape or onSelect).\n // However, the developer can conditionally render the ComboboxPopover if\n // they do want to cause mount/unmount based on the app's own data (like\n // results.length or whatever).\n hidden: !isExpanded,\n tabIndex: -1,\n children: children\n };\n return portal ? createElement(Popover, Object.assign({\n as: Comp\n }, props, {\n ref: ref,\n position: position,\n targetRef: inputRef\n }, sharedProps)) : createElement(Comp, Object.assign({\n ref: ref\n }, props, sharedProps));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n ComboboxPopover.displayName = \"ComboboxPopover\";\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * ComboboxList\r\n *\r\n * Contains the `ComboboxOption` elements and sets up the proper aria attributes\r\n * for the list.\r\n *\r\n * @see Docs https://reach.tech/combobox#comboboxlist\r\n */\n\n\nvar ComboboxList = /*#__PURE__*/forwardRefWithAs(function ComboboxList(_ref4, forwardedRef) {\n var _ref4$persistSelectio = _ref4.persistSelection,\n persistSelection = _ref4$persistSelectio === void 0 ? false : _ref4$persistSelectio,\n _ref4$as = _ref4.as,\n Comp = _ref4$as === void 0 ? \"ul\" : _ref4$as,\n props = _objectWithoutPropertiesLoose(_ref4, [\"persistSelection\", \"as\"]);\n\n var _React$useContext3 = useContext(ComboboxContext),\n persistSelectionRef = _React$useContext3.persistSelectionRef,\n listboxId = _React$useContext3.listboxId;\n\n if (persistSelection) {\n persistSelectionRef.current = true;\n }\n\n return createElement(Comp, Object.assign({\n role: \"listbox\"\n }, props, {\n ref: forwardedRef,\n \"data-reach-combobox-list\": \"\",\n id: listboxId\n }));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n ComboboxList.displayName = \"ComboboxList\";\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * ComboboxOption\r\n *\r\n * An option that is suggested to the user as they interact with the combobox.\r\n *\r\n * @see Docs https://reach.tech/combobox#comboboxoption\r\n */\n\n\nvar ComboboxOption = /*#__PURE__*/forwardRefWithAs(function ComboboxOption(_ref5, forwardedRef) {\n var _ref5$as = _ref5.as,\n Comp = _ref5$as === void 0 ? \"li\" : _ref5$as,\n children = _ref5.children,\n value = _ref5.value,\n onClick = _ref5.onClick,\n props = _objectWithoutPropertiesLoose(_ref5, [\"as\", \"children\", \"value\", \"onClick\"]);\n\n var _React$useContext4 = useContext(ComboboxContext),\n onSelect = _React$useContext4.onSelect,\n navigationValue = _React$useContext4.data.navigationValue,\n transition = _React$useContext4.transition;\n\n var ownRef = useRef(null);\n var ref = useForkedRef(forwardedRef, ownRef);\n var index = useDescendant({\n element: ownRef.current,\n value: value\n }, ComboboxDescendantContext);\n var isActive = navigationValue === value;\n\n var handleClick = function handleClick() {\n onSelect && onSelect(value);\n transition(SELECT_WITH_CLICK, {\n value: value\n });\n };\n\n return createElement(OptionContext.Provider, {\n value: {\n value: value,\n index: index\n }\n }, createElement(Comp, Object.assign({\n \"aria-selected\": isActive,\n role: \"option\"\n }, props, {\n \"data-reach-combobox-option\": \"\",\n ref: ref,\n id: String(makeHash(value)),\n \"data-highlighted\": isActive ? \"\" : undefined,\n // Without this the menu will close from `onBlur`, but with it the\n // element can be `document.activeElement` and then our focus checks in\n // onBlur will work as intended\n tabIndex: -1,\n onClick: wrapEvent(onClick, handleClick)\n }), children ? isFunction(children) ? children({\n value: value,\n index: index\n }) : children : createElement(ComboboxOptionText, null)));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n ComboboxOption.displayName = \"ComboboxOption\";\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * ComboboxOptionText\r\n *\r\n * Renders the value of a `ComboboxOption` as text but with spans wrapping the\r\n * matching and non-matching segments of text.\r\n *\r\n * We don't forwardRef or spread props because we render multiple spans or null,\r\n * should be fine 🤙\r\n *\r\n * @example\r\n * \r\n * 🌧 \r\n * \r\n *\r\n * @see Docs https://reach.tech/combobox#comboboxoptiontext\r\n */\n\n\nfunction ComboboxOptionText() {\n var _React$useContext5 = useContext(OptionContext),\n value = _React$useContext5.value;\n\n var _React$useContext6 = useContext(ComboboxContext),\n contextValue = _React$useContext6.data.value;\n\n var results = useMemo(function () {\n return findAll({\n searchWords: escapeRegexp(contextValue || \"\").split(/\\s+/),\n textToHighlight: value\n });\n }, [contextValue, value]);\n return createElement(Fragment, null, results.length ? results.map(function (result, index) {\n var str = value.slice(result.start, result.end);\n return createElement(\"span\", {\n key: index,\n \"data-reach-combobox-option-text\": \"\",\n \"data-user-value\": result.highlight ? true : undefined,\n \"data-suggested-value\": result.highlight ? undefined : true\n }, str);\n }) : value);\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n ComboboxOptionText.displayName = \"ComboboxOptionText\";\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * ComboboxButton\r\n */\n\n\nvar ComboboxButton = /*#__PURE__*/forwardRefWithAs(function ComboboxButton(_ref6, forwardedRef) {\n var _ref6$as = _ref6.as,\n Comp = _ref6$as === void 0 ? \"button\" : _ref6$as,\n onClick = _ref6.onClick,\n onKeyDown = _ref6.onKeyDown,\n props = _objectWithoutPropertiesLoose(_ref6, [\"as\", \"onClick\", \"onKeyDown\"]);\n\n var _React$useContext7 = useContext(ComboboxContext),\n transition = _React$useContext7.transition,\n state = _React$useContext7.state,\n buttonRef = _React$useContext7.buttonRef,\n listboxId = _React$useContext7.listboxId,\n isExpanded = _React$useContext7.isExpanded;\n\n var ref = useForkedRef(buttonRef, forwardedRef);\n var handleKeyDown = useKeyDown();\n\n var handleClick = function handleClick() {\n if (state === IDLE) {\n transition(OPEN_WITH_BUTTON);\n } else {\n transition(CLOSE_WITH_BUTTON);\n }\n };\n\n return createElement(Comp, Object.assign({\n \"aria-controls\": listboxId,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": isExpanded\n }, props, {\n \"data-reach-combobox-button\": \"\",\n ref: ref,\n onClick: wrapEvent(onClick, handleClick),\n onKeyDown: wrapEvent(onKeyDown, handleKeyDown)\n }));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n ComboboxButton.displayName = \"ComboboxButton\";\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * Move focus back to the input if we start navigating w/ the\r\n * keyboard after focus has moved to any focusable content in\r\n * the popup.\r\n *\r\n * @param lastEventType\r\n * @param inputRef\r\n */\n\n\nfunction useFocusManagement(lastEventType, inputRef) {\n // useLayoutEffect so that the cursor goes to the end of the input instead\n // of awkwardly at the beginning, unclear to me why 🤷‍♂️\n //\n // Should be safe to use here since we're just focusing an input.\n useIsomorphicLayoutEffect(function () {\n if (lastEventType === NAVIGATE || lastEventType === ESCAPE || lastEventType === SELECT_WITH_CLICK || lastEventType === OPEN_WITH_BUTTON) {\n inputRef.current.focus();\n }\n }, [inputRef, lastEventType]);\n}\n/**\r\n * We want the same events when the input or the popup have focus (HOW COOL ARE\r\n * HOOKS BTW?) This is probably the hairiest piece but it's not bad.\r\n */\n\n\nfunction useKeyDown() {\n var _React$useContext8 = useContext(ComboboxContext),\n navigationValue = _React$useContext8.data.navigationValue,\n onSelect = _React$useContext8.onSelect,\n state = _React$useContext8.state,\n transition = _React$useContext8.transition,\n autocompletePropRef = _React$useContext8.autocompletePropRef,\n persistSelectionRef = _React$useContext8.persistSelectionRef;\n\n var options = useDescendants(ComboboxDescendantContext);\n return function handleKeyDown(event) {\n var index = options.findIndex(function (_ref7) {\n var value = _ref7.value;\n return value === navigationValue;\n });\n\n function getNextOption() {\n var atBottom = index === options.length - 1;\n\n if (atBottom) {\n if (autocompletePropRef.current) {\n // Go back to the value the user has typed because we are\n // autocompleting and they need to be able to get back to what\n // they had typed w/o having to backspace out.\n return null;\n } else {\n // cycle through\n return getFirstOption();\n }\n } else {\n // Go to the next item in the list\n return options[(index + 1) % options.length];\n }\n }\n\n function getPreviousOption() {\n var atTop = index === 0;\n\n if (atTop) {\n if (autocompletePropRef.current) {\n // Go back to the value the user has typed because we are\n // autocompleting and they need to be able to get back to what\n // they had typed w/o having to backspace out.\n return null;\n } else {\n // cycle through\n return getLastOption();\n }\n } else if (index === -1) {\n // displaying the user's value, so go select the last one\n return getLastOption();\n } else {\n // normal case, select previous\n return options[(index - 1 + options.length) % options.length];\n }\n }\n\n function getFirstOption() {\n return options[0];\n }\n\n function getLastOption() {\n return options[options.length - 1];\n }\n\n switch (event.key) {\n case \"ArrowDown\":\n // Don't scroll the page\n event.preventDefault();\n\n if (!options || !options.length) {\n return;\n }\n\n if (state === IDLE) {\n // Opening a closed list\n transition(NAVIGATE, {\n persistSelection: persistSelectionRef.current\n });\n } else {\n var next = getNextOption();\n transition(NAVIGATE, {\n value: next ? next.value : null\n });\n }\n\n break;\n // A lot of duplicate code with ArrowDown up next, I'm already over it.\n\n case \"ArrowUp\":\n // Don't scroll the page\n event.preventDefault();\n\n if (!options || options.length === 0) {\n return;\n }\n\n if (state === IDLE) {\n transition(NAVIGATE);\n } else {\n var prev = getPreviousOption();\n transition(NAVIGATE, {\n value: prev ? prev.value : null\n });\n }\n\n break;\n\n case \"Home\":\n case \"PageUp\":\n // Don't scroll the page\n event.preventDefault();\n\n if (!options || options.length === 0) {\n return;\n }\n\n if (state === IDLE) {\n transition(NAVIGATE);\n } else {\n transition(NAVIGATE, {\n value: getFirstOption().value\n });\n }\n\n break;\n\n case \"End\":\n case \"PageDown\":\n // Don't scroll the page\n event.preventDefault();\n\n if (!options || options.length === 0) {\n return;\n }\n\n if (state === IDLE) {\n transition(NAVIGATE);\n } else {\n transition(NAVIGATE, {\n value: getLastOption().value\n });\n }\n\n break;\n\n case \"Escape\":\n if (state !== IDLE) {\n transition(ESCAPE);\n }\n\n break;\n\n case \"Enter\":\n if (state === NAVIGATING && navigationValue !== null) {\n // don't want to submit forms\n event.preventDefault();\n onSelect && onSelect(navigationValue);\n transition(SELECT_WITH_KEYBOARD);\n }\n\n break;\n }\n };\n}\n\nfunction useBlur() {\n var _React$useContext9 = useContext(ComboboxContext),\n state = _React$useContext9.state,\n transition = _React$useContext9.transition,\n popoverRef = _React$useContext9.popoverRef,\n inputRef = _React$useContext9.inputRef,\n buttonRef = _React$useContext9.buttonRef;\n\n var rafIds = useLazyRef(function () {\n return new Set();\n });\n useEffect(function () {\n return function () {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n rafIds.current.forEach(function (id) {\n return cancelAnimationFrame(id);\n });\n };\n }, [rafIds]);\n return function handleBlur() {\n var ownerDocument = getOwnerDocument(popoverRef.current);\n\n if (!ownerDocument) {\n return;\n }\n\n var rafId = requestAnimationFrame(function () {\n // we on want to close only if focus propss outside the combobox\n if (ownerDocument.activeElement !== inputRef.current && ownerDocument.activeElement !== buttonRef.current && popoverRef.current) {\n if (popoverRef.current.contains(ownerDocument.activeElement)) {\n // focus landed inside the combobox, keep it open\n if (state !== INTERACTING) {\n transition(INTERACT);\n }\n } else {\n // focus landed outside the combobox, close it.\n transition(BLUR);\n }\n }\n });\n rafIds.current.add(rafId);\n };\n}\n/**\r\n * This manages transitions between states with a built in reducer to manage\r\n * the data that goes with those transitions.\r\n *\r\n * @param chart\r\n * @param reducer\r\n * @param initialData\r\n */\n\n\nfunction useReducerMachine(chart, reducer, initialData) {\n var _React$useState = useState(chart.initial),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var _React$useReducer = useReducer(reducer, initialData),\n data = _React$useReducer[0],\n dispatch = _React$useReducer[1];\n\n var transition = function transition(event, payload) {\n if (payload === void 0) {\n payload = {};\n }\n\n var currentState = chart.states[state];\n var nextState = currentState && currentState.on[event];\n\n if (nextState) {\n dispatch(_extends({\n type: event,\n state: state,\n nextState: state\n }, payload));\n setState(nextState);\n return;\n }\n };\n\n return [state, data, transition];\n}\n/**\r\n * We don't want to track the active descendant with indexes because nothing is\r\n * more annoying in a combobox than having it change values RIGHT AS YOU HIT\r\n * ENTER. That only happens if you use the index as your data, rather than\r\n * *your data as your data*. We use this to generate a unique ID based on the\r\n * value of each item. This function is short, sweet, and good enough™ (I also\r\n * don't know how it works, tbqh)\r\n *\r\n * @see https://stackoverflow.com/questions/6122571/simple-non-secure-hash-function-for-javascript\r\n * @param str\r\n */\n\n\nfunction makeHash(str) {\n var hash = 0;\n\n if (str.length === 0) {\n return hash;\n }\n\n for (var i = 0; i < str.length; i++) {\n var _char = str.charCodeAt(i);\n\n hash = (hash << 5) - hash + _char;\n hash = hash & hash;\n }\n\n return hash;\n}\n\nfunction getDataState(state) {\n return state.toLowerCase();\n}\n/**\r\n * Escape regexp special characters in `str`\r\n *\r\n * @see https://github.com/component/escape-regexp/blob/5ce923c1510c9802b3da972c90b6861dd2829b6b/index.js\r\n * @param str\r\n */\n\n\nfunction escapeRegexp(str) {\n return String(str).replace(/([.*+?=^!:${}()|[\\]/\\\\])/g, \"\\\\$1\");\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * A hook that exposes data for a given `Combobox` component to its descendants.\r\n *\r\n * @see Docs https://reach.tech/combobox#usecomboboxcontext\r\n */\n\nfunction useComboboxContext() {\n var _React$useContext10 = useContext(ComboboxContext),\n isExpanded = _React$useContext10.isExpanded,\n comboboxId = _React$useContext10.comboboxId,\n data = _React$useContext10.data,\n state = _React$useContext10.state;\n\n var navigationValue = data.navigationValue;\n return useMemo(function () {\n return {\n id: comboboxId,\n isExpanded: isExpanded,\n navigationValue: navigationValue !== null && navigationValue !== void 0 ? navigationValue : null,\n state: state\n };\n }, [comboboxId, isExpanded, navigationValue, state]);\n}\n/**\r\n * A hook that exposes data for a given `ComboboxOption` component to its descendants.\r\n *\r\n * @see Docs https://reach.tech/combobox#usecomboboxcontext\r\n */\n\nfunction useComboboxOptionContext() {\n var _React$useContext11 = useContext(OptionContext),\n value = _React$useContext11.value,\n index = _React$useContext11.index;\n\n return useMemo(function () {\n return {\n value: value,\n index: index\n };\n }, [value, index]);\n}\n\nexport { Combobox, ComboboxButton, ComboboxInput, ComboboxList, ComboboxOption, ComboboxOptionText, ComboboxPopover, escapeRegexp, useComboboxContext, useComboboxOptionContext };\n//# sourceMappingURL=combobox.esm.js.map\n","import { useEffect, useRef, useState } from 'react';\nimport useUnmount from './useUnmount';\nvar useThrottle = function (value, ms) {\n if (ms === void 0) { ms = 200; }\n var _a = useState(value), state = _a[0], setState = _a[1];\n var timeout = useRef();\n var nextValue = useRef(null);\n var hasNextValue = useRef(0);\n useEffect(function () {\n if (!timeout.current) {\n setState(value);\n var timeoutCallback_1 = function () {\n if (hasNextValue.current) {\n hasNextValue.current = false;\n setState(nextValue.current);\n timeout.current = setTimeout(timeoutCallback_1, ms);\n }\n else {\n timeout.current = undefined;\n }\n };\n timeout.current = setTimeout(timeoutCallback_1, ms);\n }\n else {\n nextValue.current = value;\n hasNextValue.current = true;\n }\n }, [value]);\n useUnmount(function () {\n timeout.current && clearTimeout(timeout.current);\n });\n return state;\n};\nexport default useThrottle;\n","import {\n ComboboxInput as Input,\n ComboboxList as List,\n ComboboxOption as Option,\n ComboboxPopover as Popover,\n} from '@reach/combobox';\nimport { TextInputStyles } from 'components/text-input/text-input.styles';\nimport { rem } from 'polished';\nimport styled from 'styled-components';\n\nconst OPTION_PADDING = rem(14);\n\nexport const FieldWrapper = styled.div`\n width: 100%;\n max-width: ${rem(650)};\n margin: ${rem(30)} auto 0;\n padding: ${rem(42)} ${rem(38)};\n color: ${({ theme }) => theme.colors.palette.black};\n font-size: ${rem(16)};\n background-color: ${({ theme }) => theme.colors.palette.white};\n border: 0;\n border-radius: ${({ theme }) => theme.borderRadius.medium};\n\n ${({ theme }) => theme.mediaQueries.medium} {\n padding: ${rem(70)} ${rem(120)};\n }\n`;\n\nexport const ComboboxInput = styled(Input)`\n ${TextInputStyles};\n\n margin-top: ${rem(4)};\n border-radius: ${({ theme }) => theme.borderRadius.small};\n`;\n\nexport const ComboboxList = styled(List)`\n margin: 0;\n padding: 0;\n list-style: none;\n user-select: none;\n`;\n\nexport const ComboboxOption = styled(Option)`\n position: relative;\n margin: 0;\n padding: ${OPTION_PADDING};\n cursor: pointer;\n\n &::before {\n position: absolute;\n top: 0;\n right: ${OPTION_PADDING};\n left: ${OPTION_PADDING};\n display: block;\n height: 0;\n border-top: 1px solid ${({ theme }) => theme.colors.palette.grey};\n content: '';\n }\n\n &:first-child {\n &::before {\n display: none;\n }\n }\n\n &:hover {\n color: ${({ theme }) => theme.colors.palette.white};\n background: ${({ theme }) => theme.colors.palette.black};\n\n /* Hide the options divider */\n &::before {\n display: none;\n }\n }\n\n &[aria-selected='true'] {\n background: ${({ theme }) => theme.colors.palette.greyLight};\n\n &::before {\n display: none;\n }\n\n &:hover {\n background: ${({ theme }) => theme.colors.palette.black};\n }\n }\n\n /* Hide the next sibling options divider */\n &[aria-selected='true'] + &,\n &:hover + & {\n &::before {\n display: none;\n }\n }\n\n [data-user-value] {\n font-weight: 700;\n }\n\n [data-suggested-value] {\n font-weight: 400;\n }\n`;\n\nexport const ComboboxPopover = styled(Popover)`\n /* z-index required, otherwise it's behind layout bg. */\n z-index: ${({ theme }) => theme.zIndex[1]};\n max-height: ${rem(175)};\n overflow: auto;\n color: ${({ theme }) => theme.colors.palette.black};\n font-size: ${rem(15)};\n line-height: 1.3;\n background: ${({ theme }) => theme.colors.palette.white};\n border-bottom-right-radius: ${({ theme }) => theme.borderRadius.small};\n border-bottom-left-radius: ${({ theme }) => theme.borderRadius.small};\n box-shadow: 0 8px 15px rgba(0, 53, 96, 0.15);\n\n &:not(:empty) {\n margin-top: -3px;\n border-top: 2px solid ${({ theme }) => theme.colors.palette.black};\n }\n`;\n\nexport const NoResults = styled.span`\n display: block;\n margin: ${rem(8)};\n`;\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport { Combobox } from '@reach/combobox';\nimport { Location as LocationData, Regions } from 'api/client';\nimport { PLAN_VERSION } from 'api/migration/constants';\nimport { useUserProfileAPI } from 'hooks/use-user-profile';\nimport React, {\n ChangeEvent,\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useThrottle, useUnmount } from 'react-use';\nimport { NavigatePlan, QuestionModeEnum } from 'types/base';\nimport { navigateWithDirection } from 'utils/helpers';\nimport * as yup from 'yup';\nimport FormControls from '../form-controls';\nimport { Description, QuestionWrapper, Title } from '../question.styles';\nimport {\n ComboboxInput,\n ComboboxList,\n ComboboxOption,\n ComboboxPopover,\n FieldWrapper,\n NoResults,\n} from './location.styled';\n\nconst MIN_INPUT_LENGTH = 3; // when to start looking through the postcode data.\nconst FILTER_THROTTLE_MS = 200;\nconst EMPTY_LOCALITIES: LocationData[] = [];\n\ninterface Props {\n regions: Regions;\n mode: QuestionModeEnum;\n onSetLocation: (location: LocationData) => void;\n location?: LocationData;\n navigate?: NavigatePlan;\n}\n\nconst Location: FC = (props) => {\n const [searchTerm, setSearchTerm] = useState(\n getLocationValue(props.location)\n );\n const { useUserProfile, useUpdateUserProfile } = useUserProfileAPI();\n const { mutate: updateUserProfile } = useUpdateUserProfile(false);\n const { data: userProfile } = useUserProfile();\n const initialLocationValue = useRef(props.location);\n const [showSuggestions, setShowSuggestions] = useState(true);\n const locations = useLocationSearch(searchTerm, props.regions);\n const handleSearchTermChange = (event: ChangeEvent) => {\n setSearchTerm(event.target.value);\n };\n\n const defaultValues: LocationData = {\n suburb: props.location?.suburb ?? '',\n postcode: props.location?.postcode ?? '',\n };\n\n const { register, setValue, trigger, handleSubmit, formState, watch } =\n useForm({\n defaultValues,\n mode: 'onChange',\n resolver: yupResolver(getSchema(props.mode)),\n });\n\n const handleValueSelect = useCallback(\n (value: string) => {\n if (value.length) {\n const data = value.split(' ');\n const postcode = data.pop() ?? ''; // last element is always the postcode\n const location: LocationData = {\n suburb: data.join(' '),\n postcode,\n };\n setValue('postcode', location.postcode, { shouldDirty: true });\n setValue('suburb', location.suburb, { shouldDirty: true });\n trigger();\n setSearchTerm(getLocationValue(location));\n }\n },\n [setValue, trigger]\n );\n\n const handleFocus = () => {\n // If the initial location value was empty, re-enable the suggestions.\n // Necessary as there is no current way to manually close the combobox.\n // Stale bug: https://github.com/reach/reach-ui/issues/224\n if (!initialLocationValue.current) {\n setShowSuggestions(true);\n }\n };\n\n const onSubmit = handleSubmit((location, event) => {\n props.onSetLocation(location);\n navigateWithDirection(props.navigate, event);\n // For new users, set their latest acknowled plan version to the current one to stop the updated dialog\n // popping up when they save a plan, as it's not meant for new users.\n if (userProfile?.data.latestAcknowledgedVersion !== PLAN_VERSION) {\n updateUserProfile({\n latestAcknowledgedVersion: PLAN_VERSION,\n });\n }\n });\n\n const { isValid, isSubmitting, isDirty } = formState;\n const canNavigate =\n props.mode === QuestionModeEnum.Survey ? !isValid : undefined;\n const isPlanMode = props.mode === QuestionModeEnum.Plan;\n\n useEffect(() => {\n if (searchTerm.trim().length === 0) {\n setValue('postcode', '', { shouldDirty: true });\n setValue('suburb', '', { shouldDirty: true });\n trigger();\n }\n }, [searchTerm, setValue, trigger]);\n\n useEffect(() => {\n if (!initialLocationValue.current && props.location && !searchTerm) {\n setShowSuggestions(false);\n setValue('postcode', props.location.postcode);\n setValue('suburb', props.location.suburb);\n trigger();\n setSearchTerm(getLocationValue(props.location));\n }\n }, [initialLocationValue, props.location, searchTerm, setValue, trigger]);\n\n const formData = watch();\n useUnmount(() => {\n if (!isSubmitting && isDirty) {\n const location = { ...formData };\n props.onSetLocation(location);\n }\n });\n\n return (\n
\n \n Where is your bushfire plan for?\n\n \n Your plan may be for your home, or for another location such as a\n holiday house.\n
\n
\n Over 90% of WA is{' '}\n {/* */}\n {/* TODO: not an approved change... yet! */}\n bushfire prone\n {/* */}. Even suburbs near the city and beach can be at risk.\n Your bushfire plan will help you and your family stay safe.\n
\n\n \n \n \n \n \n \n {showSuggestions && locations && (\n \n {!!locations.length ? (\n \n {locations.map((location) => {\n const str = getLocationValue(location);\n return ;\n })}\n \n ) : searchTerm.length >= MIN_INPUT_LENGTH ? (\n No results found\n ) : null}\n \n )}\n \n \n
\n \n \n );\n};\n\nfunction getLocationValue(location?: LocationData): string {\n return !!location?.suburb && !!location.postcode\n ? `${location.suburb} ${location.postcode}`\n : '';\n}\n\nfunction useLocationSearch(searchTerm: string, regions: Regions) {\n const [locations, setLocations] = useState([]);\n const throttledTerm = useThrottle(searchTerm, FILTER_THROTTLE_MS);\n const allLocations = useMemo(\n () =>\n Object.entries(regions).flatMap(([postcode, suburbRegions]) =>\n suburbRegions.map((suburb) => ({ postcode, suburb: suburb.name }))\n ),\n [regions]\n );\n\n useEffect(() => {\n function getLocalities(searchTerm: string) {\n let results = EMPTY_LOCALITIES;\n const trimmedSearchTerm = searchTerm.trim();\n\n if (trimmedSearchTerm.length >= MIN_INPUT_LENGTH) {\n // if the term is a number, we'll look for postcodes\n if (!isNaN(+trimmedSearchTerm)) {\n results = allLocations.filter((location) =>\n location.postcode.includes(trimmedSearchTerm)\n );\n } else {\n // if the term is a string, we'll look for a suburb\n results = allLocations.filter((location) =>\n location.suburb\n .toLowerCase()\n .includes(trimmedSearchTerm.toLowerCase())\n );\n }\n // Fallback:\n // Search combination suburb & postcode (mostly used when editing an existing search term)\n if (!results.length) {\n results = allLocations.filter((location) =>\n getLocationValue(location)\n .toLowerCase()\n .includes(trimmedSearchTerm.toLowerCase())\n );\n }\n }\n\n setLocations(results);\n }\n\n getLocalities(throttledTerm);\n }, [throttledTerm, allLocations]);\n\n return locations;\n}\n\n/**\n * Returns the form schema depending on where the form is used.\n * Even thuogh `Location` is the first question in the plan, it can be skipped.\n */\nfunction getSchema(type: QuestionModeEnum) {\n if (type === QuestionModeEnum.Survey) {\n return yup\n .object()\n .shape({\n postcode: yup.string().required(),\n suburb: yup.string().required(),\n address: yup.string(),\n })\n .defined();\n } else {\n return yup\n .object()\n .shape({\n postcode: yup.string(),\n suburb: yup.string(),\n address: yup.string(),\n })\n .defined();\n }\n}\n\nexport default Location;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { IconComponent } from 'types/base';\nimport { CheckboxWrapper, Input, Label } from './checkbox.styles';\n\ninterface Props extends React.HTMLProps {\n label: string;\n id: string;\n icon?: IconComponent;\n type?: 'checkbox' | 'radio';\n align?: 'top' | 'center';\n slim?: boolean;\n bold?: boolean;\n}\n\nconst Checkbox = React.forwardRef(\n (\n { id, label, icon: CustomIcon, type, align, slim, bold, ...inputProps },\n forwardedRef\n ) => {\n const Icon: IconComponent = (props) =>\n CustomIcon ? : null;\n\n return (\n \n \n \n \n );\n }\n);\n\nCheckbox.defaultProps = {\n type: 'checkbox',\n align: 'center',\n};\n\nCheckbox.propTypes = {\n label: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n type: PropTypes.oneOf(['checkbox', 'radio']),\n align: PropTypes.oneOf(['top', 'center']),\n};\n\nexport default Checkbox;\n","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import Button from 'components/button';\nimport PropTypes from 'prop-types';\nimport React, { FC, MouseEvent, useState } from 'react';\nimport { NavigationDirectionEnum } from 'types/base';\nimport { ButtonWrapper } from './question.styles';\n\ninterface Props {\n disabled?: boolean;\n /** By default both buttons are visible */\n showPrevious?: boolean;\n}\n\nexport const FormControls: FC = (props) => {\n const [submitter, setSubmitter] = useState('');\n\n const handleClick = (event: MouseEvent) => {\n setSubmitter(event.currentTarget.value as NavigationDirectionEnum);\n };\n\n return (\n <>\n \n \n \n Next\n \n {props.showPrevious && (\n \n Previous\n \n )}\n \n \n );\n};\n\nFormControls.defaultProps = {\n disabled: false,\n showPrevious: true,\n};\n\nFormControls.propTypes = {\n disabled: PropTypes.bool,\n showPrevious: PropTypes.bool,\n};\n\nexport default FormControls;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nvar _ref = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.834 11.282a5.65 5.65 0 005.64-5.641A5.646 5.646 0 0019.834 0a5.646 5.646 0 00-5.641 5.64 5.65 5.65 0 005.64 5.642zm0-8.938a3.304 3.304 0 013.296 3.297 3.304 3.304 0 01-3.296 3.297 3.305 3.305 0 01-3.297-3.297 3.304 3.304 0 013.297-3.297zM30.23 24.9c.462.4 1.157.37 1.596-.06l2.495-2.496a1.164 1.164 0 000-1.656l-9.02-9.028c-.22-.22-.515-.34-.832-.34h-9.27c-.31 0-.613.12-.832.34l-9.021 9.02a1.164 1.164 0 000 1.656l2.495 2.496a1.177 1.177 0 001.596.06l3.38-2.896v3.38l-5.339 5.338a1.164 1.164 0 000 1.656l7.29 7.29a1.164 1.164 0 001.655 0l2.707-2.707a1.15 1.15 0 00.34-.847 1.151 1.151 0 00-.37-.832l-2.57-2.427 2.32-1.951h1.96l2.32 1.95-2.57 2.428a1.21 1.21 0 00-.371.832c-.008.317.121.62.34.847l2.707 2.707a1.186 1.186 0 001.663 0l7.29-7.29a1.164 1.164 0 000-1.656l-5.338-5.338v-3.38l3.38 2.904zm-16.257 8.748l2.647 2.503-1.02 1.02-5.634-5.632 4.076-4.076 2.586 2.246-2.61 2.185c-.256.212-.407.53-.415.862a1.2 1.2 0 00.37.892zm4.9-5.096l-3.712-3.221V23.97h9.346v1.36l-3.713 3.23h-1.92v-.008zm10.828 2.987l-5.633 5.633-1.02-1.02 2.646-2.504a1.18 1.18 0 00.37-.884 1.153 1.153 0 00-.416-.862l-2.608-2.186 2.586-2.245 4.075 4.068zm-3.259-12.976a1.187 1.187 0 00-1.255-.174c-.416.19-.68.605-.68 1.066v2.17H15.16v-2.177c0-.461-.265-.877-.68-1.066a1.187 1.187 0 00-1.256.174l-4.492 3.848-.9-.9 7.85-7.848h8.302l7.849 7.849-.9.9-4.492-3.842z\",\n fill: \"currentColor\"\n});\n\nfunction SvgIconBaby(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 40 40\"\n }, props), _ref);\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+CiAgPHBhdGggZD0iTTE5LjgzNCAxMS4yODJhNS42NSA1LjY1IDAgMDA1LjY0LTUuNjQxQTUuNjQ2IDUuNjQ2IDAgMDAxOS44MzQgMGE1LjY0NiA1LjY0NiAwIDAwLTUuNjQxIDUuNjQgNS42NSA1LjY1IDAgMDA1LjY0IDUuNjQyem0wLTguOTM4YTMuMzA0IDMuMzA0IDAgMDEzLjI5NiAzLjI5NyAzLjMwNCAzLjMwNCAwIDAxLTMuMjk2IDMuMjk3IDMuMzA1IDMuMzA1IDAgMDEtMy4yOTctMy4yOTcgMy4zMDQgMy4zMDQgMCAwMTMuMjk3LTMuMjk3ek0zMC4yMyAyNC45Yy40NjIuNCAxLjE1Ny4zNyAxLjU5Ni0uMDZsMi40OTUtMi40OTZhMS4xNjQgMS4xNjQgMCAwMDAtMS42NTZsLTkuMDItOS4wMjhjLS4yMi0uMjItLjUxNS0uMzQtLjgzMi0uMzRoLTkuMjdjLS4zMSAwLS42MTMuMTItLjgzMi4zNGwtOS4wMjEgOS4wMmExLjE2NCAxLjE2NCAwIDAwMCAxLjY1NmwyLjQ5NSAyLjQ5NmExLjE3NyAxLjE3NyAwIDAwMS41OTYuMDZsMy4zOC0yLjg5NnYzLjM4bC01LjMzOSA1LjMzOGExLjE2NCAxLjE2NCAwIDAwMCAxLjY1Nmw3LjI5IDcuMjlhMS4xNjQgMS4xNjQgMCAwMDEuNjU1IDBsMi43MDctMi43MDdjLjIyNy0uMjI3LjM0OC0uNTMuMzQtLjg0N2ExLjE1MSAxLjE1MSAwIDAwLS4zNy0uODMybC0yLjU3LTIuNDI3IDIuMzItMS45NTFoMS45NmwyLjMyIDEuOTUtMi41NyAyLjQyOGExLjIxIDEuMjEgMCAwMC0uMzcxLjgzMmMtLjAwOC4zMTcuMTIxLjYyLjM0Ljg0N2wyLjcwNyAyLjcwN2ExLjE4NiAxLjE4NiAwIDAwMS42NjMgMGw3LjI5LTcuMjlhMS4xNjQgMS4xNjQgMCAwMDAtMS42NTZsLTUuMzM4LTUuMzM4di0zLjM4bDMuMzggMi45MDR6bS0xNi4yNTcgOC43NDhsMi42NDcgMi41MDMtMS4wMiAxLjAyLTUuNjM0LTUuNjMyIDQuMDc2LTQuMDc2IDIuNTg2IDIuMjQ2LTIuNjEgMi4xODVjLS4yNTYuMjEyLS40MDcuNTMtLjQxNS44NjJhMS4yIDEuMiAwIDAwLjM3Ljg5MnptNC45LTUuMDk2bC0zLjcxMi0zLjIyMVYyMy45N2g5LjM0NnYxLjM2bC0zLjcxMyAzLjIzaC0xLjkydi0uMDA4em0xMC44MjggMi45ODdsLTUuNjMzIDUuNjMzLTEuMDItMS4wMiAyLjY0Ni0yLjUwNGMuMjQyLS4yMjcuMzc4LS41NTIuMzctLjg4NGExLjE1MyAxLjE1MyAwIDAwLS40MTYtLjg2MmwtMi42MDgtMi4xODYgMi41ODYtMi4yNDUgNC4wNzUgNC4wNjh6bS0zLjI1OS0xMi45NzZhMS4xODcgMS4xODcgMCAwMC0xLjI1NS0uMTc0Yy0uNDE2LjE5LS42OC42MDUtLjY4IDEuMDY2djIuMTdIMTUuMTZ2LTIuMTc3YzAtLjQ2MS0uMjY1LS44NzctLjY4LTEuMDY2YTEuMTg3IDEuMTg3IDAgMDAtMS4yNTYuMTc0bC00LjQ5MiAzLjg0OC0uOS0uOSA3Ljg1LTcuODQ4aDguMzAybDcuODQ5IDcuODQ5LS45LjktNC40OTItMy44NDJ6IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+Cjwvc3ZnPgo=\";\nexport { SvgIconBaby as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nvar _ref = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#icon-cow_svg__icon-cow_svg__clip0)\",\n fill: \"currentColor\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 15.79v-3.785a3.677 3.677 0 00-3.673-3.672l-18.431-.08-.52-.805.05-.028c.792-.462 1.033-1.35 1.073-1.524l.198-.856-.843-.249c-.17-.05-1.062-.277-1.855.185a2.085 2.085 0 00-.592.525V3.5H5.542v2.04H3.749L2.628 7.19h-.326c-.773 0-1.49.384-1.918 1.029a2.296 2.296 0 00-.202 2.166l1.054 2.5h2.873l3.076 6.882c.104.308.253.588.44.837v6.057H6.72v1.864h5.847V24l1.346-1.032a5.325 5.325 0 001.128-1.185h5.49a3.696 3.696 0 001.853 1.97v1.185h1.864v-.844a3.682 3.682 0 001.52-.463v3.028h-.904v1.865h5.743v-8.433l-1.297-2.593v-5.347c0-.684-.177-1.327-.487-1.886a1.81 1.81 0 011.313 1.739v3.785H32zm-17.453-5.672h4.446v1.489c0 .251-.127.48-.34.613l-1.035.64a.72.72 0 01-.731.016l-1.971-1.102a.72.72 0 01-.37-.63v-1.026zM9.489 26.66v-4.92c.164.028.332.043.503.043h.71v4.877H9.49zm14.466-4.419a1.824 1.824 0 01-1.72-1.217l1.446-1.62.404.65c.355.569.77 1.096 1.234 1.574-.34.383-.83.613-1.364.613zm4.787 4.419h-1.109v-3.292l.036.02 1.073.564v2.708zm-.204-4.922a7.494 7.494 0 01-2.87-2.67l-1.72-2.765-3.225 3.616h-4.85c.092-.394.14-.8.14-1.209v-2.256h-1.865v2.256c0 1.082-.512 2.12-1.37 2.779l-.21.161v-5.134h-1.865v3.403h-.71c-.482 0-.903-.309-1.047-.768l-.017-.052-3.611-8.08H2.473l-.574-1.36a.425.425 0 01.039-.41.426.426 0 01.364-.196h1.312l1.122-1.649h2.159l.29.086 1.694 2.627h3.803v1.027c0 .935.507 1.8 1.323 2.256l1.972 1.102a2.584 2.584 0 002.623-.058l1.034-.64a2.569 2.569 0 001.224-2.198v-1.49h4.554c1.122 0 2.034.913 2.034 2.035v5.787l1.296 2.593v1.314l-.204-.107z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.221 14c-.488 0-.955.428-.932.932.023.505.41.932.932.932.488 0 .955-.429.932-.932-.022-.505-.41-.933-.932-.933z\"\n}));\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"icon-cow_svg__icon-cow_svg__clip0\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h32v32H0z\"\n})));\n\nfunction SvgIconCow(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\"\n }, props), _ref, _ref2);\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI+CiAgPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgIDxwYXRoIGQ9Ik0zMiAxNS43OXYtMy43ODVhMy42NzcgMy42NzcgMCAwMC0zLjY3My0zLjY3MmwtMTguNDMxLS4wOC0uNTItLjgwNS4wNS0uMDI4Yy43OTItLjQ2MiAxLjAzMy0xLjM1IDEuMDczLTEuNTI0bC4xOTgtLjg1Ni0uODQzLS4yNDljLS4xNy0uMDUtMS4wNjItLjI3Ny0xLjg1NS4xODVhMi4wODUgMi4wODUgMCAwMC0uNTkyLjUyNVYzLjVINS41NDJ2Mi4wNEgzLjc0OUwyLjYyOCA3LjE5aC0uMzI2Yy0uNzczIDAtMS40OS4zODQtMS45MTggMS4wMjlhMi4yOTYgMi4yOTYgMCAwMC0uMjAyIDIuMTY2bDEuMDU0IDIuNWgyLjg3M2wzLjA3NiA2Ljg4MmMuMTA0LjMwOC4yNTMuNTg4LjQ0LjgzN3Y2LjA1N0g2LjcydjEuODY0aDUuODQ3VjI0bDEuMzQ2LTEuMDMyYTUuMzI1IDUuMzI1IDAgMDAxLjEyOC0xLjE4NWg1LjQ5YTMuNjk2IDMuNjk2IDAgMDAxLjg1MyAxLjk3djEuMTg1aDEuODY0di0uODQ0YTMuNjgyIDMuNjgyIDAgMDAxLjUyLS40NjN2My4wMjhoLS45MDR2MS44NjVoNS43NDN2LTguNDMzbC0xLjI5Ny0yLjU5M3YtNS4zNDdjMC0uNjg0LS4xNzctMS4zMjctLjQ4Ny0xLjg4NmExLjgxIDEuODEgMCAwMTEuMzEzIDEuNzM5djMuNzg1SDMyem0tMTcuNDUzLTUuNjcyaDQuNDQ2djEuNDg5YzAgLjI1MS0uMTI3LjQ4LS4zNC42MTNsLTEuMDM1LjY0YS43Mi43MiAwIDAxLS43MzEuMDE2bC0xLjk3MS0xLjEwMmEuNzIuNzIgMCAwMS0uMzctLjYzdi0xLjAyNnpNOS40ODkgMjYuNjZ2LTQuOTJjLjE2NC4wMjguMzMyLjA0My41MDMuMDQzaC43MXY0Ljg3N0g5LjQ5em0xNC40NjYtNC40MTlhMS44MjQgMS44MjQgMCAwMS0xLjcyLTEuMjE3bDEuNDQ2LTEuNjIuNDA0LjY1Yy4zNTUuNTY5Ljc3IDEuMDk2IDEuMjM0IDEuNTc0LS4zNC4zODMtLjgzLjYxMy0xLjM2NC42MTN6bTQuNzg3IDQuNDE5aC0xLjEwOXYtMy4yOTJsLjAzNi4wMiAxLjA3My41NjR2Mi43MDh6bS0uMjA0LTQuOTIyYTcuNDk0IDcuNDk0IDAgMDEtMi44Ny0yLjY3bC0xLjcyLTIuNzY1LTMuMjI1IDMuNjE2aC00Ljg1Yy4wOTItLjM5NC4xNC0uOC4xNC0xLjIwOXYtMi4yNTZoLTEuODY1djIuMjU2YzAgMS4wODItLjUxMiAyLjEyLTEuMzcgMi43NzlsLS4yMS4xNjF2LTUuMTM0aC0xLjg2NXYzLjQwM2gtLjcxYy0uNDgyIDAtLjkwMy0uMzA5LTEuMDQ3LS43NjhsLS4wMTctLjA1Mi0zLjYxMS04LjA4SDIuNDczbC0uNTc0LTEuMzZhLjQyNS40MjUgMCAwMS4wMzktLjQxLjQyNi40MjYgMCAwMS4zNjQtLjE5NmgxLjMxMmwxLjEyMi0xLjY0OWgyLjE1OWwuMjkuMDg2IDEuNjk0IDIuNjI3aDMuODAzdjEuMDI3YzAgLjkzNS41MDcgMS44IDEuMzIzIDIuMjU2bDEuOTcyIDEuMTAyYTIuNTg0IDIuNTg0IDAgMDAyLjYyMy0uMDU4bDEuMDM0LS42NGEyLjU2OSAyLjU2OSAwIDAwMS4yMjQtMi4xOTh2LTEuNDloNC41NTRjMS4xMjIgMCAyLjAzNC45MTMgMi4wMzQgMi4wMzV2NS43ODdsMS4yOTYgMi41OTN2MS4zMTRsLS4yMDQtLjEwN3oiLz4KICAgIDxwYXRoIGQ9Ik0yMS4yMjEgMTRjLS40ODggMC0uOTU1LjQyOC0uOTMyLjkzMi4wMjMuNTA1LjQxLjkzMi45MzIuOTMyLjQ4OCAwIC45NTUtLjQyOS45MzItLjkzMi0uMDIyLS41MDUtLjQxLS45MzMtLjkzMi0uOTMzeiIvPgogIDwvZz4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcDAiPgogICAgICA8cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDMydjMySDB6Ii8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KPC9zdmc+Cg==\";\nexport { SvgIconCow as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nvar _ref = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 14.261c0-3.723-2.35-6.9-5.628-8.095a3.78 3.78 0 00.853-2.397C12.225 1.691 10.554 0 8.5 0 6.446 0 4.775 1.69 4.775 3.769c0 .91.32 1.745.853 2.397C2.35 7.36 0 10.538 0 14.261v5.361l3.711 2.404V32h9.578v-9.994l3.71-2.38L17 14.26zM6.631 3.77c0-1.043.838-1.891 1.869-1.891 1.03 0 1.869.848 1.869 1.891A1.882 1.882 0 018.5 5.66a1.882 1.882 0 01-1.869-1.89zM8.5 7.538c3.664 0 6.644 3.016 6.644 6.723v1.288H13.29V12.14h-1.856v5.287H5.567V12.14H3.71v3.409H1.856v-1.288c0-3.707 2.98-6.723 6.644-6.723zM1.856 18.595v-3.046H3.71v4.247l-1.855-1.201zm7.572 11.527V19.365H7.572v10.757H5.567V17.427h5.866v12.695H9.428zm3.86-10.34V15.55h1.856v3.043l-1.855 1.19z\",\n fill: \"currentColor\"\n});\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 14.261c0-3.723-2.35-6.9-5.628-8.095a3.78 3.78 0 00.853-2.397C27.225 1.691 25.554 0 23.5 0c-2.054 0-3.725 1.69-3.725 3.769 0 .91.32 1.745.853 2.397C17.35 7.36 15 10.538 15 14.261v5.361l3.711 2.404V32h9.578v-9.994l3.71-2.38L32 14.26zM21.631 3.77c0-1.043.838-1.891 1.869-1.891 1.03 0 1.869.848 1.869 1.891A1.882 1.882 0 0123.5 5.66a1.882 1.882 0 01-1.869-1.891zM23.5 7.538c3.664 0 6.644 3.016 6.644 6.723v1.288H28.29V12.14h-1.856v5.287h-5.866V12.14H18.71v3.409h-1.855v-1.288c0-3.707 2.98-6.723 6.644-6.723zm-6.644 11.057v-3.046h1.855v4.247l-1.855-1.201zm7.572 11.527V19.365h-1.856v10.757h-2.005V17.427h5.866v12.695h-2.005zm3.86-10.34V15.55h1.856v3.043l-1.855 1.19z\",\n fill: \"currentColor\"\n});\n\nfunction SvgIconPeople(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\"\n }, props), _ref, _ref2);\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI+CiAgPHBhdGggZD0iTTE3IDE0LjI2MWMwLTMuNzIzLTIuMzUtNi45LTUuNjI4LTguMDk1YTMuNzggMy43OCAwIDAwLjg1My0yLjM5N0MxMi4yMjUgMS42OTEgMTAuNTU0IDAgOC41IDAgNi40NDYgMCA0Ljc3NSAxLjY5IDQuNzc1IDMuNzY5YzAgLjkxLjMyIDEuNzQ1Ljg1MyAyLjM5N0MyLjM1IDcuMzYgMCAxMC41MzggMCAxNC4yNjF2NS4zNjFsMy43MTEgMi40MDRWMzJoOS41Nzh2LTkuOTk0bDMuNzEtMi4zOEwxNyAxNC4yNnpNNi42MzEgMy43N2MwLTEuMDQzLjgzOC0xLjg5MSAxLjg2OS0xLjg5MSAxLjAzIDAgMS44NjkuODQ4IDEuODY5IDEuODkxQTEuODgyIDEuODgyIDAgMDE4LjUgNS42NiAxLjg4MiAxLjg4MiAwIDAxNi42MzEgMy43N3pNOC41IDcuNTM4YzMuNjY0IDAgNi42NDQgMy4wMTYgNi42NDQgNi43MjN2MS4yODhIMTMuMjlWMTIuMTRoLTEuODU2djUuMjg3SDUuNTY3VjEyLjE0SDMuNzF2My40MDlIMS44NTZ2LTEuMjg4YzAtMy43MDcgMi45OC02LjcyMyA2LjY0NC02LjcyM3pNMS44NTYgMTguNTk1di0zLjA0NkgzLjcxdjQuMjQ3bC0xLjg1NS0xLjIwMXptNy41NzIgMTEuNTI3VjE5LjM2NUg3LjU3MnYxMC43NTdINS41NjdWMTcuNDI3aDUuODY2djEyLjY5NUg5LjQyOHptMy44Ni0xMC4zNFYxNS41NWgxLjg1NnYzLjA0M2wtMS44NTUgMS4xOXoiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgogIDxwYXRoIGQ9Ik0zMiAxNC4yNjFjMC0zLjcyMy0yLjM1LTYuOS01LjYyOC04LjA5NWEzLjc4IDMuNzggMCAwMC44NTMtMi4zOTdDMjcuMjI1IDEuNjkxIDI1LjU1NCAwIDIzLjUgMGMtMi4wNTQgMC0zLjcyNSAxLjY5LTMuNzI1IDMuNzY5IDAgLjkxLjMyIDEuNzQ1Ljg1MyAyLjM5N0MxNy4zNSA3LjM2IDE1IDEwLjUzOCAxNSAxNC4yNjF2NS4zNjFsMy43MTEgMi40MDRWMzJoOS41Nzh2LTkuOTk0bDMuNzEtMi4zOEwzMiAxNC4yNnpNMjEuNjMxIDMuNzdjMC0xLjA0My44MzgtMS44OTEgMS44NjktMS44OTEgMS4wMyAwIDEuODY5Ljg0OCAxLjg2OSAxLjg5MUExLjg4MiAxLjg4MiAwIDAxMjMuNSA1LjY2YTEuODgyIDEuODgyIDAgMDEtMS44NjktMS44OTF6TTIzLjUgNy41MzhjMy42NjQgMCA2LjY0NCAzLjAxNiA2LjY0NCA2LjcyM3YxLjI4OEgyOC4yOVYxMi4xNGgtMS44NTZ2NS4yODdoLTUuODY2VjEyLjE0SDE4LjcxdjMuNDA5aC0xLjg1NXYtMS4yODhjMC0zLjcwNyAyLjk4LTYuNzIzIDYuNjQ0LTYuNzIzem0tNi42NDQgMTEuMDU3di0zLjA0NmgxLjg1NXY0LjI0N2wtMS44NTUtMS4yMDF6bTcuNTcyIDExLjUyN1YxOS4zNjVoLTEuODU2djEwLjc1N2gtMi4wMDVWMTcuNDI3aDUuODY2djEyLjY5NWgtMi4wMDV6bTMuODYtMTAuMzRWMTUuNTVoMS44NTZ2My4wNDNsLTEuODU1IDEuMTl6IiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+Cg==\";\nexport { SvgIconPeople as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nvar _ref = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#icon-person-walking-stick_svg__icon-person-walking-stick_svg__clip0_4435:37994)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#icon-person-walking-stick_svg__icon-person-walking-stick_svg__clip1_4435:37994)\",\n fill: \"#000\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.611 21.996h-2.364v17.926h2.364V21.996z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.38 14.724l-4.1-5.472a4.697 4.697 0 005.307-4.65c0-2.582-2.113-4.68-4.697-4.68a4.697 4.697 0 00-4.688 4.689c0 .994.313 1.917.845 2.677a3.544 3.544 0 00-3.264 2.16A27.346 27.346 0 008.52 20.415v19.507h7.029s.023-20.61.063-21.167l1.135 1.511 6.41 3.194 3.038-6.364-4.814-2.372zM17.89 2.262a2.342 2.342 0 012.34 2.34 2.342 2.342 0 01-2.34 2.341 2.342 2.342 0 01-2.341-2.34 2.347 2.347 0 012.34-2.34zm.399 16.165l-4.032-5.378c-.329 1.777-1.056 3.922-1.056 7.366V37.58H10.86V20.415c0-3.5.697-6.873 2.067-10.035.367-.854 1.487-1.026 2.043-.29l4.86 6.482 3.226 1.612-1.01 2.113-3.757-1.87z\"\n})));\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"icon-person-walking-stick_svg__icon-person-walking-stick_svg__clip0_4435:37994\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h40v40H0z\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"icon-person-walking-stick_svg__icon-person-walking-stick_svg__clip1_4435:37994\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n transform: \"translate(-1.25)\",\n d: \"M0 0h40v40H0z\"\n})));\n\nfunction SvgIconPersonWalkingStick(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 40 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _ref, _ref2);\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzQ0MzU6Mzc5OTQpIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAxXzQ0MzU6Mzc5OTQpIj4KPHBhdGggZD0iTTIzLjYxMTEgMjEuOTk2MkgyMS4yNDcxVjM5LjkyMThIMjMuNjExMVYyMS45OTYyWiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTIxLjM4MDYgMTQuNzI0MUwxNy4yNzg4IDkuMjUyNDhDMTcuNDgyMyA5LjI3NTk2IDE3LjY4NTkgOS4yOTE2MiAxNy44OTcyIDkuMjkxNjJDMjAuNDgwNCA5LjI5MTYyIDIyLjU4NjEgNy4xODU5NCAyMi41ODYxIDQuNjAyNzdDMjIuNTg2MSAyLjAxOTYgMjAuNDcyNiAtMC4wNzgyNDcxIDE3Ljg4OTQgLTAuMDc4MjQ3MUMxNS4zMDYyIC0wLjA3ODI0NzEgMTMuMjAwNSAyLjAyNzQzIDEzLjIwMDUgNC42MTA2QzEzLjIwMDUgNS42MDQ3MyAxMy41MTM3IDYuNTI4NDEgMTQuMDQ1OSA3LjI4NzdDMTIuNjI5MSA3LjI5NTUzIDExLjM2MSA4LjEwOTYyIDEwLjc4MTggOS40NDgxN0M5LjI3ODgzIDEyLjkwODEgOC41MTk1MyAxNi41OTQ5IDguNTE5NTMgMjAuNDE0OVYzOS45MjE4SDE1LjU0ODlDMTUuNTQ4OSAzOS45MjE4IDE1LjU3MjQgMTkuMzExMiAxNS42MTE1IDE4Ljc1NTRMMTYuNzQ2NSAyMC4yNjYyTDIzLjE1NzUgMjMuNDU5OUwyNi4xOTQ3IDE3LjA5NTlMMjEuMzgwNiAxNC43MjQxWk0xNy44ODk0IDIuMjYyMjZDMTkuMTgxIDIuMjYyMjYgMjAuMjI5OSAzLjMxMTE5IDIwLjIyOTkgNC42MDI3N0MyMC4yMjk5IDUuODk0MzYgMTkuMTgxIDYuOTQzMjggMTcuODg5NCA2Ljk0MzI4QzE2LjU5NzggNi45NDMyOCAxNS41NDg5IDUuODk0MzYgMTUuNTQ4OSA0LjYwMjc3QzE1LjU0ODkgMy4zMTkwMSAxNi41OTc4IDIuMjYyMjYgMTcuODg5NCAyLjI2MjI2Wk0xOC4yODg2IDE4LjQyNjZMMTQuMjU3MyAxMy4wNDlDMTMuOTI4NSAxNC44MjU5IDEzLjIwMDUgMTYuOTcwNyAxMy4yMDA1IDIwLjQxNDlWMzcuNTgxMkgxMC44NlYyMC40MTQ5QzEwLjg2IDE2LjkxNTkgMTEuNTU2NyAxMy41NDIxIDEyLjkyNjYgMTAuMzc5N0MxMy4yOTQ1IDkuNTI2NDUgMTQuNDEzOCA5LjM1NDI0IDE0Ljk2OTYgMTAuMDlMMTkuODMwNyAxNi41NzE1TDIzLjA1NTcgMTguMTg0TDIyLjA0NTkgMjAuMjk3NUwxOC4yODg2IDE4LjQyNjZaIiBmaWxsPSJibGFjayIvPgo8L2c+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfNDQzNTozNzk5NCI+CjxyZWN0IHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPGNsaXBQYXRoIGlkPSJjbGlwMV80NDM1OjM3OTk0Ij4KPHJlY3Qgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEuMjUpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==\";\nexport { SvgIconPersonWalkingStick as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nvar _ref = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.105 32h-2.542l-.176-.678c-.054-.218-1.374-5.332-1.101-7.814.133-1.228.61-2.548 1.077-3.819.43-1.174.872-2.39.823-3.056-.12-1.544-.914-4.431-.92-4.461l-.206-.75.715-.322c1.3-.58 3.389-1.803 3.728-2.578.212-.484.339-.914.424-1.271h-2.712l-.272-.37c-.006-.005-.696-.92-1.707-1.482-.381-.212-1.398-.272-1.961-.242l-.575.03-.896-1.658c-.605 1.113-1.223 2.608-1.047 3.692.387 2.403.006 4.436-1.053 5.586-2.99 3.22-6.386 7.27-6.797 8.54-.121.376-.26.793-.412 1.235-.611 1.798-1.446 4.261-1.446 5.66v3.764H6.98V30.19h1.253v-1.949c0-1.7.853-4.218 1.543-6.246.146-.436.29-.847.406-1.204.115-.351.454-1.417 3.613-5.175a120.574 120.574 0 013.565-4.05c.787-.853.823-2.657.593-4.06-.187-1.163.127-2.591.939-4.25.575-1.174 1.198-2.04 1.222-2.076L20.961 0l1.792 3.329c.654.012 1.67.097 2.36.484.908.509 1.598 1.199 1.974 1.622h3.782v.908c0 .127-.018 1.314-.708 2.9-.58 1.343-2.754 2.578-3.952 3.183.26 1.017.696 2.85.787 4.067.079 1.06-.406 2.403-.926 3.82-.43 1.174-.872 2.384-.98 3.389-.17 1.555.477 4.757.889 6.482h1.132V32h-.006z\",\n fill: \"currentColor\"\n});\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.468 32H19.17l-.182-.672c-.024-.103-.666-2.494-.666-5.187s.884-5.998.92-6.137l1.755.472c-.006.03-.859 3.22-.859 5.665 0 1.64.266 3.19.448 4.043h1.882V32zm-5.138 0h-3.19l.067-.968c0-.043.272-4.54-1.235-6.725-1.337-1.93-4.273-1.331-4.303-1.325l-.98.211-.116-.998c-.012-.091-.254-2.3-.187-3.505.03-.55.09-1.537.151-2.409l-1.023.63-1.985-.182-1.029-.883c-.424 1.186-.78 2.548-.648 3.159.085.375.194.75.315 1.192.345 1.205.811 2.851 1.174 5.956.242 2.058.406 4.673-.17 5.466l-.272.375H1.176v-1.816h1.531c.055-.563.067-1.695-.181-3.813-.345-2.966-.775-4.467-1.12-5.671-.127-.448-.248-.866-.345-1.296-.375-1.694.944-4.823 1.21-5.435l.49-1.12 2.488 2.131.805.073 3.505-2.161-.115 1.755c0 .03-.2 3.02-.26 4.146-.037.611.03 1.574.09 2.288 1.356-.079 3.74.121 5.175 2.191 1.398 2.016 1.586 5.29 1.58 6.906h1.289V32h.012z\",\n fill: \"currentColor\"\n});\n\nfunction SvgIconPets(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 33 33\"\n }, props), _ref, _ref2);\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMyAzMyI+CiAgPHBhdGggZD0iTTI3LjEwNSAzMmgtMi41NDJsLS4xNzYtLjY3OGMtLjA1NC0uMjE4LTEuMzc0LTUuMzMyLTEuMTAxLTcuODE0LjEzMy0xLjIyOC42MS0yLjU0OCAxLjA3Ny0zLjgxOS40My0xLjE3NC44NzItMi4zOS44MjMtMy4wNTYtLjEyLTEuNTQ0LS45MTQtNC40MzEtLjkyLTQuNDYxbC0uMjA2LS43NS43MTUtLjMyMmMxLjMtLjU4IDMuMzg5LTEuODAzIDMuNzI4LTIuNTc4LjIxMi0uNDg0LjMzOS0uOTE0LjQyNC0xLjI3MWgtMi43MTJsLS4yNzItLjM3Yy0uMDA2LS4wMDUtLjY5Ni0uOTItMS43MDctMS40ODItLjM4MS0uMjEyLTEuMzk4LS4yNzItMS45NjEtLjI0MmwtLjU3NS4wMy0uODk2LTEuNjU4Yy0uNjA1IDEuMTEzLTEuMjIzIDIuNjA4LTEuMDQ3IDMuNjkyLjM4NyAyLjQwMy4wMDYgNC40MzYtMS4wNTMgNS41ODYtMi45OSAzLjIyLTYuMzg2IDcuMjctNi43OTcgOC41NC0uMTIxLjM3Ni0uMjYuNzkzLS40MTIgMS4yMzUtLjYxMSAxLjc5OC0xLjQ0NiA0LjI2MS0xLjQ0NiA1LjY2djMuNzY0SDYuOThWMzAuMTloMS4yNTN2LTEuOTQ5YzAtMS43Ljg1My00LjIxOCAxLjU0My02LjI0Ni4xNDYtLjQzNi4yOS0uODQ3LjQwNi0xLjIwNC4xMTUtLjM1MS40NTQtMS40MTcgMy42MTMtNS4xNzVhMTIwLjU3NCAxMjAuNTc0IDAgMDEzLjU2NS00LjA1Yy43ODctLjg1My44MjMtMi42NTcuNTkzLTQuMDYtLjE4Ny0xLjE2My4xMjctMi41OTEuOTM5LTQuMjUuNTc1LTEuMTc0IDEuMTk4LTIuMDQgMS4yMjItMi4wNzZMMjAuOTYxIDBsMS43OTIgMy4zMjljLjY1NC4wMTIgMS42Ny4wOTcgMi4zNi40ODQuOTA4LjUwOSAxLjU5OCAxLjE5OSAxLjk3NCAxLjYyMmgzLjc4MnYuOTA4YzAgLjEyNy0uMDE4IDEuMzE0LS43MDggMi45LS41OCAxLjM0My0yLjc1NCAyLjU3OC0zLjk1MiAzLjE4My4yNiAxLjAxNy42OTYgMi44NS43ODcgNC4wNjcuMDc5IDEuMDYtLjQwNiAyLjQwMy0uOTI2IDMuODItLjQzIDEuMTc0LS44NzIgMi4zODQtLjk4IDMuMzg5LS4xNyAxLjU1NS40NzcgNC43NTcuODg5IDYuNDgyaDEuMTMyVjMyaC0uMDA2eiIgZmlsbD0iY3VycmVudENvbG9yIi8+CiAgPHBhdGggZD0iTTIyLjQ2OCAzMkgxOS4xN2wtLjE4Mi0uNjcyYy0uMDI0LS4xMDMtLjY2Ni0yLjQ5NC0uNjY2LTUuMTg3cy44ODQtNS45OTguOTItNi4xMzdsMS43NTUuNDcyYy0uMDA2LjAzLS44NTkgMy4yMi0uODU5IDUuNjY1IDAgMS42NC4yNjYgMy4xOS40NDggNC4wNDNoMS44ODJWMzJ6TTE3LjMzIDMyaC0zLjE5bC4wNjctLjk2OGMwLS4wNDMuMjcyLTQuNTQtMS4yMzUtNi43MjUtMS4zMzctMS45My00LjI3My0xLjMzMS00LjMwMy0xLjMyNWwtLjk4LjIxMS0uMTE2LS45OThjLS4wMTItLjA5MS0uMjU0LTIuMy0uMTg3LTMuNTA1LjAzLS41NS4wOS0xLjUzNy4xNTEtMi40MDlsLTEuMDIzLjYzLTEuOTg1LS4xODItMS4wMjktLjg4M2MtLjQyNCAxLjE4Ni0uNzggMi41NDgtLjY0OCAzLjE1OS4wODUuMzc1LjE5NC43NS4zMTUgMS4xOTIuMzQ1IDEuMjA1LjgxMSAyLjg1MSAxLjE3NCA1Ljk1Ni4yNDIgMi4wNTguNDA2IDQuNjczLS4xNyA1LjQ2NmwtLjI3Mi4zNzVIMS4xNzZ2LTEuODE2aDEuNTMxYy4wNTUtLjU2My4wNjctMS42OTUtLjE4MS0zLjgxMy0uMzQ1LTIuOTY2LS43NzUtNC40NjctMS4xMi01LjY3MS0uMTI3LS40NDgtLjI0OC0uODY2LS4zNDUtMS4yOTYtLjM3NS0xLjY5NC45NDQtNC44MjMgMS4yMS01LjQzNWwuNDktMS4xMiAyLjQ4OCAyLjEzMS44MDUuMDczIDMuNTA1LTIuMTYxLS4xMTUgMS43NTVjMCAuMDMtLjIgMy4wMi0uMjYgNC4xNDYtLjAzNy42MTEuMDMgMS41NzQuMDkgMi4yODggMS4zNTYtLjA3OSAzLjc0LjEyMSA1LjE3NSAyLjE5MSAxLjM5OCAyLjAxNiAxLjU4NiA1LjI5IDEuNTggNi45MDZoMS4yODlWMzJoLjAxMnoiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgo8L3N2Zz4K\";\nexport { SvgIconPets as ReactComponent };","import { yupResolver } from '@hookform/resolvers/yup';\nimport {\n Household as HouseholdMembers,\n HouseholdMembersEnum,\n} from 'api/client';\nimport { ReactComponent as BabyIcon } from 'assets/icons/icon-baby.svg';\nimport { ReactComponent as CowIcon } from 'assets/icons/icon-cow.svg';\nimport { ReactComponent as PeopleIcon } from 'assets/icons/icon-people.svg';\nimport { ReactComponent as PersonWalkingStickIcon } from 'assets/icons/icon-person-walking-stick.svg';\nimport { ReactComponent as PersonIcon } from 'assets/icons/icon-person.svg';\nimport { ReactComponent as PetsIcon } from 'assets/icons/icon-pets.svg';\nimport Checkbox from 'components/checkbox';\nimport TooltipDialog from 'components/tooltip-dialog';\nimport React, { FC } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useUnmount } from 'react-use';\nimport { NavigatePlan, QuestionModeEnum } from 'types/base';\nimport { navigateWithDirection } from 'utils/helpers';\nimport * as yup from 'yup';\nimport FormControls from '../form-controls';\nimport {\n Answer,\n AnswerList,\n Description,\n QuestionWrapper,\n Title,\n} from '../question.styles';\n\ninterface Props {\n mode: QuestionModeEnum;\n onSetHousehold: (household: HouseholdMembers) => void;\n household?: HouseholdMembers;\n navigate?: NavigatePlan;\n}\n\nconst Household: FC = (props) => {\n const { register, handleSubmit, formState, watch } =\n useForm({\n defaultValues: {\n members: !!props.household?.members?.length\n ? [...props.household.members]\n : [],\n },\n mode: 'onChange',\n resolver: yupResolver(getSchema(props.mode)),\n });\n\n const onSubmit = handleSubmit((household, event) => {\n props.onSetHousehold(household);\n navigateWithDirection(props.navigate, event);\n });\n\n const { isValid, isSubmitting, isDirty } = formState;\n const canNavigate =\n props.mode === QuestionModeEnum.Survey ? !isValid : undefined;\n const isPlanMode = props.mode === QuestionModeEnum.Plan;\n\n const formData = watch();\n useUnmount(() => {\n if (!isSubmitting && isDirty) {\n const household = { ...formData };\n props.onSetHousehold(household);\n }\n });\n\n return (\n
\n \n Who do we need to protect?\n \n Your bushfire plan is for everyone in your household.\n
\n
\n \n
    \n
  • Children under 18 years of age
  • \n
  • A person who is unwell, injured, elderly or frail
  • \n
  • Guests who are not familiar with the local area
  • \n
  • A person with a cognitive or physical disability
  • \n
  • A person who can’t understand or read English
  • \n
  • A person with mental health concerns
  • \n
\n \n and are at higher risk because they can’t create a bushfire plan or\n evacuate, and can’t access, understand or act upon emergency alerts\n and warnings. People at higher risk need to leave as early as possible\n and be accompanied to a safer place.\n
\n
\n Tick all options that apply to you.\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n );\n};\n\n/**\n * Returns the form schema depending on where the form is used.\n * At least one option needs to be selected for the form to be valid in the survey.\n */\nfunction getSchema(type: QuestionModeEnum) {\n if (type === QuestionModeEnum.Survey) {\n return yup\n .object()\n .shape({\n members: yup\n .array()\n .of(yup.string().defined())\n .min(1, 'Please choose at least one option.'),\n })\n .defined();\n } else {\n return yup\n .object()\n .shape({\n members: yup.array().of(yup.string().defined()),\n })\n .defined();\n }\n}\n\nexport default Household;\n"],"sourceRoot":""}