@clickview/lite 0.56.5-rc.1 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/4690-4abacf2ea2-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/shared/src/components/interactive-questions/interactive-questions.scss","file:///app/packages/libs/shared/src/components/interactive-questions/InteractiveQuestions.tsx","file:///app/packages/libs/shared/src/constants/MinimumGlanceHeight.ts","file:///app/packages/libs/shared/src/enums/InteractionCorrectness.ts","file:///app/packages/projects/lite/src/apps/interactives/components/printable-interactive-worksheet/printable-interactive-worksheet.scss","file:///app/packages/projects/lite/src/apps/interactives/components/printable-interactive-worksheet/PrintableInteractionContent.tsx","file:///app/packages/projects/lite/src/apps/interactives/components/printable-interactive-worksheet/PrintableInteractiveWorksheet.tsx","file:///app/packages/projects/lite/src/apps/interactives/utils/PrintInteractive.tsx","file:///app/packages/projects/lite/src/apps/interactives/views/preview-questions/preview-questions.scss","file:///app/packages/projects/lite/src/apps/interactives/views/preview-questions/PreviewQuestionsView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n ariaLabel={a.tooltip}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n aria-label={'More actions dropdown'}\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </li>\n );\n }\n \n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </li>\n );\n })\n }\n </ul>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"timeTag\":\"ShZvf\",\"hide\":\"FHzDr\",\"time\":\"JDp5N\",\"type\":\"AzIWg\",\"question\":\"UhEYq\",\"deleteContainer\":\"wBqoo\",\"delete\":\"OAQQu\",\"correctness\":\"W5sR9\",\"selected\":\"tfrDf\",\"row\":\"sGk59\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { ExperimentalInteractionTypes, Interaction, Interactive, Timepoint } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { InteractionLabel } from './InteractionLabel';\n\nimport styles from './interactive-questions.scss';\n\nconst namespace = 'shared.interactiveQuestions';\n\ninterface CorrectnessProps {\n interaction: Interaction;\n getCorrectness?: (interaction: Interaction) => InteractionCorrectness;\n}\n\nfunction Correctness(props: CorrectnessProps): React.ReactElement {\n const { interaction, getCorrectness } = props;\n\n const correctness = getCorrectness(interaction);\n\n switch (correctness) {\n case InteractionCorrectness.Correct:\n return <span className='text-success'><SvgContainer size={SvgContainerSize.Medium} svgName={cvSvgLibrary.Check} /></span>;\n case InteractionCorrectness.Incorrect:\n return <span className='text-danger'><SvgContainer size={SvgContainerSize.Medium} svgName={cvSvgLibrary.Close} /></span>;\n case InteractionCorrectness.AwaitingMarking:\n return <span className='text-secondary italic'><i><Text namespace={namespace} phrase='pending' /></i></span>;\n case InteractionCorrectness.UnAnswered:\n return <button className='btn btn-outline-dark'><Text namespace={namespace} phrase='answer' /></button>;\n case InteractionCorrectness.Answered:\n return <span className='text-secondary italic'><i><Text namespace={namespace} phrase='answered' /></i></span>;\n case InteractionCorrectness.NotApplicable:\n return <></>;\n }\n}\n\ninterface InteractionComponentProps {\n interaction: Interaction;\n visibleAt: number;\n hasPlayPageV2?: boolean;\n goToTimepoint: (interactionId: string) => void;\n onClickDelete?: (interactionId: string) => void;\n scrollTo: (offset: number, height: number) => void;\n selectedInteractionId: string;\n isFirstInteraction: boolean;\n getCorrectness?: (interaction: Interaction) => InteractionCorrectness;\n}\n\nfunction InteractionComponent(props: InteractionComponentProps): React.ReactElement {\n const {\n interaction,\n visibleAt,\n selectedInteractionId,\n goToTimepoint,\n scrollTo,\n isFirstInteraction,\n hasPlayPageV2\n } = props;\n\n const selected = interaction.id.toString() === selectedInteractionId?.toString();\n\n const ref = React.useRef<HTMLDivElement>();\n\n React.useEffect(() => {\n if (!selected)\n return;\n\n if (!ref.current)\n return;\n\n const el = ref.current;\n const rect = el.getBoundingClientRect();\n const offset = rect.top - el.offsetParent.getBoundingClientRect().top;\n\n scrollTo(offset, rect.height);\n }, [selected]);\n\n function onClick(): void {\n goToTimepoint && goToTimepoint(interaction.id);\n }\n\n function onClickDelete(event: React.MouseEvent): void {\n event.stopPropagation();\n\n props.onClickDelete(interaction.id);\n }\n\n /**\n * Don't have a cursor if there is no callback function.\n * i.e. when rendered in a popup\n */\n const cursor = goToTimepoint ? 'cursor-pointer' : 'cursor-default';\n\n return (\n <div ref={ref}>\n <DivButton className={`py-2 ${cursor} ${styles.row} ${selected ? styles.selected : ''}`} onClick={selected ? () => {} : onClick}>\n {hasPlayPageV2 ? (\n <div className={`me-3 d-inline-flex rounded-pill justify-content-center align-items-center text-info fw-semibold bg-light-blue ${styles.timeTag} ${isFirstInteraction ? '' : styles.hide}`}>\n {isFirstInteraction ? DurationHelper.ToDisplayDuration(visibleAt) : ''}\n </div>\n ) : (\n <span className={`${styles.time} me-2 ${selected ? 'fw-bold' : ''}`}>{isFirstInteraction ? DurationHelper.ToDisplayDuration(visibleAt) : ''}</span>\n )}\n\n <InteractionLabel\n interaction={interaction}\n showTypeName\n typeNameClassName={styles.type}\n questionClassName={styles.question}\n />\n {props.onClickDelete && (\n <DivButton onClick={onClickDelete} className={`${styles.deleteContainer}`}>\n <span className={`text-end ${styles.delete}`}>\n <SvgContainer\n size={SvgContainerSize.Medium}\n svgName={cvSvgLibrary.Delete}\n />\n </span>\n </DivButton>\n )}\n {props.getCorrectness && (\n <span className={`text-end ${styles.correctness}`}>\n <Correctness interaction={interaction} getCorrectness={props.getCorrectness} />\n </span>\n )}\n </DivButton>\n </div>\n );\n}\n\ninterface TimepointComponentProps {\n timepoint: Timepoint;\n hasPlayPageV2?: boolean;\n goToTimepoint?: (timepointId: string, interactionId: string, visibleAt: number) => void;\n selectedInteractionId?: string;\n scrollTo?: (offset: number, height: number) => void;\n onClickDelete?: (interactionId: string) => void;\n getCorrectness?: (interaction: Interaction) => InteractionCorrectness;\n experimentalInteractiveQuestions?: boolean;\n}\n\nexport function TimepointComponent(props: TimepointComponentProps): React.ReactElement {\n const {\n timepoint,\n scrollTo,\n onClickDelete,\n selectedInteractionId,\n getCorrectness,\n hasPlayPageV2\n } = props;\n\n function goToTimepoint(interactionId: string): void {\n props.goToTimepoint(timepoint.id, interactionId, timepoint.visibleAt);\n }\n\n if (!timepoint.interactions)\n return <></>;\n\n return (\n <>\n {timepoint.interactions.map((interaction, i) => {\n if (!props.experimentalInteractiveQuestions && ExperimentalInteractionTypes[interaction.typeId])\n return <React.Fragment key={i} />;\n\n return (\n <InteractionComponent\n interaction={interaction}\n visibleAt={timepoint.visibleAt}\n goToTimepoint={props.goToTimepoint && goToTimepoint}\n onClickDelete={onClickDelete}\n scrollTo={scrollTo}\n selectedInteractionId={selectedInteractionId}\n isFirstInteraction={i === 0}\n getCorrectness={getCorrectness}\n key={i}\n hasPlayPageV2={hasPlayPageV2}\n />\n );\n })\n }\n </>\n );\n}\n\nexport interface InteractiveQuestionProps {\n interactive: Interactive;\n goToTimepoint?: (timepointId: string, interactionId: string, visibleAt: number) => void;\n selectedInteractionId?: string;\n maxHeight: number;\n hasPlayPageV2?: boolean;\n onClickDelete?: (interactionId: string) => void;\n getCorrectness?: (interaction: Interaction) => InteractionCorrectness;\n experimentalInteractiveQuestions?: boolean;\n}\n\nexport function InteractiveQuestions(props: InteractiveQuestionProps): React.ReactElement {\n const {\n interactive,\n goToTimepoint,\n selectedInteractionId,\n maxHeight,\n onClickDelete,\n getCorrectness,\n hasPlayPageV2\n } = props;\n\n const ref = React.useRef<Scrollbars>();\n\n function scrollTo(offset: number, elHeight: number): void {\n if (!ref.current)\n return;\n\n const height = ref.current.getClientHeight();\n const scroll = ref.current.getScrollTop();\n const elementFromTop = offset + scroll;\n\n /**\n * Element is above scroll window if it's distance from the top\n * is less than the scroll\n */\n const isAboveScrollWindow = elementFromTop < scroll;\n\n /**\n * Element is beneath scroll window if it's distance from the top\n * plus it's height is greater than the scroll plus the window height\n */\n const isBelowScrollWindow = (elementFromTop + elHeight) > (scroll + height);\n\n /**\n * So we don't scroll if our element is visible\n */\n if (!isAboveScrollWindow && !isBelowScrollWindow)\n return;\n\n /**\n * If our element isn't visible, we want to try scroll so the element is\n * centered in our viewport\n */\n ref.current.scrollTop(elementFromTop - (height / 2) + (elHeight / 2));\n }\n\n const borderClass = goToTimepoint ? 'border rounded' : '';\n\n return (\n <Scrollbars\n autoHeight\n autoHeightMax={maxHeight}\n className={borderClass}\n hideTracksWhenNotNeeded={true}\n ref={ref}\n >\n <div className='px-3 py-1'>\n {interactive.timepoints.map((t, i) => (\n <TimepointComponent\n key={i}\n timepoint={t}\n goToTimepoint={goToTimepoint}\n selectedInteractionId={selectedInteractionId}\n scrollTo={scrollTo}\n onClickDelete={onClickDelete}\n getCorrectness={getCorrectness}\n hasPlayPageV2={hasPlayPageV2}\n experimentalInteractiveQuestions={props.experimentalInteractiveQuestions}\n />\n ))\n }\n </div>\n </Scrollbars>\n );\n}\n","// 368 is the min height of Video at a glance which is defined as $glanceHeight in synopsis.scss\nexport const MINIMUM_GLANCE_HEIGHT = 368; // px","export enum InteractionCorrectness {\n Correct,\n Incorrect,\n AwaitingMarking,\n \n Answered,\n UnAnswered,\n NotApplicable\n}","// extracted by mini-css-extract-plugin\nexport default {\"worksheet\":\"Bv47P\",\"interaction\":\"efkgi\",\"timepointCell\":\"ffoDR\",\"interactionCell\":\"rKBEu\",\"checkbox\":\"ilhe4\",\"multipleChoiceAnswer\":\"TqhFx\",\"shortAnswerTextArea\":\"voJCM\",\"image\":\"go2dV\",\"cvLogo\":\"Z4GOw\",\"copyright\":\"petLf\",\"illustrationDrawingArea\":\"iA_Dl\"};","import React from 'react';\n\nimport { Interaction, InteractionTypeId } from 'libs/shared/interfaces';\n\nimport styles from './printable-interactive-worksheet.scss';\n\nconst MISSING_WORD_REGEX = /{([^{}]*)}/g;\n\ninterface PrintableInteractionContentProps {\n interaction: Interaction;\n}\n\nfunction InteractionName(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <div className='mb-2'>{props.interaction.name}</div>\n );\n}\n\nfunction AnnotationInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <div dangerouslySetInnerHTML={{ __html: props.interaction.data.annotation }}></div>\n );\n}\n\nfunction ImageInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <>\n <InteractionName interaction={props.interaction} />\n <img className={styles.image} src={props.interaction.data.url} />\n </>\n );\n}\n\nfunction MissingWordInteraction(props: PrintableInteractionContentProps): JSX.Element {\n function replaceMissingWord(match: string, val: string): string {\n const actionableItem = props.interaction.actionableItems.find(a => a.order.toString() === val);\n const width = 2 * actionableItem.name.length;\n return Array(width + 1).join('_');\n }\n\n const formatted = (props.interaction.data.sentence as string).replace(MISSING_WORD_REGEX, replaceMissingWord);\n\n return (\n <div>{formatted}</div>\n );\n}\n\nfunction MultipleChoiceInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <>\n <InteractionName interaction={props.interaction} />\n <table>\n <tbody>\n {props.interaction.actionableItems.map(a => (\n <tr key={a.id}>\n <td>\n <div className={`border ${styles.checkbox}`} />\n </td>\n <td className='break-word align-top'>\n <div className={styles.multipleChoiceAnswer}>\n {a.name}\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </>\n );\n}\n\nfunction ShortAnswerInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <>\n <InteractionName interaction={props.interaction} />\n <div className={`border w-100 ${styles.shortAnswerTextArea}`} />\n </>\n );\n}\n\nfunction IllustrationInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <>\n <InteractionName interaction={props.interaction} />\n <div className={`w-100 border ${styles.illustrationDrawingArea}`} />\n </>\n );\n}\n\nexport const PrintableInteractionComponentLookup: {\n [typeId: number]: (props: PrintableInteractionContentProps) => JSX.Element\n} = {\n [InteractionTypeId.Annotation]: AnnotationInteraction,\n [InteractionTypeId.Image]: ImageInteraction,\n [InteractionTypeId.MissingWord]: MissingWordInteraction,\n [InteractionTypeId.MultipleChoice]: MultipleChoiceInteraction,\n [InteractionTypeId.TrueOrFalse]: MultipleChoiceInteraction,\n [InteractionTypeId.ShortAnswer]: ShortAnswerInteraction,\n [InteractionTypeId.Illustration]: IllustrationInteraction\n};\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { Interaction, Interactive } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\n\nimport { PrintableInteractionComponentLookup } from './PrintableInteractionContent';\n\nimport styles from './printable-interactive-worksheet.scss';\n\nconst getPhrase = LanguageService.encloseNamespace('interactives.printableInteractiveWorksheet');\n\ninterface PrintableInteractionProps {\n interaction: Interaction;\n visibleAt: number;\n}\n\nfunction PrintableInteraction(props: PrintableInteractionProps): JSX.Element {\n const InteractionComponent = PrintableInteractionComponentLookup[props.interaction.typeId];\n\n if (!InteractionComponent)\n return <></>;\n\n return (\n <tr className={styles.interaction}>\n <td className={`align-top ${styles.timepointCell}`}>\n {DurationHelper.ToDisplayDuration(props.visibleAt)}\n </td>\n <td className={`break-word ${styles.interactionCell}`}>\n <InteractionComponent interaction={props.interaction} />\n </td>\n </tr>\n );\n}\n\ninterface PrintableInteractiveQuestionsProps {\n interactive: Interactive;\n}\n\nfunction PrintableInteractiveQuestions(props: PrintableInteractiveQuestionsProps): JSX.Element {\n return (\n <>\n {props.interactive.timepoints.map((timepoint, i) => (\n timepoint.interactions.map((interaction, j) => (\n <PrintableInteraction key={`${i}:${j}`} interaction={interaction} visibleAt={timepoint.visibleAt} />\n ))\n ))}\n </>\n );\n}\n\ninterface PrintableInteractiveWorksheetProps {\n worksheetElementId: string;\n interactive: Interactive;\n isClickViewContent: boolean;\n}\n\nexport function PrintableInteractiveWorksheet(props: PrintableInteractiveWorksheetProps): JSX.Element {\n const year = (new Date()).getFullYear();\n\n return (\n <div id={props.worksheetElementId} className={styles.worksheet}>\n <div className='row pb-2'>\n <div className='col-6'>{getPhrase('name')} ______________________________</div>\n <div className='col-6'>{getPhrase('date')} ______________________________</div>\n </div>\n <h1>\n <strong>{getPhrase('questionSheet')}:</strong> {props.interactive.name}\n </h1>\n <table>\n <tbody>\n <PrintableInteractiveQuestions interactive={props.interactive} />\n </tbody>\n </table>\n <div className={styles.cvLogo}>\n <ClickViewLogo />\n </div>\n {props.isClickViewContent &&\n <span className={styles.copyright}>{getPhrase('copyright', { year })}</span>\n }\n </div>\n );\n}\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport printJS from 'print-js';\n\nimport { DevError } from 'libs/common/backbone/errors/DevError';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { Interactive } from 'libs/shared/interfaces';\n\nimport { PrintableInteractiveWorksheet } from 'apps/interactives/components/printable-interactive-worksheet/PrintableInteractiveWorksheet';\n\nconst getPhrase = LanguageService.encloseNamespace('interactives.utils');\n\nexport function printInteractive(interactive: Interactive, isCVContent: boolean, onDone?: () => void): void {\n const printRegion = document.getElementById('print-region');\n\n if (!printRegion)\n Core.ErrorHelper.throw(new DevError('Could not find print region in layout'));\n\n if (!interactive)\n return;\n\n const worksheetElementId = `printable-interactive-${interactive.id}`;\n\n const root = createRoot(printRegion);\n\n function print(): void {\n printJS({\n printable: worksheetElementId,\n type: 'html',\n documentTitle: getPhrase('worksheetTitle', { interactiveName: interactive.name }),\n targetStyles: ['*'],\n style: '@page { size: A4; margin: 1.5cm 0; }',\n onLoadingEnd: () => {\n onDone && onDone();\n root.unmount();\n },\n /**\n * font_size is deprecated but a bug in print.js still applies the default (12pt) if it\n * is omitted, overriding any custom/inline styles. \n * This value is the same as the one found in in .worksheet in printable-interactive-worksheet.scss\n */\n font_size: '14px'\n });\n }\n\n root.render(\n <div className='d-none'>\n <PrintableInteractiveWorksheet\n worksheetElementId={worksheetElementId}\n interactive={interactive}\n isClickViewContent={isCVContent}\n />\n </div>\n );\n\n window.setTimeout(() => {\n print();\n }, 200);\n}","// extracted by mini-css-extract-plugin\nexport default {\"printBtn\":\"VWlur\"};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { ClickDescriptor, EntityType, EventVersion, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions, Actions as ActionButtons } from 'libs/shared/components/actions/Actions';\nimport { InteractiveQuestions } from 'libs/shared/components/interactive-questions/InteractiveQuestions';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { MINIMUM_GLANCE_HEIGHT } from 'libs/shared/constants/MinimumGlanceHeight';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Interactive, InteractiveMetadata, PopupViewProps } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { printInteractive } from 'apps/interactives/utils/PrintInteractive';\n\nimport styles from './preview-questions.scss';\n\nconst getPhrase = LanguageService.encloseNamespace('interactives.previewQuestions');\n\ninterface PreviewQuestionsViewProps extends PopupViewProps {\n id: string;\n}\n\nexport function PreviewQuestionsView(props: PreviewQuestionsViewProps): React.ReactElement {\n const [ showPrintButtonSpinner, setShowPrintButtonSpinner ] = React.useState(false);\n\n const { experimentalInteractiveQuestions } = useSettings(null);\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(props.id)\n );\n\n const interactive = Flight.useBasicFetch<Interactive>(interactiveMetadata.data ?\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId) : null);\n\n let analyticsData: HashObject = null;\n\n if (interactiveMetadata.data) {\n analyticsData = {\n id: interactiveMetadata.data.id,\n interactiveId: interactiveMetadata.data.interactiveId,\n name: interactiveMetadata.data.name\n };\n\n if (interactiveMetadata.data._parentVideo?.id)\n analyticsData.video = { id: interactiveMetadata.data._parentVideo.id };\n\n if (interactiveMetadata.data._parentClip?.id)\n analyticsData.clip = { id: interactiveMetadata.data._parentClip.id };\n }\n\n const actions: ActionOptions[] = [\n {\n label: getPhrase('watchInteractive'),\n className: 'btn btn-outline-dark me-2',\n svgName: cvSvgLibrary.Play,\n button: true,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ props.id, TextHelper.slugify(interactive.data?.name) ]\n },\n onClick: props.closePopup,\n analyticsData,\n analyticsOptions: {\n entity: EntityType.Interactive,\n actionType: UserAction.Click,\n location: LocationContext.PreviewInteractiveQuestions,\n descriptor: ClickDescriptor.Button\n }\n },\n {\n label: getPhrase('printAsWorksheet'),\n className: `btn btn-outline-dark ${styles.printBtn}`,\n svgName: cvSvgLibrary.Print,\n button: true,\n onClick: () => {\n setShowPrintButtonSpinner(true);\n printInteractive(\n interactive.data,\n interactiveMetadata.data._isClickViewCurated?.value,\n () => setShowPrintButtonSpinner(false)\n );\n },\n showSpinner: showPrintButtonSpinner,\n analyticsData,\n analyticsOptions: {\n entity: EntityType.Interactive,\n actionType: UserAction.Print,\n location: LocationContext.PreviewInteractiveQuestions,\n workflowPhase: WorkflowPhase.Start,\n eventVersion: EventVersion.V2\n }\n }\n ];\n\n function goToTimepoint(_: string, __: string, visibleAt: number): void {\n Core.AppLinkHelper.trigger({\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ props.id, TextHelper.slugify(interactive.data?.name) ],\n params: visibleAt ? { t: Math.floor(visibleAt / 1000) } : null\n });\n props.closePopup();\n }\n\n return (\n <Popup\n title={getPhrase('mainTitle')}\n closePopup={props.closePopup}\n showLoadingSpinner={!interactive.data}\n size='lg'\n >\n {(() => {\n if (!interactive.data)\n return <></>;\n\n return (\n <>\n <InteractiveQuestions\n interactive={interactive.data}\n maxHeight={MINIMUM_GLANCE_HEIGHT}\n experimentalInteractiveQuestions={experimentalInteractiveQuestions}\n goToTimepoint={goToTimepoint}\n />\n <PopupButtons>\n <ActionButtons actions={actions} />\n </PopupButtons>\n </>\n );\n })()}\n </Popup>\n );\n}\n"],"names":["Actions","props","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","className","length","map","idx","key","label","appLink","href","onClick","svgName","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","analyticsData","analyticsOptions","openInNewTab","disabled","iconButton","showBorder","customSize","ariaLabel","title","spanHack","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","AppLink","SvgContainer","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","type","id","size","showDivider","undefined","group","Tooltip","defaultProps","S","namespace","Correctness","interaction","getCorrectness","InteractionCorrectness","Text","phrase","InteractionComponent","visibleAt","selectedInteractionId","goToTimepoint","scrollTo","isFirstInteraction","hasPlayPageV2","selected","toString","ref","current","el","rect","getBoundingClientRect","offset","top","offsetParent","cursor","DivButton","DurationHelper","InteractionLabel","showTypeName","typeNameClassName","questionClassName","onClickDelete","event","stopPropagation","TimepointComponent","timepoint","interactionId","interactions","i","experimentalInteractiveQuestions","typeId","InteractiveQuestions","interactive","maxHeight","elHeight","getClientHeight","scroll","getScrollTop","elementFromTop","scrollTop","borderClass","autoHeight","autoHeightMax","hideTracksWhenNotNeeded","timepoints","t","MINIMUM_GLANCE_HEIGHT","MISSING_WORD_REGEX","InteractionName","name","MultipleChoiceInteraction","actionableItems","PrintableInteractionComponentLookup","dangerouslySetInnerHTML","__html","data","annotation","src","url","formatted","sentence","replace","match","val","find","Array","join","getPhrase","LanguageService","PrintableInteraction","PrintableInteractiveQuestions","j","PrintableInteractiveWorksheet","year","Date","getFullYear","worksheetElementId","ClickViewLogo","isClickViewContent","printInteractive","isCVContent","onDone","printRegion","document","getElementById","DevError","root","render","window","setTimeout","printable","documentTitle","interactiveName","targetStyles","onLoadingEnd","unmount","font_size","PreviewQuestionsView","showPrintButtonSpinner","setShowPrintButtonSpinner","useSettings","interactiveMetadata","InteractiveRequests","interactiveId","_parentVideo","video","_parentClip","clip","application","args","TextHelper","closePopup","entity","actionType","location","descriptor","_isClickViewCurated","value","workflowPhase","eventVersion","Popup","showLoadingSpinner","_","__","params","Math","floor","PopupButtons"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8046],{41630:(e,t,n)=>{n.d(t,{X:()=>C});var r=n(32735),a=n(44645),i=n(17327),c=n.n(i),l=n(56050),o=n(23481),m=n(81886),u=n(2786),s=n(93264),_=n(40424);const d={worksheet:"Bv47P",interaction:"efkgi",timepointCell:"ffoDR",interactionCell:"rKBEu",checkbox:"ilhe4",multipleChoiceAnswer:"TqhFx",shortAnswerTextArea:"voJCM",image:"go2dV",cvLogo:"Z4GOw",copyright:"petLf",illustrationDrawingArea:"iA_Dl"};function v(e){return v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},v(e)}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=v(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=v(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==v(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=/{([^{}]*)}/g;function f(e){return r.createElement("div",{className:"mb-2"},e.interaction.name)}function b(e){return r.createElement(r.Fragment,null,r.createElement(f,{interaction:e.interaction}),r.createElement("table",null,r.createElement("tbody",null,e.interaction.actionableItems.map((function(e){return r.createElement("tr",{key:e.id},r.createElement("td",null,r.createElement("div",{className:"border ".concat(d.checkbox)})),r.createElement("td",{className:"break-word align-top"},r.createElement("div",{className:d.multipleChoiceAnswer},e.name)))})))))}var g=p(p(p(p(p(p(p({},_.Z9.Annotation,(function(e){return r.createElement("div",{dangerouslySetInnerHTML:{__html:e.interaction.data.annotation}})})),_.Z9.Image,(function(e){return r.createElement(r.Fragment,null,r.createElement(f,{interaction:e.interaction}),r.createElement("img",{className:d.image,src:e.interaction.data.url}))})),_.Z9.MissingWord,(function(e){var t=e.interaction.data.sentence.replace(E,(function(t,n){var r=2*e.interaction.actionableItems.find((function(e){return e.order.toString()===n})).name.length;return Array(r+1).join("_")}));return r.createElement("div",null,t)})),_.Z9.MultipleChoice,b),_.Z9.TrueOrFalse,b),_.Z9.ShortAnswer,(function(e){return r.createElement(r.Fragment,null,r.createElement(f,{interaction:e.interaction}),r.createElement("div",{className:"border w-100 ".concat(d.shortAnswerTextArea)}))})),_.Z9.Illustration,(function(e){return r.createElement(r.Fragment,null,r.createElement(f,{interaction:e.interaction}),r.createElement("div",{className:"w-100 border ".concat(d.illustrationDrawingArea)}))})),w=o.T.encloseNamespace("interactives.printableInteractiveWorksheet");function y(e){var t=g[e.interaction.typeId];return t?r.createElement("tr",{className:d.interaction},r.createElement("td",{className:"align-top ".concat(d.timepointCell)},s.T.ToDisplayDuration(e.visibleAt)),r.createElement("td",{className:"break-word ".concat(d.interactionCell)},r.createElement(t,{interaction:e.interaction}))):r.createElement(r.Fragment,null)}function h(e){return r.createElement(r.Fragment,null,e.interactive.timepoints.map((function(e,t){return e.interactions.map((function(n,a){return r.createElement(y,{key:"".concat(t,":").concat(a),interaction:n,visibleAt:e.visibleAt})}))})))}function k(e){var t=(new Date).getFullYear();return r.createElement("div",{id:e.worksheetElementId,className:d.worksheet},r.createElement("div",{className:"row pb-2"},r.createElement("div",{className:"col-6"},w("name")," ______________________________"),r.createElement("div",{className:"col-6"},w("date")," ______________________________")),r.createElement("h1",null,r.createElement("strong",null,w("questionSheet"),":")," ",e.interactive.name),r.createElement("table",null,r.createElement("tbody",null,r.createElement(h,{interactive:e.interactive}))),r.createElement("div",{className:d.cvLogo},r.createElement(u.$S,null)),e.isClickViewContent&&r.createElement("span",{className:d.copyright},w("copyright",{year:t})))}var N=o.T.encloseNamespace("interactives.utils");function C(e,t,n){var i=document.getElementById("print-region");if(i||m.Q.Ry.throw(new l.H("Could not find print region in layout")),e){var o="printable-interactive-".concat(e.id),u=(0,a.s)(i);u.render(r.createElement("div",{className:"d-none"},r.createElement(k,{worksheetElementId:o,interactive:e,isClickViewContent:t}))),window.setTimeout((function(){c()({printable:o,type:"html",documentTitle:N("worksheetTitle",{interactiveName:e.name}),targetStyles:["*"],style:"@page { size: A4; margin: 1.5cm 0; }",onLoadingEnd:function(){n&&n(),u.unmount()},font_size:"14px"})}),200)}}},59678:(e,t,n)=>{n.r(t),n.d(t,{PrintInteractiveView:()=>s});var r=n(32735),a=n(23481),i=n(20354),c=n(9111),l=n(50023),o=n(20768),m=n(41630),u=a.T.encloseNamespace("interactives.printInteractive");function s(e){var t=i.a.useBasicFetch(o.b.interactiveMetadata(e.id)),n=i.a.useBasicFetch(t.data?o.b.interactive(t.data.interactiveId):null);return r.useEffect((function(){var r;n.data&&(0,m.X)(n.data,null===(r=t.data._isClickViewCurated)||void 0===r?void 0:r.value,e.closePopup)}),[!!n.data]),r.createElement(c.G,{title:u("popupTitle"),closePopup:e.closePopup,showLoadingSpinner:!n.data,size:"lg"},r.createElement(l.E,null))}}}]);
2
- //# sourceMappingURL=8046-485ecb0ed7-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/8046-485ecb0ed7-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/interactives/components/printable-interactive-worksheet/printable-interactive-worksheet.scss","file:///app/packages/projects/lite/src/apps/interactives/components/printable-interactive-worksheet/PrintableInteractionContent.tsx","file:///app/packages/projects/lite/src/apps/interactives/components/printable-interactive-worksheet/PrintableInteractiveWorksheet.tsx","file:///app/packages/projects/lite/src/apps/interactives/utils/PrintInteractive.tsx","file:///app/packages/projects/lite/src/apps/interactives/views/print-interactive/PrintInteractiveView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"worksheet\":\"Bv47P\",\"interaction\":\"efkgi\",\"timepointCell\":\"ffoDR\",\"interactionCell\":\"rKBEu\",\"checkbox\":\"ilhe4\",\"multipleChoiceAnswer\":\"TqhFx\",\"shortAnswerTextArea\":\"voJCM\",\"image\":\"go2dV\",\"cvLogo\":\"Z4GOw\",\"copyright\":\"petLf\",\"illustrationDrawingArea\":\"iA_Dl\"};","import React from 'react';\n\nimport { Interaction, InteractionTypeId } from 'libs/shared/interfaces';\n\nimport styles from './printable-interactive-worksheet.scss';\n\nconst MISSING_WORD_REGEX = /{([^{}]*)}/g;\n\ninterface PrintableInteractionContentProps {\n interaction: Interaction;\n}\n\nfunction InteractionName(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <div className='mb-2'>{props.interaction.name}</div>\n );\n}\n\nfunction AnnotationInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <div dangerouslySetInnerHTML={{ __html: props.interaction.data.annotation }}></div>\n );\n}\n\nfunction ImageInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <>\n <InteractionName interaction={props.interaction} />\n <img className={styles.image} src={props.interaction.data.url} />\n </>\n );\n}\n\nfunction MissingWordInteraction(props: PrintableInteractionContentProps): JSX.Element {\n function replaceMissingWord(match: string, val: string): string {\n const actionableItem = props.interaction.actionableItems.find(a => a.order.toString() === val);\n const width = 2 * actionableItem.name.length;\n return Array(width + 1).join('_');\n }\n\n const formatted = (props.interaction.data.sentence as string).replace(MISSING_WORD_REGEX, replaceMissingWord);\n\n return (\n <div>{formatted}</div>\n );\n}\n\nfunction MultipleChoiceInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <>\n <InteractionName interaction={props.interaction} />\n <table>\n <tbody>\n {props.interaction.actionableItems.map(a => (\n <tr key={a.id}>\n <td>\n <div className={`border ${styles.checkbox}`} />\n </td>\n <td className='break-word align-top'>\n <div className={styles.multipleChoiceAnswer}>\n {a.name}\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </>\n );\n}\n\nfunction ShortAnswerInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <>\n <InteractionName interaction={props.interaction} />\n <div className={`border w-100 ${styles.shortAnswerTextArea}`} />\n </>\n );\n}\n\nfunction IllustrationInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <>\n <InteractionName interaction={props.interaction} />\n <div className={`w-100 border ${styles.illustrationDrawingArea}`} />\n </>\n );\n}\n\nexport const PrintableInteractionComponentLookup: {\n [typeId: number]: (props: PrintableInteractionContentProps) => JSX.Element\n} = {\n [InteractionTypeId.Annotation]: AnnotationInteraction,\n [InteractionTypeId.Image]: ImageInteraction,\n [InteractionTypeId.MissingWord]: MissingWordInteraction,\n [InteractionTypeId.MultipleChoice]: MultipleChoiceInteraction,\n [InteractionTypeId.TrueOrFalse]: MultipleChoiceInteraction,\n [InteractionTypeId.ShortAnswer]: ShortAnswerInteraction,\n [InteractionTypeId.Illustration]: IllustrationInteraction\n};\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { Interaction, Interactive } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\n\nimport { PrintableInteractionComponentLookup } from './PrintableInteractionContent';\n\nimport styles from './printable-interactive-worksheet.scss';\n\nconst getPhrase = LanguageService.encloseNamespace('interactives.printableInteractiveWorksheet');\n\ninterface PrintableInteractionProps {\n interaction: Interaction;\n visibleAt: number;\n}\n\nfunction PrintableInteraction(props: PrintableInteractionProps): JSX.Element {\n const InteractionComponent = PrintableInteractionComponentLookup[props.interaction.typeId];\n\n if (!InteractionComponent)\n return <></>;\n\n return (\n <tr className={styles.interaction}>\n <td className={`align-top ${styles.timepointCell}`}>\n {DurationHelper.ToDisplayDuration(props.visibleAt)}\n </td>\n <td className={`break-word ${styles.interactionCell}`}>\n <InteractionComponent interaction={props.interaction} />\n </td>\n </tr>\n );\n}\n\ninterface PrintableInteractiveQuestionsProps {\n interactive: Interactive;\n}\n\nfunction PrintableInteractiveQuestions(props: PrintableInteractiveQuestionsProps): JSX.Element {\n return (\n <>\n {props.interactive.timepoints.map((timepoint, i) => (\n timepoint.interactions.map((interaction, j) => (\n <PrintableInteraction key={`${i}:${j}`} interaction={interaction} visibleAt={timepoint.visibleAt} />\n ))\n ))}\n </>\n );\n}\n\ninterface PrintableInteractiveWorksheetProps {\n worksheetElementId: string;\n interactive: Interactive;\n isClickViewContent: boolean;\n}\n\nexport function PrintableInteractiveWorksheet(props: PrintableInteractiveWorksheetProps): JSX.Element {\n const year = (new Date()).getFullYear();\n\n return (\n <div id={props.worksheetElementId} className={styles.worksheet}>\n <div className='row pb-2'>\n <div className='col-6'>{getPhrase('name')} ______________________________</div>\n <div className='col-6'>{getPhrase('date')} ______________________________</div>\n </div>\n <h1>\n <strong>{getPhrase('questionSheet')}:</strong> {props.interactive.name}\n </h1>\n <table>\n <tbody>\n <PrintableInteractiveQuestions interactive={props.interactive} />\n </tbody>\n </table>\n <div className={styles.cvLogo}>\n <ClickViewLogo />\n </div>\n {props.isClickViewContent &&\n <span className={styles.copyright}>{getPhrase('copyright', { year })}</span>\n }\n </div>\n );\n}\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport printJS from 'print-js';\n\nimport { DevError } from 'libs/common/backbone/errors/DevError';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { Interactive } from 'libs/shared/interfaces';\n\nimport { PrintableInteractiveWorksheet } from 'apps/interactives/components/printable-interactive-worksheet/PrintableInteractiveWorksheet';\n\nconst getPhrase = LanguageService.encloseNamespace('interactives.utils');\n\nexport function printInteractive(interactive: Interactive, isCVContent: boolean, onDone?: () => void): void {\n const printRegion = document.getElementById('print-region');\n\n if (!printRegion)\n Core.ErrorHelper.throw(new DevError('Could not find print region in layout'));\n\n if (!interactive)\n return;\n\n const worksheetElementId = `printable-interactive-${interactive.id}`;\n\n const root = createRoot(printRegion);\n\n function print(): void {\n printJS({\n printable: worksheetElementId,\n type: 'html',\n documentTitle: getPhrase('worksheetTitle', { interactiveName: interactive.name }),\n targetStyles: ['*'],\n style: '@page { size: A4; margin: 1.5cm 0; }',\n onLoadingEnd: () => {\n onDone && onDone();\n root.unmount();\n },\n /**\n * font_size is deprecated but a bug in print.js still applies the default (12pt) if it\n * is omitted, overriding any custom/inline styles. \n * This value is the same as the one found in in .worksheet in printable-interactive-worksheet.scss\n */\n font_size: '14px'\n });\n }\n\n root.render(\n <div className='d-none'>\n <PrintableInteractiveWorksheet\n worksheetElementId={worksheetElementId}\n interactive={interactive}\n isClickViewContent={isCVContent}\n />\n </div>\n );\n\n window.setTimeout(() => {\n print();\n }, 200);\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupLoadingSpinner } from 'libs/shared/components/popup/PopupLoadingSpinner';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { Interactive, InteractiveMetadata, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { printInteractive } from 'apps/interactives/utils/PrintInteractive';\n\nconst getPhrase = LanguageService.encloseNamespace('interactives.printInteractive');\n\ninterface PrintInteractiveViewProps extends PopupViewProps {\n id: string;\n}\n\nexport function PrintInteractiveView(props: PrintInteractiveViewProps): React.ReactElement {\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(props.id)\n );\n\n const interactive = Flight.useBasicFetch<Interactive>(interactiveMetadata.data ?\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId) : null);\n\n React.useEffect(() => {\n if (!interactive.data)\n return;\n\n printInteractive(interactive.data, interactiveMetadata.data._isClickViewCurated?.value, props.closePopup);\n }, [!!interactive.data]);\n\n return (\n <Popup\n title={getPhrase('popupTitle')}\n closePopup={props.closePopup}\n showLoadingSpinner={!interactive.data}\n size='lg'\n >\n <PopupLoadingSpinner />\n </Popup>\n );\n}\n"],"names":["MISSING_WORD_REGEX","InteractionName","props","className","interaction","name","MultipleChoiceInteraction","actionableItems","map","a","key","id","PrintableInteractionComponentLookup","dangerouslySetInnerHTML","__html","data","annotation","src","url","formatted","sentence","replace","match","val","width","find","order","toString","length","Array","join","getPhrase","LanguageService","PrintableInteraction","InteractionComponent","typeId","DurationHelper","visibleAt","PrintableInteractiveQuestions","interactive","timepoints","timepoint","i","interactions","j","PrintableInteractiveWorksheet","year","Date","getFullYear","worksheetElementId","ClickViewLogo","isClickViewContent","printInteractive","isCVContent","onDone","printRegion","document","getElementById","DevError","root","render","window","setTimeout","printable","type","documentTitle","interactiveName","targetStyles","style","onLoadingEnd","unmount","font_size","PrintInteractiveView","interactiveMetadata","interactiveId","_isClickViewCurated","value","closePopup","title","showLoadingSpinner","size"],"sourceRoot":""}