{"version":3,"file":"static/chunks/58149f3d-12f520891586f651.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@sm/question-ui/respondent-survey.js","webpack://_N_E/"],"sourcesContent":["import React__default, { useLayoutEffect, useEffect, useRef, useState, useCallback, useMemo, forwardRef, useContext, createContext, useImperativeHandle } from 'react';\nimport { c as classNames, E as ErrorBoundary, F as FixedSizeList, N as Ne, d as de, Y as Ye, P as Pe, u as useSortable, C as CSS, K as KeyboardCode, a as PointerSensor$1, b as KeyboardSensor$1, e as useSensors, f as useSensor, D as DndContext, g as closestCenter, S as SortableContext, v as verticalListSortingStrategy, h as DragOverlay, i as arrayMove } from './vendor-3a2071be.js';\nimport { createUseStyles, useTheme } from 'react-jss';\nimport { sanitizeString } from '@sm/utils';\nimport { uniqueId, visuallyHidden as visuallyHidden$1 } from '@wds/utils';\nimport ReactDOM from 'react-dom';\nimport { defineMessages, t, L10NContext, T } from '@sm/intl';\nimport getFontWeights from '@sm/webassets/SurveyTheme/getFontWeights';\nimport { c as contrastColor } from './theme-22bba55b.js';\nimport isDark from '@sm/webassets/SurveyTheme/isDark';\n\nconst useStyles$10 = createUseStyles({\n rowStyles: {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'center',\n },\n});\n\nfunction Row({ id, className, children, ...props }) {\n const { rowStyles } = useStyles$10();\n return (React__default.createElement(\"div\", { id: id, className: classNames(rowStyles, className), ...props }, children));\n}\n\nconst useStyles$$ = createUseStyles((theme) => ({\n tooltip: {\n 'span[data-tooltip] &': {\n display: 'none',\n },\n [`@media (min-width: ${theme.breakpoints?.md.min ?? '769px'})`]: {\n 'span[data-tooltip]:hover &, span[data-tooltip]:focus &': {\n display: 'inline-block',\n },\n },\n position: 'absolute',\n left: ({ center }) => center,\n bottom: 20,\n width: 275,\n transform: 'translate(-50%, -5px)',\n textAlign: 'center',\n zIndex: 12,\n fontSize: 13,\n '&:after': {\n position: 'absolute',\n bottom: -4,\n left: '50%',\n width: 10,\n height: 10,\n backgroundColor: 'white',\n content: '\"\"',\n marginLeft: -5,\n transform: 'rotate(45deg)',\n boxShadow: [[3, 5, 5, 'rgb(0 0 0 / 0.07)']],\n zIndex: 13,\n },\n },\n tooltipBody: {\n display: 'inline-block',\n maxWidth: 275,\n color: 'black',\n fontWeight: 300,\n fontFamily: theme.fontFamily,\n fontStyle: 'normal',\n boxShadow: [[0, 2, 10, 0, 'rgb(0 0 0 / 0.14)']],\n background: 'white',\n padding: [[12, 16]],\n lineHeight: 1.4,\n borderRadius: 2,\n textAlign: 'left',\n },\n}));\n\nconst defaultSelectors = [\n 'a[href]',\n 'button',\n 'textarea',\n 'input:not([type=\"hidden\"])',\n 'select',\n 'details',\n '[tabindex]:not([tabindex=\"-1\"])',\n];\nconst useFocusTrap = ({ selectors = defaultSelectors, } = {}) => {\n const focusRef = React__default.useRef(null);\n const [focusableEls, setEls] = React__default.useState([]);\n React__default.useEffect(() => {\n if (focusRef.current) {\n const els = Array.from(focusRef.current.querySelectorAll(selectors.join(',')));\n setEls(els);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focusRef]);\n function handleFocus(e) {\n if (focusRef.current) {\n const focusableElements = focusableEls;\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n if (e.shiftKey) {\n if (document.activeElement === firstElement) {\n lastElement.focus();\n e.preventDefault();\n }\n }\n else if (document.activeElement === lastElement) {\n firstElement.focus();\n e.preventDefault();\n }\n }\n }\n React__default.useEffect(() => {\n const handleKeyDown = (e) => {\n if (e.key === 'Tab') {\n handleFocus(e);\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n });\n return focusRef;\n};\n\nconst useStyles$_ = createUseStyles((theme) => ({\n modalOverlay: {\n zIndex: 999,\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n background: 'rgba(0,0,0,0.6)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-end',\n },\n modal: {\n position: 'relative',\n width: '85vw',\n minHeight: '20vw',\n marginBottom: 20,\n background: 'white',\n borderRadius: 2,\n },\n closeBtn: {\n position: 'absolute',\n cursor: 'pointer',\n background: 'transparent',\n right: 0,\n border: 0,\n padding: 8,\n marginTop: 0,\n color: 'black',\n zIndex: 105,\n },\n tooltipText: {\n color: theme.questionBody?.color || '#333E48',\n fontFamily: theme.fontFamily,\n fontSize: 13,\n fontWeight: 400,\n lineHeight: '1.4',\n padding: [28, 12, 16],\n },\n}));\n\nconst COPY$h = defineMessages({\n CLOSE_MODAL: {\n id: 'Modal.CloseModal',\n defaultMessage: 'Close tooltip',\n description: '[Type: label][Vis: Med] - close button text',\n },\n});\nfunction Modal({ tooltip, closeModal }) {\n const { modalOverlay, closeBtn, modal, tooltipText } = useStyles$_();\n const closeRef = React__default.useRef(null);\n const tooltipId = uniqueId('tooltip-modal');\n const focusRef = useFocusTrap();\n const handleClick = (e) => {\n // click on button or overlay should close modal\n e.stopPropagation();\n if (e.currentTarget === e.target) {\n closeModal();\n }\n };\n React__default.useEffect(() => {\n // listen for ESC to close modal\n const handleKeydown = (e) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n closeModal();\n }\n };\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n };\n }, [closeModal]);\n React__default.useEffect(() => {\n closeRef.current?.focus();\n }, []);\n return (React__default.createElement(\"div\", { className: modalOverlay, onClick: handleClick, \"aria-hidden\": \"true\" },\n React__default.createElement(\"div\", { ref: focusRef, className: modal, role: \"dialog\", \"aria-modal\": \"true\", \"aria-describedby\": tooltipId },\n React__default.createElement(\"button\", { type: \"button\", className: closeBtn, ref: closeRef, onClick: handleClick, \"aria-label\": t(COPY$h.CLOSE_MODAL) }, \"\\u00D7\"),\n React__default.createElement(\"p\", { id: tooltipId, className: tooltipText }, tooltip))));\n}\n\n/** Displays a tooltip on hover for large screens and a modal on click for small screens */\nconst Tooltip = ({ container, className, id = '' }) => {\n /** container center position to display tooltip */\n const center = container.offsetWidth / 2;\n const text = container.getAttribute('data-tooltip') ?? '';\n const theme = useTheme();\n const { tooltip, tooltipBody } = useStyles$$({ center });\n const [showModal, setShowModal] = React__default.useState(false);\n const [mode, setMode] = React__default.useState('TOOLTIP');\n const closeModal = () => {\n setShowModal(false);\n container.focus();\n };\n React__default.useEffect(() => {\n container.setAttribute('role', 'tooltip');\n // make tooltip anchor focusable\n if (!container.hasAttribute('tabIndex')) {\n container.setAttribute('tabIndex', '0');\n }\n // opens modal if matches small screen breakpoint\n const openModal = () => {\n const mql = window.matchMedia(`(max-width: ${theme?.breakpoints?.md.min ?? '769px'})`);\n if (mql.matches) {\n setMode('MODAL');\n setShowModal(true);\n }\n else {\n setMode('TOOLTIP');\n }\n };\n const handleClick = () => {\n openModal();\n };\n const handleKeydown = (e) => {\n if (e.code === 'Enter' || e.code === 'Space') {\n e.preventDefault();\n e.stopPropagation();\n openModal();\n }\n };\n // listen for click, ENTER or SPACE to open modal\n container.addEventListener('click', handleClick);\n container.addEventListener('keydown', handleKeydown);\n return () => {\n container.removeEventListener('click', handleClick);\n container.removeEventListener('keydown', handleKeydown);\n };\n }, [container, theme]);\n const modalEl = showModal ? (React__default.createElement(Modal, { tooltip: text, closeModal: closeModal })) : null;\n const tooltipEl = (React__default.createElement(\"div\", { className: classNames(tooltip, className) },\n React__default.createElement(\"span\", { id: id, className: tooltipBody, \"aria-hidden\": \"true\" }, text)));\n const child = mode === 'MODAL' ? modalEl : tooltipEl;\n const containerEl = mode === 'MODAL' ? document.body : container;\n return ReactDOM.createPortal(child, containerEl);\n};\n\nconst listSpacing = {\n margin: [16, 0],\n padding: [0, 0, 0, 40],\n};\nconst mediaReset = {\n border: 0,\n maxWidth: '100%',\n};\nconst useStyles$Z = createUseStyles({\n richTextContent: {\n // Typography\n '& a': {\n // Links are not themed by default. Users must select a link color in the editor\n color: 'blue',\n textDecoration: 'underline',\n '&:hover': {\n cursor: 'pointer',\n },\n '&:focus': {\n outline: 'currentColor auto 1px',\n },\n },\n '& ol': {\n ...listSpacing,\n listStyleType: 'decimal',\n },\n '& ul': {\n ...listSpacing,\n listStyle: 'disc outside none',\n '& ul li': {\n listStyle: 'circle',\n },\n },\n '& p': {\n margin: [13, 0],\n },\n '& b': {\n fontWeight: 'bold',\n },\n '& strong': {\n fontWeight: 'bold',\n },\n '& em': {\n fontStyle: 'italic',\n },\n '& i': {\n fontStyle: 'italic',\n },\n '& big': {\n fontSize: 'larger',\n },\n '& small': {\n fontSize: 'smaller',\n },\n '& sup': {\n fontSize: '75%',\n lineHeight: 0,\n position: 'relative',\n top: '-0.5em',\n verticalAlign: 'baseline',\n },\n // Media embeds\n '& iframe': mediaReset,\n '& img': {\n ...mediaReset,\n height: 'auto',\n '-ms-interpolation-mode': 'bicubic',\n },\n '& span[data-tooltip]': {\n position: 'relative',\n display: 'inline',\n borderBottom: [[1, 'dashed']],\n textDecoration: 'inherit',\n cursor: 'pointer',\n },\n },\n});\n\n// Support iframe video embeds and their matching attributes\nconst sanitizeOptions = {\n ADD_TAGS: ['iframe'],\n ADD_ATTR: [\n 'target',\n 'allow',\n 'allowfullscreen',\n 'frameborder',\n 'sandbox',\n 'scrolling',\n ],\n};\nfunction RichText({ id: elementId, element: Element = 'div', text, className, ...containerProps }) {\n const { richTextContent } = useStyles$Z();\n const [tooltipNodes, setTooltipNodes] = React__default.useState([]);\n const tooltipRef = React__default.useRef(null);\n React__default.useEffect(() => {\n if (tooltipRef?.current) {\n const el = tooltipRef?.current;\n setTooltipNodes(Array.from(el.querySelectorAll('[data-tooltip]')));\n }\n }, []);\n return (React__default.createElement(React__default.Fragment, null,\n React__default.createElement(Element, { id: elementId, className: classNames(richTextContent, className), dangerouslySetInnerHTML: {\n __html: sanitizeString(text, sanitizeOptions),\n }, ref: tooltipRef, translate: \"no\", ...containerProps }),\n tooltipNodes.map((container) => {\n const id = uniqueId('rich-text-tooltip');\n container.setAttribute('aria-describedby', id);\n return React__default.createElement(Tooltip, { key: id, container: container, id: id });\n })));\n}\n\nconst useStyles$Y = createUseStyles((theme) => ({\n wdsIcons: ({ color, size }) => {\n const fontSize = size\n ? { fontSize: theme.iconSize[size] }\n : { fontSize: 'inherit' };\n const chosenColor = \n // @ts-expect-error Fallback styles are acceptable\n theme.palette?.text[color] ||\n theme.palette?.[color]?.main ||\n 'currentColor';\n return {\n ...fontSize,\n width: '1em',\n height: '1em',\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'center',\n fill: chosenColor,\n };\n },\n}));\n\n// https://reactjs.org/docs/higher-order-components.html#convention-wrap-the-display-name-for-easy-debugging\nconst getDisplayName = (Component) => Component.displayName || Component.name || 'Component';\nfunction withIcon(Component) {\n function WithIcon({ color, title, size, ...rest }) {\n const classes = useStyles$Y({ color, size });\n return (React__default.createElement(\"svg\", { className: classes.wdsIcons, viewBox: \"0 0 16 16\", preserveAspectRatio: \"xMidYMid\", \"aria-label\": title, role: title ? 'img' : 'presentation', ...rest },\n React__default.createElement(Component, null)));\n }\n WithIcon.displayName = `WithIcon(${getDisplayName(Component)})`;\n WithIcon.getOriginalComponent = () => Component;\n return WithIcon;\n}\n\nconst useSurveyIconStyles = createUseStyles({\n svgContainer: {\n display: 'inline-block',\n width: '1em',\n height: '1em',\n },\n});\n\nlet instance = 0;\nfunction withSvgIcon(Component, displayName = 'SvgElement') {\n function SvgIcon({ id, 'aria-labelledby': ariaLabelledBy, title, viewBox = '0 0 16 16', className, ...props }) {\n instance += 1;\n const styles = useSurveyIconStyles();\n const hasTitle = !!title && !ariaLabelledBy;\n const iconTitleId = id ? `${id}-icon-title` : `icon-title-${instance}`;\n return (React__default.createElement(\"svg\", { className: classNames(styles.svgContainer, className), viewBox: viewBox, preserveAspectRatio: \"xMidYMid\", \"aria-hidden\": hasTitle ? undefined : true, \"aria-labelledby\": hasTitle ? iconTitleId : ariaLabelledBy, role: hasTitle ? 'img' : undefined, focusable: \"false\", ...props, \"data-testid\": displayName },\n hasTitle && React__default.createElement(\"title\", { id: iconTitleId }, title),\n React__default.createElement(Component, null)));\n }\n SvgIcon.displayName = displayName;\n return SvgIcon;\n}\n\nfunction DocumentXIconPath() {\n return (React__default.createElement(\"path\", { d: \"m5.94.005 8.012.012C14.53.018 15 .487 15 1.067V14.95c0 .58-.47 1.05-1.05 1.05H2.05C1.47 16 1 15.53 1 14.95V4.94L5.94.004zM7 1.505V4.95c0 .541-.41.987-.936 1.044L5.95 6H2.5v8.5h11V1.514L7 1.505zM6.557 7.53 8 8.973 9.443 7.53a.765.765 0 0 1 1.083 1.082l-1.444 1.443 1.444 1.444a.765.765 0 0 1-1.083 1.082L8 11.138 6.557 12.58A.765.765 0 1 1 5.474 11.5l1.444-1.444-1.444-1.443A.765.765 0 1 1 6.557 7.53zM5.5 2.563 3.561 4.5H5.5V2.562z\" }));\n}\nvar IconDocumentX = withIcon(DocumentXIconPath);\n\nconst useStyles$X = createUseStyles((theme) => {\n return {\n fallbackComponent: {\n fontFamily: theme.questionBody?.fontFamily ?? {},\n color: theme.questionColor,\n border: `1px solid ${theme.questionColor}`,\n borderRadius: '5px',\n width: '100%',\n height: '100%',\n minHeight: '220px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n '& svg': {\n fill: theme.questionColor,\n },\n },\n errorMessage: {\n marginLeft: `8px`, // equivalent to wrench theme.spacing[2]\n },\n };\n});\n\nconst COPY$g = defineMessages({\n ERROR: {\n id: 'FallbackComponent.ERROR',\n defaultMessage: 'Error loading question',\n description: '[Type: label][Vis: high] - error message indicating a question could not be loaded',\n },\n});\nfunction FallbackComponent() {\n const { fallbackComponent, errorMessage } = useStyles$X();\n return (React__default.createElement(\"div\", { className: fallbackComponent },\n React__default.createElement(IconDocumentX, null),\n React__default.createElement(\"p\", { className: errorMessage }, t(COPY$g.ERROR))));\n}\n\nconst withErrorBoundary = (Component) => {\n const displayName = Component.displayName || Component.name || 'Component';\n function ComponentWithErrorBoundary(props) {\n return (React__default.createElement(ErrorBoundary, { FallbackComponent: FallbackComponent },\n React__default.createElement(Component, { ...props })));\n }\n ComponentWithErrorBoundary.displayName = `withErrorBoundary(${displayName})`;\n return ComponentWithErrorBoundary;\n};\n\nconst createFieldId = (questionId) => `question-field-${questionId}`;\nconst createLegendId = (questionId) => `question-title-legend-${questionId}`;\nconst createErrorRowId = (questionId) => `error-row-${questionId}`;\nconst createErrorId = (questionId) => `${questionId}-validation-message`;\nconst stripHTML = (str) => {\n const ref = document.createElement('div');\n ref.innerHTML = str;\n return ref.textContent || ref.innerText || '';\n};\n\n/**\n * Hook to split question-choices by type and filter for visibility\n */\nfunction useQuestionChoices(choices = [], columns = []) {\n const options = choices.filter((c) => !!c && c.visible);\n const columnOptions = columns.filter((c) => !!c && c.visible);\n return {\n options,\n /** Standard column options (Matrix) */\n columnOptions,\n /** Standard answer options */\n sortableOptions: options.filter((c) => !c.type),\n /** None-Of-The-Above (NOTA) option */\n notaOption: options.find((c) => c.type === 'NOTA'),\n /** Other answer option */\n otherOption: options.find((c) => c.type === 'ANSWER'),\n /** Other comment option - One comment for the question */\n commentOption: options.find((c) => c.type === 'COMMENT'),\n /** Other comment option - One comment per row (e.g. for Matrix) */\n commentColumnOption: options.find((c) => c.type === 'COMMENT_COLUMN'),\n };\n}\n\nconst useStyles$W = createUseStyles((theme) => {\n return {\n button: {\n color: theme.nextButton.color,\n backgroundColor: theme.nextButton.backgroundColor,\n fontFamily: theme.questionBody.fontFamily ?? {},\n fontSize: 15,\n border: [1, 'solid', 'transparent'],\n borderRadius: 2,\n padding: [1, 6],\n maxWidth: '100%',\n minWidth: 60,\n minHeight: 40,\n cursor: 'pointer',\n overflowWrap: 'break-word',\n transition: `all .2s linear`,\n '&:focus, &:hover': {\n outlineOffset: 5,\n outline: `1px solid ${theme.answerColor}`,\n // Safari seems to have an outline bug, may not render without boxshadow\n boxShadow: '0 0 4px transparent',\n },\n },\n };\n});\n\nconst COPY$f = defineMessages({\n OK_LABEL: {\n id: 'Button.OK_LABEL',\n defaultMessage: 'OK',\n description: '[Type: button][Vis: high] - question ok label',\n },\n});\n// This might need to be a prop later once confirmed\nconst MAX_LENGTH = 20;\nfunction Button({ text = t(COPY$f.OK_LABEL), type = 'button', className, ...props }) {\n const { button } = useStyles$W();\n const slicedText = text.length <= MAX_LENGTH ? text : text.slice(0, MAX_LENGTH);\n return (\n // eslint-disable-next-line react/button-has-type\n React__default.createElement(\"button\", { className: classNames(button, className), type: type, ...props }, slicedText));\n}\n\n/*eslint spaced-comment: [\"error\", \"never\", { \"exceptions\": [\"NOSONAR\"] }] */\n/**\n * SSR Safe version of useLayoutEffect\n * @see https://code.corp.surveymonkey.com/webplatform/smweb/blob/master/apps/contentweb/src/app/pages/MRX/helpers/useIsomorphicLayoutEffect.js\n *\n * Note: `NOSONAR` is used to bypass a `minor:code-smell` error that states `createElement` is deprecated.\n * The eslint rule above disables the spaced comments to use NOSONAR as stated in the docs.\n */\nconst useSSRSafeLayoutEffect = typeof window !== 'undefined' &&\n typeof window?.document?.createElement !== 'undefined' //NOSONAR\n ? useLayoutEffect\n : useEffect;\n\n/** Referentially stable empty function\n *\n * e.g. as default or placeholder */\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst EmptyFn = () => { };\n\n/* eslint-disable no-param-reassign, no-plusplus */\n/**\n * @name EasingFunctions- Useful easing equations\n * @comment only considering the t value for the range [0, 1] => [0, 1]\n */\nconst easingFunctions = {\n /** @comment linear - no easing, no acceleration */\n linear: (t) => t,\n /** @comment easeInQuad - accelerating from zero velocity */\n easeInQuad: (t) => t * t,\n /** @comment easeOutQuad - decelerating to zero velocity */\n easeOutQuad: (t) => t * (2 - t),\n /** @comment easeInOutQuad - acceleration until halfway, then deceleration */\n easeInOutQuad: (t) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t),\n /** @comment easeInCubic - accelerating from zero velocity */\n easeInCubic: (t) => t * t * t,\n /** @comment easeOutCubic - decelerating to zero velocity */\n easeOutCubic: (t) => --t * t * t + 1,\n /** @comment easeInOutCubic - acceleration until halfway, then deceleration */\n easeInOutCubic: (t) => t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n /** @comment easeInQuart - accelerating from zero velocity */\n easeInQuart: (t) => t * t * t * t,\n /** @comment easeOutQuart - decelerating to zero velocity */\n easeOutQuart: (t) => 1 - --t * t * t * t,\n /** @comment easeInOutQuart - acceleration until halfway, then deceleration */\n easeInOutQuart: (t) => t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t,\n /** @comment easeInQuint - accelerating from zero velocity */\n easeInQuint: (t) => t * t * t * t * t,\n /** @comment easeOutQuint - decelerating to zero velocity */\n easeOutQuint: (t) => 1 + --t * t * t * t * t,\n /** @comment easeInOutQuint - acceleration until halfway, then deceleration */\n easeInOutQuint: (t) => t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t,\n};\n/**\n * Given a start/end point of a scroll and time elapsed, calculate the scroll position we should be at\n */\nfunction getValue(start, end, elapsed, duration, easingType = 'linear') {\n if (elapsed > duration) {\n return end;\n }\n const easing = typeof easingType === 'string' ? easingFunctions[easingType] : easingType;\n return start + (end - start) * easing(elapsed / duration);\n}\n/**\n * Smoothly animate between two values\n */\nfunction animate({ fromValue, toValue, onStart, onUpdate, onComplete, duration = 600, delay = 0, easingType = 'easeOutQuart', }) {\n const startTime = performance.now() + delay;\n const tick = () => {\n const elapsed = performance.now() - startTime;\n const time = getValue(fromValue, toValue, elapsed, duration, easingType);\n const callback = elapsed <= duration ? tick : onComplete ?? EmptyFn;\n const updateAnimation = () => {\n onUpdate(time, callback);\n };\n window.requestAnimationFrame(updateAnimation);\n };\n onStart?.();\n if (delay > 0) {\n setTimeout(() => {\n tick();\n }, delay);\n }\n else {\n tick();\n }\n}\n\nconst useStyles$V = createUseStyles({\n paddingBox: ({ padding, width }) => {\n return {\n paddingTop: padding?.top || 0,\n paddingBottom: padding?.bottom || 0,\n paddingLeft: padding?.left || 0,\n paddingRight: padding?.right || 0,\n width: width\n ? `${width.width}${width.format === 'PERCENT' ? '%' : 'px'}`\n : '100%',\n maxWidth: '100%',\n };\n },\n});\n\nfunction QuestionSpacing({ padding, width, children, ...props }) {\n const { paddingBox } = useStyles$V({ padding, width });\n return (React__default.createElement(\"div\", { className: paddingBox, \"data-testid\": \"QuestionSpacing__paddingBox\", ...props }, children));\n}\n\n/**\n * Hook that calls the provided callback function when the ref element is blurred,\n * only if the next focus is outside the ref element\n *\n * @example\n * const ref = useRef(null);\n * useOnFocusLeave(ref, ()=> onLeaveQuestion());\n *
\n */\nfunction useOnFocusLeave(ref, focusCallback) {\n useEffect(() => {\n const ele = ref?.current;\n function handleFocus(e) {\n if (!ele?.contains(e.relatedTarget)) {\n focusCallback(ref);\n }\n }\n ele?.addEventListener('focusout', handleFocus);\n return () => {\n ele?.removeEventListener('focusout', handleFocus);\n };\n }, [ref, focusCallback]);\n}\n\nconst useStyles$U = createUseStyles({\n footerRow: ({ hasFooterPadding }) => ({\n paddingTop: hasFooterPadding ? 20 : 0,\n }),\n containerStyles: {\n position: 'relative',\n transition: 'opacity 500ms ease-out',\n },\n errorRow: {\n overflow: 'hidden',\n },\n formReset: {\n border: 0,\n minWidth: 0,\n },\n headerRow: {\n marginBottom: 24,\n width: '100%',\n },\n});\n\nfunction QuestionFieldLayoutTemplate({ footer, hasFooterPadding, children, clickShield, error, id, padding, width = { width: 100, format: 'PERCENT' }, title, onSubmit, \n// eslint-disable-next-line @typescript-eslint/no-empty-function\nonLeave = () => { }, ...props }) {\n const { footerRow, containerStyles, formReset, errorRow, headerRow, } = useStyles$U({\n hasFooterPadding,\n clickShield,\n });\n const containerRef = useRef(null);\n const errorRef = useRef(null);\n /** Keep track of last error to enable error-hiding animation */\n const [lastShownError, setLastShownError] = useState(error);\n const handleKeydown = useCallback((event) => {\n if (event.key === 'Enter') {\n onSubmit?.();\n }\n }, [onSubmit]);\n /**\n * resolves double height animate issue with RAWR-1240\n */\n const isAnimating = useRef(false);\n useSSRSafeLayoutEffect(() => {\n const el = errorRef.current;\n if (!el || isAnimating.current) {\n return;\n }\n const hasError = !!error;\n const initialHeight = el.offsetHeight;\n el.style.height = 'auto'; // remove height to measure full size\n const { offsetHeight } = el;\n const fromValue = hasError ? 0 : offsetHeight;\n const toValue = hasError ? offsetHeight : 0;\n // don't animate if value is already correct (e.g. at initial load)\n if (initialHeight === toValue) {\n el.style.height = `${initialHeight}px`;\n return;\n }\n el.style.height = `${initialHeight}px`;\n animate({\n fromValue,\n toValue,\n duration: 300,\n delay: 200,\n onUpdate: (height, next) => {\n el.style.height = `${height}px`;\n next();\n },\n onStart: () => {\n isAnimating.current = true;\n },\n onComplete: () => {\n setLastShownError(error);\n isAnimating.current = false;\n },\n });\n }, [error]);\n const fieldsetRef = useRef(null);\n useOnFocusLeave(fieldsetRef, onLeave);\n useEffect(() => {\n const { current: container } = containerRef;\n container?.addEventListener('keydown', handleKeydown);\n return () => {\n return container?.removeEventListener('keydown', handleKeydown);\n };\n }, [containerRef, handleKeydown]);\n /**\n * This id is queried in RespWeb to calculate the offset for scroll-to-error animations in classic mode\n * ref: https://code.corp.surveymonkey.com/webplatform/smweb/pull/10725\n */\n let errorRowId;\n /** used in RespWeb for OQAATView */\n let fieldId;\n /** used in RespWeb for OQAATView */\n let questionTitleId;\n if (id) {\n errorRowId = createErrorRowId(id);\n fieldId = createFieldId(id);\n questionTitleId = createLegendId(id);\n }\n return (React__default.createElement(\"div\", { ref: containerRef, id: fieldId, ...props, className: containerStyles },\n React__default.createElement(QuestionSpacing, { padding: padding, width: width },\n React__default.createElement(\"div\", { ref: errorRef, id: errorRowId, className: errorRow }, error || lastShownError),\n React__default.createElement(\"fieldset\", { ref: fieldsetRef, className: formReset },\n React__default.createElement(\"legend\", { id: questionTitleId, className: headerRow, tabIndex: -1 }, title),\n children),\n footer && React__default.createElement(\"div\", { className: footerRow }, footer))));\n}\n\n/**\n * Calculate the max number of children each column can be filled in the layout\n * @param columns number of columns\n * @param total total child count\n * @description Based on the current implementation in production (as of Jan 20, 2021),\n * - if columns = 1, the max number of children per column = total (render all children vertically)\n * - if columns > 1, the max number of children per column = (total / columns) + 1\n */\nconst calculateMaxNumOfChildrenPerColumn = (columns, total) => {\n if (columns === 1) {\n return total;\n }\n const childrenPerColumn = total / columns;\n if (childrenPerColumn % 1 === 0) {\n return childrenPerColumn;\n }\n return Math.floor(childrenPerColumn) + 1;\n};\n/**\n * Divide the children array into slices for rendering\n * @param childrenArr - children array\n * @param maxCellsPerCol - maximum number of children per slice\n * @param totalColumns - number of columns\n * @example\n * childrenArr = [option1, option2, option3, option4, option5, option6, option7]\n * childrenPerSlice = 2\n * totalColumns = 3\n * output: [[option1, option2, option3], [option4, option5], [option6, option7]]\n */\nconst sliceChildren = (childrenArr, maxCellsPerCol, totalColumns) => {\n let index = 0;\n const result = [];\n const partialColumnsCount = totalColumns * maxCellsPerCol - childrenArr.length;\n // Calculate the number of fullColumns, to conditionally push slice with the correct # of cells\n let fullColumnsCount = totalColumns - partialColumnsCount;\n while (index < childrenArr.length) {\n if (fullColumnsCount > 0) {\n result.push(childrenArr.slice(index, index + maxCellsPerCol));\n index += maxCellsPerCol;\n }\n else {\n result.push(childrenArr.slice(index, index + maxCellsPerCol - 1));\n index += maxCellsPerCol - 1;\n }\n fullColumnsCount -= 1;\n }\n return result;\n};\n\nconst useStyles$T = createUseStyles((theme) => ({\n containerVertical: {\n display: 'initial',\n },\n containerHorizontal: {\n display: 'block',\n },\n /** shared between horizontal and vertical columns */\n column: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start',\n },\n columnHorizontal: {},\n /** Horizontal Column that adjust width to content width */\n columnHorizontalAutoAdjust: {\n width: 'auto',\n },\n [`@media (min-width: ${theme.breakpoints.xs.min})`]: {\n containerVertical: {\n display: 'flex',\n },\n containerHorizontal: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n },\n [`@media only screen and (min-width: ${theme.breakpoints.lg.min})`]: {\n columnHorizontal: {\n width: '19%',\n },\n },\n [`@media (min-width: ${theme.breakpoints.sm.min}) and (max-width: ${theme.breakpoints.md.max})`]: {\n columnHorizontal: {\n width: '24%',\n },\n },\n [`@media only screen and (max-width: ${theme.breakpoints.xxs.max})`]: {\n columnHorizontal: {\n width: '100%',\n display: 'block',\n },\n columnHorizontalAutoAdjust: {\n width: '100%',\n display: 'block',\n },\n },\n answerLayoutCell: ({ gridCellMargin = '0' }) => ({\n margin: gridCellMargin,\n flex: [0, 0, 'auto'],\n wordBreak: 'normal',\n overflowWrap: 'anywhere',\n }),\n otherLayoutCell: ({ otherCellMargin = '0' }) => ({\n margin: otherCellMargin,\n }),\n}));\n\nfunction QuestionAnswerLayoutTemplate({ children, columns = 1, other, noneOfTheAbove, adjustToContent = false, gridCellMargin, otherCellMargin, }) {\n const { containerVertical, containerHorizontal, column, columnHorizontal, columnHorizontalAutoAdjust, answerLayoutCell, otherLayoutCell, } = useStyles$T({\n columns,\n adjustToContent,\n gridCellMargin,\n otherCellMargin,\n });\n const isHorizontal = columns === 'horizontal';\n /* Based on the columns config, divide the question answers\n (children of this component) into column groups for rendering.\n \n The reason we need to do this is when there are multiple columns,\n the answers are listed vertically instead of horizontally.\n For example:\n If there are 3 answers and 2 columns,\n Then the ordering will be:\n Answer 1 Answer 3\n Answer 2\n \n NOT:\n Answer 1 Answer 2\n Answer 3\n * though `horizontal` uses this\n \n */\n const columnGroups = useMemo(() => {\n const totalChildren = React__default.Children.count(children);\n const totalColumns = columns === 'horizontal' ? totalChildren : columns;\n const childrenArray = React__default.Children.toArray(children);\n if (!other && !!noneOfTheAbove && columns !== 'horizontal') {\n childrenArray.push(noneOfTheAbove);\n }\n const answersPerColumn = columns === 'horizontal'\n ? 1\n : calculateMaxNumOfChildrenPerColumn(totalColumns, totalChildren + (!other && !!noneOfTheAbove ? 1 : 0));\n return sliceChildren(childrenArray, answersPerColumn, totalColumns);\n }, [children, columns, noneOfTheAbove, other]);\n const columnClassNames = isHorizontal\n ? [column, adjustToContent ? columnHorizontalAutoAdjust : columnHorizontal]\n : column;\n return (React__default.createElement(React__default.Fragment, null,\n React__default.createElement(\"div\", { className: isHorizontal ? containerHorizontal : containerVertical }, columnGroups.map((col, columnIndex) => (React__default.createElement(\"div\", { key: `col-${columnIndex + 1}`, className: classNames(columnClassNames), \"data-testid\": \"answer-layout-column\" }, col.map((cell, cellIndex) => (React__default.createElement(\"div\", { key: `cell-${cellIndex + 1}`, \"data-testid\": \"answer-layout-cell\", className: answerLayoutCell }, cell))))))),\n other && React__default.createElement(\"div\", { className: otherLayoutCell }, other),\n ((other && noneOfTheAbove) || columns === 'horizontal') && (React__default.createElement(\"div\", { className: otherLayoutCell, \"data-testid\": \"Other-NOTA\" }, noneOfTheAbove))));\n}\n\nfunction WarningIcon() {\n return (React__default.createElement(\"g\", { className: \"warning-icon\" },\n React__default.createElement(\"path\", { className: \"background\", transform: \"translate(0 .49999)\", d: \"M8.49642,0.635797c.1494.086885.27371.210979.36079.360173L15.8621,12.9978c.2782.4766.1169,1.0883-.3602,1.3662-.1529.0891-.3267.136-.5037.136L1,14.5c-.552285,0-1-.4473-1-.999c0-.1766.046846-.35.135766-.5026L7.1291,0.996589c.27785-.476838.89002-.63837,1.36732-.360792Z\", clipRule: \"evenodd\", fill: \"currentColor\", fillRule: \"evenodd\", stroke: \"none\" }),\n React__default.createElement(\"path\", { className: \"foreground\", transform: \"translate(.000815 .49999)\", d: \"M8,11.2546c-.3797,0-.69349.2794-.74315.6419L7.25,11.9973v.26l.00685.1008C7.30651,12.7206,7.6203,13,8,13s.69349-.2794.74315-.6419L8.75,12.2573v-.26l-.00685-.1008C8.69349,11.534,8.3797,11.2546,8,11.2546ZM8,4c-.3797,0-.69349.2794-.74315.6419L7.25,4.74268v4.54393l.00685.10078c.04966.3625.36345.64191.74315.64191s.69349-.27941.74315-.64191L8.75,9.28661v-4.54393L8.74315,4.6419C8.69349,4.2794,8.3797,4,8,4Z\", clipRule: \"evenodd\", fill: \"#fff\", fillRule: \"evenodd\", stroke: \"none\" })));\n}\nvar WarningIcon$1 = withSvgIcon(WarningIcon, 'WarningIcon');\n\nconst useStyles$S = createUseStyles((theme) => ({\n icon: {\n color: '#F05B24',\n fontSize: theme.fontSize.body,\n alignSelf: 'flex-start',\n marginTop: 2,\n flexShrink: 0,\n },\n validationMessage: {\n fontFamily: theme.fontFamily,\n lineHeight: 1.5,\n color: '#333e48',\n fontWeight: 400,\n fontSize: 16,\n padding: theme.isDark ? 8 : [4, 0],\n backgroundColor: theme.isDark ? 'rgba(255, 255, 255, 0.9)' : '',\n borderRadius: 2,\n display: 'inline-flex',\n gap: 5,\n alignItems: 'center',\n marginBottom: 8,\n [`@media only screen and (max-width: ${theme.breakpoints?.xxs.max})`]: {\n width: '100%',\n padding: theme.isDark ? 4 : [4, 0],\n },\n },\n}));\n\nfunction ValidationMessage({ children, id, tag: Wrapper = 'span', ...props }) {\n const { icon, validationMessage } = useStyles$S();\n return (React__default.createElement(Wrapper, { className: validationMessage, \"aria-live\": \"polite\", id: id, ...props },\n React__default.createElement(WarningIcon$1, { className: icon }),\n React__default.createElement(\"span\", { translate: \"no\" }, children)));\n}\n\nconst useStyles$R = createUseStyles((theme) => {\n const breakpointMedium = `@media only screen and (max-width: ${theme.breakpoints.md.max})`;\n const breakpointXsMin = `@media only screen and (min-width: ${theme.breakpoints.xs.min})`;\n const fontWeightOptions = getFontWeights(theme.questionBody.fontFamily);\n return {\n inputArea: {\n fontFamily: theme.questionBody.fontFamily ?? {},\n fontWeight: fontWeightOptions.medium,\n fontSize: '18px',\n [breakpointMedium]: {\n fontSize: '16px',\n },\n lineHeight: '1.15em',\n padding: '6px 60px 6px 6px',\n maxWidth: '100%',\n [breakpointXsMin]: {\n // extra 66px to account for the padding\n width: ({ cols }) => `calc(${cols}ch + 66px)`,\n },\n width: '100%',\n border: `1px solid ${theme.answerColor}`,\n borderRadius: '0px',\n backgroundColor: '#fff',\n color: '#000',\n transition: 'all 0.1s linear',\n verticalAlign: 'top',\n textSizeAdjust: 'auto',\n '&:focus, &:hover': {\n outline: `2px solid ${theme.primaryAccentColor}`,\n },\n '&:read-only:not(:disabled)': {\n borderColor: 'transparent',\n backgroundColor: theme.input.bgColor,\n color: theme.isDark ? '#fff' : '#000',\n opacity: 0.5,\n },\n '&:disabled': {\n opacity: 0.4,\n },\n },\n };\n});\n\nfunction TextArea({ className, disabled = false, required = false, readOnly = false, cols = 50, ...props }, forwardedRef) {\n const { inputArea } = useStyles$R({ cols });\n return (React__default.createElement(\"textarea\", { className: classNames(inputArea, className), disabled: disabled, \"aria-disabled\": disabled, required: required, \"aria-required\": required, readOnly: readOnly, \"aria-readonly\": readOnly, spellCheck: true, ref: forwardedRef, ...props }));\n}\nvar TextArea$1 = forwardRef(TextArea);\n\nconst useStyles$Q = createUseStyles((theme) => {\n const breakpointMedium = `@media only screen and (max-width: ${theme.breakpoints.md.max})`;\n const breakpointXsMin = `@media only screen and (min-width: ${theme.breakpoints.xs.min})`;\n const fontWeightOptions = getFontWeights(theme.questionBody.fontFamily);\n return {\n inputField: {\n fontFamily: theme.questionBody.fontFamily ?? {},\n fontSize: '18px',\n [breakpointMedium]: {\n fontSize: '16px',\n },\n fontWeight: fontWeightOptions.medium,\n lineHeight: '1.5em',\n height: ({ autoHeight }) => (autoHeight ? {} : '50px'),\n maxWidth: '100%',\n width: '100%',\n [breakpointXsMin]: {\n // extra 12px to account for the padding\n width: ({ size }) => `calc(${size}ch + 12px)`,\n },\n padding: '6px',\n border: `1px solid ${theme.answerColor}`,\n borderRadius: '0px',\n backgroundColor: '#fff',\n color: '#000',\n transition: 'all 0.1s linear',\n '&:focus, &:hover': {\n outline: `2px solid ${theme.primaryAccentColor}`,\n },\n '&:read-only:not(:disabled)': {\n borderColor: 'transparent',\n backgroundColor: theme.input.bgColor,\n color: theme.isDark ? '#fff' : '#000',\n opacity: 0.5,\n },\n '&:disabled': {\n opacity: 0.4,\n },\n },\n };\n});\n\nfunction TextInput({ className, autoHeight = false, size = 50, required = false, disabled = false, readOnly = false, onChange: handleChange, ...props }, forwardedRef) {\n const { inputField } = useStyles$Q({\n autoHeight,\n size,\n });\n return (React__default.createElement(\"input\", { type: \"text\", className: classNames(inputField, className), disabled: disabled, \"aria-disabled\": disabled, required: required, \"aria-required\": required, readOnly: readOnly, \"aria-readonly\": readOnly, spellCheck: true, onChange: handleChange, ...props, ref: forwardedRef }));\n}\nvar TextInput$1 = forwardRef(TextInput);\n\nconst useStyles$P = createUseStyles((theme) => {\n return {\n commentLabelText: {\n ...theme.questionBody,\n marginBottom: 5,\n lineHeight: 1.25,\n },\n commentLabel: {\n display: 'block',\n },\n };\n});\n\nfunction CommentChoice({ label, lineCount = 3, charCount = 50, onChange, className, ...props }) {\n const handleChange = (e) => {\n onChange?.(e);\n };\n const { commentLabel, commentLabelText } = useStyles$P();\n const multipleTextLines = lineCount > 1;\n return (React__default.createElement(\"div\", { className: className },\n React__default.createElement(\"label\", { id: `${props.id}-label`, htmlFor: props.id, className: commentLabel, tabIndex: -1 },\n React__default.createElement(\"div\", { className: commentLabelText }, label),\n multipleTextLines ? (React__default.createElement(TextArea$1, { onChange: handleChange, rows: lineCount, cols: charCount, ...props })) : (React__default.createElement(TextInput$1, { autoHeight: true, onChange: handleChange, size: charCount, ...props })))));\n}\n\n/**\n * Visually Hidden CSS properties\n * @description common css-properties to visually hide text and available for screen-readers.\n * There may be times where the css-specificity may not be high enough for the class to be invoked,\n * Ergo, the use of `!important` which will help ensure the properties are applied at any specificity.\n * @example\n * // usage with `react-jss`\n * import visuallyHiddenProperties from './utils/visuallyHidden';\n *\n * const useStyles = createUseStyles({\n * srOnly: {...visuallyHiddenProperties}\n * })\n */\nvar visuallyHidden = {\n border: [[0], '!important'],\n /**\n * @desc for backwards compatibility\n * @deprecated\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/clip\n * @see https://caniuse.com/mdn-css_properties_clip\n */\n clip: ['rect(1px, 1px, 1px, 1px)', '!important'],\n /**\n * @desc future-proof version\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/clip-path\n * @see https://caniuse.com/css-clip-path\n */\n clipPath: ['inset(50%)', '!important'],\n height: ['1px', '!important'],\n margin: ['-1px', '!important'],\n overflow: ['hidden', '!important'],\n padding: [[0], '!important'],\n position: ['absolute', '!important'],\n width: ['1px', '!important'],\n /**\n * @desc preventing text to be condensed\n * @see https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n */\n whiteSpace: ['nowrap', '!important'],\n};\n\nconst textReset = {\n margin: 0,\n};\nconst useStyles$O = createUseStyles((theme) => {\n const { fontSize, ...questionTitleFormatting } = theme.questionTitle;\n const questionTitleFontSize = fontSize ?? {};\n return {\n srOnly: {\n ...visuallyHidden,\n },\n addonContainer: {\n display: 'inline-block',\n margin: [0, 5],\n verticalAlign: 'text-bottom',\n },\n container: {\n position: 'relative',\n display: 'flex',\n },\n questionNumber: ({ isRTL }) => ({\n margin: isRTL ? '0 0 0 0.25em' : '0 0.25em 0 0',\n flex: [0, 0],\n }),\n questionTitle: ({ useDefaultFrontSize }) => ({\n ...textReset,\n ...questionTitleFormatting,\n color: theme.questionTitle?.color || theme.questionColor,\n fontSize: useDefaultFrontSize && !theme.isAccessible\n ? theme.fontSize.body\n : questionTitleFontSize,\n lineHeight: 1.25,\n whiteSpace: 'normal',\n wordWrap: 'break-word',\n }),\n requiredAsterisk: ({ isRTL }) => ({\n display: 'inline-block',\n margin: isRTL ? '0 0 0 0.25em' : '0 0.25em 0 0',\n }),\n richText: {\n flex: [1, 0],\n },\n };\n});\n\nconst COPY$e = defineMessages({\n REQUIRED: {\n id: 'RespondentQuestionTitle.REQUIRED',\n defaultMessage: '(Required.)',\n description: '[Type: label][Vis: medium] - visualy hidden required text',\n },\n});\nfunction RespondentQuestionTitle({ element: Element = 'div', addon, heading, id, number, numbered, required, requiredGroup = false, useDefaultFrontSize = false, ...props }) {\n const { isRTL } = useContext(L10NContext);\n const { addonContainer, container, questionNumber, questionTitle, requiredAsterisk, richText, srOnly, } = useStyles$O({ useDefaultFrontSize, isRTL });\n return (React__default.createElement(Element, { id: id, className: classNames(container, questionTitle), translate: \"no\", ...props },\n required && (React__default.createElement(\"span\", { \"aria-hidden\": true, className: requiredAsterisk }, \"*\")),\n numbered && React__default.createElement(\"span\", { className: questionNumber },\n number,\n \".\"),\n React__default.createElement(RichText, { element: \"span\", text: heading, className: richText }),\n requiredGroup && (React__default.createElement(\"span\", { className: srOnly },\n React__default.createElement(T, { desc: COPY$e.REQUIRED }))),\n addon && React__default.createElement(\"span\", { className: addonContainer }, addon)));\n}\n\n// default text to be added as a translation to a specific version of Button directly.\nconst defaultOKConfig = { text: 'OK', visible: false };\nfunction QuestionField({ id, title: titleProps, okButton: { visible: showButton, ...okButtonProps } = defaultOKConfig, error, errorId: errorIdProp, onLeave, padding = { top: 0, bottom: 0, left: 0, right: 0 }, width, children, ...props }) {\n const errorId = errorIdProp ?? createErrorId(id);\n return (React__default.createElement(QuestionFieldLayoutTemplate, { footer: showButton && React__default.createElement(Button, { type: \"button\", ...okButtonProps }), hasFooterPadding: true, clickShield: false, error: error && React__default.createElement(ValidationMessage, { id: errorId }, error), onLeave: onLeave, id: id, padding: padding, width: width, title: React__default.createElement(RespondentQuestionTitle, { ...titleProps }), ...props }, children));\n}\n\nfunction useInputStyles({ onChange, ...props }) {\n /** extract props without affecting passthrough */\n const { checked: isChecked, defaultChecked: isDefaultChecked, disabled: isDisabled, 'aria-disabled': isAriaDisabled, readOnly: isReadOnly, 'aria-readonly': isAriaReadOnly, } = props;\n /** configure style-props */\n const disabled = isDisabled || isAriaDisabled === 'true';\n const readOnly = isReadOnly || isAriaReadOnly === 'true';\n const [checked, setIsChecked] = useState(isDefaultChecked ?? isChecked ?? false);\n React__default.useEffect(() => {\n setIsChecked(isChecked ?? false);\n }, [isChecked]);\n /** handle change for checked style (controlled/uncontrolled) */\n const handleChange = (e) => {\n setIsChecked(e.target.checked);\n onChange?.(e);\n };\n const styleProps = {\n checked,\n disabled,\n readOnly,\n };\n const inputProps = { ...props, onChange: handleChange };\n return {\n styleProps,\n inputProps,\n };\n}\n\nconst radioGroupContext = createContext(undefined);\n\nfunction useRadioGroup() {\n return useContext(radioGroupContext);\n}\n\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps, no-console */\nfunction throwControlChangeError(isControlled, controlled, name, state) {\n const conState = ['controlled', 'uncontrolled'];\n const stateStr = isControlled ? conState : [...conState].reverse();\n if (isControlled !== (controlled !== undefined)) {\n console.error([\n `@sm/question-ui: A component is changing the ${stateStr[0]} ${state} state of ${name} to be ${stateStr[1]}.`,\n 'Elements should not switch from uncontrolled to controlled (or vice versa).',\n `Decide between using a controlled or uncontrolled ${name} element for the lifetime of the component.`,\n \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\",\n 'More info: https://fb.me/react-controlled-components',\n ].join('\\n'));\n }\n}\nfunction throwDefaultStateError(isControlled, defaultValue, defaultProp, name, state) {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([\n `@sm/question-ui: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. `,\n `To suppress this warning opt to use a controlled ${name}.`,\n ].join('\\n'));\n }\n}\nfunction useControlledState({ controlled, default: defaultProp, name, state = 'value', }) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const { current: isControlled } = React__default.useRef(controlled !== undefined);\n const [valueState, setValue] = React__default.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n const { current: defaultValue } = React__default.useRef(defaultProp);\n React__default.useEffect(() => {\n throwControlChangeError(isControlled, controlled, name, state);\n throwDefaultStateError(isControlled, defaultValue, defaultProp, name, state);\n }, [state, name, controlled, defaultProp]);\n }\n const setValueIfUncontrolled = React__default.useCallback((newValue) => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, [setValue]);\n return [value, setValueIfUncontrolled];\n}\n\nfunction setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n // eslint-disable-next-line no-param-reassign\n ref.current = value;\n }\n}\n/**\n * useForkRef\n * Joins refs together and returns a combination of the two as a new ref\n *\n * @param refA\n * @param refB\n */\nfunction useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return useMemo(() => {\n if (refA == null && refB == null) {\n return null;\n }\n return (refValue) => {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}\n\n/**\n * SMQ Tier 3\n */\nfunction RadioGroup({ children, name: nameProp, value: valueProp, defaultValue, onChange, disabled = false, readOnly = false, ...divProps }) {\n const [value, setValueState] = useControlledState({\n controlled: valueProp,\n default: defaultValue,\n name: 'RadioGroup',\n });\n const handleChange = (e) => {\n setValueState(e.value);\n onChange?.(e);\n };\n const name = nameProp;\n return (React__default.createElement(radioGroupContext.Provider\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n , { \n // eslint-disable-next-line react/jsx-no-constructed-context-values\n value: { name, onChange: handleChange, value, disabled, readOnly } },\n React__default.createElement(\"div\", { role: \"radiogroup\", ...divProps }, children)));\n}\n\nconst useStyles$N = createUseStyles({\n inputContainer: {\n display: 'inline-flex',\n position: 'relative',\n justifyContent: 'center',\n alignItems: 'center',\n width: '1em',\n minWidth: '1em',\n cursor: 'pointer',\n },\n input: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n opacity: 0.00001,\n zIndex: 1,\n margin: 0,\n cursor: ({ disabled, readOnly }) => disabled || readOnly ? 'default' : 'pointer',\n pointerEvents: ({ disabled, readOnly }) => disabled || readOnly ? 'none' : undefined,\n },\n controlIcon: {\n width: '100%',\n height: '100%',\n opacity: ({ checked }) => (checked ? 1 : 0),\n transition: 'opacity .2s linear',\n },\n});\n\nfunction BaseInput({ element: Element = 'span', className, icon, checked: checkedProp, defaultChecked, onClick, onChange, ...inputProps }, forwardedRef) {\n /** extract props without affecting passthrough */\n const { disabled: disabledProp, 'aria-disabled': ariaDisabledProp, readOnly: readOnlyProp, 'aria-readonly': ariaReadOnlyProp, } = inputProps;\n const disabled = disabledProp || ariaDisabledProp === 'true';\n const readOnly = readOnlyProp || ariaReadOnlyProp === 'true';\n const [checked, setChecked] = useControlledState({\n controlled: checkedProp,\n default: defaultChecked,\n state: 'checked',\n name: 'BaseInput',\n });\n const handleChange = (e) => {\n if (e.nativeEvent.defaultPrevented) {\n return;\n }\n if (disabled || readOnly) {\n e.preventDefault();\n return;\n }\n const newChecked = e.target.checked;\n setChecked(newChecked);\n onChange?.(e);\n };\n const handleClick = (e) => {\n if (disabled || readOnly) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n onClick?.(e);\n };\n const { inputContainer, input, controlIcon } = useStyles$N({\n disabled,\n readOnly,\n checked,\n });\n return (React__default.createElement(Element, { className: classNames(inputContainer, className) },\n React__default.createElement(\"input\", { className: input, checked: checkedProp, defaultChecked: defaultChecked, onChange: handleChange, onClick: handleClick, ...inputProps, ref: forwardedRef }),\n React__default.cloneElement(icon, {\n className: controlIcon,\n })));\n}\nvar BaseInput$1 = forwardRef(BaseInput);\n\nfunction RadioIcon() {\n return (React__default.createElement(\"g\", { className: \"radio-icon\" },\n React__default.createElement(\"ellipse\", { fill: \"currentColor\", className: \"background\", transform: \"translate(8 8)\", rx: \"8\", ry: \"8\" }),\n React__default.createElement(\"path\", { fill: \"#fff\", className: \"checkmark\", transform: \"matrix(.91924 .91924 -.91924 .91924 -.72152 -9.5796)\", d: \"m14.521 0h1.4788v8h-5.0216l-0.002914-1.4404h3.5456l-1e-6 -6.5596z\" })));\n}\nvar RadioIcon$1 = withSvgIcon(RadioIcon, 'RadioIcon');\n\nconst useStyles$M = createUseStyles((theme) => ({\n radioInput: {\n color: theme.isDark ? '#fff' : '#000',\n backgroundColor: ({ checked }) => {\n if (checked) {\n return theme.isDark ? '#fff' : '#000';\n }\n return '#fff';\n },\n border: `1px solid ${theme.answerColor}`,\n borderRadius: '100%',\n '& .checkmark': {\n fill: theme.isDark ? '#000' : '#fff',\n },\n '&:focus-within': {\n boxShadow: `0 0 0 1px ${theme.primaryAccentColor}`,\n borderColor: '#fff',\n },\n '& input': {\n cursor: 'pointer',\n },\n },\n}));\n\nfunction RadioInput({ className, ...props }, forwardedRef) {\n const { inputProps, styleProps } = useInputStyles(props);\n const styles = useStyles$M(styleProps);\n return (React__default.createElement(BaseInput$1, { type: \"radio\", className: classNames(styles.radioInput, className), icon: React__default.createElement(RadioIcon$1, null), ref: forwardedRef, ...inputProps }));\n}\nvar RadioInput$1 = forwardRef(RadioInput);\n\n// get the margin top by taking the font size and the line height and divide by 2 to get the margin top\nconst marginTopHelper$1 = (height = 0, lineHeight = 1) => {\n return Math.max(0, (height * lineHeight - height) / 2); // no negative margins\n};\nconst useStyles$L = createUseStyles((theme) => ({\n controlLabel: ({ checked, disabled }) => {\n const borderStyle = checked ? 'solid' : 'dashed';\n const borderColor = disabled && !checked ? 'transparent' : theme.questionColor;\n const fontWeightOptions = getFontWeights(theme.questionBody.fontFamily);\n return {\n display: 'flex',\n alignItems: 'start',\n cursor: 'pointer',\n padding: [5, 8, 7, 8],\n gap: 8,\n borderRadius: 4,\n border: [1, 'solid', checked ? theme.questionColor : 'transparent'],\n backgroundColor: checked\n ? theme.correctAnswerHighlightColor\n : 'transparent',\n ...theme.questionBody,\n lineHeight: 1.5,\n fontWeight: checked\n ? fontWeightOptions.medium\n : theme.questionBody.fontWeight ?? fontWeightOptions.light,\n '&:hover': {\n border: [1, borderStyle, borderColor],\n },\n '&:focus-within': {\n background: theme.correctAnswerHighlightColor,\n },\n };\n },\n icon: {\n flexShrink: 0,\n fontSize: ({ inputSize }) => inputSize ?? '1em',\n marginTop: marginTopHelper$1(theme.questionBody?.fontSize, 1.5),\n // The following selector singles out Safari and Chrome on iOS14 to\n // implement a workaround for the lack of flex gap.\n '@supports (-webkit-touch-callout: none) and (not (translate: none))': {\n marginRight: 8,\n },\n },\n}));\n\nfunction Radio({ children: label = '', className, onChange, checked: checkedProp, name: nameProp, disabled: disabledProp, readOnly: readOnlyProp, inputSize, ...props }, forwardedRef) {\n const radioGroup = useRadioGroup();\n let checked = checkedProp;\n let name = nameProp;\n if (radioGroup) {\n if (typeof checked === 'undefined') {\n checked = radioGroup.value === props.value;\n }\n if (typeof name === 'undefined') {\n name = radioGroup.name;\n }\n }\n const disabled = radioGroup?.disabled ?? disabledProp;\n const readOnly = radioGroup?.readOnly ?? readOnlyProp;\n const handleChange = (e) => {\n const { id, checked: isChecked, value } = e.target;\n radioGroup?.onChange({ id, checked: isChecked, value });\n onChange?.({ id, checked: isChecked, value });\n };\n const { inputProps, styleProps } = useInputStyles({\n ...props,\n name,\n checked,\n disabled,\n readOnly,\n onChange: handleChange,\n });\n const { controlLabel, icon } = useStyles$L({ ...styleProps, inputSize });\n return (React__default.createElement(\"label\", { tabIndex: -1, htmlFor: props.id, className: classNames(controlLabel, className) },\n React__default.createElement(RadioInput$1, { ...inputProps, ref: forwardedRef, className: icon }),\n React__default.createElement(RichText, { element: \"span\", text: label })));\n}\nvar Radio$1 = forwardRef(Radio);\n\nconst useStyles$K = createUseStyles((theme) => {\n const breakpointSmMax = `@media screen and (max-width: ${theme.breakpoints.sm.max})`;\n return {\n rowStyles: {\n borderRadius: '3px',\n textAlign: 'center',\n cursor: 'pointer',\n alignItems: 'center',\n padding: '3px',\n ...theme.questionBody,\n fontSize: '20px',\n },\n rowLabel: {\n margin: [0, 2, 0, 2],\n fontSize: '18px',\n padding: '3px',\n width: ({ width = 60 }) => `${width}%`,\n /**\n * There is a known jss issue that results in media query\n * checks not occurring for all mapped elements, hence the use of !important\n * https://github.com/cssinjs/jss/issues/1320\n * https://github.com/cssinjs/jss/issues/1327#issuecomment-707967909\n * Because function rules/values have higher source order specificity (rendered after static rules),\n * we're using !important to override that.\n * */\n [breakpointSmMax]: {\n width: ['50%', '!important'],\n },\n },\n rowRadio: {\n justifyContent: 'center',\n gap: 0,\n padding: '3px',\n fontSize: 'inherit',\n width: ({ radioWidth = 20 }) => `${radioWidth}%`,\n [breakpointSmMax]: {\n width: ['25%', '!important'],\n },\n },\n };\n});\n\nfunction BestWorstRow({ id: rowId, label, value = null, columnIds = [], className, onChange, onClick, onKeyDown, width, ...props }) {\n const DEFAULT_RADIO_WIDTH = 20;\n const [bestColId, worstColId] = columnIds;\n const bestRadioId = `${rowId}_${bestColId}`;\n const worstRadioId = `${rowId}_${worstColId}`;\n const labelId = `${rowId}_label`;\n const radioEvents = { onClick, onKeyDown };\n const radioWidth = width !== undefined ? (100 - width) / 2 : DEFAULT_RADIO_WIDTH;\n const handleChange = (e) => {\n onChange?.({ id: rowId, value: e.value, checked: e.checked });\n };\n const { rowStyles, rowLabel, rowRadio } = useStyles$K({ width, radioWidth });\n return (React__default.createElement(Row, { className: classNames(rowStyles, className), ...props },\n React__default.createElement(Radio$1, { id: bestRadioId, className: rowRadio, value: bestColId, name: rowId, checked: value === bestColId, \"aria-labelledby\": `${bestColId} ${labelId}`, onChange: handleChange, ...radioEvents }),\n React__default.createElement(\"span\", { className: rowLabel },\n React__default.createElement(RichText, { id: labelId, element: \"span\", text: label })),\n React__default.createElement(Radio$1, { id: worstRadioId, className: rowRadio, value: worstColId, name: rowId, checked: value === worstColId, \"aria-labelledby\": `${worstColId} ${labelId}`, onChange: handleChange, ...radioEvents })));\n}\n\nconst useStyles$J = createUseStyles((theme) => {\n const breakpointSmMax = `@media screen and (max-width: ${theme.breakpoints.sm.max})`;\n return {\n rowList: {\n '& > :nth-child(even)': {\n backgroundColor: theme.input.bgColor,\n },\n },\n headerColumn: ({ radioWidth = 20 }) => ({\n display: 'table',\n width: `${radioWidth}%`,\n padding: '5px 8px',\n alignItems: 'center',\n textAlign: 'center',\n ...theme.questionBody,\n fontSize: '14px',\n [breakpointSmMax]: {\n width: '25%',\n },\n }),\n labelColumn: ({ labelWidth = 60 }) => ({\n display: 'table',\n width: `${labelWidth}%`,\n margin: [0, 2, 0, 2],\n padding: '3px',\n [breakpointSmMax]: {\n width: '50%',\n },\n }),\n };\n});\n\nfunction BestWorst({ id: questionId, disabled: _dis, readOnly: _ro, choices: fields = [], responses = [], columnChoices = [], onChange, labelWidth, ...questionFieldProps }) {\n const DEFAULT_RADIO_WIDTH = 20;\n const [selectedChoices, setSelectedChoices] = useState(responses);\n const [bestAnswerColumn, worstAnswerColumn] = columnChoices;\n const columnIds = columnChoices?.map((c) => c.id);\n const errorId = createErrorId(questionId);\n const radioWidth = labelWidth !== undefined ? (100 - labelWidth) / 2 : DEFAULT_RADIO_WIDTH;\n /** Filter choices that exist and are visible */\n const { options: rowFields } = useQuestionChoices(fields);\n /** determines whether a radio should be rendered as checked or unchecked */\n const getRadioSelection = (id) => {\n return selectedChoices.find((c) => c.id === id)?.value[0].id ?? '';\n };\n /** unChecks selected choice */\n const unCheckOption = (radioId) => {\n const newChoices = selectedChoices.filter((c) => !radioId.match(c.id));\n setSelectedChoices(newChoices);\n onChange?.(newChoices);\n };\n /** handles adding new checked selection to responses */\n const handleChange = (e) => {\n let newChoices = [];\n const rowId = e.id;\n const rowValue = e.value;\n /** remove any other checked radio in the same row or column */\n newChoices = selectedChoices.filter((row) => !(row.id === rowId || row.value.find((col) => col.value === rowValue)));\n newChoices.push({\n id: rowId,\n value: [{ id: rowValue, value: rowValue }],\n });\n setSelectedChoices(newChoices);\n onChange?.(newChoices);\n };\n const handleClick = (e) => {\n const input = e.target;\n const isSelected = selectedChoices.find((c) => input.id.match(c.id));\n if (isSelected && input.checked) {\n unCheckOption(input.id);\n }\n };\n const handleKeyboard = (e) => {\n const input = e.target;\n const isSelected = selectedChoices.find((c) => input.id.match(c.id));\n if (e.code === 'Space' && isSelected) {\n e.preventDefault();\n unCheckOption(input.id);\n }\n };\n const { headerColumn, rowList, labelColumn } = useStyles$J({\n labelWidth,\n radioWidth,\n });\n return (\n /*\n NOTE: The id has been modified to work in hybrid mode. The id needs to\n be different from the question-field id created in the responseweb.\n */\n React__default.createElement(QuestionField, { id: `hybrid-${questionId}`, \"data-testid\": \"BestWorstQuestionType\", ...questionFieldProps },\n React__default.createElement(\"div\", { className: rowList },\n React__default.createElement(Row, null,\n React__default.createElement(RichText, { id: bestAnswerColumn?.id, element: \"span\", text: bestAnswerColumn?.label, className: classNames(headerColumn) }),\n React__default.createElement(\"span\", { className: classNames(headerColumn, labelColumn) }),\n React__default.createElement(RichText, { id: worstAnswerColumn?.id, element: \"span\", text: worstAnswerColumn?.label, className: classNames(headerColumn) })),\n rowFields?.map((field) => {\n const rowId = `${questionId}_${field.id}`;\n return (React__default.createElement(BestWorstRow, { key: rowId, id: rowId, label: field.label, width: labelWidth, value: getRadioSelection(rowId), columnIds: columnIds, onChange: handleChange, onClick: handleClick, onKeyDown: handleKeyboard, \"aria-describedby\": (questionFieldProps.error && errorId) || undefined }));\n }))));\n}\nvar BestWorst$1 = withErrorBoundary(BestWorst);\n\nfunction CheckboxIcon() {\n return (React__default.createElement(\"g\", { className: \"checkbox-icon\" },\n React__default.createElement(\"rect\", { fill: \"currentColor\", className: \"background\", width: \"16\", height: \"16\", rx: \"2\", ry: \"2\" }),\n React__default.createElement(\"path\", { fill: \"#fff\", className: \"checkmark\", transform: \"matrix(.91924 .91924 -.91924 .91924 -.72152 -9.5796)\", d: \"m14.521 0h1.4788v8h-5.0216l-0.002914-1.4404h3.5456l-1e-6 -6.5596z\" })));\n}\nvar CheckboxIcon$1 = withSvgIcon(CheckboxIcon, 'CheckboxIcon');\n\nfunction SelectIcon() {\n return (React__default.createElement(\"g\", { className: \"select-icon\" },\n React__default.createElement(\"polygon\", { className: \"select-arrow select-arrow-top\", transform: \"matrix(1.4619 0 0 1.4619 5.8783 5.4791)\", points: \"1.4514 -3.0633 5.5556 1.0409 -2.6529 1.0409\", fill: \"currentColor\", stroke: \"transparent\", strokeLinejoin: \"round\", strokeWidth: \".5\" }),\n React__default.createElement(\"polygon\", { className: \"select-arrow select-arrow-bottom\", transform: \"matrix(-1.4619 0 0 -1.4619 10.122 10.522)\", points: \"1.4514 -3.0633 5.5556 1.0409 -2.6529 1.0409\", fill: \"currentColor\", stroke: \"transparent\", strokeLinejoin: \"round\", strokeWidth: \".5\" })));\n}\nvar SelectIcon$1 = withSvgIcon(SelectIcon, 'SelectIcon');\n\nfunction CaretDown() {\n return (React__default.createElement(\"g\", { className: \"caret-down-icon\" },\n React__default.createElement(\"path\", { d: \"M13.254 4c.19.001.38.088.526.26.267.316.29.81.073 1.158l-.073.1L8.53 11.74l-.084.086a.66.66 0 0 1-.901-.007l-.076-.08L2.22 5.523l-.073-.1a1.024 1.024 0 0 1 0-1.058l.073-.1.084-.085a.674.674 0 0 1 .446-.175V4h10.504z\", fill: \"currentColor\" })));\n}\nvar CaretDownIcon = withSvgIcon(CaretDown, 'CaretDownIcon');\n\nfunction CaretDownOutline() {\n return (React__default.createElement(\"g\", { className: \"caret-down-icon\" },\n React__default.createElement(\"path\", { d: \"m922.74 642.16l-415.95-416.06c-18.533-18.538-48.507-18.538-67.04 0l-415.85 416.06c-18.533 18.538-18.533 48.519 0 67.057l33.473 33.481c18.533 18.538 48.507 18.538 67.04 0l348.91-349 348.91 349c18.533 18.538 48.507 18.538 67.04 0l33.473-33.481c18.533-18.538 18.533-48.519 0-67.057z\", transform: \"matrix(-.016568 0 0 -.016568 15.842 16.026)\", fill: \"currentcolor\" })));\n}\nvar CaretDownOutlineIcon = withSvgIcon(CaretDownOutline, 'CaretDownOutlineIcon');\n\nfunction CaretUpOutline() {\n return (React__default.createElement(\"g\", { className: \"caret-up-icon\" },\n React__default.createElement(\"path\", { d: \"m922.74 642.16-415.95-416.06c-18.533-18.538-48.507-18.538-67.04 0l-415.85 416.06c-18.533 18.538-18.533 48.519 0 67.057l33.473 33.481c18.533 18.538 48.507 18.538 67.04 0l348.91-349 348.91 349c18.533 18.538 48.507 18.538 67.04 0l33.473-33.481c18.533-18.538 18.533-48.519 0-67.057z\", transform: \"matrix(.016568 0 0 .016568 .15803 -.025552)\", fill: \"currentcolor\" })));\n}\nvar CaretUpOutlineIcon = withSvgIcon(CaretUpOutline, 'CaretUpOutlineIcon');\n\nfunction CaretLeftOutline() {\n return (React__default.createElement(\"g\", { className: \"caret-left-icon\" },\n React__default.createElement(\"path\", { transform: \"matrix(0 -.016568 .016568 0 -.025552 15.842)\", d: \"m922.74 642.16-415.95-416.06c-18.533-18.538-48.507-18.538-67.04 0l-415.85 416.06c-18.533 18.538-18.533 48.519 0 67.057l33.473 33.481c18.533 18.538 48.507 18.538 67.04 0l348.91-349 348.91 349c18.533 18.538 48.507 18.538 67.04 0l33.473-33.481c18.533-18.538 18.533-48.519 0-67.057z\", fill: \"currentcolor\" })));\n}\nvar CaretLeftOutlineIcon = withSvgIcon(CaretLeftOutline, 'CaretLeftOutlineIcon');\n\nfunction CaretRightOutline() {\n return (React__default.createElement(\"g\", { className: \"caret-right-icon\" },\n React__default.createElement(\"path\", { transform: \"matrix(0 .016568 -.016568 0 16.026 .15803)\", d: \"m922.74 642.16-415.95-416.06c-18.533-18.538-48.507-18.538-67.04 0l-415.85 416.06c-18.533 18.538-18.533 48.519 0 67.057l33.473 33.481c18.533 18.538 48.507 18.538 67.04 0l348.91-349 348.91 349c18.533 18.538 48.507 18.538 67.04 0l33.473-33.481c18.533-18.538 18.533-48.519 0-67.057z\", fill: \"currentcolor\" })));\n}\nvar CaretRightOutlineIcon = withSvgIcon(CaretRightOutline, 'CaretRightOutlineIcon');\n\nfunction DragHandleIcon() {\n return (React__default.createElement(\"g\", { className: \"drag-handle-icon\" },\n React__default.createElement(\"rect\", { transform: \"matrix(1 0 0 1.4 1 2)\", width: \"14\", height: \"1.4286\", rx: \".71\", ry: \".71\", strokeWidth: \"0\", fill: \"currentColor\" }),\n React__default.createElement(\"rect\", { transform: \"matrix(1 0 0 1.4 1 5.3333)\", width: \"14\", height: \"1.4286\", rx: \".71\", ry: \".71\", strokeWidth: \"0\", fill: \"currentColor\" }),\n React__default.createElement(\"rect\", { transform: \"matrix(1 0 0 1.4 1 8.6667)\", width: \"14\", height: \"1.4286\", rx: \".71\", ry: \".71\", strokeWidth: \"0\", fill: \"currentColor\" }),\n React__default.createElement(\"rect\", { transform: \"matrix(1 0 0 1.4 1 12)\", width: \"14\", height: \"1.4286\", rx: \".71\", ry: \".71\", strokeWidth: \"0\", fill: \"currentColor\" })));\n}\nvar DragHandleIcon$1 = withSvgIcon(DragHandleIcon, 'DragHandleIcon');\n\nfunction Calendar() {\n return (React__default.createElement(\"g\", { fill: \"currentcolor\", transform: \"matrix(.031614 0 0 .031614 .33438 .33438)\" },\n React__default.createElement(\"path\", { d: \"m405.17 363.15h-55.727c-2.209 0-4 1.791-4 4v48.256c0 2.209 1.791 4 4 4h55.727c2.209 0 4-1.791 4-4v-48.256c0-2.209-1.791-4-4-4z\" }),\n React__default.createElement(\"path\", { d: \"m314.23 363.15h-55.727c-2.209 0-4 1.791-4 4v48.256c0 2.209 1.791 4 4 4h55.727c2.209 0 4-1.791 4-4v-48.256c0-2.209-1.791-4-4-4z\" }),\n React__default.createElement(\"path\", { d: \"m223.28 363.15h-55.726c-2.209 0-4 1.791-4 4v48.256c0 2.209 1.791 4 4 4h55.726c2.209 0 4-1.791 4-4v-48.256c0-2.209-1.791-4-4-4z\" }),\n React__default.createElement(\"path\", { d: \"m132.34 363.15h-55.725c-2.209 0-4 1.791-4 4v48.256c0 2.209 1.791 4 4 4h55.726c2.209 0 4-1.791 4-4v-48.256c-1e-3 -2.209-1.792-4-4.001-4z\" }),\n React__default.createElement(\"path\", { d: \"m349.44 340.41h55.727c2.209 0 4-1.791 4-4v-48.256c0-2.209-1.791-4-4-4h-55.727c-2.209 0-4 1.791-4 4v48.256c0 2.209 1.791 4 4 4z\" }),\n React__default.createElement(\"path\", { d: \"m258.5 340.41h55.726c2.209 0 4-1.791 4-4v-48.256c0-2.209-1.791-4-4-4h-55.726c-2.209 0-4 1.791-4 4v48.256c0 2.209 1.791 4 4 4z\" }),\n React__default.createElement(\"path\", { d: \"m167.56 340.41h55.726c2.209 0 4-1.791 4-4v-48.256c0-2.209-1.791-4-4-4h-55.726c-2.209 0-4 1.791-4 4v48.256c0 2.209 1.791 4 4 4z\" }),\n React__default.createElement(\"path\", { d: \"m76.611 340.41h55.726c2.209 0 4-1.791 4-4v-48.256c0-2.209-1.791-4-4-4h-55.726c-2.209 0-4 1.791-4 4v48.256c0 2.209 1.791 4 4 4z\" }),\n React__default.createElement(\"path\", { d: \"m349.44 261.41h55.727c2.209 0 4-1.791 4-4v-48.255c0-2.209-1.791-4-4-4h-55.727c-2.209 0-4 1.791-4 4v48.255c0 2.209 1.791 4 4 4z\" }),\n React__default.createElement(\"path\", { d: \"m258.5 261.41h55.727c2.209 0 4-1.791 4-4v-48.255c0-2.209-1.791-4-4-4h-55.727c-2.209 0-4 1.791-4 4v48.255c0 2.209 1.791 4 4 4z\" }),\n React__default.createElement(\"path\", { d: \"m363.37 114.86h6.938c10.543 0 19.09-8.549 19.09-19.091v-72.39c0-10.54-8.547-19.089-19.09-19.089h-6.938c-10.545 0-19.092 8.549-19.092 19.089v72.389c2e-3 10.543 8.549 19.092 19.092 19.092z\" }),\n React__default.createElement(\"path\", { d: \"m118.5 115.33h6.938c10.544 0 19.091-8.55 19.091-19.091v-72.389c0-10.541-8.547-19.09-19.091-19.09h-6.938c-10.543 0-19.09 8.549-19.09 19.09v72.389c0 10.541 8.547 19.091 19.09 19.091z\" }),\n React__default.createElement(\"path\", { d: \"M453.916,43.558h-48.996v57.209c0,19.084-15.525,29.61-34.607,29.61h-6.938c-19.084,0-34.609-15.526-34.609-34.61v-52.209h-168.713v52.682c0,19.084-15.525,34.61-34.609,34.61h-6.938c-19.083,0-34.608-15.526-34.608-34.61v-52.682h-52.862C13.923,43.558,0,57.481,0,74.595v375.03c0,17.114,13.923,31.037,31.036,31.037h422.88c17.113,0,31.035-13.923,31.035-31.037v-375.03c.002-17.113-13.922-31.037-31.035-31.037Zm0,406.067h-422.879l-.001-283.213h422.886l.016,283.212c-.002,0-.008.001-.022.001Z\" })));\n}\nvar CalendarIcon = withSvgIcon(Calendar, 'CalendarIcon');\n\nfunction CheckOutlineIcon() {\n return (React__default.createElement(\"g\", { className: \"checkoutline-icon\" },\n React__default.createElement(\"path\", { fill: \"currentcolor\", transform: \"matrix(.8 0 0 0.8-1.6-1.6)\", d: \"M10.6,13.8L8.45,11.65q-.275-.275-.7-.275t-.7.275-.275.7.275.7L9.9,15.9q.3.3.7.3t.7-.3l5.65-5.65q.275-.275.275-.7t-.275-.7-.7-.275-.7.275L10.6,13.8ZM12,22q-2.075,0-3.9-.788t-3.175-2.137q-1.35-1.35-2.137-3.175t-.788-3.9q0-2.075.788-3.9t2.137-3.175Q6.275,3.575,8.1,2.788t3.9-.788q2.075,0,3.9.788t3.175,2.137q1.35,1.35,2.138,3.175t.787,3.9q0,2.075-.788,3.9t-2.137,3.175q-1.35,1.35-3.175,2.138t-3.9.787Zm0-2q3.35,0,5.675-2.325t2.325-5.675-2.325-5.675-5.675-2.325-5.675,2.325Q4,8.65,4,12t2.325,5.675t5.675,2.325Zm0-8\" })));\n}\nvar CheckOutlineIcon$1 = withSvgIcon(CheckOutlineIcon, 'CheckOutlineIcon');\n\nfunction CloseOutlineIcon() {\n return (React__default.createElement(\"g\", { className: \"closeoutline-icon\", fill: \"currentColor\" },\n React__default.createElement(\"path\", { d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm6.5 8a6.5 6.5 0 1 0-13 0 6.5 6.5 0 0 0 13 0zm-3.318-3.182a.75.75 0 0 1 0 1.06L9.061 8l2.121 2.121a.75.75 0 0 1-1.06 1.061L8 9.061l-2.121 2.121a.75.75 0 0 1-1.061-1.06L6.939 8 4.818 5.879a.75.75 0 0 1 1.06-1.061L8 6.939l2.121-2.121a.75.75 0 0 1 1.061 0z\" })));\n}\nvar CloseOutlineIcon$1 = withSvgIcon(CloseOutlineIcon, 'CloseOutlineIcon');\n\nfunction CloudArrowUpIcon() {\n return (React__default.createElement(\"g\", { className: \"cloudarrowup-icon\", fill: \"currentColor\" },\n React__default.createElement(\"path\", { d: \"m8.446 6.397.084.073 2.5 2.5a.75.75 0 0 1-.976 1.133l-.084-.073-1.22-1.219v5.439a.75.75 0 0 1-1.493.102l-.007-.102V8.811l-1.22 1.22a.75.75 0 0 1-.976.072l-.084-.073a.75.75 0 0 1-.073-.976l.073-.084 2.5-2.5a.75.75 0 0 1 .976-.073zM9.5 1a4.75 4.75 0 0 1 4.677 5.586l-.057.271-.013.046.113.06a3.499 3.499 0 0 1 1.757 2.64l.018.213.005.193a3.491 3.491 0 0 1-3.3 3.486l-.191.005H10.75a.75.75 0 1 1 0-1.5h1.759c1.05 0 1.91-.812 1.986-1.843l.005-.148c0-.922-.63-1.717-1.511-1.936a.75.75 0 0 1-.507-1.027 3.25 3.25 0 1 0-6.1-2.213.75.75 0 0 1-1.07.453l-.217-.136a1.25 1.25 0 0 0-1.716 1.654l.12.212a.75.75 0 0 1-.494 1.048 1.998 1.998 0 0 0 .346 3.93L3.5 12h1.75a.75.75 0 1 1 0 1.5H3.5a3.5 3.5 0 0 1-3.495-3.308L0 10c0-1.217.626-2.308 1.597-2.936l.175-.107.063-.034-.02-.08-.036-.195-.022-.198-.007-.2a2.75 2.75 0 0 1 3.18-2.717l.209.042.12.033.094-.177a4.753 4.753 0 0 1 3.692-2.41l.236-.016L9.5 1z\" })));\n}\nvar CloudArrowUpIcon$1 = withSvgIcon(CloudArrowUpIcon, 'CloudArrowUpIcon');\n\nfunction HeartIcon() {\n return (React__default.createElement(\"g\", { className: \"heart-icon\" },\n React__default.createElement(\"path\", { d: \"m14.78 2.259c-0.77098-0.8019-1.8346-1.2563-2.947-1.259-1.1121 0.002982-2.1753 0.45735-2.946 1.259l-0.887 0.915-0.889-0.915c-0.76906-0.80332-1.8329-1.2576-2.945-1.2576s-2.1759 0.4543-2.945 1.2576c-1.628 1.677-1.628 4.396 0 6.074l6.243 6.438c0.13979 0.14616 0.33325 0.22883 0.5355 0.22883s0.39571-0.082668 0.5355-0.22883l6.244-6.438c0.7858-0.81546 1.2237-1.9046 1.221-3.037 0-1.14-0.44-2.232-1.22-3.037z\", fill: \"currentColor\" })));\n}\nvar HeartIcon$1 = withSvgIcon(HeartIcon, 'HeartIcon');\n\nfunction StarIcon() {\n return (React__default.createElement(\"g\", { className: \"star-icon\" },\n React__default.createElement(\"path\", { d: \"M5.738,5.528l-4.999.008-.103.007c-.634.085-.878.933-.34,1.345l4.06,3.105-1.548,5.028-.023.094c-.12.65.623,1.149,1.17.732L8,12.772l4.044,3.075.08.053c.564.332,1.272-.215,1.068-.879l-1.55-5.028l4.062-3.105.078-.069c.457-.454.152-1.282-.521-1.283l-5-.008L8.704,0.525c-.093271-.310889-.379421-.523792-.704-.523792s-.610729.212903-.704.523792L5.738,5.528Z\", fill: \"currentColor\" })));\n}\nvar StarIcon$1 = withSvgIcon(StarIcon, 'StarIcon');\n\nfunction ThumbsUpIcon() {\n return (React__default.createElement(\"g\", { className: \"thumbs-up-icon\" },\n React__default.createElement(\"path\", { d: \"M10,2.509c.125.598.06,1.217-.048,1.737l-.068.298-.073.269-.166.567c-.02.08-.022.122,0,.122h5.105c.462363-.026197.901269.205584,1.140346.602205s.239077.892969,0,1.28959-.677983.628402-1.140346.602205h-.5c.462363-.026197.901269.205584,1.140346.602205s.239077.892969,0,1.28959-.677983.628402-1.140346.602205l-.5.001c.462363-.026197.901269.205584,1.140346.602205s.239077.892969,0,1.28959-.677983.628402-1.140346.602205h-.75c.364265-.011529.705904.176222.891446.489903s.185543.703512,0,1.017194-.527181.501432-.891446.489903L8.078,15l-1.526-.013-.13-.005c-.378-.023-.8-.155-1.263-.397-.097921-.05214-.159074-.154063-.159-.265v-8.148c-.000163-.095485.045138-.185345.122-.242c1.113-.812,1.834-1.54,2.162-2.182.15-.303.245-.653.328-1l.12-.51c.148-.606.32-1.117.769-1.226.33-.08,1.23.205,1.5,1.497ZM2.8,6.001c.386209,0,.699448.312791.7.699v7.084c-.000552.386209-.313791.699-.7.699h-2.1c-.386209,0-.699448-.312791-.7-.699L0,6.7c0-.185652.07375-.363699.205025-.494975s.309323-.205025.494975-.205025h2.1Z\", fill: \"currentColor\" })));\n}\nvar ThumbsUpIcon$1 = withSvgIcon(ThumbsUpIcon, 'ThumbsUpIcon');\n\nfunction SmileyIcon() {\n return (React__default.createElement(\"g\", { className: \"smiley-icon\" },\n React__default.createElement(\"path\", { d: \"m8 0c4.4183 0 8 3.5817 8 8s-3.5817 8-8 8-8-3.5817-8-8 3.5817-8 8-8zm3.738 8.815c-0.1822-0.079843-0.38866-0.08403-0.57395-0.01164s-0.33423 0.21543-0.41405 0.39764c-0.4769 1.0938-1.5567 1.801-2.75 1.801s-2.2731-0.7072-2.75-1.801c-0.16624-0.37942-0.60858-0.55224-0.988-0.386s-0.55224 0.60858-0.386 0.988c0.71589 1.6395 2.335 2.6993 4.124 2.6993s3.4081-1.0597 4.124-2.6993c0.079843-0.1822 0.08403-0.38866 0.01164-0.57395s-0.21543-0.33423-0.39764-0.41405zm-7.238-3.315c-0.55228 0-1 0.44772-1 1s0.44772 1 1 1 1-0.44772 1-1-0.44772-1-1-1zm7 0c-0.55228 0-1 0.44772-1 1s0.44772 1 1 1 1-0.44772 1-1-0.44772-1-1-1z\", fill: \"currentColor\" })));\n}\nvar SmileyIcon$1 = withSvgIcon(SmileyIcon, 'SmileyIcon');\n\nfunction InfoIcon() {\n return (React__default.createElement(\"g\", { className: \"info-icon\" },\n React__default.createElement(\"path\", { fill: \"currentcolor\", d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm.775 6.632c-.081-.613-.868-.877-1.302-.39L5.94 7.963l-.067.088a.746.746 0 0 0 .13.967l.088.067c.305.2.72.15.969-.13l.224-.252.001 4.498.007.106c.082.613.868.877 1.302.39l1.567-1.756.068-.088a.746.746 0 0 0-.129-.967l-.088-.067a.75.75 0 0 0-.97.128l-.26.29.001-4.5zm-.742-4.181a.748.748 0 0 0-.749.747v1.05l.007.102a.749.749 0 0 0 1.491-.101V3.198l-.007-.101a.749.749 0 0 0-.742-.646z\" })));\n}\nvar InfoIcon$1 = withSvgIcon(InfoIcon, 'InfoIcon');\n\nconst useStyles$I = createUseStyles((theme) => ({\n checkboxInput: ({ checked, disabled, readOnly }) => {\n const checkBgColor = checked ? theme.questionColor : '#fff';\n const backgroundColor = disabled || readOnly ? '#aaa' : checkBgColor;\n return {\n color: disabled || readOnly ? '#aaa' : theme.questionColor,\n borderRadius: 2,\n backgroundColor,\n border: `1px solid ${disabled || readOnly ? '#aaa' : theme.questionColor}`,\n '& .checkmark': {\n fill: theme.isDark ? '#000' : '#fff',\n },\n '&:focus-within': {\n boxShadow: `0 0 0 1px ${theme.primaryAccentColor}`,\n borderColor: '#fff',\n },\n '& input': {\n cursor: 'pointer',\n },\n };\n },\n}));\n\nfunction CheckboxInput({ className, ...props }, ref) {\n const { inputProps, styleProps } = useInputStyles(props);\n const { checkboxInput } = useStyles$I(styleProps);\n return (React__default.createElement(BaseInput$1, { ref: ref, type: \"checkbox\", className: classNames(checkboxInput, className), icon: React__default.createElement(CheckboxIcon$1, null), ...inputProps }));\n}\nvar CheckboxInput$1 = React__default.forwardRef(CheckboxInput);\n\n// get the margin top by taking the font size and the line height and divide by 2 to get the margin top\nconst marginTopHelper = (height = 0, lineHeight = 1) => {\n return Math.max(0, (height * lineHeight - height) / 2); // no negative margins\n};\nconst useStyles$H = createUseStyles((theme) => ({\n checkboxContainer: ({ checked, disabled }) => {\n const borderStyle = checked ? 'solid' : 'dashed';\n const borderColor = disabled && !checked ? 'transparent' : theme.questionColor;\n const fontWeightOptions = getFontWeights(theme.questionBody.fontFamily);\n return {\n display: 'flex',\n alignItems: 'start',\n cursor: 'pointer',\n padding: [5, 8, 7, 8],\n gap: 8,\n borderRadius: 4,\n border: [1, 'solid', checked ? theme.questionColor : 'transparent'],\n backgroundColor: checked ? theme.input.bgColor : 'inherit',\n ...theme.questionBody,\n lineHeight: 1.5,\n fontWeight: checked\n ? fontWeightOptions.medium\n : theme.questionBody.fontWeight ?? fontWeightOptions.light,\n '&:hover': {\n border: [1, borderStyle, borderColor],\n },\n '&:focus-within': {\n background: theme.input.bgColor,\n },\n };\n },\n icon: {\n flexShrink: 0,\n fontSize: ({ inputSize }) => inputSize ?? '1em',\n marginTop: marginTopHelper(theme.questionBody?.fontSize, 1.5),\n // The following selector singles out Safari and Chrome on iOS14 to\n // implement a workaround for the lack of flex gap.\n '@supports (-webkit-touch-callout: none) and (not (translate: none))': {\n marginRight: 8,\n },\n },\n}));\n\nfunction Checkbox$2({ children: label = '', inputSize, onChange, ...props }, ref) {\n const handleChange = (e) => {\n onChange?.({\n id: e.target.id,\n checked: e.target.checked,\n value: e.target.value,\n });\n };\n const { inputProps, styleProps } = useInputStyles({\n ...props,\n onChange: handleChange,\n });\n const { checkboxContainer, icon } = useStyles$H({ ...styleProps, inputSize });\n return (React__default.createElement(\"label\", { htmlFor: inputProps.id, className: checkboxContainer, tabIndex: -1 },\n React__default.createElement(CheckboxInput$1, { ref: ref, ...inputProps, className: icon }),\n React__default.createElement(RichText, { element: \"span\", text: label })));\n}\nvar Checkbox$3 = forwardRef(Checkbox$2);\n\nconst useStyles$G = createUseStyles((theme) => ({\n checkbox: {\n '& label': {\n alignItems: 'baseline',\n },\n },\n labelContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n textInput: {\n opacity: ({ isChecked }) => (isChecked ? 1 : 0.5),\n marginTop: 5,\n marginLeft: 32,\n maxWidth: 'calc(100% - 32px)',\n [`@media (max-width: ${theme.breakpoints.xxs.max})`]: {\n marginLeft: 0,\n maxWidth: '100%',\n },\n // overwrite TextInput styles\n fontSize: theme.questionBody.fontSize,\n lineHeight: 'normal',\n },\n checkHover: {\n '&:hover': {\n outline: 'none',\n cursor: 'pointer',\n },\n },\n}));\n\nfunction CheckboxTextfield(props) {\n const { id, children: label, value: inputValue = '', defaultValue, maxLength, onClick, onKeyDown, onChange, checked: checkedProp = false, ...checkboxProps } = props;\n const [isChecked, setIsChecked] = useState(checkedProp);\n const [value, setValue] = React__default.useState(defaultValue || inputValue);\n const { checkbox, textInput, checkHover } = useStyles$G({\n isChecked,\n });\n const handleValueChange = (e) => {\n setValue(e.value);\n onChange?.({ id, value: e.value, checked: e.checked });\n };\n const handleInputChange = (e) => {\n if (!isChecked) {\n setIsChecked(true);\n }\n handleValueChange({ id, value: e.target.value, checked: true });\n };\n const inputRef = React__default.useRef(null);\n const handleCheckboxClick = (e) => {\n if (!isChecked && e.clientX !== 0 && e.clientY !== 0) {\n inputRef.current?.focus();\n }\n setIsChecked(!isChecked);\n onClick?.(e);\n };\n const handleTextboxClick = () => {\n if (!isChecked) {\n setIsChecked(true);\n }\n handleValueChange({ id, value, checked: true });\n };\n const handleKeyDown = (e) => {\n if (e.code === 'Space') {\n e.preventDefault();\n setIsChecked(!isChecked);\n handleValueChange({ id, value, checked: !isChecked });\n return;\n }\n onKeyDown?.(e);\n };\n React__default.useEffect(() => {\n setIsChecked(checkedProp);\n }, [checkedProp]);\n return (React__default.createElement(React__default.Fragment, null,\n React__default.createElement(Checkbox$3, { id: `checkbox-input-${id}`, checked: isChecked, onKeyDown: handleKeyDown, onClick: handleCheckboxClick, onChange: handleValueChange, className: checkbox, value: value, maxLength: maxLength, ...checkboxProps }, label),\n React__default.createElement(TextInput$1, { id: `checkbox-field-${id}`, onChange: handleInputChange, onClick: handleTextboxClick, className: classNames(textInput, { [checkHover]: !isChecked }), defaultValue: defaultValue, autoHeight: true, maxLength: maxLength, tabIndex: isChecked ? 0 : -1, ref: inputRef })));\n}\n\n/**\n * Maximum input characters is 20,000\n * Resolves: RAWR-1186\n */\nconst TEXT_INPUT_MAX_CHARS = 20000;\n\nconst useStyles$F = createUseStyles({\n commentChoiceContainer: {\n marginTop: '10px',\n },\n});\n\nconst INPUT_SIZE$2 = 20;\nfunction Checkbox({ id: questionId, required: _req, readOnly: _ro, disabled, columnLayout, choices = [], responses = [], choiceNoneOfTheAbove, choiceOther, choiceComment, onChange, title: titleProps, ...questionFieldProps }) {\n const [selectedChoices, setSelectedChoices] = useState(responses);\n const errorId = createErrorId(questionId);\n /**\n * Default value by id\n * used for text-input based choices\n */\n const getDefaultValueById = (id) => responses.find((c) => c.id === id)?.value;\n const handleDefault = (id) => responses.find((c) => c.id === id)?.value;\n const isChecked = (id) => !!selectedChoices.find((item) => item.id === id);\n const handleChange = (e) => {\n // 1. remove NOTA from array\n const newState = selectedChoices.filter((c) => c.id !== e.id && c.type !== 'NOTA');\n // 2. if e.target.checked remove item from array\n if (e.checked) {\n newState.push({ id: e.id, value: e.value });\n }\n setSelectedChoices(newState);\n onChange?.(newState);\n };\n const handleNAChange = (e) => {\n const newState = selectedChoices.filter((c) => c.type === 'COMMENT');\n // 2. if e.target.checked remove item from array\n if (e.checked) {\n newState.push({ id: e.id, value: e.value, type: 'NOTA' });\n }\n setSelectedChoices(newState);\n onChange?.(newState);\n };\n const handleOtherChange = (e) => {\n const newState = selectedChoices.filter((c) => c.id !== e.id && c.type !== 'NOTA');\n // 2. if e.target.checked remove item from array\n if (e.checked) {\n newState.push({ id: e.id, value: e.value, type: 'ANSWER' });\n }\n setSelectedChoices(newState);\n onChange?.(newState);\n };\n const handleCommentChange = (e) => {\n const newState = selectedChoices.filter((c) => c.type !== 'COMMENT');\n if (newState && !!e.target.value) {\n newState.push({\n id: e.target.id,\n value: e.target.value,\n type: 'COMMENT',\n });\n }\n setSelectedChoices(newState);\n onChange?.(newState);\n };\n const { commentChoiceContainer } = useStyles$F();\n const questionTitleProps = {\n requiredGroup: !!titleProps.required,\n ...titleProps,\n };\n return (React__default.createElement(QuestionField, { id: questionId, \"data-testid\": \"CheckboxQuestionType\", title: questionTitleProps, ...questionFieldProps },\n React__default.createElement(QuestionAnswerLayoutTemplate, { gridCellMargin: [0, 2, 5, 2], otherCellMargin: [0, 2, 5, 2], noneOfTheAbove: choiceNoneOfTheAbove &&\n choiceNoneOfTheAbove?.visible && (React__default.createElement(Checkbox$3, { id: choiceNoneOfTheAbove.id, value: choiceNoneOfTheAbove.id, onChange: handleNAChange, checked: isChecked(choiceNoneOfTheAbove.id), disabled: disabled, readOnly: _ro, \"aria-describedby\": (questionFieldProps.error && errorId) || undefined, inputSize: INPUT_SIZE$2 }, choiceNoneOfTheAbove.label)), other: choiceOther?.type === 'ANSWER' &&\n choiceOther?.visible && (React__default.createElement(CheckboxTextfield, { id: choiceOther.id, defaultValue: handleDefault(choiceOther.id), onChange: handleOtherChange, checked: isChecked(choiceOther.id), maxLength: TEXT_INPUT_MAX_CHARS, disabled: disabled, readOnly: _ro, \"aria-describedby\": (questionFieldProps.error && errorId) || undefined, inputSize: INPUT_SIZE$2 }, choiceOther.label)), columns: columnLayout }, choices?.map((choice) => {\n return (React__default.createElement(Checkbox$3, { key: choice.id, id: choice.id, onChange: handleChange, checked: isChecked(choice.id), value: choice.id, disabled: disabled, readOnly: _ro, \"aria-describedby\": (questionFieldProps.error && errorId) || undefined, inputSize: INPUT_SIZE$2 }, choice.label));\n })),\n choiceComment && (React__default.createElement(CommentChoice, { id: choiceComment.id, label: choiceComment.label, onChange: handleCommentChange, defaultValue: getDefaultValueById(choiceComment.id), lineCount: choiceComment.linesCount, charCount: choiceComment.charsCount, maxLength: TEXT_INPUT_MAX_CHARS, \"aria-describedby\": (questionFieldProps.error && errorId) || undefined, className: commentChoiceContainer }))));\n}\nvar Checkbox$1 = withErrorBoundary(Checkbox);\n\nfunction CommentBox({ id: questionId, required, disabled, readOnly, responses: defaultResponses = [], onChange, cols = 50, rows = 3, ...fieldProps }) {\n const { error, errorId = createErrorId(questionId), title: { id: titleId }, } = fieldProps;\n const defaultValue = useMemo(() => defaultResponses.find((r) => !!r.value)?.value ?? '', \n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n const handleChange = (e) => {\n const responses = e.target.value\n ? [{ id: questionId, value: e.target.value }]\n : [];\n onChange?.(responses);\n };\n return (React__default.createElement(QuestionField, { id: questionId, errorId: errorId, \"data-testid\": \"CommentBoxQuestionType\", ...fieldProps },\n React__default.createElement(TextArea$1, { name: questionId, defaultValue: defaultValue, disabled: disabled, readOnly: readOnly, required: required, cols: cols, rows: rows, onChange: handleChange, \"aria-invalid\": !!error, \"aria-describedby\": error && errorId, \"aria-labelledby\": titleId, maxLength: TEXT_INPUT_MAX_CHARS })));\n}\nvar CommentBox$1 = withErrorBoundary(CommentBox);\n\nconst useStyles$E = createUseStyles((theme) => {\n const { color, fontSize, fontFamily, fontWeight } = theme.questionBody;\n return {\n selectContainerStyles: {\n maxWidth: '100%',\n position: 'relative',\n display: 'inline-flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n overflow: 'hidden',\n transition: 'all 0.1s linear',\n borderRadius: `4px`,\n border: `2px solid transparent`,\n outline: `1px solid transparent`,\n '&:focus-within, &:hover': {\n border: `2px solid ${theme.primaryAccentColor}`,\n outline: `1px solid #fff`,\n },\n color: '#000',\n },\n selectStyles: {\n position: 'relative',\n display: 'inline-flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n overflow: 'hidden',\n fontSize,\n fontFamily,\n fontWeight,\n lineHeight: 'normal',\n outline: 'none',\n backgroundColor: '#fff',\n color: 'inherit',\n maxWidth: '100%',\n padding: ({ isRTL = false }) => isRTL ? '6px 6px 6px 1.75em' : '6px 1.75em 6px 6px',\n verticalAlign: 'bottom',\n textSizeAdjust: 'auto',\n // Prevent de fault chevron from showing\n mozAppearance: 'none',\n webkitAppearance: 'none',\n appearance: 'none',\n transition: 'border 0.1s linear',\n border: `1px solid ${color}`,\n '&:focus-within, &:hover': {\n border: `1px solid transparent`,\n },\n },\n selectIconStyles: {\n position: 'absolute',\n width: '1em',\n height: '1em',\n display: 'block',\n margin: '0 .5em',\n right: ({ isRTL = false }) => (isRTL ? 'auto' : 0),\n left: ({ isRTL = false }) => (isRTL ? 0 : 'auto'),\n zIndex: 2,\n pointerEvents: 'none',\n },\n disabledStyles: {\n opacity: 0.4,\n },\n };\n});\n\nfunction NativeSelect({ required, children, disabled, className, icon = React__default.createElement(SelectIcon$1, null), ...props }) {\n const { isRTL } = useContext(L10NContext);\n const { selectStyles, selectContainerStyles, selectIconStyles, disabledStyles, } = useStyles$E({ isRTL });\n const { className: iconClasses, ...iconProps } = icon.props;\n return (React__default.createElement(\"div\", { className: classNames(selectContainerStyles, disabled ? disabledStyles : {}, className) },\n React__default.cloneElement(icon, {\n // this will apply our placement styles, along with any other supplied classes\n className: classNames(selectIconStyles, iconClasses),\n // apply all other props.\n ...iconProps,\n }),\n React__default.createElement(\"select\", { className: selectStyles, required: required, \"aria-required\": required, \"data-testid\": \"select\", disabled: disabled, ...props }, children)));\n}\n\nconst useStyles$D = createUseStyles(({ questionBody: { fontFamily, fontSize, fontWeight }, }) => ({\n selectOption: {\n fontFamily,\n fontSize,\n fontWeight,\n },\n}));\nfunction SelectAnswerOption({ id, label, ...props }) {\n const { selectOption } = useStyles$D();\n return (React__default.createElement(\"option\", { id: id, \"data-testid\": \"select-answer-option\", className: selectOption, ...props }, label));\n}\n\nconst useStyles$C = createUseStyles((theme) => {\n const { color, fontSize, fontFamily, fontWeight } = theme.questionBody;\n return {\n inputGroup: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: ({ rtl }) => (rtl ? 'row-reverse' : 'row'),\n transition: 'all 0.1s linear',\n border: `1px solid ${color}`,\n '&:focus-within, &:hover': {\n border: `1px solid transparent`,\n },\n },\n input: {\n border: 'none',\n textAlign: ({ rtl }) => (rtl ? 'right' : 'left'),\n height: ({ height }) => height || 'auto',\n width: 'calc(100% - 30px)',\n outline: 'currentColor none medium',\n backgroundColor: '#FFF',\n padding: '6px 0 6px 10px',\n fontSize,\n fontFamily,\n fontWeight,\n },\n button: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n height: ({ height }) => height || 'auto',\n width: 30,\n backgroundColor: '#FFF',\n border: 'none',\n },\n buttonIcon: {\n transform: ({ isOpen }) => (isOpen ? 'rotate(180deg)' : 'rotate(0)'),\n },\n };\n});\n\nconst ComboBoxInputGroup = React__default.forwardRef(({ isOpen, value, height, rtl = false, onChange, open, close, onKeyDown, 'aria-activedescendant': ariaActiveDescendant, 'aria-autocomplete': ariaAutocomplete, 'aria-controls': ariaControls, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, className, ...rest }, ref) => {\n const inputRef = useRef(null);\n useImperativeHandle(ref, () => inputRef.current);\n const { inputGroup, input, button, buttonIcon } = useStyles$C({\n isOpen,\n height,\n rtl,\n });\n return (React__default.createElement(\"div\", { className: classNames(inputGroup, className), ...rest },\n React__default.createElement(\"input\", { className: input, type: \"text\", role: \"combobox\", \"aria-autocomplete\": ariaAutocomplete, \"aria-expanded\": isOpen, \"aria-controls\": ariaControls, \"aria-activedescendant\": ariaActiveDescendant, value: value, onChange: onChange, onClick: open, onKeyDown: onKeyDown, ref: inputRef }),\n React__default.createElement(\"button\", { className: button, type: \"button\", tabIndex: -1, \"aria-expanded\": isOpen, \"aria-controls\": ariaControls, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, onClick: () => {\n if (isOpen) {\n close();\n }\n else {\n open();\n }\n inputRef.current?.focus();\n } },\n React__default.createElement(CaretDownIcon, { className: buttonIcon }))));\n});\n\nconst useStyles$B = createUseStyles({\n listBox: {\n listStyle: 'none',\n width: 'fit-content',\n overflowY: 'auto',\n overflowX: 'hidden',\n '&:focus-visible': {\n outline: '#005fcc auto 1px',\n outlineOffset: 1,\n },\n },\n});\n\n/**\n * Scroll to the item at the specified index if it is fully or partially obscured\n * */\nconst scrollToItem = (itemRect, containerRef) => {\n const ulRect = containerRef.current?.getBoundingClientRect();\n if (!ulRect || !containerRef.current) {\n return;\n }\n if (itemRect.top < ulRect.top) {\n // eslint-disable-next-line no-param-reassign\n containerRef.current.scrollTop -= ulRect.top - itemRect.top;\n }\n else if (itemRect.bottom > ulRect.bottom) {\n // eslint-disable-next-line no-param-reassign\n containerRef.current.scrollTop += itemRect.bottom - ulRect.bottom;\n }\n};\n/**\n * Returns the number of items visible inside the listbox given its current dimensions\n * note: if height is 0, it will return 10 as a default to satisfy tests\n * */\nconst numItemsVisible = (containerHeight, itemHeight = 48) => {\n return !containerHeight ? 10 : Math.round(containerHeight / itemHeight);\n};\n\n/**\n * Focus another item in the listBox depending on which key is pressed\n * @param key The key that was pressed\n * @param focusedIndex The index of the currently focused item\n * @param itemCount The number of items in the listBox\n * @param visibleItemCount The number of items visible in the listBox\n * @param focusItem Function which updates the the currently focused item\n */\nconst focusNext = (key, focusedIndex, itemCount, visibleItemCount, focusItem) => {\n const lastIndex = itemCount - 1;\n if (key === 'End') {\n focusItem(lastIndex);\n return;\n }\n if (focusedIndex === null) {\n focusItem(0);\n return;\n }\n switch (key) {\n case 'Down':\n case 'ArrowDown':\n if (focusedIndex < lastIndex) {\n focusItem(focusedIndex + 1);\n }\n else {\n focusItem(0);\n }\n break;\n case 'Up':\n case 'ArrowUp':\n if (focusedIndex > 0) {\n focusItem(focusedIndex - 1);\n }\n else {\n focusItem(lastIndex);\n }\n break;\n case 'PageDown':\n if (focusedIndex < lastIndex - visibleItemCount) {\n focusItem(focusedIndex + visibleItemCount);\n }\n else {\n focusItem(lastIndex);\n }\n break;\n case 'PageUp':\n if (focusedIndex > visibleItemCount) {\n focusItem(focusedIndex - visibleItemCount);\n }\n else {\n focusItem(0);\n }\n break;\n case 'Home':\n focusItem(0);\n break;\n }\n};\n\nReact__default.forwardRef(({ children, focusedIndex: externalFocusedIndex, tabIndex, onKeyDown, onClick, onChange, className, ...rest }, ref) => {\n const { listBox } = useStyles$B();\n const [focusedIndex, setFocusedIndex] = useState(null);\n // override internal focusedIndex with external state if provided\n useEffect(() => {\n if (externalFocusedIndex !== undefined) {\n setFocusedIndex(externalFocusedIndex);\n }\n }, [externalFocusedIndex]);\n const itemsRef = useRef([]);\n const ulRef = useRef(null);\n const focusItem = (index) => {\n setFocusedIndex(index);\n };\n useImperativeHandle(ref, () => ulRef.current);\n useEffect(() => {\n if (focusedIndex === null) {\n return;\n }\n // Scroll to the currently focused item anytime the focused index changes\n scrollToItem(itemsRef.current?.[focusedIndex].getBoundingClientRect(), ulRef);\n // call the onChange callback if the focused index changes\n onChange?.({\n target: itemsRef.current[focusedIndex],\n value: itemsRef.current[focusedIndex].dataset.value ?? '',\n });\n }, [focusedIndex]);\n const handleKeyDown = (e) => {\n onKeyDown?.(e);\n if (!(e.target instanceof HTMLUListElement)) {\n return;\n }\n if ([\n 'Down',\n 'Up',\n 'ArrowDown',\n 'ArrowUp',\n 'PageDown',\n 'PageUp',\n 'End',\n 'Home',\n ].includes(e.key)) {\n e.preventDefault();\n // Focus another item in the listBox depending on which key is pressed\n focusNext(e.key, focusedIndex, itemsRef.current.length, numItemsVisible(ulRef.current?.getBoundingClientRect().height), focusItem);\n }\n };\n const handleClick = (e) => {\n onClick?.(e);\n if (e.target instanceof HTMLLIElement) {\n setFocusedIndex(itemsRef.current.indexOf(e.target));\n }\n };\n const interactiveProps = {\n tabIndex,\n 'aria-activedescendant': tabIndex !== undefined && focusedIndex !== null\n ? `ListBoxItem-${focusedIndex}`\n : undefined,\n };\n return (React__default.createElement(\"ul\", { ref: ulRef, className: classNames(listBox, className), role: \"listbox\", onKeyDown: handleKeyDown, onClick: handleClick, ...interactiveProps, ...rest }, React__default.Children.map(children, (child, index) => React__default.isValidElement(child) &&\n React__default.cloneElement(child, {\n key: child.props.value,\n id: child.props.id ?? `ListBoxItem-${index}`,\n selected: index === focusedIndex,\n ref: (el) => {\n itemsRef.current[index] = el;\n },\n }))));\n});\n\nconst useStyles$A = createUseStyles({\n listBoxItem: ({ selected, disabled }) => ({\n display: 'flex',\n alignItems: 'center',\n maxWidth: '100%',\n backgroundColor: '#FFF',\n cursor: 'pointer',\n ...(selected && {\n backgroundColor: 'rgb(237, 238, 238)',\n }),\n '&:hover, &:focus': {\n backgroundColor: 'rgb(237, 238, 238)',\n },\n '&:active': {\n backgroundColor: 'rgb(224, 226, 226)',\n },\n ...(disabled && {\n opacity: 0.5,\n pointerEvents: 'none',\n }),\n }),\n});\n\nconst ListBoxItem = React__default.forwardRef(({ children, disabled, selected, value, className, ...rest }, ref) => {\n const { listBoxItem } = useStyles$A({\n disabled,\n selected,\n });\n return (React__default.createElement(\"li\", { ref: ref, \"data-value\": value, className: classNames(listBoxItem, className), role: \"option\", \"aria-selected\": selected ? true : undefined, ...rest }, children));\n});\n\nconst useStyles$z = createUseStyles({\n listBoxContainer: {\n // TODO: Possible to utilize focus-visible to show only on keyboard interaction? (with child)\n '&:focus-within': {\n outline: '#005fcc auto 1px',\n outlineOffset: 1,\n },\n },\n listBox: {\n listStyle: 'none',\n width: 'fit-content',\n overflowY: 'auto',\n overflowX: 'hidden',\n padding: 0,\n },\n});\n\nconst ARIA_ACTIVEDESCENDANT = 'aria-activedescendant';\n/**\n * A virtualized version of the List component, using `react-window` to render large datasets. This component should only be used when the number of items would cause performance issues with the standard List component (most likely >500 items).\n */\nconst VirtualizedListBox = React__default.forwardRef(({ height = 325, width = 175, itemSize, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, [ARIA_ACTIVEDESCENDANT]: ariaActiveDescendant, tabIndex, itemCount, focusedIndex: externalFocusedIndex, onChange, onKeyDown, onClick, className, children, ...rest }, ref) => {\n const [focusedIndex, setFocusedIndex] = useState(null);\n const listRef = useRef(null);\n const innerRef = useRef(null);\n const outerRef = useRef(null);\n const itemsRef = useRef([]);\n // override internal focusedIndex with external state if provided\n useEffect(() => {\n if (externalFocusedIndex !== undefined) {\n if (externalFocusedIndex !== null) {\n listRef.current?.scrollToItem(externalFocusedIndex);\n }\n setFocusedIndex(externalFocusedIndex);\n }\n }, [externalFocusedIndex]);\n const { listBoxContainer, listBox } = useStyles$z();\n const handleChange = (item) => {\n onChange?.({\n target: item,\n value: item.dataset.value ?? '',\n });\n };\n /**\n * Scroll to and focus the item at the specified index\n */\n const focusItem = (index) => {\n listRef.current?.scrollToItem(index);\n setFocusedIndex(index);\n handleChange(itemsRef.current[index]);\n };\n useImperativeHandle(ref, () => ({\n listRef,\n innerRef,\n outerRef,\n itemsRef,\n }));\n const handleKeyDown = useCallback((e) => {\n onKeyDown?.(e);\n if (!(e.target instanceof HTMLUListElement)) {\n return;\n }\n if ([\n 'Down',\n 'Up',\n 'ArrowDown',\n 'ArrowUp',\n 'PageDown',\n 'PageUp',\n 'End',\n 'Home',\n ].includes(e.key)) {\n e.preventDefault();\n // Focus another item in the listBox depending on which key is pressed\n focusNext(e.key, focusedIndex, itemCount, numItemsVisible(outerRef.current?.getBoundingClientRect().height), focusItem);\n }\n }, [focusedIndex, itemCount, onKeyDown]);\n const handleClick = useCallback((e) => {\n onClick?.(e);\n if (e.target instanceof HTMLLIElement) {\n setFocusedIndex(itemsRef.current.indexOf(e.target));\n handleChange(e.target);\n }\n }, [onClick]);\n useSSRSafeLayoutEffect(() => {\n const listElement = innerRef.current;\n outerRef.current?.removeAttribute('tabindex');\n if (listElement) {\n listElement.className = listBox;\n listElement.setAttribute('role', 'listbox');\n listElement.addEventListener('keydown', handleKeyDown);\n listElement.addEventListener('click', handleClick);\n if (tabIndex === undefined) {\n listElement.removeAttribute('tabindex');\n }\n else {\n listElement.setAttribute('tabindex', tabIndex?.toString());\n }\n if (ariaLabel) {\n listElement.setAttribute('aria-label', ariaLabel);\n }\n if (ariaLabelledBy) {\n listElement.setAttribute('aria-labelledby', ariaLabelledBy);\n }\n }\n return () => {\n if (listElement) {\n listElement.removeEventListener('keydown', handleKeyDown);\n listElement.removeEventListener('click', handleClick);\n }\n };\n }, [\n ariaLabel,\n ariaLabelledBy,\n handleClick,\n handleKeyDown,\n listBox,\n tabIndex,\n ]);\n useSSRSafeLayoutEffect(() => {\n const listElement = innerRef.current;\n if (ariaActiveDescendant ||\n (tabIndex !== undefined && focusedIndex !== null)) {\n listElement?.setAttribute(ARIA_ACTIVEDESCENDANT, ariaActiveDescendant ?? `ListBoxItem-${focusedIndex}`);\n }\n else {\n listElement?.removeAttribute(ARIA_ACTIVEDESCENDANT);\n }\n }, [ariaActiveDescendant, focusedIndex, tabIndex]);\n return (React__default.createElement(FixedSizeList, { className: classNames(listBoxContainer, className), itemSize: itemSize, height: Math.min(height, itemCount * itemSize), width: width, innerElementType: \"ul\", innerRef: innerRef, outerRef: outerRef, overscanCount: 10, itemCount: itemCount, ref: listRef, ...rest }, (props) => React__default.cloneElement(children(props), {\n id: children(props).props.id ?? `ListBoxItem-${props.index}`,\n selected: props.index === focusedIndex,\n ref: (el) => {\n itemsRef.current[props.index] = el;\n },\n })));\n});\n\nconst useStyles$y = createUseStyles((theme) => {\n return {\n comboBox: {\n display: 'inline-block',\n width: ({ width }) => width,\n borderRadius: `4px`,\n border: `2px solid transparent`,\n outline: `1px solid transparent`,\n '&:focus-within, &:hover': {\n border: `2px solid ${theme.primaryAccentColor}`,\n outline: `1px solid #fff`,\n },\n },\n listBox: {\n display: ({ isOpen }) => (isOpen ? 'block' : 'none'),\n '&:focus-within': {\n outline: 'none',\n },\n border: '1px solid rgb(204, 204, 204)',\n },\n listBoxItem: {\n direction: ({ rtl }) => (rtl ? 'rtl' : 'ltr'),\n paddingLeft: '10px',\n },\n };\n});\n\nfunction ComboBox({ id, options, height, width = '100%', itemSize = 48, className, classes, filterOnChange = false, value: outsideValue = '', optionAlign = 'center', filter, onChange, rtl = false, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, ...rest }) {\n const comboBoxRef = useRef(null);\n const inputRef = useRef(null);\n const listBoxRef = useRef(null);\n const [isOpen, setIsOpen] = useState(false);\n const [value, setValue] = useState(outsideValue);\n const [currentOptions, setCurrentOptions] = useState(options);\n const [focusedIndex, setFocusedIndex] = useState(null);\n const [filterActive, setFilterActive] = useState(!filterOnChange);\n // the initial value of the input field when the listbox is opened (used to control whether the filter is active or not)\n const [valueOnOpen, setValueOnOpen] = useState(outsideValue);\n /** For preventing onChange being called on first render */\n const firstRender = useRef(true);\n const { comboBox, listBox, listBoxItem } = useStyles$y({\n isOpen,\n width,\n rtl,\n });\n const closeListBox = () => {\n if (isOpen) {\n setIsOpen(false);\n }\n };\n const openListBox = () => {\n if (!isOpen) {\n setValueOnOpen(value);\n setIsOpen(true);\n }\n };\n // close the listbox when the user clicks outside of it\n useOnFocusLeave(comboBoxRef, () => {\n closeListBox();\n setFocusedIndex(null);\n });\n const focusItem = (index) => {\n setFocusedIndex(index);\n };\n // call onChange when value changes\n useEffect(() => {\n if (firstRender.current) {\n firstRender.current = false;\n }\n else {\n onChange?.({\n value,\n target: inputRef.current,\n });\n }\n }, [value]);\n // filter the current options if a filter is provided and filtering is active. If filtering is inactive, reset the current options to the original options\n useEffect(() => {\n if (filter && filterActive) {\n setCurrentOptions(options.filter((option) => filter(option, value)));\n }\n else if (!filterActive) {\n setCurrentOptions(options);\n }\n }, [options, value, filter, filterActive]);\n // if filterOnChange is true, activate filtering if the value has changed since the listbox was opened, otherwise deactivate filtering\n useEffect(() => {\n if (filterOnChange) {\n setFilterActive(value !== valueOnOpen);\n }\n }, [filterOnChange, value, valueOnOpen]);\n // if the current value matches an option when the list opens, focus it and center it in the list\n useEffect(() => {\n if (isOpen) {\n const matchingOption = currentOptions.find((option) => option.label === value);\n if (matchingOption) {\n listBoxRef.current?.listRef.current?.scrollToItem(currentOptions.indexOf(matchingOption), optionAlign // position the option in the list according to the alignment (default is `center`)\n );\n setFocusedIndex(currentOptions.indexOf(matchingOption));\n }\n }\n }, [isOpen, currentOptions, value, optionAlign]);\n useEffect(() => {\n setValue(outsideValue);\n }, [outsideValue]);\n const handleKeyDown = (e) => {\n switch (e.key) {\n case 'ArrowDown':\n case 'Down':\n case 'ArrowUp':\n case 'Up':\n case 'PageDown':\n case 'PageUp':\n e.preventDefault();\n openListBox();\n if (!e.altKey) {\n focusNext(e.key, focusedIndex, currentOptions.length, numItemsVisible(listBoxRef.current?.outerRef.current?.getBoundingClientRect()\n .height, itemSize), focusItem);\n }\n break;\n case 'Escape':\n if (isOpen) {\n closeListBox();\n setFocusedIndex(null);\n }\n else {\n setValue('');\n }\n break;\n case 'Enter':\n e.preventDefault();\n if (isOpen) {\n if (focusedIndex !== null) {\n setValue(listBoxRef.current?.itemsRef.current?.[focusedIndex]\n .textContent ?? '');\n }\n closeListBox();\n setFocusedIndex(null);\n }\n break;\n }\n };\n const handleListBoxClick = () => {\n inputRef.current?.focus();\n closeListBox();\n };\n const activeDescendant = focusedIndex !== null && currentOptions[focusedIndex]\n ? `${id}-${currentOptions[focusedIndex].value}`\n : undefined;\n return (React__default.createElement(\"div\", { className: classNames(comboBox, classes?.comboBox, className), ref: comboBoxRef, ...rest },\n React__default.createElement(ComboBoxInputGroup, { ref: inputRef, className: classes?.inputGroup, height: height, rtl: rtl, value: value, isOpen: isOpen, \"aria-controls\": `${id}-listbox`, \"aria-autocomplete\": filter ? 'list' : 'none', \"aria-activedescendant\": activeDescendant, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, open: openListBox, close: closeListBox, onChange: (e) => setValue(e.target.value), onKeyDown: handleKeyDown }),\n React__default.createElement(VirtualizedListBox, { ref: listBoxRef, itemSize: itemSize, itemCount: currentOptions.length, className: classNames(listBox, classes?.listBox), focusedIndex: focusedIndex, width: comboBoxRef.current?.clientWidth, onChange: (e) => setValue(e.target?.textContent ?? ''), onClick: handleListBoxClick, tabIndex: -1, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-activedescendant\": activeDescendant, \n /**\n * adding inline style to overwrite react-window inline styles as per their docs\n * https://github.com/bvaughn/react-window\n */\n style: { position: 'absolute' } }, ({ index, style }) => (React__default.createElement(ListBoxItem, { className: classNames(listBoxItem, classes?.listBoxItem), style: style, value: currentOptions[index].value, id: `${id}-${currentOptions[index].value}`, key: `${id}-${currentOptions[index].value}` }, currentOptions[index].label)))));\n}\n\nconst useStyles$x = createUseStyles({\n srOnly: visuallyHidden,\n});\n\n/** default element for the visually hidden component */\nconst DEFAULT_ELEMENT = 'span';\n/**\n * A component to have visually hidden text still available to Assistive\n * Technologies, such as screen-readers.\n * All HTML properties are available on the selected `element` tag used.\n */\nfunction VisuallyHidden({ element: Tag = DEFAULT_ELEMENT, className, ...props }) {\n const { srOnly } = useStyles$x();\n return React__default.createElement(Tag, { className: classNames(srOnly, className), ...props });\n}\n\nconst useCalendarStyles = createUseStyles({\n calendarPickerWrapper: {\n width: ({ width }) => width,\n height: ({ height }) => height,\n border: '1px solid #CCCCCC',\n padding: '10px',\n background: '#FFFFFF',\n color: '#333333',\n },\n calendarControls: {\n display: 'flex',\n justifyContent: 'space-between',\n gap: '20px',\n },\n button: {\n border: 'none',\n borderRadius: 0,\n background: 'transparent',\n width: '60px',\n backgroundColor: '#FFFFFF',\n '&:hover': {\n backgroundColor: '#05467E',\n color: '#FFFFFF',\n },\n },\n comboboxWrapper: {\n display: 'flex',\n flexGrow: 1,\n '& > div': {\n width: '50%',\n },\n },\n monthWrapper: {\n display: 'grid',\n margin: '32px 0 0',\n gridTemplateColumns: `repeat(1, 100%)`,\n gridGap: '0 64px',\n },\n});\nconst useMonthStyles = createUseStyles({\n weekdayLabel: {\n textAlign: 'center',\n marginBottom: '10px',\n fontSize: '10px',\n },\n weekGrid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(7, 1fr)',\n justifyContent: 'center',\n },\n});\nconst useDayStyles = createUseStyles({\n dayDefault: {\n padding: '8px',\n border: '1px solid #CCCCCC',\n borderRadius: '0',\n color: '#001217',\n backgroundColor: '#FFFFFF',\n '&:hover': {\n color: '#FFFFFF',\n backgroundColor: '#05467E',\n borderColor: '#05467E',\n },\n },\n daySelected: {\n color: '#FFFFFF',\n backgroundColor: '#71c9ed',\n },\n daySelectedFirstOrLast: {\n color: '#FFFFFF',\n backgroundColor: '#000000',\n borderColor: '#000000',\n },\n dayDisabled: {\n color: '#808285',\n backgroundColor: '#FFFFFF',\n },\n});\n\nconst COPY$d = defineMessages({\n DAY_OF_MONTH: {\n id: 'Day.dayOfMonth',\n defaultMessage: '{dayInCalendar, date, full}',\n description: '[Type: label][Vis: high] - label for the full date',\n },\n});\nfunction Day({ dayLabel, date, focusedDate, isDateSelected, isDateFocused, isDateHovered, onDateHover, onDateSelect, onDateFocus, isFirstOrLastSelectedDate, }) {\n const dayRef = useRef(null);\n const fn = () => false;\n const { isSelected, isSelectedStartOrEnd, isWithinHoverRange, disabledDate, onClick, onKeyDown, onMouseEnter, tabIndex, } = Ne({\n date,\n focusedDate,\n isDateFocused,\n isDateSelected,\n isDateHovered,\n isDateBlocked: fn,\n isFirstOrLastSelectedDate,\n onDateFocus,\n onDateSelect,\n onDateHover,\n dayRef,\n });\n useEffect(() => {\n if (dayRef && dayRef.current && isDateFocused(date)) {\n dayRef.current.focus();\n }\n }, [dayRef, date, isDateFocused]);\n const { dayDefault, daySelected, daySelectedFirstOrLast, dayDisabled, } = useDayStyles();\n if (!dayLabel) {\n return React__default.createElement(\"div\", null);\n }\n return (React__default.createElement(\"button\", { onClick: onClick, onKeyDown: onKeyDown, onMouseEnter: onMouseEnter, tabIndex: tabIndex, type: \"button\", ref: dayRef, \"aria-label\": t(COPY$d.DAY_OF_MONTH, { dayInCalendar: date }), className: classNames(dayDefault, {\n [daySelected]: isSelected || isWithinHoverRange,\n [daySelectedFirstOrLast]: isSelectedStartOrEnd,\n [dayDisabled]: disabledDate,\n }) }, dayLabel));\n}\n\nconst COPY$c = defineMessages({\n DAY_OF_WEEK_LEGEND_SHORT: {\n id: 'Month.dayOfWeekLegendShort',\n defaultMessage: '{dayOfTheWeek, select, Mo {Mo} Tu {Tu} We {We} Th {Th} Fr {Fr} Sa {Sa} Su {Su}}',\n description: '[Type: label][Vis: high] - label for the day of the week in shorthand',\n },\n DAY_OF_WEEK_LEGEND_FULL: {\n id: 'Month.dayOfWeekLegendLong',\n defaultMessage: '{dayOfTheWeek, select, Mo {Monday} Tu {Tuesday} We {Wednesday} Th {Thursday} Fr {Friday} Sa {Saturday} Su {Sunday}}',\n description: '[Type: label][Vis: high] - label for the day of the week',\n },\n});\nfunction Month({ year, month, firstDayOfWeek, ...dayProps }) {\n const { days, weekdayLabels } = de({\n year,\n month,\n firstDayOfWeek,\n });\n const { weekdayLabel, weekGrid } = useMonthStyles();\n return (React__default.createElement(\"div\", null,\n React__default.createElement(\"div\", { className: weekGrid, role: \"grid\" },\n weekdayLabels.map((dayLabel) => (React__default.createElement(\"div\", { className: weekdayLabel, key: dayLabel, role: \"columnheader\" },\n React__default.createElement(\"span\", { role: \"presentation\" },\n React__default.createElement(T, { desc: COPY$c.DAY_OF_WEEK_LEGEND_SHORT, values: { dayOfTheWeek: dayLabel } })),\n React__default.createElement(VisuallyHidden, null,\n React__default.createElement(T, { desc: COPY$c.DAY_OF_WEEK_LEGEND_FULL, values: { dayOfTheWeek: dayLabel } }))))),\n days.map((day, index) => {\n if (typeof day === 'object') {\n return (React__default.createElement(Day, { date: day.date, key: day.dayLabel, dayLabel: day.dayLabel, ...dayProps }));\n }\n const emptyDayKey = `empty-day-${index}`;\n return React__default.createElement(\"div\", { key: emptyDayKey });\n }))));\n}\n\nconst COPY$b = defineMessages({\n PREVIOUS_MONTH: {\n id: 'CalendarPicker.previousMonth',\n defaultMessage: 'Previous Month',\n description: '[Type: button][Vis: high] - button label to go to previous month',\n },\n NEXT_MONTH: {\n id: 'CalendarPicker.nextMonth',\n defaultMessage: 'Next Month',\n description: '[Type: button][Vis: high] - button label to go to next month',\n },\n MONTH_SELECT: {\n id: 'CalendarPicker.month',\n defaultMessage: 'Select a month',\n description: '[Type: label][Vis: high] - label for month selection combo box',\n },\n YEAR_SELECT: {\n id: 'CalendarPicker.year',\n defaultMessage: 'Select a year',\n description: '[Type: label][Vis: high] - label for year selection combo box',\n },\n MONTHS: {\n id: 'CalendarPicker.months',\n defaultMessage: '{months, select, January {January} February {February} March {March} April {April} May {May} June {June} July {July} August {August} September {September} October {October} November {November} December {December}}',\n description: '[Type: label][Vis: high] - label for the months',\n },\n});\nconst startingYear = new Date().getFullYear() - 200;\nconst yearOptions = [...Array(251)].map((_, year) => ({\n label: `${startingYear + year}`,\n value: `${startingYear + year}`,\n}));\nfunction getPreviousMonth(currentMonth) {\n let newDate;\n if (currentMonth.getMonth() - 1 < 0) {\n newDate = new Date(currentMonth.getFullYear() - 1, 11, currentMonth.getDate());\n }\n else {\n const prevMonthLastDay = new Date(currentMonth.getFullYear(), currentMonth.getMonth(), 0).getDate();\n if (currentMonth.getDate() > prevMonthLastDay) {\n newDate = new Date(currentMonth.getFullYear(), currentMonth.getMonth() - 1, prevMonthLastDay);\n }\n else {\n newDate = new Date(currentMonth.getFullYear(), currentMonth.getMonth() - 1, currentMonth.getDate());\n }\n }\n return newDate;\n}\nfunction getNextMonth(currentMonth) {\n let newDate;\n if (currentMonth.getMonth() + 1 > 11) {\n newDate = new Date(currentMonth.getFullYear() + 1, 0, currentMonth.getDate());\n }\n else {\n const nextMonthLastDay = new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 2, 0).getDate();\n if (currentMonth.getDate() > nextMonthLastDay) {\n newDate = new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, nextMonthLastDay);\n }\n else {\n newDate = new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, currentMonth.getDate());\n }\n }\n return newDate;\n}\nconst comboBoxSeedId = 'calendar-picker-combobox';\nfunction CalendarPicker({ onDaySelect, onDateChange, selectedDate, width = '300px', height = 'auto', startingDayOfWeek = 0, }) {\n const focusTrapRef = useFocusTrap({\n selectors: ['button:not([tabindex=\"-1\"])', 'input'],\n });\n const comboboxId = useMemo(() => uniqueId(comboBoxSeedId), []);\n const selectId = useMemo(() => uniqueId('calendar-picker-select'), []);\n const [state, setState] = useState(selectedDate);\n const handleDateChange = ({ startDate }) => {\n const d = startDate ?? new Date();\n setState(d);\n onDaySelect?.(d);\n };\n const { firstDayOfWeek, activeMonths, isDateSelected, isDateHovered, isFirstOrLastSelectedDate, isDateFocused, focusedDate, onDateHover, onDateSelect, onDateFocus, goToDate, } = Ye({\n startDate: selectedDate,\n endDate: null,\n focusedInput: Pe,\n onDatesChange: handleDateChange,\n numberOfMonths: 1,\n /*\n * minBookingDays and exactBookingDays are used to remove the date range feature\n * see: https://github.com/tomgreenwood1/react-datepicker/tree/f2b1969cb4808c68d578428c4c5e6ed98c96461e/packages/hooks#exactminbookingdays-boolean--undefined-default-false\n */\n minBookingDays: 1,\n exactMinBookingDays: true,\n /*\n * firstDayofWeek is used to set the first day of the week. 0 = Sunday, 1 = Monday, etc.\n */\n firstDayOfWeek: startingDayOfWeek,\n });\n useEffect(() => {\n goToDate(selectedDate);\n }, [selectedDate, goToDate]);\n const currentMonth = activeMonths[0];\n const { comboboxWrapper, calendarControls, calendarPickerWrapper, button, monthWrapper, } = useCalendarStyles({\n height,\n width,\n });\n // populate monthOptions array\n const monthNames = [\n t(COPY$b.MONTHS, { months: 'January' }),\n t(COPY$b.MONTHS, { months: 'February' }),\n t(COPY$b.MONTHS, { months: 'March' }),\n t(COPY$b.MONTHS, { months: 'April' }),\n t(COPY$b.MONTHS, { months: 'May' }),\n t(COPY$b.MONTHS, { months: 'June' }),\n t(COPY$b.MONTHS, { months: 'July' }),\n t(COPY$b.MONTHS, { months: 'August' }),\n t(COPY$b.MONTHS, { months: 'September' }),\n t(COPY$b.MONTHS, { months: 'October' }),\n t(COPY$b.MONTHS, { months: 'November' }),\n t(COPY$b.MONTHS, { months: 'December' }),\n ];\n const monthOptions = monthNames.map((name) => ({\n label: name,\n value: name,\n }));\n const getMonthLabel = (monthNamesIndex) => {\n return monthNames[monthNamesIndex];\n };\n const handleMonthChange = (e) => {\n const monthIndex = monthOptions.findIndex((i) => i.value === e.target.value);\n const newDate = new Date(currentMonth.year, monthIndex, state.getDate());\n if (monthIndex !== -1) {\n goToDate(newDate);\n setState(newDate);\n onDateChange?.(newDate);\n }\n };\n const handleYearChange = (e) => {\n if (e.value.length >= 4) {\n const newDate = new Date(parseInt(e.value, 10), currentMonth.month, state.getDate());\n goToDate(newDate);\n setState(newDate);\n onDateChange?.(newDate);\n }\n };\n const handleGoToPreviousMonths = () => {\n const newDate = getPreviousMonth(state);\n setState(newDate);\n goToDate(newDate);\n onDateChange?.(newDate);\n };\n const handleGoToNextMonths = () => {\n const newDate = getNextMonth(state);\n setState(newDate);\n goToDate(newDate);\n onDateChange?.(newDate);\n };\n return (React__default.createElement(\"div\", { className: calendarPickerWrapper, \"data-testid\": \"CalendarPicker\", ref: focusTrapRef },\n React__default.createElement(\"div\", { className: calendarControls },\n React__default.createElement(\"button\", { type: \"button\", onClick: handleGoToPreviousMonths, className: button, \"aria-label\": t(COPY$b.PREVIOUS_MONTH), \"data-testid\": \"previous-month-button\" },\n React__default.createElement(CaretLeftOutlineIcon, null)),\n React__default.createElement(\"div\", { className: comboboxWrapper },\n React__default.createElement(\"div\", null,\n React__default.createElement(NativeSelect, { id: selectId, value: getMonthLabel(currentMonth.month), onChange: handleMonthChange }, monthOptions.map((option) => (React__default.createElement(SelectAnswerOption, { value: option.value, label: option.value, key: option.value }))))),\n React__default.createElement(\"div\", null,\n React__default.createElement(ComboBox, { id: comboboxId, \"aria-label\": t(COPY$b.YEAR_SELECT), options: yearOptions, value: currentMonth.year.toString(), onChange: handleYearChange }))),\n React__default.createElement(\"button\", { type: \"button\", onClick: handleGoToNextMonths, className: button, \"aria-label\": t(COPY$b.NEXT_MONTH), \"data-testid\": \"next-month-button\" },\n React__default.createElement(CaretRightOutlineIcon, null))),\n React__default.createElement(\"div\", { className: monthWrapper },\n React__default.createElement(Month, { year: currentMonth.year, month: currentMonth.month, firstDayOfWeek: firstDayOfWeek, onChange: goToDate, focusedDate: focusedDate, isDateSelected: isDateSelected, isDateFocused: isDateFocused, isDateHovered: isDateHovered, onDateHover: onDateHover, onDateSelect: onDateSelect, onDateFocus: onDateFocus, isFirstOrLastSelectedDate: isFirstOrLastSelectedDate }))));\n}\n\nconst useStyles$w = createUseStyles({\n container: {\n visibility: ({ calendarVisibility }) => {\n return calendarVisibility ? 'visible' : 'hidden';\n },\n },\n});\n\nconst DisclosureContainer = forwardRef(function DisclosureContainer({ onClose, visible = false, className, ...props }, ref) {\n const focusTrapRef = useFocusTrap({\n selectors: ['button:not([tabindex=\"-1\"])', 'input'],\n });\n const disclosureRef = useForkRef(focusTrapRef, ref);\n useEffect(() => {\n const handleKeyDown = (e) => {\n if (e.key === 'Escape') {\n onClose?.();\n }\n };\n const handleClick = (e) => {\n const target = e.target;\n const clickedOutside = !focusTrapRef.current?.contains(target);\n const comboBoxOptionClicked = !target.id.startsWith(comboBoxSeedId);\n if (visible && clickedOutside && comboBoxOptionClicked) {\n onClose?.();\n }\n };\n if (visible) {\n /*\n * RAWR-1437\n * Delay setting up the EventListener to after the current render, otherwise the handleClick triggers\n * when the calendar first opens and closes the calendar right away.\n */\n setTimeout(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClick);\n }, 0);\n }\n else {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClick);\n }\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClick);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n const { container } = useStyles$w({\n calendarVisibility: visible,\n });\n return (React__default.createElement(\"div\", { ref: disclosureRef, className: classNames(container, className), ...props }));\n});\n\n// constants.ts\nconst US_DATE_FORMAT = 'MM/DD/YYYY';\nconst EURO_DATE_FORMAT = 'DD/MM/YYYY';\n\nconst DATE_DELIMITER = /[/.-]/g;\nconst validDateStringCheck = (dateString) => {\n const badValues = ['0', ' '];\n const isValid = dateString.every((value) => {\n // eslint-disable-next-line no-restricted-globals\n return badValues.indexOf(value) === -1 && !isNaN(parseInt(value, 10));\n });\n return dateString.length === 3 && isValid;\n};\nconst toDateString = (date, format = US_DATE_FORMAT) => {\n if (!date) {\n return '';\n }\n const segments = date.toISOString().split('T')[0].split(DATE_DELIMITER);\n const [y, m, d] = segments.map((s) => s);\n if (format === US_DATE_FORMAT) {\n return `${m}/${d}/${y}`;\n }\n return `${d}/${m}/${y}`;\n};\nconst stringToDate = (dateString, format = US_DATE_FORMAT) => {\n if (!dateString) {\n return new Date();\n }\n if (!validDateStringCheck(dateString.split(DATE_DELIMITER))) {\n return new Date();\n }\n if (format === EURO_DATE_FORMAT) {\n const [d, m, y] = dateString.split(DATE_DELIMITER);\n return new Date(`${y.padStart(4, '0')}-${m.padStart(2, '0')}-${d.padStart(2, '0')}T00:00:00`);\n }\n const [m, d, y] = dateString.split(DATE_DELIMITER);\n return new Date(`${y.padStart(4, '0')}-${m.padStart(2, '0')}-${d.padStart(2, '0')}T00:00:00`);\n};\n\nconst useStyles$v = createUseStyles((theme) => {\n return {\n container: {\n position: 'relative',\n },\n dateInputWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n },\n dateInput: {\n maxWidth: '175px',\n maxHeight: '36px',\n padding: ({ isRTL = false }) => isRTL ? '6px 6px 6px 36px' : '6px 36px 6px 6px',\n },\n calendarButton: {\n borderRadius: 'none',\n border: 'none',\n margin: ({ isRTL = false }) => (isRTL ? '0 -37px 0 0' : '0 0 0 -37px'),\n height: '34px',\n width: '36px',\n fontSize: '15px',\n color: '#404040',\n backgroundColor: '#EFEFEF',\n '&:focus, &:hover': {\n cursor: 'pointer',\n outline: `2px solid ${theme.primaryAccentColor}`,\n background: 'linear-gradient(0deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.2) 30%, #EFEFEF 100%)',\n },\n '&:focus': {\n borderRadius: '3px',\n },\n '&:active': {\n background: 'linear-gradient(0deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.4) 30%, #EFEFEF 100%)',\n },\n '&:disabled': {\n opacity: '.5',\n },\n },\n calendarWrapper: {\n position: 'absolute',\n bottom: ({ calendarPosition }) => calendarPosition,\n zIndex: 100,\n },\n commentLabel: {\n fontWeight: theme.questionBody.fontWeight,\n fontFamily: theme.questionBody.fontFamily,\n marginBottom: 5,\n display: 'block',\n fontSize: '14px',\n },\n };\n});\n\nconst defaultLabels$1 = {\n dateInputLabel: 'Date',\n iconButton: 'Open Calendar',\n usDateFormat: 'MM/DD/YYYY',\n intlDateFormat: 'DD/MM/YYYY',\n};\nfunction DateInput({ onChange, dateFormat = US_DATE_FORMAT, defaultValue = '', id, className, labels = defaultLabels$1, ...props }, ref) {\n const [calendarVisibility, setCalendarVisibility] = useState(false);\n const dateInputID = useMemo(() => uniqueId('date-input-'), []);\n const internalInputRef = useRef(null);\n const inputRef = useForkRef(ref, internalInputRef);\n const calendarButtonRef = useRef(null);\n const disclosureRef = useRef(null);\n const dateValueRef = useRef(defaultValue);\n const calendarPosition = useRef('100%');\n useSSRSafeLayoutEffect(() => {\n if (internalInputRef.current && disclosureRef.current) {\n const inputBound = internalInputRef.current.getBoundingClientRect();\n const disclosureBound = disclosureRef.current.getBoundingClientRect();\n if (inputBound.top < disclosureBound.height) {\n // not enough space\n calendarPosition.current = 'auto';\n }\n else {\n calendarPosition.current = '100%';\n }\n }\n }, [calendarVisibility]);\n const { dateInputLabel, iconButton, usDateFormat, intlDateFormat } = labels;\n const handleCalendarVisibility = () => {\n setCalendarVisibility((s) => {\n return !s;\n });\n };\n const handleDisclosureClose = () => {\n calendarButtonRef.current?.focus();\n setCalendarVisibility(false);\n };\n const handleDaySelect = (date) => {\n const dateString = toDateString(date, dateFormat);\n dateValueRef.current = dateString;\n internalInputRef.current?.setAttribute('value', dateString);\n onChange?.(dateString);\n handleDisclosureClose();\n };\n const handleInputChange = (e) => {\n dateValueRef.current = e.target.value;\n onChange?.(e.target.value);\n };\n const { isRTL } = useContext(L10NContext);\n const { dateInput, calendarButton, calendarWrapper, commentLabel, dateInputWrapper, container, } = useStyles$v({\n isRTL,\n calendarPosition: calendarPosition.current,\n });\n return (React__default.createElement(\"div\", { className: classNames(container, className), id: id },\n React__default.createElement(\"label\", { htmlFor: dateInputID, className: commentLabel }, dateInputLabel),\n React__default.createElement(\"div\", { className: dateInputWrapper },\n React__default.createElement(TextInput$1, { \"data-testid\": \"DateInput\", className: dateInput, maxLength: 10, onChange: handleInputChange, defaultValue: dateValueRef.current, ref: inputRef, placeholder: dateFormat === 'DD/MM/YYYY' ? intlDateFormat : usDateFormat, id: dateInputID, ...props }),\n React__default.createElement(\"button\", { type: \"button\", ref: calendarButtonRef, className: calendarButton, onClick: handleCalendarVisibility, \"aria-expanded\": calendarVisibility, \"aria-label\": iconButton },\n React__default.createElement(CalendarIcon, null))),\n React__default.createElement(DisclosureContainer, { className: calendarWrapper, onClose: handleDisclosureClose, ref: disclosureRef, visible: calendarVisibility, \"data-testid\": \"DisclosureContainer\" },\n React__default.createElement(CalendarPicker\n /** date coming out */\n , { \n /** date coming out */\n onDaySelect: handleDaySelect, \n /** date going in */\n selectedDate: stringToDate(dateValueRef.current, dateFormat) }))));\n}\nvar DateInput$1 = forwardRef(DateInput);\n\nconst COPY$a = defineMessages({\n DATE_LABEL: {\n id: 'DateInputWrapper.dateLabel',\n defaultMessage: 'Date',\n description: '[Type: label][Vis: high] - label for date input',\n },\n DATE_BUTTON_LABEL: {\n id: 'DateInputWrapper.dateButton',\n defaultMessage: 'Open calendar',\n description: '[Type: button][Vis: high] - aria text for opening the calendar picker',\n },\n US_DATE_FORMAT: {\n id: 'DateInputWrapper.dateFormatUs',\n defaultMessage: 'MM/DD/YYYY',\n description: '[Type: label][Vis: high] - ISO 8601 US date character format notation. No localized delimiter translation. Must be uppercase.',\n },\n INTL_DATE_FORMAT: {\n id: 'DateInputWrapper.dateFormatIntl',\n defaultMessage: 'DD/MM/YYYY',\n description: '[Type: label][Vis: high] - ISO 8601 International date character format notation. Must be uppercase.',\n },\n});\nfunction DateInputWrapper(props, ref) {\n // translates and defines the label dictionary\n const l10n = {\n dateInputLabel: t(COPY$a.DATE_LABEL),\n iconButton: t(COPY$a.DATE_BUTTON_LABEL),\n usDateFormat: t(COPY$a.US_DATE_FORMAT),\n intlDateFormat: t(COPY$a.INTL_DATE_FORMAT),\n };\n return React__default.createElement(DateInput$1, { labels: l10n, ...props, ref: ref });\n}\nvar DateInputWrapper$1 = forwardRef(DateInputWrapper);\n\nconst useStyles$u = createUseStyles((theme) => ({\n container: {\n display: 'flex',\n },\n verticalContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n horizontalContainer: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-end',\n /**\n * including specific margin value to match production\n */\n marginRight: 35,\n },\n label: {\n fontSize: '14px',\n fontWeight: theme.questionBody.fontWeight,\n fontFamily: theme.questionBody.fontFamily,\n width: '100%',\n display: 'block',\n marginBottom: '5px',\n },\n input: {\n /**\n * including specific height and width values to match production\n */\n maxWidth: '50px',\n maxHeight: '36px',\n textAlign: 'center',\n },\n separator: {\n width: '20px',\n height: '36px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n srOnly: {\n ...visuallyHidden,\n },\n}));\n\nconst defaultLabels = {\n timeLabel: 'Time',\n hour: 'Hour',\n minutes: 'Minutes',\n daytimeLabel: 'AM/PM',\n am: 'AM',\n pm: 'PM',\n hourPlaceholder: 'hh',\n minutesPlaceholder: 'mm',\n};\nfunction TimeInput({ onChange, defaultValue = { hour: '', minute: '', period: 'AM' }, id = uniqueId('TimeInput-'), className, required, 'aria-describedby': ariaDescribedBy, labels = defaultLabels, }) {\n const [state, setState] = useState(defaultValue);\n const timeLabelID = `${id}-time-label`;\n const hourLabelID = `${id}-hour-label`;\n const hourInputID = `${id}-hour-input`;\n const minuteLabelID = `${id}-minute-label`;\n const minuteInputID = `${id}-minute-input`;\n const periodLabelID = `${id}-period-label`;\n const periodSelectID = `${id}-period-input`;\n const handleHourChange = (e) => {\n const newState = { ...state, hour: e.target.value };\n // if hour is > 12, set daytime period to PM\n if (!Number.isNaN(parseInt(newState.hour, 10)) &&\n parseInt(newState.hour, 10) > 12) {\n newState.period = 'PM';\n }\n if (!newState.period) {\n newState.period = 'AM';\n }\n setState(newState);\n onChange?.(newState);\n };\n const handleHourOnBlur = (e) => {\n const newState = { ...state };\n // if hour is > 12, subtract 12 from the hour value to maintain 12 hour time\n if (!Number.isNaN(parseInt(e.target.value, 10)) &&\n parseInt(e.target.value, 10) > 12) {\n newState.hour = String(parseInt(e.target.value, 10) - 12);\n setState(newState);\n onChange?.(newState);\n }\n };\n const handleMinuteChange = (e) => {\n const newState = {\n ...state,\n minute: e.target.value,\n };\n setState(newState);\n onChange?.(newState);\n };\n const handleSelectChange = (e) => {\n const newState = { ...state, period: e.target.value };\n setState(newState);\n onChange?.(newState);\n };\n const { container, verticalContainer, horizontalContainer, input, label, separator, srOnly, } = useStyles$u();\n return (React__default.createElement(\"div\", { className: classNames(container, className), id: id, \"data-testid\": \"TimeInput\" },\n React__default.createElement(\"div\", { className: verticalContainer },\n React__default.createElement(\"label\", { htmlFor: hourInputID, id: hourLabelID, \"aria-labelledby\": `${timeLabelID} ${hourLabelID}`, className: srOnly }, labels.hour),\n React__default.createElement(\"div\", { className: horizontalContainer },\n React__default.createElement(\"div\", { className: verticalContainer },\n React__default.createElement(\"div\", { className: label, id: timeLabelID }, labels.timeLabel),\n React__default.createElement(TextInput$1, { className: input, maxLength: 2, onChange: handleHourChange, onBlur: handleHourOnBlur, value: state.hour, placeholder: labels.hourPlaceholder, id: hourInputID, required: required, \"aria-describedby\": ariaDescribedBy })),\n React__default.createElement(\"span\", { className: separator }, \":\"),\n React__default.createElement(\"div\", { className: verticalContainer },\n React__default.createElement(\"label\", { htmlFor: minuteInputID, id: minuteLabelID, \"aria-labelledby\": `${timeLabelID} ${minuteLabelID}`, className: srOnly }, labels.minutes),\n React__default.createElement(TextInput$1, { className: input, maxLength: 2, onChange: handleMinuteChange, value: state.minute, placeholder: labels.minutesPlaceholder, id: minuteInputID, \"aria-labelledby\": `${timeLabelID} ${minuteLabelID}`, required: required, \"aria-describedby\": ariaDescribedBy })))),\n React__default.createElement(\"div\", { className: verticalContainer },\n React__default.createElement(\"label\", { id: periodLabelID, htmlFor: periodSelectID, className: label }, labels.daytimeLabel),\n React__default.createElement(NativeSelect, { id: periodSelectID, value: state.period, onChange: handleSelectChange, required: required },\n React__default.createElement(SelectAnswerOption, { value: \"AM\", label: labels.am }),\n React__default.createElement(SelectAnswerOption, { value: \"PM\", label: labels.pm })))));\n}\n\nconst COPY$9 = defineMessages({\n TIME_LABEL: {\n id: 'TimeInputWrapper.timeLabel',\n defaultMessage: 'Time',\n description: '[Type: label][Vis: high] - label for time input',\n },\n HOUR_LABEL: {\n id: 'TimeInputWrapper.hour',\n defaultMessage: 'Hour',\n description: '[Type: label][Vis: high] - label for hour input',\n },\n MINUTES_LABEL: {\n id: 'TimeInputWrapper.minutes',\n defaultMessage: 'Minutes',\n description: '[Type: label][Vis: high] - label for minutes input',\n },\n DAYTIME_LABEL: {\n id: 'TimeInputWrapper.daytimeLabel',\n defaultMessage: 'AM/PM',\n description: '[Type: label][Vis: high] - label for daytime AM/PM select',\n },\n AM: {\n id: 'TimeInputWrapper.am',\n defaultMessage: 'AM',\n description: '[Type: label][Vis: high] - label for ante meridiem',\n },\n PM: {\n id: 'TimeInputWrapper.pm',\n defaultMessage: 'PM',\n description: '[Type: label][Vis: high] - label for post meridiem',\n },\n HOUR_PLACEHOLDER: {\n id: 'TimeInputWrapper.hhPlaceholder',\n defaultMessage: 'hh',\n description: '[Type: placeholder][Vis: high] - placeholder text for hour input',\n },\n MINUTE_PLACEHOLDER: {\n id: 'TimeInputWrapper.mmPlaceholder',\n defaultMessage: 'mm',\n description: '[Type: placeholder][Vis: high] - placeholder text for minutes input',\n },\n});\nfunction TimeInputWrapper(props) {\n // translates and defines the label dictionary\n const l10n = {\n timeLabel: t(COPY$9.TIME_LABEL),\n hour: t(COPY$9.HOUR_LABEL),\n minutes: t(COPY$9.MINUTES_LABEL),\n daytimeLabel: t(COPY$9.DAYTIME_LABEL),\n am: t(COPY$9.AM),\n pm: t(COPY$9.PM),\n hourPlaceholder: t(COPY$9.HOUR_PLACEHOLDER),\n minutesPlaceholder: t(COPY$9.MINUTE_PLACEHOLDER),\n };\n return React__default.createElement(TimeInput, { labels: l10n, ...props });\n}\n\nconst useStyles$t = createUseStyles((theme) => {\n const { fontSize, fontFamily, fontWeight } = theme.questionBody;\n return {\n container: {\n display: 'flex',\n flexDirection: 'column',\n marginBottom: '7px',\n color: theme.answerColor,\n },\n label: {\n fontSize,\n fontFamily,\n fontWeight,\n color: theme.questionColor,\n marginBottom: '14px',\n },\n inputContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '35px',\n [`@media (max-width: ${theme.breakpoints.sm.min})`]: {\n flexDirection: 'column',\n gap: '5px',\n },\n },\n inlineErrorContainer: {\n padding: '10px 0',\n fontSize: '16px',\n fontWeight: theme.questionBody.fontWeight,\n fontFamily: theme.questionBody.fontFamily,\n '& ul': {\n padding: 0,\n margin: 0,\n },\n '& ul li': {\n paddingBottom: '0.2rem',\n listStyle: 'none',\n '&:before': {\n content: '\"*\"',\n marginRight: '5px',\n },\n },\n },\n };\n});\n\nconst COPY$8 = defineMessages({\n DATE_INTL_FORMAT_ERROR: {\n id: 'DateTime.formatErrorDateIntl',\n defaultMessage: 'Please provide date in DD/MM/YYYY format.',\n description: '[Type: label][Vis: high] - label for incorrect or missing date error (using ISO 8601 US date character format notation)',\n },\n DATE_US_FORMAT_ERROR: {\n id: 'DateTime.formatErrorDateUs',\n defaultMessage: 'Please provide date in MM/DD/YYYY format.',\n description: '[Type: label][Vis: high] - label for incorrect or missing date error (using ISO 8601 international date character format notation)',\n },\n ERROR_ENTER_HOURS: {\n id: 'DateTime.errorEnterHours',\n defaultMessage: 'Please enter hours from 0 to 12.',\n description: '[Type: label][Vis: high] - label for incorrect or missing hour input',\n },\n ERROR_ENTER_MINUTES: {\n id: 'DateTime.errorEnterMinutes',\n defaultMessage: 'Please enter minutes from 0 to 59.',\n description: '[Type: label][Vis: high] - label for incorrect or missing minute input',\n },\n ERROR_SELECT_PERIOD: {\n id: 'DateTime.errorSelectPeriod',\n defaultMessage: 'Please select AM/PM.',\n description: '[Type: label][Vis: high] - label for incorrect or missing period selection',\n },\n});\nfunction DateTime({ id: questionId, required, choices = [], responses = [], showDate = true, showTime = true, dateFormat, onChange, inlineErrors = [], ...questionFieldProps }) {\n const [responseValues, setResponseValues] = useState(responses);\n const errorId = createErrorId(questionId);\n const dateInputRef = useRef(null);\n /** Translation keys may change so this separates the key from the message */\n const errorMessage = useMemo(() => {\n return {\n ERROR_PROVIDE_DATE_INTL_FORMAT: t(COPY$8.DATE_INTL_FORMAT_ERROR),\n ERROR_PROVIDE_DATE_US_FORMAT: t(COPY$8.DATE_US_FORMAT_ERROR),\n ERROR_ENTER_HOURS: t(COPY$8.ERROR_ENTER_HOURS),\n ERROR_ENTER_MINUTES: t(COPY$8.ERROR_ENTER_MINUTES),\n ERROR_SELECT_PERIOD: t(COPY$8.ERROR_SELECT_PERIOD),\n };\n }, []);\n const getDateValueById = (id) => {\n const choice = responseValues.find((item) => item.id === id);\n return choice?.value.date;\n };\n const getTimeValueById = (id) => {\n const choice = responseValues.find((item) => item.id === id);\n return choice?.value\n ? {\n hour: choice?.value.hour,\n minute: choice?.value.minute,\n period: choice?.value.period,\n }\n : undefined;\n };\n const handleDateOrTimeChange = ({ id, date, time, }) => {\n const newState = responseValues.filter((r) => r.id !== id);\n const prevState = responseValues.find((r) => r.id === id) ?? {\n id,\n value: {\n date: '',\n hour: '',\n minute: '',\n period: 'AM',\n },\n };\n const newDateOrTime = time ?? { date };\n const newResponse = {\n id,\n value: { ...prevState.value, ...newDateOrTime },\n };\n if (newResponse.value?.date ||\n newResponse.value?.hour ||\n newResponse.value?.minute) {\n newState.push(newResponse);\n }\n setResponseValues(newState);\n onChange?.(newState);\n };\n const { container, label, inputContainer, inlineErrorContainer, } = useStyles$t();\n return (React__default.createElement(QuestionField, { id: questionId, \"data-testid\": \"DateTimeQuestionType\", ...questionFieldProps }, choices?.map((choice) => {\n return (React__default.createElement(\"div\", { className: container, key: choice.id, id: choice.id },\n React__default.createElement(RichText, { element: \"div\", text: choice.label, className: label }),\n React__default.createElement(\"div\", { className: inputContainer },\n showDate && (React__default.createElement(DateInputWrapper$1, { ref: dateInputRef, onChange: (date) => handleDateOrTimeChange({ id: choice.id, date }), defaultValue: getDateValueById(choice.id), dateFormat: dateFormat, required: required, \"aria-describedby\": (questionFieldProps.error && errorId) || undefined })),\n showTime && (React__default.createElement(TimeInputWrapper, { onChange: (time) => handleDateOrTimeChange({ id: choice.id, time }), defaultValue: getTimeValueById(choice.id), required: required }))),\n inlineErrors.length > 0 && (React__default.createElement(\"div\", { className: inlineErrorContainer },\n React__default.createElement(\"ul\", null, inlineErrors\n .filter((e) => e.fieldId === choice.id)\n .map((error) => (React__default.createElement(\"li\", { key: `${error.fieldId}-${error.detail}` }, errorMessage[error.detail]))))))));\n })));\n}\nvar DateTime$1 = withErrorBoundary(DateTime);\n\nconst useStyles$s = createUseStyles((theme) => {\n const defaultFontSize = theme.fontSize.body;\n const { fontFamily = 'inherit', fontWeight = 'inherit', fontStyle = 'inherit', textDecoration = 'inherit', highlightColor = 'inherit', color = 'inherit', } = theme.questionBody ?? {};\n return {\n otherStyles: {\n marginTop: '5px',\n display: 'block',\n },\n hiddenInput: {\n display: 'none',\n },\n commentChoice: {\n marginTop: 10,\n },\n label: {\n display: 'block',\n marginTop: '10px',\n position: 'relative',\n fontFamily,\n fontWeight,\n fontStyle,\n textDecoration,\n highlightColor,\n color,\n fontSize: defaultFontSize,\n },\n };\n});\n\n/**\n * MultipleChoice Question Type (Tier 2)\n */\nfunction Dropdown({ id: questionId, disabled, required: _required, readOnly: _readOnly, choices = [], choiceOther, choiceComment, responses: defaultResponses = [], onChange, ...fieldProps }) {\n const errorId = createErrorId(questionId);\n /** Filter choices that exist and are visible */\n const { options, sortableOptions, otherOption, commentOption, } = useQuestionChoices([...choices, choiceOther, choiceComment]);\n const [responseValue, setResponseValue] = useState(defaultResponses);\n const { otherStyles, hiddenInput, commentChoice } = useStyles$s();\n /**\n * Default value by id\n * used for text-input based choices\n */\n const getDefaultValueById = (id) => {\n const defaultChoice = defaultResponses.find((c) => c.id === id);\n return defaultChoice?.value;\n };\n /**\n * Default value for the choices\n */\n const defaultValue = useMemo(() => {\n return defaultResponses.find((c) => c.type !== 'COMMENT')?.id;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n /**\n * Other Answer Textfield state\n */\n const [otherText, setOtherText] = useState((otherOption && getDefaultValueById(otherOption.id)) || '');\n const handleSelectChange = (e) => {\n const choiceData = options.find((c) => c.id === e.target.value);\n const responses = responseValue.filter((c) => c.type === 'COMMENT');\n if (choiceData) {\n const { id, type } = choiceData;\n if (type === 'ANSWER') {\n /** Want to update the value with the value of the TextField texts, when otherAnswer is selected */\n responses.push({ id, type, value: otherText });\n }\n else {\n responses.push({ id, type, value: e.target.value });\n }\n }\n setResponseValue(responses);\n onChange?.(responses);\n };\n /**\n * Other Answer Textfield Change\n */\n const handleTextChange = (e) => {\n const choiceData = options.find((c) => c.type === 'ANSWER');\n const responses = responseValue.filter((c) => c.type === 'COMMENT');\n if (choiceData) {\n const { id, type } = choiceData;\n responses.push({ id, type, value: e.target.value });\n setOtherText(e.target.value);\n }\n setResponseValue(responses);\n onChange?.(responses);\n };\n const handleCommentChange = (e) => {\n const choiceData = options.find((c) => c.id === e.target.id);\n const responses = responseValue.filter((c) => c.type !== 'COMMENT');\n if (choiceData && !!e.target.value) {\n const { id, type } = choiceData;\n responses.push({ id, type, value: e.target.value });\n }\n setResponseValue(responses);\n onChange?.(responses);\n };\n const isOtherAnswerSelected = !!responseValue.find((c) => c.type === 'ANSWER');\n const multipleTextLines = otherOption && otherOption?.linesCount > 1;\n return (React__default.createElement(QuestionField, { id: questionId, errorId: errorId, \"data-testid\": \"DropdownQuestionType\", ...fieldProps },\n React__default.createElement(NativeSelect, { defaultValue: defaultValue, disabled: disabled, onChange: handleSelectChange },\n React__default.createElement(SelectAnswerOption, { value: undefined }),\n \" \",\n sortableOptions?.map((choice) => {\n return (React__default.createElement(SelectAnswerOption, { key: choice.id, id: choice.id, label: choice.label, value: choice.id }));\n }),\n otherOption && (React__default.createElement(SelectAnswerOption, { key: otherOption.id, id: otherOption.id, label: otherOption.label, value: otherOption.id }))),\n otherOption &&\n (multipleTextLines ? (React__default.createElement(TextArea$1, { defaultValue: getDefaultValueById(otherOption.id), autoFocus: false, rows: otherOption.linesCount, cols: otherOption.charsCount, maxLength: TEXT_INPUT_MAX_CHARS, onChange: handleTextChange, className: classNames(otherStyles, {\n [hiddenInput]: !isOtherAnswerSelected,\n }), tabIndex: isOtherAnswerSelected ? 0 : -1 })) : (React__default.createElement(TextInput$1, { defaultValue: getDefaultValueById(otherOption.id), autoFocus: false, autoHeight: true, size: otherOption.charsCount, maxLength: TEXT_INPUT_MAX_CHARS, onChange: handleTextChange, className: classNames(otherStyles, {\n [hiddenInput]: !isOtherAnswerSelected,\n }), tabIndex: isOtherAnswerSelected ? 0 : -1 }))),\n commentOption && (React__default.createElement(CommentChoice, { id: commentOption.id, label: commentOption.label, onChange: handleCommentChange, defaultValue: getDefaultValueById(commentOption.id), lineCount: commentOption.linesCount, charCount: commentOption.charsCount, maxLength: TEXT_INPUT_MAX_CHARS, \"aria-describedby\": fieldProps.error && errorId, className: commentChoice }))));\n}\nvar Dropdown$1 = withErrorBoundary(Dropdown);\n\nconst useStyles$r = createUseStyles((theme) => ({\n imageChoice: {\n display: 'flex',\n position: 'relative',\n },\n labelContainer: ({ checked, disabled }) => {\n const borderColor = disabled && !checked ? 'transparent' : theme.primaryAccentColor;\n return {\n display: 'flex',\n position: 'relative',\n flexDirection: 'column',\n cursor: 'pointer',\n width: '100%',\n border: [\n 1,\n 'solid',\n checked\n ? theme.questionColor\n : theme.questionBody.highlightColor ?? 'rgb(208, 210, 211)',\n ],\n borderRadius: 2,\n backgroundColor: checked ? theme.input.bgColor : 'inherit',\n ...theme.questionBody,\n '&:hover': {\n border: [1, 'solid', borderColor],\n },\n '&:focus-within': {\n border: [1, 'solid', borderColor],\n },\n };\n },\n controlImage: {\n position: 'absolute',\n right: '-1',\n top: '-1',\n width: '26px',\n height: '26px',\n transitionDuration: '0.3s',\n border: 'none',\n borderRadius: 2,\n zIndex: 10,\n transform: ({ checked }) => (checked ? 'scale(1)' : 'scale(0)'),\n },\n optionLabel: ({ checked }) => {\n return {\n padding: '9px 7px',\n width: '100%',\n wordWrap: 'break-word',\n fontWeight: checked ? 'bold' : 'normal',\n '&:focus-within': {\n background: theme.questionBody.highlightColor ?? 'rgb(208, 210, 211)',\n },\n };\n },\n imageContainer: {\n paddingTop: '75%',\n width: '100%',\n position: 'relative',\n '& > img': {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'contain',\n },\n },\n inputContainer: {\n width: '100%',\n display: 'flex',\n justifyContent: 'flex-end',\n backgroundColor: '#EFEFEF',\n },\n}));\n\nconst useStyles$q = createUseStyles((theme) => ({\n imageInput: ({ checked, disabled, readOnly }) => {\n const checkBgColor = checked ? theme.questionColor : 'transparent';\n const backgroundColor = disabled || readOnly ? '#aaa' : checkBgColor;\n return {\n color: disabled || readOnly ? '#aaa' : theme.input.activeColor,\n border: 'none',\n borderRadius: 4,\n backgroundColor,\n '& .checkmark': {\n fill: contrastColor(theme.input.activeColor),\n },\n '& input': {\n cursor: 'pointer',\n },\n };\n },\n}));\n\nfunction ImageInput({ className, type, ...props }, ref) {\n const { inputProps, styleProps } = useInputStyles(props);\n const { imageInput } = useStyles$q(styleProps);\n return (React__default.createElement(BaseInput$1, { ref: ref, type: type, className: classNames(imageInput, className), icon: React__default.createElement(CheckboxIcon$1, null), ...inputProps }));\n}\nvar ImageInput$1 = React__default.forwardRef(ImageInput);\n\nfunction ImageChoice$2({ id, type, alt = '', label, src: imageSrc, className, checked, name, onChange, onKeyDown, onClick, disabled: disabledProp, 'aria-disabled': ariaDisabledProp, readOnly: readOnlyProp, 'aria-readonly': ariaReadOnlyProp, ...inputProps }, ref) {\n const handleChange = (e) => {\n onChange?.({\n id: e.target.id,\n checked: e.target.checked,\n value: e.target.value,\n });\n };\n const handleClick = (e) => {\n onClick?.(e);\n if (e.isDefaultPrevented()) {\n return;\n }\n const target = e.target;\n let checkVal = true;\n if (!inputProps.required && checked) {\n checkVal = false;\n }\n onChange?.({\n id: target.id,\n checked: checkVal,\n value: target.value,\n });\n };\n const handleKeyboard = (e) => {\n onKeyDown?.(e);\n if (e.isDefaultPrevented()) {\n return;\n }\n const target = e.target;\n if (!inputProps.required && checked && e.code === 'Space') {\n e.preventDefault();\n onChange?.({\n id: target.id,\n checked: false,\n value: target.value,\n });\n }\n };\n const disabled = disabledProp || ariaDisabledProp === 'true';\n const readOnly = readOnlyProp || ariaReadOnlyProp === 'true';\n const { imageChoice, controlImage, inputContainer, labelContainer, optionLabel, imageContainer, } = useStyles$r({\n disabled,\n readOnly,\n checked,\n });\n const imageId = `${id}-image`;\n const labelId = `${id}-label`;\n const ariaDescribeId = alt ? imageId : undefined;\n const imageInputEvents = type === 'radio'\n ? {\n onClick: handleClick,\n onKeyDown: handleKeyboard,\n onChange: handleChange,\n }\n : { onChange: handleChange };\n return (React__default.createElement(\"div\", { className: imageChoice },\n React__default.createElement(\"label\", { htmlFor: id, className: classNames(labelContainer, className), tabIndex: -1 },\n React__default.createElement(\"div\", { className: inputContainer },\n React__default.createElement(ImageInput$1, { \"aria-labelledby\": labelId, \"aria-describedby\": ariaDescribeId, ref: ref, checked: checked, className: controlImage, id: id, type: type, value: id, name: name, ...inputProps, ...imageInputEvents }),\n React__default.createElement(\"div\", { className: imageContainer },\n React__default.createElement(\"img\", { id: imageId, src: imageSrc, alt: alt }))),\n label && (React__default.createElement(\"span\", { id: labelId, className: optionLabel }, label)))));\n}\nvar ImageChoiceOption = forwardRef(ImageChoice$2);\n\nconst useStyles$p = createUseStyles((theme) => {\n const isFull = theme.layout.includes('CENTER') || theme.layout.includes('BANNER');\n const isThird = theme.layout.includes('THIRD');\n const isHalf = theme.layout.includes('HALF') ||\n (theme.layout.includes('FULL') && !theme.layout.includes('CENTER'));\n const cols3 = 'repeat(3, minmax(0, 1fr))';\n const cols2 = 'repeat(2, minmax(0, 1fr))';\n const cols1 = 'minmax(0, 1fr)';\n return {\n imageChoiceContainer: {\n display: 'grid',\n flexWrap: 'wrap',\n gap: '25px',\n width: '100%',\n gridTemplateColumns: 'minmax(0, 1fr)',\n [`@media (min-width: ${theme.breakpoints?.md.min})`]: {\n gridTemplateColumns: isFull || isThird ? cols2 : cols1,\n },\n [`@media (min-width: ${theme.breakpoints?.lg.min})`]: {\n gridTemplateColumns: () => {\n if (isFull || isThird) {\n return cols3;\n }\n if (isHalf) {\n return cols2;\n }\n return cols1;\n },\n },\n [`@media (min-width: ${theme.breakpoints?.xl.min})`]: {\n gridTemplateColumns: isHalf ? cols2 : cols3,\n },\n },\n imageChoice: {\n width: '100%',\n },\n noneOfTheAboveContainer: {\n marginTop: '15px',\n },\n };\n});\n\nconst INPUT_SIZE$1 = 20;\nfunction ImageChoice({ id: questionId, readOnly, required, disabled, multiple = false, choices = [], choiceNoneOfTheAbove, onChange, responses = [], title: titleProps, ...questionFieldProps }) {\n const imageChoiceType = multiple ? 'checkbox' : 'radio';\n const groupName = !multiple ? `${questionId}-imageChoice` : undefined;\n const errorId = createErrorId(questionId);\n const [selectedChoices, setSelectedChoices] = useState(responses);\n const handleChange = (e) => {\n const newState = !multiple\n ? []\n : selectedChoices.filter((c) => c.id !== e.id && c.type !== 'NOTA');\n if (e.checked) {\n newState.push({ id: e.id, value: e.value });\n }\n setSelectedChoices(newState);\n onChange?.(newState);\n };\n const handleNAChange = (e) => {\n const newState = [];\n if (e.checked) {\n newState.push({ id: e.id, value: e.value, type: 'NOTA' });\n }\n setSelectedChoices(newState);\n onChange?.(newState);\n };\n const isChecked = (id) => !!selectedChoices.find((item) => item.id === id);\n const { imageChoiceContainer, imageChoice, noneOfTheAboveContainer, } = useStyles$p();\n const questionTitleProps = {\n requiredGroup: !!titleProps.required,\n ...titleProps,\n };\n return (React__default.createElement(QuestionField, { id: questionId, \"data-testid\": \"ImageChoiceQuestionType\", errorId: errorId, title: questionTitleProps, ...questionFieldProps },\n React__default.createElement(\"div\", { className: imageChoiceContainer }, choices?.map((choice) => {\n return (React__default.createElement(ImageChoiceOption, { key: choice.id, id: choice.id, required: required, disabled: disabled, readOnly: readOnly, label: choice.label, onChange: handleChange, className: imageChoice, value: choice.id, src: choice.image.url, alt: choice.image.altText || '', name: groupName, type: imageChoiceType, \"aria-describedby\": (questionFieldProps.error && errorId) || undefined, checked: isChecked(choice.id) }));\n })),\n choiceNoneOfTheAbove && choiceNoneOfTheAbove?.visible && (React__default.createElement(\"div\", { className: noneOfTheAboveContainer },\n React__default.createElement(Checkbox$3, { id: choiceNoneOfTheAbove.id, value: choiceNoneOfTheAbove.id, onChange: handleNAChange, checked: isChecked(choiceNoneOfTheAbove.id), disabled: disabled, readOnly: readOnly, \"aria-describedby\": (questionFieldProps.error && errorId) || undefined, inputSize: INPUT_SIZE$1 }, choiceNoneOfTheAbove.label)))));\n}\nvar ImageChoice$1 = withErrorBoundary(ImageChoice);\n\nconst useStyles$o = createUseStyles({\n imageStyles: {\n maxWidth: '100%',\n display: 'block',\n },\n});\n\nfunction Image({ alt = '', className, ...props }) {\n const { imageStyles } = useStyles$o();\n return (React__default.createElement(\"img\", { className: classNames(imageStyles, className), \"data-testid\": \"image\", alt: alt, ...props }));\n}\n\nconst useStyles$n = createUseStyles((theme) => {\n return {\n presentationalTitleStyles: {\n fontFamily: theme.questionTitle.fontFamily ?? 'inherit',\n fontSize: theme.questionTitle.fontSize ?? '16px',\n fontWeight: theme.questionTitle.fontWeight ?? (theme.isAccessible ? 500 : 300),\n marginBottom: '24px',\n textDecoration: theme.questionTitle.textDecoration ?? 'inherit',\n },\n buttonStyles: {\n marginTop: '20px',\n },\n };\n});\n\nfunction ImagePresentational({ text, image, padding = { top: 0, bottom: 0, left: 0, right: 0 }, id, okButton = { visible: false }, }) {\n const richTextId = `text-presentational-header-${id}`;\n const { presentationalTitleStyles, buttonStyles } = useStyles$n();\n const { visible: showButton, ...buttonProps } = okButton;\n return (React__default.createElement(QuestionSpacing, { padding: padding, \"data-testid\": \"ImagePresentational\" },\n text && (React__default.createElement(RichText, { id: richTextId, element: \"div\", text: text, className: presentationalTitleStyles })),\n React__default.createElement(Image, { ...image }),\n showButton && React__default.createElement(Button, { ...buttonProps, className: buttonStyles })));\n}\nvar ImagePresentational$1 = withErrorBoundary(ImagePresentational);\n\nconst useStyles$m = createUseStyles((theme) => ({\n radioInput: {\n '& label': {\n alignItems: 'baseline',\n },\n },\n labelContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n textInput: {\n opacity: ({ checked }) => (checked ? 1 : 0.5),\n cursor: ({ checked }) => (checked ? 'inherit' : 'pointer'),\n marginTop: 5,\n marginLeft: 32,\n maxWidth: 'calc(100% - 32px)',\n [`@media (max-width: ${theme.breakpoints.xxs.max})`]: {\n marginLeft: 0,\n maxWidth: '100%',\n },\n // overwrite TextInput styles\n fontSize: theme.questionBody.fontSize,\n lineHeight: 'normal',\n },\n checkHover: {\n '&:hover': {\n outline: 'none',\n },\n },\n}));\n\nfunction RadioTextfield({ refs, ...props }) {\n const { id, children: label, checked: checkedProp = false, value: valueProp, defaultValue, lineCount = 1, charCount = 50, maxLength, onClick, onChange, ...radioProps } = props;\n const radioGroup = useRadioGroup();\n const [checked, setChecked] = useState(checkedProp);\n const [value, setValue] = useState(defaultValue || valueProp);\n const radioInputRef = useRef(null);\n const radioRef = useForkRef(radioInputRef, refs?.radio);\n const textInputRef = useRef(null);\n const inputRef = useForkRef(textInputRef, refs?.text);\n const multipleTextLines = lineCount > 1;\n const handleValueChange = (e) => {\n radioGroup?.onChange(e);\n setValue(e.value);\n onChange?.(e);\n };\n const handleInputChange = (e) => {\n handleValueChange({ id, value: e.target.value, checked });\n };\n const handleFocusChange = (e) => {\n handleValueChange({ id, value: e.target.value, checked });\n };\n const handleClick = (e) => {\n /**\n * Selection via keyboard calls onClick event - check for\n * mouse-position to ensure we were called by a pointing device.\n */\n if (!checked && e.clientX !== 0 && e.clientY !== 0) {\n textInputRef?.current?.focus();\n }\n setChecked(true);\n onClick?.(e);\n };\n useEffect(() => {\n setChecked(checkedProp);\n }, [checkedProp]);\n useEffect(() => {\n if (radioGroup?.value !== value) {\n setChecked(false);\n }\n }, [radioGroup, value]);\n const { radioInput, textInput, checkHover } = useStyles$m({\n checked,\n });\n return (React__default.createElement(React__default.Fragment, null,\n React__default.createElement(Radio$1, { id: `radio-input-${id}`, checked: checked, value: value, onClick: handleClick, onChange: handleValueChange, className: radioInput, ref: radioRef, ...radioProps }, label),\n multipleTextLines ? (React__default.createElement(TextArea$1, { id: `radio-field-${id}`, defaultValue: defaultValue, autoFocus: false, rows: lineCount, cols: charCount, maxLength: maxLength, onClick: handleClick, onChange: handleInputChange, onBlur: handleFocusChange, onFocus: handleFocusChange, className: classNames(textInput, {\n [checkHover]: !checked,\n }), ref: inputRef, tabIndex: checked ? 0 : -1 })) : (React__default.createElement(TextInput$1, { id: `radio-field-${id}`, defaultValue: defaultValue, autoFocus: false, autoHeight: true, size: charCount, maxLength: maxLength, onClick: handleClick, onChange: handleInputChange, onBlur: handleFocusChange, onFocus: handleFocusChange, className: classNames(textInput, {\n [checkHover]: !checked,\n }), ref: inputRef, tabIndex: checked ? 0 : -1 }))));\n}\n\nconst useStyles$l = createUseStyles({\n commentChoiceContainer: {\n marginTop: '10px',\n },\n});\n\nconst INPUT_SIZE = 20;\n/**\n * MultipleChoice Question Type (Tier 2)\n */\nfunction MultipleChoice({ id: questionId, required, disabled, readOnly, columnLayout = 1, choices = [], choiceNoneOfTheAbove, choiceOther, choiceComment, responses: defaultResponses = [], onChange, title: titleProps, ...fieldProps }) {\n const groupId = createFieldId(questionId);\n const errorId = createErrorId(questionId);\n /** Filter choices that exist and are visible */\n const { options, sortableOptions, notaOption, otherOption, commentOption, } = useQuestionChoices([\n ...choices,\n choiceNoneOfTheAbove,\n choiceOther,\n choiceComment,\n ]);\n const [responseValue, setResponseValue] = useState(defaultResponses);\n /**\n * Default value by id\n * used for text-input based choices\n */\n const getDefaultValueById = (id) => {\n const defaultChoice = defaultResponses.find((c) => c.id === id);\n return defaultChoice?.value;\n };\n /**\n * Default value for the group\n */\n const defaultValue = useMemo(() => defaultResponses.find((c) => c.type !== 'COMMENT')?.value, \n // defaultValues should not be changed post render (breaks rules of controlled components)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n /**\n * Determine if choice is selected\n * @return TRUE if the choice.id exists in responses\n */\n const isChecked = (id) => {\n return !!responseValue.find((c) => c.id === id);\n };\n const handleRadioChange = (e) => {\n const choiceData = options.find((c) => e.id.match(c.id));\n const responses = responseValue.filter((c) => c.type === 'COMMENT');\n if (choiceData) {\n const { id, type } = choiceData;\n responses.push({ id, type, value: e.value });\n }\n setResponseValue(responses);\n onChange?.(responses);\n };\n const handleCommentChange = (e) => {\n const choiceData = options.find((c) => c.id === e.target.id);\n const responses = responseValue.filter((c) => c.type !== 'COMMENT');\n if (choiceData && !!e.target.value) {\n const { id, type } = choiceData;\n responses.push({ id, type, value: e.target.value });\n }\n setResponseValue(responses);\n onChange?.(responses);\n };\n /**\n * deselect choice if the question is not required\n */\n const unCheckOption = () => {\n if (required) {\n return;\n }\n const responses = responseValue.filter((c) => c.type === 'COMMENT');\n setResponseValue(responses);\n onChange?.(responses);\n };\n const handleClick = (e) => {\n // match is used since RadioTextfield applies a prefix\n // to maintain unique ID's'\n const input = e.target;\n const isSelected = responseValue.find((c) => input.id.match(c.id));\n if (isSelected && input.checked) {\n e.preventDefault();\n unCheckOption();\n }\n };\n const handleKeyboard = (e) => {\n const isSelected = responseValue.find((c) => e.target.id.match(c.id));\n if (isSelected && e.code === 'Space') {\n e.preventDefault();\n unCheckOption();\n }\n };\n const radioEvents = { onClick: handleClick, onKeyDown: handleKeyboard };\n const radioGroupProps = {\n disabled,\n readOnly,\n name: groupId,\n defaultValue,\n onChange: handleRadioChange,\n };\n const { commentChoiceContainer } = useStyles$l();\n const questionTitleProps = {\n requiredGroup: !!titleProps.required,\n ...titleProps,\n };\n return (React__default.createElement(QuestionField, { id: questionId, errorId: errorId, \"data-testid\": \"MultipleChoiceQuestionType\", title: questionTitleProps, ...fieldProps },\n React__default.createElement(RadioGroup, { ...radioGroupProps },\n React__default.createElement(QuestionAnswerLayoutTemplate, { gridCellMargin: [0, 2, 5, 2], otherCellMargin: [0, 2, 5, 2], columns: columnLayout, other: otherOption && (React__default.createElement(RadioTextfield, { id: otherOption.id, checked: isChecked(otherOption.id), defaultValue: getDefaultValueById(otherOption.id), lineCount: otherOption.linesCount, charCount: otherOption.charsCount, maxLength: TEXT_INPUT_MAX_CHARS, \"aria-describedby\": fieldProps.error && errorId, inputSize: INPUT_SIZE, ...radioEvents }, otherOption.label)), noneOfTheAbove: notaOption && (React__default.createElement(Radio$1, { id: notaOption.id, value: notaOption.id, checked: isChecked(notaOption.id), \"aria-describedby\": fieldProps.error && errorId, inputSize: INPUT_SIZE, ...radioEvents }, notaOption.label)) }, sortableOptions.map((choice) => (React__default.createElement(Radio$1, { id: choice.id, key: choice.id, value: choice.id, checked: isChecked(choice.id), \"aria-describedby\": fieldProps.error && errorId, inputSize: INPUT_SIZE, ...radioEvents }, choice.label)))),\n commentOption && (React__default.createElement(CommentChoice, { id: commentOption.id, label: commentOption.label, onChange: handleCommentChange, defaultValue: getDefaultValueById(commentOption.id), lineCount: commentOption.linesCount, charCount: commentOption.charsCount, maxLength: TEXT_INPUT_MAX_CHARS, \"aria-describedby\": fieldProps.error && errorId, className: commentChoiceContainer })))));\n}\n\nconst useStyles$k = createUseStyles((theme) => {\n const { fontSize, fontFamily, fontWeight } = theme.questionBody;\n return {\n container: {\n display: 'flex',\n flexDirection: 'row',\n wordBreak: 'break-word',\n marginBottom: '7px',\n [`@media (max-width: ${theme.breakpoints.sm.min})`]: {\n flexWrap: 'wrap',\n },\n },\n label: {\n fontSize,\n fontFamily,\n fontWeight,\n color: theme.questionColor,\n flex: '0 0 20%',\n marginRight: '7px',\n [`@media (max-width: ${theme.breakpoints.sm.min})`]: {\n flex: '0 0 100%',\n margin: '0 2px 2px 0',\n },\n },\n input: {\n marginTop: 'auto',\n flex: 'auto',\n },\n };\n});\n\nfunction MultipleTextbox({ id: questionId, required, disabled, readOnly, choices = [], responses = [], onChange, size, ...fieldProps }) {\n const [responseValues, setResponseValues] = useState(responses);\n const { error, errorId = createErrorId(questionId) } = fieldProps;\n const getDefaultValueById = (id) => {\n const defaultChoice = responseValues.find((item) => item.id === id);\n return defaultChoice?.value;\n };\n const handleChange = (e) => {\n const newState = responseValues.filter((response) => response.id !== e.target.id);\n if (e.target.value) {\n const newResponse = { id: e.target.id, value: e.target.value };\n newState.push(newResponse);\n }\n setResponseValues(newState);\n onChange?.(newState);\n };\n const { container, label, input } = useStyles$k();\n return (React__default.createElement(QuestionField, { id: questionId, errorId: errorId, \"data-testid\": \"MultipleTextbox\", ...fieldProps }, choices?.map((choice) => {\n const labelId = `${choice.id}-label`;\n return (React__default.createElement(\"div\", { className: container, key: choice.id },\n React__default.createElement(\"label\", { className: label, id: labelId, htmlFor: choice.id },\n React__default.createElement(RichText, { element: \"span\", text: choice.label })),\n React__default.createElement(TextInput$1, { id: choice.id, defaultValue: getDefaultValueById(choice.id), required: required, disabled: disabled, readOnly: readOnly, size: size, onChange: handleChange, \"aria-invalid\": !!error, \"aria-describedby\": error && errorId, maxLength: TEXT_INPUT_MAX_CHARS, className: input })));\n })));\n}\n\nconst useStyles$j = createUseStyles((theme) => {\n const fontWeightOptions = getFontWeights(theme.questionBody.fontFamily);\n return {\n npsContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minWidth: 230,\n },\n npsLabel: {\n color: theme.questionColor,\n fontFamily: theme.questionBody.fontFamily,\n fontSize: 14,\n fontWeight: fontWeightOptions.light,\n lineHeight: 1.25,\n },\n npsRatingButtonList: {\n margin: 0,\n padding: 0,\n display: 'inline-flex',\n listStyleType: 'none',\n border: [1, 'solid', theme.primaryAccentColor],\n borderRadius: 4,\n overflow: 'hidden',\n outline: [2, 'solid', 'transparent'],\n outlineOffset: 2,\n width: '100%',\n },\n npsRatingButton: ({ isRTL }) => ({\n padding: 0,\n minWidth: 20,\n flex: '1 1 9.09%',\n '& + $npsRatingButton': {\n borderLeft: isRTL ? 0 : [2, 'solid', theme.primaryAccentColor],\n borderRight: isRTL ? [2, 'solid', theme.primaryAccentColor] : 0,\n },\n }),\n minLabel: ({ isRTL }) => ({\n margin: isRTL ? [0, 4, 2, 0] : [0, 0, 2, 4],\n }),\n maxLabel: ({ isRTL }) => ({\n margin: isRTL ? [0, 0, 2, 4] : [0, 4, 2, 0],\n }),\n srOnly: visuallyHidden$1,\n };\n});\n\nconst useStyles$i = createUseStyles((theme) => {\n // theme.correctAnswerHighlightColor is the correct color, but not an accurate token.\n const focusBackgroundColor = theme.correctAnswerHighlightColor;\n return {\n container: {\n position: 'relative',\n display: 'flex',\n cursor: 'pointer',\n },\n radio: {\n appearance: 'none',\n outline: 'none',\n position: 'absolute',\n width: '100%',\n height: '100%',\n '&:focus + $label, &:hover + $label': {\n border: [2, 'solid', theme.primaryAccentColor],\n backgroundColor: focusBackgroundColor,\n },\n '&:checked + $label': {\n backgroundColor: theme.questionColor,\n color: theme.primaryBackgroundColor,\n fontWeight: 'bold',\n transition: 'background 200ms ease',\n },\n },\n label: {\n position: 'relative',\n cursor: 'pointer',\n display: 'flex',\n justifyContent: 'center',\n border: [2, 'solid', 'transparent'],\n backgroundColor: theme.primaryBackgroundColor,\n color: theme.questionColor,\n fontFamily: theme.fontFamily,\n fontSize: 15,\n fontWeight: 700,\n padding: [10, 0],\n width: '100%',\n },\n };\n});\nfunction NpsRatingButton({ id, className, children: label, component: Tag = 'div', ...props }) {\n const styles = useStyles$i();\n return (React__default.createElement(Tag, { className: classNames(styles.container, className) },\n React__default.createElement(\"input\", { id: id, type: \"radio\", className: styles.radio, ...props }),\n React__default.createElement(\"label\", { className: classNames(styles.label), htmlFor: id }, label)));\n}\n\nconst COPY$7 = defineMessages({\n NPS_QUESTION_TITLE: {\n id: 'Nps.QUESTION_TITLE',\n defaultMessage: '
On a scale of {minValue} to {maxValue},
{heading}
{minValue} for {minLabelText}, {maxValue} for {maxLabelText}
',\n description: '[Type: header][Vis: high] - question title',\n },\n});\n/** Unicode dash characters, in addition to standard delimiters (forward/back-slash, pipe, hyphen) */\nconst LABEL_SEPERATOR = /\\s(?:[\\u2010-\\u2015\\u2043/\\-|])\\s/gi;\nfunction Nps({ id: questionId, choices = [], className, title, rowId, responses: defaultResponses = [], required, onChange, ...fieldProps }) {\n const [responseValue, setResponseValue] = useState(defaultResponses);\n const defaultValue = useMemo(() => defaultResponses.find((r) => !!r.value)?.value ?? '', \n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n const ratingChanged = (e) => {\n const { value } = e.target;\n const response = value ? [{ id: rowId, value }] : [];\n /**\n * FIXES: RAWR-1628\n * Safari doesn't apply focus by default; an inelegant solution for an inelegant browser.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#clicking_and_focus\n */\n e.target.focus();\n setResponseValue(response);\n onChange?.(response);\n };\n const unCheckOption = (input) => {\n if (required) {\n return;\n }\n // eslint-disable-next-line no-param-reassign\n input.checked = false;\n setResponseValue([]);\n onChange?.([]);\n };\n const buttonClicked = (e) => {\n const input = e.target;\n const isSelected = responseValue[0]?.value === input.value;\n if (isSelected && input.checked) {\n unCheckOption(input);\n }\n };\n const handleKeyboard = (e) => {\n const input = e.target;\n const isSelected = responseValue[0]?.value === input.value;\n if (isSelected && e.code === 'Space') {\n e.preventDefault();\n unCheckOption(input);\n }\n };\n const getLabel = (str) => {\n let parts = str.split(LABEL_SEPERATOR);\n // the direction of the label is not always written reverse,\n // and is not based on RTL. (i.e. Russian)\n if (Number.isNaN(Number(parts[0]))) {\n parts = parts.reverse();\n }\n const [numLabel, textLabel] = parts;\n return [numLabel, textLabel ?? numLabel];\n };\n const { isRTL } = useContext(L10NContext);\n const errorId = createErrorId(questionId);\n const { npsContainer, npsLabel, minLabel, maxLabel, srOnly, npsRatingButtonList, npsRatingButton, } = useStyles$j({\n isRTL,\n });\n const { heading } = title;\n const minFullLabel = choices[0]?.label ?? '';\n const maxFullLabel = choices.slice(-1)[0]?.label ?? '';\n const [minValue, minLabelText] = getLabel(minFullLabel);\n const [maxValue, maxLabelText] = getLabel(maxFullLabel);\n const instructionsId = `${questionId}-instructions`;\n const accessibleHeading = t(COPY$7.NPS_QUESTION_TITLE, {\n minValue,\n maxValue,\n minLabelText,\n maxLabelText,\n heading,\n instructionsId,\n srOnlyClass: classNames(srOnly),\n });\n const accessibleTitle = {\n ...title,\n heading: accessibleHeading,\n };\n return (React__default.createElement(QuestionField, { id: questionId, errorId: errorId, \"data-testid\": \"NpsQuestionType\", title: accessibleTitle, ...fieldProps },\n React__default.createElement(\"div\", { className: classNames(npsContainer, className) },\n React__default.createElement(\"span\", { className: classNames(npsLabel, minLabel), role: \"presentation\" }, minLabelText),\n React__default.createElement(\"span\", { className: classNames(npsLabel, maxLabel), role: \"presentation\" }, maxLabelText),\n React__default.createElement(\"div\", { className: classNames(npsRatingButtonList) }, choices.map((c) => (React__default.createElement(NpsRatingButton, { id: `${questionId}-${c.id}`, key: `${questionId}-${c.id}`, name: `${questionId}-rating`, value: c.id, className: classNames(npsRatingButton), onChange: ratingChanged, onClick: buttonClicked, onKeyDown: handleKeyboard, defaultChecked: defaultValue === c.id }, getLabel(c.label)[0])))))));\n}\n\nconst useStyles$h = createUseStyles((theme) => ({\n gridCell: {\n display: 'flex',\n flex: '1 auto',\n position: 'relative',\n padding: 3,\n },\n gridCellMobile: {\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n justifyContent: 'flex-start',\n background: theme.correctAnswerHighlightColor,\n marginTop: '5px',\n marginBottom: '5px',\n },\n },\n}));\n\nfunction GridCell({ isGridWhenMobile, children, ...props }) {\n const { gridCell, gridCellMobile } = useStyles$h();\n return (React__default.createElement(\"div\", { className: classNames(gridCell, {\n [gridCellMobile]: !isGridWhenMobile,\n }), role: \"gridcell\", ...props }, children));\n}\n\nconst useStyles$g = createUseStyles((theme) => ({\n labelVisibleBase: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n textAlign: 'left',\n padding: [3, 3, 3, 7],\n fontWeight: theme.questionBody.fontWeight ?? null,\n fontFamily: theme.questionBody.fontFamily ?? null,\n fontSize: theme.questionBody.fontSize ?? null,\n width: 150,\n [`@media (max-width: ${theme.breakpoints?.sm.max})`]: {\n width: 100,\n },\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n width: 75,\n },\n },\n labelVisibleMobile: {\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n width: '100%',\n },\n },\n labelHidden: { display: 'none' },\n rowBaseStyles: {\n display: 'flex',\n width: '100%',\n color: theme.answerColor,\n border: 'none',\n background: theme.correctAnswerHighlightColor,\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n marginTop: '5px',\n marginBottom: '5px',\n },\n },\n rowAsColumnStyles: {\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n flexDirection: 'column',\n },\n },\n}));\n\nfunction GridRow({ id: rowId, row: rowIndex, label, columnDataArray, hideLabel, className, gridComponent, isGridWhenMobile, }) {\n const { rowBaseStyles, rowAsColumnStyles, labelHidden, labelVisibleBase, labelVisibleMobile, } = useStyles$g();\n const labelVisibleClass = isGridWhenMobile\n ? labelVisibleBase\n : classNames(labelVisibleBase, labelVisibleMobile);\n const labelClass = hideLabel ? labelHidden : labelVisibleClass;\n return (React__default.createElement(\"div\", { id: rowId, role: \"row\", className: classNames(rowBaseStyles, className, {\n [rowAsColumnStyles]: !isGridWhenMobile,\n }) },\n React__default.createElement(\"div\", { id: `${rowId}-header`, role: \"rowheader\", className: labelClass },\n React__default.createElement(RichText, { element: \"span\", text: label })),\n columnDataArray.map(({ id: colId }, colIndex) => {\n const cellId = `${rowId}-${colId}-cell`;\n const props = {\n rowId,\n rowIndex,\n colId,\n colIndex,\n label,\n 'aria-labelledby': `${rowId}-header ${colId}-header`,\n };\n return (React__default.createElement(GridCell, { id: cellId, key: cellId, \"data-row\": rowIndex, \"data-col\": colIndex, isGridWhenMobile: isGridWhenMobile }, gridComponent?.({ ...props })));\n })));\n}\n\nconst useStyles$f = createUseStyles((theme) => ({\n gridContainer: {\n width: '100%',\n // grid keeps the grid rows all the same length, and therefore the grid columns in alignment\n display: 'grid',\n },\n gridStyles: {\n display: 'flex',\n flexWrap: 'wrap',\n color: theme.answerColor,\n border: 'none',\n },\n stripeBasic: {\n '& [role=\"row\"]:nth-child(even)': {\n background: 'transparent',\n },\n },\n stripeBasicMobile: {\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n '& [role=\"row\"]': {\n background: 'transparent',\n },\n },\n },\n stripeOther: {\n '& [role=\"row\"]': {\n background: 'transparent',\n width: '100%',\n '& [data-other]': { textAlign: 'left' },\n },\n // alternating elements 2 at a time (1+2, 5+6, 9+10) with n starting at 0\n '& [role=\"row\"]:nth-child(4n+1), & [role=\"row\"]:nth-child(4n+2)': {\n background: theme.correctAnswerHighlightColor,\n },\n },\n stripeOtherMobile: {\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n '& [role=\"row\"]:nth-child(4n+1), & [role=\"row\"]:nth-child(4n+2)': {\n background: 'transparent',\n },\n },\n },\n columnContainerBase: {\n display: 'flex',\n width: '100%',\n },\n columnContainerMobile: {\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n display: 'none',\n },\n },\n columnHeader: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-end',\n flex: 1,\n padding: 3,\n color: theme.answerColor,\n fontWeight: theme.questionBody.fontWeight ?? null,\n fontFamily: theme.questionBody.fontFamily ?? null,\n fontSize: 14,\n textAlign: 'center',\n },\n bufferVisible: {\n width: 150,\n [`@media (max-width: ${theme.breakpoints?.sm.max})`]: {\n width: 100,\n },\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n width: 75,\n },\n },\n bufferHidden: { display: 'none' },\n scrollContainer: {\n overflowX: 'auto',\n },\n}));\n\nfunction MatrixGrid({ id, className, rowDataArray, columnDataArray, commentColumnOtherOption, hideLabel, gridComponent, commentColumnComponent, isGridWhenMobile, }) {\n const gridRef = useRef(null);\n /**\n * @note This is specific to MatrixRating, logic should be moved there and favour\n * composition over configuration\n */\n /** If true \"other\" inputs are rendered per-row */\n const hasCommentColumnOther = commentColumnOtherOption?.type === 'COMMENT_COLUMN' &&\n commentColumnComponent;\n let computedRows;\n if (hasCommentColumnOther) {\n // fill rows with artificial rows for the other column options\n computedRows = rowDataArray.reduce((acc, row) => {\n return [\n ...acc,\n row,\n {\n ...row,\n id: `${row.id}-other`,\n associatedId: row.id,\n isOtherRow: true,\n },\n ];\n }, []);\n }\n else {\n computedRows = rowDataArray;\n }\n const { gridStyles, columnContainerBase, columnContainerMobile, columnHeader, bufferHidden, bufferVisible, stripeBasic, stripeBasicMobile, stripeOther, stripeOtherMobile, gridContainer, scrollContainer, } = useStyles$f();\n const columnCount = columnDataArray.length;\n const stripeOtherClass = isGridWhenMobile\n ? stripeOther\n : classNames(stripeOther, stripeOtherMobile);\n const stripeBasicClass = isGridWhenMobile\n ? stripeBasic\n : classNames(stripeBasic, stripeBasicMobile);\n const renderStripe = commentColumnOtherOption\n ? stripeOtherClass\n : stripeBasicClass;\n const bufferClass = hideLabel ? bufferHidden : bufferVisible;\n return (React__default.createElement(\"div\", { className: scrollContainer },\n React__default.createElement(\"div\", { id: id, role: \"grid\", ref: gridRef, className: gridContainer },\n React__default.createElement(\"div\", { role: \"rowgroup\", className: \"ghead\" },\n React__default.createElement(\"div\", { role: \"row\", className: classNames(columnContainerBase, {\n [columnContainerMobile]: !isGridWhenMobile,\n }) },\n React__default.createElement(\"div\", { role: \"gridcell\", className: bufferClass }),\n columnDataArray.map((column) => {\n return (React__default.createElement(\"div\", { id: `${column.id}-header`, role: \"columnheader\", key: column.id, className: columnHeader },\n React__default.createElement(RichText, { element: \"span\", text: column.label })));\n }))),\n React__default.createElement(\"div\", { role: \"rowgroup\", className: classNames('gbody', gridStyles, renderStripe, className) }, computedRows.map((row, rowIndex) => !row.isOtherRow ? (React__default.createElement(GridRow, { id: row.id, hideLabel: hideLabel, key: row.id, row: rowIndex, label: row.label, columnDataArray: columnDataArray, gridComponent: gridComponent, isGridWhenMobile: isGridWhenMobile })) : (React__default.createElement(\"div\", { role: \"row\", \"data-other\": true, key: row.id },\n React__default.createElement(GridCell, { id: `${rowIndex}-${columnCount + 1}-cell`, \"data-row\": rowIndex, \"data-col\": columnCount + 1, colSpan: columnCount + 1, isGridWhenMobile: isGridWhenMobile }, commentColumnComponent?.({\n commentColumnOtherOption,\n row,\n columnCount,\n })))))))));\n}\n\nconst useStyles$e = createUseStyles({\n cellInputWrapper: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n },\n});\n\nconst UNSELECTED_OPTION = 'unselectedOption';\nconst COPY$6 = defineMessages({\n SELECT_AN_OPTION: {\n id: 'MatrixDropdown.EmptyTopNativeSelect',\n defaultMessage: 'Select an option',\n description: 'Label for screen readers when the top/default selection is empty',\n },\n});\nfunction MatrixDropdown({ id: questionId, choices: rows = [], columnChoices: columns = [], choiceComment, onChange, responses: defaultResponses = [], disabled: _disabled, readOnly: _ro, title: titleProps, ...questionFieldProps }) {\n const errorId = createErrorId(questionId);\n /** Filter choices that exist and are visible */\n const { options, sortableOptions: sortableRows, commentOption, } = useQuestionChoices([...rows, choiceComment]);\n const [responseValue, setResponseValue] = useState(defaultResponses);\n /**\n * Default value by id\n * used for text-input based choices (i.e. choiceComment)\n * Matrix provides a 2D Array construct\n */\n const getDefaultValueById = (id) => {\n const defaultChoice = defaultResponses.find((c) => c.id === id);\n return defaultChoice?.value[0]?.value;\n };\n const handleChange = (e, gridCell) => {\n const { rowId, colId } = gridCell;\n const storedValuesForGrid = responseValue.filter((r) => !(r.id === rowId));\n const rowDataContainingChange = responseValue.find((r) => r.id === rowId) || {\n id: rowId,\n value: [],\n };\n const prevCellsForChangedRow = rowDataContainingChange.value.filter((cell) => cell.id !== colId);\n const newCellData = { id: colId, value: e.target.value };\n // remove old data for the changed cell\n const newCellsForChangedRow = prevCellsForChangedRow.filter((cell) => cell.id !== colId);\n if (newCellData.value !== UNSELECTED_OPTION) {\n newCellsForChangedRow.push(newCellData);\n }\n // add the new row if at least one cell has a value other than UNSELECTED_OPTION\n const newRowForGrid = newCellsForChangedRow.length > 0\n ? [{ ...rowDataContainingChange, value: newCellsForChangedRow }]\n : [];\n const responses = [...storedValuesForGrid, ...newRowForGrid];\n setResponseValue(responses);\n onChange?.(responses);\n };\n const handleCommentChange = (e) => {\n const choiceData = options.find((c) => c.id === e.target.id);\n const responses = responseValue.filter((c) => c.type !== 'COMMENT');\n if (choiceData && !!e.target.value) {\n const { id, type } = choiceData;\n const response = { id, type, value: e.target.value };\n // @note: ensure to loop the values when transforming in RespWeb\n responses.push({\n id,\n type,\n value: [response],\n });\n }\n setResponseValue(responses);\n onChange?.(responses);\n };\n /**\n * Default value for the choices\n */\n const getDefaultValue = (rowId, colId) => {\n return defaultResponses\n .find((c) => c.id === rowId)\n ?.value?.find((c) => c.id === colId)?.value;\n };\n const { cellInputWrapper } = useStyles$e();\n const selectAnOptionWithDashes = `-- ${t(COPY$6.SELECT_AN_OPTION)} --`;\n const questionTitleProps = {\n requiredGroup: !!titleProps.required,\n ...titleProps,\n };\n return (React__default.createElement(QuestionField, { id: questionId, \"data-testid\": \"MatrixDropdownQuestionType\", errorId: errorId, title: questionTitleProps, ...questionFieldProps },\n React__default.createElement(MatrixGrid, { id: questionId, columnDataArray: columns, rowDataArray: sortableRows, isGridWhenMobile: true, \n // eslint-disable-next-line react/no-unstable-nested-components\n gridComponent: (gridCell) => {\n const { colId } = gridCell;\n return (React__default.createElement(\"div\", { className: cellInputWrapper },\n React__default.createElement(NativeSelect, { onChange: (e) => handleChange(e, gridCell), defaultValue: getDefaultValue(gridCell.rowId, gridCell.colId), \"aria-labelledby\": gridCell['aria-labelledby'] },\n React__default.createElement(SelectAnswerOption, { value: UNSELECTED_OPTION, label: selectAnOptionWithDashes }),\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n columns\n .find((col) => col.id === colId)\n .choices.map((choice) => {\n return (React__default.createElement(SelectAnswerOption, { key: choice.id, id: choice.id, label: choice.label, value: choice.id }));\n }))));\n } }),\n commentOption && (React__default.createElement(CommentChoice, { id: commentOption.id, label: commentOption.label, onChange: handleCommentChange, defaultValue: getDefaultValueById(commentOption.id), lineCount: commentOption.linesCount, charCount: commentOption.charsCount, maxLength: TEXT_INPUT_MAX_CHARS }))));\n}\n\nconst useStyles$d = createUseStyles((theme) => ({\n cellInputWrapperBase: ({ checked }) => ({\n display: 'flex',\n width: '100%',\n border: [1, 'solid', checked ? theme.questionColor : 'transparent'],\n '&:hover': {\n border: [1, checked ? 'solid' : 'dashed', theme.questionColor],\n },\n backgroundColor: checked ? theme.input.bgColor : 'transparent',\n '&:focus-within': {\n backgroundColor: theme.input.bgColor,\n },\n padding: 5,\n borderRadius: 4,\n cursor: 'pointer',\n }),\n cellInputCenterOnly: {\n justifyContent: 'center',\n alignItems: 'center',\n },\n cellInputLeftWhenMobile: {\n justifyContent: 'center',\n alignItems: 'center',\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n },\n },\n labelForMobileView: ({ checked }) => ({\n marginLeft: 10,\n marginBottom: 2,\n fontWeight: checked ? 'bold' : theme.questionBody.fontWeight ?? null,\n fontFamily: theme.questionBody.fontFamily ?? null,\n fontSize: theme.questionBody.fontSize ?? null,\n }),\n [`@media (min-width: ${theme.breakpoints?.sm.min})`]: {\n labelForMobileView: { display: 'none' },\n },\n}));\n\nfunction RatingInput({ qid: questionId, gridCell, checked = false, isMultipleSelectionsPerRow = false, className, onChange, columnChoices, isGridWhenMobile = false, ...props }) {\n const { rowId = '', colId = '', 'aria-labelledby': ariaLabelledBy } = gridCell || {};\n const CheckboxOrRadio = isMultipleSelectionsPerRow\n ? CheckboxInput$1\n : RadioInput$1;\n const inputId = `${questionId}-${rowId}-${colId}`;\n const handleInputChange = (e) => {\n onChange?.({\n id: rowId,\n value: e.target.value,\n checked: e.target.checked,\n });\n };\n const { cellInputWrapperBase, cellInputLeftWhenMobile, cellInputCenterOnly, labelForMobileView, } = useStyles$d({ checked });\n const columnLabel = columnChoices.find((column) => column.id === colId)?.label || '';\n return (React__default.createElement(\"label\", { htmlFor: inputId, \"aria-labelledby\": ariaLabelledBy, className: classNames(cellInputWrapperBase, { [cellInputCenterOnly]: isGridWhenMobile }, { [cellInputLeftWhenMobile]: !isGridWhenMobile }) },\n React__default.createElement(CheckboxOrRadio, { id: inputId, value: colId, \"data-component\": true, checked: checked, onChange: handleInputChange, className: className, ...props }),\n !isGridWhenMobile && (React__default.createElement(RichText, { element: \"span\", className: labelForMobileView, text: columnLabel }))));\n}\n\nconst useStyles$c = createUseStyles({\n gridComponentStyle: {\n display: 'flex',\n flexShrink: 0,\n width: 20,\n height: 20,\n },\n commentChoiceContainer: {\n width: '100%',\n },\n commentColumnContainer: {\n margin: '1em',\n },\n});\n\nfunction MatrixRating({ id: questionId, isMultipleSelectionsPerRow = false, choices = [], columnChoices = [], choiceOther, hideLabel, choiceNoneOfTheAbove, required, requiredType, choiceComment, isForcedRanking, onChange, responses: defaultResponses = [], disabled: _disabled, readOnly: _ro, title: titleProps, ...questionFieldProps }) {\n const errorId = createErrorId(questionId);\n /** Filter choices that exist and are visible */\n const { options, sortableOptions, commentOption, commentColumnOption, columnOptions, } = useQuestionChoices([\n ...choices,\n choiceNoneOfTheAbove\n ? { ...choiceNoneOfTheAbove, type: 'NOTA' }\n : undefined,\n choiceOther,\n choiceComment,\n ], [\n ...columnChoices,\n choiceNoneOfTheAbove\n ? { ...choiceNoneOfTheAbove, type: 'NOTA' }\n : undefined,\n ]);\n const [responseValue, setResponseValue] = useState(defaultResponses);\n /**\n * Default value by id\n * used for text-input based choices (i.e. choiceComment)\n * Matrix provides a 2D Array construct\n */\n const getDefaultValueById = (id) => {\n const defaultChoice = defaultResponses.find((c) => c.id === id);\n return defaultChoice?.value[0]?.value;\n };\n const isChecked = (rowId, colId) => {\n return !!responseValue.find((r) => r.id === rowId && r.value.find((c) => c.id === colId));\n };\n const unCheckOption = (unSelectOptionID) => {\n if (required && requiredType === 'ALL') {\n return;\n }\n const result = responseValue.filter((option) => {\n return option.id !== unSelectOptionID;\n });\n setResponseValue(result);\n onChange?.(result);\n };\n const handleClick = (e, gridCell) => {\n const input = e.target;\n const checkedOption = responseValue.find((option) => option.id === gridCell.rowId && option.value[0].id === gridCell.colId);\n if (input.checked && !!checkedOption) {\n e.preventDefault();\n unCheckOption(checkedOption.id);\n }\n };\n const handleKeyboard = (e, gridCell) => {\n const checkedOption = responseValue.find((option) => option.id === gridCell.rowId && option.value[0].id === gridCell.colId);\n if (checkedOption && e.code === 'Space') {\n e.preventDefault();\n unCheckOption(checkedOption.id);\n }\n };\n const handleChange = (e, gridCell) => {\n const { id: rowId, value: colId, checked } = e;\n const isNa = gridCell.colIndex > columnChoices.length - 1;\n const type = isNa ? 'NOTA' : undefined;\n const prevRows = responseValue.filter((r) => r.id !== rowId);\n const currentRow = (!isNa &&\n responseValue.find((r) => r.id === rowId && r.type !== 'NOTA')) || {\n id: rowId,\n value: [],\n type,\n };\n const currentCols = isMultipleSelectionsPerRow\n ? currentRow.value.filter((c) => c.value !== colId)\n : [];\n if (checked) {\n currentCols.push({ id: colId, value: colId });\n }\n const newRows = currentCols.length\n ? [{ ...currentRow, value: currentCols }]\n : [];\n if (isForcedRanking) {\n const filteredRows = prevRows.find((r) => r.value[0].value === currentCols[0].value);\n if (filteredRows && !isNa) {\n const found = prevRows.indexOf(filteredRows);\n prevRows.splice(found, 1);\n }\n }\n const rows = [...prevRows, ...newRows];\n const responses = rows;\n setResponseValue(responses);\n onChange?.(responses);\n };\n const handleCommentChange = (e) => {\n const choiceData = options.find((c) => c.id === e.target.id);\n const responses = responseValue.filter((c) => c.type !== 'COMMENT');\n if (choiceData && !!e.target.value) {\n const { id, type } = choiceData;\n const response = { id, type, value: e.target.value };\n // @note: ensure to loop the values when transforming in RespWeb\n responses.push({\n id,\n type,\n value: [response],\n });\n }\n setResponseValue(responses);\n onChange?.(responses);\n };\n const handleCommentColumnChange = (e, associatedRowId) => {\n if (!commentColumnOption) {\n return; // mainly here for type-safety\n }\n const currentRowData = responseValue.find(({ id }) => id === associatedRowId);\n const allButNewValue = currentRowData?.value.filter(({ id }) => id !== commentColumnOption.id) ??\n [];\n const isDelete = !e.target.value &&\n !!currentRowData &&\n allButNewValue.length < currentRowData?.value.length;\n const newValue = isDelete\n ? allButNewValue\n : [\n ...allButNewValue,\n {\n id: commentColumnOption.id,\n value: e.target.value,\n type: 'COMMENT_COLUMN',\n },\n ];\n const responses = responseValue.filter(({ id }) => id !== associatedRowId);\n if (newValue.length > 0) {\n responses.push({\n id: associatedRowId,\n value: newValue,\n });\n }\n setResponseValue(responses);\n onChange?.(responses);\n };\n const { gridComponentStyle, commentChoiceContainer, commentColumnContainer, } = useStyles$c();\n const questionTitleProps = {\n requiredGroup: !!titleProps.required,\n ...titleProps,\n };\n return (React__default.createElement(QuestionField, { id: questionId, \"data-testid\": \"MatrixRatingQuestionType\", errorId: errorId, title: questionTitleProps, ...questionFieldProps },\n React__default.createElement(MatrixGrid, { id: questionId, hideLabel: hideLabel, columnDataArray: columnOptions, rowDataArray: sortableOptions, isGridWhenMobile: isForcedRanking, \n // eslint-disable-next-line react/no-unstable-nested-components\n gridComponent: (gridCell) => (React__default.createElement(RatingInput, { qid: questionId, gridCell: gridCell, isMultipleSelectionsPerRow: isMultipleSelectionsPerRow, checked: isChecked(gridCell.rowId, gridCell.colId), onChange: (e) => handleChange(e, gridCell), name: isMultipleSelectionsPerRow ? undefined : `${gridCell.rowId}-group`, onClick: isMultipleSelectionsPerRow\n ? undefined\n : (e) => handleClick(e, gridCell), onKeyDown: isMultipleSelectionsPerRow\n ? undefined\n : (e) => handleKeyboard(e, gridCell), className: gridComponentStyle, isGridWhenMobile: isForcedRanking, columnChoices: columnOptions })), commentColumnOtherOption: commentColumnOption, commentColumnComponent: commentColumnOption\n ? // eslint-disable-next-line react/no-unstable-nested-components\n (commentProps) => (React__default.createElement(CommentChoice, { id: `${commentProps.row.id}-comment`, label: commentColumnOption?.label, onChange: (e) => commentProps.row.associatedId &&\n handleCommentColumnChange(e, commentProps.row.associatedId), lineCount: commentColumnOption.linesCount, charCount: commentColumnOption.charsCount, maxLength: TEXT_INPUT_MAX_CHARS, className: commentColumnContainer, \"aria-labelledby\": `${commentProps.row.associatedId}-header ${commentProps.row.id}-comment-label` }))\n : undefined }),\n commentOption && (React__default.createElement(CommentChoice, { id: commentOption.id, label: commentOption.label, onChange: handleCommentChange, defaultValue: getDefaultValueById(commentOption.id), lineCount: commentOption.linesCount, charCount: commentOption.charsCount, maxLength: TEXT_INPUT_MAX_CHARS, className: commentChoiceContainer }))));\n}\n\nconst useStyles$b = createUseStyles((theme) => {\n const breakpointSmMin = `@media screen and (max-width: ${theme.breakpoints.sm.min})`;\n const { bgColor: listItemBackground, activeColor: listItemBorderActive, } = theme.input;\n const flexStart = 'flex-start';\n const lineHeight = 1.25;\n const controlsPadding = 6;\n const controlsFontSize = 'inherit';\n // helps align label-first-line to controls center\n const labelOffset = Math.floor(controlsPadding / lineHeight);\n return {\n listItem: {\n position: 'relative',\n userSelect: 'none',\n lineHeight: 0,\n outline: 'none',\n zIndex: ({ ghost }) => (ghost ? 5 : 'auto'),\n '&:active, &:focus, &:focus-within': {\n zIndex: 5,\n },\n '&:active $content, &:focus-within $content': {\n outlineWidth: 1,\n outlineStyle: ({ ghost }) => (ghost ? 'dashed' : 'solid'),\n outlineColor: listItemBorderActive,\n },\n '&:active $content, &:focus $content': {\n outlineWidth: 3,\n outlineStyle: ({ ghost }) => (ghost ? 'dashed' : 'solid'),\n outlineColor: listItemBorderActive,\n },\n },\n rankItemContainer: {\n display: 'flex',\n fontSize: theme.questionBody.fontSize,\n lineHeight,\n color: theme.questionBody.color,\n },\n orderIndex: {\n padding: '16px 5px 10px 5px',\n visibility: ({ ranksVisible }) => (ranksVisible ? 'visible' : 'hidden'),\n minWidth: '45px',\n display: 'flex',\n },\n content: {\n position: 'relative',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: flexStart,\n alignItems: flexStart,\n gap: 10,\n flex: '1 auto',\n borderWidth: 1,\n borderRadius: 4,\n borderStyle: 'solid',\n borderColor: 'transparent',\n background: isDark(theme.questionBody.color || '#fff')\n ? listItemBackground\n : 'rgba(255, 255, 255, 0.15)',\n padding: 10,\n cursor: 'move',\n [breakpointSmMin]: {\n flexWrap: 'wrap',\n },\n },\n dragHandle: {\n outline: 'none',\n visibility: ({ ghost }) => (ghost ? 'hidden' : 'visible'),\n fontSize: controlsFontSize,\n lineHeight: 0,\n padding: controlsPadding,\n touchAction: 'none',\n '&::after': {\n content: \"''\",\n position: 'absolute',\n display: 'block',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n },\n },\n label: {\n visibility: ({ ghost }) => (ghost ? 'hidden' : 'visible'),\n display: 'flex',\n justifyContent: flexStart,\n alignItems: flexStart,\n flex: '1 auto',\n paddingTop: labelOffset,\n '& iframe': {\n position: 'relative',\n },\n overflowWrap: 'anywhere',\n [breakpointSmMin]: {\n order: 3,\n paddingLeft: '6px',\n width: '100%',\n },\n },\n controls: {\n visibility: ({ ghost }) => (ghost ? 'hidden' : 'visible'),\n position: 'relative',\n display: 'flex',\n justifyContent: 'space-around',\n gap: 10,\n fontSize: controlsFontSize,\n [breakpointSmMin]: {\n order: 2,\n flex: '1 1 auto',\n justifyContent: 'flex-end',\n },\n },\n };\n});\n\nfunction RankingRow({ className, dragListeners, dragRef, ghost, id, position, label, controls, onFocus, ranksVisible = true, ...props }, ref) {\n const { listItem, rankItemContainer, orderIndex, content: contentContainer, dragHandle: dragHandleContainer, label: labelContainer, controls: controlsContainer, } = useStyles$b({ ghost, ranksVisible });\n const labelId = `${id}-label`;\n const index = position ?? -1;\n const indexLabel = index >= 0 ? index + 1 : '';\n return (React__default.createElement(\"li\", { id: id, className: classNames('rankItem', listItem, className), ref: ref, ...props },\n React__default.createElement(\"div\", { className: rankItemContainer },\n React__default.createElement(\"span\", { className: classNames('OrderIndex', orderIndex), \"data-testid\": \"RankingRow__OrderIndex\", \"aria-hidden\": true }, indexLabel),\n React__default.createElement(\"div\", { className: classNames('rankItem__content', contentContainer) },\n React__default.createElement(\"div\", { \"data-testid\": \"RankingRow__DragHandle\", className: classNames('rankItem__dragHandle', dragHandleContainer), onFocus: onFocus, \"data-pos\": index, ref: dragRef, ...dragListeners },\n React__default.createElement(DragHandleIcon$1, { className: \"rankItem__dragHandleIcon\" })),\n React__default.createElement(\"div\", { \"data-testid\": \"RankingRow__Label\", className: classNames('rankItem__label', labelContainer) },\n React__default.createElement(RichText, { id: labelId, element: \"div\", className: \"rankItem__richText\", translate: \"no\", text: label })),\n React__default.createElement(\"div\", { \"data-no-dnd\": \"true\", \"data-testid\": \"RankingRow__Controls\", className: classNames('rankItem__controls', controlsContainer) }, controls)))));\n}\nvar RankingRow$1 = forwardRef(RankingRow);\n\n/**\n * OrderButton\n *\n * @todo: replace instances with reusable `Button` component that satisfies\n * all scenarios, variants and themes.\n */\nconst useStyles$a = createUseStyles((theme) => ({\n orderButton: {\n color: '#000',\n backgroundColor: '#fff',\n fontSize: 'inherit',\n border: [1, 'solid', '#000'],\n borderRadius: 4,\n padding: [6, 6],\n maxWidth: '100%',\n cursor: 'pointer',\n lineHeight: 0,\n outlineColor: theme.primaryAccentColor,\n '&[aria-disabled]': {\n backgroundColor: 'rgba(255,255,255,.5)',\n borderColor: 'rgba(0,0,0,.5)',\n pointerEvents: 'none',\n cursor: 'default',\n },\n '&[aria-disabled] > svg': {\n opacity: 0.5,\n cursor: 'default',\n },\n '&:focus, &:focus-visible': {\n borderColor: theme.primaryAccentColor,\n outline: `2px solid ${theme.primaryAccentColor}`,\n },\n },\n '@media (hover: hover) and (pointer: fine)': {\n orderButton: {\n '&:hover': {\n borderColor: theme.primaryAccentColor,\n outline: `2px solid ${theme.primaryAccentColor}`,\n },\n },\n },\n srOnly: visuallyHidden,\n}));\nfunction OrderButton({ icon, children: label, className, disabled, ...props }) {\n const { orderButton, srOnly } = useStyles$a();\n return (React__default.createElement(\"button\", { type: \"button\", \"aria-disabled\": disabled || undefined, className: classNames('order-button', orderButton, className), ...props },\n icon,\n React__default.createElement(\"span\", { className: srOnly }, label)));\n}\n\nconst useStyles$9 = createUseStyles({\n controlsContainer: {\n position: 'relative',\n display: 'flex',\n justifyContent: 'space-around',\n gap: 10,\n },\n applicableControl: {\n display: 'flex',\n alignItems: 'center',\n gap: 6,\n },\n});\n\nconst COPY$5 = defineMessages({\n RANK_NA: {\n id: 'OrderControl.NA',\n defaultMessage: 'N/A',\n description: '[Type: label][Vis: high] - not applicable label',\n },\n ARIA_RANK_NA: {\n id: 'OrderControl.AriaNA',\n defaultMessage: 'Not Applicable',\n description: '[Type: label][Vis: high] - accessible not applicable label',\n },\n});\nconst RANK_DIRECTION_BACKWARD = -1;\nconst RANK_DIRECTION_FORWARD = 1;\nfunction OrderControl({ id, labels, position, showApplicability = true, applicable: defaultApplicable = true, className, onApplicableChange, onOrderUp, onOrderDown, disableOrderUp = false, disableOrderDown = false, ...props }) {\n const [applicable, setApplicable] = useState(defaultApplicable);\n const currentIndex = position ?? -1;\n const handleOrderUp = (_e) => {\n onOrderUp?.({\n id,\n value: currentIndex,\n direction: RANK_DIRECTION_BACKWARD,\n });\n };\n const handleOrderDown = (_e) => {\n onOrderDown?.({\n id,\n value: currentIndex,\n direction: RANK_DIRECTION_FORWARD,\n });\n };\n const handleApplicableChange = (e) => {\n const isApplicable = !e.target.checked;\n onApplicableChange?.({\n id,\n applicable: isApplicable,\n });\n setApplicable(isApplicable);\n };\n const applicableId = `${id}-applicable`;\n const { controlsContainer, applicableControl } = useStyles$9();\n return (React__default.createElement(\"div\", { id: id, className: classNames(controlsContainer, className), ...props },\n React__default.createElement(OrderButton, { disabled: disableOrderUp || !applicable, onClick: handleOrderUp, icon: React__default.createElement(CaretUpOutlineIcon, null) }, labels.orderUpLabel),\n React__default.createElement(OrderButton, { disabled: disableOrderDown || !applicable, onClick: handleOrderDown, icon: React__default.createElement(CaretDownOutlineIcon, null) }, labels.orderDownLabel),\n showApplicability && (React__default.createElement(\"label\", { className: classNames('order-na', applicableControl), htmlFor: applicableId, \"aria-label\": t(COPY$5.ARIA_RANK_NA) },\n React__default.createElement(CheckboxInput$1, { id: applicableId, checked: !applicable, onChange: handleApplicableChange }),\n React__default.createElement(T, { desc: COPY$5.RANK_NA })))));\n}\n\nconst useStyles$8 = createUseStyles({\n item: {},\n itemDisabled: {\n '& .rankItem__dragHandle::after': {\n cursor: 'default',\n },\n '& .rankItem__dragHandle, & .rankItem__label': {\n opacity: 0.5,\n },\n },\n});\n\nconst COPY$4 = defineMessages({\n ARIA_RANK_MOVE_UP: {\n id: 'RankingItem.AriaRankMoveUp',\n defaultMessage: 'Move up {label}',\n description: '[Type: button][Vis: high] - accessible rank move up label',\n },\n ARIA_RANK_MOVE_DOWN: {\n id: 'RankingItem.AriaRankMoveDown',\n defaultMessage: 'Move down {label}',\n description: '[Type: button][Vis: high] - accessible rank move down label',\n },\n});\nfunction RankingItem({ id, className, label, position: index, listLength, applicable, showApplicability, onApplicableChange, onOrderUp, onOrderDown, ranksVisible, ...props }) {\n const textOnlyLabel = stripHTML(label);\n const controlLabels = {\n orderUpLabel: t(COPY$4.ARIA_RANK_MOVE_UP, { label: textOnlyLabel }),\n orderDownLabel: t(COPY$4.ARIA_RANK_MOVE_DOWN, { label: textOnlyLabel }),\n };\n const { attributes, listeners, setNodeRef, transform, transition, isDragging, setActivatorNodeRef, } = useSortable({\n id,\n /*\n * role=listitem is forced to override DnD-kits use of role=button.\n * This re-instates proper a11y announcements of the role\n */\n attributes: { role: 'listitem', tabIndex: -1 },\n disabled: !applicable,\n data: {\n id,\n position: index,\n label,\n applicable,\n showApplicability,\n },\n });\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n const handleOrderUp = (e) => {\n onOrderUp?.({ ...e, id });\n };\n const handleOrderDown = (e) => {\n onOrderDown?.({ ...e, id });\n };\n const handleApplicableChange = (e) => {\n onApplicableChange?.({ ...e, id });\n };\n const { item, itemDisabled } = useStyles$8({ applicable });\n return (React__default.createElement(RankingRow$1, { id: id, label: label, position: index, className: classNames(item, { [itemDisabled]: !applicable }, className), ref: setNodeRef, style: style, ghost: isDragging, ...attributes, dragListeners: listeners, dragRef: setActivatorNodeRef, ranksVisible: ranksVisible, controls: React__default.createElement(OrderControl, { id: `${id}-control`, position: index, applicable: applicable, showApplicability: !!showApplicability, onApplicableChange: handleApplicableChange, onOrderUp: handleOrderUp, onOrderDown: handleOrderDown, labels: controlLabels, disableOrderUp: index === 0, disableOrderDown: index === listLength - 1 }), ...props }));\n}\n\nconst useRankingIds = ({ rankings, choiceNotApplicable, }) => {\n return useMemo(() => {\n const order = rankings\n .filter((r) => !!r && r.visible)\n .sort((a, b) => Number(a.label) - Number(b.label))\n .map((r) => r.id);\n if (choiceNotApplicable) {\n order.push(choiceNotApplicable.id);\n }\n return order;\n }, [rankings, choiceNotApplicable]);\n};\nconst useRankingState = ({ choices, rankingIds, defaultResponses = [], choiceNotApplicable, }) => {\n const findResponseByChoiceId = (id) => defaultResponses.find((r) => r.id === id);\n const findPositionByRankId = (id) => rankingIds.findIndex((rid) => rid === id);\n return useState(() => {\n // Filter choices that exist and are visible, add rankable meta data\n return choices\n .filter((c) => !!c && c.visible)\n .map(({ id, label }, defaultIndex) => {\n const { value: rankId = rankingIds[defaultIndex], type } = findResponseByChoiceId(id) || {};\n const item = {\n id,\n label,\n type,\n value: rankId,\n applicable: rankId !== choiceNotApplicable?.id,\n index: findPositionByRankId(rankId),\n };\n return item;\n })\n .sort((a, b) => a.index - b.index);\n });\n};\n\n/* istanbul ignore file */\nfunction shouldHandleEvent(element) {\n let cur = element;\n while (cur) {\n if (cur.dataset && cur.dataset.noDnd) {\n return false;\n }\n cur = cur.parentElement;\n }\n return true;\n}\nconst defaultKeyboardCodes = {\n start: [KeyboardCode.Space, KeyboardCode.Enter],\n cancel: [KeyboardCode.Esc],\n end: [KeyboardCode.Space, KeyboardCode.Enter],\n};\nclass PointerSensor extends PointerSensor$1 {\n}\nPointerSensor.activators = [\n {\n eventName: 'onPointerDown',\n handler: ({ nativeEvent: event }, { onActivation }) => {\n if (!shouldHandleEvent(event.target)) {\n return false;\n }\n onActivation?.({ event });\n return true;\n },\n },\n];\nclass KeyboardSensor extends KeyboardSensor$1 {\n}\nKeyboardSensor.activators = [\n {\n eventName: 'onKeyDown',\n handler: ({ nativeEvent: event }, { keyboardCodes = defaultKeyboardCodes, onActivation }, { active }) => {\n const { code } = event;\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n if ((activator && event.target !== activator) ||\n !shouldHandleEvent(event.target)) {\n return false;\n }\n event.preventDefault();\n onActivation?.({ event });\n return true;\n }\n return false;\n },\n },\n];\n\nconst useStyles$7 = createUseStyles({\n list: {\n '& > *': {\n WebkitUserSelect: 'none',\n WebkitTouchCallout: 'none',\n },\n },\n listItem: {\n marginBottom: 10,\n },\n dragOverlay: {\n opacity: 0.5,\n '& .rankItem__orderIndex, & .rankItem__controls': {\n opacity: 0,\n },\n },\n srOnly: { ...visuallyHidden },\n});\n\nconst COPY$3 = defineMessages({\n ARIA_RANK_MOVED_UP: {\n id: 'Ranking.AriaRankMovedUp',\n defaultMessage: '{label} moved up to number {position}',\n description: '[Type: button][Vis: high] - accessible ranking moved up label',\n },\n ARIA_RANK_MOVED_DOWN: {\n id: 'Ranking.AriaRankMovedDown',\n defaultMessage: '{label} moved down to number {position}',\n description: '[Type: button][Vis: high] - accessible ranking moved down label',\n },\n ARIA_RANK_MOVED_TO_TOP: {\n id: 'Ranking.AriaRankAtTop',\n defaultMessage: '{label} moved to the top of the list',\n description: '[Type: button][Vis: high] - accessible ranking at top of list',\n },\n ARIA_RANK_MOVED_TO_BOTTOM: {\n id: 'Ranking.AriaRankAtBottom',\n defaultMessage: '{label} moved to the bottom of the list',\n description: '[Type: button][Vis: high] - accessible ranking at bottom of list',\n },\n});\n/** Turn off a11y announcements for Drag and Drop in the DnDContext - this is handled by the order buttons */\nconst emptyStringNoop = () => '';\nconst dndAnnouncements = {\n onDragStart: emptyStringNoop,\n onDragMove: emptyStringNoop,\n onDragOver: emptyStringNoop,\n onDragEnd: emptyStringNoop,\n onDragCancel: emptyStringNoop,\n};\nconst dndAccessibility = {\n announcements: dndAnnouncements,\n screenReaderInstructions: {\n draggable: '',\n },\n};\nfunction Ranking({ id: questionId, disabled: _dis, readOnly: _ro, choices = /* istanbul ignore next: cannot reach default branch */ [], rankings = /* istanbul ignore next: cannot reach default branch */ [], choiceNotApplicable, responses: defaultResponses = [], onChange, hideRanks = false, ...fieldProps }) {\n /**\n * @author [kmukasa@surveymonkey.com]\n * @description The id has been modified to work in __hybrid__ mode. The `id` needs to\n * be different from the question-field `id` normally created/used.\n * @see https://code.corp.surveymonkey.com/webplatform/smquestions/pull/1204\n * @todo remove prefix 'hybrid-' when no longer required\n */\n const fieldId = `hybrid-${questionId}`;\n /**\n * @description `createLegendId` is used internally by [QuestionFieldLayoutTemplate](https://code.corp.surveymonkey.com/webplatform/smquestions/blob/master/packages/question-ui/src/capabilities/respondent-survey/components/QuestionFieldLayoutTemplate/QuestionFieldLayoutTemplate.tsx#L157)\n * to create an id. This `id` cannot be passed down via props. It is recreated here for `ARIA` referencing.\n */\n const questionTitleId = createLegendId(fieldId);\n const errorId = createErrorId(questionId);\n const sensors = useSensors(useSensor(PointerSensor));\n // toggles display of N/A choice\n const showApplicability = choiceNotApplicable !== undefined;\n // create ranking order (N/A choice is last)\n const rankingIds = useRankingIds({ rankings, choiceNotApplicable });\n const [, setActiveId] = useState(null);\n const [activeItem, setActiveItem] = useState(null);\n // for Aria-Live\n const [statusMessage, announceStatus] = useState('');\n const setAnnoucement = (str) => {\n setTimeout(() => announceStatus(''), 5000);\n announceStatus(str);\n };\n const [ranksVisible, setRanksVisible] = useState(hideRanks);\n const [listItems, setListItems] = useRankingState({\n choices,\n defaultResponses,\n choiceNotApplicable,\n rankingIds,\n });\n /* istanbul ignore next */\n const getItemIndices = (items, fromId, toId) => {\n const fromIndex = items.findIndex((item) => item.id === fromId);\n const toIndex = items.findIndex((item) => item.id === toId);\n return { fromIndex, toIndex };\n };\n /* istanbul ignore next */\n const moveById = (items, fromId, toId) => {\n const { fromIndex, toIndex } = getItemIndices(items, fromId, toId);\n return arrayMove(items, fromIndex, toIndex);\n };\n /* istanbul ignore next: cannot test drag-and-drop logic */\n const moveItem = (fromId, toId) => {\n setListItems((items) => moveById(items, fromId, toId));\n };\n const { list, listItem, dragOverlay, srOnly } = useStyles$7();\n const orderedListProps = {\n /**\n * role is forced for a11y, so SR's will announce properly,\n * this is somehow lost or manipulated, possibly, by DnD-Kit\n */\n role: 'list',\n className: list,\n 'aria-labelledby': questionTitleId,\n };\n const updateRankingOrder = (current, next) => {\n const nextValue = Math.max(0, Math.min(next, listItems.length - 1));\n const responses = arrayMove(listItems, current, nextValue).map((response, index) => ({\n ...response,\n index,\n value: rankingIds[index],\n }));\n setRanksVisible(true);\n setListItems(responses);\n onChange?.(responses);\n };\n const announcePosition = (current, next, label) => {\n const nextPos = Math.max(0, Math.min(next, listItems.length - 1));\n if (current === nextPos)\n return; // no change in position\n const position = nextPos + 1; // announce non-zero base number\n let message = COPY$3.ARIA_RANK_MOVED_DOWN;\n if (nextPos <= 0) {\n // moved to top\n message = COPY$3.ARIA_RANK_MOVED_TO_TOP;\n }\n else if (nextPos < current) {\n // moved up\n message = COPY$3.ARIA_RANK_MOVED_UP;\n }\n else if (nextPos >= listItems.length - 1) {\n // moved to bottom\n message = COPY$3.ARIA_RANK_MOVED_TO_BOTTOM;\n }\n setAnnoucement(t(message, { label: stripHTML(label), position }));\n };\n const handleOrderUp = (e) => {\n const { id: rowId, value: currentPosition, direction = /* istanbul ignore next: cannot reach default branch */ 0, } = e;\n const item = listItems.find((li) => li.id === rowId);\n const nextPosition = currentPosition + direction;\n updateRankingOrder(currentPosition, nextPosition);\n announcePosition(currentPosition, nextPosition, item.label);\n };\n const handleOrderDown = (e) => {\n const { id: rowId, value: currentPosition, direction = /* istanbul ignore next: cannot reach default branch */ 0, } = e;\n const item = listItems.find((li) => li.id === rowId);\n const nextPosition = currentPosition + direction;\n updateRankingOrder(currentPosition, nextPosition);\n announcePosition(currentPosition, nextPosition, item.label);\n };\n const handleApplicableChange = (e) => {\n /* istanbul ignore else: should never branch */\n if (showApplicability) {\n const { id, applicable } = e;\n const responses = listItems.map((item) => ({\n ...item,\n ...(item.id === id ? { applicable } : {}),\n ...(item.id === id && !applicable\n ? { value: choiceNotApplicable.id }\n : {}),\n }));\n setListItems(responses);\n onChange?.(responses);\n }\n };\n /* istanbul ignore next: cannot test drag-and-drop logic */\n const handleDragStart = ({ active }) => {\n setActiveId(active.id);\n setActiveItem(active);\n };\n /* istanbul ignore next: cannot test drag-and-drop logic */\n const handleDragEnd = ({ active, over }) => {\n if (active.id !== over?.id) {\n moveItem(active.id, over?.id);\n }\n setRanksVisible(true);\n setActiveId(null);\n setActiveItem(null);\n };\n return (React__default.createElement(QuestionField, { id: `hybrid-${questionId}`, errorId: errorId, \"data-testid\": \"RankingQuestionType\", ...fieldProps },\n React__default.createElement(\"div\", { role: \"status\", \"aria-live\": \"assertive\", \"aria-atomic\": \"true\", className: srOnly }, statusMessage),\n React__default.createElement(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragStart: handleDragStart, onDragEnd: handleDragEnd, accessibility: dndAccessibility },\n React__default.createElement(SortableContext, { items: listItems, strategy: verticalListSortingStrategy },\n React__default.createElement(\"ol\", { ...orderedListProps }, listItems.map(({ id: itemId, label, applicable }, index) => {\n return (React__default.createElement(RankingItem, { id: itemId, key: itemId, label: label, position: index, listLength: listItems.length, applicable: applicable, showApplicability: !!showApplicability, onApplicableChange: handleApplicableChange, onOrderUp: handleOrderUp, onOrderDown: handleOrderDown, className: listItem, ranksVisible: ranksVisible }));\n })),\n React__default.createElement(DragOverlay, null, \n /* istanbul ignore next: cannot test drag-and-drop logic */ activeItem ? (React__default.createElement(RankingRow$1, { id: activeItem.id, className: dragOverlay, label: activeItem.data.current?.label, position: activeItem.data.current?.index, ranksVisible: ranksVisible })) : null)))));\n}\n\nfunction SingleTextbox({ id: questionId, required, disabled, readOnly, responses: defaultResponses = [], onChange, size, ...fieldProps }) {\n const { error, errorId = createErrorId(questionId), title: { id: titleId }, } = fieldProps;\n const defaultValue = useMemo(() => defaultResponses.find((r) => !!r.value)?.value ?? '', \n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n const handleChange = (e) => {\n const responses = e.target.value\n ? [{ id: questionId, value: e.target.value }]\n : [];\n onChange?.(responses);\n };\n return (React__default.createElement(\"div\", null,\n React__default.createElement(QuestionField, { id: questionId, errorId: errorId, \"data-testid\": \"SingleTextboxQuestionType\", ...fieldProps },\n React__default.createElement(TextInput$1, { name: questionId, defaultValue: defaultValue, required: required, disabled: disabled, readOnly: readOnly, size: size, onChange: handleChange, \"aria-invalid\": !!error, \"aria-describedby\": error && errorId, \"aria-labelledby\": titleId, maxLength: TEXT_INPUT_MAX_CHARS }))));\n}\nvar SingleTextbox$1 = withErrorBoundary(SingleTextbox);\n\nconst useStyles$6 = createUseStyles((theme) => {\n return {\n textPresentationalStyles: {\n fontFamily: theme.questionTitle.fontFamily ?? 'inherit',\n fontSize: theme.questionTitle.fontSize ?? '16px',\n fontWeight: theme.questionTitle.fontWeight ?? (theme.isAccessible ? 500 : 300),\n textDecoration: theme.questionTitle.textDecoration ?? 'inherit',\n fontStyle: theme.questionTitle.fontStyle ?? 'inherit',\n color: theme.questionTitle.color ?? 'inherit',\n },\n buttonStyles: {\n marginTop: '20px',\n },\n };\n});\n\nfunction TextPresentational({ text, padding = { top: 0, bottom: 0, left: 0, right: 0 }, id, okButton = { visible: false }, }) {\n const richTextId = `text-presentational-${id}`;\n const { textPresentationalStyles, buttonStyles } = useStyles$6();\n const { visible: showButton, ...buttonProps } = okButton;\n return (React__default.createElement(QuestionSpacing, { padding: padding, \"data-testid\": \"TextPresentational\" },\n React__default.createElement(RichText, { id: richTextId, element: \"div\", text: text, className: textPresentationalStyles }),\n showButton && React__default.createElement(Button, { ...buttonProps, className: buttonStyles })));\n}\nvar TextPresentational$1 = withErrorBoundary(TextPresentational);\n\nconst useStyles$5 = createUseStyles((theme) => {\n return {\n clearableTextInputContainer: {\n display: 'flex',\n position: 'relative',\n '&:hover $textInput': {\n outline: `2px solid ${theme.primaryAccentColor}`,\n },\n },\n textInput: ({ isRTL, maxLength }) => ({\n width: `calc(${maxLength + 1}ch + 25px)`,\n height: 30,\n fontSize: 16,\n textAlign: isRTL ? 'right' : 'left',\n borderRadius: 3,\n padding: isRTL ? [0, 10, 0, 25] : [0, 25, 0, 10],\n margin: [10, 0, 0, 5],\n }),\n clearButton: ({ isRTL }) => ({\n position: 'absolute',\n right: isRTL ? 'auto' : 5,\n left: isRTL ? 10 : 'auto',\n top: 15,\n backgroundColor: theme.secondaryAccentColor,\n borderRadius: 20,\n border: 'none',\n color: theme.primaryAccentColor,\n cursor: 'pointer',\n height: 20,\n width: 20,\n '&:hover': {\n color: theme.secondaryAccentColor,\n backgroundColor: theme.primaryAccentColor,\n },\n }),\n clearButtonIcon: {\n width: 'inherit',\n height: 'inherit',\n },\n visuallyHidden,\n };\n});\n\nfunction ClearableTextInput({ id, className, value = '', onClear, clearVisible, clearButtonLabelText, maxLength = 8, ...props }) {\n const { isRTL } = useContext(L10NContext);\n const { clearableTextInputContainer, textInput, clearButton, clearButtonIcon, visuallyHidden, } = useStyles$5({ isRTL, maxLength });\n const textBoxRef = useRef(null);\n const clearButtonClick = () => {\n onClear?.();\n textBoxRef.current?.focus();\n };\n return (React__default.createElement(\"div\", { className: classNames(clearableTextInputContainer, className) },\n React__default.createElement(TextInput$1, { id: id, className: classNames(textInput), maxLength: maxLength, size: maxLength, ref: textBoxRef, value: value, ...props }),\n clearVisible && (React__default.createElement(\"button\", { type: \"button\", tabIndex: -1, onClick: clearButtonClick, className: clearButton },\n React__default.createElement(CloseOutlineIcon$1, { className: clearButtonIcon }),\n React__default.createElement(\"span\", { className: visuallyHidden }, clearButtonLabelText)))));\n}\n\nconst useStyles$4 = createUseStyles((theme) => {\n const fontWeightOptions = getFontWeights(theme.questionBody.fontFamily);\n return {\n slider: {\n '-webkit-appearance': 'none',\n appearance: 'none',\n background: 'transparent',\n cursor: 'pointer',\n width: '100%',\n '&:focus': {\n outline: 'none',\n // Chrome, Safari, Opera, Edge focus style\n '&::-webkit-slider-thumb': {\n border: ['1px', 'solid', theme.answerColor],\n outline: [3, 'solid', theme.answerColor],\n outlineOffset: '0.2rem',\n },\n // Firefox focus style\n '&::-moz-range-thumb': {\n border: ['1px', 'solid', theme.answerColor],\n outline: [3, 'solid', theme.answerColor],\n outlineOffset: '0.2rem',\n },\n },\n // Chrome, Safari, Opera and Edge Chromium styles\n // slider track\n '&::-webkit-slider-runnable-track': {\n backgroundColor: '#ddd',\n border: [1, 'solid', theme.answerColor],\n borderRadius: '0.5rem',\n height: '0.75rem',\n },\n // slider thumb\n '&::-webkit-slider-thumb': {\n '-webkit-appearance': 'none',\n appearance: 'none',\n marginTop: '-6px',\n borderRadius: '3rem',\n border: ['1px', 'solid', theme.answerColor],\n backgroundColor: theme.primaryAccentColor,\n height: '1.5rem',\n width: '1.5rem',\n },\n // Firefox styles\n // slider track\n '&::-moz-range-track': {\n backgroundColor: '#ddd',\n border: [1, 'solid', theme.answerColor],\n borderRadius: '0.5rem',\n height: '0.75rem',\n },\n // slider thumb\n '&::-moz-range-thumb': {\n borderRadius: '3rem',\n border: [1, 'solid', theme.answerColor],\n backgroundColor: theme.primaryAccentColor,\n height: '1.25rem',\n width: '1.25rem',\n },\n },\n labelContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n marginBottom: 10,\n },\n labelItem: {\n color: theme.questionColor,\n fontFamily: theme.questionBody.fontFamily,\n fontSize: '14px !important',\n fontWeight: theme.questionBody.fontWeight,\n },\n container: {\n display: 'flex',\n gap: '0 25px',\n flexFlow: 'row wrap',\n justifyContent: 'space-between',\n },\n textInputContainer: {\n margin: 0,\n },\n sliderContainer: {\n flexGrow: 4,\n },\n alertMessageContainer: {\n width: '100%',\n },\n alertMessage: {\n display: 'flex',\n width: '100%',\n alignSelf: 'flex-end',\n alignItems: 'center',\n color: theme.questionColor,\n marginTop: 20,\n fontFamily: theme.questionBody.fontFamily,\n fontSize: 16,\n fontWeight: fontWeightOptions.light,\n },\n alertMessageIcon: {\n margin: [1, 3, 0, 0],\n },\n };\n});\n\nfunction RangeSlider({ className, minValue, maxValue, stepSize, labels, hideTextBox, startPosition, defaultValue, clearButtonLabelText, stepMessage, errorMessage, onChange, }) {\n const { slider, labelContainer, labelItem, container, sliderContainer, textInputContainer, alertMessage, alertMessageIcon, alertMessageContainer, } = useStyles$4();\n const startValue = defaultValue || startPosition;\n const [responseValue, setResponseValue] = useState('');\n const [rangeValue, setRangeValue] = useState(startValue.toString());\n const [textValue, setTextValue] = useState(defaultValue || '');\n const [showStepMessage, setShowStepMessage] = useState(false);\n const [showInvalidEntryMessage, setShowInvalidEntryMessage] = useState(false);\n const { left: minLabelText, middle: middleLabelText, right: maxLabelText, } = labels;\n const changeValue = (value) => {\n const intVal = parseInt(value, 10);\n let responseVal = '';\n let textBoxVal = '';\n let displayStepMessage = false;\n let displayInvalidMessage = false;\n if (intVal < minValue) {\n textBoxVal = value;\n displayInvalidMessage = true;\n }\n else if (intVal > maxValue) {\n textBoxVal = value;\n displayInvalidMessage = true;\n }\n else if (value === '' || (intVal - minValue) % stepSize === 0) {\n responseVal = value;\n textBoxVal = value;\n }\n else if (Number.isNaN(intVal)) {\n displayInvalidMessage = true;\n textBoxVal = value;\n }\n else {\n // The value lies between two step points.\n // Determine the closest step point and make that the current value.\n responseVal = (Math.round((intVal - minValue) / stepSize) * stepSize +\n minValue).toString();\n textBoxVal = responseVal;\n displayStepMessage = true;\n }\n setRangeValue(responseVal || startPosition.toString());\n setResponseValue(responseVal);\n setTextValue(textBoxVal);\n onChange?.(responseVal);\n setShowStepMessage(displayStepMessage);\n setShowInvalidEntryMessage(displayInvalidMessage);\n };\n const valueChangeHandler = (answerValue) => {\n if (answerValue !== responseValue) {\n changeValue(answerValue);\n }\n };\n const clearText = () => {\n changeValue('');\n };\n const getAccessibleValueText = (rValue) => {\n const value = parseInt(rValue, 10);\n if (value === minValue) {\n return `${value}, ${minLabelText}`;\n }\n if (value === Math.round(maxValue / 2)) {\n return `${value}, ${middleLabelText}`;\n }\n if (value === maxValue) {\n return `${value}, ${maxLabelText}`;\n }\n return rValue;\n };\n const invalidEntryMessage = errorMessage\n .replace(/\\{0}/, minValue.toString())\n .replace(/\\{1}/, maxValue.toString());\n return (React__default.createElement(\"div\", { className: classNames(className, container) },\n React__default.createElement(\"div\", { className: sliderContainer },\n React__default.createElement(\"div\", { className: labelContainer },\n React__default.createElement(\"div\", { className: labelItem }, minLabelText),\n React__default.createElement(\"div\", { className: labelItem }, middleLabelText),\n React__default.createElement(\"div\", { className: labelItem }, maxLabelText)),\n React__default.createElement(\"input\", { type: \"range\", \"aria-valuetext\": getAccessibleValueText(rangeValue), value: rangeValue, className: slider, min: minValue, max: maxValue, step: stepSize, onChange: (e) => {\n valueChangeHandler(e.target.value);\n } })),\n !hideTextBox && (React__default.createElement(ClearableTextInput, { className: textInputContainer, onChange: (e) => {\n setTextValue(e.target.value);\n }, onBlur: (e) => {\n valueChangeHandler(e.target.value);\n }, onClear: clearText, value: textValue, maxLength: 8, clearVisible: !!textValue, inputMode: \"numeric\", pattern: \"[0-9]*\", clearButtonLabelText: clearButtonLabelText })),\n React__default.createElement(\"div\", { \"aria-live\": \"assertive\", className: alertMessageContainer }, (showStepMessage || showInvalidEntryMessage) && (React__default.createElement(\"div\", { className: alertMessage },\n React__default.createElement(InfoIcon$1, { className: alertMessageIcon }),\n showStepMessage && React__default.createElement(\"span\", null, stepMessage),\n showInvalidEntryMessage && React__default.createElement(\"span\", null, invalidEntryMessage))))));\n}\n\nconst COPY$2 = defineMessages({\n SLIDER_CLEAR_BUTTON_LABEL: {\n id: 'Slider.CLEAR_BUTTON_LABEL',\n defaultMessage: 'Clear',\n description: '[Type: label][Vis: low] - screen reader only label for clear button',\n },\n SLIDER_STEP_MESSAGE: {\n id: 'Slider.STEP_MESSAGE',\n defaultMessage: \"We adjusted the number you entered based on the slider's scale.\",\n description: '[Type: message][Vis: medium] - Message displayed when the entered value needs to be moved to the next closest step',\n },\n});\nfunction Slider({ id: questionId, responses: defaultResponses = [], onChange, scaleOptions, hideNumericalInput, ...fieldProps }) {\n const defaultValue = useMemo(() => defaultResponses.find((r) => !!r.value)?.value ?? '', \n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n const [, setResponseValue] = useState(defaultResponses);\n const clearButtonLabelText = t(COPY$2.SLIDER_CLEAR_BUTTON_LABEL);\n const stepMessage = t(COPY$2.SLIDER_STEP_MESSAGE);\n const valueChanged = (selectedValue) => {\n const responses = selectedValue\n ? [{ id: questionId, value: selectedValue }]\n : [];\n setResponseValue(responses);\n onChange?.(responses);\n };\n const errorId = createErrorId(questionId);\n return (React__default.createElement(QuestionField, { id: questionId, errorId: errorId, \"data-testid\": \"SliderQuestionType\", ...fieldProps },\n React__default.createElement(RangeSlider, { defaultValue: parseInt(defaultValue, 10), hideTextBox: hideNumericalInput, stepMessage: stepMessage, clearButtonLabelText: clearButtonLabelText, onChange: valueChanged, ...scaleOptions })));\n}\n\nconst useStyles$3 = createUseStyles({\n radioIconInput: {\n /* needed to override styles in BaseInput which effects opacity of icons */\n '& svg': {\n opacity: 1,\n },\n },\n});\n\nfunction RadioIconInput({ className, icon, ...props }, forwardedRef) {\n const { inputProps } = useInputStyles(props);\n const { radioIconInput } = useStyles$3();\n return (React__default.createElement(BaseInput$1, { type: \"radio\", className: classNames(radioIconInput, className), icon: icon, ref: forwardedRef, ...inputProps }));\n}\nvar RadioIconInput$1 = forwardRef(RadioIconInput);\n\nconst useStyles$2 = createUseStyles((theme) => ({\n visuallyHidden,\n inputStyles: {\n textAlign: 'center',\n margin: 'auto',\n marginTop: '4px',\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n margin: '5px',\n marginTop: '4px',\n },\n '&:hover': {\n outline: `1px dashed ${theme.questionColor}`,\n marginTop: '5px',\n },\n '&:focus-within': {\n outline: `1px solid ${theme.questionColor}`,\n marginTop: '5px',\n },\n color: ({ selected = false, symbolColor = '#F5A623' }) => {\n if (selected) {\n return symbolColor;\n }\n return '#fff';\n },\n },\n}));\n\nfunction StarRatingItem({ onChange, selected, checked: checkedProp, name: nameProp, symbolColor, ...props }) {\n let checked = checkedProp;\n let name = nameProp;\n const radioGroup = useRadioGroup();\n if (radioGroup) {\n if (typeof checked === 'undefined') {\n checked = radioGroup.value === props.value;\n }\n if (typeof name === 'undefined') {\n name = radioGroup.name;\n }\n }\n const { visuallyHidden, inputStyles } = useStyles$2({\n checked,\n selected,\n symbolColor: symbolColor ?? '',\n });\n const handleChange = (e) => {\n const { id, checked: isChecked, value } = e.target;\n radioGroup?.onChange({ id, checked: isChecked, value });\n onChange?.({ id, checked: isChecked, value });\n };\n return (React__default.createElement(React__default.Fragment, null,\n React__default.createElement(RadioIconInput$1, { name: name, className: inputStyles, onChange: handleChange, checked: checked, ...props }),\n React__default.createElement(\"label\", { className: visuallyHidden, htmlFor: props.id }, props.label)));\n}\n\nconst useStyles$1 = createUseStyles((theme) => {\n const { bgColor: listItemBackground } = theme.input;\n return {\n visuallyHidden,\n ratingGroupStyle: {\n display: 'flex',\n width: '100%',\n justifyContent: 'space-evenly',\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n flexDirection: 'column',\n },\n },\n starContainer: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-end',\n width: '100%',\n textAlign: 'center',\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n backgroundColor: isDark(theme.questionBody.color || '#fff')\n ? listItemBackground\n : 'rgba(255, 255, 255, 0.15)',\n display: 'flex',\n flexDirection: 'row-reverse',\n justifyContent: 'flex-end',\n marginBottom: '5px',\n },\n },\n starLabel: {\n color: theme.questionColor,\n fontFamily: theme.questionBody.fontFamily,\n fontSize: 14,\n fontWeight: theme.questionBody.fontWeight,\n lineHeight: 1.25,\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n // overwrite TextInput styles\n fontSize: theme.questionBody.fontSize,\n marginTop: '8px',\n },\n },\n naLabel: {\n color: theme.questionColor,\n fontFamily: theme.questionBody.fontFamily,\n fontSize: 14,\n fontWeight: theme.questionBody.fontWeight,\n lineHeight: 1.25,\n [`@media (max-width: ${theme.breakpoints?.xs.max})`]: {\n // overwrite TextInput styles\n display: 'none',\n },\n },\n starRow: {\n height: '42px',\n fontSize: '2em',\n [`@media (min-width: ${theme.breakpoints?.sm.min})`]: {\n backgroundColor: isDark(theme.questionBody.color || '#fff')\n ? listItemBackground\n : 'rgba(255, 255, 255, 0.15)',\n },\n },\n naRow: {\n height: '42px',\n width: '100%',\n [`@media (min-width: ${theme.breakpoints?.sm.min})`]: {\n backgroundColor: isDark(theme.questionBody.color || '#fff')\n ? listItemBackground\n : 'rgba(255, 255, 255, 0.15)',\n '& label': {\n display: 'block',\n height: '42px',\n },\n '& span[class^=\"smqr-richTextContent\"]': {\n display: 'none',\n },\n },\n },\n };\n});\n\nconst COPY$1 = defineMessages({\n STAR: {\n id: 'StarRating.STAR',\n defaultMessage: '{count} {count, plural, one {star} other {stars}}',\n description: 'Star Symbol Rating Label',\n },\n SMILEY: {\n id: 'StarRating.Smiley',\n defaultMessage: '{count} {count, plural, one {smiley} other {smileys}}',\n description: 'Smiley Symbol Rating Label',\n },\n HEART: {\n id: 'StarRating.Heart',\n defaultMessage: '{count} {count, plural, one {heart} other {hearts}}',\n description: 'Heart Symbol Rating Label',\n },\n THUMB: {\n id: 'StarRating.Thumb',\n defaultMessage: '{count} {count, plural, one {thumb} other {thumbs}}',\n description: 'Thumb Symbol Rating Label',\n },\n});\nfunction StarRating({ choices = [], choiceNoneOfTheAbove, choiceComment, disabled, required, id: questionId, rowId, readOnly: _ro, onChange, responses: defaultResponses = [], symbolOptions, ...fieldProps }) {\n const errorId = createErrorId(questionId);\n const [response, setResponse] = useState(defaultResponses);\n /** Filter choices that exist and are visible */\n const { options, sortableOptions: ratingOptions, notaOption, commentOption, } = useQuestionChoices([...choices, choiceNoneOfTheAbove, choiceComment]);\n const isSelected = (index) => {\n const selectedResponse = response.find((c) => c.type !== 'COMMENT');\n const selectedIndex = ratingOptions.findIndex((option) => option.id === selectedResponse?.value);\n return selectedIndex >= index;\n };\n const isChecked = (ratingId) => {\n const selectedResponse = response.find((c) => c.type !== 'COMMENT');\n return ratingId === selectedResponse?.value;\n };\n /**\n * Default value for the group\n */\n const defaultValue = useMemo(() => defaultResponses.find((c) => c.type !== 'COMMENT')?.value, \n // defaultValues should not be changed post render (breaks rules of controlled components)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n /**\n * deselect choice if the question is not required\n */\n const unCheckOption = () => {\n if (required) {\n return;\n }\n const responses = response.filter((c) => c.type === 'COMMENT');\n setResponse(responses);\n onChange?.(responses);\n };\n /**\n * Default value by id\n * used for text-input based choices\n */\n const getDefaultValueById = (id) => {\n const defaultChoice = defaultResponses.find((c) => c.id === id);\n return defaultChoice?.value;\n };\n const handleClick = (e) => {\n const input = e.target;\n const selectedResponse = response.find((c) => c.type !== 'COMMENT');\n const isCheckedID = selectedResponse?.value === input.id;\n if (isCheckedID && input.checked) {\n e.preventDefault();\n unCheckOption();\n }\n };\n const handleKeyboard = (e) => {\n const selectedResponse = response.find((c) => c.type !== 'COMMENT');\n const isCheckedID = selectedResponse?.value === e.target.id;\n if ((isCheckedID && e.code === 'Space') ||\n /* unCheck when ArrowLeft is pressed while on the first option */\n (selectedResponse?.value === options[0].id && e.code === 'ArrowLeft')) {\n e.preventDefault();\n unCheckOption();\n }\n };\n const handleRadioChange = (e) => {\n const choiceData = ratingOptions.find((c) => e.id === c.id);\n const responses = response.filter((c) => c.type === 'COMMENT');\n if (choiceData) {\n const { type } = choiceData;\n responses.push({ id: rowId, type, value: e.value });\n setResponse(responses);\n onChange?.(responses);\n }\n else if (e.id === notaOption?.id) {\n responses.push({\n id: rowId,\n type: 'NOTA',\n value: e.value,\n });\n setResponse(responses);\n onChange?.(responses);\n }\n };\n const handleCommentChange = (e) => {\n const choiceData = options.find((c) => c.id === e.target.id);\n const responses = response.filter((c) => c.type !== 'COMMENT');\n if (choiceData && !!e.target.value) {\n const { id, type } = choiceData;\n responses.push({ id, type, value: e.target.value });\n }\n setResponse(responses);\n onChange?.(responses);\n };\n const radioGroupProps = {\n disabled,\n name: questionId,\n defaultValue,\n onChange: handleRadioChange,\n };\n const { starLabel, naLabel, ratingGroupStyle, starContainer, naRow, starRow, } = useStyles$1();\n const radioEvents = { onClick: handleClick, onKeyDown: handleKeyboard };\n const getHiddenLabel = (index) => {\n const count = index + 1;\n switch (symbolOptions?.symbol) {\n case 'HEART':\n return t(COPY$1.HEART, {\n count,\n });\n case 'SMILEY':\n return t(COPY$1.SMILEY, {\n count,\n });\n case 'THUMB':\n return t(COPY$1.THUMB, {\n count,\n });\n default:\n return t(COPY$1.STAR, {\n count,\n });\n }\n };\n const getIcon = () => {\n switch (symbolOptions?.symbol) {\n case 'HEART':\n return React__default.createElement(HeartIcon$1, null);\n case 'SMILEY':\n return React__default.createElement(SmileyIcon$1, null);\n case 'THUMB':\n return React__default.createElement(ThumbsUpIcon$1, null);\n default:\n return React__default.createElement(StarIcon$1, null);\n }\n };\n return (React__default.createElement(QuestionField, { id: questionId, \"data-testid\": \"StarRatingQuestionType\", errorId: errorId, ...fieldProps },\n React__default.createElement(RadioGroup, { ...radioGroupProps },\n React__default.createElement(\"div\", { className: ratingGroupStyle },\n ratingOptions.map((ratingOption, index) => {\n return (React__default.createElement(\"div\", { className: starContainer, key: ratingOption.id },\n React__default.createElement(\"div\", { className: starLabel, id: `${ratingOption.id}-desc` }, ratingOption.label),\n React__default.createElement(\"div\", { className: starRow },\n React__default.createElement(StarRatingItem, { icon: getIcon(), id: ratingOption.id, label: getHiddenLabel(index), checked: isChecked(ratingOption.id), selected: isSelected(index), value: ratingOption.id, ...radioEvents, \"aria-describedby\": ratingOption.label ? `${ratingOption.id}-desc` : undefined, symbolColor: symbolOptions?.color }))));\n }),\n notaOption && (React__default.createElement(\"div\", { className: starContainer, key: notaOption.id },\n React__default.createElement(\"div\", { className: naLabel, id: `${notaOption.id}-desc` }, notaOption.label),\n React__default.createElement(\"div\", { className: naRow },\n React__default.createElement(Radio$1, { id: notaOption.id, key: notaOption.id, value: notaOption.id, checked: isChecked(notaOption.id), \"aria-describedby\": fieldProps.error && errorId, inputSize: 20, ...radioEvents }, notaOption.label))))),\n commentOption && (React__default.createElement(CommentChoice, { id: commentOption.id, label: commentOption.label, onChange: handleCommentChange, defaultValue: getDefaultValueById(commentOption.id), lineCount: commentOption.linesCount, charCount: commentOption.charsCount, maxLength: TEXT_INPUT_MAX_CHARS })))));\n}\n\nconst useStyles = createUseStyles((theme) => {\n const { fontSize, fontFamily, fontWeight } = theme.questionBody;\n const iconSize = '40px';\n return {\n srOnly: {\n ...visuallyHidden,\n },\n container: {\n display: 'flex',\n flexDirection: 'column',\n },\n label: {\n fontSize,\n fontFamily,\n fontWeight,\n color: theme.questionColor,\n marginBottom: '14px',\n },\n instructionsContainer: {\n paddingBottom: '15px',\n },\n fileDragArea: {\n maxWidth: '600px',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n color: '#404040',\n transition: 'all .2s linear',\n opacity: ({ disabled }) => (disabled ? 0.5 : 1),\n [`@media (min-width: ${theme.breakpoints.sm.min})`]: {\n padding: '20px',\n gap: '10px',\n backgroundColor: ({ disabled, dragActive }) => !disabled && dragActive ? '#ABABAB' : '#EFEFEF',\n border: ({ disabled, dragActive }) => !disabled && dragActive\n ? '1px dashed #ABABAB'\n : '1px dashed #404040',\n outline: ({ disabled, dragActive }) => !disabled && dragActive ? '3px solid #404040' : 'none',\n },\n },\n draggingActive: {\n background: 'blue',\n [`@media (min-width: ${theme.breakpoints.sm.min})`]: {\n borderColor: '#ABABAB',\n backgroundColor: '#ABABAB',\n outline: '3px solid #404040',\n },\n },\n fileUploadDragDesktop: {\n display: 'none',\n [`@media (min-width: ${theme.breakpoints.sm.min})`]: {\n display: 'inline-block',\n },\n },\n stateArea: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '20px',\n [`@media (min-width: ${theme.breakpoints.sm.min})`]: {\n minHeight: '90px',\n },\n },\n stateIcon: {\n fontSize: iconSize,\n },\n stateText: {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n },\n removeFileButton: {\n height: '20px',\n borderRadius: '50%',\n padding: '0',\n border: 'none',\n background: 'transparent',\n fontSize: '20px',\n transition: 'all .2s linear',\n color: '#404040',\n cursor: 'pointer',\n '&:hover, &:focus': {\n outline: '1px solid rgba(64,64,64,1)',\n boxShadow: '0 0 4px transparent',\n outlineOffset: '5px',\n },\n },\n fileUploadText: {\n padding: '15px 0',\n },\n fileUploadLabel: {\n position: 'relative',\n marginRight: '5px',\n transition: 'all .2s linear',\n '&:has(input:focus)': {\n outline: '1px solid #0A7CC1',\n boxShadow: '0 0 4px transparent',\n outlineOffset: '5px',\n },\n },\n fileUploadInput: {\n cursor: 'pointer',\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n opacity: 0,\n fontSize: '.1px',\n },\n linkStyle: {\n color: '#0A7CC1',\n background: 'transparent',\n border: 'none',\n textDecoration: 'underline',\n padding: '0',\n fontSize: '1em',\n display: 'inline-block',\n },\n fileTypeListParagraph: {\n margin: 0,\n },\n fileTypeListItem: {\n background: '#404040',\n borderRadius: '3px',\n padding: '5px',\n textTransform: 'uppercase',\n color: '#FFFFFF',\n fontWeight: '700',\n fontSize: '12px',\n margin: '0 5px',\n },\n loading: {\n width: iconSize,\n height: iconSize,\n border: '5px solid rgba(0,0,0,0.25)',\n borderBottomColor: '#008323',\n borderRadius: '50%',\n display: 'inline-block',\n boxSizing: 'border-box',\n animation: '$rotation 1s linear infinite',\n },\n '@keyframes rotation': {\n '0%': {\n transform: 'rotate(0deg)',\n },\n '100%': {\n transform: 'rotate(360deg)',\n },\n },\n };\n});\n\nconst COPY = defineMessages({\n CHOOSE_OR_DRAG: {\n id: 'FileUpload.chooseDragFile',\n defaultMessage: '
Choose a file
or drag it here
',\n description: '[Type: label][Vis: high] - label for file input when a file has not been uploaded',\n },\n REPLACE_OR_DRAG: {\n id: 'FileUpload.replaceDragFile',\n defaultMessage: '
Replace file
or drag it here
',\n description: '[Type: label][Vis: high] - label for file input when a file has been uploaded',\n },\n SUPPORTED_FILES: {\n id: 'FileUpload.supportedFiles',\n defaultMessage: 'Supported Files',\n description: '[Type: label][Vis: high] - Prefix to the supported files list',\n },\n FILE_UPLOADING: {\n id: 'FileUpload.fileUploading',\n defaultMessage: 'File uploading',\n description: '[Type: label][Vis: high] - Label for when a file is uploading',\n },\n REMOVE_FILE: {\n id: 'FileUpload.removeFile',\n defaultMessage: 'Remove file',\n description: '[Type: label][Vis: high] - Label for the remove currently selected file button',\n },\n FILE_UPLOADED: {\n id: 'FileUpload.fileUploaded',\n defaultMessage: 'File uploaded successfully',\n description: '[Type: label][Vis: high] - Announcement message for when a file is uploaded successfully',\n },\n});\nconst UPLOAD_STATE = {\n default: 'default',\n uploading: 'uploading',\n error: 'error',\n success: 'success',\n};\nfunction FileUpload({ id: questionId, readOnly: _ro, disabled, responses: defaultResponses = [], instructions = 'Optional Instructions', validation, onChange, uploadFile, ...questionFieldProps }) {\n /** possible states are default, uploading, error, success */\n const [state, setState] = useState(defaultResponses[0] ? UPLOAD_STATE.success : UPLOAD_STATE.default);\n const [dragActive, setDragActive] = useState(false);\n /** response is the main state data object from tier 1. Example: {id, value: https://s3.aws.com/filename.jpg} */\n const [response, setResponse] = useState(defaultResponses);\n const errorId = createErrorId(questionId);\n const [announcement, setAnnouncement] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n const fileInputRef = useRef(null);\n const { formats: fileTypes = [], errorMessage: fileTypesError = '' } = validation || {};\n const handleDragOver = (e) => {\n e.preventDefault();\n if (!disabled) {\n setDragActive(true);\n }\n };\n const handleDragLeave = (e) => {\n e.preventDefault();\n if (!disabled) {\n setDragActive(false);\n }\n };\n const setAnnouncementString = (str) => {\n setTimeout(() => {\n setAnnouncement(str);\n }, 5000);\n setAnnouncement('');\n };\n const handleSetError = (errorString) => {\n setState(UPLOAD_STATE.error);\n setResponse([]);\n setAnnouncementString(errorString);\n setErrorMessage(errorString);\n };\n const handleFileUpload = async (f) => {\n if (f && fileTypes.includes(`${f.type.split('/')[1]}`)) {\n setState(UPLOAD_STATE.uploading);\n setAnnouncementString(t(COPY.FILE_UPLOADING));\n const fileResponse = await uploadFile?.(f);\n if (fileResponse) {\n if (fileResponse.error) {\n handleSetError(fileResponse.error);\n }\n else {\n setState(UPLOAD_STATE.success);\n const newResponse = [{ id: questionId, value: fileResponse.url }];\n setResponse(newResponse);\n /** value will be an s3.awe.com url */\n onChange?.(newResponse);\n setAnnouncementString(t(COPY.FILE_UPLOADED));\n }\n }\n /** not sure what to do if there is no file response */\n }\n else {\n handleSetError(fileTypesError);\n }\n };\n const handleDrop = (e) => {\n e.preventDefault();\n if (!disabled) {\n setDragActive(false);\n if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n handleFileUpload(e.dataTransfer.files[0]);\n }\n }\n };\n const handleFileInput = (e) => {\n if (!disabled && e.target.files && e.target.files.length > 0) {\n handleFileUpload(e.target.files[0]);\n }\n };\n const handleClearFile = () => {\n setState(UPLOAD_STATE.default);\n setAnnouncementString('');\n fileInputRef.current?.focus();\n };\n const { srOnly, container, instructionsContainer, fileDragArea, stateArea, stateIcon, stateText, fileUploadText, fileTypeListItem, loading, linkStyle, fileUploadDragDesktop, removeFileButton, fileUploadLabel, fileUploadInput, fileTypeListParagraph, } = useStyles({ dragActive, disabled });\n /** using
because sm-intl doesn't allow the use of */\n const chooseFileLabel = t(COPY.CHOOSE_OR_DRAG, {\n chooseClass: linkStyle,\n dragClass: fileUploadDragDesktop,\n }, { html: true });\n const replaceFileLabel = t(COPY.REPLACE_OR_DRAG, {\n chooseClass: linkStyle,\n dragClass: fileUploadDragDesktop,\n }, { html: true });\n return (React__default.createElement(QuestionField, { id: questionId, \"data-testid\": \"FileUpload\", errorId: errorId, ...questionFieldProps },\n React__default.createElement(\"div\", { role: \"status\", \"aria-live\": \"assertive\", \"aria-atomic\": \"true\", className: srOnly }, announcement),\n React__default.createElement(\"div\", { className: container },\n instructions !== undefined && (React__default.createElement(\"p\", { className: instructionsContainer }, instructions)),\n React__default.createElement(\"div\", { className: classNames(fileDragArea), onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, \"data-testid\": \"FileUpload__DropArea\" },\n React__default.createElement(\"div\", { className: stateArea },\n React__default.createElement(\"div\", { className: stateIcon },\n state === 'default' && React__default.createElement(CloudArrowUpIcon$1, { color: \"#404040\" }),\n state === 'uploading' && React__default.createElement(\"span\", { className: loading }),\n state === 'error' && React__default.createElement(WarningIcon$1, { color: \"#CC0000 \" }),\n state === 'success' && React__default.createElement(CheckOutlineIcon$1, null)),\n React__default.createElement(\"div\", { className: stateText },\n state === 'uploading' && React__default.createElement(T, { desc: COPY.FILE_UPLOADING }),\n state === 'error' && errorMessage,\n state === 'success' && response[0] && (React__default.createElement(React__default.Fragment, null,\n response[0].value.split('/').pop(),\n React__default.createElement(\"button\", { type: \"button\", onClick: handleClearFile, \"aria-label\": t(COPY.REMOVE_FILE), className: removeFileButton },\n React__default.createElement(CloseOutlineIcon$1, null)))))),\n React__default.createElement(\"div\", { className: fileUploadText }, !disabled && (React__default.createElement(\"label\", { htmlFor: `${questionId}-fileInput`, className: fileUploadLabel },\n state === 'success' || state === 'uploading'\n ? replaceFileLabel\n : chooseFileLabel,\n React__default.createElement(\"input\", { type: \"file\", id: `${questionId}-fileInput`, ref: fileInputRef, accept: fileTypes.join(), onChange: handleFileInput, \"aria-describedby\": \"fileTypeList\", className: fileUploadInput })))),\n React__default.createElement(\"p\", { id: `${questionId}-fileTypeList`, className: fileTypeListParagraph },\n React__default.createElement(\"span\", { className: srOnly },\n React__default.createElement(T, { desc: COPY.SUPPORTED_FILES })),\n ' ',\n fileTypes.map((type) => {\n const typeNoDot = type.replace('.', '');\n return (React__default.createElement(\"span\", { key: typeNoDot, className: fileTypeListItem }, typeNoDot));\n }))))));\n}\n\nexport { BestWorst$1 as BestWorst, CaretDownIcon, CaretDownOutlineIcon, Checkbox$1 as Checkbox, CommentBox$1 as CommentBox, DateTime$1 as DateTime, Dropdown$1 as Dropdown, FileUpload, ImageChoice$1 as ImageChoice, ImagePresentational$1 as ImagePresentational, MatrixDropdown, MatrixRating, MultipleChoice, MultipleTextbox, NativeSelect, SelectAnswerOption as NativeSelectOption, Nps, Ranking, SingleTextbox$1 as SingleTextbox, Slider, StarRating, TextPresentational$1 as TextPresentational };\n//# sourceMappingURL=respondent-survey.js.map\n"],"names":["useStyles$10","react_jss__WEBPACK_IMPORTED_MODULE_7__","QM","rowStyles","display","flexWrap","alignItems","Row","id","className","children","props","react__WEBPACK_IMPORTED_MODULE_0__","createElement","_vendor_3a2071be_js__WEBPACK_IMPORTED_MODULE_1__","c","useStyles$$","tooltip","theme","breakpoints","md","min","position","left","center","bottom","width","transform","textAlign","zIndex","fontSize","height","backgroundColor","content","marginLeft","boxShadow","tooltipBody","maxWidth","color","fontWeight","fontFamily","fontStyle","background","padding","lineHeight","borderRadius","defaultSelectors","useFocusTrap","selectors","focusRef","useRef","focusableEls","setEls","useState","useEffect","current","els","Array","from","querySelectorAll","join","handleKeyDown","e","key","handleFocus","firstElement","focusableElements","lastElement","length","shiftKey","document","activeElement","focus","preventDefault","addEventListener","removeEventListener","useStyles$_","modalOverlay","top","right","justifyContent","modal","minHeight","marginBottom","closeBtn","cursor","border","marginTop","tooltipText","questionBody","COPY$h","_sm_intl__WEBPACK_IMPORTED_MODULE_5__","vU","CLOSE_MODAL","defaultMessage","description","Modal","closeModal","closeRef","tooltipId","_wds_utils__WEBPACK_IMPORTED_MODULE_3__","EL","handleClick","stopPropagation","currentTarget","target","handleKeydown","onClick","ref","role","type","t","Tooltip","container","offsetWidth","text","getAttribute","react_jss__WEBPACK_IMPORTED_MODULE_8__","Fg","showModal","setShowModal","mode","setMode","setAttribute","hasAttribute","openModal","mql","window","matchMedia","matches","code","modalEl","tooltipEl","child","containerEl","body","react_dom__WEBPACK_IMPORTED_MODULE_4__","createPortal","listSpacing","margin","mediaReset","useStyles$Z","richTextContent","textDecoration","outline","listStyleType","listStyle","verticalAlign","borderBottom","sanitizeOptions","ADD_TAGS","ADD_ATTR","RichText","elementId","element","Element","containerProps","tooltipNodes","setTooltipNodes","tooltipRef","el","Fragment","dangerouslySetInnerHTML","__html","_sm_utils__WEBPACK_IMPORTED_MODULE_2__","sanitizeString","translate","map","useStyles$Y","wdsIcons","size","iconSize","chosenColor","palette","main","fill","getDisplayName","Component","displayName","name","useSurveyIconStyles","svgContainer","instance","withSvgIcon","SvgIcon","ariaLabelledBy","title","viewBox","styles","hasTitle","iconTitleId","preserveAspectRatio","undefined","focusable","IconDocumentX","withIcon","WithIcon","rest","classes","getOriginalComponent","d","useStyles$X","fallbackComponent","questionColor","errorMessage","COPY$g","ERROR","FallbackComponent","withErrorBoundary","ComponentWithErrorBoundary","E","createFieldId","questionId","createLegendId","createErrorRowId","createErrorId","useQuestionChoices","choices","columns","options","filter","visible","columnOptions","sortableOptions","notaOption","find","otherOption","commentOption","commentColumnOption","useStyles$W","button","nextButton","minWidth","overflowWrap","transition","outlineOffset","answerColor","COPY$f","OK_LABEL","Button","slicedText","slice","useSSRSafeLayoutEffect","useLayoutEffect","EmptyFn","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","useStyles$V","paddingBox","paddingTop","paddingBottom","paddingLeft","paddingRight","format","QuestionSpacing","useOnFocusLeave","focusCallback","ele","contains","relatedTarget","useStyles$U","footerRow","hasFooterPadding","containerStyles","errorRow","overflow","formReset","headerRow","QuestionFieldLayoutTemplate","footer","clickShield","error","onSubmit","onLeave","errorRowId","fieldId","questionTitleId","containerRef","errorRef","lastShownError","setLastShownError","useCallback","event","isAnimating","hasError","initialHeight","offsetHeight","style","fromValue","toValue","animate","onStart","onUpdate","onComplete","duration","delay","easingType","startTime","performance","now","tick","elapsed","time","getValue","start","end","easing","callback","requestAnimationFrame","setTimeout","next","fieldsetRef","tabIndex","calculateMaxNumOfChildrenPerColumn","total","childrenPerColumn","Math","floor","sliceChildren","childrenArr","maxCellsPerCol","totalColumns","index","result","partialColumnsCount","fullColumnsCount","push","useStyles$T","containerVertical","containerHorizontal","column","flexDirection","columnHorizontal","columnHorizontalAutoAdjust","xs","lg","sm","max","xxs","answerLayoutCell","gridCellMargin","flex","wordBreak","otherLayoutCell","otherCellMargin","QuestionAnswerLayoutTemplate","other","noneOfTheAbove","adjustToContent","isHorizontal","columnGroups","useMemo","totalChildren","Children","count","childrenArray","toArray","answersPerColumn","columnClassNames","col","columnIndex","cell","cellIndex","WarningIcon$1","clipRule","fillRule","stroke","useStyles$S","icon","alignSelf","flexShrink","validationMessage","isDark","gap","ValidationMessage","tag","Wrapper","useStyles$R","breakpointMedium","breakpointXsMin","fontWeightOptions","_sm_webassets_SurveyTheme_getFontWeights__WEBPACK_IMPORTED_MODULE_6__","Z","inputArea","medium","cols","textSizeAdjust","primaryAccentColor","borderColor","input","bgColor","opacity","TextArea$1","forwardRef","disabled","required","readOnly","forwardedRef","spellCheck","useStyles$Q","inputField","autoHeight","TextInput$1","onChange","handleChange","useStyles$P","commentLabelText","commentLabel","CommentChoice","label","lineCount","charCount","htmlFor","multipleTextLines","rows","visuallyHidden","clip","clipPath","whiteSpace","textReset","useStyles$O","questionTitleFormatting","questionTitle","questionTitleFontSize","srOnly","addonContainer","questionNumber","isRTL","useDefaultFrontSize","isAccessible","wordWrap","requiredAsterisk","richText","COPY$e","REQUIRED","RespondentQuestionTitle","addon","heading","number","numbered","requiredGroup","useContext","kR","T","desc","defaultOKConfig","QuestionField","titleProps","okButton","showButton","okButtonProps","errorId","errorIdProp","useInputStyles","checked","isChecked","defaultChecked","isDefaultChecked","isDisabled","isAriaDisabled","isReadOnly","isAriaReadOnly","setIsChecked","inputProps","styleProps","radioGroupContext","createContext","useRadioGroup","useControlledState","controlled","default","defaultProp","state","isControlled","valueState","setValue","value","setValueIfUncontrolled","newValue","setRef","useForkRef","refA","refB","refValue","RadioGroup","nameProp","valueProp","defaultValue","divProps","setValueState","Provider","useStyles$N","inputContainer","pointerEvents","controlIcon","BaseInput$1","checkedProp","disabledProp","ariaDisabledProp","readOnlyProp","ariaReadOnlyProp","setChecked","nativeEvent","defaultPrevented","newChecked","cloneElement","RadioIcon$1","rx","ry","useStyles$M","radioInput","RadioInput$1","marginTopHelper$1","useStyles$L","controlLabel","correctAnswerHighlightColor","light","inputSize","marginRight","Radio$1","radioGroup","useStyles$K","breakpointSmMax","rowLabel","rowRadio","radioWidth","BestWorstRow","rowId","columnIds","onKeyDown","bestColId","worstColId","bestRadioId","worstRadioId","labelId","radioEvents","useStyles$J","rowList","headerColumn","labelColumn","labelWidth","_dis","_ro","fields","responses","columnChoices","questionFieldProps","selectedChoices","setSelectedChoices","bestAnswerColumn","worstAnswerColumn","rowFields","getRadioSelection","unCheckOption","newChoices","radioId","match","rowValue","row","isSelected","handleKeyboard","field","CheckboxIcon$1","SelectIcon$1","points","strokeLinejoin","strokeWidth","CaretDownIcon","CaretDownOutlineIcon","CaretLeftOutlineIcon","CaretRightOutlineIcon","DragHandleIcon$1","CalendarIcon","CheckOutlineIcon$1","CloseOutlineIcon$1","CloudArrowUpIcon$1","HeartIcon$1","StarIcon$1","ThumbsUpIcon$1","SmileyIcon$1","InfoIcon$1","useStyles$I","checkboxInput","checkBgColor","CheckboxInput$1","marginTopHelper","useStyles$H","checkboxContainer","Checkbox$3","useStyles$G","checkbox","labelContainer","textInput","checkHover","CheckboxTextfield","inputValue","maxLength","checkboxProps","handleValueChange","inputRef","clientX","clientY","useStyles$F","commentChoiceContainer","Checkbox$1","_req","columnLayout","choiceNoneOfTheAbove","choiceOther","choiceComment","item","newState","questionTitleProps","choice","linesCount","charsCount","CommentBox$1","defaultResponses","fieldProps","titleId","r","useStyles$E","selectContainerStyles","selectStyles","mozAppearance","webkitAppearance","appearance","selectIconStyles","disabledStyles","NativeSelect","iconClasses","iconProps","useStyles$D","selectOption","SelectAnswerOption","useStyles$C","inputGroup","rtl","buttonIcon","isOpen","ComboBoxInputGroup","open","close","ariaActiveDescendant","ariaAutocomplete","ariaControls","ariaLabel","useImperativeHandle","useStyles$B","listBox","overflowY","overflowX","scrollToItem","itemRect","ulRect","getBoundingClientRect","scrollTop","numItemsVisible","containerHeight","itemHeight","round","focusNext","focusedIndex","itemCount","visibleItemCount","focusItem","lastIndex","externalFocusedIndex","setFocusedIndex","itemsRef","ulRef","dataset","interactiveProps","HTMLUListElement","includes","HTMLLIElement","indexOf","isValidElement","selected","useStyles$A","listBoxItem","ListBoxItem","useStyles$z","listBoxContainer","ARIA_ACTIVEDESCENDANT","VirtualizedListBox","itemSize","listRef","innerRef","outerRef","listElement","removeAttribute","toString","F","innerElementType","overscanCount","useStyles$y","comboBox","direction","ComboBox","filterOnChange","outsideValue","optionAlign","comboBoxRef","listBoxRef","setIsOpen","currentOptions","setCurrentOptions","filterActive","setFilterActive","valueOnOpen","setValueOnOpen","firstRender","closeListBox","openListBox","option","matchingOption","activeDescendant","altKey","textContent","clientWidth","useStyles$x","VisuallyHidden","Tag","useCalendarStyles","calendarPickerWrapper","calendarControls","comboboxWrapper","flexGrow","monthWrapper","gridTemplateColumns","gridGap","useMonthStyles","weekdayLabel","weekGrid","useDayStyles","dayDefault","daySelected","daySelectedFirstOrLast","dayDisabled","COPY$d","DAY_OF_MONTH","Day","dayLabel","date","focusedDate","isDateSelected","isDateFocused","isDateHovered","onDateHover","onDateSelect","onDateFocus","isFirstOrLastSelectedDate","dayRef","isSelectedStartOrEnd","isWithinHoverRange","disabledDate","onMouseEnter","N","isDateBlocked","dayInCalendar","COPY$c","DAY_OF_WEEK_LEGEND_SHORT","DAY_OF_WEEK_LEGEND_FULL","Month","year","month","firstDayOfWeek","dayProps","days","weekdayLabels","values","dayOfTheWeek","day","emptyDayKey","COPY$b","PREVIOUS_MONTH","NEXT_MONTH","MONTH_SELECT","YEAR_SELECT","MONTHS","startingYear","Date","getFullYear","yearOptions","_","comboBoxSeedId","CalendarPicker","onDaySelect","onDateChange","selectedDate","startingDayOfWeek","focusTrapRef","comboboxId","selectId","setState","activeMonths","goToDate","Y","startDate","endDate","focusedInput","P","onDatesChange","numberOfMonths","minBookingDays","exactMinBookingDays","currentMonth","monthNames","months","monthOptions","newDate","getPreviousMonth","getMonth","getDate","prevMonthLastDay","monthIndex","findIndex","i","parseInt","getNextMonth","nextMonthLastDay","useStyles$w","visibility","calendarVisibility","DisclosureContainer","onClose","disclosureRef","clickedOutside","comboBoxOptionClicked","startsWith","US_DATE_FORMAT","DATE_DELIMITER","validDateStringCheck","badValues","isValid","dateString","every","isNaN","toDateString","segments","toISOString","split","y","m","s","stringToDate","padStart","useStyles$v","dateInputWrapper","dateInput","maxHeight","calendarButton","calendarWrapper","calendarPosition","defaultLabels$1","dateInputLabel","iconButton","usDateFormat","intlDateFormat","DateInput$1","dateFormat","labels","setCalendarVisibility","dateInputID","internalInputRef","calendarButtonRef","dateValueRef","inputBound","disclosureBound","handleDisclosureClose","placeholder","COPY$a","DATE_LABEL","DATE_BUTTON_LABEL","INTL_DATE_FORMAT","DateInputWrapper$1","l10n","useStyles$u","verticalContainer","horizontalContainer","separator","defaultLabels","timeLabel","hour","minutes","daytimeLabel","am","pm","hourPlaceholder","minutesPlaceholder","TimeInput","minute","period","ariaDescribedBy","timeLabelID","hourLabelID","hourInputID","minuteLabelID","minuteInputID","periodLabelID","periodSelectID","Number","onBlur","String","COPY$9","TIME_LABEL","HOUR_LABEL","MINUTES_LABEL","DAYTIME_LABEL","AM","PM","HOUR_PLACEHOLDER","MINUTE_PLACEHOLDER","TimeInputWrapper","useStyles$t","inlineErrorContainer","COPY$8","DATE_INTL_FORMAT_ERROR","DATE_US_FORMAT_ERROR","ERROR_ENTER_HOURS","ERROR_ENTER_MINUTES","ERROR_SELECT_PERIOD","DateTime$1","showDate","showTime","inlineErrors","responseValues","setResponseValues","dateInputRef","ERROR_PROVIDE_DATE_INTL_FORMAT","ERROR_PROVIDE_DATE_US_FORMAT","getDateValueById","getTimeValueById","handleDateOrTimeChange","prevState","newResponse","detail","useStyles$s","defaultFontSize","highlightColor","otherStyles","hiddenInput","commentChoice","Dropdown$1","_required","_readOnly","responseValue","setResponseValue","getDefaultValueById","defaultChoice","otherText","setOtherText","handleTextChange","choiceData","isOtherAnswerSelected","autoFocus","useStyles$r","imageChoice","controlImage","transitionDuration","optionLabel","imageContainer","objectFit","useStyles$q","imageInput","activeColor","_theme_22bba55b_js__WEBPACK_IMPORTED_MODULE_9__","ImageInput$1","ImageChoiceOption","alt","src","imageSrc","imageId","imageInputEvents","isDefaultPrevented","checkVal","useStyles$p","isFull","layout","isThird","isHalf","cols3","cols2","cols1","imageChoiceContainer","xl","noneOfTheAboveContainer","ImageChoice$1","multiple","imageChoiceType","groupName","image","url","altText","useStyles$o","imageStyles","Image","useStyles$n","presentationalTitleStyles","buttonStyles","ImagePresentational$1","richTextId","buttonProps","useStyles$m","RadioTextfield","refs","radioProps","radioInputRef","radioRef","radio","textInputRef","handleInputChange","handleFocusChange","onFocus","useStyles$l","MultipleChoice","groupId","useStyles$k","MultipleTextbox","response","useStyles$j","npsContainer","npsLabel","npsRatingButtonList","npsRatingButton","borderLeft","borderRight","minLabel","maxLabel","jy","useStyles$i","focusBackgroundColor","primaryBackgroundColor","NpsRatingButton","component","COPY$7","NPS_QUESTION_TITLE","LABEL_SEPERATOR","Nps","ratingChanged","buttonClicked","getLabel","parts","str","reverse","numLabel","textLabel","minFullLabel","maxFullLabel","minValue","minLabelText","maxValue","maxLabelText","instructionsId","accessibleHeading","srOnlyClass","accessibleTitle","useStyles$h","gridCell","gridCellMobile","GridCell","isGridWhenMobile","useStyles$g","labelVisibleBase","labelVisibleMobile","labelHidden","rowBaseStyles","rowAsColumnStyles","GridRow","rowIndex","columnDataArray","hideLabel","gridComponent","labelVisibleClass","colId","colIndex","cellId","useStyles$f","gridContainer","gridStyles","stripeBasic","stripeBasicMobile","stripeOther","stripeOtherMobile","columnContainerBase","columnContainerMobile","columnHeader","bufferVisible","bufferHidden","scrollContainer","MatrixGrid","rowDataArray","commentColumnOtherOption","commentColumnComponent","computedRows","gridRef","hasCommentColumnOther","reduce","acc","associatedId","isOtherRow","columnCount","stripeOtherClass","stripeBasicClass","renderStripe","colSpan","useStyles$e","cellInputWrapper","UNSELECTED_OPTION","COPY$6","SELECT_AN_OPTION","MatrixDropdown","_disabled","sortableRows","storedValuesForGrid","rowDataContainingChange","prevCellsForChangedRow","newCellData","newCellsForChangedRow","newRowForGrid","getDefaultValue","selectAnOptionWithDashes","useStyles$d","cellInputWrapperBase","cellInputCenterOnly","cellInputLeftWhenMobile","labelForMobileView","RatingInput","qid","isMultipleSelectionsPerRow","CheckboxOrRadio","inputId","columnLabel","useStyles$c","gridComponentStyle","commentColumnContainer","MatrixRating","requiredType","isForcedRanking","unSelectOptionID","checkedOption","isNa","prevRows","currentRow","currentCols","newRows","filteredRows","found","splice","handleCommentColumnChange","associatedRowId","currentRowData","allButNewValue","isDelete","commentProps","useStyles$b","breakpointSmMin","listItemBackground","listItemBorderActive","flexStart","controlsFontSize","listItem","userSelect","ghost","outlineWidth","outlineStyle","outlineColor","rankItemContainer","orderIndex","ranksVisible","borderWidth","borderStyle","_sm_webassets_SurveyTheme_isDark__WEBPACK_IMPORTED_MODULE_10__","dragHandle","touchAction","controlsPadding","order","controls","shouldHandleEvent","cur","noDnd","parentElement","dragListeners","dragRef","contentContainer","dragHandleContainer","controlsContainer","orderButton","applicableControl","RANK_NA","ARIA_RANK_NA","itemDisabled","ARIA_RANK_MOVE_UP","ARIA_RANK_MOVE_DOWN","defaultKeyboardCodes","K","Space","Enter","cancel","Esc","PointerSensor","a","activators","eventName","handler","onActivation","KeyboardSensor","b","keyboardCodes","active","activator","activatorNode","list","WebkitUserSelect","WebkitTouchCallout","dragOverlay","ARIA_RANK_MOVED_UP","ARIA_RANK_MOVED_DOWN","ARIA_RANK_MOVED_TO_TOP","ARIA_RANK_MOVED_TO_BOTTOM","SingleTextbox$1","useStyles$6","textPresentationalStyles","TextPresentational$1","useStyles$5","clearableTextInputContainer","clearButton","secondaryAccentColor","clearButtonIcon","ClearableTextInput","onClear","clearVisible","clearButtonLabelText","textBoxRef","useStyles$4","slider","labelItem","flexFlow","textInputContainer","sliderContainer","alertMessageContainer","alertMessage","alertMessageIcon","RangeSlider","stepSize","hideTextBox","startPosition","stepMessage","startValue","rangeValue","setRangeValue","textValue","setTextValue","showStepMessage","setShowStepMessage","showInvalidEntryMessage","setShowInvalidEntryMessage","middle","middleLabelText","changeValue","intVal","responseVal","textBoxVal","displayStepMessage","displayInvalidMessage","valueChangeHandler","answerValue","invalidEntryMessage","replace","getAccessibleValueText","rValue","step","inputMode","pattern","COPY$2","SLIDER_CLEAR_BUTTON_LABEL","SLIDER_STEP_MESSAGE","Slider","scaleOptions","hideNumericalInput","selectedValue","useStyles$3","radioIconInput","RadioIconInput$1","useStyles$2","inputStyles","symbolColor","StarRatingItem","useStyles$1","ratingGroupStyle","starContainer","starLabel","naLabel","starRow","naRow","COPY$1","STAR","SMILEY","HEART","THUMB","StarRating","symbolOptions","setResponse","ratingOptions","selectedResponse","selectedIndex","ratingId","isCheckedID","getHiddenLabel","symbol","getIcon","ratingOption","useStyles","instructionsContainer","fileDragArea","dragActive","draggingActive","fileUploadDragDesktop","stateArea","stateIcon","stateText","removeFileButton","fileUploadText","fileUploadLabel","fileUploadInput","linkStyle","fileTypeListParagraph","fileTypeListItem","textTransform","loading","borderBottomColor","boxSizing","animation","COPY","CHOOSE_OR_DRAG","REPLACE_OR_DRAG","SUPPORTED_FILES","FILE_UPLOADING","REMOVE_FILE","FILE_UPLOADED","UPLOAD_STATE","uploading","success","FileUpload","instructions","validation","uploadFile","setDragActive","announcement","setAnnouncement","setErrorMessage","fileInputRef","formats","fileTypes","fileTypesError","setAnnouncementString","handleSetError","errorString","handleFileUpload","f","fileResponse","chooseFileLabel","chooseClass","dragClass","html","replaceFileLabel","onDragOver","onDragLeave","onDrop","dataTransfer","files","pop","accept","typeNoDot"],"sourceRoot":""}