{"version":3,"file":"public.f94edb3d.js","sources":["../../../node_modules/react-cookie/es6/CookiesContext.js","../../../node_modules/react-cookie/es6/CookiesProvider.js","../../../frontend/api/rest/subscribers.js","../../../frontend/api/v3/private/ideaBoard.js","../../../node_modules/swr/infinite/dist/index.esm.js","../../../node_modules/react-speech-recognition/lib/utils.js","../../../node_modules/react-speech-recognition/lib/constants.js","../../../node_modules/react-speech-recognition/lib/actions.js","../../../node_modules/react-speech-recognition/lib/reducers.js","../../../node_modules/react-speech-recognition/lib/isAndroid.js","../../../node_modules/react-speech-recognition/lib/NativeSpeechRecognition.js","../../../node_modules/react-speech-recognition/lib/RecognitionManager.js","../../../node_modules/react-speech-recognition/lib/SpeechRecognition.js","../../../node_modules/react-speech-recognition/lib/index.js","../../../frontend/features/common/components/NotificationsSignupModal/Success/index.js","../../../frontend/features/common/utils/rules.js","../../../frontend/features/common/components/CheckBox/index.js","../../../frontend/features/common/components/CheckboxGroup/index.js","../../../frontend/features/common/components/NotificationsSignupModal/Form/index.js","../../../frontend/features/common/components/NotificationsSignupModal/index.js","../../../frontend/features/common/components/NotificationsSignup/index.js","../../../frontend/features/ideation/components/base/CheckboxInput/index.js","../../../frontend/features/ideation/components/base/TextInput/index.js","../../../frontend/features/ideation/components/base/InputLengthDisplay/index.js","../../../frontend/features/ideation/components/base/FileInput/index.js","../../../frontend/features/ideation/validations/ideaValidations.js","../../../frontend/features/ideation/enums/sortOrder.js","../../../frontend/features/ideation/components/createIdea/CreateIdeaForm/index.js","../../../frontend/features/ideation/components/createIdea/CreateIdeaModal/index.js","../../../frontend/features/ideation/components/ideaBoard/IdeaBoardActions/index.js","../../../frontend/features/ideation/components/ideaBoard/IdeaBoardHeaderContainer/index.js","../../../frontend/features/ideation/components/ideaBoard/IdeaBoardHeader/index.js","../../../frontend/features/ideation/components/base/SearchInput/index.js","../../../frontend/features/ideation/components/ideaBoard/IdeaBoardSearch/index.js","../../../frontend/features/ideation/components/ideaBoard/IdeaBoardSort/index.js","../../../frontend/features/ideation/utils/userAuthorize.js","../../../frontend/features/ideation/enums/votingTypes.js","../../../frontend/features/ideation/components/ideaActions/VotingWidget/index.js","../../../frontend/features/ideation/enums/propTypes.js","../../../frontend/features/ideation/components/ideaActions/CommentCountWidget/index.js","../../../frontend/features/ideation/enums/flagIdeaReasons.js","../../../frontend/features/ideation/components/ideaActions/FlagIdeaWidgetMenu/index.js","../../../frontend/features/ideation/components/ideaActions/FlagIdeaWidget/index.js","../../../frontend/features/ideation/components/ideaActions/IdeaActionContainer/index.js","../../../frontend/features/common/enums/ModerationStatuses.js","../../../frontend/features/ideation/components/ideaBoard/IdeaCard/WarningMessage/index.js","../../../frontend/features/ideation/components/ideaBoard/IdeaCard/index.js","../../../frontend/features/ideation/components/ideaBoard/IdeaCards/index.js","../../../frontend/features/common/components/Notification/index.js","../../../frontend/features/ideation/components/ideaBoard/ApprovedNotification/index.js","../../../frontend/features/ideation/components/ideaBoard/PendingNotification/index.js","../../../frontend/features/ideation/components/ideaBoard/UserBannedNotification/index.js","../../../frontend/features/ideation/components/ideaBoard/UserSuspendedNotification/index.js","../../../frontend/features/ideation/enums/submissionStatus.js","../../../frontend/features/ideation/enums/userStatusErrors.js","../../../frontend/features/common/hooks/useScrollIntoView.js","../../../frontend/features/ideation/components/ideaBoard/SubmissionNotification/index.js","../../../frontend/features/ideation/components/ideaBoard/ClosedNotification/index.js","../../../frontend/features/ideation/components/ideaBoard/IdeaBoard/index.js","../../../frontend/features/ideation/components/ideaBoard/IdeaBoardContainer/index.js","../../../frontend/features/ideation/components/idea/IdeaHeader/index.js","../../../frontend/features/discussion/enums/sortOrder.js","../../../frontend/features/discussion/enums/reportReason.js","../../../frontend/features/discussion/components/CommentInput/CommentActionBar/index.js","../../../frontend/features/discussion/components/CommentInput/CommentInputToast/index.js","../../../frontend/features/discussion/components/CommentInput/index.js","../../../frontend/features/discussion/utils/index.js","../../../node_modules/date-fns/esm/compareDesc/index.js","../../../frontend/features/discussion/components/DiscussionComment/ReportButton/index.js","../../../frontend/features/discussion/components/DiscussionComment/index.js","../../../frontend/features/discussion/components/DiscussionCommentList/SortOptions/index.js","../../../frontend/features/discussion/components/DiscussionCommentList/index.js","../../../frontend/features/discussion/components/DiscussionBoard/index.js","../../../frontend/features/discussion/components/LoginSection/index.js","../../../frontend/features/discussion/components/ProfileSection/index.js","../../../frontend/features/ideation/components/idea/IdeaContainer/index.js","../../../frontend/features/common/components/PreviewModeBanner/index.js","../../../node_modules/pure-react-carousel/dist/index.es.js","../../../frontend/features/engagement/components/ImageGallery/Thumbnails/index.js","../../../frontend/features/engagement/components/ImageGallery/index.js","../../../frontend/features/engagement/components/Content/Media/index.js","../../../frontend/features/engagement/components/Content/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/BasicQuestion/inputs/TextInput/index.js","../../../frontend/features/common/components/Textarea/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/BasicQuestion/inputs/TextareaInput/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/BasicQuestion/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/SingleSelectQuestion/index.js","../../../frontend/features/engagement/components/inputs/CheckboxSelectInput/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/MultiSelectQuestion/index.js","../../../node_modules/react-transition-group/esm/config.js","../../../node_modules/react-transition-group/esm/TransitionGroupContext.js","../../../node_modules/react-transition-group/esm/Transition.js","../../../node_modules/react-transition-group/esm/utils/ChildMapping.js","../../../node_modules/react-transition-group/esm/TransitionGroup.js","../../../node_modules/react-select/animated/dist/react-select-animated.esm.js","../../../frontend/features/engagement/components/QuestionContainer/questions/DropdownQuestion/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/MatrixQuestion/MatrixInput/Options/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/MatrixQuestion/MatrixInput/Rows/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/MatrixQuestion/MatrixInput/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/MatrixQuestion/index.js","../../../frontend/features/engagement/components/inputs/AnnotationInput/Marker/index.js","../../../frontend/features/engagement/components/inputs/AnnotationInput/Tooltip/index.js","../../../frontend/features/engagement/components/inputs/AnnotationInput/index.js","../../../frontend/features/engagement/components/inputs/GeolocationAnnotationInput/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/GeolocationQuestion/index.js","../../../node_modules/@babel/runtime/helpers/esm/objectSpread.js","../../../node_modules/invariant/browser.js","../../../node_modules/react-sortable-hoc/dist/react-sortable-hoc.esm.js","../../../frontend/features/engagement/components/inputs/SortableInput/SortableList/SortableItem/index.js","../../../frontend/features/engagement/components/inputs/SortableInput/SortableList/index.js","../../../frontend/features/engagement/components/inputs/SortableInput/MobileSortableList/MobileSortableItem/index.js","../../../frontend/features/engagement/components/inputs/SortableInput/MobileSortableList/index.js","../../../frontend/features/engagement/components/inputs/SortableInput/index.js","../../../frontend/features/engagement/components/inputs/SortableInput/SortableAccessibility/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/OrderedQuestion/index.js","../../../frontend/features/engagement/components/inputs/ImageAnnotationInput/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/ImageQuestion/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/Budget/BudgetMediaModal/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/Budget/BudgetCheckbox/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/Budget/BudgetCheckboxGroup/index.js","../../../frontend/features/engagement/components/inputs/BudgetInput/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/Budget/BudgetBox/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/Budget/BudgetQuestion/index.js","../../../frontend/features/common/components/NumberInput/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/NumericQuestion/index.js","../../../frontend/features/common/enums/SliderPosition.js","../../../node_modules/react-slider/dist/es/prod/components/ReactSlider/ReactSlider.mjs","../../../frontend/features/common/components/Slider/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/SliderQuestion/SliderQuestionInput/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/SliderQuestion/index.js","../../../node_modules/react-rater/node_modules/react/cjs/react.production.min.js","../../../node_modules/react-rater/node_modules/react/index.js","../../../node_modules/react-rater/lib/star.js","../../../node_modules/react-rater/lib/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/RatingQuestion/RatingQuestionStar/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/RatingQuestion/RatingQuestionInput/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/RatingQuestion/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/OpenBudgetQuestion/OpenBudgetOverview/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/OpenBudgetQuestion/OpenBudgetInputsHeader/index.js","../../../frontend/features/common/components/Image/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/OpenBudgetQuestion/OpenBudgetComparison/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/OpenBudgetQuestion/OpenBudgetInput/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/OpenBudgetQuestion/OpenBudgetChartTooltip/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/OpenBudgetQuestion/OpenBudgetChart/index.js","../../../frontend/features/engagement/components/QuestionContainer/questions/OpenBudgetQuestion/index.js","../../../frontend/features/engagement/components/QuestionContainer/index.js","../../../frontend/features/engagement/components/Block/index.js","../../../frontend/features/engagement/components/Quote/index.js","../../../frontend/features/engagement/components/FingerprintCollectionConsent/index.js","../../../frontend/features/engagement/components/SectionsContainer/Section/index.js","../../../frontend/features/engagement/components/ProgressBarContainer/index.js","../../../frontend/features/engagement/components/QuitConfirmationModal/index.js","../../../frontend/features/common/components/Link/index.js","../../../frontend/features/engagement/components/VisitHubLink/index.js","../../../frontend/features/engagement/components/NavigationContainer/index.js","../../../frontend/features/project/components/Tag/index.js","../../../frontend/features/project/components/DateInfo/index.js","../../../frontend/features/project/components/CallToActionTile/index.js","../../../frontend/features/project/components/EngagementTile/index.js","../../../frontend/features/common/components/QRCodeImage/index.js","../../../frontend/features/engagement/components/CompleteEngagementFooter/index.js","../../../frontend/features/engagement/components/SocialShareModal/index.js","../../../frontend/features/engagement/components/SectionsContainer/index.js","../../../frontend/features/engagement/components/QuitPageContainer/index.js","../../../frontend/features/engagement/components/ClosedPageContainer/index.js","../../../frontend/features/engagement/components/ErrorPageContainer/index.js","../../../frontend/features/engagement/components/EngagementContainer/index.js","../../../frontend/features/announcement/components/AnnouncementHero/index.js","../../../frontend/features/announcement/components/AnnouncementDetails/index.js","../../../frontend/features/common/components/ShowMoreList/index.js","../../../frontend/features/announcement/components/AnnouncementListItem/index.js","../../../frontend/features/announcement/components/AnnouncementSidebar/index.js","../../../frontend/features/announcement/components/AnnouncementContainer/index.js","../../../frontend/features/project/components/Hero/index.js","../../../frontend/features/project/components/IdeaBoardTile/index.js","../../../frontend/features/project/components/DiscussionTopicTile/index.js","../../../frontend/features/project/components/SponsorQuote/index.js","../../../frontend/features/project/components/ProjectDetail/index.js","../../../frontend/features/project/components/ProjectMeta/index.js","../../../frontend/features/project/components/Phases/index.js","../../../frontend/features/project/components/StoryPhases/index.js","../../../frontend/features/project/components/Announcements/index.js","../../../frontend/features/project/components/Events/index.js","../../../node_modules/lodash.startcase/index.js","../../../frontend/features/project/components/Documents/index.js","../../../frontend/features/project/components/Sidebar/index.js","../../../frontend/features/project/components/ProjectContainer/index.js","../../../frontend/features/project/enums/ProjectGrouping.js","../../../frontend/features/project/components/ProjectsContainer/ProjectTile/index.js","../../../frontend/features/project/components/ProjectsContainer/ActiveProjects/SingleList/index.js","../../../frontend/features/project/components/ProjectsContainer/ActiveProjects/CategoryGrouping/index.js","../../../frontend/features/project/components/ProjectsContainer/ActiveProjects/index.js","../../../frontend/features/project/components/ProjectsContainer/CategoryList/CategoryItem/index.js","../../../frontend/features/project/components/ProjectsContainer/CategoryList/index.js","../../../frontend/features/project/components/ProjectsContainer/FinishedProjects/index.js","../../../frontend/features/project/components/ProjectsContainer/Opportunities/index.js","../../../frontend/features/project/components/ProjectsContainer/index.js","../../../frontend/features/project/components/CategoryContainer/index.js","../../../frontend/features/discussionTopic/components/DiscussionTopicHeader/index.js","../../../frontend/features/discussionTopic/components/StayInformed/index.js","../../../frontend/features/discussionTopic/components/CommunityRules/index.js","../../../frontend/features/discussionTopic/components/DiscussionTopic/index.js","../../../frontend/features/discussionTopic/components/DiscussionTopicContainer/index.js","../../../frontend/features/sitemap/components/Sitemap/index.js","../../../frontend/entrypoints/public.js"],"sourcesContent":["import * as React from 'react';\r\nimport Cookies from './Cookies';\r\nvar CookiesContext = React.createContext(new Cookies());\r\nexport var Provider = CookiesContext.Provider, Consumer = CookiesContext.Consumer;\r\nexport default CookiesContext;\r\n","var __extends = (this && this.__extends) || (function () {\r\n    var extendStatics = function (d, b) {\r\n        extendStatics = Object.setPrototypeOf ||\r\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n        return extendStatics(d, b);\r\n    };\r\n    return function (d, b) {\r\n        extendStatics(d, b);\r\n        function __() { this.constructor = d; }\r\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n    };\r\n})();\r\nimport * as React from 'react';\r\nimport Cookies from 'universal-cookie';\r\nimport { Provider } from './CookiesContext';\r\nvar CookiesProvider = /** @class */ (function (_super) {\r\n    __extends(CookiesProvider, _super);\r\n    function CookiesProvider(props) {\r\n        var _this = _super.call(this, props) || this;\r\n        if (props.cookies) {\r\n            _this.cookies = props.cookies;\r\n        }\r\n        else {\r\n            _this.cookies = new Cookies();\r\n        }\r\n        return _this;\r\n    }\r\n    CookiesProvider.prototype.render = function () {\r\n        return React.createElement(Provider, { value: this.cookies }, this.props.children);\r\n    };\r\n    return CookiesProvider;\r\n}(React.Component));\r\nexport default CookiesProvider;\r\n","import { apiCall } from './helper';\n\nexport const subscribeUser = (name, email, projectId) => {\n  const body = {\n    data: {\n      type: 'subscriber',\n      attributes: {\n        name,\n        email,\n        project_id: projectId,\n        all_projects: !projectId,\n      },\n    },\n  };\n\n  return apiCall('/subscribers', 'POST', JSON.stringify(body));\n};\n","// Helpers\nimport { privateApiUrl } from 'api/v3';\n\nexport function getIdeaBoardUrl(id, { include = ['hero_image', 'project'] } = {}) {\n  return privateApiUrl(`idea_boards/${id}`, { include });\n}\n","import { useEffect, useLayoutEffect, useState, useRef, useCallback } from 'react';\nimport useSWR from 'swr';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\n\nvar noop = function () { };\n// Using noop() as the undefined value as undefined can possibly be replaced\n// by something else.  Prettier ignore and extra parentheses are necessary here\n// to ensure that tsc doesn't remove the __NOINLINE__ comment.\n// prettier-ignore\nvar UNDEFINED = ( /*#__NOINLINE__*/noop());\nvar OBJECT = Object;\nvar isUndefined = function (v) { return v === UNDEFINED; };\nvar isFunction = function (v) { return typeof v == 'function'; };\nvar STR_UNDEFINED = 'undefined';\n// NOTE: Use function to guarantee it's re-evaluated between jsdom and node runtime for tests.\nvar hasWindow = function () { return typeof window != STR_UNDEFINED; };\n\nvar IS_SERVER = !hasWindow() || 'Deno' in window;\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\nvar useIsomorphicLayoutEffect = IS_SERVER ? useEffect : useLayoutEffect;\n\n// use WeakMap to store the object->key mapping\n// so the objects can be garbage collected.\n// WeakMap uses a hashtable under the hood, so the lookup\n// complexity is almost O(1).\nvar table = new WeakMap();\n// counter of the key\nvar counter = 0;\n// A stable hash implementation that supports:\n// - Fast and ensures unique hash properties\n// - Handles unserializable values\n// - Handles object key ordering\n// - Generates short results\n//\n// This is not a serialization function, and the result is not guaranteed to be\n// parsible.\nvar stableHash = function (arg) {\n    var type = typeof arg;\n    var constructor = arg && arg.constructor;\n    var isDate = constructor == Date;\n    var result;\n    var index;\n    if (OBJECT(arg) === arg && !isDate && constructor != RegExp) {\n        // Object/function, not null/date/regexp. Use WeakMap to store the id first.\n        // If it's already hashed, directly return the result.\n        result = table.get(arg);\n        if (result)\n            return result;\n        // Store the hash first for circular reference detection before entering the\n        // recursive `stableHash` calls.\n        // For other objects like set and map, we use this id directly as the hash.\n        result = ++counter + '~';\n        table.set(arg, result);\n        if (constructor == Array) {\n            // Array.\n            result = '@';\n            for (index = 0; index < arg.length; index++) {\n                result += stableHash(arg[index]) + ',';\n            }\n            table.set(arg, result);\n        }\n        if (constructor == OBJECT) {\n            // Object, sort keys.\n            result = '#';\n            var keys = OBJECT.keys(arg).sort();\n            while (!isUndefined((index = keys.pop()))) {\n                if (!isUndefined(arg[index])) {\n                    result += index + ':' + stableHash(arg[index]) + ',';\n                }\n            }\n            table.set(arg, result);\n        }\n    }\n    else {\n        result = isDate\n            ? arg.toJSON()\n            : type == 'symbol'\n                ? arg.toString()\n                : type == 'string'\n                    ? JSON.stringify(arg)\n                    : '' + arg;\n    }\n    return result;\n};\n\nvar serialize = function (key) {\n    if (isFunction(key)) {\n        try {\n            key = key();\n        }\n        catch (err) {\n            // dependencies not ready\n            key = '';\n        }\n    }\n    var args = [].concat(key);\n    // If key is not falsy, or not an empty array, hash it.\n    key =\n        typeof key == 'string'\n            ? key\n            : (Array.isArray(key) ? key.length : key)\n                ? stableHash(key)\n                : '';\n    var infoKey = key ? '$swr$' + key : '';\n    return [key, args, infoKey];\n};\n\nvar normalize = function (args) {\n    return isFunction(args[1])\n        ? [args[0], args[1], args[2] || {}]\n        : [args[0], null, (args[1] === null ? args[2] : args[1]) || {}];\n};\n\n// Create a custom hook with a middleware\nvar withMiddleware = function (useSWR, middleware) {\n    return function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        var _a = normalize(args), key = _a[0], fn = _a[1], config = _a[2];\n        var uses = (config.use || []).concat(middleware);\n        return useSWR(key, fn, __assign(__assign({}, config), { use: uses }));\n    };\n};\n\n// We have to several type castings here because `useSWRInfinite` is a special\nvar INFINITE_PREFIX = '$inf$';\nvar getFirstPageKey = function (getKey) {\n    return serialize(getKey ? getKey(0, null) : null)[0];\n};\nvar unstable_serialize = function (getKey) {\n    return INFINITE_PREFIX + getFirstPageKey(getKey);\n};\nvar infinite = (function (useSWRNext) {\n    return function (getKey, fn, config) {\n        var rerender = useState({})[1];\n        var didMountRef = useRef(false);\n        var dataRef = useRef();\n        var cache = config.cache, _a = config.initialSize, initialSize = _a === void 0 ? 1 : _a, _b = config.revalidateAll, revalidateAll = _b === void 0 ? false : _b, _c = config.persistSize, persistSize = _c === void 0 ? false : _c, _d = config.revalidateFirstPage, revalidateFirstPage = _d === void 0 ? true : _d, _e = config.revalidateOnMount, revalidateOnMount = _e === void 0 ? false : _e;\n        // The serialized key of the first page.\n        var firstPageKey = null;\n        try {\n            firstPageKey = getFirstPageKey(getKey);\n        }\n        catch (err) {\n            // not ready\n        }\n        // We use cache to pass extra info (context) to fetcher so it can be globally\n        // shared. The key of the context data is based on the first page key.\n        var contextCacheKey = null;\n        // Page size is also cached to share the page data between hooks with the\n        // same key.\n        var pageSizeCacheKey = null;\n        if (firstPageKey) {\n            contextCacheKey = '$ctx$' + firstPageKey;\n            pageSizeCacheKey = '$len$' + firstPageKey;\n        }\n        var resolvePageSize = useCallback(function () {\n            var cachedPageSize = cache.get(pageSizeCacheKey);\n            return isUndefined(cachedPageSize) ? initialSize : cachedPageSize;\n            // `cache` isn't allowed to change during the lifecycle\n            // eslint-disable-next-line react-hooks/exhaustive-deps\n        }, [pageSizeCacheKey, initialSize]);\n        // keep the last page size to restore it with the persistSize option\n        var lastPageSizeRef = useRef(resolvePageSize());\n        // When the page key changes, we reset the page size if it's not persisted\n        useIsomorphicLayoutEffect(function () {\n            if (!didMountRef.current) {\n                didMountRef.current = true;\n                return;\n            }\n            if (firstPageKey) {\n                // If the key has been changed, we keep the current page size if persistSize is enabled\n                cache.set(pageSizeCacheKey, persistSize ? lastPageSizeRef.current : initialSize);\n            }\n            // `initialSize` isn't allowed to change during the lifecycle\n            // eslint-disable-next-line react-hooks/exhaustive-deps\n        }, [firstPageKey]);\n        // Needs to check didMountRef during mounting, not in the fetcher\n        var shouldRevalidateOnMount = revalidateOnMount && !didMountRef.current;\n        // Actual SWR hook to load all pages in one fetcher.\n        var swr = useSWRNext(firstPageKey ? INFINITE_PREFIX + firstPageKey : null, function () { return __awaiter(void 0, void 0, void 0, function () {\n            var _a, forceRevalidateAll, originalData, data, pageSize, previousPageData, i, _b, pageKey, pageArgs, pageData, shouldFetchPage;\n            return __generator(this, function (_c) {\n                switch (_c.label) {\n                    case 0:\n                        _a = cache.get(contextCacheKey) || [], forceRevalidateAll = _a[0], originalData = _a[1];\n                        data = [];\n                        pageSize = resolvePageSize();\n                        previousPageData = null;\n                        i = 0;\n                        _c.label = 1;\n                    case 1:\n                        if (!(i < pageSize)) return [3 /*break*/, 5];\n                        _b = serialize(getKey(i, previousPageData)), pageKey = _b[0], pageArgs = _b[1];\n                        if (!pageKey) {\n                            // `pageKey` is falsy, stop fetching new pages.\n                            return [3 /*break*/, 5];\n                        }\n                        pageData = cache.get(pageKey);\n                        shouldFetchPage = revalidateAll ||\n                            forceRevalidateAll ||\n                            isUndefined(pageData) ||\n                            (revalidateFirstPage && !i && !isUndefined(dataRef.current)) ||\n                            shouldRevalidateOnMount ||\n                            (originalData &&\n                                !isUndefined(originalData[i]) &&\n                                !config.compare(originalData[i], pageData));\n                        if (!(fn && shouldFetchPage)) return [3 /*break*/, 3];\n                        return [4 /*yield*/, fn.apply(void 0, pageArgs)];\n                    case 2:\n                        pageData = _c.sent();\n                        cache.set(pageKey, pageData);\n                        _c.label = 3;\n                    case 3:\n                        data.push(pageData);\n                        previousPageData = pageData;\n                        _c.label = 4;\n                    case 4:\n                        ++i;\n                        return [3 /*break*/, 1];\n                    case 5:\n                        // once we executed the data fetching based on the context, clear the context\n                        cache.delete(contextCacheKey);\n                        // return the data\n                        return [2 /*return*/, data];\n                }\n            });\n        }); }, config);\n        // update dataRef\n        useIsomorphicLayoutEffect(function () {\n            dataRef.current = swr.data;\n        }, [swr.data]);\n        var mutate = useCallback(function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            var data = args[0];\n            // Default to true.\n            var shouldRevalidate = args[1] !== false;\n            // It is possible that the key is still falsy.\n            if (!contextCacheKey)\n                return;\n            if (shouldRevalidate) {\n                if (!isUndefined(data)) {\n                    // We only revalidate the pages that are changed\n                    var originalData = dataRef.current;\n                    cache.set(contextCacheKey, [false, originalData]);\n                }\n                else {\n                    // Calling `mutate()`, we revalidate all pages\n                    cache.set(contextCacheKey, [true]);\n                }\n            }\n            return args.length ? swr.mutate(data, shouldRevalidate) : swr.mutate();\n        }, \n        // swr.mutate is always the same reference\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [contextCacheKey]);\n        // Function to load pages data from the cache based on the page size.\n        var resolvePagesFromCache = function (pageSize) {\n            // return an array of page data\n            var data = [];\n            var previousPageData = null;\n            for (var i = 0; i < pageSize; ++i) {\n                var pageKey = serialize(getKey(i, previousPageData))[0];\n                // Get the cached page data.\n                var pageData = pageKey ? cache.get(pageKey) : UNDEFINED;\n                // Return the current data if we can't get it from the cache.\n                if (isUndefined(pageData))\n                    return dataRef.current;\n                data.push(pageData);\n                previousPageData = pageData;\n            }\n            // Return the data\n            return data;\n        };\n        // Extend the SWR API\n        var setSize = useCallback(function (arg) {\n            // It is possible that the key is still falsy.\n            if (!pageSizeCacheKey)\n                return;\n            var size;\n            if (isFunction(arg)) {\n                size = arg(resolvePageSize());\n            }\n            else if (typeof arg == 'number') {\n                size = arg;\n            }\n            if (typeof size != 'number')\n                return;\n            cache.set(pageSizeCacheKey, size);\n            lastPageSizeRef.current = size;\n            rerender({});\n            return mutate(resolvePagesFromCache(size));\n        }, \n        // `cache` and `rerender` isn't allowed to change during the lifecycle\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [pageSizeCacheKey, resolvePageSize, mutate]);\n        // Use getter functions to avoid unnecessary re-renders caused by triggering\n        // all the getters of the returned swr object.\n        return {\n            size: resolvePageSize(),\n            setSize: setSize,\n            mutate: mutate,\n            get error() {\n                return swr.error;\n            },\n            get data() {\n                return swr.data;\n            },\n            get isValidating() {\n                return swr.isValidating;\n            }\n        };\n    };\n});\nvar index = withMiddleware(useSWR, infinite);\n\nexport { index as default, infinite, unstable_serialize };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.browserSupportsPolyfills = exports.compareTwoStringsUsingDiceCoefficient = exports.commandToRegExp = exports.concatTranscripts = exports.debounce = void 0;\n\nvar debounce = function debounce(func, wait, immediate) {\n  var timeout;\n  return function () {\n    var context = this;\n    var args = arguments;\n\n    var later = function later() {\n      timeout = null;\n      if (!immediate) func.apply(context, args);\n    };\n\n    var callNow = immediate && !timeout;\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n    if (callNow) func.apply(context, args);\n  };\n};\n\nexports.debounce = debounce;\n\nvar concatTranscripts = function concatTranscripts() {\n  for (var _len = arguments.length, transcriptParts = new Array(_len), _key = 0; _key < _len; _key++) {\n    transcriptParts[_key] = arguments[_key];\n  }\n\n  return transcriptParts.map(function (t) {\n    return t.trim();\n  }).join(' ').trim();\n}; // The command matching code is a modified version of Backbone.Router by Jeremy Ashkenas, under the MIT license.\n\n\nexports.concatTranscripts = concatTranscripts;\nvar optionalParam = /\\s*\\((.*?)\\)\\s*/g;\nvar optionalRegex = /(\\(\\?:[^)]+\\))\\?/g;\nvar namedParam = /(\\(\\?)?:\\w+/g;\nvar splatParam = /\\*/g;\nvar escapeRegExp = /[-{}[\\]+?.,\\\\^$|#]/g;\n\nvar commandToRegExp = function commandToRegExp(command) {\n  if (command instanceof RegExp) {\n    return new RegExp(command.source, 'i');\n  }\n\n  command = command.replace(escapeRegExp, '\\\\$&').replace(optionalParam, '(?:$1)?').replace(namedParam, function (match, optional) {\n    return optional ? match : '([^\\\\s]+)';\n  }).replace(splatParam, '(.*?)').replace(optionalRegex, '\\\\s*$1?\\\\s*');\n  return new RegExp('^' + command + '$', 'i');\n}; // this is from https://github.com/aceakash/string-similarity\n\n\nexports.commandToRegExp = commandToRegExp;\n\nvar compareTwoStringsUsingDiceCoefficient = function compareTwoStringsUsingDiceCoefficient(first, second) {\n  first = first.replace(/\\s+/g, '').toLowerCase();\n  second = second.replace(/\\s+/g, '').toLowerCase();\n  if (!first.length && !second.length) return 1; // if both are empty strings\n\n  if (!first.length || !second.length) return 0; // if only one is empty string\n\n  if (first === second) return 1; // identical\n\n  if (first.length === 1 && second.length === 1) return 0; // both are 1-letter strings\n\n  if (first.length < 2 || second.length < 2) return 0; // if either is a 1-letter string\n\n  var firstBigrams = new Map();\n\n  for (var i = 0; i < first.length - 1; i++) {\n    var bigram = first.substring(i, i + 2);\n    var count = firstBigrams.has(bigram) ? firstBigrams.get(bigram) + 1 : 1;\n    firstBigrams.set(bigram, count);\n  }\n\n  var intersectionSize = 0;\n\n  for (var _i = 0; _i < second.length - 1; _i++) {\n    var _bigram = second.substring(_i, _i + 2);\n\n    var _count = firstBigrams.has(_bigram) ? firstBigrams.get(_bigram) : 0;\n\n    if (_count > 0) {\n      firstBigrams.set(_bigram, _count - 1);\n      intersectionSize++;\n    }\n  }\n\n  return 2.0 * intersectionSize / (first.length + second.length - 2);\n};\n\nexports.compareTwoStringsUsingDiceCoefficient = compareTwoStringsUsingDiceCoefficient;\n\nvar browserSupportsPolyfills = function browserSupportsPolyfills() {\n  return typeof window !== 'undefined' && window.navigator !== undefined && window.navigator.mediaDevices !== undefined && window.navigator.mediaDevices.getUserMedia !== undefined && (window.AudioContext !== undefined || window.webkitAudioContext !== undefined);\n};\n\nexports.browserSupportsPolyfills = browserSupportsPolyfills;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.APPEND_TRANSCRIPT = exports.CLEAR_TRANSCRIPT = void 0;\nvar CLEAR_TRANSCRIPT = 'CLEAR_TRANSCRIPT';\nexports.CLEAR_TRANSCRIPT = CLEAR_TRANSCRIPT;\nvar APPEND_TRANSCRIPT = 'APPEND_TRANSCRIPT';\nexports.APPEND_TRANSCRIPT = APPEND_TRANSCRIPT;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.appendTranscript = exports.clearTranscript = void 0;\n\nvar _constants = require(\"./constants\");\n\nvar clearTranscript = function clearTranscript() {\n  return {\n    type: _constants.CLEAR_TRANSCRIPT\n  };\n};\n\nexports.clearTranscript = clearTranscript;\n\nvar appendTranscript = function appendTranscript(interimTranscript, finalTranscript) {\n  return {\n    type: _constants.APPEND_TRANSCRIPT,\n    payload: {\n      interimTranscript: interimTranscript,\n      finalTranscript: finalTranscript\n    }\n  };\n};\n\nexports.appendTranscript = appendTranscript;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.transcriptReducer = void 0;\n\nvar _constants = require(\"./constants\");\n\nvar _utils = require(\"./utils\");\n\nvar transcriptReducer = function transcriptReducer(state, action) {\n  switch (action.type) {\n    case _constants.CLEAR_TRANSCRIPT:\n      return {\n        interimTranscript: '',\n        finalTranscript: ''\n      };\n\n    case _constants.APPEND_TRANSCRIPT:\n      return {\n        interimTranscript: action.payload.interimTranscript,\n        finalTranscript: (0, _utils.concatTranscripts)(state.finalTranscript, action.payload.finalTranscript)\n      };\n\n    default:\n      throw new Error();\n  }\n};\n\nexports.transcriptReducer = transcriptReducer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _default = function _default() {\n  return /(android)/i.test(typeof navigator !== 'undefined' ? navigator.userAgent : '');\n};\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = exports.isNative = void 0;\nvar NativeSpeechRecognition = typeof window !== 'undefined' && (window.SpeechRecognition || window.webkitSpeechRecognition || window.mozSpeechRecognition || window.msSpeechRecognition || window.oSpeechRecognition);\n\nvar isNative = function isNative(SpeechRecognition) {\n  return SpeechRecognition === NativeSpeechRecognition;\n};\n\nexports.isNative = isNative;\nvar _default = NativeSpeechRecognition;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _isAndroid = _interopRequireDefault(require(\"./isAndroid\"));\n\nvar _utils = require(\"./utils\");\n\nvar _NativeSpeechRecognition = require(\"./NativeSpeechRecognition\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar RecognitionManager = /*#__PURE__*/function () {\n  function RecognitionManager(SpeechRecognition) {\n    _classCallCheck(this, RecognitionManager);\n\n    this.recognition = null;\n    this.pauseAfterDisconnect = false;\n    this.interimTranscript = '';\n    this.finalTranscript = '';\n    this.listening = false;\n    this.isMicrophoneAvailable = true;\n    this.subscribers = {};\n\n    this.onStopListening = function () {};\n\n    this.previousResultWasFinalOnly = false;\n    this.resetTranscript = this.resetTranscript.bind(this);\n    this.startListening = this.startListening.bind(this);\n    this.stopListening = this.stopListening.bind(this);\n    this.abortListening = this.abortListening.bind(this);\n    this.setSpeechRecognition = this.setSpeechRecognition.bind(this);\n    this.disableRecognition = this.disableRecognition.bind(this);\n    this.setSpeechRecognition(SpeechRecognition);\n\n    if ((0, _isAndroid[\"default\"])()) {\n      this.updateFinalTranscript = (0, _utils.debounce)(this.updateFinalTranscript, 250, true);\n    }\n  }\n\n  _createClass(RecognitionManager, [{\n    key: \"setSpeechRecognition\",\n    value: function setSpeechRecognition(SpeechRecognition) {\n      var browserSupportsRecogniser = !!SpeechRecognition && ((0, _NativeSpeechRecognition.isNative)(SpeechRecognition) || (0, _utils.browserSupportsPolyfills)());\n\n      if (browserSupportsRecogniser) {\n        this.disableRecognition();\n        this.recognition = new SpeechRecognition();\n        this.recognition.continuous = false;\n        this.recognition.interimResults = true;\n        this.recognition.onresult = this.updateTranscript.bind(this);\n        this.recognition.onend = this.onRecognitionDisconnect.bind(this);\n        this.recognition.onerror = this.onError.bind(this);\n      }\n\n      this.emitBrowserSupportsSpeechRecognitionChange(browserSupportsRecogniser);\n    }\n  }, {\n    key: \"subscribe\",\n    value: function subscribe(id, callbacks) {\n      this.subscribers[id] = callbacks;\n    }\n  }, {\n    key: \"unsubscribe\",\n    value: function unsubscribe(id) {\n      delete this.subscribers[id];\n    }\n  }, {\n    key: \"emitListeningChange\",\n    value: function emitListeningChange(listening) {\n      var _this = this;\n\n      this.listening = listening;\n      Object.keys(this.subscribers).forEach(function (id) {\n        var onListeningChange = _this.subscribers[id].onListeningChange;\n        onListeningChange(listening);\n      });\n    }\n  }, {\n    key: \"emitMicrophoneAvailabilityChange\",\n    value: function emitMicrophoneAvailabilityChange(isMicrophoneAvailable) {\n      var _this2 = this;\n\n      this.isMicrophoneAvailable = isMicrophoneAvailable;\n      Object.keys(this.subscribers).forEach(function (id) {\n        var onMicrophoneAvailabilityChange = _this2.subscribers[id].onMicrophoneAvailabilityChange;\n        onMicrophoneAvailabilityChange(isMicrophoneAvailable);\n      });\n    }\n  }, {\n    key: \"emitTranscriptChange\",\n    value: function emitTranscriptChange(interimTranscript, finalTranscript) {\n      var _this3 = this;\n\n      Object.keys(this.subscribers).forEach(function (id) {\n        var onTranscriptChange = _this3.subscribers[id].onTranscriptChange;\n        onTranscriptChange(interimTranscript, finalTranscript);\n      });\n    }\n  }, {\n    key: \"emitClearTranscript\",\n    value: function emitClearTranscript() {\n      var _this4 = this;\n\n      Object.keys(this.subscribers).forEach(function (id) {\n        var onClearTranscript = _this4.subscribers[id].onClearTranscript;\n        onClearTranscript();\n      });\n    }\n  }, {\n    key: \"emitBrowserSupportsSpeechRecognitionChange\",\n    value: function emitBrowserSupportsSpeechRecognitionChange(browserSupportsSpeechRecognitionChange) {\n      var _this5 = this;\n\n      Object.keys(this.subscribers).forEach(function (id) {\n        var _this5$subscribers$id = _this5.subscribers[id],\n            onBrowserSupportsSpeechRecognitionChange = _this5$subscribers$id.onBrowserSupportsSpeechRecognitionChange,\n            onBrowserSupportsContinuousListeningChange = _this5$subscribers$id.onBrowserSupportsContinuousListeningChange;\n        onBrowserSupportsSpeechRecognitionChange(browserSupportsSpeechRecognitionChange);\n        onBrowserSupportsContinuousListeningChange(browserSupportsSpeechRecognitionChange);\n      });\n    }\n  }, {\n    key: \"disconnect\",\n    value: function disconnect(disconnectType) {\n      if (this.recognition && this.listening) {\n        switch (disconnectType) {\n          case 'ABORT':\n            this.pauseAfterDisconnect = true;\n            this.abort();\n            break;\n\n          case 'RESET':\n            this.pauseAfterDisconnect = false;\n            this.abort();\n            break;\n\n          case 'STOP':\n          default:\n            this.pauseAfterDisconnect = true;\n            this.stop();\n        }\n      }\n    }\n  }, {\n    key: \"disableRecognition\",\n    value: function disableRecognition() {\n      if (this.recognition) {\n        this.recognition.onresult = function () {};\n\n        this.recognition.onend = function () {};\n\n        this.recognition.onerror = function () {};\n\n        if (this.listening) {\n          this.stopListening();\n        }\n      }\n    }\n  }, {\n    key: \"onError\",\n    value: function onError(event) {\n      if (event && event.error && event.error === 'not-allowed') {\n        this.emitMicrophoneAvailabilityChange(false);\n        this.disableRecognition();\n      }\n    }\n  }, {\n    key: \"onRecognitionDisconnect\",\n    value: function onRecognitionDisconnect() {\n      this.onStopListening();\n      this.listening = false;\n\n      if (this.pauseAfterDisconnect) {\n        this.emitListeningChange(false);\n      } else if (this.recognition) {\n        if (this.recognition.continuous) {\n          this.startListening({\n            continuous: this.recognition.continuous\n          });\n        } else {\n          this.emitListeningChange(false);\n        }\n      }\n\n      this.pauseAfterDisconnect = false;\n    }\n  }, {\n    key: \"updateTranscript\",\n    value: function updateTranscript(_ref) {\n      var results = _ref.results,\n          resultIndex = _ref.resultIndex;\n      var currentIndex = resultIndex === undefined ? results.length - 1 : resultIndex;\n      this.interimTranscript = '';\n      this.finalTranscript = '';\n\n      for (var i = currentIndex; i < results.length; ++i) {\n        if (results[i].isFinal && (!(0, _isAndroid[\"default\"])() || results[i][0].confidence > 0)) {\n          this.updateFinalTranscript(results[i][0].transcript);\n        } else {\n          this.interimTranscript = (0, _utils.concatTranscripts)(this.interimTranscript, results[i][0].transcript);\n        }\n      }\n\n      var isDuplicateResult = false;\n\n      if (this.interimTranscript === '' && this.finalTranscript !== '') {\n        if (this.previousResultWasFinalOnly) {\n          isDuplicateResult = true;\n        }\n\n        this.previousResultWasFinalOnly = true;\n      } else {\n        this.previousResultWasFinalOnly = false;\n      }\n\n      if (!isDuplicateResult) {\n        this.emitTranscriptChange(this.interimTranscript, this.finalTranscript);\n      }\n    }\n  }, {\n    key: \"updateFinalTranscript\",\n    value: function updateFinalTranscript(newFinalTranscript) {\n      this.finalTranscript = (0, _utils.concatTranscripts)(this.finalTranscript, newFinalTranscript);\n    }\n  }, {\n    key: \"resetTranscript\",\n    value: function resetTranscript() {\n      this.disconnect('RESET');\n    }\n  }, {\n    key: \"startListening\",\n    value: function () {\n      var _startListening = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n        var _ref2,\n            _ref2$continuous,\n            continuous,\n            language,\n            isContinuousChanged,\n            isLanguageChanged,\n            _args = arguments;\n\n        return regeneratorRuntime.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                _ref2 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, _ref2$continuous = _ref2.continuous, continuous = _ref2$continuous === void 0 ? false : _ref2$continuous, language = _ref2.language;\n\n                if (this.recognition) {\n                  _context.next = 3;\n                  break;\n                }\n\n                return _context.abrupt(\"return\");\n\n              case 3:\n                isContinuousChanged = continuous !== this.recognition.continuous;\n                isLanguageChanged = language && language !== this.recognition.lang;\n\n                if (!(isContinuousChanged || isLanguageChanged)) {\n                  _context.next = 11;\n                  break;\n                }\n\n                if (!this.listening) {\n                  _context.next = 9;\n                  break;\n                }\n\n                _context.next = 9;\n                return this.stopListening();\n\n              case 9:\n                this.recognition.continuous = isContinuousChanged ? continuous : this.recognition.continuous;\n                this.recognition.lang = isLanguageChanged ? language : this.recognition.lang;\n\n              case 11:\n                if (this.listening) {\n                  _context.next = 22;\n                  break;\n                }\n\n                if (!this.recognition.continuous) {\n                  this.resetTranscript();\n                  this.emitClearTranscript();\n                }\n\n                _context.prev = 13;\n                _context.next = 16;\n                return this.start();\n\n              case 16:\n                this.emitListeningChange(true);\n                _context.next = 22;\n                break;\n\n              case 19:\n                _context.prev = 19;\n                _context.t0 = _context[\"catch\"](13);\n\n                // DOMExceptions indicate a redundant microphone start - safe to swallow\n                if (!(_context.t0 instanceof DOMException)) {\n                  this.emitMicrophoneAvailabilityChange(false);\n                }\n\n              case 22:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, this, [[13, 19]]);\n      }));\n\n      function startListening() {\n        return _startListening.apply(this, arguments);\n      }\n\n      return startListening;\n    }()\n  }, {\n    key: \"abortListening\",\n    value: function () {\n      var _abortListening = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n        var _this6 = this;\n\n        return regeneratorRuntime.wrap(function _callee2$(_context2) {\n          while (1) {\n            switch (_context2.prev = _context2.next) {\n              case 0:\n                this.disconnect('ABORT');\n                this.emitListeningChange(false);\n                _context2.next = 4;\n                return new Promise(function (resolve) {\n                  _this6.onStopListening = resolve;\n                });\n\n              case 4:\n              case \"end\":\n                return _context2.stop();\n            }\n          }\n        }, _callee2, this);\n      }));\n\n      function abortListening() {\n        return _abortListening.apply(this, arguments);\n      }\n\n      return abortListening;\n    }()\n  }, {\n    key: \"stopListening\",\n    value: function () {\n      var _stopListening = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {\n        var _this7 = this;\n\n        return regeneratorRuntime.wrap(function _callee3$(_context3) {\n          while (1) {\n            switch (_context3.prev = _context3.next) {\n              case 0:\n                this.disconnect('STOP');\n                this.emitListeningChange(false);\n                _context3.next = 4;\n                return new Promise(function (resolve) {\n                  _this7.onStopListening = resolve;\n                });\n\n              case 4:\n              case \"end\":\n                return _context3.stop();\n            }\n          }\n        }, _callee3, this);\n      }));\n\n      function stopListening() {\n        return _stopListening.apply(this, arguments);\n      }\n\n      return stopListening;\n    }()\n  }, {\n    key: \"getRecognition\",\n    value: function getRecognition() {\n      return this.recognition;\n    }\n  }, {\n    key: \"start\",\n    value: function () {\n      var _start = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {\n        return regeneratorRuntime.wrap(function _callee4$(_context4) {\n          while (1) {\n            switch (_context4.prev = _context4.next) {\n              case 0:\n                if (!(this.recognition && !this.listening)) {\n                  _context4.next = 4;\n                  break;\n                }\n\n                _context4.next = 3;\n                return this.recognition.start();\n\n              case 3:\n                this.listening = true;\n\n              case 4:\n              case \"end\":\n                return _context4.stop();\n            }\n          }\n        }, _callee4, this);\n      }));\n\n      function start() {\n        return _start.apply(this, arguments);\n      }\n\n      return start;\n    }()\n  }, {\n    key: \"stop\",\n    value: function stop() {\n      if (this.recognition && this.listening) {\n        this.recognition.stop();\n        this.listening = false;\n      }\n    }\n  }, {\n    key: \"abort\",\n    value: function abort() {\n      if (this.recognition && this.listening) {\n        this.recognition.abort();\n        this.listening = false;\n      }\n    }\n  }]);\n\n  return RecognitionManager;\n}();\n\nexports[\"default\"] = RecognitionManager;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = exports.useSpeechRecognition = void 0;\n\nvar _react = require(\"react\");\n\nvar _utils = require(\"./utils\");\n\nvar _actions = require(\"./actions\");\n\nvar _reducers = require(\"./reducers\");\n\nvar _RecognitionManager = _interopRequireDefault(require(\"./RecognitionManager\"));\n\nvar _isAndroid = _interopRequireDefault(require(\"./isAndroid\"));\n\nvar _NativeSpeechRecognition = _interopRequireDefault(require(\"./NativeSpeechRecognition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar _browserSupportsSpeechRecognition = !!_NativeSpeechRecognition[\"default\"];\n\nvar _browserSupportsContinuousListening = _browserSupportsSpeechRecognition && !(0, _isAndroid[\"default\"])();\n\nvar recognitionManager;\n\nvar useSpeechRecognition = function useSpeechRecognition() {\n  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n      _ref$transcribing = _ref.transcribing,\n      transcribing = _ref$transcribing === void 0 ? true : _ref$transcribing,\n      _ref$clearTranscriptO = _ref.clearTranscriptOnListen,\n      clearTranscriptOnListen = _ref$clearTranscriptO === void 0 ? true : _ref$clearTranscriptO,\n      _ref$commands = _ref.commands,\n      commands = _ref$commands === void 0 ? [] : _ref$commands;\n\n  var _useState = (0, _react.useState)(SpeechRecognition.getRecognitionManager()),\n      _useState2 = _slicedToArray(_useState, 1),\n      recognitionManager = _useState2[0];\n\n  var _useState3 = (0, _react.useState)(_browserSupportsSpeechRecognition),\n      _useState4 = _slicedToArray(_useState3, 2),\n      browserSupportsSpeechRecognition = _useState4[0],\n      setBrowserSupportsSpeechRecognition = _useState4[1];\n\n  var _useState5 = (0, _react.useState)(_browserSupportsContinuousListening),\n      _useState6 = _slicedToArray(_useState5, 2),\n      browserSupportsContinuousListening = _useState6[0],\n      setBrowserSupportsContinuousListening = _useState6[1];\n\n  var _useReducer = (0, _react.useReducer)(_reducers.transcriptReducer, {\n    interimTranscript: recognitionManager.interimTranscript,\n    finalTranscript: ''\n  }),\n      _useReducer2 = _slicedToArray(_useReducer, 2),\n      _useReducer2$ = _useReducer2[0],\n      interimTranscript = _useReducer2$.interimTranscript,\n      finalTranscript = _useReducer2$.finalTranscript,\n      dispatch = _useReducer2[1];\n\n  var _useState7 = (0, _react.useState)(recognitionManager.listening),\n      _useState8 = _slicedToArray(_useState7, 2),\n      listening = _useState8[0],\n      setListening = _useState8[1];\n\n  var _useState9 = (0, _react.useState)(recognitionManager.isMicrophoneAvailable),\n      _useState10 = _slicedToArray(_useState9, 2),\n      isMicrophoneAvailable = _useState10[0],\n      setMicrophoneAvailable = _useState10[1];\n\n  var commandsRef = (0, _react.useRef)(commands);\n  commandsRef.current = commands;\n\n  var dispatchClearTranscript = function dispatchClearTranscript() {\n    dispatch((0, _actions.clearTranscript)());\n  };\n\n  var resetTranscript = (0, _react.useCallback)(function () {\n    recognitionManager.resetTranscript();\n    dispatchClearTranscript();\n  }, [recognitionManager]);\n\n  var testFuzzyMatch = function testFuzzyMatch(command, input, fuzzyMatchingThreshold) {\n    var commandToString = _typeof(command) === 'object' ? command.toString() : command;\n    var commandWithoutSpecials = commandToString.replace(/[&/\\\\#,+()!$~%.'\":*?<>{}]/g, '').replace(/  +/g, ' ').trim();\n    var howSimilar = (0, _utils.compareTwoStringsUsingDiceCoefficient)(commandWithoutSpecials, input);\n\n    if (howSimilar >= fuzzyMatchingThreshold) {\n      return {\n        command: command,\n        commandWithoutSpecials: commandWithoutSpecials,\n        howSimilar: howSimilar,\n        isFuzzyMatch: true\n      };\n    }\n\n    return null;\n  };\n\n  var testMatch = function testMatch(command, input) {\n    var pattern = (0, _utils.commandToRegExp)(command);\n    var result = pattern.exec(input);\n\n    if (result) {\n      return {\n        command: command,\n        parameters: result.slice(1)\n      };\n    }\n\n    return null;\n  };\n\n  var matchCommands = (0, _react.useCallback)(function (newInterimTranscript, newFinalTranscript) {\n    commandsRef.current.forEach(function (_ref2) {\n      var command = _ref2.command,\n          callback = _ref2.callback,\n          _ref2$matchInterim = _ref2.matchInterim,\n          matchInterim = _ref2$matchInterim === void 0 ? false : _ref2$matchInterim,\n          _ref2$isFuzzyMatch = _ref2.isFuzzyMatch,\n          isFuzzyMatch = _ref2$isFuzzyMatch === void 0 ? false : _ref2$isFuzzyMatch,\n          _ref2$fuzzyMatchingTh = _ref2.fuzzyMatchingThreshold,\n          fuzzyMatchingThreshold = _ref2$fuzzyMatchingTh === void 0 ? 0.8 : _ref2$fuzzyMatchingTh,\n          _ref2$bestMatchOnly = _ref2.bestMatchOnly,\n          bestMatchOnly = _ref2$bestMatchOnly === void 0 ? false : _ref2$bestMatchOnly;\n      var input = !newFinalTranscript && matchInterim ? newInterimTranscript.trim() : newFinalTranscript.trim();\n      var subcommands = Array.isArray(command) ? command : [command];\n      var results = subcommands.map(function (subcommand) {\n        if (isFuzzyMatch) {\n          return testFuzzyMatch(subcommand, input, fuzzyMatchingThreshold);\n        }\n\n        return testMatch(subcommand, input);\n      }).filter(function (x) {\n        return x;\n      });\n\n      if (isFuzzyMatch && bestMatchOnly && results.length >= 2) {\n        results.sort(function (a, b) {\n          return b.howSimilar - a.howSimilar;\n        });\n        var _results$ = results[0],\n            _command = _results$.command,\n            commandWithoutSpecials = _results$.commandWithoutSpecials,\n            howSimilar = _results$.howSimilar;\n        callback(commandWithoutSpecials, input, howSimilar, {\n          command: _command,\n          resetTranscript: resetTranscript\n        });\n      } else {\n        results.forEach(function (result) {\n          if (result.isFuzzyMatch) {\n            var _command2 = result.command,\n                _commandWithoutSpecials = result.commandWithoutSpecials,\n                _howSimilar = result.howSimilar;\n            callback(_commandWithoutSpecials, input, _howSimilar, {\n              command: _command2,\n              resetTranscript: resetTranscript\n            });\n          } else {\n            var _command3 = result.command,\n                parameters = result.parameters;\n            callback.apply(void 0, _toConsumableArray(parameters).concat([{\n              command: _command3,\n              resetTranscript: resetTranscript\n            }]));\n          }\n        });\n      }\n    });\n  }, [resetTranscript]);\n  var handleTranscriptChange = (0, _react.useCallback)(function (newInterimTranscript, newFinalTranscript) {\n    if (transcribing) {\n      dispatch((0, _actions.appendTranscript)(newInterimTranscript, newFinalTranscript));\n    }\n\n    matchCommands(newInterimTranscript, newFinalTranscript);\n  }, [matchCommands, transcribing]);\n  var handleClearTranscript = (0, _react.useCallback)(function () {\n    if (clearTranscriptOnListen) {\n      dispatchClearTranscript();\n    }\n  }, [clearTranscriptOnListen]);\n  (0, _react.useEffect)(function () {\n    var id = SpeechRecognition.counter;\n    SpeechRecognition.counter += 1;\n    var callbacks = {\n      onListeningChange: setListening,\n      onMicrophoneAvailabilityChange: setMicrophoneAvailable,\n      onTranscriptChange: handleTranscriptChange,\n      onClearTranscript: handleClearTranscript,\n      onBrowserSupportsSpeechRecognitionChange: setBrowserSupportsSpeechRecognition,\n      onBrowserSupportsContinuousListeningChange: setBrowserSupportsContinuousListening\n    };\n    recognitionManager.subscribe(id, callbacks);\n    return function () {\n      recognitionManager.unsubscribe(id);\n    };\n  }, [transcribing, clearTranscriptOnListen, recognitionManager, handleTranscriptChange, handleClearTranscript]);\n  var transcript = (0, _utils.concatTranscripts)(finalTranscript, interimTranscript);\n  return {\n    transcript: transcript,\n    interimTranscript: interimTranscript,\n    finalTranscript: finalTranscript,\n    listening: listening,\n    isMicrophoneAvailable: isMicrophoneAvailable,\n    resetTranscript: resetTranscript,\n    browserSupportsSpeechRecognition: browserSupportsSpeechRecognition,\n    browserSupportsContinuousListening: browserSupportsContinuousListening\n  };\n};\n\nexports.useSpeechRecognition = useSpeechRecognition;\nvar SpeechRecognition = {\n  counter: 0,\n  applyPolyfill: function applyPolyfill(PolyfillSpeechRecognition) {\n    if (recognitionManager) {\n      recognitionManager.setSpeechRecognition(PolyfillSpeechRecognition);\n    } else {\n      recognitionManager = new _RecognitionManager[\"default\"](PolyfillSpeechRecognition);\n    }\n\n    var browserSupportsPolyfill = !!PolyfillSpeechRecognition && (0, _utils.browserSupportsPolyfills)();\n    _browserSupportsSpeechRecognition = browserSupportsPolyfill;\n    _browserSupportsContinuousListening = browserSupportsPolyfill;\n  },\n  removePolyfill: function removePolyfill() {\n    if (recognitionManager) {\n      recognitionManager.setSpeechRecognition(_NativeSpeechRecognition[\"default\"]);\n    } else {\n      recognitionManager = new _RecognitionManager[\"default\"](_NativeSpeechRecognition[\"default\"]);\n    }\n\n    _browserSupportsSpeechRecognition = !!_NativeSpeechRecognition[\"default\"];\n    _browserSupportsContinuousListening = _browserSupportsSpeechRecognition && !(0, _isAndroid[\"default\"])();\n  },\n  getRecognitionManager: function getRecognitionManager() {\n    if (!recognitionManager) {\n      recognitionManager = new _RecognitionManager[\"default\"](_NativeSpeechRecognition[\"default\"]);\n    }\n\n    return recognitionManager;\n  },\n  getRecognition: function getRecognition() {\n    var recognitionManager = SpeechRecognition.getRecognitionManager();\n    return recognitionManager.getRecognition();\n  },\n  startListening: function () {\n    var _startListening = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n      var _ref3,\n          continuous,\n          language,\n          recognitionManager,\n          _args = arguments;\n\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _ref3 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, continuous = _ref3.continuous, language = _ref3.language;\n              recognitionManager = SpeechRecognition.getRecognitionManager();\n              _context.next = 4;\n              return recognitionManager.startListening({\n                continuous: continuous,\n                language: language\n              });\n\n            case 4:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, _callee);\n    }));\n\n    function startListening() {\n      return _startListening.apply(this, arguments);\n    }\n\n    return startListening;\n  }(),\n  stopListening: function () {\n    var _stopListening = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n      var recognitionManager;\n      return regeneratorRuntime.wrap(function _callee2$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              recognitionManager = SpeechRecognition.getRecognitionManager();\n              _context2.next = 3;\n              return recognitionManager.stopListening();\n\n            case 3:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, _callee2);\n    }));\n\n    function stopListening() {\n      return _stopListening.apply(this, arguments);\n    }\n\n    return stopListening;\n  }(),\n  abortListening: function () {\n    var _abortListening = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {\n      var recognitionManager;\n      return regeneratorRuntime.wrap(function _callee3$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              recognitionManager = SpeechRecognition.getRecognitionManager();\n              _context3.next = 3;\n              return recognitionManager.abortListening();\n\n            case 3:\n            case \"end\":\n              return _context3.stop();\n          }\n        }\n      }, _callee3);\n    }));\n\n    function abortListening() {\n      return _abortListening.apply(this, arguments);\n    }\n\n    return abortListening;\n  }(),\n  browserSupportsSpeechRecognition: function browserSupportsSpeechRecognition() {\n    return _browserSupportsSpeechRecognition;\n  },\n  browserSupportsContinuousListening: function browserSupportsContinuousListening() {\n    return _browserSupportsContinuousListening;\n  }\n};\nvar _default = SpeechRecognition;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"useSpeechRecognition\", {\n  enumerable: true,\n  get: function get() {\n    return _SpeechRecognition.useSpeechRecognition;\n  }\n});\nexports[\"default\"] = void 0;\n\nvar _SpeechRecognition = _interopRequireWildcard(require(\"./SpeechRecognition\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = _SpeechRecognition[\"default\"];\nexports[\"default\"] = _default;","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\n\n// Components\nimport Button from '../../Button';\n\nexport const Success = ({ hideModal, t }) => (\n  <div className=\"content success\">\n    <h1>{t('common.great')}</h1>\n    <i className=\"far fa-check-circle\" />\n    <p>{t('common.you_have_signed_up')}</p>\n    <Button primary onClick={hideModal}>\n      {t('common.continue')}\n    </Button>\n  </div>\n);\n\nSuccess.propTypes = {\n  hideModal: PropTypes.func.isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withTranslation()(Success);\n","export const email = (message) => ({\n  pattern: { value: /^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$/, message },\n});\n","import React from 'react';\nimport classNames from 'classnames';\n\nconst CheckBox = ({ className, type, checked, ...props }) => (\n  <input\n    tabIndex={0}\n    aria-checked={checked}\n    checked={checked}\n    className={classNames(className, 'checkbox__control-input')}\n    type=\"checkbox\"\n    {...props}\n  />\n);\n\nexport default CheckBox;\n","// Libraries\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\n// Utilities\nimport { classicTheme, generateHtmlIdForLabel, toggleArrayValue } from 'common/utils/helpers';\n\n// Components\nimport CheckBox from 'common/components/CheckBox';\n\n/**\n * Checkbox group component. Used to render multiple checkboxes in a group.\n */\nconst CheckboxGroup = ({ options, initialValue, value, onChange }) => {\n  const { t } = useTranslation();\n  const [state, setState] = useState({ value: initialValue, lastId: null });\n\n  const checkboxOnChange = (id) => () => {\n    if (value) {\n      onChange(id);\n    } else {\n      setState((currentState) => ({\n        value: toggleArrayValue(currentState.value, id),\n        lastId: id,\n      }));\n    }\n  };\n\n  useEffect(() => {\n    if (!value && state.value !== initialValue) {\n      onChange(state.value, state.lastId);\n    }\n  }, [state]);\n\n  return (\n    <div className=\"checkbox-group\" role=\"group\">\n      {options.map(({ label, id }) => (\n        <div key={id} className=\"checkbox\">\n          <label\n            className=\"checkbox__control-label\"\n            htmlFor={generateHtmlIdForLabel(`${label}-${id}`)}\n          >\n            <CheckBox\n              id={generateHtmlIdForLabel(`${label}-${id}`)}\n              checked={(value || state.value).includes(id)}\n              onChange={checkboxOnChange(id)}\n            />\n            <div className=\"checkbox__control-display\" />\n            <span\n              className={classNames('checkbox__control-text', {\n                'is-primary-color': classicTheme(),\n              })}\n            >\n              {t(label, { defaultValue: label })}\n            </span>\n          </label>\n        </div>\n      ))}\n    </div>\n  );\n};\n\nCheckboxGroup.propTypes = {\n  options: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n      label: PropTypes.string.isRequired,\n    })\n  ).isRequired,\n  initialValue: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),\n  value: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),\n  onChange: PropTypes.func,\n};\n\nCheckboxGroup.defaultProps = {\n  initialValue: [],\n  value: null,\n  onChange: () => {},\n};\n\nexport default CheckboxGroup;\n","// Libraries\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useParams } from 'react-router-dom';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { useController, useForm } from 'react-hook-form';\nimport classNames from 'classnames';\n\n// Utilities\nimport * as rules from 'common/utils/rules';\nimport { subscribeUser } from 'api/rest';\n\n// Components\nimport Button from 'common/components/Button';\nimport Input from 'common/components/Input';\nimport RadioGroup from 'common/components/RadioGroup';\nimport CheckboxGroup from 'common/components/CheckboxGroup';\n\nconst notifications = Object.freeze({\n  PROJECT: 'project',\n  FUTURE_PROJECTS: 'future_projects',\n});\n\nfunction Form({ projectTitle, onSuccess, hideModal }) {\n  const { t } = useTranslation();\n  const params = useParams();\n  const [error, setError] = useState(false);\n  const { register, control, handleSubmit, formState } = useForm({\n    defaultValues: { type: notifications.PROJECT, consent: false },\n  });\n  const { errors } = formState;\n  const { field: typeField } = useController({ name: 'type', control });\n  const { field: consentField } = useController({\n    name: 'consent',\n    rules: { required: t('common.consent_is_required') },\n    control,\n  });\n\n  async function onSubmit(formValues) {\n    try {\n      const { name, email, type } = formValues;\n      const projectId = type === notifications.PROJECT ? params.projectId : undefined;\n      await subscribeUser(name, email, projectId);\n      onSuccess();\n    } catch {\n      setError(true);\n    }\n  }\n\n  return (\n    <form onSubmit={handleSubmit(onSubmit)}>\n      <div className=\"content\">\n        <h1>{t('common.stay_notified')}</h1>\n        <p className=\"description\">{t('common.sign_up_for_notifications')}</p>\n        <div className=\"columns\">\n          <div className=\"column p-75\">\n            <div className=\"field\">\n              <label className=\"label is-primary-color\" htmlFor=\"notifications-signup-name\">\n                {t('common.your_name')}\n              </label>\n              <Input\n                id=\"notifications-signup-name\"\n                className={classNames({ 'is-danger': errors.name })}\n                {...register('name', { required: t('common.your_name_required') })}\n              />\n              {errors.name && <p className=\"help is-danger\">{errors.name.message}</p>}\n            </div>\n          </div>\n          <div className=\"column p-75\">\n            <div className=\"field\">\n              <label className=\"label is-primary-color\" htmlFor=\"notifications-signup-email\">\n                {t('common.your_email')}\n              </label>\n              <Input\n                id=\"notifications-signup-email\"\n                className={classNames({ 'is-danger': errors.email })}\n                {...register('email', {\n                  required: t('common.your_email_required'),\n                  ...rules.email(t('common.invalid_email_message')),\n                })}\n              />\n              {errors.email && <p className=\"help is-danger\">{errors.email.message}</p>}\n            </div>\n          </div>\n        </div>\n\n        <div className=\"field\">\n          <div className=\"field__title is-primary-color\">{t('common.stay_informed_about')}</div>\n          <RadioGroup\n            options={[\n              {\n                id: notifications.PROJECT,\n                label: projectTitle || t('common.only_this_project'),\n              },\n              {\n                id: notifications.FUTURE_PROJECTS,\n                label: `${t('common.all')} ${gon.whitelabelName || 'future'} ${t(\n                  'common.projects'\n                )}`,\n              },\n            ]}\n            initialValue={typeField.value}\n            onChange={typeField.onChange}\n          />\n        </div>\n\n        <div className=\"consent\">\n          <p>\n            <Trans i18nKey=\"common.name_email_collection\">\n              This form collects your name and email so that we can send you updates about your\n              idea. Check out our\n              <a\n                className=\"is-secondary-color\"\n                href=\"https://zencity.io/privacy-policy/\"\n                rel=\"noopener noreferrer\"\n                target=\"_blank\"\n              >\n                privacy policy\n              </a>\n              to see how we protect and manage your submitted data.\n            </Trans>\n          </p>\n\n          <div className=\"field\">\n            <CheckboxGroup\n              options={[\n                {\n                  id: 'consent',\n                  label: `${t('common.notification_consent_message', {\n                    brand: gon.whitelabelName || 'Zencity Engage',\n                  })}*`,\n                },\n              ]}\n              onChange={([value]) => consentField.onChange(Boolean(value))}\n            />\n            {errors.consent && <p className=\"help is-danger\">{errors.consent.message}</p>}\n          </div>\n        </div>\n      </div>\n\n      <div className=\"notifications-signup-modal__footer\">\n        <Button type=\"submit\" primary>\n          {t('common.notification_sign_up_button')}\n        </Button>\n        {error && (\n          <div className=\"container mt-1 has-text-centered\" role=\"alert\">\n            <p className=\"high-contrast-error-color mb-0\">\n              <Trans i18nKey=\"common.something_went_wrong_try_again\">\n                Something went wrong\n                <br />\n                Close and try again\n              </Trans>\n            </p>\n          </div>\n        )}\n        <Button onClick={hideModal} text>\n          {t('common.cancel')}\n        </Button>\n      </div>\n    </form>\n  );\n}\n\nForm.propTypes = {\n  projectTitle: PropTypes.string,\n  hideModal: PropTypes.func.isRequired,\n  onSuccess: PropTypes.func.isRequired,\n};\n\nForm.defaultProps = {\n  projectTitle: '',\n};\n\nexport default Form;\n","// Libraries\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\n// Components\nimport Success from './Success';\nimport Form from './Form';\n\n// Enums\nimport Key from '../../enums/Key';\n\nconst NotificationsSignupModal = ({ onClose, title }) => {\n  const [success, setSuccess] = useState(false);\n\n  useEffect(() => {\n    const hotKeyListener = ({ key }) => {\n      if (key === Key.ESCAPE) {\n        onClose();\n      }\n    };\n\n    window.addEventListener('keydown', hotKeyListener);\n    return () => window.removeEventListener('keydown', hotKeyListener);\n  }, []);\n\n  return (\n    <div className=\"notifications-signup-modal\">\n      {success && <Success hideModal={onClose} />}\n      {!success && (\n        <Form hideModal={onClose} onSuccess={() => setSuccess(true)} projectTitle={title} />\n      )}\n    </div>\n  );\n};\n\nNotificationsSignupModal.propTypes = {\n  onClose: PropTypes.func.isRequired,\n  title: PropTypes.string,\n};\n\nNotificationsSignupModal.defaultProps = {\n  title: '',\n};\n\nexport default NotificationsSignupModal;\n","// Libraries\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\n\n// Contexts\nimport ModalProvider from 'contexts/Modal/ModalProvider';\n\n// Components\nimport Button from 'common/components/Button';\nimport Modal from 'ideation/components/base/Modal';\nimport NotificationsSignupModal from '../NotificationsSignupModal';\n\nconst NotificationsSignup = ({ title, t }) => {\n  const [showModal, setShowModal] = useState(false);\n\n  const openModal = () => setShowModal(true);\n\n  const closeModal = () => setShowModal(false);\n\n  return (\n    <ModalProvider>\n      <Button className=\"signup__cta\" onClick={openModal} primary>\n        {t('project.sign_up_for_notifications_button')}\n      </Button>\n      <Modal isOpen={showModal} onClose={closeModal} className=\"narrow-full-screen\">\n        <NotificationsSignupModal onClose={() => closeModal()} title={title} />\n      </Modal>\n    </ModalProvider>\n  );\n};\n\nNotificationsSignup.propTypes = {\n  title: PropTypes.string.isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withTranslation()(NotificationsSignup);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\n// Utilities\nimport { classicTheme } from 'common/utils/helpers';\n\nconst CheckboxInput = ({ id, name, label, register, validations, error, disabled }) => {\n  const { t } = useTranslation();\n\n  return (\n    <div className=\"input-section\">\n      <div className=\"ideation-checkbox\">\n        <label className=\"checkbox__control-label\" htmlFor={id}>\n          <input\n            type=\"checkbox\"\n            id={id}\n            aria-label={label}\n            className=\"checkbox__control-input\"\n            disabled={disabled}\n            {...register(name, validations)}\n          />\n          <div className=\"checkbox__control-display\" />\n          <span className={classNames('checkbox-text', { 'is-primary-color': classicTheme() })}>\n            {label}\n          </span>\n        </label>\n      </div>\n      {error && <span className=\"input-error\">{t(error.message)}</span>}\n    </div>\n  );\n};\n\nCheckboxInput.propTypes = {\n  id: PropTypes.string.isRequired,\n  name: PropTypes.string.isRequired,\n  register: PropTypes.func.isRequired,\n  label: PropTypes.string.isRequired,\n  validations: PropTypes.objectOf(PropTypes.any),\n  error: PropTypes.shape({ message: PropTypes.string.isRequired }),\n  disabled: PropTypes.bool,\n};\n\nCheckboxInput.defaultProps = {\n  validations: {},\n  error: null,\n  disabled: false,\n};\n\nexport default CheckboxInput;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nconst TextInput = ({\n  id,\n  name,\n  label,\n  register,\n  validations,\n  renderHelpItems,\n  error,\n  placeholder,\n}) => {\n  const { t } = useTranslation();\n\n  return (\n    <div className=\"input-section\">\n      <label className=\"label is-primary-color\" htmlFor={id}>\n        {label}\n        {validations.required ? ' *' : ''}\n      </label>\n      <input\n        type=\"text\"\n        id={id}\n        aria-label={label}\n        className={classNames('input is-medium', { 'is-danger': error })}\n        placeholder={placeholder}\n        {...register(name, validations)}\n      />\n      {renderHelpItems()}\n      {error && <span className=\"input-error\">{t(error.message)}</span>}\n    </div>\n  );\n};\n\nTextInput.propTypes = {\n  id: PropTypes.string.isRequired,\n  name: PropTypes.string.isRequired,\n  register: PropTypes.func.isRequired,\n  label: PropTypes.string.isRequired,\n  validations: PropTypes.objectOf(PropTypes.any),\n  renderHelpItems: PropTypes.func,\n  error: PropTypes.shape({ message: PropTypes.string.isRequired }),\n  placeholder: PropTypes.string,\n};\n\nTextInput.defaultProps = {\n  validations: {},\n  renderHelpItems: () => {},\n  error: null,\n  placeholder: '',\n};\n\nexport default TextInput;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nconst InputLengthDisplay = ({ minLength, currentLength, maxLength }) => (\n  <div className=\"length-validation-helper\">\n    <span\n      className={classNames('current-value', {\n        'current-value-invalid': currentLength > maxLength || currentLength < minLength,\n      })}\n    >\n      {currentLength}\n    </span>\n    <span>{`/${maxLength}`}</span>\n  </div>\n);\n\nInputLengthDisplay.propTypes = {\n  currentLength: PropTypes.number,\n  maxLength: PropTypes.number.isRequired,\n  minLength: PropTypes.number,\n};\n\nInputLengthDisplay.defaultProps = {\n  currentLength: 0,\n  minLength: 0,\n};\n\nexport default InputLengthDisplay;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nconst FileInput = ({ id, name, label, register, validations, error, accept }) => {\n  const { t } = useTranslation();\n\n  return (\n    <div className=\"input-section\">\n      <label className=\"label is-primary-color\" htmlFor={id}>\n        {label}\n      </label>\n      <input\n        type=\"file\"\n        id={id}\n        aria-label={label}\n        className={classNames('input', { 'is-danger': error })}\n        accept={accept}\n        {...register(name, validations)}\n      />\n      {error && <span className=\"input-error\">{t(error.message)}</span>}\n    </div>\n  );\n};\n\nFileInput.propTypes = {\n  id: PropTypes.string.isRequired,\n  name: PropTypes.string.isRequired,\n  register: PropTypes.func.isRequired,\n  label: PropTypes.string.isRequired,\n  validations: PropTypes.objectOf(PropTypes.any),\n  error: PropTypes.shape({ message: PropTypes.string.isRequired }),\n  accept: PropTypes.string,\n};\n\nFileInput.defaultProps = {\n  validations: {},\n  error: null,\n  accept: '',\n};\n\nexport default FileInput;\n","// Libraries\nimport isString from 'lodash/isString';\n\n// Redux\nimport { setSubmissionStatus } from 'state/ducks/ideation';\n\nconst IMAGE_SIZE_LIMIT_MB = 2;\nconst PREFIX = 'ideation.errors.idea';\n\nexport const formValidations = Object.freeze({\n  title: {\n    required: `${PREFIX}.title.required`,\n    maxLength: { value: 80, message: `${PREFIX}.title.max_length` },\n    minLength: { value: 2, message: `${PREFIX}.title.min_length` },\n  },\n  description: {\n    maxLength: { value: 500, message: `${PREFIX}.description.max_length` },\n    minLength: { value: 0, message: `${PREFIX}.description.min_length` },\n  },\n  image: {\n    validate: {\n      size: ([file]) => {\n        if (!file) return true;\n        if (file.size < IMAGE_SIZE_LIMIT_MB * 1000 * 1000) return true;\n        return `${PREFIX}.image.size`;\n      },\n    },\n  },\n  consent: { required: `${PREFIX}.consent.must_consent` },\n});\n\nconst userErrors = ['USER_BANNED', 'USER_SUSPENDED'];\nconst createStringErrors = [['title', 'TITLE_TAKEN', `${PREFIX}.title.taken`]];\nconst createErrors = [\n  ['title', 'TOXIC', `${PREFIX}.title.toxic`],\n  ['description', 'TOXIC', `${PREFIX}.description.toxic`],\n  ['image', 'TOXIC', `${PREFIX}.image.toxic`],\n  ['image', 'INVALID_IMAGE_TYPE', `${PREFIX}.image.invalid_mime_type`],\n];\n\nexport function processUserError(error, dispatch, onError) {\n  const bodyError = error.body?.errors;\n\n  if (userErrors.includes(bodyError)) {\n    dispatch(setSubmissionStatus({ status: bodyError }));\n    onError?.();\n    throw bodyError;\n  }\n}\n\nexport function processCreateError(error) {\n  const bodyError = error.body?.errors;\n  const errors = [];\n\n  if (!bodyError) return errors;\n\n  if (isString(bodyError)) {\n    for (const [field, type, message] of createStringErrors) {\n      if (bodyError.includes(type)) errors.push([field, { type, message }]);\n    }\n\n    return errors;\n  }\n\n  for (const [field, type, message] of createErrors) {\n    if (bodyError[field]?.includes(type)) errors.push([field, { type, message }]);\n  }\n\n  return errors;\n}\n","const sorts = {\n  MOST_POPULAR: {\n    sortTab: 'MOST_POPULAR',\n    label: 'ideation.sort_orders.most_popular',\n    param: 'most_popular',\n  },\n  NEWEST: {\n    sortTab: 'NEWEST',\n    label: 'ideation.sort_orders.newest',\n    param: '-created_at',\n  },\n  OLDEST: {\n    sortTab: 'OLDEST',\n    label: 'ideation.sort_orders.oldest',\n    param: 'created_at',\n  },\n};\n\nexport const { MOST_POPULAR, NEWEST, OLDEST } = sorts;\n","// Libraries\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { useForm } from 'react-hook-form';\n\n// Components\nimport CheckboxInput from 'ideation/components/base/CheckboxInput';\nimport TextInput from 'ideation/components/base/TextInput';\nimport TextAreaInput from 'ideation/components/base/TextAreaInput';\nimport InputLengthDisplay from 'ideation/components/base/InputLengthDisplay';\nimport FileInput from 'ideation/components/base/FileInput';\n\n// Errors & Validations\nimport {\n  formValidations,\n  processCreateError,\n  processUserError,\n} from 'ideation/validations/ideaValidations';\n\n// Utils\nimport { createIdea } from 'api/v3/private';\nimport { logParticipantSubmission } from 'engagement/utils/analytics';\n\n// State\nimport { setSubmissionStatus } from 'state/ducks/ideation';\n\n// Enums\nimport { NEWEST } from 'ideation/enums/sortOrder';\nimport { readFileAsDataUrl } from 'common/utils/helpers';\n\nconst renderInputLengthDisplay = (name, watchedValues) => (\n  <InputLengthDisplay\n    minLength={formValidations[name].minLength.value}\n    currentLength={watchedValues[name] ? watchedValues[name].length : 0}\n    maxLength={formValidations[name].maxLength.value}\n  />\n);\n\nconst CreateIdeaForm = ({\n  ideaBoardId,\n  projectId,\n  allowDescription,\n  allowImage,\n  onClose,\n  searchValue,\n  resetSearchValues,\n  setSort,\n  finalTranscript,\n}) => {\n  const dispatch = useDispatch();\n  const [defaultError, setDefaultError] = useState(false);\n  const { register, watch, handleSubmit, formState, setError } = useForm({\n    defaultValues: {\n      title: finalTranscript || searchValue,\n      consent: Boolean(finalTranscript),\n    },\n  });\n  const { t } = useTranslation();\n  const watchedValues = watch();\n  const { errors, isSubmitting } = formState;\n  const errorValues = Object.values(errors);\n  const forceSubmission =\n    errorValues.length && errorValues.every((error) => error.type === 'TOXIC');\n\n  const submitForm = async ({ title, description, image }) => {\n    try {\n      const data = { title, description };\n\n      if (image?.length) data.image = await readFileAsDataUrl(image[0]);\n      if (forceSubmission) data.force = true;\n\n      const idea = await createIdea(ideaBoardId, data);\n\n      logParticipantSubmission('Public Board', ideaBoardId, projectId);\n      onClose();\n      dispatch(setSubmissionStatus({ status: idea.deserialized.status }));\n      resetSearchValues();\n      setSort(NEWEST);\n    } catch (error) {\n      processUserError(error, dispatch, onClose);\n      const formErrors = processCreateError(error);\n\n      if (formErrors.length) {\n        for (const formError of formErrors) {\n          setError(...formError);\n        }\n      } else {\n        setDefaultError(true);\n      }\n    }\n  };\n\n  useEffect(() => {\n    const error = errors.title || errors.description || errors.image;\n\n    if (error?.isManual) {\n      error.ref.scrollIntoView();\n    }\n  }, [errors.title, errors.description, errors.image]);\n\n  return (\n    <>\n      <h1 className=\"modal-title is-primary-color\" tabIndex=\"0\">\n        {t('ideation.what_is_your_idea_heading')}\n      </h1>\n      <form className=\"modal-form-section\" onSubmit={handleSubmit(submitForm)}>\n        <TextInput\n          id=\"title\"\n          name=\"title\"\n          label={t('ideation.idea_title_label')}\n          register={register}\n          validations={formValidations.title}\n          renderHelpItems={() => renderInputLengthDisplay('title', watchedValues)}\n          error={errors.title}\n        />\n        {allowDescription && (\n          <TextAreaInput\n            id=\"description\"\n            name=\"description\"\n            label={t('ideation.idea_description_label')}\n            register={register}\n            validations={formValidations.description}\n            renderHelpItems={() => renderInputLengthDisplay('description', watchedValues)}\n            error={errors.description}\n          />\n        )}\n        {allowImage && (\n          <FileInput\n            id=\"image\"\n            name=\"image\"\n            label={t('ideation.idea_image_label')}\n            register={register}\n            validations={formValidations.image}\n            error={errors.image}\n            accept=\"image/jpeg, image/gif, image/webp, image/png\"\n          />\n        )}\n        <div\n          className=\"create-idea-modal__privacy-policy\"\n          role=\"contentinfo\"\n          aria-label=\"privacy policy\"\n        >\n          <Trans i18nKey=\"ideation.idea_collection\">\n            This form collects information about your idea. Check out our\n            <a\n              className=\"is-secondary-color\"\n              href=\"https://zencity.io/privacy-policy\"\n              rel=\"noopener noreferrer\"\n              target=\"_blank\"\n            >\n              privacy policy\n            </a>\n            to see how we protect and manage your submitted data.\n          </Trans>\n        </div>\n        <CheckboxInput\n          id=\"consent\"\n          name=\"consent\"\n          label={t('ideation.terms_and_conditions')}\n          register={register}\n          validations={formValidations.consent}\n          error={errors.consent}\n        />\n        {defaultError && (\n          <div className=\"has-text-danger mt-4\">{t('ideation.errors.idea.default')}</div>\n        )}\n        <div className=\"modal-form-actions\">\n          <button\n            className=\"button is-primary is-primary-background\"\n            type=\"submit\"\n            disabled={isSubmitting}\n          >\n            {t('ideation.submit_idea_button')}\n          </button>\n        </div>\n      </form>\n      <div onClick={onClose} className=\"modal-action-link is-secondary-color\">\n        {t('ideation.cancel')}\n      </div>\n    </>\n  );\n};\n\nCreateIdeaForm.propTypes = {\n  ideaBoardId: PropTypes.string.isRequired,\n  projectId: PropTypes.string.isRequired,\n  allowDescription: PropTypes.bool.isRequired,\n  allowImage: PropTypes.bool.isRequired,\n  onClose: PropTypes.func.isRequired,\n  searchValue: PropTypes.string,\n  resetSearchValues: PropTypes.func.isRequired,\n  setSort: PropTypes.func.isRequired,\n  finalTranscript: PropTypes.string.isRequired,\n};\n\nCreateIdeaForm.defaultProps = {\n  searchValue: '',\n};\n\nexport default CreateIdeaForm;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Components\nimport Modal from 'ideation/components/base/Modal';\nimport CreateIdeaForm from 'ideation/components/createIdea/CreateIdeaForm';\n\nconst CreateIdeaModal = ({\n  isOpen,\n  onClose,\n  setSort,\n  searchValue,\n  resetSearchValues,\n  ideaBoardId,\n  projectId,\n  allowDescription,\n  allowImage,\n  finalTranscript,\n}) => (\n  <Modal isOpen={isOpen} onClose={onClose} className=\"narrow-full-screen\">\n    <CreateIdeaForm\n      ideaBoardId={ideaBoardId}\n      projectId={projectId}\n      allowDescription={allowDescription}\n      allowImage={allowImage}\n      setSort={setSort}\n      resetSearchValues={resetSearchValues}\n      searchValue={searchValue}\n      onClose={onClose}\n      finalTranscript={finalTranscript}\n    />\n  </Modal>\n);\n\nCreateIdeaModal.propTypes = {\n  ideaBoardId: PropTypes.string.isRequired,\n  projectId: PropTypes.string.isRequired,\n  allowDescription: PropTypes.bool.isRequired,\n  allowImage: PropTypes.bool.isRequired,\n  setSort: PropTypes.func.isRequired,\n  searchValue: PropTypes.string,\n  resetSearchValues: PropTypes.func.isRequired,\n  isOpen: PropTypes.bool.isRequired,\n  onClose: PropTypes.func.isRequired,\n  finalTranscript: PropTypes.string.isRequired,\n};\n\nCreateIdeaModal.defaultProps = {\n  searchValue: '',\n};\n\nexport default CreateIdeaModal;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nconst IdeaBoardActions = ({ openModal }) => {\n  const { t } = useTranslation();\n\n  return (\n    <div className=\"idea-board__cta has-text-centered level\">\n      <div className=\"level-item is-narrow\">\n        <span className=\"idea-board__cta-text\">{t('ideation.comment_on_idea')}</span>\n      </div>\n      <div className=\"level-item is-narrow\">\n        <span className=\"idea-board__cta-seperator\">{`-${t('ideation.or')}-`}</span>\n      </div>\n      <div className=\"level-item is-narrow\">\n        <button\n          type=\"button\"\n          className=\"button is-compact is-primary is-primary-background idea-board__cta-button\"\n          onClick={openModal}\n        >\n          {`+${t('ideation.add_idea_button')}`}\n        </button>\n      </div>\n    </div>\n  );\n};\n\nIdeaBoardActions.propTypes = {\n  openModal: PropTypes.func.isRequired,\n};\n\nexport default IdeaBoardActions;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nconst IdeaBoardHeaderContainer = ({\n  backgroundImageUrl,\n  backgroundImagePosition,\n  single,\n  children,\n}) => {\n  return (\n    <div\n      className={classNames('idea-board-header', {\n        'idea-board-header--image': backgroundImageUrl,\n        'idea-board-header--single': single,\n      })}\n      style={{\n        backgroundImage: backgroundImageUrl && `url(\"${backgroundImageUrl}\")`,\n        backgroundPosition: backgroundImagePosition || 'center',\n      }}\n      role=\"banner\"\n    >\n      {backgroundImageUrl && <div className=\"idea-board-header--dim\" />}\n      {children}\n    </div>\n  );\n};\n\nIdeaBoardHeaderContainer.propTypes = {\n  backgroundImageUrl: PropTypes.string,\n  backgroundImagePosition: PropTypes.string,\n  single: PropTypes.bool,\n  children: PropTypes.node.isRequired,\n};\n\nIdeaBoardHeaderContainer.defaultProps = {\n  backgroundImageUrl: null,\n  backgroundImagePosition: 'center',\n  single: null,\n};\n\nexport default IdeaBoardHeaderContainer;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\n// Routes\nimport Routes from 'routes';\n\n// Utilities\nimport { populatePath, renderMarkdown } from 'common/utils/helpers';\n\n// Components\nimport IdeaBoardHeaderContainer from 'ideation/components/ideaBoard/IdeaBoardHeaderContainer';\n\nconst IdeaBoardHeader = ({\n  title,\n  description,\n  match,\n  backgroundImageUrl,\n  backgroundImagePosition,\n  projectPublic,\n}) => {\n  const { t } = useTranslation();\n\n  return (\n    <IdeaBoardHeaderContainer\n      backgroundImageUrl={backgroundImageUrl}\n      backgroundImagePosition={backgroundImagePosition}\n    >\n      {projectPublic && (\n        <div className=\"container inner\">\n          <a href={populatePath(Routes.PROJECT, match.params)} className=\"back-link\">\n            {t('ideation.project_page')}\n          </a>\n        </div>\n      )}\n      <div className=\"idea-board-header__inner container inner inner--narrow\">\n        <h1 className=\"idea-board-header__title title is-1 has-text-white\">{title}</h1>\n        {description && (\n          <div className=\"idea-board-header__content has-text-white has-text-weight-bold\">\n            <p\n              className=\"introduction markdown\"\n              dangerouslySetInnerHTML={{ __html: renderMarkdown(description) }}\n            />\n          </div>\n        )}\n      </div>\n    </IdeaBoardHeaderContainer>\n  );\n};\n\nIdeaBoardHeader.propTypes = {\n  title: PropTypes.string.isRequired,\n  description: PropTypes.string,\n  backgroundImageUrl: PropTypes.string,\n  backgroundImagePosition: PropTypes.string,\n  projectPublic: PropTypes.bool.isRequired,\n  match: PropTypes.shape({\n    params: PropTypes.objectOf(PropTypes.string).isRequired,\n  }).isRequired,\n};\n\nIdeaBoardHeader.defaultProps = {\n  backgroundImageUrl: '',\n  backgroundImagePosition: 'center',\n  description: '',\n};\n\nexport default withRouter(IdeaBoardHeader);\n","// Libraries\nimport React, { useRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport SpeechRecognition from 'react-speech-recognition';\nimport classNames from 'classnames';\n\n// Hooks\nimport { useKeyListener } from 'common/hooks/useKeyListener';\n\n// Utils\nimport { featureFlagEnabled } from 'common/utils/helpers';\n\n// Enums\nimport Keys from 'common/enums/Key';\n\nconst SearchInput = ({ name, register, placeholder, handleSubmit, listening, volume }) => {\n  const searchIcon = useRef(null);\n  const { t } = useTranslation();\n  const speechRecognitionEnabled = featureFlagEnabled('speech_recognition');\n\n  const keyboardSubmit = useCallback((event) => {\n    if (searchIcon.current.matches(':focus')) {\n      event.preventDefault();\n      handleSubmit();\n    }\n  }, []);\n\n  const stopListening = useCallback(() => {\n    SpeechRecognition.stopListening();\n  }, []);\n\n  useKeyListener(Keys.ENTER, keyboardSubmit);\n  useKeyListener(Keys.ESCAPE, stopListening);\n\n  return (\n    <div\n      className={classNames('search-input', { 'search-input--listening': listening })}\n      style={{\n        boxShadow: [\n          `0px 0px 0px ${volume * 60}px #24d394`,\n          `0px 0px 0px ${volume * 140}px #7ce5bf`,\n          `0px 0px 0px ${volume * 250}px #f4fdfa`,\n        ].join(),\n      }}\n    >\n      <div className=\"search-input__input-container\">\n        <input\n          aria-label=\"search input\"\n          placeholder={listening ? 'Listening...' : placeholder}\n          type=\"text\"\n          className=\"input is-medium\"\n          id=\"search-input\"\n          {...register(name)}\n        />\n        {speechRecognitionEnabled && !listening && (\n          <button\n            type=\"button\"\n            className=\"search-input__microphone\"\n            tabIndex={0}\n            onClick={() => SpeechRecognition.startListening({ language: 'en-US' })}\n          >\n            <i className=\"fas fa-microphone\" />\n          </button>\n        )}\n      </div>\n      {!listening && (\n        <button\n          aria-label=\"search submit\"\n          type=\"submit\"\n          ref={searchIcon}\n          tabIndex={0}\n          onClick={handleSubmit}\n          className=\"is-primary-background\"\n          disabled={listening}\n          aria-controls={'idea-board-content'}\n        >\n          {t('ideation.search')}\n        </button>\n      )}\n    </div>\n  );\n};\n\nSearchInput.propTypes = {\n  name: PropTypes.string.isRequired,\n  register: PropTypes.func.isRequired,\n  handleSubmit: PropTypes.func.isRequired,\n  placeholder: PropTypes.string,\n  listening: PropTypes.bool.isRequired,\n  volume: PropTypes.number.isRequired,\n};\n\nSearchInput.defaultProps = {\n  placeholder: '',\n};\n\nexport default SearchInput;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\n// Enums\nimport PublicStatus from 'common/enums/PublicStatus';\n\n// Components\nimport SearchInput from 'ideation/components/base/SearchInput';\n\nconst IdeaBoardSearch = ({\n  publicStatus,\n  register,\n  searchValue,\n  reset,\n  handleSubmit,\n  searchSubmitted,\n  listening,\n  volume,\n}) => {\n  const { t } = useTranslation();\n\n  return (\n    <div className=\"idea-board-search\">\n      <div className=\"container inner inner--narrow inner--tablet-nopad\">\n        <form\n          id=\"idea-board-search__form\"\n          className={classNames('idea-board-search__form', {\n            'idea-board-search__form--listening': listening,\n          })}\n          onSubmit={handleSubmit}\n        >\n          <div className=\"field is-horizontal\">\n            <div className=\"field-body\">\n              <SearchInput\n                name={'ideaSearch'}\n                register={register}\n                placeholder={\n                  publicStatus === PublicStatus.CLOSED\n                    ? t('ideation.search_ideas')\n                    : t('ideation.enter_or_search')\n                }\n                handleSubmit={handleSubmit}\n                listening={listening}\n                volume={volume}\n              />\n              {!listening && (searchValue || searchSubmitted) && (\n                <div className=\"control idea-board-search__form-clear-control\">\n                  <input\n                    className=\"idea-board-search__form-clear is-secondary-color\"\n                    type=\"reset\"\n                    value={t('ideation.clear')}\n                    onClick={reset}\n                  />\n                </div>\n              )}\n            </div>\n          </div>\n        </form>\n      </div>\n    </div>\n  );\n};\n\nIdeaBoardSearch.propTypes = {\n  register: PropTypes.func.isRequired,\n  reset: PropTypes.func.isRequired,\n  handleSubmit: PropTypes.func.isRequired,\n  searchSubmitted: PropTypes.bool.isRequired,\n  publicStatus: PropTypes.string,\n  searchValue: PropTypes.string,\n  listening: PropTypes.bool.isRequired,\n  volume: PropTypes.number.isRequired,\n};\n\nIdeaBoardSearch.defaultProps = {\n  publicStatus: '',\n  searchValue: '',\n};\n\nexport default IdeaBoardSearch;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\n// Enums\nimport * as sorts from 'ideation/enums/sortOrder';\n\nconst IdeaBoardSort = ({ handleSortClick, activeTab }) => {\n  const { t } = useTranslation();\n  const sortTabs = Object.keys(sorts).map((key) => (\n    <li\n      key={key}\n      className={classNames({ 'is-active': activeTab === key })}\n      role=\"menuitem\"\n      tabIndex={0}\n      onClick={() => handleSortClick(key)}\n    >\n      {t(sorts[key].label)}\n    </li>\n  ));\n\n  return (\n    <div className=\"container inner inner--narrow\">\n      <div className=\"tabs idea-board\">\n        <ul role=\"menu\">{sortTabs}</ul>\n      </div>\n    </div>\n  );\n};\n\nIdeaBoardSort.propTypes = {\n  handleSortClick: PropTypes.func.isRequired,\n  activeTab: PropTypes.string,\n};\n\nIdeaBoardSort.defaultProps = {\n  activeTab: 'MOST_POPULAR',\n};\nexport default IdeaBoardSort;\n","// Enums\nimport { redirectToSignInPath } from 'common/utils/authHelpers';\n\nexport const authorizeAction = (authenticated, action, redirectUrl) =>\n  authenticated ? action() : redirectToSignInPath(redirectUrl);\n","const votingTypes = Object.freeze({\n  UPVOTE: 'upvote',\n  DOWNVOTE: 'downvote',\n});\n\nexport const { UPVOTE, DOWNVOTE } = votingTypes;\n","// Libraries\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n// Utils\nimport { authorizeAction } from 'ideation/utils/userAuthorize';\nimport { userAuthenticated } from 'ideation/utils/userAuthenticate';\n\n// Enums\nimport { UPVOTE, DOWNVOTE } from 'ideation/enums/votingTypes';\nimport PublicStatus from 'common/enums/PublicStatus';\n\nconst VotingWidget = ({\n  handleVote,\n  voteType,\n  votedByUser,\n  voteCount,\n  publicStatus,\n  voteTooltip,\n}) => {\n  const [disabled, setDisabled] = useState(false);\n  const closed = publicStatus !== PublicStatus.OPEN;\n\n  const handleClick = () => {\n    if (closed || disabled) return;\n    setDisabled(true);\n    authorizeAction(\n      userAuthenticated(),\n      () => handleVote().finally(() => setDisabled(false)),\n      window.location.pathname\n    );\n  };\n\n  return (\n    <div\n      className={classNames('vote-widget idea-card__button', {\n        'vote-widget--closed': closed,\n        'vote-widget--disabled': disabled,\n      })}\n      data-tooltip={voteTooltip}\n    >\n      <i\n        data-testid={voteType}\n        tabIndex={0}\n        aria-label={`${voteType} idea`}\n        aria-checked={votedByUser}\n        role=\"checkbox\"\n        onClick={handleClick}\n        className={classNames('vote-widget__icon', {\n          'fa-arrow-alt-circle-up': voteType === UPVOTE,\n          'fa-arrow-alt-circle-down': voteType === DOWNVOTE,\n          [`fas ${voteType === UPVOTE ? 'voted' : 'downvoted'}`]: votedByUser,\n          far: !votedByUser,\n        })}\n      />\n      <span className=\"has-text-weight-bold\">{voteCount > 0 ? voteCount : 0}</span>\n    </div>\n  );\n};\n\nVotingWidget.propTypes = {\n  handleVote: PropTypes.func.isRequired,\n  voteType: PropTypes.string.isRequired,\n  voteTooltip: PropTypes.string.isRequired,\n  publicStatus: PropTypes.string.isRequired,\n  votedByUser: PropTypes.bool,\n  voteCount: PropTypes.number,\n};\n\nVotingWidget.defaultProps = {\n  votedByUser: false,\n  voteCount: 0,\n};\n\nexport default VotingWidget;\n","import PropTypes from 'prop-types';\n\nconst IdeaType = PropTypes.shape({\n  id: PropTypes.string,\n  title: PropTypes.string,\n  totalCommentCount: PropTypes.number,\n});\n\nconst IdeaBoardType = PropTypes.shape({\n  id: PropTypes.string.isRequired,\n  title: PropTypes.string.isRequired,\n  longDescription: PropTypes.string,\n  publicStatus: PropTypes.string.isRequired,\n  heroImage: PropTypes.shape({\n    imageUrls: PropTypes.shape({\n      desktop: PropTypes.string,\n      card: PropTypes.string,\n      mobile: PropTypes.string,\n    }),\n  }),\n  allowDescription: PropTypes.bool.isRequired,\n  allowImage: PropTypes.bool.isRequired,\n});\n\nexport { IdeaType, IdeaBoardType };\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\n// Enums\nimport { IdeaType } from 'ideation/enums/propTypes';\n\nconst CommentCountWidget = ({ ideaRoute, idea, userHasCommented }) => {\n  const { t } = useTranslation();\n\n  return (\n    <div\n      className=\"idea-card__button idea-card__button--comment-count\"\n      data-tooltip={t('ideation.comment_on_idea_tooltip')}\n    >\n      <a href={ideaRoute} className=\"icon-link\">\n        <span className=\"icon\">\n          <i\n            className={classNames('far is-left fa-comment-alt', {\n              'fas is-active': userHasCommented,\n            })}\n          />\n        </span>\n        <span className=\"sr-only\">Comment count</span>\n        <span className=\"has-text-weight-bold\">{idea.approvedAndModeratedCount || 0}</span>\n      </a>\n    </div>\n  );\n};\n\nCommentCountWidget.propTypes = {\n  ideaRoute: PropTypes.string.isRequired,\n  idea: IdeaType.isRequired,\n  userHasCommented: PropTypes.bool,\n};\n\nCommentCountWidget.defaultProps = {\n  userHasCommented: false,\n};\n\nexport default CommentCountWidget;\n","const reasons = {\n  COMMENT_OFFENSIVE: 'COMMENT_OFFENSIVE',\n  COMMENT_SPAM: 'COMMENT_SPAM',\n  COMMENT_OTHER: 'COMMENT_OTHER',\n};\n\nexport const { COMMENT_OFFENSIVE, COMMENT_SPAM, COMMENT_OTHER } = reasons;\n","// Libraries\nimport React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\n// Hooks\nimport { useKeyListener } from 'common/hooks/useKeyListener';\nimport { useClickOutsideNode } from 'common/hooks/useClickOutsideNode';\n\n// Enums\nimport Keys from 'common/enums/Key';\nimport { COMMENT_OFFENSIVE, COMMENT_SPAM, COMMENT_OTHER } from 'ideation/enums/flagIdeaReasons';\n\nconst FlagIdeaWidgetMenu = ({ flaggedByUser, handleFlagIdea, setDisplayMenu, id }) => {\n  const menu = useRef(null);\n  const hideMenu = () => setDisplayMenu(false);\n  const { t } = useTranslation();\n\n  useClickOutsideNode(menu, hideMenu);\n  useKeyListener(Keys.ESCAPE, hideMenu);\n\n  return (\n    <div className=\"flag-idea-menu-anchor\" id={`flag-idea-menu-${id}`}>\n      <div className=\"flag-idea-menu\" aria-label=\"flag idea options\" tabIndex={0} ref={menu}>\n        {flaggedByUser ? (\n          <p className=\"flag-idea-text\">{t('ideation.idea_flagged')}</p>\n        ) : (\n          <>\n            <button\n              className=\"flag-idea-button\"\n              type=\"button\"\n              onClick={() => handleFlagIdea(COMMENT_OFFENSIVE)}\n            >\n              {t('ideation.report_offensive')}\n            </button>\n            <button\n              className=\"flag-idea-button\"\n              type=\"button\"\n              onClick={() => handleFlagIdea(COMMENT_SPAM)}\n            >\n              {t('ideation.report_spam')}\n            </button>\n            <button\n              className=\"flag-idea-button\"\n              type=\"button\"\n              onClick={() => handleFlagIdea(COMMENT_OTHER)}\n            >\n              {t('ideation.report_other')}\n            </button>\n          </>\n        )}\n      </div>\n    </div>\n  );\n};\n\nFlagIdeaWidgetMenu.propTypes = {\n  handleFlagIdea: PropTypes.func.isRequired,\n  setDisplayMenu: PropTypes.func.isRequired,\n  flaggedByUser: PropTypes.bool,\n  id: PropTypes.string.isRequired,\n};\n\nFlagIdeaWidgetMenu.defaultProps = {\n  flaggedByUser: false,\n};\n\nexport default FlagIdeaWidgetMenu;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\n// Enums\nimport PublicStatus from 'common/enums/PublicStatus';\n\n// Utils\nimport { authorizeAction } from 'ideation/utils/userAuthorize';\nimport { userAuthenticated } from 'ideation/utils/userAuthenticate';\n\n// Components\nimport FlagIdeaWidgetMenu from 'ideation/components/ideaActions/FlagIdeaWidgetMenu';\n\nconst FlagIdeaWidget = ({\n  handleFlagIdea,\n  flaggedByUser,\n  displayMenu,\n  setDisplayMenu,\n  publicStatus,\n  id,\n}) => {\n  const { t } = useTranslation();\n  const disabled = publicStatus !== PublicStatus.OPEN;\n  const flagAction = () =>\n    authorizeAction(userAuthenticated(), () => setDisplayMenu(true), window.location.pathname);\n  return (\n    <>\n      <button\n        className={classNames('idea-card__button idea-card__button--flag', {\n          'disabled-action': disabled,\n        })}\n        type=\"button\"\n        data-tooltip=\"Report Idea...\"\n        disabled={disabled}\n        onClick={disabled ? () => {} : flagAction}\n        aria-controls={`flag-idea-menu-${id}`}\n      >\n        <span className=\"icon\">\n          <i\n            className={classNames('fa-flag', {\n              'fas flagged': flaggedByUser,\n              far: !flaggedByUser,\n            })}\n          />\n        </span>\n        <span className=\"sr-only\">{t('ideation.flag_idea')}</span>\n      </button>\n      {displayMenu && (\n        <FlagIdeaWidgetMenu\n          handleFlagIdea={handleFlagIdea}\n          flaggedByUser={flaggedByUser}\n          setDisplayMenu={setDisplayMenu}\n          id={id}\n        />\n      )}\n    </>\n  );\n};\n\nFlagIdeaWidget.propTypes = {\n  handleFlagIdea: PropTypes.func.isRequired,\n  setDisplayMenu: PropTypes.func.isRequired,\n  publicStatus: PropTypes.string.isRequired,\n  flaggedByUser: PropTypes.bool,\n  displayMenu: PropTypes.bool,\n  id: PropTypes.string.isRequired,\n};\n\nFlagIdeaWidget.defaultProps = {\n  flaggedByUser: false,\n  displayMenu: false,\n};\n\nexport default FlagIdeaWidget;\n","// Libraries\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\n\n// Components\nimport VotingWidget from 'ideation/components/ideaActions/VotingWidget';\nimport CommentCountWidget from 'ideation/components/ideaActions/CommentCountWidget';\nimport FlagIdeaWidget from 'ideation/components/ideaActions/FlagIdeaWidget';\n\n// Enums\nimport PublicStatus from 'common/enums/PublicStatus';\nimport { IdeaType } from 'ideation/enums/propTypes';\nimport { DOWNVOTE, UPVOTE } from 'ideation/enums/votingTypes';\nimport { downvoteIdea, flagIdea, upvoteIdea } from 'api/v3/private';\n\n// Errors & Validations\nimport { processUserError } from 'ideation/validations/ideaValidations';\n\nconst IdeaActionContainer = ({\n  displayCommentCount,\n  ideaRoute,\n  idea,\n  publicStatus,\n  onIdeaUpdate,\n}) => {\n  const { t } = useTranslation();\n  const dispatch = useDispatch();\n  const [displayFlagMenu, setDisplayFlagMenu] = useState(false);\n  const flaggedByUser = Boolean(idea.moderationFlags);\n  const displayFlagWidget = publicStatus !== PublicStatus.CLOSED || flaggedByUser;\n\n  const upvote = async () => {\n    try {\n      const { deserialized: updatedIdea } = await upvoteIdea(idea.id);\n      onIdeaUpdate({\n        ...idea,\n        upVotesCount: updatedIdea.upVotesCount,\n        downVotesCount: updatedIdea.downVotesCount,\n        votes: idea.votes?.voteType === UPVOTE ? null : { voteType: UPVOTE },\n      });\n    } catch (error) {\n      processUserError(error, dispatch);\n    }\n  };\n\n  const downvote = async () => {\n    try {\n      const { deserialized: updatedIdea } = await downvoteIdea(idea.id);\n      onIdeaUpdate({\n        ...idea,\n        upVotesCount: updatedIdea.upVotesCount,\n        downVotesCount: updatedIdea.downVotesCount,\n        votes: idea.votes?.voteType === DOWNVOTE ? null : { voteType: DOWNVOTE },\n      });\n    } catch (error) {\n      processUserError(error, dispatch);\n    }\n  };\n\n  const flag = async (reason) => {\n    try {\n      await flagIdea(idea.id, { reason });\n      onIdeaUpdate({ ...idea, moderationFlags: {} });\n    } catch (error) {\n      processUserError(error, dispatch);\n    } finally {\n      setDisplayFlagMenu(false);\n    }\n  };\n\n  return (\n    <>\n      <VotingWidget\n        handleVote={upvote}\n        voteType={UPVOTE}\n        votedByUser={idea.votes?.voteType === UPVOTE}\n        voteCount={idea.upVotesCount}\n        voteTooltip={t('ideation.up_vote_idea_tooltip')}\n        publicStatus={publicStatus}\n      />\n      <VotingWidget\n        handleVote={downvote}\n        voteType={DOWNVOTE}\n        votedByUser={idea.votes?.voteType === DOWNVOTE}\n        voteCount={idea.downVotesCount}\n        voteTooltip={t('ideation.down_vote_idea_tooltip')}\n        publicStatus={publicStatus}\n      />\n      {displayCommentCount && (\n        <CommentCountWidget ideaRoute={ideaRoute} idea={idea} userHasCommented={false} /> // TODO\n      )}\n      {displayFlagWidget && (\n        <FlagIdeaWidget\n          handleFlagIdea={flag}\n          flaggedByUser={flaggedByUser}\n          displayMenu={displayFlagMenu}\n          setDisplayMenu={setDisplayFlagMenu}\n          publicStatus={publicStatus}\n          id={idea.id}\n        />\n      )}\n    </>\n  );\n};\n\nIdeaActionContainer.propTypes = {\n  ideaRoute: PropTypes.string,\n  idea: IdeaType.isRequired,\n  publicStatus: PropTypes.string.isRequired,\n  displayCommentCount: PropTypes.bool,\n  onIdeaUpdate: PropTypes.func.isRequired,\n};\n\nIdeaActionContainer.defaultProps = {\n  ideaRoute: '',\n  displayCommentCount: false,\n};\n\nexport default IdeaActionContainer;\n","export const PENDING = 'pending';\nexport const REJECTED = 'rejected';\nexport const APPROVED = 'approved';\n\nexport default Object.freeze({\n  PENDING,\n  REJECTED,\n  APPROVED,\n});\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\nimport ModerationStatuses, { PENDING, REJECTED } from 'common/enums/ModerationStatuses';\n\nconst WarningMessage = (props) => {\n  const { status } = props;\n  const { t } = useTranslation();\n\n  if (status !== PENDING && status !== REJECTED) return null;\n\n  const getWarningMsg = () => {\n    switch (status) {\n      case PENDING:\n        return 'ideation.pending_idea_msg';\n      case REJECTED:\n        return 'ideation.rejected_idea_msg';\n      default:\n        return '';\n    }\n  };\n\n  return (\n    <div className=\"idea-card__warning-message\">\n      <div>\n        <span\n          className={classNames('icon', {\n            'has-text-info': status === PENDING,\n            'has-text-danger': status === REJECTED,\n          })}\n        >\n          <i className=\"fas fa-exclamation-circle\" />\n        </span>\n      </div>\n      <div>\n        <p>{t(getWarningMsg())}</p>\n      </div>\n    </div>\n  );\n};\n\nWarningMessage.propTypes = {\n  status: PropTypes.oneOf(Object.values(ModerationStatuses)).isRequired,\n};\n\nexport default WarningMessage;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\n// Routes\nimport Routes from 'routes';\n\n// Utils\nimport { populatePath, determineImageSize } from 'common/utils/helpers';\nimport { currentLanguage } from 'i18n';\n\n// Components\nimport IdeaActionContainer from 'ideation/components/ideaActions/IdeaActionContainer';\nimport WarningMessage from 'ideation/components/ideaBoard/IdeaCard/WarningMessage';\n\n// Enums\nimport { IdeaType } from 'ideation/enums/propTypes';\n\nconst IdeaCard = ({ ideaBoardId, idea, publicStatus, onIdeaUpdate }) => {\n  const { t } = useTranslation();\n  const ideaRoute = populatePath(Routes.IDEA, {\n    locale: currentLanguage,\n    ideaBoardId,\n    ideaId: idea.id,\n  });\n\n  const renderBody = () => {\n    if (idea.responseText) {\n      return (\n        <div className=\"idea-card__response\">\n          <div className=\"idea-card__response-header\">\n            <i className=\"fas fa-comment-dots\" />\n            {gon.brand.name_translations[currentLanguage]}\n          </div>\n          <div className=\"idea-card__response-text\">\n            <p>{idea.responseText}</p>\n          </div>\n        </div>\n      );\n    }\n\n    if (idea.heroImage?.imageUrls) {\n      return (\n        <img\n          className=\"idea-card__image\"\n          src={determineImageSize(idea.heroImage.imageUrls)}\n          alt=\"idea card\"\n        />\n      );\n    }\n\n    if (idea.description) {\n      return (\n        <div className=\"idea-card__description\">\n          <p>{idea.description}</p>\n        </div>\n      );\n    }\n\n    return null;\n  };\n\n  const renderFooter = () => {\n    if (idea.status === 'approved') {\n      return (\n        <IdeaActionContainer\n          publicStatus={publicStatus}\n          displayCommentCount\n          ideaRoute={ideaRoute}\n          idea={idea}\n          onIdeaUpdate={onIdeaUpdate}\n        />\n      );\n    }\n\n    return <WarningMessage status={idea.status} />;\n  };\n\n  return (\n    <div className=\"tile is-parent\">\n      <div className=\"idea-card\">\n        {idea.responseIcon && (\n          <div className=\"idea-card__response-icon\">\n            <i className={`fas fa-${idea.responseIcon}`} />\n            {t(`ideation.idea_response_icon_labels.${idea.responseIcon}`)}\n          </div>\n        )}\n        <a href={ideaRoute} className=\"idea-card__content\">\n          <h2 className=\"idea-card__title is-secondary-color has-text-weight-bold\">{idea.title}</h2>\n          <div className=\"idea-card__body\">{renderBody()}</div>\n        </a>\n        <div className=\"idea-card__footer\">{renderFooter()}</div>\n      </div>\n    </div>\n  );\n};\n\nIdeaCard.propTypes = {\n  ideaBoardId: PropTypes.number.isRequired,\n  idea: IdeaType.isRequired,\n  publicStatus: PropTypes.string.isRequired,\n  onIdeaUpdate: PropTypes.func.isRequired,\n};\n\nexport default IdeaCard;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Components\nimport IdeaCard from 'ideation/components/ideaBoard/IdeaCard';\n\n// Enums\nimport { IdeaType } from 'ideation/enums/propTypes';\nimport { useTranslation } from 'react-i18next';\n\nconst IdeaCards = ({ publicStatus, ideaBoardId, data, mutateIdea }) => {\n  const { t } = useTranslation();\n\n  return (\n    <section className=\"idea-board-items\">\n      <div className=\"tile is-ancestor\">\n        {!data[0]?.deserialized.length && (\n          <div className=\"tile is-parent is-12\">\n            <h2 className=\"tile is-child has-text-centered is-secondary-color is-size-4 has-text-weight-bold\">\n              {t('ideation.no_ideas_yet')}\n            </h2>\n          </div>\n        )}\n        {data.map((page, pageIndex) =>\n          page.deserialized.map((idea, ideaIndex) => (\n            <IdeaCard\n              key={idea.id}\n              idea={idea}\n              ideaBoardId={ideaBoardId}\n              publicStatus={publicStatus}\n              onIdeaUpdate={(updatedIdea) => mutateIdea(pageIndex, ideaIndex, updatedIdea)}\n            />\n          ))\n        )}\n      </div>\n    </section>\n  );\n};\n\nIdeaCards.propTypes = {\n  ideaBoardId: PropTypes.number.isRequired,\n  publicStatus: PropTypes.string.isRequired,\n  data: PropTypes.arrayOf(\n    PropTypes.shape({\n      deserialized: PropTypes.arrayOf(IdeaType),\n    })\n  ).isRequired,\n  mutateIdea: PropTypes.func.isRequired,\n};\n\nexport default IdeaCards;\n","// Libraries\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nconst Notification = forwardRef(\n  (\n    { title, children, onClose, className, isInfo, isSuccess, isDanger, isClosed, noDismiss },\n    ref\n  ) => (\n    <div\n      className={classNames(className, 'notification', {\n        'is-closed': isClosed,\n        'is-info': isInfo,\n        'is-success': isSuccess,\n        'is-danger': isDanger,\n      })}\n      ref={ref}\n    >\n      {!noDismiss && (\n        <button\n          label=\"Dismiss\"\n          title=\"Dismiss\"\n          type=\"button\"\n          className=\"notification__dismiss delete\"\n          onClick={onClose}\n        />\n      )}\n      <div className=\"notification__icon\">\n        <span className=\"icon\">\n          <i\n            className={classNames('fas', {\n              'fa-info-circle': isInfo,\n              'fa-check': isSuccess,\n              'fa-exclamation-circle': isDanger,\n              'fa-clipboard-check': isClosed,\n            })}\n          />\n        </span>\n      </div>\n      <div className=\"notification__content\">\n        {title && <h5 className=\"notification__title title is-5\">{title}</h5>}\n        {children}\n      </div>\n    </div>\n  )\n);\n\nNotification.propTypes = {\n  title: PropTypes.string,\n  children: PropTypes.node,\n  onClose: PropTypes.func,\n  className: PropTypes.string,\n  isInfo: PropTypes.bool,\n  isSuccess: PropTypes.bool,\n  isDanger: PropTypes.bool,\n  isClosed: PropTypes.bool,\n  noDismiss: PropTypes.bool,\n};\n\nNotification.defaultProps = {\n  title: null,\n  children: null,\n  className: null,\n  isInfo: false,\n  isSuccess: false,\n  isDanger: false,\n  isClosed: false,\n  noDismiss: false,\n  onClose: () => {},\n};\n\nexport default Notification;\n","// Libraries\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\n// Components\nimport Notification from 'common/components/Notification';\n\nconst ApprovedNotification = forwardRef(({ onClose }, ref) => {\n  const { t } = useTranslation();\n\n  return (\n    <Notification\n      className=\"idea-submission-notification\"\n      title={t('ideation.idea_approved_notification')}\n      onClose={onClose}\n      ref={ref}\n      isSuccess\n    >\n      {t('ideation.idea_upvoted_message')}\n    </Notification>\n  );\n});\n\nApprovedNotification.propTypes = {\n  onClose: PropTypes.func.isRequired,\n};\n\nexport default ApprovedNotification;\n","// Libraries\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\n// Components\nimport Notification from 'common/components/Notification';\n\nconst PendingNotification = forwardRef(({ onClose }, ref) => {\n  const { t } = useTranslation();\n\n  return (\n    <Notification\n      className=\"idea-submission-notification\"\n      title={t('ideation.idea_pending_notification_title')}\n      onClose={onClose}\n      ref={ref}\n      isInfo\n    >\n      {t('ideation.idea_pending_notification')}\n    </Notification>\n  );\n});\n\nPendingNotification.propTypes = {\n  onClose: PropTypes.func.isRequired,\n};\n\nexport default PendingNotification;\n","// Libraries\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\n// Components\nimport Notification from 'common/components/Notification';\n\nconst UserBannedNotification = forwardRef(({ onClose }, ref) => {\n  const { t } = useTranslation();\n\n  return (\n    <Notification\n      className=\"idea-submission-notification\"\n      title=\"Attention!\"\n      onClose={onClose}\n      ref={ref}\n      isDanger\n    >\n      {t('ideation.user_banned_notification')}\n    </Notification>\n  );\n});\n\nUserBannedNotification.propTypes = {\n  onClose: PropTypes.func.isRequired,\n};\n\nexport default UserBannedNotification;\n","// Libraries\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\n// Components\nimport Notification from 'common/components/Notification';\n\nconst UserSuspendedNotification = forwardRef(({ onClose }, ref) => {\n  const { t } = useTranslation();\n\n  return (\n    <Notification\n      className=\"idea-submission-notification\"\n      title=\"Attention!\"\n      onClose={onClose}\n      ref={ref}\n      isDanger\n    >\n      {t('ideation.user_suspended_notification')}\n    </Notification>\n  );\n});\n\nUserSuspendedNotification.propTypes = {\n  onClose: PropTypes.func.isRequired,\n};\n\nexport default UserSuspendedNotification;\n","const submissionStatus = Object.freeze({\n  APPROVED: 'approved',\n  PENDING: 'pending',\n});\n\nexport const { APPROVED, PENDING } = submissionStatus;\n","const userStatusErrors = Object.freeze({\n  USER_BANNED: 'USER_BANNED',\n  USER_SUSPENDED: 'USER_SUSPENDED',\n});\n\nexport const { USER_BANNED, USER_SUSPENDED } = userStatusErrors;\n","// Libraries\nimport { useEffect, useRef } from 'react';\n\n/**\n * Hook for scrolling an element into view on every `dependency` truthy change\n *\n * @param {any} dependency\n * @returns {React.RefObject}\n */\nexport function useScrollIntoView(dependency) {\n  const ref = useRef();\n\n  useEffect(() => {\n    if (dependency) {\n      ref.current?.scrollIntoView();\n    }\n  }, [dependency]);\n\n  return ref;\n}\n","// Libraries\nimport React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\n// State\nimport { clearSubmissionStatus } from 'state/ducks/ideation';\n\n// Components\nimport ApprovedNotification from 'ideation/components/ideaBoard/ApprovedNotification';\nimport PendingNotification from 'ideation/components/ideaBoard/PendingNotification';\nimport UserBannedNotification from 'ideation/components/ideaBoard/UserBannedNotification';\nimport UserSuspendedNotification from 'ideation/components/ideaBoard/UserSuspendedNotification';\n\n// Enums\nimport { APPROVED, PENDING } from 'ideation/enums/submissionStatus';\nimport { USER_BANNED, USER_SUSPENDED } from 'ideation/enums/userStatusErrors';\n\n// Utils\nimport { useScrollIntoView } from 'common/hooks/useScrollIntoView';\n\nconst SubmissionNotification = () => {\n  const dispatch = useDispatch();\n  const submissionStatus = useSelector(({ ideation }) => ideation.submissionStatus);\n  const notificationRef = useScrollIntoView(submissionStatus);\n\n  if (!submissionStatus) {\n    return null;\n  }\n\n  const { status, userStatus } = submissionStatus;\n  const clearStatus = () => dispatch(clearSubmissionStatus());\n\n  switch (status) {\n    case APPROVED:\n      return <ApprovedNotification onClose={clearStatus} ref={notificationRef} />;\n    case PENDING:\n      return <PendingNotification onClose={clearStatus} ref={notificationRef} />;\n    case USER_BANNED:\n      return <UserBannedNotification onClose={clearStatus} ref={notificationRef} />;\n    case USER_SUSPENDED:\n      return (\n        <UserSuspendedNotification\n          onClose={clearStatus}\n          suspendedUntil={userStatus.suspension.until}\n          ref={notificationRef}\n        />\n      );\n    default:\n      return null;\n  }\n};\n\nexport default SubmissionNotification;\n","// Libraries\nimport React from 'react';\n// import PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\n// Components\nimport Notification from 'common/components/Notification';\n\nconst ClosedNotification = () => {\n  const { t } = useTranslation();\n\n  return (\n    <Notification className=\"idea-submission-notification\" isClosed noDismiss>\n      {t('ideation.idea_board_closed_notification')}\n    </Notification>\n  );\n};\n\nClosedNotification.propTypes = {};\n\nexport default ClosedNotification;\n","// Libraries\nimport React, { useEffect, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { Waypoint } from 'react-waypoint';\nimport useSWRInfinite from 'swr/infinite';\nimport { useTranslation } from 'react-i18next';\nimport camelcase from 'lodash.camelcase';\nimport SpeechRecognition, { useSpeechRecognition } from 'react-speech-recognition';\n\n// I18n\nimport { currentLanguage } from 'i18n';\n\n// Api\nimport { getIdeasFetcher, getIdeasUrl } from 'api/v3/private';\n\n// Components\nimport Spinner from 'common/components/Spinner';\nimport Header from 'header/components/Header';\nimport Footer from 'common/components/Footer';\nimport SocialFooter from 'common/components/SocialFooter';\nimport NotificationsSignup from 'common/components/NotificationsSignup';\nimport CreateIdeaModal from 'ideation/components/createIdea/CreateIdeaModal';\nimport IdeaBoardActions from 'ideation/components/ideaBoard/IdeaBoardActions';\nimport IdeaBoardHeader from 'ideation/components/ideaBoard/IdeaBoardHeader';\nimport IdeaBoardSearch from 'ideation/components/ideaBoard/IdeaBoardSearch';\nimport IdeaBoardSort from 'ideation/components/ideaBoard/IdeaBoardSort';\nimport IdeaCards from 'ideation/components/ideaBoard/IdeaCards';\nimport SubmissionNotification from 'ideation/components/ideaBoard/SubmissionNotification';\nimport ClosedNotification from 'ideation/components/ideaBoard/ClosedNotification';\n\n// Utils\nimport { determineImageSize, featureFlagEnabled } from 'common/utils/helpers';\nimport { userAuthenticated } from 'ideation/utils/userAuthenticate';\nimport { authorizeAction } from 'ideation/utils/userAuthorize';\n\n// Enums\nimport * as sorts from 'ideation/enums/sortOrder';\nimport PublicStatus from 'common/enums/PublicStatus';\nimport { IdeaBoardType } from 'ideation/enums/propTypes';\n\n// Constants\nconst IDEA_LIMIT = 24;\n\nconst IdeaBoard = ({ ideaBoard }) => {\n  const { t } = useTranslation();\n  const { register, reset: resetForm, handleSubmit, setValue } = useForm();\n  const [sort, setSort] = useState(sorts.MOST_POPULAR);\n  const [searchValue, setSearchValue] = useState('');\n  const [volume, setVolume] = useState(0);\n  const [displayCreateIdeaModal, setDisplayCreateIdeaModal] = useState(\n    Boolean(userAuthenticated() && localStorage.getItem('createIdeaModalTitle'))\n  );\n  const language = camelcase(currentLanguage);\n  const { project } = ideaBoard;\n  const { listening, transcript, finalTranscript, resetTranscript } = useSpeechRecognition();\n  const speechRecognitionEnabled = featureFlagEnabled('speech_recognition');\n\n  const { data, size, setSize, mutate } = useSWRInfinite(\n    (pageIndex, previousPageData) => {\n      if (previousPageData && !previousPageData.links.next) return null;\n\n      const params = {\n        page: { number: pageIndex + 1, size: IDEA_LIMIT },\n        sort: sort.param,\n        filter: searchValue,\n        include: 'hero_image',\n      };\n\n      return [getIdeasUrl(ideaBoard.id, params), ideaBoard.id];\n    },\n    getIdeasFetcher,\n    { revalidateAll: true }\n  );\n\n  const resetSearch = () => {\n    setSearchValue('');\n    resetForm();\n  };\n\n  const mutateIdea = (pageIndex, ideaIndex, updatedIdea) => {\n    mutate((cachedData) =>\n      Object.assign([...cachedData], {\n        [pageIndex]: {\n          ...cachedData[pageIndex],\n          deserialized: Object.assign([...cachedData[pageIndex].deserialized], {\n            [ideaIndex]: updatedIdea,\n          }),\n        },\n      })\n    );\n  };\n\n  const renderIdeas = () => {\n    if (!data) {\n      return (\n        <div className=\"padded-spinner\">\n          <Spinner />\n        </div>\n      );\n    }\n\n    const ideasFetched = Boolean(data.length && !data[data.length - 1].links.next);\n\n    return (\n      <>\n        <IdeaCards\n          publicStatus={ideaBoard.publicStatus}\n          ideaBoardId={Number(ideaBoard.id)}\n          data={data}\n          mutateIdea={mutateIdea}\n        />\n        {!ideasFetched && (\n          <Waypoint bottomOffset=\"-100%\" onEnter={() => setSize(size + 1)} key={data.length} />\n        )}\n      </>\n    );\n  };\n\n  const openModal = () => {\n    const authenticated = userAuthenticated();\n    if (!authenticated) localStorage.setItem('createIdeaModalTitle', searchValue);\n    authorizeAction(authenticated, () => setDisplayCreateIdeaModal(true), window.location.pathname);\n  };\n\n  const closeModal = () => {\n    setDisplayCreateIdeaModal(false);\n    localStorage.removeItem('createIdeaModalTitle');\n    resetTranscript();\n  };\n\n  useEffect(() => {\n    if (!speechRecognitionEnabled) return;\n\n    let frameRequestId = 0;\n    let stream;\n\n    const onStart = async () => {\n      window.scrollTo(0, 0);\n      document.documentElement.classList.add('is-clipped');\n      stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n\n      const context = new AudioContext();\n      const source = context.createMediaStreamSource(stream);\n      const analyser = context.createAnalyser();\n      const frequencyData = new Uint8Array(analyser.frequencyBinCount);\n      source.connect(analyser);\n\n      const calculateVolume = () => {\n        analyser.getByteFrequencyData(frequencyData);\n        const squaredSum = frequencyData.reduce((sum, value) => sum + value ** 2);\n        return Math.sqrt(squaredSum / frequencyData.length) / 255;\n      };\n\n      const frame = () => {\n        setVolume(calculateVolume());\n        frameRequestId = window.requestAnimationFrame(frame);\n      };\n\n      frame();\n    };\n\n    const onEnd = () => {\n      document.documentElement.classList.remove('is-clipped');\n      window.cancelAnimationFrame(frameRequestId);\n      stream?.getTracks().forEach((track) => track.stop());\n      setVolume(0);\n    };\n\n    const recognition = SpeechRecognition.getRecognition();\n    recognition.addEventListener('start', onStart);\n    recognition.addEventListener('end', onEnd);\n  }, []);\n\n  useEffect(() => {\n    if (listening) {\n      setValue('ideaSearch', transcript);\n    } else {\n      setValue('ideaSearch', '');\n      if (finalTranscript) openModal();\n    }\n  }, [transcript, finalTranscript, listening]);\n\n  return (\n    <div className=\"idea-board\">\n      <CreateIdeaModal\n        setSort={setSort}\n        resetSearchValues={resetSearch}\n        searchValue={searchValue || localStorage.getItem('createIdeaModalTitle')}\n        ideaBoardId={ideaBoard.id}\n        projectId={project.id}\n        allowDescription={ideaBoard.allowDescription}\n        allowImage={ideaBoard.allowImage}\n        isOpen={displayCreateIdeaModal}\n        onClose={closeModal}\n        finalTranscript={finalTranscript}\n      />\n      <Header ideation ideaBoard={ideaBoard} showAuth />\n      <main id=\"main\">\n        <IdeaBoardHeader\n          title={ideaBoard.titleTranslations[language]}\n          description={ideaBoard.longDescriptionTranslations[language]}\n          backgroundImageUrl={\n            ideaBoard.heroImage?.imageUrls &&\n            encodeURI(determineImageSize(ideaBoard.heroImage.imageUrls))\n          }\n          backgroundImagePosition={ideaBoard?.heroImage?.objectPosition}\n          projectPublic={ideaBoard.project.public}\n        />\n        <IdeaBoardSearch\n          publicStatus={ideaBoard.publicStatus}\n          register={register}\n          searchValue={searchValue}\n          reset={resetSearch}\n          handleSubmit={handleSubmit((values) => setSearchValue(values.ideaSearch))}\n          searchSubmitted={Boolean(searchValue)}\n          listening={listening}\n          volume={volume}\n        />\n        {!searchValue && (\n          <IdeaBoardSort\n            handleSortClick={(sortTab) => setSort(sorts[sortTab])}\n            activeTab={sort.sortTab}\n          />\n        )}\n        <section className=\"container inner\">\n          <div className=\"idea-board__content content-container\" id=\"idea-board-content\">\n            {ideaBoard.publicStatus !== PublicStatus.CLOSED && searchValue && (\n              <IdeaBoardActions openModal={openModal} />\n            )}\n            {ideaBoard.publicStatus === PublicStatus.CLOSED && <ClosedNotification />}\n            <SubmissionNotification />\n            {renderIdeas()}\n          </div>\n          {project && project.notificationSignUpEnabled && (\n            <div className=\"signup\">\n              <div className=\"signup__body\">\n                <h2 className=\"signup__title title is-primary-color\">\n                  {t('project.stay_informed')}\n                </h2>\n                <p className=\"signup__message\">{t('project.get_notified_message')}</p>\n              </div>\n              <NotificationsSignup title={ideaBoard.project.title} />\n            </div>\n          )}\n        </section>\n      </main>\n      <SocialFooter project={ideaBoard.project} />\n      <Footer />\n      {listening && <div className=\"idea-board__listening-overlay\" />}\n    </div>\n  );\n};\n\nIdeaBoard.propTypes = {\n  ideaBoard: IdeaBoardType.isRequired,\n};\n\nexport default IdeaBoard;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport useSWR from 'swr';\n\n// Api\nimport { getRequest } from 'api/v3';\nimport { getIdeaBoardUrl } from 'api/v3/private';\n\n// Components\nimport IdeaBoard from 'ideation/components/ideaBoard/IdeaBoard';\n\nconst IdeaBoardContainer = ({ match }) => {\n  const { data } = useSWR(getIdeaBoardUrl(match.params.ideaBoardId), getRequest);\n\n  if (!data) return null;\n\n  return <IdeaBoard ideaBoard={data.deserialized} />;\n};\n\nIdeaBoardContainer.propTypes = {\n  match: PropTypes.shape({\n    params: PropTypes.shape({\n      ideaBoardId: PropTypes.string.isRequired,\n    }),\n  }).isRequired,\n};\n\nexport default IdeaBoardContainer;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouteMatch } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { currentLanguage } from 'i18n';\n\n// Routes\nimport Routes from 'routes';\n\n// Utils\nimport { determineImageSize, populatePath } from 'common/utils/helpers';\n\n// Enums\nimport PublicStatus from 'common/enums/PublicStatus';\nimport { IdeaBoardType, IdeaType } from 'ideation/enums/propTypes';\n\n// Components\nimport IdeaBoardHeaderContainer from 'ideation/components/ideaBoard/IdeaBoardHeaderContainer';\nimport IdeaActionContainer from 'ideation/components/ideaActions/IdeaActionContainer';\n\nconst IdeaHeader = ({ idea, ideaBoard, onIdeaUpdate }) => {\n  const match = useRouteMatch();\n  const { t } = useTranslation();\n  const backgroundImageUrl =\n    ideaBoard?.heroImage?.imageUrls && encodeURI(determineImageSize(ideaBoard.heroImage.imageUrls));\n\n  return (\n    <IdeaBoardHeaderContainer backgroundImageUrl={backgroundImageUrl} single>\n      <div className=\"container inner\">\n        <a\n          href={populatePath(Routes.IDEA_BOARD, {\n            ...match.params,\n            projectId: ideaBoard?.project.id,\n          })}\n          className=\"back-link\"\n        >\n          <span className=\"has-text-weight-bold\">{t('ideation.all_ideas')}</span>\n        </a>\n      </div>\n      <div className=\"idea-board-header__inner container inner inner--narrow\">\n        <div className=\"idea-card idea-card--single\">\n          {idea?.responseIcon && (\n            <div className=\"idea-card__response-icon\">\n              <i className={`fas fa-${idea.responseIcon}`} />\n              {t(`ideation.idea_response_icon_labels.${idea.responseIcon}`)}\n            </div>\n          )}\n          <div className=\"idea-card__content\">\n            <h1 className=\"is-size-3 idea-card__title is-primary-color has-text-weight-bold\">\n              {idea?.title}\n            </h1>\n            <div className=\"idea-card__body\">\n              {idea?.heroImage?.imageUrls && (\n                <img\n                  className=\"idea-card__image\"\n                  src={determineImageSize(idea.heroImage.imageUrls)}\n                  alt=\"idea card\"\n                />\n              )}\n              {idea?.description && (\n                <div className=\"idea-card__description\">{idea.description}</div>\n              )}\n              {idea?.responseText && (\n                <div className=\"idea-card__response\">\n                  <div className=\"idea-card__response-header\">\n                    <i className=\"fas fa-comment-dots\" />\n                    {gon.brand.name_translations[currentLanguage]}\n                  </div>\n                  <div className=\"idea-card__response-text\">{idea.responseText}</div>\n                </div>\n              )}\n            </div>\n          </div>\n          {/* TODO: refactor into component */}\n          <span className=\"idea-card__footer-label has-text-weight-bold is-size-6\">\n            {ideaBoard?.publicStatus === PublicStatus.CLOSED\n              ? t('ideation.voting_results')\n              : t('ideation.vote_for_idea')}\n          </span>\n          <div className=\"idea-card__footer\">\n            {idea && ideaBoard && (\n              <IdeaActionContainer\n                idea={idea}\n                publicStatus={ideaBoard.publicStatus}\n                onIdeaUpdate={onIdeaUpdate}\n              />\n            )}\n          </div>\n        </div>\n      </div>\n    </IdeaBoardHeaderContainer>\n  );\n};\n\nIdeaHeader.propTypes = {\n  idea: IdeaType,\n  ideaBoard: IdeaBoardType,\n  onIdeaUpdate: PropTypes.func.isRequired,\n};\n\nIdeaHeader.defaultProps = {\n  idea: null,\n  ideaBoard: null,\n};\n\nexport default IdeaHeader;\n","export const sorts = {\n  NEWEST: {\n    label: 'ideation.sort_orders.newest',\n    param: '-created_at',\n  },\n  OLDEST: {\n    label: 'ideation.sort_orders.oldest',\n    param: 'created_at',\n  },\n  MOST_POPULAR: {\n    label: 'ideation.sort_orders.most_popular',\n    param: 'most_popular',\n  },\n};\n","const reasons = {\n  COMMENT_OFFENSIVE: {\n    label: 'COMMENT_OFFENSIVE',\n    body: 'Report as Offensive',\n    id: 1,\n  },\n  COMMENT_SPAM: {\n    label: 'COMMENT_SPAM',\n    body: 'Report as Marketing/Spam',\n    id: 2,\n  },\n  COMMENT_OTHER: {\n    label: 'COMMENT_OTHER',\n    body: 'Report for other reasons',\n    id: 3,\n  },\n};\n\nexport const { COMMENT_OFFENSIVE, COMMENT_SPAM, COMMENT_OTHER } = reasons;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nconst CommentActionBar = (props) => {\n  const { isReply, disabled, onSubmit, onCancel } = props;\n  const { t } = useTranslation();\n\n  if (isReply) {\n    return (\n      <div className=\"comment-input__actions\">\n        <button\n          type=\"button\"\n          className=\"button is-primary is-primary-background is-small comment-input__actions__reply-btn\"\n          onClick={onSubmit}\n          disabled={disabled}\n        >\n          {t('ideation.reply_button')}\n        </button>\n        <button type=\"button\" className=\"comment-input__actions__cancel-btn\" onClick={onCancel}>\n          {t('ideation.cancel_button')}\n        </button>\n      </div>\n    );\n  }\n\n  return (\n    <div className=\"comment-input__actions\">\n      <button\n        type=\"button\"\n        className=\"button is-primary is-primary-background\"\n        onClick={onSubmit}\n        disabled={disabled}\n      >\n        {t('ideation.comment_button')}\n      </button>\n    </div>\n  );\n};\n\nCommentActionBar.propTypes = {\n  isReply: PropTypes.bool,\n  disabled: PropTypes.bool,\n  onSubmit: PropTypes.func,\n  onCancel: PropTypes.func,\n};\n\nCommentActionBar.defaultProps = {\n  isReply: false,\n  disabled: false,\n  onSubmit: () => {},\n  onCancel: () => {},\n};\n\nexport default CommentActionBar;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport toast from 'react-hot-toast';\n\n// Helpers\nimport { rtlLanguage } from 'common/utils/helpers';\n\nconst CommentInputToast = ({ id, children }) => (\n  <div className=\"box comment-input__toast\">\n    <i className=\"zc zc-warning\" />\n    <div\n      className={classNames('comment-input__toast__body', {\n        rtl: rtlLanguage(),\n      })}\n    >\n      {children}\n    </div>\n    <i\n      className={classNames('zc zc-close-medium comment-input__toast__close-btn', {\n        rtl: rtlLanguage(),\n      })}\n      onClick={() => id && toast.remove(id)}\n    />\n  </div>\n);\n\nCommentInputToast.propTypes = {\n  id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n  children: PropTypes.node,\n};\n\nCommentInputToast.defaultProps = {\n  id: 0,\n  children: <></>,\n};\n\nexport default CommentInputToast;\n","// Libraries\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { currentLanguage } from 'i18n';\nimport PropTypes from 'prop-types';\nimport toast from 'react-hot-toast';\n\n// API\nimport { createDiscussion } from 'api/v3/private/discussion';\n\n// Components\nimport CommentActionBar from 'discussion/components/CommentInput/CommentActionBar';\nimport CommentInputToast from 'discussion/components/CommentInput/CommentInputToast';\n\nconst CommentInput = (props) => {\n  const { discussableType, discussableId, parentId, disabled, onSubmit, onCancel } = props;\n  const { t } = useTranslation();\n  const [loading, setLoading] = useState(false);\n  const [comment, setComment] = useState('');\n  const [forceSubmit, setForceSubmit] = useState(false);\n  const maxLength = 500;\n\n  const submitComment = async () => {\n    setLoading(true);\n    try {\n      const response = await createDiscussion(\n        discussableType,\n        discussableId,\n        comment,\n        parentId,\n        forceSubmit,\n        currentLanguage\n      );\n\n      setComment('');\n      setLoading(false);\n      setForceSubmit(false);\n      toast.remove();\n\n      const requireModeration = response?.deserialized?.requireModeration;\n      const toxicityScore = response?.deserialized?.toxicityScore;\n      if (requireModeration || (toxicityScore && Number(toxicityScore) > 0.5)) {\n        toast.custom(\n          (toastObj) => (\n            <CommentInputToast id={toastObj.id}>\n              <p>{t('ideation.pre_moderate_warning_msg')}</p>\n            </CommentInputToast>\n          ),\n          { position: 'bottom-center', duration: 5000 }\n        );\n      }\n\n      onSubmit();\n    } catch (err) {\n      setLoading(false);\n\n      if (err.status === 400) {\n        if (!err.body?.errors?.length) return;\n        setForceSubmit(true);\n\n        const errorMsg = [];\n\n        if (Array.isArray(err.body.errors)) {\n          err.body.errors.forEach((msg) => errorMsg.push(msg));\n        }\n\n        if (typeof err.body.errors === 'string') {\n          errorMsg.push(err.body.errors);\n        }\n\n        errorMsg.forEach((msg) =>\n          toast.custom(\n            (toastObj) => (\n              <CommentInputToast id={toastObj.id}>\n                <p>{msg}</p>\n              </CommentInputToast>\n            ),\n            { position: 'bottom-center', duration: 60 * 60 * 24 }\n          )\n        );\n      }\n    }\n  };\n\n  const cancelReply = () => {\n    setComment('');\n    onCancel();\n  };\n\n  const onCommentChange = (e) => {\n    setForceSubmit(false);\n    setComment(e.target.value);\n  };\n\n  return (\n    <div className=\"comment-input\">\n      <textarea\n        aria-label={t('ideation.comment_textarea')}\n        rows={5}\n        value={comment}\n        maxLength={maxLength}\n        placeholder={t('ideation.share_your_thoughts')}\n        onChange={onCommentChange}\n        disabled={loading || disabled}\n      />\n      <div className=\"comment-input__bottom-bar\">\n        <CommentActionBar\n          isReply={!!parentId}\n          disabled={loading || comment.length === 0 || disabled}\n          onSubmit={submitComment}\n          onCancel={cancelReply}\n        />\n        <div className=\"comment-input__info\">\n          <b>{comment.length}</b>/{maxLength}\n        </div>\n      </div>\n    </div>\n  );\n};\n\nCommentInput.propTypes = {\n  discussableType: PropTypes.string.isRequired,\n  discussableId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n  parentId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n  disabled: PropTypes.bool,\n  onSubmit: PropTypes.func,\n  onCancel: PropTypes.func,\n};\n\nCommentInput.defaultProps = {\n  parentId: null,\n  disabled: false,\n  onSubmit: () => {},\n  onCancel: () => {},\n};\n\nexport default CommentInput;\n","/**\n * Update the like related properties for a discussion cache\n * @param {function} mutate\n * @param {number} page\n * @param {(number|string)} discussionId\n * @param {(number|string)} discussionLikeId\n */\nexport const updateDiscussionLikeCache = (mutate, page, discussionId, discussionLikeId) => {\n  mutate((cachedData) => {\n    for (const discussion of cachedData[page].deserialized) {\n      if (discussion.id === discussionId) {\n        discussion.discussionLikesCount += discussionLikeId ? 1 : -1;\n        discussion.userDiscussionLikeId = discussionLikeId;\n      }\n    }\n\n    return cachedData;\n  });\n};\n\n/**\n * Update the report related properties for a discussion cache\n * @param {function} mutate\n * @param {number} page\n * @param {(number|string)} discussionId\n * @param {(number|string)} discussionReportId\n */\nexport const updateDiscussionReportCache = (mutate, page, discussionId, discussionReportId) => {\n  mutate((cachedData) => {\n    for (const discussion of cachedData[page].deserialized) {\n      if (discussion.id === discussionId) {\n        discussion.discussionReportsCount += 1;\n        discussion.userDiscussionReportId = discussionReportId;\n      }\n    }\n\n    return cachedData;\n  });\n};\n\n/**\n * To check if the role is a staff role\n * @param {string} role\n * @returns {boolean}\n */\nexport const isStaff = (role) => {\n  switch (role) {\n    case 'super_admin':\n    case 'owner':\n    case 'builder':\n    case 'contributor':\n    case 'read_only':\n    case 'participant':\n      return true;\n    case 'participant_user':\n    default:\n      return false;\n  }\n};\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareDesc\n * @category Common Helpers\n * @summary Compare the two dates reverse chronologically and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return -1 if the first date is after the second,\n * 1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:\n * const result = compareDesc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> 1\n *\n * @example\n * // Sort the array of dates in reverse chronological order:\n * const result = [\n *   new Date(1995, 6, 2),\n *   new Date(1987, 1, 11),\n *   new Date(1989, 6, 10)\n * ].sort(compareDesc)\n * //=> [\n * //   Sun Jul 02 1995 00:00:00,\n * //   Mon Jul 10 1989 00:00:00,\n * //   Wed Feb 11 1987 00:00:00\n * // ]\n */\n\nexport default function compareDesc(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var dateLeft = toDate(dirtyDateLeft);\n  var dateRight = toDate(dirtyDateRight);\n  var diff = dateLeft.getTime() - dateRight.getTime();\n\n  if (diff > 0) {\n    return -1;\n  } else if (diff < 0) {\n    return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n  } else {\n    return diff;\n  }\n}","// Libraries\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport { ZCDPopup } from '@zencity/common-ui';\nimport toast from 'react-hot-toast';\n\n// Utils\nimport { rtlLanguage } from 'common/utils/helpers';\n\n// Enums\nimport { COMMENT_OFFENSIVE, COMMENT_OTHER, COMMENT_SPAM } from 'discussion/enums';\n\n// Components\nimport CommentInputToast from 'discussion/components/CommentInput/CommentInputToast';\n\nconst ReportButton = (props) => {\n  const {\n    userDiscussionReportId,\n    discussionReportsCount,\n    reportDiscussionAction,\n    disabled,\n    commentId,\n  } = props;\n  const { t } = useTranslation();\n  const [isOpen, setIsOpen] = useState(false);\n\n  const showFlaggedMessage = () => {\n    toast.custom(\n      (toastObj) => (\n        <CommentInputToast id={toastObj.id}>\n          <p>{t('ideation.flagged_msg')}</p>\n        </CommentInputToast>\n      ),\n      {\n        position: 'bottom-center',\n        duration: 2000,\n      }\n    );\n  };\n\n  if (userDiscussionReportId) {\n    return (\n      <button aria-label={t('ideation.report_button')} type=\"button\">\n        <i className=\"has-text-danger fas fa-flag\" onClick={showFlaggedMessage} />\n      </button>\n    );\n  }\n\n  return (\n    <ZCDPopup\n      isOpen={isOpen}\n      setIsOpen={setIsOpen}\n      placement={rtlLanguage() ? 'right-end' : 'left-end'}\n      triggerElement={\n        // eslint-disable-next-line react/jsx-wrap-multilines\n        <button\n          aria-label={t('ideation.report_button')}\n          type=\"button\"\n          disabled={disabled}\n          style={{ marginRight: '0px' }}\n          onClick={() => {\n            setIsOpen(!isOpen);\n          }}\n          aria-controls={`reportmenu_${commentId}`}\n        >\n          <i\n            className={classNames(\n              {\n                far: !discussionReportsCount,\n                'has-text-danger fas': discussionReportsCount,\n              },\n              'fa-flag'\n            )}\n          />\n        </button>\n      }\n    >\n      <div className=\"box\" role=\"menu\" id={`reportmenu_${commentId}`}>\n        <button\n          className=\"flag-idea-button\"\n          type=\"button\"\n          disabled={disabled}\n          onClick={() => reportDiscussionAction(COMMENT_OFFENSIVE.id, COMMENT_OFFENSIVE.body)}\n          role=\"menuitem\"\n        >\n          {t('ideation.report_offensive')}\n        </button>\n        <button\n          className=\"flag-idea-button\"\n          type=\"button\"\n          disabled={disabled}\n          onClick={() => reportDiscussionAction(COMMENT_SPAM.id, COMMENT_SPAM.body)}\n          role=\"menuitem\"\n        >\n          {t('ideation.report_spam')}\n        </button>\n        <button\n          className=\"flag-idea-button\"\n          type=\"button\"\n          disabled={disabled}\n          onClick={() => reportDiscussionAction(COMMENT_OTHER.id, COMMENT_OTHER.body)}\n          role=\"menuitem\"\n        >\n          {t('ideation.report_other')}\n        </button>\n      </div>\n    </ZCDPopup>\n  );\n};\n\nReportButton.propTypes = {\n  userDiscussionReportId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n  discussionReportsCount: PropTypes.number.isRequired,\n  reportDiscussionAction: PropTypes.func,\n  disabled: PropTypes.bool,\n  commentId: PropTypes.string.isRequired,\n};\n\nReportButton.defaultProps = {\n  userDiscussionReportId: null,\n  reportDiscussionAction: () => {},\n  disabled: false,\n};\n\nexport default ReportButton;\n","// Libraries\nimport React, { useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport useSWRInfinite from 'swr/infinite';\nimport { format } from 'date-fns';\nimport { useTranslation } from 'react-i18next';\n\n// Utils\nimport { redirectToSignInPath } from 'common/utils/authHelpers';\nimport { isStaff, updateDiscussionLikeCache, updateDiscussionReportCache } from 'discussion/utils';\n\n// APIs\nimport { getRequest } from 'api/v3/helpers';\nimport {\n  getDiscussionRepliesURL,\n  createDiscussionLike,\n  removeDiscussionLike,\n  createDiscussionReport,\n} from 'api/v3/private/discussion';\n\n// Components\nimport CommentInput from 'discussion/components/CommentInput';\nimport ReportButton from 'discussion/components/DiscussionComment/ReportButton';\n\nconst DiscussionComment = (props) => {\n  const {\n    id,\n    discussableType,\n    discussableId,\n    discussionAuthorId,\n    approved,\n    requireModeration,\n    body,\n    discussionLikesCount,\n    discussionReportsCount,\n    username,\n    userRole,\n    createdAt,\n    level,\n    isLoggedIn,\n    replyCount,\n    parentId,\n    userDiscussionLikeId,\n    userDiscussionReportId,\n    disableActions,\n    discussionStates,\n    onStateChange,\n    onCommentSubmit,\n    onCreateLike,\n    onRemoveLike,\n    onCreateReport,\n  } = props;\n  const { t } = useTranslation();\n  const [showReply, setShowReply] = useState(false);\n  const [showLoadMoreBtn, setShowLoadMoreBtn] = useState(!!replyCount);\n  const {\n    data: replyPages,\n    size,\n    setSize,\n    mutate,\n  } = useSWRInfinite((pageIndex, previousPageData) => {\n    if (!discussionStates[id]?.shouldLoadMore) return null;\n    if (previousPageData && !previousPageData.length) return null;\n    return getDiscussionRepliesURL(id, pageIndex + 1);\n  }, getRequest);\n\n  const maxLevel = 5;\n  const componentClassName = `discussion-topic-comment${\n    level > 1 && level <= maxLevel ? '__child-comment' : ''\n  }`;\n\n  const loadMoreReplies = () => {\n    if (!discussionStates[id]?.shouldLoadMore) {\n      onStateChange(id, { shouldLoadMore: true });\n      setShowLoadMoreBtn(false);\n      return;\n    }\n    setSize(size + 1);\n  };\n\n  const formattedCreatedAt = format(new Date(createdAt), 'yyyy-MM-dd hh:mm:ss');\n\n  const onCommentSubmitted = () => {\n    setShowReply(false);\n    onCommentSubmit();\n    loadMoreReplies();\n  };\n\n  const replyCommentElements = useMemo(() => {\n    if (!replyPages?.length) {\n      return [];\n    }\n    return replyPages\n      .map((replyPage, page) => {\n        if (size >= replyPage.meta.totalPages) setShowLoadMoreBtn(false);\n        if (!replyPage.deserialized?.length) return false;\n\n        return replyPage.deserialized.map((data) => {\n          return (\n            <DiscussionComment\n              key={data.id}\n              {...data}\n              id={data.id}\n              parentId={id}\n              level={level + 1}\n              isLoggedIn={isLoggedIn}\n              onCommentSubmit={onCommentSubmitted}\n              onCreateLike={(discussionId, discussionLikeId) =>\n                updateDiscussionLikeCache(mutate, page, discussionId, discussionLikeId)\n              }\n              onRemoveLike={(discussionId) =>\n                updateDiscussionLikeCache(mutate, page, discussionId, null)\n              }\n              onCreateReport={(discussionId, discussionReportId) =>\n                updateDiscussionReportCache(mutate, page, discussionId, discussionReportId)\n              }\n              onStateChange={onStateChange}\n              discussableId={discussableId}\n              disableActions={disableActions}\n              discussionStates={discussionStates}\n            />\n          );\n        });\n      })\n      .flat();\n  }, [replyPages, discussionStates]);\n\n  /**\n   * Like or dislike a comment\n   */\n  const likeDiscussionAction = async () => {\n    if (!isLoggedIn) {\n      redirectToSignInPath(window.location.pathname);\n    }\n\n    if (userDiscussionLikeId) {\n      await removeDiscussionLike(id, userDiscussionLikeId);\n      onRemoveLike(id);\n      return;\n    }\n\n    const response = await createDiscussionLike(id);\n    if (response?.deserialized?.id) {\n      // discussionId, discussionLikeId\n      onCreateLike(id, response?.deserialized?.id);\n    }\n  };\n\n  /**\n   * Report a comment\n   */\n  const reportDiscussionAction = async (reasonId, description) => {\n    if (!isLoggedIn) {\n      redirectToSignInPath(window.location.pathname);\n    }\n\n    const response = await createDiscussionReport(id, reasonId, description);\n    if (response?.deserialized?.id) {\n      onCreateReport(id, response?.deserialized?.id);\n    }\n  };\n\n  const showReplyInput = () => {\n    if (!isLoggedIn) {\n      redirectToSignInPath(window.location.pathname);\n      return;\n    }\n\n    setShowReply(true);\n  };\n\n  const displayBody = () => {\n    // pending comment\n    if (!approved && requireModeration)\n      return (\n        <>\n          <p>{body}</p>\n          <span className=\"comment-reminder\">\n            <i className=\"fas fa-exclamation-triangle\" />\n            {t('ideation.pending_comment_reminder')}\n          </span>\n        </>\n      );\n\n    // rejected comment\n    if (!approved)\n      return (\n        <span className=\"comment-reminder\">\n          <i className=\"fas fa-exclamation-triangle\" />\n          {t('ideation.moderator_message')}\n        </span>\n      );\n\n    return <p>{body}</p>;\n  };\n\n  const shouldDisplayActions = approved && !requireModeration;\n\n  return (\n    <div\n      className={componentClassName}\n      data-id={id}\n      data-topic-id={discussableId}\n      data-approved={approved}\n      data-level={level}\n    >\n      <div className=\"discussion-topic-comment__user-info\" data-user-id={discussionAuthorId}>\n        {isStaff(userRole) ? (\n          <span className=\"staff-badge\">Staff</span>\n        ) : (\n          <i className=\"zc zc24 zc-users\" />\n        )}\n        <b>{username || '--'}・</b>\n        <span>{formattedCreatedAt}</span>\n      </div>\n      <div>{displayBody()}</div>\n      {shouldDisplayActions && (\n        <div data-testid=\"comment-actions\" className=\"discussion-topic-comment__actions\">\n          <div>\n            {level < maxLevel && (\n              <button type=\"button\" disabled={disableActions} onClick={showReplyInput}>\n                <i className=\"fas fa-reply\" />\n                <span>{t('ideation.reply')}</span>\n              </button>\n            )}\n            <button type=\"button\" disabled={disableActions} onClick={likeDiscussionAction}>\n              <i\n                className={classNames(\n                  {\n                    far: !userDiscussionLikeId,\n                    fas: userDiscussionLikeId,\n                  },\n                  'fa-thumbs-up'\n                )}\n              />\n              <span>\n                {t('ideation.like')} {!!discussionLikesCount && `(${discussionLikesCount})`}\n              </span>\n            </button>\n          </div>\n          {/* Report Flag */}\n          <div>\n            <ReportButton\n              userDiscussionReportId={userDiscussionReportId}\n              discussionReportsCount={discussionReportsCount}\n              reportDiscussionAction={reportDiscussionAction}\n              disabled={disableActions}\n              commentId={id}\n            />\n          </div>\n        </div>\n      )}\n      {showReply && (\n        <div className=\"discussion-topic-comment__reply\">\n          <CommentInput\n            discussableType={discussableType}\n            discussableId={discussableId}\n            parentId={level >= maxLevel ? parentId : id}\n            disabled={disableActions}\n            onSubmit={onCommentSubmitted}\n            onCancel={() => setShowReply(false)}\n          />\n        </div>\n      )}\n      {!!replyCommentElements.length && (\n        <div className=\"discussion-topic-comment__replies\">{replyCommentElements}</div>\n      )}\n      {showLoadMoreBtn && (\n        <div className=\"discussion-topic-comment__load-more\">\n          <button type=\"button\" onClick={loadMoreReplies}>\n            <i className=\"fa far fa-comments\" />\n            {t(`ideation.${replyCount === 1 ? 'view_1_reply' : 'view_more_replies'}`, {\n              count: replyCount,\n            })}\n          </button>\n        </div>\n      )}\n    </div>\n  );\n};\n\nconst commentPropTypes = {\n  id: PropTypes.string.isRequired,\n  discussableId: PropTypes.number.isRequired,\n  discussionAuthorId: PropTypes.number.isRequired,\n  approved: PropTypes.bool.isRequired,\n  body: PropTypes.string.isRequired,\n  discussionLikesCount: PropTypes.number.isRequired,\n  discussionReportsCount: PropTypes.number.isRequired,\n  username: PropTypes.string,\n  createdAt: PropTypes.string,\n  level: PropTypes.number,\n  userDiscussionLikeId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  userDiscussionReportId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n};\n\nDiscussionComment.propTypes = {\n  ...commentPropTypes,\n  parentId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n  level: PropTypes.number,\n  isLoggedIn: PropTypes.bool,\n  disableActions: PropTypes.bool,\n  onCommentSubmit: PropTypes.func,\n  onCreateLike: PropTypes.func,\n  onRemoveLike: PropTypes.func,\n  onCreateReport: PropTypes.func,\n};\n\nDiscussionComment.defaultProps = {\n  parentId: null,\n  level: 1,\n  isLoggedIn: false,\n  disableActions: false,\n  onCommentSubmit: () => {},\n  onCreateLike: () => {},\n  onRemoveLike: () => {},\n  onCreateReport: () => {},\n};\n\nexport default DiscussionComment;\n","// Libraries\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\n// Enums\nimport * as eumns from 'discussion/enums';\n\nconst SortOptions = ({ defaultSorting, onSortingChange, ariaLabel }) => {\n  const { t } = useTranslation();\n  const [sorting, setSorting] = useState(defaultSorting);\n\n  const options = Object.keys(eumns.sorts).map((key) => {\n    const option = eumns.sorts[key];\n\n    return (\n      <option key={option.param} value={option.param}>\n        {t(option.label)}\n      </option>\n    );\n  });\n\n  useEffect(() => onSortingChange(sorting), [sorting]);\n\n  return (\n    <select value={sorting} onChange={(e) => setSorting(e.target.value)} aria-label={ariaLabel}>\n      {options}\n    </select>\n  );\n};\n\nSortOptions.propTypes = {\n  defaultSorting: PropTypes.oneOf(Object.values(eumns.sorts).map((o) => o.param)),\n  onSortingChange: PropTypes.func,\n  ariaLabel: PropTypes.string.isRequired,\n};\n\nSortOptions.defaultProps = {\n  defaultSorting: eumns.sorts.NEWEST.param,\n  onSortingChange: () => {},\n};\n\nexport default SortOptions;\n","// Libraries\nimport React, { useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport useSWRInfinite from 'swr/infinite';\n\n// API\nimport { getRequest } from 'api/v3/helpers';\nimport { getDiscussionTopicDiscussionsURL, getIdeaDiscussionsURL } from 'api/v3/private';\n\n// Utils\nimport { updateDiscussionLikeCache, updateDiscussionReportCache } from 'discussion/utils';\n\n// Enums\nimport { DiscussionTopic, Idea } from 'common/enums/DiscussableTypes';\n\n// Components\nimport DiscussionComment from 'discussion/components/DiscussionComment';\nimport SortOptions from 'discussion/components/DiscussionCommentList/SortOptions';\n\nconst DiscussionCommentList = (props) => {\n  const {\n    discussableType,\n    discussableId,\n    approvedAndModeratedCount,\n    isLoggedIn,\n    sorting,\n    disableActions,\n    onSortingChange,\n    onCommentSubmit,\n  } = props;\n  const { t } = useTranslation();\n  const [discussionStates, setDiscussionStates] = useState({});\n  const [showLoadMoreBtn, setShowLoadMoreBtn] = useState(false);\n\n  const {\n    data: commentPages,\n    size,\n    setSize,\n    mutate,\n  } = useSWRInfinite((pageIndex, previousPageData) => {\n    if (previousPageData && !previousPageData.deserialized.length) return null;\n\n    switch (discussableType) {\n      case DiscussionTopic:\n        return getDiscussionTopicDiscussionsURL(discussableId, pageIndex + 1, 25, sorting);\n      case Idea:\n        return getIdeaDiscussionsURL(discussableId, pageIndex + 1, 25, sorting);\n      default:\n        return '';\n    }\n  }, getRequest);\n\n  const changeDiscussionState = (discussionId, value) => {\n    const state = discussionStates[discussionId]\n      ? { ...discussionStates[discussionId], ...value }\n      : value;\n\n    const states = { ...discussionStates };\n    states[discussionId] = state;\n    setDiscussionStates(states);\n  };\n\n  const commentElements = useMemo(() => {\n    if (!commentPages?.length) {\n      return [];\n    }\n\n    return commentPages\n      .map((commentPage, page) => {\n        if (size < commentPage.meta.totalPages) {\n          setShowLoadMoreBtn(true);\n        } else {\n          setShowLoadMoreBtn(false);\n        }\n        if (!commentPage.deserialized?.length) return false;\n\n        return commentPage.deserialized.map((c) => {\n          if (c.approved === false) {\n            if (!c.requireModeration && c.replyCount === 0) return null;\n          }\n\n          return (\n            <DiscussionComment\n              key={c.id}\n              onCommentSubmit={onCommentSubmit}\n              onCreateLike={(discussionId, discussionLikeId) =>\n                updateDiscussionLikeCache(mutate, page, discussionId, discussionLikeId)\n              }\n              onRemoveLike={(discussionId) =>\n                updateDiscussionLikeCache(mutate, page, discussionId, null)\n              }\n              onCreateReport={(discussionId, discussionReportId) =>\n                updateDiscussionReportCache(mutate, page, discussionId, discussionReportId)\n              }\n              onStateChange={changeDiscussionState}\n              isLoggedIn={isLoggedIn}\n              disableActions={disableActions}\n              {...c}\n              discussionStates={discussionStates}\n            />\n          );\n        });\n      })\n      .flat();\n  }, [commentPages, discussionStates]);\n\n  const changeSorting = (sortingOption) => {\n    onSortingChange(sortingOption);\n  };\n\n  const commentCountSuffix = `ideation.comment_${\n    approvedAndModeratedCount > 1 ? 'plural' : 'single'\n  }`;\n\n  return (\n    <div className=\"discussion-topic-discussions\">\n      <div className=\"discussion-topic-discussions__top-bar\">\n        <div>{`${approvedAndModeratedCount} ${t(commentCountSuffix)}`}</div>\n        <div className=\"discussion-topic-discussions__top-bar__sort-options\">\n          {t('ideation.sort_by')} :\n          <SortOptions\n            defaultSorting={sorting}\n            onSortingChange={changeSorting}\n            ariaLabel={t('ideation.sort_by')}\n          />\n        </div>\n      </div>\n      {commentElements}\n      {showLoadMoreBtn && (\n        <div className=\"discussion-topic-discussions__load-more\">\n          <button\n            type=\"button\"\n            className=\"button is-small is-primary is-primary-background\"\n            onClick={() => setSize(size + 1)}\n          >\n            {t('ideation.view_more_comments')}\n          </button>\n        </div>\n      )}\n    </div>\n  );\n};\n\nDiscussionCommentList.propTypes = {\n  discussableType: PropTypes.string.isRequired,\n  discussableId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n  approvedAndModeratedCount: PropTypes.number.isRequired,\n  isLoggedIn: PropTypes.bool,\n  sorting: PropTypes.string.isRequired,\n  disableActions: PropTypes.bool,\n  onSortingChange: PropTypes.func,\n  onCommentSubmit: PropTypes.func,\n};\n\nDiscussionCommentList.defaultProps = {\n  isLoggedIn: false,\n  disableActions: false,\n  onSortingChange: () => {},\n  onCommentSubmit: () => {},\n};\n\nexport default DiscussionCommentList;\n","// Libraries\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useSWRConfig } from 'swr';\n\n// Enums\nimport { sorts } from 'discussion/enums';\nimport DiscussableTypes from 'common/enums/DiscussableTypes';\n\n// Components\nimport CommentInput from 'discussion/components/CommentInput';\nimport DiscussionCommentList from 'discussion/components/DiscussionCommentList';\n\nconst DiscussionBoard = (props) => {\n  const {\n    discussableId,\n    discussableType,\n    isLoggedIn,\n    approvedAndModeratedCount,\n    disabled,\n    onRootCommentSubmit,\n  } = props;\n\n  const { cache, mutate } = useSWRConfig();\n  const [sorting, setSorting] = useState(sorts.NEWEST.param);\n\n  // Mutate SWR for getting latest data\n  const clearDiscussionCaches = async () => {\n    const mutations = Array.from(cache.keys()).map((key) => mutate(key));\n    await Promise.all(mutations);\n  };\n\n  const onSortingChange = async (sortingOption) => {\n    if (sortingOption !== sorting) {\n      setSorting(sortingOption);\n      await clearDiscussionCaches();\n    }\n  };\n\n  return (\n    <div className=\"discussion-board\">\n      {isLoggedIn && (\n        <CommentInput\n          discussableType={discussableType}\n          discussableId={discussableId}\n          disabled={disabled}\n          onSubmit={() => {\n            clearDiscussionCaches();\n            onRootCommentSubmit?.();\n          }}\n        />\n      )}\n      <div className=\"mt-6\" />\n      <DiscussionCommentList\n        discussableType={discussableType}\n        discussableId={discussableId}\n        approvedAndModeratedCount={approvedAndModeratedCount}\n        isLoggedIn={isLoggedIn}\n        sorting={sorting}\n        disableActions={disabled}\n        onSortingChange={onSortingChange}\n        onCommentSubmit={clearDiscussionCaches}\n      />\n    </div>\n  );\n};\n\nDiscussionBoard.propTypes = {\n  discussableId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n  discussableType: PropTypes.oneOf(Object.values(DiscussableTypes)).isRequired,\n  isLoggedIn: PropTypes.bool.isRequired,\n  disabled: PropTypes.bool.isRequired,\n  approvedAndModeratedCount: PropTypes.number.isRequired,\n  onRootCommentSubmit: PropTypes.func,\n};\n\nDiscussionBoard.defaultProps = {\n  onRootCommentSubmit: null,\n};\n\nexport default DiscussionBoard;\n","// Libraries\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\n// Utils\nimport { redirectToSignInPath, redirectToSignUpPath } from 'common/utils/authHelpers';\n\nconst LoginSection = () => {\n  const { t } = useTranslation();\n\n  return (\n    <div className=\"login-section\">\n      <div className=\"login-section__text\">{t('ideation.login_or_sign_up_reminder')}</div>\n      <div className=\"login-section__actions\">\n        <button\n          type=\"button\"\n          className=\"button login-section__actions__login-button\"\n          onClick={() => redirectToSignInPath(window.location.pathname)}\n        >\n          {t('ideation.log_in_button')}\n        </button>\n        <button\n          type=\"button\"\n          className=\"button is-primary is-primary-background login-section__actions__sign-up-button\"\n          onClick={() => redirectToSignUpPath(window.location.pathname)}\n        >\n          {t('ideation.sign_up_button')}\n        </button>\n      </div>\n    </div>\n  );\n};\n\nexport default LoginSection;\n","// Libraries\nimport React from 'react';\nimport jwtDecode from 'jwt-decode';\nimport { useTranslation } from 'react-i18next';\n\n// Utils\nimport { getUserToken } from 'ideation/utils/userAuthenticate';\nimport { csrfToken, signOutPath } from 'common/utils/authHelpers';\n\nconst SIGN_OUT_PATH = signOutPath(window.location.pathname);\nconst CSRF_TOKEN = csrfToken();\n\nconst ProfileSection = () => {\n  const { t } = useTranslation();\n  const token = getUserToken();\n  const username = jwtDecode(token).preferred_username;\n\n  return (\n    <div className=\"profile-section\">\n      <span\n        dangerouslySetInnerHTML={{\n          __html: t('ideation.posting_as', {\n            username: `<b>${username}</b>`,\n            interpolation: { escapeValue: false },\n          }),\n        }}\n      />\n      {/* TODO create a user profile page for this button */}\n      {/* <span>.</span>\n      <button\n        type=\"button\"\n        onClick={() => console.log('my profile')}\n      >\n        {t('ideation.my_profile')}\n      </button> */}\n      <b>.</b>\n      <form action={SIGN_OUT_PATH} method=\"POST\">\n        <input type=\"hidden\" name=\"authenticity_token\" value={CSRF_TOKEN} />\n        <input type=\"hidden\" name=\"_method\" value=\"delete\" />\n        <button type=\"submit\">{t('ideation.log_out_button')}</button>\n      </form>\n    </div>\n  );\n};\n\nexport default ProfileSection;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport useSWR from 'swr';\n\n// Api\nimport { getRequest } from 'api/v3';\nimport { getIdeaBoardUrl, getIdeaUrl, getIdeaFetcher } from 'api/v3/private';\n\n// Utils\nimport { userAuthenticated } from 'ideation/utils/userAuthenticate';\n\n// Enums\nimport DiscussableTypes from 'common/enums/DiscussableTypes';\nimport PublicStatus from 'common/enums/PublicStatus';\n\n// Components\nimport Header from 'header/components/Header';\nimport Footer from 'common/components/Footer';\nimport SocialFooter from 'common/components/SocialFooter';\nimport IdeaHeader from 'ideation/components/idea/IdeaHeader';\nimport DiscussionBoard from 'discussion/components/DiscussionBoard';\nimport LoginSection from 'discussion/components/LoginSection';\nimport ProfileSection from 'discussion/components/ProfileSection';\n\nconst IdeaContainer = ({ match }) => {\n  const { t } = useTranslation();\n  const { ideaBoardId, ideaId } = match.params;\n  const ideaBoard = useSWR(getIdeaBoardUrl(ideaBoardId), getRequest);\n  const idea = useSWR([getIdeaUrl(ideaId, { include: 'hero_image' }), ideaBoardId], getIdeaFetcher);\n  const isLoggedIn = userAuthenticated();\n  const approvedAndModeratedCount = idea.data\n    ? idea.data?.deserialized?.approvedAndModeratedCount\n    : 0;\n\n  const onIdeaUpdate = (updatedIdea) => {\n    idea.mutate({ deserialized: updatedIdea }, false);\n  };\n\n  const disabled = ideaBoard?.data?.deserialized?.publicStatus !== PublicStatus.OPEN;\n\n  return (\n    <div className=\"idea-container\">\n      <Header ideation ideaBoard={ideaBoard.data?.deserialized} showAuth />\n      <IdeaHeader\n        idea={idea.data?.deserialized}\n        ideaBoard={ideaBoard.data?.deserialized}\n        onIdeaUpdate={onIdeaUpdate}\n      />\n      <main id=\"main\">\n        <div className=\"container inner inner--narrowest pt-2\">\n          <div className=\"content my-6 has-text-centered\">\n            <p>\n              {t(\n                disabled\n                  ? 'ideation.idea_board_closed_notification'\n                  : 'ideation.thoughts_or_feedback'\n              )}\n            </p>\n          </div>\n        </div>\n\n        <div className=\"container inner inner--narrow mb-6\">\n          <section className=\"idea-comments pt-4\">\n            {isLoggedIn ? <ProfileSection /> : <LoginSection />}\n\n            {ideaBoard.data?.deserialized && (\n              <DiscussionBoard\n                discussableType={DiscussableTypes.Idea}\n                discussableId={ideaId}\n                isLoggedIn={isLoggedIn}\n                disabled={disabled}\n                approvedAndModeratedCount={approvedAndModeratedCount}\n              />\n            )}\n          </section>\n        </div>\n      </main>\n      <SocialFooter project={ideaBoard.data?.deserialized.project} />\n      <Footer />\n    </div>\n  );\n};\n\nIdeaContainer.propTypes = {\n  match: PropTypes.shape({\n    params: PropTypes.objectOf(PropTypes.string).isRequired,\n  }).isRequired,\n};\n\nexport default withRouter(IdeaContainer);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst PreviewModeBanner = ({ message }) => (\n  <div className=\"preview-mode-banner\">\n    <div className=\"container inner\">\n      <i className=\"fas fa-exclamation-circle\" />\n      {message}\n    </div>\n  </div>\n);\n\nPreviewModeBanner.propTypes = {\n  message: PropTypes.string.isRequired,\n};\n\nexport default PreviewModeBanner;\n","function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){_defineProperty(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e}).apply(this,arguments)}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&_setPrototypeOf(e,t)}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var r,i,n={},s=Object.keys(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||(n[r]=e[r]);return n}function _objectWithoutProperties(e,t){if(null==e)return{};var r,i,n=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i<s.length;i++)r=s[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _possibleConstructorReturn(e,t){if(t&&(\"object\"==typeof t||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return _assertThisInitialized(e)}function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var r,i=_getPrototypeOf(e);if(t){var n=_getPrototypeOf(this).constructor;r=Reflect.construct(i,arguments,n)}else r=i.apply(this,arguments);return _possibleConstructorReturn(this,r)}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _iterableToArray(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}function _unsupportedIterableToArray(e,t){if(e){if(\"string\"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===r&&e.constructor&&(r=e.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(e):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function createCommonjsModule(e,t){return t={exports:{}},e(t,t.exports),t.exports}function emptyFunction(){}function emptyFunctionWithReset(){}function cn(e){return e.map(function(e){return!1===e?null:e}).join(\" \").replace(/\\s+/g,\" \").trim()}function slideSize(e,t){return 100/e*t/t}function slideTraySize(e,t){return 100*e/t}function pct(e){return\"\".concat(e,\"%\")}function equal(e,t,r){if(e===t)return!0;var i=types[jkrosoType(e)],n=types[jkrosoType(t)];return!(!i||i!==n)&&i(e,t,r)}function memoGaurd(e){return function(t,r,i){if(!i)return e(t,r,[]);for(var n,s=i.length;n=i[--s];)if(n[0]===t&&n[1]===r)return!0;return e(t,r,i)}}function arrayEqual(e,t,r){var i=e.length;if(i!==t.length)return!1;for(r.push([e,t]);i--;)if(!equal(e[i],t[i],r))return!1;return!0}function objectEqual(e,t,r){if(\"function\"==typeof e.equal)return r.push([e,t]),e.equal(t,r);var i=getEnumerableProperties(e),n=getEnumerableProperties(t),s=i.length;if(s!==n.length)return!1;for(i.sort(),n.sort();s--;)if(i[s]!==n[s])return!1;for(r.push([e,t]),s=i.length;s--;){var a=i[s];if(!equal(e[a],t[a],r))return!1}return!0}function getEnumerableProperties(e){var t=[];for(var r in e)\"constructor\"!==r&&t.push(r);return t}function isNonNullObject(e){return!!e&&\"object\"==typeof e}function isSpecial(e){var t=Object.prototype.toString.call(e);return\"[object RegExp]\"===t||\"[object Date]\"===t||isReactElement(e)}function isReactElement(e){return e.$$typeof===REACT_ELEMENT_TYPE}function emptyTarget(e){return Array.isArray(e)?[]:{}}function cloneUnlessOtherwiseSpecified(e,t){return!1!==t.clone&&t.isMergeableObject(e)?deepmerge(emptyTarget(e),e,t):e}function defaultArrayMerge(e,t,r){return e.concat(t).map(function(e){return cloneUnlessOtherwiseSpecified(e,r)})}function mergeObject(e,t,r){var i={};return r.isMergeableObject(e)&&Object.keys(e).forEach(function(t){i[t]=cloneUnlessOtherwiseSpecified(e[t],r)}),Object.keys(t).forEach(function(n){r.isMergeableObject(t[n])&&e[n]?i[n]=deepmerge(e[n],t[n],r):i[n]=cloneUnlessOtherwiseSpecified(t[n],r)}),i}function deepmerge(e,t,r){(r=r||{}).arrayMerge=r.arrayMerge||defaultArrayMerge,r.isMergeableObject=r.isMergeableObject||isMergeableObject;var i=Array.isArray(t);return i===Array.isArray(e)?i?r.arrayMerge(e,t,r):mergeObject(e,t,r):cloneUnlessOtherwiseSpecified(t,r)}function WithStore(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return{}},r=function(r){function i(e,r){var s;return _classCallCheck(this,i),s=n.call(this,e,r),s.state=t(_objectSpread2({},r.state)),s.updateStateProps=s.updateStateProps.bind(_assertThisInitialized(s)),s}_inherits(i,r);var n=_createSuper(i);return _createClass(i,[{key:\"componentDidMount\",value:function(){this.context.subscribe(this.updateStateProps)}},{key:\"shouldComponentUpdate\",value:function(e,t){return!equals(t,this.state)||!equals(e,this.props)}},{key:\"componentWillUnmount\",value:function(){this.context.unsubscribe(this.updateStateProps)}},{key:\"updateStateProps\",value:function(){this.setState(t(_objectSpread2({},this.context.state)))}},{key:\"render\",value:function(){var t=this,r=deepmerge_1(this.state,this.props);return React.createElement(e,_extends({ref:function(e){t.instance=e}},r,{carouselStore:{getStoreState:this.context.getStoreState,masterSpinnerError:this.context.masterSpinnerError,masterSpinnerSuccess:this.context.masterSpinnerSuccess,setStoreState:this.context.setStoreState,subscribeMasterSpinner:this.context.subscribeMasterSpinner,unsubscribeAllMasterSpinner:this.context.unsubscribeAllMasterSpinner,unsubscribeMasterSpinner:this.context.unsubscribeMasterSpinner}}),this.props.children)}}]),i}(React.Component);return _defineProperty(r,\"contextType\",Context),_defineProperty(r,\"propTypes\",{children:CarouselPropTypes.children}),_defineProperty(r,\"defaultProps\",{children:null}),r}import React from\"react\";var ReactPropTypesSecret=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\",ReactPropTypesSecret_1=ReactPropTypesSecret;emptyFunctionWithReset.resetWarningCache=emptyFunction;var factoryWithThrowingShims=function(){function e(e,t,r,i,n,s){if(s!==ReactPropTypesSecret_1){var a=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw a.name=\"Invariant Violation\",a}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return r.PropTypes=r,r},propTypes=createCommonjsModule(function(e){e.exports=factoryWithThrowingShims()}),LOADING=\"loading\",SUCCESS=\"success\",ERROR=\"error\",CarouselPropTypes={children:propTypes.oneOfType([propTypes.arrayOf(propTypes.node),propTypes.node]),direction:propTypes.oneOf([\"forward\",\"backward\"]),height:function(e,t){var r=e[t];return\"vertical\"!==e.orientation||null!==r&&\"number\"==typeof r?null:new Error(\"Missing required property '\".concat(t,\"' when orientation is vertical.  You must supply a number representing the height in pixels\"))},orientation:propTypes.oneOf([\"horizontal\",\"vertical\"]),isBgImage:function(e,t){return!0===e[t]&&\"img\"===e.tag?new Error(\"HTML img elements should not have a backgroundImage.  Please use \".concat(t,\" for other block-level HTML tags, like div, a, section, etc...\")):null}},boundedRange=function(e){var t=e.min,r=e.max,i=e.x;return Math.min(r,Math.max(t,i))},s={buttonBack:\"buttonBack___1mlaL\"},_excluded=[\"carouselStore\",\"className\",\"currentSlide\",\"disabled\",\"onClick\",\"step\",\"totalSlides\",\"visibleSlides\",\"infinite\"],ButtonBack=function(e){function t(e){var i;return _classCallCheck(this,t),i=r.call(this,e),i.handleOnClick=i.handleOnClick.bind(_assertThisInitialized(i)),i}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"handleOnClick\",value:function(e){var t=this.props,r=t.carouselStore,i=t.currentSlide,n=t.onClick,s=t.step,a=t.infinite,o=t.visibleSlides,l=t.totalSlides-o,c=Math.max(i-s,0);a&&(c=0===i?l:c),r.setStoreState({currentSlide:c,isPlaying:!1},null!==n&&n.call(this,e))}},{key:\"render\",value:function(){var e=this.props,r=(e.carouselStore,e.className),i=(e.currentSlide,e.disabled,e.onClick,e.step,e.totalSlides,e.visibleSlides,e.infinite),n=_objectWithoutProperties(e,_excluded),a=cn([s.buttonBack,\"carousel__back-button\",r]),o=t.setDisabled(this.props.disabled,this.props.currentSlide,i);return React.createElement(\"button\",_extends({type:\"button\",\"aria-label\":\"previous\",className:a,onClick:this.handleOnClick,disabled:o},n),this.props.children)}}],[{key:\"setDisabled\",value:function(e,t,r){return null!==e?e:0===t&&!r}}]),t}(React.Component);_defineProperty(ButtonBack,\"propTypes\",{carouselStore:propTypes.object.isRequired,children:CarouselPropTypes.children.isRequired,className:propTypes.string,currentSlide:propTypes.number.isRequired,disabled:propTypes.bool,onClick:propTypes.func,step:propTypes.number.isRequired,totalSlides:propTypes.number.isRequired,visibleSlides:propTypes.number.isRequired,infinite:propTypes.bool}),_defineProperty(ButtonBack,\"defaultProps\",{className:null,disabled:null,onClick:null,infinite:!1});var jkrosoType=createCommonjsModule(function(e,t){var r={}.toString,i=\"undefined\"!=typeof window?window.Node:Function;e.exports=t=function(e){var t=typeof e;if(\"object\"!=t)return t;if(t=n[r.call(e)],\"object\"==t)return e instanceof Map?\"map\":e instanceof Set?\"set\":\"object\";if(t)return t;if(e instanceof i)switch(e.nodeType){case 1:return\"element\";case 3:return\"text-node\";case 9:return\"document\";case 11:return\"document-fragment\";default:return\"dom-node\"}};var n=t.types={\"[object Function]\":\"function\",\"[object Date]\":\"date\",\"[object RegExp]\":\"regexp\",\"[object Arguments]\":\"arguments\",\"[object Array]\":\"array\",\"[object Set]\":\"set\",\"[object String]\":\"string\",\"[object Null]\":\"null\",\"[object Undefined]\":\"undefined\",\"[object Number]\":\"number\",\"[object Boolean]\":\"boolean\",\"[object Object]\":\"object\",\"[object Map]\":\"map\",\"[object Text]\":\"text-node\",\"[object Uint8Array]\":\"bit-array\",\"[object Uint16Array]\":\"bit-array\",\"[object Uint32Array]\":\"bit-array\",\"[object Uint8ClampedArray]\":\"bit-array\",\"[object Error]\":\"error\",\"[object FormData]\":\"form-data\",\"[object File]\":\"file\",\"[object Blob]\":\"blob\"}}),jkrosoType_1=jkrosoType.types,types={};types.number=function(e,t){return e!==e&&t!==t},types.function=function(e,t,r){return e.toString()===t.toString()&&types.object(e,t,r)&&equal(e.prototype,t.prototype)},types.date=function(e,t){return+e==+t},types.regexp=function(e,t){return e.toString()===t.toString()},types.element=function(e,t){return e.outerHTML===t.outerHTML},types.textnode=function(e,t){return e.textContent===t.textContent},types.arguments=types[\"bit-array\"]=types.array=memoGaurd(arrayEqual),types.object=memoGaurd(objectEqual);var equals=equal,isMergeableObject=function(e){return isNonNullObject(e)&&!isSpecial(e)},canUseSymbol=\"function\"==typeof Symbol&&Symbol.for,REACT_ELEMENT_TYPE=canUseSymbol?Symbol.for(\"react.element\"):60103;deepmerge.all=function(e,t){if(!Array.isArray(e))throw new Error(\"first argument should be an array\");return e.reduce(function(e,r){return deepmerge(e,r,t)},{})};var deepmerge_1=deepmerge,Context=React.createContext(),deepFreeze=function e(t){return Object.freeze(t),Object.getOwnPropertyNames(t).forEach(function(r){!t.hasOwnProperty(r)||null===t[r]||\"object\"!=typeof t[r]&&\"function\"!=typeof t[r]||Object.isFrozen(t[r])||e(t[r])}),t},DEFAULT_STATE={masterSpinnerFinished:!1},Store=function(){function e(t){_classCallCheck(this,e),this.state=deepFreeze(deepmerge_1(DEFAULT_STATE,t)),this.subscriptions=[],this.masterSpinnerSubscriptions={},this.setStoreState=this.setStoreState.bind(this),this.getStoreState=this.getStoreState.bind(this),this.subscribe=this.subscribe.bind(this),this.unsubscribe=this.unsubscribe.bind(this),this.updateSubscribers=this.updateSubscribers.bind(this),this.subscribeMasterSpinner=this.subscribeMasterSpinner.bind(this),this.unsubscribeMasterSpinner=this.unsubscribeMasterSpinner.bind(this),this.unsubscribeAllMasterSpinner=this.unsubscribeAllMasterSpinner.bind(this),this.masterSpinnerSuccess=this.masterSpinnerSuccess.bind(this),this.masterSpinnerError=this.masterSpinnerError.bind(this)}return _createClass(e,[{key:\"setStoreState\",value:function(e,t){this.state=deepFreeze(deepmerge_1(this.state,e)),this.updateSubscribers(t)}},{key:\"getStoreState\",value:function(){return deepmerge_1({},this.state)}},{key:\"subscribe\",value:function(e){this.subscriptions.push(e)}},{key:\"unsubscribe\",value:function(e){var t=this.subscriptions.indexOf(e);-1!==t&&this.subscriptions.splice(t,1)}},{key:\"updateSubscribers\",value:function(e){this.subscriptions.forEach(function(e){return e()}),\"function\"==typeof e&&e(this.getStoreState())}},{key:\"subscribeMasterSpinner\",value:function(e){-1===Object.keys(this.masterSpinnerSubscriptions).indexOf(e)&&(this.masterSpinnerSubscriptions[e]={success:!1,error:!1,complete:!1})}},{key:\"unsubscribeMasterSpinner\",value:function(e){return-1!==Object.keys(this.masterSpinnerSubscriptions).indexOf(e)&&(this.setMasterSpinnerFinished(),delete this.masterSpinnerSubscriptions[e])}},{key:\"unsubscribeAllMasterSpinner\",value:function(){this.masterSpinnerSubscriptions={},this.setMasterSpinnerFinished()}},{key:\"masterSpinnerSuccess\",value:function(e){this.masterSpinnerSubscriptions[e].success=!0,this.masterSpinnerSubscriptions[e].complete=!0,this.setMasterSpinnerFinished()}},{key:\"masterSpinnerError\",value:function(e){this.masterSpinnerSubscriptions[e].error=!0,this.masterSpinnerSubscriptions[e].complete=!0,this.setMasterSpinnerFinished()}},{key:\"setMasterSpinnerFinished\",value:function(){this.setStoreState({masterSpinnerFinished:this.isMasterSpinnerFinished()})}},{key:\"isMasterSpinnerFinished\",value:function(){var e=this;return 0===Object.keys(this.masterSpinnerSubscriptions).filter(function(t){return!0!==e.masterSpinnerSubscriptions[t].complete}).length}}]),e}(),_excluded$1=[\"children\",\"className\",\"currentSlide\",\"disableAnimation\",\"disableKeyboard\",\"hasMasterSpinner\",\"interval\",\"isPageScrollLocked\",\"isPlaying\",\"lockOnWindowScroll\",\"naturalSlideHeight\",\"naturalSlideWidth\",\"orientation\",\"playDirection\",\"step\",\"dragStep\",\"tag\",\"totalSlides\",\"touchEnabled\",\"dragEnabled\",\"visibleSlides\",\"infinite\",\"isIntrinsicHeight\"],_class,_temp,CarouselProvider=(_temp=_class=function(e){function t(e){var i;if(_classCallCheck(this,t),i=r.call(this,e),e.isIntrinsicHeight&&\"horizontal\"!==e.orientation)throw Error('isIntrinsicHeight can only be used in \"horizontal\" orientation. See Readme for more information.');var n={currentSlide:e.currentSlide,disableAnimation:e.disableAnimation,disableKeyboard:e.disableKeyboard,hasMasterSpinner:e.hasMasterSpinner,imageErrorCount:0,imageSuccessCount:0,interval:e.interval,isPageScrollLocked:e.isPageScrollLocked,isPlaying:e.isPlaying,lockOnWindowScroll:e.lockOnWindowScroll,masterSpinnerThreshold:0,naturalSlideHeight:e.naturalSlideHeight,naturalSlideWidth:e.naturalSlideWidth,orientation:e.orientation,playDirection:e.playDirection,privateUnDisableAnimation:!1,slideSize:slideSize(e.totalSlides,e.visibleSlides),slideTraySize:slideTraySize(e.totalSlides,e.visibleSlides),step:e.step,dragStep:e.dragStep,totalSlides:e.totalSlides,touchEnabled:e.touchEnabled,dragEnabled:e.dragEnabled,visibleSlides:e.visibleSlides,infinite:e.infinite,isIntrinsicHeight:e.isIntrinsicHeight};return i.carouselStore=new Store(n),i}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"componentDidUpdate\",value:function(e){var t=this,r={};[\"currentSlide\",\"disableAnimation\",\"disableKeyboard\",\"hasMasterSpinner\",\"interval\",\"isPlaying\",\"naturalSlideHeight\",\"naturalSlideWidth\",\"lockOnWindowScroll\",\"orientation\",\"playDirection\",\"step\",\"dragStep\",\"totalSlides\",\"touchEnabled\",\"dragEnabled\",\"visibleSlides\"].forEach(function(i){e[i]!==t.props[i]&&(r[i]=t.props[i])}),this.props.currentSlide!==e.currentSlide&&!this.props.disableAnimation&&(r.disableAnimation=!0,r.privateUnDisableAnimation=!0),this.props.totalSlides===e.totalSlides&&this.props.visibleSlides===e.visibleSlides||(r.slideSize=slideSize(this.props.totalSlides,this.props.visibleSlides),r.slideTraySize=slideTraySize(this.props.totalSlides,this.props.visibleSlides)),this.carouselStore.state.currentSlide>=this.props.totalSlides&&(r.currentSlide=Math.max(this.props.totalSlides-1,0)),Object.keys(r).length>0&&this.carouselStore.setStoreState(r)}},{key:\"componentWillUnmount\",value:function(){this.carouselStore.unsubscribeAllMasterSpinner()}},{key:\"getStore\",value:function(){return this.carouselStore}},{key:\"render\",value:function(){var e=this.props,t=(e.children,e.className,e.currentSlide,e.disableAnimation,e.disableKeyboard,e.hasMasterSpinner,e.interval,e.isPageScrollLocked,e.isPlaying,e.lockOnWindowScroll,e.naturalSlideHeight,e.naturalSlideWidth,e.orientation,e.playDirection,e.step,e.dragStep,e.tag),r=(e.totalSlides,e.touchEnabled,e.dragEnabled,e.visibleSlides,e.infinite,e.isIntrinsicHeight,_objectWithoutProperties(e,_excluded$1)),i=cn([\"carousel\",this.props.className]);return React.createElement(t,_extends({className:i},r),React.createElement(Context.Provider,{value:this.carouselStore},this.props.children))}}]),t}(React.Component),_defineProperty(_class,\"propTypes\",{children:CarouselPropTypes.children.isRequired,className:propTypes.string,currentSlide:propTypes.number,disableAnimation:propTypes.bool,disableKeyboard:propTypes.bool,hasMasterSpinner:propTypes.bool,interval:propTypes.number,isPageScrollLocked:propTypes.bool,isPlaying:propTypes.bool,lockOnWindowScroll:propTypes.bool,naturalSlideHeight:propTypes.number.isRequired,naturalSlideWidth:propTypes.number.isRequired,orientation:CarouselPropTypes.orientation,playDirection:CarouselPropTypes.direction,step:propTypes.number,dragStep:propTypes.number,tag:propTypes.string,totalSlides:propTypes.number.isRequired,touchEnabled:propTypes.bool,dragEnabled:propTypes.bool,visibleSlides:propTypes.number,infinite:propTypes.bool,isIntrinsicHeight:propTypes.bool}),_defineProperty(_class,\"defaultProps\",{className:null,currentSlide:0,disableAnimation:!1,disableKeyboard:!1,hasMasterSpinner:!1,interval:5e3,isPageScrollLocked:!1,isPlaying:!1,lockOnWindowScroll:!1,orientation:\"horizontal\",playDirection:\"forward\",step:1,dragStep:1,tag:\"div\",touchEnabled:!0,dragEnabled:!0,visibleSlides:1,infinite:!1,isIntrinsicHeight:!1}),_temp);Context.Consumer;var index=WithStore(ButtonBack,function(e){return{currentSlide:e.currentSlide,step:e.step,totalSlides:e.totalSlides,visibleSlides:e.visibleSlides,infinite:e.infinite}}),s$1={buttonFirst:\"buttonFirst___2rhFr\"},_excluded$2=[\"carouselStore\",\"className\",\"currentSlide\",\"disabled\",\"onClick\",\"totalSlides\"],_class$1,_temp$1,ButtonFirst=(_temp$1=_class$1=function(e){function t(){var e;return _classCallCheck(this,t),e=r.call(this),e.handleOnClick=e.handleOnClick.bind(_assertThisInitialized(e)),e}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"handleOnClick\",value:function(e){var t=this.props,r=t.carouselStore,i=t.onClick;r.setStoreState({currentSlide:0,isPlaying:!1},null!==i&&i.call(this,e))}},{key:\"render\",value:function(){var e=this.props,t=(e.carouselStore,e.className),r=e.currentSlide,i=e.disabled,n=(e.onClick,e.totalSlides,_objectWithoutProperties(e,_excluded$2)),s=cn([s$1.buttonFirst,\"carousel__first-button\",t]),a=null!==i?i:0===r;return React.createElement(\"button\",_extends({type:\"button\",\"aria-label\":\"first\",className:s,onClick:this.handleOnClick,disabled:a},n),this.props.children)}}]),t}(React.Component),_defineProperty(_class$1,\"propTypes\",{carouselStore:propTypes.object.isRequired,children:CarouselPropTypes.children.isRequired,className:propTypes.string,currentSlide:propTypes.number.isRequired,disabled:propTypes.bool,onClick:propTypes.func,totalSlides:propTypes.number.isRequired}),_defineProperty(_class$1,\"defaultProps\",{className:null,disabled:null,onClick:null}),_temp$1),index$1=WithStore(ButtonFirst,function(e){return{currentSlide:e.currentSlide,totalSlides:e.totalSlides}}),s$2={buttonNext:\"buttonNext___2mOCa\"},_excluded$3=[\"carouselStore\",\"className\",\"currentSlide\",\"disabled\",\"onClick\",\"step\",\"totalSlides\",\"visibleSlides\",\"infinite\"],_class$2,_temp$2,ButtonNext=(_temp$2=_class$2=function(e){function t(e){var i;return _classCallCheck(this,t),i=r.call(this,e),i.handleOnClick=i.handleOnClick.bind(_assertThisInitialized(i)),i}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"handleOnClick\",value:function(e){var t=this.props,r=t.currentSlide,i=t.onClick,n=t.step,s=t.carouselStore,a=t.infinite,o=t.totalSlides-t.visibleSlides,l=n+r,c=Math.min(l,o);a&&(c=o===r?0:c),s.setStoreState({currentSlide:c,isPlaying:!1},null!==i&&i.call(this,e))}},{key:\"render\",value:function(){var e=this.props,r=(e.carouselStore,e.className),i=e.currentSlide,n=e.disabled,s=(e.onClick,e.step,e.totalSlides),a=e.visibleSlides,o=e.infinite,l=_objectWithoutProperties(e,_excluded$3),c=cn([s$2.buttonNext,\"carousel__next-button\",r]),u=t.setDisabled(n,i,a,s,o);return React.createElement(\"button\",_extends({type:\"button\",\"aria-label\":\"next\",className:c,onClick:this.handleOnClick,disabled:u},l),this.props.children)}}],[{key:\"setDisabled\",value:function(e,t,r,i,n){return null!==e?e:t>=i-r&&!n}}]),t}(React.PureComponent),_defineProperty(_class$2,\"propTypes\",{carouselStore:propTypes.object.isRequired,children:CarouselPropTypes.children.isRequired,className:propTypes.string,currentSlide:propTypes.number.isRequired,disabled:propTypes.bool,onClick:propTypes.func,step:propTypes.number.isRequired,totalSlides:propTypes.number.isRequired,visibleSlides:propTypes.number.isRequired,infinite:propTypes.bool}),_defineProperty(_class$2,\"defaultProps\",{className:null,disabled:null,onClick:null,infinite:!1}),_temp$2),index$2=WithStore(ButtonNext,function(e){return{currentSlide:e.currentSlide,step:e.step,totalSlides:e.totalSlides,visibleSlides:e.visibleSlides,infinite:e.infinite}}),s$3={buttonLast:\"buttonLast___2yuh0\"},_excluded$4=[\"carouselStore\",\"className\",\"currentSlide\",\"disabled\",\"onClick\",\"totalSlides\",\"visibleSlides\"],_class$3,_temp$3,ButtonLast=(_temp$3=_class$3=function(e){function t(){var e;return _classCallCheck(this,t),e=r.call(this),e.handleOnClick=e.handleOnClick.bind(_assertThisInitialized(e)),e}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"handleOnClick\",value:function(e){var t=this.props,r=t.carouselStore,i=t.onClick,n=t.totalSlides,s=t.visibleSlides;r.setStoreState({currentSlide:n-s,isPlaying:!1},null!==i&&i.call(this,e))}},{key:\"render\",value:function(){var e=this.props,t=(e.carouselStore,e.className),r=e.currentSlide,i=e.disabled,n=(e.onClick,e.totalSlides),s=e.visibleSlides,a=_objectWithoutProperties(e,_excluded$4),o=cn([s$3.buttonLast,\"carousel__last-button\",t]),l=null!==i?i:r>=n-s;return React.createElement(\"button\",_extends({type:\"button\",\"aria-label\":\"last\",className:o,onClick:this.handleOnClick,disabled:l},a),this.props.children)}}]),t}(React.Component),_defineProperty(_class$3,\"propTypes\",{carouselStore:propTypes.object.isRequired,children:CarouselPropTypes.children.isRequired,className:propTypes.string,currentSlide:propTypes.number.isRequired,disabled:propTypes.bool,onClick:propTypes.func,totalSlides:propTypes.number.isRequired,visibleSlides:propTypes.number.isRequired}),_defineProperty(_class$3,\"defaultProps\",{className:null,disabled:null,onClick:null}),_temp$3),index$3=WithStore(ButtonLast,function(e){return{currentSlide:e.currentSlide,totalSlides:e.totalSlides,visibleSlides:e.visibleSlides}}),s$4={buttonNext:\"buttonNext___3Lm3s\"},_excluded$5=[\"carouselStore\",\"children\",\"childrenPaused\",\"childrenPlaying\",\"className\",\"isPlaying\",\"onClick\"],_class$4,_temp$4,ButtonPlay=(_temp$4=_class$4=function(e){function t(e){var i;return _classCallCheck(this,t),i=r.call(this,e),i.handleOnClick=i.handleOnClick.bind(_assertThisInitialized(i)),i}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"handleOnClick\",value:function(e){var t=this.props.onClick;this.props.carouselStore.setStoreState({isPlaying:!this.props.isPlaying},null!==t&&t.call(this,e))}},{key:\"render\",value:function(){var e=this.props,t=(e.carouselStore,e.children,e.childrenPaused),r=e.childrenPlaying,i=e.className,n=e.isPlaying,s=(e.onClick,_objectWithoutProperties(e,_excluded$5)),a=cn([s$4.buttonNext,\"carousel__play-button\",i]);return React.createElement(\"button\",_extends({type:\"button\",\"aria-label\":\"play\",className:a,onClick:this.handleOnClick},s),n&&r,!n&&t,this.props.children)}}]),t}(React.PureComponent),_defineProperty(_class$4,\"propTypes\",{carouselStore:propTypes.object.isRequired,children:propTypes.node,childrenPaused:propTypes.node,childrenPlaying:propTypes.node,className:propTypes.string,isPlaying:propTypes.bool.isRequired,onClick:propTypes.func}),_defineProperty(_class$4,\"defaultProps\",{children:null,childrenPaused:null,childrenPlaying:null,className:null,onClick:null}),_temp$4),index$4=WithStore(ButtonPlay,function(e){return{isPlaying:e.isPlaying}}),s$5={dot:\"dot___3c3SI\"},_excluded$6=[\"carouselStore\",\"children\",\"className\",\"currentSlide\",\"disabled\",\"onClick\",\"selected\",\"slide\",\"totalSlides\",\"visibleSlides\"],_class$5,_temp$5,Dot=(_temp$5=_class$5=function(e){function t(e){var i;return _classCallCheck(this,t),i=r.call(this,e),i.handleOnClick=i.handleOnClick.bind(_assertThisInitialized(i)),i}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"handleOnClick\",value:function(e){var t=this.props,r=t.carouselStore,i=t.onClick,n=t.slide,s=t.totalSlides,a=t.visibleSlides,o=n>=s-a?s-a:n;r.setStoreState({currentSlide:o,isPlaying:!1},null!==i&&i.call(this,e))}},{key:\"render\",value:function(){var e=this.props,t=(e.carouselStore,e.children,e.className),r=e.currentSlide,i=e.disabled,n=(e.onClick,e.selected),s=e.slide,a=(e.totalSlides,e.visibleSlides),o=_objectWithoutProperties(e,_excluded$6),l=s>=r&&s<r+a,c=\"boolean\"==typeof n?n:l,u=!0===l,p=\"boolean\"==typeof i?i:u,d=cn([s$5.dot,c&&s$5.dotSelected,\"carousel__dot\",\"carousel__dot--\".concat(s),c&&\"carousel__dot--selected\",t]);return React.createElement(\"button\",_extends({\"aria-label\":\"slide dot\",type:\"button\",onClick:this.handleOnClick,className:d,disabled:p},o),this.props.children)}}]),t}(React.Component),_defineProperty(_class$5,\"propTypes\",{carouselStore:propTypes.object.isRequired,children:CarouselPropTypes.children,className:propTypes.string,currentSlide:propTypes.number.isRequired,disabled:propTypes.bool,onClick:propTypes.func,selected:propTypes.bool,slide:propTypes.number.isRequired,totalSlides:propTypes.number.isRequired,visibleSlides:propTypes.number.isRequired}),_defineProperty(_class$5,\"defaultProps\",{children:null,className:null,disabled:null,onClick:null,selected:null}),_temp$5),Dot$1=WithStore(Dot,function(e){return{currentSlide:e.currentSlide,totalSlides:e.totalSlides,visibleSlides:e.visibleSlides}}),s$6={},_excluded$7=[\"renderDots\"],_excluded2=[\"carouselStore\",\"children\",\"className\",\"currentSlide\",\"dotNumbers\",\"totalSlides\",\"visibleSlides\",\"disableActiveDots\",\"showAsSelectedForCurrentSlideOnly\",\"renderDots\"],_class$6,_temp$6,DotGroup=(_temp$6=_class$6=function(e){function t(){return _classCallCheck(this,t),r.apply(this,arguments)}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"renderDots\",value:function(){var e=this.props,t=e.currentSlide,r=e.totalSlides,i=e.visibleSlides,n=e.disableActiveDots,s=e.showAsSelectedForCurrentSlideOnly,a=e.renderDots;if(a){var o=this.props;o.renderDots;return a(_objectWithoutProperties(o,_excluded$7))}for(var l=[],c=0;c<r;c+=1){var u=c>=t&&c<t+i,p=c===t,d=s?p:u,h=c>=r-i?r-i:c;l.push(React.createElement(Dot$1,{key:c,slide:h,selected:d,disabled:!!n&&d},React.createElement(\"span\",{className:cn[\"carousel__dot-group-dot\"]},this.props.dotNumbers&&c+1)))}return l}},{key:\"render\",value:function(){var e=this.props,t=(e.carouselStore,e.children),r=e.className,i=(e.currentSlide,e.dotNumbers,e.totalSlides,e.visibleSlides,e.disableActiveDots,e.showAsSelectedForCurrentSlideOnly,e.renderDots,_objectWithoutProperties(e,_excluded2)),n=cn([s$6.DotGroup,\"carousel__dot-group\",r]);return React.createElement(\"div\",_extends({className:n},i),this.renderDots(),t)}}]),t}(React.Component),_defineProperty(_class$6,\"propTypes\",{children:CarouselPropTypes.children,className:propTypes.string,currentSlide:propTypes.number.isRequired,carouselStore:propTypes.object.isRequired,totalSlides:propTypes.number.isRequired,visibleSlides:propTypes.number.isRequired,dotNumbers:propTypes.bool,disableActiveDots:propTypes.bool,showAsSelectedForCurrentSlideOnly:propTypes.bool,renderDots:propTypes.func}),_defineProperty(_class$6,\"defaultProps\",{children:null,className:null,dotNumbers:!1,disableActiveDots:!0,showAsSelectedForCurrentSlideOnly:!1,renderDots:null}),_temp$6),index$5=WithStore(DotGroup,function(e){return{currentSlide:e.currentSlide,totalSlides:e.totalSlides,visibleSlides:e.visibleSlides}}),s$7={image:\"image___xtQGH\"},_excluded$8=[\"src\",\"alt\"],_excluded2$1=[\"carouselStore\",\"children\",\"className\",\"hasMasterSpinner\",\"isBgImage\",\"onError\",\"onLoad\",\"renderError\",\"renderLoading\",\"style\",\"tag\"],Image=function(e){function t(e){var i;return _classCallCheck(this,t),i=r.call(this,e),i.state={imageStatus:LOADING},i.handleImageLoad=i.handleImageLoad.bind(_assertThisInitialized(i)),i.handleImageError=i.handleImageError.bind(_assertThisInitialized(i)),i.image=null,i}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"componentDidMount\",value:function(){t.subscribeMasterSpinner(this.props),this.initImage()}},{key:\"componentDidUpdate\",value:function(e){e.src!==this.props.src&&(t.unsubscribeMasterSpinner(e),t.subscribeMasterSpinner(this.props),this.initImage())}},{key:\"componentWillUnmount\",value:function(){t.unsubscribeMasterSpinner(this.props),this.image.removeEventListener(\"load\",this.handleImageLoad),this.image.removeEventListener(\"error\",this.handleImageError),this.image=null}},{key:\"initImage\",value:function(){if(this.setState({imageStatus:LOADING}),this.image=document.createElement(\"img\"),this.image.addEventListener(\"load\",this.handleImageLoad,!1),this.image.addEventListener(\"error\",this.handleImageError,!1),this.image.src=this.props.src,this.image.readyState||this.image.complete){var e=this.image.src;this.image.src=\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==\",this.image.src=e}}},{key:\"handleImageLoad\",value:function(e){this.setState({imageStatus:SUCCESS}),this.props.hasMasterSpinner&&this.props.carouselStore.masterSpinnerSuccess(this.props.src),this.props.onLoad&&this.props.onLoad(e)}},{key:\"handleImageError\",value:function(e){this.setState({imageStatus:ERROR}),this.props.hasMasterSpinner&&this.props.carouselStore.masterSpinnerError(this.props.src),this.props.onError&&this.props.onError(e)}},{key:\"tempTag\",value:function(){return\"img\"===this.props.tag?\"div\":this.props.tag}},{key:\"customRender\",value:function(e){return\"function\"==typeof this.props[e]?this.props[e]():this.props.children}},{key:\"renderLoading\",value:function(e){var t=this.tempTag(),r=cn([s$7.image,s$7.imageLoading,\"carousel__image\",this.props.isBgImage&&\"carousel__image--with-background\",\"carousel__image--loading\",this.props.className]);return React.createElement(t,_extends({className:r},e),this.customRender(\"renderLoading\"))}},{key:\"renderError\",value:function(e){var t=this.tempTag(),r=cn([s$7.image,s$7.imageError,\"carousel__image\",this.props.isBgImage&&\"carousel__image--with-background\",\"carousel__image--error\",this.props.className]);return React.createElement(t,_extends({className:r},e),this.customRender(\"renderError\"))}},{key:\"renderSuccess\",value:function(e){var t=this.props,r=t.style,i=t.tag,n=cn([s$7.image,\"carousel__image\",this.props.isBgImage&&\"carousel__image--with-background\",\"carousel__image--success\",this.props.className]),s=_extends({},r),a=e;if(\"img\"!==i){var o=e.src;e.alt;a=_objectWithoutProperties(e,_excluded$8),s=_extends({},r,{backgroundImage:'url(\"'.concat(o,'\")'),backgroundSize:\"cover\"})}return React.createElement(i,_extends({className:n,style:s},a),this.props.children)}},{key:\"render\",value:function(){var e=this.props,t=(e.carouselStore,e.children,e.className,e.hasMasterSpinner,e.isBgImage,e.onError,e.onLoad,e.renderError,e.renderLoading,e.style,e.tag,_objectWithoutProperties(e,_excluded2$1));switch(this.state.imageStatus){case LOADING:return this.renderLoading(t);case SUCCESS:return this.renderSuccess(t);case ERROR:return this.renderError(t);default:throw new Error(\"unknown value for this.state.imageStatus\")}}}],[{key:\"subscribeMasterSpinner\",value:function(e){e.hasMasterSpinner&&e.carouselStore.subscribeMasterSpinner(e.src)}},{key:\"unsubscribeMasterSpinner\",value:function(e){e.hasMasterSpinner&&e.carouselStore.unsubscribeMasterSpinner(e.src)}}]),t}(React.Component);_defineProperty(Image,\"propTypes\",{alt:propTypes.string,carouselStore:propTypes.object.isRequired,children:CarouselPropTypes.children,className:propTypes.string,hasMasterSpinner:propTypes.bool.isRequired,isBgImage:CarouselPropTypes.isBgImage,onError:propTypes.func,onLoad:propTypes.func,renderError:propTypes.func,renderLoading:propTypes.func,src:propTypes.string.isRequired,style:propTypes.object,tag:propTypes.string}),_defineProperty(Image,\"defaultProps\",{alt:\"\",children:null,className:null,isBgImage:!1,onError:null,onLoad:null,renderError:null,renderLoading:null,style:null,tag:\"img\"});var Image$1=WithStore(Image,function(e){return{hasMasterSpinner:e.hasMasterSpinner,orientation:e.orientation}}),s$8={spinner:\"spinner___27VUp\",spin:\"spin___S3UuE\"},_excluded$9=[\"className\"],_class$7,_temp$7,Spinner=(_temp$7=_class$7=function(e){function t(){return _classCallCheck(this,t),r.apply(this,arguments)}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"render\",value:function(){var e=this.props,t=e.className,r=_objectWithoutProperties(e,_excluded$9),i=cn([s$8.spinner,\"carousel__spinner\",t]);return React.createElement(\"div\",_extends({className:i},r))}}]),t}(React.PureComponent),_defineProperty(_class$7,\"propTypes\",{className:propTypes.string}),_defineProperty(_class$7,\"defaultProps\",{className:null}),_temp$7),s$9={container:\"container___2O72F\",overlay:\"overlay___IV4qY\",hover:\"hover___MYy31\",zoom:\"zoom___3kqYk\",loading:\"loading___1pvNI\",imageLoadingSpinnerContainer:\"imageLoadingSpinnerContainer___3UIPD\"},_excluded$a=[\"alt\",\"bgImageProps\",\"bgImageTag\",\"carouselStore\",\"className\",\"imageClassName\",\"overlayClassName\",\"isPinchZoomEnabled\",\"spinner\",\"src\",\"srcZoomed\",\"tag\"],_class$8,_temp$8,MOUSE_SCALE=2,MAX_TOUCH_SCALE=3,ImageWithZoom=(_temp$8=_class$8=function(e){function t(e){var i;return _classCallCheck(this,t),i=r.call(this,e),i.state={isImageLoading:!0,isHovering:!1,isZooming:!1,x:null,y:null,scale:1},i.tpCache={},i.handleImageComplete=i.handleImageComplete.bind(_assertThisInitialized(i)),i.handleOnMouseMove=i.handleOnMouseMove.bind(_assertThisInitialized(i)),i.handleOnMouseOut=i.handleOnMouseOut.bind(_assertThisInitialized(i)),i.handleOnMouseOver=i.handleOnMouseOver.bind(_assertThisInitialized(i)),i.handleOnTouchEnd=i.handleOnTouchEnd.bind(_assertThisInitialized(i)),i.handleOnTouchMove=i.handleOnTouchMove.bind(_assertThisInitialized(i)),i.handleOnTouchStart=i.handleOnTouchStart.bind(_assertThisInitialized(i)),i}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"componentDidUpdate\",value:function(e,t){!1===t.isZooming&&!0===this.state.isZooming&&this.props.carouselStore.setStoreState({isPageScrollLocked:!0}),!0===t.isZooming&&!1===this.state.isZooming&&this.props.carouselStore.setStoreState({isPageScrollLocked:!1})}},{key:\"handleImageComplete\",value:function(){this.setState({isImageLoading:!1})}},{key:\"handleOnMouseOver\",value:function(){this.state.isZooming||this.setState({isHovering:!0,scale:MOUSE_SCALE})}},{key:\"handleOnMouseOut\",value:function(){this.state.isZooming||this.setState({isHovering:!1,scale:1})}},{key:\"handleOnMouseMove\",value:function(e){if(!this.state.isZooming){var t=pct(e.nativeEvent.offsetX/e.target.offsetWidth*100),r=pct(e.nativeEvent.offsetY/e.target.offsetHeight*100);this.setState({x:t,y:r})}}},{key:\"handleOnTouchStart\",value:function(e){var t=this;this.props.isPinchZoomEnabled&&(_toConsumableArray(e.targetTouches).forEach(function(e){t.tpCache[e.identifier]={clientX:e.clientX,clientY:e.clientY}}),this.setState(function(e){return{isZooming:e.isZooming||Object.keys(t.tpCache).length>1}}))}},{key:\"handleOnTouchMove\",value:function(e){var r=this;if(this.state.isZooming){e.persist();var i=_toConsumableArray(e.targetTouches).filter(function(e){return r.tpCache[e.identifier]}).slice(0,2);if(2===i.length){e.stopPropagation();var n=e.target.getBoundingClientRect(),s=i[0].identifier,a=i[1].identifier,o={x1:this.tpCache[s].clientX,y1:this.tpCache[s].clientY,x2:this.tpCache[a].clientX,y2:this.tpCache[a].clientY};o.distance=t.distanceBetweenTwoTouches(_objectSpread2({},o));var l=t.midpointBetweenTwoTouches(_objectSpread2({},o));o.cx=l.x,o.cy=l.y;var c={x1:i[0].clientX,y1:i[0].clientY,x2:i[1].clientX,y2:i[1].clientY};c.distance=t.distanceBetweenTwoTouches(_objectSpread2({},c));var u=t.midpointBetweenTwoTouches(_objectSpread2({},c));c.cx=u.x,c.cy=u.y;var p=pct(boundedRange({min:0,max:100,x:(c.cx-n.left)/n.width*100})),d=pct(boundedRange({min:0,max:100,x:(c.cy-n.top)/n.height*100})),h=function(e){return boundedRange({min:1,max:MAX_TOUCH_SCALE,x:e.scale+(c.distance-o.distance)/100})};this.setState(function(e){return{isZooming:1!==h(e),scale:h(e),x:p,y:d}})}}}},{key:\"handleOnTouchEnd\",value:function(e){var t=this;this.props.isPinchZoomEnabled&&(_toConsumableArray(e.changedTouches).forEach(function(e){delete t.tpCache[e.identifier]}),0===Object.keys(this.tpCache).length&&this.setState({isZooming:!1}))}},{key:\"renderLoading\",value:function(){if(this.state.isImageLoading){var e=this.props.spinner;return React.createElement(\"div\",{className:cn([s$9.imageLoadingSpinnerContainer,\"carousel__image-loading-spinner-container\"])},e&&e(),!e&&React.createElement(Spinner,null))}return null}},{key:\"render\",value:function(){var e=this.props,t=e.alt,r=e.bgImageProps,i=e.bgImageTag,n=(e.carouselStore,e.className),s=e.imageClassName,a=e.overlayClassName,o=(e.isPinchZoomEnabled,e.spinner,e.src),l=e.srcZoomed,c=e.tag,u=_objectWithoutProperties(e,_excluded$a),p=cn([s$9.container,n]),d=cn([s$9.image,\"carousel__zoom-image\",s]),h=cn([s$9.overlay,\"carousel__zoom-image-overlay\",this.state.isHovering&&s$9.hover,this.state.isZooming&&s$9.zoom,this.state.isHovering&&\"carousel__zoom-image-overlay--hovering\",this.state.isZooming&&\"carousel__zoom-image-overlay--zooming\",a]),y={};return(this.state.isHovering||this.state.isZooming)&&(y.transformOrigin=\"\".concat(this.state.x,\" \").concat(this.state.y),y.transform=\"scale(\".concat(this.state.scale,\")\")),React.createElement(c,_extends({className:p},u),React.createElement(Image$1,_extends({alt:t,className:d,tag:i,src:o,onLoad:this.handleImageComplete,onError:this.handleImageComplete},r)),React.createElement(Image$1,{className:h,tag:\"div\",src:l||o,style:y,isBgImage:!0,onFocus:this.handleOnMouseOver,onMouseOver:this.handleOnMouseOver,onBlur:this.handleOnMouseOut,onMouseOut:this.handleOnMouseOut,onMouseMove:this.handleOnMouseMove,onTouchStart:this.handleOnTouchStart,onTouchEnd:this.handleOnTouchEnd,onTouchMove:this.handleOnTouchMove}),this.renderLoading())}}],[{key:\"midpointBetweenTwoTouches\",value:function(e){var t=e.x1,r=e.y1;return{x:(t+e.x2)/2,y:(r+e.y2)/2}}},{key:\"distanceBetweenTwoTouches\",value:function(e){var t=e.x1,r=e.y1,i=e.x2,n=e.y2;return Math.sqrt(Math.pow(i-t,2)+Math.pow(n-r,2))}}]),t}(React.Component),_defineProperty(_class$8,\"propTypes\",{alt:propTypes.string,bgImageProps:propTypes.object,bgImageTag:propTypes.string,carouselStore:propTypes.object.isRequired,className:propTypes.string,imageClassName:propTypes.string,overlayClassName:propTypes.string,spinner:propTypes.func,src:propTypes.string.isRequired,srcZoomed:propTypes.string,tag:propTypes.string,isPinchZoomEnabled:propTypes.bool}),_defineProperty(_class$8,\"defaultProps\",{alt:void 0,bgImageProps:{},bgImageTag:\"div\",className:null,imageClassName:null,overlayClassName:null,isPinchZoomEnabled:!0,spinner:null,srcZoomed:null,tag:\"div\"}),_temp$8),index$6=WithStore(ImageWithZoom,function(){return{}}),s$a={slide:\"slide___3-Nqo\",slideHorizontal:\"slideHorizontal___1NzNV\",slideInner:\"slideInner___2mfX9\",focusRing:\"focusRing___1airF\"},_excluded$b=[\"ariaLabel\",\"carouselStore\",\"children\",\"className\",\"classNameHidden\",\"classNameVisible\",\"currentSlide\",\"index\",\"innerClassName\",\"innerTag\",\"naturalSlideHeight\",\"naturalSlideWidth\",\"onBlur\",\"onFocus\",\"orientation\",\"slideSize\",\"style\",\"tabIndex\",\"tag\",\"totalSlides\",\"visibleSlides\",\"isIntrinsicHeight\"],_class$9,_temp$9,Slide=(_temp$9=_class$9=function(e){function t(e){var i;return _classCallCheck(this,t),i=r.call(this,e),i.handleOnFocus=i.handleOnFocus.bind(_assertThisInitialized(i)),i.handleOnBlur=i.handleOnBlur.bind(_assertThisInitialized(i)),i.state={focused:!1},i}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"isVisible\",value:function(){var e=this.props,t=e.currentSlide,r=e.index,i=e.visibleSlides;return r>=t&&r<t+i}},{key:\"handleOnFocus\",value:function(e){var t=this,r=this.props.onFocus;this.setState({focused:!0},function(){null!==r&&r.call(t,e)})}},{key:\"handleOnBlur\",value:function(e){var t=this,r=this.props.onBlur;this.setState({focused:!1},function(){null!==r&&r.call(t,e)})}},{key:\"renderFocusRing\",value:function(){return this.state.focused?React.createElement(\"div\",{className:[s$a.focusRing,\"carousel__slide-focus-ring\"].join(\" \")}):null}},{key:\"render\",value:function(){var e=this,t=this.props,r=t.ariaLabel,i=(t.carouselStore,t.children,t.className),n=t.classNameHidden,s=t.classNameVisible,a=(t.currentSlide,t.index,t.innerClassName),o=t.innerTag,l=t.naturalSlideHeight,c=t.naturalSlideWidth,u=(t.onBlur,t.onFocus,t.orientation),p=t.slideSize,d=t.style,h=t.tabIndex,y=t.tag,S=t.totalSlides,m=(t.visibleSlides,t.isIntrinsicHeight),b=_objectWithoutProperties(t,_excluded$b),f={};\"horizontal\"===u?(f.width=pct(p),f.paddingBottom=pct(100*l/(c*S))):(f.width=pct(100),f.paddingBottom=pct(100*l/c));var g={};m&&(\"horizontal\"===u?f.height=\"unset\":f.width=\"unset\",f.paddingBottom=\"unset\",g.position=\"unset\");var v=_extends({},f,d),_=this.isVisible(),T=cn([s$a.slide,\"horizontal\"===u&&s$a.slideHorizontal,\"carousel__slide\",this.state.focused&&\"carousel__slide--focused\",_&&s,_&&\"carousel__slide--visible\",!_&&n,!_&&\"carousel__slide--hidden\",i]),k=cn([s$a.slideInner,\"carousel__inner-slide\",a]),C=this.isVisible()?0:-1,O=\"number\"==typeof h?h:C;return React.createElement(y,_extends({ref:function(t){e.tagRef=t},tabIndex:O,\"aria-selected\":this.isVisible(),\"aria-label\":r,role:\"option\",onFocus:this.handleOnFocus,onBlur:this.handleOnBlur,className:T,style:v},b),React.createElement(o,{ref:function(t){e.innerTagRef=t},className:k,style:g},this.props.children,this.renderFocusRing()))}}]),t}(React.PureComponent),_defineProperty(_class$9,\"propTypes\",{ariaLabel:propTypes.string,carouselStore:propTypes.object,children:CarouselPropTypes.children,className:propTypes.string,classNameHidden:propTypes.string,classNameVisible:propTypes.string,currentSlide:propTypes.number.isRequired,index:propTypes.number.isRequired,innerClassName:propTypes.string,innerTag:propTypes.string,naturalSlideHeight:propTypes.number.isRequired,naturalSlideWidth:propTypes.number.isRequired,onBlur:propTypes.func,onFocus:propTypes.func,orientation:CarouselPropTypes.orientation.isRequired,slideSize:propTypes.number.isRequired,style:propTypes.object,tabIndex:propTypes.number,tag:propTypes.string,totalSlides:propTypes.number.isRequired,visibleSlides:propTypes.number.isRequired,isIntrinsicHeight:propTypes.bool}),_defineProperty(_class$9,\"defaultProps\",{ariaLabel:\"slide\",carouselStore:null,children:null,className:null,classNameHidden:null,classNameVisible:null,innerClassName:null,innerTag:\"div\",onBlur:null,onFocus:null,style:{},tabIndex:null,tag:\"div\",isIntrinsicHeight:!1}),_temp$9),index$7=WithStore(Slide,function(e){return{currentSlide:e.currentSlide,naturalSlideHeight:e.naturalSlideHeight,naturalSlideWidth:e.naturalSlideWidth,orientation:e.orientation,slideSize:e.slideSize,totalSlides:e.totalSlides,visibleSlides:e.visibleSlides,isIntrinsicHeight:e.isIntrinsicHeight}}),GetScrollParent=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:\"parents\",value:function(e,t){return null===e.parentNode?t:this.parents(e.parentNode,t.concat([e]))}},{key:\"scrollParent\",value:function(t){for(var r=this.parents(t.parentNode,[]),i=0;i<r.length;i+=1)if(e.scroll(r[i]))return r[i];return document.scrollingElement||document.documentElement}},{key:\"getScrollParent\",value:function(t){return e.isNodeValid(t)?this.scrollParent(t):null}}],[{key:\"style\",value:function(e,t){return getComputedStyle(e,null).getPropertyValue(t)}},{key:\"overflow\",value:function(t){return e.style(t,\"overflow\")+e.style(t,\"overflow-y\")+e.style(t,\"overflow-x\")}},{key:\"scroll\",value:function(t){return/(auto|scroll)/.test(e.overflow(t))}},{key:\"isNodeValid\",value:function(e){return e instanceof HTMLElement||e instanceof SVGElement}}]),e}(),s$b={horizontalSlider:\"horizontalSlider___281Ls\",horizontalSliderTray:\"horizontalSliderTray___1L-0W\",verticalSlider:\"verticalSlider___34ZFD\",verticalSliderTray:\"verticalSliderTray___267D8\",verticalTray:\"verticalTray___12Key\",verticalSlideTrayWrap:\"verticalSlideTrayWrap___2nO7o\",sliderTray:\"sliderTray___-vHFQ\",sliderAnimation:\"sliderAnimation___300FY\",masterSpinnerContainer:\"masterSpinnerContainer___1Z6hB\"},_excluded$c=[\"ariaLabel\",\"carouselStore\",\"children\",\"className\",\"classNameAnimation\",\"classNameTray\",\"classNameTrayWrap\",\"currentSlide\",\"disableAnimation\",\"disableKeyboard\",\"dragEnabled\",\"hasMasterSpinner\",\"interval\",\"isPageScrollLocked\",\"isPlaying\",\"lockOnWindowScroll\",\"masterSpinnerFinished\",\"moveThreshold\",\"naturalSlideHeight\",\"naturalSlideWidth\",\"onMasterSpinner\",\"orientation\",\"playDirection\",\"privateUnDisableAnimation\",\"slideSize\",\"slideTraySize\",\"spinner\",\"style\",\"tabIndex\",\"totalSlides\",\"touchEnabled\",\"trayProps\",\"trayTag\",\"visibleSlides\",\"isIntrinsicHeight\"],_excluded2$2=[\"dragStep\",\"step\",\"infinite\"],_excluded3=[\"className\",\"onClickCapture\",\"onMouseDown\",\"onTouchCancel\",\"onTouchEnd\",\"onTouchMove\",\"onTouchStart\",\"ref\",\"style\"],_class$a,_temp$a,Slider=(_temp$a=_class$a=function(e){function t(e){var i;return _classCallCheck(this,t),i=r.call(this,e),i.getSliderRef=i.getSliderRef.bind(_assertThisInitialized(i)),i.handleDocumentScroll=i.handleDocumentScroll.bind(_assertThisInitialized(i)),i.handleOnClickCapture=i.handleOnClickCapture.bind(_assertThisInitialized(i)),i.handleOnKeyDown=i.handleOnKeyDown.bind(_assertThisInitialized(i)),i.handleOnMouseDown=i.handleOnMouseDown.bind(_assertThisInitialized(i)),i.handleOnMouseMove=i.handleOnMouseMove.bind(_assertThisInitialized(i)),i.handleOnMouseUp=i.handleOnMouseUp.bind(_assertThisInitialized(i)),i.handleOnTouchCancel=i.handleOnTouchCancel.bind(_assertThisInitialized(i)),i.handleOnTouchEnd=i.handleOnTouchEnd.bind(_assertThisInitialized(i)),i.handleOnTouchMove=i.handleOnTouchMove.bind(_assertThisInitialized(i)),i.handleOnTouchStart=i.handleOnTouchStart.bind(_assertThisInitialized(i)),i.playBackward=i.playBackward.bind(_assertThisInitialized(i)),i.playForward=i.playForward.bind(_assertThisInitialized(i)),i.callCallback=i.callCallback.bind(_assertThisInitialized(i)),i.state={cancelNextClick:!1,deltaX:0,deltaY:0,isBeingMouseDragged:!1,isBeingTouchDragged:!1,startX:0,startY:0},i.interval=null,i.isDocumentScrolling=null,i.moveTimer=null,i.originalOverflow=null,i.scrollParent=null,i.scrollStopTimer=null,i}_inherits(t,e);var r=_createSuper(t);return _createClass(t,[{key:\"componentDidMount\",value:function(){this.props.lockOnWindowScroll&&window.addEventListener(\"scroll\",this.handleDocumentScroll,!1),document.documentElement.addEventListener(\"mouseleave\",this.handleOnMouseUp,!1),document.documentElement.addEventListener(\"mousemove\",this.handleOnMouseMove,!1),document.documentElement.addEventListener(\"mouseup\",this.handleOnMouseUp,!1),this.props.isPlaying&&this.play()}},{key:\"componentDidUpdate\",value:function(e){!e.isPlaying&&this.props.isPlaying&&this.play(),e.isPlaying&&!this.props.isPlaying&&this.stop(),!e.isPageScrollLocked&&this.props.isPageScrollLocked&&this.lockScroll(),e.isPageScrollLocked&&!this.props.isPageScrollLocked&&this.unlockScroll(),!1===e.privateUnDisableAnimation&&!0===this.props.privateUnDisableAnimation&&this.props.carouselStore.setStoreState({privateUnDisableAnimation:!1,disableAnimation:!1})}},{key:\"componentWillUnmount\",value:function(){document.documentElement.removeEventListener(\"mouseleave\",this.handleOnMouseUp,!1),document.documentElement.removeEventListener(\"mousemove\",this.handleOnMouseMove,!1),document.documentElement.removeEventListener(\"mouseup\",this.handleOnMouseUp,!1),window.removeEventListener(\"scroll\",this.handleDocumentScroll,!1),this.stop(),window.cancelAnimationFrame.call(window,this.moveTimer),window.clearTimeout(this.scrollStopTimer),this.isDocumentScrolling=null,this.moveTimer=null,this.scrollStopTimer=null}},{key:\"getSliderRef\",value:function(e){this.sliderTrayElement=e}},{key:\"fakeOnDragStart\",value:function(e){var t=e.screenX,r=e.screenY,i=e.touchDrag,n=void 0!==i&&i,s=e.mouseDrag,a=void 0!==s&&s;this.props.carouselStore.setStoreState({isPlaying:!1}),window.cancelAnimationFrame.call(window,this.moveTimer),\"vertical\"===this.props.orientation&&this.props.carouselStore.setStoreState({isPageScrollLocked:!0}),this.setState({isBeingTouchDragged:n,isBeingMouseDragged:a,startX:t,startY:r})}},{key:\"fakeOnDragMove\",value:function(e,t){var r=this;this.moveTimer=window.requestAnimationFrame.call(window,function(){r.setState(function(r){return{deltaX:e-r.startX,deltaY:t-r.startY}})})}},{key:\"fakeOnDragEnd\",value:function(){window.cancelAnimationFrame.call(window,this.moveTimer),this.computeCurrentSlide(),\"vertical\"===this.props.orientation&&this.props.carouselStore.setStoreState({isPageScrollLocked:!1}),this.setState({deltaX:0,deltaY:0,isBeingTouchDragged:!1,isBeingMouseDragged:!1}),this.isDocumentScrolling=!this.props.lockOnWindowScroll&&null}},{key:\"callCallback\",value:function(e,t){var r=this.props.trayProps;r&&\"function\"==typeof r[e]&&(t.persist(),r[e](t))}},{key:\"handleOnMouseDown\",value:function(e){if(!this.props.dragEnabled)return void this.callCallback(\"onMouseDown\",e);e.preventDefault(),this.fakeOnDragStart({screenX:e.screenX,screenY:e.screenY,mouseDrag:!0}),this.callCallback(\"onMouseDown\",e)}},{key:\"handleOnMouseMove\",value:function(e){this.state.isBeingMouseDragged&&(this.setState({cancelNextClick:!0}),e.preventDefault(),this.fakeOnDragMove(e.screenX,e.screenY))}},{key:\"handleOnMouseUp\",value:function(e){this.state.isBeingMouseDragged&&(e.preventDefault(),this.fakeOnDragEnd())}},{key:\"handleOnClickCapture\",value:function(e){if(!this.state.cancelNextClick)return void this.callCallback(\"onClickCapture\",e);e.preventDefault(),this.setState({cancelNextClick:!1}),this.callCallback(\"onClickCapture\",e)}},{key:\"handleOnTouchStart\",value:function(e){if(!this.props.touchEnabled)return void this.callCallback(\"onTouchStart\",e);\"vertical\"===this.props.orientation&&e.preventDefault();var t=e.targetTouches[0];this.fakeOnDragStart({screenX:t.screenX,screenY:t.screenY,touchDrag:!0}),this.callCallback(\"onTouchStart\",e)}},{key:\"handleDocumentScroll\",value:function(){var e=this;this.props.touchEnabled&&(this.isDocumentScrolling=!0,window.clearTimeout(this.scrollStopTimer),this.scrollStopTimer=window.setTimeout(function(){e.isDocumentScrolling=!1},66))}},{key:\"handleOnTouchMove\",value:function(e){if(!this.props.touchEnabled||this.props.lockOnWindowScroll&&this.isDocumentScrolling)return void this.callCallback(\"onTouchMove\",e);window.cancelAnimationFrame.call(window,this.moveTimer);var t=e.targetTouches[0];t&&(this.fakeOnDragMove(t.screenX,t.screenY),this.callCallback(\"onTouchMove\",e))}},{key:\"forward\",value:function(){var e=this.props,t=e.currentSlide,r=e.step,i=e.totalSlides,n=e.visibleSlides;return Math.min(t+r,i-n)}},{key:\"backward\",value:function(){var e=this.props,t=e.currentSlide,r=e.step;return Math.max(t-r,0)}},{key:\"handleOnKeyDown\",value:function(e){var t=e.keyCode,r=this.props,i=r.carouselStore,n=r.currentSlide,s=r.disableKeyboard,a=r.totalSlides,o=r.visibleSlides,l={};!0===s||a<=o||(37===t&&(e.preventDefault(),this.focus(),l.currentSlide=Math.max(0,n-1),l.isPlaying=!1),39===t&&(e.preventDefault(),this.focus(),l.currentSlide=Math.min(a-o,n+1),l.isPlaying=!1),i.setStoreState(l))}},{key:\"playForward\",value:function(){var e=this.props,t=e.carouselStore,r=e.currentSlide;t.setStoreState({currentSlide:this.forward()===r?0:this.forward()})}},{key:\"playBackward\",value:function(){var e=this.props,t=e.carouselStore,r=e.currentSlide,i=e.totalSlides,n=e.visibleSlides;t.setStoreState({currentSlide:this.backward()===r?i-n:this.backward()})}},{key:\"play\",value:function(){var e=this.props.playDirection;this.interval=setInterval(\"forward\"===e?this.playForward:this.playBackward,this.props.interval)}},{key:\"stop\",value:function(){window.clearInterval(this.interval),this.interval=null}},{key:\"lockScroll\",value:function(){var e=new GetScrollParent;this.scrollParent=e.getScrollParent(this.sliderTrayElement),this.scrollParent&&(this.originalOverflow=this.originalOverflow||this.scrollParent.style.overflow,this.scrollParent.style.overflow=\"hidden\")}},{key:\"unlockScroll\",value:function(){this.scrollParent&&(this.scrollParent.style.overflow=this.originalOverflow,this.originalOverflow=null,this.scrollParent=null)}},{key:\"computeCurrentSlide\",value:function(){var e=t.slideSizeInPx(this.props.orientation,this.sliderTrayElement.clientWidth,this.sliderTrayElement.clientHeight,this.props.totalSlides),r=t.slidesMoved(this.props.moveThreshold,this.props.orientation,this.state.deltaX,this.state.deltaY,e,this.props.dragStep),i=this.props.totalSlides-Math.min(this.props.totalSlides,this.props.visibleSlides),n=boundedRange({min:0,max:i,x:this.props.currentSlide+r});this.props.infinite&&(this.props.currentSlide>=i&&r>0&&(n=0),0===this.props.currentSlide&&r<0&&(n=i)),this.props.carouselStore.setStoreState({currentSlide:n})}},{key:\"focus\",value:function(){this.sliderElement.focus()}},{key:\"handleOnTouchEnd\",value:function(e){this.endTouchMove(),this.callCallback(\"onTouchEnd\",e)}},{key:\"handleOnTouchCancel\",value:function(e){this.endTouchMove(),this.callCallback(\"onTouchCancel\",e)}},{key:\"endTouchMove\",value:function(){this.props.touchEnabled&&this.fakeOnDragEnd()}},{key:\"renderMasterSpinner\",value:function(){var e=this.props,t=e.hasMasterSpinner,r=e.masterSpinnerFinished,i=e.spinner;return t&&!r?(\"function\"==typeof this.props.onMasterSpinner&&this.props.onMasterSpinner(),React.createElement(\"div\",{className:cn([s$b.masterSpinnerContainer,\"carousel__master-spinner-container\"])},i&&i(),!i&&React.createElement(Spinner,null))):null}},{key:\"render\",value:function(){var e=this,t=this.props,r=t.ariaLabel,i=(t.carouselStore,t.children),n=t.className,s=t.classNameAnimation,a=t.classNameTray,o=t.classNameTrayWrap,l=t.currentSlide,c=t.disableAnimation,u=(t.disableKeyboard,t.dragEnabled,t.hasMasterSpinner,t.interval,t.isPageScrollLocked,t.isPlaying,t.lockOnWindowScroll,t.masterSpinnerFinished,t.moveThreshold,t.naturalSlideHeight),p=t.naturalSlideWidth,d=(t.onMasterSpinner,t.orientation),h=(t.playDirection,t.privateUnDisableAnimation,t.slideSize),y=t.slideTraySize,S=(t.spinner,t.style),m=t.tabIndex,b=(t.totalSlides,t.touchEnabled,t.trayProps),f=t.trayTag,g=t.visibleSlides,v=t.isIntrinsicHeight,_=_objectWithoutProperties(t,_excluded$c),T=_extends({},S),k={};\"vertical\"===d&&(k.height=0,k.paddingBottom=pct(100*u*g/p),k.width=pct(100));var C={},O=pct(h*l*-1);(this.state.isBeingTouchDragged||this.state.isBeingMouseDragged||c)&&(C.transition=\"none\"),v&&(C.display=\"flex\",C.alignItems=\"stretch\"),\"vertical\"===d?(C.transform=\"translateY(\".concat(O,\") translateY(\").concat(this.state.deltaY,\"px)\"),C.width=pct(100),C.flexDirection=\"column\"):(C.width=pct(y),C.transform=\"translateX(\".concat(O,\") translateX(\").concat(this.state.deltaX,\"px)\"),C.flexDirection=\"row\");var P=cn([\"vertical\"===d?s$b.verticalSlider:s$b.horizontalSlider,\"carousel__slider\",\"vertical\"===d?\"carousel__slider--vertical\":\"carousel__slider--horizontal\",n]),E=cn([s$b.sliderTrayWrap,\"carousel__slider-tray-wrapper\",\"vertical\"===d?s$b.verticalSlideTrayWrap:s$b.horizontalTrayWrap,\"vertical\"===d?\"carousel__slider-tray-wrap--vertical\":\"carousel__slider-tray-wrap--horizontal\",o]),M=cn([s$b.sliderTray,s||s$b.sliderAnimation,\"carousel__slider-tray\",\"vertical\"===d?s$b.verticalTray:s$b.horizontalTray,\"vertical\"===d?\"carousel__slider-tray--vertical\":\"carousel__slider-tray--horizontal\",a]),w=null!==m?m:0,x=(_.dragStep,_.step,_.infinite,_objectWithoutProperties(_,_excluded2$2)),R=(b.className,b.onClickCapture,b.onMouseDown,b.onTouchCancel,b.onTouchEnd,b.onTouchMove,b.onTouchStart,b.ref,b.style,_objectWithoutProperties(b,_excluded3));return React.createElement(\"div\",_extends({ref:function(t){e.sliderElement=t},className:P,\"aria-live\":\"polite\",\"aria-label\":r,style:T,tabIndex:w,onKeyDown:this.handleOnKeyDown,role:\"listbox\"},x),React.createElement(\"div\",{className:E,style:k},React.createElement(f,_extends({ref:this.getSliderRef,className:M,style:C,onTouchStart:this.handleOnTouchStart,onTouchMove:this.handleOnTouchMove,onTouchEnd:this.handleOnTouchEnd,onTouchCancel:this.handleOnTouchCancel,onMouseDown:this.handleOnMouseDown,onClickCapture:this.handleOnClickCapture},R),i),this.renderMasterSpinner()))}}],[{key:\"slideSizeInPx\",value:function(e,t,r,i){return(\"horizontal\"===e?t:r)/i}},{key:\"slidesMoved\",value:function(e,t,r,i,n,s){var a=\"horizontal\"===t?r:i,o=Math.abs(Math.round(a/n)),l=Math.abs(a)>=n*e?s:0,c=Math.max(l,o);if(a<0)return c;var u=-c;return 0===u?0:u}}]),t}(React.Component),_defineProperty(_class$a,\"propTypes\",{ariaLabel:propTypes.string,carouselStore:propTypes.object.isRequired,children:propTypes.node.isRequired,className:propTypes.string,classNameAnimation:propTypes.string,classNameTray:propTypes.string,classNameTrayWrap:propTypes.string,currentSlide:propTypes.number.isRequired,disableAnimation:propTypes.bool,disableKeyboard:propTypes.bool,dragEnabled:propTypes.bool.isRequired,dragStep:propTypes.number,hasMasterSpinner:propTypes.bool.isRequired,infinite:propTypes.bool,interval:propTypes.number.isRequired,isPageScrollLocked:propTypes.bool.isRequired,isPlaying:propTypes.bool.isRequired,lockOnWindowScroll:propTypes.bool.isRequired,masterSpinnerFinished:propTypes.bool.isRequired,moveThreshold:propTypes.number,naturalSlideHeight:propTypes.number.isRequired,naturalSlideWidth:propTypes.number.isRequired,onMasterSpinner:propTypes.func,orientation:CarouselPropTypes.orientation.isRequired,playDirection:CarouselPropTypes.direction.isRequired,privateUnDisableAnimation:propTypes.bool,slideSize:propTypes.number.isRequired,slideTraySize:propTypes.number.isRequired,spinner:propTypes.func,step:propTypes.number.isRequired,style:propTypes.object,tabIndex:propTypes.number,totalSlides:propTypes.number.isRequired,touchEnabled:propTypes.bool.isRequired,trayProps:propTypes.shape({className:propTypes.string,onClickCapture:propTypes.func,onMouseDown:propTypes.func,onTouchCancel:propTypes.func,onTouchEnd:propTypes.func,onTouchMove:propTypes.func,onTouchStart:propTypes.func,ref:propTypes.shape({}),style:propTypes.string}),trayTag:propTypes.string,visibleSlides:propTypes.number,isIntrinsicHeight:propTypes.bool}),_defineProperty(_class$a,\"defaultProps\",{ariaLabel:\"slider\",className:null,classNameAnimation:null,classNameTray:null,classNameTrayWrap:null,disableAnimation:!1,disableKeyboard:!1,dragStep:1,infinite:!1,moveThreshold:.1,onMasterSpinner:null,privateUnDisableAnimation:!1,spinner:null,style:{},tabIndex:null,trayProps:{},trayTag:\"div\",visibleSlides:1,isIntrinsicHeight:!1}),_temp$a),index$8=WithStore(Slider,function(e){return{currentSlide:e.currentSlide,disableAnimation:e.disableAnimation,privateUnDisableAnimation:e.privateUnDisableAnimation,disableKeyboard:e.disableKeyboard,dragEnabled:e.dragEnabled,hasMasterSpinner:e.hasMasterSpinner,infinite:e.infinite,interval:e.interval,isPageScrollLocked:e.isPageScrollLocked,isPlaying:e.isPlaying,lockOnWindowScroll:e.lockOnWindowScroll,masterSpinnerFinished:e.masterSpinnerFinished,naturalSlideHeight:e.naturalSlideHeight,naturalSlideWidth:e.naturalSlideWidth,orientation:e.orientation,playDirection:e.playDirection,slideSize:e.slideSize,slideTraySize:e.slideTraySize,step:e.step,dragStep:e.dragStep,totalSlides:e.totalSlides,touchEnabled:e.touchEnabled,visibleSlides:e.visibleSlides,isIntrinsicHeight:e.isIntrinsicHeight}});export{index as ButtonBack,index$1 as ButtonFirst,index$3 as ButtonLast,index$2 as ButtonNext,index$4 as ButtonPlay,Context as CarouselContext,CarouselProvider,Dot$1 as Dot,index$5 as DotGroup,Image$1 as Image,index$6 as ImageWithZoom,index$7 as Slide,index$8 as Slider,Spinner,Store,WithStore};\n//# sourceMappingURL=index.es.js.map\n","/* eslint-disable react/no-array-index-key */\n// Libraries\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { Dot, WithStore } from 'pure-react-carousel';\n\n// Utilities\nimport { clamp } from 'common/utils/helpers';\n\nconst ROW_MOVEMENT_FACTOR = 2;\nconst THUMBNAIL_EXPOSE_FACTOR = 3;\n\nexport class Thumbnails extends Component {\n  // eslint-disable-next-line react/static-property-placement\n  static propTypes = {\n    images: PropTypes.arrayOf(\n      PropTypes.shape({\n        src: PropTypes.string.isRequired,\n        thumbnailSrc: PropTypes.string.isRequired,\n        title: PropTypes.string,\n        description: PropTypes.string,\n      })\n    ).isRequired,\n    currentSlide: PropTypes.number.isRequired,\n    t: PropTypes.func.isRequired,\n  };\n\n  // eslint-disable-next-line react/state-in-constructor\n  state = {\n    offset: 0,\n  };\n\n  containerRef = createRef();\n\n  rowRef = createRef();\n\n  componentDidUpdate(prevProps) {\n    const { currentSlide } = this.props;\n\n    if (currentSlide !== prevProps.currentSlide) {\n      this.handleSlideChange(prevProps.currentSlide);\n    }\n  }\n\n  get containerWidth() {\n    return this.containerRef.current.getBoundingClientRect().width;\n  }\n\n  get rowWidth() {\n    return this.rowRef.current.getBoundingClientRect().width;\n  }\n\n  get thumbnailWidth() {\n    return this.rowRef.current.children[0].getBoundingClientRect().width;\n  }\n\n  get padding() {\n    return this.rowRef.current.offsetLeft;\n  }\n\n  get minOffset() {\n    if (this.rowWidth < this.containerWidth) {\n      return 0;\n    }\n\n    return -this.rowWidth - this.padding * 2 + this.containerWidth;\n  }\n\n  get maxOffset() {\n    return 0;\n  }\n\n  handleSlideChange = (prevCurrentSlide) => {\n    const { currentSlide } = this.props;\n\n    if (currentSlide < prevCurrentSlide) {\n      if (!this.exposePreviousThumbnail()) {\n        this.exposeNextThumbnail();\n      }\n    }\n\n    if (currentSlide > prevCurrentSlide) {\n      if (!this.exposeNextThumbnail()) {\n        this.exposePreviousThumbnail();\n      }\n    }\n  };\n\n  exposePreviousThumbnail = () => {\n    const { currentSlide } = this.props;\n    const { offset } = this.state;\n    const previousThumbnailRef = this.rowRef.current.children[currentSlide - 1];\n    let moved = false;\n\n    if (previousThumbnailRef) {\n      const thumbnailOffset =\n        previousThumbnailRef.offsetLeft +\n        offset +\n        (this.thumbnailWidth - this.thumbnailWidth / THUMBNAIL_EXPOSE_FACTOR) +\n        this.padding;\n\n      if (thumbnailOffset < 0) {\n        this.setOffset(offset - thumbnailOffset);\n        moved = true;\n      }\n    } else {\n      this.setOffset(this.maxOffset);\n    }\n\n    return moved;\n  };\n\n  exposeNextThumbnail = () => {\n    const { currentSlide } = this.props;\n    const { offset } = this.state;\n    const nextThumbnailRef = this.rowRef.current.children[currentSlide + 1];\n    let moved = false;\n\n    if (nextThumbnailRef) {\n      const thumbnailOffset =\n        nextThumbnailRef.offsetLeft +\n        offset +\n        this.thumbnailWidth / THUMBNAIL_EXPOSE_FACTOR +\n        this.padding;\n\n      if (thumbnailOffset > this.containerWidth) {\n        this.setOffset(offset - (thumbnailOffset - this.containerWidth));\n        moved = true;\n      }\n    } else {\n      this.setOffset(this.minOffset);\n    }\n\n    return moved;\n  };\n\n  handlePreviousClick = () => {\n    const { offset } = this.state;\n\n    this.setOffset(offset + Math.round(this.containerWidth / ROW_MOVEMENT_FACTOR));\n  };\n\n  handleNextClick = () => {\n    const { offset } = this.state;\n\n    this.setOffset(offset - Math.round(this.containerWidth / ROW_MOVEMENT_FACTOR));\n  };\n\n  setOffset = (value) => {\n    this.setState({ offset: clamp(value, this.minOffset, this.maxOffset) });\n  };\n\n  render() {\n    const { images, t } = this.props;\n    const { offset } = this.state;\n\n    return (\n      <div className=\"image-gallery__thumbnails-wrapper\">\n        <button\n          type=\"button\"\n          className=\"image-gallery__thumbnails-previous is-secondary-color\"\n          onClick={this.handlePreviousClick}\n          aria-label={t('engagement.previous')}\n        >\n          <i className=\"fas fa-angle-left\" />\n        </button>\n\n        <div className=\"image-gallery__thumbnails\" ref={this.containerRef}>\n          <div className=\"thumbnails__shadow-left\" />\n          <div className=\"thumbnails__shadow-right\" />\n          <div\n            className=\"thumbnails__row\"\n            style={{ transform: `translateX(${offset}px` }}\n            ref={this.rowRef}\n          >\n            {images.map(({ thumbnailSrc }, index) => (\n              <Dot\n                key={index}\n                slide={index}\n                className=\"thumbnails__thumbnail\"\n                onClick={this.handleThumbnailClick}\n                style={{ backgroundImage: `url('${thumbnailSrc}')` }}\n              />\n            ))}\n          </div>\n        </div>\n\n        <button\n          type=\"button\"\n          className=\"image-gallery__thumbnails-next is-secondary-color\"\n          onClick={this.handleNextClick}\n          aria-label={t('engagement.next')}\n        >\n          <i className=\"fas fa-angle-right\" />\n        </button>\n      </div>\n    );\n  }\n}\n\nexport default WithStore(Thumbnails, ({ currentSlide }) => ({ currentSlide }));\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n  CarouselProvider,\n  Slider,\n  Slide,\n  Image,\n  ButtonBack,\n  ButtonNext,\n} from 'pure-react-carousel';\nimport { withTranslation } from 'react-i18next';\n\n// Components\nimport Thumbnails from './Thumbnails';\n\nconst renderCaption = (title, description) => {\n  if (!title) {\n    return null;\n  }\n  return (\n    <div className=\"slide__caption\">\n      <p className=\"caption__title\">{title}</p>\n      {description && <p className=\"caption__description\">{description}</p>}\n    </div>\n  );\n};\n\nexport const ImageGallery = ({ images, t }) => {\n  if (!images.length) {\n    return null;\n  }\n\n  return (\n    <div className=\"image-gallery\">\n      <CarouselProvider\n        naturalSlideWidth={16}\n        naturalSlideHeight={9}\n        totalSlides={images.length}\n        visibleSlides={1}\n      >\n        <div className=\"image-gallery__slider-wrapper\">\n          <ButtonBack className=\"image-gallery__slider-previous button is-primary is-primary-background\">\n            <i className=\"fas fa-angle-left\" />\n          </ButtonBack>\n\n          <ButtonNext className=\"image-gallery__slider-next button is-primary is-primary-background\">\n            <i className=\"fas fa-angle-right\" />\n          </ButtonNext>\n\n          <Slider className=\"image-gallery__slider\">\n            {images.map(({ src, title, description }, index) => (\n              <Slide key={`${title}-${src}`} index={index} className=\"slider__slide-wrapper\">\n                <div className=\"slider__slide\">\n                  {renderCaption(title, description)}\n                  <Image src={src} className=\"slide__image\" />\n                </div>\n              </Slide>\n            ))}\n          </Slider>\n        </div>\n\n        <Thumbnails images={images} t={t} />\n      </CarouselProvider>\n    </div>\n  );\n};\n\nImageGallery.propTypes = {\n  images: PropTypes.arrayOf(\n    PropTypes.shape({\n      src: PropTypes.string.isRequired,\n      thumbnailSrc: PropTypes.string.isRequired,\n      title: PropTypes.string,\n      description: PropTypes.string,\n    })\n  ).isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withTranslation()(ImageGallery);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Utilities\nimport { determineImageSize } from 'common/utils/helpers';\n\n// Components\nimport ImageGallery from '../../ImageGallery';\n\nexport const Media = ({ media }) => {\n  if (media.length >= 2) {\n    const images = media.map(({ imageUrls, caption: title }) => ({\n      src: determineImageSize(imageUrls),\n      thumbnailSrc: determineImageSize(imageUrls),\n      title,\n    }));\n\n    return <ImageGallery images={images} />;\n  }\n\n  if (media.length === 1) {\n    return <img src={determineImageSize(media[0].imageUrls)} alt={media[0].altText} />;\n  }\n\n  return null;\n};\n\nMedia.propTypes = {\n  media: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nexport default Media;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Utilities\nimport { getMediaDataByLocale, getVariationByLocale, renderMarkdown } from 'common/utils/helpers';\n\n// Components\nimport YoutubeEmbedder from 'common/components/YoutubeEmbedder';\nimport Media from './Media';\n\nconst Content = (props) => {\n  const { content } = props;\n  const { media, video, title, description } = content;\n\n  let mediaInSelectedLocale = media;\n  let videoInSelectedLocale = video;\n\n  if (!gon.inDefaultLanguage) {\n    mediaInSelectedLocale = media?.map((m) => getMediaDataByLocale(m, gon.currentLocale));\n    videoInSelectedLocale = getVariationByLocale(video?.variations, gon.currentLocale, video);\n  }\n\n  return (\n    <div className=\"content\">\n      {title && <h2 className=\"content__title\">{title}</h2>}\n      {description && (\n        <div\n          className=\"content__description description markdown\"\n          dangerouslySetInnerHTML={{ __html: renderMarkdown(description) }}\n        />\n      )}\n      {Boolean(mediaInSelectedLocale?.length) && (\n        <div className=\"content__media\">\n          <Media media={mediaInSelectedLocale} />\n        </div>\n      )}\n      {videoInSelectedLocale && (\n        <div className=\"content__video\">\n          <YoutubeEmbedder id={videoInSelectedLocale.youtubeId} />\n        </div>\n      )}\n    </div>\n  );\n};\n\nContent.propTypes = {\n  content: PropTypes.objectOf(PropTypes.shape).isRequired,\n};\n\nexport default Content;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Enums\nimport { ValidationTypes } from 'engagement/enums/singleTextBox';\n\n// Components\nimport Input from 'common/components/Input';\n\nconst TextInput = (props) => {\n  const { id, label, placeholder, value, validationType, characterCountMax, onChange } = props;\n\n  const inputFormId = `input-${id}`;\n  const showCharacterCount = validationType === ValidationTypes.CHARACTER_COUNT;\n\n  return (\n    <div className=\"field\">\n      <label className=\"label visuallyhidden\" htmlFor={inputFormId}>\n        {label}\n      </label>\n      <div className=\"control\">\n        <Input\n          id={inputFormId}\n          data-test=\"text-input\"\n          name={inputFormId}\n          placeholder={placeholder}\n          defaultValue={value}\n          onChange={(e) => onChange(e.target.value)}\n        />\n      </div>\n      {showCharacterCount && (\n        <div\n          style={{\n            display: 'flex',\n            justifyContent: 'end',\n          }}\n        >\n          {`${value.length}/${characterCountMax}`}\n        </div>\n      )}\n    </div>\n  );\n};\n\nTextInput.propTypes = {\n  id: PropTypes.string.isRequired,\n  label: PropTypes.string,\n  placeholder: PropTypes.string,\n  value: PropTypes.string,\n  validationType: PropTypes.string,\n  characterCountMax: PropTypes.string,\n  onChange: PropTypes.func.isRequired,\n};\n\nTextInput.defaultProps = {\n  value: '',\n  placeholder: '',\n  label: '',\n  validationType: '',\n  characterCountMax: '',\n};\n\nexport default TextInput;\n","// Libraries\nimport React, { forwardRef } from 'react';\nimport classNames from 'classnames';\n\nconst Textarea = forwardRef(({ className, ...props }, ref) => (\n  <textarea className={classNames(className, 'textarea')} {...props} ref={ref} />\n));\n\nexport default Textarea;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Enums\nimport { ValidationTypes } from 'engagement/enums/singleTextBox';\n\n// Components\nimport Textarea from 'common/components/Textarea';\n\nconst TextareaInput = (props) => {\n  const { id, label, placeholder, value, validationType, characterCountMax, onChange } = props;\n\n  const inputFormId = `input-${id}`;\n  const showCharacterCount = validationType === ValidationTypes.CHARACTER_COUNT;\n\n  return (\n    <div className=\"field\">\n      <label className=\"label visuallyhidden\" htmlFor={inputFormId}>\n        {label}\n      </label>\n      <div className=\"control\">\n        <Textarea\n          data-test=\"textarea\"\n          id={inputFormId}\n          placeholder={placeholder}\n          defaultValue={value}\n          onChange={(e) => onChange(e.target.value)}\n        />\n      </div>\n      {showCharacterCount && (\n        <div\n          style={{\n            display: 'flex',\n            justifyContent: 'end',\n          }}\n        >\n          {`${value.length}/${characterCountMax}`}\n        </div>\n      )}\n    </div>\n  );\n};\n\nTextareaInput.propTypes = {\n  id: PropTypes.string.isRequired,\n  label: PropTypes.string,\n  placeholder: PropTypes.string,\n  value: PropTypes.string,\n  validationType: PropTypes.string,\n  characterCountMax: PropTypes.string,\n  onChange: PropTypes.func.isRequired,\n};\n\nTextareaInput.defaultProps = {\n  value: '',\n  placeholder: '',\n  label: '',\n  validationType: '',\n  characterCountMax: '',\n};\n\nexport default TextareaInput;\n","// Libraries\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\nimport debounce from 'lodash/debounce';\n\n// State\nimport { upsertResponseEntry } from 'state/ducks/engagement';\n\n// Enumerables\nimport InputFormat from 'engagement/enums/InputFormat';\nimport { ValidationEnable, ValidationTypes } from 'engagement/enums/singleTextBox';\n\n// Components\nimport TextInput from './inputs/TextInput';\nimport TextareaInput from './inputs/TextareaInput';\n\nconst inputComponentMap = {\n  [InputFormat.TEXT]: TextInput,\n  [InputFormat.TEXTAREA]: TextareaInput,\n};\n\nfunction BasicQuestion(props) {\n  const { question, currentQuestionValues, dispatchUpdateQuestionValue } = props;\n  const { id: questionId, title } = question;\n  const dispatch = useDispatch();\n  const dispatchDebounced = useCallback(debounce(dispatch, 300), []);\n\n  const getInputChangeHandler = (inputId) => (inputValue) => {\n    dispatchUpdateQuestionValue(questionId, { [inputId]: { value: inputValue } });\n    dispatchDebounced(upsertResponseEntry({ inputId, questionId, inputAnswer: inputValue }));\n  };\n\n  const renderInput = ({ id, format, placeholder }) => {\n    const InputComponent = inputComponentMap[format];\n    if (!InputComponent) return null;\n\n    return (\n      <InputComponent\n        key={id}\n        id={id}\n        label={title}\n        placeholder={placeholder}\n        value={currentQuestionValues?.[questionId]?.[id]?.value}\n        {...question.displayData}\n        onChange={getInputChangeHandler(id)}\n      />\n    );\n  };\n\n  return <div className=\"basic-question\">{question.inputs.map(renderInput)}</div>;\n}\n\nBasicQuestion.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n    title: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n    displayData: PropTypes.shape({\n      enableValidation: PropTypes.oneOf(Object.values(ValidationEnable)),\n      validationType: PropTypes.oneOf(Object.values(ValidationTypes)),\n      characterCountMin: PropTypes.string,\n      characterCountMax: PropTypes.string,\n    }),\n  }).isRequired,\n  currentQuestionValues: PropTypes.shape({}),\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n};\n\nBasicQuestion.defaultProps = {\n  currentQuestionValues: {},\n};\n\nexport default BasicQuestion;\n","// Libraries\nimport React, { memo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\nimport debounce from 'lodash/debounce';\nimport isString from 'lodash/isString';\n\n// State\nimport { deleteResponseEntry, upsertResponseEntry } from 'state/ducks/engagement';\n\n// Utilities\nimport { determineImageSize } from 'common/utils/helpers';\n\n// Enumerables\nimport InputType from 'engagement/enums/InputType';\n\n// Components\nimport ButtonSelectInput from 'engagement/components/inputs/ButtonSelectInput';\nimport CardSelectInput from 'engagement/components/inputs/CardSelectInput';\nimport RadioSelectInput from 'engagement/components/inputs/RadioSelectInput';\n\nexport function SingleSelectQuestion(props) {\n  const { question, currentQuestionValues, dispatchUpdateQuestionValue } = props;\n  const { id, displayData, inputs } = question;\n  const dispatch = useDispatch();\n  const dispatchDebounced = useCallback(debounce(dispatch, 300), []);\n  const questionValue = currentQuestionValues?.[id] || {};\n  const [currentInputId, currentInputValue] = Object.entries(questionValue)[0] || [];\n  const initialTextValue = isString(currentInputValue?.value) ? currentInputValue.value : '';\n\n  const onChange = (inputId, value = true) => {\n    const newQuestionValue = {};\n    if (inputId) newQuestionValue[inputId] = { value };\n\n    dispatchUpdateQuestionValue(question.id, newQuestionValue);\n\n    const params = {\n      inputId,\n      questionId: question.id,\n      inputAnswer: isString(value) ? value : undefined,\n    };\n\n    if (inputId !== currentInputId)\n      dispatch(deleteResponseEntry({ ...params, inputId: currentInputId }));\n    dispatchDebounced(upsertResponseEntry(params));\n  };\n\n  if (inputs.every(({ media }) => media)) {\n    return (\n      <div className=\"single-select-question\">\n        <CardSelectInput\n          options={inputs.map((input) => ({\n            ...input,\n            imageUrl: determineImageSize(input.media.imageUrls),\n          }))}\n          initialValue={[currentInputId]}\n          onChange={(inputIds) => onChange(inputIds[0])}\n          multipleSelection={false}\n        />\n      </div>\n    );\n  }\n\n  if (displayData && displayData.inputsType === InputType.BUTTON) {\n    return (\n      <div className=\"single-select-question\">\n        <ButtonSelectInput\n          options={inputs}\n          initialValue={[currentInputId]}\n          onChange={(inputIds) => onChange(inputIds[0])}\n          multipleSelection={false}\n        />\n      </div>\n    );\n  }\n\n  return (\n    <div className=\"single-select-question\">\n      <RadioSelectInput\n        options={inputs}\n        initialValue={currentInputId}\n        initialTextChoiceValue={initialTextValue}\n        onChange={onChange}\n      />\n    </div>\n  );\n}\n\nSingleSelectQuestion.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    displayData: PropTypes.shape({\n      inputsType: PropTypes.string,\n    }),\n    inputs: PropTypes.arrayOf(\n      PropTypes.shape({\n        id: PropTypes.string.isRequired,\n      })\n    ).isRequired,\n  }).isRequired,\n  currentQuestionValues: PropTypes.shape({}),\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n};\n\nSingleSelectQuestion.defaultProps = {\n  currentQuestionValues: {},\n};\n\nexport default memo(SingleSelectQuestion);\n","// Libraries\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\nimport { propertyOf } from 'underscore';\n\n// Components\nimport CheckboxGroup from 'common/components/CheckboxGroup';\nimport Input from 'common/components/Input';\n\n// Enumerables\nimport InputFormat from '../../../enums/InputFormat';\n\nexport class CheckboxSelectInput extends Component {\n  textChoiceInputRef = createRef();\n\n  // TODO: Move setup out of constructor\n  constructor(props) {\n    super(props);\n\n    const { options, initialValue } = props;\n    const selectedOptionIds = Object.keys(initialValue);\n    const textChoiceIndex = options.findIndex(({ format }) => format === InputFormat.TEXT_CHOICE);\n    let textChoiceOptionId = null;\n    let textChoiceValue = '';\n\n    if (textChoiceIndex !== -1) {\n      const textChoiceOption = options.splice(textChoiceIndex, 1)[0];\n      // Move text choice option to the end\n      options.push(textChoiceOption);\n      textChoiceOptionId = textChoiceOption.id;\n      textChoiceValue = propertyOf(initialValue)([textChoiceOptionId, 'value']) || '';\n    }\n\n    this.state = {\n      options,\n      textChoiceOptionId,\n      selectedOptionIds,\n      textChoiceValue,\n    };\n  }\n\n  fireOnChange = (lastOptionId) => {\n    const { onChange } = this.props;\n    const { selectedOptionIds, textChoiceOptionId, textChoiceValue } = this.state;\n    const newValues = selectedOptionIds.reduce(\n      (accumulator, optionId) => ({\n        ...accumulator,\n        [optionId]: { value: optionId === textChoiceOptionId ? textChoiceValue : true },\n      }),\n      {}\n    );\n    onChange?.(newValues, lastOptionId || textChoiceOptionId);\n  };\n\n  handleChange = (selectedOptionIds, lastOptionId) => {\n    const { textChoiceOptionId } = this.state;\n\n    this.setState({ selectedOptionIds }, () => {\n      this.fireOnChange(lastOptionId);\n\n      if (lastOptionId === textChoiceOptionId && this.textChoiceInputRef.current) {\n        this.textChoiceInputRef.current.focus();\n      }\n    });\n  };\n\n  handleTextChoiceChange = ({ target: { value: textChoiceValue } }) => {\n    this.setState({ textChoiceValue }, this.fireOnChange);\n  };\n\n  render() {\n    const { t, choicesLimit } = this.props;\n    const { options, selectedOptionIds, textChoiceOptionId, textChoiceValue } = this.state;\n\n    return (\n      <div className=\"checkbox-select-input\">\n        {choicesLimit && <p>{t('engagement.responses_allowed', { choicesLimit })}</p>}\n        <CheckboxGroup\n          options={options}\n          initialValue={selectedOptionIds}\n          onChange={this.handleChange}\n        />\n        {textChoiceOptionId && (\n          <Input\n            value={textChoiceValue}\n            onChange={this.handleTextChoiceChange}\n            disabled={!selectedOptionIds.includes(textChoiceOptionId)}\n            ref={this.textChoiceInputRef}\n            ariaLabel={t('Other (please specify)')}\n          />\n        )}\n      </div>\n    );\n  }\n}\n\nCheckboxSelectInput.propTypes = {\n  t: PropTypes.func.isRequired,\n  options: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n      label: PropTypes.string.isRequired,\n      format: PropTypes.string.isRequired,\n    })\n  ).isRequired,\n  initialValue: PropTypes.shape({}),\n  onChange: PropTypes.func,\n  choicesLimit: PropTypes.string,\n};\n\nCheckboxSelectInput.defaultProps = {\n  initialValue: {},\n  onChange: null,\n  choicesLimit: null,\n};\n\nexport default withTranslation()(CheckboxSelectInput);\n","// Libraries\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\nimport debounce from 'lodash/debounce';\nimport isString from 'lodash/isString';\n\n// State\nimport { deleteResponseEntry, upsertResponseEntry } from 'state/ducks/engagement';\n\n// Components\nimport CheckboxSelectInput from 'engagement/components/inputs/CheckboxSelectInput';\n\nexport function MultiSelectQuestion(props) {\n  const { question, currentQuestionValues, dispatchUpdateQuestionValue } = props;\n  const { id, inputs, displayData } = question;\n  const questionValue = currentQuestionValues?.[id] || {};\n  const dispatch = useDispatch();\n  const dispatchDebounced = useCallback(debounce(dispatch, 300), []);\n\n  const onChange = (newQuestionValue, lastInputId) => {\n    dispatchUpdateQuestionValue(question.id, newQuestionValue);\n\n    const value = newQuestionValue[lastInputId]?.value;\n    const params = {\n      inputId: lastInputId,\n      questionId: question.id,\n      inputAnswer: isString(value) ? value : undefined,\n    };\n    if (lastInputId in newQuestionValue) dispatchDebounced(upsertResponseEntry(params));\n    else dispatch(deleteResponseEntry(params));\n  };\n\n  return (\n    <div className=\"multi-select-question\" data-test=\"multi-select-question\">\n      <CheckboxSelectInput\n        options={inputs}\n        initialValue={questionValue}\n        onChange={onChange}\n        choicesLimit={displayData?.choicesLimit}\n      />\n    </div>\n  );\n}\n\nMultiSelectQuestion.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    displayData: PropTypes.shape({\n      choicesLimit: PropTypes.string,\n    }),\n    inputs: PropTypes.arrayOf(\n      PropTypes.shape({\n        id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n        label: PropTypes.string.isRequired,\n        format: PropTypes.string.isRequired,\n      })\n    ).isRequired,\n  }).isRequired,\n  currentQuestionValues: PropTypes.shape({}),\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n};\n\nMultiSelectQuestion.defaultProps = {\n  currentQuestionValues: {},\n};\n\nexport default React.memo(MultiSelectQuestion);\n","export default {\n  disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n *   transition: `opacity ${duration}ms ease-in-out`,\n *   opacity: 0,\n * }\n *\n * const transitionStyles = {\n *   entering: { opacity: 1 },\n *   entered:  { opacity: 1 },\n *   exiting:  { opacity: 0 },\n *   exited:  { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n *   <Transition in={inProp} timeout={duration}>\n *     {state => (\n *       <div style={{\n *         ...defaultStyle,\n *         ...transitionStyles[state]\n *       }}>\n *         I'm a fade Transition!\n *       </div>\n *     )}\n *   </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n *  - `'entering'`\n *  - `'entered'`\n *  - `'exiting'`\n *  - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n *   const [inProp, setInProp] = useState(false);\n *   return (\n *     <div>\n *       <Transition in={inProp} timeout={500}>\n *         {state => (\n *           // ...\n *         )}\n *       </Transition>\n *       <button onClick={() => setInProp(true)}>\n *         Click to Enter\n *       </button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(Transition, _React$Component);\n\n  function Transition(props, context) {\n    var _this;\n\n    _this = _React$Component.call(this, props, context) || this;\n    var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n    var initialStatus;\n    _this.appearStatus = null;\n\n    if (props.in) {\n      if (appear) {\n        initialStatus = EXITED;\n        _this.appearStatus = ENTERING;\n      } else {\n        initialStatus = ENTERED;\n      }\n    } else {\n      if (props.unmountOnExit || props.mountOnEnter) {\n        initialStatus = UNMOUNTED;\n      } else {\n        initialStatus = EXITED;\n      }\n    }\n\n    _this.state = {\n      status: initialStatus\n    };\n    _this.nextCallback = null;\n    return _this;\n  }\n\n  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n    var nextIn = _ref.in;\n\n    if (nextIn && prevState.status === UNMOUNTED) {\n      return {\n        status: EXITED\n      };\n    }\n\n    return null;\n  } // getSnapshotBeforeUpdate(prevProps) {\n  //   let nextStatus = null\n  //   if (prevProps !== this.props) {\n  //     const { status } = this.state\n  //     if (this.props.in) {\n  //       if (status !== ENTERING && status !== ENTERED) {\n  //         nextStatus = ENTERING\n  //       }\n  //     } else {\n  //       if (status === ENTERING || status === ENTERED) {\n  //         nextStatus = EXITING\n  //       }\n  //     }\n  //   }\n  //   return { nextStatus }\n  // }\n  ;\n\n  var _proto = Transition.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.updateStatus(true, this.appearStatus);\n  };\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var nextStatus = null;\n\n    if (prevProps !== this.props) {\n      var status = this.state.status;\n\n      if (this.props.in) {\n        if (status !== ENTERING && status !== ENTERED) {\n          nextStatus = ENTERING;\n        }\n      } else {\n        if (status === ENTERING || status === ENTERED) {\n          nextStatus = EXITING;\n        }\n      }\n    }\n\n    this.updateStatus(false, nextStatus);\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.cancelNextCallback();\n  };\n\n  _proto.getTimeouts = function getTimeouts() {\n    var timeout = this.props.timeout;\n    var exit, enter, appear;\n    exit = enter = appear = timeout;\n\n    if (timeout != null && typeof timeout !== 'number') {\n      exit = timeout.exit;\n      enter = timeout.enter; // TODO: remove fallback for next major\n\n      appear = timeout.appear !== undefined ? timeout.appear : enter;\n    }\n\n    return {\n      exit: exit,\n      enter: enter,\n      appear: appear\n    };\n  };\n\n  _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n    if (mounting === void 0) {\n      mounting = false;\n    }\n\n    if (nextStatus !== null) {\n      // nextStatus will always be ENTERING or EXITING.\n      this.cancelNextCallback();\n\n      if (nextStatus === ENTERING) {\n        this.performEnter(mounting);\n      } else {\n        this.performExit();\n      }\n    } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n      this.setState({\n        status: UNMOUNTED\n      });\n    }\n  };\n\n  _proto.performEnter = function performEnter(mounting) {\n    var _this2 = this;\n\n    var enter = this.props.enter;\n    var appearing = this.context ? this.context.isMounting : mounting;\n\n    var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n        maybeNode = _ref2[0],\n        maybeAppearing = _ref2[1];\n\n    var timeouts = this.getTimeouts();\n    var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n    // if we are mounting and running this it means appear _must_ be set\n\n    if (!mounting && !enter || config.disabled) {\n      this.safeSetState({\n        status: ENTERED\n      }, function () {\n        _this2.props.onEntered(maybeNode);\n      });\n      return;\n    }\n\n    this.props.onEnter(maybeNode, maybeAppearing);\n    this.safeSetState({\n      status: ENTERING\n    }, function () {\n      _this2.props.onEntering(maybeNode, maybeAppearing);\n\n      _this2.onTransitionEnd(enterTimeout, function () {\n        _this2.safeSetState({\n          status: ENTERED\n        }, function () {\n          _this2.props.onEntered(maybeNode, maybeAppearing);\n        });\n      });\n    });\n  };\n\n  _proto.performExit = function performExit() {\n    var _this3 = this;\n\n    var exit = this.props.exit;\n    var timeouts = this.getTimeouts();\n    var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n    if (!exit || config.disabled) {\n      this.safeSetState({\n        status: EXITED\n      }, function () {\n        _this3.props.onExited(maybeNode);\n      });\n      return;\n    }\n\n    this.props.onExit(maybeNode);\n    this.safeSetState({\n      status: EXITING\n    }, function () {\n      _this3.props.onExiting(maybeNode);\n\n      _this3.onTransitionEnd(timeouts.exit, function () {\n        _this3.safeSetState({\n          status: EXITED\n        }, function () {\n          _this3.props.onExited(maybeNode);\n        });\n      });\n    });\n  };\n\n  _proto.cancelNextCallback = function cancelNextCallback() {\n    if (this.nextCallback !== null) {\n      this.nextCallback.cancel();\n      this.nextCallback = null;\n    }\n  };\n\n  _proto.safeSetState = function safeSetState(nextState, callback) {\n    // This shouldn't be necessary, but there are weird race conditions with\n    // setState callbacks and unmounting in testing, so always make sure that\n    // we can cancel any pending setState callbacks after we unmount.\n    callback = this.setNextCallback(callback);\n    this.setState(nextState, callback);\n  };\n\n  _proto.setNextCallback = function setNextCallback(callback) {\n    var _this4 = this;\n\n    var active = true;\n\n    this.nextCallback = function (event) {\n      if (active) {\n        active = false;\n        _this4.nextCallback = null;\n        callback(event);\n      }\n    };\n\n    this.nextCallback.cancel = function () {\n      active = false;\n    };\n\n    return this.nextCallback;\n  };\n\n  _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n    this.setNextCallback(handler);\n    var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n    if (!node || doesNotHaveTimeoutOrListener) {\n      setTimeout(this.nextCallback, 0);\n      return;\n    }\n\n    if (this.props.addEndListener) {\n      var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n          maybeNode = _ref3[0],\n          maybeNextCallback = _ref3[1];\n\n      this.props.addEndListener(maybeNode, maybeNextCallback);\n    }\n\n    if (timeout != null) {\n      setTimeout(this.nextCallback, timeout);\n    }\n  };\n\n  _proto.render = function render() {\n    var status = this.state.status;\n\n    if (status === UNMOUNTED) {\n      return null;\n    }\n\n    var _this$props = this.props,\n        children = _this$props.children,\n        _in = _this$props.in,\n        _mountOnEnter = _this$props.mountOnEnter,\n        _unmountOnExit = _this$props.unmountOnExit,\n        _appear = _this$props.appear,\n        _enter = _this$props.enter,\n        _exit = _this$props.exit,\n        _timeout = _this$props.timeout,\n        _addEndListener = _this$props.addEndListener,\n        _onEnter = _this$props.onEnter,\n        _onEntering = _this$props.onEntering,\n        _onEntered = _this$props.onEntered,\n        _onExit = _this$props.onExit,\n        _onExiting = _this$props.onExiting,\n        _onExited = _this$props.onExited,\n        _nodeRef = _this$props.nodeRef,\n        childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n    return (\n      /*#__PURE__*/\n      // allows for nested Transitions\n      React.createElement(TransitionGroupContext.Provider, {\n        value: null\n      }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n    );\n  };\n\n  return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A React reference to DOM element that need to transition:\n   * https://stackoverflow.com/a/51127130/4671932\n   *\n   *   - When `nodeRef` prop is used, `node` is not passed to callback functions\n   *      (e.g. `onEnter`) because user already has direct access to the node.\n   *   - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n   *     `nodeRef` need to be provided to `Transition` with changed `key` prop\n   *     (see\n   *     [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n   */\n  nodeRef: PropTypes.shape({\n    current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n      var value = propValue[key];\n      return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n    }\n  }),\n\n  /**\n   * A `function` child can be used instead of a React element. This function is\n   * called with the current transition status (`'entering'`, `'entered'`,\n   * `'exiting'`, `'exited'`), which can be used to apply context\n   * specific props to a component.\n   *\n   * ```jsx\n   * <Transition in={this.state.in} timeout={150}>\n   *   {state => (\n   *     <MyComponent className={`fade fade-${state}`} />\n   *   )}\n   * </Transition>\n   * ```\n   */\n  children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n  /**\n   * Show the component; triggers the enter or exit states\n   */\n  in: PropTypes.bool,\n\n  /**\n   * By default the child component is mounted immediately along with\n   * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n   * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n   * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n   */\n  mountOnEnter: PropTypes.bool,\n\n  /**\n   * By default the child component stays mounted after it reaches the `'exited'` state.\n   * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n   */\n  unmountOnExit: PropTypes.bool,\n\n  /**\n   * By default the child component does not perform the enter transition when\n   * it first mounts, regardless of the value of `in`. If you want this\n   * behavior, set both `appear` and `in` to `true`.\n   *\n   * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n   * > only adds an additional enter transition. However, in the\n   * > `<CSSTransition>` component that first enter transition does result in\n   * > additional `.appear-*` classes, that way you can choose to style it\n   * > differently.\n   */\n  appear: PropTypes.bool,\n\n  /**\n   * Enable or disable enter transitions.\n   */\n  enter: PropTypes.bool,\n\n  /**\n   * Enable or disable exit transitions.\n   */\n  exit: PropTypes.bool,\n\n  /**\n   * The duration of the transition, in milliseconds.\n   * Required unless `addEndListener` is provided.\n   *\n   * You may specify a single timeout for all transitions:\n   *\n   * ```jsx\n   * timeout={500}\n   * ```\n   *\n   * or individually:\n   *\n   * ```jsx\n   * timeout={{\n   *  appear: 500,\n   *  enter: 300,\n   *  exit: 500,\n   * }}\n   * ```\n   *\n   * - `appear` defaults to the value of `enter`\n   * - `enter` defaults to `0`\n   * - `exit` defaults to `0`\n   *\n   * @type {number | { enter?: number, exit?: number, appear?: number }}\n   */\n  timeout: function timeout(props) {\n    var pt = timeoutsShape;\n    if (!props.addEndListener) pt = pt.isRequired;\n\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return pt.apply(void 0, [props].concat(args));\n  },\n\n  /**\n   * Add a custom transition end trigger. Called with the transitioning\n   * DOM node and a `done` callback. Allows for more fine grained transition end\n   * logic. Timeouts are still used as a fallback if provided.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * ```jsx\n   * addEndListener={(node, done) => {\n   *   // use the css transitionend event to mark the finish of a transition\n   *   node.addEventListener('transitionend', done, false);\n   * }}\n   * ```\n   */\n  addEndListener: PropTypes.func,\n\n  /**\n   * Callback fired before the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEnter: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entered\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEntered: PropTypes.func,\n\n  /**\n   * Callback fired before the \"exiting\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExit: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exiting\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExiting: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exited\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n  in: false,\n  mountOnEnter: false,\n  unmountOnExit: false,\n  appear: false,\n  enter: true,\n  exit: true,\n  onEnter: noop,\n  onEntering: noop,\n  onEntered: noop,\n  onExit: noop,\n  onExiting: noop,\n  onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n  var mapper = function mapper(child) {\n    return mapFn && isValidElement(child) ? mapFn(child) : child;\n  };\n\n  var result = Object.create(null);\n  if (children) Children.map(children, function (c) {\n    return c;\n  }).forEach(function (child) {\n    // run the map function here instead so that the key is the computed one\n    result[child.key] = mapper(child);\n  });\n  return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n  prev = prev || {};\n  next = next || {};\n\n  function getValueForKey(key) {\n    return key in next ? next[key] : prev[key];\n  } // For each key of `next`, the list of keys to insert before that key in\n  // the combined list\n\n\n  var nextKeysPending = Object.create(null);\n  var pendingKeys = [];\n\n  for (var prevKey in prev) {\n    if (prevKey in next) {\n      if (pendingKeys.length) {\n        nextKeysPending[prevKey] = pendingKeys;\n        pendingKeys = [];\n      }\n    } else {\n      pendingKeys.push(prevKey);\n    }\n  }\n\n  var i;\n  var childMapping = {};\n\n  for (var nextKey in next) {\n    if (nextKeysPending[nextKey]) {\n      for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n        var pendingNextKey = nextKeysPending[nextKey][i];\n        childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n      }\n    }\n\n    childMapping[nextKey] = getValueForKey(nextKey);\n  } // Finally, add the keys which didn't appear before any key in `next`\n\n\n  for (i = 0; i < pendingKeys.length; i++) {\n    childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n  }\n\n  return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n  return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n  return getChildMapping(props.children, function (child) {\n    return cloneElement(child, {\n      onExited: onExited.bind(null, child),\n      in: true,\n      appear: getProp(child, 'appear', props),\n      enter: getProp(child, 'enter', props),\n      exit: getProp(child, 'exit', props)\n    });\n  });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n  var nextChildMapping = getChildMapping(nextProps.children);\n  var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n  Object.keys(children).forEach(function (key) {\n    var child = children[key];\n    if (!isValidElement(child)) return;\n    var hasPrev = (key in prevChildMapping);\n    var hasNext = (key in nextChildMapping);\n    var prevChild = prevChildMapping[key];\n    var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n    if (hasNext && (!hasPrev || isLeaving)) {\n      // console.log('entering', key)\n      children[key] = cloneElement(child, {\n        onExited: onExited.bind(null, child),\n        in: true,\n        exit: getProp(child, 'exit', nextProps),\n        enter: getProp(child, 'enter', nextProps)\n      });\n    } else if (!hasNext && hasPrev && !isLeaving) {\n      // item is old (exiting)\n      // console.log('leaving', key)\n      children[key] = cloneElement(child, {\n        in: false\n      });\n    } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n      // item hasn't changed transition states\n      // copy over the last transition props;\n      // console.log('unchanged', key)\n      children[key] = cloneElement(child, {\n        onExited: onExited.bind(null, child),\n        in: prevChild.props.in,\n        exit: getProp(child, 'exit', nextProps),\n        enter: getProp(child, 'enter', nextProps)\n      });\n    }\n  });\n  return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n  return Object.keys(obj).map(function (k) {\n    return obj[k];\n  });\n};\n\nvar defaultProps = {\n  component: 'div',\n  childFactory: function childFactory(child) {\n    return child;\n  }\n};\n/**\n * The `<TransitionGroup>` component manages a set of transition components\n * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n * components, `<TransitionGroup>` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the `<TransitionGroup>`.\n *\n * Note that `<TransitionGroup>`  does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(TransitionGroup, _React$Component);\n\n  function TransitionGroup(props, context) {\n    var _this;\n\n    _this = _React$Component.call(this, props, context) || this;\n\n    var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n    _this.state = {\n      contextValue: {\n        isMounting: true\n      },\n      handleExited: handleExited,\n      firstRender: true\n    };\n    return _this;\n  }\n\n  var _proto = TransitionGroup.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.mounted = true;\n    this.setState({\n      contextValue: {\n        isMounting: false\n      }\n    });\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.mounted = false;\n  };\n\n  TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n    var prevChildMapping = _ref.children,\n        handleExited = _ref.handleExited,\n        firstRender = _ref.firstRender;\n    return {\n      children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n      firstRender: false\n    };\n  } // node is `undefined` when user provided `nodeRef` prop\n  ;\n\n  _proto.handleExited = function handleExited(child, node) {\n    var currentChildMapping = getChildMapping(this.props.children);\n    if (child.key in currentChildMapping) return;\n\n    if (child.props.onExited) {\n      child.props.onExited(node);\n    }\n\n    if (this.mounted) {\n      this.setState(function (state) {\n        var children = _extends({}, state.children);\n\n        delete children[child.key];\n        return {\n          children: children\n        };\n      });\n    }\n  };\n\n  _proto.render = function render() {\n    var _this$props = this.props,\n        Component = _this$props.component,\n        childFactory = _this$props.childFactory,\n        props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n    var contextValue = this.state.contextValue;\n    var children = values(this.state.children).map(childFactory);\n    delete props.appear;\n    delete props.enter;\n    delete props.exit;\n\n    if (Component === null) {\n      return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n        value: contextValue\n      }, children);\n    }\n\n    return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n      value: contextValue\n    }, /*#__PURE__*/React.createElement(Component, props, children));\n  };\n\n  return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * `<TransitionGroup>` renders a `<div>` by default. You can change this\n   * behavior by providing a `component` prop.\n   * If you use React v16+ and would like to avoid a wrapping `<div>` element\n   * you can pass in `component={null}`. This is useful if the wrapping div\n   * borks your css styles.\n   */\n  component: PropTypes.any,\n\n  /**\n   * A set of `<Transition>` components, that are toggled `in` and out as they\n   * leave. the `<TransitionGroup>` will inject specific transition props, so\n   * remember to spread them through if you are wrapping the `<Transition>` as\n   * with our `<Fade>` example.\n   *\n   * While this component is meant for multiple `Transition` or `CSSTransition`\n   * children, sometimes you may want to have a single transition child with\n   * content that you want to be transitioned out and in when you change it\n   * (e.g. routes, images etc.) In that case you can change the `key` prop of\n   * the transition child as you change its content, this will cause\n   * `TransitionGroup` to transition the child out and back in.\n   */\n  children: PropTypes.node,\n\n  /**\n   * A convenience prop that enables or disables appear animations\n   * for all children. Note that specifying this will override any defaults set\n   * on individual children Transitions.\n   */\n  appear: PropTypes.bool,\n\n  /**\n   * A convenience prop that enables or disables enter animations\n   * for all children. Note that specifying this will override any defaults set\n   * on individual children Transitions.\n   */\n  enter: PropTypes.bool,\n\n  /**\n   * A convenience prop that enables or disables exit animations\n   * for all children. Note that specifying this will override any defaults set\n   * on individual children Transitions.\n   */\n  exit: PropTypes.bool,\n\n  /**\n   * You may need to apply reactive updates to a child as it is exiting.\n   * This is generally done by using `cloneElement` however in the case of an exiting\n   * child the element has already been removed and not accessible to the consumer.\n   *\n   * If you do need to update a child as it leaves you can provide a `childFactory`\n   * to wrap every child, even the ones that are leaving.\n   *\n   * @type Function(child: ReactElement) -> ReactElement\n   */\n  childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport memoizeOne from 'memoize-one';\nimport { F as defaultComponents } from '../../dist/index-a86253bb.esm.js';\nimport * as React from 'react';\nimport { useRef, useState, useEffect } from 'react';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport { Transition, TransitionGroup } from 'react-transition-group';\nimport '@emotion/react';\nimport '@babel/runtime/helpers/typeof';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\nimport '@floating-ui/dom';\nimport 'use-isomorphic-layout-effect';\n\nvar _excluded$4 = [\"in\", \"onExited\", \"appear\", \"enter\", \"exit\"];\n// strip transition props off before spreading onto select component\nvar AnimatedInput = function AnimatedInput(WrappedComponent) {\n  return function (_ref) {\n    _ref.in;\n      _ref.onExited;\n      _ref.appear;\n      _ref.enter;\n      _ref.exit;\n      var props = _objectWithoutProperties(_ref, _excluded$4);\n    return /*#__PURE__*/React.createElement(WrappedComponent, props);\n  };\n};\n\nvar _excluded$3 = [\"component\", \"duration\", \"in\", \"onExited\"];\nvar Fade = function Fade(_ref) {\n  var Tag = _ref.component,\n    _ref$duration = _ref.duration,\n    duration = _ref$duration === void 0 ? 1 : _ref$duration,\n    inProp = _ref.in;\n    _ref.onExited;\n    var props = _objectWithoutProperties(_ref, _excluded$3);\n  var nodeRef = useRef(null);\n  var transition = {\n    entering: {\n      opacity: 0\n    },\n    entered: {\n      opacity: 1,\n      transition: \"opacity \".concat(duration, \"ms\")\n    },\n    exiting: {\n      opacity: 0\n    },\n    exited: {\n      opacity: 0\n    }\n  };\n  return /*#__PURE__*/React.createElement(Transition, {\n    mountOnEnter: true,\n    unmountOnExit: true,\n    in: inProp,\n    timeout: duration,\n    nodeRef: nodeRef\n  }, function (state) {\n    var innerProps = {\n      style: _objectSpread({}, transition[state]),\n      ref: nodeRef\n    };\n    return /*#__PURE__*/React.createElement(Tag, _extends({\n      innerProps: innerProps\n    }, props));\n  });\n};\n\n// ==============================\n// Collapse Transition\n// ==============================\n\nvar collapseDuration = 260;\n// wrap each MultiValue with a collapse transition; decreases width until\n// finally removing from DOM\nvar Collapse = function Collapse(_ref2) {\n  var children = _ref2.children,\n    _in = _ref2.in,\n    _onExited = _ref2.onExited;\n  var ref = useRef(null);\n  var _useState = useState('auto'),\n    _useState2 = _slicedToArray(_useState, 2),\n    width = _useState2[0],\n    setWidth = _useState2[1];\n  useEffect(function () {\n    var el = ref.current;\n    if (!el) return;\n\n    /*\n      Here we're invoking requestAnimationFrame with a callback invoking our\n      call to getBoundingClientRect and setState in order to resolve an edge case\n      around portalling. Certain portalling solutions briefly remove children from the DOM\n      before appending them to the target node. This is to avoid us trying to call getBoundingClientrect\n      while the Select component is in this state.\n    */\n    // cannot use `offsetWidth` because it is rounded\n    var rafId = window.requestAnimationFrame(function () {\n      return setWidth(el.getBoundingClientRect().width);\n    });\n    return function () {\n      return window.cancelAnimationFrame(rafId);\n    };\n  }, []);\n  var getStyleFromStatus = function getStyleFromStatus(status) {\n    switch (status) {\n      default:\n        return {\n          width: width\n        };\n      case 'exiting':\n        return {\n          width: 0,\n          transition: \"width \".concat(collapseDuration, \"ms ease-out\")\n        };\n      case 'exited':\n        return {\n          width: 0\n        };\n    }\n  };\n  return /*#__PURE__*/React.createElement(Transition, {\n    enter: false,\n    mountOnEnter: true,\n    unmountOnExit: true,\n    in: _in,\n    onExited: function onExited() {\n      var el = ref.current;\n      if (!el) return;\n      _onExited === null || _onExited === void 0 ? void 0 : _onExited(el);\n    },\n    timeout: collapseDuration,\n    nodeRef: ref\n  }, function (status) {\n    return /*#__PURE__*/React.createElement(\"div\", {\n      ref: ref,\n      style: _objectSpread({\n        overflow: 'hidden',\n        whiteSpace: 'nowrap'\n      }, getStyleFromStatus(status))\n    }, children);\n  });\n};\n\nvar _excluded$2 = [\"in\", \"onExited\"];\n// strip transition props off before spreading onto actual component\n\nvar AnimatedMultiValue = function AnimatedMultiValue(WrappedComponent) {\n  return function (_ref) {\n    var inProp = _ref.in,\n      onExited = _ref.onExited,\n      props = _objectWithoutProperties(_ref, _excluded$2);\n    return /*#__PURE__*/React.createElement(Collapse, {\n      in: inProp,\n      onExited: onExited\n    }, /*#__PURE__*/React.createElement(WrappedComponent, _extends({\n      cropWithEllipsis: inProp\n    }, props)));\n  };\n};\n\n// fade in when last multi-value removed, otherwise instant\nvar AnimatedPlaceholder = function AnimatedPlaceholder(WrappedComponent) {\n  return function (props) {\n    return /*#__PURE__*/React.createElement(Fade, _extends({\n      component: WrappedComponent,\n      duration: props.isMulti ? collapseDuration : 1\n    }, props));\n  };\n};\n\n// instant fade; all transition-group children must be transitions\n\nvar AnimatedSingleValue = function AnimatedSingleValue(WrappedComponent) {\n  return function (props) {\n    return /*#__PURE__*/React.createElement(Fade, _extends({\n      component: WrappedComponent\n    }, props));\n  };\n};\n\nvar _excluded$1 = [\"component\"],\n  _excluded2 = [\"children\"];\n// make ValueContainer a transition group\nvar AnimatedValueContainer = function AnimatedValueContainer(WrappedComponent) {\n  return function (props) {\n    return props.isMulti ? /*#__PURE__*/React.createElement(IsMultiValueContainer, _extends({\n      component: WrappedComponent\n    }, props)) : /*#__PURE__*/React.createElement(TransitionGroup, _extends({\n      component: WrappedComponent\n    }, props));\n  };\n};\nvar IsMultiValueContainer = function IsMultiValueContainer(_ref) {\n  var component = _ref.component,\n    restProps = _objectWithoutProperties(_ref, _excluded$1);\n  var multiProps = useIsMultiValueContainer(restProps);\n  return /*#__PURE__*/React.createElement(TransitionGroup, _extends({\n    component: component\n  }, multiProps));\n};\nvar useIsMultiValueContainer = function useIsMultiValueContainer(_ref2) {\n  var children = _ref2.children,\n    props = _objectWithoutProperties(_ref2, _excluded2);\n  var isMulti = props.isMulti,\n    hasValue = props.hasValue,\n    innerProps = props.innerProps,\n    _props$selectProps = props.selectProps,\n    components = _props$selectProps.components,\n    controlShouldRenderValue = _props$selectProps.controlShouldRenderValue;\n  var _useState = useState(isMulti && controlShouldRenderValue && hasValue),\n    _useState2 = _slicedToArray(_useState, 2),\n    cssDisplayFlex = _useState2[0],\n    setCssDisplayFlex = _useState2[1];\n  var _useState3 = useState(false),\n    _useState4 = _slicedToArray(_useState3, 2),\n    removingValue = _useState4[0],\n    setRemovingValue = _useState4[1];\n  useEffect(function () {\n    if (hasValue && !cssDisplayFlex) {\n      setCssDisplayFlex(true);\n    }\n  }, [hasValue, cssDisplayFlex]);\n  useEffect(function () {\n    if (removingValue && !hasValue && cssDisplayFlex) {\n      setCssDisplayFlex(false);\n    }\n    setRemovingValue(false);\n  }, [removingValue, hasValue, cssDisplayFlex]);\n  var onExited = function onExited() {\n    return setRemovingValue(true);\n  };\n  var childMapper = function childMapper(child) {\n    if (isMulti && /*#__PURE__*/React.isValidElement(child)) {\n      // Add onExited callback to MultiValues\n      if (child.type === components.MultiValue) {\n        return /*#__PURE__*/React.cloneElement(child, {\n          onExited: onExited\n        });\n      }\n      // While container flexed, Input cursor is shown after Placeholder text,\n      // so remove Placeholder until display is set back to grid\n      if (child.type === components.Placeholder && cssDisplayFlex) {\n        return null;\n      }\n    }\n    return child;\n  };\n  var newInnerProps = _objectSpread(_objectSpread({}, innerProps), {}, {\n    style: _objectSpread(_objectSpread({}, innerProps === null || innerProps === void 0 ? void 0 : innerProps.style), {}, {\n      display: isMulti && hasValue || cssDisplayFlex ? 'flex' : 'grid'\n    })\n  });\n  var newProps = _objectSpread(_objectSpread({}, props), {}, {\n    innerProps: newInnerProps,\n    children: React.Children.toArray(children).map(childMapper)\n  });\n  return newProps;\n};\n\nvar _excluded = [\"Input\", \"MultiValue\", \"Placeholder\", \"SingleValue\", \"ValueContainer\"];\nvar makeAnimated = function makeAnimated() {\n  var externalComponents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var components = defaultComponents({\n    components: externalComponents\n  });\n  var Input = components.Input,\n    MultiValue = components.MultiValue,\n    Placeholder = components.Placeholder,\n    SingleValue = components.SingleValue,\n    ValueContainer = components.ValueContainer,\n    rest = _objectWithoutProperties(components, _excluded);\n  return _objectSpread({\n    Input: AnimatedInput(Input),\n    MultiValue: AnimatedMultiValue(MultiValue),\n    Placeholder: AnimatedPlaceholder(Placeholder),\n    SingleValue: AnimatedSingleValue(SingleValue),\n    ValueContainer: AnimatedValueContainer(ValueContainer)\n  }, rest);\n};\nvar AnimatedComponents = makeAnimated();\nvar Input = AnimatedComponents.Input;\nvar MultiValue = AnimatedComponents.MultiValue;\nvar Placeholder = AnimatedComponents.Placeholder;\nvar SingleValue = AnimatedComponents.SingleValue;\nvar ValueContainer = AnimatedComponents.ValueContainer;\nvar index = memoizeOne(makeAnimated);\n\nexport default index;\nexport { Input, MultiValue, Placeholder, SingleValue, ValueContainer };\n","// Libraries\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Select from 'react-select';\nimport makeAnimated from 'react-select/animated';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\n\n// State\nimport { deleteResponseEntry, upsertResponseEntry } from 'state/ducks/engagement';\n\nfunction DropdownQuestion({\n  question: { id, inputs, displayData },\n  questionValues,\n  currentSectionPosition,\n  dispatchUpdateQuestionValue,\n}) {\n  const isMulti = Boolean(Number(displayData.multiSelectDropdown));\n  const options = inputs.map((input) => ({ value: input.id, label: input.label }));\n  const questionValuesBySection = questionValues[currentSectionPosition];\n  const questionValuesByQuestion =\n    questionValuesBySection && questionValuesBySection[id] ? questionValuesBySection[id] : {};\n  const selectedInputs = Object.keys(questionValuesByQuestion).map((value) => {\n    return options.find((option) => option.value === value);\n  });\n  const { t } = useTranslation();\n  const dispatch = useDispatch();\n  const [selected, setSelected] = useState(selectedInputs);\n\n  const onChangeMulti = (selectedOptions, meta) => {\n    const questionValue = selectedOptions.reduce((accumulator, { value }) => {\n      return { ...accumulator, [value]: { value: true } };\n    }, {});\n\n    dispatchUpdateQuestionValue(id, questionValue);\n    setSelected(selectedOptions);\n\n    if (meta.removedValue?.value)\n      dispatch(deleteResponseEntry({ inputId: meta.removedValue.value, questionId: id }));\n    if (meta.removedValues?.length > 0)\n      for (const removedValue of meta.removedValues)\n        dispatch(deleteResponseEntry({ inputId: removedValue.value, questionId: id }));\n    if (meta.option?.value)\n      dispatch(upsertResponseEntry({ inputId: meta.option.value, questionId: id }));\n  };\n\n  const onChangeSingle = (selectedOption, meta) => {\n    if (selectedOption)\n      onChangeMulti([selectedOption], { option: selectedOption, removedValue: selected[0] });\n    else onChangeMulti([], meta);\n  };\n\n  const onChange = (value, meta) => {\n    if (isMulti) onChangeMulti(value, meta);\n    else onChangeSingle(value, meta);\n  };\n\n  return (\n    <label data-testid=\"dropdown-question\">\n      <Select\n        closeMenuOnSelect={!isMulti}\n        components={makeAnimated()}\n        isMulti={isMulti}\n        options={options}\n        value={selected}\n        onChange={onChange}\n        placeholder={t('engagement.dropdown_placeholder')}\n        menuPortalTarget={document.body}\n        isClearable\n      />\n    </label>\n  );\n}\n\nDropdownQuestion.propTypes = {\n  // Disabled eslint for questionValues as the object key/values are dynamic\n  questionValues: PropTypes.object, // eslint-disable-line\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(\n      PropTypes.shape({\n        id: PropTypes.string,\n        label: PropTypes.string,\n      })\n    ).isRequired,\n    displayData: PropTypes.shape({\n      multiSelectDropdown: PropTypes.string,\n    }).isRequired,\n  }).isRequired,\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n  currentSectionPosition: PropTypes.number.isRequired,\n};\n\nDropdownQuestion.defaultProps = {\n  questionValues: {},\n};\n\nexport default DropdownQuestion;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Options extends Component {\n  static propTypes = {\n    options: PropTypes.array.isRequired,\n  };\n\n  render() {\n    const { options } = this.props;\n\n    return (\n      <div className=\"matrix-input__header\">\n        {options.map(({ label, id }) => (\n          <div key={id} className=\"matrix-input__header-option is-primary-color\">\n            <span>{label}</span>\n          </div>\n        ))}\n      </div>\n    );\n  }\n}\n\nexport default Options;\n","// Libraries\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Rows extends Component {\n  renderRow = (row) => {\n    const { options } = this.props;\n\n    return (\n      <div key={row.id} className=\"matrix-input__row\" role=\"radiogroup\" aria-label={row.label}>\n        <div className=\"matrix-input__question is-primary-color\">{row.label}</div>\n        {options.map((option) => this.renderRowButton(row, option))}\n      </div>\n    );\n  };\n\n  renderRowButton = (row, option) => {\n    const { values } = this.props;\n    const label = `${row.label} - ${option.label}`;\n    const htmlId = `matrix-input_${row.id}_${option.id}`;\n    const name = `matrix-input_${row.id}`;\n    const checked = values[row.id] !== undefined && values[row.id].value === option.id;\n\n    return (\n      <div key={option.id} className=\"matrix-input__control-container\">\n        <label htmlFor={htmlId} className=\"matrix-input__control\">\n          {label}\n          <input\n            name={name}\n            aria-label={label}\n            className=\"matrix-input__control-input\"\n            type=\"radio\"\n            checked={checked}\n            aria-checked={checked}\n            onChange={this.getOnChangeHandler(row.id, option.id)}\n            id={htmlId}\n          />\n          <div className=\"matrix-input__control-display\" />\n        </label>\n      </div>\n    );\n  };\n\n  getOnChangeHandler = (inputId, value) => () => {\n    const { onChange } = this.props;\n\n    onChange(inputId, value);\n  };\n\n  render() {\n    const { rows } = this.props;\n\n    return <>{rows.map(this.renderRow)}</>;\n  }\n}\n\nRows.propTypes = {\n  rows: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.string.isRequired,\n      label: PropTypes.string.isRequired,\n    })\n  ).isRequired,\n  options: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.number.isRequired,\n      label: PropTypes.string.isRequired,\n    })\n  ).isRequired,\n  onChange: PropTypes.func.isRequired,\n  values: PropTypes.objectOf(\n    PropTypes.shape({\n      value: PropTypes.number.isRequired,\n    })\n  ).isRequired,\n};\n\nexport default Rows;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Options from './Options';\nimport Rows from './Rows';\n\nclass MatrixInput extends Component {\n  static propTypes = {\n    options: PropTypes.array.isRequired,\n    rows: PropTypes.array.isRequired,\n    onChange: PropTypes.func.isRequired,\n    values: PropTypes.object.isRequired,\n  };\n\n  render() {\n    const { options, rows, onChange, values } = this.props;\n    const modifier = options.length > 7 ? 'matrix-input--compact' : 'matrix-input--normal';\n\n    return (\n      <div className={`matrix-input matrix-input--${options.length} ${modifier}`}>\n        <Options options={options} />\n        <Rows rows={rows} options={options} onChange={onChange} values={values} />\n      </div>\n    );\n  }\n}\n\nexport default MatrixInput;\n","// Libraries\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\nimport sortBy from 'lodash/sortBy';\n\n// State\nimport { upsertResponseEntry } from 'state/ducks/engagement';\n\n// Utilities\nimport { parseInteger } from 'common/utils/helpers';\n\n// Components\nimport MatrixInput from './MatrixInput';\n\nexport function MatrixQuestion(props) {\n  const { question, currentQuestionValues, dispatchUpdateQuestionValue } = props;\n  const { inputs, weights } = question;\n  const questionValue = currentQuestionValues?.[question.id] || {};\n  const dispatch = useDispatch();\n\n  const options = useMemo(() => {\n    return sortBy(weights, ['position']).map((weight) => ({\n      ...weight,\n      id: parseInteger(weight.id),\n    }));\n  }, [weights]);\n\n  const onChange = (inputId, value) => {\n    dispatchUpdateQuestionValue(question.id, { [inputId]: { value } }, true);\n    dispatch(upsertResponseEntry({ inputId, questionId: question.id, weightId: value }));\n  };\n\n  return (\n    <div className=\"matrix-question\" data-test=\"matrix-question\">\n      <MatrixInput options={options} rows={inputs} onChange={onChange} values={questionValue} />\n    </div>\n  );\n}\n\nMatrixQuestion.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n    weights: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n  }).isRequired,\n  currentQuestionValues: PropTypes.shape({}),\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n};\n\nMatrixQuestion.defaultProps = {\n  currentQuestionValues: {},\n};\n\nexport default MatrixQuestion;\n","// Libraries\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { Marker as LeafletMarker, Popup } from 'react-leaflet';\nimport { defer } from 'underscore';\nimport { withTranslation } from 'react-i18next';\n\n// Assets\nimport { markerIcon } from 'assets';\n\n// Components\nimport Textarea from 'common/components/Textarea';\n\n/**\n * Wrapper for Leaflet Marker component.\n */\nexport class Marker extends Component {\n  markerRef = createRef();\n\n  textareaRef = createRef();\n\n  shouldComponentUpdate(nextProps) {\n    const { popupVisible } = this.props;\n\n    // only rerender component if popupVisible prop has changed - fix for popup losing focus in IE10\n    if (popupVisible !== nextProps.popupVisible) {\n      return true;\n    }\n\n    return false;\n  }\n\n  /**\n   * Open/close popup based on popupVisible prop.\n   */\n  componentDidUpdate() {\n    const { popupVisible } = this.props;\n\n    if (popupVisible) {\n      this.markerRef.current?.openPopup();\n    } else {\n      this.markerRef.current?.closePopup();\n    }\n  }\n\n  handleMarkerAdd = () => {\n    const { popupVisible } = this.props;\n\n    if (popupVisible) {\n      this.markerRef.current?.openPopup();\n    }\n  };\n\n  /**\n   * Popup opened handler.\n   */\n  handlePopupOpen = () => {\n    defer(this.focusTextarea);\n  };\n\n  /**\n   * Focus textarea field.\n   */\n  focusTextarea = () => {\n    this.textareaRef.current?.focus();\n  };\n\n  render() {\n    const {\n      position,\n      comment,\n      onDragStart,\n      onDragEnd,\n      onMouseOver,\n      onMouseOut,\n      onClick,\n      onCommentChange,\n      onPopupClose,\n      onDelete,\n      t,\n    } = this.props;\n\n    return (\n      <LeafletMarker\n        draggable\n        position={position}\n        icon={markerIcon}\n        riseOnHover\n        ref={this.markerRef}\n        eventHandlers={{\n          click: onClick,\n          dragstart: onDragStart,\n          dragend: onDragEnd,\n          mouseover: onMouseOver,\n          mouseout: onMouseOut,\n          add: this.handleMarkerAdd,\n        }}\n      >\n        <Popup\n          className=\"map-input-popup\"\n          autoPan={false}\n          autoClose={false}\n          closeButton={false}\n          onOpen={this.handlePopupOpen}\n        >\n          <a\n            className=\"close is-primary-color\"\n            title={t('engagement.close_popup')}\n            onClick={onPopupClose}\n          >\n            <i className=\"fas fa-times\" />\n          </a>\n          <label className=\"popup-title is-primary-color\" htmlFor=\"popup-textarea\">\n            {t('engagement.pin_placement_question')} ({t('engagement.optional')})\n          </label>\n          <Textarea\n            id=\"popup-textarea\"\n            defaultValue={comment}\n            onChange={onCommentChange}\n            onClick={this.focusTextarea}\n            ref={this.textareaRef}\n          />\n          <a onClick={onDelete} className=\"is-primary-color\">\n            {t('engagement.delete_pin')}\n          </a>\n        </Popup>\n      </LeafletMarker>\n    );\n  }\n}\n\nMarker.propTypes = {\n  position: PropTypes.arrayOf(PropTypes.number).isRequired,\n  comment: PropTypes.string,\n  popupVisible: PropTypes.bool.isRequired,\n  onDragStart: PropTypes.func.isRequired,\n  onDragEnd: PropTypes.func.isRequired,\n  onClick: PropTypes.func.isRequired,\n  onCommentChange: PropTypes.func.isRequired,\n  onPopupClose: PropTypes.func.isRequired,\n  onDelete: PropTypes.func.isRequired,\n  onMouseOver: PropTypes.func.isRequired,\n  onMouseOut: PropTypes.func.isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nMarker.defaultProps = {\n  comment: '',\n};\n\nexport default withTranslation()(Marker);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\nimport { useMediaQuery } from 'react-responsive';\nimport mediaQueries from 'common/utils/mediaQueries';\n\nconst Tooltip = ({ visible, position, t }) => {\n  const isDesktop = useMediaQuery(mediaQueries.desktop);\n\n  if (!isDesktop || !visible || !position) {\n    return null;\n  }\n\n  return (\n    <div\n      className=\"tooltip\"\n      style={{\n        left: position.x,\n        top: position.y,\n      }}\n    >\n      {t('engagement.pin_drop_tooltip')}\n    </div>\n  );\n};\n\nTooltip.propTypes = {\n  visible: PropTypes.bool,\n  position: PropTypes.shape({\n    x: PropTypes.number.isRequired,\n    y: PropTypes.number.isRequired,\n  }),\n  t: PropTypes.func.isRequired,\n};\n\nTooltip.defaultProps = {\n  visible: false,\n  position: null,\n};\n\nexport default withTranslation()(Tooltip);\n","/* eslint no-underscore-dangle: 0 */\n// Libraries\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { MapContainer, useMapEvents } from 'react-leaflet';\nimport { defer } from 'underscore';\nimport { v4 as uuid } from 'uuid';\n\n// Utilities\nimport { clamp, rtlLanguage } from 'common/utils/helpers';\n\n// Components\nimport Marker from './Marker';\nimport Tooltip from './Tooltip';\n\n/**\n * Annotation input component.\n */\nclass AnnotationInput extends Component {\n  leafletMap = null;\n\n  markerDragging = false;\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      markers: new Map(\n        props.initialMarkers.map(({ guid, ...marker }) => [\n          guid,\n          {\n            ...marker,\n            popupVisible: false,\n          },\n        ])\n      ),\n      popupVisible: false,\n      tooltipPosition: null,\n      tooltipVisible: false,\n    };\n  }\n\n  handleWhenCreated = (map) => {\n    this.leafletMap = map;\n    const { markers } = this.state;\n    const { mapProps } = this.props;\n\n    if (mapProps.bounds) {\n      map.fitBounds(mapProps.bounds, { animate: false });\n      map.setMinZoom(map.getZoom());\n    } else if (markers.size > 0) {\n      this.fitMarkers();\n    }\n  };\n\n  /**\n   * Fire onChange handler.\n   */\n  fireOnChange = (meta) => {\n    const { onChange } = this.props;\n    const { markers } = this.state;\n    onChange?.(Object.fromEntries(markers), meta);\n  };\n\n  /**\n   * Map click handler.\n   */\n  handleClick = ({ latlng: { lat, lng } }) => {\n    const { markers, popupVisible } = this.state;\n    const { mapProps } = this.props;\n\n    markers.forEach((marker) => {\n      marker.popupVisible = false;\n    });\n\n    if (popupVisible) {\n      this.setState({\n        markers: new Map(markers),\n        popupVisible: false,\n        tooltipVisible: true,\n      });\n      return;\n    }\n\n    const markerUuid = uuid();\n    let position = [lat, lng];\n\n    if (mapProps.bounds) {\n      const [[minLat, minLng], [maxLat, maxLng]] = mapProps.bounds;\n      position = [clamp(lat, minLat, maxLat), clamp(lng, minLng, maxLng)];\n    }\n\n    markers.set(markerUuid, {\n      position,\n      comment: '',\n      popupVisible: true,\n    });\n\n    this.setState(\n      {\n        markers: new Map(markers),\n        popupVisible: true,\n        tooltipVisible: false,\n      },\n      () => this.fireOnChange({ created: markerUuid })\n    );\n  };\n\n  /**\n   * Popup open handler.\n   */\n  handlePopupOpen = ({ popup, target: map }) => {\n    defer(() => {\n      const position = map.project(popup.getLatLng());\n      position.y += popup._container.clientHeight / 2;\n      position.x += (popup._container.clientWidth / 2 - 40) * (rtlLanguage() ? -1 : 1);\n      map.panTo(map.unproject(position));\n    });\n  };\n\n  /**\n   * Return marker's position change handler.\n   */\n  getMarkerDragEndHandler =\n    (id) =>\n    ({ target }) => {\n      this.markerDragging = false;\n\n      const { markers } = this.state;\n      const { mapProps } = this.props;\n      const { lat, lng } = target.getLatLng();\n\n      let position = [lat, lng];\n\n      if (mapProps.bounds) {\n        const [[minLat, minLng], [maxLat, maxLng]] = mapProps.bounds;\n        position = [clamp(lat, minLat, maxLat), clamp(lng, minLng, maxLng)];\n      }\n\n      markers.get(id).position = position;\n\n      this.setState({ markers: new Map(markers) }, () => this.fireOnChange({ updated: id }));\n    };\n\n  /**\n   * Return marker's click handler.\n   */\n  getMarkerClickHandler = (id) => () => {\n    const { markers } = this.state;\n    const { popupVisible } = markers.get(id);\n\n    markers.forEach((marker) => {\n      marker.popupVisible = false;\n    });\n\n    markers.get(id).popupVisible = !popupVisible;\n\n    this.setState({\n      markers: new Map(markers),\n      popupVisible: !popupVisible,\n    });\n  };\n\n  /**\n   * Return marker's comment input change handler.\n   */\n  getMarkerCommentChangeHandler =\n    (id) =>\n    ({ target }) => {\n      const { markers } = this.state;\n\n      markers.get(id).comment = target.value;\n\n      this.setState({ markers: new Map(markers) }, () => this.fireOnChange({ updated: id }));\n    };\n\n  /**\n   * Return marker's close button click handler.\n   */\n  getMarkerPopupCloseHandler = (id) => () => {\n    const { markers } = this.state;\n\n    markers.get(id).popupVisible = false;\n\n    this.setState({\n      markers: new Map(markers),\n      popupVisible: false,\n      tooltipVisible: true,\n    });\n  };\n\n  /**\n   * Return marker's delete button click handler.\n   */\n  getMarkerDeleteHandler = (id) => () => {\n    const { markers } = this.state;\n    const removed = { uuid: id, ...markers.get(id) };\n    markers.delete(id);\n\n    this.setState(\n      {\n        markers: new Map(markers),\n        popupVisible: false,\n      },\n      () => this.fireOnChange({ removed })\n    );\n  };\n\n  hideTooltip = () => {\n    if (!this.markerDragging) {\n      this.setState({ tooltipVisible: false });\n    }\n  };\n\n  showTooltip = () => {\n    if (!this.markerDragging) {\n      this.setState({ tooltipVisible: true });\n    }\n  };\n\n  updateTooltipPosition = ({ containerPoint: { x, y } }) => {\n    this.setState({ tooltipPosition: { x, y } });\n  };\n\n  handleMarkerDragStart = () => {\n    this.markerDragging = true;\n  };\n\n  /**\n   * Fit all markers inside map's view.\n   */\n  fitMarkers() {\n    const { markers } = this.state;\n    const { initialZoom } = this.props;\n\n    if (markers.size === 1) {\n      this.leafletMap.setView([...markers.values()][0].position, initialZoom);\n    }\n\n    if (markers.size >= 2) {\n      this.leafletMap.fitBounds(\n        [...markers.values()].map(({ position }) => position),\n        {\n          animate: false,\n        }\n      );\n    }\n  }\n\n  render() {\n    const { markers, popupVisible, tooltipPosition, tooltipVisible } = this.state;\n    const {\n      children,\n      mapProps: { bounds, ...mapProps },\n      initialPosition,\n      initialZoom,\n    } = this.props;\n\n    return (\n      <div className=\"annotation-input\">\n        <MapContainer\n          center={initialPosition}\n          zoom={initialZoom}\n          scrollWheelZoom={false}\n          doubleClickZoom={false}\n          whenCreated={this.handleWhenCreated}\n          {...mapProps}\n        >\n          <MapEvents\n            onClick={this.handleClick}\n            onPopupOpen={this.handlePopupOpen}\n            onMouseOver={this.showTooltip}\n            onMouseOut={this.hideTooltip}\n            onMouseMove={this.updateTooltipPosition}\n          />\n          {children}\n          {[...markers.entries()].map(([id, marker]) => (\n            <Marker\n              key={id}\n              position={marker.position}\n              comment={marker.comment}\n              popupVisible={marker.popupVisible}\n              onDragStart={this.handleMarkerDragStart}\n              onDragEnd={this.getMarkerDragEndHandler(id)}\n              onClick={this.getMarkerClickHandler(id)}\n              onCommentChange={this.getMarkerCommentChangeHandler(id)}\n              onPopupClose={this.getMarkerPopupCloseHandler(id)}\n              onDelete={this.getMarkerDeleteHandler(id)}\n              onMouseOver={this.hideTooltip}\n              onMouseOut={this.showTooltip}\n              onFocus={() => {}}\n              onBlur={() => {}}\n            />\n          ))}\n          <Tooltip visible={tooltipVisible && !popupVisible} position={tooltipPosition} />\n        </MapContainer>\n      </div>\n    );\n  }\n}\n\nfunction MapEvents({ onClick, onPopupOpen, onMouseOver, onMouseOut, onMouseMove }) {\n  useMapEvents({\n    click: onClick,\n    popupopen: onPopupOpen,\n    mouseover: onMouseOver,\n    mouseout: onMouseOut,\n    mousemove: onMouseMove,\n  });\n  return null;\n}\n\nAnnotationInput.propTypes = {\n  initialMarkers: PropTypes.arrayOf(\n    PropTypes.shape({\n      /**\n       * Marker's unique ID.\n       */\n      guid: PropTypes.string.isRequired,\n      /**\n       * Marker's position as [lat, lng].\n       */\n      position: PropTypes.arrayOf(PropTypes.number).isRequired,\n      /**\n       * Marker's comment.\n       */\n      comment: PropTypes.string,\n    })\n  ),\n  /**\n   * Initial position. Used when no initial markers are passed.\n   */\n  initialPosition: PropTypes.arrayOf(PropTypes.number),\n  /**\n   * Initial zoom.\n   */\n  initialZoom: PropTypes.number,\n  /**\n   * (Optional) Callback to run whenever user interacts with markers.\n   * Array of marker objects is passed as first argument.\n   */\n  onChange: PropTypes.func,\n  /**\n   * Pass any tiles/layers to be rendered within leaflet component.\n   */\n  children: PropTypes.node.isRequired,\n  /**\n   * Any extra props to be passed to Map component.\n   */\n  mapProps: PropTypes.objectOf(PropTypes.any),\n};\n\nAnnotationInput.defaultProps = {\n  initialMarkers: [],\n  initialPosition: null,\n  initialZoom: 0,\n  onChange: null,\n  mapProps: {},\n};\n\nexport default AnnotationInput;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Components\nimport { StreetMapLayer } from 'common/components/StreetMapLayer';\nimport AnnotationInput from '../AnnotationInput';\n\n/**\n * Geolocation annotation input component.\n */\nconst GeolocationAnnotationInput = (props) => (\n  <div className=\"geolocation-annotation-input\">\n    <AnnotationInput {...props}>\n      <StreetMapLayer />\n    </AnnotationInput>\n  </div>\n);\n\nGeolocationAnnotationInput.propTypes = {\n  initialMarkers: PropTypes.arrayOf(\n    PropTypes.shape({\n      /**\n       * Marker's position as [lat, lng].\n       */\n      position: PropTypes.arrayOf(PropTypes.number).isRequired,\n      /**\n       * Marker's description.\n       */\n      description: PropTypes.string,\n    })\n  ),\n  /**\n   * Initial geolocation position. Used when no initial markers are passed.\n   */\n  initialPosition: PropTypes.arrayOf(PropTypes.number),\n  /**\n   * Initial zoom.\n   */\n  initialZoom: PropTypes.number,\n  /**\n   * (Optional) Callback to run whenever user interacts with markers.\n   * Array of marker objects is passed as first argument.\n   */\n  onChange: PropTypes.func,\n};\n\nGeolocationAnnotationInput.defaultProps = {\n  initialMarkers: [],\n  initialPosition: [0, 0],\n  initialZoom: 17,\n  onChange: null,\n};\n\nexport default GeolocationAnnotationInput;\n","// Libraries\nimport React, { memo, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport debounce from 'lodash/debounce';\n\n// State\nimport { getQuestionInputsMap, pushResponseEntry } from 'state/ducks/engagement';\nimport { deleteEntry, patchEntry, postEntry } from 'state/helpers/responses';\n\n// Utils\nimport { confirmValidMarkers } from 'engagement/utils/helpers';\n\n// Components\nimport GeolocationAnnotationInput from 'engagement/components/inputs/GeolocationAnnotationInput';\n\nexport function GeolocationQuestion(props) {\n  const { question, currentQuestionValues, dispatchUpdateQuestionValue } = props;\n  const questionValue = currentQuestionValues?.[question.id] || {};\n  const inputsMap = useSelector(getQuestionInputsMap);\n  const dispatch = useDispatch();\n  const dispatchDebounced = useCallback(debounce(dispatch, 300), []);\n  const { centre, zoom } = question.questionGeolocation;\n\n  const markers = useMemo(() => {\n    return Object.entries(questionValue).reduce((accumulator, [inputId, { value }]) => {\n      const validMarkers = confirmValidMarkers(value, 'lat', 'lng');\n      accumulator[inputId] = validMarkers.map(({ guid, lat, lng, comment }) => ({\n        guid,\n        position: [lat, lng],\n        comment,\n      }));\n\n      return accumulator;\n    }, {});\n  }, [questionValue]);\n\n  const getOnChangeHandler = (inputId) => (markersMap, meta) => {\n    const newValue = Object.entries(markersMap).map(([guid, marker]) => {\n      const { position, comment } = marker;\n      const [lat, lng] = position;\n      return { guid, lat, lng, comment };\n    });\n\n    const newQuestionValue = { [inputId]: { value: newValue } };\n    dispatchUpdateQuestionValue(question.id, newQuestionValue, true);\n\n    if (meta.removed) {\n      const entry = deleteEntry({\n        questionUuid: question.uuid,\n        inputUuid: inputsMap[inputId].uuid,\n        responseUuid: meta.removed.uuid,\n        inputAnswer: meta.removed.position.join(','),\n        comment: meta.removed.comment,\n      });\n      dispatch(pushResponseEntry(entry));\n      return;\n    }\n\n    const lastMarkerUuid = meta.created || meta.updated;\n    const data = {\n      questionUuid: question.uuid,\n      inputUuid: inputsMap[inputId].uuid,\n      responseUuid: lastMarkerUuid,\n      inputAnswer: markersMap[lastMarkerUuid].position.join(','),\n      comment: markersMap[lastMarkerUuid].comment,\n    };\n\n    if (meta.created) dispatch(pushResponseEntry(postEntry(data)));\n    else dispatchDebounced(pushResponseEntry(patchEntry(data)));\n  };\n\n  return (\n    <div className=\"geolocation-question\">\n      {question.inputs.map(({ id }) => (\n        <GeolocationAnnotationInput\n          key={id}\n          initialMarkers={markers[id]}\n          onChange={getOnChangeHandler(id)}\n          initialPosition={[centre.x, centre.y]}\n          initialZoom={zoom}\n        />\n      ))}\n    </div>\n  );\n}\n\nGeolocationQuestion.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n    uuid: PropTypes.string.isRequired,\n    questionGeolocation: PropTypes.shape({\n      centre: PropTypes.shape({\n        x: PropTypes.number.isRequired,\n        y: PropTypes.number.isRequired,\n      }).isRequired,\n      zoom: PropTypes.number.isRequired,\n    }).isRequired,\n  }).isRequired,\n  currentQuestionValues: PropTypes.shape({}),\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n};\n\nGeolocationQuestion.defaultProps = {\n  currentQuestionValues: {},\n};\n\nexport default memo(GeolocationQuestion);\n","import defineProperty from \"./defineProperty.js\";\nexport default function _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? Object(arguments[i]) : {};\n    var ownKeys = Object.keys(source);\n\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n\n    ownKeys.forEach(function (key) {\n      defineProperty(target, key, source[key]);\n    });\n  }\n\n  return target;\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { createRef, createElement, Component, createContext } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport invariant from 'invariant';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport PropTypes from 'prop-types';\n\nvar Manager = function () {\n  function Manager() {\n    _classCallCheck(this, Manager);\n\n    _defineProperty(this, \"refs\", {});\n  }\n\n  _createClass(Manager, [{\n    key: \"add\",\n    value: function add(collection, ref) {\n      if (!this.refs[collection]) {\n        this.refs[collection] = [];\n      }\n\n      this.refs[collection].push(ref);\n    }\n  }, {\n    key: \"remove\",\n    value: function remove(collection, ref) {\n      var index = this.getIndex(collection, ref);\n\n      if (index !== -1) {\n        this.refs[collection].splice(index, 1);\n      }\n    }\n  }, {\n    key: \"isActive\",\n    value: function isActive() {\n      return this.active;\n    }\n  }, {\n    key: \"getActive\",\n    value: function getActive() {\n      var _this = this;\n\n      return this.refs[this.active.collection].find(function (_ref) {\n        var node = _ref.node;\n        return node.sortableInfo.index == _this.active.index;\n      });\n    }\n  }, {\n    key: \"getIndex\",\n    value: function getIndex(collection, ref) {\n      return this.refs[collection].indexOf(ref);\n    }\n  }, {\n    key: \"getOrderedRefs\",\n    value: function getOrderedRefs() {\n      var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.active.collection;\n      return this.refs[collection].sort(sortByIndex);\n    }\n  }]);\n\n  return Manager;\n}();\n\nfunction sortByIndex(_ref2, _ref3) {\n  var index1 = _ref2.node.sortableInfo.index;\n  var index2 = _ref3.node.sortableInfo.index;\n  return index1 - index2;\n}\n\nfunction arrayMove(array, from, to) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof console !== 'undefined') {\n      console.warn(\"Deprecation warning: arrayMove will no longer be exported by 'react-sortable-hoc' in the next major release. Please install the `array-move` package locally instead. https://www.npmjs.com/package/array-move\");\n    }\n  }\n\n  array = array.slice();\n  array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n  return array;\n}\nfunction omit(obj, keysToOmit) {\n  return Object.keys(obj).reduce(function (acc, key) {\n    if (keysToOmit.indexOf(key) === -1) {\n      acc[key] = obj[key];\n    }\n\n    return acc;\n  }, {});\n}\nvar events = {\n  end: ['touchend', 'touchcancel', 'mouseup'],\n  move: ['touchmove', 'mousemove'],\n  start: ['touchstart', 'mousedown']\n};\nvar vendorPrefix = function () {\n  if (typeof window === 'undefined' || typeof document === 'undefined') {\n    return '';\n  }\n\n  var styles = window.getComputedStyle(document.documentElement, '') || ['-moz-hidden-iframe'];\n  var pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/) || styles.OLink === '' && ['', 'o'])[1];\n\n  switch (pre) {\n    case 'ms':\n      return 'ms';\n\n    default:\n      return pre && pre.length ? pre[0].toUpperCase() + pre.substr(1) : '';\n  }\n}();\nfunction setInlineStyles(node, styles) {\n  Object.keys(styles).forEach(function (key) {\n    node.style[key] = styles[key];\n  });\n}\nfunction setTranslate3d(node, translate) {\n  node.style[\"\".concat(vendorPrefix, \"Transform\")] = translate == null ? '' : \"translate3d(\".concat(translate.x, \"px,\").concat(translate.y, \"px,0)\");\n}\nfunction setTransitionDuration(node, duration) {\n  node.style[\"\".concat(vendorPrefix, \"TransitionDuration\")] = duration == null ? '' : \"\".concat(duration, \"ms\");\n}\nfunction closest(el, fn) {\n  while (el) {\n    if (fn(el)) {\n      return el;\n    }\n\n    el = el.parentNode;\n  }\n\n  return null;\n}\nfunction limit(min, max, value) {\n  return Math.max(min, Math.min(value, max));\n}\n\nfunction getPixelValue(stringValue) {\n  if (stringValue.substr(-2) === 'px') {\n    return parseFloat(stringValue);\n  }\n\n  return 0;\n}\n\nfunction getElementMargin(element) {\n  var style = window.getComputedStyle(element);\n  return {\n    bottom: getPixelValue(style.marginBottom),\n    left: getPixelValue(style.marginLeft),\n    right: getPixelValue(style.marginRight),\n    top: getPixelValue(style.marginTop)\n  };\n}\nfunction provideDisplayName(prefix, Component$$1) {\n  var componentName = Component$$1.displayName || Component$$1.name;\n  return componentName ? \"\".concat(prefix, \"(\").concat(componentName, \")\") : prefix;\n}\nfunction getScrollAdjustedBoundingClientRect(node, scrollDelta) {\n  var boundingClientRect = node.getBoundingClientRect();\n  return {\n    top: boundingClientRect.top + scrollDelta.top,\n    left: boundingClientRect.left + scrollDelta.left\n  };\n}\nfunction getPosition(event) {\n  if (event.touches && event.touches.length) {\n    return {\n      x: event.touches[0].pageX,\n      y: event.touches[0].pageY\n    };\n  } else if (event.changedTouches && event.changedTouches.length) {\n    return {\n      x: event.changedTouches[0].pageX,\n      y: event.changedTouches[0].pageY\n    };\n  } else {\n    return {\n      x: event.pageX,\n      y: event.pageY\n    };\n  }\n}\nfunction isTouchEvent(event) {\n  return event.touches && event.touches.length || event.changedTouches && event.changedTouches.length;\n}\nfunction getEdgeOffset(node, parent) {\n  var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n    left: 0,\n    top: 0\n  };\n\n  if (!node) {\n    return undefined;\n  }\n\n  var nodeOffset = {\n    left: offset.left + node.offsetLeft,\n    top: offset.top + node.offsetTop\n  };\n\n  if (node.parentNode === parent) {\n    return nodeOffset;\n  }\n\n  return getEdgeOffset(node.parentNode, parent, nodeOffset);\n}\nfunction getTargetIndex(newIndex, prevIndex, oldIndex) {\n  if (newIndex < oldIndex && newIndex > prevIndex) {\n    return newIndex - 1;\n  } else if (newIndex > oldIndex && newIndex < prevIndex) {\n    return newIndex + 1;\n  } else {\n    return newIndex;\n  }\n}\nfunction getLockPixelOffset(_ref) {\n  var lockOffset = _ref.lockOffset,\n      width = _ref.width,\n      height = _ref.height;\n  var offsetX = lockOffset;\n  var offsetY = lockOffset;\n  var unit = 'px';\n\n  if (typeof lockOffset === 'string') {\n    var match = /^[+-]?\\d*(?:\\.\\d*)?(px|%)$/.exec(lockOffset);\n    invariant(match !== null, 'lockOffset value should be a number or a string of a ' + 'number followed by \"px\" or \"%\". Given %s', lockOffset);\n    offsetX = parseFloat(lockOffset);\n    offsetY = parseFloat(lockOffset);\n    unit = match[1];\n  }\n\n  invariant(isFinite(offsetX) && isFinite(offsetY), 'lockOffset value should be a finite. Given %s', lockOffset);\n\n  if (unit === '%') {\n    offsetX = offsetX * width / 100;\n    offsetY = offsetY * height / 100;\n  }\n\n  return {\n    x: offsetX,\n    y: offsetY\n  };\n}\nfunction getLockPixelOffsets(_ref2) {\n  var height = _ref2.height,\n      width = _ref2.width,\n      lockOffset = _ref2.lockOffset;\n  var offsets = Array.isArray(lockOffset) ? lockOffset : [lockOffset, lockOffset];\n  invariant(offsets.length === 2, 'lockOffset prop of SortableContainer should be a single ' + 'value or an array of exactly two values. Given %s', lockOffset);\n\n  var _offsets = _slicedToArray(offsets, 2),\n      minLockOffset = _offsets[0],\n      maxLockOffset = _offsets[1];\n\n  return [getLockPixelOffset({\n    height: height,\n    lockOffset: minLockOffset,\n    width: width\n  }), getLockPixelOffset({\n    height: height,\n    lockOffset: maxLockOffset,\n    width: width\n  })];\n}\n\nfunction isScrollable(el) {\n  var computedStyle = window.getComputedStyle(el);\n  var overflowRegex = /(auto|scroll)/;\n  var properties = ['overflow', 'overflowX', 'overflowY'];\n  return properties.find(function (property) {\n    return overflowRegex.test(computedStyle[property]);\n  });\n}\n\nfunction getScrollingParent(el) {\n  if (!(el instanceof HTMLElement)) {\n    return null;\n  } else if (isScrollable(el)) {\n    return el;\n  } else {\n    return getScrollingParent(el.parentNode);\n  }\n}\nfunction getContainerGridGap(element) {\n  var style = window.getComputedStyle(element);\n\n  if (style.display === 'grid') {\n    return {\n      x: getPixelValue(style.gridColumnGap),\n      y: getPixelValue(style.gridRowGap)\n    };\n  }\n\n  return {\n    x: 0,\n    y: 0\n  };\n}\nvar KEYCODE = {\n  TAB: 9,\n  ESC: 27,\n  SPACE: 32,\n  LEFT: 37,\n  UP: 38,\n  RIGHT: 39,\n  DOWN: 40\n};\nvar NodeType = {\n  Anchor: 'A',\n  Button: 'BUTTON',\n  Canvas: 'CANVAS',\n  Input: 'INPUT',\n  Option: 'OPTION',\n  Textarea: 'TEXTAREA',\n  Select: 'SELECT'\n};\nfunction cloneNode(node) {\n  var selector = 'input, textarea, select, canvas, [contenteditable]';\n  var fields = node.querySelectorAll(selector);\n  var clonedNode = node.cloneNode(true);\n\n  var clonedFields = _toConsumableArray(clonedNode.querySelectorAll(selector));\n\n  clonedFields.forEach(function (field, i) {\n    if (field.type !== 'file') {\n      field.value = fields[i].value;\n    }\n\n    if (field.type === 'radio' && field.name) {\n      field.name = \"__sortableClone__\".concat(field.name);\n    }\n\n    if (field.tagName === NodeType.Canvas && fields[i].width > 0 && fields[i].height > 0) {\n      var destCtx = field.getContext('2d');\n      destCtx.drawImage(fields[i], 0, 0);\n    }\n  });\n  return clonedNode;\n}\n\nfunction sortableHandle(WrappedComponent) {\n  var _class, _temp;\n\n  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n    withRef: false\n  };\n  return _temp = _class = function (_React$Component) {\n    _inherits(WithSortableHandle, _React$Component);\n\n    function WithSortableHandle() {\n      var _getPrototypeOf2;\n\n      var _this;\n\n      _classCallCheck(this, WithSortableHandle);\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WithSortableHandle)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"wrappedInstance\", createRef());\n\n      return _this;\n    }\n\n    _createClass(WithSortableHandle, [{\n      key: \"componentDidMount\",\n      value: function componentDidMount() {\n        var node = findDOMNode(this);\n        node.sortableHandle = true;\n      }\n    }, {\n      key: \"getWrappedInstance\",\n      value: function getWrappedInstance() {\n        invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableHandle() call');\n        return this.wrappedInstance.current;\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        var ref = config.withRef ? this.wrappedInstance : null;\n        return createElement(WrappedComponent, _extends({\n          ref: ref\n        }, this.props));\n      }\n    }]);\n\n    return WithSortableHandle;\n  }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableHandle', WrappedComponent)), _temp;\n}\nfunction isSortableHandle(node) {\n  return node.sortableHandle != null;\n}\n\nvar AutoScroller = function () {\n  function AutoScroller(container, onScrollCallback) {\n    _classCallCheck(this, AutoScroller);\n\n    this.container = container;\n    this.onScrollCallback = onScrollCallback;\n  }\n\n  _createClass(AutoScroller, [{\n    key: \"clear\",\n    value: function clear() {\n      if (this.interval == null) {\n        return;\n      }\n\n      clearInterval(this.interval);\n      this.interval = null;\n    }\n  }, {\n    key: \"update\",\n    value: function update(_ref) {\n      var _this = this;\n\n      var translate = _ref.translate,\n          minTranslate = _ref.minTranslate,\n          maxTranslate = _ref.maxTranslate,\n          width = _ref.width,\n          height = _ref.height;\n      var direction = {\n        x: 0,\n        y: 0\n      };\n      var speed = {\n        x: 1,\n        y: 1\n      };\n      var acceleration = {\n        x: 10,\n        y: 10\n      };\n      var _this$container = this.container,\n          scrollTop = _this$container.scrollTop,\n          scrollLeft = _this$container.scrollLeft,\n          scrollHeight = _this$container.scrollHeight,\n          scrollWidth = _this$container.scrollWidth,\n          clientHeight = _this$container.clientHeight,\n          clientWidth = _this$container.clientWidth;\n      var isTop = scrollTop === 0;\n      var isBottom = scrollHeight - scrollTop - clientHeight === 0;\n      var isLeft = scrollLeft === 0;\n      var isRight = scrollWidth - scrollLeft - clientWidth === 0;\n\n      if (translate.y >= maxTranslate.y - height / 2 && !isBottom) {\n        direction.y = 1;\n        speed.y = acceleration.y * Math.abs((maxTranslate.y - height / 2 - translate.y) / height);\n      } else if (translate.x >= maxTranslate.x - width / 2 && !isRight) {\n        direction.x = 1;\n        speed.x = acceleration.x * Math.abs((maxTranslate.x - width / 2 - translate.x) / width);\n      } else if (translate.y <= minTranslate.y + height / 2 && !isTop) {\n        direction.y = -1;\n        speed.y = acceleration.y * Math.abs((translate.y - height / 2 - minTranslate.y) / height);\n      } else if (translate.x <= minTranslate.x + width / 2 && !isLeft) {\n        direction.x = -1;\n        speed.x = acceleration.x * Math.abs((translate.x - width / 2 - minTranslate.x) / width);\n      }\n\n      if (this.interval) {\n        this.clear();\n        this.isAutoScrolling = false;\n      }\n\n      if (direction.x !== 0 || direction.y !== 0) {\n        this.interval = setInterval(function () {\n          _this.isAutoScrolling = true;\n          var offset = {\n            left: speed.x * direction.x,\n            top: speed.y * direction.y\n          };\n          _this.container.scrollTop += offset.top;\n          _this.container.scrollLeft += offset.left;\n\n          _this.onScrollCallback(offset);\n        }, 5);\n      }\n    }\n  }]);\n\n  return AutoScroller;\n}();\n\nfunction defaultGetHelperDimensions(_ref) {\n  var node = _ref.node;\n  return {\n    height: node.offsetHeight,\n    width: node.offsetWidth\n  };\n}\n\nfunction defaultShouldCancelStart(event) {\n  var interactiveElements = [NodeType.Input, NodeType.Textarea, NodeType.Select, NodeType.Option, NodeType.Button];\n\n  if (interactiveElements.indexOf(event.target.tagName) !== -1) {\n    return true;\n  }\n\n  if (closest(event.target, function (el) {\n    return el.contentEditable === 'true';\n  })) {\n    return true;\n  }\n\n  return false;\n}\n\nvar propTypes = {\n  axis: PropTypes.oneOf(['x', 'y', 'xy']),\n  contentWindow: PropTypes.any,\n  disableAutoscroll: PropTypes.bool,\n  distance: PropTypes.number,\n  getContainer: PropTypes.func,\n  getHelperDimensions: PropTypes.func,\n  helperClass: PropTypes.string,\n  helperContainer: PropTypes.oneOfType([PropTypes.func, typeof HTMLElement === 'undefined' ? PropTypes.any : PropTypes.instanceOf(HTMLElement)]),\n  hideSortableGhost: PropTypes.bool,\n  keyboardSortingTransitionDuration: PropTypes.number,\n  lockAxis: PropTypes.string,\n  lockOffset: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))]),\n  lockToContainerEdges: PropTypes.bool,\n  onSortEnd: PropTypes.func,\n  onSortMove: PropTypes.func,\n  onSortOver: PropTypes.func,\n  onSortStart: PropTypes.func,\n  pressDelay: PropTypes.number,\n  pressThreshold: PropTypes.number,\n  keyCodes: PropTypes.shape({\n    lift: PropTypes.arrayOf(PropTypes.number),\n    drop: PropTypes.arrayOf(PropTypes.number),\n    cancel: PropTypes.arrayOf(PropTypes.number),\n    up: PropTypes.arrayOf(PropTypes.number),\n    down: PropTypes.arrayOf(PropTypes.number)\n  }),\n  shouldCancelStart: PropTypes.func,\n  transitionDuration: PropTypes.number,\n  updateBeforeSortStart: PropTypes.func,\n  useDragHandle: PropTypes.bool,\n  useWindowAsScrollContainer: PropTypes.bool\n};\nvar defaultKeyCodes = {\n  lift: [KEYCODE.SPACE],\n  drop: [KEYCODE.SPACE],\n  cancel: [KEYCODE.ESC],\n  up: [KEYCODE.UP, KEYCODE.LEFT],\n  down: [KEYCODE.DOWN, KEYCODE.RIGHT]\n};\nvar defaultProps = {\n  axis: 'y',\n  disableAutoscroll: false,\n  distance: 0,\n  getHelperDimensions: defaultGetHelperDimensions,\n  hideSortableGhost: true,\n  lockOffset: '50%',\n  lockToContainerEdges: false,\n  pressDelay: 0,\n  pressThreshold: 5,\n  keyCodes: defaultKeyCodes,\n  shouldCancelStart: defaultShouldCancelStart,\n  transitionDuration: 300,\n  useWindowAsScrollContainer: false\n};\nvar omittedProps = Object.keys(propTypes);\nfunction validateProps(props) {\n  invariant(!(props.distance && props.pressDelay), 'Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.');\n}\n\nfunction _finallyRethrows(body, finalizer) {\n  try {\n    var result = body();\n  } catch (e) {\n    return finalizer(true, e);\n  }\n\n  if (result && result.then) {\n    return result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n  }\n\n  return finalizer(false, value);\n}\nvar SortableContext = createContext({\n  manager: {}\n});\nfunction sortableContainer(WrappedComponent) {\n  var _class, _temp;\n\n  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n    withRef: false\n  };\n  return _temp = _class = function (_React$Component) {\n    _inherits(WithSortableContainer, _React$Component);\n\n    function WithSortableContainer(props) {\n      var _this;\n\n      _classCallCheck(this, WithSortableContainer);\n\n      _this = _possibleConstructorReturn(this, _getPrototypeOf(WithSortableContainer).call(this, props));\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {});\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleStart\", function (event) {\n        var _this$props = _this.props,\n            distance = _this$props.distance,\n            shouldCancelStart = _this$props.shouldCancelStart;\n\n        if (event.button === 2 || shouldCancelStart(event)) {\n          return;\n        }\n\n        _this.touched = true;\n        _this.position = getPosition(event);\n        var node = closest(event.target, function (el) {\n          return el.sortableInfo != null;\n        });\n\n        if (node && node.sortableInfo && _this.nodeIsChild(node) && !_this.state.sorting) {\n          var useDragHandle = _this.props.useDragHandle;\n          var _node$sortableInfo = node.sortableInfo,\n              index = _node$sortableInfo.index,\n              collection = _node$sortableInfo.collection,\n              disabled = _node$sortableInfo.disabled;\n\n          if (disabled) {\n            return;\n          }\n\n          if (useDragHandle && !closest(event.target, isSortableHandle)) {\n            return;\n          }\n\n          _this.manager.active = {\n            collection: collection,\n            index: index\n          };\n\n          if (!isTouchEvent(event) && event.target.tagName === NodeType.Anchor) {\n            event.preventDefault();\n          }\n\n          if (!distance) {\n            if (_this.props.pressDelay === 0) {\n              _this.handlePress(event);\n            } else {\n              _this.pressTimer = setTimeout(function () {\n                return _this.handlePress(event);\n              }, _this.props.pressDelay);\n            }\n          }\n        }\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"nodeIsChild\", function (node) {\n        return node.sortableInfo.manager === _this.manager;\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleMove\", function (event) {\n        var _this$props2 = _this.props,\n            distance = _this$props2.distance,\n            pressThreshold = _this$props2.pressThreshold;\n\n        if (!_this.state.sorting && _this.touched && !_this._awaitingUpdateBeforeSortStart) {\n          var position = getPosition(event);\n          var delta = {\n            x: _this.position.x - position.x,\n            y: _this.position.y - position.y\n          };\n          var combinedDelta = Math.abs(delta.x) + Math.abs(delta.y);\n          _this.delta = delta;\n\n          if (!distance && (!pressThreshold || combinedDelta >= pressThreshold)) {\n            clearTimeout(_this.cancelTimer);\n            _this.cancelTimer = setTimeout(_this.cancel, 0);\n          } else if (distance && combinedDelta >= distance && _this.manager.isActive()) {\n            _this.handlePress(event);\n          }\n        }\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleEnd\", function () {\n        _this.touched = false;\n\n        _this.cancel();\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cancel\", function () {\n        var distance = _this.props.distance;\n        var sorting = _this.state.sorting;\n\n        if (!sorting) {\n          if (!distance) {\n            clearTimeout(_this.pressTimer);\n          }\n\n          _this.manager.active = null;\n        }\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handlePress\", function (event) {\n        try {\n          var active = _this.manager.getActive();\n\n          var _temp6 = function () {\n            if (active) {\n              var _temp7 = function _temp7() {\n                var index = _node.sortableInfo.index;\n                var margin = getElementMargin(_node);\n                var gridGap = getContainerGridGap(_this.container);\n\n                var containerBoundingRect = _this.scrollContainer.getBoundingClientRect();\n\n                var dimensions = _getHelperDimensions({\n                  index: index,\n                  node: _node,\n                  collection: _collection\n                });\n\n                _this.node = _node;\n                _this.margin = margin;\n                _this.gridGap = gridGap;\n                _this.width = dimensions.width;\n                _this.height = dimensions.height;\n                _this.marginOffset = {\n                  x: _this.margin.left + _this.margin.right + _this.gridGap.x,\n                  y: Math.max(_this.margin.top, _this.margin.bottom, _this.gridGap.y)\n                };\n                _this.boundingClientRect = _node.getBoundingClientRect();\n                _this.containerBoundingRect = containerBoundingRect;\n                _this.index = index;\n                _this.newIndex = index;\n                _this.axis = {\n                  x: _axis.indexOf('x') >= 0,\n                  y: _axis.indexOf('y') >= 0\n                };\n                _this.offsetEdge = getEdgeOffset(_node, _this.container);\n\n                if (_isKeySorting) {\n                  _this.initialOffset = getPosition(_objectSpread({}, event, {\n                    pageX: _this.boundingClientRect.left,\n                    pageY: _this.boundingClientRect.top\n                  }));\n                } else {\n                  _this.initialOffset = getPosition(event);\n                }\n\n                _this.initialScroll = {\n                  left: _this.scrollContainer.scrollLeft,\n                  top: _this.scrollContainer.scrollTop\n                };\n                _this.initialWindowScroll = {\n                  left: window.pageXOffset,\n                  top: window.pageYOffset\n                };\n                _this.helper = _this.helperContainer.appendChild(cloneNode(_node));\n                setInlineStyles(_this.helper, {\n                  boxSizing: 'border-box',\n                  height: \"\".concat(_this.height, \"px\"),\n                  left: \"\".concat(_this.boundingClientRect.left - margin.left, \"px\"),\n                  pointerEvents: 'none',\n                  position: 'fixed',\n                  top: \"\".concat(_this.boundingClientRect.top - margin.top, \"px\"),\n                  width: \"\".concat(_this.width, \"px\")\n                });\n\n                if (_isKeySorting) {\n                  _this.helper.focus();\n                }\n\n                if (_hideSortableGhost) {\n                  _this.sortableGhost = _node;\n                  setInlineStyles(_node, {\n                    opacity: 0,\n                    visibility: 'hidden'\n                  });\n                }\n\n                _this.minTranslate = {};\n                _this.maxTranslate = {};\n\n                if (_isKeySorting) {\n                  var _ref = _useWindowAsScrollContainer ? {\n                    top: 0,\n                    left: 0,\n                    width: _this.contentWindow.innerWidth,\n                    height: _this.contentWindow.innerHeight\n                  } : _this.containerBoundingRect,\n                      containerTop = _ref.top,\n                      containerLeft = _ref.left,\n                      containerWidth = _ref.width,\n                      containerHeight = _ref.height;\n\n                  var containerBottom = containerTop + containerHeight;\n                  var containerRight = containerLeft + containerWidth;\n\n                  if (_this.axis.x) {\n                    _this.minTranslate.x = containerLeft - _this.boundingClientRect.left;\n                    _this.maxTranslate.x = containerRight - (_this.boundingClientRect.left + _this.width);\n                  }\n\n                  if (_this.axis.y) {\n                    _this.minTranslate.y = containerTop - _this.boundingClientRect.top;\n                    _this.maxTranslate.y = containerBottom - (_this.boundingClientRect.top + _this.height);\n                  }\n                } else {\n                  if (_this.axis.x) {\n                    _this.minTranslate.x = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.left) - _this.boundingClientRect.left - _this.width / 2;\n                    _this.maxTranslate.x = (_useWindowAsScrollContainer ? _this.contentWindow.innerWidth : containerBoundingRect.left + containerBoundingRect.width) - _this.boundingClientRect.left - _this.width / 2;\n                  }\n\n                  if (_this.axis.y) {\n                    _this.minTranslate.y = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.top) - _this.boundingClientRect.top - _this.height / 2;\n                    _this.maxTranslate.y = (_useWindowAsScrollContainer ? _this.contentWindow.innerHeight : containerBoundingRect.top + containerBoundingRect.height) - _this.boundingClientRect.top - _this.height / 2;\n                  }\n                }\n\n                if (_helperClass) {\n                  _helperClass.split(' ').forEach(function (className) {\n                    return _this.helper.classList.add(className);\n                  });\n                }\n\n                _this.listenerNode = event.touches ? event.target : _this.contentWindow;\n\n                if (_isKeySorting) {\n                  _this.listenerNode.addEventListener('wheel', _this.handleKeyEnd, true);\n\n                  _this.listenerNode.addEventListener('mousedown', _this.handleKeyEnd, true);\n\n                  _this.listenerNode.addEventListener('keydown', _this.handleKeyDown);\n                } else {\n                  events.move.forEach(function (eventName) {\n                    return _this.listenerNode.addEventListener(eventName, _this.handleSortMove, false);\n                  });\n                  events.end.forEach(function (eventName) {\n                    return _this.listenerNode.addEventListener(eventName, _this.handleSortEnd, false);\n                  });\n                }\n\n                _this.setState({\n                  sorting: true,\n                  sortingIndex: index\n                });\n\n                if (_onSortStart) {\n                  _onSortStart({\n                    node: _node,\n                    index: index,\n                    collection: _collection,\n                    isKeySorting: _isKeySorting,\n                    nodes: _this.manager.getOrderedRefs(),\n                    helper: _this.helper\n                  }, event);\n                }\n\n                if (_isKeySorting) {\n                  _this.keyMove(0);\n                }\n              };\n\n              var _this$props3 = _this.props,\n                  _axis = _this$props3.axis,\n                  _getHelperDimensions = _this$props3.getHelperDimensions,\n                  _helperClass = _this$props3.helperClass,\n                  _hideSortableGhost = _this$props3.hideSortableGhost,\n                  updateBeforeSortStart = _this$props3.updateBeforeSortStart,\n                  _onSortStart = _this$props3.onSortStart,\n                  _useWindowAsScrollContainer = _this$props3.useWindowAsScrollContainer;\n              var _node = active.node,\n                  _collection = active.collection;\n              var _isKeySorting = _this.manager.isKeySorting;\n\n              var _temp8 = function () {\n                if (typeof updateBeforeSortStart === 'function') {\n                  _this._awaitingUpdateBeforeSortStart = true;\n\n                  var _temp9 = _finallyRethrows(function () {\n                    var index = _node.sortableInfo.index;\n                    return Promise.resolve(updateBeforeSortStart({\n                      collection: _collection,\n                      index: index,\n                      node: _node,\n                      isKeySorting: _isKeySorting\n                    }, event)).then(function () {});\n                  }, function (_wasThrown, _result) {\n                    _this._awaitingUpdateBeforeSortStart = false;\n                    if (_wasThrown) throw _result;\n                    return _result;\n                  });\n\n                  if (_temp9 && _temp9.then) return _temp9.then(function () {});\n                }\n              }();\n\n              return _temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8);\n            }\n          }();\n\n          return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);\n        } catch (e) {\n          return Promise.reject(e);\n        }\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortMove\", function (event) {\n        var onSortMove = _this.props.onSortMove;\n\n        if (typeof event.preventDefault === 'function' && event.cancelable) {\n          event.preventDefault();\n        }\n\n        _this.updateHelperPosition(event);\n\n        _this.animateNodes();\n\n        _this.autoscroll();\n\n        if (onSortMove) {\n          onSortMove(event);\n        }\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortEnd\", function (event) {\n        var _this$props4 = _this.props,\n            hideSortableGhost = _this$props4.hideSortableGhost,\n            onSortEnd = _this$props4.onSortEnd;\n        var _this$manager = _this.manager,\n            collection = _this$manager.active.collection,\n            isKeySorting = _this$manager.isKeySorting;\n\n        var nodes = _this.manager.getOrderedRefs();\n\n        if (_this.listenerNode) {\n          if (isKeySorting) {\n            _this.listenerNode.removeEventListener('wheel', _this.handleKeyEnd, true);\n\n            _this.listenerNode.removeEventListener('mousedown', _this.handleKeyEnd, true);\n\n            _this.listenerNode.removeEventListener('keydown', _this.handleKeyDown);\n          } else {\n            events.move.forEach(function (eventName) {\n              return _this.listenerNode.removeEventListener(eventName, _this.handleSortMove);\n            });\n            events.end.forEach(function (eventName) {\n              return _this.listenerNode.removeEventListener(eventName, _this.handleSortEnd);\n            });\n          }\n        }\n\n        _this.helper.parentNode.removeChild(_this.helper);\n\n        if (hideSortableGhost && _this.sortableGhost) {\n          setInlineStyles(_this.sortableGhost, {\n            opacity: '',\n            visibility: ''\n          });\n        }\n\n        for (var i = 0, len = nodes.length; i < len; i++) {\n          var _node2 = nodes[i];\n          var el = _node2.node;\n          _node2.edgeOffset = null;\n          _node2.boundingClientRect = null;\n          setTranslate3d(el, null);\n          setTransitionDuration(el, null);\n          _node2.translate = null;\n        }\n\n        _this.autoScroller.clear();\n\n        _this.manager.active = null;\n        _this.manager.isKeySorting = false;\n\n        _this.setState({\n          sorting: false,\n          sortingIndex: null\n        });\n\n        if (typeof onSortEnd === 'function') {\n          onSortEnd({\n            collection: collection,\n            newIndex: _this.newIndex,\n            oldIndex: _this.index,\n            isKeySorting: isKeySorting,\n            nodes: nodes\n          }, event);\n        }\n\n        _this.touched = false;\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"autoscroll\", function () {\n        var disableAutoscroll = _this.props.disableAutoscroll;\n        var isKeySorting = _this.manager.isKeySorting;\n\n        if (disableAutoscroll) {\n          _this.autoScroller.clear();\n\n          return;\n        }\n\n        if (isKeySorting) {\n          var translate = _objectSpread({}, _this.translate);\n\n          var scrollX = 0;\n          var scrollY = 0;\n\n          if (_this.axis.x) {\n            translate.x = Math.min(_this.maxTranslate.x, Math.max(_this.minTranslate.x, _this.translate.x));\n            scrollX = _this.translate.x - translate.x;\n          }\n\n          if (_this.axis.y) {\n            translate.y = Math.min(_this.maxTranslate.y, Math.max(_this.minTranslate.y, _this.translate.y));\n            scrollY = _this.translate.y - translate.y;\n          }\n\n          _this.translate = translate;\n          setTranslate3d(_this.helper, _this.translate);\n          _this.scrollContainer.scrollLeft += scrollX;\n          _this.scrollContainer.scrollTop += scrollY;\n          return;\n        }\n\n        _this.autoScroller.update({\n          height: _this.height,\n          maxTranslate: _this.maxTranslate,\n          minTranslate: _this.minTranslate,\n          translate: _this.translate,\n          width: _this.width\n        });\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onAutoScroll\", function (offset) {\n        _this.translate.x += offset.left;\n        _this.translate.y += offset.top;\n\n        _this.animateNodes();\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyDown\", function (event) {\n        var keyCode = event.keyCode;\n        var _this$props5 = _this.props,\n            shouldCancelStart = _this$props5.shouldCancelStart,\n            _this$props5$keyCodes = _this$props5.keyCodes,\n            customKeyCodes = _this$props5$keyCodes === void 0 ? {} : _this$props5$keyCodes;\n\n        var keyCodes = _objectSpread({}, defaultKeyCodes, customKeyCodes);\n\n        if (_this.manager.active && !_this.manager.isKeySorting || !_this.manager.active && (!keyCodes.lift.includes(keyCode) || shouldCancelStart(event) || !_this.isValidSortingTarget(event))) {\n          return;\n        }\n\n        event.stopPropagation();\n        event.preventDefault();\n\n        if (keyCodes.lift.includes(keyCode) && !_this.manager.active) {\n          _this.keyLift(event);\n        } else if (keyCodes.drop.includes(keyCode) && _this.manager.active) {\n          _this.keyDrop(event);\n        } else if (keyCodes.cancel.includes(keyCode)) {\n          _this.newIndex = _this.manager.active.index;\n\n          _this.keyDrop(event);\n        } else if (keyCodes.up.includes(keyCode)) {\n          _this.keyMove(-1);\n        } else if (keyCodes.down.includes(keyCode)) {\n          _this.keyMove(1);\n        }\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyLift\", function (event) {\n        var target = event.target;\n        var node = closest(target, function (el) {\n          return el.sortableInfo != null;\n        });\n        var _node$sortableInfo2 = node.sortableInfo,\n            index = _node$sortableInfo2.index,\n            collection = _node$sortableInfo2.collection;\n        _this.initialFocusedNode = target;\n        _this.manager.isKeySorting = true;\n        _this.manager.active = {\n          index: index,\n          collection: collection\n        };\n\n        _this.handlePress(event);\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyMove\", function (shift) {\n        var nodes = _this.manager.getOrderedRefs();\n\n        var lastIndex = nodes[nodes.length - 1].node.sortableInfo.index;\n        var newIndex = _this.newIndex + shift;\n        var prevIndex = _this.newIndex;\n\n        if (newIndex < 0 || newIndex > lastIndex) {\n          return;\n        }\n\n        _this.prevIndex = prevIndex;\n        _this.newIndex = newIndex;\n        var targetIndex = getTargetIndex(_this.newIndex, _this.prevIndex, _this.index);\n        var target = nodes.find(function (_ref2) {\n          var node = _ref2.node;\n          return node.sortableInfo.index === targetIndex;\n        });\n        var targetNode = target.node;\n        var scrollDelta = _this.containerScrollDelta;\n        var targetBoundingClientRect = target.boundingClientRect || getScrollAdjustedBoundingClientRect(targetNode, scrollDelta);\n        var targetTranslate = target.translate || {\n          x: 0,\n          y: 0\n        };\n        var targetPosition = {\n          top: targetBoundingClientRect.top + targetTranslate.y - scrollDelta.top,\n          left: targetBoundingClientRect.left + targetTranslate.x - scrollDelta.left\n        };\n        var shouldAdjustForSize = prevIndex < newIndex;\n        var sizeAdjustment = {\n          x: shouldAdjustForSize && _this.axis.x ? targetNode.offsetWidth - _this.width : 0,\n          y: shouldAdjustForSize && _this.axis.y ? targetNode.offsetHeight - _this.height : 0\n        };\n\n        _this.handleSortMove({\n          pageX: targetPosition.left + sizeAdjustment.x,\n          pageY: targetPosition.top + sizeAdjustment.y,\n          ignoreTransition: shift === 0\n        });\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyDrop\", function (event) {\n        _this.handleSortEnd(event);\n\n        if (_this.initialFocusedNode) {\n          _this.initialFocusedNode.focus();\n        }\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyEnd\", function (event) {\n        if (_this.manager.active) {\n          _this.keyDrop(event);\n        }\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isValidSortingTarget\", function (event) {\n        var useDragHandle = _this.props.useDragHandle;\n        var target = event.target;\n        var node = closest(target, function (el) {\n          return el.sortableInfo != null;\n        });\n        return node && node.sortableInfo && !node.sortableInfo.disabled && (useDragHandle ? isSortableHandle(target) : target.sortableInfo);\n      });\n\n      var manager = new Manager();\n      validateProps(props);\n      _this.manager = manager;\n      _this.wrappedInstance = createRef();\n      _this.sortableContextValue = {\n        manager: manager\n      };\n      _this.events = {\n        end: _this.handleEnd,\n        move: _this.handleMove,\n        start: _this.handleStart\n      };\n      return _this;\n    }\n\n    _createClass(WithSortableContainer, [{\n      key: \"componentDidMount\",\n      value: function componentDidMount() {\n        var _this2 = this;\n\n        var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n        var container = this.getContainer();\n        Promise.resolve(container).then(function (containerNode) {\n          _this2.container = containerNode;\n          _this2.document = _this2.container.ownerDocument || document;\n          var contentWindow = _this2.props.contentWindow || _this2.document.defaultView || window;\n          _this2.contentWindow = typeof contentWindow === 'function' ? contentWindow() : contentWindow;\n          _this2.scrollContainer = useWindowAsScrollContainer ? _this2.document.scrollingElement || _this2.document.documentElement : getScrollingParent(_this2.container) || _this2.container;\n          _this2.autoScroller = new AutoScroller(_this2.scrollContainer, _this2.onAutoScroll);\n          Object.keys(_this2.events).forEach(function (key) {\n            return events[key].forEach(function (eventName) {\n              return _this2.container.addEventListener(eventName, _this2.events[key], false);\n            });\n          });\n\n          _this2.container.addEventListener('keydown', _this2.handleKeyDown);\n        });\n      }\n    }, {\n      key: \"componentWillUnmount\",\n      value: function componentWillUnmount() {\n        var _this3 = this;\n\n        if (this.helper && this.helper.parentNode) {\n          this.helper.parentNode.removeChild(this.helper);\n        }\n\n        if (!this.container) {\n          return;\n        }\n\n        Object.keys(this.events).forEach(function (key) {\n          return events[key].forEach(function (eventName) {\n            return _this3.container.removeEventListener(eventName, _this3.events[key]);\n          });\n        });\n        this.container.removeEventListener('keydown', this.handleKeyDown);\n      }\n    }, {\n      key: \"updateHelperPosition\",\n      value: function updateHelperPosition(event) {\n        var _this$props6 = this.props,\n            lockAxis = _this$props6.lockAxis,\n            lockOffset = _this$props6.lockOffset,\n            lockToContainerEdges = _this$props6.lockToContainerEdges,\n            transitionDuration = _this$props6.transitionDuration,\n            _this$props6$keyboard = _this$props6.keyboardSortingTransitionDuration,\n            keyboardSortingTransitionDuration = _this$props6$keyboard === void 0 ? transitionDuration : _this$props6$keyboard;\n        var isKeySorting = this.manager.isKeySorting;\n        var ignoreTransition = event.ignoreTransition;\n        var offset = getPosition(event);\n        var translate = {\n          x: offset.x - this.initialOffset.x,\n          y: offset.y - this.initialOffset.y\n        };\n        translate.y -= window.pageYOffset - this.initialWindowScroll.top;\n        translate.x -= window.pageXOffset - this.initialWindowScroll.left;\n        this.translate = translate;\n\n        if (lockToContainerEdges) {\n          var _getLockPixelOffsets = getLockPixelOffsets({\n            height: this.height,\n            lockOffset: lockOffset,\n            width: this.width\n          }),\n              _getLockPixelOffsets2 = _slicedToArray(_getLockPixelOffsets, 2),\n              minLockOffset = _getLockPixelOffsets2[0],\n              maxLockOffset = _getLockPixelOffsets2[1];\n\n          var minOffset = {\n            x: this.width / 2 - minLockOffset.x,\n            y: this.height / 2 - minLockOffset.y\n          };\n          var maxOffset = {\n            x: this.width / 2 - maxLockOffset.x,\n            y: this.height / 2 - maxLockOffset.y\n          };\n          translate.x = limit(this.minTranslate.x + minOffset.x, this.maxTranslate.x - maxOffset.x, translate.x);\n          translate.y = limit(this.minTranslate.y + minOffset.y, this.maxTranslate.y - maxOffset.y, translate.y);\n        }\n\n        if (lockAxis === 'x') {\n          translate.y = 0;\n        } else if (lockAxis === 'y') {\n          translate.x = 0;\n        }\n\n        if (isKeySorting && keyboardSortingTransitionDuration && !ignoreTransition) {\n          setTransitionDuration(this.helper, keyboardSortingTransitionDuration);\n        }\n\n        setTranslate3d(this.helper, translate);\n      }\n    }, {\n      key: \"animateNodes\",\n      value: function animateNodes() {\n        var _this$props7 = this.props,\n            transitionDuration = _this$props7.transitionDuration,\n            hideSortableGhost = _this$props7.hideSortableGhost,\n            onSortOver = _this$props7.onSortOver;\n        var containerScrollDelta = this.containerScrollDelta,\n            windowScrollDelta = this.windowScrollDelta;\n        var nodes = this.manager.getOrderedRefs();\n        var sortingOffset = {\n          left: this.offsetEdge.left + this.translate.x + containerScrollDelta.left,\n          top: this.offsetEdge.top + this.translate.y + containerScrollDelta.top\n        };\n        var isKeySorting = this.manager.isKeySorting;\n        var prevIndex = this.newIndex;\n        this.newIndex = null;\n\n        for (var i = 0, len = nodes.length; i < len; i++) {\n          var _node3 = nodes[i].node;\n          var index = _node3.sortableInfo.index;\n          var width = _node3.offsetWidth;\n          var height = _node3.offsetHeight;\n          var offset = {\n            height: this.height > height ? height / 2 : this.height / 2,\n            width: this.width > width ? width / 2 : this.width / 2\n          };\n          var mustShiftBackward = isKeySorting && index > this.index && index <= prevIndex;\n          var mustShiftForward = isKeySorting && index < this.index && index >= prevIndex;\n          var translate = {\n            x: 0,\n            y: 0\n          };\n          var edgeOffset = nodes[i].edgeOffset;\n\n          if (!edgeOffset) {\n            edgeOffset = getEdgeOffset(_node3, this.container);\n            nodes[i].edgeOffset = edgeOffset;\n\n            if (isKeySorting) {\n              nodes[i].boundingClientRect = getScrollAdjustedBoundingClientRect(_node3, containerScrollDelta);\n            }\n          }\n\n          var nextNode = i < nodes.length - 1 && nodes[i + 1];\n          var prevNode = i > 0 && nodes[i - 1];\n\n          if (nextNode && !nextNode.edgeOffset) {\n            nextNode.edgeOffset = getEdgeOffset(nextNode.node, this.container);\n\n            if (isKeySorting) {\n              nextNode.boundingClientRect = getScrollAdjustedBoundingClientRect(nextNode.node, containerScrollDelta);\n            }\n          }\n\n          if (index === this.index) {\n            if (hideSortableGhost) {\n              this.sortableGhost = _node3;\n              setInlineStyles(_node3, {\n                opacity: 0,\n                visibility: 'hidden'\n              });\n            }\n\n            continue;\n          }\n\n          if (transitionDuration) {\n            setTransitionDuration(_node3, transitionDuration);\n          }\n\n          if (this.axis.x) {\n            if (this.axis.y) {\n              if (mustShiftForward || index < this.index && (sortingOffset.left + windowScrollDelta.left - offset.width <= edgeOffset.left && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height || sortingOffset.top + windowScrollDelta.top + offset.height <= edgeOffset.top)) {\n                translate.x = this.width + this.marginOffset.x;\n\n                if (edgeOffset.left + translate.x > this.containerBoundingRect.width - offset.width) {\n                  if (nextNode) {\n                    translate.x = nextNode.edgeOffset.left - edgeOffset.left;\n                    translate.y = nextNode.edgeOffset.top - edgeOffset.top;\n                  }\n                }\n\n                if (this.newIndex === null) {\n                  this.newIndex = index;\n                }\n              } else if (mustShiftBackward || index > this.index && (sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top || sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top + height)) {\n                translate.x = -(this.width + this.marginOffset.x);\n\n                if (edgeOffset.left + translate.x < this.containerBoundingRect.left + offset.width) {\n                  if (prevNode) {\n                    translate.x = prevNode.edgeOffset.left - edgeOffset.left;\n                    translate.y = prevNode.edgeOffset.top - edgeOffset.top;\n                  }\n                }\n\n                this.newIndex = index;\n              }\n            } else {\n              if (mustShiftBackward || index > this.index && sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left) {\n                translate.x = -(this.width + this.marginOffset.x);\n                this.newIndex = index;\n              } else if (mustShiftForward || index < this.index && sortingOffset.left + windowScrollDelta.left <= edgeOffset.left + offset.width) {\n                translate.x = this.width + this.marginOffset.x;\n\n                if (this.newIndex == null) {\n                  this.newIndex = index;\n                }\n              }\n            }\n          } else if (this.axis.y) {\n            if (mustShiftBackward || index > this.index && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top) {\n              translate.y = -(this.height + this.marginOffset.y);\n              this.newIndex = index;\n            } else if (mustShiftForward || index < this.index && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height) {\n              translate.y = this.height + this.marginOffset.y;\n\n              if (this.newIndex == null) {\n                this.newIndex = index;\n              }\n            }\n          }\n\n          setTranslate3d(_node3, translate);\n          nodes[i].translate = translate;\n        }\n\n        if (this.newIndex == null) {\n          this.newIndex = this.index;\n        }\n\n        if (isKeySorting) {\n          this.newIndex = prevIndex;\n        }\n\n        var oldIndex = isKeySorting ? this.prevIndex : prevIndex;\n\n        if (onSortOver && this.newIndex !== oldIndex) {\n          onSortOver({\n            collection: this.manager.active.collection,\n            index: this.index,\n            newIndex: this.newIndex,\n            oldIndex: oldIndex,\n            isKeySorting: isKeySorting,\n            nodes: nodes,\n            helper: this.helper\n          });\n        }\n      }\n    }, {\n      key: \"getWrappedInstance\",\n      value: function getWrappedInstance() {\n        invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableContainer() call');\n        return this.wrappedInstance.current;\n      }\n    }, {\n      key: \"getContainer\",\n      value: function getContainer() {\n        var getContainer = this.props.getContainer;\n\n        if (typeof getContainer !== 'function') {\n          return findDOMNode(this);\n        }\n\n        return getContainer(config.withRef ? this.getWrappedInstance() : undefined);\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        var ref = config.withRef ? this.wrappedInstance : null;\n        return createElement(SortableContext.Provider, {\n          value: this.sortableContextValue\n        }, createElement(WrappedComponent, _extends({\n          ref: ref\n        }, omit(this.props, omittedProps))));\n      }\n    }, {\n      key: \"helperContainer\",\n      get: function get() {\n        var helperContainer = this.props.helperContainer;\n\n        if (typeof helperContainer === 'function') {\n          return helperContainer();\n        }\n\n        return this.props.helperContainer || this.document.body;\n      }\n    }, {\n      key: \"containerScrollDelta\",\n      get: function get() {\n        var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n\n        if (useWindowAsScrollContainer) {\n          return {\n            left: 0,\n            top: 0\n          };\n        }\n\n        return {\n          left: this.scrollContainer.scrollLeft - this.initialScroll.left,\n          top: this.scrollContainer.scrollTop - this.initialScroll.top\n        };\n      }\n    }, {\n      key: \"windowScrollDelta\",\n      get: function get() {\n        return {\n          left: this.contentWindow.pageXOffset - this.initialWindowScroll.left,\n          top: this.contentWindow.pageYOffset - this.initialWindowScroll.top\n        };\n      }\n    }]);\n\n    return WithSortableContainer;\n  }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableList', WrappedComponent)), _defineProperty(_class, \"defaultProps\", defaultProps), _defineProperty(_class, \"propTypes\", propTypes), _temp;\n}\n\nvar propTypes$1 = {\n  index: PropTypes.number.isRequired,\n  collection: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  disabled: PropTypes.bool\n};\nvar omittedProps$1 = Object.keys(propTypes$1);\nfunction sortableElement(WrappedComponent) {\n  var _class, _temp;\n\n  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n    withRef: false\n  };\n  return _temp = _class = function (_React$Component) {\n    _inherits(WithSortableElement, _React$Component);\n\n    function WithSortableElement() {\n      var _getPrototypeOf2;\n\n      var _this;\n\n      _classCallCheck(this, WithSortableElement);\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WithSortableElement)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"wrappedInstance\", createRef());\n\n      return _this;\n    }\n\n    _createClass(WithSortableElement, [{\n      key: \"componentDidMount\",\n      value: function componentDidMount() {\n        this.register();\n      }\n    }, {\n      key: \"componentDidUpdate\",\n      value: function componentDidUpdate(prevProps) {\n        if (this.node) {\n          if (prevProps.index !== this.props.index) {\n            this.node.sortableInfo.index = this.props.index;\n          }\n\n          if (prevProps.disabled !== this.props.disabled) {\n            this.node.sortableInfo.disabled = this.props.disabled;\n          }\n        }\n\n        if (prevProps.collection !== this.props.collection) {\n          this.unregister(prevProps.collection);\n          this.register();\n        }\n      }\n    }, {\n      key: \"componentWillUnmount\",\n      value: function componentWillUnmount() {\n        this.unregister();\n      }\n    }, {\n      key: \"register\",\n      value: function register() {\n        var _this$props = this.props,\n            collection = _this$props.collection,\n            disabled = _this$props.disabled,\n            index = _this$props.index;\n        var node = findDOMNode(this);\n        node.sortableInfo = {\n          collection: collection,\n          disabled: disabled,\n          index: index,\n          manager: this.context.manager\n        };\n        this.node = node;\n        this.ref = {\n          node: node\n        };\n        this.context.manager.add(collection, this.ref);\n      }\n    }, {\n      key: \"unregister\",\n      value: function unregister() {\n        var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.collection;\n        this.context.manager.remove(collection, this.ref);\n      }\n    }, {\n      key: \"getWrappedInstance\",\n      value: function getWrappedInstance() {\n        invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call');\n        return this.wrappedInstance.current;\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        var ref = config.withRef ? this.wrappedInstance : null;\n        return createElement(WrappedComponent, _extends({\n          ref: ref\n        }, omit(this.props, omittedProps$1)));\n      }\n    }]);\n\n    return WithSortableElement;\n  }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableElement', WrappedComponent)), _defineProperty(_class, \"contextType\", SortableContext), _defineProperty(_class, \"propTypes\", propTypes$1), _defineProperty(_class, \"defaultProps\", {\n    collection: 0\n  }), _temp;\n}\n\nexport { sortableContainer as SortableContainer, sortableContainer, sortableElement as SortableElement, sortableElement, sortableHandle as SortableHandle, sortableHandle, arrayMove };\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { SortableElement } from 'react-sortable-hoc';\nimport classNames from 'classnames';\n\n// Utilities\nimport { generateHtmlIdForLabel } from 'common/utils/helpers';\n\nexport const SortableItem = ({ item, addKeyDownListener, removeKeyDownListener }) => {\n  const htmlId = generateHtmlIdForLabel(item.title);\n\n  return (\n    <li\n      className={classNames('sortable-item', {\n        'sortable-item--text-only': !item.imageUrl,\n      })}\n      tabIndex={0}\n      aria-live=\"assertive\"\n      aria-label={item.title}\n      draggable\n      onFocus={addKeyDownListener}\n      onBlur={removeKeyDownListener}\n    >\n      <div className=\"sortable-item__content\">\n        <div className=\"sortable-item__content-grip\">\n          <i className=\"fas fa-grip-vertical\" />\n        </div>\n\n        {item.imageUrl && (\n          <div\n            className=\"sortable-item__content-image\"\n            style={{ backgroundImage: `url(\"${encodeURI(item.imageUrl)}\")` }}\n          />\n        )}\n\n        <div className=\"sortable-item__content-body content\">\n          <label htmlFor={htmlId} className=\"is-primary-color\">\n            {item.title}\n          </label>\n          {item.description && <p>{item.description}</p>}\n        </div>\n      </div>\n    </li>\n  );\n};\n\nSortableItem.propTypes = {\n  item: PropTypes.shape({\n    title: PropTypes.string.isRequired,\n    description: PropTypes.string,\n    imageUrl: PropTypes.string,\n  }).isRequired,\n  addKeyDownListener: PropTypes.func.isRequired,\n  removeKeyDownListener: PropTypes.func.isRequired,\n};\n\nexport default SortableElement(SortableItem);\n","// Libraries\nimport React, { PureComponent, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { SortableContainer } from 'react-sortable-hoc';\nimport { debounce } from 'underscore';\n\n// Utilities\nimport { getOrdinal, storyTheme } from 'common/utils/helpers';\n\n// Components\nimport SortableItem from './SortableItem';\n\n// Constants\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst WINDOW_RESIZE_DEBOUNCE_MS = 200;\n\nexport class SortableList extends PureComponent {\n  state = { focusedIndex: null };\n\n  ref = createRef();\n\n  itemsRef = createRef();\n\n  componentDidMount() {\n    this.setItemHeights();\n    window.addEventListener('resize', this.setItemHeights);\n  }\n\n  componentWillUnmount() {\n    window.removeEventListener('resize', this.setItemHeights);\n  }\n\n  setItemHeights = debounce(() => {\n    if (!this.itemsRef.current) {\n      return;\n    }\n\n    const { setItemHeights } = this.props;\n    const heights = [...this.itemsRef.current.childNodes].map(\n      (node) => node.getBoundingClientRect().height\n    );\n\n    setItemHeights(heights);\n  }, WINDOW_RESIZE_DEBOUNCE_MS);\n\n  addKeyDownListener = (index) => {\n    this.setState({ focusedIndex: index });\n    document.addEventListener('keydown', this.handleKeyDown);\n  };\n\n  removeKeyDownListener = () => {\n    document.removeEventListener('keydown', this.handleKeyDown);\n  };\n\n  handleKeyDown = (event) => {\n    const { focusedIndex } = this.state;\n    const { items } = this.props;\n    const lastIndex = items.length - 1;\n\n    if (event.key === ARROW_UP && focusedIndex > 0) {\n      event.preventDefault();\n      this.adjustIndex(focusedIndex, focusedIndex - 1);\n    }\n\n    if (event.key === ARROW_DOWN && focusedIndex < lastIndex) {\n      event.preventDefault();\n      this.adjustIndex(focusedIndex, focusedIndex + 1);\n    }\n  };\n\n  adjustIndex = (focusedIndex, newIndex) => {\n    const { onSortEndKeyboard } = this.props;\n    onSortEndKeyboard({\n      oldIndex: focusedIndex,\n      newIndex,\n    });\n    this.setState({ focusedIndex: newIndex });\n  };\n\n  renderBackground = (index) => {\n    const { itemHeights } = this.props;\n\n    return (\n      <div\n        className=\"sortable-list__background\"\n        style={{\n          width: this.ref.current?.getBoundingClientRect().width,\n          height: itemHeights[index],\n        }}\n      />\n    );\n  };\n\n  render() {\n    const { items, itemHeights } = this.props;\n\n    return (\n      <div className=\"sortable-list\" ref={this.ref}>\n        <div className=\"columns\">\n          <div className=\"column sortable-list__indexes\">\n            <ol>\n              {items.map((item, index) => (\n                <li className=\"sortable-list__index\" key={index}>\n                  {storyTheme() && this.renderBackground(index)}\n                  <div\n                    className=\"sortable-list__index-value is-primary-background\"\n                    style={{ height: itemHeights[index] }}\n                  >\n                    {storyTheme() ? index + 1 : getOrdinal(index + 1)}\n                  </div>\n                </li>\n              ))}\n            </ol>\n          </div>\n          <div className=\"column sortable-list__items\">\n            <ol ref={this.itemsRef} role=\"listbox\">\n              {items.map((item, index) => (\n                <SortableItem\n                  key={item.id}\n                  index={index}\n                  item={item}\n                  addKeyDownListener={() => this.addKeyDownListener(index)}\n                  removeKeyDownListener={() => this.removeKeyDownListener(index)}\n                />\n              ))}\n            </ol>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nSortableList.propTypes = {\n  items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n  itemHeights: PropTypes.arrayOf(PropTypes.number).isRequired,\n  setItemHeights: PropTypes.func.isRequired,\n  onSortEndKeyboard: PropTypes.func.isRequired,\n};\n\nexport default SortableContainer(SortableList);\n","// Libraries\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\n\n// Utilities\nimport { getOrdinal } from 'common/utils/helpers';\n\n/**\n * MobileSortableItem component.\n */\nexport class MobileSortableItem extends Component {\n  static propTypes = {\n    item: PropTypes.shape({\n      /**\n       * Unique option ID.\n       */\n      id: PropTypes.number.isRequired,\n      /**\n       * Option title.\n       */\n      title: PropTypes.string.isRequired,\n      /**\n       * (Optional) Option image URL.\n       */\n      imageUrl: PropTypes.string,\n    }).isRequired,\n    /**\n     * Item's current position.\n     */\n    index: PropTypes.number.isRequired,\n    /**\n     * Index options to display in dropdown.\n     */\n    options: PropTypes.arrayOf(PropTypes.number).isRequired,\n    /**\n     * Position change handler.\n     */\n    onChange: PropTypes.func.isRequired,\n  };\n\n  renderOption = (option) => (\n    <option key={option} value={option}>\n      {getOrdinal(option + 1)}\n    </option>\n  );\n\n  render() {\n    const {\n      item: { title, imageUrl },\n      index,\n      onChange,\n      options,\n    } = this.props;\n    const firstIndex = options[0];\n    const lastIndex = options[options.length - 1];\n\n    return (\n      <div className={`mobile-sortable-item card ${!imageUrl ? 'no-image' : ''}`}>\n        <div className=\"card-index-control is-primary-background\">\n          {index !== firstIndex && (\n            <i className=\"fas fa-caret-up\" onClick={() => onChange(index - 1)} />\n          )}\n          <p>{index + 1}</p>\n          {index !== lastIndex && (\n            <i className=\"fas fa-caret-down\" onClick={() => onChange(index + 1)} />\n          )}\n        </div>\n\n        {imageUrl && (\n          <div className=\"card-image\">\n            <figure className=\"image is-5by3\">\n              <img src={imageUrl} draggable={false} alt=\"\" />\n            </figure>\n          </div>\n        )}\n\n        <div className=\"card-content\">\n          <div className=\"content\">\n            <div className=\"label-and-details\">\n              <span className=\"label is-primary-color\">{title}</span>\n              {/* \n                <div className=\"details\">\n                  <span className=\"details--plus\">+</span>\n                  <span className=\"details--link\">Details</span>\n                </div>\n              */}\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport default withTranslation()(MobileSortableItem);\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport MobileSortableItem from './MobileSortableItem';\n\n/**\n * MobileSortableList component.\n */\nclass MobileSortableList extends PureComponent {\n  static propTypes = {\n    /**\n     * Items to sort.\n     */\n    items: PropTypes.array.isRequired,\n    /**\n     * Currently ordered items.\n     */\n    orderedItems: PropTypes.array.isRequired,\n    /**\n     * Callback to call when order of items is changed.\n     */\n    onSortEnd: PropTypes.func.isRequired,\n  };\n\n  renderItem = (item) => {\n    const { items, orderedItems, onSortEnd } = this.props;\n    const index = orderedItems.indexOf(item);\n\n    return (\n      <MobileSortableItem\n        key={item.id}\n        item={item}\n        index={index}\n        options={[...items.keys()]}\n        onChange={(newIndex) => {\n          onSortEnd({\n            oldIndex: index,\n            newIndex,\n          });\n        }}\n      />\n    );\n  };\n\n  render() {\n    const { orderedItems } = this.props;\n\n    return <div className=\"mobile-sortable-list\">{orderedItems.map(this.renderItem)}</div>;\n  }\n}\n\nexport default MobileSortableList;\n","// Libraries\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { arrayMove } from 'react-sortable-hoc';\nimport { useMediaQuery } from 'react-responsive';\n\n// Media Queries\nimport mediaQueries from 'common/utils/mediaQueries';\n\n// Components\nimport SortableList from './SortableList';\nimport MobileSortableList from './MobileSortableList';\n\nfunction SortableInput(props) {\n  const { initialItems, onChange } = props;\n  const [items, setItems] = useState(initialItems.slice());\n  const [itemHeights, setItemHeights] = useState([]);\n  const isMobile = useMediaQuery({ ...mediaQueries.mobile });\n\n  const onSortOver = ({ oldIndex, newIndex }) => {\n    setItemHeights(arrayMove(itemHeights, oldIndex, newIndex));\n  };\n\n  const onSortEnd = ({ oldIndex, newIndex }) => {\n    const newItems = arrayMove(items, oldIndex, newIndex);\n    setItems(newItems);\n    onChange?.(newItems.map((item) => item.id));\n  };\n\n  const renderContent = () => {\n    if (isMobile)\n      return <MobileSortableList items={items} orderedItems={items} onSortEnd={onSortEnd} />;\n\n    return (\n      <SortableList\n        items={items}\n        itemHeights={itemHeights}\n        setItemHeights={setItemHeights}\n        onSortEnd={onSortEnd}\n        onSortEndKeyboard={onSortEnd}\n        onSortOver={onSortOver}\n      />\n    );\n  };\n\n  return <div className=\"sortable-input\">{renderContent()}</div>;\n}\n\nSortableInput.propTypes = {\n  initialItems: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.number.isRequired,\n      title: PropTypes.string.isRequired,\n      description: PropTypes.string,\n      imageUrl: PropTypes.string,\n    })\n  ).isRequired,\n  onChange: PropTypes.func,\n};\n\nSortableInput.defaultProps = {\n  onChange: null,\n};\n\nexport default SortableInput;\n","// Libraries\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\n// Helpers\nimport { rtlLanguage } from 'common/utils/helpers';\n\n// Constants\nconst SPACE = 'Space';\n\nclass SortableAccessibility extends PureComponent {\n  state = { expanded: false };\n\n  handleExpand = () => {\n    this.setState((currentState) => ({\n      expanded: !currentState.expanded,\n    }));\n  };\n\n  addKeyDownListener = () => {\n    document.addEventListener('keydown', this.handleKeyDown);\n  };\n\n  removeKeyDownListener = () => {\n    document.removeEventListener('keydown', this.handleKeyDown);\n  };\n\n  handleKeyDown = (event) => {\n    if (event.code === SPACE) {\n      event.preventDefault();\n      this.handleExpand();\n    }\n  };\n\n  render() {\n    const { t } = this.props;\n    const { expanded } = this.state;\n\n    return (\n      <div>\n        <div\n          tabIndex={0}\n          className=\"accessibility-toggle\"\n          onClick={this.handleExpand}\n          aria-expanded={expanded}\n          aria-controls=\"ordered-accessibility-text\"\n          onFocus={this.addKeyDownListener}\n          onBlur={this.removeKeyDownListener}\n          id=\"accessibility-toggle\"\n        >\n          {t('engagement.how_to_rank_keyboard')}\n          <i\n            className={classNames('fas', {\n              'fa-chevron-down': expanded,\n              'fa-chevron-right': !expanded && !rtlLanguage(),\n              'fa-chevron-left': !expanded && rtlLanguage(),\n            })}\n          />\n        </div>\n        {expanded && (\n          <div\n            tabIndex={0}\n            role=\"region\"\n            id=\"ordered-accessibility-text\"\n            aria-labelledby=\"accessibility-toggle\"\n          >\n            {t('engagement.rank_keyboard_instructions')}\n          </div>\n        )}\n      </div>\n    );\n  }\n}\n\nSortableAccessibility.propTypes = {\n  t: PropTypes.func.isRequired,\n};\n\nexport default withTranslation()(SortableAccessibility);\n","// Libraries\nimport React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\nimport sortBy from 'lodash/sortBy';\n\n// State\nimport { upsertResponseEntry } from 'state/ducks/engagement';\n\n// Utilities\nimport { parseInteger, determineImageSize } from 'common/utils/helpers';\n\n// Components\nimport SortableInput from 'engagement/components/inputs/SortableInput';\nimport SortableAccessibility from 'engagement/components/inputs/SortableInput/SortableAccessibility';\n\nexport function OrderedQuestion(props) {\n  const { question, currentQuestionValues, dispatchUpdateQuestionValue } = props;\n  const dispatch = useDispatch();\n  const initialItems = useMemo(() => {\n    const questionValues = currentQuestionValues?.[question.id];\n    const inputsSorted = sortBy(question.inputs, [(input) => questionValues?.[input.id]?.value]);\n    const items = inputsSorted.map((input) => ({\n      id: parseInteger(input.id),\n      title: input.label,\n      imageUrl: input.media ? determineImageSize(input.media.imageUrls) : null,\n    }));\n\n    return items;\n  }, [question.inputs]);\n\n  const onChange = (inputIds) => {\n    const newQuestionValue = inputIds.reduce((accumulator, inputId, inputIndex) => {\n      accumulator[inputId] = {\n        value: inputIndex,\n      };\n\n      return accumulator;\n    }, {});\n\n    dispatchUpdateQuestionValue(question.id, newQuestionValue);\n\n    for (let i = 0; i < inputIds.length; i += 1) {\n      const params = { inputId: inputIds[i], questionId: question.id, inputAnswer: i + 1 };\n      dispatch(upsertResponseEntry(params));\n    }\n  };\n\n  useEffect(() => {\n    // Save value to the store immediately, no action taken is still valid answer in ordered question\n    onChange(initialItems.map((item) => item.id));\n  }, []);\n\n  return (\n    <div className=\"ordered-question\">\n      <SortableAccessibility />\n      <SortableInput initialItems={initialItems} onChange={onChange} />\n    </div>\n  );\n}\n\nOrderedQuestion.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n  }).isRequired,\n  currentQuestionValues: PropTypes.shape({}),\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n};\n\nOrderedQuestion.defaultProps = {\n  currentQuestionValues: {},\n};\n\nexport default OrderedQuestion;\n","// Libraries\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { ImageOverlay } from 'react-leaflet';\nimport { CRS } from 'leaflet';\n\n// Utilities\nimport { getImageDimensions } from 'common/utils/helpers';\n\n// Components\nimport AnnotationInput from '../AnnotationInput';\n\n/**\n * Image annotation input component.\n */\nexport class ImageAnnotationInput extends Component {\n  static propTypes = {\n    initialMarkers: PropTypes.arrayOf(\n      PropTypes.shape({\n        /**\n         * Marker's position as [y, x].\n         */\n        position: PropTypes.arrayOf(PropTypes.number).isRequired,\n        /**\n         * Marker's description.\n         */\n        description: PropTypes.string,\n      })\n    ),\n    /**\n     * Image URL.\n     */\n    imageUrl: PropTypes.string.isRequired,\n    /**\n     * Map padding (how far can user drag the map outside of image) in pixels.\n     */\n    padding: PropTypes.number,\n    /**\n     * Initial map position. Used when no initial markers are passed.\n     */\n    initialPosition: PropTypes.arrayOf(PropTypes.number),\n    /**\n     * Initial zoom.\n     */\n    initialZoom: PropTypes.number,\n    /**\n     * (Optional) Callback to run whenever user interacts with markers.\n     * Array of marker objects is passed as first argument.\n     */\n    onChange: PropTypes.func,\n  };\n\n  static defaultProps = {\n    initialMarkers: [],\n    initialPosition: null,\n    initialZoom: 0,\n    onChange: null,\n    padding: 500,\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      imageLoaded: false,\n    };\n\n    this.mapProps = {\n      crs: CRS.Simple,\n      minZoom: -2,\n      bounds: null,\n      maxBounds: null,\n      center: null,\n      zoomSnap: 0,\n      zoomDelta: 0.5,\n    };\n\n    getImageDimensions(props.imageUrl).then(({ width, height }) => {\n      const { padding, initialPosition } = props;\n\n      this.mapProps.bounds = [\n        [0, 0],\n        [height, width],\n      ];\n      this.mapProps.maxBounds = [\n        [-padding, -padding],\n        [height + padding, width + padding],\n      ];\n      this.mapProps.center = initialPosition || [height / 2, width / 2];\n\n      this.setState({\n        imageLoaded: true,\n      });\n    });\n  }\n\n  render() {\n    const { imageUrl, padding, initialPosition, ...props } = this.props;\n    const { imageLoaded } = this.state;\n\n    if (!imageLoaded) {\n      return null;\n    }\n\n    return (\n      <div className=\"image-annotation-input\">\n        <AnnotationInput {...props} mapProps={this.mapProps}>\n          <ImageOverlay url={imageUrl} bounds={this.mapProps.bounds} />\n        </AnnotationInput>\n      </div>\n    );\n  }\n}\n\nexport default ImageAnnotationInput;\n","// Libraries\nimport React, { memo, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport debounce from 'lodash/debounce';\n\n// State\nimport { getQuestionInputsMap, pushResponseEntry } from 'state/ducks/engagement';\nimport { deleteEntry, patchEntry, postEntry } from 'state/helpers/responses';\n\n// Utils\nimport { confirmValidMarkers } from 'engagement/utils/helpers';\n\n// Components\nimport ImageAnnotationInput from 'engagement/components/inputs/ImageAnnotationInput';\n\nexport function ImageQuestion(props) {\n  const { question, currentQuestionValues, dispatchUpdateQuestionValue } = props;\n  const questionValue = currentQuestionValues?.[question.id] || {};\n  const inputsMap = useSelector(getQuestionInputsMap);\n  const dispatch = useDispatch();\n  const dispatchDebounced = useCallback(debounce(dispatch, 300), []);\n  const { media } = question;\n\n  const markers = useMemo(() => {\n    return Object.entries(questionValue).reduce((accumulator, [inputId, { value }]) => {\n      const validMarkers = confirmValidMarkers(value, 'x', 'y');\n      accumulator[inputId] = validMarkers.map(({ guid, x, y, comment }) => ({\n        guid,\n        position: [y, x],\n        comment,\n      }));\n\n      return accumulator;\n    }, {});\n  }, [questionValue]);\n\n  const getOnChangeHandler = (inputId) => (markersMap, meta) => {\n    for (const marker of Object.values(markersMap)) {\n      marker.position = marker.position.map(Math.round);\n    }\n\n    const newValue = Object.entries(markersMap).map(([guid, marker]) => {\n      const { position, comment } = marker;\n      const [y, x] = position;\n      return { guid, x, y, comment };\n    });\n\n    const newQuestionValue = { [inputId]: { value: newValue } };\n    dispatchUpdateQuestionValue(question.id, newQuestionValue, true);\n\n    if (meta.removed) {\n      const entry = deleteEntry({\n        questionUuid: question.uuid,\n        inputUuid: inputsMap[inputId].uuid,\n        responseUuid: meta.removed.uuid,\n        inputAnswer: meta.removed.position.slice().reverse().join(','), // x,y\n        comment: meta.removed.comment,\n      });\n      dispatch(pushResponseEntry(entry));\n      return;\n    }\n\n    const lastMarkerUuid = meta.created || meta.updated;\n    const data = {\n      questionUuid: question.uuid,\n      inputUuid: inputsMap[inputId].uuid,\n      responseUuid: lastMarkerUuid,\n      inputAnswer: markersMap[lastMarkerUuid].position.slice().reverse().join(','), // x,y\n      comment: markersMap[lastMarkerUuid].comment,\n    };\n\n    if (meta.created) dispatch(pushResponseEntry(postEntry(data)));\n    else dispatchDebounced(pushResponseEntry(patchEntry(data)));\n  };\n\n  return (\n    <div className=\"image-question\">\n      {question.inputs.map(({ id }) => (\n        <ImageAnnotationInput\n          key={id}\n          initialMarkers={markers[id]}\n          onChange={getOnChangeHandler(id)}\n          imageUrl={media.links.self}\n        />\n      ))}\n    </div>\n  );\n}\n\nImageQuestion.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n    uuid: PropTypes.string.isRequired,\n    media: PropTypes.shape({\n      links: PropTypes.shape({\n        self: PropTypes.string.isRequired,\n      }).isRequired,\n    }).isRequired,\n  }).isRequired,\n  currentQuestionValues: PropTypes.shape({}),\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n};\n\nImageQuestion.defaultProps = {\n  currentQuestionValues: {},\n};\n\nexport default memo(ImageQuestion);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Utilities\nimport { determineImageSize } from 'common/utils/helpers';\n\n// Components\nimport Modal from 'ideation/components/base/Modal';\nimport Button from 'common/components/Button';\n\nconst BudgetMediaModal = (props) => {\n  const {\n    budgetOption: {\n      label,\n      media,\n      displayData: { amount, description },\n    },\n    isOpen,\n    onClose,\n  } = props;\n\n  return (\n    <Modal\n      isOpen={isOpen}\n      onClose={onClose}\n      className=\"engagement-modal budget-media-modal auto-fit\"\n    >\n      <div className=\"modal-content-body\">\n        {media && media.imageUrls && (\n          <div\n            className=\"image\"\n            style={{ backgroundImage: `url(${determineImageSize(media.imageUrls)})` }}\n          />\n        )}\n        <div className=\"modal-budget-label is-primary-color\">{label}</div>\n        <div className=\"modal-budget-amount\">{Number(amount).toLocaleString()}</div>\n        <div className=\"modal-budget-description\">{description}</div>\n        <div className=\"modal-button-container\">\n          <Button className=\"is-primary is-primary-background\" onClick={onClose}>\n            Close\n          </Button>\n        </div>\n      </div>\n    </Modal>\n  );\n};\n\nBudgetMediaModal.propTypes = {\n  isOpen: PropTypes.bool.isRequired,\n  onClose: PropTypes.func.isRequired,\n  budgetOption: PropTypes.shape({\n    label: PropTypes.string,\n    media: PropTypes.shape({\n      imageUrls: PropTypes.shape({}),\n    }),\n    displayData: PropTypes.shape({\n      amount: PropTypes.string,\n      description: PropTypes.string,\n    }),\n  }).isRequired,\n};\n\nexport default BudgetMediaModal;\n","// Libraries\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n// Contexts\nimport ModalProvider from 'contexts/Modal/ModalProvider';\n\n// Components\nimport CheckBox from 'common/components/CheckBox';\nimport BudgetMediaModal from '../BudgetMediaModal';\n\nclass BudgetCheckbox extends Component {\n  state = { displayMediaModal: false };\n\n  openModal = () => this.setState({ displayMediaModal: true });\n\n  closeModal = () => this.setState({ displayMediaModal: false });\n\n  toggleMediaModal = () =>\n    this.setState((state) => ({\n      displayMediaModal: !state.displayMediaModal,\n    }));\n\n  render() {\n    const { clickHandler, option, checked } = this.props;\n    const { id, label, displayData } = option;\n    const { displayMediaModal } = this.state;\n    const { amount } = displayData;\n\n    return (\n      <tr key={id} className=\"checkbox\" style={checked ? { background: '#d7d7d7' } : {}}>\n        <td className=\"checkbox-contents\">\n          <label className=\"checkbox__control-label\" htmlFor={id}>\n            <CheckBox checked={checked} onChange={clickHandler(id)} id={id} />\n            <div className=\"checkbox__control-display\" />\n            <p className=\"checkbox__control-text is-primary-color budget-label\">{label}</p>\n          </label>\n          <div className=\"checkbox-data\">\n            <div\n              className={classNames('budget-amount', {\n                'extra-wide': !option.media && !displayData.description,\n              })}\n            >\n              {Number(amount).toLocaleString()}\n            </div>\n            {(option.media || displayData.description) && (\n              <>\n                <ModalProvider>\n                  <BudgetMediaModal\n                    isOpen={displayMediaModal}\n                    onClose={this.closeModal}\n                    budgetOption={option}\n                  />\n                </ModalProvider>\n                <i className=\"fas fa-info-circle is-secondary-color\" onClick={this.openModal} />\n              </>\n            )}\n          </div>\n        </td>\n      </tr>\n    );\n  }\n}\n\nBudgetCheckbox.propTypes = {\n  clickHandler: PropTypes.func.isRequired,\n  option: PropTypes.shape({\n    id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n    label: PropTypes.string,\n    displayData: PropTypes.shape({\n      amount: PropTypes.string,\n      description: PropTypes.string,\n    }),\n    media: PropTypes.shape({}),\n  }).isRequired,\n  checked: PropTypes.bool,\n};\n\nBudgetCheckbox.defaultProps = {\n  checked: false,\n};\n\nexport default BudgetCheckbox;\n","// Libraries\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n// Components\nimport BudgetCheckbox from '../BudgetCheckbox';\n\nclass BudgetCheckboxGroup extends Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      selectedOptions: new Set(props.initialValue),\n    };\n  }\n\n  getOptionClickHandler = (id) => () => {\n    const { onChange } = this.props;\n    const { selectedOptions } = this.state;\n\n    if (selectedOptions.has(id)) {\n      selectedOptions.delete(id);\n    } else {\n      selectedOptions.add(id);\n    }\n\n    const newSelectedOptions = new Set(selectedOptions);\n\n    this.setState({\n      selectedOptions: newSelectedOptions,\n    });\n\n    if (onChange) {\n      onChange([...newSelectedOptions], id);\n    }\n  };\n\n  renderOption = (option) => {\n    const { selectedOptions } = this.state;\n    const { id } = option;\n    const checked = selectedOptions.has(id);\n\n    return (\n      <BudgetCheckbox\n        clickHandler={this.getOptionClickHandler}\n        option={option}\n        checked={checked}\n        key={id}\n      />\n    );\n  };\n\n  render() {\n    const { options } = this.props;\n    return <tbody className=\"checkbox-group\">{options.map(this.renderOption)}</tbody>;\n  }\n}\n\nBudgetCheckboxGroup.propTypes = {\n  options: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n      label: PropTypes.string.isRequired,\n    })\n  ).isRequired,\n  initialValue: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),\n  onChange: PropTypes.func,\n};\n\nBudgetCheckboxGroup.defaultProps = {\n  initialValue: [],\n  onChange: null,\n};\n\nexport default BudgetCheckboxGroup;\n","// Libraries\nimport React, { useState, memo } from 'react';\nimport PropTypes from 'prop-types';\n\n// Components\nimport BudgetCheckboxGroup from 'engagement/components/QuestionContainer/questions/Budget/BudgetCheckboxGroup';\n\nexport function BudgetInput(props) {\n  const { options, initialValue, onChange } = props;\n  const [selectedOptionIds, setSelectedOptionIds] = useState(Object.keys(initialValue));\n\n  const handleChange = (newOptionIds, lastOptionId) => {\n    setSelectedOptionIds(newOptionIds);\n    onChange?.(newOptionIds, lastOptionId);\n  };\n\n  return (\n    <table className=\"budget-input checkbox-select-input\">\n      <BudgetCheckboxGroup\n        options={options}\n        initialValue={selectedOptionIds}\n        onChange={handleChange}\n      />\n    </table>\n  );\n}\n\nBudgetInput.propTypes = {\n  options: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n      label: PropTypes.string.isRequired,\n      format: PropTypes.string.isRequired,\n    })\n  ).isRequired,\n  initialValue: PropTypes.objectOf(PropTypes.shape({})),\n  onChange: PropTypes.func,\n};\n\nBudgetInput.defaultProps = {\n  initialValue: {},\n  onChange: null,\n};\n\nexport default memo(BudgetInput);\n","// Imports\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\n\nconst BudgetBox = ({\n  units,\n  currentBudgetUsed,\n  calculateProgress,\n  remainingBudget,\n  budgetAsNumber,\n  t,\n}) => (\n  <div className=\"budget-box-container\">\n    <div className=\"budget-box is-primary-background\">\n      <div className=\"budget-data\">\n        <p className=\"budget-used-text\">{`${units} ${t('engagement.used')}`}</p>\n        <p className=\"budget-used-number\">{currentBudgetUsed.toLocaleString()}</p>\n      </div>\n      <div className=\"budget-progress\">\n        <div className=\"progress-total\" />\n        <div\n          className=\"progress-used\"\n          style={{ width: `${calculateProgress(currentBudgetUsed, budgetAsNumber)}%` }}\n        />\n      </div>\n      <div className=\"budget-data\">\n        <p>{t('engagement.remaining')}</p>\n        <p>{remainingBudget.toLocaleString()}</p>\n      </div>\n    </div>\n    {remainingBudget < 0 && (\n      <div className=\"over-budget-box\">\n        <i className=\"fas fa-exclamation-triangle\" />\n        <div>\n          <span>{t('engagement.you_are')}</span>\n          <span className=\"over-budget-bold\">\n            {` ${Math.abs(remainingBudget).toLocaleString()} `}\n          </span>\n          <span>{`${t('engagement.over_the_limit', {\n            limit: budgetAsNumber.toLocaleString(),\n          })}!`}</span>\n        </div>\n      </div>\n    )}\n  </div>\n);\n\nBudgetBox.propTypes = {\n  units: PropTypes.string,\n  currentBudgetUsed: PropTypes.number.isRequired,\n  calculateProgress: PropTypes.func.isRequired,\n  t: PropTypes.func.isRequired,\n  remainingBudget: PropTypes.number.isRequired,\n  budgetAsNumber: PropTypes.number.isRequired,\n};\n\nBudgetBox.defaultProps = {\n  units: '',\n};\n\nexport default withTranslation()(BudgetBox);\n","// Libraries\nimport React, { memo, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\n\n// State\nimport { deleteResponseEntry, upsertResponseEntry } from 'state/ducks/engagement';\n\n// Components\nimport BudgetInput from 'engagement/components/inputs/BudgetInput';\nimport BudgetBox from '../BudgetBox';\n\nexport function BudgetQuestion(props) {\n  const { question, currentQuestionValues, dispatchUpdateQuestionValue } = props;\n  const { inputs, unitLabel, displayData } = question;\n  const budgetAsNumber = Number(displayData.budget);\n  const questionValue = currentQuestionValues?.[question.id] || {};\n  const dispatch = useDispatch();\n\n  const currentBudgetUsed = useMemo(() => {\n    let budgetUsed = 0;\n    for (const input of inputs) {\n      if (currentQuestionValues?.[question.id]?.[input.id])\n        budgetUsed += Number(input.displayData.amount);\n    }\n    return budgetUsed;\n  }, [questionValue]);\n\n  const remainingBudget = budgetAsNumber - currentBudgetUsed;\n  const calculateProgress = () => Math.min((currentBudgetUsed / budgetAsNumber) * 100, 100);\n\n  const onChange = (inputIds, lastInputId) => {\n    const newQuestionValue = inputIds.reduce((accumulator, inputId) => {\n      accumulator[inputId] = { value: true };\n      return accumulator;\n    }, {});\n\n    dispatchUpdateQuestionValue(question.id, newQuestionValue);\n\n    const params = {\n      inputId: lastInputId,\n      questionId: question.id,\n    };\n    if (inputIds.includes(lastInputId)) dispatch(upsertResponseEntry(params));\n    else dispatch(deleteResponseEntry(params));\n  };\n\n  return (\n    <div className=\"budget-question\" data-test=\"budget-question\">\n      <div className=\"budget-question\" data-test=\"budget-question\">\n        <BudgetInput options={inputs} initialValue={questionValue} onChange={onChange} />\n        <BudgetBox\n          units={unitLabel}\n          currentBudgetUsed={currentBudgetUsed}\n          calculateProgress={calculateProgress}\n          remainingBudget={remainingBudget}\n          budgetAsNumber={budgetAsNumber}\n        />\n      </div>\n    </div>\n  );\n}\n\nBudgetQuestion.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    unitLabel: PropTypes.string,\n    displayData: PropTypes.shape({\n      budget: PropTypes.string,\n    }),\n    inputs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n  }).isRequired,\n  questionValues: PropTypes.shape({}).isRequired,\n  currentQuestionValues: PropTypes.shape({}).isRequired,\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n};\n\nexport default memo(BudgetQuestion);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Helpers\nimport { numberRegex } from 'common/utils/helpers';\n\n// Components\nimport Input from 'common/components/Input';\n\nconst NumberInput = ({ decimals, min, max, ...props }) => {\n  const onBeforeInput = (event) => {\n    const newValue = event.target.value + event.data;\n\n    if (!numberRegex(decimals).test(newValue)) {\n      event.preventDefault();\n    }\n  };\n\n  return (\n    <Input\n      type=\"number\"\n      className=\"number-input\"\n      onBeforeInput={onBeforeInput}\n      min={min}\n      max={max}\n      {...props}\n    />\n  );\n};\n\nNumberInput.propTypes = {\n  decimals: PropTypes.number.isRequired,\n  min: PropTypes.number.isRequired,\n  max: PropTypes.number.isRequired,\n  ariaLabel: PropTypes.string.isRequired,\n};\n\nexport default NumberInput;\n","// Libraries\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\nimport debounce from 'lodash/debounce';\n\n// State\nimport { deleteResponseEntry, upsertResponseEntry } from 'state/ducks/engagement';\n\n// Components\nimport NumberInput from 'common/components/NumberInput';\n\nfunction NumericQuestion({ question, currentQuestionValues, dispatchUpdateQuestionValue }) {\n  const { displayData, unitLabel } = question;\n  const { decimalDigits, rangeStart, rangeEnd } = displayData;\n  const dispatch = useDispatch();\n  const dispatchDebounced = useCallback(debounce(dispatch, 300), []);\n\n  const onChangeHandler = (input, event) => {\n    const { value } = event.target;\n    dispatchUpdateQuestionValue(question.id, { [input.id]: { value } });\n    if (value === '') {\n      dispatchDebounced(\n        deleteResponseEntry({\n          inputId: input.id,\n          questionId: question.id,\n          inputAnswer: '',\n        })\n      );\n      return;\n    }\n\n    dispatchDebounced(\n      upsertResponseEntry({ inputId: input.id, questionId: question.id, inputAnswer: value })\n    );\n  };\n\n  return (\n    <div className=\"numeric-question\">\n      {question.inputs.map((input) => (\n        <div className=\"numeric-question__input\" key={input.id}>\n          <NumberInput\n            className=\"numeric-question__number-input\"\n            defaultValue={currentQuestionValues?.[question.id]?.[input.id]?.value}\n            decimals={Number(decimalDigits)}\n            min={Number(rangeStart)}\n            max={Number(rangeEnd)}\n            onChange={(event) => onChangeHandler(input, event)}\n            ariaLabel={question.title}\n          />\n          <div className=\"numeric-question__units\">{unitLabel}</div>\n        </div>\n      ))}\n    </div>\n  );\n}\n\nNumericQuestion.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    uuid: PropTypes.string.isRequired,\n    title: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n    required: PropTypes.bool,\n    displayData: PropTypes.shape({\n      decimalDigits: PropTypes.string.isRequired,\n      rangeStart: PropTypes.string.isRequired,\n      rangeEnd: PropTypes.string.isRequired,\n    }).isRequired,\n    unitLabel: PropTypes.string,\n  }).isRequired,\n  currentQuestionValues: PropTypes.shape({}),\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n};\n\nNumericQuestion.defaultProps = {\n  currentQuestionValues: null,\n};\n\nexport default NumericQuestion;\n","export default Object.freeze({\n  LEFT: 'left',\n  MIDDLE: 'middle',\n  RIGHT: 'right',\n});\n","import e from\"@babel/runtime/helpers/inheritsLoose\";import t from\"react\";function s(e){return e&&e.stopPropagation&&e.stopPropagation(),e&&e.preventDefault&&e.preventDefault(),!1}function n(e){return null==e?[]:Array.isArray(e)?e.slice():[e]}function i(e){return null!==e&&1===e.length?e[0]:e.slice()}function o(e){Object.keys(e).forEach((t=>{\"undefined\"!=typeof document&&document.addEventListener(t,e[t],!1)}))}function r(e,t){return a(function(e,t){let s=e;s<=t.min&&(s=t.min);s>=t.max&&(s=t.max);return s}(e,t),t)}function a(e,t){const s=(e-t.min)%t.step;let n=e-s;return 2*Math.abs(s)>=t.step&&(n+=s>0?t.step:-t.step),parseFloat(n.toFixed(5))}let p=function(p){function u(e){var a;(a=p.call(this,e)||this).onKeyUp=()=>{a.onEnd()},a.onMouseUp=()=>{a.onEnd(a.getMouseEventMap())},a.onTouchEnd=()=>{a.onEnd(a.getTouchEventMap())},a.onBlur=()=>{a.setState({index:-1},a.onEnd(a.getKeyDownEventMap()))},a.onMouseMove=e=>{a.setState({pending:!0});const t=a.getMousePosition(e),s=a.getDiffPosition(t[0]),n=a.getValueFromPosition(s);a.move(n)},a.onTouchMove=e=>{if(e.touches.length>1)return;a.setState({pending:!0});const t=a.getTouchPosition(e);if(void 0===a.isScrolling){const e=t[0]-a.startPosition[0],s=t[1]-a.startPosition[1];a.isScrolling=Math.abs(s)>Math.abs(e)}if(a.isScrolling)return void a.setState({index:-1});const s=a.getDiffPosition(t[0]),n=a.getValueFromPosition(s);a.move(n)},a.onKeyDown=e=>{if(!(e.ctrlKey||e.shiftKey||e.altKey||e.metaKey))switch(a.setState({pending:!0}),e.key){case\"ArrowLeft\":case\"ArrowDown\":case\"Left\":case\"Down\":e.preventDefault(),a.moveDownByStep();break;case\"ArrowRight\":case\"ArrowUp\":case\"Right\":case\"Up\":e.preventDefault(),a.moveUpByStep();break;case\"Home\":e.preventDefault(),a.move(a.props.min);break;case\"End\":e.preventDefault(),a.move(a.props.max);break;case\"PageDown\":e.preventDefault(),a.moveDownByStep(a.props.pageFn(a.props.step));break;case\"PageUp\":e.preventDefault(),a.moveUpByStep(a.props.pageFn(a.props.step))}},a.onSliderMouseDown=e=>{if(!a.props.disabled&&2!==e.button){if(a.setState({pending:!0}),!a.props.snapDragDisabled){const t=a.getMousePosition(e);a.forceValueFromPosition(t[0],(e=>{a.start(e,t[0]),o(a.getMouseEventMap())}))}s(e)}},a.onSliderClick=e=>{if(!a.props.disabled&&a.props.onSliderClick&&!a.hasMoved){const t=a.getMousePosition(e),s=r(a.calcValue(a.calcOffsetFromPosition(t[0])),a.props);a.props.onSliderClick(s)}},a.createOnKeyDown=e=>t=>{a.props.disabled||(a.start(e),o(a.getKeyDownEventMap()),s(t))},a.createOnMouseDown=e=>t=>{if(a.props.disabled||2===t.button)return;a.setState({pending:!0});const n=a.getMousePosition(t);a.start(e,n[0]),o(a.getMouseEventMap()),s(t)},a.createOnTouchStart=e=>t=>{if(a.props.disabled||t.touches.length>1)return;a.setState({pending:!0});const s=a.getTouchPosition(t);a.startPosition=s,a.isScrolling=void 0,a.start(e,s[0]),o(a.getTouchEventMap()),function(e){e.stopPropagation&&e.stopPropagation()}(t)},a.handleResize=()=>{const e=window.setTimeout((()=>{a.pendingResizeTimeouts.shift(),a.resize()}),0);a.pendingResizeTimeouts.push(e)},a.renderThumb=(e,t)=>{const s=a.props.thumbClassName+\" \"+a.props.thumbClassName+\"-\"+t+\" \"+(a.state.index===t?a.props.thumbActiveClassName:\"\"),n={ref:e=>{a[\"thumb\"+t]=e},key:a.props.thumbClassName+\"-\"+t,className:s,style:e,onMouseDown:a.createOnMouseDown(t),onTouchStart:a.createOnTouchStart(t),onFocus:a.createOnKeyDown(t),tabIndex:0,role:\"slider\",\"aria-orientation\":a.props.orientation,\"aria-valuenow\":a.state.value[t],\"aria-valuemin\":a.props.min,\"aria-valuemax\":a.props.max,\"aria-label\":Array.isArray(a.props.ariaLabel)?a.props.ariaLabel[t]:a.props.ariaLabel,\"aria-labelledby\":Array.isArray(a.props.ariaLabelledby)?a.props.ariaLabelledby[t]:a.props.ariaLabelledby},o={index:t,value:i(a.state.value),valueNow:a.state.value[t]};return a.props.ariaValuetext&&(n[\"aria-valuetext\"]=\"string\"==typeof a.props.ariaValuetext?a.props.ariaValuetext:a.props.ariaValuetext(o)),a.props.renderThumb(n,o)},a.renderTrack=(e,t,s)=>{const n={key:a.props.trackClassName+\"-\"+e,className:a.props.trackClassName+\" \"+a.props.trackClassName+\"-\"+e,style:a.buildTrackStyle(t,a.state.upperBound-s)},o={index:e,value:i(a.state.value)};return a.props.renderTrack(n,o)};let u=n(e.value);u.length||(u=n(e.defaultValue)),a.pendingResizeTimeouts=[];const h=[];for(let t=0;t<u.length;t+=1)u[t]=r(u[t],e),h.push(t);return a.resizeObserver=null,a.resizeElementRef=t.createRef(),a.state={index:-1,upperBound:0,sliderLength:0,value:u,zIndices:h},a}e(u,p);var h=u.prototype;return h.componentDidMount=function(){\"undefined\"!=typeof window&&(this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.resizeElementRef.current),this.resize())},u.getDerivedStateFromProps=function(e,t){const s=n(e.value);return s.length?t.pending?null:{value:s.map((t=>r(t,e)))}:null},h.componentDidUpdate=function(){0===this.state.upperBound&&this.resize()},h.componentWillUnmount=function(){this.clearPendingResizeTimeouts(),this.resizeObserver&&this.resizeObserver.disconnect()},h.onEnd=function(e){e&&function(e){Object.keys(e).forEach((t=>{\"undefined\"!=typeof document&&document.removeEventListener(t,e[t],!1)}))}(e),this.hasMoved&&this.fireChangeEvent(\"onAfterChange\"),this.setState({pending:!1}),this.hasMoved=!1},h.getValue=function(){return i(this.state.value)},h.getClosestIndex=function(e){let t=Number.MAX_VALUE,s=-1;const{value:n}=this.state,i=n.length;for(let o=0;o<i;o+=1){const i=this.calcOffset(n[o]),r=Math.abs(e-i);r<t&&(t=r,s=o)}return s},h.getMousePosition=function(e){return[e[\"page\"+this.axisKey()],e[\"page\"+this.orthogonalAxisKey()]]},h.getTouchPosition=function(e){const t=e.touches[0];return[t[\"page\"+this.axisKey()],t[\"page\"+this.orthogonalAxisKey()]]},h.getKeyDownEventMap=function(){return{keydown:this.onKeyDown,keyup:this.onKeyUp,focusout:this.onBlur}},h.getMouseEventMap=function(){return{mousemove:this.onMouseMove,mouseup:this.onMouseUp}},h.getTouchEventMap=function(){return{touchmove:this.onTouchMove,touchend:this.onTouchEnd}},h.getValueFromPosition=function(e){const t=e/(this.state.sliderLength-this.state.thumbSize)*(this.props.max-this.props.min);return r(this.state.startValue+t,this.props)},h.getDiffPosition=function(e){let t=e-this.state.startPosition;return this.props.invert&&(t*=-1),t},h.resize=function(){const{slider:e,thumb0:t}=this;if(!e||!t)return;const s=this.sizeKey(),n=e.getBoundingClientRect(),i=e[s],o=n[this.posMaxKey()],r=n[this.posMinKey()],a=t.getBoundingClientRect()[s.replace(\"client\",\"\").toLowerCase()],p=i-a,u=Math.abs(o-r);this.state.upperBound===p&&this.state.sliderLength===u&&this.state.thumbSize===a||this.setState({upperBound:p,sliderLength:u,thumbSize:a})},h.calcOffset=function(e){const t=this.props.max-this.props.min;if(0===t)return 0;return(e-this.props.min)/t*this.state.upperBound},h.calcValue=function(e){return e/this.state.upperBound*(this.props.max-this.props.min)+this.props.min},h.calcOffsetFromPosition=function(e){const{slider:t}=this,s=t.getBoundingClientRect(),n=s[this.posMaxKey()],i=s[this.posMinKey()];let o=e-(window[\"page\"+this.axisKey()+\"Offset\"]+(this.props.invert?n:i));return this.props.invert&&(o=this.state.sliderLength-o),o-=this.state.thumbSize/2,o},h.forceValueFromPosition=function(e,t){const s=this.calcOffsetFromPosition(e),n=this.getClosestIndex(s),i=r(this.calcValue(s),this.props),o=this.state.value.slice();o[n]=i;for(let e=0;e<o.length-1;e+=1)if(o[e+1]-o[e]<this.props.minDistance)return;this.fireChangeEvent(\"onBeforeChange\"),this.hasMoved=!0,this.setState({value:o},(()=>{t(n),this.fireChangeEvent(\"onChange\")}))},h.clearPendingResizeTimeouts=function(){do{const e=this.pendingResizeTimeouts.shift();clearTimeout(e)}while(this.pendingResizeTimeouts.length)},h.start=function(e,t){const s=this[\"thumb\"+e];s&&s.focus();const{zIndices:n}=this.state;n.splice(n.indexOf(e),1),n.push(e),this.setState((s=>({startValue:s.value[e],startPosition:void 0!==t?t:s.startPosition,index:e,zIndices:n})))},h.moveUpByStep=function(e){void 0===e&&(e=this.props.step);const t=r(this.state.value[this.state.index]+e,this.props);this.move(Math.min(t,this.props.max))},h.moveDownByStep=function(e){void 0===e&&(e=this.props.step);const t=r(this.state.value[this.state.index]-e,this.props);this.move(Math.max(t,this.props.min))},h.move=function(e){const{index:t,value:s}=this.state,{length:n}=s,i=s[t];if(e===i)return;this.hasMoved||this.fireChangeEvent(\"onBeforeChange\"),this.hasMoved=!0;const{pearling:o,max:r,min:a,minDistance:p}=this.props;if(!o){if(t>0){const n=s[t-1];e<n+p&&(e=n+p)}if(t<n-1){const n=s[t+1];e>n-p&&(e=n-p)}}s[t]=e,o&&n>1&&(e>i?(this.pushSucceeding(s,p,t),function(e,t,s,n){for(let i=0;i<e;i+=1){const o=n-i*s;t[e-1-i]>o&&(t[e-1-i]=o)}}(n,s,p,r)):e<i&&(this.pushPreceding(s,p,t),function(e,t,s,n){for(let i=0;i<e;i+=1){const e=n+i*s;t[i]<e&&(t[i]=e)}}(n,s,p,a))),this.setState({value:s},this.fireChangeEvent.bind(this,\"onChange\"))},h.pushSucceeding=function(e,t,s){let n,i;for(n=s,i=e[n]+t;null!==e[n+1]&&i>e[n+1];n+=1,i=e[n]+t)e[n+1]=a(i,this.props)},h.pushPreceding=function(e,t,s){for(let n=s,i=e[n]-t;null!==e[n-1]&&i<e[n-1];n-=1,i=e[n]-t)e[n-1]=a(i,this.props)},h.axisKey=function(){return\"vertical\"===this.props.orientation?\"Y\":\"X\"},h.orthogonalAxisKey=function(){return\"vertical\"===this.props.orientation?\"X\":\"Y\"},h.posMinKey=function(){return\"vertical\"===this.props.orientation?this.props.invert?\"bottom\":\"top\":this.props.invert?\"right\":\"left\"},h.posMaxKey=function(){return\"vertical\"===this.props.orientation?this.props.invert?\"top\":\"bottom\":this.props.invert?\"left\":\"right\"},h.sizeKey=function(){return\"vertical\"===this.props.orientation?\"clientHeight\":\"clientWidth\"},h.fireChangeEvent=function(e){this.props[e]&&this.props[e](i(this.state.value),this.state.index)},h.buildThumbStyle=function(e,t){const s={position:\"absolute\",touchAction:\"none\",willChange:this.state.index>=0?this.posMinKey():\"\",zIndex:this.state.zIndices.indexOf(t)+1};return s[this.posMinKey()]=e+\"px\",s},h.buildTrackStyle=function(e,t){const s={position:\"absolute\",willChange:this.state.index>=0?this.posMinKey()+\",\"+this.posMaxKey():\"\"};return s[this.posMinKey()]=e,s[this.posMaxKey()]=t,s},h.buildMarkStyle=function(e){var t;return(t={position:\"absolute\"})[this.posMinKey()]=e,t},h.renderThumbs=function(e){const{length:t}=e,s=[];for(let n=0;n<t;n+=1)s[n]=this.buildThumbStyle(e[n],n);const n=[];for(let e=0;e<t;e+=1)n[e]=this.renderThumb(s[e],e);return n},h.renderTracks=function(e){const t=[],s=e.length-1;t.push(this.renderTrack(0,0,e[0]));for(let n=0;n<s;n+=1)t.push(this.renderTrack(n+1,e[n],e[n+1]));return t.push(this.renderTrack(s+1,e[s],this.state.upperBound)),t},h.renderMarks=function(){let{marks:e}=this.props;const t=this.props.max-this.props.min+1;return\"boolean\"==typeof e?e=Array.from({length:t}).map(((e,t)=>t)):\"number\"==typeof e&&(e=Array.from({length:t}).map(((e,t)=>t)).filter((t=>t%e==0))),e.map(parseFloat).sort(((e,t)=>e-t)).map((e=>{const t=this.calcOffset(e),s={key:e,className:this.props.markClassName,style:this.buildMarkStyle(t)};return this.props.renderMark(s)}))},h.render=function(){const e=[],{value:s}=this.state,n=s.length;for(let t=0;t<n;t+=1)e[t]=this.calcOffset(s[t],t);const i=this.props.withTracks?this.renderTracks(e):null,o=this.renderThumbs(e),r=this.props.marks?this.renderMarks():null;return t.createElement(\"div\",{ref:e=>{this.slider=e,this.resizeElementRef.current=e},style:{position:\"relative\"},className:this.props.className+(this.props.disabled?\" disabled\":\"\"),onMouseDown:this.onSliderMouseDown,onClick:this.onSliderClick},i,o,r)},u}(t.Component);p.displayName=\"ReactSlider\",p.defaultProps={min:0,max:100,step:1,pageFn:e=>10*e,minDistance:0,defaultValue:0,orientation:\"horizontal\",className:\"slider\",thumbClassName:\"thumb\",thumbActiveClassName:\"active\",trackClassName:\"track\",markClassName:\"mark\",withTracks:!0,pearling:!1,disabled:!1,snapDragDisabled:!1,invert:!1,marks:[],renderThumb:e=>t.createElement(\"div\",e),renderTrack:e=>t.createElement(\"div\",e),renderMark:e=>t.createElement(\"span\",e)};var u=p;export{u as default};\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactSlider from 'react-slider';\nimport classNames from 'classnames';\n\nconst Slider = ({ className, thumbClassName, trackClassName, ...props }) => {\n  return (\n    <ReactSlider\n      className={classNames('slider', className)}\n      thumbClassName={classNames('slider__thumb', thumbClassName)}\n      trackClassName={classNames('slider__track', trackClassName)}\n      {...props}\n    />\n  );\n};\n\nSlider.propTypes = {\n  className: PropTypes.string,\n  thumbClassName: PropTypes.string,\n  trackClassName: PropTypes.string,\n};\n\nSlider.defaultProps = {\n  className: null,\n  thumbClassName: null,\n  trackClassName: null,\n};\n\nexport default Slider;\n","// Libraries\nimport React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isString from 'lodash/isString';\nimport classNames from 'classnames';\n\n// Enums\nimport SliderPosition from 'common/enums/SliderPosition';\n\n// Helpers\nimport { roundStepValue, rtlLanguage } from 'common/utils/helpers';\n\n// Components\nimport Slider from 'common/components/Slider';\nimport NumberInput from 'common/components/NumberInput';\n\nconst { LEFT, RIGHT, MIDDLE } = SliderPosition;\n\nconst SliderQuestionInput = ({ question, defaultValue, onChange }) => {\n  const { displayData, unitLabel } = question;\n  const { sliderPosition } = displayData;\n  const rangeStart = Number(displayData.rangeStart);\n  const rangeEnd = Number(displayData.rangeEnd);\n  const stepSize = Number(displayData.stepSize);\n  const [value, setValue] = useState(defaultValue);\n  const onChangeDebounced = useCallback(debounce(onChange, 500), []);\n\n  const updateValue = (newValue) => {\n    setValue(String(newValue));\n    onChangeDebounced(String(roundStepValue(newValue, stepSize, rangeStart, rangeEnd)));\n  };\n\n  const getSliderValue = () => {\n    if (value === '') return rangeStart;\n    if (isString(value)) return roundStepValue(value, stepSize, rangeStart, rangeEnd);\n\n    if (sliderPosition === LEFT) return rangeStart;\n    if (sliderPosition === RIGHT) return rangeEnd;\n    if (sliderPosition === MIDDLE) {\n      const middleValue = rangeStart + (rangeEnd - rangeStart) / 2;\n      return roundStepValue(middleValue, stepSize, rangeStart, rangeEnd);\n    }\n\n    return null;\n  };\n\n  const renderLabel = (label, className) => (\n    <div className={classNames('slider-question__slider-label', className)}>\n      {label} {unitLabel}\n    </div>\n  );\n\n  return (\n    <div className=\"slider-question__input\">\n      <div className=\"slider-question__slider\">\n        <div className=\"slider-question__slider-labels\">\n          {renderLabel(rangeStart, 'slider-question__slider-label--start')}\n          {renderLabel(rangeEnd, 'slider-question__slider-label--end')}\n        </div>\n        <Slider\n          ariaLabel={question.title}\n          ariaValuetext={`Value: ${getSliderValue()}`}\n          value={getSliderValue()}\n          onChange={updateValue}\n          min={rangeStart}\n          max={rangeEnd}\n          step={stepSize}\n          invert={rtlLanguage()}\n        />\n      </div>\n      <NumberInput\n        aria-label={question.title}\n        className=\"slider-question__value-input\"\n        value={value || ''}\n        onChange={(event) => updateValue(event.target.value)}\n        onBlur={() => setValue(String(roundStepValue(value, stepSize, rangeStart, rangeEnd)))}\n        decimals={0}\n        min={rangeStart}\n        max={rangeEnd}\n        step={stepSize}\n        style={{ maxWidth: `calc(${displayData.rangeEnd.length}ch + 60px` }}\n      />\n    </div>\n  );\n};\n\nSliderQuestionInput.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    title: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n    required: PropTypes.bool,\n    displayData: PropTypes.shape({\n      rangeEnd: PropTypes.string.isRequired,\n      stepSize: PropTypes.string.isRequired,\n      rangeStart: PropTypes.string.isRequired,\n      sliderPosition: PropTypes.string.isRequired,\n    }).isRequired,\n    unitLabel: PropTypes.string,\n  }).isRequired,\n  onChange: PropTypes.func.isRequired,\n  defaultValue: PropTypes.string,\n};\n\nSliderQuestionInput.defaultProps = {\n  defaultValue: null,\n};\n\nexport default SliderQuestionInput;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\n\n// State\nimport { upsertResponseEntry } from 'state/ducks/engagement';\n\n// Components\nimport SliderQuestionInput from './SliderQuestionInput';\n\nfunction SliderQuestion({ question, currentQuestionValues, dispatchUpdateQuestionValue }) {\n  const dispatch = useDispatch();\n\n  const onChangeHandler = (input, value) => {\n    dispatchUpdateQuestionValue(question.id, { [input.id]: { value } });\n    dispatch(\n      upsertResponseEntry({ inputId: input.id, questionId: question.id, inputAnswer: value })\n    );\n  };\n\n  return (\n    <div className=\"slider-question\">\n      {question.inputs.map((input) => (\n        <SliderQuestionInput\n          question={question}\n          defaultValue={currentQuestionValues?.[question.id]?.[input.id]?.value}\n          onChange={(value) => onChangeHandler(input, value)}\n          key={input.id}\n        />\n      ))}\n    </div>\n  );\n}\n\nSliderQuestion.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    title: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n    required: PropTypes.bool,\n    displayData: PropTypes.shape({\n      rangeEnd: PropTypes.string.isRequired,\n      stepSize: PropTypes.string.isRequired,\n      rangeStart: PropTypes.string.isRequired,\n      sliderPosition: PropTypes.string.isRequired,\n    }).isRequired,\n    unitLabel: PropTypes.string,\n  }).isRequired,\n  currentQuestionValues: PropTypes.shape({}),\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n};\n\nSliderQuestion.defaultProps = {\n  currentQuestionValues: null,\n};\n\nexport default SliderQuestion;\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.14.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n(function () {\n  var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n  enterModule && enterModule(module);\n})();\n\nfunction _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\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal[\"default\"].signature : function (a) {\n  return a;\n};\n\nvar Star = function Star(props) {\n  var starProps = Object.assign({}, props);\n  var nameMap = {\n    isDisabled: 'is-disabled',\n    isActive: 'is-active',\n    isActiveHalf: 'is-active-half',\n    willBeActive: 'will-be-active'\n  };\n  var className = Object.keys(nameMap).filter(function (prop) {\n    return delete starProps[prop], props[prop];\n  }).map(function (prop) {\n    return nameMap[prop];\n  }).join(' ');\n  return _react[\"default\"].createElement(\"div\", _extends({\n    className: \"react-rater-star \".concat(className)\n  }, starProps), \"\\u2605\");\n};\n\nStar.defaultProps = {\n  willBeActive: false,\n  isActive: false,\n  isActiveHalf: false,\n  isDisabled: false\n};\nStar.propTypes = {\n  isActive: _propTypes[\"default\"].bool,\n  isActiveHalf: _propTypes[\"default\"].bool,\n  willBeActive: _propTypes[\"default\"].bool,\n  isDisabled: _propTypes[\"default\"].bool\n};\nvar _default = Star;\nvar _default2 = _default;\nexports[\"default\"] = _default2;\n;\n\n(function () {\n  var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n  if (!reactHotLoader) {\n    return;\n  }\n\n  reactHotLoader.register(Star, \"Star\", \"/Users/simon/Individual/react-rater/src/star.js\");\n  reactHotLoader.register(_default, \"default\", \"/Users/simon/Individual/react-rater/src/star.js\");\n})();\n\n;\n\n(function () {\n  var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n  leaveModule && leaveModule(module);\n})();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"Star\", {\n  enumerable: true,\n  get: function get() {\n    return _star[\"default\"];\n  }\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _star = _interopRequireDefault(require(\"./star\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n(function () {\n  var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n  enterModule && enterModule(module);\n})();\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _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\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal[\"default\"].signature : function (a) {\n  return a;\n};\n\nvar Rater =\n/*#__PURE__*/\nfunction (_Component) {\n  _inherits(Rater, _Component);\n\n  function Rater(props) {\n    var _this;\n\n    _classCallCheck(this, Rater);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(Rater).call(this, props));\n    _this.state = {\n      rating: props.rating,\n      lastRating: props.rating,\n      isRating: false\n    };\n    return _this;\n  }\n\n  _createClass(Rater, [{\n    key: \"willRate\",\n    value: function willRate(rating, e) {\n      this.setState({\n        rating: rating,\n        isRating: true\n      });\n      var callback = this.props.onRating;\n      callback && callback(_objectSpread({}, e, {\n        rating: rating\n      }));\n    }\n  }, {\n    key: \"onRate\",\n    value: function onRate(rating, e) {\n      this.setState({\n        rating: rating,\n        lastRating: rating,\n        isRating: false\n      });\n      var callback = this.props.onRate;\n      callback && callback(_objectSpread({}, e, {\n        rating: rating\n      }));\n    }\n  }, {\n    key: \"onCancelRate\",\n    value: function onCancelRate() {\n      var rating = this.state.lastRating;\n      this.setState({\n        rating: rating,\n        isRating: false\n      });\n      var callback = this.props.onCancelRate;\n      callback && callback({\n        rating: rating\n      });\n    }\n  }, {\n    key: \"UNSAFE_componentWillReceiveProps\",\n    value: function UNSAFE_componentWillReceiveProps(nextProps, props) {\n      var rating = nextProps.rating;\n\n      if (rating !== props.rating) {\n        this.setState({\n          rating: rating,\n          lastRating: rating\n        });\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          total = _this$props.total,\n          interactive = _this$props.interactive,\n          children = _this$props.children,\n          restProps = _objectWithoutProperties(_this$props, [\"total\", \"interactive\", \"children\"]);\n\n      var _this$state = this.state,\n          rating = _this$state.rating,\n          isRating = _this$state.isRating;\n      children = _react.Children.toArray(children);\n      delete restProps.rating;\n      delete restProps.onRate;\n      delete restProps.onRating;\n      delete restProps.onCancelRate;\n      var nodes = Array.apply(null, Array(total)).map(function (_, i) {\n        var starProps = {\n          isActive: !isRating && rating - i >= 1,\n          willBeActive: isRating && i < rating,\n          isActiveHalf: !isRating && rating - i >= 0.5 && rating - i < 1,\n          isDisabled: !interactive\n        };\n        return _react[\"default\"].createElement(\"div\", {\n          key: \"star-\".concat(i),\n          onClick: interactive ? _this2.onRate.bind(_this2, i + 1) : null,\n          onMouseOver: interactive ? _this2.willRate.bind(_this2, i + 1) : null\n        }, children.length ? _react[\"default\"].cloneElement(children[i % children.length], starProps) : _react[\"default\"].createElement(_star[\"default\"], starProps));\n      });\n\n      if (interactive) {\n        return _react[\"default\"].createElement(\"div\", _extends({\n          className: \"react-rater\",\n          onMouseOut: this.onCancelRate.bind(this)\n        }, restProps), nodes);\n      } else {\n        return _react[\"default\"].createElement(\"div\", _extends({\n          className: \"react-rater\"\n        }, restProps), nodes);\n      }\n    }\n  }, {\n    key: \"__reactstandin__regenerateByEval\",\n    // @ts-ignore\n    value: function __reactstandin__regenerateByEval(key, code) {\n      // @ts-ignore\n      this[key] = eval(code);\n    }\n  }]);\n\n  return Rater;\n}(_react.Component);\n\nexports[\"default\"] = Rater;\nRater.propTypes = {\n  total: _propTypes[\"default\"].number,\n  rating: _propTypes[\"default\"].number,\n  interactive: _propTypes[\"default\"].bool,\n  children: _propTypes[\"default\"].any,\n  onRate: _propTypes[\"default\"].func,\n  onRating: _propTypes[\"default\"].func,\n  onCancelRate: _propTypes[\"default\"].func\n};\nRater.defaultProps = {\n  total: 5,\n  rating: 0,\n  interactive: true\n};\n;\n\n(function () {\n  var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n  if (!reactHotLoader) {\n    return;\n  }\n\n  reactHotLoader.register(Rater, \"Rater\", \"/Users/simon/Individual/react-rater/src/index.js\");\n})();\n\n;\n\n(function () {\n  var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n  leaveModule && leaveModule(module);\n})();","// Libraries\nimport React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n// Enumerables\nimport Key from 'common/enums/Key';\n\nconst RatingQuestionStar = ({ rating, isActive, willBeActive }) => {\n  const elementRef = useRef();\n\n  const onKeyDown = (event) => {\n    if ([Key.ENTER, Key.SPACE].includes(event.key)) {\n      // Trigger react-rater click event\n      elementRef.current.parentElement.click();\n    }\n  };\n\n  return (\n    <div\n      className={classNames('rating-question__star')}\n      onKeyDown={onKeyDown}\n      ref={elementRef}\n      tabIndex=\"0\"\n      aria-label={`${rating} ${rating > 1 ? 'stars' : 'star'}`}\n      role=\"button\"\n    >\n      <div className=\"rating-question__star-label\">{rating}</div>\n      <i\n        className={classNames('fa-star', {\n          fas: isActive || willBeActive,\n          far: !isActive,\n          'rating-question__star-icon--active': isActive,\n        })}\n      />\n    </div>\n  );\n};\n\nRatingQuestionStar.propTypes = {\n  rating: PropTypes.number.isRequired,\n  isActive: PropTypes.bool,\n  willBeActive: PropTypes.bool,\n};\n\nRatingQuestionStar.defaultProps = {\n  isActive: false,\n  willBeActive: false,\n};\n\nexport default RatingQuestionStar;\n","// Libraries\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Rater from 'react-rater';\nimport { range } from 'underscore';\n\n// Components\nimport RatingQuestionStar from '../RatingQuestionStar';\n\nconst RatingQuestionInput = ({ question, defaultValue, onChange }) => {\n  const { displayData } = question;\n  const scale = Number(displayData.scale);\n  const [rating, setRating] = useState(defaultValue && Number(defaultValue));\n\n  const onRate = (event) => {\n    setRating(event.rating);\n    onChange(String(event.rating));\n  };\n\n  return (\n    <div className=\"rating-question__input\">\n      <Rater total={scale} rating={rating} onRate={onRate}>\n        {range(scale).map((value) => (\n          <RatingQuestionStar rating={value + 1} key={value} />\n        ))}\n      </Rater>\n    </div>\n  );\n};\n\nRatingQuestionInput.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    title: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(PropTypes.any).isRequired,\n    required: PropTypes.bool,\n    displayData: PropTypes.shape({\n      scale: PropTypes.string.isRequired,\n    }).isRequired,\n  }).isRequired,\n  onChange: PropTypes.func.isRequired,\n  defaultValue: PropTypes.string,\n};\n\nRatingQuestionInput.defaultProps = {\n  defaultValue: null,\n};\n\nexport default RatingQuestionInput;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\n\n// State\nimport { upsertResponseEntry } from 'state/ducks/engagement';\n\n// Components\nimport RatingQuestionInput from './RatingQuestionInput';\n\nfunction RatingQuestion({ question, currentQuestionValues, dispatchUpdateQuestionValue }) {\n  const dispatch = useDispatch();\n\n  const onChangeHandler = (input, value) => {\n    dispatchUpdateQuestionValue(question.id, { [input.id]: { value } });\n    dispatch(\n      upsertResponseEntry({ inputId: input.id, questionId: question.id, inputAnswer: value })\n    );\n  };\n\n  return (\n    <div className=\"rating-question\">\n      {question.inputs.map((input) => (\n        <RatingQuestionInput\n          question={question}\n          defaultValue={currentQuestionValues?.[question.id]?.[input.id]?.value}\n          onChange={(value) => onChangeHandler(input, value)}\n          key={input.id}\n        />\n      ))}\n    </div>\n  );\n}\n\nRatingQuestion.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    title: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n    required: PropTypes.bool,\n    displayData: PropTypes.shape({\n      scale: PropTypes.string.isRequired,\n    }).isRequired,\n  }).isRequired,\n  currentQuestionValues: PropTypes.shape({}),\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n};\n\nRatingQuestion.defaultProps = {\n  currentQuestionValues: null,\n};\n\nexport default RatingQuestion;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\n// Utilities\nimport { capitalize, formatUnitValue, sumQuestionValues } from 'common/utils/helpers';\n\nfunction OpenBudgetOverview({ budget, capType, unitLabel, currentValues }) {\n  const { t } = useTranslation();\n  const used = sumQuestionValues(currentValues);\n  const remaining = budget - used;\n  const deficit = remaining < 0;\n  const progress = (deficit ? budget / used : used / budget) * 100;\n\n  function renderLabel() {\n    if (capType === 'hard_cap') return t('engagement.remaining');\n    if (remaining > 0) return t('engagement.surplus');\n    if (remaining < 0) return t('engagement.deficit');\n    return t('engagement.balanced');\n  }\n\n  return (\n    <div className=\"open-budget-overview\">\n      <div className=\"open-budget-overview__header\">\n        {capitalize(t('engagement.used'))}\n        <span className=\"open-budget-overview__used\">{formatUnitValue(used, unitLabel)}</span>\n      </div>\n      <div\n        className={classNames('open-budget-overview__progress', {\n          'open-budget-overview__progress--deficit': deficit,\n        })}\n      >\n        <div\n          className=\"open-budget-overview__progress-value\"\n          style={{ width: deficit ? `calc(${progress}% + 1px)` : `${progress}%` }}\n        />\n      </div>\n      <div className=\"open-budget-overview__footer\">\n        {capType === 'soft_cap' && (\n          <i\n            className={classNames('fas open-budget-overview__icon', {\n              'fa-plus-circle': remaining > 0,\n              'fa-check': remaining === 0,\n              'fa-exclamation-triangle open-budget-overview__icon--negative': remaining < 0,\n            })}\n          />\n        )}\n        {renderLabel()}\n        <span className=\"open-budget-overview__remaining\">\n          {formatUnitValue(remaining, unitLabel)}\n        </span>\n      </div>\n    </div>\n  );\n}\n\nOpenBudgetOverview.propTypes = {\n  budget: PropTypes.number.isRequired,\n  capType: PropTypes.oneOf(['soft_cap', 'hard_cap']).isRequired,\n  unitLabel: PropTypes.string,\n  currentValues: PropTypes.shape({}),\n};\n\nOpenBudgetOverview.defaultProps = {\n  unitLabel: '',\n  currentValues: {},\n};\n\nexport default OpenBudgetOverview;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction OpenBudgetInputsHeader({ unitLabel, comparisonValueLabel }) {\n  return (\n    <div className=\"open-budget-inputs-header is-hidden-mobile\">\n      <div className=\"open-budget-inputs-header__unit\">{unitLabel}</div>\n      <div className=\"open-budget-inputs-header__comparison\">{comparisonValueLabel}</div>\n    </div>\n  );\n}\n\nOpenBudgetInputsHeader.propTypes = {\n  unitLabel: PropTypes.string,\n  comparisonValueLabel: PropTypes.string,\n};\n\nOpenBudgetInputsHeader.defaultProps = {\n  unitLabel: '',\n  comparisonValueLabel: '',\n};\n\nexport default OpenBudgetInputsHeader;\n","// Libraries\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nconst Image = (props) => {\n  const { src, alt } = props;\n  const [hasError, setHasError] = useState(false);\n\n  const onErrorHandler = () => {\n    setHasError(true);\n  };\n\n  if (hasError || !src) return null;\n\n  return <img src={src} alt={alt} onError={onErrorHandler} />;\n};\n\nImage.propTypes = {\n  src: PropTypes.string,\n  alt: PropTypes.string,\n};\n\nImage.defaultProps = {\n  src: '',\n  alt: '',\n};\n\nexport default Image;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n// Utilities\nimport { formatUnitValue } from 'common/utils/helpers';\n\nfunction OpenBudgetComparison({\n  value,\n  comparisonValue,\n  unitLabel,\n  comparisonValueLabel,\n  unitLayout,\n}) {\n  if (comparisonValue === 0) return null;\n\n  const change = Math.round((value / comparisonValue - 1) * 10000) / 100;\n  const changePercentage = `${change > 0 ? '+' : ''}${change}%`;\n\n  return (\n    <div className=\"open-budget-comparison\">\n      <div className=\"open-budget-comparison__value\">\n        <span className={classNames({ 'is-hidden-tablet': unitLayout === 'header' })}>\n          {comparisonValueLabel}{' '}\n        </span>\n        {formatUnitValue(comparisonValue, unitLabel)}\n      </div>\n      <div\n        className={classNames('open-budget-comparison__change', {\n          'open-budget-comparison__change--positive': change > 0,\n          'open-budget-comparison__change--negative': change < 0,\n        })}\n      >\n        {changePercentage}\n        {change !== 0 && (\n          <i\n            className={classNames('open-budget-comparison__change-icon fas', {\n              'fa-long-arrow-alt-up': change > 0,\n              'fa-long-arrow-alt-down': change < 0,\n            })}\n          />\n        )}\n      </div>\n    </div>\n  );\n}\n\nOpenBudgetComparison.propTypes = {\n  value: PropTypes.number.isRequired,\n  comparisonValue: PropTypes.number.isRequired,\n  unitLabel: PropTypes.string.isRequired,\n  comparisonValueLabel: PropTypes.string.isRequired,\n  unitLayout: PropTypes.string.isRequired,\n};\n\nexport default OpenBudgetComparison;\n","// Libraries\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n// Utilities\nimport {\n  decimalPlaces,\n  determineImageSize,\n  roundStepValue,\n  rtlLanguage,\n} from 'common/utils/helpers';\n\n// Components\nimport Slider from 'common/components/Slider';\nimport NumberInput from 'common/components/NumberInput';\nimport Image from 'common/components/Image';\nimport OpenBudgetComparison from '../OpenBudgetComparison';\n\nfunction OpenBudgetInput({\n  input,\n  unitLabel,\n  comparisonValueLabel,\n  unitLayout,\n  maxInputValue,\n  defaultValue,\n  onChange,\n}) {\n  const { displayData, label, media } = input;\n  const { description, stepSize, minValue, maxValue, fixed } = displayData;\n  const [expanded, setExpanded] = useState(false);\n  const [value, setValue] = useState(\n    String(roundStepValue(defaultValue || displayData.defaultValue, stepSize, minValue, maxValue))\n  );\n  const sanitizedValue = roundStepValue(value, stepSize, minValue, maxValue);\n\n  const updateValue = (newValue) => {\n    if (fixed) return;\n    setValue(String(newValue));\n    onChange(String(roundStepValue(newValue, stepSize, minValue, maxValue)));\n  };\n\n  useEffect(() => {\n    if (defaultValue === null) onChange(value, true);\n  }, []);\n\n  return (\n    <div className=\"open-budget-input\">\n      <button\n        type=\"button\"\n        className=\"open-budget-input__header\"\n        onClick={() => setExpanded(!expanded)}\n        disabled={!media && !description}\n      >\n        <h3 className=\"open-budget-input__title\">{label}</h3>\n        <div className=\"open-budget-input__chevron\">\n          <i\n            className={classNames('fas', {\n              'fa-chevron-down': expanded,\n              'fa-chevron-right': !expanded && !rtlLanguage(),\n              'fa-chevron-left': !expanded && rtlLanguage(),\n            })}\n          />\n        </div>\n      </button>\n      <div className=\"open-budget-input__controls\">\n        <div className=\"open-budget-input__slider-container\">\n          <div className=\"open-budget-input__slider-labels\">\n            <div className=\" open-budget-input__slider-label open-budget-input__slider-label--start\">\n              {minValue.toLocaleString()}\n            </div>\n            <div className=\" open-budget-input__slider-label open-budget-input__slider-label--end\">\n              {maxValue.toLocaleString()}\n            </div>\n          </div>\n          <Slider\n            ariaLabel={label}\n            ariaValuetext={`Value: ${sanitizedValue}`}\n            className=\"open-budget-input__slider\"\n            thumbClassName=\"open-budget-input__slider-thumb\"\n            trackClassName=\"open-budget-input__slider-track\"\n            value={sanitizedValue}\n            onChange={updateValue}\n            min={minValue}\n            max={maxValue}\n            step={stepSize}\n            disabled={fixed}\n            invert={rtlLanguage()}\n          />\n        </div>\n        <div className=\"open-budget-input__value-container\">\n          <div\n            className={classNames('open-budget-input__value', {\n              'open-budget-input__value--reverse': unitLabel === '$',\n            })}\n          >\n            <NumberInput\n              aria-label={label}\n              className=\"open-budget-input__value-input\"\n              value={value}\n              onChange={(event) => updateValue(event.target.value)}\n              onBlur={() => setValue(String(sanitizedValue))}\n              decimals={decimalPlaces(stepSize)}\n              min={minValue}\n              max={maxValue}\n              step={stepSize}\n              disabled={fixed}\n              style={{ minWidth: `calc(${maxInputValue.toString().length}ch + 60px` }}\n            />\n            <div className={classNames({ 'is-hidden-tablet': unitLayout === 'header' })}>\n              {unitLabel}\n            </div>\n          </div>\n          <OpenBudgetComparison\n            value={sanitizedValue}\n            comparisonValue={Number(displayData.comparisonValue)}\n            unitLabel={unitLabel}\n            comparisonValueLabel={comparisonValueLabel}\n            unitLayout={unitLayout}\n          />\n        </div>\n      </div>\n      <div\n        className={classNames('open-budget-input__content fade-in', {\n          'open-budget-input__content--expanded': expanded,\n        })}\n      >\n        {description && <div className=\"open-budget-input__description\">{description}</div>}\n        {media && <Image src={determineImageSize(media.imageUrls)} alt={media.altText} />}\n      </div>\n    </div>\n  );\n}\n\nOpenBudgetInput.propTypes = {\n  input: PropTypes.shape({\n    label: PropTypes.string.isRequired,\n    displayData: PropTypes.shape({\n      description: PropTypes.string,\n      minValue: PropTypes.number.isRequired,\n      maxValue: PropTypes.number.isRequired,\n      stepSize: PropTypes.number.isRequired,\n      defaultValue: PropTypes.string.isRequired,\n      comparisonValue: PropTypes.string,\n      fixed: PropTypes.bool.isRequired,\n    }).isRequired,\n    media: PropTypes.shape({\n      imageUrls: PropTypes.shape({}),\n      altText: PropTypes.string,\n    }),\n  }).isRequired,\n  unitLabel: PropTypes.string,\n  comparisonValueLabel: PropTypes.string,\n  unitLayout: PropTypes.string.isRequired,\n  maxInputValue: PropTypes.number.isRequired,\n  onChange: PropTypes.func.isRequired,\n  defaultValue: PropTypes.string,\n};\n\nOpenBudgetInput.defaultProps = {\n  defaultValue: null,\n  unitLabel: '',\n  comparisonValueLabel: '',\n};\n\nexport default OpenBudgetInput;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction OpenBudgetChartTooltip({ active, payload }) {\n  if (!active) return null;\n\n  const { percent } = payload[0].payload;\n\n  return <div className=\"open-budget-chart-tooltip\">{percent.toFixed(2)}%</div>;\n}\n\nOpenBudgetChartTooltip.propTypes = {\n  active: PropTypes.bool,\n  payload: PropTypes.arrayOf(\n    PropTypes.shape({\n      payload: PropTypes.shape({\n        percent: PropTypes.number.isRequired,\n      }).isRequired,\n    })\n  ),\n};\n\nOpenBudgetChartTooltip.defaultProps = {\n  active: false,\n  payload: [],\n};\n\nexport default OpenBudgetChartTooltip;\n","// Libraries\nimport React from 'react';\nimport { PieChart, Pie, Cell, Legend, Tooltip } from 'recharts';\nimport PropTypes from 'prop-types';\n\n// Utilities\nimport { colors, formatUnitValue, sumQuestionValues } from 'common/utils/helpers';\n\n// Components\nimport OpenBudgetChartTooltip from '../OpenBudgetChartTooltip';\n\nfunction OpenBudgetChart({ inputs, currentValues, unitLabel }) {\n  const used = sumQuestionValues(currentValues);\n  const chartData = inputs.reduce((data, input, index) => {\n    const value = Number(currentValues[input.id]?.value);\n\n    if (value) {\n      data.push({\n        name: input.label,\n        colorIndex: index,\n        percent: (value / used) * 100,\n        value,\n      });\n    }\n\n    return data;\n  }, []);\n\n  return (\n    <div className=\"open-budget-chart\">\n      <PieChart width={292} height={292} accessibilityLayer>\n        <Pie\n          data={chartData}\n          innerRadius={102}\n          outerRadius={146}\n          fill=\"#8884d8\"\n          paddingAngle={0.5}\n          dataKey=\"value\"\n          isAnimationActive={false}\n        >\n          {chartData.map(({ name, colorIndex }) => (\n            <Cell key={name} fill={colors[colorIndex % colors.length]} />\n          ))}\n        </Pie>\n        <Tooltip content={<OpenBudgetChartTooltip />} />\n      </PieChart>\n      <Legend\n        layout=\"vertical\"\n        width=\"100%\"\n        wrapperStyle={{ marginTop: '40px', position: 'static' }}\n        payload={inputs.map(({ id, label }, index) => ({\n          id,\n          type: 'square',\n          value: `${label} ${formatUnitValue(Number(currentValues[id]?.value) || 0, unitLabel)}`,\n          color: colors[index % colors.length],\n        }))}\n      />\n    </div>\n  );\n}\n\nLegend.propTypes = {\n  width: PropTypes.string.isRequired,\n};\n\nOpenBudgetChart.propTypes = {\n  inputs: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.string.isRequired,\n      label: PropTypes.string.isRequired,\n    })\n  ).isRequired,\n  currentValues: PropTypes.shape({}),\n  unitLabel: PropTypes.string,\n};\n\nOpenBudgetChart.defaultProps = {\n  currentValues: {},\n  unitLabel: '',\n};\n\nexport default OpenBudgetChart;\n","// Libraries\nimport React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch } from 'react-redux';\nimport debounce from 'lodash/debounce';\n\n// State\nimport { upsertResponseEntry } from 'state/ducks/engagement';\n\n// Utilities\nimport { roundStepValue } from 'common/utils/helpers';\n\n// Components\nimport OpenBudgetOverview from './OpenBudgetOverview';\nimport OpenBudgetInputsHeader from './OpenBudgetInputsHeader';\nimport OpenBudgetInput from './OpenBudgetInput';\nimport OpenBudgetChart from './OpenBudgetChart';\n\nfunction OpenBudgetQuestion({ question, currentQuestionValues, dispatchUpdateQuestionValue }) {\n  const { unitLabel, supportText } = question;\n  const { budget, capType, comparisonValueLabel, unitLayout } = question.displayData;\n  const dispatch = useDispatch();\n  const dispatchDebounced = useCallback(debounce(dispatch, 300), []);\n\n  const sanitizedInputs = useMemo(\n    () =>\n      question.inputs.map((input) => {\n        const { displayData } = input;\n        const stepSize = Math.abs(Number(displayData.stepSize));\n        const minValue = Math.max(Number(displayData.minValue), 0);\n        const maxValueRaw = Math.max(Number(displayData.maxValue), 0);\n        const maxValue = roundStepValue(maxValueRaw, stepSize, minValue, maxValueRaw);\n        const fixed = Boolean(Number(displayData.fixed));\n        return { ...input, displayData: { ...displayData, stepSize, minValue, maxValue, fixed } };\n      }),\n    [question.inputs]\n  );\n\n  const maxInputValue = useMemo(\n    () => Math.max(sanitizedInputs.map((input) => input.displayData.maxValue)),\n    [sanitizedInputs]\n  );\n\n  const onChangeHandler = (inputId, value, initialSubmit = false) => {\n    dispatchUpdateQuestionValue(question.id, { [inputId]: { value } }, true);\n\n    const entry = upsertResponseEntry({ inputId, questionId: question.id, inputAnswer: value });\n    if (initialSubmit) dispatch(entry);\n    else dispatchDebounced(entry);\n  };\n\n  return (\n    <div className=\"open-budget-question\">\n      <div className=\"open-budget-question__content\">\n        <div className=\"open-budget-question__support-text\">{supportText}</div>\n        <OpenBudgetOverview\n          budget={Number(budget)}\n          capType={capType}\n          unitLabel={unitLabel}\n          currentValues={currentQuestionValues?.[question.id]}\n        />\n        {unitLayout === 'header' && (\n          <OpenBudgetInputsHeader\n            unitLabel={unitLabel}\n            comparisonValueLabel={comparisonValueLabel}\n          />\n        )}\n        {sanitizedInputs.map((input) => (\n          <OpenBudgetInput\n            key={input.id}\n            input={input}\n            unitLabel={unitLabel}\n            comparisonValueLabel={comparisonValueLabel}\n            unitLayout={unitLayout}\n            maxInputValue={maxInputValue}\n            defaultValue={currentQuestionValues?.[question.id]?.[input.id]?.value}\n            onChange={(value, initialSubmit) => onChangeHandler(input.id, value, initialSubmit)}\n          />\n        ))}\n      </div>\n      <div className=\"open-budget-question__sidebar\">\n        <OpenBudgetChart\n          inputs={question.inputs}\n          currentValues={currentQuestionValues?.[question.id]}\n          unitLabel={unitLabel}\n        />\n      </div>\n    </div>\n  );\n}\n\nOpenBudgetQuestion.propTypes = {\n  question: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    title: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(\n      PropTypes.shape({\n        id: PropTypes.string,\n        label: PropTypes.string,\n      })\n    ).isRequired,\n    required: PropTypes.bool,\n    unitLabel: PropTypes.string,\n    supportText: PropTypes.string,\n    displayData: PropTypes.shape({\n      budget: PropTypes.string.isRequired,\n      capType: PropTypes.oneOf(['soft_cap', 'hard_cap']).isRequired,\n      comparisonValueLabel: PropTypes.string,\n      unitLayout: PropTypes.string.isRequired,\n    }).isRequired,\n  }).isRequired,\n  currentQuestionValues: PropTypes.shape({}),\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n};\n\nOpenBudgetQuestion.defaultProps = {\n  currentQuestionValues: null,\n};\n\nexport default OpenBudgetQuestion;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\n// State\nimport {\n  getCurrentQuestionValues,\n  getCurrentSectionPosition,\n  getQuestionErrors,\n  getQuestionValues,\n  updateQuestionValue,\n} from 'state/ducks/engagement';\n\n//  Enumerables\nimport { Validations } from 'engagement/enums/singleTextBox';\nimport QuestionFormat from 'engagement/enums/QuestionFormat';\nimport Rules from 'engagement/enums/Rules';\n\n// Components\nimport BasicQuestion from './questions/BasicQuestion';\nimport SingleSelectQuestion from './questions/SingleSelectQuestion';\nimport MultiSelectQuestion from './questions/MultiSelectQuestion';\nimport DropdownQuestion from './questions/DropdownQuestion';\nimport MatrixQuestion from './questions/MatrixQuestion';\nimport GeolocationQuestion from './questions/GeolocationQuestion';\nimport OrderedQuestion from './questions/OrderedQuestion';\nimport ImageQuestion from './questions/ImageQuestion';\nimport BudgetQuestion from './questions/Budget/BudgetQuestion';\nimport NumericQuestion from './questions/NumericQuestion';\nimport SliderQuestion from './questions/SliderQuestion';\nimport RatingQuestion from './questions/RatingQuestion';\nimport OpenBudgetQuestion from './questions/OpenBudgetQuestion';\n\nconst questionComponentMap = {\n  [QuestionFormat.BASIC]: BasicQuestion,\n  [QuestionFormat.SINGLE_SELECT]: SingleSelectQuestion,\n  [QuestionFormat.MULTI_SELECT]: MultiSelectQuestion,\n  [QuestionFormat.ORDERED]: OrderedQuestion,\n  [QuestionFormat.MATRIX]: MatrixQuestion,\n  [QuestionFormat.GEOLOCATION]: GeolocationQuestion,\n  [QuestionFormat.IMAGE]: ImageQuestion,\n  [QuestionFormat.BUDGET]: BudgetQuestion,\n  [QuestionFormat.DROPDOWN]: DropdownQuestion,\n  [QuestionFormat.NUMERIC]: NumericQuestion,\n  [QuestionFormat.SLIDER]: SliderQuestion,\n  [QuestionFormat.RATING]: RatingQuestion,\n  [QuestionFormat.BUDGET_OPEN]: OpenBudgetQuestion,\n};\n\nconst renderQuestion = (\n  question,\n  questionValues,\n  currentSectionPosition,\n  dispatchUpdateQuestionValue,\n  currentQuestionValues\n) => {\n  if (questionComponentMap[question.format]) {\n    const QuestionComponent = questionComponentMap[question.format];\n    return (\n      <QuestionComponent\n        question={question}\n        questionValues={questionValues}\n        currentSectionPosition={currentSectionPosition}\n        dispatchUpdateQuestionValue={dispatchUpdateQuestionValue}\n        currentQuestionValues={currentQuestionValues}\n      />\n    );\n  }\n\n  return null;\n};\n\nconst renderErrors = (question, questionErrors, t) => {\n  const errors = questionErrors[question.id]?.map((error) => {\n    switch (error) {\n      case Rules.REQUIRED:\n        return <p key={question.id + error}>{t('engagement.errors.question_required_error')}</p>;\n      case Rules.ALL_ROWS_REQUIRED:\n        return <p key={question.id + error}>{t('engagement.errors.all_rows_required_error')}</p>;\n      case Rules.BUDGET:\n        return <p key={question.id + error}>{t('engagement.errors.over_budget_error')}</p>;\n      case Rules.NUMBER:\n        return <p key={question.id + error}>{t('engagement.errors.number_error')}</p>;\n      case Rules.NUMBER_RANGE: {\n        const { rangeStart, rangeEnd } = question.displayData;\n        return (\n          <p key={question.id + error}>\n            {t('engagement.errors.number_range_error', { rangeStart, rangeEnd })}\n          </p>\n        );\n      }\n      case Rules.LENGTH_RANGE: {\n        const { characterCountMin, characterCountMax } = question.displayData;\n        return (\n          <p key={question.id + error}>\n            {t('engagement.errors.length_range_error', {\n              characterCountMin,\n              characterCountMax,\n            })}\n          </p>\n        );\n      }\n      case Rules.VALIDATION_TYPE: {\n        const { validationType } = question.displayData;\n        return (\n          <p key={question.id + error}>\n            {t('engagement.errors.validation_type_error', {\n              validationType: t(Validations[validationType]?.label),\n            })}\n          </p>\n        );\n      }\n      case Rules.REGULAR_EXPRESSION:\n        return <p key={question.id + error}>{t('engagement.errors.regular_expression_error')}</p>;\n      case Rules.EXCEEDED_MAX_CHOICES:\n        return <p key={question.id + error}>{t('engagement.errors.max_choices_limit_error')}</p>;\n      default:\n        return null;\n    }\n  });\n\n  if (errors?.length) {\n    return <div className=\"errors\">{errors}</div>;\n  }\n\n  return null;\n};\n\nexport const QuestionContainer = ({\n  question,\n  questionErrors,\n  questionValues,\n  currentSectionPosition,\n  dispatchUpdateQuestionValue,\n  currentQuestionValues,\n  t,\n}) => {\n  return (\n    <div\n      className={classNames('question', {\n        'question--open-budget': question.format === QuestionFormat.BUDGET_OPEN,\n      })}\n    >\n      <h2 className=\"question__title is-primary-color\">\n        {question.title}\n        {question.required && <span className=\"required is-primary-color\"> *</span>}\n      </h2>\n      {renderErrors(question, questionErrors, t)}\n      {renderQuestion(\n        question,\n        questionValues,\n        currentSectionPosition,\n        dispatchUpdateQuestionValue,\n        currentQuestionValues\n      )}\n    </div>\n  );\n};\n\nQuestionContainer.propTypes = {\n  t: PropTypes.func.isRequired,\n  question: PropTypes.shape({\n    title: PropTypes.string.isRequired,\n    inputs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n    required: PropTypes.bool,\n    format: PropTypes.string.isRequired,\n  }).isRequired,\n  questionErrors: PropTypes.shape({}).isRequired,\n  questionValues: PropTypes.shape({}).isRequired,\n  currentQuestionValues: PropTypes.shape({}),\n  dispatchUpdateQuestionValue: PropTypes.func.isRequired,\n  currentSectionPosition: PropTypes.number.isRequired,\n};\n\nQuestionContainer.defaultProps = {\n  currentQuestionValues: null,\n};\n\nconst mapStateToProps = (state) => ({\n  questionValues: getQuestionValues(state),\n  currentSectionPosition: getCurrentSectionPosition(state),\n  currentQuestionValues: getCurrentQuestionValues(state),\n  questionErrors: getQuestionErrors(state),\n});\n\nconst mapDispatchToProps = {\n  dispatchUpdateQuestionValue: updateQuestionValue,\n};\n\nconst ConnectedComponent = connect(mapStateToProps, mapDispatchToProps)(QuestionContainer);\n\n// questionErrors\nexport default withTranslation()(ConnectedComponent);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Content from '../Content';\nimport QuestionContainer from '../QuestionContainer';\n\n/**\n * Block component responsible for rendering question and other media content.\n */\nexport class Block extends Component {\n  static propTypes = {\n    block: PropTypes.shape({\n      question: PropTypes.object,\n    }).isRequired,\n    saveRef: PropTypes.func.isRequired,\n    clearRef: PropTypes.func.isRequired,\n  };\n\n  componentWillUnmount() {\n    const { clearRef } = this.props;\n    clearRef();\n  }\n\n  render() {\n    const { block, saveRef } = this.props;\n\n    return (\n      <div className=\"block\" ref={saveRef}>\n        {block.content && <Content content={block.content} />}\n        {block.question && <QuestionContainer question={block.question} />}\n      </div>\n    );\n  }\n}\n\nexport default Block;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Quote component.\n */\nconst Quote = ({ photoUrl, name, position, children }) => (\n  <div className=\"Quote\">\n    <div className=\"columns\">\n      <div className=\"column is-one-quarter headshot\">\n        <div className=\"headshot-content\">\n          {photoUrl && <img src={photoUrl} alt=\"headshot\" />}\n          <p>\n            {name}\n            <span>{position}</span>\n          </p>\n        </div>\n      </div>\n      <div className=\"column quote\">\n        <div className=\"quote-content is-primary-color\">{children}</div>\n      </div>\n    </div>\n  </div>\n);\n\nQuote.propTypes = {\n  /**\n   * Photo to display.\n   */\n  photoUrl: PropTypes.string.isRequired,\n  /**\n   * Person's name.\n   */\n  name: PropTypes.string.isRequired,\n  /**\n   * Person's position.\n   */\n  position: PropTypes.string.isRequired,\n  /**\n   * Quote content.\n   */\n  children: PropTypes.node.isRequired,\n};\n\nexport default Quote;\n","// Libraries\nimport React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { currentLanguage } from 'i18n';\n\n// State\nimport { getFingerprintConsent, updateFingerprintConsent } from 'state/ducks/engagement';\n\n// Components\nimport CheckboxGroup from 'common/components/CheckboxGroup';\nimport camelcaseKeys from 'camelcase-keys';\n\nfunction FingerprintCollectionConsent() {\n  const fingerprintConsent = useSelector(getFingerprintConsent);\n  const dispatch = useDispatch();\n  const { t } = useTranslation();\n  const {\n    consentDigitalFingerprint,\n    enableCustomizeDigitalFingerprintText,\n    customizeDigitalFingerprintHeadingTranslations,\n    customizeDigitalFingerprintDescriptionTranslations,\n  } = camelcaseKeys(gon.brand);\n\n  if (consentDigitalFingerprint === false) return null;\n\n  const customizeHeading =\n    customizeDigitalFingerprintHeadingTranslations &&\n    (customizeDigitalFingerprintHeadingTranslations[currentLanguage] ||\n      customizeDigitalFingerprintHeadingTranslations.en);\n  const customizeDescription =\n    customizeDigitalFingerprintDescriptionTranslations &&\n    (customizeDigitalFingerprintDescriptionTranslations[currentLanguage] ||\n      customizeDigitalFingerprintDescriptionTranslations.en);\n\n  return (\n    <div className=\"container inner\">\n      <div className=\"fingerprint-collection-consent\">\n        <h1 className=\"fingerprint-collection-consent__title title is-primary-color\">\n          {enableCustomizeDigitalFingerprintText && customizeHeading\n            ? customizeHeading\n            : t('engagement.fingerprint_collection_header')}\n        </h1>\n        {enableCustomizeDigitalFingerprintText && customizeDescription ? (\n          <pre className=\"is-size-6 fingerprint-collection-consent__desc\">\n            {customizeDescription}\n          </pre>\n        ) : (\n          <Trans i18nKey=\"engagement.fingerprint_collection_description\">\n            <p>\n              For the purpose of preventing duplicate submissions to this survey from the same\n              participant, we would like your consent to collect information about your browser and\n              attach it to your submission.\n            </p>\n            <p>\n              You have the option to continue without consent, but your submission may be excluded\n              from the results of this survey.\n            </p>\n          </Trans>\n        )}\n        <div className=\"fingerprint-collection-consent__checkbox\">\n          <CheckboxGroup\n            options={[\n              {\n                id: 'consent',\n                label: t('engagement.fingerprint_collection_consent', {\n                  brand: gon.whitelabelName || 'Zencity Engage',\n                }),\n              },\n            ]}\n            initialValue={fingerprintConsent ? ['consent'] : []}\n            onChange={([value]) => dispatch(updateFingerprintConsent(Boolean(value)))}\n          />\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport default FingerprintCollectionConsent;\n","// Libraries\nimport React, { PureComponent, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport classNames from 'classnames';\nimport camelcaseKeys from 'camelcase-keys';\n\n// Utilities\nimport { renderMarkdown, determineImageSize, classicTheme, storyTheme } from 'common/utils/helpers';\nimport { withPersistContext } from 'common/utils/reduxPersist';\n\n// Components\nimport Block from 'engagement/components/Block';\nimport Quote from 'engagement/components/Quote';\nimport FingerprintCollectionConsent from 'engagement/components/FingerprintCollectionConsent';\n\nexport class Section extends PureComponent {\n  titleRef = createRef();\n\n  blockRefs = new Map();\n\n  componentDidUpdate(prevProps) {\n    const {\n      questionErrors,\n      currentSection,\n      match: {\n        params: { position },\n      },\n    } = this.props;\n\n    const previousPosition = prevProps.match.params.position;\n    const previousQuestionErrors = prevProps.questionErrors;\n\n    // focus on section title when changing sections\n    if (previousPosition !== position) {\n      this.titleRef.current.focus();\n    }\n\n    // scroll to the first question error\n    if (Object.keys(questionErrors).length && questionErrors !== previousQuestionErrors) {\n      const questionId = Object.keys(questionErrors)[0];\n      const questionBlock = currentSection.blocks.find(\n        (block) => block.question && block.question.id === questionId\n      );\n      const top = this.blockRefs.get(questionBlock.id).getBoundingClientRect().top + window.scrollY;\n\n      window.scrollTo({ top });\n    }\n  }\n\n  getBlockSaveRef = (blockId) => (blockRef) => {\n    if (blockRef) {\n      this.blockRefs.set(blockId, blockRef);\n    }\n  };\n\n  getBlockClearRef = (blockId) => () => {\n    this.blockRefs.delete(blockId);\n  };\n\n  heroBackgroundImage = (blocks, isFirstSection) => {\n    if (storyTheme() && isFirstSection) {\n      const block = blocks[0];\n      if (!block || !block.content) {\n        return null;\n      }\n      const { media } = block.content;\n\n      if (media?.length) {\n        const imageUrl = determineImageSize(media[0].imageUrls);\n\n        return `url(${imageUrl})`;\n      }\n    }\n\n    return null;\n  };\n\n  blocksToRender = (blocks, isFirstSection, introEnabled) => {\n    if (storyTheme() && isFirstSection && introEnabled) {\n      const block = blocks[0];\n      if (!block || !block.content) return [];\n      const { description, video } = block.content;\n\n      if (!description && !video) {\n        return [];\n      }\n\n      const newBlock = {\n        ...block,\n        content: { ...block.content, media: [] },\n      };\n\n      return [newBlock];\n    }\n\n    return blocks;\n  };\n\n  renderQuote = (quote) => (\n    <div className=\"section-wrapper__quote container inner\">\n      <Quote\n        photoUrl={determineImageSize(quote.avatarUrls)}\n        name={quote.name}\n        position={quote.jobTitle}\n      >\n        {quote.message ? <blockquote>{quote.message}</blockquote> : <span />}\n      </Quote>\n    </div>\n  );\n\n  render() {\n    const { consentDigitalFingerprint } = camelcaseKeys(gon.brand);\n    const {\n      currentSection,\n      isFirstSection,\n      isLastSection,\n      collectDigitalFingerprint,\n      introEnabled,\n    } = this.props;\n\n    if (!currentSection) {\n      return null;\n    }\n\n    const { title, description, quote, blocks } = currentSection;\n    const heroBackgroundImage = this.heroBackgroundImage(blocks, isFirstSection);\n    const blocksToRender = this.blocksToRender(blocks, isFirstSection, introEnabled);\n    const skippedIntro = currentSection.position === 2;\n\n    const shouldShowShowCollectDigitalFingerprintOnTop =\n      skippedIntro && isFirstSection && collectDigitalFingerprint && consentDigitalFingerprint;\n    const shouldShowShowCollectDigitalFingerprintAtBottom =\n      !skippedIntro && isFirstSection && collectDigitalFingerprint && consentDigitalFingerprint;\n\n    return (\n      <div\n        className={classNames('section-wrapper', {\n          'section-wrapper--first': isFirstSection,\n          'section-wrapper--last': isLastSection,\n        })}\n      >\n        {shouldShowShowCollectDigitalFingerprintOnTop && (\n          <>\n            <FingerprintCollectionConsent />\n            <div className=\"mb-6\" />\n          </>\n        )}\n        <section\n          className={classNames('hero section-wrapper__hero section-wrapper__hero--engagement', {\n            'section-wrapper__hero--image': heroBackgroundImage,\n            'section-wrapper__hero--quote': quote,\n          })}\n          aria-label=\"Page Heading\"\n          style={{ backgroundImage: heroBackgroundImage }}\n        >\n          <div className=\"hero-body\">\n            <div className=\"container inner\">\n              <h1 className=\"title is-spaced is-primary-color\" ref={this.titleRef} tabIndex=\"-1\">\n                {title}\n              </h1>\n            </div>\n            {storyTheme() && quote && this.renderQuote(quote)}\n          </div>\n        </section>\n\n        <section className=\"section-wrapper__main section\" id=\"main-content\">\n          {description && (\n            <div className=\"section-wrapper__intro\" aria-label=\"Page Intro Text\">\n              <div className=\"container inner\">\n                <div\n                  className=\"description markdown\"\n                  dangerouslySetInnerHTML={{ __html: renderMarkdown(description) }}\n                />\n              </div>\n            </div>\n          )}\n          {Boolean(blocksToRender.length) && (\n            <div className=\"container inner\">\n              {blocksToRender.map((block) => (\n                <Block\n                  key={block.id}\n                  block={block}\n                  saveRef={this.getBlockSaveRef(block.id)}\n                  clearRef={this.getBlockClearRef(block.id)}\n                />\n              ))}\n            </div>\n          )}\n          {classicTheme() && quote && this.renderQuote(quote)}\n          {shouldShowShowCollectDigitalFingerprintAtBottom && <FingerprintCollectionConsent />}\n        </section>\n      </div>\n    );\n  }\n}\n\nSection.propTypes = {\n  currentSection: PropTypes.objectOf(PropTypes.shape),\n  questionErrors: PropTypes.objectOf(PropTypes.shape).isRequired,\n  isFirstSection: PropTypes.bool,\n  isLastSection: PropTypes.bool,\n  introEnabled: PropTypes.bool,\n  match: PropTypes.objectOf(PropTypes.shape).isRequired,\n  collectDigitalFingerprint: PropTypes.bool.isRequired,\n};\n\nSection.defaultProps = {\n  currentSection: null,\n  isFirstSection: false,\n  isLastSection: false,\n  introEnabled: false,\n};\n\nexport default withPersistContext(withRouter(Section));\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\n\n// State\nimport { getCurrentProgress } from 'state/ducks/engagement';\n\n// Utilities\nimport { getInternetExplorerVersion } from 'common/utils/helpers';\n\nconst IEVersion = getInternetExplorerVersion();\n\nexport const ProgressBarContainer = ({ currentProgress }) =>\n  IEVersion === 8 || IEVersion === 9 ? null : (\n    <progress className=\"progress\" value={`${currentProgress}`} max=\"100\">\n      {`${currentProgress}%`}\n    </progress>\n  );\n\nProgressBarContainer.propTypes = {\n  currentProgress: PropTypes.number.isRequired,\n};\n\nconst mapStateToProps = (state) => ({ currentProgress: getCurrentProgress(state) });\n\nconst ConnectedComponent = connect(mapStateToProps, null)(ProgressBarContainer);\n\nexport default ConnectedComponent;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\n\n// Components\nimport Modal from 'ideation/components/base/Modal';\nimport Button from 'common/components/Button';\n\nexport const QuitConfirmationModal = ({ isOpen, onClose, onConfirm, t }) => (\n  <Modal isOpen={isOpen} onClose={onClose} className=\"narrow-full-screen\">\n    <div className=\"confirmation-modal\">\n      <div className=\"content\">\n        <h1>{t('engagement.quit_question')}</h1>\n        <div className=\"warning-icon\">\n          <i className=\"fas fa-exclamation-triangle\" />\n        </div>\n        <p className=\"centered-text\">{t('engagement.quit_confirm')}</p>\n        <div className=\"actions\">\n          <Button onClick={onClose} outlined>\n            {t('engagement.no_continue')}\n          </Button>\n          <Button onClick={onConfirm} primary>\n            {t('engagement.yes_quit')}\n          </Button>\n        </div>\n      </div>\n    </div>\n  </Modal>\n);\n\nQuitConfirmationModal.propTypes = {\n  isOpen: PropTypes.bool.isRequired,\n  onClose: PropTypes.func.isRequired,\n  onConfirm: PropTypes.func.isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withTranslation()(QuitConfirmationModal);\n","// Libraries\nimport React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nconst Link = ({ children, className, button, primary, outlined, ariaLabelledBy, ...props }) => (\n  <a\n    aria-labelledby={ariaLabelledBy}\n    className={classNames(\n      {\n        button,\n        'is-primary is-primary-background': primary,\n        'is-outlined is-primary-outline is-secondary-color': outlined,\n      },\n      className\n    )}\n    {...props}\n  >\n    {children}\n  </a>\n);\n\nLink.propTypes = {\n  className: PropTypes.string,\n  children: PropTypes.node.isRequired,\n  button: PropTypes.bool,\n  primary: PropTypes.bool,\n  outlined: PropTypes.bool,\n  ariaLabelledBy: PropTypes.string,\n};\n\nLink.defaultProps = {\n  className: null,\n  button: false,\n  primary: false,\n  outlined: false,\n  ariaLabelledBy: null,\n};\n\nexport default Link;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { withTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\n\n// State\nimport { deserializeEngagement } from 'state/ducks/engagement';\n\n// Utilities\nimport { populatePath } from 'common/utils/helpers';\n\n// Routes\nimport Routes from 'routes';\n\n// Components\nimport Link from 'common/components/Link';\n\nexport const VisitHubLink = ({ icon, button, deserializedEngagement, match, t }) => (\n  <Link\n    href={deserializedEngagement.redirectUrl || populatePath(Routes.PROJECT, match.params)}\n    {...(button && { button: true, primary: true })}\n    className={button ? '' : 'is-secondary-color'}\n  >\n    {icon}\n    {button\n      ? deserializedEngagement.buttonText || t('engagement.visit_project_hub')\n      : deserializedEngagement.linkText || t('engagement.back_to_overview')}\n  </Link>\n);\n\nVisitHubLink.propTypes = {\n  icon: PropTypes.node,\n  button: PropTypes.bool,\n  deserializedEngagement: PropTypes.object.isRequired,\n  match: PropTypes.object.isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nVisitHubLink.defaultProps = {\n  icon: null,\n  button: false,\n};\n\nconst mapStateToProps = (state) => ({ deserializedEngagement: deserializeEngagement(state) });\n\nconst ConnectedComponent = connect(mapStateToProps, null)(VisitHubLink);\n\nexport default withRouter(withTranslation()(ConnectedComponent));\n","// Libraries\nimport React, { useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { isEmpty } from 'underscore';\nimport { useDispatch, useSelector } from 'react-redux';\nimport classNames from 'classnames';\n\n// State\nimport {\n  getNextSectionPosition,\n  getPreviousSectionPosition,\n  deserializeEngagement,\n  checkPreviewMode,\n  saveResponses,\n  validateCurrentSection,\n  ensureSubmission,\n  getCurrentSectionPosition,\n  getResponseHistory,\n  resetResponseHistory,\n} from 'state/ducks/engagement';\n\n// Routes\nimport Routes from 'routes';\n\n// Contexts\nimport ModalProvider from 'contexts/Modal/ModalProvider';\n\n// Components\nimport QuitConfirmationModal from 'engagement/components/QuitConfirmationModal';\nimport Button from 'common/components/Button';\nimport VisitHubLink from 'engagement/components/VisitHubLink';\n\n// Utilities\nimport {\n  classicTheme,\n  isEmbedded,\n  populatePath,\n  rtlLanguage,\n  storyTheme,\n} from 'common/utils/helpers';\nimport { logError } from 'common/utils/errors';\nimport { isEngagementClosed } from 'engagement/utils/helpers';\n\nconst NavigationContainer = ({ projectPublic, projectHubEnabled }) => {\n  const { t } = useTranslation();\n  const history = useHistory();\n  const match = useRouteMatch();\n  const dispatch = useDispatch();\n\n  const deserializedEngagement = useSelector(deserializeEngagement);\n  const currentSectionPosition = useSelector(getCurrentSectionPosition);\n  const previousSectionPosition = useSelector(getPreviousSectionPosition);\n  const nextSectionPosition = useSelector(getNextSectionPosition);\n  const previewMode = useSelector(checkPreviewMode);\n  const responseHistory = useSelector(getResponseHistory);\n\n  const [quitConfirmationModalVisible, setQuitConfirmationModalVisible] = useState(false);\n  const [loading, setLoading] = useState(false);\n  const [exitLinkContainer, setExitLinkContainer] = useState();\n  const shouldRenderExitLink = Boolean(exitLinkContainer && (projectPublic || nextSectionPosition));\n\n  const handlePreviousClick = () => {\n    history.push({\n      pathname: populatePath(Routes.ENGAGEMENT_SECTION, {\n        ...match.params,\n        position: previousSectionPosition,\n      }),\n      search: window.location.search,\n    });\n  };\n\n  const handleNextClick = async () => {\n    const goToNextSection = () =>\n      history.push({\n        pathname: populatePath(Routes.ENGAGEMENT_SECTION, {\n          ...match.params,\n          position: nextSectionPosition,\n        }),\n        search: window.location.search,\n      });\n\n    if (previewMode) {\n      goToNextSection();\n      return;\n    }\n\n    if (isEngagementClosed(deserializedEngagement)) {\n      history.push(populatePath(Routes.ENGAGEMENT_CLOSED, match.params));\n      return;\n    }\n\n    const validationErrors = dispatch(validateCurrentSection());\n    if (!isEmpty(validationErrors)) return;\n\n    try {\n      setLoading(true);\n      await dispatch(ensureSubmission());\n      dispatch(resetResponseHistory());\n      await dispatch(saveResponses(currentSectionPosition, nextSectionPosition, responseHistory));\n      goToNextSection();\n    } catch (error) {\n      history.push(populatePath(Routes.ENGAGEMENT_ERROR, match.params));\n      logError(error);\n      throw error;\n    } finally {\n      setLoading(false);\n    }\n  };\n\n  useEffect(() => {\n    setExitLinkContainer(document.getElementById('exit-links'));\n  }, []);\n\n  return (\n    <div className=\"navigation-container\">\n      <div className=\"container inner\">\n        <div\n          className={classNames('nav-button-container', {\n            'nav-button-container__next-button-right': !previousSectionPosition,\n          })}\n        >\n          {previousSectionPosition && (\n            <Button\n              data-test=\"previous-btn\"\n              onClick={handlePreviousClick}\n              outlined={classicTheme()}\n              className=\"navigation-container__steps-button navigation-container__steps-button--prev\"\n            >\n              <div className=\"nav-button-content\">\n                <span className=\"icon\">\n                  <i\n                    className={classNames('fas', {\n                      'fa-long-arrow-alt-left': storyTheme() && !rtlLanguage(),\n                      'fa-arrow-left': classicTheme() && !rtlLanguage(),\n                      'fa-long-arrow-alt-right': storyTheme() && rtlLanguage(),\n                      'fa-arrow-right': classicTheme() && rtlLanguage(),\n                    })}\n                  />\n                </span>\n                <span>{t('engagement.previous')}</span>\n              </div>\n            </Button>\n          )}\n          {nextSectionPosition && (\n            <Button\n              data-test=\"next-btn\"\n              onClick={handleNextClick}\n              primary={classicTheme()}\n              className={classNames(\n                'navigation-container__steps-button navigation-container__steps-button--next',\n                { 'is-loading': loading }\n              )}\n              disabled={loading}\n            >\n              <div className=\"nav-button-content\">\n                <span>{t('engagement.next')}</span>\n                <span className=\"icon\">\n                  <i\n                    className={classNames('fas', {\n                      'fa-long-arrow-alt-right': storyTheme() && !rtlLanguage(),\n                      'fa-arrow-right': classicTheme() && !rtlLanguage(),\n                      'fa-long-arrow-alt-left': storyTheme() && rtlLanguage(),\n                      'fa-arrow-left': classicTheme() && rtlLanguage(),\n                    })}\n                  />\n                </span>\n              </div>\n            </Button>\n          )}\n        </div>\n      </div>\n\n      <ModalProvider>\n        <QuitConfirmationModal\n          isOpen={quitConfirmationModalVisible}\n          onClose={() => setQuitConfirmationModalVisible(false)}\n          onConfirm={() => history.push(populatePath(Routes.ENGAGEMENT_QUIT, match.params))}\n        />\n      </ModalProvider>\n\n      {shouldRenderExitLink &&\n        createPortal(\n          <div className={classNames('is-secondary-color exit-links-container')}>\n            {projectPublic && projectHubEnabled && !isEmbedded() && (\n              <div className=\"exit-link-container-link\">\n                <VisitHubLink\n                  icon={\n                    <i\n                      className={classNames('fas', {\n                        'fa-long-arrow-alt-left': !rtlLanguage(),\n                        'fa-long-arrow-alt-right': rtlLanguage(),\n                      })}\n                    />\n                  }\n                />\n              </div>\n            )}\n            <div className=\"exit-link-divider\" />\n            {nextSectionPosition && (\n              <div\n                className=\"exit-link-container-link\"\n                onClick={() => setQuitConfirmationModalVisible(true)}\n                role=\"button\"\n                tabIndex=\"0\"\n              >\n                <i className=\"fas fa-times\" />\n                {t('engagement.quit_survey')}\n              </div>\n            )}\n          </div>,\n          exitLinkContainer\n        )}\n    </div>\n  );\n};\n\nNavigationContainer.propTypes = {\n  projectPublic: PropTypes.bool,\n  projectHubEnabled: PropTypes.bool,\n};\n\nNavigationContainer.defaultProps = {\n  projectPublic: false,\n  projectHubEnabled: false,\n};\n\nexport default NavigationContainer;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\n// Enumerables\nimport PublicStatus from 'common/enums/PublicStatus';\n\nconst Tag = ({ publicStatus, t }) => (\n  <span\n    className={classNames('tag', 'call-to-action-tile__tag', 'is-medium', {\n      'call-to-action-tile__tag--closed': publicStatus === PublicStatus.CLOSED,\n      'call-to-action-tile__tag--open': publicStatus === PublicStatus.OPEN,\n      'call-to-action-tile__tag--upcoming': publicStatus === PublicStatus.UPCOMING,\n    })}\n  >\n    {publicStatus === PublicStatus.CLOSED && t('project.closed')}\n    {publicStatus === PublicStatus.OPEN && t('project.open')}\n    {publicStatus === PublicStatus.UPCOMING && t('project.upcoming')}\n  </span>\n);\n\nTag.propTypes = {\n  publicStatus: PropTypes.string.isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withTranslation()(Tag);\n","// Libraries\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\n\n// Enumerables\nimport PublicStatus from 'common/enums/PublicStatus';\nimport { translateDateTime } from 'common/utils/helpers';\n\nconst DateInfo = ({ publicStatus, startTime, endTime, t }) => {\n  if (startTime && startTime === endTime) {\n    return `${t('project.date')}: ${translateDateTime(startTime)}`;\n  }\n\n  if (endTime && publicStatus === PublicStatus.CLOSED) {\n    return `${t('project.closed')}: ${translateDateTime(endTime)}`;\n  }\n\n  if (endTime && publicStatus === PublicStatus.OPEN) {\n    return `${t('project.closes')}: ${translateDateTime(endTime)}`;\n  }\n\n  if (startTime && publicStatus === PublicStatus.UPCOMING) {\n    return `${t('project.opens')}: ${translateDateTime(startTime)}`;\n  }\n\n  return null;\n};\n\nDateInfo.propTypes = {\n  publicStatus: PropTypes.string.isRequired,\n  startTime: PropTypes.string,\n  endTime: PropTypes.string,\n  t: PropTypes.func.isRequired,\n};\n\nDateInfo.defaultProps = {\n  startTime: null,\n  endTime: null,\n};\n\nexport default withTranslation()(DateInfo);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Trans, withTranslation } from 'react-i18next';\n\n// Enumerables\nimport PublicStatus from 'common/enums/PublicStatus';\n\n// Helpers\nimport { classicTheme, determineImageSize, storyTheme } from 'common/utils/helpers';\n\n// Components\nimport Link from 'common/components/Link';\nimport Tag from 'project/components/Tag';\nimport DateInfo from 'project/components/DateInfo';\n\nconst CallToActionTile = ({\n  publicStatus,\n  title,\n  id,\n  description,\n  heroImage,\n  startTime = null,\n  endTime,\n  url,\n  minutesToComplete,\n  buttonLabel,\n  t,\n}) => {\n  const hasHeroImage = storyTheme() && heroImage?.imageUrls;\n\n  return (\n    <>\n      <div\n        className={classNames('call-to-action-tile', { 'call-to-action-tile--hero': hasHeroImage })}\n        style={{\n          backgroundImage: hasHeroImage && `url(${determineImageSize(heroImage.imageUrls)})`,\n          backgroundPosition: heroImage?.objectPosition || 'center',\n        }}\n      >\n        <div className=\"box\">\n          <Tag publicStatus={publicStatus} />\n\n          <h2 className=\"call-to-action-tile__title is-primary-color\" id={`cta-title-${id}`}>\n            {buttonLabel ? <a href={url}>{title}</a> : `${title}`}\n          </h2>\n\n          <div className=\"call-to-action-tile__date\">\n            <DateInfo publicStatus={publicStatus} startTime={startTime} endTime={endTime} />\n          </div>\n\n          <div className=\"call-to-action-tile__body\">\n            <p>{description}</p>\n          </div>\n\n          <div className=\"columns call-to-action-tile__footer\">\n            {buttonLabel && (\n              <>\n                <div className=\"column is-narrow\">\n                  <Link\n                    href={url}\n                    className=\"call-to-action-tile__button\"\n                    button\n                    primary={classicTheme()}\n                    outlined={storyTheme()}\n                    ariaLabelledBy={`cta-title-${id}`}\n                  >\n                    {buttonLabel}\n                  </Link>\n                </div>\n                {classicTheme() && minutesToComplete && (\n                  <div className=\"column\">\n                    <p>\n                      <Trans t={t} i18nKey=\"project.approximate_time\" count={minutesToComplete}>\n                        approximate time\n                        <strong>\n                          {{ count: minutesToComplete }}\n                          minutes\n                        </strong>\n                      </Trans>\n                    </p>\n                  </div>\n                )}\n              </>\n            )}\n          </div>\n        </div>\n      </div>\n      {hasHeroImage && (\n        <div\n          className=\"call-to-action-tile--responsive-hero\"\n          style={{ backgroundImage: `url(${determineImageSize(heroImage.imageUrls)})` }}\n        />\n      )}\n    </>\n  );\n};\n\nCallToActionTile.propTypes = {\n  publicStatus: PropTypes.oneOf(Object.values(PublicStatus)).isRequired,\n  title: PropTypes.string.isRequired,\n  id: PropTypes.string.isRequired,\n  description: PropTypes.string.isRequired,\n  heroImage: PropTypes.shape({\n    objectPosition: PropTypes.string,\n    imageUrls: PropTypes.shape({\n      desktop: PropTypes.string,\n      card: PropTypes.string,\n      mobile: PropTypes.string,\n    }),\n  }),\n  url: PropTypes.string.isRequired,\n  startTime: PropTypes.string,\n  endTime: PropTypes.string,\n  minutesToComplete: PropTypes.number,\n  buttonLabel: PropTypes.string,\n  t: PropTypes.func.isRequired,\n};\n\nCallToActionTile.defaultProps = {\n  heroImage: null,\n  startTime: null,\n  endTime: null,\n  minutesToComplete: null,\n  buttonLabel: null,\n};\n\nexport default withTranslation()(CallToActionTile);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { withTranslation } from 'react-i18next';\n\n// Utilities\nimport {\n  populatePath,\n  storyTheme,\n  getNextEngagementUrl,\n  getUtmParams,\n  featureFlagEnabled,\n} from 'common/utils/helpers';\n\n// Enumerables\nimport PublicStatus from 'common/enums/PublicStatus';\n\n// Routes\nimport Routes from 'routes';\n\n// Components\nimport CallToActionTile from 'project/components/CallToActionTile';\n\nconst buttonLabel = (publicStatus, displayEngagementReport, t, engagementType) => {\n  if (publicStatus === PublicStatus.OPEN) {\n    if (storyTheme()) {\n      return t('project.read_more');\n    }\n\n    if (engagementType === 'live') {\n      return null;\n    }\n\n    return t('project.participate_now');\n  }\n\n  if (displayEngagementReport) {\n    return t('engagement_report.view_results');\n  }\n\n  return null;\n};\n\nconst EngagementTile = ({ engagement, match, t }) => {\n  const {\n    id,\n    publicStatus,\n    title,\n    description,\n    heroImage,\n    minutesToComplete,\n    startTime,\n    endTime,\n    slug,\n    project,\n    engagementReport,\n    uuid,\n    engagementType,\n  } = engagement;\n  const engagementReportUrl =\n    window.location.origin +\n    populatePath(Routes.ENGAGEMENT_REPORT, {\n      locale: 'en', // TODO: Remove hardcoded locale\n      projectId: project?.slug || project?.id,\n      engagementReportId: engagementReport?.slug,\n    });\n\n  let engagementUrl = populatePath(Routes.ENGAGEMENT, {\n    ...match.params,\n    engagementId: slug || id,\n  });\n  if (featureFlagEnabled('publishing_ui')) {\n    engagementUrl = getNextEngagementUrl(match.params.locale, uuid);\n  }\n  const utmQueryString = getUtmParams();\n  const engagemenUrlWithUtm = `${engagementUrl}${utmQueryString}`;\n\n  const displayEngagementReport =\n    publicStatus === PublicStatus.CLOSED &&\n    engagementReport?.id &&\n    engagementReport?.publiclyVisible;\n\n  return (\n    <CallToActionTile\n      publicStatus={publicStatus}\n      title={title}\n      id={id}\n      description={description}\n      heroImage={heroImage}\n      url={displayEngagementReport ? engagementReportUrl : engagemenUrlWithUtm}\n      startTime={startTime}\n      endTime={endTime}\n      minutesToComplete={minutesToComplete}\n      buttonLabel={buttonLabel(publicStatus, displayEngagementReport, t, engagementType)}\n    />\n  );\n};\n\nEngagementTile.propTypes = {\n  engagement: PropTypes.objectOf({}).isRequired,\n  match: PropTypes.objectOf({}).isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withRouter(withTranslation()(EngagementTile));\n","// Libraries\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport QRCode from 'qrcode';\n\nfunction QRCodeImage({ value, alt, options, ...props }) {\n  const [dataUrl, setDataUrl] = useState();\n\n  useEffect(() => {\n    QRCode.toDataURL(value, options).then(setDataUrl);\n  }, []);\n\n  return <img {...props} src={dataUrl} alt={alt} />;\n}\n\nQRCodeImage.propTypes = {\n  value: PropTypes.string.isRequired,\n  alt: PropTypes.string.isRequired,\n  options: PropTypes.shape({\n    margin: PropTypes.number,\n    scale: PropTypes.number,\n    width: PropTypes.number,\n  }),\n};\n\nQRCodeImage.defaultProps = {\n  options: undefined,\n};\n\nexport default QRCodeImage;\n","// Libraries\nimport React, { useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useRouteMatch } from 'react-router-dom';\nimport useSWR from 'swr';\n\n// Routes\nimport Routes from 'routes';\n\n// Utilities\nimport { fetcher, fetchProject } from 'api/rest';\nimport { isEmbedded, populatePath } from 'common/utils/helpers';\n\n// Components\nimport EngagementTile from 'project/components/EngagementTile';\nimport NotificationsSignup from 'common/components/NotificationsSignup';\nimport QRCodeImage from 'common/components/QRCodeImage';\nimport VisitHubLink from '../VisitHubLink';\n\nconst CompleteEngagementFooter = ({ nextEngagement, keepSubmission }) => {\n  const { t } = useTranslation();\n  const match = useRouteMatch();\n  const { data: project } = useSWR([fetchProject, match.params.projectId], fetcher);\n  const [exitLinkContainer, setExitLinkContainer] = useState();\n\n  useEffect(() => {\n    setExitLinkContainer(document.getElementById('exit-links'));\n  }, []);\n\n  function renderNextEngagementColumn() {\n    function getContent() {\n      if (project.public && project.projectHubEnabled && !keepSubmission)\n        return (\n          <>\n            <h2 className=\"title\">{t('engagement.stay_involved_project')}</h2>\n            <QRCodeImage\n              value={window.location.origin + populatePath(Routes.PROJECT, match.params)}\n              alt=\"Project hub link\"\n              options={{ margin: 3, width: 360 }}\n              style={{ marginBottom: '40px' }}\n            />\n          </>\n        );\n\n      if (nextEngagement) {\n        return (\n          <>\n            <h2 className=\"title\">\n              {keepSubmission\n                ? t('engagement.participate_in_more')\n                : t('engagement.stay_involved_project')}\n            </h2>\n            <EngagementTile engagement={nextEngagement} />\n          </>\n        );\n      }\n\n      return null;\n    }\n\n    const content = getContent();\n    if (!content) return null;\n\n    return (\n      <div className=\"column is-three-fifths next-engagement\">\n        <div className=\"content\">{content}</div>\n      </div>\n    );\n  }\n\n  function renderInvolvementColumn() {\n    const content = [];\n\n    if (project.notificationSignUpEnabled)\n      content.push(\n        <div className=\"stay-involved__row\" key=\"notifications\">\n          <p>{t('engagement.get_notified_message')}</p>\n          <NotificationsSignup title={project.title} />\n        </div>\n      );\n\n    if (project.public && project.projectHubEnabled && !isEmbedded())\n      content.push(\n        <div className=\"stay-involved__row\" key=\"hubLink\">\n          <p>{t('engagement.learn_more')}</p>\n          <VisitHubLink button />\n        </div>\n      );\n\n    if (content.length === 0) return null;\n\n    return (\n      <div className=\"column stay-involved\">\n        <div className=\"content stay-involved__content\">\n          {keepSubmission && (\n            <h2 className=\"title stay-involved__title\">{t('engagement.stay_involved')}</h2>\n          )}\n          {content}\n        </div>\n      </div>\n    );\n  }\n\n  function renderContent() {\n    if (!project) return null;\n\n    return (\n      <div className=\"container inner\">\n        <div className=\"columns\">\n          {renderNextEngagementColumn()}\n          {renderInvolvementColumn()}\n        </div>\n      </div>\n    );\n  }\n\n  return (\n    <div className=\"complete-engagement-footer\">\n      {renderContent()}\n      {Boolean(exitLinkContainer && !keepSubmission) &&\n        createPortal(\n          <div className=\"is-secondary-color exit-links-container\">\n            <a\n              className=\"exit-link-container-link is-secondary-color\"\n              href={populatePath(Routes.ENGAGEMENT_SECTION, { ...match.params, position: 1 })}\n            >\n              <i className=\"fas fa-redo\" />\n              {t('engagement.restart')}\n            </a>\n          </div>,\n          exitLinkContainer\n        )}\n    </div>\n  );\n};\n\nCompleteEngagementFooter.propTypes = {\n  nextEngagement: PropTypes.shape({}),\n  keepSubmission: PropTypes.bool.isRequired,\n};\n\nCompleteEngagementFooter.defaultProps = {\n  nextEngagement: null,\n};\n\nexport default CompleteEngagementFooter;\n","// Libraries\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\n// Components\nimport Modal from 'ideation/components/base/Modal';\nimport Button from 'common/components/Button';\nimport SocialShareLinks from 'common/components/SocialShareLinks';\n\nconst SocialShareModal = ({ isLastSection, engagement }) => {\n  const [isOpen, setIsOpen] = useState(false);\n  const { t } = useTranslation();\n  const onClose = () => setIsOpen(false);\n\n  useEffect(() => {\n    if (engagement.visible && isLastSection) {\n      setIsOpen(true);\n    }\n  }, [isLastSection]);\n\n  return (\n    <Modal isOpen={isOpen} onClose={onClose} className=\"social-share-modal\" skipFocusTrap>\n      <div className=\"social-share-modal__content\">\n        <h1 className=\"social-share-modal__heading title is-primary-color\">\n          {t('engagement.completion_thanks')}\n        </h1>\n        <p className=\"social-share-modal__text\">{t('engagement.share_with_friends')}</p>\n        <h2 className=\"social-share-modal__subheading\">{t('common.share')}</h2>\n        <div className=\"social-share-modal__links\">\n          <SocialShareLinks className=\"social-share-modal__link is-primary-background\" />\n        </div>\n        <Button onClick={onClose} className=\"social-share-modal__skip\" outlined>\n          {t('engagement.skip_share')}\n        </Button>\n      </div>\n    </Modal>\n  );\n};\n\nSocialShareModal.propTypes = {\n  engagement: PropTypes.shape({\n    visible: PropTypes.bool,\n  }).isRequired,\n  isLastSection: PropTypes.bool.isRequired,\n};\n\nexport default SocialShareModal;\n","// Libraries\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { connect } from 'react-redux';\nimport { withTranslation } from 'react-i18next';\n\n// State\nimport {\n  getNextSectionPosition,\n  deserializeEngagement,\n  checkPreviewMode,\n  getCurrentSection,\n  updateCurrentPosition,\n  getPreviousSectionPosition,\n  getQuestionErrors,\n  getCurrentSectionPosition,\n} from 'state/ducks/engagement';\n\n// Context\nimport ModalProvider from 'contexts/Modal/ModalProvider';\n\n// Components\nimport Header from 'header/components/Header';\nimport Footer from 'common/components/Footer';\nimport PreviewModeBanner from 'common/components/PreviewModeBanner';\nimport Section from 'engagement/components/SectionsContainer/Section';\nimport ProgressBarContainer from 'engagement/components/ProgressBarContainer';\nimport NavigationContainer from 'engagement/components/NavigationContainer';\nimport CompleteEngagementFooter from 'engagement/components/CompleteEngagementFooter';\nimport SocialShareModal from 'engagement/components/SocialShareModal';\n\n// Utils\nimport { classicTheme, parseInteger, storyTheme } from 'common/utils/helpers';\nimport { withPersistContext } from 'common/utils/reduxPersist';\n\nexport class SectionsContainer extends PureComponent {\n  componentDidMount() {\n    const {\n      match: { params },\n      dispatchUpdateCurrentPosition,\n    } = this.props;\n    dispatchUpdateCurrentPosition(parseInteger(params.position));\n  }\n\n  componentDidUpdate(prevProps) {\n    const {\n      match: { params },\n      deserializedEngagement,\n      nextSectionPosition,\n      dispatchUpdateCurrentPosition,\n      persistContext,\n      currentSectionPosition,\n    } = this.props;\n    const previousPosition = prevProps.match.params.position;\n\n    if (!deserializedEngagement.introEnabled && currentSectionPosition === 1) {\n      dispatchUpdateCurrentPosition(2);\n      return;\n    }\n\n    // sync url position with store position\n    if (previousPosition !== params.position) {\n      dispatchUpdateCurrentPosition(parseInteger(params.position));\n    }\n\n    if (!nextSectionPosition && !deserializedEngagement.keepSubmission) {\n      setTimeout(persistContext.clearStorage);\n    }\n  }\n\n  render() {\n    const {\n      meta,\n      currentSection,\n      questionErrors,\n      deserializedEngagement,\n      nextSectionPosition,\n      previewMode,\n      t,\n      currentSectionPosition,\n    } = this.props;\n    const { nextEngagement, project, collectDigitalFingerprint, introEnabled, keepSubmission } =\n      deserializedEngagement;\n\n    const isFirstSection = () => {\n      if (introEnabled && currentSectionPosition === 1) return true;\n      if (!introEnabled && currentSectionPosition === 2) return true;\n      return false;\n    };\n\n    return (\n      <>\n        {previewMode && <PreviewModeBanner message={t('engagement.preview_mode')} />}\n        <div\n          className={classNames('sections-container', {\n            'sections-container--preview': previewMode,\n          })}\n        >\n          <a className=\"skip-main\" href=\"#main\">\n            {t('engagement.skip_to_main')}\n          </a>\n          {storyTheme() && <ProgressBarContainer />}\n          <Header\n            meta={meta}\n            previewMode={previewMode}\n            currentSection={currentSection}\n            engagement={deserializedEngagement}\n            isLastSection={!nextSectionPosition}\n          />\n          {classicTheme() && <ProgressBarContainer />}\n          <main id=\"main\">\n            <Section\n              questionErrors={questionErrors}\n              currentSection={currentSection}\n              isFirstSection={isFirstSection()}\n              isLastSection={!nextSectionPosition}\n              collectDigitalFingerprint={collectDigitalFingerprint}\n              introEnabled={introEnabled}\n            />\n          </main>\n          <Footer>\n            {nextSectionPosition ? (\n              <NavigationContainer\n                projectPublic={project.public}\n                projectHubEnabled={project.projectHubEnabled}\n              />\n            ) : (\n              <CompleteEngagementFooter\n                nextEngagement={nextEngagement}\n                keepSubmission={keepSubmission}\n              />\n            )}\n          </Footer>\n          {project.socialSharing && (\n            <ModalProvider>\n              <SocialShareModal\n                isLastSection={!nextSectionPosition}\n                engagement={deserializedEngagement}\n              />\n            </ModalProvider>\n          )}\n        </div>\n      </>\n    );\n  }\n}\n\nSectionsContainer.propTypes = {\n  match: PropTypes.shape({\n    params: PropTypes.shape({\n      position: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n    }),\n  }).isRequired,\n  persistContext: PropTypes.shape({\n    clearStorage: PropTypes.func,\n  }).isRequired,\n  t: PropTypes.func.isRequired,\n  dispatchUpdateCurrentPosition: PropTypes.func,\n  nextSectionPosition: PropTypes.number,\n  meta: PropTypes.shape({\n    preview: PropTypes.bool,\n  }),\n  currentSection: PropTypes.shape({}),\n  questionErrors: PropTypes.shape({}),\n  deserializedEngagement: PropTypes.shape({\n    nextEngagement: PropTypes.shape({}),\n    collectDigitalFingerprint: PropTypes.bool.isRequired,\n    keepSubmission: PropTypes.bool.isRequired,\n    project: PropTypes.shape({\n      public: PropTypes.bool,\n      socialSharing: PropTypes.bool,\n      projectHubEnabled: PropTypes.bool,\n    }),\n    introEnabled: PropTypes.bool,\n  }),\n  previewMode: PropTypes.bool,\n  currentSectionPosition: PropTypes.number.isRequired,\n};\n\nSectionsContainer.defaultProps = {\n  dispatchUpdateCurrentPosition: null,\n  nextSectionPosition: null,\n  meta: { preview: false },\n  currentSection: {},\n  questionErrors: {},\n  deserializedEngagement: {},\n  previewMode: false,\n};\n\nconst mapStateToProps = (state) => ({\n  deserializedEngagement: deserializeEngagement(state),\n  previousSectionPosition: getPreviousSectionPosition(state),\n  nextSectionPosition: getNextSectionPosition(state),\n  previewMode: checkPreviewMode(state),\n  questionErrors: getQuestionErrors(state),\n  currentSection: getCurrentSection(state),\n  currentSectionPosition: getCurrentSectionPosition(state),\n});\n\nconst mapDispatchToProps = {\n  dispatchUpdateCurrentPosition: updateCurrentPosition,\n};\n\nconst ConnectedComponent = connect(mapStateToProps, mapDispatchToProps)(SectionsContainer);\n\nexport default withPersistContext(withTranslation()(ConnectedComponent));\n","// Libraries\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { withTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\n\n// State\nimport { clearUserData } from 'state/ducks/engagement';\n\n// Utilities\nimport { fetchProject } from 'api/rest';\nimport { withPersistContext } from 'common/utils/reduxPersist';\nimport { populatePath, jsonaDeserialize, isEmbedded } from 'common/utils/helpers';\n\n// Routes\nimport Routes from 'routes';\n\n// Components\nimport Header from 'header/components/Header';\nimport Footer from 'common/components/Footer';\nimport Button from 'common/components/Button';\nimport NotificationsSignup from 'common/components/NotificationsSignup';\nimport VisitHubLink from '../VisitHubLink';\n\nconst QuitPageContainer = ({ match, history, persistContext, dispatchClearUserData, t }) => {\n  const [project, setProject] = useState(null);\n\n  useEffect(() => {\n    const getProject = async () => {\n      const fetchedProject = await fetchProject(match.params.projectId);\n      setProject(jsonaDeserialize(fetchedProject));\n    };\n    getProject();\n    dispatchClearUserData();\n    persistContext.clearStorage();\n  }, []);\n\n  const handleRestartClick = () => history.push(populatePath(Routes.ENGAGEMENT, match.params));\n\n  return (\n    <div className=\"quit-page\">\n      <Header project={project} />\n      <section className=\"hero\">\n        <div className=\"hero-body\">\n          <div className=\"container inner\">\n            <h1 className=\"title\">{t('engagement.sorry')}</h1>\n            <p>{t('engagement.responses_erased_message')}</p>\n            <p>{t('engagement.try_again_message')}</p>\n            <div className=\"actions\">\n              <Button onClick={() => handleRestartClick()} primary>\n                {t('engagement.restart_engagement_button')}\n              </Button>\n            </div>\n          </div>\n        </div>\n      </section>\n      <Footer>\n        <div className=\"footer-wrapper\">\n          <div className=\"container inner\">\n            <div className=\"columns is-multiline\">\n              <div className=\"column is-full\">\n                <h2 className=\"title\">{t('engagement.stay_involved')}</h2>\n              </div>\n              {project?.notificationSignUpEnabled && (\n                <div className=\"column\">\n                  <p>{t('engagement.get_notified_message')}</p>\n                  <NotificationsSignup title={project.title} />\n                </div>\n              )}\n              {project?.public && project?.projectHubEnabled && !isEmbedded() && (\n                <div className=\"column\">\n                  <p>{t('engagement.learn_more')}</p>\n                  <VisitHubLink button />\n                </div>\n              )}\n            </div>\n          </div>\n        </div>\n      </Footer>\n    </div>\n  );\n};\n\nQuitPageContainer.propTypes = {\n  persistContext: PropTypes.shape({\n    clearStorage: PropTypes.func,\n  }).isRequired,\n  history: PropTypes.shape({\n    push: PropTypes.func,\n  }).isRequired,\n  match: PropTypes.shape({\n    params: PropTypes.shape({\n      projectId: PropTypes.string,\n    }),\n  }).isRequired,\n  dispatchClearUserData: PropTypes.func.isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nconst mapDispatchToProps = {\n  dispatchClearUserData: clearUserData,\n};\n\nconst ConnectedComponent = connect(null, mapDispatchToProps)(QuitPageContainer);\n\nexport default withPersistContext(withRouter(withTranslation()(ConnectedComponent)));\n","// Libraries\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\nimport { withRouter } from 'react-router-dom';\n\n// Utilities\nimport { fetchProject } from 'api/rest';\nimport { isEmbedded, jsonaDeserialize } from 'common/utils/helpers';\n\n// Components\nimport Header from 'header/components/Header';\nimport Footer from 'common/components/Footer';\nimport NotificationsSignup from 'common/components/NotificationsSignup';\nimport VisitHubLink from '../VisitHubLink';\n\nconst ClosedPageContainer = ({ match, t }) => {\n  const [project, setProject] = useState(null);\n\n  useEffect(() => {\n    const getProject = async () => {\n      const fetchedProject = await fetchProject(match.params.projectId);\n      setProject(jsonaDeserialize(fetchedProject));\n    };\n    getProject();\n  }, []);\n\n  return (\n    <div className=\"closed-page\">\n      <Header project={project} />\n      <section className=\"hero\">\n        <div className=\"hero-body\">\n          <div className=\"container inner\">\n            <h1 className=\"title\">{t('engagement.engagement_now_closed')}</h1>\n            <p>{t('engagement.engagement_thanks_for_coming')}</p>\n            {project?.public && project?.projectHubEnabled && !isEmbedded() && (\n              <div className=\"actions\">\n                <VisitHubLink button />\n              </div>\n            )}\n          </div>\n        </div>\n      </section>\n      <Footer>\n        <div className=\"footer-wrapper\">\n          <div className=\"container inner\">\n            <div className=\"columns is-multiline\">\n              <div className=\"column is-full\">\n                <h2 className=\"title\">{t('engagement.stay_involved')}</h2>\n              </div>\n              {project?.notificationSignUpEnabled && (\n                <div className=\"column\">\n                  <p>{t('engagement.get_notified_message')}</p>\n                  <NotificationsSignup title={project.title} />\n                </div>\n              )}\n              {project?.public && project?.projectHubEnabled && !isEmbedded() && (\n                <div className=\"column\">\n                  <p>{t('engagement.learn_more')}</p>\n                  <VisitHubLink button />\n                </div>\n              )}\n            </div>\n          </div>\n        </div>\n      </Footer>\n    </div>\n  );\n};\n\nClosedPageContainer.propTypes = {\n  match: PropTypes.shape({\n    params: PropTypes.shape({\n      projectId: PropTypes.string.isRequired,\n    }).isRequired,\n  }).isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withRouter(withTranslation()(ClosedPageContainer));\n","// Libraries\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { Trans, withTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\n\n// State\nimport { clearUserData } from 'state/ducks/engagement';\n\n// Utilities\nimport { withPersistContext } from 'common/utils/reduxPersist';\nimport { populatePath } from 'common/utils/helpers';\n\n// Routes\nimport Routes from 'routes';\n\nexport class ErrorPageContainer extends PureComponent {\n  componentDidMount() {\n    const { persistContext, dispatchClearUserData } = this.props;\n    dispatchClearUserData();\n    persistContext.clearStorage();\n  }\n\n  render() {\n    const { match, t } = this.props;\n\n    return (\n      <div className=\"hero is-primary is-fullheight engagement-error-page is-primary-background\">\n        <div className=\"hero-body\">\n          <div className=\"container\">\n            <div className=\"hero-content\">\n              <h1 className=\"title is-1 is-primary-color\">{t('engagement.500_error_message')}</h1>\n              <p className=\"subtitle is-4\">\n                <Trans i18nKey=\"engagement.error_page_try_again\">\n                  Don&apos;t worry - it wasn&apos;t your fault. We&apos;ve been alerted and will\n                  look into it as quickly as possible.\n                  <br />\n                  In the meantime, you can\n                  <a href={populatePath(Routes.ENGAGEMENT, match.params)}> Click here </a>\n                  to give it another try.\n                </Trans>\n              </p>\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\nErrorPageContainer.propTypes = {\n  persistContext: PropTypes.shape({\n    clearStorage: PropTypes.func,\n  }).isRequired,\n  match: PropTypes.shape({\n    params: PropTypes.shape({}),\n  }).isRequired,\n  dispatchClearUserData: PropTypes.func.isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nconst mapDispatchToProps = {\n  dispatchClearUserData: clearUserData,\n};\n\nconst ConnectedComponent = connect(null, mapDispatchToProps)(ErrorPageContainer);\n\nexport default withPersistContext(withRouter(withTranslation()(ConnectedComponent)));\n","// Libraries\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Route, Redirect, Switch } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { propertyOf } from 'underscore';\n\n// State\nimport {\n  setPersistedEngagement,\n  deserializeEngagement,\n  generateSkipSections,\n  checkPreviewMode,\n  getStateHydrated,\n  getCurrentSectionPosition,\n  getSubmission,\n  getState,\n} from 'state/ducks/engagement';\n\n// Routes\nimport Routes from 'routes';\n\n// Utilities\nimport { hydrateEngagementState, persistState } from 'common/utils/reduxPersist';\nimport { populatePath, parseInteger } from 'common/utils/helpers';\nimport NotFoundPageContainer from 'common/components/NotFoundPageContainer';\nimport { isEngagementClosed } from 'engagement/utils/helpers';\n\n// Components\nimport Spinner from 'common/components/Spinner';\nimport SectionsContainer from 'engagement/components/SectionsContainer';\nimport QuitPageContainer from 'engagement/components/QuitPageContainer';\nimport ClosedPageContainer from 'engagement/components/ClosedPageContainer';\nimport ErrorPageContainer from 'engagement/components/ErrorPageContainer';\n\nconst keyPrefix = ({ match: { params } }) => `state/engagement[${params.engagementId}]`;\n\nconst propsToPersist = [\n  'questionValues',\n  'currentSectionPosition',\n  'engagementSerialized',\n  'submission',\n  'sectionsSubmitted',\n  'fingerprintConsent',\n  'responseHistory',\n  'responseInputsMap',\n];\n\nconst shouldClearStorage = (props, persistedState) => {\n  const {\n    engagement: { meta },\n  } = props;\n  if (meta && meta.preview) {\n    return true;\n  }\n\n  const statusPath = ['data', 'attributes', 'public_status'];\n  const status = propertyOf(props)(['engagement', ...statusPath]);\n  const persistedStatus = propertyOf(persistedState)(['engagementSerialized', ...statusPath]);\n\n  return persistedStatus && status !== persistedStatus;\n};\n\nconst persistEnabled = (props) => !props.engagement.meta?.preview;\nconst persistedState = persistState(getState, keyPrefix, propsToPersist, persistEnabled);\n\nexport class EngagementContainer extends PureComponent {\n  componentDidMount() {\n    const { dispatchSetPersistedEngagement } = this.props;\n    hydrateEngagementState(\n      keyPrefix,\n      propsToPersist,\n      this.props,\n      shouldClearStorage,\n      dispatchSetPersistedEngagement\n    );\n  }\n\n  render() {\n    const {\n      engagement: { meta },\n      stateHydrated,\n      currentSectionPosition,\n      skipSections,\n      deserializedEngagement,\n      previewMode,\n      submission,\n      match,\n    } = this.props;\n\n    if (!stateHydrated) {\n      return <Spinner />;\n    }\n\n    return (\n      <div className=\"engagement-container\">\n        <Switch>\n          <Redirect\n            exact\n            strict\n            push\n            from={Routes.ENGAGEMENT_PREVIEW}\n            to={\n              meta && meta.section\n                ? populatePath(Routes.ENGAGEMENT_SECTION, {\n                    ...match.params,\n                    position: meta.section,\n                  })\n                : populatePath(Routes.ENGAGEMENT, match.params)\n            }\n          />\n          <Route\n            exact\n            path={Routes.ENGAGEMENT}\n            render={() => {\n              const redirectUrl = populatePath(Routes.ENGAGEMENT_SECTION, {\n                ...match.params,\n                position: currentSectionPosition,\n              });\n\n              return (\n                <Redirect\n                  to={{\n                    pathname: redirectUrl,\n                    search: window.location.search,\n                  }}\n                />\n              );\n            }}\n          />\n          <Route\n            exact\n            strict\n            path={Routes.ENGAGEMENT_SECTION}\n            render={(props) => {\n              const position = parseInteger(props.match.params.position);\n\n              if (!deserializedEngagement) return null;\n\n              if (!position || position < 1 || position > deserializedEngagement.sections.length) {\n                return <NotFoundPageContainer />;\n              }\n\n              if (!previewMode && isEngagementClosed(deserializedEngagement)) {\n                return <Redirect to={populatePath(Routes.ENGAGEMENT_CLOSED, match.params)} />;\n              }\n\n              // If a user manually alters the URL, redirect them to the intended section\n              // if this is a preview and the URL is altered by skipLogic, return the next section\n              if (skipSections.includes(position)) {\n                return (\n                  <Redirect\n                    to={populatePath(Routes.ENGAGEMENT_SECTION, {\n                      ...match.params,\n                      position: previewMode ? position + 1 : currentSectionPosition,\n                    })}\n                  />\n                );\n              }\n\n              // Redirect first-time users to the first section\n              if (!previewMode && !submission && position > 1) {\n                return (\n                  <Redirect\n                    to={populatePath(Routes.ENGAGEMENT_SECTION, { ...match.params, position: 1 })}\n                  />\n                );\n              }\n\n              return <SectionsContainer {...props} meta={meta} />;\n            }}\n          />\n          <Route exact strict path={Routes.ENGAGEMENT_QUIT} component={QuitPageContainer} />\n          <Route exact strict path={Routes.ENGAGEMENT_CLOSED} component={ClosedPageContainer} />\n          <Route exact strict path={Routes.ENGAGEMENT_ERROR} component={ErrorPageContainer} />\n          <Route component={NotFoundPageContainer} />\n        </Switch>\n      </div>\n    );\n  }\n}\n\nEngagementContainer.propTypes = {\n  engagement: PropTypes.objectOf(PropTypes.any).isRequired,\n  currentSectionPosition: PropTypes.number.isRequired,\n  skipSections: PropTypes.arrayOf(PropTypes.number).isRequired,\n  deserializedEngagement: PropTypes.objectOf(PropTypes.any),\n  previewMode: PropTypes.bool.isRequired,\n  submission: PropTypes.objectOf(PropTypes.any),\n  stateHydrated: PropTypes.bool.isRequired,\n  match: PropTypes.objectOf(PropTypes.any).isRequired,\n  dispatchSetPersistedEngagement: PropTypes.func.isRequired,\n};\n\nEngagementContainer.defaultProps = {\n  deserializedEngagement: {},\n  submission: null,\n};\n\nconst mapStateToProps = (state) => ({\n  stateHydrated: getStateHydrated(state),\n  currentSectionPosition: getCurrentSectionPosition(state),\n  skipSections: generateSkipSections(state),\n  deserializedEngagement: deserializeEngagement(state),\n  previewMode: checkPreviewMode(state),\n  submission: getSubmission(state),\n});\n\nconst mapDispatchToProps = {\n  dispatchSetPersistedEngagement: setPersistedEngagement,\n};\n\nconst ConnectedComponent = connect(mapStateToProps, mapDispatchToProps)(EngagementContainer);\n\nexport default persistedState(ConnectedComponent);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\n// Utilities\nimport { rtlLanguage, translateDate } from 'common/utils/helpers';\n\nconst AnnouncementHero = ({\n  projectLink,\n  title,\n  subtitle,\n  date,\n  backToProjectText,\n  projectUpdateText,\n}) => {\n  const { t } = useTranslation();\n\n  return (\n    <div\n      id=\"page-hero\"\n      className=\"announcement-hero is-primary is-large\"\n      style={{\n        backgroundSize: 'cover',\n        backgroundPosition: 'center center',\n      }}\n      role=\"region\"\n    >\n      <div className=\"container inner\">\n        <div className=\"announcement-hero__container\">\n          <div className=\"announcement-hero__info\">\n            {projectLink && (\n              <p className=\"announcement-hero__info-link\">\n                {projectLink && (\n                  <a href={projectLink} className=\"is-secondary-color\">\n                    <i\n                      className={classNames('fas', {\n                        'fa-long-arrow-alt-right': rtlLanguage(),\n                        'fa-long-arrow-alt-left': !rtlLanguage(),\n                      })}\n                    />\n                    {backToProjectText}\n                  </a>\n                )}\n              </p>\n            )}\n            {title && <h1 className=\"announcement-hero__info-title is-primary-color\">{title}</h1>}\n            {subtitle && (\n              <h2 className=\"announcement-hero__info-subtitle is-primary-color\">{subtitle}</h2>\n            )}\n            {date && (\n              <p className=\"announcement-hero__info-date\">\n                {projectUpdateText}\n                {projectUpdateText && <span>-</span>}\n                {translateDate(date, t)}\n              </p>\n            )}\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nAnnouncementHero.propTypes = {\n  projectLink: PropTypes.string,\n  title: PropTypes.string,\n  subtitle: PropTypes.string,\n  date: PropTypes.string,\n  backToProjectText: PropTypes.string,\n  projectUpdateText: PropTypes.string,\n};\n\nAnnouncementHero.defaultProps = {\n  projectLink: null,\n  title: null,\n  subtitle: null,\n  date: null,\n  backToProjectText: 'Back to Project Page',\n  projectUpdateText: 'Project Update',\n};\n\nexport default AnnouncementHero;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Utilities\nimport { renderMarkdown, determineImageSize } from 'common/utils/helpers';\n\n// Components\nimport YoutubeEmbedder from 'common/components/YoutubeEmbedder';\nimport Link from 'common/components/Link';\nimport NotificationsSignup from 'common/components/NotificationsSignup';\n\nconst AnnouncementDetails = ({\n  announcement,\n  heroImage,\n  video,\n  project: { notificationSignUpEnabled, title },\n  t,\n}) => (\n  <div className=\"announcement__details\">\n    {announcement.longDescription && (\n      <div\n        className=\"description markdown\"\n        dangerouslySetInnerHTML={{ __html: renderMarkdown(announcement.longDescription) }}\n      />\n    )}\n\n    {heroImage && heroImage.imageUrls && (\n      <img\n        src={determineImageSize(heroImage.imageUrls)}\n        alt={heroImage.altText}\n        title={heroImage.caption}\n      />\n    )}\n\n    {video && video.youtubeId && <YoutubeEmbedder id={video.youtubeId} />}\n\n    <br />\n\n    {announcement.ctaButtonText && (\n      <Link\n        href={announcement.ctaButtonLink}\n        button\n        className=\"is-secondary-color is-primary-outline announcement__cta\"\n      >\n        {announcement.ctaButtonText}\n      </Link>\n    )}\n    <br />\n    <br />\n    {notificationSignUpEnabled && (\n      <div className=\"signup announcement__signup\">\n        <div className=\"signup__body announcement__signup-body\">\n          <h2 className=\"signup__title title is-primary-color\">{t('project.stay_informed')}</h2>\n          <p className=\"signup__message announcement__signup-message\">\n            {t('project.get_notified_message')}\n          </p>\n        </div>\n        <NotificationsSignup title={title} />\n      </div>\n    )}\n  </div>\n);\n\nAnnouncementDetails.propTypes = {\n  announcement: PropTypes.shape({\n    longDescription: PropTypes.string,\n    ctaButtonText: PropTypes.string,\n    ctaButtonLink: PropTypes.string,\n  }).isRequired,\n  heroImage: PropTypes.shape({\n    imageUrls: PropTypes.shape({}),\n    altText: PropTypes.string,\n    caption: PropTypes.string,\n  }),\n  video: PropTypes.shape({\n    youtubeId: PropTypes.string,\n  }),\n  project: PropTypes.shape({\n    notificationSignUpEnabled: PropTypes.bool.isRequired,\n    title: PropTypes.string.isRequired,\n  }).isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nAnnouncementDetails.defaultProps = {\n  heroImage: { imageUrls: {} },\n  video: { youtubeId: null },\n};\n\nexport default AnnouncementDetails;\n","/* eslint-disable react/state-in-constructor */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ShowMoreList extends PureComponent {\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      itemsToShow: 5,\n      expanded: false,\n    };\n  }\n\n  handleKeyPress(event) {\n    if (event.key === 'Enter') {\n      this.showMore();\n    }\n  }\n\n  showMore() {\n    const { expanded } = this.state;\n    const { children } = this.props;\n    if (expanded) {\n      this.setState({ itemsToShow: 5, expanded: false });\n    } else {\n      this.setState({ itemsToShow: children.length, expanded: true });\n    }\n  }\n\n  render() {\n    const { children } = this.props;\n    if (!children) return null;\n\n    const { itemsToShow, expanded } = this.state;\n    const showing = children.length > itemsToShow ? itemsToShow : children.length;\n    const total = children.length;\n    const spanText = `Showing ${showing} of ${total}`;\n    const showMoreButtonText = expanded ? 'Show Less' : 'Show More';\n    const showMetaInfo = expanded || total > showing;\n\n    return (\n      <>\n        <div className=\"show-more-list\" id=\"show-more-list-1\">\n          {expanded ? children : children.slice(0, itemsToShow)}\n        </div>\n        {showMetaInfo && (\n          <p className=\"show-more-list__meta\">\n            <span className=\"show-more-list__info\">{spanText}</span>\n            <span\n              className=\"show-more-list__button is-primary\"\n              onClick={() => this.showMore()}\n              onKeyPress={(e) => this.handleKeyPress(e)}\n              tabIndex={0}\n              aria-controls=\"#show-more-list-1\"\n              id=\"show-more-button\"\n            >\n              {showMoreButtonText}\n            </span>\n          </p>\n        )}\n      </>\n    );\n  }\n}\n\nShowMoreList.propTypes = {\n  children: PropTypes.arrayOf(PropTypes.node),\n};\n\nShowMoreList.defaultProps = {\n  children: [],\n};\n\nexport default ShowMoreList;\n","/* eslint-disable react/forbid-prop-types */\n// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\n// Utilities\nimport { populatePath, rtlLanguage, translateDate } from 'common/utils/helpers';\n\n// Routes\nimport Routes from 'routes';\n\n// Components\nimport Link from 'common/components/Link';\n\nconst AnnouncementListItem = ({ t, match, announcement }) => {\n  const {\n    id,\n    attributes: {\n      title,\n      shortDescription,\n      titleTranslations,\n      shortDescriptionTranslations,\n      publishedAt,\n      slug,\n    },\n  } = announcement;\n  const {\n    params: { locale },\n  } = match;\n  const announcementTitle = titleTranslations ? titleTranslations[locale] : title;\n  const announcementDescription = shortDescriptionTranslations\n    ? shortDescriptionTranslations[locale]\n    : shortDescription;\n  return (\n    <li className=\"project-updates__item\" key={id}>\n      <Link\n        href={populatePath(Routes.ANNOUNCEMENT, { ...match.params, announcementId: slug })}\n        className=\"project-updates__item-heading is-secondary-color\"\n      >\n        <span>\n          {announcementTitle}\n          <i\n            className={classNames('fas', {\n              'fa-long-arrow-alt-right': !rtlLanguage(),\n              'fa-long-arrow-alt-left': rtlLanguage(),\n            })}\n          />\n        </span>\n      </Link>\n      {publishedAt && (\n        <p className=\"project-updates__item-subheading\">{translateDate(publishedAt, t)}</p>\n      )}\n      {announcementDescription && (\n        <p className=\"project-updates__item-description\">{announcementDescription}</p>\n      )}\n    </li>\n  );\n};\n\nAnnouncementListItem.propTypes = {\n  t: PropTypes.func.isRequired,\n  announcement: PropTypes.shape({\n    attributes: PropTypes.shape({\n      id: PropTypes.number,\n      title: PropTypes.string,\n      titleTranslations: PropTypes.objectOf(PropTypes.any),\n      shortDescription: PropTypes.string,\n      shortDescriptionTranslations: PropTypes.objectOf(PropTypes.any),\n      publishedAt: PropTypes.string,\n      slug: PropTypes.string,\n    }),\n    id: PropTypes.string,\n    relationships: PropTypes.shape({\n      project: PropTypes.objectOf(PropTypes.any),\n    }),\n  }).isRequired,\n  match: PropTypes.shape({\n    params: PropTypes.shape({\n      locale: PropTypes.string.isRequired,\n    }),\n  }).isRequired,\n};\n\nexport default withTranslation()(AnnouncementListItem);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport compareDesc from 'date-fns/compareDesc';\nimport parseISO from 'date-fns/parseISO';\n\n// Components\nimport ShowMoreList from 'common/components/ShowMoreList';\nimport AnnouncementListItem from '../AnnouncementListItem';\n\nconst AnnouncementSidebar = ({ announcements, title, match }) => {\n  const sortedAnnouncements =\n    announcements &&\n    announcements.sort((first, second) =>\n      compareDesc(parseISO(first.publishedAt), parseISO(second.publishedAt))\n    );\n  return (\n    <div className=\"announcement__sidebar\">\n      <p className=\"announcement__sidebar-title\">\n        <i className=\"fas fa-bell\" />\n        {title}\n      </p>\n      <ul className=\"project-updates__items\">\n        {!!(announcements || []).length && (\n          <ShowMoreList>\n            {sortedAnnouncements.map((announcement) => (\n              <AnnouncementListItem\n                key={announcement.id}\n                match={match}\n                announcement={announcement}\n              />\n            ))}\n          </ShowMoreList>\n        )}\n      </ul>\n    </div>\n  );\n};\n\nAnnouncementSidebar.propTypes = {\n  title: PropTypes.string.isRequired,\n  announcements: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.number,\n      titleTranslations: PropTypes.shape({}),\n      shortDescriptionTranslations: PropTypes.shape({}),\n      publishedAt: PropTypes.string,\n      slug: PropTypes.string,\n    })\n  ).isRequired,\n  match: PropTypes.shape({\n    params: PropTypes.shape({\n      locale: PropTypes.string.isRequired,\n    }),\n  }).isRequired,\n};\n\nexport default AnnouncementSidebar;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\n\n// Utilities\nimport { getMediaDataByLocale, getVariationByLocale, populatePath } from 'common/utils/helpers';\n\n// Routes\nimport Routes from 'routes';\n\n// Components\nimport Header from 'header/components/Header';\nimport Footer from 'common/components/Footer';\nimport SocialFooter from 'common/components/SocialFooter';\nimport AnnouncementHero from '../AnnouncementHero';\nimport AnnouncementDetails from '../AnnouncementDetails';\nimport AnnouncementSidebar from '../AnnouncementSidebar';\n\nconst AnnouncementContainer = ({ announcement, otherAnnouncements, match, t }) => {\n  const { project, heroImage, video } = announcement;\n  const projectLink = populatePath(Routes.PROJECT, match.params);\n\n  let heroImageInSelectedLocale = heroImage;\n  let videoInSelectedLocale = video;\n\n  if (!gon.inDefaultLanguage) {\n    heroImageInSelectedLocale = getMediaDataByLocale(heroImage, gon.currentLocale);\n    videoInSelectedLocale = getVariationByLocale(video?.variations, gon.currentLocale, video);\n  }\n\n  return (\n    <div className=\"announcement-container announcement\">\n      <Header project={project} />\n      <main>\n        <AnnouncementHero\n          title={announcement.title}\n          subtitle={announcement.shortDescription}\n          date={announcement.publishedAt || announcement.createdAt}\n          projectLink={projectLink}\n          backToProjectText={t('announcement.back_to_project_page')}\n          projectUpdateText={''}\n        />\n        <section className=\"container\">\n          <div className=\"columns is-desktop content-container\">\n            <div className=\"column is-three-fifths-desktop is-full-tablet\">\n              <AnnouncementDetails\n                announcement={announcement}\n                heroImage={heroImageInSelectedLocale}\n                video={videoInSelectedLocale}\n                t={t}\n                project={project}\n              />\n            </div>\n            <div className=\"column is-two-fifths-desktop\">\n              {otherAnnouncements.length > 0 && (\n                <AnnouncementSidebar\n                  title={t('announcement.more_project_updates')}\n                  announcements={otherAnnouncements}\n                  match={match}\n                />\n              )}\n            </div>\n          </div>\n        </section>\n      </main>\n      <SocialFooter project={project} />\n      <Footer />\n    </div>\n  );\n};\n\nAnnouncementContainer.propTypes = {\n  announcement: PropTypes.shape({\n    title: PropTypes.string.isRequired,\n    shortDescription: PropTypes.string.isRequired,\n    longDescription: PropTypes.string,\n    createdAt: PropTypes.string,\n    publishedAt: PropTypes.string,\n    slug: PropTypes.string,\n    project: PropTypes.shape.isRequired,\n    heroImage: PropTypes.shape,\n    video: PropTypes.shape,\n  }).isRequired,\n  match: PropTypes.shape.isRequired,\n  otherAnnouncements: PropTypes.arrayOf(PropTypes.shape).isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withTranslation()(AnnouncementContainer);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Utils\nimport { storyTheme } from 'common/utils/helpers';\n\nconst Hero = ({ title, subheading, backgroundImageUrl, backgroundImagePosition }) => (\n  <div\n    id=\"page-hero\"\n    className=\"hero is-primary is-large project-hero\"\n    style={{\n      backgroundImage: backgroundImageUrl && `url(\"${encodeURI(backgroundImageUrl)}\")`,\n      backgroundSize: 'cover',\n      backgroundPosition: `${backgroundImagePosition} center`,\n    }}\n    role=\"region\"\n  >\n    <div className=\"hero-body project-hero__body\">\n      {storyTheme() && (\n        <>\n          <div className=\"project-hero__headings container inner\">\n            <h1 className=\"project-hero__title\">{title}</h1>\n            {subheading && <h2 className=\"project-hero__subheading\">{subheading}</h2>}\n          </div>\n          <div className=\"project-hero__line container inner\" />\n        </>\n      )}\n    </div>\n  </div>\n);\n\nHero.propTypes = {\n  title: PropTypes.string.isRequired,\n  subheading: PropTypes.string,\n  backgroundImageUrl: PropTypes.string,\n  backgroundImagePosition: PropTypes.string,\n};\n\nHero.defaultProps = {\n  subheading: null,\n  backgroundImageUrl: '',\n  backgroundImagePosition: 'center',\n};\n\nexport default Hero;\n","/* eslint-disable react/forbid-prop-types */\n// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { withTranslation } from 'react-i18next';\n\n// Utilities\nimport { populatePath, getUtmParams } from 'common/utils/helpers';\n\n// Enumerables\nimport PublicStatus from 'common/enums/PublicStatus';\n\n// Routes\nimport Routes from 'routes';\n\n// Components\nimport CallToActionTile from 'project/components/CallToActionTile';\n\nconst buttonLabel = (publicStatus, t) => {\n  if (publicStatus === PublicStatus.OPEN) {\n    return t('project.participate_now');\n  }\n\n  if (publicStatus === PublicStatus.CLOSED) {\n    return t('project.view_idea_board');\n  }\n\n  return null;\n};\n\nconst IdeaBoardTile = ({ ideaBoard, match, t }) => {\n  const { id, publicStatus, title, shortDescription, heroImage, startTime, endTime } = ideaBoard;\n\n  const ideaBoardUrl = populatePath(Routes.IDEA_BOARD, {\n    ...match.params,\n    ideaBoardId: id,\n  });\n  const utmQueryString = getUtmParams();\n  const ideaBoardUrlWithUtm = `${ideaBoardUrl}${utmQueryString}`;\n\n  return (\n    <CallToActionTile\n      publicStatus={publicStatus}\n      title={title}\n      id={id}\n      description={shortDescription}\n      heroImage={heroImage}\n      url={ideaBoardUrlWithUtm}\n      startTime={startTime}\n      endTime={endTime}\n      buttonLabel={buttonLabel(publicStatus, t)}\n    />\n  );\n};\n\nIdeaBoardTile.propTypes = {\n  ideaBoard: PropTypes.objectOf(PropTypes.any).isRequired,\n  match: PropTypes.objectOf(PropTypes.any).isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withRouter(withTranslation()(IdeaBoardTile));\n","/* eslint-disable react/forbid-prop-types */\n// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router';\nimport { withTranslation } from 'react-i18next';\n\n// Utilities\nimport { populatePath, getUtmParams } from 'common/utils/helpers';\n\n// Enumerables\nimport PublicStatus from 'common/enums/PublicStatus';\n\n// Routes\nimport Routes from 'routes';\n\n// Components\nimport CallToActionTile from 'project/components/CallToActionTile';\n\nconst buttonLabel = (publicStatus, t) => {\n  if (publicStatus === PublicStatus.OPEN) {\n    return t('project.participate_now');\n  }\n\n  if (publicStatus === PublicStatus.CLOSED) {\n    return t('project.view_discussion_topic');\n  }\n\n  return null;\n};\n\nconst DiscussionTopicTile = ({ discussionTopic, match, t }) => {\n  const { id, publicStatus, title, shortDescription, heroImage, startTime, endTime } =\n    discussionTopic;\n\n  const discussionTopicUrl = populatePath(Routes.DISCUSSION_TOPIC, {\n    ...match.params,\n    discussionTopicId: id,\n  });\n  const utmQueryString = getUtmParams();\n  const discussionTopicUrlWithUtm = `${discussionTopicUrl}${utmQueryString}`;\n\n  return (\n    <CallToActionTile\n      publicStatus={publicStatus}\n      title={title}\n      id={id}\n      description={shortDescription}\n      heroImage={heroImage}\n      url={discussionTopicUrlWithUtm}\n      startTime={startTime}\n      endTime={endTime}\n      buttonLabel={buttonLabel(publicStatus, t)}\n    />\n  );\n};\n\nDiscussionTopicTile.propTypes = {\n  discussionTopic: PropTypes.objectOf(PropTypes.any).isRequired,\n  match: PropTypes.objectOf(PropTypes.any).isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withRouter(withTranslation()(DiscussionTopicTile));\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Utilities\nimport { determineImageSize } from 'common/utils/helpers';\n\nconst SponsorQuote = ({ quote }) => {\n  const headshotImg = determineImageSize(quote.avatarUrls);\n\n  return (\n    <blockquote className=\"sponsor-quote\">\n      {quote.message && <p className=\"sponsor-quote__body is-primary-color\">{quote.message}</p>}\n      <div className=\"sponsor-quote__footer\">\n        {headshotImg && (\n          <div className=\"sponsor-quote__headshot\">\n            <img src={headshotImg} alt=\"headshot\" />\n          </div>\n        )}\n        <cite>\n          <p>\n            <span className=\"sponsor-quote__name\">{quote.name}</span>\n            <span className=\"sponsor-quote__title\">{quote.jobTitle}</span>\n          </p>\n        </cite>\n      </div>\n    </blockquote>\n  );\n};\n\nSponsorQuote.propTypes = {\n  quote: PropTypes.shape({\n    avatarUrls: PropTypes.shape({\n      desktop: PropTypes.string,\n      card: PropTypes.string,\n      mobile: PropTypes.string,\n    }),\n    message: PropTypes.string,\n    name: PropTypes.string,\n    jobTitle: PropTypes.string,\n  }).isRequired,\n};\n\nexport default SponsorQuote;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\n// Utilities\nimport {\n  renderMarkdown,\n  determineImageSize,\n  classicTheme,\n  storyTheme,\n  getVariationByLocale,\n  getMediaDataByLocale,\n} from 'common/utils/helpers';\n\n// Components\nimport YoutubeEmbedder from 'common/components/YoutubeEmbedder';\nimport NotificationsSignup from 'common/components/NotificationsSignup';\nimport EngagementTile from 'project/components/EngagementTile';\nimport IdeaBoardTile from 'project/components/IdeaBoardTile';\nimport DiscussionTopicTile from 'project/components/DiscussionTopicTile';\nimport SponsorQuote from 'project/components/SponsorQuote';\n\nconst ProjectDetail = (props) => {\n  const { project } = props;\n  const {\n    title,\n    welcomeText,\n    introduction,\n    video,\n    supportingImage,\n    sortedAssociatedRecords,\n    notificationSignUpEnabled,\n    quote,\n    category,\n  } = project;\n  const { t } = useTranslation();\n  const { title: categoryTitle } = category || {};\n  const { inDefaultLanguage } = gon;\n  let supportingImageInSelectedLocale = supportingImage;\n  let videoInSelectedLocale = video;\n\n  if (!inDefaultLanguage) {\n    supportingImageInSelectedLocale = getMediaDataByLocale(supportingImage, gon.currentLocale);\n    videoInSelectedLocale = getVariationByLocale(video?.variations, gon.currentLocale, video);\n  }\n\n  return (\n    <div className=\"project-detail\">\n      {classicTheme() && <h1 className=\"title is-2 is-size-1-desktop is-primary-color\">{title}</h1>}\n      <div className=\"content\">\n        <div className=\"content__info\" role=\"region\" aria-label={title}>\n          {storyTheme() && welcomeText && (\n            <div className=\"content__welcome-text\">{welcomeText}</div>\n          )}\n          {categoryTitle && <div className=\"content__category\">{categoryTitle}</div>}\n          {introduction && (\n            <div\n              className=\"content__introduction introduction markdown\"\n              dangerouslySetInnerHTML={{ __html: renderMarkdown(introduction) }}\n            />\n          )}\n          {supportingImageInSelectedLocale && (\n            <img\n              className=\"content__supporting-image\"\n              src={determineImageSize(supportingImageInSelectedLocale.imageUrls)}\n              alt={supportingImageInSelectedLocale.altText}\n              title={supportingImageInSelectedLocale.caption}\n            />\n          )}\n          {videoInSelectedLocale && videoInSelectedLocale.youtubeId && (\n            <div className=\"content__video\">\n              <YoutubeEmbedder id={videoInSelectedLocale.youtubeId} />\n            </div>\n          )}\n        </div>\n        {sortedAssociatedRecords.map((item) => {\n          if (item.type === 'engagement')\n            return <EngagementTile key={`${item.id}-${item.type}`} engagement={item} />;\n          if (item.type === 'idea_board')\n            return <IdeaBoardTile key={`${item.id}-${item.type}`} ideaBoard={item} />;\n          if (item.type === 'discussion_topic')\n            return <DiscussionTopicTile key={`${item.id}-${item.type}`} discussionTopic={item} />;\n          return '';\n        })}\n        {storyTheme() && quote && <SponsorQuote quote={quote} />}\n      </div>\n      {notificationSignUpEnabled && (\n        <div className=\"signup\">\n          <div className=\"signup__body\">\n            <h2 className=\"signup__title title is-primary-color\">{t('project.stay_informed')}</h2>\n            <p className=\"signup__message\">{t('project.get_notified_message')}</p>\n          </div>\n          <NotificationsSignup title={title} />\n        </div>\n      )}\n    </div>\n  );\n};\n\nProjectDetail.propTypes = {\n  project: PropTypes.shape({\n    title: PropTypes.string.isRequired,\n    welcomeText: PropTypes.string,\n    introduction: PropTypes.string,\n    notificationSignUpEnabled: PropTypes.bool.isRequired,\n    video: PropTypes.shape({\n      youtubeId: PropTypes.string,\n      variations: PropTypes.arrayOf(PropTypes.shape),\n    }),\n    supportingImage: PropTypes.shape({\n      imageUrls: PropTypes.shape({\n        desktop: PropTypes.string,\n        desktopMed: PropTypes.string,\n        mobile: PropTypes.string,\n      }),\n      links: PropTypes.shape({\n        self: PropTypes.string,\n      }),\n      altText: PropTypes.string,\n      caption: PropTypes.string,\n      variations: PropTypes.arrayOf(PropTypes.shape),\n    }),\n    sortedAssociatedRecords: PropTypes.arrayOf(PropTypes.shape),\n    quote: PropTypes.shape({\n      avatarUrls: PropTypes.shape({\n        desktop: PropTypes.string,\n        card: PropTypes.string,\n        mobile: PropTypes.string,\n      }),\n      message: PropTypes.string,\n      name: PropTypes.string,\n      jobTitle: PropTypes.string,\n    }),\n    category: PropTypes.shape({\n      title: PropTypes.string,\n    }),\n  }),\n};\n\nProjectDetail.defaultProps = {\n  project: {\n    introduction: null,\n    video: null,\n    sortedAssociatedRecords: [],\n    category: null,\n  },\n};\n\nexport default ProjectDetail;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n// Utilities\nimport { storyTheme } from 'common/utils/helpers';\n\nconst ProjectMeta = ({ heading, icon, children, className, headingClassName }) => (\n  <div className={classNames('project-meta', className)} role=\"region\" aria-label={heading}>\n    <h2 className={classNames('project-meta__heading', headingClassName)}>\n      {storyTheme() && (\n        <span className=\"project-meta__heading-icon icon is-small\">\n          <i className={icon} />\n        </span>\n      )}\n      {heading}\n    </h2>\n    {children}\n  </div>\n);\n\nProjectMeta.propTypes = {\n  heading: PropTypes.string.isRequired,\n  icon: PropTypes.string.isRequired,\n  children: PropTypes.node.isRequired,\n  className: PropTypes.string,\n  headingClassName: PropTypes.string,\n};\n\nProjectMeta.defaultProps = {\n  className: null,\n  headingClassName: null,\n};\n\nexport default ProjectMeta;\n","/* eslint-disable react/forbid-prop-types */\n// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\nimport isPast from 'date-fns/isPast';\nimport isFuture from 'date-fns/isFuture';\nimport parseISO from 'date-fns/parseISO';\nimport classNames from 'classnames';\n\n// Utilities\nimport { urlFormatter } from 'common/utils/helpers';\n\n// Components\nimport ProjectMeta from 'project/components/ProjectMeta';\n\nexport const Phases = ({ heading, phases, t }) => {\n  const renderPhase = (phase) => {\n    const { id, timeFrame, title, link } = phase;\n    const startDate = parseISO(phase.startDate);\n    const endDate = parseISO(phase.endDate);\n    const isCurrent = isPast(startDate) && isFuture(endDate);\n    const isComplete = !isCurrent && isPast(endDate);\n\n    return (\n      <li\n        className={classNames('project-timeline__step', {\n          'project-timeline__step--current': isCurrent,\n          'project-timeline__step--complete': isComplete,\n        })}\n        key={id}\n      >\n        <div\n          className={classNames('project-timeline__step-content', {\n            'is-primary-background': isCurrent,\n          })}\n        >\n          {link ? (\n            <a\n              className={classNames({ 'is-secondary-color': !isCurrent })}\n              href={urlFormatter(link)}\n            >\n              <h3>{title}</h3>\n            </a>\n          ) : (\n            <h3>{title}</h3>\n          )}\n          <span>{t(timeFrame)}</span>\n        </div>\n      </li>\n    );\n  };\n\n  return (\n    <ProjectMeta\n      heading={heading}\n      icon=\"fas fa-align-left\"\n      className=\"project-timeline\"\n      headingClassName=\"project-timeline__heading\"\n    >\n      <ul className=\"project-timeline__steps\">{phases.map(renderPhase)}</ul>\n    </ProjectMeta>\n  );\n};\n\nPhases.propTypes = {\n  heading: PropTypes.string.isRequired,\n  phases: PropTypes.arrayOf(PropTypes.any).isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withTranslation()(Phases);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\nimport isPast from 'date-fns/isPast';\nimport isFuture from 'date-fns/isFuture';\nimport parseISO from 'date-fns/parseISO';\nimport classNames from 'classnames';\n\n// Utilities\nimport { urlFormatter } from 'common/utils/helpers';\n\n// Components\nimport ProjectMeta from 'project/components/ProjectMeta';\n\nexport const StoryPhases = ({ heading, phases, t }) => {\n  const phasesToRender = phases.map((phase) => ({\n    ...phase,\n    isCurrent: isPast(parseISO(phase.startDate)) && isFuture(parseISO(phase.endDate)),\n  }));\n\n  const lastCompleteIndex = phasesToRender.reduce((lastIndex, phase, index) => {\n    if ((phase.isCurrent || isPast(parseISO(phase.endDate))) && index > lastIndex) {\n      return index;\n    }\n\n    return lastIndex;\n  }, 0);\n\n  const barStep = phases.length > 1 ? 100 / (phases.length - 1) : 0;\n  const barInnerHeight = lastCompleteIndex * barStep;\n\n  return (\n    <ProjectMeta heading={heading} icon=\"fas fa-align-left\">\n      <div className=\"story-phases\">\n        <div className=\"story-phases__column\">\n          {phasesToRender.map((phase, index) => (\n            <div\n              className={classNames('story-phases__row story-phases__number', {\n                'story-phases__number--current': phase.isCurrent,\n              })}\n              key={phase.id}\n            >\n              {index + 1}\n            </div>\n          ))}\n        </div>\n\n        <div className=\"story-phases__column\">\n          <div className=\"story-phases__bar\">\n            <div className=\"story-phases__bar-inner\" style={{ height: `${barInnerHeight}%` }} />\n            {phasesToRender.map((phase, index) => (\n              <div\n                className={classNames('story-phases__bar-tick', {\n                  'story-phases__bar-tick--current': phase.isCurrent,\n                })}\n                style={{ top: `${barStep * index}%` }}\n                key={phase.id}\n              />\n            ))}\n          </div>\n        </div>\n\n        <div className=\"story-phases__column\">\n          {phasesToRender.map((phase) => (\n            <div\n              className={classNames('story-phases__row story-phases__text', {\n                'story-phases__text--current': phase.isCurrent,\n              })}\n              key={phase.id}\n            >\n              <div className=\"story-phases__info\">\n                <div\n                  className={classNames('story-phases__title', {\n                    'story-phases__title--current': phase.isCurrent,\n                  })}\n                >\n                  {phase.link ? (\n                    <a className=\"is-secondary-color\" href={urlFormatter(phase.link)}>\n                      {phase.title}\n                    </a>\n                  ) : (\n                    phase.title\n                  )}\n                </div>\n                <div className=\"story-phases__timeframe\">{t(phase.timeFrame)}</div>\n              </div>\n            </div>\n          ))}\n        </div>\n      </div>\n    </ProjectMeta>\n  );\n};\n\nStoryPhases.propTypes = {\n  heading: PropTypes.string.isRequired,\n  phases: PropTypes.arrayOf(PropTypes.any).isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withTranslation()(StoryPhases);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\n\n// Components\nimport ShowMoreList from 'common/components/ShowMoreList';\nimport AnnouncementListItem from 'announcement/components/AnnouncementListItem';\nimport ProjectMeta from 'project/components/ProjectMeta';\n\nexport const Announcements = ({ announcements, match, t }) => (\n  <ProjectMeta\n    heading={t('project.project_updates')}\n    icon=\"fas fa-bell\"\n    className=\"project-updates\"\n    headingClassName=\"project-updates__heading\"\n  >\n    <ul className=\"project-updates__items\">\n      <ShowMoreList>\n        {announcements.map((announcement) => (\n          <AnnouncementListItem key={announcement.id} match={match} announcement={announcement} />\n        ))}\n      </ShowMoreList>\n    </ul>\n  </ProjectMeta>\n);\n\nAnnouncements.propTypes = {\n  announcements: PropTypes.arrayOf(PropTypes.shape).isRequired,\n  match: PropTypes.objectOf(PropTypes.shape).isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withTranslation()(Announcements);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\n\n// Utilities\nimport { renderMarkdown, translateDate } from 'common/utils/helpers';\n\n// Components\nimport ProjectMeta from 'project/components/ProjectMeta';\n\nexport const Events = ({ events, t }) => (\n  <ProjectMeta\n    heading={t('project.important_dates_heading')}\n    icon=\"fas fa-calendar-day\"\n    className=\"project-dates\"\n    headingClassName=\"project-dates__heading\"\n  >\n    <ul className=\"project-dates__items\">\n      {events.map(({ id, date, title, description }) => (\n        <li className=\"project-dates__item\" key={id}>\n          <div className=\"project-dates__item-headings\">\n            <h3 className=\"project-dates__item-heading is-primary-color\">\n              {translateDate(date, t)}\n            </h3>\n            <h4 className=\"project-dates__item-subheading\">{title}</h4>\n          </div>\n          {description && (\n            <div\n              className=\"introduction markdown\"\n              dangerouslySetInnerHTML={{ __html: renderMarkdown(description) }}\n            />\n          )}\n        </li>\n      ))}\n    </ul>\n  </ProjectMeta>\n);\n\nEvents.propTypes = {\n  events: PropTypes.arrayOf(PropTypes.shape).isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withTranslation()(Events);\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n    rsDingbatRange = '\\\\u2700-\\\\u27bf',\n    rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n    rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n    rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n    rsPunctuationRange = '\\\\u2000-\\\\u206f',\n    rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n    rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n    rsVarRange = '\\\\ufe0e\\\\ufe0f',\n    rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n    rsAstral = '[' + rsAstralRange + ']',\n    rsBreak = '[' + rsBreakRange + ']',\n    rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n    rsDigits = '\\\\d+',\n    rsDingbat = '[' + rsDingbatRange + ']',\n    rsLower = '[' + rsLowerRange + ']',\n    rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n    rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n    rsNonAstral = '[^' + rsAstralRange + ']',\n    rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n    rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n    rsUpper = '[' + rsUpperRange + ']',\n    rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n    rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n    rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n    rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n    reOptMod = rsModifier + '?',\n    rsOptVar = '[' + rsVarRange + ']?',\n    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n    rsSeq = rsOptVar + reOptMod + rsOptJoin,\n    rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n    rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n  rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n  rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',\n  rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,\n  rsUpper + '+' + rsOptUpperContr,\n  rsDigits,\n  rsEmoji\n].join('|'), 'g');\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange  + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n\n/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n  // Latin-1 Supplement block.\n  '\\xc0': 'A',  '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n  '\\xe0': 'a',  '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n  '\\xc7': 'C',  '\\xe7': 'c',\n  '\\xd0': 'D',  '\\xf0': 'd',\n  '\\xc8': 'E',  '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n  '\\xe8': 'e',  '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n  '\\xcc': 'I',  '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n  '\\xec': 'i',  '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n  '\\xd1': 'N',  '\\xf1': 'n',\n  '\\xd2': 'O',  '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n  '\\xf2': 'o',  '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n  '\\xd9': 'U',  '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n  '\\xf9': 'u',  '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n  '\\xdd': 'Y',  '\\xfd': 'y', '\\xff': 'y',\n  '\\xc6': 'Ae', '\\xe6': 'ae',\n  '\\xde': 'Th', '\\xfe': 'th',\n  '\\xdf': 'ss',\n  // Latin Extended-A block.\n  '\\u0100': 'A',  '\\u0102': 'A', '\\u0104': 'A',\n  '\\u0101': 'a',  '\\u0103': 'a', '\\u0105': 'a',\n  '\\u0106': 'C',  '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n  '\\u0107': 'c',  '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n  '\\u010e': 'D',  '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n  '\\u0112': 'E',  '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n  '\\u0113': 'e',  '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n  '\\u011c': 'G',  '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n  '\\u011d': 'g',  '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n  '\\u0124': 'H',  '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n  '\\u0128': 'I',  '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n  '\\u0129': 'i',  '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n  '\\u0134': 'J',  '\\u0135': 'j',\n  '\\u0136': 'K',  '\\u0137': 'k', '\\u0138': 'k',\n  '\\u0139': 'L',  '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n  '\\u013a': 'l',  '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n  '\\u0143': 'N',  '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n  '\\u0144': 'n',  '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n  '\\u014c': 'O',  '\\u014e': 'O', '\\u0150': 'O',\n  '\\u014d': 'o',  '\\u014f': 'o', '\\u0151': 'o',\n  '\\u0154': 'R',  '\\u0156': 'R', '\\u0158': 'R',\n  '\\u0155': 'r',  '\\u0157': 'r', '\\u0159': 'r',\n  '\\u015a': 'S',  '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n  '\\u015b': 's',  '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n  '\\u0162': 'T',  '\\u0164': 'T', '\\u0166': 'T',\n  '\\u0163': 't',  '\\u0165': 't', '\\u0167': 't',\n  '\\u0168': 'U',  '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n  '\\u0169': 'u',  '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n  '\\u0174': 'W',  '\\u0175': 'w',\n  '\\u0176': 'Y',  '\\u0177': 'y', '\\u0178': 'Y',\n  '\\u0179': 'Z',  '\\u017b': 'Z', '\\u017d': 'Z',\n  '\\u017a': 'z',  '\\u017c': 'z', '\\u017e': 'z',\n  '\\u0132': 'IJ', '\\u0133': 'ij',\n  '\\u0152': 'Oe', '\\u0153': 'oe',\n  '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n *  the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n  var index = -1,\n      length = array ? array.length : 0;\n\n  if (initAccum && length) {\n    accumulator = array[++index];\n  }\n  while (++index < length) {\n    accumulator = iteratee(accumulator, array[index], index, array);\n  }\n  return accumulator;\n}\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n  return string.split('');\n}\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n  return string.match(reAsciiWord) || [];\n}\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n  return function(key) {\n    return object == null ? undefined : object[key];\n  };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n  return reHasUnicode.test(string);\n}\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n  return reHasUnicodeWord.test(string);\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n  return hasUnicode(string)\n    ? unicodeToArray(string)\n    : asciiToArray(string);\n}\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n  return string.match(reUnicode) || [];\n}\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n  return string.match(reUnicodeWord) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n  var index = -1,\n      length = array.length;\n\n  if (start < 0) {\n    start = -start > length ? 0 : (length + start);\n  }\n  end = end > length ? length : end;\n  if (end < 0) {\n    end += length;\n  }\n  length = start > end ? 0 : ((end - start) >>> 0);\n  start >>>= 0;\n\n  var result = Array(length);\n  while (++index < length) {\n    result[index] = array[index + start];\n  }\n  return result;\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n  var length = array.length;\n  end = end === undefined ? length : end;\n  return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n  return function(string) {\n    string = toString(string);\n\n    var strSymbols = hasUnicode(string)\n      ? stringToArray(string)\n      : undefined;\n\n    var chr = strSymbols\n      ? strSymbols[0]\n      : string.charAt(0);\n\n    var trailing = strSymbols\n      ? castSlice(strSymbols, 1).join('')\n      : string.slice(1);\n\n    return chr[methodName]() + trailing;\n  };\n}\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n  return function(string) {\n    return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n  };\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n  string = toString(string);\n  return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n/**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\nvar startCase = createCompounder(function(result, word, index) {\n  return result + (index ? ' ' : '') + upperFirst(word);\n});\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n  string = toString(string);\n  pattern = guard ? undefined : pattern;\n\n  if (pattern === undefined) {\n    return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n  }\n  return string.match(pattern) || [];\n}\n\nmodule.exports = startCase;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\nimport startCase from 'lodash.startcase';\n\n// Utilities\nimport { classicTheme, getVariationByLocale, storyTheme } from 'common/utils/helpers';\n\n// Components\nimport ProjectMeta from 'project/components/ProjectMeta';\n\nexport const Documents = (props) => {\n  const { documents, t } = props;\n  let documentsInSelectLocale = documents;\n\n  if (!gon.inDefaultLanguage) {\n    documentsInSelectLocale = documents\n      ?.map((document) => {\n        return getVariationByLocale(document.variations, gon.currentLocale, document);\n      })\n      .sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n  }\n\n  const renderDocument = (document) => {\n    const {\n      file: {\n        id,\n        attributes: { filename, fileUrl },\n      },\n    } = document;\n\n    const displayName = startCase(filename.substring(0, filename.lastIndexOf('.')) || filename);\n\n    return (\n      <li className=\"project-documents__item\" key={id}>\n        <a href={fileUrl} className=\"is-secondary-color\">\n          {classicTheme() && <i className=\"fas fa-file\" />}\n          <span>{displayName}</span>\n          {storyTheme() && <i className=\"fas fa-download\" />}\n        </a>\n      </li>\n    );\n  };\n\n  return (\n    <ProjectMeta\n      heading={t('project.supporting_documents_heading')}\n      icon=\"fas fa-file\"\n      className=\"project-documents\"\n      headingClassName=\"project-documents__heading\"\n    >\n      <ul className=\"project-documents__items\">{documentsInSelectLocale.map(renderDocument)}</ul>\n    </ProjectMeta>\n  );\n};\n\nDocuments.propTypes = {\n  documents: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.string,\n      file: PropTypes.shape({\n        id: PropTypes.string,\n        attributes: PropTypes.shape({\n          contentType: PropTypes.string,\n          filename: PropTypes.string,\n          fileUrl: PropTypes.string,\n        }),\n      }),\n      language: PropTypes.string,\n      createdAt: PropTypes.string,\n    })\n  ).isRequired,\n  t: PropTypes.func.isRequired,\n};\n\nexport default withTranslation()(Documents);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\nimport compareDesc from 'date-fns/compareDesc';\nimport parseISO from 'date-fns/parseISO';\n\n// Utilities\nimport { classicTheme, storyTheme } from 'common/utils/helpers';\n\n// Components\nimport SponsorQuote from 'project/components/SponsorQuote';\nimport Phases from 'project/components/Phases';\nimport StoryPhases from 'project/components/StoryPhases';\nimport Announcements from 'project/components/Announcements';\nimport Events from 'project/components/Events';\nimport Documents from 'project/components/Documents';\n\nexport const Sidebar = ({ project, otherAnnouncements, t, match }) => {\n  const { quote, phases, events, documents } = project;\n  const sortedAnnouncements =\n    otherAnnouncements &&\n    otherAnnouncements.sort((first, second) =>\n      compareDesc(parseISO(first.publishedAt), parseISO(second.publishedAt))\n    );\n  const phasesLabel = project.phasesLabel || t('project.project_phase_label');\n\n  return (\n    <>\n      {quote && classicTheme() && <SponsorQuote quote={quote} />}\n      {Boolean(phases?.length) && (\n        <>\n          {classicTheme() && <Phases heading={phasesLabel} phases={phases} />}\n          {storyTheme() && <StoryPhases heading={phasesLabel} phases={phases} />}\n        </>\n      )}\n      {Boolean(otherAnnouncements?.length) && (\n        <Announcements announcements={sortedAnnouncements} match={match} />\n      )}\n      {Boolean(events?.length) && <Events events={events} />}\n      {Boolean(documents?.length) && <Documents documents={documents} />}\n    </>\n  );\n};\n\nSidebar.propTypes = {\n  project: PropTypes.shape({\n    quote: PropTypes.shape({\n      avatarUrls: PropTypes.shape({\n        desktop: PropTypes.string,\n        card: PropTypes.string,\n        mobile: PropTypes.string,\n      }),\n      message: PropTypes.string,\n      name: PropTypes.string,\n      jobTitle: PropTypes.string,\n    }),\n    phases: PropTypes.arrayOf(PropTypes.shape),\n    events: PropTypes.arrayOf(PropTypes.shape),\n    documents: PropTypes.arrayOf(PropTypes.shape),\n    phasesLabel: PropTypes.string,\n  }).isRequired,\n  otherAnnouncements: PropTypes.arrayOf(PropTypes.shape).isRequired,\n  t: PropTypes.func.isRequired,\n  match: PropTypes.objectOf(PropTypes.shape).isRequired,\n};\n\nexport default withTranslation()(Sidebar);\n","/* eslint-disable react/forbid-prop-types */\n// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\n// Utilities\nimport { determineImageSize } from 'common/utils/helpers';\n\n// Components\nimport Header from 'header/components/Header';\nimport Footer from 'common/components/Footer';\nimport SocialFooter from 'common/components/SocialFooter';\nimport Hero from 'project/components/Hero';\nimport ProjectDetail from 'project/components/ProjectDetail';\nimport Sidebar from 'project/components/Sidebar';\nimport PreviewModeBanner from 'common/components/PreviewModeBanner';\n\nconst ProjectContainer = ({ project, otherAnnouncements, t, match }) => (\n  <>\n    {project.meta?.preview && <PreviewModeBanner message={t('project.preview_mode')} />}\n    <div\n      className={classNames('project', 'project--landing', {\n        'project--landing--no-hero': !project.heroImage || !project.heroImage.links.self,\n        'project--preview': project.meta?.preview,\n      })}\n    >\n      <a className=\"skip-main\" href=\"#main\">\n        {t('project.skip_to_main')}\n      </a>\n      <Header project={project} projectHub />\n      <main id=\"main\">\n        <Hero\n          backgroundImageUrl={project.heroImage && determineImageSize(project.heroImage.imageUrls)}\n          backgroundImagePosition={project?.heroImage?.objectPosition || 'center'}\n          title={project.title}\n          subheading={project.subheading}\n        />\n        <section className=\"container\">\n          <div className=\"columns is-desktop project__content content-container\">\n            <div className=\"column is-three-fifths-desktop is-full-tablet project__body\">\n              <ProjectDetail project={project} />\n            </div>\n            <div className=\"column project__sidebar is-two-fifths-desktop\">\n              <Sidebar project={project} otherAnnouncements={otherAnnouncements} match={match} />\n            </div>\n          </div>\n        </section>\n        <SocialFooter project={project} />\n      </main>\n      <Footer />\n    </div>\n  </>\n);\n\nProjectContainer.propTypes = {\n  project: PropTypes.objectOf(PropTypes.any).isRequired,\n  otherAnnouncements: PropTypes.arrayOf(PropTypes.any).isRequired,\n  t: PropTypes.func.isRequired,\n  match: PropTypes.objectOf(PropTypes.any).isRequired,\n};\n\nexport default withTranslation()(ProjectContainer);\n","export default Object.freeze({\n  SINGLE_LIST: 'single_list',\n  CATEGORY_GROUP: 'category_group',\n  CATEGORIES_ONLY: 'categories_only',\n});\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\n// Routes\nimport routes from 'routes';\n\n// Utilities\nimport { populatePath } from 'common/utils/helpers';\n\nconst ProjectTile = (props) => {\n  const { project, showEmptyCategoryTitle } = props;\n  const params = useParams();\n  const { t } = useTranslation();\n\n  const txtViewProject = t('project.view_project');\n  const getProjectUrl = (projectId) => populatePath(routes.PROJECT, { ...params, projectId });\n  const getCategoryTitle = () => {\n    if (project.category?.title) return project.category.title;\n    if (showEmptyCategoryTitle) return <span>&nbsp;</span>;\n    return null;\n  };\n\n  return (\n    <div className=\"project-tile\">\n      <div className=\"project-tile__image\">\n        {project.heroImage?.imageUrls && (\n          <img\n            src={project.heroImage.imageUrls.card}\n            alt={project.heroImage.altText}\n            title={project.heroImage.caption}\n            style={{ objectPosition: project?.heroImage?.objectPosition || 'center' }}\n          />\n        )}\n      </div>\n      <div className=\"project-tile__body\">\n        <div>\n          <div className=\"project-tile__body__category\">{getCategoryTitle()}</div>\n          <div className=\"project-tile__body__info\">\n            <h3\n              className={classNames({\n                'single-line': !!project.teaser,\n              })}\n              id={`projecttile_${project.id}`}\n            >\n              {project.title}\n            </h3>\n            {project.teaser && <p>{project.teaser}</p>}\n          </div>\n        </div>\n        <div className=\"project-tile__body__actions\">\n          <a\n            href={getProjectUrl(project.slug || project.id)}\n            className=\"button is-primary is-primary-background\"\n            aria-labelledby={`projecttile_${project.id}`}\n          >\n            {txtViewProject}\n          </a>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nProjectTile.propTypes = {\n  project: PropTypes.shape({\n    heroImage: PropTypes.shape({\n      imageUrls: PropTypes.shape({\n        card: PropTypes.string,\n      }),\n      altText: PropTypes.string,\n      caption: PropTypes.string,\n      objectPosition: PropTypes.string,\n    }),\n    category: PropTypes.shape({\n      title: PropTypes.string,\n    }),\n    title: PropTypes.string,\n    teaser: PropTypes.string,\n    slug: PropTypes.string,\n    id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n  }).isRequired,\n  showEmptyCategoryTitle: PropTypes.bool,\n};\n\nProjectTile.defaultProps = {\n  showEmptyCategoryTitle: true,\n};\n\nexport default ProjectTile;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Components\nimport ProjectTile from 'project/components/ProjectsContainer/ProjectTile';\n\nconst SingleList = (props) => {\n  const { projects } = props;\n\n  const projectElements = projects.map((project) => (\n    <ProjectTile key={project.id} project={project} />\n  ));\n\n  return (\n    <div className=\"actives-projects__single-list\">\n      <div className=\"projects-tiles active-project-tiles\">{projectElements}</div>\n    </div>\n  );\n};\n\nSingleList.propTypes = {\n  projects: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nexport default SingleList;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { useTranslation } from 'react-i18next';\n\n// Components\nimport ProjectTile from 'project/components/ProjectsContainer/ProjectTile';\n\nconst CategoryGrouping = (props) => {\n  const { projects } = props;\n  const { t } = useTranslation();\n\n  const categories = Object.values(\n    _.keyBy(\n      projects.filter((p) => p.category).map((p) => p.category),\n      (c) => c.id\n    )\n  );\n  const prioritizedCategorySortedByTitle = _.sortBy(\n    categories.filter((c) => c.prioritize),\n    ['title']\n  );\n  const nonPrioritizedCategorySortedByTitle = _.sortBy(\n    categories.filter((c) => !c.prioritize),\n    ['title']\n  );\n\n  const sortedCategories = [\n    ...prioritizedCategorySortedByTitle,\n    ...nonPrioritizedCategorySortedByTitle,\n  ];\n\n  // Handle projects without category\n  sortedCategories.push({\n    title: t('project.other_active_projects'),\n    id: String(null),\n  });\n\n  const projectsByCategoryIds = projects.reduce((obj, project) => {\n    const o = obj;\n    const projectCategoryId = String(project.category ? project.category.id : null);\n\n    if (!o[projectCategoryId]) o[projectCategoryId] = [];\n\n    o[projectCategoryId].push(project);\n\n    return o;\n  }, {});\n\n  // Handle if there is no 'other active project '\n  if (!projectsByCategoryIds[String(null)]) sortedCategories.pop();\n\n  // Handle when there is only 'other active project' on the page,\n  // then hide the redundant title\n  if (sortedCategories.length === 1 && sortedCategories[0].id === String(null)) {\n    sortedCategories[0].title = null;\n  }\n\n  const elements = sortedCategories.map((category) => {\n    const categoryId = String(category.id);\n    const categoryProjects = projectsByCategoryIds[categoryId];\n\n    if (!categoryProjects?.length) return [];\n\n    const categoryProjectElements = categoryProjects.map((categoryProject) => {\n      return (\n        <ProjectTile\n          key={`${categoryId}-${categoryProject.id}`}\n          project={categoryProject}\n          showEmptyCategoryTitle={false}\n        />\n      );\n    });\n\n    return (\n      <div key={`${category.id}-${category.title}`} className=\"category-group\">\n        <h3>{category.title}</h3>\n        <p>{category.description}</p>\n        <div className=\"projects-tiles active-project-tiles\">{categoryProjectElements}</div>\n      </div>\n    );\n  });\n\n  return <div className=\"actives-projects__category-grouping\">{elements}</div>;\n};\n\nCategoryGrouping.propTypes = {\n  projects: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nexport default CategoryGrouping;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Enums\nimport ProjectGrouping from 'project/enums/ProjectGrouping';\n\nimport SingleList from './SingleList';\nimport CategoryGrouping from './CategoryGrouping';\n\nconst ActiveProjects = (props) => {\n  const { projects, grouping } = props;\n\n  let content = null;\n\n  switch (grouping) {\n    case ProjectGrouping.CATEGORY_GROUP:\n      content = <CategoryGrouping projects={projects} />;\n      break;\n    case ProjectGrouping.SINGLE_LIST:\n    default:\n      content = <SingleList projects={projects} />;\n  }\n\n  return <div className=\"actives-projects\">{content}</div>;\n};\n\nActiveProjects.propTypes = {\n  projects: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n  grouping: PropTypes.oneOf(Object.values(ProjectGrouping)).isRequired,\n};\n\nexport default ActiveProjects;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport { useParams } from 'react-router-dom';\n\n// Utils\nimport { populatePath } from 'common/utils/helpers';\n\n// Enums\nimport routes from 'routes';\n\nconst CategoryItem = (props) => {\n  const { category } = props;\n  const { id, heroImage, title, description, slug } = category;\n  const params = useParams();\n  const { t } = useTranslation();\n\n  const getCategoryUrl = (categoryId) =>\n    populatePath(routes.CATEGORY_ALIAS, { ...params, categoryId });\n\n  return (\n    <div className=\"category-item\">\n      <div className=\"category-item__image\">\n        {heroImage?.imageUrls && (\n          <img src={heroImage.imageUrls.card} alt={heroImage.altText} title={heroImage.altText} />\n        )}\n      </div>\n      <div className=\"category-item__body\">\n        <div>\n          <div className=\"category-item__body__info\">\n            <h3\n              className={classNames({\n                'single-line': !!description,\n              })}\n              id={`category-title-${id || slug}`}\n            >\n              {title}\n            </h3>\n            <p>{description}</p>\n          </div>\n        </div>\n        <div className=\"category-item__body__actions\">\n          <a\n            href={getCategoryUrl(slug || id)}\n            className=\"button is-primary is-primary-background\"\n            aria-labelledby={`category-title-${id || slug}`}\n          >\n            {t('project.view_category')}\n          </a>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nCategoryItem.propTypes = {\n  category: PropTypes.shape({\n    id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n    heroImage: PropTypes.shape({\n      imageUrls: PropTypes.shape({\n        card: PropTypes.string,\n      }),\n      altText: PropTypes.string,\n    }),\n    title: PropTypes.string,\n    description: PropTypes.string,\n    slug: PropTypes.string,\n  }).isRequired,\n};\n\nexport default CategoryItem;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\n\nimport CategoryItem from 'project/components/ProjectsContainer/CategoryList/CategoryItem';\n\nconst CategoryList = (props) => {\n  const { categories, projects } = props;\n\n  const categoriesByIds = _.keyBy(\n    categories.map((c) => Object.assign(c, { projectCount: 0 })),\n    'id'\n  );\n\n  const projectsByCategoryIds = _.groupBy(projects, 'categoryId');\n\n  for (const project of projects) {\n    const category = categoriesByIds[project.categoryId];\n    const activeProjectOfCategory = projectsByCategoryIds[project.categoryId];\n    if (!category || !activeProjectOfCategory) continue;\n\n    category.projectCount += activeProjectOfCategory.length;\n  }\n\n  const stuffedCategories = _.sortBy(Object.values(categoriesByIds), ['title']).reduce(\n    (acc, c) => {\n      if (!c.projectCount) return acc;\n\n      if (c.prioritize) {\n        acc.prioritized.push(c);\n        return acc;\n      }\n\n      acc.nonPrioritized.push(c);\n\n      return acc;\n    },\n    {\n      prioritized: [],\n      nonPrioritized: [],\n    }\n  );\n\n  const sortedCategories = [...stuffedCategories.prioritized, ...stuffedCategories.nonPrioritized];\n\n  const items = sortedCategories.map((c) => <CategoryItem key={c.id} category={c} />);\n\n  return <div className=\"category-list\">{items}</div>;\n};\n\nCategoryList.propTypes = {\n  categories: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n  projects: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nexport default CategoryList;\n","// Libraries\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\n// Routes\nimport routes from 'routes';\n\n// Utilities\nimport { populatePath } from 'common/utils/helpers';\n\nconst FinishedProjects = (props) => {\n  const { projects } = props;\n  const params = useParams();\n  const { t } = useTranslation();\n\n  const txtViewProject = t('project.view_project');\n  const getProjectUrl = (projectId) => populatePath(routes.PROJECT, { ...params, projectId });\n\n  const projectElements = useMemo(() => {\n    return projects.map((project) => (\n      <div key={project.id} className=\"project-tile\">\n        <div className=\"project-tile__image\">\n          {project.heroImage?.imageUrls && (\n            <img\n              src={project.heroImage.imageUrls.card}\n              alt={project.heroImage.altText}\n              title={project.heroImage.caption}\n              style={{ objectPosition: project?.heroImage?.objectPosition || 'center' }}\n            />\n          )}\n        </div>\n        <div className=\"project-tile__body\">\n          <div>\n            <div className=\"project-tile__body__category\">\n              {project.category?.title || <span>&nbsp;</span>}\n            </div>\n            <div className=\"project-tile__body__info\">\n              <h3\n                className={classNames({\n                  'single-line': !!project.teaser,\n                })}\n              >\n                {project.title}\n              </h3>\n              {project.teaser && <p>{project.teaser}</p>}\n            </div>\n          </div>\n          <div className=\"project-tile__body__actions\">\n            <a\n              href={getProjectUrl(project.slug || project.id)}\n              className=\"button is-primary is-outlined\"\n            >\n              {txtViewProject}\n            </a>\n          </div>\n        </div>\n      </div>\n    ));\n  }, [projects]);\n\n  return projectElements;\n};\n\nFinishedProjects.propTypes = {\n  projects: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nexport default FinishedProjects;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport isBefore from 'date-fns/isBefore';\nimport { format } from 'date-fns';\nimport { useTranslation } from 'react-i18next';\nimport { useMediaQuery } from 'react-responsive';\nimport { CarouselProvider, Slider, Slide, ButtonBack, ButtonNext } from 'pure-react-carousel';\nimport { useParams } from 'react-router-dom';\n\n// Media Queries\nimport mediaQueries from 'common/utils/mediaQueries';\n\n// Utilities\nimport {\n  populatePath,\n  getNextEngagementUrl,\n  getUtmParams,\n  featureFlagEnabled,\n} from 'common/utils/helpers';\n\n// Routes\nimport routes from 'routes';\n\nconst List = ({ items, projects }) => {\n  const { t, i18n } = useTranslation();\n  const params = useParams();\n  const isDesktop = useMediaQuery({ ...mediaQueries.desktop });\n  const projectsById = _.keyBy(projects, 'id');\n\n  const getProjectUrl = (projectId) => {\n    return populatePath(routes.PROJECT, { ...params, projectId });\n  };\n\n  return items.map((item, index) => {\n    const endTime = item.endTime ? format(new Date(item.endTime), 'yyyy-MM-dd') : null;\n    const activeProject = projectsById[item.projectId];\n\n    const getLink = () => {\n      const projectId =\n        activeProject?.slug || activeProject?.id || item.project?.slug || item.project?.id;\n      const opportunityType = _.snakeCase(item.recordType);\n      const opportunityId = item.slug || item.recordId;\n      const utmParams = getUtmParams();\n      // special case for engagement to go to nextjs app\n      if (opportunityType === 'engagement' && featureFlagEnabled('publishing_ui')) {\n        const engagementUrl = getNextEngagementUrl(i18n.language, item.uuid);\n        return `${engagementUrl}${utmParams}`;\n      }\n      return `/${i18n.language}/projects/${projectId}/${opportunityType}s/${opportunityId}/${utmParams}`;\n    };\n\n    const completeTime = t(\n      `project.${item.minutesToComplete > 1 ? 'approximate_time_other' : 'approximate_time'}`,\n      {\n        count: item.minutesToComplete,\n      }\n    );\n\n    const element = (\n      <div className=\"opportunity\" key={`${item.id}`}>\n        <div className=\"opportunity__label\">\n          <div className=\"tag is-success\">{t('project.open')}</div>\n        </div>\n        <div className=\"opportunity__content\">\n          {activeProject ? (\n            <a\n              href={getProjectUrl(activeProject.slug || activeProject.id)}\n              className=\"project-title\"\n            >\n              {activeProject.title}\n            </a>\n          ) : (\n            <div className=\"project-title\">&nbsp;</div>\n          )}\n          <h3 className=\"is-size-4 title\" id={`opportunity_${item.id}`}>\n            {item.title}\n          </h3>\n          <p>{item.description || item.shortDescription}</p>\n          <div className=\"opportunity__content__datetime is-size-7\">\n            {!!endTime && <span>{`${t('project.closes')}: ${endTime}`}</span>}\n            {!!item.minutesToComplete && (\n              <>\n                {!!endTime && <span>・</span>}\n                <span dangerouslySetInnerHTML={{ __html: completeTime }} />\n              </>\n            )}\n            {!endTime && !item.minutesToComplete && <span>&nbsp;</span>}\n          </div>\n          <div className=\"opportunity__content__action\">\n            <a\n              className=\"button is-success is-small\"\n              href={getLink()}\n              aria-labelledby={`opportunity_${item.id}`}\n            >\n              {t('project.participate_now')}\n            </a>\n          </div>\n        </div>\n      </div>\n    );\n\n    if (!isDesktop) return element;\n\n    return (\n      <Slide key={`${item.type}-${item.id}`} index={index}>\n        {element}\n      </Slide>\n    );\n  });\n};\n\nconst Opportunities = (props) => {\n  const { projects, opportunities } = props;\n  const isDesktop = useMediaQuery({ ...mediaQueries.desktop });\n  const filteredOpportunities = opportunities.filter((item) => item.engagementType !== 'live');\n  const items = filteredOpportunities.sort((a, b) => {\n    if (a.endTime === null && b.endTime === null) {\n      if (isBefore(new Date(a.startTime), new Date(b.startTime))) return 1;\n      if (isBefore(new Date(b.startTime), new Date(a.startTime))) return -1;\n    }\n\n    if (a.endTime === null && b.endTime !== null) return 1;\n    if (b.endTime === null && a.endTime !== null) return -1;\n\n    if (isBefore(new Date(a.endTime), new Date(b.endTime))) return -1;\n    if (isBefore(new Date(b.endTime), new Date(a.endTime))) return 1;\n\n    return 0;\n  });\n\n  const list = <List items={items} projects={projects} />;\n\n  if (!isDesktop) return list;\n  return (\n    <CarouselProvider totalSlides={items.length} visibleSlides={2} isIntrinsicHeight>\n      <Slider>{list}</Slider>\n\n      {items.length > 2 && (\n        <>\n          <ButtonBack className=\"image-gallery__slider-previous button is-primary is-primary-background\">\n            <i className=\"fas fa-angle-left\" />\n          </ButtonBack>\n\n          <ButtonNext className=\"image-gallery__slider-next button is-primary is-primary-background\">\n            <i className=\"fas fa-angle-right\" />\n          </ButtonNext>\n        </>\n      )}\n    </CarouselProvider>\n  );\n};\n\nOpportunities.propTypes = {\n  projects: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n  opportunities: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nexport default Opportunities;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { withTranslation } from 'react-i18next';\nimport { currentLanguage } from 'i18n';\nimport camelCaseKeys from 'camelcase-keys';\nimport _ from 'lodash';\n\n// Components\nimport Header from 'header/components/Header';\nimport Footer from 'common/components/Footer';\nimport SocialShareToolbar from 'common/components/SocialShareToolbar';\nimport SocialFooter from 'common/components/SocialFooter';\nimport ActiveProjects from 'project/components/ProjectsContainer/ActiveProjects';\nimport CategoryList from 'project/components/ProjectsContainer/CategoryList';\nimport FinishedProjects from 'project/components/ProjectsContainer/FinishedProjects';\nimport Opportunities from 'project/components/ProjectsContainer/Opportunities';\nimport NotificationsSignup from 'common/components/NotificationsSignup';\n\n// Utilities\nimport { populatePath, determineImageSize } from 'common/utils/helpers';\n\n// Routes\nimport routes from 'routes';\n\n// Enumerables\nimport ProjectStatus from 'project/enums/ProjectStatus';\nimport ProjectGrouping from 'project/enums/ProjectGrouping';\n\nexport const ProjectsContainer = (props) => {\n  const { projects, categories, opportunities, match, t } = props;\n  const getProjectUrl = (projectId) => populatePath(routes.PROJECT, { ...match.params, projectId });\n\n  const {\n    headline,\n    headlineTranslations,\n    description,\n    descriptionTranslations,\n    heroImageUrl,\n    heroImagePosition,\n    showCallsToAction,\n    projectGrouping,\n    featuredProjectId,\n    facebookUrl,\n    twitterUrl,\n    contactEmail,\n    socialSharing,\n  } = camelCaseKeys(gon.brand, { deep: true });\n\n  const categoriesById = _.keyBy(categories, 'id');\n  for (const p of projects) {\n    if (categoriesById[p.categoryId]) p.category = categoriesById[p.categoryId];\n  }\n  const active = projects.filter(({ status }) => status === ProjectStatus.ACTIVE);\n  const finished = projects.filter(({ status }) => status === ProjectStatus.FINISHED);\n  const featuredIndex = active.findIndex((element) => Number(element.id) === featuredProjectId);\n  const featured = active[featuredIndex];\n  const locale = _.camelCase(currentLanguage || window.gon.defaultLanguage);\n  if (featured) {\n    active.splice(featuredIndex, 1);\n  }\n\n  const heroImage = heroImageUrl ? `url(${heroImageUrl})` : null;\n  const backgroundPosition =\n    heroImagePosition === 'left' || heroImagePosition === 'right' ? heroImagePosition : 'center';\n  const categoriesOnly = projectGrouping === ProjectGrouping.CATEGORIES_ONLY;\n\n  const txtFeaturedProject = t('project.featured_projects');\n  const txtViewProject = t('project.view_project');\n  const txtActiveProjects = t('project.active_projects');\n  const txtFinishedProjects = t('project.finished_projects');\n  const txtOpportunitiesToEngage = t('project.opportunities_to_engage');\n\n  return (\n    <div className=\"has-background-light projects-container\">\n      <div className=\"project-index\">\n        <a className=\"skip-main\" href=\"#main\">\n          {t('project.skip_to_main')}\n        </a>\n        <Header />\n        <main id=\"main\">\n          {/* Headline & welcome message */}\n          <div\n            className=\"content-hero hero is-primary\"\n            style={{ backgroundImage: heroImage, backgroundPosition }}\n          >\n            <div className={heroImage ? 'content-hero__dim' : ''}>\n              <div className=\"content-hero__intro container\">\n                <h1>{(headlineTranslations && headlineTranslations[locale]) || headline}</h1>\n                <div className=\"content-hero__intro-body\">\n                  <p>\n                    {(descriptionTranslations && descriptionTranslations[locale]) || description}\n                  </p>\n                </div>\n              </div>\n            </div>\n          </div>\n\n          {socialSharing && <SocialShareToolbar />}\n\n          {/* Featured project */}\n          {featuredProjectId && featured && (\n            <section className=\"section\" aria-label={txtFeaturedProject}>\n              <div className=\"featured-project container inner\">\n                <div className=\"content\">\n                  <h2>{txtFeaturedProject}</h2>\n                </div>\n\n                <div className=\"featured-project__card\">\n                  <div className=\"featured-project__card__image\">\n                    {featured.heroImage && (\n                      <img\n                        src={determineImageSize(featured.heroImage?.imageUrls)}\n                        alt={featured.heroImage.altText}\n                        title={featured.heroImage?.caption}\n                        style={{ objectPosition: featured?.heroImage?.objectPosition || 'center' }}\n                      />\n                    )}\n                  </div>\n                  <div className=\"featured-project__card__body\">\n                    <div>\n                      <div className=\"featured-project__card__body__category\">\n                        {featured.category?.title}\n                      </div>\n                      <div className=\"featured-project__card__body__info\">\n                        <h3 className=\"title is-primary-color\" id={`featured_${featured.id}`}>\n                          {featured.title}\n                        </h3>\n                        {featured.teaser && <p>{featured.teaser}</p>}\n                      </div>\n                    </div>\n                    <div className=\"featured-project__card__body__action\">\n                      <a\n                        href={getProjectUrl(featured.slug || featured.id)}\n                        className=\"button is-primary is-primary-background\"\n                        aria-labelledby={`featured_${featured.id}`}\n                      >\n                        {txtViewProject}\n                      </a>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </section>\n          )}\n\n          {/* Active projects */}\n          {!!active.length && !categoriesOnly && (\n            <section className=\"section\" aria-label={txtActiveProjects}>\n              <div className=\"container\">\n                <div className=\"content\">\n                  <h2>{txtActiveProjects}</h2>\n                  <div className=\"mt-6\">\n                    <ActiveProjects projects={active} grouping={projectGrouping} />\n                  </div>\n                </div>\n              </div>\n            </section>\n          )}\n\n          {/* Category List */}\n          {!!categories.length && categoriesOnly && (\n            <section className=\"section\" aria-label={t('project.view_category')}>\n              <div className=\"container\">\n                <div className=\"content\">\n                  <div className=\"mt-6\">\n                    <CategoryList categories={categories} projects={projects} />\n                  </div>\n                </div>\n              </div>\n            </section>\n          )}\n\n          {/* Opportunities */}\n          {!!opportunities?.length && showCallsToAction && (\n            <section\n              className=\"section opportunities-container has-background-white\"\n              aria-label={txtOpportunitiesToEngage}\n            >\n              <div className=\"container\">\n                <div className=\"content\">\n                  <h2>{txtOpportunitiesToEngage}</h2>\n                  <div className=\"opportunities\">\n                    <Opportunities projects={projects} opportunities={opportunities} />\n                  </div>\n                </div>\n              </div>\n            </section>\n          )}\n\n          {/* Finished projects */}\n          {!categoriesOnly && !!finished.length && (\n            <section className=\"section\" aria-label={txtFinishedProjects}>\n              <div className=\"container\">\n                <div className=\"content\">\n                  <h2>{txtFinishedProjects}</h2>\n                  <div className=\"projects-tiles finished-project-tiles\">\n                    <FinishedProjects projects={finished} />\n                  </div>\n                </div>\n              </div>\n            </section>\n          )}\n\n          <section className=\"section social-footer\" aria-label={t('project.stay_informed')}>\n            <div className=\"container\">\n              <div className=\"content\">\n                <div className=\"projects-stay-informed\">\n                  <div className=\"has-text-white\">\n                    <h2>\n                      <span className=\"has-text-white\">{t('project.stay_informed')}</span>\n                    </h2>\n                    <p>{t('project.stay_informed_desc')}</p>\n                  </div>\n                  <div>\n                    <NotificationsSignup title=\"\" t={t} />\n                  </div>\n                </div>\n              </div>\n            </div>\n          </section>\n\n          {(facebookUrl || twitterUrl || contactEmail) && (\n            <div className=\"projects-container-footer\">\n              <SocialFooter\n                className=\"has-text-white\"\n                project={{\n                  facebookUrl,\n                  twitterUrl,\n                  contactEmail,\n                }}\n              />\n            </div>\n          )}\n        </main>\n        <Footer />\n      </div>\n    </div>\n  );\n};\n\nProjectsContainer.propTypes = {\n  match: PropTypes.shape({\n    params: PropTypes.shape({\n      locale: PropTypes.string,\n    }),\n  }).isRequired,\n  t: PropTypes.func.isRequired,\n  projects: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n      slug: PropTypes.string,\n      filter: PropTypes.string,\n    })\n  ).isRequired,\n  categories: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n  opportunities: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nexport default withRouter(withTranslation()(ProjectsContainer));\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { withTranslation } from 'react-i18next';\nimport camelCaseKeys from 'camelcase-keys';\n\n// Components\nimport Header from 'header/components/Header';\nimport Footer from 'common/components/Footer';\nimport SocialShareToolbar from 'common/components/SocialShareToolbar';\nimport SocialFooter from 'common/components/SocialFooter';\nimport ActiveProjects from 'project/components/ProjectsContainer/ActiveProjects';\nimport FinishedProjects from 'project/components/ProjectsContainer/FinishedProjects';\nimport Opportunities from 'project/components/ProjectsContainer/Opportunities';\nimport NotificationsSignup from 'common/components/NotificationsSignup';\n\n// Utilities\nimport { populatePath, determineImageSize } from 'common/utils/helpers';\n\n// Routes\nimport routes from 'routes';\n\n// Enumerables\nimport ProjectStatus from 'project/enums/ProjectStatus';\nimport ProjectGrouping from 'project/enums/ProjectGrouping';\n\nexport const CategoryContainer = (props) => {\n  const { projects, category, opportunities, match, t } = props;\n  const getProjectUrl = (projectId) => populatePath(routes.PROJECT, { ...match.params, projectId });\n\n  const {\n    showCallsToAction,\n    featuredProjectId,\n    facebookUrl,\n    twitterUrl,\n    contactEmail,\n    socialSharing,\n  } = camelCaseKeys(gon.brand, { deep: true });\n\n  for (const p of projects) p.category = category;\n  const active = projects.filter(({ status }) => status === ProjectStatus.ACTIVE);\n  const finished = projects.filter(({ status }) => status === ProjectStatus.FINISHED);\n  const featuredIndex = active.findIndex((element) => {\n    return (\n      Number(element.id) === featuredProjectId && String(element.categoryId) === String(category.id)\n    );\n  });\n  const featured = active[featuredIndex];\n  if (featured) {\n    active.splice(featuredIndex, 1);\n  }\n\n  const heroImage = category.heroImage?.imageUrls\n    ? `url(${determineImageSize(category.heroImage.imageUrls)})`\n    : null;\n\n  const txtSkipToMain = t('project.skip_to_main');\n  const txtFeaturedProject = t('project.featured_projects');\n  const txtViewProject = t('project.view_project');\n  const txtActiveProjects = t('project.active_projects');\n  const txtFinishedProjects = t('project.finished_projects');\n  const txtOpportunitiesToEngage = t('project.opportunities_to_engage');\n\n  return (\n    <div className=\"has-background-light projects-container\">\n      <div className=\"project-index\">\n        <a className=\"skip-main\" href=\"#main\">\n          {txtSkipToMain}\n        </a>\n\n        <Header />\n        <main id=\"main\">\n          {/* Headline & welcome message */}\n          <div\n            className=\"content-hero hero is-primary\"\n            style={{\n              backgroundImage: heroImage,\n              backgroundPosition: category?.heroImage?.objectPosition || 'center',\n            }}\n          >\n            <div className={heroImage ? 'content-hero__dim' : ''}>\n              <div className=\"content-hero__intro container\">\n                <h1>{category.title}</h1>\n                <div className=\"content-hero__intro-body\">\n                  <p>{category.description}</p>\n                </div>\n              </div>\n            </div>\n          </div>\n\n          {socialSharing && <SocialShareToolbar />}\n\n          {/* Featured project */}\n          {featuredProjectId && featured && (\n            <section className=\"section\" aria-label={txtFeaturedProject}>\n              <div className=\"featured-project container inner\">\n                <div className=\"content\">\n                  <h2>{txtFeaturedProject}</h2>\n                </div>\n\n                <div className=\"featured-project__card\">\n                  <div className=\"featured-project__card__image\">\n                    {featured.heroImage && (\n                      <img\n                        src={determineImageSize(featured.heroImage?.imageUrls)}\n                        alt={featured.heroImage.altText}\n                        title={featured.heroImage?.caption}\n                        style={{ objectPosition: featured?.heroImage?.objectPosition || 'center' }}\n                      />\n                    )}\n                  </div>\n                  <div className=\"featured-project__card__body\">\n                    <div>\n                      <div className=\"featured-project__card__body__category\">\n                        {featured.category?.title}\n                      </div>\n                      <div className=\"featured-project__card__body__info\">\n                        <h3 className=\"title is-primary-color\" id={`featured_${featured.id}`}>\n                          {featured.title}\n                        </h3>\n                        {featured.teaser && <p>{featured.teaser}</p>}\n                      </div>\n                    </div>\n                    <div className=\"featured-project__card__body__action\">\n                      <a\n                        href={getProjectUrl(featured.slug || featured.id)}\n                        className=\"button is-primary is-primary-background\"\n                        aria-labelledby={`featured_${featured.id}`}\n                      >\n                        {txtViewProject}\n                      </a>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </section>\n          )}\n\n          {/* Active projects */}\n          {!!active.length && (\n            <section className=\"section\" aria-label={txtActiveProjects}>\n              <div className=\"container\">\n                <div className=\"content\">\n                  <h2>{txtActiveProjects}</h2>\n                  <div className=\"mt-6\">\n                    <ActiveProjects projects={active} grouping={ProjectGrouping.SINGLE_LIST} />\n                  </div>\n                </div>\n              </div>\n            </section>\n          )}\n\n          {/* Opportunities */}\n          {!!opportunities?.length && showCallsToAction && (\n            <section\n              className=\"section opportunities-container has-background-white\"\n              aria-label={txtOpportunitiesToEngage}\n            >\n              <div className=\"container\">\n                <div className=\"content\">\n                  <h2>{txtOpportunitiesToEngage}</h2>\n                  <div className=\"opportunities\">\n                    <Opportunities projects={projects} opportunities={opportunities} />\n                  </div>\n                </div>\n              </div>\n            </section>\n          )}\n\n          {/* Finished projects */}\n          {!!finished.length && (\n            <section className=\"section\" aria-label={txtFinishedProjects}>\n              <div className=\"container\">\n                <div className=\"content\">\n                  <h2>{txtFinishedProjects}</h2>\n                  <div className=\"projects-tiles finished-project-tiles\">\n                    <FinishedProjects projects={finished} />\n                  </div>\n                </div>\n              </div>\n            </section>\n          )}\n\n          <section className=\"section social-footer\" aria-label={t('project.stay_informed')}>\n            <div className=\"container\">\n              <div className=\"content\">\n                <div className=\"projects-stay-informed\">\n                  <div className=\"has-text-white\">\n                    <h2>\n                      <span className=\"has-text-white\">{t('project.stay_informed')}</span>\n                    </h2>\n                    <p>{t('project.stay_informed_desc')}</p>\n                  </div>\n                  <div>\n                    <NotificationsSignup title=\"\" t={t} />\n                  </div>\n                </div>\n              </div>\n            </div>\n          </section>\n\n          {(facebookUrl || twitterUrl || contactEmail) && (\n            <div className=\"projects-container-footer\">\n              <SocialFooter\n                className=\"has-text-white\"\n                project={{\n                  facebookUrl,\n                  twitterUrl,\n                  contactEmail,\n                }}\n              />\n            </div>\n          )}\n        </main>\n        <Footer />\n      </div>\n    </div>\n  );\n};\n\nCategoryContainer.propTypes = {\n  match: PropTypes.shape({\n    params: PropTypes.shape({\n      locale: PropTypes.string,\n    }),\n  }).isRequired,\n  t: PropTypes.func.isRequired,\n  projects: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n      slug: PropTypes.string,\n      filter: PropTypes.string,\n    })\n  ).isRequired,\n  category: PropTypes.shape({\n    id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n    title: PropTypes.string,\n    description: PropTypes.string,\n    heroImage: PropTypes.shape({\n      imageUrls: PropTypes.shape({}),\n      objectPosition: PropTypes.string,\n    }),\n  }).isRequired,\n  opportunities: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n  i18n: PropTypes.shape({\n    language: PropTypes.string,\n    languages: PropTypes.arrayOf(PropTypes.string),\n  }).isRequired,\n};\n\nexport default withRouter(withTranslation()(CategoryContainer));\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\n\n// Routes\nimport Routes from 'routes';\n\n// Utilities\nimport { populatePath, renderMarkdown } from 'common/utils/helpers';\n\nconst DiscussionTopicHeader = ({\n  title,\n  description,\n  match,\n  backgroundImageUrl,\n  backgroundImagePosition,\n  projectPublic,\n  single,\n}) => {\n  const { t } = useTranslation();\n\n  return (\n    <div\n      className={classNames('discussion-topic-header', {\n        'discussion-topic-header--image': backgroundImageUrl,\n        'discussion-topic-header--single': single,\n      })}\n      style={{\n        backgroundImage: backgroundImageUrl && `url(\"${backgroundImageUrl}\")`,\n        backgroundPosition: `${backgroundImagePosition || 'center'}`,\n      }}\n      role=\"banner\"\n      aria-label={title}\n    >\n      {backgroundImageUrl && <div className=\"discussion-topic-header--dim\" />}\n      {projectPublic && (\n        <div className=\"container inner\">\n          <a href={populatePath(Routes.PROJECT, match.params)} className=\"back-link\">\n            {t('ideation.project_page')}\n          </a>\n        </div>\n      )}\n      <div className=\"discussion-topic-header__inner container inner inner--narrow\">\n        <h1 className=\"discussion-topic-header__title title is-1 has-text-white\">{title}</h1>\n        {description && (\n          <div className=\"discussion-topic-header__content has-text-white has-text-weight-bold\">\n            <h2\n              className=\"introduction markdown\"\n              dangerouslySetInnerHTML={{ __html: renderMarkdown(description) }}\n            />\n          </div>\n        )}\n      </div>\n    </div>\n  );\n};\n\nDiscussionTopicHeader.propTypes = {\n  title: PropTypes.string.isRequired,\n  description: PropTypes.string,\n  backgroundImageUrl: PropTypes.string,\n  backgroundImagePosition: PropTypes.string,\n  projectPublic: PropTypes.bool.isRequired,\n  match: PropTypes.shape({\n    params: PropTypes.objectOf(PropTypes.string).isRequired,\n  }).isRequired,\n  single: PropTypes.bool,\n};\n\nDiscussionTopicHeader.defaultProps = {\n  backgroundImageUrl: '',\n  backgroundImagePosition: 'center',\n  description: '',\n  single: null,\n};\n\nexport default withRouter(DiscussionTopicHeader);\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\n// Components\nimport NotificationsSignup from 'common/components/NotificationsSignup';\n\nconst StayInformed = (props) => {\n  const { project } = props;\n  const { t } = useTranslation();\n\n  if (!project?.notificationSignUpEnabled) return false;\n\n  return (\n    <div className=\"signup mb-0\">\n      <div className=\"signup__body\">\n        <h2 className=\"signup__title title is-primary-color\">{t('project.stay_informed')}</h2>\n        <p className=\"signup__message\">{t('project.get_notified_message')}</p>\n      </div>\n      <NotificationsSignup title={project.title} />\n    </div>\n  );\n};\n\nStayInformed.propTypes = {\n  project: PropTypes.shape({\n    title: PropTypes.string.isRequired,\n    notificationSignUpEnabled: PropTypes.bool,\n  }).isRequired,\n};\n\nexport default StayInformed;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n// Utilities\nimport { renderMarkdown } from 'common/utils/helpers';\n\nconst CommunityRules = (props) => {\n  const { rules } = props;\n\n  if (!rules) {\n    return false;\n  }\n\n  return (\n    <div className=\"community-rules\">\n      <p dangerouslySetInnerHTML={{ __html: renderMarkdown(rules) }} />\n    </div>\n  );\n};\n\nCommunityRules.propTypes = {\n  rules: PropTypes.string,\n};\n\nCommunityRules.defaultProps = {\n  rules: '',\n};\n\nexport default CommunityRules;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport camelcase from 'lodash.camelcase';\nimport { useTranslation } from 'react-i18next';\n\n// I18n\nimport { currentLanguage } from 'i18n';\n\n// Utils\nimport { determineImageSize, isEmbedded } from 'common/utils/helpers';\nimport { userAuthenticated } from 'ideation/utils/userAuthenticate';\nimport { logParticipantSubmission } from 'engagement/utils/analytics';\n\n// Emuns\nimport DiscussableTypes from 'common/enums/DiscussableTypes';\nimport PublicStatus from 'common/enums/PublicStatus';\n\n// Components\nimport Notification from 'common/components/Notification';\nimport Header from 'header/components/Header';\nimport Footer from 'common/components/Footer';\nimport SocialFooter from 'common/components/SocialFooter';\nimport DiscussionTopicHeader from 'discussionTopic/components/DiscussionTopicHeader';\nimport StayInformed from 'discussionTopic/components/StayInformed';\nimport CommunityRules from 'discussionTopic/components/CommunityRules';\nimport LoginSection from 'discussion/components/LoginSection';\nimport ProfileSection from 'discussion/components/ProfileSection';\nimport DiscussionBoard from 'discussion/components/DiscussionBoard';\n\nconst DiscussionTopic = ({ discussionTopic }) => {\n  const { t } = useTranslation();\n  const language = camelcase(currentLanguage);\n\n  const {\n    id,\n    approvedAndModeratedCount,\n    heroImage,\n    project,\n    publicStatus,\n    titleTranslations,\n    longDescriptionTranslations,\n    communityRulesTranslations,\n  } = discussionTopic;\n\n  const title = titleTranslations?.[language] || discussionTopic.title;\n  const longDescription =\n    longDescriptionTranslations?.[language] || discussionTopic.longDescription;\n  const communityRules = communityRulesTranslations?.[language] || discussionTopic.communityRules;\n\n  const backgroundImageUrl =\n    heroImage?.imageUrls && encodeURI(determineImageSize(heroImage.imageUrls));\n  const projectPublic = project.public;\n  const isLoggedIn = userAuthenticated();\n  const disabled = publicStatus !== PublicStatus.OPEN;\n\n  return (\n    <div className=\"discussion-topic\">\n      {!isEmbedded() && (\n        <>\n          <Header ideation discussionTopic={discussionTopic} showAuth />\n          <DiscussionTopicHeader\n            title={title}\n            description={longDescription}\n            backgroundImageUrl={backgroundImageUrl}\n            backgroundImagePosition={heroImage?.objectPosition || 'center'}\n            projectPublic={projectPublic}\n          />\n        </>\n      )}\n      <main id=\"main\">\n        <section className=\"discussion-topic__container container inner inner--narrow\">\n          <div className=\"discussion-topic__content content-container\">\n            {isLoggedIn ? <ProfileSection /> : <LoginSection />}\n            {isLoggedIn && <CommunityRules rules={communityRules} />}\n            {disabled && (\n              <div className=\"mb-6\">\n                <Notification className=\"idea-submission-notification\" isClosed noDismiss>\n                  {t('ideation.discussion_topic_closed_notification')}\n                </Notification>\n              </div>\n            )}\n            <DiscussionBoard\n              discussableType={DiscussableTypes.DiscussionTopic}\n              discussableId={id}\n              isLoggedIn={isLoggedIn}\n              disabled={disabled}\n              approvedAndModeratedCount={approvedAndModeratedCount}\n              onRootCommentSubmit={() =>\n                logParticipantSubmission('Discussion Topic', id, project.id)\n              }\n            />\n            {!isEmbedded() && <StayInformed project={project} />}\n          </div>\n        </section>\n      </main>\n      {!isEmbedded() && (\n        <>\n          <SocialFooter project={project} />\n          <Footer />\n        </>\n      )}\n    </div>\n  );\n};\n\nDiscussionTopic.propTypes = {\n  discussionTopic: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n    projectId: PropTypes.number.isRequired,\n    startTime: PropTypes.string.isRequired,\n    endTime: PropTypes.string,\n    title: PropTypes.string.isRequired,\n    approvedAndModeratedCount: PropTypes.number,\n    longDescription: PropTypes.string,\n    shortDescription: PropTypes.string.isRequired,\n    publicStatus: PropTypes.string.isRequired,\n    premoderation: PropTypes.string.isRequired,\n    communityRules: PropTypes.string,\n    communityRulesTranslations: PropTypes.shape({}),\n    titleTranslations: PropTypes.shape({}),\n    shortDescriptionTranslations: PropTypes.shape({}),\n    longDescriptionTranslations: PropTypes.shape({}),\n    heroImage: PropTypes.shape({\n      imageUrls: PropTypes.shape({}),\n      objectPosition: PropTypes.string,\n    }),\n    project: PropTypes.shape({\n      id: PropTypes.string.isRequired,\n      public: PropTypes.bool.isRequired,\n    }).isRequired,\n  }).isRequired,\n};\n\nexport default DiscussionTopic;\n","// Libraries\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport useSWR from 'swr';\n\n// Api\nimport { getRequest } from 'api/v3';\nimport { getDiscussionTopicUrl } from 'api/v3/private';\n\n// Components\nimport DiscussionTopic from 'discussionTopic/components/DiscussionTopic';\n\nconst DiscussionTopicContainer = (props) => {\n  const { discussionTopic } = props;\n  const discussionTopicId = discussionTopic.id;\n  const { data, error } = useSWR(getDiscussionTopicUrl(discussionTopicId), getRequest);\n\n  if (error || !data?.deserialized) return false;\n\n  return (\n    <div className=\"discussion-topic-container\">\n      <DiscussionTopic discussionTopic={data.deserialized} />\n    </div>\n  );\n};\n\nDiscussionTopicContainer.propTypes = {\n  discussionTopic: PropTypes.shape({\n    id: PropTypes.string.isRequired,\n  }).isRequired,\n};\n\nexport default DiscussionTopicContainer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { useTranslation, withTranslation } from 'react-i18next';\nimport Header from 'header/components/Header';\nimport { populatePath } from 'common/utils/helpers';\nimport routes from 'routes';\n\n// Define the Sitemap component\nconst Sitemap = (props) => {\n  const { projects, categories, match } = props;\n  const getProjectUrl = (projectId) => populatePath(routes.PROJECT, { ...match.params, projectId });\n  const getCategoryUrl = (categoryId) =>\n    populatePath(routes.CATEGORY_ALIAS, { ...match.params, categoryId });\n\n  const { t } = useTranslation();\n\n  return (\n    <>\n      <Header />\n      <main className=\"sitemap-main\">\n        <h1>\n          <a href=\"/\">{t('common.home')}</a>\n        </h1>\n\n        {categories.length > 0 && (\n          <>\n            <h2>{t('common.categories')}</h2>\n            <ul>\n              {categories.map((category) => (\n                <li key={category.id}>\n                  <a href={`${getCategoryUrl(category.slug)}`}>{category.title}</a>\n                </li>\n              ))}\n            </ul>\n          </>\n        )}\n\n        {projects.length > 0 && (\n          <>\n            <h2>{t('common.projects')}</h2>\n            <ul>\n              {projects.map((project) => (\n                <li key={project.id}>\n                  <a href={`${getProjectUrl(project.slug)}`}>{project.title}</a>\n                </li>\n              ))}\n            </ul>\n          </>\n        )}\n      </main>\n    </>\n  );\n};\n\nSitemap.propTypes = {\n  projects: PropTypes.arrayOf(\n    PropTypes.shape({\n      id: PropTypes.number.isRequired,\n      name: PropTypes.string.isRequired,\n      slug: PropTypes.string.isRequired,\n    })\n  ).isRequired,\n  categories: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n  match: PropTypes.shape({\n    params: PropTypes.shape({\n      locale: PropTypes.string.isRequired,\n    }),\n  }).isRequired,\n};\n\n// Export the Sitemap component\nexport default withRouter(withTranslation()(Sitemap));\n","// TODO: This component needs to be heavily refactored, splitting up the\n// root component, the routing, state connection, dom parsing logic, etc\n\n// Libraries\nimport 'core-js/stable';\nimport 'regenerator-runtime/runtime';\nimport 'url-polyfill';\nimport 'raf/polyfill';\nimport 'proxy-polyfill/proxy.min';\nimport amplitude from 'amplitude-js';\nimport React, { Suspense } from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter, Route, Switch, Redirect } from 'react-router-dom';\nimport { I18nextProvider } from 'react-i18next';\nimport { CookiesProvider } from 'react-cookie';\nimport * as Sentry from '@sentry/browser';\nimport { ExtraErrorData, HttpClient } from '@sentry/integrations';\nimport { Provider } from 'react-redux';\nimport { Toaster } from 'react-hot-toast';\n\n// State\nimport store from 'state/store';\n\n// Context\nimport ModalProvider from 'contexts/Modal/ModalProvider';\n\n// i18n\nimport i18n from 'i18n';\n\n// Utilities\nimport {\n  jsonaDeserialize,\n  populatePath,\n  featureFlagEnabled,\n  rtlLanguage,\n} from 'common/utils/helpers';\nimport { logAmplitudeEvent } from 'common/utils/analytics';\nimport { setupEmbeddedContent } from 'common/utils/embed';\nimport { useGoogleTracking } from 'common/hooks/useGoogleTracking';\n\n// Routes\nimport Routes from 'routes';\n\n// Components\nimport ScrollToTop from 'common/components/ScrollToTop';\nimport NotFoundPageContainer from 'common/components/NotFoundPageContainer';\nimport IdeaBoardContainer from 'ideation/components/ideaBoard/IdeaBoardContainer';\nimport IdeaContainer from 'ideation/components/idea/IdeaContainer';\nimport EngagementContainer from 'engagement/components/EngagementContainer';\nimport AnnouncementContainer from 'announcement/components/AnnouncementContainer';\nimport ProjectContainer from 'project/components/ProjectContainer';\nimport ProjectsContainer from 'project/components/ProjectsContainer';\nimport CategoryContainer from 'project/components/CategoryContainer';\nimport DiscussionTopicContainer from 'discussionTopic/components/DiscussionTopicContainer';\nimport Sitemap from 'sitemap/components/Sitemap';\nimport camelcaseKeys from 'camelcase-keys';\n\nconst envTest = /^v[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/;\nlet viteEnv = 'production';\n\nif (!envTest.test(import.meta.env.VITE_CIVIL_SPACE_VERSION)) {\n  viteEnv = 'staging-uat';\n}\n\nif (import.meta.env.DEV) {\n  viteEnv = 'development';\n}\n\nSentry.init({\n  dsn: import.meta.env.VITE_SENTRY_DSN,\n  release: `rails-${import.meta.env.VITE_CIVIL_SPACE_VERSION}`,\n  environment: viteEnv,\n  integrations: [new ExtraErrorData(), new HttpClient(), new Sentry.BrowserTracing()],\n  sendDefaultPii: true,\n  tracesSampleRate: 0.05,\n});\n\namplitude.getInstance().init(window.gon?.amplitudeApiKey, undefined, {\n  batchEvents: true,\n  eventUploadPeriodMillis: 100,\n});\nwindow.amplitudeInstance = amplitude.getInstance();\n\n// Log events triggered from rails\nif (window.gon?.analyticsEvents) window.gon.analyticsEvents.forEach(logAmplitudeEvent);\n\nconst el = document.querySelector('#react-app');\nlet deserializedData = {};\nlet data = {};\n\nconst titleCase = (str) =>\n  str\n    .split('_')\n    .map((word) => word[0].toUpperCase() + word.slice(1).toLowerCase())\n    .join('');\n\nconst buildSortObject = (item) => ({\n  id: Number(item.id),\n  type: titleCase(item.type),\n});\n\n// Sort all associated records together\nconst sortAssociatedRecords = (sortOrder, records) => {\n  if (!sortOrder) return records;\n  return records.sort((first, second) => {\n    const firstObject = buildSortObject(first);\n    const secondObject = buildSortObject(second);\n    return (\n      sortOrder.findIndex((item) => item.id === firstObject.id && item.type === firstObject.type) -\n      sortOrder.findIndex((item) => item.id === secondObject.id && item.type === secondObject.type)\n    );\n  });\n};\n\nif (el.getAttribute('data')) {\n  data = JSON.parse(el.getAttribute('data'));\n\n  if (data) {\n    switch (data.type) {\n      case 'home': // For home page\n        deserializedData = {\n          projects: jsonaDeserialize(data.projects),\n          categories: jsonaDeserialize(data.categories),\n          opportunities: jsonaDeserialize(data.opportunities),\n        };\n        break;\n      case 'categoryHome': // For category home page\n        deserializedData = {\n          category: jsonaDeserialize(data.category),\n          projects: jsonaDeserialize(data.projects),\n          opportunities: jsonaDeserialize(data.opportunities),\n        };\n        break;\n      case 'sitemap': // For sitemap'\n        deserializedData = {\n          projects: jsonaDeserialize(data.projects),\n          categories: jsonaDeserialize(data.categories),\n        };\n        break;\n      default:\n        deserializedData = jsonaDeserialize(data);\n\n        if (deserializedData.type === 'project' || deserializedData.type === 'projects') {\n          const sortArray = [...deserializedData.publicEngagements];\n          if (deserializedData.publicIdeaBoards) {\n            sortArray.push(...deserializedData.publicIdeaBoards);\n          }\n          if (deserializedData.publicDiscussionTopics) {\n            sortArray.push(...deserializedData.publicDiscussionTopics);\n          }\n\n          deserializedData.sortedAssociatedRecords = sortAssociatedRecords(\n            data.data?.meta?.associations_sort_order,\n            sortArray\n          );\n        }\n    }\n  }\n}\n\nlet otherAnnouncements = [];\nif (el.getAttribute('other_announcements_data')) {\n  const value = JSON.parse(el.getAttribute('other_announcements_data'))?.data;\n  const camelCased = camelcaseKeys(value, { deep: true });\n  otherAnnouncements = camelCased;\n}\n\nif (gon.theme) {\n  document.documentElement.classList.add(`theme-${gon.theme}`);\n}\n\nif (rtlLanguage()) {\n  document.documentElement.classList.add('rtl');\n}\n\nsetupEmbeddedContent();\n\nconst App = () => {\n  useGoogleTracking(window.googleTrackingIds);\n\n  return (\n    <div className=\"app\">\n      <Switch>\n        <Redirect\n          strict\n          exact\n          from={Routes.ROOT}\n          to={populatePath(Routes.LOCALE, { locale: window.gon.currentLocale })}\n        />\n        <Route\n          strict\n          path={Routes.ENGAGEMENT}\n          render={(props) => (\n            <EngagementContainer\n              {...props}\n              engagement={data}\n              preview={Boolean(data?.meta?.preview)}\n            />\n          )}\n        />\n        {featureFlagEnabled('premium_tier') && (\n          <Route strict path={Routes.IDEA_BOARD} component={IdeaBoardContainer} />\n        )}\n        {featureFlagEnabled('premium_tier') && (\n          <Route\n            strict\n            path={Routes.IDEA}\n            render={(props) => <IdeaContainer {...props} idea={deserializedData} />}\n          />\n        )}\n        <Route\n          strict\n          path={Routes.ANNOUNCEMENT}\n          render={(props) => (\n            <AnnouncementContainer\n              {...props}\n              announcement={deserializedData}\n              otherAnnouncements={otherAnnouncements}\n            />\n          )}\n        />\n        <Route\n          strict\n          path={Routes.DISCUSSION_TOPIC}\n          render={(props) => (\n            <DiscussionTopicContainer {...props} discussionTopic={deserializedData} />\n          )}\n        />\n        <Redirect exact strict push from={Routes.PROJECT_PREVIEW} to={Routes.PROJECT} />\n        <Route\n          strict\n          path={Routes.PROJECT}\n          render={(props) => (\n            <ProjectContainer\n              {...props}\n              project={deserializedData}\n              otherAnnouncements={otherAnnouncements}\n            />\n          )}\n        />\n        <Route\n          strict\n          exact\n          path={Routes.CATEGORY}\n          render={(props) => <CategoryContainer {...props} {...deserializedData} />}\n        />\n        <Route\n          strict\n          exact\n          path={Routes.CATEGORY_ALIAS}\n          render={(props) => <CategoryContainer {...props} {...deserializedData} />}\n        />\n        <Route\n          strict\n          exact\n          path={Routes.SITEMAP}\n          render={(props) => <Sitemap {...props} {...deserializedData} />}\n        />\n        <Route\n          strict\n          exact\n          path={Routes.LOCALE}\n          render={(props) => <ProjectsContainer {...props} {...deserializedData} />}\n        />\n        <Route component={NotFoundPageContainer} />\n      </Switch>\n      <Toaster />\n    </div>\n  );\n};\n\nReactDOM.render(\n  <Provider store={store}>\n    <I18nextProvider i18n={i18n}>\n      <CookiesProvider>\n        <ModalProvider>\n          <BrowserRouter>\n            <ScrollToTop>\n              <Suspense fallback={null}>\n                <App />\n              </Suspense>\n            </ScrollToTop>\n          </BrowserRouter>\n        </ModalProvider>\n      </CookiesProvider>\n    </I18nextProvider>\n  </Provider>,\n  el\n);\n"],"names":["React.createContext","this","extendStatics","b","d","p","__","_super","CookiesProvider","props","_this","React.createElement","React.Component","name","email","projectId","body","id","include","t","s","i","n","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","_","f","y","g","verb","v","op","noop","useEffect","useLayoutEffect","arg","type","constructor","isDate","index","keys","key","args","infoKey","useSWR","middleware","_i","_a","fn","config","uses","getKey","useSWRNext","rerender","useState","didMountRef","useRef","dataRef","cache","initialSize","_b","revalidateAll","_c","persistSize","_d","revalidateFirstPage","_e","revalidateOnMount","firstPageKey","contextCacheKey","pageSizeCacheKey","resolvePageSize","useCallback","cachedPageSize","lastPageSizeRef","shouldRevalidateOnMount","swr","forceRevalidateAll","originalData","data","pageSize","previousPageData","pageKey","pageArgs","pageData","shouldFetchPage","mutate","shouldRevalidate","resolvePagesFromCache","setSize","size","func","wait","immediate","timeout","context","later","callNow","_len","transcriptParts","_key","command","match","optional","first","second","firstBigrams","bigram","count","intersectionSize","_bigram","_count","_constants","require$$0","interimTranscript","finalTranscript","require$$1","state","action","exports","_default","NativeSpeechRecognition","isNative","SpeechRecognition","_isAndroid","_interopRequireDefault","_utils","_NativeSpeechRecognition","require$$2","obj","asyncGeneratorStep","gen","_next","_throw","info","error","_asyncToGenerator","self","err","_classCallCheck","instance","Constructor","_defineProperties","target","descriptor","_createClass","protoProps","staticProps","RecognitionManager","browserSupportsRecogniser","callbacks","listening","onListeningChange","isMicrophoneAvailable","_this2","onMicrophoneAvailabilityChange","_this3","onTranscriptChange","_this4","onClearTranscript","browserSupportsSpeechRecognitionChange","_this5","_this5$subscribers$id","onBrowserSupportsSpeechRecognitionChange","onBrowserSupportsContinuousListeningChange","disconnectType","event","_ref","results","resultIndex","currentIndex","isDuplicateResult","newFinalTranscript","_startListening","_callee","_ref2","_ref2$continuous","continuous","language","isContinuousChanged","isLanguageChanged","_args","_context","startListening","_abortListening","_callee2","_this6","_context2","abortListening","_stopListening","_callee3","_this7","_context3","stopListening","_start","_callee4","_context4","start","_react","_actions","_reducers","require$$3","_RecognitionManager","require$$4","require$$5","require$$6","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","_arrayLikeToArray","_typeof","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","o","minLen","len","arr2","_arr","_n","_s","_browserSupportsSpeechRecognition","_browserSupportsContinuousListening","recognitionManager","useSpeechRecognition","_ref$transcribing","transcribing","_ref$clearTranscriptO","clearTranscriptOnListen","_ref$commands","commands","_useState","_useState2","_useState3","_useState4","browserSupportsSpeechRecognition","setBrowserSupportsSpeechRecognition","_useState5","_useState6","browserSupportsContinuousListening","setBrowserSupportsContinuousListening","_useReducer","_useReducer2","_useReducer2$","dispatch","_useState7","_useState8","setListening","_useState9","_useState10","setMicrophoneAvailable","commandsRef","dispatchClearTranscript","resetTranscript","testFuzzyMatch","input","fuzzyMatchingThreshold","commandToString","commandWithoutSpecials","howSimilar","testMatch","pattern","matchCommands","newInterimTranscript","callback","_ref2$matchInterim","matchInterim","_ref2$isFuzzyMatch","isFuzzyMatch","_ref2$fuzzyMatchingTh","_ref2$bestMatchOnly","bestMatchOnly","subcommands","subcommand","x","a","_results$","_command","_command2","_commandWithoutSpecials","_howSimilar","_command3","parameters","handleTranscriptChange","handleClearTranscript","transcript","PolyfillSpeechRecognition","browserSupportsPolyfill","_ref3","_SpeechRecognition","_interopRequireWildcard","_getRequireWildcardCache","newObj","hasPropertyDescriptor","desc","hideModal","PropTypes","message","className","checked","options","initialValue","onChange","setState","checkboxOnChange","currentState","label","projectTitle","onSuccess","params","setError","register","control","handleSubmit","formState","errors","typeField","consentField","onSubmit","formValues","rules.email","onClose","title","success","setSuccess","hotKeyListener","Success","showModal","setShowModal","openModal","closeModal","validations","disabled","TextInput","renderHelpItems","placeholder","minLength","currentLength","maxLength","accept","file","onError","bodyError","isString","field","sorts","watchedValues","ideaBoardId","allowDescription","allowImage","searchValue","resetSearchValues","setSort","defaultError","setDefaultError","watch","isSubmitting","errorValues","forceSubmission","submitForm","description","image","idea","formErrors","formError","isOpen","backgroundImageUrl","backgroundImagePosition","single","children","projectPublic","volume","searchIcon","speechRecognitionEnabled","keyboardSubmit","Keys","publicStatus","reset","searchSubmitted","handleSortClick","activeTab","sortTabs","authenticated","redirectUrl","handleVote","voteType","votedByUser","voteCount","voteTooltip","setDisabled","closed","handleClick","ideaRoute","userHasCommented","reasons","COMMENT_OFFENSIVE","COMMENT_SPAM","COMMENT_OTHER","flaggedByUser","handleFlagIdea","setDisplayMenu","menu","hideMenu","displayMenu","flagAction","displayCommentCount","onIdeaUpdate","displayFlagMenu","setDisplayFlagMenu","displayFlagWidget","upvote","updatedIdea","downvote","flag","reason","PENDING","APPROVED","status","getWarningMsg","renderBody","renderFooter","mutateIdea","page","pageIndex","ideaIndex","forwardRef","isInfo","isSuccess","isDanger","isClosed","noDismiss","ref","dependency","submissionStatus","ideation","notificationRef","userStatus","clearStatus","ideaBoard","resetForm","setValue","sort","sorts.MOST_POPULAR","setSearchValue","setVolume","displayCreateIdeaModal","setDisplayCreateIdeaModal","camelcase","project","useSWRInfinite","resetSearch","cachedData","renderIdeas","Spinner","ideasFetched","frameRequestId","stream","onStart","source","analyser","frequencyData","calculateVolume","squaredSum","sum","frame","onEnd","track","recognition","IdeaBoardHeader","values","sortTab","NotificationsSignup","isReply","onCancel","toast","discussableType","discussableId","parentId","loading","setLoading","comment","setComment","forceSubmit","setForceSubmit","submitComment","response","requireModeration","toxicityScore","toastObj","errorMsg","msg","cancelReply","onCommentChange","discussionId","discussionLikeId","discussion","discussionReportId","role","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","diff","userDiscussionReportId","discussionReportsCount","reportDiscussionAction","commentId","setIsOpen","showFlaggedMessage","ZCDPopup","discussionAuthorId","approved","discussionLikesCount","username","userRole","createdAt","level","isLoggedIn","replyCount","userDiscussionLikeId","disableActions","discussionStates","onStateChange","onCommentSubmit","onCreateLike","onRemoveLike","onCreateReport","showReply","setShowReply","showLoadMoreBtn","setShowLoadMoreBtn","replyPages","maxLevel","componentClassName","loadMoreReplies","formattedCreatedAt","onCommentSubmitted","replyCommentElements","useMemo","replyPage","likeDiscussionAction","reasonId","showReplyInput","displayBody","shouldDisplayActions","defaultSorting","onSortingChange","ariaLabel","sorting","setSorting","eumns.sorts","option","approvedAndModeratedCount","setDiscussionStates","commentPages","DiscussionTopic","changeDiscussionState","states","commentElements","commentPage","c","changeSorting","sortingOption","commentCountSuffix","onRootCommentSubmit","clearDiscussionCaches","mutations","token","jwtDecode","ideaId","_f","_g","_h","r","propTypes","_excluded","l","_excluded$1","s$1","_excluded$2","_excluded$3","u","_excluded$4","_excluded$5","_excluded2","h","_excluded2$1","Image","Image$1","S","m","T","k","C","O","Slider","E","M","w","R","Component","__publicField","createRef","prevCurrentSlide","currentSlide","offset","previousThumbnailRef","moved","thumbnailOffset","nextThumbnailRef","prevProps","images","thumbnailSrc","Dot","ButtonBack","ButtonNext","src","Slide","Thumbnails","media","imageUrls","ImageGallery","content","video","mediaInSelectedLocale","videoInSelectedLocale","validationType","characterCountMax","inputFormId","showCharacterCount","question","currentQuestionValues","dispatchUpdateQuestionValue","questionId","dispatchDebounced","debounce","getInputChangeHandler","inputId","inputValue","renderInput","format","InputComponent","displayData","inputs","questionValue","currentInputId","currentInputValue","initialTextValue","newQuestionValue","inputIds","memo","lastOptionId","selectedOptionIds","textChoiceOptionId","textChoiceValue","newValues","accumulator","optionId","textChoiceIndex","textChoiceOption","choicesLimit","lastInputId","CheckboxSelectInput","_React$Component","Transition","parentGroup","appear","initialStatus","prevState","nextIn","_proto","nextStatus","exit","enter","mounting","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","nextState","active","handler","node","doesNotHaveTimeoutOrListener","maybeNextCallback","_this$props","childProps","_objectWithoutPropertiesLoose","mapFn","mapper","child","isValidElement","Children","prev","next","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","prop","onExited","cloneElement","nextProps","prevChildMapping","nextChildMapping","hasPrev","hasNext","prevChild","isLeaving","defaultProps","TransitionGroup","handleExited","_assertThisInitialized","firstRender","currentChildMapping","_extends","childFactory","contextValue","WrappedComponent","_objectWithoutProperties","Tag","_ref$duration","duration","inProp","nodeRef","transition","innerProps","_objectSpread","_in","_onExited","width","setWidth","el","rafId","getStyleFromStatus","component","restProps","multiProps","isMulti","hasValue","_props$selectProps","components","controlShouldRenderValue","cssDisplayFlex","setCssDisplayFlex","removingValue","setRemovingValue","childMapper","React.isValidElement","React.cloneElement","newInnerProps","newProps","React.Children","externalComponents","Input","MultiValue","Placeholder","SingleValue","ValueContainer","rest","questionValues","currentSectionPosition","questionValuesBySection","questionValuesByQuestion","selectedInputs","selected","setSelected","onChangeMulti","selectedOptions","meta","removedValue","onChangeSingle","selectedOption","makeAnimated","row","htmlId","rows","modifier","weights","sortBy","weight","popupVisible","position","onDragStart","onDragEnd","onMouseOver","onMouseOut","onClick","onPopupClose","onDelete","LeafletMarker","visible","useMediaQuery","map","markers","mapProps","lat","lng","marker","markerUuid","uuid","minLat","minLng","maxLat","maxLng","popup","removed","guid","initialZoom","tooltipPosition","tooltipVisible","bounds","initialPosition","Marker","Tooltip","onPopupOpen","onMouseMove","inputsMap","centre","zoom","validMarkers","getOnChangeHandler","markersMap","newValue","entry","lastMarkerUuid","ownKeys","sym","defineProperty","condition","argIndex","Manager","_defineProperty","collection","index1","index2","array","from","to","keysToOmit","acc","styles","pre","translate","min","max","stringValue","element","style","prefix","Component$$1","componentName","scrollDelta","boundingClientRect","parent","nodeOffset","newIndex","prevIndex","oldIndex","lockOffset","height","offsetX","offsetY","unit","invariant","offsets","_offsets","minLockOffset","maxLockOffset","computedStyle","overflowRegex","properties","property","selector","fields","clonedNode","clonedFields","destCtx","AutoScroller","container","onScrollCallback","minTranslate","maxTranslate","direction","speed","acceleration","_this$container","scrollTop","scrollLeft","scrollHeight","scrollWidth","clientHeight","clientWidth","isTop","isBottom","isLeft","isRight","interactiveElements","finalizer","createContext","_class","_temp","_inherits","WithSortableContainer","_possibleConstructorReturn","_getPrototypeOf","distance","shouldCancelStart","useDragHandle","_node$sortableInfo","_this$props2","pressThreshold","delta","combinedDelta","_temp6","_temp7","_node","margin","gridGap","containerBoundingRect","dimensions","_getHelperDimensions","_collection","_axis","_isKeySorting","_hideSortableGhost","_useWindowAsScrollContainer","containerTop","containerLeft","containerWidth","containerHeight","containerBottom","containerRight","_helperClass","eventName","_onSortStart","_this$props3","updateBeforeSortStart","_temp8","_temp9","_wasThrown","_result","onSortMove","_this$props4","hideSortableGhost","onSortEnd","_this$manager","isKeySorting","nodes","_node2","disableAutoscroll","scrollX","scrollY","keyCode","_this$props5","_this$props5$keyCodes","customKeyCodes","keyCodes","_node$sortableInfo2","shift","lastIndex","targetIndex","targetNode","targetBoundingClientRect","targetTranslate","targetPosition","shouldAdjustForSize","sizeAdjustment","manager","useWindowAsScrollContainer","containerNode","contentWindow","_this$props6","lockAxis","lockToContainerEdges","transitionDuration","_this$props6$keyboard","keyboardSortingTransitionDuration","ignoreTransition","_getLockPixelOffsets","_getLockPixelOffsets2","minOffset","maxOffset","_this$props7","onSortOver","containerScrollDelta","windowScrollDelta","sortingOffset","_node3","mustShiftBackward","mustShiftForward","edgeOffset","nextNode","prevNode","getContainer","findDOMNode","createElement","helperContainer","WithSortableElement","_getPrototypeOf2","item","addKeyDownListener","removeKeyDownListener","SortableElement","PureComponent","setItemHeights","heights","focusedIndex","items","onSortEndKeyboard","itemHeights","SortableItem","SortableContainer","imageUrl","firstIndex","orderedItems","MobileSortableItem","initialItems","setItems","isMobile","newItems","renderContent","SortableList","expanded","inputIndex","SortableAccessibility","CRS","padding","imageLoaded","amount","clickHandler","displayMediaModal","newSelectedOptions","setSelectedOptionIds","handleChange","newOptionIds","units","currentBudgetUsed","calculateProgress","remainingBudget","budgetAsNumber","unitLabel","budgetUsed","BudgetInput","BudgetBox","decimals","onBeforeInput","decimalDigits","rangeStart","rangeEnd","onChangeHandler","thumbClassName","trackClassName","ReactSlider","defaultValue","sliderPosition","stepSize","onChangeDebounced","updateValue","getSliderValue","middleValue","renderLabel","module","_propTypes","enterModule","Star","starProps","nameMap","_default2","reactHotLoader","leaveModule","excluded","sourceSymbolKeys","sourceKeys","object","enumerableOnly","symbols","call","subClass","superClass","rating","total","interactive","_this$state","isRating","isActive","willBeActive","elementRef","onKeyDown","scale","setRating","onRate","budget","capType","currentValues","used","remaining","deficit","progress","comparisonValueLabel","alt","hasError","setHasError","onErrorHandler","comparisonValue","unitLayout","change","changePercentage","maxInputValue","minValue","maxValue","fixed","setExpanded","sanitizedValue","payload","percent","chartData","colorIndex","supportText","sanitizedInputs","maxValueRaw","initialSubmit","SingleSelectQuestion","MultiSelectQuestion","GeolocationQuestion","ImageQuestion","BudgetQuestion","QuestionComponent","questionErrors","characterCountMin","mapStateToProps","mapDispatchToProps","ConnectedComponent","clearRef","block","saveRef","QuestionContainer","photoUrl","fingerprintConsent","consentDigitalFingerprint","enableCustomizeDigitalFingerprintText","customizeDigitalFingerprintHeadingTranslations","customizeDigitalFingerprintDescriptionTranslations","customizeHeading","customizeDescription","blockId","blockRef","blocks","isFirstSection","introEnabled","quote","currentSection","previousPosition","previousQuestionErrors","questionBlock","top","isLastSection","collectDigitalFingerprint","heroBackgroundImage","blocksToRender","skippedIntro","shouldShowShowCollectDigitalFingerprintOnTop","shouldShowShowCollectDigitalFingerprintAtBottom","currentProgress","onConfirm","button","primary","outlined","ariaLabelledBy","icon","deserializedEngagement","projectHubEnabled","history","previousSectionPosition","nextSectionPosition","previewMode","responseHistory","quitConfirmationModalVisible","setQuitConfirmationModalVisible","exitLinkContainer","setExitLinkContainer","shouldRenderExitLink","handlePreviousClick","handleNextClick","goToNextSection","validationErrors","QuitConfirmationModal","createPortal","VisitHubLink","startTime","endTime","heroImage","url","minutesToComplete","buttonLabel","hasHeroImage","DateInfo","displayEngagementReport","engagementType","engagement","slug","engagementReport","engagementReportUrl","engagementUrl","utmQueryString","engagemenUrlWithUtm","CallToActionTile","dataUrl","setDataUrl","QRCode","nextEngagement","keepSubmission","renderNextEngagementColumn","getContent","EngagementTile","renderInvolvementColumn","dispatchUpdateCurrentPosition","persistContext","ProgressBarContainer","Section","dispatchClearUserData","setProject","fetchedProject","handleRestartClick","persistedState","statusPath","persistedStatus","dispatchSetPersistedEngagement","stateHydrated","skipSections","submission","SectionsContainer","QuitPageContainer","ClosedPageContainer","ErrorPageContainer","projectLink","subtitle","date","backToProjectText","projectUpdateText","announcement","notificationSignUpEnabled","itemsToShow","showing","spanText","showMoreButtonText","showMetaInfo","shortDescription","titleTranslations","shortDescriptionTranslations","publishedAt","locale","announcementTitle","announcementDescription","announcements","sortedAnnouncements","AnnouncementListItem","otherAnnouncements","heroImageInSelectedLocale","subheading","ideaBoardUrl","ideaBoardUrlWithUtm","discussionTopic","discussionTopicUrl","discussionTopicUrlWithUtm","headshotImg","welcomeText","introduction","supportingImage","sortedAssociatedRecords","category","categoryTitle","inDefaultLanguage","supportingImageInSelectedLocale","IdeaBoardTile","DiscussionTopicTile","heading","headingClassName","phases","renderPhase","phase","timeFrame","link","startDate","endDate","isCurrent","isComplete","phasesToRender","lastCompleteIndex","barStep","barInnerHeight","events","global","iteratee","initAccum","length","string","Symbol","end","methodName","strSymbols","chr","trailing","word","guard","documents","documentsInSelectLocale","document","renderDocument","filename","fileUrl","displayName","startCase","phasesLabel","Phases","StoryPhases","Announcements","Events","Documents","Sidebar","showEmptyCategoryTitle","txtViewProject","getProjectUrl","routes","getCategoryTitle","projects","projectElements","categories","prioritizedCategorySortedByTitle","nonPrioritizedCategorySortedByTitle","sortedCategories","projectsByCategoryIds","projectCategoryId","elements","categoryId","categoryProjects","categoryProjectElements","categoryProject","grouping","getCategoryUrl","categoriesByIds","activeProjectOfCategory","stuffedCategories","i18n","isDesktop","projectsById","activeProject","getLink","opportunityType","opportunityId","utmParams","completeTime","opportunities","list","headline","headlineTranslations","descriptionTranslations","heroImageUrl","heroImagePosition","showCallsToAction","projectGrouping","featuredProjectId","facebookUrl","twitterUrl","contactEmail","socialSharing","camelCaseKeys","categoriesById","finished","featuredIndex","featured","backgroundPosition","categoriesOnly","txtFeaturedProject","txtActiveProjects","txtFinishedProjects","txtOpportunitiesToEngage","txtSkipToMain","rules","longDescriptionTranslations","communityRulesTranslations","longDescription","communityRules","DiscussionTopicHeader","discussionTopicId","Sentry.init","Sentry.BrowserTracing","amplitude","str","sortOrder","records","firstObject","secondObject","sortArray","EngagementContainer","IdeaContainer","AnnouncementContainer","ProjectContainer","CategoryContainer","Sitemap","ProjectsContainer","Toaster","Provider","Suspense"],"mappings":"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"}