{"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't worry - it wasn't your fault. We'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> </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> </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\"> </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> </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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"}