@khanacademy/perseus-editor 18.2.3 → 19.0.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":"index.js","sources":["../../src/version.ts","../../src/styles/constants.ts","../../src/components/device-framer.tsx","../../src/components/json-editor.tsx","../../src/components/section-control-button.tsx","../../src/katex-mhchem/parser.js","../../src/katex-mhchem/index.js","../../src/components/drag-target.tsx","../../src/styles/icon-paths.ts","../../src/components/widget-editor.tsx","../../src/components/widget-select.tsx","../../src/components/toggleable-caret.tsx","../../src/tex-error-view.tsx","../../src/editor.tsx","../../src/iframe-content-renderer.tsx","../../src/article-editor.tsx","../../src/components/viewport-resizer.tsx","../../../../vendor/jsdiff/jsdiff.js","../../src/diffs/split-diff.ts","../../src/diffs/string-array-diff.ts","../../src/diffs/text-diff.tsx","../../src/diffs/widget-diff-performer.ts","../../src/diffs/widget-diff.tsx","../../src/diffs/renderer-diff.tsx","../../src/diffs/article-diff.tsx","../../src/diffs/item-diff.tsx","../../src/hint-editor.tsx","../../src/item-extras-editor.tsx","../../src/item-editor.tsx","../../src/editor-page.tsx","../../src/content-preview.tsx","../../src/widgets/categorizer-editor.tsx","../../src/components/blur-input.tsx","../../src/widgets/cs-program-editor.tsx","../../src/widgets/definition-editor.tsx","../../src/widgets/deprecated-standin-editor.tsx","../../src/widgets/dropdown-editor.tsx","../../src/widgets/explanation-editor.tsx","../../../../vendor/hubble/hubble.js","../../src/components/sortable.tsx","../../src/widgets/expression-editor.tsx","../../src/widgets/graded-group-editor.tsx","../../src/widgets/graded-group-set-editor.tsx","../../src/components/graph-settings.tsx","../../src/widgets/grapher-editor.tsx","../../src/widgets/group-editor.tsx","../../src/widgets/iframe-editor.tsx","../../src/widgets/image-editor.tsx","../../src/widgets/input-number-editor.tsx","../../src/widgets/interaction-editor/element-container.tsx","../../src/widgets/interaction-editor/color-picker.tsx","../../src/widgets/interaction-editor/dash-picker.tsx","../../src/widgets/interaction-editor/mathquill-input.tsx","../../src/widgets/interaction-editor/function-editor.tsx","../../src/widgets/interaction-editor/label-editor.tsx","../../src/widgets/interaction-editor/arrow-picker.tsx","../../src/widgets/interaction-editor/line-editor.tsx","../../src/widgets/interaction-editor/constraint-editor.tsx","../../src/widgets/interaction-editor/movable-line-editor.tsx","../../src/widgets/interaction-editor/movable-point-editor.tsx","../../src/widgets/interaction-editor/parametric-editor.tsx","../../src/widgets/interaction-editor/point-editor.tsx","../../src/widgets/interaction-editor/rectangle-editor.tsx","../../src/widgets/interaction-editor/interaction-editor.tsx","../../../../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../src/util/points.ts","../../src/widgets/interactive-graph-editor/components/graph-points-count-selector.tsx","../../src/widgets/interactive-graph-editor/components/graph-type-selector.tsx","../../src/components/heading.tsx","../../src/widgets/interactive-graph-editor/components/interactive-graph-correct-answer.tsx","../../src/widgets/interactive-graph-editor/components/interactive-graph-description.tsx","../../src/widgets/interactive-graph-editor/locked-figures/labeled-row.tsx","../../src/widgets/interactive-graph-editor/components/interactive-graph-settings.tsx","../../src/widgets/interactive-graph-editor/components/interactive-graph-sr-tree.tsx","../../src/widgets/interactive-graph-editor/components/segment-count-selector.tsx","../../src/widgets/interactive-graph-editor/locked-figures/locked-figure-select.tsx","../../src/components/scrollless-number-text-field.tsx","../../src/components/angle-input.tsx","../../src/components/coordinate-pair-input.tsx","../../src/components/perseus-editor-accordion.tsx","../../src/widgets/interactive-graph-editor/locked-figures/color-swatch.tsx","../../src/widgets/interactive-graph-editor/locked-figures/color-select.tsx","../../src/widgets/interactive-graph-editor/locked-figures/ellipse-swatch.tsx","../../src/widgets/interactive-graph-editor/locked-figures/line-stroke-select.tsx","../../src/widgets/interactive-graph-editor/locked-figures/locked-figure-aria.tsx","../../src/widgets/interactive-graph-editor/locked-figures/locked-figure-settings-actions.tsx","../../src/widgets/interactive-graph-editor/locked-figures/locked-label-settings.tsx","../../src/widgets/interactive-graph-editor/locked-figures/util.ts","../../src/widgets/interactive-graph-editor/locked-figures/locked-ellipse-settings.tsx","../../src/widgets/interactive-graph-editor/locked-figures/line-swatch.tsx","../../src/widgets/interactive-graph-editor/locked-figures/locked-function-examples.ts","../../src/widgets/interactive-graph-editor/locked-figures/locked-function-settings.tsx","../../src/widgets/interactive-graph-editor/locked-figures/labeled-switch.tsx","../../src/widgets/interactive-graph-editor/locked-figures/locked-point-settings.tsx","../../src/widgets/interactive-graph-editor/locked-figures/locked-line-settings.tsx","../../src/widgets/interactive-graph-editor/locked-figures/polygon-swatch.tsx","../../src/widgets/interactive-graph-editor/locked-figures/locked-polygon-settings.tsx","../../src/widgets/interactive-graph-editor/locked-figures/locked-vector-settings.tsx","../../src/widgets/interactive-graph-editor/locked-figures/locked-figure-settings.tsx","../../src/widgets/interactive-graph-editor/locked-figures/locked-figures-section.tsx","../../src/widgets/interactive-graph-editor/start-coords/util.ts","../../src/widgets/interactive-graph-editor/start-coords/start-coords-angle.tsx","../../src/widgets/interactive-graph-editor/start-coords/start-coords-circle.tsx","../../src/widgets/interactive-graph-editor/start-coords/start-coords-line.tsx","../../src/widgets/interactive-graph-editor/start-coords/start-coords-multiline.tsx","../../src/widgets/interactive-graph-editor/start-coords/start-coords-point.tsx","../../src/widgets/interactive-graph-editor/start-coords/start-coords-quadratic.tsx","../../src/widgets/interactive-graph-editor/start-coords/start-coords-sinusoid.tsx","../../src/widgets/interactive-graph-editor/start-coords/start-coords-settings.tsx","../../src/widgets/interactive-graph-editor/interactive-graph-editor.tsx","../../src/styles/global-colors.ts","../../src/components/form-wrapped-text-field.tsx","../../src/components/link.ts","../../src/widgets/label-image/answer-choices.tsx","../../src/components/hover-behavior.ts","../../src/components/checkbox.tsx","../../src/widgets/label-image/behavior.tsx","../../src/components/util.ts","../../src/components/dropdown-option.tsx","../../src/widgets/label-image/marker.tsx","../../src/widgets/label-image/question-markers.tsx","../../src/widgets/label-image/select-image.tsx","../../src/widgets/label-image-editor.tsx","../../src/widgets/matcher-editor.tsx","../../src/widgets/matrix-editor.tsx","../../src/widgets/measurer-editor.tsx","../../src/widgets/molecule-editor.tsx","../../src/widgets/number-line-editor.tsx","../../src/widgets/numeric-input-editor.tsx","../../src/widgets/orderer-editor.tsx","../../src/widgets/passage-editor.tsx","../../src/widgets/passage-ref-editor.tsx","../../src/widgets/passage-ref-target-editor.tsx","../../src/widgets/phet-simulation-editor.tsx","../../src/widgets/plotter-editor.tsx","../../src/widgets/python-program-editor.tsx","../../src/widgets/radio/editor.tsx","../../src/widgets/sorter-editor.tsx","../../src/widgets/table-editor.tsx","../../src/widgets/video-editor.tsx","../../src/all-editors.ts","../../src/index.ts"],"sourcesContent":["// This file is processed by a Rollup plugin (replace) to inject the production\n// version number during the release build.\n// In dev, you'll never see the version number.\n\nimport {addLibraryVersionToPerseusDebug} from \"@khanacademy/perseus-utils\";\n\nconst libName = \"@khanacademy/perseus-editor\";\nexport const libVersion = \"__lib_version__\";\n\naddLibraryVersionToPerseusDebug(libName, libVersion);\n","export const devices = {\n PHONE: \"phone\" as const,\n TABLET: \"tablet\" as const,\n DESKTOP: \"desktop\" as const,\n} as const;\n\n// How many pixels do we reserve on the right-hand side of a preview\n// for displaying lint indicators? This space needs to be reserved\n// in DeviceFramer, but it is actually allocated in PerseusFrame\nexport const lintGutterWidth = 36;\n\n// How wide a border does PerseusFrame draw? We need to allocate enough\n// space for it in DeviceFramer.\nexport const perseusFrameBorderWidth = 1;\n","/**\n * A component that displays its contents inside a device frame.\n */\n\nimport * as React from \"react\";\n\nimport {lintGutterWidth, perseusFrameBorderWidth} from \"../styles/constants\";\n\nimport type {DeviceType} from \"@khanacademy/perseus\";\n\nconst SCREEN_SIZES = {\n phone: {\n width: 320,\n height: 480,\n framedWidth: 320,\n },\n tablet: {\n width: 750,\n height: 920,\n framedWidth: 525,\n },\n desktop: {\n width: 688,\n height: 600,\n framedWidth: 688,\n },\n} as const;\n\ntype Props = React.PropsWithChildren<{\n deviceType?: DeviceType;\n nochrome: boolean;\n}>;\n\nconst DeviceFramer = ({\n children,\n deviceType = \"phone\",\n nochrome,\n}: Props): React.ReactElement => {\n const scale = React.useMemo(\n () =>\n SCREEN_SIZES[deviceType].framedWidth /\n SCREEN_SIZES[deviceType].width,\n [deviceType],\n );\n\n // In this mode we draw our own border and don't reserve\n // space for a lint gutter.\n const withChromeStyle = React.useMemo(\n () => ({\n backgroundColor: \"white\",\n overflow: \"scroll\",\n color: \"black\",\n textAlign: \"left\",\n width: SCREEN_SIZES[deviceType].width,\n height: SCREEN_SIZES[deviceType].height,\n border: \"solid 1px #CCC\",\n margin: 8,\n zoom: scale,\n }),\n [deviceType, scale],\n );\n\n if (nochrome) {\n // Render content inside a variable height iframe. Used on the\n // \"edit\" table of the content editor. In this mode, PerseusFrame\n // will draw the border and reserve space on the right for\n // lint indicators.\n return (\n <div\n key=\"screen\"\n style={{\n overflow: \"scroll\",\n width:\n SCREEN_SIZES[deviceType].framedWidth +\n 2 * perseusFrameBorderWidth +\n lintGutterWidth,\n }}\n >\n <div>{children}</div>\n </div>\n );\n }\n\n return (\n <div\n key=\"screen\"\n className=\"screen\"\n style={{...withChromeStyle, textAlign: \"start\"}}\n >\n {children}\n </div>\n );\n};\n\nexport default DeviceFramer;\n","/* eslint-disable @babel/no-invalid-this */\n/* eslint-disable react/no-unsafe */\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\ntype Props = {\n multiLine: boolean;\n value: any;\n onChange: (newJson: any) => void;\n};\n\ntype DefaultProps = {\n value: Props[\"value\"];\n};\n\ntype State = {\n currentValue: string | undefined;\n valid: boolean | undefined;\n};\n\nclass JsonEditor extends React.Component<Props, State> {\n static displayName: \"JsonEditor\";\n\n static defaultProps: DefaultProps = {\n value: {},\n };\n\n constructor(props) {\n super(props);\n this.state = this.getInitialState();\n\n this.handleBlur = this.handleBlur.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n }\n\n getInitialState() {\n return {\n currentValue: JSON.stringify(this.props.value, null, 4),\n valid: true,\n };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const shouldReplaceContent =\n !this.state.valid ||\n !_.isEqual(\n nextProps.value,\n JSON.parse(\n this.state.currentValue ? this.state.currentValue : \"\",\n ),\n );\n\n if (shouldReplaceContent) {\n this.setState(this.getInitialState());\n }\n }\n\n handleKeyDown(e) {\n // This handler allows the tab character to be entered by pressing\n // tab, instead of jumping to the next (non-existant) field\n if (e.key === \"Tab\") {\n const cursorPos = e.target.selectionStart;\n const v = e.target.value;\n const textBefore = v.substring(0, cursorPos);\n const textAfter = v.substring(cursorPos, v.length);\n e.target.value = textBefore + \" \" + textAfter;\n e.target.selectionStart = textBefore.length + 4;\n e.target.selectionEnd = textBefore.length + 4;\n\n e.preventDefault();\n this.handleChange(e);\n }\n }\n\n handleChange(e) {\n const nextString = e.target.value;\n try {\n let json = JSON.parse(nextString);\n // Some extra handling to allow copy-pasting from /api/vi\n if (_.isString(json)) {\n json = JSON.parse(json);\n }\n // This callback unfortunately causes multiple renders,\n // but seems to be necessary to avoid componentWillReceiveProps\n // being called before setState has gone through\n this.setState(\n {\n currentValue: nextString,\n valid: true,\n },\n function () {\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.props.onChange(json);\n },\n );\n } catch {\n this.setState({\n currentValue: nextString,\n valid: false,\n });\n }\n }\n\n // You can type whatever you want as you're typing, but if it's not valid\n // when you blur, it will revert to the last valid value.\n handleBlur(e) {\n const nextString = e.target.value;\n try {\n let json = JSON.parse(nextString);\n // Some extra handling to allow copy-pasting from /api/vi\n if (_.isString(json)) {\n json = JSON.parse(json);\n }\n // This callback unfortunately causes multiple renders,\n // but seems to be necessary to avoid componentWillReceiveProps\n // being called before setState has gone through\n this.setState(\n {\n currentValue: JSON.stringify(json, null, 4),\n valid: true,\n },\n function () {\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.props.onChange(json);\n },\n );\n } catch {\n this.setState({\n currentValue: JSON.stringify(this.props.value, null, 4),\n valid: true,\n });\n }\n }\n\n render() {\n const classes =\n \"perseus-json-editor \" + (this.state.valid ? \"valid\" : \"invalid\");\n\n return (\n <textarea\n className={classes}\n value={this.state.currentValue}\n onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onBlur={this.handleBlur}\n />\n );\n }\n}\n\nexport default JsonEditor;\n","import {components} from \"@khanacademy/perseus\";\nimport Clickable from \"@khanacademy/wonder-blocks-clickable\";\nimport {color} from \"@khanacademy/wonder-blocks-tokens\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport type {PropsFor} from \"@khanacademy/wonder-blocks-core\";\n\nconst {InlineIcon} = components;\n\ntype InlineIconProps = PropsFor<typeof InlineIcon>;\n\ntype SectionControlButtonProps = {\n icon: InlineIconProps;\n onClick: () => unknown;\n title: string;\n};\n\nexport default class SectionControlButton extends React.Component<SectionControlButtonProps> {\n render(): React.ReactNode {\n const {icon, onClick, title} = this.props;\n\n return (\n <Clickable\n className={\n \"section-control-button \" +\n \"simple-button \" +\n \"simple-button--small \"\n }\n onClick={(e) => {\n e.preventDefault();\n onClick();\n }}\n role=\"button\"\n hideDefaultFocusRing={true}\n aria-label={title}\n style={styles.button}\n >\n {({hovered, focused, pressed}) => <InlineIcon {...icon} />}\n </Clickable>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n button: {\n backgroundColor: color.gold,\n margin: 2,\n paddingRight: 10,\n paddingLeft: 10,\n paddingBottom: 2,\n },\n});\n","/* eslint-disable */\n\n//\n// NOTE(kevinb): This file was originally part of mhchem.js, but\n// was extracted so that it could be mocked for testing purposes.\n//\n\n//\n// This is the main function for handing the \\ce and \\pu commands.\n// It takes the argument to \\ce or \\pu and returns the corresponding TeX string.\n//\n\nexport const chemParse = function (tokens, stateMachine) {\n // Recreate the argument string from KaTeX's array of tokens.\n let str = \"\";\n let expectedLoc = tokens[tokens.length - 1].loc.start;\n for (let i = tokens.length - 1; i >= 0; i--) {\n if (tokens[i].loc.start > expectedLoc) {\n // context.consumeArgs has eaten a space.\n str += \" \";\n expectedLoc = tokens[i].loc.start;\n }\n str += tokens[i].text;\n expectedLoc += tokens[i].text.length;\n }\n const tex = texify.go(mhchemParser.go(str, stateMachine));\n return tex;\n};\n\n//\n// Core parser for mhchem syntax (recursive)\n//\n/** @type {MhchemParser} */\nvar mhchemParser = {\n //\n // Parses mchem \\ce syntax\n //\n // Call like\n // go(\"H2O\");\n //\n go: function (input, stateMachine) {\n if (!input) {\n return [];\n }\n if (stateMachine === undefined) {\n stateMachine = \"ce\";\n }\n let state = \"0\";\n\n //\n // String buffers for parsing:\n //\n // buffer.a == amount\n // buffer.o == element\n // buffer.b == left-side superscript\n // buffer.p == left-side subscript\n // buffer.q == right-side subscript\n // buffer.d == right-side superscript\n //\n // buffer.r == arrow\n // buffer.rdt == arrow, script above, type\n // buffer.rd == arrow, script above, content\n // buffer.rqt == arrow, script below, type\n // buffer.rq == arrow, script below, content\n //\n // buffer.text_\n // buffer.rm\n // etc.\n //\n // buffer.parenthesisLevel == int, starting at 0\n // buffer.sb == bool, space before\n // buffer.beginsWithBond == bool\n //\n // These letters are also used as state names.\n //\n // Other states:\n // 0 == begin of main part (arrow/operator unlikely)\n // 1 == next entity\n // 2 == next entity (arrow/operator unlikely)\n // 3 == next atom\n // c == macro\n //\n /** @type {Buffer} */\n const buffer = {};\n buffer[\"parenthesisLevel\"] = 0;\n\n input = input.replace(/\\n/g, \" \");\n input = input.replace(/[\\u2212\\u2013\\u2014\\u2010]/g, \"-\");\n input = input.replace(/[\\u2026]/g, \"...\");\n\n //\n // Looks through mhchemParser.transitions, to execute a matching action\n // (recursive)\n //\n let lastInput;\n let watchdog = 10;\n /** @type {ParserOutput[]} */\n const output = [];\n while (true) {\n if (lastInput !== input) {\n watchdog = 10;\n lastInput = input;\n } else {\n watchdog--;\n }\n //\n // Find actions in transition table\n //\n const machine = mhchemParser.stateMachines[stateMachine];\n const t = machine.transitions[state] || machine.transitions[\"*\"];\n iterateTransitions: for (let i = 0; i < t.length; i++) {\n const matches = mhchemParser.patterns.match_(\n t[i].pattern,\n input,\n );\n if (matches) {\n //\n // Execute actions\n //\n const task = t[i].task;\n for (let iA = 0; iA < task.action_.length; iA++) {\n var o;\n //\n // Find and execute action\n //\n if (machine.actions[task.action_[iA].type_]) {\n o = machine.actions[task.action_[iA].type_](\n buffer,\n matches.match_,\n task.action_[iA].option,\n );\n } else if (\n mhchemParser.actions[task.action_[iA].type_]\n ) {\n o = mhchemParser.actions[task.action_[iA].type_](\n buffer,\n matches.match_,\n task.action_[iA].option,\n );\n } else {\n throw [\n \"MhchemBugA\",\n \"mhchem bug A. Please report. (\" +\n task.action_[iA].type_ +\n \")\",\n ]; // Trying to use non-existing action\n }\n //\n // Add output\n //\n mhchemParser.concatArray(output, o);\n }\n //\n // Set next state,\n // Shorten input,\n // Continue with next character\n // (= apply only one transition per position)\n //\n state = task.nextState || state;\n if (input.length > 0) {\n if (!task.revisit) {\n input = matches.remainder;\n }\n if (!task.toContinue) {\n break iterateTransitions;\n }\n } else {\n return output;\n }\n }\n }\n //\n // Prevent infinite loop\n //\n if (watchdog <= 0) {\n throw [\"MhchemBugU\", \"mhchem bug U. Please report.\"]; // Unexpected character\n }\n }\n },\n concatArray: function (a, b) {\n if (b) {\n if (Array.isArray(b)) {\n for (let iB = 0; iB < b.length; iB++) {\n a.push(b[iB]);\n }\n } else {\n a.push(b);\n }\n }\n },\n\n patterns: {\n //\n // Matching patterns\n // either regexps or function that return null or {match_:\"a\", remainder:\"bc\"}\n //\n patterns: {\n // property names must not look like integers (\"2\") for correct property traversal order, later on\n empty: /^$/,\n else: /^./,\n else2: /^./,\n space: /^\\s/,\n \"space A\": /^\\s(?=[A-Z\\\\$])/,\n space$: /^\\s$/,\n \"a-z\": /^[a-z]/,\n x: /^x/,\n x$: /^x$/,\n i$: /^i$/,\n letters:\n /^(?:[a-zA-Z\\u03B1-\\u03C9\\u0391-\\u03A9?@]|(?:\\\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\\s+|\\{\\}|(?![a-zA-Z]))))+/,\n \"\\\\greek\":\n /^\\\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\\s+|\\{\\}|(?![a-zA-Z]))/,\n \"one lowercase latin letter $\": /^(?:([a-z])(?:$|[^a-zA-Z]))$/,\n \"$one lowercase latin letter$ $\":\n /^\\$(?:([a-z])(?:$|[^a-zA-Z]))\\$$/,\n \"one lowercase greek letter $\":\n /^(?:\\$?[\\u03B1-\\u03C9]\\$?|\\$?\\\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)\\s*\\$?)(?:\\s+|\\{\\}|(?![a-zA-Z]))$/,\n digits: /^[0-9]+/,\n \"-9.,9\": /^[+\\-]?(?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+))/,\n \"-9.,9 no missing 0\": /^[+\\-]?[0-9]+(?:[.,][0-9]+)?/,\n \"(-)(9.,9)(e)(99)\": function (input) {\n const m = input.match(\n /^(\\+\\-|\\+\\/\\-|\\+|\\-|\\\\pm\\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+))?(\\((?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+))\\))?(?:([eE]|\\s*(\\*|x|\\\\times|\\u00D7)\\s*10\\^)([+\\-]?[0-9]+|\\{[+\\-]?[0-9]+\\}))?/,\n );\n if (m && m[0]) {\n return {\n match_: m.splice(1),\n remainder: input.substr(m[0].length),\n };\n }\n return null;\n },\n \"(-)(9)^(-9)\": function (input) {\n const m = input.match(\n /^(\\+\\-|\\+\\/\\-|\\+|\\-|\\\\pm\\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+)?)\\^([+\\-]?[0-9]+|\\{[+\\-]?[0-9]+\\})/,\n );\n if (m && m[0]) {\n return {\n match_: m.splice(1),\n remainder: input.substr(m[0].length),\n };\n }\n return null;\n },\n \"state of aggregation $\": function (input) {\n // ... or crystal system\n const a = mhchemParser.patterns.findObserveGroups(\n input,\n \"\",\n /^\\([a-z]{1,3}(?=[\\),])/,\n \")\",\n \"\",\n ); // (aq), (aq,$\\infty$), (aq, sat)\n if (a && a.remainder.match(/^($|[\\s,;\\)\\]\\}])/)) {\n return a;\n } // AND end of 'phrase'\n const m = input.match(/^(?:\\((?:\\\\ca\\s?)?\\$[amothc]\\$\\))/); // OR crystal system ($o$) (\\ca$c$)\n if (m) {\n return {match_: m[0], remainder: input.substr(m[0].length)};\n }\n return null;\n },\n \"_{(state of aggregation)}$\": /^_\\{(\\([a-z]{1,3}\\))\\}/,\n \"{[(\": /^(?:\\\\\\{|\\[|\\()/,\n \")]}\": /^(?:\\)|\\]|\\\\\\})/,\n \", \": /^[,;]\\s*/,\n \",\": /^[,;]/,\n \".\": /^[.]/,\n \". \": /^([.\\u22C5\\u00B7\\u2022])\\s*/,\n \"...\": /^\\.\\.\\.(?=$|[^.])/,\n \"* \": /^([*])\\s*/,\n \"^{(...)}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"^{\",\n \"\",\n \"\",\n \"}\",\n );\n },\n \"^($...$)\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"^\",\n \"$\",\n \"$\",\n \"\",\n );\n },\n \"^a\": /^\\^([0-9]+|[^\\\\_])/,\n \"^\\\\x{}{}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"^\",\n /^\\\\[a-zA-Z]+\\{/,\n \"}\",\n \"\",\n \"\",\n \"{\",\n \"}\",\n \"\",\n true,\n );\n },\n \"^\\\\x{}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"^\",\n /^\\\\[a-zA-Z]+\\{/,\n \"}\",\n \"\",\n );\n },\n \"^\\\\x\": /^\\^(\\\\[a-zA-Z]+)\\s*/,\n \"^(-1)\": /^\\^(-?\\d+)/,\n \"'\": /^'/,\n \"_{(...)}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"_{\",\n \"\",\n \"\",\n \"}\",\n );\n },\n \"_($...$)\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"_\",\n \"$\",\n \"$\",\n \"\",\n );\n },\n _9: /^_([+\\-]?[0-9]+|[^\\\\])/,\n \"_\\\\x{}{}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"_\",\n /^\\\\[a-zA-Z]+\\{/,\n \"}\",\n \"\",\n \"\",\n \"{\",\n \"}\",\n \"\",\n true,\n );\n },\n \"_\\\\x{}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"_\",\n /^\\\\[a-zA-Z]+\\{/,\n \"}\",\n \"\",\n );\n },\n \"_\\\\x\": /^_(\\\\[a-zA-Z]+)\\s*/,\n \"^_\": /^(?:\\^(?=_)|\\_(?=\\^)|[\\^_]$)/,\n \"{}\": /^\\{\\}/,\n \"{...}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\",\n \"{\",\n \"}\",\n \"\",\n );\n },\n \"{(...)}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"{\",\n \"\",\n \"\",\n \"}\",\n );\n },\n \"$...$\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\",\n \"$\",\n \"$\",\n \"\",\n );\n },\n \"${(...)}$\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"${\",\n \"\",\n \"\",\n \"}$\",\n );\n },\n \"$(...)$\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"$\",\n \"\",\n \"\",\n \"$\",\n );\n },\n \"=<>\": /^[=<>]/,\n \"#\": /^[#\\u2261]/,\n \"+\": /^\\+/,\n \"-$\": /^-(?=[\\s_},;\\]/]|$|\\([a-z]+\\))/, // -space -, -; -] -/ -$ -state-of-aggregation\n \"-9\": /^-(?=[0-9])/,\n \"- orbital overlap\": /^-(?=(?:[spd]|sp)(?:$|[\\s,;\\)\\]\\}]))/,\n \"-\": /^-/,\n \"pm-operator\": /^(?:\\\\pm|\\$\\\\pm\\$|\\+-|\\+\\/-)/,\n operator:\n /^(?:\\+|(?:[\\-=<>]|<<|>>|\\\\approx|\\$\\\\approx\\$)(?=\\s|$|-?[0-9]))/,\n arrowUpDown: /^(?:v|\\(v\\)|\\^|\\(\\^\\))(?=$|[\\s,;\\)\\]\\}])/,\n \"\\\\bond{(...)}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\\\\bond{\",\n \"\",\n \"\",\n \"}\",\n );\n },\n \"->\": /^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\\u2192\\u27F6\\u21CC])/,\n CMT: /^[CMT](?=\\[)/,\n \"[(...)]\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"[\",\n \"\",\n \"\",\n \"]\",\n );\n },\n \"1st-level escape\": /^(&|\\\\\\\\|\\\\hline)\\s*/,\n \"\\\\,\": /^(?:\\\\[,\\ ;:])/, // \\\\x - but output no space before\n \"\\\\x{}{}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\",\n /^\\\\[a-zA-Z]+\\{/,\n \"}\",\n \"\",\n \"\",\n \"{\",\n \"}\",\n \"\",\n true,\n );\n },\n \"\\\\x{}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\",\n /^\\\\[a-zA-Z]+\\{/,\n \"}\",\n \"\",\n );\n },\n \"\\\\ca\": /^\\\\ca(?:\\s+|(?![a-zA-Z]))/,\n \"\\\\x\": /^(?:\\\\[a-zA-Z]+\\s*|\\\\[_&{}%])/,\n orbital: /^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/, // only those with numbers in front, because the others will be formatted correctly anyway\n others: /^[\\/~|]/,\n \"\\\\frac{(...)}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\\\\frac{\",\n \"\",\n \"\",\n \"}\",\n \"{\",\n \"\",\n \"\",\n \"}\",\n );\n },\n \"\\\\overset{(...)}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\\\\overset{\",\n \"\",\n \"\",\n \"}\",\n \"{\",\n \"\",\n \"\",\n \"}\",\n );\n },\n \"\\\\underset{(...)}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\\\\underset{\",\n \"\",\n \"\",\n \"}\",\n \"{\",\n \"\",\n \"\",\n \"}\",\n );\n },\n \"\\\\underbrace{(...)}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\\\\underbrace{\",\n \"\",\n \"\",\n \"}_\",\n \"{\",\n \"\",\n \"\",\n \"}\",\n );\n },\n \"\\\\color{(...)}0\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\\\\color{\",\n \"\",\n \"\",\n \"}\",\n );\n },\n \"\\\\color{(...)}{(...)}1\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\\\\color{\",\n \"\",\n \"\",\n \"}\",\n \"{\",\n \"\",\n \"\",\n \"}\",\n );\n },\n \"\\\\color(...){(...)}2\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\\\\color\",\n \"\\\\\",\n \"\",\n /^(?=\\{)/,\n \"{\",\n \"\",\n \"\",\n \"}\",\n );\n },\n \"\\\\ce{(...)}\": function (input) {\n return mhchemParser.patterns.findObserveGroups(\n input,\n \"\\\\ce{\",\n \"\",\n \"\",\n \"}\",\n );\n },\n oxidation$: /^(?:[+-][IVX]+|\\\\pm\\s*0|\\$\\\\pm\\$\\s*0)$/,\n \"d-oxidation$\": /^(?:[+-]?\\s?[IVX]+|\\\\pm\\s*0|\\$\\\\pm\\$\\s*0)$/, // 0 could be oxidation or charge\n \"roman numeral\": /^[IVX]+/,\n \"1/2$\": /^[+\\-]?(?:[0-9]+|\\$[a-z]\\$|[a-z])\\/[0-9]+(?:\\$[a-z]\\$|[a-z])?$/,\n amount: function (input) {\n let match;\n // e.g. 2, 0.5, 1/2, -2, n/2, +; $a$ could be added later in parsing\n match = input.match(\n /^(?:(?:(?:\\([+\\-]?[0-9]+\\/[0-9]+\\)|[+\\-]?(?:[0-9]+|\\$[a-z]\\$|[a-z])\\/[0-9]+|[+\\-]?[0-9]+[.,][0-9]+|[+\\-]?\\.[0-9]+|[+\\-]?[0-9]+)(?:[a-z](?=\\s*[A-Z]))?)|[+\\-]?[a-z](?=\\s*[A-Z])|\\+(?!\\s))/,\n );\n if (match) {\n return {\n match_: match[0],\n remainder: input.substr(match[0].length),\n };\n }\n const a = mhchemParser.patterns.findObserveGroups(\n input,\n \"\",\n \"$\",\n \"$\",\n \"\",\n );\n if (a) {\n // e.g. $2n-1$, $-$\n match = a.match_.match(\n /^\\$(?:\\(?[+\\-]?(?:[0-9]*[a-z]?[+\\-])?[0-9]*[a-z](?:[+\\-][0-9]*[a-z]?)?\\)?|\\+|-)\\$$/,\n );\n if (match) {\n return {\n match_: match[0],\n remainder: input.substr(match[0].length),\n };\n }\n }\n return null;\n },\n amount2: function (input) {\n return this[\"amount\"](input);\n },\n \"(KV letters),\": /^(?:[A-Z][a-z]{0,2}|i)(?=,)/,\n formula$: function (input) {\n if (input.match(/^\\([a-z]+\\)$/)) {\n return null;\n } // state of aggregation = no formula\n const match = input.match(\n /^(?:[a-z]|(?:[0-9\\ \\+\\-\\,\\.\\(\\)]+[a-z])+[0-9\\ \\+\\-\\,\\.\\(\\)]*|(?:[a-z][0-9\\ \\+\\-\\,\\.\\(\\)]+)+[a-z]?)$/,\n );\n if (match) {\n return {\n match_: match[0],\n remainder: input.substr(match[0].length),\n };\n }\n return null;\n },\n uprightEntities: /^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,\n \"/\": /^\\s*(\\/)\\s*/,\n \"//\": /^\\s*(\\/\\/)\\s*/,\n \"*\": /^\\s*[*.]\\s*/,\n },\n findObserveGroups: function (\n input,\n begExcl,\n begIncl,\n endIncl,\n endExcl,\n beg2Excl,\n beg2Incl,\n end2Incl,\n end2Excl,\n combine,\n ) {\n /** @type {{(input: string, pattern: string | RegExp): string | string[] | null;}} */\n const _match = function (input, pattern) {\n if (typeof pattern === \"string\") {\n if (input.indexOf(pattern) !== 0) {\n return null;\n }\n return pattern;\n }\n const match = input.match(pattern);\n if (!match) {\n return null;\n }\n return match[0];\n };\n /** @type {{(input: string, i: number, endChars: string | RegExp): {endMatchBegin: number, endMatchEnd: number} | null;}} */\n const _findObserveGroups = function (input, i, endChars) {\n let braces = 0;\n while (i < input.length) {\n const a = input.charAt(i);\n const match = _match(input.substr(i), endChars);\n if (match !== null && braces === 0) {\n return {\n endMatchBegin: i,\n endMatchEnd: i + match.length,\n };\n }\n if (a === \"{\") {\n braces++;\n } else if (a === \"}\") {\n if (braces === 0) {\n throw [\n \"ExtraCloseMissingOpen\",\n \"Extra close brace or missing open brace\",\n ];\n } else {\n braces--;\n }\n }\n i++;\n }\n if (braces > 0) {\n return null;\n }\n return null;\n };\n let match = _match(input, begExcl);\n if (match === null) {\n return null;\n }\n input = input.substr(match.length);\n match = _match(input, begIncl);\n if (match === null) {\n return null;\n }\n const e = _findObserveGroups(\n input,\n match.length,\n endIncl || endExcl,\n );\n if (e === null) {\n return null;\n }\n const match1 = input.substring(\n 0,\n endIncl ? e.endMatchEnd : e.endMatchBegin,\n );\n if (!(beg2Excl || beg2Incl)) {\n return {\n match_: match1,\n remainder: input.substr(e.endMatchEnd),\n };\n }\n const group2 = this.findObserveGroups(\n input.substr(e.endMatchEnd),\n beg2Excl,\n beg2Incl,\n end2Incl,\n end2Excl,\n );\n if (group2 === null) {\n return null;\n }\n /** @type {string[]} */\n const matchRet = [match1, group2.match_];\n return {\n match_: combine ? matchRet.join(\"\") : matchRet,\n remainder: group2.remainder,\n };\n },\n\n //\n // Matching function\n // e.g. match(\"a\", input) will look for the regexp called \"a\" and see if it matches\n // returns null or {match_:\"a\", remainder:\"bc\"}\n //\n match_: function (m, input) {\n const pattern = mhchemParser.patterns.patterns[m];\n if (pattern === undefined) {\n throw [\n \"MhchemBugP\",\n \"mhchem bug P. Please report. (\" + m + \")\",\n ]; // Trying to use non-existing pattern\n } else if (typeof pattern === \"function\") {\n return mhchemParser.patterns.patterns[m](input); // cannot use cached var pattern here, because some pattern functions need this===mhchemParser\n } else {\n // RegExp\n const match = input.match(pattern);\n if (match) {\n let mm;\n if (match[2]) {\n mm = [match[1], match[2]];\n } else if (match[1]) {\n mm = match[1];\n } else {\n mm = match[0];\n }\n return {\n match_: mm,\n remainder: input.substr(match[0].length),\n };\n }\n return null;\n }\n },\n },\n\n //\n // Generic state machine actions\n //\n actions: {\n \"a=\": function (buffer, m) {\n buffer.a = (buffer.a || \"\") + m;\n },\n \"b=\": function (buffer, m) {\n buffer.b = (buffer.b || \"\") + m;\n },\n \"p=\": function (buffer, m) {\n buffer.p = (buffer.p || \"\") + m;\n },\n \"o=\": function (buffer, m) {\n buffer.o = (buffer.o || \"\") + m;\n },\n \"q=\": function (buffer, m) {\n buffer.q = (buffer.q || \"\") + m;\n },\n \"d=\": function (buffer, m) {\n buffer.d = (buffer.d || \"\") + m;\n },\n \"rm=\": function (buffer, m) {\n buffer.rm = (buffer.rm || \"\") + m;\n },\n \"text=\": function (buffer, m) {\n buffer.text_ = (buffer.text_ || \"\") + m;\n },\n insert: function (buffer, m, a) {\n return {type_: a};\n },\n \"insert+p1\": function (buffer, m, a) {\n return {type_: a, p1: m};\n },\n \"insert+p1+p2\": function (buffer, m, a) {\n return {type_: a, p1: m[0], p2: m[1]};\n },\n copy: function (buffer, m) {\n return m;\n },\n rm: function (buffer, m) {\n return {type_: \"rm\", p1: m || \"\"};\n },\n text: function (buffer, m) {\n return mhchemParser.go(m, \"text\");\n },\n \"{text}\": function (buffer, m) {\n const ret = [\"{\"];\n mhchemParser.concatArray(ret, mhchemParser.go(m, \"text\"));\n ret.push(\"}\");\n return ret;\n },\n \"tex-math\": function (buffer, m) {\n return mhchemParser.go(m, \"tex-math\");\n },\n \"tex-math tight\": function (buffer, m) {\n return mhchemParser.go(m, \"tex-math tight\");\n },\n bond: function (buffer, m, k) {\n return {type_: \"bond\", kind_: k || m};\n },\n \"color0-output\": function (buffer, m) {\n return {type_: \"color0\", color: m[0]};\n },\n ce: function (buffer, m) {\n return mhchemParser.go(m);\n },\n \"1/2\": function (buffer, m) {\n /** @type {ParserOutput[]} */\n const ret = [];\n if (m.match(/^[+\\-]/)) {\n ret.push(m.substr(0, 1));\n m = m.substr(1);\n }\n const n = m.match(\n /^([0-9]+|\\$[a-z]\\$|[a-z])\\/([0-9]+)(\\$[a-z]\\$|[a-z])?$/,\n );\n n[1] = n[1].replace(/\\$/g, \"\");\n ret.push({type_: \"frac\", p1: n[1], p2: n[2]});\n if (n[3]) {\n n[3] = n[3].replace(/\\$/g, \"\");\n ret.push({type_: \"tex-math\", p1: n[3]});\n }\n return ret;\n },\n \"9,9\": function (buffer, m) {\n return mhchemParser.go(m, \"9,9\");\n },\n },\n //\n // createTransitions\n // convert { 'letter': { 'state': { action_: 'output' } } } to { 'state' => [ { pattern: 'letter', task: { action_: [{type_: 'output'}] } } ] }\n // with expansion of 'a|b' to 'a' and 'b' (at 2 places)\n //\n createTransitions: function (o) {\n let pattern;\n let state;\n /** @type {string[]} */\n let stateArray;\n let i;\n //\n // 1. Collect all states\n //\n /** @type {Transitions} */\n const transitions = {};\n for (pattern in o) {\n for (state in o[pattern]) {\n stateArray = state.split(\"|\");\n o[pattern][state].stateArray = stateArray;\n for (i = 0; i < stateArray.length; i++) {\n transitions[stateArray[i]] = [];\n }\n }\n }\n //\n // 2. Fill states\n //\n for (pattern in o) {\n for (state in o[pattern]) {\n stateArray = o[pattern][state].stateArray || [];\n for (i = 0; i < stateArray.length; i++) {\n //\n // 2a. Normalize actions into array: 'text=' ==> [{type_:'text='}]\n // (Note to myself: Resolving the function here would be problematic. It would need .bind (for *this*) and currying (for *option*).)\n //\n /** @type {any} */\n const p = o[pattern][state];\n if (p.action_) {\n p.action_ = [].concat(p.action_);\n for (let k = 0; k < p.action_.length; k++) {\n if (typeof p.action_[k] === \"string\") {\n p.action_[k] = {type_: p.action_[k]};\n }\n }\n } else {\n p.action_ = [];\n }\n //\n // 2.b Multi-insert\n //\n const patternArray = pattern.split(\"|\");\n for (let j = 0; j < patternArray.length; j++) {\n if (stateArray[i] === \"*\") {\n // insert into all\n for (const t in transitions) {\n transitions[t].push({\n pattern: patternArray[j],\n task: p,\n });\n }\n } else {\n transitions[stateArray[i]].push({\n pattern: patternArray[j],\n task: p,\n });\n }\n }\n }\n }\n }\n return transitions;\n },\n stateMachines: {},\n};\n\n//\n// Definition of state machines\n//\nmhchemParser.stateMachines = {\n //\n // \\ce state machines\n //\n //#region ce\n ce: {\n // main parser\n transitions: mhchemParser.createTransitions({\n empty: {\n \"*\": {action_: \"output\"},\n },\n else: {\n \"0|1|2\": {\n action_: \"beginsWithBond=false\",\n revisit: true,\n toContinue: true,\n },\n },\n oxidation$: {\n 0: {action_: \"oxidation-output\"},\n },\n CMT: {\n r: {action_: \"rdt=\", nextState: \"rt\"},\n rd: {action_: \"rqt=\", nextState: \"rdt\"},\n },\n arrowUpDown: {\n \"0|1|2|as\": {\n action_: [\"sb=false\", \"output\", \"operator\"],\n nextState: \"1\",\n },\n },\n uprightEntities: {\n \"0|1|2\": {action_: [\"o=\", \"output\"], nextState: \"1\"},\n },\n orbital: {\n \"0|1|2|3\": {action_: \"o=\", nextState: \"o\"},\n },\n \"->\": {\n \"0|1|2|3\": {action_: \"r=\", nextState: \"r\"},\n \"a|as\": {action_: [\"output\", \"r=\"], nextState: \"r\"},\n \"*\": {action_: [\"output\", \"r=\"], nextState: \"r\"},\n },\n \"+\": {\n o: {action_: \"d= kv\", nextState: \"d\"},\n \"d|D\": {action_: \"d=\", nextState: \"d\"},\n q: {action_: \"d=\", nextState: \"qd\"},\n \"qd|qD\": {action_: \"d=\", nextState: \"qd\"},\n dq: {action_: [\"output\", \"d=\"], nextState: \"d\"},\n 3: {\n action_: [\"sb=false\", \"output\", \"operator\"],\n nextState: \"0\",\n },\n },\n amount: {\n \"0|2\": {action_: \"a=\", nextState: \"a\"},\n },\n \"pm-operator\": {\n \"0|1|2|a|as\": {\n action_: [\n \"sb=false\",\n \"output\",\n {type_: \"operator\", option: \"\\\\pm\"},\n ],\n nextState: \"0\",\n },\n },\n operator: {\n \"0|1|2|a|as\": {\n action_: [\"sb=false\", \"output\", \"operator\"],\n nextState: \"0\",\n },\n },\n \"-$\": {\n \"o|q\": {action_: [\"charge or bond\", \"output\"], nextState: \"qd\"},\n d: {action_: \"d=\", nextState: \"d\"},\n D: {\n action_: [\"output\", {type_: \"bond\", option: \"-\"}],\n nextState: \"3\",\n },\n q: {action_: \"d=\", nextState: \"qd\"},\n qd: {action_: \"d=\", nextState: \"qd\"},\n \"qD|dq\": {\n action_: [\"output\", {type_: \"bond\", option: \"-\"}],\n nextState: \"3\",\n },\n },\n \"-9\": {\n \"3|o\": {\n action_: [\"output\", {type_: \"insert\", option: \"hyphen\"}],\n nextState: \"3\",\n },\n },\n \"- orbital overlap\": {\n o: {\n action_: [\"output\", {type_: \"insert\", option: \"hyphen\"}],\n nextState: \"2\",\n },\n d: {\n action_: [\"output\", {type_: \"insert\", option: \"hyphen\"}],\n nextState: \"2\",\n },\n },\n \"-\": {\n \"0|1|2\": {\n action_: [\n {type_: \"output\", option: 1},\n \"beginsWithBond=true\",\n {type_: \"bond\", option: \"-\"},\n ],\n nextState: \"3\",\n },\n 3: {action_: {type_: \"bond\", option: \"-\"}},\n a: {\n action_: [\"output\", {type_: \"insert\", option: \"hyphen\"}],\n nextState: \"2\",\n },\n as: {\n action_: [\n {type_: \"output\", option: 2},\n {type_: \"bond\", option: \"-\"},\n ],\n nextState: \"3\",\n },\n b: {action_: \"b=\"},\n o: {\n action_: {type_: \"- after o/d\", option: false},\n nextState: \"2\",\n },\n q: {\n action_: {type_: \"- after o/d\", option: false},\n nextState: \"2\",\n },\n \"d|qd|dq\": {\n action_: {type_: \"- after o/d\", option: true},\n nextState: \"2\",\n },\n \"D|qD|p\": {\n action_: [\"output\", {type_: \"bond\", option: \"-\"}],\n nextState: \"3\",\n },\n },\n amount2: {\n \"1|3\": {action_: \"a=\", nextState: \"a\"},\n },\n letters: {\n \"0|1|2|3|a|as|b|p|bp|o\": {action_: \"o=\", nextState: \"o\"},\n \"q|dq\": {action_: [\"output\", \"o=\"], nextState: \"o\"},\n \"d|D|qd|qD\": {action_: \"o after d\", nextState: \"o\"},\n },\n digits: {\n o: {action_: \"q=\", nextState: \"q\"},\n \"d|D\": {action_: \"q=\", nextState: \"dq\"},\n q: {action_: [\"output\", \"o=\"], nextState: \"o\"},\n a: {action_: \"o=\", nextState: \"o\"},\n },\n \"space A\": {\n \"b|p|bp\": {},\n },\n space: {\n a: {nextState: \"as\"},\n 0: {action_: \"sb=false\"},\n \"1|2\": {action_: \"sb=true\"},\n \"r|rt|rd|rdt|rdq\": {action_: \"output\", nextState: \"0\"},\n \"*\": {action_: [\"output\", \"sb=true\"], nextState: \"1\"},\n },\n \"1st-level escape\": {\n \"1|2\": {\n action_: [\n \"output\",\n {type_: \"insert+p1\", option: \"1st-level escape\"},\n ],\n },\n \"*\": {\n action_: [\n \"output\",\n {type_: \"insert+p1\", option: \"1st-level escape\"},\n ],\n nextState: \"0\",\n },\n },\n \"[(...)]\": {\n \"r|rt\": {action_: \"rd=\", nextState: \"rd\"},\n \"rd|rdt\": {action_: \"rq=\", nextState: \"rdq\"},\n },\n \"...\": {\n \"o|d|D|dq|qd|qD\": {\n action_: [\"output\", {type_: \"bond\", option: \"...\"}],\n nextState: \"3\",\n },\n \"*\": {\n action_: [\n {type_: \"output\", option: 1},\n {type_: \"insert\", option: \"ellipsis\"},\n ],\n nextState: \"1\",\n },\n },\n \". |* \": {\n \"*\": {\n action_: [\n \"output\",\n {type_: \"insert\", option: \"addition compound\"},\n ],\n nextState: \"1\",\n },\n },\n \"state of aggregation $\": {\n \"*\": {\n action_: [\"output\", \"state of aggregation\"],\n nextState: \"1\",\n },\n },\n \"{[(\": {\n \"a|as|o\": {\n action_: [\"o=\", \"output\", \"parenthesisLevel++\"],\n nextState: \"2\",\n },\n \"0|1|2|3\": {\n action_: [\"o=\", \"output\", \"parenthesisLevel++\"],\n nextState: \"2\",\n },\n \"*\": {\n action_: [\"output\", \"o=\", \"output\", \"parenthesisLevel++\"],\n nextState: \"2\",\n },\n },\n \")]}\": {\n \"0|1|2|3|b|p|bp|o\": {\n action_: [\"o=\", \"parenthesisLevel--\"],\n nextState: \"o\",\n },\n \"a|as|d|D|q|qd|qD|dq\": {\n action_: [\"output\", \"o=\", \"parenthesisLevel--\"],\n nextState: \"o\",\n },\n },\n \", \": {\n \"*\": {action_: [\"output\", \"comma\"], nextState: \"0\"},\n },\n \"^_\": {\n // ^ and _ without a sensible argument\n \"*\": {},\n },\n \"^{(...)}|^($...$)\": {\n \"0|1|2|as\": {action_: \"b=\", nextState: \"b\"},\n p: {action_: \"b=\", nextState: \"bp\"},\n \"3|o\": {action_: \"d= kv\", nextState: \"D\"},\n q: {action_: \"d=\", nextState: \"qD\"},\n \"d|D|qd|qD|dq\": {action_: [\"output\", \"d=\"], nextState: \"D\"},\n },\n \"^a|^\\\\x{}{}|^\\\\x{}|^\\\\x|'\": {\n \"0|1|2|as\": {action_: \"b=\", nextState: \"b\"},\n p: {action_: \"b=\", nextState: \"bp\"},\n \"3|o\": {action_: \"d= kv\", nextState: \"d\"},\n q: {action_: \"d=\", nextState: \"qd\"},\n \"d|qd|D|qD\": {action_: \"d=\"},\n dq: {action_: [\"output\", \"d=\"], nextState: \"d\"},\n },\n \"_{(state of aggregation)}$\": {\n \"d|D|q|qd|qD|dq\": {action_: [\"output\", \"q=\"], nextState: \"q\"},\n },\n \"_{(...)}|_($...$)|_9|_\\\\x{}{}|_\\\\x{}|_\\\\x\": {\n \"0|1|2|as\": {action_: \"p=\", nextState: \"p\"},\n b: {action_: \"p=\", nextState: \"bp\"},\n \"3|o\": {action_: \"q=\", nextState: \"q\"},\n \"d|D\": {action_: \"q=\", nextState: \"dq\"},\n \"q|qd|qD|dq\": {action_: [\"output\", \"q=\"], nextState: \"q\"},\n },\n \"=<>\": {\n \"0|1|2|3|a|as|o|q|d|D|qd|qD|dq\": {\n action_: [{type_: \"output\", option: 2}, \"bond\"],\n nextState: \"3\",\n },\n },\n \"#\": {\n \"0|1|2|3|a|as|o\": {\n action_: [\n {type_: \"output\", option: 2},\n {type_: \"bond\", option: \"#\"},\n ],\n nextState: \"3\",\n },\n },\n \"{}\": {\n \"*\": {action_: {type_: \"output\", option: 1}, nextState: \"1\"},\n },\n \"{...}\": {\n \"0|1|2|3|a|as|b|p|bp\": {action_: \"o=\", nextState: \"o\"},\n \"o|d|D|q|qd|qD|dq\": {action_: [\"output\", \"o=\"], nextState: \"o\"},\n },\n \"$...$\": {\n a: {action_: \"a=\"}, // 2$n$\n \"0|1|2|3|as|b|p|bp|o\": {action_: \"o=\", nextState: \"o\"}, // not 'amount'\n \"as|o\": {action_: \"o=\"},\n \"q|d|D|qd|qD|dq\": {action_: [\"output\", \"o=\"], nextState: \"o\"},\n },\n \"\\\\bond{(...)}\": {\n \"*\": {\n action_: [{type_: \"output\", option: 2}, \"bond\"],\n nextState: \"3\",\n },\n },\n \"\\\\frac{(...)}\": {\n \"*\": {\n action_: [{type_: \"output\", option: 1}, \"frac-output\"],\n nextState: \"3\",\n },\n },\n \"\\\\overset{(...)}\": {\n \"*\": {\n action_: [{type_: \"output\", option: 2}, \"overset-output\"],\n nextState: \"3\",\n },\n },\n \"\\\\underset{(...)}\": {\n \"*\": {\n action_: [{type_: \"output\", option: 2}, \"underset-output\"],\n nextState: \"3\",\n },\n },\n \"\\\\underbrace{(...)}\": {\n \"*\": {\n action_: [\n {type_: \"output\", option: 2},\n \"underbrace-output\",\n ],\n nextState: \"3\",\n },\n },\n \"\\\\color{(...)}{(...)}1|\\\\color(...){(...)}2\": {\n \"*\": {\n action_: [{type_: \"output\", option: 2}, \"color-output\"],\n nextState: \"3\",\n },\n },\n \"\\\\color{(...)}0\": {\n \"*\": {action_: [{type_: \"output\", option: 2}, \"color0-output\"]},\n },\n \"\\\\ce{(...)}\": {\n \"*\": {\n action_: [{type_: \"output\", option: 2}, \"ce\"],\n nextState: \"3\",\n },\n },\n \"\\\\,\": {\n \"*\": {\n action_: [{type_: \"output\", option: 1}, \"copy\"],\n nextState: \"1\",\n },\n },\n \"\\\\x{}{}|\\\\x{}|\\\\x\": {\n \"0|1|2|3|a|as|b|p|bp|o|c0\": {\n action_: [\"o=\", \"output\"],\n nextState: \"3\",\n },\n \"*\": {action_: [\"output\", \"o=\", \"output\"], nextState: \"3\"},\n },\n others: {\n \"*\": {\n action_: [{type_: \"output\", option: 1}, \"copy\"],\n nextState: \"3\",\n },\n },\n else2: {\n a: {action_: \"a to o\", nextState: \"o\", revisit: true},\n as: {\n action_: [\"output\", \"sb=true\"],\n nextState: \"1\",\n revisit: true,\n },\n \"r|rt|rd|rdt|rdq\": {\n action_: [\"output\"],\n nextState: \"0\",\n revisit: true,\n },\n \"*\": {action_: [\"output\", \"copy\"], nextState: \"3\"},\n },\n }),\n actions: {\n \"o after d\": function (buffer, m) {\n let ret;\n if ((buffer.d || \"\").match(/^[0-9]+$/)) {\n const tmp = buffer.d;\n buffer.d = undefined;\n ret = this[\"output\"](buffer);\n buffer.b = tmp;\n } else {\n ret = this[\"output\"](buffer);\n }\n mhchemParser.actions[\"o=\"](buffer, m);\n return ret;\n },\n \"d= kv\": function (buffer, m) {\n buffer.d = m;\n buffer.dType = \"kv\";\n },\n \"charge or bond\": function (buffer, m) {\n if (buffer[\"beginsWithBond\"]) {\n /** @type {ParserOutput[]} */\n const ret = [];\n mhchemParser.concatArray(ret, this[\"output\"](buffer));\n mhchemParser.concatArray(\n ret,\n mhchemParser.actions[\"bond\"](buffer, m, \"-\"),\n );\n return ret;\n }\n buffer.d = m;\n },\n \"- after o/d\": function (buffer, m, isAfterD) {\n let c1 = mhchemParser.patterns.match_(\n \"orbital\",\n buffer.o || \"\",\n );\n const c2 = mhchemParser.patterns.match_(\n \"one lowercase greek letter $\",\n buffer.o || \"\",\n );\n const c3 = mhchemParser.patterns.match_(\n \"one lowercase latin letter $\",\n buffer.o || \"\",\n );\n const c4 = mhchemParser.patterns.match_(\n \"$one lowercase latin letter$ $\",\n buffer.o || \"\",\n );\n const hyphenFollows =\n m === \"-\" &&\n ((c1 && c1.remainder === \"\") || c2 || c3 || c4);\n if (\n hyphenFollows &&\n !buffer.a &&\n !buffer.b &&\n !buffer.p &&\n !buffer.d &&\n !buffer.q &&\n !c1 &&\n c3\n ) {\n buffer.o = \"$\" + buffer.o + \"$\";\n }\n /** @type {ParserOutput[]} */\n const ret = [];\n if (hyphenFollows) {\n mhchemParser.concatArray(ret, this[\"output\"](buffer));\n ret.push({type_: \"hyphen\"});\n } else {\n c1 = mhchemParser.patterns.match_(\"digits\", buffer.d || \"\");\n if (isAfterD && c1 && c1.remainder === \"\") {\n mhchemParser.concatArray(\n ret,\n mhchemParser.actions[\"d=\"](buffer, m),\n );\n mhchemParser.concatArray(ret, this[\"output\"](buffer));\n } else {\n mhchemParser.concatArray(ret, this[\"output\"](buffer));\n mhchemParser.concatArray(\n ret,\n mhchemParser.actions[\"bond\"](buffer, m, \"-\"),\n );\n }\n }\n return ret;\n },\n \"a to o\": function (buffer) {\n buffer.o = buffer.a;\n buffer.a = undefined;\n },\n \"sb=true\": function (buffer) {\n buffer.sb = true;\n },\n \"sb=false\": function (buffer) {\n buffer.sb = false;\n },\n \"beginsWithBond=true\": function (buffer) {\n buffer[\"beginsWithBond\"] = true;\n },\n \"beginsWithBond=false\": function (buffer) {\n buffer[\"beginsWithBond\"] = false;\n },\n \"parenthesisLevel++\": function (buffer) {\n buffer[\"parenthesisLevel\"]++;\n },\n \"parenthesisLevel--\": function (buffer) {\n buffer[\"parenthesisLevel\"]--;\n },\n \"state of aggregation\": function (buffer, m) {\n return {\n type_: \"state of aggregation\",\n p1: mhchemParser.go(m, \"o\"),\n };\n },\n comma: function (buffer, m) {\n const a = m.replace(/\\s*$/, \"\");\n const withSpace = a !== m;\n if (withSpace && buffer[\"parenthesisLevel\"] === 0) {\n return {type_: \"comma enumeration L\", p1: a};\n }\n return {type_: \"comma enumeration M\", p1: a};\n },\n output: function (buffer, m, entityFollows) {\n // entityFollows:\n // undefined = if we have nothing else to output, also ignore the just read space (buffer.sb)\n // 1 = an entity follows, never omit the space if there was one just read before (can only apply to state 1)\n // 2 = 1 + the entity can have an amount, so output a\\, instead of converting it to o (can only apply to states a|as)\n /** @type {ParserOutput | ParserOutput[]} */\n let ret;\n if (!buffer.r) {\n ret = [];\n if (\n !buffer.a &&\n !buffer.b &&\n !buffer.p &&\n !buffer.o &&\n !buffer.q &&\n !buffer.d &&\n !entityFollows\n ) {\n //ret = [];\n } else {\n if (buffer.sb) {\n ret.push({type_: \"entitySkip\"});\n }\n if (\n !buffer.o &&\n !buffer.q &&\n !buffer.d &&\n !buffer.b &&\n !buffer.p &&\n entityFollows !== 2\n ) {\n buffer.o = buffer.a;\n buffer.a = undefined;\n } else if (\n !buffer.o &&\n !buffer.q &&\n !buffer.d &&\n (buffer.b || buffer.p)\n ) {\n buffer.o = buffer.a;\n buffer.d = buffer.b;\n buffer.q = buffer.p;\n buffer.a = buffer.b = buffer.p = undefined;\n } else {\n if (\n buffer.o &&\n buffer.dType === \"kv\" &&\n mhchemParser.patterns.match_(\n \"d-oxidation$\",\n buffer.d || \"\",\n )\n ) {\n buffer.dType = \"oxidation\";\n } else if (\n buffer.o &&\n buffer.dType === \"kv\" &&\n !buffer.q\n ) {\n buffer.dType = undefined;\n }\n }\n ret.push({\n type_: \"chemfive\",\n a: mhchemParser.go(buffer.a, \"a\"),\n b: mhchemParser.go(buffer.b, \"bd\"),\n p: mhchemParser.go(buffer.p, \"pq\"),\n o: mhchemParser.go(buffer.o, \"o\"),\n q: mhchemParser.go(buffer.q, \"pq\"),\n d: mhchemParser.go(\n buffer.d,\n buffer.dType === \"oxidation\"\n ? \"oxidation\"\n : \"bd\",\n ),\n dType: buffer.dType,\n });\n }\n } else {\n // r\n /** @type {ParserOutput[]} */\n let rd;\n if (buffer.rdt === \"M\") {\n rd = mhchemParser.go(buffer.rd, \"tex-math\");\n } else if (buffer.rdt === \"T\") {\n rd = [{type_: \"text\", p1: buffer.rd || \"\"}];\n } else {\n rd = mhchemParser.go(buffer.rd);\n }\n /** @type {ParserOutput[]} */\n let rq;\n if (buffer.rqt === \"M\") {\n rq = mhchemParser.go(buffer.rq, \"tex-math\");\n } else if (buffer.rqt === \"T\") {\n rq = [{type_: \"text\", p1: buffer.rq || \"\"}];\n } else {\n rq = mhchemParser.go(buffer.rq);\n }\n ret = {\n type_: \"arrow\",\n r: buffer.r,\n rd: rd,\n rq: rq,\n };\n }\n for (const p in buffer) {\n if (p !== \"parenthesisLevel\" && p !== \"beginsWithBond\") {\n delete buffer[p];\n }\n }\n return ret;\n },\n \"oxidation-output\": function (buffer, m) {\n const ret = [\"{\"];\n mhchemParser.concatArray(ret, mhchemParser.go(m, \"oxidation\"));\n ret.push(\"}\");\n return ret;\n },\n \"frac-output\": function (buffer, m) {\n return {\n type_: \"frac-ce\",\n p1: mhchemParser.go(m[0]),\n p2: mhchemParser.go(m[1]),\n };\n },\n \"overset-output\": function (buffer, m) {\n return {\n type_: \"overset\",\n p1: mhchemParser.go(m[0]),\n p2: mhchemParser.go(m[1]),\n };\n },\n \"underset-output\": function (buffer, m) {\n return {\n type_: \"underset\",\n p1: mhchemParser.go(m[0]),\n p2: mhchemParser.go(m[1]),\n };\n },\n \"underbrace-output\": function (buffer, m) {\n return {\n type_: \"underbrace\",\n p1: mhchemParser.go(m[0]),\n p2: mhchemParser.go(m[1]),\n };\n },\n \"color-output\": function (buffer, m) {\n return {\n type_: \"color\",\n color1: m[0],\n color2: mhchemParser.go(m[1]),\n };\n },\n \"r=\": function (buffer, m) {\n buffer.r = m;\n },\n \"rdt=\": function (buffer, m) {\n buffer.rdt = m;\n },\n \"rd=\": function (buffer, m) {\n buffer.rd = m;\n },\n \"rqt=\": function (buffer, m) {\n buffer.rqt = m;\n },\n \"rq=\": function (buffer, m) {\n buffer.rq = m;\n },\n operator: function (buffer, m, p1) {\n return {type_: \"operator\", kind_: p1 || m};\n },\n },\n },\n a: {\n transitions: mhchemParser.createTransitions({\n empty: {\n \"*\": {},\n },\n \"1/2$\": {\n 0: {action_: \"1/2\"},\n },\n else: {\n 0: {nextState: \"1\", revisit: true},\n },\n \"$(...)$\": {\n \"*\": {action_: \"tex-math tight\", nextState: \"1\"},\n },\n \",\": {\n \"*\": {action_: {type_: \"insert\", option: \"commaDecimal\"}},\n },\n else2: {\n \"*\": {action_: \"copy\"},\n },\n }),\n actions: {},\n },\n o: {\n transitions: mhchemParser.createTransitions({\n empty: {\n \"*\": {},\n },\n \"1/2$\": {\n 0: {action_: \"1/2\"},\n },\n else: {\n 0: {nextState: \"1\", revisit: true},\n },\n letters: {\n \"*\": {action_: \"rm\"},\n },\n \"\\\\ca\": {\n \"*\": {action_: {type_: \"insert\", option: \"circa\"}},\n },\n \"\\\\x{}{}|\\\\x{}|\\\\x\": {\n \"*\": {action_: \"copy\"},\n },\n \"${(...)}$|$(...)$\": {\n \"*\": {action_: \"tex-math\"},\n },\n \"{(...)}\": {\n \"*\": {action_: \"{text}\"},\n },\n else2: {\n \"*\": {action_: \"copy\"},\n },\n }),\n actions: {},\n },\n text: {\n transitions: mhchemParser.createTransitions({\n empty: {\n \"*\": {action_: \"output\"},\n },\n \"{...}\": {\n \"*\": {action_: \"text=\"},\n },\n \"${(...)}$|$(...)$\": {\n \"*\": {action_: \"tex-math\"},\n },\n \"\\\\greek\": {\n \"*\": {action_: [\"output\", \"rm\"]},\n },\n \"\\\\,|\\\\x{}{}|\\\\x{}|\\\\x\": {\n \"*\": {action_: [\"output\", \"copy\"]},\n },\n else: {\n \"*\": {action_: \"text=\"},\n },\n }),\n actions: {\n output: function (buffer) {\n if (buffer.text_) {\n /** @type {ParserOutput} */\n const ret = {type_: \"text\", p1: buffer.text_};\n for (const p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n },\n },\n },\n pq: {\n transitions: mhchemParser.createTransitions({\n empty: {\n \"*\": {},\n },\n \"state of aggregation $\": {\n \"*\": {action_: \"state of aggregation\"},\n },\n i$: {\n 0: {nextState: \"!f\", revisit: true},\n },\n \"(KV letters),\": {\n 0: {action_: \"rm\", nextState: \"0\"},\n },\n formula$: {\n 0: {nextState: \"f\", revisit: true},\n },\n \"1/2$\": {\n 0: {action_: \"1/2\"},\n },\n else: {\n 0: {nextState: \"!f\", revisit: true},\n },\n \"${(...)}$|$(...)$\": {\n \"*\": {action_: \"tex-math\"},\n },\n \"{(...)}\": {\n \"*\": {action_: \"text\"},\n },\n \"a-z\": {\n f: {action_: \"tex-math\"},\n },\n letters: {\n \"*\": {action_: \"rm\"},\n },\n \"-9.,9\": {\n \"*\": {action_: \"9,9\"},\n },\n \",\": {\n \"*\": {\n action_: {\n type_: \"insert+p1\",\n option: \"comma enumeration S\",\n },\n },\n },\n \"\\\\color{(...)}{(...)}1|\\\\color(...){(...)}2\": {\n \"*\": {action_: \"color-output\"},\n },\n \"\\\\color{(...)}0\": {\n \"*\": {action_: \"color0-output\"},\n },\n \"\\\\ce{(...)}\": {\n \"*\": {action_: \"ce\"},\n },\n \"\\\\,|\\\\x{}{}|\\\\x{}|\\\\x\": {\n \"*\": {action_: \"copy\"},\n },\n else2: {\n \"*\": {action_: \"copy\"},\n },\n }),\n actions: {\n \"state of aggregation\": function (buffer, m) {\n return {\n type_: \"state of aggregation subscript\",\n p1: mhchemParser.go(m, \"o\"),\n };\n },\n \"color-output\": function (buffer, m) {\n return {\n type_: \"color\",\n color1: m[0],\n color2: mhchemParser.go(m[1], \"pq\"),\n };\n },\n },\n },\n bd: {\n transitions: mhchemParser.createTransitions({\n empty: {\n \"*\": {},\n },\n x$: {\n 0: {nextState: \"!f\", revisit: true},\n },\n formula$: {\n 0: {nextState: \"f\", revisit: true},\n },\n else: {\n 0: {nextState: \"!f\", revisit: true},\n },\n \"-9.,9 no missing 0\": {\n \"*\": {action_: \"9,9\"},\n },\n \".\": {\n \"*\": {action_: {type_: \"insert\", option: \"electron dot\"}},\n },\n \"a-z\": {\n f: {action_: \"tex-math\"},\n },\n x: {\n \"*\": {action_: {type_: \"insert\", option: \"KV x\"}},\n },\n letters: {\n \"*\": {action_: \"rm\"},\n },\n \"'\": {\n \"*\": {action_: {type_: \"insert\", option: \"prime\"}},\n },\n \"${(...)}$|$(...)$\": {\n \"*\": {action_: \"tex-math\"},\n },\n \"{(...)}\": {\n \"*\": {action_: \"text\"},\n },\n \"\\\\color{(...)}{(...)}1|\\\\color(...){(...)}2\": {\n \"*\": {action_: \"color-output\"},\n },\n \"\\\\color{(...)}0\": {\n \"*\": {action_: \"color0-output\"},\n },\n \"\\\\ce{(...)}\": {\n \"*\": {action_: \"ce\"},\n },\n \"\\\\,|\\\\x{}{}|\\\\x{}|\\\\x\": {\n \"*\": {action_: \"copy\"},\n },\n else2: {\n \"*\": {action_: \"copy\"},\n },\n }),\n actions: {\n \"color-output\": function (buffer, m) {\n return {\n type_: \"color\",\n color1: m[0],\n color2: mhchemParser.go(m[1], \"bd\"),\n };\n },\n },\n },\n oxidation: {\n transitions: mhchemParser.createTransitions({\n empty: {\n \"*\": {},\n },\n \"roman numeral\": {\n \"*\": {action_: \"roman-numeral\"},\n },\n \"${(...)}$|$(...)$\": {\n \"*\": {action_: \"tex-math\"},\n },\n else: {\n \"*\": {action_: \"copy\"},\n },\n }),\n actions: {\n \"roman-numeral\": function (buffer, m) {\n return {type_: \"roman numeral\", p1: m || \"\"};\n },\n },\n },\n \"tex-math\": {\n transitions: mhchemParser.createTransitions({\n empty: {\n \"*\": {action_: \"output\"},\n },\n \"\\\\ce{(...)}\": {\n \"*\": {action_: [\"output\", \"ce\"]},\n },\n \"{...}|\\\\,|\\\\x{}{}|\\\\x{}|\\\\x\": {\n \"*\": {action_: \"o=\"},\n },\n else: {\n \"*\": {action_: \"o=\"},\n },\n }),\n actions: {\n output: function (buffer) {\n if (buffer.o) {\n /** @type {ParserOutput} */\n const ret = {type_: \"tex-math\", p1: buffer.o};\n for (const p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n },\n },\n },\n \"tex-math tight\": {\n transitions: mhchemParser.createTransitions({\n empty: {\n \"*\": {action_: \"output\"},\n },\n \"\\\\ce{(...)}\": {\n \"*\": {action_: [\"output\", \"ce\"]},\n },\n \"{...}|\\\\,|\\\\x{}{}|\\\\x{}|\\\\x\": {\n \"*\": {action_: \"o=\"},\n },\n \"-|+\": {\n \"*\": {action_: \"tight operator\"},\n },\n else: {\n \"*\": {action_: \"o=\"},\n },\n }),\n actions: {\n \"tight operator\": function (buffer, m) {\n buffer.o = (buffer.o || \"\") + \"{\" + m + \"}\";\n },\n output: function (buffer) {\n if (buffer.o) {\n /** @type {ParserOutput} */\n const ret = {type_: \"tex-math\", p1: buffer.o};\n for (const p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n },\n },\n },\n \"9,9\": {\n transitions: mhchemParser.createTransitions({\n empty: {\n \"*\": {},\n },\n \",\": {\n \"*\": {action_: \"comma\"},\n },\n else: {\n \"*\": {action_: \"copy\"},\n },\n }),\n actions: {\n comma: function () {\n return {type_: \"commaDecimal\"};\n },\n },\n },\n //#endregion\n //\n // \\pu state machines\n //\n //#region pu\n pu: {\n transitions: mhchemParser.createTransitions({\n empty: {\n \"*\": {action_: \"output\"},\n },\n space$: {\n \"*\": {action_: [\"output\", \"space\"]},\n },\n \"{[(|)]}\": {\n \"0|a\": {action_: \"copy\"},\n },\n \"(-)(9)^(-9)\": {\n 0: {action_: \"number^\", nextState: \"a\"},\n },\n \"(-)(9.,9)(e)(99)\": {\n 0: {action_: \"enumber\", nextState: \"a\"},\n },\n space: {\n \"0|a\": {},\n },\n \"pm-operator\": {\n \"0|a\": {\n action_: {type_: \"operator\", option: \"\\\\pm\"},\n nextState: \"0\",\n },\n },\n operator: {\n \"0|a\": {action_: \"copy\", nextState: \"0\"},\n },\n \"//\": {\n d: {action_: \"o=\", nextState: \"/\"},\n },\n \"/\": {\n d: {action_: \"o=\", nextState: \"/\"},\n },\n \"{...}|else\": {\n \"0|d\": {action_: \"d=\", nextState: \"d\"},\n a: {action_: [\"space\", \"d=\"], nextState: \"d\"},\n \"/|q\": {action_: \"q=\", nextState: \"q\"},\n },\n }),\n actions: {\n enumber: function (buffer, m) {\n /** @type {ParserOutput[]} */\n const ret = [];\n if (m[0] === \"+-\" || m[0] === \"+/-\") {\n ret.push(\"\\\\pm \");\n } else if (m[0]) {\n ret.push(m[0]);\n }\n if (m[1]) {\n mhchemParser.concatArray(\n ret,\n mhchemParser.go(m[1], \"pu-9,9\"),\n );\n if (m[2]) {\n if (m[2].match(/[,.]/)) {\n mhchemParser.concatArray(\n ret,\n mhchemParser.go(m[2], \"pu-9,9\"),\n );\n } else {\n ret.push(m[2]);\n }\n }\n m[3] = m[4] || m[3];\n if (m[3]) {\n m[3] = m[3].trim();\n if (m[3] === \"e\" || m[3].substr(0, 1) === \"*\") {\n ret.push({type_: \"cdot\"});\n } else {\n ret.push({type_: \"times\"});\n }\n }\n }\n if (m[3]) {\n ret.push(\"10^{\" + m[5] + \"}\");\n }\n return ret;\n },\n \"number^\": function (buffer, m) {\n /** @type {ParserOutput[]} */\n const ret = [];\n if (m[0] === \"+-\" || m[0] === \"+/-\") {\n ret.push(\"\\\\pm \");\n } else if (m[0]) {\n ret.push(m[0]);\n }\n mhchemParser.concatArray(ret, mhchemParser.go(m[1], \"pu-9,9\"));\n ret.push(\"^{\" + m[2] + \"}\");\n return ret;\n },\n operator: function (buffer, m, p1) {\n return {type_: \"operator\", kind_: p1 || m};\n },\n space: function () {\n return {type_: \"pu-space-1\"};\n },\n output: function (buffer) {\n /** @type {ParserOutput | ParserOutput[]} */\n let ret;\n const md = mhchemParser.patterns.match_(\n \"{(...)}\",\n buffer.d || \"\",\n );\n if (md && md.remainder === \"\") {\n buffer.d = md.match_;\n }\n const mq = mhchemParser.patterns.match_(\n \"{(...)}\",\n buffer.q || \"\",\n );\n if (mq && mq.remainder === \"\") {\n buffer.q = mq.match_;\n }\n if (buffer.d) {\n buffer.d = buffer.d.replace(\n /\\u00B0C|\\^oC|\\^{o}C/g,\n \"{}^{\\\\circ}C\",\n );\n buffer.d = buffer.d.replace(\n /\\u00B0F|\\^oF|\\^{o}F/g,\n \"{}^{\\\\circ}F\",\n );\n }\n if (buffer.q) {\n // fraction\n buffer.q = buffer.q.replace(\n /\\u00B0C|\\^oC|\\^{o}C/g,\n \"{}^{\\\\circ}C\",\n );\n buffer.q = buffer.q.replace(\n /\\u00B0F|\\^oF|\\^{o}F/g,\n \"{}^{\\\\circ}F\",\n );\n const b5 = {\n d: mhchemParser.go(buffer.d, \"pu\"),\n q: mhchemParser.go(buffer.q, \"pu\"),\n };\n if (buffer.o === \"//\") {\n ret = {type_: \"pu-frac\", p1: b5.d, p2: b5.q};\n } else {\n ret = b5.d;\n if (b5.d.length > 1 || b5.q.length > 1) {\n ret.push({type_: \" / \"});\n } else {\n ret.push({type_: \"/\"});\n }\n mhchemParser.concatArray(ret, b5.q);\n }\n } else {\n // no fraction\n ret = mhchemParser.go(buffer.d, \"pu-2\");\n }\n for (const p in buffer) {\n delete buffer[p];\n }\n return ret;\n },\n },\n },\n \"pu-2\": {\n transitions: mhchemParser.createTransitions({\n empty: {\n \"*\": {action_: \"output\"},\n },\n \"*\": {\n \"*\": {action_: [\"output\", \"cdot\"], nextState: \"0\"},\n },\n \"\\\\x\": {\n \"*\": {action_: \"rm=\"},\n },\n space: {\n \"*\": {action_: [\"output\", \"space\"], nextState: \"0\"},\n },\n \"^{(...)}|^(-1)\": {\n 1: {action_: \"^(-1)\"},\n },\n \"-9.,9\": {\n 0: {action_: \"rm=\", nextState: \"0\"},\n 1: {action_: \"^(-1)\", nextState: \"0\"},\n },\n \"{...}|else\": {\n \"*\": {action_: \"rm=\", nextState: \"1\"},\n },\n }),\n actions: {\n cdot: function () {\n return {type_: \"tight cdot\"};\n },\n \"^(-1)\": function (buffer, m) {\n buffer.rm += \"^{\" + m + \"}\";\n },\n space: function () {\n return {type_: \"pu-space-2\"};\n },\n output: function (buffer) {\n /** @type {ParserOutput | ParserOutput[]} */\n let ret = [];\n if (buffer.rm) {\n const mrm = mhchemParser.patterns.match_(\n \"{(...)}\",\n buffer.rm || \"\",\n );\n if (mrm && mrm.remainder === \"\") {\n ret = mhchemParser.go(mrm.match_, \"pu\");\n } else {\n ret = {type_: \"rm\", p1: buffer.rm};\n }\n }\n for (const p in buffer) {\n delete buffer[p];\n }\n return ret;\n },\n },\n },\n \"pu-9,9\": {\n transitions: mhchemParser.createTransitions({\n empty: {\n 0: {action_: \"output-0\"},\n o: {action_: \"output-o\"},\n },\n \",\": {\n 0: {action_: [\"output-0\", \"comma\"], nextState: \"o\"},\n },\n \".\": {\n 0: {action_: [\"output-0\", \"copy\"], nextState: \"o\"},\n },\n else: {\n \"*\": {action_: \"text=\"},\n },\n }),\n actions: {\n comma: function () {\n return {type_: \"commaDecimal\"};\n },\n \"output-0\": function (buffer) {\n /** @type {ParserOutput[]} */\n const ret = [];\n buffer.text_ = buffer.text_ || \"\";\n if (buffer.text_.length > 4) {\n let a = buffer.text_.length % 3;\n if (a === 0) {\n a = 3;\n }\n for (let i = buffer.text_.length - 3; i > 0; i -= 3) {\n ret.push(buffer.text_.substr(i, 3));\n ret.push({type_: \"1000 separator\"});\n }\n ret.push(buffer.text_.substr(0, a));\n ret.reverse();\n } else {\n ret.push(buffer.text_);\n }\n for (const p in buffer) {\n delete buffer[p];\n }\n return ret;\n },\n \"output-o\": function (buffer) {\n /** @type {ParserOutput[]} */\n const ret = [];\n buffer.text_ = buffer.text_ || \"\";\n if (buffer.text_.length > 4) {\n const a = buffer.text_.length - 3;\n for (var i = 0; i < a; i += 3) {\n ret.push(buffer.text_.substr(i, 3));\n ret.push({type_: \"1000 separator\"});\n }\n ret.push(buffer.text_.substr(i));\n } else {\n ret.push(buffer.text_);\n }\n for (const p in buffer) {\n delete buffer[p];\n }\n return ret;\n },\n },\n },\n //#endregion\n};\n\n//\n// texify: Take MhchemParser output and convert it to TeX\n//\n/** @type {Texify} */\nvar texify = {\n go: function (input, isInner) {\n // (recursive, max 4 levels)\n if (!input) {\n return \"\";\n }\n let res = \"\";\n let cee = false;\n for (let i = 0; i < input.length; i++) {\n const inputi = input[i];\n if (typeof inputi === \"string\") {\n res += inputi;\n } else {\n res += texify._go2(inputi);\n if (inputi.type_ === \"1st-level escape\") {\n cee = true;\n }\n }\n }\n if (!isInner && !cee && res) {\n res = \"{\" + res + \"}\";\n }\n return res;\n },\n _goInner: function (input) {\n if (!input) {\n return input;\n }\n return texify.go(input, true);\n },\n _go2: function (buf) {\n /** @type {undefined | string} */\n let res;\n switch (buf.type_) {\n case \"chemfive\":\n res = \"\";\n var b5 = {\n a: texify._goInner(buf.a),\n b: texify._goInner(buf.b),\n p: texify._goInner(buf.p),\n o: texify._goInner(buf.o),\n q: texify._goInner(buf.q),\n d: texify._goInner(buf.d),\n };\n //\n // a\n //\n if (b5.a) {\n if (b5.a.match(/^[+\\-]/)) {\n b5.a = \"{\" + b5.a + \"}\";\n }\n res += b5.a + \"\\\\,\";\n }\n //\n // b and p\n //\n if (b5.b || b5.p) {\n res += \"{\\\\vphantom{X}}\";\n res +=\n \"^{\\\\hphantom{\" +\n (b5.b || \"\") +\n \"}}_{\\\\hphantom{\" +\n (b5.p || \"\") +\n \"}}\";\n res += \"{\\\\vphantom{X}}\";\n res +=\n \"^{\\\\smash[t]{\\\\vphantom{2}}\\\\mathllap{\" +\n (b5.b || \"\") +\n \"}}\";\n res +=\n \"_{\\\\vphantom{2}\\\\mathllap{\\\\smash[t]{\" +\n (b5.p || \"\") +\n \"}}}\";\n }\n //\n // o\n //\n if (b5.o) {\n if (b5.o.match(/^[+\\-]/)) {\n b5.o = \"{\" + b5.o + \"}\";\n }\n res += b5.o;\n }\n //\n // q and d\n //\n if (buf.dType === \"kv\") {\n if (b5.d || b5.q) {\n res += \"{\\\\vphantom{X}}\";\n }\n if (b5.d) {\n res += \"^{\" + b5.d + \"}\";\n }\n if (b5.q) {\n res += \"_{\\\\smash[t]{\" + b5.q + \"}}\";\n }\n } else if (buf.dType === \"oxidation\") {\n if (b5.d) {\n res += \"{\\\\vphantom{X}}\";\n res += \"^{\" + b5.d + \"}\";\n }\n if (b5.q) {\n res += \"{\\\\vphantom{X}}\";\n res += \"_{\\\\smash[t]{\" + b5.q + \"}}\";\n }\n } else {\n if (b5.q) {\n res += \"{\\\\vphantom{X}}\";\n res += \"_{\\\\smash[t]{\" + b5.q + \"}}\";\n }\n if (b5.d) {\n res += \"{\\\\vphantom{X}}\";\n res += \"^{\" + b5.d + \"}\";\n }\n }\n break;\n case \"rm\":\n res = \"\\\\mathrm{\" + buf.p1 + \"}\";\n break;\n case \"text\":\n if (buf.p1.match(/[\\^_]/)) {\n buf.p1 = buf.p1.replace(\" \", \"~\").replace(\"-\", \"\\\\text{-}\");\n res = \"\\\\mathrm{\" + buf.p1 + \"}\";\n } else {\n res = \"\\\\text{\" + buf.p1 + \"}\";\n }\n break;\n case \"roman numeral\":\n res = \"\\\\mathrm{\" + buf.p1 + \"}\";\n break;\n case \"state of aggregation\":\n res = \"\\\\mskip2mu \" + texify._goInner(buf.p1);\n break;\n case \"state of aggregation subscript\":\n res = \"\\\\mskip1mu \" + texify._goInner(buf.p1);\n break;\n case \"bond\":\n res = texify._getBond(buf.kind_);\n if (!res) {\n throw [\n \"MhchemErrorBond\",\n \"mhchem Error. Unknown bond type (\" + buf.kind_ + \")\",\n ];\n }\n break;\n case \"frac\":\n var c = \"\\\\frac{\" + buf.p1 + \"}{\" + buf.p2 + \"}\";\n res =\n \"\\\\mathchoice{\\\\textstyle\" +\n c +\n \"}{\" +\n c +\n \"}{\" +\n c +\n \"}{\" +\n c +\n \"}\";\n break;\n case \"pu-frac\":\n var d =\n \"\\\\frac{\" +\n texify._goInner(buf.p1) +\n \"}{\" +\n texify._goInner(buf.p2) +\n \"}\";\n res =\n \"\\\\mathchoice{\\\\textstyle\" +\n d +\n \"}{\" +\n d +\n \"}{\" +\n d +\n \"}{\" +\n d +\n \"}\";\n break;\n case \"tex-math\":\n res = buf.p1 + \" \";\n break;\n case \"frac-ce\":\n res =\n \"\\\\frac{\" +\n texify._goInner(buf.p1) +\n \"}{\" +\n texify._goInner(buf.p2) +\n \"}\";\n break;\n case \"overset\":\n res =\n \"\\\\overset{\" +\n texify._goInner(buf.p1) +\n \"}{\" +\n texify._goInner(buf.p2) +\n \"}\";\n break;\n case \"underset\":\n res =\n \"\\\\underset{\" +\n texify._goInner(buf.p1) +\n \"}{\" +\n texify._goInner(buf.p2) +\n \"}\";\n break;\n case \"underbrace\":\n res =\n \"\\\\underbrace{\" +\n texify._goInner(buf.p1) +\n \"}_{\" +\n texify._goInner(buf.p2) +\n \"}\";\n break;\n case \"color\":\n res =\n \"{\\\\color{\" +\n buf.color1 +\n \"}{\" +\n texify._goInner(buf.color2) +\n \"}}\";\n break;\n case \"color0\":\n res = \"\\\\color{\" + buf.color + \"}\";\n break;\n case \"arrow\":\n var b6 = {\n rd: texify._goInner(buf.rd),\n rq: texify._goInner(buf.rq),\n };\n var arrow = \"\\\\x\" + texify._getArrow(buf.r);\n if (b6.rq) {\n arrow += \"[{\" + b6.rq + \"}]\";\n }\n if (b6.rd) {\n arrow += \"{\" + b6.rd + \"}\";\n } else {\n arrow += \"{}\";\n }\n res = arrow;\n break;\n case \"operator\":\n res = texify._getOperator(buf.kind_);\n break;\n case \"1st-level escape\":\n res = buf.p1 + \" \"; // &, \\\\\\\\, \\\\hlin\n break;\n case \"space\":\n res = \" \";\n break;\n case \"entitySkip\":\n res = \"~\";\n break;\n case \"pu-space-1\":\n res = \"~\";\n break;\n case \"pu-space-2\":\n res = \"\\\\mkern3mu \";\n break;\n case \"1000 separator\":\n res = \"\\\\mkern2mu \";\n break;\n case \"commaDecimal\":\n res = \"{,}\";\n break;\n case \"comma enumeration L\":\n res = \"{\" + buf.p1 + \"}\\\\mkern6mu \";\n break;\n case \"comma enumeration M\":\n res = \"{\" + buf.p1 + \"}\\\\mkern3mu \";\n break;\n case \"comma enumeration S\":\n res = \"{\" + buf.p1 + \"}\\\\mkern1mu \";\n break;\n case \"hyphen\":\n res = \"\\\\text{-}\";\n break;\n case \"addition compound\":\n res = \"\\\\,{\\\\cdot}\\\\,\";\n break;\n case \"electron dot\":\n res = \"\\\\mkern1mu \\\\bullet\\\\mkern1mu \";\n break;\n case \"KV x\":\n res = \"{\\\\times}\";\n break;\n case \"prime\":\n res = \"\\\\prime \";\n break;\n case \"cdot\":\n res = \"\\\\cdot \";\n break;\n case \"tight cdot\":\n res = \"\\\\mkern1mu{\\\\cdot}\\\\mkern1mu \";\n break;\n case \"times\":\n res = \"\\\\times \";\n break;\n case \"circa\":\n res = \"{\\\\sim}\";\n break;\n case \"^\":\n res = \"uparrow\";\n break;\n case \"v\":\n res = \"downarrow\";\n break;\n case \"ellipsis\":\n res = \"\\\\ldots \";\n break;\n case \"/\":\n res = \"/\";\n break;\n case \" / \":\n res = \"\\\\,/\\\\,\";\n break;\n default:\n assertNever(buf);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"]; // Missing texify rule or unknown MhchemParser output\n }\n assertString(res);\n return res;\n },\n _getArrow: function (a) {\n switch (a) {\n case \"->\":\n return \"rightarrow\";\n case \"\\u2192\":\n return \"rightarrow\";\n case \"\\u27F6\":\n return \"rightarrow\";\n case \"<-\":\n return \"leftarrow\";\n case \"<->\":\n return \"leftrightarrow\";\n case \"<-->\":\n return \"rightleftarrows\";\n case \"<=>\":\n return \"rightleftharpoons\";\n case \"\\u21CC\":\n return \"rightleftharpoons\";\n case \"<=>>\":\n return \"rightequilibrium\";\n case \"<<=>\":\n return \"leftequilibrium\";\n default:\n assertNever(a);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n },\n _getBond: function (a) {\n switch (a) {\n case \"-\":\n return \"{-}\";\n case \"1\":\n return \"{-}\";\n case \"=\":\n return \"{=}\";\n case \"2\":\n return \"{=}\";\n case \"#\":\n return \"{\\\\equiv}\";\n case \"3\":\n return \"{\\\\equiv}\";\n case \"~\":\n return \"{\\\\tripledash}\";\n case \"~-\":\n return \"{\\\\mathrlap{\\\\raisebox{-.1em}{$-$}}\\\\raisebox{.1em}{$\\\\tripledash$}}\";\n case \"~=\":\n return \"{\\\\mathrlap{\\\\raisebox{-.2em}{$-$}}\\\\mathrlap{\\\\raisebox{.2em}{$\\\\tripledash$}}-}\";\n case \"~--\":\n return \"{\\\\mathrlap{\\\\raisebox{-.2em}{$-$}}\\\\mathrlap{\\\\raisebox{.2em}{$\\\\tripledash$}}-}\";\n case \"-~-\":\n return \"{\\\\mathrlap{\\\\raisebox{-.2em}{$-$}}\\\\mathrlap{\\\\raisebox{.2em}{$-$}}\\\\tripledash}\";\n case \"...\":\n return \"{{\\\\cdot}{\\\\cdot}{\\\\cdot}}\";\n case \"....\":\n return \"{{\\\\cdot}{\\\\cdot}{\\\\cdot}{\\\\cdot}}\";\n case \"->\":\n return \"{\\\\rightarrow}\";\n case \"<-\":\n return \"{\\\\leftarrow}\";\n case \"<\":\n return \"{<}\";\n case \">\":\n return \"{>}\";\n default:\n assertNever(a);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n },\n _getOperator: function (a) {\n switch (a) {\n case \"+\":\n return \" {}+{} \";\n case \"-\":\n return \" {}-{} \";\n case \"=\":\n return \" {}={} \";\n case \"<\":\n return \" {}<{} \";\n case \">\":\n return \" {}>{} \";\n case \"<<\":\n return \" {}\\\\ll{} \";\n case \">>\":\n return \" {}\\\\gg{} \";\n case \"\\\\pm\":\n return \" {}\\\\pm{} \";\n case \"\\\\approx\":\n return \" {}\\\\approx{} \";\n case \"$\\\\approx$\":\n return \" {}\\\\approx{} \";\n case \"v\":\n return \" \\\\downarrow{} \";\n case \"(v)\":\n return \" \\\\downarrow{} \";\n case \"^\":\n return \" \\\\uparrow{} \";\n case \"(^)\":\n return \" \\\\uparrow{} \";\n default:\n assertNever(a);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n },\n};\n\n//\n// Helpers for code anaylsis\n// Will show type error at calling position\n//\n/** @param {number} a */\nfunction assertNever(a) {}\n/** @param {string} a */\nfunction assertString(a) {}\n","/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */\n/* vim: set ts=2 et sw=2 tw=80: */\n\n/*************************************************************\n *\n * KaTeX mhchem.js\n *\n * This file implements a KaTeX version of mhchem version 3.3.0.\n * It is adapted from MathJax/extensions/TeX/mhchem.js\n * It differs from the MathJax version as follows:\n * 1. The interface is changed so that it can be called from KaTeX, not MathJax.\n * 2. \\rlap and \\llap are replaced with \\mathrlap and \\mathllap.\n * 3. Four lines of code are edited in order to use \\raisebox instead of \\raise.\n * 4. The reaction arrow code is simplified. All reaction arrows are rendered\n * using KaTeX extensible arrows instead of building non-extensible arrows.\n * 5. \\tripledash vertical alignment is slightly adjusted.\n *\n * This code, as other KaTeX code, is released under the MIT license.\n *\n * /*************************************************************\n *\n * MathJax/extensions/TeX/mhchem.js\n *\n * Implements the \\ce command for handling chemical formulas\n * from the mhchem LaTeX package.\n *\n * ---------------------------------------------------------------------\n *\n * Copyright (c) 2011-2015 The MathJax Consortium\n * Copyright (c) 2015-2018 Martin Hensel\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n//\n// Coding Style\n// - use '' for identifiers that can by minified/uglified\n// - use \"\" for strings that need to stay untouched\n\n// version: \"3.3.0\" for MathJax and KaTeX\n\nimport katex from \"katex\";\n\nimport {chemParse} from \"./parser\";\n\n// Add \\ce, \\pu, and \\tripledash to the KaTeX macros.\n\nkatex.__defineMacro(\"\\\\ce\", function (context) {\n return chemParse(context.consumeArgs(1)[0], \"ce\");\n});\n\nkatex.__defineMacro(\"\\\\pu\", function (context) {\n return chemParse(context.consumeArgs(1)[0], \"pu\");\n});\n\n// Needed for \\bond for the ~ forms\n// Raise by 2.56mu, not 2mu. We're raising a hyphen-minus, U+002D, not\n// a mathematical minus, U+2212. So we need that extra 0.56.\nkatex.__defineMacro(\n \"\\\\tripledash\",\n \"{\\\\vphantom{-}\\\\raisebox{2.56mu}{$\\\\mkern2mu\" +\n \"\\\\tiny\\\\text{-}\\\\mkern1mu\\\\text{-}\\\\mkern1mu\\\\text{-}\\\\mkern2mu$}}\",\n);\n","/* This component makes its children a drag target. Example:\n *\n * <DragTarget onDrop={this.handleDrop}>Drag to me</DragTarget>\n *\n * ...\n *\n * handleDrop: function(e) {\n * this.addImages(e.nativeEvent.dataTransfer.files);\n * }\n *\n * Now \"Drag to me\" will be a drag target - when something is dragged over it,\n * the element will become partially transparent as a visual indicator that\n * it's a target.\n */\n// TODO(joel) - indicate before the hover is over the target that it's possible\n// to drag into the target. This would (I think) require a high level handler -\n// like on Perseus itself, waiting for onDragEnter, then passing down the\n// event. Sounds like a pain. Possible workaround - create a div covering the\n// entire page...\n//\n// Other extensions:\n// * custom styles for global drag and dragOver\n// * only respond to certain types of drags (only images for instance)!\n\nimport * as React from \"react\";\n\ntype Props = {\n onDrop: (e: DragEvent) => void;\n component?: any;\n shouldDragHighlight: (any) => boolean;\n style?: any;\n children?: any;\n className?: string;\n};\n\ntype DefaultProps = {\n component: Props[\"component\"];\n shouldDragHighlight: Props[\"shouldDragHighlight\"];\n};\n\ntype State = {\n dragHover: boolean;\n};\nclass DragTarget extends React.Component<Props, State> {\n static defaultProps: DefaultProps = {\n component: \"div\",\n shouldDragHighlight: () => true,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dragHover: false,\n };\n\n this.handleDrop = this.handleDrop.bind(this);\n this.handleDragEnd = this.handleDragEnd.bind(this);\n this.handleDragOver = this.handleDragOver.bind(this);\n this.handleDragLeave = this.handleDragLeave.bind(this);\n this.handleDragEnter = this.handleDragEnter.bind(this);\n }\n\n handleDrop(e: DragEvent) {\n e.stopPropagation();\n e.preventDefault();\n this.setState({dragHover: false});\n this.props.onDrop(e);\n }\n\n handleDragEnd() {\n this.setState({dragHover: false});\n }\n\n handleDragOver(e) {\n e.preventDefault();\n }\n\n handleDragLeave() {\n this.setState({dragHover: false});\n }\n\n handleDragEnter(e) {\n this.setState({dragHover: this.props.shouldDragHighlight(e)});\n }\n\n render() {\n const opacity = this.state.dragHover ? {opacity: 0.3} : {};\n const {\n component: Component,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n shouldDragHighlight,\n ...forwardProps\n } = this.props;\n\n return (\n <Component\n {...forwardProps}\n style={Object.assign({}, this.props.style, opacity)}\n onDrop={this.handleDrop}\n onDragEnd={this.handleDragEnd}\n onDragOver={this.handleDragOver}\n onDragEnter={this.handleDragEnter}\n onDragLeave={this.handleDragLeave}\n />\n );\n }\n}\n\nexport default DragTarget;\n","export const iconChevronRight = {\n path: \"M62.808 49.728q0 3.36-2.352 5.88l-41.72 41.664q-2.352 2.408-5.768 2.408t-5.768-2.408l-4.872-4.76q-2.352-2.52-2.352-5.88t2.352-5.712l31.08-31.136-31.08-31.024q-2.352-2.52-2.352-5.88t2.352-5.712l4.872-4.76q2.296-2.408 5.768-2.408t5.768 2.408l41.72 41.664q2.352 2.296 2.352 5.656z\",\n width: 63.034,\n height: 100,\n} as const;\nexport const iconCircleArrowDown = {\n path: \"M50.046 83.676q1.767 0 2.907-1.14l29.526-29.526q1.197-1.197 1.197-2.907t-1.197-2.964l-5.928-5.928q-1.197-1.14-2.964-1.14t-2.907 1.14l-12.312 12.312l0-32.661q0-1.71-1.254-2.964t-2.907-1.254l-8.322 0q-1.71 0-2.964 1.254t-1.254 2.964l0 32.661l-12.312-12.312q-1.197-1.254-2.907-1.254t-2.907 1.254l-5.928 5.928q-1.197 1.197-1.197 2.964t1.197 2.907l29.469 29.526q1.197 1.14 2.964 1.14zm49.989-33.63q.057 13.623-6.669 25.137t-18.24 18.183-25.08 6.669-25.137-6.726q-11.514-6.726-18.183-18.183-6.726-11.571-6.726-25.137t6.726-25.08 18.24-18.24 25.08-6.669q13.566 0 25.08 6.726 11.514 6.669 18.24 18.183t6.669 25.137z\",\n width: 100,\n height: 100,\n} as const;\nexport const iconCircleArrowUp = {\n path: \"M54.207 83.391q1.653 0 2.907-1.254t1.254-2.907l0-32.718l12.312 12.312q1.254 1.254 2.964 1.254t2.907-1.254l5.928-5.928q1.197-1.197 1.14-2.964 0-1.767-1.14-2.907l-29.526-29.526q-1.197-1.14-2.907-1.14t-2.964 1.14l-29.469 29.526q-1.197 1.254-1.197 2.964t1.197 2.907l5.928 5.928q1.197 1.197 2.907 1.197t2.907-1.197l12.312-12.312l0 32.718q0 1.653 1.254 2.907t2.964 1.254l8.322 0zm45.828-33.345q.057 13.623-6.669 25.137t-18.24 18.183-25.08 6.669-25.137-6.726q-11.514-6.726-18.183-18.183-6.726-11.571-6.726-25.137t6.726-25.08 18.24-18.24 25.08-6.669q13.566 0 25.08 6.726 11.514 6.669 18.24 18.183t6.669 25.137z\",\n width: 100,\n height: 100,\n} as const;\nexport const iconDesktop = {\n path: \"M94.208 52.119l0-43.746q0-.69-.506-1.15t-1.196-.506l-84.088 0q-.69 0-1.196.506t-.506 1.15l0 43.746q0 .69.506 1.196t1.196.506l84.088 0q.69 0 1.196-.506t.506-1.196zm6.716-43.746l0 57.224q0 3.45-2.484 5.934t-5.934 2.484l-28.566 0q0 3.128 2.53 7.774.828 1.61.828 2.622t-1.012 2.07q-1.012 1.012-2.346.966l-26.91 0q-1.38 0-2.392-1.012t-1.012-2.024q0-1.058 1.656-4.14t1.748-6.256l-28.612 0q-3.45 0-5.934-2.484t-2.484-5.934l0-57.224q0-3.45 2.484-5.934t5.934-2.438l84.088 0q3.45 0 5.98 2.438 2.438 2.484 2.438 5.934z\",\n width: 100,\n height: 86.648,\n} as const;\nexport const iconMobilePhone = {\n path: \"M36.04 89.557q0-2.584-1.836-4.42t-4.42-1.836-4.352 1.836q-1.836 1.836-1.836 4.42t1.836 4.352 4.42 1.836q2.652-.068 4.42-1.836t1.768-4.352zm16.184-12.444l0-54.74q0-1.088-.748-1.768t-1.768-.68l-39.78 0q-1.088 0-1.768.748t-.68 1.7l0 54.74q0 1.02.748 1.768t1.7.68l39.78 0q1.02-.068 1.768-.748t.748-1.7zm-14.892-65.892q0-1.224-1.292-1.292l-12.444 0q-1.224.068-1.224 1.292t1.224 1.224l12.444 0q1.292 0 1.292-1.224zm22.372-1.292l0 79.628q0 3.944-2.992 6.936t-7.004 2.992l-39.78 0q-4.012 0-7.004-2.924-2.924-2.924-2.924-7.004l0-79.628q0-4.012 2.924-6.936t7.004-2.992l39.78 0q4.012-.068 7.004 2.924t2.992 7.004z\",\n width: 60.013,\n height: 100,\n} as const;\nexport const iconPlus = {\n path: \"M99.758 43.09l0 13.578q0 2.852-1.984 4.836t-4.836 1.984l-29.45 0l0 29.45q0 2.852-1.984 4.836t-4.836 1.984l-13.578 0q-2.852 0-4.836-1.984t-1.984-4.836l0-29.45l-29.45 0q-2.852 0-4.836-1.984t-1.984-4.836l0-13.578q0-2.852 1.984-4.836t4.836-1.984l29.45 0l0-29.45q0-2.852 1.984-4.836t4.836-1.984l13.578 0q2.852 0 4.836 1.984t1.984 4.836l0 29.45l29.45 0q2.852 0 4.836 1.984t1.984 4.836z\",\n width: 100,\n height: 100,\n} as const;\nexport const iconTablet = {\n path: \"M45.322 90.706q0-1.86-1.302-3.224-1.364-1.364-3.224-1.364t-3.224 1.364-1.302 3.224q0 1.86 1.364 3.224 1.302 1.364 3.162 1.302 1.86.062 3.224-1.302t1.302-3.224zm27.218-11.346l0-68.014q0-.93-.682-1.612t-1.55-.682l-58.962 0q-.93 0-1.612.682t-.682 1.612l0 68.014q0 .93.682 1.612t1.612.62l58.962 0q.992-.062 1.612-.682t.62-1.55zm9.114-68.014l0 77.066q0 4.65-3.348 7.998t-7.998 3.348l-58.962 0q-4.65 0-7.998-3.348t-3.348-7.998l0-77.066q0-4.65 3.348-7.998t7.998-3.348l58.962 0q4.65 0 7.998 3.348t3.348 7.998z\",\n width: 81.852,\n height: 100,\n} as const;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\nimport {\n components,\n Widgets,\n WIDGET_PROP_DENYLIST,\n iconChevronDown,\n iconTrash,\n} from \"@khanacademy/perseus\";\nimport {\n CoreWidgetRegistry,\n upgradeWidgetInfoToLatestVersion,\n} from \"@khanacademy/perseus-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport Switch from \"@khanacademy/wonder-blocks-switch\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport * as React from \"react\";\nimport {useId} from \"react\";\nimport _ from \"underscore\";\n\nimport {iconChevronRight} from \"../styles/icon-paths\";\n\nimport SectionControlButton from \"./section-control-button\";\n\nimport type Editor from \"../editor\";\nimport type {APIOptions} from \"@khanacademy/perseus\";\nimport type {Alignment, PerseusWidget} from \"@khanacademy/perseus-core\";\n\nconst {InlineIcon} = components;\n\ntype WidgetEditorProps = {\n // Unserialized props\n id: string;\n onChange: (\n widgetInfo: PerseusWidget,\n cb?: () => unknown,\n silent?: boolean,\n ) => unknown;\n onRemove: () => unknown;\n apiOptions: APIOptions;\n widgetIsOpen?: boolean;\n} & Omit<PerseusWidget, \"key\">;\n\ntype WidgetEditorState = {\n showWidget: boolean;\n widgetInfo: PerseusWidget;\n};\n\nconst _upgradeWidgetInfo = (props: WidgetEditorProps): PerseusWidget => {\n // We can't call serialize here because this.refs.widget\n // doesn't exist before this component is mounted.\n const filteredProps = _.omit(props, WIDGET_PROP_DENYLIST);\n return upgradeWidgetInfoToLatestVersion(filteredProps as any);\n};\n\n// This component handles upgading widget editor props via prop\n// upgrade transforms. Widget editors will always be rendered\n// with all available transforms applied, but the results of those\n// transforms will not be propogated upwards until serialization.\n// eslint-disable-next-line react/no-unsafe\nclass WidgetEditor extends React.Component<\n WidgetEditorProps,\n WidgetEditorState\n> {\n widget: React.RefObject<Editor>;\n\n constructor(props: WidgetEditorProps) {\n super(props);\n this.state = {\n showWidget: props.widgetIsOpen ?? true,\n widgetInfo: _upgradeWidgetInfo(props),\n };\n this.widget = React.createRef();\n }\n\n // eslint-disable-next-line react/no-unsafe\n UNSAFE_componentWillReceiveProps(nextProps: WidgetEditorProps) {\n this.setState({widgetInfo: _upgradeWidgetInfo(nextProps)});\n // user can update internal state while the widget is handled globally\n if (\n nextProps.widgetIsOpen != null &&\n nextProps.widgetIsOpen !== this.props.widgetIsOpen\n ) {\n this.setState({showWidget: nextProps.widgetIsOpen});\n }\n }\n\n _toggleWidget = (e: React.SyntheticEvent) => {\n e.preventDefault();\n this.setState({showWidget: !this.state.showWidget});\n };\n\n _handleWidgetChange = (\n newProps: WidgetEditorProps,\n cb: () => unknown,\n silent: boolean,\n ) => {\n // Casting to any is necessary because typescript\n // seems confused about the type of WidgetOptions\n // TODO (LC-1794): Fix this type so that we don't\n // require the cast to any.\n const newWidgetInfo = {\n ...this.state.widgetInfo,\n options: {\n ...this.state.widgetInfo.options,\n ...(this.widget.current?.serialize() ?? {}),\n ...newProps,\n },\n } as any;\n this.props.onChange(newWidgetInfo, cb, silent);\n };\n\n _setStatic = (value: boolean) => {\n const newWidgetInfo = {\n ...this.state.widgetInfo,\n static: value,\n } as PerseusWidget;\n this.props.onChange(newWidgetInfo);\n };\n\n _handleAlignmentChange = (e: React.SyntheticEvent<HTMLSelectElement>) => {\n const newAlignment = e.currentTarget.value as Alignment;\n const newWidgetInfo = Object.assign(\n {},\n this.state.widgetInfo,\n ) as PerseusWidget;\n newWidgetInfo.alignment = newAlignment;\n this.props.onChange(newWidgetInfo);\n };\n\n getSaveWarnings = () => {\n const issuesFunc = this.widget.current?.getSaveWarnings;\n return issuesFunc ? issuesFunc() : [];\n };\n\n serialize = () => {\n // TODO(alex): Make this properly handle the case where we load json\n // with a more recent widget version than this instance of Perseus\n // knows how to handle.\n const widgetInfo = this.state.widgetInfo;\n return {\n type: widgetInfo.type,\n alignment: widgetInfo.alignment,\n static: widgetInfo.static,\n graded: widgetInfo.graded,\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'serialize' does not exist on type 'ReactInstance'.\n options: this.widget.current.serialize(),\n version: widgetInfo.version,\n };\n };\n\n render(): React.ReactNode {\n const widgetInfo = this.state.widgetInfo;\n\n const Ed = Widgets.getEditor(widgetInfo.type);\n let supportedAlignments: ReadonlyArray<Alignment>;\n if (this.props.apiOptions.showAlignmentOptions) {\n supportedAlignments = CoreWidgetRegistry.getSupportedAlignments(\n widgetInfo.type,\n );\n } else {\n // NOTE(kevinb): \"default\" is not one in `validAlignments` in widgets.js.\n supportedAlignments = [\"default\"];\n }\n\n const supportsStaticMode = Widgets.supportsStaticMode(widgetInfo.type);\n\n return (\n <div className=\"perseus-widget-editor\">\n <div\n className={\n \"perseus-widget-editor-title \" +\n (this.state.showWidget ? \"open\" : \"closed\")\n }\n >\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a\n className=\"perseus-widget-editor-title-id\"\n href=\"#\"\n onClick={this._toggleWidget}\n >\n {this.props.id}\n {this.state.showWidget ? (\n <InlineIcon {...iconChevronDown} />\n ) : (\n <InlineIcon {...iconChevronRight} />\n )}\n </a>\n\n {supportsStaticMode && (\n <LabeledSwitch\n label=\"Static\"\n checked={!!widgetInfo.static}\n onChange={this._setStatic}\n />\n )}\n {supportedAlignments.length > 1 && (\n <select\n className=\"alignment\"\n value={widgetInfo.alignment}\n onChange={this._handleAlignmentChange}\n >\n {supportedAlignments.map((alignment) => (\n <option key={alignment}>{alignment}</option>\n ))}\n </select>\n )}\n <SectionControlButton\n icon={iconTrash}\n onClick={() => {\n this.props.onRemove();\n }}\n title=\"Remove image widget\"\n />\n </div>\n <div\n className={\n \"perseus-widget-editor-content \" +\n (this.state.showWidget ? \"enter\" : \"leave\")\n }\n >\n {Ed && (\n <Ed\n ref={this.widget}\n onChange={this._handleWidgetChange}\n static={widgetInfo.static}\n apiOptions={this.props.apiOptions}\n {...widgetInfo.options}\n />\n )}\n </div>\n </div>\n );\n }\n}\n\nfunction LabeledSwitch(props: {\n label: string;\n checked: boolean;\n onChange: (value: boolean) => unknown;\n}) {\n const {label, ...switchProps} = props;\n const id = useId();\n return (\n <>\n <label htmlFor={id}>{label}</label>\n <Strut size={spacing.xxSmall_6} />\n <Switch id={id} {...switchProps} />\n </>\n );\n}\n\nexport default WidgetEditor;\n","import {Widgets} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\ntype WidgetSelectProps = {\n onChange?: (widgetType: string) => unknown;\n};\n\nclass WidgetSelect extends React.Component<WidgetSelectProps> {\n shouldComponentUpdate() {\n return false;\n }\n\n handleChange = (e: React.SyntheticEvent<HTMLSelectElement>) => {\n const widgetType = e.currentTarget.value;\n if (widgetType === \"\") {\n // TODO(alpert): Not sure if change will trigger here\n // but might as well be safe\n return;\n }\n if (this.props.onChange) {\n this.props.onChange(widgetType);\n }\n };\n\n render(): React.ReactNode {\n const widgets = Widgets.getPublicWidgets();\n const orderedWidgetNames = _.sortBy(_.keys(widgets), (name) => {\n return widgets[name].displayName;\n });\n const addWidgetString = \"Add a widget\\u2026\";\n return (\n <select\n value=\"\"\n onChange={this.handleChange}\n data-testid=\"editor__widget-select\"\n >\n <option value=\"\">{addWidgetString}</option>\n <option disabled>--</option>\n {orderedWidgetNames.map((name) => {\n return (\n <option key={name} value={name}>\n {widgets[name].displayName}\n </option>\n );\n })}\n </select>\n );\n }\n}\n\nexport default WidgetSelect;\n","import {PhosphorIcon} from \"@khanacademy/wonder-blocks-icon\";\nimport caretRight from \"@phosphor-icons/core/bold/caret-right-bold.svg\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\ntype Props = {\n isExpanded: boolean;\n};\n\n/**\n * Displays a caret in either expanded or collapsed state. For use in headings\n * that collapse a region.\n */\nfunction ToggleableCaret(props: Props) {\n const iconStyle = props.isExpanded ? styles.expanded : styles.collapsed;\n\n return <PhosphorIcon icon={caretRight} style={iconStyle} />;\n}\n\nconst styles = StyleSheet.create({\n collapsed: {\n transition: \".15s\",\n },\n expanded: {\n transform: \"rotate(90deg)\",\n transition: \".15s\",\n },\n});\n\nexport default ToggleableCaret;\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport ToggleableCaret from \"./components/toggleable-caret\";\n\ntype Props = {\n errorList: ReadonlyArray<{math: string; message: string}>;\n};\n\ntype State = {\n showErrors: boolean;\n};\n\n/**\n * Displays a collapsable list of TeX rendering errors.\n */\nclass TexErrorView extends React.Component<Props, State> {\n state: State = {\n showErrors: false,\n };\n\n handleToggleTexErrors: (arg1: React.MouseEvent) => void = (e) => {\n this.setState({showErrors: !this.state.showErrors});\n };\n\n render(): React.ReactNode {\n const {errorList} = this.props;\n const {showErrors} = this.state;\n\n return (\n <View style={styles.errorContainer}>\n <View style={styles.title} onClick={this.handleToggleTexErrors}>\n <ToggleableCaret isExpanded={showErrors} />\n &nbsp; TeX Errors ({errorList.length})\n </View>\n {showErrors && (\n <View style={styles.errorExplanation}>\n If your math doesn&apos;t display correctly, these\n errors might help you troubleshoot. Message\n #content-kitchen for help.\n </View>\n )}\n {showErrors &&\n errorList.map((e, index) => (\n <View style={styles.error} key={index}>\n <View style={{color: \"red\"}}>{e.math}</View>\n <View>{e.message}</View>\n </View>\n ))}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n title: {\n backgroundColor: \"#eee\",\n fontSize: \"1.25em\",\n padding: \"4px 10px\",\n cursor: \"pointer\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n errorContainer: {\n border: \"1px solid #ddd\",\n borderTop: \"none\",\n },\n errorExplanation: {\n padding: \"4px 10px\",\n backgroundColor: \"pink\",\n },\n error: {\n padding: \"4px 10px\",\n },\n});\n\nexport default TexErrorView;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\nimport {\n preprocessTex,\n Log,\n PerseusMarkdown,\n Util,\n Widgets,\n} from \"@khanacademy/perseus\";\nimport {\n CoreWidgetRegistry,\n Errors,\n PerseusError,\n} from \"@khanacademy/perseus-core\";\nimport $ from \"jquery\";\n// eslint-disable-next-line import/no-unresolved, import/no-extraneous-dependencies\nimport katex from \"katex\";\n// ./katex-mhchem is imported for side effects. It adds the mhchem extension\n// to KaTeX, which is needed to render chemistry expressions. This prevents\n// spurious KaTeX errors from displaying in the editor for every chemistry\n// expression.\n// eslint-disable-next-line import/no-unassigned-import\nimport \"./katex-mhchem\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport DragTarget from \"./components/drag-target\";\nimport WidgetEditor from \"./components/widget-editor\";\nimport WidgetSelect from \"./components/widget-select\";\nimport TexErrorView from \"./tex-error-view\";\n\nimport type {ChangeHandler, ImageUploader} from \"@khanacademy/perseus\";\nimport type {PerseusWidget, PerseusWidgetsMap} from \"@khanacademy/perseus-core\";\n\n// like [[snowman numeric-input 1]]\nconst widgetPlaceholder = \"[[\\u2603 {id}]]\";\nconst widgetRegExp = \"(\\\\[\\\\[\\u2603 {id}\\\\]\\\\])\";\nconst rWidgetSplit = new RegExp(\n widgetRegExp.replace(\"{id}\", \"[a-z-]+ [0-9]+\"),\n \"g\",\n);\n\nconst shortcutRegexp = /^\\[\\[([a-z-]+)$/; // like [[nu, [[int, etc\n\nconst ENDS_WITH_A_PARAGRAPH = /(?:\\n{2,}|^\\n*)$/;\nconst TRAILING_NEWLINES = /(\\n*)$/;\nconst LEADING_NEWLINES = /^(\\n*)/;\n\nconst commafyInteger = (n: number) => {\n let str = n.toString();\n if (str.length >= 5) {\n str = str.replace(/(\\d)(?=(\\d{3})+$)/g, \"$1{,}\");\n }\n return str;\n};\nconst makeEndWithAParagraphIfNecessary = (content: string) => {\n if (!ENDS_WITH_A_PARAGRAPH.test(content)) {\n const match = TRAILING_NEWLINES.exec(content);\n if (match) {\n const newlines = match[1];\n return content + \"\\n\\n\".slice(0, 2 - newlines.length);\n }\n }\n return content;\n};\nconst makeStartWithAParagraphAlways = (content) => {\n const match = LEADING_NEWLINES.exec(content);\n if (!match) {\n return content;\n }\n const newlines = match[1];\n return \"\\n\\n\".slice(0, 2 - newlines.length) + content;\n};\n\n// This is more general than the actual markdown image parsing regex,\n// which is fine for correctness since it should only mean we could\n// store extra image dimensions, unless the question is insanely\n// formatted.\n// A simplified regex here should hopefully be easier to keep in\n// sync if the markdown parsing changes, though if it becomes\n// easy to hook into the actual markdown regex without copy-pasting\n// it, we should do that.\nconst IMAGE_REGEX = /!\\[[^\\]]*\\]\\(([^\\s)]+)[^)]*\\)/g;\n\n/**\n * Find all the matches to a /g regex.\n *\n * Returns an array of the regex matches. Infinite loops if `regex` does not\n * have a /g modifier.\n *\n * Note: Returns an array of the capture objects, whereas String::match\n * ignores captures. If you don't need captures, use String::match\n */\nconst allMatches = function (regex: RegExp, str: string) {\n const result: Array<RegExpExecArray> = [];\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const match = regex.exec(str);\n if (!match) {\n break;\n }\n result.push(match);\n }\n return result;\n};\n\n/**\n * Return an array of URLs of all the images in the given renderer\n * markdown.\n */\nconst imageUrlsFromContent = function (content: string) {\n return allMatches(IMAGE_REGEX, content).map((capture) => capture[1]);\n};\n\ntype Props = Readonly<{\n apiOptions: any;\n className?: string;\n content: string;\n replace?: any;\n placeholder: string;\n widgets: PerseusWidgetsMap;\n images: any;\n disabled: boolean;\n widgetEnabled: boolean;\n immutableWidgets: boolean;\n showWordCount: boolean;\n warnNoPrompt: boolean;\n warnNoWidgets: boolean;\n widgetIsOpen?: boolean;\n imageUploader?: ImageUploader;\n onChange: ChangeHandler;\n}>;\n\ntype DefaultProps = {\n content: string;\n disabled: boolean;\n images: Record<any, any>;\n immutableWidgets: boolean;\n placeholder: string;\n showWordCount: boolean;\n warnNoPrompt: boolean;\n warnNoWidgets: boolean;\n widgetEnabled: boolean;\n widgets: {\n [name: string]: PerseusWidget;\n };\n};\n\ntype State = {\n textAreaValue: string;\n};\n\n// eslint-disable-next-line react/no-unsafe\nclass Editor extends React.Component<Props, State> {\n lastUserValue: string | null | undefined;\n deferredChange: any | null | undefined;\n widgetIds: any | null | undefined;\n\n underlay = React.createRef<HTMLDivElement>();\n textarea = React.createRef<HTMLTextAreaElement>();\n\n static defaultProps: DefaultProps = {\n content: \"\",\n placeholder: \"\",\n widgets: {},\n images: {},\n disabled: false,\n widgetEnabled: true,\n immutableWidgets: false,\n showWordCount: false,\n warnNoPrompt: false,\n warnNoWidgets: false,\n };\n\n state: State = {\n textAreaValue: this.props.content,\n };\n\n componentDidMount() {\n // See componentDidUpdate() for how this flag is used\n this.lastUserValue = null;\n\n // This can't be in componentWillMount because that's happening during\n // the middle of our parent's render, so we can't call\n // this.props.onChange during that, since it calls our parent's\n // setState\n this._sizeImages(this.props);\n // NOTE(jeremy): We use the non-null assertion here (!) because refs\n // are guaranteed to be up-to-date before componentDidMount or\n // componentDidUpdate fires.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $(this.textarea.current!)\n // @ts-expect-error - TS2339 - Property 'on' does not exist on type 'JQueryStatic'.\n .on(\"copy cut\", this._maybeCopyWidgets)\n // @ts-expect-error - TS2769 - No overload matches this call.\n .on(\"paste\", this._maybePasteWidgets);\n }\n\n // TODO(arun): This is a deprecated method, use the appropriate replacement\n // eslint-disable-next-line react/no-unsafe\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n if (this.props.content !== nextProps.content) {\n this.setState({textAreaValue: nextProps.content});\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n const textarea = this.textarea.current;\n\n // Slightly unorthodox method to ensure that programmatic text changes\n // are in the browser's undo stack.\n // See https://stackoverflow.com/questions/41273569/how-to-enable-ctrl-z-when-you-change-an-input-text-dynamically-with-react\n // Note: On unsupported browsers (*cough* Firefox *cough*) `execCommand`\n // will return false. However at least in Firefox setting `value` on a\n // textbox clears the undo stack so we don't get unexpected undo\n // behavior.\n if (this.lastUserValue != null && textarea) {\n textarea.focus();\n textarea.value = this.lastUserValue;\n textarea.selectionStart = 0;\n textarea.setSelectionRange(0, prevProps.content.length);\n if (\n document.execCommand(\n \"insertText\",\n false,\n this.props.content,\n ) === false\n ) {\n // This command is not implemented. Fall back to setting `value`\n // directly.\n textarea.value = this.props.content;\n }\n this.lastUserValue = null;\n }\n\n // This can't be in componentWillReceiveProps because that's happening\n // during the middle of our parent's render.\n if (this.props.content !== prevProps.content) {\n this._sizeImages(this.props);\n }\n }\n\n componentWillUnmount() {\n // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.\n // eslint-disable-next-line no-restricted-syntax\n clearTimeout(this.deferredChange);\n }\n\n getWidgetEditor(\n id: string,\n type: PerseusWidget[\"type\"],\n ): undefined | React.ReactNode {\n if (!Widgets.getEditor(type)) {\n return;\n }\n return (\n <WidgetEditor\n // The order of props matters here. We need to spread the\n // widget data before specifying the `key` prop, to ensure the\n // key overrides any `key` field on the widget (which might not\n // be unique.\n {...this.props.widgets[id]}\n ref={id}\n id={id}\n key={id}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this._handleWidgetEditorChange.bind(this, id)}\n // eslint-disable-next-line react/jsx-no-bind\n onRemove={this._handleWidgetEditorRemove.bind(this, id)}\n apiOptions={this.props.apiOptions}\n widgetIsOpen={this.props.widgetIsOpen}\n />\n );\n }\n\n _handleWidgetEditorChange: (\n id: string,\n newWidgetInfo: PerseusWidget,\n cb?: () => unknown,\n silent?: boolean,\n ) => void = (\n id: string,\n newWidgetInfo: PerseusWidget,\n cb?: () => unknown,\n silent?: boolean,\n ) => {\n const widgets = Object.assign({}, this.props.widgets);\n widgets[id] = Object.assign({}, widgets[id], newWidgetInfo);\n this.props.onChange({widgets}, cb, silent);\n };\n\n _handleWidgetEditorRemove: (id: string) => void = (id: string) => {\n // eslint-disable-next-line no-alert\n if (!confirm(\"Are you sure you want to delete this item?\")) {\n return;\n }\n\n const textarea = this.textarea.current;\n const re = new RegExp(widgetRegExp.replace(\"{id}\", id), \"gm\");\n this.props.onChange({content: textarea?.value.replace(re, \"\")});\n };\n\n /**\n * Calculate the size of all the images in props.content, and send\n * those sizes to this.props.images using props.onChange.\n */\n _sizeImages: (props: Props) => void = (props: Props) => {\n const imageUrls = imageUrlsFromContent(props.content);\n\n // Discard any images in our dimension table that no\n // longer exist in content.\n const images = _.pick(props.images, imageUrls);\n\n // Only calculate sizes for images that were not present previously.\n // Most content edits shouldn't have new images.\n // This could get weird in the case of multiple images with the same\n // URL, if you've changed the backing image size, but given graphie\n // hashes it's probably an edge case.\n const newImageUrls = _.filter(imageUrls, (url) => !images[url]);\n\n // TODO(jack): Q promises would make this nicer and only\n // fire once.\n _.each(newImageUrls, (url) => {\n Util.getImageSize(url, (width, height) => {\n // We keep modifying the same image object rather than a new\n // copy from this.props because all changes here are additive.\n // Maintaining old changes isn't strictly necessary if\n // props.onChange calls are not batched, but would be if they\n // were, so this is nice from that anti-race-condition\n // perspective as well.\n images[url] = {\n width: width,\n height: height,\n };\n props.onChange(\n {\n images: _.clone(images),\n },\n // @ts-expect-error - TS2345 - Argument of type 'null' is not assignable to parameter of type '(() => unknown) | undefined'.\n null, // callback\n true, // silent\n );\n });\n });\n };\n\n handleDrop: (e: DragEvent) => void = (e: DragEvent) => {\n const {imageUploader} = this.props;\n let content = this.state.textAreaValue || \"\";\n const dataTransfer = e.dataTransfer;\n\n if (!dataTransfer || !imageUploader) {\n return;\n }\n\n // files will hold something if the drag was from the desktop or a file\n // located on the user's computer.\n const files = dataTransfer.files;\n\n // ... but we only get a url if the drag originated in another window\n if (files.length === 0) {\n const imageUrl = dataTransfer.getData(\"URL\");\n\n if (imageUrl) {\n // TODO(joel) - relocate when the image upload dialog lands\n const newContent = content + \"\\n\\n![](\" + imageUrl + \")\";\n // See componentDidUpdate() for how this flag is used\n this.lastUserValue = this.props.content;\n this.props.onChange({content: newContent});\n }\n\n return;\n }\n\n const origContent = this.state.textAreaValue;\n\n /* For each file we make sure it's an image, then create a sentinel -\n * snowman + identifier to insert into the current text. The sentinel\n * only lives there temporarily until we get a response back from the\n * server that the image is now hosted on AWS, at which time we replace\n * the temporary sentinel with the permanent url for the image.\n *\n * There is an abuse of tap in the middle of the pipeline to make sure\n * everything is sequenced in the correct order. We want to modify the\n * content (given any number of images) at the same time, i.e. only\n * once, so we do that step with the tap. After the content has been\n * changed we send off the request for each image.\n *\n * Note that the snowman doesn't do anything special in this case -\n * it's effectively just part of a broken link. Perseus could be\n * extended to recognize this sentinel and highlight it like for\n * widgets.\n */\n _(files)\n .chain()\n .map(function (file) {\n if (!file.type.match(\"image.*\")) {\n return null;\n }\n\n const sentinel = \"\\u2603 \" + _.uniqueId(\"image_\");\n // TODO(joel) - figure out how to temporarily include the image\n // before the server returns.\n content += \"\\n\\n![](\" + sentinel + \")\";\n\n return {file: file, sentinel: sentinel};\n })\n .reject(_.isNull)\n .tap(() => {\n // See componentDidUpdate() for how this flag is used\n this.lastUserValue = origContent;\n this.props.onChange({content: content});\n })\n .each((fileAndSentinel) => {\n // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2345 - Argument of type 'File' is not assignable to parameter of type 'string'.\n imageUploader(fileAndSentinel.file, (url) => {\n // See componentDidUpdate() for how this flag is used\n this.lastUserValue = origContent;\n this.props.onChange({\n content: this.state.textAreaValue.replace(\n // @ts-expect-error - TS2531 - Object is possibly 'null'.\n fileAndSentinel.sentinel,\n url,\n ),\n });\n });\n });\n };\n\n handleChange: (e: React.SyntheticEvent<HTMLTextAreaElement>) => void = (\n e: React.SyntheticEvent<HTMLTextAreaElement>,\n ) => {\n // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.\n // eslint-disable-next-line no-restricted-syntax\n clearTimeout(this.deferredChange);\n this.setState({textAreaValue: e.currentTarget.value});\n // TODO(jeff, CP-3128): Use Wonder Blocks Timing API.\n // eslint-disable-next-line no-restricted-syntax\n this.deferredChange = setTimeout(() => {\n if (this.state.textAreaValue !== this.props.content) {\n this.props.onChange({content: this.state.textAreaValue});\n }\n }, this.props.apiOptions.editorChangeDelay);\n };\n\n _handleKeyDown: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void = (\n e: React.KeyboardEvent<HTMLTextAreaElement>,\n ) => {\n e.stopPropagation();\n // Tab-completion of widgets. For example, to insert an image:\n // type `[[im`, then tab.\n if (e.key === \"Tab\") {\n // We're in an event handler attached to the textarea, so the ref\n // can't be empty/undefined! (which is why its safe to use the\n // non-null-assertion here. aka the `!` suffix)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const textarea = this.textarea.current!;\n\n const word = Util.textarea.getWordBeforeCursor(textarea);\n const matches = word.string.toLowerCase().match(shortcutRegexp);\n\n if (matches != null) {\n const text = matches[1];\n const widgets = Widgets.getAllWidgetTypes();\n const matchingWidgets = widgets.filter((name) => {\n return name.substring(0, text.length) === text;\n });\n\n if (matchingWidgets.length === 1) {\n const widgetType = matchingWidgets[0];\n\n this._addWidgetToContent(\n this.props.content,\n [word.pos.start, word.pos.end + 1],\n widgetType,\n );\n }\n\n e.preventDefault();\n }\n }\n };\n\n _maybeCopyWidgets: (e: React.SyntheticEvent<HTMLTextAreaElement>) => void =\n (e: React.SyntheticEvent<HTMLTextAreaElement>) => {\n // If there are widgets being cut/copied, put the widget JSON in\n // localStorage.perseusLastCopiedWidgets to allow copy-pasting of\n // widgets between Editors. Also store the text to be pasted in\n // localStorage.perseusLastCopiedText since we want to know if the user\n // is actually pasting something originally from Perseus later.\n const textarea = e.currentTarget;\n const selectedText = textarea.value.substring(\n textarea.selectionStart,\n textarea.selectionEnd,\n );\n\n const widgetNames = _.map(\n // @ts-expect-error - TS2345 - Argument of type 'RegExpMatchArray | null' is not assignable to parameter of type 'Collection<any>'.\n selectedText.match(rWidgetSplit),\n (syntax) => {\n // @ts-expect-error - TS2531 - Object is possibly 'null'.\n return Util.rWidgetParts.exec(syntax)[1];\n },\n );\n\n const widgetData = _.pick(this.serialize().widgets, widgetNames);\n\n localStorage.perseusLastCopiedText = selectedText;\n localStorage.perseusLastCopiedWidgets = JSON.stringify(widgetData);\n\n Log.log(`Widgets copied: ${localStorage.perseusLastCopiedWidgets}`);\n };\n\n _maybePasteWidgets: (e: React.SyntheticEvent<HTMLTextAreaElement>) => void =\n (e: React.SyntheticEvent<HTMLTextAreaElement>) => {\n // Use the data from localStorage to paste any widgets we copied\n // before. Avoid name conflicts by renumbering pasted widgets so that\n // their numbers are always higher than the highest numbered widget of\n // their type.\n // TODO(sam): Fix widget numbering in the widget editor titles\n\n const widgetJSON = localStorage.perseusLastCopiedWidgets;\n const lastCopiedText = localStorage.perseusLastCopiedText;\n const textToBePasted =\n // @ts-expect-error - TS2339 - Property 'originalEvent' does not exist on type 'SyntheticEvent<HTMLTextAreaElement, Event>'.\n e.originalEvent.clipboardData.getData(\"text\");\n\n // Only intercept if we have widget data to paste and the user is\n // pasting something originally from Perseus.\n // TODO(sam/aria/alex): Make it so that you can paste arbitrary text\n // (e.g. from a text editor) instead of exactly what was copied, and\n // let the widgetJSON match up with it. This would let you copy text\n // into a buffer, perform complex operations on it, then paste it back.\n if (widgetJSON && lastCopiedText === textToBePasted) {\n e.preventDefault();\n\n const widgetData = JSON.parse(widgetJSON);\n const safeWidgetMapping =\n this._safeWidgetNameMapping(widgetData);\n\n // Use safe widget name map to construct the new widget data\n // TODO(aria/alex): Don't use `rWidgetSplit` or other piecemeal\n // regexes directly; abstract this out so that we don't have to\n // worry about potential edge cases.\n const safeWidgetData: Record<string, any> = {};\n for (const [key, data] of Object.entries(widgetData)) {\n safeWidgetData[safeWidgetMapping[key]] = data;\n }\n const newWidgets = _.extend(safeWidgetData, this.props.widgets);\n\n // Use safe widget name map to construct new text\n const safeText = lastCopiedText.replace(\n rWidgetSplit,\n (syntax) => {\n const match = Util.rWidgetParts.exec(syntax);\n // @ts-expect-error - TS2531 - Object is possibly 'null'.\n const completeWidget = match[0];\n // @ts-expect-error - TS2531 - Object is possibly 'null'.\n const widget = match[1];\n return completeWidget.replace(\n widget,\n safeWidgetMapping[widget],\n );\n },\n );\n\n // Add pasted text to previous content, replacing selected text to\n // replicate normal paste behavior.\n const textarea = e.currentTarget;\n const selectionStart = textarea.selectionStart;\n const newContent =\n this.state.textAreaValue.substr(0, selectionStart) +\n safeText +\n this.state.textAreaValue.substr(textarea.selectionEnd);\n\n // See componentDidUpdate() for how this flag is used\n this.lastUserValue = this.state.textAreaValue;\n this.props.onChange(\n {content: newContent, widgets: newWidgets},\n () => {\n const expectedCursorPosition =\n selectionStart + safeText.length;\n Util.textarea.moveCursor(\n textarea,\n expectedCursorPosition,\n );\n },\n );\n }\n };\n\n _safeWidgetNameMapping: (widgetData: {\n [name: string]: any;\n }) => Record<any, any> = (widgetData: {[name: string]: any}) => {\n // Helper function for _maybePasteWidgets.\n // For each widget about to be pasted, construct a mapping from\n // old widget name to a new widget name that doesn't have conflicts\n // with widgets already in the editor.\n // eg. If there is an \"image 2\" already present in the editor and we're\n // about to paste in two new images, return\n // { \"image 1\": \"image 3\", \"image 2\": \"image 4\" }\n //\n // TODO switch to UUIDs rather than these fragile IDs\n // see: LEMS-1845\n\n // List of widgets about to be pasted as [[name, number], ...]\n const widgets = _.keys(widgetData).map((name) => name.split(\" \"));\n const widgetTypes = _.uniq(widgets.map((widget) => widget[0]));\n\n // List of existing widgets as [[name, number], ...]\n const existingWidgets = _.keys(this.props.widgets).map((name) =>\n name.split(\" \"),\n );\n\n // Mapping of widget type to a safe (non-conflicting) number\n // eg. { \"image\": 2, \"dropdown\": 1 }\n const safeWidgetNums: Record<string, any> = {};\n _.each(widgetTypes, (type) => {\n safeWidgetNums[type] = _.chain(existingWidgets)\n .filter((existingWidget) => existingWidget[0] === type)\n .map((existingWidget) => +existingWidget[1] + 1)\n .max()\n .value();\n // If there are no existing widgets _.max returns -Infinity\n safeWidgetNums[type] = Math.max(safeWidgetNums[type], 1);\n });\n\n // Construct mapping, incrementing the vals in safeWidgetNums as we go\n const safeWidgetMapping: Record<string, any> = {};\n _.each(widgets, (widget) => {\n const widgetName = widget.join(\" \");\n const widgetType = widget[0];\n\n safeWidgetMapping[widgetName] =\n `${widgetType} ${safeWidgetNums[widgetType]}`;\n safeWidgetNums[widgetType]++;\n });\n\n return safeWidgetMapping;\n };\n\n // @ts-expect-error: Types of parameter 'widgetType' and 'widgetType' are incompatible. Type 'string' is not assignable to type '\"cs-program\" | \"iframe\" | \"table\" | \"video\" | \"image\" | \"deprecated-standin\" | \"categorizer\" | \"definition\" | \"dropdown\" | \"explanation\" | \"expression\" | \"graded-group\" | \"graded-group-set\" | ... 20 more ... | \"radio\"'.\n _addWidgetToContent: (\n oldContent: string,\n cursorRange: ReadonlyArray<number>,\n widgetType: string,\n ) => void = (\n oldContent: string,\n cursorRange: ReadonlyArray<number>,\n widgetType: PerseusWidget[\"type\"],\n ) => {\n // Note: we have to use _.map here instead of Array::map\n // because the results of a .match might be null if no\n // widgets were found.\n // @ts-expect-error - TS2345 - Argument of type 'RegExpMatchArray | null' is not assignable to parameter of type 'Collection<any>'.\n const allWidgetIds = _.map(oldContent.match(rWidgetSplit), (syntax) => {\n const match = Util.rWidgetParts.exec(syntax);\n // @ts-expect-error - TS2531 - Object is possibly 'null'.\n const type = match[2];\n // @ts-expect-error - TS2531 - Object is possibly 'null'.\n const num = +match[3];\n return [type, num];\n });\n\n const widgetNum = _.reduce(\n allWidgetIds,\n (currentNum, otherId) => {\n const [otherType, otherNum] = otherId;\n if (otherType === widgetType) {\n return Math.max(otherNum + 1, currentNum);\n }\n return currentNum;\n },\n 1,\n );\n\n const id = widgetType + \" \" + widgetNum;\n const widgetContent = widgetPlaceholder.replace(\"{id}\", id);\n\n // Add newlines before block-display widgets like graphs\n const isBlock =\n CoreWidgetRegistry.getDefaultAlignment(widgetType) === \"block\";\n\n const prelude = oldContent.slice(0, cursorRange[0]);\n const postlude = oldContent.slice(cursorRange[1]);\n\n const newPrelude = isBlock\n ? makeEndWithAParagraphIfNecessary(prelude)\n : prelude;\n const newPostlude = isBlock\n ? makeStartWithAParagraphAlways(postlude)\n : postlude;\n\n const newContent = newPrelude + widgetContent + newPostlude;\n\n const newWidgets = {...this.props.widgets};\n newWidgets[id] = {\n options: Widgets.getEditor(widgetType)?.defaultProps,\n type: widgetType,\n // Track widget version on creation, so that a widget editor\n // without a valid version prop can only possibly refer to a\n // pre-versioning creation time.\n version: Widgets.getVersion(widgetType),\n };\n\n // See componentDidUpdate() for how this flag is used\n this.lastUserValue = this.props.content;\n this.props.onChange(\n {\n content: newContent,\n widgets: newWidgets,\n },\n () => {\n if (!this.textarea.current) {\n return;\n }\n\n Util.textarea.moveCursor(\n this.textarea.current,\n // We want to put the cursor after the widget\n // and after any added newlines\n newContent.length - postlude.length,\n );\n },\n );\n };\n\n _addWidget: (widgetType: string) => void = (widgetType: string) => {\n const textarea = this.textarea.current;\n if (!textarea) {\n return;\n }\n\n this._addWidgetToContent(\n this.props.content,\n [textarea.selectionStart, textarea.selectionEnd],\n widgetType,\n );\n textarea.focus();\n };\n\n addTemplate: (e: React.SyntheticEvent<HTMLSelectElement>) => void = (\n e: React.SyntheticEvent<HTMLSelectElement>,\n ) => {\n const templateType = e.currentTarget.value;\n if (templateType === \"\") {\n return;\n }\n e.currentTarget.value = \"\";\n\n let oldContent = this.props.content;\n\n // Force templates to have a blank line before them,\n // as they are usually used as block elements\n // (especially important for tables)\n oldContent = oldContent.replace(/\\n*$/, \"\\n\\n\");\n\n let template;\n if (templateType === \"table\") {\n template =\n \"header 1 | header 2 | header 3\\n\" +\n \"- | - | -\\n\" +\n \"data 1 | data 2 | data 3\\n\" +\n \"data 4 | data 5 | data 6\\n\" +\n \"data 7 | data 8 | data 9\";\n } else if (templateType === \"titledTable\") {\n template =\n \"|| **Table title** ||\\n\" +\n \"header 1 | header 2 | header 3\\n\" +\n \"- | - | -\\n\" +\n \"data 1 | data 2 | data 3\\n\" +\n \"data 4 | data 5 | data 6\\n\" +\n \"data 7 | data 8 | data 9\";\n } else if (templateType === \"alignment\") {\n template = \"$\\\\begin{align} \\n\" + \"\\\\\\\\\\\\\\\\\\n\" + \"\\\\end{align}$\";\n } else if (templateType === \"piecewise\") {\n template =\n \"$f(x) = \\\\begin{cases}\\n\" +\n \"7 & \\\\text{if }x=1 \\\\\\\\\\n\" +\n \"f(x-1)+5 & \\\\text{if }x > 1\\n\" +\n \"\\\\end{cases}$\";\n } else if (templateType === \"allWidgets\") {\n template = Widgets.getAllWidgetTypes()\n .map((type) => `[[${Util.snowman} ${type} 1]]`)\n .join(\"\\n\\n\");\n } else {\n throw new PerseusError(\n \"Invalid template type: \" + templateType,\n Errors.InvalidInput,\n {\n metadata: {templateType},\n },\n );\n }\n\n const newContent = oldContent + template;\n\n // See componentDidUpdate() for how this flag is used\n this.lastUserValue = this.props.content;\n this.props.onChange({content: newContent}, this.focusAndMoveToEnd);\n };\n\n getSaveWarnings: () => any = () => {\n // eslint-disable-next-line react/no-string-refs\n const widgetIds = _.intersection(this.widgetIds, _.keys(this.refs));\n const warnings = _(widgetIds)\n .chain()\n .map((id) => {\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'getSaveWarnings' does not exist on type 'ReactInstance'.\n const issuesFunc = this.refs[id].getSaveWarnings;\n const issues = issuesFunc ? issuesFunc() : [];\n return _.map(issues, (issue) => id + \": \" + issue);\n })\n .flatten(true)\n .value();\n\n return warnings;\n };\n\n focus: () => void = () => {\n const textarea = this.textarea.current;\n if (textarea) {\n textarea.focus();\n }\n };\n\n focusAndMoveToEnd: () => void = () => {\n this.focus();\n const textarea = this.textarea.current;\n if (textarea) {\n textarea.selectionStart = textarea.value.length;\n textarea.selectionEnd = textarea.value.length;\n }\n };\n\n serialize: (options?: any) => {\n content: string;\n images: any;\n replace: any | undefined;\n widgets: Record<any, any>;\n } = (options: any) => {\n // need to serialize the widgets since the state might not be\n // completely represented in props. ahem //transformer// (and\n // interactive-graph and plotter).\n const widgets: Record<string, any> = {};\n // eslint-disable-next-line react/no-string-refs\n const widgetIds = _.intersection(this.widgetIds, _.keys(this.refs));\n _.each(widgetIds, (id) => {\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'serialize' does not exist on type 'ReactInstance'.\n widgets[id] = this.refs[id].serialize();\n });\n\n // Preserve the data associated with deleted widgets in their last\n // modified form. This is only intended to be useful in the context of\n // immediate cut and paste operations if Editor.serialize() is called\n // in between the two (which ideally should not be happening).\n // TODO(alex): Remove this once all widget.serialize() methods\n // have been fixed to only return props,\n // and the above no longer applies.\n if (options && options.keepDeletedWidgets) {\n _.chain(this.props.widgets)\n .keys()\n .reject((id) => _.contains(widgetIds, id))\n .each((id) => {\n widgets[id] = this.props.widgets[id];\n });\n }\n\n return {\n replace: this.props.replace,\n content: this.props.content,\n images: this.props.images,\n widgets: widgets,\n };\n };\n\n render(): React.ReactNode {\n let pieces;\n let widgets;\n let underlayPieces;\n let widgetsDropDown;\n let templatesDropDown;\n let widgetsAndTemplates;\n let wordCountDisplay;\n const katexErrorList: Array<{\n math: string;\n message: never;\n }> = [];\n\n if (this.props.showWordCount) {\n const numChars = PerseusMarkdown.characterCount(this.props.content);\n const numWords = Math.floor(numChars / 6);\n wordCountDisplay = (\n <span\n className=\"perseus-editor-word-count\"\n title={\n \"~\" +\n commafyInteger(numWords) +\n \" words (\" +\n commafyInteger(numChars) +\n \" characters)\"\n }\n >\n {commafyInteger(numWords)}\n </span>\n );\n }\n\n if (this.props.widgetEnabled) {\n pieces = Util.split(this.props.content, rWidgetSplit);\n widgets = {};\n underlayPieces = [];\n\n for (let i = 0; i < pieces.length; i++) {\n // We split on widgets so every even-numbered indexed piece is\n // text and odd-numbered indexes are the widget references.\n if (i % 2 === 0) {\n // Normal text\n underlayPieces.push(pieces[i]);\n\n // @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.\n const ast = PerseusMarkdown.parse(pieces[i]);\n\n PerseusMarkdown.traverseContent(ast, (node) => {\n if (node.type === \"math\" || node.type === \"blockMath\") {\n const content = preprocessTex(node.content);\n try {\n katex.renderToString(content, {\n colorIsTextColor: true,\n });\n } catch (e: any) {\n katexErrorList.push({\n math: content,\n // @ts-expect-error - TS2322 - Type 'any' is not assignable to type 'never'.\n message: e.message,\n });\n }\n }\n });\n } else {\n // Widget reference\n const match = Util.rWidgetParts.exec(pieces[i]);\n if (match != null) {\n const id = match[1];\n const type = match[2] as PerseusWidget[\"type\"];\n\n const selected = false;\n // TODO(alpert):\n // var selected = focused && selStart === selEnd &&\n // offset <= selStart &&\n // selStart < offset + text.length;\n // if (selected) {\n // selectedWidget = id;\n // }\n\n const duplicate = id in widgets;\n\n widgets[id] = this.getWidgetEditor(id, type);\n const classes =\n (duplicate || !widgets[id] ? \"error \" : \"\") +\n (selected ? \"selected \" : \"\");\n const key = duplicate ? i : id;\n underlayPieces.push(\n <b className={classes} key={key}>\n {pieces[i]}\n </b>,\n );\n }\n }\n }\n\n // TODO(alpert): Move this to the content-change event handler\n // _.each(_.keys(this.props.widgets), function(id) {\n // if (!(id in widgets)) {\n // // It's strange if these preloaded options stick around\n // // since it's inconsistent with how things work if you\n // // don't have the serialize/deserialize step in the\n // // middle\n // // TODO(alpert): Save options in a consistent manner so\n // // that you can undo the deletion of a widget\n // delete this.props.widgets[id];\n // }\n // }, this);\n\n this.widgetIds = _.keys(widgets);\n widgetsDropDown = <WidgetSelect onChange={this._addWidget} />;\n\n const insertTemplateString = \"Insert template\\u2026\";\n templatesDropDown = (\n <select onChange={this.addTemplate}>\n <option value=\"\">{insertTemplateString}</option>\n <option disabled>--</option>\n <option value=\"table\">Table</option>\n <option value=\"titledTable\">Titled table</option>\n <option value=\"alignment\">Aligned equations</option>\n <option value=\"piecewise\">Piecewise function</option>\n <option disabled>--</option>\n <option value=\"allWidgets\">\n All widgets (for testing)\n </option>\n </select>\n );\n\n if (!this.props.immutableWidgets) {\n const widgetNodes = Object.values(widgets) as React.ReactNode;\n widgetsAndTemplates = (\n <div className=\"perseus-editor-widgets\">\n <div className=\"perseus-editor-widgets-selectors\">\n {widgetsDropDown}\n {templatesDropDown}\n {wordCountDisplay}\n </div>\n {widgetNodes}\n </div>\n );\n // Prevent word count from being displayed elsewhere\n wordCountDisplay = null;\n }\n } else {\n underlayPieces = [this.props.content];\n }\n\n // Without this, the underlay isn't the proper size when the text ends\n // with a newline.\n underlayPieces.push(<br key=\"end\" />);\n\n const completeTextarea = [\n <div\n className=\"perseus-textarea-underlay\"\n ref={this.underlay}\n key=\"underlay\"\n >\n {underlayPieces}\n </div>,\n <textarea\n ref={this.textarea}\n key=\"textarea\"\n onChange={this.handleChange}\n onKeyDown={this._handleKeyDown}\n placeholder={this.props.placeholder}\n disabled={this.props.disabled}\n value={this.state.textAreaValue}\n />,\n ];\n\n let textareaWrapper;\n if (this.props.imageUploader) {\n textareaWrapper = (\n <DragTarget\n onDrop={this.handleDrop}\n className=\"perseus-textarea-pair\"\n >\n {completeTextarea}\n </DragTarget>\n );\n } else {\n textareaWrapper = (\n <div className=\"perseus-textarea-pair\">{completeTextarea}</div>\n );\n }\n\n const contentWithoutWidgets = this.props.content.replace(\n /\\[\\[\\u2603 (([a-z-]+) ([0-9]+))\\]\\]/g,\n \"\",\n );\n const noPrompt = contentWithoutWidgets.trim().length === 0;\n const noWidgets = !/\\[\\[\\u2603 (([a-z-]+) ([0-9]+))\\]\\]/g.test(\n this.props.content,\n );\n\n const warningStyle = {\n borderTop: \"none\",\n padding: 4,\n backgroundColor: \"pink\",\n } as const;\n\n return (\n <div\n className={\n \"perseus-single-editor \" + (this.props.className || \"\")\n }\n >\n {textareaWrapper}\n {katexErrorList.length > 0 && (\n <TexErrorView errorList={katexErrorList} />\n )}\n {this.props.warnNoPrompt && noPrompt && (\n <div style={warningStyle}>\n Graded Groups should contain a prompt\n </div>\n )}\n {this.props.warnNoWidgets && noWidgets && (\n <div style={warningStyle}>\n Graded Groups should contain at least one widget\n </div>\n )}\n {wordCountDisplay}\n {widgetsAndTemplates}\n </div>\n );\n }\n}\n\nexport default Editor;\n","/**\n * Displays the given content in an iframe, isolating it from the parent page\n *\n * To simulate the environment of content rendered by itself, content previews\n * are rendered inside iframes, where components such as the math keypad work\n * because the body of the document is not the body of the editor. To make this\n * work, this component renders an iframe and can communicate objects to it\n * through postMessage. The recipient then needs to listen for these messages\n * and pull out the appropriate object stored in the parent's iframeDataStore\n * to get the data to render. When the iframe is loaded, it's javascript calls\n * its requestIframeData function in the parent, which triggers the parent to\n * send the current data.\n */\nimport {Log} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\n\nlet nextIframeID = 0;\nconst requestIframeData: Record<string, any> = {};\nconst updateIframeHeight: Record<string, any> = {};\n// @ts-expect-error - TS2339 - Property 'iframeDataStore' does not exist on type 'Window & typeof globalThis'.\nwindow.iframeDataStore = {};\n\n// This is called once after Perseus is loaded and the iframe\n// is ready to render content, then twice a second afterwards\n// to capture the result of animations.\nwindow.addEventListener(\"message\", (event) => {\n if (typeof event.data === \"string\") {\n // In Perseus, we expect the callback to exist, as it is added by\n // `IframeContentRenderer.componentDidMount()`. Unfortunately, this\n // event listener also gets added in Manticore (since we include Perseus\n // from there), and Crowdin fires its own \"message\" events. So we'll\n // just have to ignore the event when we can't find the callback.\n const callback = requestIframeData[event.data];\n if (callback) {\n callback();\n }\n } else if (event.data.id) {\n if (event.data.height !== undefined) {\n updateIframeHeight[event.data.id](event.data.height);\n } else if (event.data.lintWarnings) {\n // This is a lint report being sent back from the linter.\n // TODO:\n // We'll want to display the number of warnings in the HUD.\n // But for now, we just log it to the console\n Log.log(\"LINTER REPORT\", {\n lintWarnings: JSON.stringify(event.data.lintWarnings),\n });\n }\n }\n});\n\ntype Props = {\n // The HTML content to render to the iframe\n // content?: string,\n\n // The URL that the iframe should load\n url: string;\n // The data-* suffix for passing information to the iframe's JS\n datasetKey: string;\n // The value of the data-* attribute\n datasetValue: any;\n // Whether to make the iframe's height match its content's height,\n // used to prevent scrolling inside the iframe.\n seamless: boolean;\n};\n\nclass IframeContentRenderer extends React.Component<Props> {\n _frame: HTMLIFrameElement | null | undefined;\n container = React.createRef<HTMLDivElement>();\n\n // @ts-expect-error - TS2564 - Property '_isMounted' has no initializer and is not definitely assigned in the constructor.\n _isMounted: boolean;\n _lastData: any;\n // @ts-expect-error - TS2564 - Property '_lastHeight' has no initializer and is not definitely assigned in the constructor.\n _lastHeight: number;\n // @ts-expect-error - TS2564 - Property 'iframeID' has no initializer and is not definitely assigned in the constructor.\n iframeID: number;\n\n componentDidMount() {\n // TODO(scottgrant): This is a hack to remove the deprecated call to\n // this.isMounted() but is still considered an anti-pattern.\n this._isMounted = true;\n\n this.iframeID = nextIframeID;\n nextIframeID++;\n\n this._prepareFrame();\n requestIframeData[this.iframeID] = () => {\n this.sendNewData(this._lastData);\n };\n\n updateIframeHeight[this.iframeID] = (height: any) => {\n this._lastHeight = height;\n if (\n this._isMounted &&\n this.props.seamless &&\n this.container.current\n ) {\n this.container.current.style.height = height + \"px\";\n }\n };\n }\n\n shouldComponentUpdate(nextProps: Props): boolean {\n return (\n nextProps.datasetValue !== this.props.datasetValue ||\n nextProps.seamless !== this.props.seamless\n );\n }\n\n componentDidUpdate(prevProps: Props) {\n if (this.container.current) {\n if (!this.props.seamless) {\n this.container.current.style.height = \"100%\";\n } else {\n this.container.current.style.height = this._lastHeight + \"px\";\n }\n }\n\n if (prevProps.datasetValue !== this.props.datasetValue) {\n // Not just a change in seamless\n this._prepareFrame();\n }\n }\n\n componentWillUnmount() {\n requestIframeData[this.iframeID] = null;\n updateIframeHeight[this.iframeID] = null;\n\n this._isMounted = false;\n }\n\n _prepareFrame() {\n // Don't initialize the iframe until the page has loaded\n if (this._frame) {\n this.container.current?.removeChild(this._frame);\n }\n\n const frame = document.createElement(\"iframe\");\n frame.style.width = \"100%\";\n frame.style.height = \"100%\";\n frame.src = this.props.url;\n\n if (this.props.datasetKey) {\n // If the user has specified a data-* attribute to place on the\n // iframe, we set it here. Right now, this is used to\n // communicate if the iframe should be enabling touch emulation.\n frame.dataset[this.props.datasetKey] = this.props.datasetValue;\n }\n frame.dataset.id = String(this.iframeID);\n\n if (this.props.seamless) {\n // The seamless prop is the same as the \"nochrome\" prop that\n // gets passed to DeviceFramer. If it is set, then we're going\n // to be displaying editor previews and want to leave some room\n // for lint indicators in the right margin. We use the dataset\n // as above to pass this information on to the perseus-frame\n // component inside the iframe\n frame.dataset.lintGutter = \"true\";\n }\n\n this.container.current?.appendChild(frame);\n\n this._frame = frame;\n }\n\n sendNewData(data: any) {\n const frame = this._frame;\n if (this._isMounted && data && frame?.contentWindow) {\n this._lastData = data;\n\n // We can't use JSON.stringify/parse for this because the apiOptions\n // includes the functions GroupMetadataEditor, groupAnnotator, and onFocusChange.\n // @ts-expect-error - TS2339 - Property 'iframeDataStore' does not exist on type 'Window & typeof globalThis'.\n window.iframeDataStore[this.iframeID] = data;\n frame.contentWindow.postMessage(this.iframeID, \"*\");\n }\n }\n\n render(): React.ReactNode {\n return (\n <div ref={this.container} style={{width: \"100%\", height: \"100%\"}} />\n );\n }\n}\n\nexport default IframeContentRenderer;\n","/* eslint-disable jsx-a11y/anchor-is-valid */\n/**\n * An article editor. Articles are long-form pieces of content, composed of\n * multiple (Renderer) sections concatenated together.\n */\n\nimport {components, ApiOptions, iconTrash} from \"@khanacademy/perseus\";\nimport {Errors, PerseusError} from \"@khanacademy/perseus-core\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport DeviceFramer from \"./components/device-framer\";\nimport JsonEditor from \"./components/json-editor\";\nimport SectionControlButton from \"./components/section-control-button\";\nimport Editor from \"./editor\";\nimport IframeContentRenderer from \"./iframe-content-renderer\";\nimport {\n iconCircleArrowDown,\n iconCircleArrowUp,\n iconPlus,\n} from \"./styles/icon-paths\";\n\nimport type {APIOptions, Changeable, ImageUploader} from \"@khanacademy/perseus\";\n\nconst {HUD, InlineIcon} = components;\n\ntype RendererProps = {\n content?: string;\n widgets?: any;\n images?: any;\n};\n\ntype JsonType = RendererProps | ReadonlyArray<RendererProps>;\ntype DefaultProps = {\n contentPaths?: ReadonlyArray<string>;\n json: JsonType;\n mode: \"diff\" | \"edit\" | \"json\" | \"preview\";\n screen: \"phone\" | \"tablet\" | \"desktop\";\n sectionImageUploadGenerator: (\n i: number,\n ) => React.ReactElement<React.ComponentProps<\"span\">>;\n useNewStyles: boolean;\n};\ntype Props = DefaultProps & {\n apiOptions?: APIOptions;\n imageUploader?: ImageUploader;\n // URL of the route to show on initial load of the preview frames.\n previewURL: string;\n} & Changeable.ChangeableProps;\n\ntype State = {\n highlightLint: boolean;\n};\nexport default class ArticleEditor extends React.Component<Props, State> {\n static defaultProps: DefaultProps = {\n contentPaths: [],\n json: [{}],\n mode: \"edit\",\n screen: \"desktop\",\n sectionImageUploadGenerator: () => <span />,\n useNewStyles: false,\n };\n\n state: State = {\n highlightLint: true,\n };\n\n componentDidMount() {\n this._updatePreviewFrames();\n }\n\n componentDidUpdate() {\n this._updatePreviewFrames();\n }\n\n _updatePreviewFrames() {\n if (this.props.mode === \"preview\") {\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'sendNewData' does not exist on type 'ReactInstance'.\n this.refs[\"frame-all\"].sendNewData({\n type: \"article-all\",\n data: this._sections().map((section, i) => {\n return this._apiOptionsForSection(section, i);\n }),\n });\n } else if (this.props.mode === \"edit\") {\n this._sections().forEach((section, i) => {\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'sendNewData' does not exist on type 'ReactInstance'.\n this.refs[\"frame-\" + i].sendNewData({\n type: \"article\",\n data: this._apiOptionsForSection(section, i),\n });\n });\n }\n }\n\n _apiOptionsForSection(section: RendererProps, sectionIndex: number): any {\n // eslint-disable-next-line react/no-string-refs\n const editor = this.refs[`editor${sectionIndex}`];\n return {\n apiOptions: {\n ...ApiOptions.defaults,\n ...this.props.apiOptions,\n\n // Alignment options are always available in article\n // editors\n showAlignmentOptions: true,\n isArticle: true,\n },\n json: section,\n useNewStyles: this.props.useNewStyles,\n linterContext: {\n contentType: \"article\",\n highlightLint: this.state.highlightLint,\n paths: this.props.contentPaths,\n },\n // @ts-expect-error - TS2339 - Property 'getSaveWarnings' does not exist on type 'ReactInstance'.\n legacyPerseusLint: editor ? editor.getSaveWarnings() : [],\n };\n }\n\n _sections(): ReadonlyArray<RendererProps> {\n return Array.isArray(this.props.json)\n ? this.props.json\n : [this.props.json];\n }\n\n _renderEditor(): React.ReactElement<React.ComponentProps<\"div\">> {\n const {imageUploader, sectionImageUploadGenerator} = this.props;\n\n const apiOptions = {\n ...ApiOptions.defaults,\n ...this.props.apiOptions,\n\n // Alignment options are always available in article editors\n showAlignmentOptions: true,\n isArticle: true,\n } as const;\n\n const sections = this._sections();\n\n return (\n <div className=\"perseus-editor-table\">\n {sections.map((section, i) => {\n return [\n <div className=\"perseus-editor-row\" key={i}>\n <div className=\"perseus-editor-left-cell\">\n <div className=\"pod-title\">\n Section {i + 1}\n <div\n style={{\n display: \"inline-block\",\n float: \"right\",\n }}\n >\n {sectionImageUploadGenerator(i)}\n <SectionControlButton\n icon={iconPlus}\n onClick={() => {\n this._handleAddSectionAfter(i);\n }}\n title=\"Add a new section after this one\"\n />\n {i + 1 < sections.length && (\n <SectionControlButton\n icon={iconCircleArrowDown}\n onClick={() => {\n this._handleMoveSectionLater(\n i,\n );\n }}\n title=\"Move this section down\"\n />\n )}\n {i > 0 && (\n <SectionControlButton\n icon={iconCircleArrowUp}\n onClick={() => {\n this._handleMoveSectionEarlier(\n i,\n );\n }}\n title=\"Move this section up\"\n />\n )}\n <SectionControlButton\n icon={iconTrash}\n onClick={() => {\n const msg =\n \"Are you sure you \" +\n \"want to delete section \" +\n (i + 1) +\n \"?\";\n /* eslint-disable no-alert */\n if (confirm(msg)) {\n this._handleRemoveSection(\n i,\n );\n }\n /* eslint-enable no-alert */\n }}\n title=\"Delete this section\"\n />\n </div>\n </div>\n <Editor\n {...section}\n apiOptions={apiOptions}\n imageUploader={imageUploader}\n onChange={(newProps) =>\n this._handleEditorChange(i, newProps)\n }\n placeholder=\"Type your section text here...\"\n ref={\"editor\" + i}\n />\n </div>\n\n <div className=\"editor-preview\">\n {this._renderIframePreview(i, true)}\n </div>\n </div>,\n ];\n })}\n {this._renderAddSection()}\n {this._renderLinterHUD()}\n </div>\n );\n /* eslint-enable max-len */\n }\n\n _renderAddSection(): React.ReactElement<React.ComponentProps<\"div\">> {\n return (\n <div className=\"perseus-editor-row\">\n <div className=\"perseus-editor-left-cell\">\n <a\n href=\"#\"\n className=\"simple-button orange\"\n onClick={() => {\n this._handleAddSectionAfter(\n this._sections().length - 1,\n );\n }}\n >\n <InlineIcon {...iconPlus} /> Add a section\n </a>\n </div>\n </div>\n );\n }\n\n _renderLinterHUD(): React.ReactElement<any> {\n return (\n <HUD\n message=\"Style warnings\"\n enabled={this.state.highlightLint}\n onClick={() => {\n this.setState({\n highlightLint: !this.state.highlightLint,\n });\n }}\n />\n );\n }\n\n _renderIframePreview(\n i: number | string,\n nochrome: boolean,\n ): React.ReactElement<any> {\n const isMobile =\n this.props.screen === \"phone\" || this.props.screen === \"tablet\";\n\n return (\n <DeviceFramer deviceType={this.props.screen} nochrome={nochrome}>\n <IframeContentRenderer\n ref={\"frame-\" + i}\n key={this.props.screen}\n datasetKey=\"mobile\"\n datasetValue={isMobile}\n seamless={nochrome}\n url={this.props.previewURL}\n />\n </DeviceFramer>\n );\n }\n\n _renderPreviewMode(): React.ReactElement<React.ComponentProps<\"div\">> {\n return (\n <div className=\"standalone-preview\">\n {this._renderIframePreview(\"all\", false)}\n </div>\n );\n }\n\n _handleJsonChange: (newJson: JsonType) => void = (newJson) => {\n this.props.onChange({json: newJson});\n };\n\n _handleEditorChange: (i: number, newProps: RendererProps) => void = (\n i,\n newProps,\n ) => {\n const sections = [...this._sections()];\n sections[i] = {...sections[i], ...newProps};\n this.props.onChange({json: sections});\n };\n\n _handleMoveSectionEarlier(i: number) {\n if (i === 0) {\n return;\n }\n const sections = [...this._sections()];\n const section = sections[i];\n sections.splice(i, 1);\n sections.splice(i - 1, 0, section);\n this.props.onChange({\n json: sections,\n });\n }\n\n _handleMoveSectionLater(i: number) {\n const sections = [...this._sections()];\n if (i + 1 === sections.length) {\n return;\n }\n const section = sections[i];\n sections.splice(i, 1);\n sections.splice(i + 1, 0, section);\n this.props.onChange({\n json: sections,\n });\n }\n\n _handleAddSectionAfter(i: number) {\n // We do a full serialization here because we\n // might be copying widgets:\n const sections = _.clone(this.serialize());\n // Here we do magic to allow you to copy-paste\n // things from the previous section into the new\n // section while preserving widgets.\n // To enable this, we preserve the widgets\n // object for the new section, but wipe out\n // the content.\n const newSection =\n i >= 0\n ? {\n widgets: sections[i].widgets,\n }\n : {};\n // @ts-expect-error - TS2339 - Property 'splice' does not exist on type 'JsonType'.\n sections.splice(i + 1, 0, newSection);\n this.props.onChange({\n json: sections,\n });\n }\n\n _handleRemoveSection(i: number) {\n const sections = [...this._sections()];\n sections.splice(i, 1);\n this.props.onChange({\n json: sections,\n });\n }\n\n serialize(): JsonType {\n if (this.props.mode === \"edit\") {\n return this._sections().map((section, i) => {\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'serialize' does not exist on type 'ReactInstance'.\n return this.refs[\"editor\" + i].serialize();\n });\n }\n if (this.props.mode === \"preview\" || this.props.mode === \"json\") {\n return this.props.json;\n }\n throw new PerseusError(\n \"Could not serialize; mode \" + this.props.mode + \" not found\",\n Errors.Internal,\n );\n }\n\n /**\n * Returns an array, with one element be section.\n * Each element is an array of lint warnings present in that section.\n *\n * This function can currently only be called in edit mode.\n */\n getSaveWarnings(): ReadonlyArray<RendererProps> {\n if (this.props.mode !== \"edit\") {\n // TODO(joshuan): We should be able to get save warnings in\n // preview mode.\n throw new PerseusError(\n \"Can only get save warnings in edit mode.\",\n Errors.NotAllowed,\n );\n }\n\n return this._sections().map((section, i) => {\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'getSaveWarnings' does not exist on type 'ReactInstance'.\n return this.refs[\"editor\" + i].getSaveWarnings();\n });\n }\n\n render(): React.ReactNode {\n return (\n <div className=\"framework-perseus perseus-article-editor\">\n {this.props.mode === \"edit\" && this._renderEditor()}\n\n {this.props.mode === \"preview\" && this._renderPreviewMode()}\n\n {this.props.mode === \"json\" && (\n <div className=\"json-editor\">\n <div className=\"json-editor-warning\">\n <span>\n Warning: Editing in this mode can lead to broken\n articles!\n </span>\n </div>\n <JsonEditor\n multiLine={true}\n onChange={this._handleJsonChange}\n value={this.props.json}\n />\n </div>\n )}\n </div>\n );\n }\n}\n","/**\n * A component that displays controls for choosing a viewport size.\n * Renders three buttons: \"Phone\", \"Tablet\", and \"Desktop\".\n */\nimport {components} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\n\nimport {devices} from \"../styles/constants\";\nimport {iconDesktop, iconMobilePhone, iconTablet} from \"../styles/icon-paths\";\n\nimport type {DeviceType} from \"@khanacademy/perseus\";\n\nconst {ButtonGroup, InlineIcon} = components;\n\ntype Props = {\n /** The current device type that is selected. */\n deviceType: DeviceType;\n /**\n * A callback that is passed (width, height) as the dimensions of the\n * viewport to resize to.\n */\n onViewportSizeChanged: (deviceType: DeviceType) => unknown;\n};\n\nconst ViewportResizer = (props: Props) => {\n const phoneButtonContents = (\n <span>\n <InlineIcon {...iconMobilePhone} /> Phone\n </span>\n );\n const tabletButtonContents = (\n <span>\n <InlineIcon {...iconTablet} /> Tablet\n </span>\n );\n const desktopButtonContents = (\n <span>\n <InlineIcon {...iconDesktop} /> Desktop\n </span>\n );\n\n // TODO(david): Allow input of custom viewport sizes.\n return (\n <span className=\"viewport-resizer\">\n Viewport:{\" \"}\n <ButtonGroup\n value={props.deviceType}\n allowEmpty={false}\n buttons={[\n {value: devices.PHONE, content: phoneButtonContents},\n {value: devices.TABLET, content: tabletButtonContents},\n {\n value: devices.DESKTOP,\n content: desktopButtonContents,\n },\n ]}\n onChange={props.onViewportSizeChanged}\n />\n </span>\n );\n};\n\nexport default ViewportResizer;\n","/*\nSoftware License Agreement (BSD License)\n\nCopyright (c) 2009-2011, Kevin Decker <kpdecker@gmail.com>\n\nAll rights reserved.\n\nRedistribution and use of this software in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above\n copyright notice, this list of conditions and the\n following disclaimer.\n\n* Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the\n following disclaimer in the documentation and/or other\n materials provided with the distribution.\n\n* Neither the name of Kevin Decker nor the names of its\n contributors may be used to endorse or promote products\n derived from this software without specific prior\n written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\nIN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\nOF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n/*\n * Text diff implementation.\n *\n * This library supports the following APIS:\n * JsDiff.diffChars: Character by character diff\n * JsDiff.diffWords: Word (as defined by \\b regex) diff which ignores whitespace\n * JsDiff.diffLines: Line based diff\n *\n * JsDiff.diffCss: Diff targeted at CSS content\n *\n * These methods are based on the implementation proposed in\n * \"An O(ND) Difference Algorithm and its Variations\" (Myers, 1986).\n * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927\n */\n\n/*jshint maxparams: 5*/\nfunction clonePath(path) {\n return { newPos: path.newPos, components: path.components.slice(0) };\n}\nfunction removeEmpty(array) {\n var ret = [];\n for (var i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n return ret;\n}\nfunction escapeHTML(s) {\n var n = s;\n n = n.replace(/&/g, '&amp;');\n n = n.replace(/</g, '&lt;');\n n = n.replace(/>/g, '&gt;');\n n = n.replace(/\"/g, '&quot;');\n\n return n;\n}\n\nvar Diff = function(ignoreWhitespace) {\n this.ignoreWhitespace = ignoreWhitespace;\n};\nDiff.prototype = {\n diff: function(oldString, newString) {\n // Handle the identity case (this is due to unrolling editLength == 0\n if (newString === oldString) {\n return [{ value: newString }];\n }\n if (!newString) {\n return [{ value: oldString, removed: true }];\n }\n if (!oldString) {\n return [{ value: newString, added: true }];\n }\n\n newString = this.tokenize(newString);\n oldString = this.tokenize(oldString);\n\n var newLen = newString.length, oldLen = oldString.length;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{ newPos: -1, components: [] }];\n\n // Seed editLength = 0\n var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\n if (bestPath[0].newPos+1 >= newLen && oldPos+1 >= oldLen) {\n return bestPath[0].components;\n }\n\n for (var editLength = 1; editLength <= maxEditLength; editLength++) {\n for (var diagonalPath = -1*editLength; diagonalPath <= editLength; diagonalPath+=2) {\n var basePath;\n var addPath = bestPath[diagonalPath-1],\n removePath = bestPath[diagonalPath+1];\n oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath-1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos+1 < newLen;\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n if (!canAdd && !canRemove) {\n bestPath[diagonalPath] = undefined;\n continue;\n }\n\n // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\n basePath = clonePath(removePath);\n this.pushComponent(basePath.components, oldString[oldPos], undefined, true);\n } else {\n basePath = clonePath(addPath);\n basePath.newPos++;\n this.pushComponent(basePath.components, newString[basePath.newPos], true, undefined);\n }\n\n var oldPos = this.extractCommon(basePath, newString, oldString, diagonalPath);\n\n if (basePath.newPos+1 >= newLen && oldPos+1 >= oldLen) {\n return basePath.components;\n } else {\n bestPath[diagonalPath] = basePath;\n }\n }\n }\n },\n\n pushComponent: function(components, value, added, removed) {\n var last = components[components.length-1];\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length-1] =\n {value: this.join(last.value, value), added: added, removed: removed };\n } else {\n components.push({value: value, added: added, removed: removed });\n }\n },\n extractCommon: function(basePath, newString, oldString, diagonalPath) {\n var newLen = newString.length,\n oldLen = oldString.length,\n newPos = basePath.newPos,\n oldPos = newPos - diagonalPath;\n while (newPos+1 < newLen && oldPos+1 < oldLen && this.equals(newString[newPos+1], oldString[oldPos+1])) {\n newPos++;\n oldPos++;\n\n this.pushComponent(basePath.components, newString[newPos], undefined, undefined);\n }\n basePath.newPos = newPos;\n return oldPos;\n },\n\n equals: function(left, right) {\n var reWhitespace = /\\S/;\n if (this.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right)) {\n return true;\n } else {\n return left === right;\n }\n },\n join: function(left, right) {\n return left + right;\n },\n tokenize: function(value) {\n return value;\n }\n};\n\nvar CharDiff = new Diff();\n\nvar WordDiff = new Diff(true);\nvar WordWithSpaceDiff = new Diff();\nWordDiff.tokenize = WordWithSpaceDiff.tokenize = function(value) {\n return removeEmpty(value.split(/(\\s+|\\b)/));\n};\n\nvar CssDiff = new Diff(true);\nCssDiff.tokenize = function(value) {\n return removeEmpty(value.split(/([{}:;,]|\\s+)/));\n};\n\nvar LineDiff = new Diff();\nLineDiff.tokenize = function(value) {\n var retLines = [],\n lines = value.split(/^/m);\n\n for(var i = 0; i < lines.length; i++) {\n var line = lines[i],\n lastLine = lines[i - 1];\n\n // Merge lines that may contain windows new lines\n if (line == '\\n' && lastLine && lastLine[lastLine.length - 1] === '\\r') {\n retLines[retLines.length - 1] += '\\n';\n } else if (line) {\n retLines.push(line);\n }\n }\n\n return retLines;\n};\n\nconst JSDiff = {\n Diff: Diff,\n\n diffChars: function(oldStr, newStr) { return CharDiff.diff(oldStr, newStr); },\n diffWords: function(oldStr, newStr) { return WordDiff.diff(oldStr, newStr); },\n diffWordsWithSpace: function(oldStr, newStr) { return WordWithSpaceDiff.diff(oldStr, newStr); },\n diffLines: function(oldStr, newStr) { return LineDiff.diff(oldStr, newStr); },\n\n diffCss: function(oldStr, newStr) { return CssDiff.diff(oldStr, newStr); },\n\n createPatch: function(fileName, oldStr, newStr, oldHeader, newHeader) {\n var ret = [];\n\n ret.push('Index: ' + fileName);\n ret.push('===================================================================');\n ret.push('--- ' + fileName + (typeof oldHeader === 'undefined' ? '' : '\\t' + oldHeader));\n ret.push('+++ ' + fileName + (typeof newHeader === 'undefined' ? '' : '\\t' + newHeader));\n\n var diff = LineDiff.diff(oldStr, newStr);\n if (!diff[diff.length-1].value) {\n diff.pop(); // Remove trailing newline add\n }\n diff.push({value: '', lines: []}); // Append an empty value to make cleanup easier\n\n function contextLines(lines) {\n return lines.map(function(entry) { return ' ' + entry; });\n }\n function eofNL(curRange, i, current) {\n var last = diff[diff.length-2],\n isLast = i === diff.length-2,\n isLastOfType = i === diff.length-3 && (current.added !== last.added || current.removed !== last.removed);\n\n // Figure out if this is the last line for the given file and missing NL\n if (!/\\n$/.test(current.value) && (isLast || isLastOfType)) {\n curRange.push('\\\');\n }\n }\n\n var oldRangeStart = 0, newRangeStart = 0, curRange = [],\n oldLine = 1, newLine = 1;\n for (var i = 0; i < diff.length; i++) {\n var current = diff[i],\n lines = current.lines || current.value.replace(/\\n$/, '').split('\\n');\n current.lines = lines;\n\n if (current.added || current.removed) {\n if (!oldRangeStart) {\n var prev = diff[i-1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n\n if (prev) {\n curRange = contextLines(prev.lines.slice(-4));\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n }\n curRange.push.apply(curRange, lines.map(function(entry) { return (current.added?'+':'-') + entry; }));\n eofNL(curRange, i, current);\n\n if (current.added) {\n newLine += lines.length;\n } else {\n oldLine += lines.length;\n }\n } else {\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= 8 && i < diff.length-2) {\n // Overlapping\n curRange.push.apply(curRange, contextLines(lines));\n } else {\n // end the range and output\n var contextSize = Math.min(lines.length, 4);\n ret.push(\n '@@ -' + oldRangeStart + ',' + (oldLine-oldRangeStart+contextSize)\n + ' +' + newRangeStart + ',' + (newLine-newRangeStart+contextSize)\n + ' @@');\n ret.push.apply(ret, curRange);\n ret.push.apply(ret, contextLines(lines.slice(0, contextSize)));\n if (lines.length <= 4) {\n eofNL(ret, i, current);\n }\n\n oldRangeStart = 0; newRangeStart = 0; curRange = [];\n }\n }\n oldLine += lines.length;\n newLine += lines.length;\n }\n }\n\n return ret.join('\\n') + '\\n';\n },\n\n applyPatch: function(oldStr, uniDiff) {\n var diffstr = uniDiff.split('\\n');\n var diff = [];\n var remEOFNL = false,\n addEOFNL = false;\n\n for (var i = (diffstr[0][0]==='I'?4:0); i < diffstr.length; i++) {\n if(diffstr[i][0] === '@') {\n var meh = diffstr[i].split(/@@ -(\\d+),(\\d+) \\+(\\d+),(\\d+) @@/);\n diff.unshift({\n start:meh[3],\n oldlength:meh[2],\n oldlines:[],\n newlength:meh[4],\n newlines:[]\n });\n } else if(diffstr[i][0] === '+') {\n diff[0].newlines.push(diffstr[i].substr(1));\n } else if(diffstr[i][0] === '-') {\n diff[0].oldlines.push(diffstr[i].substr(1));\n } else if(diffstr[i][0] === ' ') {\n diff[0].newlines.push(diffstr[i].substr(1));\n diff[0].oldlines.push(diffstr[i].substr(1));\n } else if(diffstr[i][0] === '\\\\') {\n if (diffstr[i-1][0] === '+') {\n remEOFNL = true;\n } else if(diffstr[i-1][0] === '-') {\n addEOFNL = true;\n }\n }\n }\n\n var str = oldStr.split('\\n');\n for (var i = diff.length - 1; i >= 0; i--) {\n var d = diff[i];\n for (var j = 0; j < d.oldlength; j++) {\n if(str[d.start-1+j] !== d.oldlines[j]) {\n return false;\n }\n }\n Array.prototype.splice.apply(str,[d.start-1,+d.oldlength].concat(d.newlines));\n }\n\n if (remEOFNL) {\n while (!str[str.length-1]) {\n str.pop();\n }\n } else if (addEOFNL) {\n str.push('');\n }\n return str.join('\\n');\n },\n\n convertChangesToXML: function(changes){\n var ret = [];\n for ( var i = 0; i < changes.length; i++) {\n var change = changes[i];\n if (change.added) {\n ret.push('<ins>');\n } else if (change.removed) {\n ret.push('<del>');\n }\n\n ret.push(escapeHTML(change.value));\n\n if (change.added) {\n ret.push('</ins>');\n } else if (change.removed) {\n ret.push('</del>');\n }\n }\n return ret.join('');\n },\n\n // See: http://code.google.com/p/google-diff-match-patch/wiki/API\n convertChangesToDMP: function(changes){\n var ret = [], change;\n for ( var i = 0; i < changes.length; i++) {\n change = changes[i];\n ret.push([(change.added ? 1 : change.removed ? -1 : 0), change.value]);\n }\n return ret;\n }\n};\n\nexport default JSDiff;\n","import _ from \"underscore\";\n\n// Split a word-wise diff generated by jsdiff into multiple lines, for the\n// purpose of breaking up the diffs into lines, so that modified lines can be\n// faintly highlighted\n\nconst splitDiff = function (diffEntries: any): any {\n const lines = [];\n let currentLine: Array<any> = [];\n _.each(diffEntries, (entry) => {\n const values = entry.value.split(\"\\n\");\n _.each(values, (value, i) => {\n const isNewline = i > 0;\n if (isNewline) {\n // @ts-expect-error - TS2345 - Argument of type 'any[]' is not assignable to parameter of type 'never'.\n lines.push(currentLine);\n currentLine = [];\n }\n const newEntry = _.extend({}, entry, {value: value});\n currentLine.push(newEntry);\n });\n });\n\n if (currentLine.length) {\n // @ts-expect-error - TS2345 - Argument of type 'any[]' is not assignable to parameter of type 'never'.\n lines.push(currentLine);\n }\n return lines;\n};\n\nexport default splitDiff;\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport jsdiff from \"jsdiff\";\nimport _ from \"underscore\";\n\nconst statusFor = function (chunk: any) {\n if (chunk.added) {\n return \"added\";\n }\n if (chunk.removed) {\n return \"removed\";\n }\n return \"unchanged\";\n};\n\n// Turn a chunk (which contains an array of values and a status)\n// into an array of values, each with the same status\nconst splitUpChunk = (chunk: any) =>\n _.map(chunk.value, (value) => {\n return {\n value: value,\n status: statusFor(chunk),\n };\n });\n\n// Apply `fn` to every element in `lst` and then concatenate all the results\n// http://clojuredocs.org/clojure_core/clojure.core/mapcat\nconst mapcat = function (lst: any, fn: (chunk?: any) => any) {\n return _.flatten(_.map(lst, fn), true /* only flatten one level */);\n};\n\n// > ArrayDiff.diff([1,2,3], [2,3,4]);\n// = [{ \"value\": [1],\n// \"removed\": true },\n// { \"value\": [2, 3] },\n// { \"value\": [4],\n// \"added\": true }]\nconst ArrayDiff = new jsdiff.Diff();\nArrayDiff.tokenize = (array) => _.map(array, (elem) => [elem]);\n// The default is `+` for string concatenation, which doesn't work for array\n// concatenation.\nArrayDiff.join = (a, b: any) => a.concat(b);\n// By default jsDiff uses ===\nArrayDiff.equals = _.isEqual;\n\n// Take the output of jsdiff's function (which concatenates adjacent entries)\n// and make it just one entry per chunk\n// > flattenChunks([{ \"value\": [1],\n// \"removed\": true },\n// { \"value\": [2, 3] },\n// { \"value\": [4],\n// \"added\": true }])\n// = [{ \"value\":1, \"status\":\"removed\"},\n// { \"value\":2, \"status\":\"unchanged\"},\n// { \"value\":3, \"status\":\"unchanged\"},\n// { \"value\":4, \"status\":\"added\"}]\nconst flattenChunks = (chunks: any) => mapcat(chunks, splitUpChunk);\n\n// Take two arrays and create a diff for them. The result is two arrays of\n// objects, one for the things that should be included in a 'before', and one\n// for 'after'\nconst stringArrayDiff = function (\n a: ReadonlyArray<any>,\n b: ReadonlyArray<any>,\n): any {\n const diffResult = ArrayDiff.diff(a, b);\n const flattened = flattenChunks(diffResult);\n\n return {\n before: _.filter(flattened, (entry) => entry.status !== \"added\"),\n after: _.filter(flattened, (entry) => entry.status !== \"removed\"),\n };\n};\n\nexport default stringArrayDiff;\n","/* eslint-disable react/no-unsafe */\nimport {components} from \"@khanacademy/perseus\";\nimport classNames from \"classnames\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport jsdiff from \"jsdiff\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport splitDiff from \"./split-diff\";\nimport stringArrayDiff from \"./string-array-diff\";\n\nconst {SvgImage} = components;\n\nconst BEFORE = \"before\";\nconst AFTER = \"after\";\n\nconst IMAGE_REGEX = /http.*?\\.png|web\\+graphie[^)]*/g;\n\nconst imagesInString = function (str: any) {\n return str.match(IMAGE_REGEX) || [];\n};\n\nconst classFor = function (entry: any, ifAdded: string, ifRemoved: string) {\n if (entry.added) {\n return ifAdded;\n }\n if (entry.removed) {\n return ifRemoved;\n }\n return \"\";\n};\n\nclass ImageDiffSide extends React.Component<any> {\n static propTypes = {\n images: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n };\n\n render(): React.ReactNode {\n return (\n <div>\n {_.map(this.props.images, (entry, index) => {\n const className = classNames({\n image: true,\n \"image-unchanged\": entry.status === \"unchanged\",\n \"image-added\": entry.status === \"added\",\n \"image-removed\": entry.status === \"removed\",\n });\n return (\n <div key={index}>\n <div className={className}>\n {/* @ts-expect-error - TS2741 - Property 'alt' is missing in type '{ src: any; title: any; }' but required in type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, \"children\" | \"height\" | \"width\" | \"title\" | \"alt\" | \"trackInteraction\" | \"preloader\" | \"allowFullBleed\" | \"extraGraphie\" | \"overrideAriaHidden\">'. */}\n <SvgImage\n src={entry.value}\n title={entry.value}\n />\n </div>\n </div>\n );\n })}\n </div>\n );\n }\n}\n\nclass TextDiff extends React.Component<any, any> {\n static propTypes = {\n after: PropTypes.string,\n before: PropTypes.string,\n title: PropTypes.string.isRequired,\n };\n\n static defaultProps: any = {\n after: \"\",\n before: \"\",\n };\n\n state: any = {\n collapsed: this.props.before === this.props.after,\n };\n\n UNSAFE_componentWillReceiveProps(nextProps: any) {\n this.setState({\n collapsed: nextProps.before === nextProps.after,\n });\n }\n\n handleExpand: () => void = () => {\n this.setState({collapsed: false});\n };\n\n render(): React.ReactNode {\n const diffed = jsdiff.diffWords(this.props.before, this.props.after);\n\n const lines = splitDiff(diffed);\n\n const beforeImages = imagesInString(this.props.before);\n const afterImages = imagesInString(this.props.after);\n const images = stringArrayDiff(beforeImages, afterImages);\n\n const renderedLines = _.map(lines, (line) => {\n const contents: Record<string, any> = {};\n\n contents.before = _(line).map(function (entry, i) {\n return (\n <span\n key={i}\n className={classFor(\n entry,\n \"not-present\",\n \"removed dark\",\n )}\n >\n {entry.value}\n </span>\n );\n });\n\n contents.after = _(line).map(function (entry, i) {\n return (\n <span\n key={i}\n className={classFor(entry, \"added dark\", \"not-present\")}\n >\n {entry.value}\n </span>\n );\n });\n\n return contents;\n });\n\n const className = classNames({\n \"diff-row\": true,\n collapsed: this.state.collapsed,\n });\n\n return (\n <div>\n <div className=\"diff-header\">{this.props.title}</div>\n <div className=\"diff-header\">{this.props.title}</div>\n <div className=\"diff-body ui-helper-clearfix\">\n {_.map([BEFORE, AFTER], (side, index) => {\n return (\n <div className={\"diff-row \" + side} key={index}>\n {!this.state.collapsed &&\n _.map(renderedLines, (line, lineNum) => {\n const changed = line[side].length > 1;\n const lineClass = classNames({\n \"diff-line\": true,\n added: side === AFTER && changed,\n removed: side === BEFORE && changed,\n });\n return (\n <div\n className={lineClass}\n key={lineNum}\n >\n {line[side]}\n </div>\n );\n })}\n {!this.state.collapsed && (\n <ImageDiffSide images={images[side]} />\n )}\n </div>\n );\n })}\n </div>\n {_.map([BEFORE, AFTER], (side, index) => {\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events -- TODO(LEMS-2871): Address a11y error\n <div\n className={className + \" \" + side}\n key={index}\n onClick={this.handleExpand}\n >\n {this.state.collapsed && (\n <span>\n <span className=\"expand-button\">\n {\" \"}\n [ show unmodified ]{\" \"}\n </span>\n </span>\n )}\n </div>\n );\n })}\n </div>\n );\n }\n}\n\nexport default TextDiff;\n","import _ from \"underscore\";\n\nconst UNCHANGED = \"unchanged\";\nconst CHANGED = \"changed\";\nconst ADDED = \"added\";\nconst REMOVED = \"removed\";\n\n// For values which do not have further values nested within them (strings,\n// numbers, and booleans)\nconst valueEntry = function (before: any, after: any, key) {\n let status;\n if (before === after) {\n status = UNCHANGED;\n } else if (before === undefined) {\n status = ADDED;\n } else if (after === undefined) {\n status = REMOVED;\n } else {\n status = CHANGED;\n }\n\n return {\n after: JSON.stringify(after),\n before: JSON.stringify(before),\n children: [],\n key: key,\n status: status,\n };\n};\n\n// For values which require a more granular diff (objects and arrays)\nconst objectEntry = function (before: any, after: any, key) {\n const beforeKeys = _.isObject(before) ? _(before).keys() : [];\n const afterKeys = _.isObject(after) ? _(after).keys() : [];\n const keys = _.union(beforeKeys, afterKeys);\n\n const children = _.map(keys, function (key) {\n return performDiff((before || {})[key], (after || {})[key], key);\n });\n\n let status;\n if (before === undefined) {\n status = ADDED;\n } else if (after === undefined) {\n status = REMOVED;\n } else {\n const changed = _.any(children, function (child) {\n return child.status !== UNCHANGED;\n });\n status = changed ? CHANGED : UNCHANGED;\n }\n\n return {\n after: \"\",\n before: \"\",\n children: children,\n key: key,\n status: status,\n };\n};\n\nconst performDiff = function (before: any, after: any, key?: any): any {\n if (typeof before === \"object\" || typeof after === \"object\") {\n return objectEntry(before, after, key);\n }\n return valueEntry(before, after, key);\n};\n\nexport default performDiff;\n","import {components} from \"@khanacademy/perseus\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport performDiff from \"./widget-diff-performer\";\n\nconst {SvgImage} = components;\n\nconst indentationFromDepth = function (depth: any) {\n return (depth - 1) * 20;\n};\n\nconst BEFORE = \"before\";\nconst AFTER = \"after\";\n\nconst UNCHANGED = \"unchanged\";\n\nclass DiffSide extends React.Component<any> {\n static propTypes = {\n className: PropTypes.string.isRequired,\n depth: PropTypes.number.isRequired,\n propKey: PropTypes.string.isRequired,\n showKey: PropTypes.bool.isRequired,\n side: PropTypes.oneOf([BEFORE, AFTER]).isRequired,\n value: PropTypes.string,\n };\n\n render(): React.ReactNode {\n const className = classNames(this.props.className, {\n \"diff-row\": true,\n before: this.props.side === BEFORE,\n after: this.props.side === AFTER,\n });\n return (\n <div className={className}>\n <div\n style={{\n paddingLeft: indentationFromDepth(this.props.depth),\n }}\n >\n {this.props.showKey && this.props.propKey + \": \"}\n <span\n className={\"inner-value dark \" + this.props.className}\n >\n {this.props.value}\n </span>\n </div>\n </div>\n );\n }\n}\n\nclass CollapsedRow extends React.Component<any> {\n static propTypes = {\n depth: PropTypes.number,\n onClick: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n depth: 0,\n };\n\n render(): React.ReactNode {\n const self = this;\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events -- TODO(LEMS-2871): Address a11y error\n <div onClick={self.props.onClick} style={{clear: \"both\"}}>\n {_.map([BEFORE, AFTER], function (side) {\n return (\n <div\n className={\"diff-row collapsed \" + side}\n key={side}\n >\n <div\n style={{\n paddingLeft: indentationFromDepth(\n self.props.depth,\n ),\n }}\n >\n <span> [ show unmodified ] </span>\n </div>\n </div>\n );\n })}\n </div>\n );\n }\n}\n\n// Component representing a single property that may be nested.\nclass DiffEntry extends React.Component<any, any> {\n static propTypes = {\n depth: PropTypes.number,\n entry: PropTypes.shape({\n after: PropTypes.string,\n before: PropTypes.string,\n children: PropTypes.arrayOf(PropTypes.any),\n key: PropTypes.string,\n }),\n expanded: PropTypes.bool,\n };\n\n static defaultProps = {\n depth: 0,\n };\n\n state = {\n expanded: this.props.expanded,\n };\n\n expand = () => {\n this.setState({expanded: true});\n };\n\n render(): React.ReactNode {\n const entry = this.props.entry;\n const propertyDeleted = entry.status === \"removed\";\n const propertyAdded = entry.status === \"added\";\n const propertyChanged = entry.status === \"changed\";\n\n const hasChildren = entry.children.length > 0;\n\n const leftClass = classNames({\n removed: propertyDeleted || (propertyChanged && !hasChildren),\n dark: propertyDeleted,\n \"blank-space\": propertyAdded,\n });\n\n const rightClass = classNames({\n added: propertyAdded || (propertyChanged && !hasChildren),\n dark: propertyAdded,\n \"blank-space\": propertyDeleted,\n });\n\n let shownChildren;\n if (this.state.expanded) {\n shownChildren = entry.children;\n } else {\n shownChildren = _(entry.children).select(function (child) {\n return child.status !== UNCHANGED;\n });\n }\n\n let collapsed = shownChildren.length < entry.children.length;\n\n // don't hide just one entry\n if (entry.children.length === shownChildren.length + 1) {\n shownChildren = entry.children;\n collapsed = false;\n }\n\n const self = this;\n return (\n <div>\n {entry.key && (\n <div style={{clear: \"both\"}}>\n <DiffSide\n side={BEFORE}\n className={leftClass}\n depth={this.props.depth}\n propKey={entry.key}\n showKey={!propertyAdded}\n value={entry.before}\n />\n <DiffSide\n side={AFTER}\n className={rightClass}\n depth={this.props.depth}\n propKey={entry.key}\n showKey={!propertyDeleted}\n value={entry.after}\n />\n </div>\n )}\n {_.map(shownChildren, function (child) {\n return (\n <DiffEntry\n key={child.key}\n depth={self.props.depth + 1}\n entry={child}\n expanded={self.state.expanded}\n />\n );\n })}\n {collapsed && (\n <CollapsedRow\n depth={this.props.depth + 1}\n onClick={this.expand}\n />\n )}\n </div>\n );\n }\n}\n\n// For image widgets, show the actual image\nclass ImageWidgetDiff extends React.Component<any> {\n static propTypes = {\n after: PropTypes.shape({\n options: PropTypes.objectOf(PropTypes.any),\n }).isRequired,\n before: PropTypes.shape({\n options: PropTypes.objectOf(PropTypes.any),\n }).isRequired,\n };\n\n render(): React.ReactNode {\n const {before, after} = this.props;\n const beforeSrc =\n before.options && before.options.backgroundImage\n ? before.options.backgroundImage.url\n : \"\";\n const afterSrc =\n after.options && after.options.backgroundImage\n ? after.options.backgroundImage.url\n : \"\";\n return (\n <div>\n <div className=\"diff-row before\">\n {beforeSrc && (\n <div\n className={classNames({\n image: true,\n \"image-unchanged\": beforeSrc === afterSrc,\n \"image-removed\": beforeSrc !== afterSrc,\n })}\n >\n {/* @ts-expect-error - TS2741 - Property 'alt' is missing in type '{ src: any; title: any; }' but required in type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, \"children\" | \"height\" | \"width\" | \"title\" | \"alt\" | \"trackInteraction\" | \"preloader\" | \"allowFullBleed\" | \"extraGraphie\" | \"overrideAriaHidden\">'. */}\n <SvgImage src={beforeSrc} title={beforeSrc} />\n </div>\n )}\n </div>\n <div className=\"diff-row after\">\n {afterSrc && (\n <div\n className={classNames({\n image: true,\n \"image-unchanged\": beforeSrc === afterSrc,\n \"image-added\": beforeSrc !== afterSrc,\n })}\n >\n {/* @ts-expect-error - TS2741 - Property 'alt' is missing in type '{ src: any; title: any; }' but required in type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, \"children\" | \"height\" | \"width\" | \"title\" | \"alt\" | \"trackInteraction\" | \"preloader\" | \"allowFullBleed\" | \"extraGraphie\" | \"overrideAriaHidden\">'. */}\n <SvgImage src={afterSrc} title={afterSrc} />\n </div>\n )}\n </div>\n </div>\n );\n }\n}\n\nclass WidgetDiff extends React.Component<any> {\n static propTypes = {\n after: PropTypes.shape({\n options: PropTypes.objectOf(PropTypes.any),\n }),\n before: PropTypes.shape({\n options: PropTypes.objectOf(PropTypes.any),\n }),\n title: PropTypes.string.isRequired,\n type: PropTypes.string,\n };\n\n static defaultProps: any = {\n after: {},\n before: {},\n type: \"\",\n };\n\n render(): React.ReactNode {\n const {after, before, title, type} = this.props;\n const diff = performDiff(before, after);\n return (\n <div>\n <div className=\"diff-header\">{title}</div>\n <div className=\"diff-header\">{title}</div>\n <div className=\"diff-body ui-helper-clearfix\">\n {type === \"image\" && (\n <ImageWidgetDiff before={before} after={after} />\n )}\n <DiffEntry entry={diff} />\n </div>\n </div>\n );\n }\n}\n\nexport default WidgetDiff;\n","/**\n * A side by side diff view for Perseus renderers.\n */\n\nimport {Widgets} from \"@khanacademy/perseus\";\nimport {CoreWidgetRegistry} from \"@khanacademy/perseus-core\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport TextDiff from \"./text-diff\";\nimport WidgetDiff from \"./widget-diff\";\n\nimport type {PerseusRenderer} from \"@khanacademy/perseus-core\";\n\n// In diffs, only show the widgetInfo props that can change\nconst filterWidgetInfo = function (widgetInfo, showAlignmentOptions: boolean) {\n const {alignment, graded, options, type} = widgetInfo || {};\n\n const filteredWidgetInfo = {options} as const;\n\n // Show alignment options iff multiple valid ones exist for this widget\n if (\n showAlignmentOptions &&\n CoreWidgetRegistry.getSupportedAlignments(type).length > 1\n ) {\n // @ts-expect-error - TS2339 - Property 'alignment' does not exist on type '{ readonly options: any; }'.\n filteredWidgetInfo.alignment = alignment;\n }\n\n if (type === \"transformer\") {\n // @ts-expect-error - TS2339 - Property 'graded' does not exist on type '{ readonly options: any; }'.\n filteredWidgetInfo.graded = graded;\n }\n\n if (Widgets.supportsStaticMode(type)) {\n // @ts-expect-error - TS2339 - Property 'static' does not exist on type '{ readonly options: any; }'.\n filteredWidgetInfo.static = widgetInfo?.static ?? undefined;\n }\n\n return filteredWidgetInfo;\n};\n\n// TODO(michaelpolyak): This type is very similar to `PerseusRenderer` type\n// found in `perseus-all-package/perseus-type.js`, consider just using it.\ntype RendererProps = {\n content: string;\n // NOTE: images and widgets may not be set for some items hints,\n // specifically in old revisions, which may only be loaded for diffing.\n widgets: PerseusRenderer[\"widgets\"] | null | undefined;\n images: PerseusRenderer[\"images\"] | null | undefined;\n};\n\ntype Props = {\n // The \"after\" props of the renderer. Will be displayed on the right.\n after: RendererProps;\n // The \"before\" props of the renderer. Will be displayed on the left.\n before: RendererProps;\n // If true, show widget alignment options in the diff.\n showAlignmentOptions: boolean;\n // If true, render a horizontal rule after this diff.\n showSeparator: boolean;\n // The heading to render above the side by side diff.\n // (In a code review tool this would be the filename.)\n title: string;\n};\n\nclass RendererDiff extends React.Component<Props> {\n static defaultProps: Partial<Omit<Props, \"title\">> = {\n after: {\n content: \"\",\n images: {},\n widgets: {},\n },\n before: {\n content: \"\",\n images: {},\n widgets: {},\n },\n showAlignmentOptions: false,\n showSeparator: false,\n };\n\n render(): React.ReactNode {\n const {after, before, showAlignmentOptions, showSeparator, title} =\n this.props;\n\n let textDiff;\n let widgetsDiff;\n\n if (before.content || after.content) {\n textDiff = (\n <TextDiff\n before={before.content}\n after={after.content}\n title={title}\n />\n );\n }\n\n const beforeWidgets = Object.keys(before.widgets ?? {}).filter(\n (widget) => before.content.includes(widget),\n );\n const afterWidgets = Object.keys(after.widgets ?? {}).filter((widget) =>\n after.content.includes(widget),\n );\n\n if (beforeWidgets.length || afterWidgets.length) {\n const widgets = _.union(beforeWidgets, afterWidgets);\n widgetsDiff = widgets.map((widget) => (\n <WidgetDiff\n before={filterWidgetInfo(\n before.widgets?.[widget],\n showAlignmentOptions,\n )}\n after={filterWidgetInfo(\n after.widgets?.[widget],\n showAlignmentOptions,\n )}\n title={widget}\n type={\n (before.widgets?.[widget] ?? {}).type ||\n (after.widgets?.[widget] ?? {}).type\n }\n key={widget}\n />\n ));\n }\n\n return (\n <div>\n {textDiff}\n {widgetsDiff}\n {showSeparator && <div className=\"diff-separator\" />}\n </div>\n );\n }\n}\n\nexport default RendererDiff;\n","/* eslint-disable react/no-unsafe */\n/**\n * A side by side diff view for Perseus articles.\n */\n\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport RendererDiff from \"./renderer-diff\";\n\nconst rendererProps = PropTypes.shape({\n content: PropTypes.string,\n images: PropTypes.objectOf(PropTypes.any),\n widgets: PropTypes.objectOf(PropTypes.any),\n});\n\ntype Props = any;\ntype State = any;\n\nclass ArticleDiff extends React.Component<Props, State> {\n static propTypes = {\n // TODO(alex): Check whether we still have any Perseus articles whose\n // top-level json is an object, not an array. If not, simplify here.\n after: PropTypes.oneOfType([\n rendererProps,\n PropTypes.arrayOf(rendererProps),\n ]).isRequired,\n before: PropTypes.oneOfType([\n rendererProps,\n PropTypes.arrayOf(rendererProps),\n ]).isRequired,\n };\n\n static _stateFromProps: (arg1: Props) => State = (props) => {\n const {before, after} = props;\n return {\n before: Array.isArray(before) ? before : [before],\n after: Array.isArray(after) ? after : [after],\n };\n };\n\n state: State = ArticleDiff._stateFromProps(this.props);\n\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n this.setState(ArticleDiff._stateFromProps(nextProps));\n }\n\n render(): React.ReactNode {\n const {before, after} = this.state;\n\n const sectionCount = Math.max(before.length, after.length);\n\n const sections = _.times(sectionCount, (n) => (\n <RendererDiff\n before={n < before.length ? before[n] : undefined}\n after={n < after.length ? after[n] : undefined}\n title={`Section ${n + 1}`}\n showAlignmentOptions={true}\n showSeparator={n < sectionCount - 1}\n key={n}\n />\n ));\n\n return <div className=\"framework-perseus\">{sections}</div>;\n }\n}\n\nexport default ArticleDiff;\n","/**\n * A side by side diff view for Perseus exercise items\n * in the standard layout.\n */\n\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport RendererDiff from \"./renderer-diff\";\nimport WidgetDiff from \"./widget-diff\";\n\nconst itemProps = PropTypes.shape({\n question: PropTypes.shape({}).isRequired,\n answerArea: PropTypes.shape({}).isRequired,\n hints: PropTypes.arrayOf(PropTypes.any).isRequired,\n});\n\ntype Props = any;\n\nclass ItemDiff extends React.Component<Props> {\n static propTypes = {\n after: itemProps.isRequired,\n before: itemProps.isRequired,\n };\n\n render(): React.ReactNode {\n const {before, after} = this.props;\n\n const hintCount = Math.max(before.hints.length, after.hints.length);\n\n const question = (\n <RendererDiff\n before={before.question}\n after={after.question}\n title=\"Question\"\n showAlignmentOptions={false}\n showSeparator={true}\n />\n );\n\n const extras = (\n <WidgetDiff\n before={before.answerArea}\n after={after.answerArea}\n title=\"Question extras\"\n />\n );\n\n const hints = _.times(hintCount, function (n) {\n return (\n <RendererDiff\n before={\n n < before.hints.length ? before.hints[n] : undefined\n }\n after={n < after.hints.length ? after.hints[n] : undefined}\n title={`Hint ${n + 1}`}\n showAlignmentOptions={false}\n showSeparator={n < hintCount - 1}\n key={n}\n />\n );\n });\n\n return (\n <div className=\"framework-perseus\">\n {question}\n {extras}\n {hints && <div className=\"diff-separator\" />}\n {hints}\n </div>\n );\n }\n}\n\nexport default ItemDiff;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\n/* eslint-disable @babel/no-invalid-this */\n/**\n * Collection of classes for rendering the hint editor area,\n * hint editor boxes, and hint previews\n */\nimport {components, iconTrash} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport DeviceFramer from \"./components/device-framer\";\nimport Editor from \"./editor\";\nimport IframeContentRenderer from \"./iframe-content-renderer\";\nimport {\n iconCircleArrowDown,\n iconCircleArrowUp,\n iconPlus,\n} from \"./styles/icon-paths\";\n\nimport type {\n APIOptions,\n ImageDict,\n ChangeHandler,\n DeviceType,\n ImageUploader,\n} from \"@khanacademy/perseus\";\nimport type {Hint, PerseusWidgetsMap} from \"@khanacademy/perseus-core\";\n\nconst {InfoTip, InlineIcon} = components;\n\ntype HintEditorProps = {\n itemId?: string;\n apiOptions?: APIOptions;\n className: string;\n imageUploader?: ImageUploader;\n showMoveButtons?: boolean;\n showRemoveButton?: boolean;\n showTitle?: boolean;\n content?: string | null | undefined;\n replace?: boolean | null | undefined;\n widgets?: PerseusWidgetsMap | null | undefined;\n images?: ImageDict | null | undefined;\n isLast: boolean;\n isFirst: boolean;\n onMove: (direction: number) => unknown;\n onRemove: () => unknown;\n onChange: ChangeHandler;\n __type?: \"hint\";\n};\n\n/* Renders a hint editor box\n *\n * This includes:\n * ~ A \"Hint\" title\n * ~ the textarea for the hint\n * ~ the \"remove this hint\" box\n * ~ the move hint up/down arrows\n */\nclass HintEditor extends React.Component<HintEditorProps> {\n static defaultProps: {\n className: string;\n content: string;\n replace: boolean;\n showMoveButtons: boolean;\n showRemoveButton: boolean;\n showTitle: boolean;\n } = {\n className: \"\",\n content: \"\",\n replace: false,\n showMoveButtons: true,\n showTitle: true,\n showRemoveButton: true,\n };\n\n editor = React.createRef<Editor>();\n\n handleChange: (e: React.ChangeEvent<HTMLInputElement>) => void = (\n e: React.ChangeEvent<HTMLInputElement>,\n ) => {\n this.props.onChange({replace: e.target.checked});\n };\n\n focus: () => void = () => {\n this.editor.current?.focus();\n };\n\n getSaveWarnings: () => any = () => {\n return this.editor.current?.getSaveWarnings();\n };\n\n serialize: (options?: any) => any = (options: any) => {\n return this.editor.current?.serialize(options);\n };\n\n render(): React.ReactNode {\n return (\n <div className={\"perseus-hint-editor \" + this.props.className}>\n {this.props.showTitle && <div className=\"pod-title\">Hint</div>}\n <Editor\n ref={this.editor}\n // Using the AssessmentItem content ID as the key\n // ensures that when the user navigates to another\n // item in the Sidebar, the question editor is\n // re-rendered by React.\n key={this.props.itemId}\n apiOptions={this.props.apiOptions}\n widgets={this.props.widgets || undefined}\n content={this.props.content || undefined}\n images={this.props.images}\n replace={this.props.replace}\n placeholder=\"Type your hint here...\"\n imageUploader={this.props.imageUploader}\n onChange={this.props.onChange}\n />\n <div className=\"hint-controls-container clearfix\">\n {this.props.showMoveButtons && (\n <span className=\"reorder-hints\">\n <button\n type=\"button\"\n className={this.props.isLast ? \"hidden\" : \"\"}\n onClick={_.partial(this.props.onMove, 1)}\n >\n <InlineIcon {...iconCircleArrowDown} />\n </button>{\" \"}\n <button\n type=\"button\"\n className={this.props.isFirst ? \"hidden\" : \"\"}\n onClick={_.partial(this.props.onMove, -1)}\n >\n <InlineIcon {...iconCircleArrowUp} />\n </button>{\" \"}\n {this.props.isLast && (\n <InfoTip>\n <p>\n The last hint is automatically bolded.\n </p>\n </InfoTip>\n )}\n </span>\n )}\n <input\n type=\"checkbox\"\n // @ts-expect-error - TS2322 - Type 'boolean | null | undefined' is not assignable to type 'boolean | undefined'.\n checked={this.props.replace}\n onChange={this.handleChange}\n />\n Replace previous hint\n {this.props.showRemoveButton && (\n <button\n type=\"button\"\n className=\"remove-hint simple-button orange\"\n onClick={this.props.onRemove}\n >\n <InlineIcon {...iconTrash} />\n Remove this hint{\" \"}\n </button>\n )}\n </div>\n </div>\n );\n }\n}\n\ntype CombinedHintEditorProps = {\n itemId?: string;\n apiOptions?: APIOptions;\n deviceType: DeviceType;\n imageUploader?: ImageUploader;\n highlightLint?: boolean;\n isLast: boolean;\n isFirst: boolean;\n hint: Hint;\n pos: number; // position,\n contentPaths: ReadonlyArray<string>;\n // URL of the route to show on initial load of the preview frames.\n previewURL: string;\n onMove: (direction: number) => unknown;\n onRemove: () => unknown;\n onChange: ChangeHandler;\n};\n\n/* A single hint-row containing a hint editor and preview */\nclass CombinedHintEditor extends React.Component<CombinedHintEditorProps> {\n static defaultProps = {\n highlightLint: false,\n };\n\n editor = React.createRef<HintEditor>();\n frame = React.createRef<IframeContentRenderer>();\n\n componentDidMount() {\n this.updatePreview();\n }\n\n componentDidUpdate() {\n this.updatePreview();\n }\n\n updatePreview = () => {\n const shouldBold =\n this.props.isLast && !/\\*\\*/.test(this.props.hint.content);\n\n this.frame.current?.sendNewData({\n type: \"hint\",\n data: {\n hint: this.props.hint,\n bold: shouldBold,\n pos: this.props.pos,\n apiOptions: this.props.apiOptions,\n linterContext: {\n contentType: \"hint\",\n highlightLint: this.props.highlightLint,\n paths: this.props.contentPaths,\n },\n },\n });\n };\n\n getSaveWarnings = () => {\n return this.editor.current?.getSaveWarnings();\n };\n\n serialize = (options: any) => {\n return this.editor.current?.serialize(options);\n };\n\n focus = () => {\n this.editor.current?.focus();\n };\n\n render(): React.ReactNode {\n const isMobile =\n this.props.deviceType === \"phone\" ||\n this.props.deviceType === \"tablet\";\n return (\n <div\n className={\n \"perseus-combined-hint-editor \" + \"perseus-editor-row\"\n }\n >\n <div className=\"perseus-editor-left-cell\">\n <HintEditor\n ref={this.editor}\n itemId={this.props.itemId}\n isFirst={this.props.isFirst}\n isLast={this.props.isLast}\n widgets={this.props.hint.widgets}\n content={this.props.hint.content}\n images={this.props.hint.images}\n replace={this.props.hint.replace}\n imageUploader={this.props.imageUploader}\n onChange={this.props.onChange}\n onRemove={this.props.onRemove}\n onMove={this.props.onMove}\n apiOptions={this.props.apiOptions}\n />\n </div>\n <div className=\"perseus-editor-right-cell\">\n <DeviceFramer\n deviceType={this.props.deviceType}\n nochrome={true}\n >\n <IframeContentRenderer\n ref={this.frame}\n datasetKey=\"mobile\"\n datasetValue={isMobile}\n seamless={true}\n url={this.props.previewURL}\n />\n </DeviceFramer>\n </div>\n </div>\n );\n }\n}\n\ntype CombinedHintsEditorProps = {\n apiOptions?: APIOptions;\n deviceType: DeviceType;\n imageUploader?: ImageUploader;\n highlightLint?: boolean;\n hints: ReadonlyArray<Hint>;\n // URL of the route to show on initial load of the preview frames.\n previewURL: string;\n onChange: ChangeHandler;\n // The content ID of the AssessmentItem being edited. It may not be set\n // for non-content library exercise questions.\n itemId?: string;\n};\n\n/* The entire hints editing/preview area\n *\n * Includes:\n * ~ All the hint edit boxes, move and remove buttons\n * ~ All the hint previews\n * ~ The \"add a hint\" button\n */\nclass CombinedHintsEditor extends React.Component<CombinedHintsEditorProps> {\n static HintEditor: typeof HintEditor = HintEditor;\n\n static defaultProps: {\n highlightLint: boolean;\n hints: ReadonlyArray<any>;\n onChange: () => void;\n } = {\n onChange: () => {},\n hints: [],\n highlightLint: false,\n };\n\n handleHintChange: (\n i: number,\n newProps: CombinedHintsEditorProps,\n cb: () => unknown,\n silent: boolean,\n ) => void = (\n i: number,\n newProps: CombinedHintsEditorProps,\n cb: () => unknown,\n silent: boolean,\n ) => {\n // TODO(joel) - lens\n const hints = [...this.props.hints];\n hints[i] = _.extend(\n {},\n this.serializeHint(i, {keepDeletedWidgets: true}),\n newProps,\n );\n\n this.props.onChange({hints: hints}, cb, silent);\n };\n\n handleHintRemove: (i: number) => void = (i: number) => {\n // eslint-disable-next-line no-alert\n if (!confirm(\"Are you sure you want to delete this hint?\")) {\n return;\n }\n\n const hints = [...this.props.hints];\n hints.splice(i, 1);\n this.props.onChange({hints: hints});\n };\n\n handleHintMove: (i: number, dir: number) => void = (\n i: number,\n dir: number,\n ) => {\n const hints = [...this.props.hints];\n const hint = hints.splice(i, 1)[0];\n hints.splice(i + dir, 0, hint);\n this.props.onChange({hints: hints}, () => {\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.\n this.refs[\"hintEditor\" + (i + dir)].focus();\n });\n };\n\n addHint: () => void = () => {\n const hints = this.props.hints.concat([\n {content: \"\", images: {}, widgets: {}},\n ]);\n this.props.onChange({hints: hints}, () => {\n const i = hints.length - 1;\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'ReactInstance'.\n this.refs[\"hintEditor\" + i].focus();\n });\n };\n\n getSaveWarnings: () => any = () => {\n return _.chain(this.props.hints)\n .map((hint, i) => {\n return _.map(\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'getSaveWarnings' does not exist on type 'ReactInstance'.\n this.refs[\"hintEditor\" + i].getSaveWarnings(),\n (issue) => \"Hint \" + (i + 1) + \": \" + issue,\n );\n })\n .flatten(true)\n .value();\n };\n\n serialize: (options?: any) => ReadonlyArray<string> = (options: any) => {\n return this.props.hints.map((hint, i) => {\n return this.serializeHint(i, options);\n });\n };\n\n serializeHint: (index: number, options?: any) => string = (\n index: number,\n options: any,\n ): string => {\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'serialize' does not exist on type 'ReactInstance'.\n return this.refs[\"hintEditor\" + index].serialize(options);\n };\n\n render(): React.ReactNode {\n const {itemId, hints} = this.props;\n const hintElems = _.map(\n hints,\n function (hint, i) {\n return (\n <CombinedHintEditor\n ref={\"hintEditor\" + i}\n key={\"hintEditor\" + i}\n isFirst={i === 0}\n isLast={i + 1 === hints.length}\n itemId={itemId}\n hint={hint}\n pos={i}\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n imageUploader={this.props.imageUploader}\n // eslint-disable-next-line react/jsx-no-bind\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onChange={this.handleHintChange.bind(this, i)}\n // eslint-disable-next-line react/jsx-no-bind\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onRemove={this.handleHintRemove.bind(this, i)}\n // eslint-disable-next-line react/jsx-no-bind\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onMove={this.handleHintMove.bind(this, i)}\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n deviceType={this.props.deviceType}\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n apiOptions={this.props.apiOptions}\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n highlightLint={this.props.highlightLint}\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n previewURL={this.props.previewURL}\n // TODO(CP-4838): what should be passed here?\n contentPaths={[]}\n />\n );\n },\n this,\n );\n\n return (\n <div className=\"perseus-hints-editor perseus-editor-table\">\n {hintElems}\n <div className=\"perseus-editor-row\">\n <div className=\"add-hint-container perseus-editor-left-cell\">\n <button\n type=\"button\"\n className=\"add-hint simple-button orange\"\n onClick={this.addHint}\n >\n <InlineIcon {...iconPlus} /> Add a hint\n </button>\n </div>\n </div>\n </div>\n );\n /* eslint-enable max-len */\n }\n}\n\nexport default CombinedHintsEditor;\n","import {components} from \"@khanacademy/perseus\";\nimport {ItemExtras} from \"@khanacademy/perseus-core\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport type {PerseusAnswerArea} from \"@khanacademy/perseus-core\";\n\nconst {InfoTip} = components;\n\ntype Props = PerseusAnswerArea & {\n onChange: (props: Partial<PerseusAnswerArea>) => void;\n};\n\nclass ItemExtrasEditor extends React.Component<Props> {\n static defaultProps: PerseusAnswerArea = {\n calculator: false,\n chi2Table: false,\n financialCalculatorMonthlyPayment: false,\n financialCalculatorTotalAmount: false,\n financialCalculatorTimeToPayOff: false,\n periodicTable: false,\n periodicTableWithKey: false,\n tTable: false,\n zTable: false,\n };\n\n shouldShowFinancialCalculatorOptions() {\n return (\n this.props.financialCalculatorMonthlyPayment ||\n this.props.financialCalculatorTotalAmount ||\n this.props.financialCalculatorTimeToPayOff\n );\n }\n\n serialize: () => PerseusAnswerArea = () => {\n const data = {...ItemExtrasEditor.defaultProps};\n for (const key of ItemExtras) {\n data[key] = !!this.props[key];\n }\n return data;\n };\n\n render(): React.ReactNode {\n return (\n <div className=\"perseus-answer-editor\">\n <div className=\"perseus-answer-options\">\n <ItemExtraCheckbox\n label=\"Show calculator\"\n infoTip=\"Use the calculator when completing difficult calculations is NOT the intent of the question. DON’T use the calculator when testing the student’s ability to complete different types of computations.\"\n checked={this.props.calculator}\n onChange={(newCheckedState) => {\n this.props.onChange({\n calculator: newCheckedState,\n });\n }}\n />\n\n <ItemExtraCheckbox\n label=\"Show financial calculator\"\n infoTip=\"This provides the student with the ability to view a financial calculator, e.g., for answering financial questions. Once checked, requires at least one of the three options below to be checked.\"\n checked={this.shouldShowFinancialCalculatorOptions()}\n onChange={(newCheckedState) => {\n // If the financial calculator is unchecked,\n // these need to be reset. All checked by\n // default.\n this.props.onChange({\n financialCalculatorMonthlyPayment:\n newCheckedState,\n financialCalculatorTotalAmount: newCheckedState,\n financialCalculatorTimeToPayOff:\n newCheckedState,\n });\n }}\n />\n\n {this.shouldShowFinancialCalculatorOptions() && (\n <>\n <ItemExtraCheckbox\n label=\"Include monthly payment\"\n infoTip=\"This provides the student with the ability to view a monthly payment calculator; e.g., given a loan amount, interest rate, and term, what is the monthly payment?\"\n checked={\n this.props.financialCalculatorMonthlyPayment\n }\n onChange={(newCheckedState) => {\n this.props.onChange({\n financialCalculatorMonthlyPayment:\n newCheckedState,\n });\n }}\n indent\n />\n <ItemExtraCheckbox\n label=\"Include total amount\"\n infoTip=\"This provides the student with the ability to view a total amount calculator; e.g., given a monthly payment, interest rate, and term, what is the total amount to be paid?\"\n checked={\n this.props.financialCalculatorTotalAmount\n }\n onChange={(newCheckedState) => {\n this.props.onChange({\n financialCalculatorTotalAmount:\n newCheckedState,\n });\n }}\n indent\n />\n <ItemExtraCheckbox\n label=\"Include time-to-pay-off\"\n infoTip=\"This provides the student with the ability to view a time to pay off calculator; e.g., given a loan amount, interest rate, and monthly payment, how long will it take to pay off the loan?\"\n checked={\n this.props.financialCalculatorTimeToPayOff\n }\n onChange={(newCheckedState) => {\n this.props.onChange({\n financialCalculatorTimeToPayOff:\n newCheckedState,\n });\n }}\n indent\n />\n </>\n )}\n\n <ItemExtraCheckbox\n label=\"Show periodic table\"\n infoTip=\"This provides the student with the ability to view a periodic table of the elements, e.g., for answering chemistry questions.\"\n checked={this.props.periodicTable}\n onChange={(newCheckedState) => {\n this.props.onChange({\n periodicTable: newCheckedState,\n // If the periodic table is unchecked,\n // this needs to be reset. If table is\n // checked, it should already be false.\n periodicTableWithKey: false,\n });\n }}\n />\n\n {this.props.periodicTable && (\n <ItemExtraCheckbox\n label=\"Include key/legend with periodic table\"\n infoTip=\"Include a key for HS courses; omit for AP chemistry.\"\n checked={this.props.periodicTableWithKey}\n onChange={(newCheckedState) => {\n this.props.onChange({\n periodicTableWithKey: newCheckedState,\n });\n }}\n indent\n />\n )}\n\n <ItemExtraCheckbox\n label=\"Show z table (statistics)\"\n infoTip=\"This provides the student with the ability to view a table of critical values for the z distribution, e.g. for answering statistics questions.\"\n checked={this.props.zTable}\n onChange={(newCheckedState) => {\n this.props.onChange({\n zTable: newCheckedState,\n });\n }}\n />\n\n <ItemExtraCheckbox\n label=\"Show t table (statistics)\"\n infoTip=\"This provides the student with the ability to view a table of critical values for the Student's t distribution, e.g. for answering statistics questions.\"\n checked={this.props.tTable}\n onChange={(newCheckedState) => {\n this.props.onChange({\n tTable: newCheckedState,\n });\n }}\n />\n\n <ItemExtraCheckbox\n label=\"Show chi-squared table (statistics)\"\n infoTip=\"This provides the student with the ability to view a table of critical values for the chi-squared distribution, e.g. for answering statistics questions.\"\n checked={this.props.chi2Table}\n onChange={(newCheckedState) => {\n this.props.onChange({\n chi2Table: newCheckedState,\n });\n }}\n />\n </div>\n </div>\n );\n }\n}\n\nconst ItemExtraCheckbox = (props: {\n label: string;\n infoTip: string;\n checked: boolean;\n onChange: (newCheckedState: boolean) => void;\n indent?: boolean;\n}) => (\n <View style={[styles.checkbox, props.indent ? styles.indented : undefined]}>\n <Checkbox\n label={\n <View style={{flexDirection: \"row\"}}>\n {props.label} <InfoTip>{props.infoTip}</InfoTip>\n </View>\n }\n checked={props.checked}\n onChange={(newCheckedState) => props.onChange(newCheckedState)}\n />\n </View>\n);\n\nconst styles = StyleSheet.create({\n indented: {\n marginInlineStart: spacing.large_24,\n },\n});\n\nexport default ItemExtrasEditor;\n","import {itemDataVersion} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport DeviceFramer from \"./components/device-framer\";\nimport Editor from \"./editor\";\nimport IframeContentRenderer from \"./iframe-content-renderer\";\nimport ItemExtrasEditor from \"./item-extras-editor\";\n\nimport type {\n APIOptions,\n ImageUploader,\n ChangeHandler,\n DeviceType,\n} from \"@khanacademy/perseus\";\nimport type {PerseusRenderer} from \"@khanacademy/perseus-core\";\n\nconst ITEM_DATA_VERSION = itemDataVersion;\n\ntype Props = {\n apiOptions?: APIOptions;\n deviceType?: DeviceType;\n widgetIsOpen?: boolean;\n gradeMessage?: string;\n imageUploader?: ImageUploader;\n wasAnswered?: boolean;\n question?: PerseusRenderer;\n answerArea?: any;\n // URL of the route to show on initial load of the preview frames.\n previewURL: string;\n onChange: ChangeHandler;\n // The content ID of the AssessmentItem being edited. It may not be set\n // for non-content library exercise questions.\n itemId?: string;\n};\n\nclass ItemEditor extends React.Component<Props> {\n static defaultProps: {\n answerArea: Record<any, any>;\n onChange: () => void;\n question: Record<any, any>;\n } = {\n onChange: () => {},\n question: {},\n answerArea: {},\n };\n\n frame = React.createRef<IframeContentRenderer>();\n questionEditor = React.createRef<Editor>();\n itemExtrasEditor = React.createRef<ItemExtrasEditor>();\n\n // Notify the parent that the question or answer area has been updated.\n updateProps: ChangeHandler = (newProps, cb, silent) => {\n const props = _(this.props).pick(\"question\", \"answerArea\");\n\n this.props.onChange(_(props).extend(newProps), cb, silent);\n };\n\n triggerPreviewUpdate: (newData?: any) => void = (newData: any) => {\n this.frame.current?.sendNewData(newData);\n };\n\n handleEditorChange: ChangeHandler = (newProps, cb, silent) => {\n const question = _.extend({}, this.props.question, newProps);\n this.updateProps({question}, cb, silent);\n };\n\n handleItemExtrasChange: ChangeHandler = (newProps, cb, silent) => {\n const answerArea = _.extend({}, this.props.answerArea, newProps);\n this.updateProps({answerArea}, cb, silent);\n };\n\n getSaveWarnings: () => any = () => {\n return this.questionEditor.current?.getSaveWarnings();\n };\n\n serialize: (options?: any) => {\n answerArea: any;\n itemDataVersion: {\n major: number;\n minor: number;\n };\n question: any;\n } = (options: any) => {\n return {\n question: this.questionEditor.current?.serialize(options),\n answerArea: this.itemExtrasEditor.current?.serialize(),\n itemDataVersion: ITEM_DATA_VERSION,\n };\n };\n\n render(): React.ReactNode {\n const isMobile =\n this.props.deviceType === \"phone\" ||\n this.props.deviceType === \"tablet\";\n return (\n <div className=\"perseus-editor-table\">\n <div className=\"perseus-editor-row perseus-question-container\">\n <div className=\"perseus-editor-left-cell\">\n <div className=\"pod-title\">Question</div>\n <Editor\n ref={this.questionEditor}\n // Using the AssessmentItem content ID as the key\n // ensures that when the user navigates to another\n // item in the Sidebar, the question editor is\n // re-rendered by React.\n key={this.props.itemId}\n placeholder=\"Type your question here...\"\n className=\"perseus-question-editor\"\n imageUploader={this.props.imageUploader}\n onChange={this.handleEditorChange}\n apiOptions={this.props.apiOptions}\n showWordCount={true}\n widgetIsOpen={this.props.widgetIsOpen}\n {...this.props.question}\n />\n </div>\n\n <div className=\"perseus-editor-right-cell\">\n <div id=\"problemarea\">\n <DeviceFramer\n deviceType={this.props.deviceType}\n nochrome={true}\n >\n <IframeContentRenderer\n ref={this.frame}\n key={this.props.deviceType}\n datasetKey=\"mobile\"\n datasetValue={isMobile}\n seamless={true}\n url={this.props.previewURL}\n />\n </DeviceFramer>\n <div\n id=\"hintsarea\"\n className=\"hintsarea\"\n style={{display: \"none\"}}\n />\n </div>\n </div>\n </div>\n\n <div className=\"perseus-editor-row perseus-answer-container\">\n <div className=\"perseus-editor-left-cell\">\n <div className=\"pod-title\">Question extras</div>\n <ItemExtrasEditor\n ref={this.itemExtrasEditor}\n onChange={this.handleItemExtrasChange}\n {...this.props.answerArea}\n />\n </div>\n\n <div className=\"perseus-editor-right-cell\" />\n </div>\n </div>\n );\n }\n}\n\nexport default ItemEditor;\n","import {components, ApiOptions, ClassNames} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport JsonEditor from \"./components/json-editor\";\nimport ViewportResizer from \"./components/viewport-resizer\";\nimport CombinedHintsEditor from \"./hint-editor\";\nimport ItemEditor from \"./item-editor\";\n\nimport type {\n APIOptions,\n APIOptionsWithDefaults,\n ChangeHandler,\n DeviceType,\n ImageUploader,\n} from \"@khanacademy/perseus\";\nimport type {Hint, PerseusItem, Version} from \"@khanacademy/perseus-core\";\n\nconst {HUD} = components;\n\ntype Props = {\n apiOptions?: APIOptions;\n answerArea?: any; // related to the question,\n // TODO(CP-4838): Should this be a required prop?\n contentPaths?: ReadonlyArray<string>;\n // \"Power user\" mode. Shows the raw JSON of the question.\n developerMode: boolean;\n // Source HTML for the iframe to render\n frameSource: string;\n hints?: ReadonlyArray<Hint>; // related to the question,\n // A function which takes a file object (guaranteed to be an image) and\n // a callback, then calls the callback with the url where the image\n // will be hosted. Image drag and drop is disabled when imageUploader\n // is null.\n imageUploader?: ImageUploader;\n // Part of the question\n itemDataVersion?: Version;\n // The content ID of the AssessmentItem being edited.\n itemId: string;\n // Whether the question is displaying as JSON or if it is\n // showing the editor itself with the rendering\n // Only used in the perseus demos. Consider removing.\n jsonMode: boolean;\n // A function which is called with the new JSON blob of content\n onChange: ChangeHandler;\n onPreviewDeviceChange: (arg1: DeviceType) => unknown;\n previewDevice: DeviceType;\n // A global control to expand/collapse all widget editors on a page.\n widgetsAreOpen?: boolean;\n // Initial value of the question being edited\n question?: any;\n // URL of the route to show on initial load of the preview frames.\n previewURL: string;\n};\n\ntype State = {\n json: PerseusItem;\n gradeMessage: string;\n wasAnswered: boolean;\n highlightLint: boolean;\n widgetsAreOpen: boolean;\n};\n\nclass EditorPage extends React.Component<Props, State> {\n _isMounted: boolean;\n renderer: any;\n\n itemEditor = React.createRef<ItemEditor>();\n hintsEditor = React.createRef<CombinedHintsEditor>();\n\n static defaultProps: {\n developerMode: boolean;\n jsonMode: boolean;\n onChange: () => void;\n } = {\n developerMode: false,\n jsonMode: false,\n onChange: () => {},\n };\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n // @ts-expect-error - TS2322 - Type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, \"hints\" | \"question\" | \"answerArea\" | \"itemDataVersion\">' is not assignable to type 'PerseusJson'.\n json: _.pick(\n this.props,\n \"question\",\n \"answerArea\",\n \"hints\",\n \"itemDataVersion\",\n ),\n gradeMessage: \"\",\n wasAnswered: false,\n highlightLint: true,\n widgetsAreOpen: this.props.widgetsAreOpen ?? true,\n };\n\n this._isMounted = false;\n }\n\n componentDidMount() {\n // TODO(scottgrant): This is a hack to remove the deprecated call to\n // this.isMounted() but is still considered an anti-pattern.\n this._isMounted = true;\n\n this.updateRenderer();\n }\n\n componentDidUpdate() {\n // NOTE: It is required to delay the preview update until after the\n // current frame, to allow for ItemEditor to render its widgets.\n // This then enables to serialize the widgets properties correctly,\n // in order to send data to the preview iframe (IframeContentRenderer).\n // Otherwise, widgets will render in an \"empty\" state in the preview.\n // TODO(jeff, CP-3128): Use Wonder Blocks Timing API\n // eslint-disable-next-line no-restricted-syntax\n setTimeout(() => {\n this.updateRenderer();\n });\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n toggleJsonMode: () => void = () => {\n this.setState(\n {\n json: this.serialize({keepDeletedWidgets: true}),\n },\n () => {\n this.props.onChange({\n jsonMode: !this.props.jsonMode,\n });\n },\n );\n };\n\n updateRenderer() {\n // Some widgets (namely the image widget) like to call onChange before\n // anything has actually been mounted, which causes problems here. We\n // just ensure don't update until we've mounted\n const hasEditor = !this.props.developerMode || !this.props.jsonMode;\n if (!this._isMounted || !hasEditor) {\n return;\n }\n\n const touch =\n this.props.previewDevice === \"phone\" ||\n this.props.previewDevice === \"tablet\";\n const deviceBasedApiOptions: APIOptionsWithDefaults = {\n ...this.getApiOptions(),\n customKeypad: touch,\n isMobile: touch,\n };\n\n this.itemEditor.current?.triggerPreviewUpdate({\n type: \"question\",\n data: _({\n item: this.serialize(),\n apiOptions: deviceBasedApiOptions,\n initialHintsVisible: 0,\n device: this.props.previewDevice,\n linterContext: {\n contentType: \"exercise\",\n highlightLint: this.state.highlightLint,\n // TODO(CP-4838): is it okay to use [] as a default?\n paths: this.props.contentPaths || [],\n },\n reviewMode: true,\n legacyPerseusLint: this.itemEditor.current?.getSaveWarnings(),\n }).extend(\n _(this.props).pick(\n \"workAreaSelector\",\n \"solutionAreaSelector\",\n \"hintsAreaSelector\",\n \"problemNum\",\n ),\n ),\n });\n }\n\n getApiOptions(): APIOptionsWithDefaults {\n return {\n ...ApiOptions.defaults,\n ...this.props.apiOptions,\n };\n }\n\n getSaveWarnings(): any {\n const issues1 = this.itemEditor.current?.getSaveWarnings();\n const issues2 = this.hintsEditor.current?.getSaveWarnings();\n return issues1.concat(issues2);\n }\n\n serialize(options?: {keepDeletedWidgets?: boolean}): any | PerseusItem {\n if (this.props.jsonMode) {\n return this.state.json;\n }\n return _.extend(this.itemEditor.current?.serialize(options), {\n hints: this.hintsEditor.current?.serialize(options),\n });\n }\n\n handleChange: ChangeHandler = (toChange, cb, silent) => {\n const newProps = _(this.props).pick(\"question\", \"hints\", \"answerArea\");\n _(newProps).extend(toChange);\n this.props.onChange(newProps, cb, silent);\n };\n\n changeJSON: (newJson: PerseusItem) => void = (newJson: PerseusItem) => {\n this.setState({\n json: newJson,\n });\n this.props.onChange(newJson);\n };\n\n render(): React.ReactNode {\n let className = \"framework-perseus\";\n\n const touch =\n this.props.previewDevice === \"phone\" ||\n this.props.previewDevice === \"tablet\";\n const deviceBasedApiOptions: APIOptionsWithDefaults = {\n ...this.getApiOptions(),\n customKeypad: touch,\n isMobile: touch,\n };\n\n if (deviceBasedApiOptions.isMobile) {\n className += \" \" + ClassNames.MOBILE;\n }\n\n return (\n <div id=\"perseus\" className={className}>\n <div style={{marginBottom: 10}}>\n {this.props.developerMode && (\n <span>\n <label>\n {\" \"}\n Developer JSON Mode:{\" \"}\n <input\n type=\"checkbox\"\n checked={this.props.jsonMode}\n onChange={this.toggleJsonMode}\n />\n </label>{\" \"}\n </span>\n )}\n\n {!this.props.jsonMode && (\n <ViewportResizer\n deviceType={this.props.previewDevice}\n onViewportSizeChanged={\n this.props.onPreviewDeviceChange\n }\n />\n )}\n\n {!this.props.jsonMode && (\n <HUD\n message=\"Style warnings\"\n enabled={this.state.highlightLint}\n onClick={() => {\n this.setState({\n highlightLint: !this.state.highlightLint,\n });\n }}\n />\n )}\n </div>\n\n {this.props.developerMode && this.props.jsonMode && (\n <div>\n <JsonEditor\n multiLine={true}\n value={this.state.json}\n onChange={this.changeJSON}\n />\n </div>\n )}\n\n {(!this.props.developerMode || !this.props.jsonMode) && (\n <ItemEditor\n ref={this.itemEditor}\n itemId={this.props.itemId}\n question={this.props.question}\n answerArea={this.props.answerArea}\n imageUploader={this.props.imageUploader}\n onChange={this.handleChange}\n wasAnswered={this.state.wasAnswered}\n gradeMessage={this.state.gradeMessage}\n deviceType={this.props.previewDevice}\n widgetIsOpen={this.state.widgetsAreOpen}\n apiOptions={deviceBasedApiOptions}\n previewURL={this.props.previewURL}\n />\n )}\n\n {(!this.props.developerMode || !this.props.jsonMode) && (\n <CombinedHintsEditor\n ref={this.hintsEditor}\n itemId={this.props.itemId}\n hints={this.props.hints}\n imageUploader={this.props.imageUploader}\n onChange={this.handleChange}\n deviceType={this.props.previewDevice}\n apiOptions={deviceBasedApiOptions}\n previewURL={this.props.previewURL}\n highlightLint={this.state.highlightLint}\n />\n )}\n </div>\n );\n }\n}\n\nexport default EditorPage;\n","import {\n KeypadContext,\n StatefulKeypadContextProvider,\n} from \"@khanacademy/keypad-context\";\nimport {MobileKeypad} from \"@khanacademy/math-input\";\nimport {\n Renderer,\n usePerseusI18n,\n type APIOptions,\n type DeviceType,\n} from \"@khanacademy/perseus\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport {lintGutterWidth} from \"./styles/constants\";\n\nimport type {PerseusRenderer} from \"@khanacademy/perseus-core\";\nimport type {LinterContextProps} from \"@khanacademy/perseus-linter\";\n\n/**\n * The `ContentPreview` component provides a simple preview system for Perseus\n * Content. Due to how Persus styles are built, the preview styling matches the\n * current device based on the viewport width (using `@media` queries for\n * `min-width` and `max-width`).\n *\n * The preview will render the mobile variant (styling and layout) when the\n * `previewDevice` is phone or tablet. Note that the styling cannot be matched\n * 100% due to the above `@media` query limitation.\n */\nfunction ContentPreview({\n question,\n apiOptions,\n seamless,\n linterContext,\n legacyPerseusLint,\n previewDevice,\n}: {\n question?: PerseusRenderer;\n apiOptions?: APIOptions;\n seamless?: boolean;\n linterContext?: LinterContextProps;\n legacyPerseusLint?: ReadonlyArray<string>;\n previewDevice: DeviceType;\n}) {\n const i18n = usePerseusI18n();\n const isMobile = previewDevice !== \"desktop\";\n\n const className = isMobile ? \"perseus-mobile\" : \"\";\n\n return (\n <View\n className={`framework-perseus ${className}`}\n style={[styles.container, !seamless ? styles.gutter : undefined]}\n >\n <StatefulKeypadContextProvider>\n <KeypadContext.Consumer>\n {({setKeypadActive, keypadElement, setKeypadElement}) => (\n <>\n <Renderer\n strings={i18n.strings}\n apiOptions={{...apiOptions, isMobile}}\n keypadElement={keypadElement}\n linterContext={linterContext}\n legacyPerseusLint={legacyPerseusLint}\n {...question}\n />\n\n <MobileKeypad\n onAnalyticsEvent={() => Promise.resolve()}\n onDismiss={() => setKeypadActive(false)}\n onElementMounted={setKeypadElement}\n />\n </>\n )}\n </KeypadContext.Consumer>\n </StatefulKeypadContextProvider>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n padding: spacing.xxxSmall_4,\n containerType: \"inline-size\",\n containerName: \"perseus-root\",\n },\n gutter: {marginRight: lintGutterWidth},\n});\n\nexport default ContentPreview;\n","import {\n components,\n ApiOptions,\n Categorizer as CategorizerWidget,\n Changeable,\n EditorJsonify,\n} from \"@khanacademy/perseus\";\nimport {categorizerLogic} from \"@khanacademy/perseus-core\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport type {CategorizerDefaultWidgetOptions} from \"@khanacademy/perseus-core\";\n\nconst {TextListEditor} = components;\nconst Categorizer = CategorizerWidget.widget;\n\ntype Props = any;\n\nclass CategorizerEditor extends React.Component<Props> {\n static propTypes = {\n ...Changeable.propTypes,\n apiOptions: ApiOptions.propTypes,\n items: PropTypes.arrayOf(PropTypes.string),\n categories: PropTypes.arrayOf(PropTypes.string),\n values: PropTypes.arrayOf(PropTypes.number),\n randomizeItems: PropTypes.bool,\n };\n\n static widgetName = \"categorizer\" as const;\n\n static defaultProps: CategorizerDefaultWidgetOptions =\n categorizerLogic.defaultWidgetOptions;\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n return (\n <div>\n <div className=\"perseus-widget-row\">\n <Checkbox\n label=\"Randomize item order\"\n checked={this.props.randomizeItems}\n onChange={(value) => {\n this.props.onChange({randomizeItems: value});\n }}\n />\n </div>\n Categories:\n <TextListEditor\n options={this.props.categories}\n onChange={(cat) => {\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 2.\n this.change(\"categories\", cat);\n }}\n layout=\"horizontal\"\n />\n Items:\n <TextListEditor\n options={this.props.items}\n onChange={(items) => {\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({\n items: items,\n // TODO(eater): This truncates props.values so there\n // are never more correct answers than items,\n // ensuring the widget is possible to answer\n // correctly. It doesn't necessarly keep each\n // answer with its corresponding item if an item\n // is deleted from the middle. Inconvenient, but\n // it's at least possible for content creators to\n // catch and fix.\n values: _.first(this.props.values, items.length),\n });\n }}\n layout=\"vertical\"\n />\n {/* There are a bunch of props that renderer.jsx passes to each widget\n via widget-container.jsx that we aren't passing to Categorizer here.\n See perseus-all-package/types.js#WidgetProps for details. */}\n {/* @ts-expect-error - TS2769 - No overload matches this call. */}\n <Categorizer\n apiOptions={this.props.apiOptions}\n items={this.props.items}\n categories={this.props.categories}\n values={this.props.values}\n onChange={(newProps) => {\n this.props.onChange(newProps);\n }}\n // eslint-disable-next-line react/jsx-no-bind\n trackInteraction={function () {}}\n />\n </div>\n );\n }\n}\n\nexport default CategorizerEditor;\n","import * as React from \"react\";\n\nimport type {CSSProperties} from \"aphrodite\";\n\ntype Props = {\n value: string;\n onChange: (arg1: string) => void;\n className?: string;\n style?: CSSProperties;\n};\n\ntype State = {\n value: string;\n};\n\n/* You know when you want to propagate input to a parent...\n * but then that parent does something with the input...\n * then changing the props of the input...\n * on every keystroke...\n * so if some input is invalid or incomplete...\n * the input gets reset or otherwise effed...\n *\n * This is the solution.\n *\n * Enough melodrama. Its an input that only sends changes\n * to its parent on blur.\n */\n// eslint-disable-next-line react/no-unsafe\nclass BlurInput extends React.Component<Props, State> {\n input = React.createRef<HTMLInputElement>();\n\n constructor(props: Props) {\n super(props);\n this.state = {value: this.props.value};\n }\n\n // eslint-disable-next-line react/no-unsafe\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n this.setState({value: nextProps.value});\n }\n\n handleChange: (e: any) => void = (e) => {\n this.setState({value: e.target.value});\n };\n\n handleBlur: (e: any) => void = (e) => {\n this.props.onChange(e.target.value);\n };\n\n focus() {\n this.input.current?.focus();\n }\n\n render(): React.ReactNode {\n return (\n <input\n ref={this.input}\n className={this.props.className}\n style={this.props.style}\n type=\"text\"\n value={this.state.value}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n />\n );\n }\n}\n\nexport default BlurInput;\n","/* eslint-disable no-useless-escape */\n/**\n * This editor is for embedding Khan Academy CS programs.\n */\n\nimport {\n components,\n Changeable,\n Dependencies,\n EditorJsonify,\n Log,\n} from \"@khanacademy/perseus\";\nimport {csProgramLogic, Errors} from \"@khanacademy/perseus-core\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport $ from \"jquery\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport BlurInput from \"../components/blur-input\";\n\nimport type {CSProgramDefaultWidgetOptions} from \"@khanacademy/perseus-core\";\n\ntype ChangeFn = typeof Changeable.change;\n\nconst {InfoTip} = components;\n\nconst DEFAULT_WIDTH = 400;\nconst DEFAULT_HEIGHT = 400;\n\n/**\n * This is used for editing a name/value pair.\n */\nclass PairEditor extends React.Component<any> {\n static propTypes = {\n ...Changeable.propTypes,\n name: PropTypes.string,\n value: PropTypes.string,\n };\n\n static defaultProps = {\n name: \"\",\n value: \"\",\n };\n\n change: ChangeFn = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n return (\n <fieldset className=\"pair-editor\">\n <label>\n Name:{\" \"}\n <BlurInput\n value={this.props.name}\n onChange={this.change(\"name\")}\n />\n </label>\n <label>\n {\" \"}\n Value:{\" \"}\n <BlurInput\n value={this.props.value}\n onChange={this.change(\"value\")}\n />\n </label>\n </fieldset>\n );\n }\n}\n\n/**\n * This is used for editing a set of name/value pairs.\n */\nclass PairsEditor extends React.Component<any> {\n static propTypes = {\n ...Changeable.propTypes,\n pairs: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n value: PropTypes.string,\n }),\n ).isRequired,\n };\n\n change: ChangeFn = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n handlePairChange = (pairIndex, pair: any) => {\n // If they're both non empty, add a new one\n const pairs = this.props.pairs.slice();\n pairs[pairIndex] = pair;\n\n const lastPair = pairs[pairs.length - 1];\n if (lastPair.name && lastPair.value) {\n pairs.push({name: \"\", value: \"\"});\n }\n this.change(\"pairs\", pairs);\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const editors = _.map(this.props.pairs, (pair, i) => {\n return (\n <PairEditor\n key={i}\n name={pair.name}\n value={pair.value}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.handlePairChange.bind(this, i)}\n />\n );\n });\n return <div>{editors}</div>;\n }\n}\n\nconst KA_PROGRAM_URL = /khanacademy\\.org\\/computer-programming\\/[^\\/]+\\/(\\d+)/;\n\n/**\n * Given a program URL from the site, extract its program ID.\n * If the input does not match the known URL patterns, it is assumed to be\n * a program ID.\n */\nfunction isolateProgramID(programUrl: string) {\n const match = KA_PROGRAM_URL.exec(programUrl);\n if (match) {\n programUrl = match[1];\n }\n\n return programUrl;\n}\n\n/**\n * This is the main editor for this widget, to specify all the options.\n */\nclass CSProgramEditor extends React.Component<any> {\n static propTypes = {\n ...Changeable.propTypes,\n };\n\n static widgetName = \"cs-program\" as const;\n\n static defaultProps: CSProgramDefaultWidgetOptions =\n csProgramLogic.defaultWidgetOptions;\n\n change: (...args: ReadonlyArray<unknown>) => any = (...args) => {\n // @ts-expect-error - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.\n return Changeable.change.apply(this, args);\n };\n\n _handleSettingsChange: (arg1: any) => void = (settings) => {\n this.change({settings: settings.pairs});\n };\n\n _handleProgramIDChange: (arg1: string) => void = (programID) => {\n programID = isolateProgramID(programID);\n const {isDevServer, InitialRequestUrl} = Dependencies.getDependencies();\n\n const host = isDevServer\n ? InitialRequestUrl.origin\n : \"https://www.khanacademy.org\";\n const baseUrl = `${host}/api/internal/scratchpads/${programID}`;\n\n $.getJSON(baseUrl)\n .done((programInfo) => {\n const programType = programInfo.userAuthoredContentType;\n this.change({\n width: programInfo.width,\n height: programInfo.height,\n programID: programID,\n programType: programType,\n });\n })\n .fail((jqxhr, textStatus, error) => {\n Log.error(\n \"Error retrieving scratchpad info for program ID \",\n Errors.TransientService,\n {\n // @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'Error | null | undefined'.\n cause: error,\n loggedMetadata: {\n textStatus,\n programID,\n },\n },\n );\n this.change({\n width: DEFAULT_WIDTH,\n height: DEFAULT_HEIGHT,\n programID: programID,\n programType: null,\n });\n });\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n return (\n <div>\n <label>\n Url or Program ID:{\" \"}\n <BlurInput\n value={this.props.programID}\n onChange={this._handleProgramIDChange}\n />\n </label>\n <br />\n <Checkbox\n label=\"Show Editor\"\n checked={this.props.showEditor}\n onChange={(value) => {\n this.props.onChange({showEditor: value});\n }}\n />\n <InfoTip>\n If you show the editor, you should use the\n &quot;full-width&quot; alignment to make room for the width\n of the editor.\n </InfoTip>\n <br />\n <Checkbox\n label=\"Show Buttons\"\n checked={this.props.showButtons}\n onChange={(value) => {\n this.props.onChange({showButtons: value});\n }}\n />\n <br />\n {/* eslint-disable-next-line jsx-a11y/label-has-associated-control -- TODO(LEMS-2871): Address a11y error */}\n <label>\n Settings:\n <PairsEditor\n name=\"settings\"\n pairs={this.props.settings}\n onChange={this._handleSettingsChange}\n />\n <InfoTip>\n Settings that you add here are available to the program\n as an object returned by <code>Program.settings()</code>\n </InfoTip>\n </label>\n </div>\n );\n }\n}\n\nexport default CSProgramEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\nimport {components, Changeable, EditorJsonify} from \"@khanacademy/perseus\";\nimport {definitionLogic} from \"@khanacademy/perseus-core\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport Editor from \"../editor\";\n\nimport type {DefinitionDefaultWidgetOptions} from \"@khanacademy/perseus-core\";\n\nconst {TextInput} = components;\n\ntype Props = any;\n\nclass DefinitionEditor extends React.Component<Props> {\n static propTypes = {\n ...Changeable.propTypes,\n togglePrompt: PropTypes.string,\n definition: PropTypes.string,\n apiOptions: PropTypes.any,\n };\n\n static widgetName = \"definition\" as const;\n\n static defaultProps: DefinitionDefaultWidgetOptions =\n definitionLogic.defaultWidgetOptions;\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n return (\n <div className=\"perseus-widget-definition-editor\">\n <a\n href=\"https://docs.google.com/document/d/1udaPef4imOfTMhmLDlWq4SM0mxL0r3YHFZE-5J1uGfo\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n Definition style guide\n </a>\n <div className=\"perseus-widget-row\">\n <label>\n Word to be defined:{\" \"}\n <TextInput\n value={this.props.togglePrompt}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"togglePrompt\")}\n placeholder=\"define me\"\n />\n </label>\n </div>\n <div className=\"perseus-widget-row\">\n <Editor\n apiOptions={this.props.apiOptions}\n content={this.props.definition}\n widgetEnabled={false}\n placeholder=\"definition goes here\"\n onChange={(props) => {\n const newProps: Record<string, any> = {};\n if (_.has(props, \"content\")) {\n newProps.definition = props.content;\n }\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change(newProps);\n }}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default DefinitionEditor;\n","import {EditorJsonify} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\n\ntype Props = {\n // Callback for when a widget prop is changed.\n onChange: (options: any) => void;\n};\n\nclass DeprecatedStandinEditor extends React.Component<Props> {\n static widgetName = \"deprecated-standin\" as const;\n\n serialize(): any {\n return EditorJsonify.serialize.call(this);\n }\n\n render(): React.ReactNode {\n return (\n <div>\n <p>This widget has been deprecated and removed</p>\n <p>\n Learners will see a message and they will not be graded on\n this part. Please replace this widget with a supported one.\n </p>\n </div>\n );\n }\n}\n\nexport default DeprecatedStandinEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\nimport {components, EditorJsonify, iconTrash} from \"@khanacademy/perseus\";\nimport {\n dropdownLogic,\n type DropdownDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\nimport {TextField} from \"@khanacademy/wonder-blocks-form\";\nimport {LabelLarge, LabelMedium} from \"@khanacademy/wonder-blocks-typography\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport _ from \"underscore\";\n\nimport {iconPlus} from \"../styles/icon-paths\";\n\nconst {InfoTip, InlineIcon} = components;\n\ntype Props = any;\n\nclass DropdownEditor extends React.Component<Props> {\n static propTypes = {\n choices: PropTypes.arrayOf(\n PropTypes.shape({\n content: PropTypes.string,\n correct: PropTypes.bool,\n }),\n ),\n placeholder: PropTypes.string,\n };\n\n static widgetName = \"dropdown\" as const;\n\n static defaultProps: DropdownDefaultWidgetOptions =\n dropdownLogic.defaultWidgetOptions;\n\n onVisibleLabelChange: (arg1: string) => void = (visibleLabel) => {\n this.props.onChange({visibleLabel});\n };\n\n onAriaLabelChange: (arg1: string) => void = (ariaLabel) => {\n this.props.onChange({ariaLabel});\n };\n\n onPlaceholderChange: (arg1: string) => void = (placeholder) => {\n this.props.onChange({placeholder});\n };\n\n onCorrectChange: (\n arg1: number,\n arg2: React.ChangeEvent<HTMLInputElement>,\n ) => void = (choiceIndex) => {\n const choices = _.map(this.props.choices, function (choice, i) {\n return _.extend({}, choice, {\n correct: i === choiceIndex,\n });\n });\n this.props.onChange({choices: choices});\n };\n\n onContentChange: (\n arg1: number,\n arg2: React.ChangeEvent<HTMLInputElement>,\n ) => void = (choiceIndex, e) => {\n const choices = this.props.choices.slice();\n const choice = _.clone(choices[choiceIndex]);\n choice.content = e.target.value;\n choices[choiceIndex] = choice;\n this.props.onChange({choices: choices});\n };\n\n addChoice: (arg1: React.MouseEvent) => void = (e) => {\n e.preventDefault();\n\n const choices = this.props.choices;\n const blankChoice = {content: \"\", correct: false} as const;\n this.props.onChange(\n {\n choices: choices.concat([blankChoice]),\n },\n this.focus.bind(this, choices.length),\n );\n };\n\n removeChoice: (arg1: number, arg2: React.MouseEvent) => void = (\n choiceIndex,\n e,\n ) => {\n e.preventDefault();\n const choices = _(this.props.choices).clone();\n choices.splice(choiceIndex, 1);\n this.props.onChange({\n choices: choices,\n });\n };\n\n focus: (arg1: number) => boolean = (i) => {\n // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'focus' does not exist on type 'Element | Text'.\n ReactDOM.findDOMNode(this.refs[\"editor\" + i]).focus(); // eslint-disable-line react/no-string-refs\n return true;\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const dropdownGroupName = _.uniqueId(\"perseus_dropdown_\");\n return (\n <div className=\"perseus-widget-dropdown\">\n <div className=\"dropdown-info\">\n <LabelLarge>Dropdown</LabelLarge>\n <InfoTip>\n <p>\n The drop down is useful for making inequalities in a\n custom format. We normally use the symbols {\"<\"},{\" \"}\n {\">\"}, ≤, ≥ (in that order) which you can copy into\n the choices. When possible, use the &quot;multiple\n choice&quot; answer type instead.\n </p>\n </InfoTip>\n </div>\n <div className=\"dropdown-field\">\n <LabelMedium>\n Visible label\n <TextField\n value={this.props.visibleLabel}\n onChange={this.onVisibleLabelChange}\n />\n </LabelMedium>\n <InfoTip>\n <p>Optional visible label</p>\n </InfoTip>\n </div>\n <div className=\"dropdown-field\">\n <LabelMedium>\n Aria label\n <TextField\n value={this.props.ariaLabel}\n onChange={this.onAriaLabelChange}\n type={\"text\"}\n />\n </LabelMedium>\n <InfoTip>\n <p>\n Label text that&apos;s read by screen readers.\n Highly recommend adding a label here to ensure your\n exercise is accessible. For more information on\n writing accessible labels, please see{\" \"}\n <a\n href=\"https://www.w3.org/WAI/tips/designing/#ensure-that-form-elements-include-clearly-associated-labels\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n this article.\n </a>{\" \"}\n If left blank, the value will default to\n &quot;Select an answer&quot;.\n </p>\n </InfoTip>\n </div>\n <div className=\"dropdown-field\">\n <LabelMedium>\n Placeholder\n <TextField\n value={this.props.placeholder}\n onChange={this.onPlaceholderChange}\n placeholder={\"Placeholder value\"}\n />\n </LabelMedium>\n <InfoTip>\n <p>\n This value will appear as the drop down default. It\n should give the user some indication of the values\n available in the drop down itself, e.g.,\n Yes/No/Maybe.\n </p>\n </InfoTip>\n </div>\n <div className=\"clearfix\" />\n <LabelMedium>Choices</LabelMedium>\n <ul className=\"dropdown-choices\">\n {this.props.choices.map(function (choice, i) {\n const checkedClass = choice.correct\n ? \"correct\"\n : \"incorrect\";\n\n return (\n <li key={\"\" + i}>\n <div>\n <input\n ref={\"radio\" + i}\n type=\"radio\"\n name={dropdownGroupName}\n // @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'boolean | undefined'.\n checked={\n choice.correct ? \"checked\" : \"\"\n }\n // eslint-disable-next-line react/jsx-no-bind\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onChange={this.onCorrectChange.bind(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this,\n i,\n )}\n value={i}\n />\n <input\n type=\"text\"\n ref={\"editor\" + i}\n // eslint-disable-next-line react/jsx-no-bind\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onChange={this.onContentChange.bind(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this,\n i,\n )}\n className={checkedClass}\n value={choice.content}\n />\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a\n href=\"#\"\n className=\"simple-button orange\"\n aria-label=\"Delete choice\"\n // eslint-disable-next-line react/jsx-no-bind\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onClick={this.removeChoice.bind(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this,\n i,\n )}\n >\n <span className=\"remove-choice\">\n <InlineIcon {...iconTrash} />\n </span>\n </a>\n </div>\n </li>\n );\n }, this)}\n </ul>\n\n <div className=\"add-choice-container\">\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a\n href=\"#\"\n className=\"simple-button orange\"\n onClick={this.addChoice}\n >\n <InlineIcon {...iconPlus} /> Add a choice{\" \"}\n </a>\n </div>\n </div>\n );\n }\n}\n\nexport default DropdownEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\n/* eslint-disable react/forbid-prop-types */\nimport {components, Changeable, EditorJsonify} from \"@khanacademy/perseus\";\nimport {explanationLogic} from \"@khanacademy/perseus-core\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport Editor from \"../editor\";\n\nimport type {ExplanationDefaultWidgetOptions} from \"@khanacademy/perseus-core\";\n\nconst {TextInput} = components;\n\ntype Props = any;\ntype State = any;\n\nclass ExplanationEditor extends React.Component<Props, State> {\n static propTypes = {\n ...Changeable.propTypes,\n showPrompt: PropTypes.string,\n hidePrompt: PropTypes.string,\n explanation: PropTypes.string,\n widgets: PropTypes.object,\n apiOptions: PropTypes.any,\n };\n\n static widgetName = \"explanation\" as const;\n\n static defaultProps: ExplanationDefaultWidgetOptions =\n explanationLogic.defaultWidgetOptions;\n\n state: State = {};\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n return (\n <div className=\"perseus-widget-explanation-editor\">\n <div className=\"perseus-widget-row\">\n <label>\n Prompt to show explanation:{\" \"}\n <TextInput\n value={this.props.showPrompt}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"showPrompt\")}\n />\n </label>\n </div>\n <div className=\"perseus-widget-row\">\n <label>\n Prompt to hide explanation:{\" \"}\n <TextInput\n value={this.props.hidePrompt}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"hidePrompt\")}\n />\n </label>\n </div>\n <div className=\"perseus-widget-row\">\n <Editor\n apiOptions={this.props.apiOptions}\n content={this.props.explanation}\n widgets={this.props.widgets}\n widgetEnabled={true}\n immutableWidgets={false}\n onChange={(props) => {\n const newProps: Record<string, any> = {};\n if (_.has(props, \"content\")) {\n newProps.explanation = props.content;\n }\n if (_.has(props, \"widgets\")) {\n newProps.widgets = props.widgets;\n }\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change(newProps);\n }}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default ExplanationEditor;\n","var isObject = function(obj) {\n return obj === Object(obj);;\n}\n\nvar merge = function() {\n var obj = {};\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i];\n if (source) {\n for (var prop in source) {\n obj[prop] = source[prop];\n }\n }\n }\n\n return obj;\n};\n\nvar clone = function(obj) {\n if (!isObject(obj)) {\n return obj;\n }\n\n return Array.isArray(obj) ? obj.slice() : merge(obj);\n};\n\n/* TODO batch *all* mutations\n * idea: freeze / thaw implementations for all types\n * lens constructor thaws, freeze delegates to type's freeze\n */\n\n// equivalents, without requiring it\n// find the implementation to use for a given object\nvar dispatch = function(x) {\n if (Array.isArray(x)) {\n return arr;\n } else if (isObject(x)) {\n return obj;\n } else if (typeof x === \"string\") {\n return str;\n }\n};\n\n// This is underscore with a different name\nvar lens = function(obj) {\n if (obj instanceof lens) {\n return obj;\n }\n\n if (!(this instanceof lens)) {\n return new lens(obj);\n }\n\n var ops = dispatch(obj);\n this._wrapped = ops.thaw ? ops.thaw(obj) : obj;\n};\n\nlens.prototype.freeze = function() {\n var obj = this._wrapped;\n var ops = dispatch(obj);\n\n return ops.freeze ? ops.freeze(obj) : obj;\n};\n\nlens.prototype.zoom = function(lensArr) {\n if (this._zoomStack === undefined) {\n this._zoomStack = [];\n }\n\n this._zoomStack.push({\n zoom: lensArr,\n wrapped: this._wrapped\n });\n this._wrapped = lens(this._wrapped).get(lensArr);\n\n return this;\n};\n\nlens.prototype.deZoom = function() {\n var frame = this._zoomStack.pop();\n this._wrapped = lens(frame.wrapped)\n .set(frame.zoom, this._wrapped)\n .freeze();\n\n return this;\n};\n\nlens.prototype.get = function(lensArr) {\n var obj = this._wrapped;\n\n for (var i = 0; i < lensArr.length; i++) {\n obj = dispatch(obj).get(obj, lensArr[i]);\n }\n\n return obj;\n};\n\nlens.prototype.mod = function(lensArr, f) {\n var obj = this._wrapped;\n var newObj = clone(obj);\n var ops = dispatch(obj);\n\n if (lensArr.length === 0) {\n this._wrapped = f(this._wrapped);\n } else if (lensArr.length === 1) {\n this._wrapped = ops.mod(newObj, lensArr[0], f);\n } else {\n var monocle = lensArr[0];\n var shortLens = lensArr.slice(1);\n\n // newObj = ops.mod(obj[monocle], shortLens, f);\n\n newObj[monocle] = lens(obj[monocle])\n .mod(shortLens, f)\n .freeze();\n this._wrapped = newObj;\n }\n\n return this;\n};\n\n// TODO - move to individual files\nlens.prototype.merge = function(lensArr, props) {\n this._wrapped = lens(this._wrapped).mod(lensArr, function(oldProps) {\n return merge(oldProps, props);\n }).freeze();\n\n return this;\n};\n\n// Lens must have length >= 1 or there would be nothing to return\nlens.prototype.del = function(lensArr) {\n var obj = this._wrapped;\n var ops = dispatch(obj);\n\n if (lensArr.length === 1) {\n this._wrapped = ops.del(obj, lensArr[0]);\n } else {\n var monocle = lensArr[0];\n var shortLens = lensArr.slice(1);\n var newObj = clone(obj);\n\n newObj[monocle] = lens(obj[monocle])\n .del(shortLens)\n .freeze();\n\n this._wrapped = newObj;\n }\n\n return this;\n};\n\nlens.prototype.set = function(lensArr, set) {\n return this.mod(lensArr, function() { return set; });\n};\n\n// ARRAY FUNCTIONS\n\nconst arr = {\n get: function(arr, monocle) {\n return arr[monocle];\n },\n\n set: function(arr, monocle, val) {\n var newArr = arr.splice();\n newArr[monocle] = val;\n return newArr;\n },\n\n mod: function(arr, monocle, f) {\n var newArr = arr.slice();\n newArr[monocle] = f(arr[monocle]);\n return newArr;\n },\n\n del: function(arr, monocle) {\n var newArr = arr.slice();\n newArr.splice(monocle, 1);\n return newArr;\n },\n};\n\n/*\n// Lens must point to a member of an array. We'll insert into that array.\nlens.prototype.insertAt = function(lensArr, toInsert) {\n var obj = this._wrapped;\n\n var arrLens = lensArr.slice(0, -1);\n var arr = lens(obj).get(arrLens).slice(); // slice to copy\n\n var arrIdx = lensArr[lensArr.length-1];\n arr.splice(arrIdx, 0, toInsert);\n return lens(obj).set(arrLens, arr);\n};\n\nlens.prototype.insertBefore = lens.prototype.insertAt;\nlens.prototype.insertAfter = function(lensArr, toInsert) {\n var newLens = lensArr.slice();\n newLens[newLens.length-1] += 1;\n return lens(this._wrapped).insertAt(newLens, toInsert);\n};\n*/\n\n// OBJECT FUNCTIONS\n\nconst obj = {\n get: function(obj, monocle) {\n return obj[monocle];\n },\n\n set: function(obj, monocle, val) {\n var newObj = clone(obj);\n newObj[monocle] = val;\n return newObj;\n },\n\n mod: function(obj, monocle, f) {\n var newObj = clone(obj);\n newObj[monocle] = f(obj[monocle]);\n return newObj;\n },\n\n del: function(obj, monocle) {\n var newObj = clone(obj);\n delete newObj[monocle];\n return newObj;\n },\n};\n\n// STRING FUNCTIONS\n\nconst str = {\n get: function(arr, monocle) {\n return arr[monocle];\n },\n\n set: function(arr, monocle, val) {\n var newArr = arr.splice();\n newArr[monocle] = val;\n return newArr;\n },\n\n mod: function(arr, monocle, f) {\n var newArr = arr.splice();\n newArr[monocle] = f(arr[monocle]);\n return newArr;\n },\n\n del: function(arr, monocle) {\n var newArr = arr.slice();\n newArr.splice(monocle);\n return newArr;\n },\n};\n\nexport default lens\n","import {css, StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\n\ntype Props = {\n className?: string;\n components: React.ReactElement[];\n onReorder: (i: any[]) => void;\n style?: any;\n verify: (i: any) => boolean;\n};\n\ntype DefaultProps = {\n verify: Props[\"verify\"];\n};\n\ntype State = {\n dragging: number;\n components: React.ReactElement[];\n};\n\n/**\n * TODO(LEMS-2667): 11/26/24, at the time of writing this comment\n * it has been identified that this file has been broken long before\n * the refactoring of createReactClass. Future implementation need\n * to determine how to fix this functionality or deprecate it.\n * *\n * Takes an array of components to sort.\n * As of 08/05/24, there are two sortable components\n * (one in perseus and one in perseus-editor).\n * As far as I can tell, this one is only used in ExpressionEditor.\n */\n// eslint-disable-next-line react/no-unsafe\nclass SortableArea extends React.Component<Props, State> {\n _dragItems: any;\n\n static defaultProps: DefaultProps = {\n verify: () => true,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n // index of the component being dragged\n dragging: -1,\n components: this.props.components,\n };\n\n this.onDrop = this.onDrop.bind(this);\n this.onDragStart = this.onDragStart.bind(this);\n this.onDragEnter = this.onDragEnter.bind(this);\n }\n\n // Firefox refuses to drag an element unless you set data on it. Hackily\n // add data each time an item is dragged.\n componentDidMount() {\n this._setDragEvents();\n }\n\n // eslint-disable-next-line react/no-unsafe\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.setState({components: nextProps.components});\n }\n\n componentDidUpdate() {\n this._setDragEvents();\n }\n\n // Alternatively send each handler to each component individually,\n // partially applied\n onDragStart(startIndex) {\n this.setState({dragging: startIndex});\n }\n\n onDrop() {\n // tell the parent component\n this.setState({dragging: -1});\n this.props.onReorder(this.state.components);\n }\n\n onDragEnter(enterIndex) {\n // When a label is first dragged it triggers a dragEnter with itself,\n // which we don't care about.\n if (this.state.dragging === enterIndex) {\n return;\n }\n\n const newComponents = this.state.components.slice();\n\n // splice the tab out of its old position\n const removed = newComponents.splice(this.state.dragging, 1);\n // ... and into its new position\n newComponents.splice(enterIndex, 0, removed[0]);\n\n const verified = this.props.verify(newComponents);\n if (verified) {\n this.setState({\n dragging: enterIndex,\n components: newComponents,\n });\n }\n return verified;\n }\n\n _listenEvent(e) {\n e.dataTransfer.setData(\"hackhackhack\", \"because browsers!\");\n }\n\n _cancelEvent(e) {\n // prevent the browser from redirecting to 'because browsers!'\n e.preventDefault();\n }\n\n _setDragEvents() {\n this._dragItems = this._dragItems || [];\n const items =\n // @ts-expect-error - TS2531 - Object is possibly 'null'\n ReactDOM.findDOMNode(this).querySelectorAll(\"[draggable=true]\");\n\n const oldItems: Array<HTMLElement> = [];\n const newItems: Array<HTMLElement> = [];\n\n for (let i = 0; i < this._dragItems.length; i++) {\n const item = this._dragItems[i];\n if (items.indexOf(item) < 0) {\n oldItems.push(item);\n }\n }\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (this._dragItems.indexOf(item) < 0) {\n newItems.push(item);\n }\n }\n\n for (let i = 0; i < newItems.length; i++) {\n const dragItem = newItems[i];\n dragItem.addEventListener(\"dragstart\", this._listenEvent);\n dragItem.addEventListener(\"drop\", this._cancelEvent);\n }\n\n for (let i = 0; i < oldItems.length; i++) {\n const dragItem = oldItems[i];\n dragItem.removeEventListener(\"dragstart\", this._listenEvent);\n dragItem.removeEventListener(\"drop\", this._cancelEvent);\n }\n }\n\n render() {\n const sortables = this.state.components.map((component, index) => (\n <SortableItem\n index={index}\n component={component}\n area={this}\n key={component.key}\n draggable={component.props.draggable}\n dragging={index === this.state.dragging}\n />\n ));\n return (\n <ol className={this.props.className} style={this.props.style}>\n {sortables}\n </ol>\n );\n }\n}\n\ntype ItemProps = {\n area: any;\n component: React.ReactNode;\n dragging: boolean;\n draggable: boolean;\n index: number;\n};\n\n// An individual sortable item\nclass SortableItem extends React.Component<ItemProps> {\n handleDragStart(e) {\n e.nativeEvent.dataTransfer.effectAllowed = \"move\";\n this.props.area.onDragStart(this.props.index);\n }\n\n handleDrop() {\n this.props.area.onDrop(this.props.index);\n }\n\n handleDragEnter(e) {\n const verified = this.props.area.onDragEnter(this.props.index);\n // Ideally this would change the cursor based on whether this is a\n // valid place to drop.\n e.nativeEvent.dataTransfer.effectAllowed = verified ? \"move\" : \"none\";\n }\n\n handleDragOver(e) {\n // allow a drop by preventing default handling\n e.preventDefault();\n }\n\n render() {\n // I think these might be getting styles from Webapp\n let dragState = \"sortable-disabled\";\n if (this.props.dragging) {\n dragState = \"sortable-dragging\";\n } else if (this.props.draggable) {\n dragState = \"sortable-enabled\";\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- TODO(LEMS-2871): Address a11y error\n <li\n draggable={this.props.draggable}\n className={[dragState, css(styles.sortableListItem)].join(\" \")}\n onDragStart={this.handleDragStart}\n onDrop={this.handleDrop}\n onDragEnter={this.handleDragEnter}\n onDragOver={this.handleDragOver}\n >\n {this.props.component}\n </li>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n sortableListItem: {\n margin: \"5px 0\",\n },\n});\n\nexport default SortableArea;\n","import * as KAS from \"@khanacademy/kas\";\nimport {components, Changeable, Expression} from \"@khanacademy/perseus\";\nimport {\n PerseusExpressionAnswerFormConsidered,\n deriveExtraKeys,\n expressionLogic,\n} from \"@khanacademy/perseus-core\";\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport {Checkbox, LabeledTextField} from \"@khanacademy/wonder-blocks-form\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {color, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {\n HeadingSmall,\n HeadingXSmall,\n} from \"@khanacademy/wonder-blocks-typography\";\nimport {isTruthy} from \"@khanacademy/wonder-stuff-core\";\nimport {css, StyleSheet} from \"aphrodite\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport lens from \"hubble\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport SortableArea from \"../components/sortable\";\n\nimport type {\n PerseusExpressionWidgetOptions,\n LegacyButtonSets,\n ExpressionDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\n\ntype ChangeFn = typeof Changeable.change;\n\nconst {InfoTip} = components;\n\ntype Props = {\n widgetId?: any;\n value?: string;\n} & Omit<PerseusExpressionWidgetOptions, \"buttonsVisible\"> &\n Changeable.ChangeableProps;\n\n// types for iterables\ntype AnswerForm = PerseusExpressionWidgetOptions[\"answerForms\"][number];\ntype LegacyButtonSet = PerseusExpressionWidgetOptions[\"buttonSets\"][number];\n\nconst buttonSetsList: LegacyButtonSets = [\n \"basic\",\n \"trig\",\n \"prealgebra\",\n \"logarithms\",\n \"scientific\",\n \"basic relations\",\n \"advanced relations\",\n];\n\nconst parseAnswerKey = ({key}: AnswerForm): number => {\n // We don't throw here because there is data stored in some\n // exercises/articles where the answer forms don't have a key. If we throw,\n // it blocks content editors from loading the page at all.\n // TODO(Jeremy): find a way to handle these answer forms that are missing\n // keys more gracefully.\n return Number.parseInt(key ?? \"\");\n};\n\n// Pick a key that isn't currently used by an answer in answerForms\nconst _makeNewKey = (answerForms: ReadonlyArray<AnswerForm>) => {\n // first note all the currently used keys in an array, used like a map :3\n // note that this automatically updates the array's length property to\n // be one past the largest key.\n const usedKeys: Array<boolean> = [];\n answerForms.forEach((ans) => {\n usedKeys[parseAnswerKey(ans)] = true;\n });\n\n // then scan through the array to find the first unused (undefined) key\n for (let i = 0; i < usedKeys.length; i++) {\n if (!usedKeys[i]) {\n return i;\n }\n }\n\n // if we didn't find a key, make one bigger than all the other keys,\n // since that's how the length property is defined to work on arrays\n return usedKeys.length;\n};\n\ntype State = {\n // this is to help the \"functions\" input feel natural\n // while still allowing us to to store the functions as an array\n functionsInternal: string;\n};\n\nclass ExpressionEditor extends React.Component<Props, State> {\n static widgetName = \"expression\" as const;\n\n static defaultProps: ExpressionDefaultWidgetOptions =\n expressionLogic.defaultWidgetOptions;\n\n constructor(props: Props) {\n super(props);\n this.state = {\n functionsInternal: this.props.functions.join(\" \"),\n };\n }\n\n change: ChangeFn = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize(): PerseusExpressionWidgetOptions {\n const {\n answerForms,\n buttonSets,\n functions,\n times,\n visibleLabel,\n ariaLabel,\n } = this.props;\n\n return {\n answerForms,\n buttonSets,\n functions,\n times,\n visibleLabel,\n ariaLabel,\n extraKeys: deriveExtraKeys(this.props),\n };\n }\n\n getSaveWarnings: () => any = () => {\n const issues: Array<any | string> = [];\n\n if (this.props.answerForms.length === 0) {\n issues.push(\"No answers specified\");\n } else {\n const hasCorrect = this.props.answerForms.some((form) => {\n return form.considered === \"correct\";\n });\n if (!hasCorrect) {\n issues.push(\"No correct answer specified\");\n }\n\n _(this.props.answerForms).each((form, ix) => {\n if (this.props.value === \"\") {\n issues.push(`Answer ${ix + 1} is empty`);\n } else {\n // note we're not using icu for content creators\n const expression = KAS.parse(form.value, {\n functions: this.props.functions,\n });\n if (!expression.parsed) {\n issues.push(`Couldn't parse ${form.value}`);\n } else if (\n form.simplify &&\n !expression.expr.isSimplified()\n ) {\n issues.push(\n `${form.value} isn't simplified, but is required\" +\n \" to be`,\n );\n }\n }\n });\n\n // TODO(joel) - warn about:\n // - unreachable answers (how??)\n // - specific answers following unspecific answers\n // - incorrect answers as the final form\n }\n\n return issues;\n };\n\n _newEmptyAnswerForm: () => any = () => {\n const newKey = _makeNewKey(this.props.answerForms);\n return {\n considered: \"correct\",\n form: false,\n\n // note: the key means \"n-th form created\" - not \"form in\n // position n\" and will stay the same for the life of this form\n key: `${newKey}`,\n\n simplify: false,\n value: \"\",\n };\n };\n\n newAnswer: () => void = () => {\n const answerForms = this.props.answerForms.slice();\n answerForms.push(this._newEmptyAnswerForm());\n this.change({answerForms});\n };\n\n handleRemoveForm: (answerKey: number) => void = (i) => {\n const answerForms = this.props.answerForms.slice();\n answerForms.splice(i, 1);\n const updatedAnswerForms = answerForms.map((form, index) => ({\n ...form,\n key: `${index}`,\n }));\n this.change({answerForms: updatedAnswerForms});\n };\n\n // This function is designed to update the answerForm property\n // with new data. This function should not be used to update any\n // other properties within ExpressionEditor except extraKeys\n // which is derived from answerForms\n updateAnswerForm(i: number, props: AnswerForm) {\n const answerForms = lens(this.props.answerForms)\n .merge([i], props)\n .freeze();\n\n // deriveExtraKeys defaults to using the `extraKeys` it was given\n // which in most case is what we want, but is not what we want\n // in the editing experience because we should recalculate them\n // when answers change\n const {extraKeys: _, ...restProps} = this.props;\n\n const extraKeys = deriveExtraKeys({\n ...restProps,\n answerForms,\n });\n this.change({answerForms, extraKeys});\n }\n\n handleReorder: (components: any) => void = (components) => {\n const answerForms = components.map((component) => {\n const form = _(component.props).pick(\n \"considered\",\n \"form\",\n \"simplify\",\n \"value\",\n );\n // @ts-expect-error - TS2339 - Property 'key' does not exist on type 'Pick<any, \"form\" | \"value\" | \"simplify\" | \"considered\">'.\n form.key = component.key;\n return form;\n });\n\n this.change({answerForms});\n };\n\n // called when the selected buttonset changes\n handleButtonSet: (changingName: string) => void = (changingName) => {\n const buttonSetNames = buttonSetsList;\n\n // Filter to preserve order - using .union and .difference would always\n // move the last added button set to the end.\n const buttonSets = buttonSetNames.filter((set) => {\n return (\n this.props.buttonSets.includes(set) !== (set === changingName)\n );\n });\n\n this.props.onChange({buttonSets});\n };\n\n handleToggleDiv: () => void = () => {\n // We always want buttonSets to contain exactly one of \"basic\" and\n // \"basic+div\". Toggle between the two of them.\n // If someone can think of a more elegant formulation of this (there\n // must be one!) feel free to change it.\n let keep: LegacyButtonSet | undefined;\n let remove: LegacyButtonSet | undefined;\n if (this.props.buttonSets.includes(\"basic+div\")) {\n keep = \"basic\";\n remove = \"basic+div\";\n } else {\n keep = \"basic+div\";\n remove = \"basic\";\n }\n\n const buttonSets = this.props.buttonSets\n .filter((set) => set !== remove)\n .concat(keep);\n\n this.change(\"buttonSets\", buttonSets);\n };\n\n // called when the correct answer changes\n handleTexInsert: (arg1: string) => void = (str) => {\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'insert' does not exist on type 'ReactInstance'.\n this.refs.expression.insert(str);\n };\n\n // called when the function variables change\n handleFunctions: (value: string) => void = (value) => {\n this.setState({functionsInternal: value});\n const newProps: Record<string, any> = {};\n newProps.functions = value.split(/[ ,]+/).filter(isTruthy);\n this.props.onChange(newProps);\n };\n\n changeSimplify(key: number, simplify: boolean) {\n const answerForm: AnswerForm = {\n ...this.props.answerForms[key],\n key: `${key}`,\n simplify,\n };\n\n this.updateAnswerForm(key, answerForm);\n }\n\n changeForm(key: number, form: boolean) {\n const answerForm: AnswerForm = {\n ...this.props.answerForms[key],\n form,\n key: `${key}`,\n };\n\n this.updateAnswerForm(key, answerForm);\n }\n\n changeConsidered(\n key: number,\n considered: (typeof PerseusExpressionAnswerFormConsidered)[number],\n ) {\n const answerForm: AnswerForm = {\n ...this.props.answerForms[key],\n key: `${key}`,\n considered,\n };\n\n this.updateAnswerForm(key, answerForm);\n }\n\n changeTimes(times: boolean) {\n this.change({times: times});\n }\n\n changeExpressionWidget: (\n key: number,\n props: React.ComponentProps<typeof Expression>,\n ) => void = (key, props) => {\n const answerForm: AnswerForm = {\n ...this.props.answerForms[key],\n key: `${key}`,\n value: props.value,\n };\n this.updateAnswerForm(key, answerForm);\n };\n\n render(): React.ReactNode {\n const answerOptions: React.JSX.Element[] = this.props.answerForms.map(\n (ans: AnswerForm, index: number) => {\n const key = parseAnswerKey(ans);\n\n const expressionProps: Partial<\n React.ComponentProps<typeof Expression>\n > = {\n // note we're using\n // *this.props*.{times,functions,buttonSets} since each\n // answer area has the same settings for those\n times: this.props.times,\n functions: this.props.functions,\n buttonSets: this.props.buttonSets,\n buttonsVisible: \"focused\",\n value: ans.value,\n // @ts-expect-error: Type '(props: React.ComponentProps<typeof Expression>) => void' is not assignable to type 'ChangeHandler'. Types of parameters 'props' and 'arg1' are incompatible.\n onChange: (\n props: React.ComponentProps<typeof Expression>,\n ) => this.changeExpressionWidget(key, props),\n trackInteraction: () => {},\n widgetId: this.props.widgetId + \"-\" + ans.key,\n visibleLabel: this.props.visibleLabel,\n ariaLabel: this.props.ariaLabel,\n } as const;\n\n return (\n <AnswerOption\n key={ans.key}\n draggable={true}\n considered={ans.considered}\n expressionProps={expressionProps}\n form={ans.form}\n simplify={ans.simplify}\n onDelete={() => this.handleRemoveForm(index)}\n onChangeSimplify={(simplify) =>\n this.changeSimplify(key, simplify)\n }\n onChangeForm={(form) => this.changeForm(key, form)}\n onChangeConsidered={(considered) =>\n this.changeConsidered(key, considered)\n }\n />\n );\n },\n );\n\n const sortable = (\n <SortableArea\n components={answerOptions}\n onReorder={this.handleReorder}\n />\n );\n\n // checkboxes to choose which sets of input buttons are shown\n const buttonSetChoices = buttonSetsList.map((name) => {\n // The first one gets special cased to always be checked, disabled,\n // and float left.\n const isBasic = name === \"basic\";\n const checked = this.props.buttonSets.includes(name) || isBasic;\n return (\n <Checkbox\n key={name}\n label={name}\n checked={checked}\n disabled={isBasic}\n onChange={() => this.handleButtonSet(name)}\n />\n );\n });\n\n buttonSetChoices.unshift(\n <Checkbox\n key=\"show ÷ button\"\n label=\"show ÷ button\"\n checked={this.props.buttonSets.includes(\"basic+div\")}\n onChange={this.handleToggleDiv}\n />,\n );\n\n return (\n <div>\n <HeadingSmall>Global Options</HeadingSmall>\n\n <div className={css(styles.paddedY)}>\n <LabeledTextField\n label=\"Visible label\"\n value={this.props.visibleLabel || \"\"}\n onChange={this.change(\"visibleLabel\")}\n />\n <InfoTip>\n <p>\n Optional visible text; strongly encouraged to help\n learners using dictation software, but can be\n omitted if the surrounding content provides enough\n context.\n </p>\n </InfoTip>\n </div>\n\n <div className={css(styles.paddedY)}>\n <LabeledTextField\n label=\"Aria label\"\n value={this.props.ariaLabel || \"\"}\n onChange={this.change(\"ariaLabel\")}\n />\n <InfoTip>\n <p>\n Label text that&apos;s read by screen readers.\n Highly recommend adding a label here to ensure your\n exercise is accessible. For more information on\n writting accessible labels, please see{\" \"}\n <a\n href=\"https://www.w3.org/WAI/tips/designing/#ensure-that-form-elements-include-clearly-associated-labels\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n this article.\n </a>\n </p>\n </InfoTip>\n </div>\n\n <div className={css(styles.paddedY)}>\n <LabeledTextField\n label=\"Function variables\"\n value={this.state.functionsInternal}\n onChange={this.handleFunctions}\n />\n <InfoTip>\n <p>\n Single-letter variables listed here will be\n interpreted as functions. This let us know that f(x)\n means &quot;f of x&quot; and not &quot;f times\n x&quot;.\n </p>\n </InfoTip>\n </div>\n\n <div className={css(styles.paddedY)}>\n <Checkbox\n label=\"Use × instead of ⋅ for multiplication\"\n checked={this.props.times}\n onChange={(newCheckedState) => {\n this.changeTimes(newCheckedState);\n }}\n />\n <InfoTip>\n <p>\n For pre-algebra problems this option displays\n multiplication as \\times instead of \\cdot in both\n the rendered output and the acceptable formats\n examples.\n </p>\n </InfoTip>\n </div>\n\n <div className={css(styles.paddedY)}>\n <HeadingXSmall>Button Sets</HeadingXSmall>\n {buttonSetChoices}\n </div>\n\n <HeadingSmall>Answers</HeadingSmall>\n\n <p style={{margin: \"4px 0\"}}>\n student responses area matched against these from top to\n bottom\n </p>\n\n {sortable}\n\n <div>\n <Button size=\"small\" onClick={this.newAnswer}>\n Add new answer\n </Button>\n </div>\n </div>\n );\n }\n}\n\n// Find the next element in arr after val, wrapping around to the first.\nconst findNextIn = function <T>(arr: ReadonlyArray<T>, val: T) {\n let ix = arr.indexOf(val);\n ix = (ix + 1) % arr.length;\n return arr[ix];\n};\n\ntype AnswerOptionProps = {\n considered: (typeof PerseusExpressionAnswerFormConsidered)[number];\n expressionProps: any;\n\n // Must the answer have the same form as this answer.\n form: boolean;\n draggable: boolean;\n\n // Must the answer be simplified.\n simplify: boolean;\n\n onDelete: () => void;\n onChangeSimplify: (simplify: boolean) => void;\n onChangeForm: (form: boolean) => void;\n onChangeConsidered: (\n considered: (typeof PerseusExpressionAnswerFormConsidered)[number],\n ) => void;\n};\n\ntype AnswerOptionState = {\n deleteFocused: boolean;\n};\n\nclass AnswerOption extends React.Component<\n AnswerOptionProps,\n AnswerOptionState\n> {\n state = {deleteFocused: false};\n\n change: ChangeFn = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n handleImSure = () => {\n this.props.onDelete();\n this.handleCancelDelete();\n };\n\n handleCancelDelete = () => {\n this.setState({deleteFocused: false});\n };\n\n handleDelete = () => {\n this.setState({deleteFocused: true});\n };\n\n toggleConsidered = () => {\n // Update findNextIn to have stronger typing.\n const newVal = findNextIn<\n (typeof PerseusExpressionAnswerFormConsidered)[number]\n >(PerseusExpressionAnswerFormConsidered, this.props.considered);\n this.props.onChangeConsidered(newVal);\n };\n\n render(): React.ReactNode {\n const removeButton = this.state.deleteFocused ? (\n <>\n <Button\n size=\"small\"\n onClick={this.handleImSure}\n color=\"destructive\"\n >\n I&apos;m sure!\n </Button>\n <Strut size={spacing.small_12} />\n <Button size=\"small\" onClick={this.handleCancelDelete} light>\n Cancel\n </Button>\n </>\n ) : (\n <Button\n size=\"small\"\n onClick={this.handleDelete}\n color=\"destructive\"\n light\n >\n Delete\n </Button>\n );\n\n const answerStatusCss = css(\n styles.answerStatus,\n this.props.considered === \"wrong\" && styles.answerStatusWrong,\n this.props.considered === \"correct\" && styles.answerStatusCorrect,\n this.props.considered === \"ungraded\" && styles.answerStatusUngraded,\n );\n\n return (\n <div className={css(styles.answerOption)}>\n <div className={css(styles.answerHandle)} />\n\n <div className={css(styles.answerBody)}>\n <div>\n <button\n onClick={this.toggleConsidered}\n className={answerStatusCss}\n >\n {this.props.considered}\n </button>\n\n <div>\n <Expression {...this.props.expressionProps} />\n </div>\n </div>\n\n <div className={css(styles.paddedY, styles.paddedX)}>\n <Checkbox\n label=\"Answer expression must have the same form.\"\n checked={this.props.form}\n onChange={this.props.onChangeForm}\n />\n <InfoTip>\n <p>\n The student&apos;s answer must be in the same\n form. Commutativity and excess negative signs\n are ignored.\n </p>\n </InfoTip>\n </div>\n\n <div className={css(styles.paddedY, styles.paddedX)}>\n <Checkbox\n label=\"Answer expression must be fully expanded and simplified.\"\n checked={this.props.simplify}\n onChange={this.props.onChangeSimplify}\n />\n <InfoTip>\n <p>\n The student&apos;s answer must be fully expanded\n and simplified. Answering this equation\n (x^2+2x+1) with this factored equation (x+1)^2\n will render this response &quot;Your answer is\n not fully expanded and simplified.&quot;\n </p>\n </InfoTip>\n </div>\n\n <div className={css(styles.buttonRow, styles.paddedY)}>\n {removeButton}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default ExpressionEditor;\n\nconst styles = StyleSheet.create({\n paddedX: {\n paddingLeft: spacing.xSmall_8,\n paddingRight: spacing.xSmall_8,\n },\n paddedY: {\n paddingTop: spacing.xxSmall_6,\n paddingBottom: spacing.xxSmall_6,\n },\n answerOption: {\n border: \"1px solid #ddd\",\n borderRadius: \"3px\",\n display: \"flex\",\n },\n answerHandle: {\n // textured draggy handle\n background:\n \"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==) no-repeat 50% 50%\",\n borderRight: \"1px solid #ddd\",\n cursor: \"move\",\n width: \"20px\",\n minWidth: \"20px\",\n },\n answerStatus: {\n border: \"none\",\n userSelect: \"none\",\n width: \"100px\",\n paddingTop: spacing.small_12,\n paddingBottom: spacing.small_12,\n },\n answerStatusWrong: {\n backgroundColor: color.fadedRed16,\n },\n answerStatusCorrect: {\n backgroundColor: color.fadedGreen16,\n },\n answerStatusUngraded: {\n backgroundColor: color.fadedBlue16,\n },\n answerBody: {},\n buttonRow: {\n display: \"flex\",\n },\n});\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\n/* eslint-disable react/forbid-prop-types */\nimport {\n components,\n ApiOptions,\n Changeable,\n iconTrash,\n} from \"@khanacademy/perseus\";\nimport {gradedGroupLogic} from \"@khanacademy/perseus-core\";\nimport {StyleSheet, css} from \"aphrodite\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport Editor from \"../editor\";\nimport {iconPlus} from \"../styles/icon-paths\";\n\nimport type {GradedGroupDefaultWidgetOptions} from \"@khanacademy/perseus-core\";\n\nconst {InlineIcon, TextInput} = components;\n\ntype Props = any;\n\nclass GradedGroupEditor extends React.Component<Props> {\n static propTypes = {\n ...Changeable.propTypes,\n title: PropTypes.string,\n content: PropTypes.string,\n widgets: PropTypes.object,\n images: PropTypes.object,\n apiOptions: ApiOptions.propTypes,\n };\n\n static widgetName = \"graded-group\" as const;\n\n static defaultProps: GradedGroupDefaultWidgetOptions =\n gradedGroupLogic.defaultWidgetOptions;\n\n editor = React.createRef<Editor>();\n hintEditor = React.createRef<Editor>();\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n handleAddHint: () => void = () => {\n const hint = {content: \"\"} as const;\n this.props.onChange({hint}, () => {\n this.hintEditor.current?.focus();\n });\n };\n\n handleRemoveHint: (arg1: React.MouseEvent) => void = (e) => {\n this.props.onChange({hint: null});\n };\n\n getSaveWarnings: () => any = () => {\n return this.editor.current?.getSaveWarnings();\n };\n\n serialize: () => {\n title: string;\n hint: any | null | undefined;\n } = () => {\n return {\n title: this.props.title,\n ...this.editor.current?.serialize(),\n hint: this.hintEditor.current?.serialize(),\n };\n };\n\n render(): React.ReactNode {\n return (\n <div className=\"perseus-group-editor\">\n <div className=\"perseus-widget-row\">\n <label className={css(styles.title)}>\n Title:{\" \"}\n <TextInput\n value={this.props.title}\n className={css(styles.input)}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"title\")}\n />\n </label>\n </div>\n <Editor\n ref={this.editor}\n content={this.props.content}\n widgets={this.props.widgets}\n apiOptions={this.props.apiOptions}\n images={this.props.images}\n widgetEnabled={true}\n immutableWidgets={false}\n onChange={this.props.onChange}\n warnNoPrompt={true}\n warnNoWidgets={true}\n />\n {!this.props.hint && (\n <button\n type=\"button\"\n style={{marginTop: 10}}\n className=\"add-hint simple-button orange\"\n onClick={this.handleAddHint}\n >\n <InlineIcon {...iconPlus} /> Add a hint\n </button>\n )}\n {this.props.hint && (\n <div className=\"perseus-hint-editor\">\n <div className={css(styles.hintsTitle)}>Hint</div>\n <Editor\n ref={this.hintEditor}\n content={\n this.props.hint ? this.props.hint.content : \"\"\n }\n widgets={\n this.props.hint ? this.props.hint.widgets : {}\n }\n apiOptions={this.props.apiOptions}\n images={this.props.hint && this.props.hint.images}\n widgetEnabled={true}\n immutableWidgets={false}\n onChange={(props) => {\n // Copy all props over from the existing hint\n // and then add new props.\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 2.\n this.change(\n \"hint\",\n Object.assign({}, this.props.hint, props),\n );\n }}\n />\n <button\n type=\"button\"\n className=\"remove-hint simple-button orange\"\n onClick={this.handleRemoveHint}\n >\n <InlineIcon {...iconTrash} /> Remove this hint\n </button>\n </div>\n )}\n </div>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n title: {\n fontSize: 18,\n fontWeight: \"bold\",\n },\n\n input: {\n fontSize: 18,\n },\n\n hintsTitle: {\n marginTop: 10,\n fontSize: \"110%\",\n fontWeight: \"bold\",\n },\n});\n\nexport default GradedGroupEditor;\n","/* eslint-disable react/forbid-prop-types, react/no-unsafe */\nimport {ApiOptions, Changeable} from \"@khanacademy/perseus\";\nimport {gradedGroupSetLogic} from \"@khanacademy/perseus-core\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport GradedGroupEditor from \"./graded-group-editor\";\n\nimport type {GradedGroupSetDefaultWidgetOptions} from \"@khanacademy/perseus-core\";\n\ntype Props = any;\n\nclass GradedGroupSetEditor extends React.Component<Props> {\n // @ts-expect-error - TS2564 - Property '_editors' has no initializer and is not definitely assigned in the constructor.\n _editors: Array<any>;\n\n static propTypes = {\n ...Changeable.propTypes,\n apiOptions: ApiOptions.propTypes,\n gradedGroups: PropTypes.array,\n onChange: PropTypes.func.isRequired,\n };\n\n static widgetName = \"graded-group-set\" as const;\n\n static defaultProps: GradedGroupSetDefaultWidgetOptions =\n gradedGroupSetLogic.defaultWidgetOptions;\n\n // TODO(jangmi, CP-3288): Remove usage of `UNSAFE_componentWillMount`\n UNSAFE_componentWillMount() {\n this._editors = [];\n }\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n getSaveWarnings: () => ReadonlyArray<any> = () => {\n return [].concat(\n ...this._editors.map((editor) =>\n editor ? editor.getSaveWarnings() : [],\n ),\n );\n };\n\n serialize: () => {\n gradedGroups: any;\n } = () => {\n return {\n gradedGroups: this.props.gradedGroups,\n };\n };\n\n renderGroups: () => React.ReactElement = () => {\n if (!this.props.gradedGroups) {\n return null;\n }\n return this.props.gradedGroups.map((group, i) => (\n <GradedGroupEditor\n key={i}\n ref={(el) => (this._editors[i] = el)}\n {...group}\n apiOptions={this.props.apiOptions}\n widgetEnabled={true}\n immutableWidgets={false}\n onChange={(data) =>\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 2.\n this.change(\n \"gradedGroups\",\n setArrayItem(this.props.gradedGroups, i, {\n ...this.props.gradedGroups[i],\n ...data,\n }),\n )\n }\n />\n ));\n };\n\n addGroup: () => void = () => {\n const groups = this.props.gradedGroups || [];\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 2.\n this.change(\n \"gradedGroups\",\n groups.concat([GradedGroupEditor.defaultProps]),\n );\n };\n\n render(): React.ReactNode {\n return (\n <div className=\"perseus-group-editor\">\n {this.renderGroups()}\n <button onClick={this.addGroup}>Add group</button>\n </div>\n );\n }\n}\n\nconst setArrayItem = (list, i: any, value) => [\n ...list.slice(0, i),\n value,\n ...list.slice(i + 1),\n];\n\nexport default GradedGroupSetEditor;\n","/* eslint-disable react/forbid-prop-types, react/no-unsafe */\n/**\n * Used in the editors for the Grapher and Interaction widgets.\n */\nimport {KhanMath} from \"@khanacademy/kmath\";\nimport {\n components,\n interactiveSizes,\n Changeable,\n Dependencies,\n Util,\n} from \"@khanacademy/perseus\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport _ from \"underscore\";\n\nimport type {Coords, MarkingsType} from \"@khanacademy/perseus-core\";\n\nconst {ButtonGroup, InfoTip, RangeInput} = components;\n\nconst defaultBackgroundImage = {\n url: null,\n width: 0,\n height: 0,\n} as const;\n\nfunction numSteps(range: any, step: any) {\n return Math.floor((range[1] - range[0]) / step);\n}\ntype Props = {\n editableSettings: ReadonlyArray<\n \"canvas\" | \"graph\" | \"snap\" | \"image\" | \"measure\"\n >;\n box: readonly number[];\n labels: readonly string[];\n range: Coords;\n step: [number, number];\n gridStep: [number, number];\n snapStep: [number, number];\n valid: boolean;\n backgroundImage: any;\n markings: MarkingsType;\n showProtractor?: boolean;\n showRuler?: boolean;\n showTooltips?: boolean;\n rulerLabel: string;\n rulerTicks: number;\n} & Changeable.ChangeableProps;\n\ntype DefaultProps = {\n editableSettings: Props[\"editableSettings\"];\n box: Props[\"box\"];\n labels: Props[\"labels\"];\n range: Props[\"range\"];\n step: Props[\"step\"];\n gridStep: Props[\"gridStep\"];\n snapStep: Props[\"snapStep\"];\n valid: Props[\"valid\"];\n backgroundImage: Props[\"backgroundImage\"];\n markings: Props[\"markings\"];\n rulerLabel: Props[\"rulerLabel\"];\n rulerTicks: Props[\"rulerTicks\"];\n showProtractor?: Props[\"showProtractor\"];\n showRuler?: Props[\"showRuler\"];\n showTooltips?: Props[\"showTooltips\"];\n};\n\ntype State = {\n labelsTextbox: string[];\n gridStepTextbox: number[];\n snapStepTextbox: number[];\n stepTextbox: number[];\n rangeTextbox: any[];\n backgroundImage: any;\n};\n\nclass GraphSettings extends React.Component<Props, State> {\n static displayName: \"GraphSettings\";\n\n static defaultProps: DefaultProps = {\n editableSettings: [\"graph\", \"snap\", \"image\", \"measure\"],\n box: [\n interactiveSizes.defaultBoxSizeSmall,\n interactiveSizes.defaultBoxSizeSmall,\n ],\n labels: [\"x\", \"y\"],\n range: [\n [-10, 10],\n [-10, 10],\n ],\n step: [1, 1],\n gridStep: [1, 1],\n snapStep: [1, 1],\n valid: true,\n backgroundImage: defaultBackgroundImage,\n markings: \"graph\",\n rulerLabel: \"\",\n rulerTicks: 10,\n showProtractor: false,\n showRuler: false,\n showTooltips: false,\n };\n\n _isMounted = false;\n\n constructor(props) {\n super(props);\n this.state = this.getInitialState();\n\n this.change = this.change.bind(this);\n this.changeBackgroundUrl = this.changeBackgroundUrl.bind(this);\n this.changeGraph = this.changeGraph.bind(this);\n this.changeGridStep = this.changeGridStep.bind(this);\n this.changeLabel = this.changeLabel.bind(this);\n this.changeRange = this.changeRange.bind(this);\n this.changeRulerLabel = this.changeRulerLabel.bind(this);\n this.changeRulerTicks = this.changeRulerTicks.bind(this);\n this.changeSnapStep = this.changeSnapStep.bind(this);\n this.changeStep = this.changeStep.bind(this);\n }\n\n getInitialState() {\n return this.stateFromProps(this.props);\n }\n\n componentDidMount() {\n // TODO(scottgrant): This is a hack to remove the deprecated call to\n // this.isMounted() but is still considered an anti-pattern.\n this._isMounted = true;\n\n this.changeGraph = _.debounce(this.changeGraph, 300);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (\n !_.isEqual(this.props.labels, nextProps.labels) ||\n !_.isEqual(this.props.gridStep, nextProps.gridStep) ||\n !_.isEqual(this.props.snapStep, nextProps.snapStep) ||\n !_.isEqual(this.props.step, nextProps.step) ||\n !_.isEqual(this.props.range, nextProps.range) ||\n !_.isEqual(this.props.backgroundImage, nextProps.backgroundImage)\n ) {\n this.setState(this.stateFromProps(nextProps));\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n stateFromProps(props) {\n return {\n labelsTextbox: props.labels,\n gridStepTextbox: props.gridStep,\n snapStepTextbox: props.snapStep,\n stepTextbox: props.step,\n rangeTextbox: props.range,\n backgroundImage: _.clone(props.backgroundImage),\n };\n }\n\n // TODO(benchristel): Refactor this component to be an ES6 class, so we can\n // type change as ChangeFn.\n change(...args) {\n // TODO(LEMS-2656): remove TS suppression\n // @ts-expect-error: Argument of type 'any[]' is not assignable to parameter of type '[newPropsOrSinglePropName: string | { [key: string]: any; }, propValue?: any, callback?: (() => unknown) | undefined]'. Target requires 1 element(s) but source may have fewer.\n return Changeable.change.apply(this, args);\n }\n\n // TODO(aria): Make either a wrapper for standard events to work\n // with this.change, or make these use some TextInput/NumberInput box\n changeRulerLabel(e) {\n this.change({rulerLabel: e.target.value});\n }\n\n changeRulerTicks(e) {\n this.change({rulerTicks: +e.target.value});\n }\n\n changeBackgroundUrl(e) {\n // Only continue on blur or \"enter\"\n if (e.type === \"keypress\" && e.key !== \"Enter\") {\n return;\n }\n\n const setUrl = (url, width: number, height: number) => {\n const image = _.clone(this.props.backgroundImage);\n image.url = url;\n image.width = width;\n image.height = height;\n this.setState(\n {\n backgroundImage: image,\n },\n this.changeGraph,\n );\n };\n\n // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.\n const url = ReactDOM.findDOMNode(this.refs[\"bg-url\"]).value; // eslint-disable-line react/no-string-refs\n if (url) {\n Util.getImageSize(url, (width, height) => {\n if (this._isMounted) {\n setUrl(url, width, height);\n }\n });\n } else {\n setUrl(null, 0, 0);\n }\n }\n\n renderLabelChoices(choices) {\n return _.map(choices, function ([name, value]) {\n return (\n <option key={value} value={value}>\n {name}\n </option>\n );\n });\n }\n\n validRange(range) {\n const numbers = _.every(range, function (num) {\n return _.isFinite(num);\n });\n if (!numbers) {\n return \"Range must be a valid number\";\n }\n if (range[0] >= range[1]) {\n return \"Range must have a higher number on the right\";\n }\n return true;\n }\n\n validateStepValue(settings) {\n const {step, range, name, minTicks, maxTicks} = settings;\n\n if (!_.isFinite(step)) {\n return name + \" must be a valid number\";\n }\n const nSteps = numSteps(range, step);\n if (nSteps < minTicks) {\n return (\n name +\n \" is too large, there must be at least \" +\n minTicks +\n \" ticks.\"\n );\n }\n if (nSteps > maxTicks) {\n return (\n name +\n \" is too small, there can be at most \" +\n maxTicks +\n \" ticks.\"\n );\n }\n return true;\n }\n\n validSnapStep(step, range) {\n return this.validateStepValue({\n step: step,\n range: range,\n name: \"Snap step\",\n minTicks: 5,\n maxTicks: 60,\n });\n }\n\n validGridStep(step, range) {\n return this.validateStepValue({\n step: step,\n range: range,\n name: \"Grid step\",\n minTicks: 3,\n maxTicks: 60,\n });\n }\n\n validStep(step, range) {\n return this.validateStepValue({\n step: step,\n range: range,\n name: \"Step\",\n minTicks: 3,\n maxTicks: 20,\n });\n }\n\n validBackgroundImageSize(image) {\n // Ignore empty images\n if (!image.url) {\n return true;\n }\n\n const validSize = image.width <= 450 && image.height <= 450;\n\n if (!validSize) {\n return \"Image must be smaller than 450px x 450px.\";\n }\n return true;\n }\n\n validateGraphSettings(range, step, gridStep, snapStep, image) {\n const self = this;\n let msg;\n const goodRange = _.every(range, function (range) {\n msg = self.validRange(range);\n return msg === true;\n });\n if (!goodRange) {\n return msg;\n }\n const goodStep = _.every(step, function (step, i) {\n msg = self.validStep(step, range[i]);\n return msg === true;\n });\n if (!goodStep) {\n return msg;\n }\n const goodGridStep = _.every(gridStep, function (gridStep, i) {\n msg = self.validGridStep(gridStep, range[i]);\n return msg === true;\n });\n if (!goodGridStep) {\n return msg;\n }\n const goodSnapStep = _.every(snapStep, function (snapStep, i) {\n msg = self.validSnapStep(snapStep, range[i]);\n return msg === true;\n });\n if (!goodSnapStep) {\n return msg;\n }\n const goodImageSize = this.validBackgroundImageSize(image);\n if (goodImageSize !== true) {\n msg = goodImageSize;\n return msg;\n }\n return true;\n }\n\n changeLabel(i, e) {\n const val = e.target.value;\n const labels = this.state.labelsTextbox.slice();\n labels[i] = val;\n this.setState({labelsTextbox: labels}, this.changeGraph);\n }\n\n changeRange(i, values) {\n const ranges = this.state.rangeTextbox.slice();\n ranges[i] = values;\n const step = this.state.stepTextbox.slice();\n const gridStep = this.state.gridStepTextbox.slice();\n const snapStep = this.state.snapStepTextbox.slice();\n const scale = Util.scaleFromExtent(ranges[i], this.props.box[i]);\n if (this.validRange(ranges[i]) === true) {\n step[i] = Util.tickStepFromExtent(ranges[i], this.props.box[i]);\n // Need to use the cast to number since gridStepFromTickStep\n // can return null or undefined. Ideally in the future let's adjust\n // the code to take this into account.\n gridStep[i] = Util.gridStepFromTickStep(step[i], scale) as number;\n snapStep[i] = gridStep[i] / 2;\n }\n this.setState(\n {\n stepTextbox: step,\n gridStepTextbox: gridStep,\n snapStepTextbox: snapStep,\n rangeTextbox: ranges,\n },\n this.changeGraph,\n );\n }\n\n changeStep(step) {\n this.setState({stepTextbox: step}, this.changeGraph);\n }\n\n changeSnapStep(snapStep) {\n this.setState({snapStepTextbox: snapStep}, this.changeGraph);\n }\n\n changeGridStep(gridStep) {\n this.setState(\n {\n gridStepTextbox: gridStep,\n snapStepTextbox: _.map(gridStep, function (step) {\n return step / 2;\n }),\n },\n this.changeGraph,\n );\n }\n\n changeGraph() {\n const labels = this.state.labelsTextbox;\n const range = _.map(this.state.rangeTextbox, function (range) {\n return _.map(range, Number);\n });\n const step = _.map(this.state.stepTextbox, Number);\n const gridStep = this.state.gridStepTextbox;\n const snapStep = this.state.snapStepTextbox;\n const image = this.state.backgroundImage;\n\n // validationResult is either:\n // true -> the settings are valid\n // a string -> the settings are invalid, and the explanation\n // is contained in the string\n // TODO(aria): Refactor this to not be confusing\n const validationResult = this.validateGraphSettings(\n range,\n step,\n gridStep,\n snapStep,\n image,\n );\n\n if (validationResult === true) {\n // either true or a string\n this.change({\n valid: true,\n labels: labels,\n range: range,\n step: step,\n gridStep: gridStep,\n snapStep: snapStep,\n backgroundImage: image,\n });\n } else {\n this.change({\n valid: validationResult, // a string message, not false\n });\n }\n }\n\n render() {\n const scale = [\n KhanMath.roundTo(\n 2,\n Util.scaleFromExtent(this.props.range[0], this.props.box[0]),\n ),\n KhanMath.roundTo(\n 2,\n Util.scaleFromExtent(this.props.range[1], this.props.box[1]),\n ),\n ];\n\n const {TeX} = Dependencies.getDependencies();\n return (\n <div>\n {_.contains(this.props.editableSettings, \"canvas\") && (\n <div className=\"graph-settings\">\n <div className=\"perseus-widget-row\">\n <label htmlFor=\"canvas-size\">\n Canvas size (x,y pixels)\n </label>\n <RangeInput\n id=\"canvas-size\"\n value={this.props.box}\n onChange={(box) => {\n this.change({box: box});\n }}\n />\n </div>\n <div className=\"perseus-widget-row\">\n Scale (px per div):{\" \"}\n <TeX>{\"(\" + scale[0] + \", \" + scale[1] + \")\"}</TeX>\n </div>\n </div>\n )}\n\n {_.contains(this.props.editableSettings, \"graph\") && (\n <div className=\"graph-settings\">\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n <label htmlFor=\"labels-x\">x Label</label>\n <input\n id=\"labels-x\"\n type=\"text\"\n className=\"graph-settings-axis-label\"\n // eslint-disable-next-line react/no-string-refs\n ref=\"labels-0\"\n onChange={(e) => this.changeLabel(0, e)}\n value={this.state.labelsTextbox[0] || \"\"}\n />\n </div>\n <div className=\"perseus-widget-right-col\">\n <label htmlFor=\"labels-y\">y Label</label>\n <input\n id=\"labels-y\"\n type=\"text\"\n className=\"graph-settings-axis-label\"\n // eslint-disable-next-line react/no-string-refs\n ref=\"labels-1\"\n onChange={(e) => this.changeLabel(1, e)}\n value={this.state.labelsTextbox[1] || \"\"}\n />\n </div>\n </div>\n\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n <label htmlFor=\"range-x\">x Range</label>\n <RangeInput\n id=\"range-x\"\n value={this.state.rangeTextbox[0]}\n onChange={(vals) =>\n this.changeRange(0, vals)\n }\n />\n </div>\n <div className=\"perseus-widget-right-col\">\n <label htmlFor=\"range-y\">y Range</label>\n <RangeInput\n id=\"range-y\"\n value={this.state.rangeTextbox[1]}\n onChange={(vals) =>\n this.changeRange(1, vals)\n }\n />\n </div>\n </div>\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n <label htmlFor=\"tick-step\">Tick Step</label>\n <RangeInput\n id=\"tick-step\"\n value={this.state.stepTextbox}\n onChange={this.changeStep}\n />\n </div>\n <div className=\"perseus-widget-right-col\">\n <label htmlFor=\"grid-step\">Grid Step</label>\n <RangeInput\n id=\"grid-step\"\n value={this.state.gridStepTextbox}\n onChange={this.changeGridStep}\n />\n </div>\n </div>\n {_.contains(this.props.editableSettings, \"snap\") && (\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n <label htmlFor=\"snap-step\">Snap Step</label>\n <RangeInput\n id=\"snap-step\"\n value={this.state.snapStepTextbox}\n onChange={this.changeSnapStep}\n />\n </div>\n </div>\n )}\n <div className=\"perseus-widget-row\">\n {/* eslint-disable-next-line jsx-a11y/label-has-associated-control -- TODO(LEMS-2871): Address a11y error */}\n <label>Markings: </label>\n <ButtonGroup\n value={this.props.markings}\n allowEmpty={false}\n buttons={[\n {value: \"graph\", content: \"Graph\"},\n {value: \"grid\", content: \"Grid\"},\n {value: \"none\", content: \"None\"},\n ]}\n onChange={this.change(\"markings\")}\n />\n </div>\n <div className=\"perseus-widget-left-col\">\n <Checkbox\n label=\"Show tooltips\"\n checked={this.props.showTooltips}\n onChange={(value) => {\n this.change({showTooltips: value});\n }}\n />\n </div>\n </div>\n )}\n\n {_.contains(this.props.editableSettings, \"image\") && (\n <div className=\"image-settings\">\n <div>Background image:</div>\n <div>\n <label htmlFor=\"bg-url\">Url:</label>\n <input\n id=\"bg-url\"\n type=\"text\"\n className=\"graph-settings-background-url\"\n // eslint-disable-next-line react/no-string-refs\n ref=\"bg-url\"\n value={this.state.backgroundImage.url || \"\"}\n onChange={(e) => {\n const image = _.clone(\n this.props.backgroundImage,\n );\n image.url = e.target.value;\n this.setState({backgroundImage: image});\n }}\n onKeyPress={this.changeBackgroundUrl}\n onBlur={this.changeBackgroundUrl}\n />\n <InfoTip>\n <p>\n Create an image in graphie, or use the\n &quot;Add image&quot; function to create a\n background.\n </p>\n </InfoTip>\n </div>\n </div>\n )}\n\n {_.contains(this.props.editableSettings, \"measure\") && (\n <div className=\"misc-settings\">\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n <Checkbox\n label=\"Show ruler\"\n checked={this.props.showRuler}\n onChange={(value) => {\n this.change({showRuler: value});\n }}\n />\n </div>\n <div className=\"perseus-widget-right-col\">\n <Checkbox\n label=\"Show protractor\"\n checked={this.props.showProtractor}\n onChange={(value) => {\n this.change({showProtractor: value});\n }}\n />\n </div>\n </div>\n {this.props.showRuler && (\n <div>\n <div>\n <label>\n {\" \"}\n Ruler label:{\" \"}\n <select\n onChange={this.changeRulerLabel}\n value={this.props.rulerLabel}\n >\n <option value=\"\">None</option>\n <optgroup label=\"Metric\">\n {this.renderLabelChoices([\n [\"milimeters\", \"mm\"],\n [\"centimeters\", \"cm\"],\n [\"meters\", \"m\"],\n [\"kilometers\", \"km\"],\n ])}\n </optgroup>\n <optgroup label=\"Imperial\">\n {this.renderLabelChoices([\n [\"inches\", \"in\"],\n [\"feet\", \"ft\"],\n [\"yards\", \"yd\"],\n [\"miles\", \"mi\"],\n ])}\n </optgroup>\n </select>\n </label>\n </div>\n <div>\n <label>\n {\" \"}\n Ruler ticks:{\" \"}\n <select\n onChange={this.changeRulerTicks}\n value={this.props.rulerTicks}\n >\n {_.map(\n [1, 2, 4, 8, 10, 16],\n function (n) {\n return (\n <option\n key={n}\n value={n}\n >\n {n}\n </option>\n );\n },\n )}\n </select>\n </label>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default GraphSettings;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\nimport {\n components,\n Changeable,\n GrapherUtil,\n GrapherWidget,\n containerSizeClass,\n getInteractiveBoxFromSizeClass,\n} from \"@khanacademy/perseus\";\nimport {\n GrapherUtil as CoreGrapherUtil,\n grapherLogic,\n} from \"@khanacademy/perseus-core\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport GraphSettings from \"../components/graph-settings\";\n\nimport type {GrapherDefaultWidgetOptions} from \"@khanacademy/perseus-core\";\n\nconst {InfoTip, MultiButtonGroup} = components;\nconst Grapher = GrapherWidget.widget;\nconst {chooseType, defaultPlotProps, getEquationString, typeToButton} =\n GrapherUtil;\n\ntype Props = any;\n\nclass GrapherEditor extends React.Component<Props> {\n static propTypes = {\n ...Changeable.propTypes,\n };\n\n static widgetName = \"grapher\" as const;\n\n static defaultProps: GrapherDefaultWidgetOptions =\n grapherLogic.defaultWidgetOptions;\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n handleAvailableTypesChange = (newAvailableTypes: Array<any>) => {\n let correct = this.props.correct;\n\n // If the currently 'correct' type is removed from the list of types,\n // we need to change it to avoid impossible questions.\n if (!_.contains(newAvailableTypes, this.props.correct.type)) {\n const graph = this.props.graph;\n const newType = chooseType(newAvailableTypes);\n correct = defaultPlotProps(newType, graph);\n }\n this.props.onChange({\n availableTypes: newAvailableTypes,\n correct: correct,\n });\n };\n\n serialize: () => any = () => {\n return _.chain(this.props)\n .pick(\"correct\", \"availableTypes\")\n .extend({graph: _.omit(this.props.graph, \"box\")})\n .value();\n };\n\n render(): React.ReactNode {\n const sizeClass = containerSizeClass.SMALL;\n let equationString;\n let graph;\n if (this.props.graph.valid === true) {\n const graphProps = {\n graph: this.props.graph,\n plot: this.props.correct,\n availableTypes: this.props.availableTypes,\n onChange: (newProps, cb) => {\n let correct = this.props.correct;\n if (correct.type === newProps.plot?.type) {\n correct = _.extend({}, correct, newProps.plot);\n } else {\n // Clear options from previous graph\n correct = newProps.plot;\n }\n this.props.onChange({correct: correct}, cb);\n },\n trackInteraction: function () {},\n } as const;\n\n graph = (\n // NOTE(jeremy): This editor doesn't pass in a bunch of\n // standard props that the Renderer provides normally (eg.\n // alignment, findWidgets, etc).\n // @ts-expect-error - TS2769 - No overload matches this call.\n <Grapher\n {...graphProps}\n apiOptions={this.props.apiOptions}\n containerSizeClass={sizeClass}\n />\n );\n equationString = getEquationString(graphProps);\n } else {\n graph = (\n <div className=\"perseus-error\">{this.props.graph.valid}</div>\n );\n }\n\n return (\n <div>\n <div>\n Correct answer{\" \"}\n <InfoTip>\n <p>\n Graph the correct answer in the graph below and\n ensure the equation or point coordinates displayed\n represent the correct answer.\n </p>\n </InfoTip>{\" \"}\n : {equationString}\n </div>\n\n <GraphSettings\n editableSettings={[\"graph\", \"snap\", \"image\"]}\n box={getInteractiveBoxFromSizeClass(sizeClass)}\n range={this.props.graph.range}\n labels={this.props.graph.labels}\n step={this.props.graph.step}\n gridStep={this.props.graph.gridStep}\n snapStep={this.props.graph.snapStep}\n valid={this.props.graph.valid}\n backgroundImage={this.props.graph.backgroundImage}\n markings={this.props.graph.markings}\n rulerLabel={this.props.graph.rulerLabel}\n rulerTicks={this.props.graph.rulerTicks}\n showTooltips={this.props.graph.showTooltips}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"graph\")}\n />\n <div className=\"perseus-widget-row\">\n {/* eslint-disable-next-line jsx-a11y/label-has-associated-control -- TODO(LEMS-2871): Address a11y error */}\n <label>Available functions: </label>\n <MultiButtonGroup\n allowEmpty={false}\n values={this.props.availableTypes}\n buttons={_.map(CoreGrapherUtil.allTypes, typeToButton)}\n onChange={this.handleAvailableTypesChange}\n />\n </div>\n {graph}\n </div>\n );\n }\n}\n\nexport default GrapherEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\n/* eslint-disable react/forbid-prop-types */\nimport {ApiOptions, Changeable} from \"@khanacademy/perseus\";\nimport {\n groupLogic,\n type GroupDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport Editor from \"../editor\";\n\ntype Props = any;\n\nclass GroupEditor extends React.Component<Props> {\n static propTypes = {\n ...Changeable.propTypes,\n content: PropTypes.string,\n widgets: PropTypes.object,\n images: PropTypes.object,\n apiOptions: ApiOptions.propTypes,\n };\n\n static widgetName = \"group\" as const;\n\n static defaultProps: GroupDefaultWidgetOptions =\n groupLogic.defaultWidgetOptions;\n\n editor = React.createRef<Editor>();\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n getSaveWarnings: () => ReadonlyArray<any> = () => {\n return this.editor.current?.getSaveWarnings();\n };\n\n serialize: () => any = () => {\n return _.extend({}, this.editor.current?.serialize());\n };\n\n render(): React.ReactNode {\n return (\n <div className=\"perseus-group-editor\">\n <Editor\n ref={this.editor}\n content={this.props.content}\n widgets={this.props.widgets}\n apiOptions={this.props.apiOptions}\n images={this.props.images}\n widgetEnabled={true}\n immutableWidgets={false}\n onChange={this.props.onChange}\n />\n </div>\n );\n }\n}\n\nexport default GroupEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\nimport {Changeable, EditorJsonify} from \"@khanacademy/perseus\";\nimport {\n iframeLogic,\n type IFrameDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport BlurInput from \"../components/blur-input\";\n\ntype ChangeFn = typeof Changeable.change;\n\ntype PairEditorProps = any;\n\n/**\n * This is used for editing a name/value pair.\n */\nclass PairEditor extends React.Component<PairEditorProps> {\n static propTypes = {\n ...Changeable.propTypes,\n name: PropTypes.string,\n value: PropTypes.string,\n };\n\n static defaultProps: PairEditorProps = {\n name: \"\",\n value: \"\",\n };\n\n change: ChangeFn = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n return (\n <fieldset>\n <label>\n Name:\n <BlurInput\n value={this.props.name}\n onChange={this.change(\"name\")}\n />\n </label>\n <label>\n Value:\n <BlurInput\n value={this.props.value}\n onChange={this.change(\"value\")}\n />\n </label>\n </fieldset>\n );\n }\n}\n\ntype PairsEditorProps = any;\n\n/**\n * This is used for editing a set of name/value pairs.\n */\nclass PairsEditor extends React.Component<PairsEditorProps> {\n static propTypes = {\n ...Changeable.propTypes,\n pairs: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n value: PropTypes.string,\n }),\n ).isRequired,\n };\n\n change: ChangeFn = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n handlePairChange = (pairIndex: any, pair: any) => {\n // If they're both non empty, add a new one\n const pairs = this.props.pairs.slice();\n pairs[pairIndex] = pair;\n\n const lastPair = pairs[pairs.length - 1];\n if (lastPair.name && lastPair.value) {\n pairs.push({name: \"\", value: \"\"});\n }\n this.change(\"pairs\", pairs);\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const editors = _.map(this.props.pairs, (pair, i) => {\n return (\n <PairEditor\n key={i}\n name={pair.name}\n value={pair.value}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.handlePairChange.bind(this, i)}\n />\n );\n });\n return <div>{editors}</div>;\n }\n}\n\ntype IframeEditorProps = any;\n\n/**\n * This is the main editor for this widget, to specify all the options.\n */\nclass IframeEditor extends React.Component<IframeEditorProps> {\n static propTypes = {\n ...Changeable.propTypes,\n };\n\n static widgetName = \"iframe\" as const;\n\n static defaultProps: IFrameDefaultWidgetOptions =\n iframeLogic.defaultWidgetOptions;\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n handleSettingsChange: (arg1: any) => void = (settings) => {\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({settings: settings.pairs});\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n return (\n <div>\n <div style={{fontWeight: \"bold\", textAlign: \"center\"}}>\n This widget is deprecated! <br />\n Try using the Video or CS Program widgets instead.\n </div>\n <label>\n Url or Program ID:\n <BlurInput\n value={this.props.url}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"url\")}\n />\n </label>\n <br />\n {/* eslint-disable-next-line jsx-a11y/label-has-associated-control -- TODO(LEMS-2871): Address a11y error */}\n <label>\n Settings:\n <PairsEditor\n name=\"settings\"\n pairs={this.props.settings}\n onChange={this.handleSettingsChange}\n />\n </label>\n <br />\n <label>\n Width:\n <BlurInput\n value={this.props.width}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"width\")}\n />\n </label>\n <label>\n Height:\n <BlurInput\n value={this.props.height}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"height\")}\n />\n </label>\n <Checkbox\n label=\"Allow full screen\"\n checked={this.props.allowFullScreen}\n onChange={(value) => {\n this.props.onChange({allowFullScreen: value});\n }}\n />\n <br />\n <Checkbox\n label=\"Allow iframe content to redirect the page\"\n checked={this.props.allowTopNavigation}\n onChange={(value) => {\n this.props.onChange({allowTopNavigation: value});\n }}\n />\n </div>\n );\n }\n}\n\nexport default IframeEditor;\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport {\n components,\n Changeable,\n EditorJsonify,\n Util,\n iconTrash,\n} from \"@khanacademy/perseus\";\nimport {\n imageLogic,\n type ImageDefaultWidgetOptions,\n type Range,\n type Size,\n} from \"@khanacademy/perseus-core\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport BlurInput from \"../components/blur-input\";\nimport Editor from \"../editor\";\n\nimport type {APIOptions} from \"@khanacademy/perseus\";\n\ntype ChangeFn = typeof Changeable.change;\n\nconst {InfoTip, InlineIcon, RangeInput} = components;\n\n// Match any image URL (including \"web+graphie\" links) that is hosted by KA.\n// We're somewhat generous in our AWS URL matching\n// (\"ka-<something>.s3.amazonaws.com\") so that we don't have to update Perseus\n// every time we add a new proxied AWS bucket.\nconst INTERNALLY_HOSTED_DOMAINS =\n \"(\" +\n \"ka-.*.s3.amazonaws.com|\" +\n \"(fastly|cdn).kastatic.org|\" +\n \"khanacademy.org|\" +\n \"kasandbox.org\" +\n \")\";\nconst INTERNALLY_HOSTED_URL_RE = new RegExp(\n \"^(https?|web\\\\+graphie)://[^/]*\" + INTERNALLY_HOSTED_DOMAINS,\n);\n\n/**\n * Alignment option for captions, relative to specified coordinates.\n */\nconst captionAlignments = [\n \"center\",\n \"above\",\n \"above right\",\n \"right\",\n \"below right\",\n \"below\",\n \"below left\",\n \"left\",\n \"above left\",\n];\n\ntype Props = Changeable.ChangeableProps & {\n apiOptions: APIOptions;\n\n title: string;\n range: [Readonly<Range>, Readonly<Range>];\n box: Size;\n backgroundImage: any;\n labels: ReadonlyArray<string>;\n alt: string;\n caption: string;\n};\n\ntype State = {\n backgroundImageError?: string;\n};\n\nclass ImageEditor extends React.Component<Props> {\n static displayName = \"ImageEditor\";\n static widgetName = \"image\";\n _isMounted = false;\n\n static defaultProps: ImageDefaultWidgetOptions =\n imageLogic.defaultWidgetOptions;\n\n state: State = {\n backgroundImageError: \"\",\n };\n\n componentDidMount() {\n // TODO(scottgrant): This is a hack to remove the deprecated call to\n // this.isMounted() but is still considered an anti-pattern.\n this._isMounted = true;\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n _renderRowForLabel(label, i) {\n return (\n <tr key={i}>\n <td>\n <RangeInput\n value={label.coordinates}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.onCoordinateChange.bind(this, i)}\n />\n </td>\n <td style={{verticalAlign: \"bottom\", width: \"5px\"}}>\n <input\n type=\"text\"\n className=\"graph-settings-axis-label\"\n value={label.content}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.onContentChange.bind(this, i)}\n />\n </td>\n <td>\n <select\n className=\"perseus-widget-dropdown\"\n value={label.alignment}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.onAlignmentChange.bind(this, i)}\n >\n {captionAlignments.map(function (alignment, i) {\n return (\n <option key={\"\" + i} value={alignment}>\n {alignment}\n </option>\n );\n }, this)}\n </select>\n </td>\n <td>\n <a\n href=\"#\"\n className=\"simple-button orange delete-label\"\n title=\"Remove this label\"\n // eslint-disable-next-line react/jsx-no-bind\n onClick={this.removeLabel.bind(this, i)}\n >\n <InlineIcon {...iconTrash} />\n </a>\n </td>\n </tr>\n );\n }\n\n change: ChangeFn = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n removeLabel(labelIndex, e) {\n e.preventDefault();\n const labels = [...this.props.labels];\n labels.splice(labelIndex, 1);\n this.props.onChange({labels: labels});\n }\n\n onCoordinateChange(labelIndex, newCoordinates) {\n const labels = this.props.labels.slice();\n labels[labelIndex] = _.extend({}, labels[labelIndex], {\n coordinates: newCoordinates,\n });\n this.props.onChange({labels: labels});\n }\n\n onContentChange(labelIndex, e) {\n const newContent = e.target.value;\n const labels = this.props.labels.slice();\n labels[labelIndex] = _.extend({}, labels[labelIndex], {\n content: newContent,\n });\n this.props.onChange({labels: labels});\n }\n\n onAlignmentChange(labelIndex, e) {\n const newAlignment = e.target.value;\n const labels = this.props.labels.slice();\n labels[labelIndex] = _.extend({}, labels[labelIndex], {\n alignment: newAlignment,\n });\n this.props.onChange({labels: labels});\n }\n\n setUrl(url, width, height, silent) {\n // Because this calls into WidgetEditor._handleWidgetChange, which\n // checks for this widget's ref to serialize it.\n //\n // Errors if you switch items before the `Image` from `onUrlChange`\n // loads.\n if (!this._isMounted) {\n return;\n }\n\n const image = _.clone(this.props.backgroundImage);\n image.url = url;\n image.width = width;\n image.height = height;\n const box = [image.width, image.height];\n this.props.onChange(\n {\n backgroundImage: image,\n box: box,\n },\n null,\n silent,\n );\n }\n\n // silently load the image when the component mounts\n // silently update url and sizes when the image loads\n // noisily load the image in response to the author changing it\n async onUrlChange(url: string | undefined | null, silent: boolean) {\n // Check if we've been passed something that looks like a URL\n if (!url) {\n this.setUrl(url, 0, 0, silent);\n return;\n }\n\n // All article content must be KA-owned!\n if (!INTERNALLY_HOSTED_URL_RE.test(url)) {\n this.setState({\n backgroundImageError:\n \"Images must be from sites hosted by Khan Academy. \" +\n \"Please input a Khan Academy-owned address, or use the \" +\n \"Add Image tool to rehost an existing image\",\n });\n return;\n }\n\n // Clear previous errors\n this.setState({backgroundImageError: \"\"});\n\n try {\n const size = await Util.getImageSizeModern(url);\n this.setUrl(url, size[0], size[1], true);\n } catch (error) {\n this.setState({\n backgroundImageError: `There was an error loading the image URL: ${JSON.stringify(\n error,\n null,\n 2,\n )}`,\n });\n }\n }\n\n onRangeChange(type, newRange) {\n const range = this.props.range.slice();\n range[type] = newRange;\n this.props.onChange({range: range});\n }\n\n serialize() {\n return EditorJsonify.serialize.call(this);\n }\n\n render() {\n const backgroundImage = this.props.backgroundImage;\n\n const imageSettings = (\n <div className=\"image-settings\">\n {!Util.isLabeledSVG(backgroundImage.url) && (\n <div>\n {/* eslint-disable-next-line jsx-a11y/label-has-associated-control -- TODO(LEMS-2871): Address a11y error */}\n <label>\n <div>Preview:</div>\n {/* eslint-disable-next-line jsx-a11y/img-redundant-alt -- TODO(LEMS-2871): Address a11y error */}\n <img\n alt=\"Editor preview of image\"\n src={backgroundImage.url}\n style={{\n width: \"100%\",\n }}\n />\n </label>\n </div>\n )}\n <div>\n <label>\n <div>Dimensions:</div>\n <p>\n {backgroundImage.width}x{backgroundImage.height}\n </p>\n </label>\n </div>\n\n <div>\n {/* eslint-disable-next-line jsx-a11y/label-has-associated-control -- TODO(LEMS-2871): Address a11y error */}\n <label>\n <div>\n Alt text:\n <InfoTip>\n This is important for screenreaders. The content\n of this alt text will be formatted as markdown\n (tables, emphasis, etc. are supported).\n </InfoTip>\n </div>\n <Editor\n apiOptions={this.props.apiOptions}\n content={this.props.alt}\n onChange={(props) => {\n if (props.content != null) {\n this.change(\"alt\", props.content);\n }\n }}\n widgetEnabled={false}\n />\n </label>\n </div>\n <div>\n {/* eslint-disable-next-line jsx-a11y/label-has-associated-control -- TODO(LEMS-2871): Address a11y error */}\n <label>\n <div>Caption:</div>\n <Editor\n apiOptions={this.props.apiOptions}\n content={this.props.caption}\n onChange={(props) => {\n if (props.content != null) {\n this.change(\"caption\", props.content);\n }\n }}\n widgetEnabled={false}\n />\n </label>\n </div>\n </div>\n );\n\n const backgroundImageErrorText = (\n <div className=\"renderer-widget-error\">\n {this.state.backgroundImageError}\n </div>\n );\n\n return (\n <div className=\"perseus-image-editor\">\n <label>\n Image url:\n <InfoTip>Paste an image or graphie image URL.</InfoTip>\n {this.state.backgroundImageError &&\n backgroundImageErrorText}\n <BlurInput\n value={backgroundImage.url || \"\"}\n style={{width: 332}}\n onChange={(url) => this.onUrlChange(url, false)}\n />\n </label>\n\n {backgroundImage.url && imageSettings}\n </div>\n );\n }\n}\n\nexport default ImageEditor;\n","import {components, PerseusI18nContext, Util} from \"@khanacademy/perseus\";\nimport {inputNumberLogic} from \"@khanacademy/perseus-core\";\nimport {inputNumberAnswerTypes} from \"@khanacademy/perseus-score\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport BlurInput from \"../components/blur-input\";\n\nimport type {ParsedValue} from \"@khanacademy/perseus\";\nimport type {\n PerseusInputNumberWidgetOptions,\n InputNumberDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\n\nconst {InfoTip} = components;\n\ntype Props = {\n value: number;\n simplify: PerseusInputNumberWidgetOptions[\"simplify\"];\n size: PerseusInputNumberWidgetOptions[\"size\"];\n inexact: PerseusInputNumberWidgetOptions[\"inexact\"];\n maxError: PerseusInputNumberWidgetOptions[\"maxError\"];\n answerType: PerseusInputNumberWidgetOptions[\"answerType\"];\n rightAlign: PerseusInputNumberWidgetOptions[\"rightAlign\"];\n onChange: (arg1: {\n value?: ParsedValue | 0;\n simplify?: Props[\"simplify\"];\n size?: Props[\"size\"];\n inexact?: Props[\"inexact\"];\n maxError?: Props[\"maxError\"];\n answerType?: Props[\"answerType\"];\n rightAlign?: Props[\"rightAlign\"];\n }) => void;\n};\n\nclass InputNumberEditor extends React.Component<Props> {\n static contextType = PerseusI18nContext;\n declare context: React.ContextType<typeof PerseusI18nContext>;\n\n static widgetName = \"input-number\" as const;\n\n static defaultProps: InputNumberDefaultWidgetOptions =\n inputNumberLogic.defaultWidgetOptions;\n\n input = React.createRef<BlurInput>();\n\n handleAnswerChange: (arg1: string) => void = (str) => {\n const value = Util.firstNumericalParse(str, this.context.strings) || 0;\n this.props.onChange({value: value});\n };\n\n focus: () => boolean = () => {\n this.input.current?.focus();\n return true;\n };\n\n serialize: () => {\n value: Props[\"value\"];\n simplify: Props[\"simplify\"];\n size: Props[\"size\"];\n inexact: Props[\"inexact\"];\n maxError: Props[\"maxError\"];\n answerType: Props[\"answerType\"];\n rightAlign: Props[\"rightAlign\"];\n } = () => ({\n value: this.props.value,\n simplify: this.props.simplify,\n size: this.props.size,\n inexact: this.props.inexact,\n maxError: this.props.maxError,\n answerType: this.props.answerType,\n rightAlign: this.props.rightAlign,\n });\n\n render(): React.ReactNode {\n const answerTypeOptions = _.map(\n inputNumberAnswerTypes,\n function (v, k) {\n return (\n <option value={k} key={k}>\n {v.name}\n </option>\n );\n },\n this,\n );\n\n return (\n <div>\n <div>\n <label>\n Correct answer:{\" \"}\n <BlurInput\n value={\"\" + this.props.value}\n onChange={this.handleAnswerChange}\n ref={this.input}\n />\n </label>\n </div>\n\n <div>\n <label>\n Unsimplified answers{\" \"}\n <select\n value={this.props.simplify}\n onChange={(e) => {\n this.props.onChange({\n // @ts-expect-error - TS2322 - Type 'string' is not assignable to type '\"optional\" | \"required\" | \"enforced\" | undefined'.\n simplify: e.target.value,\n });\n }}\n >\n <option value=\"required\">will not be graded</option>\n <option value=\"optional\">will be accepted</option>\n <option value=\"enforced\">\n will be marked wrong\n </option>\n </select>\n </label>\n <InfoTip>\n <p>\n Normally select &quot;will not be graded&quot;. This\n will give the user a message saying the answer is\n correct but not simplified. The user will then have\n to simplify it and re-enter, but will not be\n penalized. (5th grade and anything after)\n </p>\n <p>\n Select &quot;will be accepted&quot; only if the user\n is not expected to know how to simplify fractions\n yet. (Anything prior to 5th grade)\n </p>\n <p>\n Select &quot;will be marked wrong&quot; only if we\n are specifically assessing the ability to simplify.\n </p>\n </InfoTip>\n </div>\n\n <div>\n <label>\n <input\n type=\"checkbox\"\n checked={this.props.inexact}\n onChange={(e) => {\n this.props.onChange({\n inexact: e.target.checked,\n });\n }}\n />{\" \"}\n Allow inexact answers\n </label>\n\n <label>\n <input /* TODO(emily): don't use a hidden checkbox\n for alignment */\n type=\"checkbox\"\n style={{visibility: \"hidden\"}}\n />\n Max error:{\" \"}\n <input\n type=\"text\"\n disabled={!this.props.inexact}\n defaultValue={this.props.maxError}\n aria-label=\"Max error\"\n onBlur={(e) => {\n const ans =\n \"\" +\n (Util.firstNumericalParse(\n e.target.value,\n this.context.strings,\n ) || 0);\n e.target.value = ans;\n this.props.onChange({maxError: ans});\n }}\n />\n </label>\n </div>\n\n <div>\n Answer type:{\" \"}\n <select\n value={this.props.answerType}\n onChange={(e) => {\n // @ts-expect-error - TS2322 - Type 'string' is not assignable to type '\"number\" | \"integer\" | \"mixed\" | \"decimal\" | \"improper\" | \"percent\" | \"pi\" | \"rational\" | undefined'.\n this.props.onChange({answerType: e.target.value});\n }}\n aria-label=\"Answer type\"\n >\n {answerTypeOptions}\n </select>\n <InfoTip>\n <p>\n Use the default &quot;Numbers&quot; unless the\n answer must be in a specific form (e.g., question is\n about converting decimals to fractions).\n </p>\n </InfoTip>\n </div>\n\n <div>\n <label>\n Width{\" \"}\n <select\n value={this.props.size}\n onChange={(e) => {\n // @ts-expect-error - TS2322 - Type 'string' is not assignable to type '\"small\" | \"normal\" | undefined'.\n this.props.onChange({size: e.target.value});\n }}\n >\n <option value=\"normal\">Normal (80px)</option>\n <option value=\"small\">Small (40px)</option>\n </select>\n </label>\n <InfoTip>\n <p>\n Use size &quot;Normal&quot; for all text boxes,\n unless there are multiple text boxes in one line and\n the answer area is too narrow to fit them.\n </p>\n </InfoTip>\n </div>\n\n <div>\n <label>\n <input\n type=\"checkbox\"\n checked={this.props.rightAlign}\n onChange={(e) => {\n this.props.onChange({\n rightAlign: e.target.checked,\n });\n }}\n />{\" \"}\n Right alignment\n </label>\n </div>\n </div>\n );\n }\n}\n\nexport default InputNumberEditor;\n","/* eslint-disable jsx-a11y/anchor-is-valid */\n\nimport {components, iconChevronDown, iconTrash} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\n\nimport {\n iconChevronRight,\n iconCircleArrowDown,\n iconCircleArrowUp,\n} from \"../../styles/icon-paths\";\n\nconst {InlineIcon} = components;\n\ntype Props = {\n children: React.ReactElement<any> | ReadonlyArray<React.ReactElement<any>>;\n initiallyVisible: boolean;\n onDelete?: () => void | null | undefined;\n onDown?: () => void | null | undefined;\n onUp?: () => void | null | undefined;\n title: string | React.ReactElement<any>;\n};\n\ntype State = {\n show: boolean;\n};\n\nclass ElementContainer extends React.Component<Props, State> {\n static defaultProps: {\n initiallyVisible: boolean;\n title: string;\n } = {\n initiallyVisible: false,\n title: \"More\",\n };\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n show: props.initiallyVisible,\n };\n }\n\n toggle: (e: React.SyntheticEvent) => void = (e: React.SyntheticEvent) => {\n e.preventDefault();\n this.setState({show: !this.state.show});\n };\n\n render(): React.ReactNode {\n return (\n <div className=\"perseus-interaction-element\">\n <a\n href=\"#\"\n className={\n \"perseus-interaction-element-title \" +\n (this.state.show ? \"open\" : \"closed\")\n }\n onClick={this.toggle}\n >\n {this.state.show ? (\n <InlineIcon {...iconChevronDown} />\n ) : (\n <InlineIcon {...iconChevronRight} />\n )}\n {this.props.title}\n </a>\n <div\n className={\n \"perseus-interaction-element-content \" +\n (this.state.show ? \"enter\" : \"leave\")\n }\n >\n {this.props.children}\n {(this.props.onUp != null ||\n this.props.onDown != null ||\n this.props.onDelete != null) && (\n <div className=\"edit-controls\">\n {this.props.onUp != null && (\n <button onClick={this.props.onUp}>\n <InlineIcon {...iconCircleArrowUp} />\n </button>\n )}\n {this.props.onDown != null && (\n <button onClick={this.props.onDown}>\n <InlineIcon {...iconCircleArrowDown} />\n </button>\n )}\n {this.props.onDelete != null && (\n <button onClick={this.props.onDelete}>\n <InlineIcon {...iconTrash} />\n </button>\n )}\n </div>\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default ElementContainer;\n","import {components, KhanColors} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport type {Changeable} from \"@khanacademy/perseus\";\n\nconst {ButtonGroup} = components;\n\nconst COLORS = [\n KhanColors.BLACK,\n KhanColors.BLUE,\n KhanColors.GREEN,\n KhanColors.PINK,\n KhanColors.PURPLE,\n KhanColors.RED,\n KhanColors.GRAY,\n];\n\nconst LIGHT_COLORS = [\n KhanColors.LIGHT_BLUE,\n KhanColors.LIGHT_ORANGE,\n KhanColors.LIGHT_PINK,\n KhanColors.LIGHT_GREEN,\n KhanColors.LIGHT_PURPLE,\n KhanColors.LIGHT_RED,\n \"#fff\",\n];\n\ntype Props = {\n lightColors?: boolean;\n value?: string;\n} & Changeable.ChangeableProps;\n\nclass ColorPicker extends React.Component<Props> {\n static defaultProps: {\n lightColors: boolean;\n value: any;\n } = {\n value: KhanColors.BLACK,\n lightColors: false,\n };\n\n render(): React.ReactNode {\n const colors = this.props.lightColors ? LIGHT_COLORS : COLORS;\n return (\n <ButtonGroup\n value={this.props.value}\n allowEmpty={false}\n buttons={_.map(colors, (color) => {\n return {\n value: color,\n content: (\n <span>\n <span\n className=\"colorpicker-circle\"\n style={{background: color}}\n />\n &nbsp;\n </span>\n ),\n };\n })}\n onChange={this.props.onChange}\n />\n );\n }\n}\n\nexport default ColorPicker;\n","import {components} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\n\nimport type {Changeable} from \"@khanacademy/perseus\";\n\ntype Props = {\n value?: string;\n} & Changeable.ChangeableProps;\n\nconst {ButtonGroup} = components;\n\nclass DashPicker extends React.Component<Props> {\n static defaultProps: {\n value: string;\n } = {\n value: \"\",\n };\n\n render(): React.ReactNode {\n return (\n <ButtonGroup\n value={this.props.value}\n allowEmpty={false}\n buttons={[\n {value: \"\", content: <span>&mdash;</span>},\n {value: \"-\", content: <span>&ndash;&ndash;&ndash;</span>},\n {\n value: \"- \",\n content: <span>&ndash;&nbsp;&nbsp;&ndash;</span>,\n },\n {\n value: \".\",\n content: <span>&middot;&middot;&middot;&middot;</span>,\n },\n {\n value: \". \",\n content: <span>&middot; &middot; &middot;</span>,\n },\n ]}\n onChange={this.props.onChange}\n />\n );\n }\n}\n\nexport default DashPicker;\n","import {createMathField, useMathInputI18n} from \"@khanacademy/math-input\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {color} from \"@khanacademy/wonder-blocks-tokens\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\nimport {useRef, useEffect} from \"react\";\n\nimport type {MathFieldInterface} from \"@khanacademy/math-input\";\n\ntype Props = {\n value: string;\n onChange: (value: string) => void;\n};\n\n/**\n * A simple Mathquill MathField input for the InteractionEditor.\n * Unlike our other uses of Mathquill, we're not using a keypad here;\n * it's just the input itself for use writing TeX.\n */\nexport default function MathquillInput(props: Props) {\n const mathFieldWrapperRef = useRef<HTMLSpanElement>(null);\n const mathFieldInstance = useRef<MathFieldInterface>();\n const {locale, strings} = useMathInputI18n();\n\n useEffect(() => {\n // If we have the mount for the input, but not the input\n // make a new Mathquill input\n if (mathFieldWrapperRef.current && !mathFieldInstance.current) {\n // Initialize MathQuill.MathField instance\n mathFieldInstance.current = createMathField(\n mathFieldWrapperRef.current,\n locale,\n strings,\n // TODO(LEMS-2656): remove TS suppression\n // @ts-expect-error: Types of parameters 'mathField' and 'mq' are incompatible. Type 'EditableMathQuill | BaseMathQuill' is not assignable to type 'MathFieldInterface'.\n (baseConfig) => ({\n ...baseConfig,\n handlers: {\n edit: (mathField) => {\n // This handler is guaranteed to be called on change, but\n // unlike React it sometimes generates false positives.\n // One of these is on initialization (with an empty string\n // value), so we have to guard against that below.\n let value = mathField.latex();\n\n // Provide a MathQuill-compatible way to generate the\n // not-equals sign without pasting unicode or typing TeX\n value = value.replace(/<>/g, \"\\\\ne\");\n\n if (props.value !== value) {\n props.onChange(value);\n }\n },\n upOutOf: (mathField: MathFieldInterface) => {\n // This handler is called when the user presses the up\n // arrow key, but there is nowhere in the expression to go\n // up to (no numerator or exponent). For ease of use,\n // interpret this as an attempt to create an exponent.\n mathField.typedText(\"^\");\n },\n },\n }),\n );\n }\n });\n\n return (\n <View style={styles.outerWrapper}>\n <span\n ref={mathFieldWrapperRef}\n className=\"perseus-math-input mq-editable-field mq-math-mode\"\n />\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n outerWrapper: {\n display: \"inline-block\",\n borderStyle: \"solid\",\n borderWidth: 1,\n borderColor: color.offBlack50,\n borderRadius: 3,\n background: color.white,\n },\n});\n","import {\n components,\n Changeable,\n Dependencies,\n EditorJsonify,\n KhanColors,\n} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport ColorPicker from \"./color-picker\";\nimport DashPicker from \"./dash-picker\";\nimport MathquillInput from \"./mathquill-input\";\n\nconst {NumberInput} = components;\nconst {getDependencies} = Dependencies;\n\ntype Props = Changeable.ChangeableProps & {\n value: string;\n rangeMin: string;\n rangeMax: string;\n color: string;\n strokeDasharray: string;\n strokeWidth: number;\n};\n\ntype DefaultProps = {\n value: Props[\"value\"];\n rangeMin: Props[\"rangeMin\"];\n rangeMax: Props[\"rangeMax\"];\n color: Props[\"color\"];\n strokeDasharray: Props[\"strokeDasharray\"];\n strokeWidth: Props[\"strokeWidth\"];\n};\n\n// Editor for function plots\nclass FunctionEditor extends React.Component<Props> {\n static defaultProps: DefaultProps = {\n value: \"x\",\n rangeMin: \"-10\",\n rangeMax: \"10\",\n color: KhanColors.BLUE,\n strokeDasharray: \"\",\n strokeWidth: 2,\n };\n\n change: (arg1: any, arg2?: any, arg3?: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const {TeX} = getDependencies();\n\n return (\n <div className=\"graph-settings\">\n <div className=\"perseus-widget-row\">\n {/* @ts-expect-error - TS2339 - Property 'funcName' does not exist on type props. */}\n <TeX>{this.props.funcName + \"(x)=\"}</TeX>{\" \"}\n <MathquillInput\n value={this.props.value}\n onChange={this.change(\"value\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n Range: <TeX>\\Large(</TeX>\n <MathquillInput\n value={this.props.rangeMin}\n onChange={this.change(\"rangeMin\")}\n />\n <TeX>,</TeX>{\" \"}\n <MathquillInput\n value={this.props.rangeMax}\n onChange={this.change(\"rangeMax\")}\n />\n <TeX>\\Large)</TeX>\n </div>\n <div className=\"perseus-widget-row\">\n <ColorPicker\n value={this.props.color}\n onChange={this.change(\"color\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n <DashPicker\n value={this.props.strokeDasharray}\n onChange={this.change(\"strokeDasharray\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n Width:{\" \"}\n <NumberInput\n value={this.props.strokeWidth}\n placeholder={2}\n onChange={this.change(\"strokeWidth\")}\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default FunctionEditor;\n","import {\n components,\n Changeable,\n Dependencies,\n EditorJsonify,\n KhanColors,\n} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport ColorPicker from \"./color-picker\";\nimport MathquillInput from \"./mathquill-input\";\n\nconst {TextInput} = components;\nconst {getDependencies} = Dependencies;\n\ntype Props = Changeable.ChangeableProps & {\n color: string;\n coordX: string;\n coordY: string;\n label: string;\n};\n\ntype DefaultProps = {\n color: Props[\"color\"];\n coordX: Props[\"coordX\"];\n coordY: Props[\"coordY\"];\n label: Props[\"label\"];\n};\n\n// Editor for labels\n// TODO(eater): Add text direction\nclass LabelEditor extends React.Component<Props> {\n static defaultProps: DefaultProps = {\n coordX: \"0\",\n coordY: \"0\",\n color: KhanColors.BLACK,\n label: \"\\\\phi\",\n };\n\n change: (arg1: any, arg2?: any, arg3?: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const {TeX} = getDependencies();\n\n return (\n <div className=\"graph-settings\">\n <div className=\"perseus-widget-row\">\n <TextInput\n value={this.props.label}\n onChange={this.change(\"label\")}\n style={{\n width: \"100%\",\n }}\n />\n </div>\n <div className=\"perseus-widget-row\">\n Location: <TeX>\\Large(</TeX>\n <MathquillInput\n value={this.props.coordX}\n onChange={this.change(\"coordX\")}\n />\n <TeX>,</TeX>{\" \"}\n <MathquillInput\n value={this.props.coordY}\n onChange={this.change(\"coordY\")}\n />\n <TeX>\\Large)</TeX>\n </div>\n <div className=\"perseus-widget-row\">\n <ColorPicker\n value={this.props.color}\n onChange={this.change(\"color\")}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default LabelEditor;\n","import {components} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\n\nimport type {Changeable} from \"@khanacademy/perseus\";\n\nconst {ButtonGroup} = components;\n\ntype Props = {\n value?: string;\n} & Changeable.ChangeableProps;\n\nclass ArrowPicker extends React.Component<Props> {\n static defaultProps: {\n value: string;\n } = {\n value: \"\",\n };\n\n render(): React.ReactNode {\n return (\n <ButtonGroup\n value={this.props.value}\n allowEmpty={false}\n buttons={[\n {value: \"\", content: <span>&mdash;</span>},\n {value: \"->\", content: <span>&#x2192;</span>},\n /*\n TODO(eater): fix khan-exercises so these are supported\n {value: \"<-\", content: <span>&#x2190;</span>},\n {value: \"<->\", content: <span>&#x2194;</span>}\n */\n ]}\n onChange={this.props.onChange}\n />\n );\n }\n}\n\nexport default ArrowPicker;\n","import {\n components,\n Changeable,\n Dependencies,\n EditorJsonify,\n KhanColors,\n} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport ArrowPicker from \"./arrow-picker\";\nimport ColorPicker from \"./color-picker\";\nimport DashPicker from \"./dash-picker\";\nimport MathquillInput from \"./mathquill-input\";\n\nconst {NumberInput} = components;\nconst {getDependencies} = Dependencies;\n\ntype Props = Changeable.ChangeableProps & {\n startX: string;\n startY: string;\n endX: string;\n endY: string;\n color: string;\n strokeDasharray: string;\n arrows: string;\n strokeWidth: number;\n};\n\ntype DefaultProps = {\n startX: Props[\"startX\"];\n startY: Props[\"startY\"];\n endX: Props[\"endX\"];\n endY: Props[\"endY\"];\n color: Props[\"color\"];\n strokeDasharray: Props[\"strokeDasharray\"];\n arrows: Props[\"arrows\"];\n strokeWidth: Props[\"strokeWidth\"];\n};\n\n// Editor for non-interactive line segments\nclass LineEditor extends React.Component<Props> {\n static defaultProps: DefaultProps = {\n startX: \"-5\",\n startY: \"5\",\n endX: \"5\",\n endY: \"5\",\n color: KhanColors.BLACK,\n strokeDasharray: \"\",\n arrows: \"\",\n strokeWidth: 2,\n };\n\n change: (arg1: any, arg2?: any, arg3?: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const {TeX} = getDependencies();\n\n return (\n <div className=\"graph-settings\">\n <div className=\"perseus-widget-row\">\n Start: <TeX>\\Large(</TeX>\n <MathquillInput\n value={this.props.startX}\n onChange={this.change(\"startX\")}\n />\n <TeX>,</TeX>{\" \"}\n <MathquillInput\n value={this.props.startY}\n onChange={this.change(\"startY\")}\n />\n <TeX>\\Large)</TeX>\n </div>\n <div className=\"perseus-widget-row\">\n End: <TeX>\\Large(</TeX>\n <MathquillInput\n value={this.props.endX}\n onChange={this.change(\"endX\")}\n />\n <TeX>,</TeX>{\" \"}\n <MathquillInput\n value={this.props.endY}\n onChange={this.change(\"endY\")}\n />\n <TeX>\\Large)</TeX>\n </div>\n <div className=\"perseus-widget-row\">\n <ColorPicker\n value={this.props.color}\n onChange={this.change(\"color\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n <DashPicker\n value={this.props.strokeDasharray}\n onChange={this.change(\"strokeDasharray\")}\n />\n &nbsp; &nbsp;\n <ArrowPicker\n value={this.props.arrows}\n onChange={this.change(\"arrows\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n Width:{\" \"}\n <NumberInput\n value={this.props.strokeWidth}\n placeholder={2}\n onChange={this.change(\"strokeWidth\")}\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default LineEditor;\n","import {components, Changeable, Dependencies} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\n\nimport MathquillInput from \"./mathquill-input\";\n\nconst {ButtonGroup, NumberInput} = components;\n\ntype Props = Changeable.ChangeableProps & {\n constraint: string;\n constraintFn: string;\n constraintXMax: string;\n constraintXMin: string;\n constraintYMax: string;\n constraintYMin: string;\n snap: number;\n};\n\ntype DefaultProps = {\n constraint: Props[\"constraint\"];\n constraintFn: Props[\"constraintFn\"];\n constraintXMax: Props[\"constraintXMax\"];\n constraintXMin: Props[\"constraintXMin\"];\n constraintYMax: Props[\"constraintYMax\"];\n constraintYMin: Props[\"constraintYMin\"];\n snap: Props[\"snap\"];\n};\n\nclass ConstraintEditor extends React.Component<Props> {\n static defaultProps: DefaultProps = {\n constraint: \"none\",\n snap: 0.5,\n constraintFn: \"0\",\n constraintXMin: \"-10\",\n constraintXMax: \"10\",\n constraintYMin: \"-10\",\n constraintYMax: \"10\",\n };\n\n change: (\n propName: string,\n ) => (value?: any, callback?: () => unknown) => unknown = (\n propName: string,\n ): ((value?: any, callback?: () => unknown) => unknown) => {\n return Changeable.change.call(this, propName);\n };\n\n render(): React.ReactNode {\n const {TeX} = Dependencies.getDependencies();\n\n return (\n <div>\n <div className=\"perseus-widget-row\">\n Constraint:{\" \"}\n <ButtonGroup\n value={this.props.constraint}\n allowEmpty={false}\n buttons={[\n {value: \"none\", content: \"None\"},\n {value: \"snap\", content: \"Snap\"},\n {value: \"x\", content: \"x=\"},\n {value: \"y\", content: \"y=\"},\n ]}\n onChange={this.change(\"constraint\")}\n />\n </div>\n {this.props.constraint === \"snap\" && (\n <div className=\"perseus-widget-row\">\n Snap:{\" \"}\n <NumberInput\n value={this.props.snap}\n placeholder={0}\n onChange={this.change(\"snap\")}\n />\n </div>\n )}\n {this.props.constraint === \"x\" && (\n <div className=\"graph-settings\">\n <div className=\"perseus-widget-row\">\n <TeX>x=</TeX>{\" \"}\n <MathquillInput\n value={this.props.constraintFn}\n onChange={this.change(\"constraintFn\")}\n />\n </div>\n </div>\n )}\n {this.props.constraint === \"y\" && (\n <div className=\"graph-settings\">\n <div className=\"perseus-widget-row\">\n <TeX>y=</TeX>{\" \"}\n <MathquillInput\n value={this.props.constraintFn}\n onChange={this.change(\"constraintFn\")}\n />\n </div>\n </div>\n )}\n Ensure these are set so nothing can be dragged off the canvas:\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-row\">\n <TeX>x \\in \\Large[</TeX>{\" \"}\n <MathquillInput\n value={this.props.constraintXMin}\n onChange={this.change(\"constraintXMin\")}\n />\n <TeX>, </TeX>{\" \"}\n <MathquillInput\n value={this.props.constraintXMax}\n onChange={this.change(\"constraintXMax\")}\n />{\" \"}\n <TeX>\\Large]</TeX>\n </div>\n </div>\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-row\">\n <TeX>y \\in \\Large[</TeX>{\" \"}\n <MathquillInput\n value={this.props.constraintYMin}\n onChange={this.change(\"constraintYMin\")}\n />\n <TeX>, </TeX>{\" \"}\n <MathquillInput\n value={this.props.constraintYMax}\n onChange={this.change(\"constraintYMax\")}\n />{\" \"}\n <TeX>\\Large]</TeX>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default ConstraintEditor;\n","import {\n components,\n Changeable,\n Dependencies,\n EditorJsonify,\n} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport ConstraintEditor from \"./constraint-editor\";\nimport MathquillInput from \"./mathquill-input\";\n\ntype ChangeFn = typeof Changeable.change;\n\nconst {NumberInput} = components;\nconst {getDependencies} = Dependencies;\n\ntype Props = Changeable.ChangeableProps & {\n startX: string;\n startY: string;\n endX: string;\n endY: string;\n constraint: string;\n snap: number;\n constraintFn: string;\n startSubscript: number;\n endSubscript: number;\n};\n\ntype DefaultProps = {\n startX: Props[\"startX\"];\n startY: Props[\"startY\"];\n endX: Props[\"endX\"];\n endY: Props[\"endY\"];\n constraint: Props[\"constraint\"];\n snap: Props[\"snap\"];\n constraintFn: Props[\"constraintFn\"];\n};\n\n// Editor for interactive movable line segments\n// TODO(eater): Rethink how constraints are represented\nclass MovableLineEditor extends React.Component<Props> {\n static defaultProps: DefaultProps = {\n startX: \"-5\",\n startY: \"5\",\n endX: \"5\",\n endY: \"5\",\n constraint: \"none\",\n snap: 0.5,\n constraintFn: \"0\",\n // @ts-expect-error - TS2561\n constraintXMin: \"-10\",\n constraintXMax: \"10\",\n constraintYMin: \"-10\",\n constraintYMax: \"10\",\n };\n\n change: ChangeFn = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const {TeX} = getDependencies();\n\n return (\n <div className=\"graph-settings\">\n Initial position:\n <div className=\"perseus-widget-row\">\n Start: <TeX>\\Large(</TeX>\n <MathquillInput\n value={this.props.startX}\n onChange={this.change(\"startX\")}\n />\n <TeX>,</TeX>{\" \"}\n <MathquillInput\n value={this.props.startY}\n onChange={this.change(\"startY\")}\n />\n <TeX>\\Large)</TeX>\n </div>\n <div className=\"perseus-widget-row\">\n End: <TeX>\\Large(</TeX>\n <MathquillInput\n value={this.props.endX}\n onChange={this.change(\"endX\")}\n />\n <TeX>,</TeX>{\" \"}\n <MathquillInput\n value={this.props.endY}\n onChange={this.change(\"endY\")}\n />\n <TeX>\\Large)</TeX>\n </div>\n <div className=\"perseus-widget-row\">\n Start updates <TeX>(x_n, y_n)</TeX> for <TeX>n =</TeX>\n <NumberInput\n value={this.props.startSubscript}\n placeholder={0}\n onChange={this.change(\"startSubscript\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n End updates <TeX>(x_m, y_m)</TeX> for <TeX>m =</TeX>\n <NumberInput\n value={this.props.endSubscript}\n placeholder={0}\n onChange={this.change(\"endSubscript\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n All constraints are applied to the start point.\n </div>\n <ConstraintEditor {...this.props} />\n </div>\n );\n }\n}\n\nexport default MovableLineEditor;\n","import {\n components,\n Changeable,\n Dependencies,\n EditorJsonify,\n} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport ConstraintEditor from \"./constraint-editor\";\nimport MathquillInput from \"./mathquill-input\";\n\ntype ChangeFn = typeof Changeable.change;\n\nconst {NumberInput} = components;\nconst {getDependencies} = Dependencies;\n\ntype Props = Changeable.ChangeableProps & {\n startX: string;\n startY: string;\n constraint: string;\n snap: number;\n constraintFn: string;\n varSubscript: number;\n};\n\ntype DefaultProps = {\n startX: Props[\"startX\"];\n startY: Props[\"startY\"];\n constraint: Props[\"constraint\"];\n snap: Props[\"snap\"];\n constraintFn: Props[\"constraintFn\"];\n};\n\n// Editor for interactive movable points\n// TODO(eater): Rethink how constraints are represented\nclass MovablePointEditor extends React.Component<Props> {\n static defaultProps: DefaultProps = {\n startX: \"0\",\n startY: \"0\",\n constraint: \"none\",\n snap: 0.5,\n constraintFn: \"0\",\n // @ts-expect-error - TS2561\n constraintXMin: \"-10\",\n constraintXMax: \"10\",\n constraintYMin: \"-10\",\n constraintYMax: \"10\",\n };\n\n change: ChangeFn = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const {TeX} = getDependencies();\n\n return (\n <div className=\"graph-settings\">\n <div className=\"perseus-widget-row\">\n Start: <TeX>\\Large(</TeX>\n <MathquillInput\n value={this.props.startX}\n onChange={this.change(\"startX\")}\n />\n <TeX>,</TeX>{\" \"}\n <MathquillInput\n value={this.props.startY}\n onChange={this.change(\"startY\")}\n />\n <TeX>\\Large)</TeX>\n </div>\n <div className=\"perseus-widget-row\">\n Update <TeX>(x_n, y_n)</TeX> for <TeX>n =</TeX>{\" \"}\n <NumberInput\n value={this.props.varSubscript}\n placeholder={0}\n onChange={this.change(\"varSubscript\")}\n />\n </div>\n <ConstraintEditor {...this.props} />\n </div>\n );\n }\n}\n\nexport default MovablePointEditor;\n","import {\n components,\n Changeable,\n Dependencies,\n EditorJsonify,\n KhanColors,\n} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport ColorPicker from \"./color-picker\";\nimport DashPicker from \"./dash-picker\";\nimport MathquillInput from \"./mathquill-input\";\n\nconst {NumberInput} = components;\nconst {getDependencies} = Dependencies;\n\ntype Props = Changeable.ChangeableProps & {\n x: string;\n y: string;\n rangeMin: string;\n rangeMax: string;\n color: string;\n strokeDasharray: string;\n strokeWidth: number;\n};\n\ntype DefaultProps = {\n x: Props[\"x\"];\n y: Props[\"y\"];\n rangeMin: Props[\"rangeMin\"];\n rangeMax: Props[\"rangeMax\"];\n color: Props[\"color\"];\n strokeDasharray: Props[\"strokeDasharray\"];\n strokeWidth: Props[\"strokeWidth\"];\n};\n\n// Editor for parametric plots\nclass ParametricEditor extends React.Component<Props> {\n static defaultProps: DefaultProps = {\n x: \"cos(t)\",\n y: \"sin(t)\",\n rangeMin: \"0\",\n rangeMax: \"2\\\\pi\",\n color: KhanColors.BLUE,\n strokeDasharray: \"\",\n strokeWidth: 2,\n };\n\n change: (arg1: any, arg2?: any, arg3?: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const {TeX} = getDependencies();\n\n return (\n <div className=\"graph-settings\">\n <div className=\"perseus-widget-row\">\n <TeX>X(t) =</TeX>{\" \"}\n <MathquillInput\n value={this.props.x}\n onChange={this.change(\"x\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n <TeX>Y(t) =</TeX>{\" \"}\n <MathquillInput\n value={this.props.y}\n onChange={this.change(\"y\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n Range: <TeX>\\Large(</TeX>\n <MathquillInput\n value={this.props.rangeMin}\n onChange={this.change(\"rangeMin\")}\n />\n <TeX>,</TeX>{\" \"}\n <MathquillInput\n value={this.props.rangeMax}\n onChange={this.change(\"rangeMax\")}\n />\n <TeX>\\Large)</TeX>\n </div>\n <div className=\"perseus-widget-row\">\n <ColorPicker\n value={this.props.color}\n onChange={this.change(\"color\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n <DashPicker\n value={this.props.strokeDasharray}\n onChange={this.change(\"strokeDasharray\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n Width:{\" \"}\n <NumberInput\n value={this.props.strokeWidth}\n placeholder={2}\n onChange={this.change(\"strokeWidth\")}\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default ParametricEditor;\n","import {\n Changeable,\n Dependencies,\n EditorJsonify,\n KhanColors,\n} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport ColorPicker from \"./color-picker\";\nimport MathquillInput from \"./mathquill-input\";\n\nconst {getDependencies} = Dependencies;\n\ntype Props = Changeable.ChangeableProps & {\n coordX: string;\n coordY: string;\n color: string;\n};\n\ntype DefaultProps = {\n coordX: Props[\"coordX\"];\n coordY: Props[\"coordY\"];\n color: Props[\"color\"];\n};\n\n// Editor for non-interactive points\nclass PointEditor extends React.Component<Props> {\n static defaultProps: DefaultProps = {\n coordX: \"0\",\n coordY: \"0\",\n color: KhanColors.BLACK,\n };\n\n change: (arg1: any, arg2?: any, arg3?: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const {TeX} = getDependencies();\n\n return (\n <div className=\"graph-settings\">\n <div className=\"perseus-widget-row\">\n Coordinate: <TeX>\\Large(</TeX>\n <MathquillInput\n value={this.props.coordX}\n onChange={this.change(\"coordX\")}\n />\n <TeX>,</TeX>{\" \"}\n <MathquillInput\n value={this.props.coordY}\n onChange={this.change(\"coordY\")}\n />\n <TeX>\\Large)</TeX>\n </div>\n <div className=\"perseus-widget-row\">\n <ColorPicker\n value={this.props.color}\n onChange={this.change(\"color\")}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default PointEditor;\n","import {\n Changeable,\n Dependencies,\n EditorJsonify,\n KhanColors,\n} from \"@khanacademy/perseus\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport ColorPicker from \"./color-picker\";\nimport MathquillInput from \"./mathquill-input\";\n\nconst {getDependencies} = Dependencies;\n\ntype Props = Changeable.ChangeableProps & {\n color: string;\n coordX: string;\n coordY: string;\n height: string;\n width: string;\n};\n\ntype DefaultProps = {\n color: Props[\"color\"];\n coordX: Props[\"coordX\"];\n coordY: Props[\"coordY\"];\n height: Props[\"height\"];\n width: Props[\"width\"];\n};\n\n// Editor for rectangles\nclass RectangleEditor extends React.Component<Props> {\n static defaultProps: DefaultProps = {\n coordX: \"-5\",\n coordY: \"5\",\n width: \"2\",\n height: \"3\",\n color: KhanColors.LIGHT_BLUE,\n };\n\n change: (arg1: any, arg2?: any, arg3?: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const {TeX} = getDependencies();\n\n return (\n <div className=\"graph-settings\">\n <div className=\"perseus-widget-row\">\n Bottom left: <TeX>\\Large(</TeX>\n <MathquillInput\n value={this.props.coordX}\n onChange={this.change(\"coordX\")}\n />\n <TeX>,</TeX>{\" \"}\n <MathquillInput\n value={this.props.coordY}\n onChange={this.change(\"coordY\")}\n />\n <TeX>\\Large)</TeX>\n </div>\n <div className=\"perseus-widget-row\">\n Width:{\" \"}\n <MathquillInput\n value={this.props.width}\n onChange={this.change(\"width\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n Height:{\" \"}\n <MathquillInput\n value={this.props.height}\n onChange={this.change(\"height\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n <ColorPicker\n value={this.props.color}\n lightColors={true}\n onChange={this.change(\"color\")}\n />\n </div>\n <div className=\"perseus-widget-row\">\n You want a border? Sorry, draw your own.\n </div>\n </div>\n );\n }\n}\n\nexport default RectangleEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\n/* eslint-disable @babel/no-invalid-this, react/no-unsafe */\nimport {\n Changeable,\n Dependencies,\n EditorJsonify,\n Util,\n} from \"@khanacademy/perseus\";\nimport {\n interactionLogic,\n type Coords,\n type InteractionDefaultWidgetOptions,\n type MarkingsType,\n} from \"@khanacademy/perseus-core\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport GraphSettings from \"../../components/graph-settings\";\n\nimport ElementContainer from \"./element-container\";\nimport FunctionEditor from \"./function-editor\";\nimport LabelEditor from \"./label-editor\";\nimport LineEditor from \"./line-editor\";\nimport MovableLineEditor from \"./movable-line-editor\";\nimport MovablePointEditor from \"./movable-point-editor\";\nimport ParametricEditor from \"./parametric-editor\";\nimport PointEditor from \"./point-editor\";\nimport RectangleEditor from \"./rectangle-editor\";\n\nconst {getDependencies} = Dependencies;\nconst {unescapeMathMode} = Util;\n\ntype Graph = {\n box: ReadonlyArray<number>;\n labels: ReadonlyArray<string>;\n range: Coords;\n tickStep: [number, number];\n gridStep: [number, number];\n markings: MarkingsType;\n valid?: boolean;\n};\n\ntype Props = Changeable.ChangeableProps & {\n elements: ReadonlyArray<any>;\n graph: Graph;\n};\n\ntype State = any;\n\nclass InteractionEditor extends React.Component<Props, State> {\n static widgetName = \"interaction\" as const;\n static defaultProps: InteractionDefaultWidgetOptions =\n interactionLogic.defaultWidgetOptions;\n\n state: State = {\n usedVarSubscripts: this._getAllVarSubscripts(this.props.elements),\n usedFunctionNames: this._getAllFunctionNames(this.props.elements),\n };\n\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n this.setState({\n usedVarSubscripts: this._getAllVarSubscripts(nextProps.elements),\n usedFunctionNames: this._getAllFunctionNames(nextProps.elements),\n });\n }\n\n _getAllVarSubscripts(elements: ReadonlyArray<any>): ReadonlyArray<any> {\n return _.map(\n _.where(elements, {type: \"movable-point\"}),\n (element) => element.options.varSubscript,\n )\n .concat(\n _.map(\n _.where(elements, {type: \"movable-line\"}),\n (element) => element.options.startSubscript,\n ),\n )\n .concat(\n _.map(\n _.where(elements, {type: \"movable-line\"}),\n (element) => element.options.endSubscript,\n ),\n );\n }\n\n _getAllFunctionNames(elements: ReadonlyArray<any>): ReadonlyArray<string> {\n return _.map(\n _.where(elements, {type: \"function\"}),\n (element) => element.options.funcName,\n );\n }\n\n _updateGraphProps: (arg1: any) => any = (newProps) => {\n // TODO(eater): GraphSettings should name this tickStep instead\n // of step. Grr..\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({\n graph: _.extend(_.omit(newProps, \"step\"), {\n tickStep: newProps.step,\n }),\n });\n };\n\n _addNewElement: (arg1: React.ChangeEvent<HTMLInputElement>) => void = (\n e,\n ) => {\n const elementType = e.target.value;\n if (elementType === \"\") {\n return;\n }\n e.target.value = \"\";\n const newElement = {\n type: elementType,\n key:\n elementType +\n \"-\" +\n ((Math.random() * 0xffffff) << 0).toString(16),\n options:\n elementType === \"point\"\n ? _.clone(PointEditor.defaultProps)\n : elementType === \"line\"\n ? _.clone(LineEditor.defaultProps)\n : elementType === \"movable-point\"\n ? _.clone(MovablePointEditor.defaultProps)\n : elementType === \"movable-line\"\n ? _.clone(MovableLineEditor.defaultProps)\n : elementType === \"function\"\n ? _.clone(FunctionEditor.defaultProps)\n : elementType === \"parametric\"\n ? _.clone(ParametricEditor.defaultProps)\n : elementType === \"label\"\n ? _.clone(LabelEditor.defaultProps)\n : elementType === \"rectangle\"\n ? _.clone(RectangleEditor.defaultProps)\n : {},\n } as const;\n\n let nextSubscript;\n if (elementType === \"movable-point\") {\n nextSubscript =\n _.max([_.max(this.state.usedVarSubscripts), -1]) + 1;\n // @ts-expect-error - TS2339 - Property 'varSubscript' does not exist on type '{}'.\n newElement.options.varSubscript = nextSubscript;\n } else if (elementType === \"movable-line\") {\n nextSubscript =\n _.max([_.max(this.state.usedVarSubscripts), -1]) + 1;\n // @ts-expect-error - TS2339 - Property 'startSubscript' does not exist on type '{}'.\n newElement.options.startSubscript = nextSubscript;\n // @ts-expect-error - TS2339 - Property 'endSubscript' does not exist on type '{}'.\n newElement.options.endSubscript = nextSubscript + 1;\n } else if (elementType === \"function\") {\n // TODO(eater): The 22nd function added will be {(x) since '{'\n // comes after 'z'\n const nextLetter = String.fromCharCode(\n _.max([\n _.max(\n _.map(this.state.usedFunctionNames, function (c) {\n return c.charCodeAt(0);\n }),\n ),\n \"e\".charCodeAt(0),\n ]) + 1,\n );\n // @ts-expect-error - TS2339 - Property 'funcName' does not exist on type '{}'.\n newElement.options.funcName = nextLetter;\n }\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({\n elements: this.props.elements.concat(newElement),\n });\n };\n\n _deleteElement: (arg1: number) => void = (index) => {\n const element = this.props.elements[index];\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({elements: _.without(this.props.elements, element)});\n };\n\n _moveElementUp: (arg1: number) => void = (index) => {\n const element = this.props.elements[index];\n const newElements = _.without(this.props.elements, element);\n newElements.splice(index - 1, 0, element);\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({elements: newElements});\n };\n\n _moveElementDown: (arg1: number) => void = (index) => {\n const element = this.props.elements[index];\n const newElements = _.without(this.props.elements, element);\n newElements.splice(index + 1, 0, element);\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({elements: newElements});\n };\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const {TeX} = getDependencies();\n\n return (\n <div className=\"perseus-widget-interaction-editor\">\n <ElementContainer title=\"Grid settings\">\n <GraphSettings\n editableSettings={[\"canvas\", \"graph\"]}\n box={this.props.graph.box}\n labels={this.props.graph.labels}\n range={this.props.graph.range}\n step={this.props.graph.tickStep}\n gridStep={this.props.graph.gridStep}\n markings={this.props.graph.markings}\n onChange={this._updateGraphProps}\n />\n <>\n {this.props.graph.valid !== true && (\n <div>{this.props.graph.valid}</div>\n )}\n </>\n </ElementContainer>\n {_.map(\n this.props.elements,\n function (element, n) {\n if (element.type === \"movable-point\") {\n return (\n <ElementContainer\n title={\n <span>\n Movable point{\" \"}\n <TeX>\n {\"(x_{\" +\n element.options\n .varSubscript +\n \"}, y_{\" +\n element.options\n .varSubscript +\n \"})\"}\n </TeX>\n </span>\n }\n // eslint-disable-next-line react/jsx-no-bind\n onUp={\n n === 0\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementUp.bind(this, n)\n }\n // eslint-disable-next-line react/jsx-no-bind\n onDown={\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n n === this.props.elements.length - 1\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementDown.bind(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this,\n n,\n )\n }\n // eslint-disable-next-line react/jsx-no-bind\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onDelete={this._deleteElement.bind(this, n)}\n key={element.key}\n >\n <MovablePointEditor\n {...element.options}\n onChange={(newProps) => {\n const elements = JSON.parse(\n JSON.stringify(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.props.elements,\n ),\n );\n _.extend(\n elements[n].options,\n newProps,\n );\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.change({elements: elements});\n }}\n />\n </ElementContainer>\n );\n }\n if (element.type === \"movable-line\") {\n return (\n <ElementContainer\n title={\n <span>\n Movable line{\" \"}\n <TeX>\n {\"(x_{\" +\n element.options\n .startSubscript +\n \"}, y_{\" +\n element.options\n .startSubscript +\n \"})\"}\n </TeX>{\" \"}\n to{\" \"}\n <TeX>\n {\"(x_{\" +\n element.options\n .endSubscript +\n \"}, y_{\" +\n element.options\n .endSubscript +\n \"})\"}\n </TeX>\n </span>\n }\n // eslint-disable-next-line react/jsx-no-bind\n onUp={\n n === 0\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementUp.bind(this, n)\n }\n // eslint-disable-next-line react/jsx-no-bind\n onDown={\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n n === this.props.elements.length - 1\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementDown.bind(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this,\n n,\n )\n }\n // eslint-disable-next-line react/jsx-no-bind\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onDelete={this._deleteElement.bind(this, n)}\n key={element.key}\n >\n <MovableLineEditor\n {...element.options}\n onChange={(newProps) => {\n const elements = JSON.parse(\n JSON.stringify(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.props.elements,\n ),\n );\n _.extend(\n elements[n].options,\n newProps,\n );\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.change({elements: elements});\n }}\n />\n </ElementContainer>\n );\n }\n if (element.type === \"point\") {\n return (\n <ElementContainer\n title={\n <span>\n Point{\" \"}\n <TeX>\n {\"(\" +\n element.options.coordX +\n \", \" +\n element.options.coordY +\n \")\"}\n </TeX>\n </span>\n }\n // eslint-disable-next-line react/jsx-no-bind\n onUp={\n n === 0\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementUp.bind(this, n)\n }\n // eslint-disable-next-line react/jsx-no-bind\n onDown={\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n n === this.props.elements.length - 1\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementDown.bind(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this,\n n,\n )\n }\n // eslint-disable-next-line react/jsx-no-bind\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onDelete={this._deleteElement.bind(this, n)}\n key={element.key}\n >\n <PointEditor\n {...element.options}\n onChange={(newProps) => {\n const elements = JSON.parse(\n JSON.stringify(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.props.elements,\n ),\n );\n _.extend(\n elements[n].options,\n newProps,\n );\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.change({elements: elements});\n }}\n />\n </ElementContainer>\n );\n }\n if (element.type === \"line\") {\n return (\n <ElementContainer\n title={\n <span>\n Line{\" \"}\n <TeX>\n {\"(\" +\n element.options.startX +\n \", \" +\n element.options.startY +\n \")\"}\n </TeX>{\" \"}\n to{\" \"}\n <TeX>\n {\"(\" +\n element.options.endX +\n \", \" +\n element.options.endY +\n \")\"}\n </TeX>\n </span>\n }\n // eslint-disable-next-line react/jsx-no-bind\n onUp={\n n === 0\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementUp.bind(this, n)\n }\n // eslint-disable-next-line react/jsx-no-bind\n onDown={\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n n === this.props.elements.length - 1\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementDown.bind(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this,\n n,\n )\n }\n // eslint-disable-next-line react/jsx-no-bind\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onDelete={this._deleteElement.bind(this, n)}\n key={element.key}\n >\n <LineEditor\n {...element.options}\n onChange={(newProps) => {\n const elements = JSON.parse(\n JSON.stringify(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.props.elements,\n ),\n );\n _.extend(\n elements[n].options,\n newProps,\n );\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.change({elements: elements});\n }}\n />\n </ElementContainer>\n );\n }\n if (element.type === \"function\") {\n return (\n <ElementContainer\n title={\n <span>\n Function{\" \"}\n <TeX>\n {element.options.funcName +\n \"(x) = \" +\n element.options.value}\n </TeX>\n </span>\n }\n // eslint-disable-next-line react/jsx-no-bind\n onUp={\n n === 0\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementUp.bind(this, n)\n }\n // eslint-disable-next-line react/jsx-no-bind\n onDown={\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n n === this.props.elements.length - 1\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementDown.bind(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this,\n n,\n )\n }\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onDelete={this._deleteElement}\n key={element.key}\n >\n <FunctionEditor\n {...element.options}\n onChange={(newProps) => {\n const elements = JSON.parse(\n JSON.stringify(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.props.elements,\n ),\n );\n _.extend(\n elements[n].options,\n newProps,\n );\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.change({elements: elements});\n }}\n />\n </ElementContainer>\n );\n }\n if (element.type === \"parametric\") {\n return (\n <ElementContainer\n title={<span>Parametric</span>}\n // eslint-disable-next-line react/jsx-no-bind\n onUp={\n n === 0\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementUp.bind(this, n)\n }\n // eslint-disable-next-line react/jsx-no-bind\n onDown={\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n n === this.props.elements.length - 1\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementDown.bind(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this,\n n,\n )\n }\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onDelete={this._deleteElement}\n key={element.key}\n >\n <ParametricEditor\n {...element.options}\n onChange={(newProps) => {\n const elements = JSON.parse(\n JSON.stringify(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.props.elements,\n ),\n );\n _.extend(\n elements[n].options,\n newProps,\n );\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.change({elements: elements});\n }}\n />\n </ElementContainer>\n );\n }\n if (element.type === \"label\") {\n return (\n <ElementContainer\n title={\n <span>\n Label{\" \"}\n <TeX>\n {unescapeMathMode(\n element.options.label,\n )}\n </TeX>{\" \"}\n </span>\n }\n // eslint-disable-next-line react/jsx-no-bind\n onUp={\n n === 0\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementUp.bind(this, n)\n }\n // eslint-disable-next-line react/jsx-no-bind\n onDown={\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n n === this.props.elements.length - 1\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementDown.bind(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this,\n n,\n )\n }\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onDelete={this._deleteElement}\n key={element.key}\n >\n <LabelEditor\n {...element.options}\n onChange={(newProps) => {\n const elements = JSON.parse(\n JSON.stringify(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.props.elements,\n ),\n );\n _.extend(\n elements[n].options,\n newProps,\n );\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.change({elements: elements});\n }}\n />\n </ElementContainer>\n );\n }\n if (element.type === \"rectangle\") {\n return (\n <ElementContainer\n title={\n <span>\n Rectangle{\" \"}\n <TeX>\n {\"(\" +\n element.options.coordX +\n \", \" +\n element.options.coordY +\n \")\"}\n </TeX>\n &nbsp;&mdash;&nbsp;\n <TeX>\n {element.options.width +\n \" \\\\times \" +\n element.options.height}\n </TeX>\n </span>\n }\n // eslint-disable-next-line react/jsx-no-bind\n onUp={\n n === 0\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation. | TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementUp.bind(this, n)\n }\n // eslint-disable-next-line react/jsx-no-bind\n onDown={\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n n === this.props.elements.length - 1\n ? null\n : // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this._moveElementDown.bind(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this,\n n,\n )\n }\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n onDelete={this._deleteElement}\n key={element.key}\n >\n <RectangleEditor\n {...element.options}\n onChange={(newProps) => {\n const elements = JSON.parse(\n JSON.stringify(\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.props.elements,\n ),\n );\n _.extend(\n elements[n].options,\n newProps,\n );\n // @ts-expect-error - TS2683 - 'this' implicitly has type 'any' because it does not have a type annotation.\n this.change({elements: elements});\n }}\n />\n </ElementContainer>\n );\n }\n },\n this,\n )}\n <div className=\"perseus-widget-interaction-editor-select-element\">\n {/* @ts-expect-error - TS2322 - Type '(arg1: ChangeEvent<HTMLInputElement>) => void' is not assignable to type 'ChangeEventHandler<HTMLSelectElement>'. */}\n <select onChange={this._addNewElement}>\n <option value=\"\">Add an element{\"\\u2026\"}</option>\n <option disabled>--</option>\n <option value=\"point\">Point</option>\n <option value=\"line\">Line segment</option>\n <option value=\"function\">Function plot</option>\n <option value=\"parametric\">Parametric plot</option>\n <option value=\"label\">Label</option>\n <option value=\"rectangle\">Rectangle</option>\n <option value=\"movable-point\">\n &#x2605; Movable point\n </option>\n <option value=\"movable-line\">\n &#x2605; Movable line segment\n </option>\n </select>\n </div>\n </div>\n );\n /* eslint-enable max-len */\n }\n}\n\nexport default InteractionEditor;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","export const UNLIMITED = \"unlimited\" as const;\nexport type PointValue = number | typeof UNLIMITED;\n\n// Parses a string (ostensibly from some UI element that only supports string\n// types, such as a <select />) into a numeric point count or the special sigil\n// \"unlimited\". Note that 0 is a special case, and means \"unlimited\".\nexport const parsePointCount = (points: string): PointValue => {\n const parsed = parseInt(points, 10);\n if (isNaN(parsed)) {\n return UNLIMITED;\n }\n return parsed === 0 ? UNLIMITED : parsed;\n};\n","import {OptionItem, SingleSelect} from \"@khanacademy/wonder-blocks-dropdown\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport {UNLIMITED, parsePointCount} from \"../../../util/points\";\n\nimport type {PointValue} from \"../../../util/points\";\n\nconst GraphPointsCountSelector = ({\n numPoints = 1,\n onChange,\n}: {\n numPoints?: PointValue;\n onChange: (points: PointValue) => void;\n}) => {\n return (\n <SingleSelect\n selectedValue={`${numPoints}`}\n onChange={(newValue) => {\n onChange(parsePointCount(newValue));\n }}\n // Never uses placeholder, always has value\n placeholder=\"\"\n style={styles.singleSelectShort}\n >\n {[\n ...[...Array(7).keys()].map((n) => (\n <OptionItem\n key={n}\n value={`${n}`}\n label={`${n} point${n > 1 ? \"s\" : \"\"}`}\n />\n )),\n <OptionItem\n key=\"unlimited\"\n value={UNLIMITED}\n label=\"unlimited\"\n />,\n ]}\n </SingleSelect>\n );\n};\n\nconst styles = StyleSheet.create({\n singleSelectShort: {\n // Non-standard spacing, but it's the smallest we can go\n // without running into styling issues with the dropdown.\n height: 26,\n },\n});\n\nexport default GraphPointsCountSelector;\n","import {OptionItem, SingleSelect} from \"@khanacademy/wonder-blocks-dropdown\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\ntype GraphTypeSelectorProps = {\n graphType: string;\n onChange: (newGraphType: string) => void;\n};\n\nconst GraphTypeSelector = (props: GraphTypeSelectorProps) => {\n return (\n <SingleSelect\n selectedValue={props.graphType}\n onChange={props.onChange}\n placeholder=\"Select an answer type\"\n style={styles.singleSelectShort}\n >\n <OptionItem value=\"none\" label=\"None\" />\n <OptionItem value=\"linear\" label=\"Linear function\" />\n <OptionItem value=\"quadratic\" label=\"Quadratic function\" />\n <OptionItem value=\"sinusoid\" label=\"Sinusoid function\" />\n <OptionItem value=\"circle\" label=\"Circle\" />\n <OptionItem value=\"point\" label=\"Point(s)\" />\n <OptionItem value=\"linear-system\" label=\"Linear System\" />\n <OptionItem value=\"polygon\" label=\"Polygon\" />\n <OptionItem value=\"segment\" label=\"Line Segment(s)\" />\n <OptionItem value=\"ray\" label=\"Ray\" />\n <OptionItem value=\"angle\" label=\"Angle\" />\n </SingleSelect>\n );\n};\n\nconst styles = StyleSheet.create({\n singleSelectShort: {\n // Non-standard spacing, but it's the smallest we can go\n // without running into styling issues with the dropdown.\n height: 26,\n },\n});\n\nexport default GraphTypeSelector;\n","import Clickable from \"@khanacademy/wonder-blocks-clickable\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {color, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelLarge} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport ToggleableCaret from \"./toggleable-caret\";\n\nfunction Heading({\n title,\n isOpen,\n isCollapsible,\n onToggle,\n}: {\n title: string;\n isOpen: boolean;\n isCollapsible: boolean;\n onToggle?: (isOpen: boolean) => void;\n}) {\n return (\n <Clickable\n style={[styles.container, !isCollapsible && styles.notClickable]}\n disabled={!isCollapsible}\n onClick={() => isCollapsible && onToggle?.(!isOpen)}\n >\n {() => (\n <View style={styles.heading}>\n <LabelLarge\n style={{\n fontSize: 14,\n fontWeight: 600,\n }}\n >\n {title}\n </LabelLarge>\n {isCollapsible && <ToggleableCaret isExpanded={isOpen} />}\n </View>\n )}\n </Clickable>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n marginTop: spacing.small_12,\n // NOTE(jeremy): This is the inverse of the @editorPadding CSS\n // variable found in perseus-editor.less. For now, it must\n // match otherwise there's a gap from this header to the edge\n // of the editor borders.\n marginInline: -10,\n backgroundColor: color.offBlack8,\n padding: spacing.xSmall_8,\n width: \"calc(100% + 20px)\",\n },\n heading: {\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n userSelect: \"none\",\n },\n notClickable: {\n // We don't need the text to be grayed out.\n color: \"inherit\",\n // We don't need the pointer to show the \"not allowed\" symbol.\n cursor: \"default\",\n },\n});\n\nexport default Heading;\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {spacing, color} from \"@khanacademy/wonder-blocks-tokens\";\nimport {\n BodyMonospace,\n LabelXSmall,\n} from \"@khanacademy/wonder-blocks-typography\";\nimport * as React from \"react\";\n\nimport Heading from \"../../../components/heading\";\n\ntype Props = {\n id: string;\n equationString: string;\n children: React.ReactNode;\n};\nexport function InteractiveGraphCorrectAnswer(props: Props) {\n return (\n <>\n <Heading\n title=\"Correct Answer\"\n isOpen={true}\n isCollapsible={false}\n />\n <View id={props.id}>\n <View>\n <LabelXSmall\n style={{\n paddingTop: spacing.xxSmall_6,\n paddingBottom: spacing.xxSmall_6,\n color: color.offBlack64,\n }}\n >\n Graph the correct answer in the graph below and ensure\n the equation or point coordinates displayed represent\n the correct answer.\n </LabelXSmall>\n\n <BodyMonospace\n style={{\n fontSize: 12,\n backgroundColor: \"#eee\",\n paddingInline: spacing.xxSmall_6,\n borderColor: \"#ccc\",\n borderStyle: \"solid\",\n borderWidth: 1,\n }}\n >\n {props.equationString}\n </BodyMonospace>\n </View>\n {props.children}\n </View>\n </>\n );\n}\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {TextArea, TextField} from \"@khanacademy/wonder-blocks-form\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {color, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelLarge, LabelXSmall} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport Heading from \"../../../components/heading\";\n\nimport type {Props as EditorProps} from \"../interactive-graph-editor\";\n\ntype Props = {\n ariaLabelValue: string;\n ariaDescriptionValue: string;\n onChange: (graphProps: Partial<EditorProps>) => void;\n};\n\nexport default function InteractiveGraphDescription(props: Props) {\n const {ariaLabelValue, ariaDescriptionValue, onChange} = props;\n\n const [isOpen, setIsOpen] = React.useState(true);\n\n return (\n <>\n <Heading\n title=\"Description\"\n isCollapsible={true}\n isOpen={isOpen}\n onToggle={setIsOpen}\n />\n {isOpen && (\n <View>\n <LabelXSmall style={styles.caption}>\n Use these fields to describe the graph as a whole. These\n are used by screen readers to describe content to users\n who may be visually impaired.\n </LabelXSmall>\n <LabelLarge tag=\"label\">\n Title\n <TextField\n value={ariaLabelValue}\n onChange={(newValue) =>\n onChange({\n fullGraphAriaLabel:\n // Save as undefined if the new value\n // is an empty string.\n newValue || undefined,\n })\n }\n style={styles.spaceAbove}\n />\n </LabelLarge>\n <Strut size={spacing.small_12} />\n <LabelLarge tag=\"label\">\n Description\n <TextArea\n rows={8}\n resizeType=\"vertical\"\n value={ariaDescriptionValue}\n onChange={(newValue) =>\n onChange({\n fullGraphAriaDescription:\n // Save as undefined if the new value\n // is an empty string.\n newValue || undefined,\n })\n }\n style={styles.spaceAbove}\n />\n </LabelLarge>\n </View>\n )}\n </>\n );\n}\n\nconst styles = StyleSheet.create({\n caption: {\n color: color.offBlack64,\n paddingTop: spacing.xxSmall_6,\n paddingBottom: spacing.xxSmall_6,\n },\n spaceAbove: {\n marginTop: spacing.xxxSmall_4,\n },\n});\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelSmall} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet, css} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport type {StyleType} from \"@khanacademy/wonder-blocks-core\";\n\n// Renders the given children in a View laid out horizontally.\nconst LabeledRow = (props: {\n id?: string;\n label: string;\n labelSide?: \"start\" | \"end\";\n style?: StyleType;\n children: React.ReactNode;\n}) => {\n const {children, label, labelSide = \"left\", style} = props;\n\n return (\n <label className={css(styles.label)}>\n <View style={[styles.row, style]}>\n {labelSide === \"start\" || (\n <LabelSmall style={styles.spaceEnd}>{label}</LabelSmall>\n )}\n {children}\n {labelSide === \"end\" && (\n <LabelSmall style={styles.spaceStart}>{label}</LabelSmall>\n )}\n </View>\n </label>\n );\n};\n\nconst styles = StyleSheet.create({\n label: {\n width: \"fit-content\",\n },\n row: {\n flexDirection: \"row\",\n marginTop: spacing.xSmall_8,\n alignItems: \"center\",\n width: \"fit-content\",\n },\n spaceStart: {\n marginInlineStart: spacing.xSmall_8,\n },\n spaceEnd: {\n marginInlineEnd: spacing.xSmall_8,\n },\n});\n\nexport default LabeledRow;\n","/* eslint-disable react/forbid-prop-types, react/no-unsafe */\n/**\n * Used in the editor for the InteractiveGraph widget.\n */\nimport {\n components,\n interactiveSizes,\n Changeable,\n Util,\n} from \"@khanacademy/perseus\";\nimport Banner from \"@khanacademy/wonder-blocks-banner\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport {color, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {css, StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport Heading from \"../../../components/heading\";\nimport LabeledRow from \"../locked-figures/labeled-row\";\n\nimport type {\n AxisLabelLocation,\n MarkingsType,\n PerseusImageBackground,\n} from \"@khanacademy/perseus-core\";\n\ntype ChangeFn = typeof Changeable.change;\n\nconst {ButtonGroup, InfoTip, RangeInput} = components;\n\nconst defaultBackgroundImage = {\n url: null,\n width: 0,\n height: 0,\n} as const;\n\nfunction numSteps(range: any, step: any) {\n return Math.floor((range[1] - range[0]) / step);\n}\n\ntype Range = [min: number, max: number];\n\ntype Props = {\n /**\n * The size of the graph area in pixels.\n */\n box: [x: number, y: number];\n /**\n * The labels for the x and y axes.\n */\n labels: ReadonlyArray<string>;\n /**\n * Specifies the location of the labels on the graph. default: \"onAxis\".\n * - \"onAxis\": Labels are positioned on the axis at the right (x) and top (y) of the graph.\n * - \"alongEdge\": Labels are centered along the bottom (x) and left (y) edges of the graph.\n * The y label is rotated. Typically used when the range min is near 0 with longer labels.\n */\n labelLocation: AxisLabelLocation;\n /**\n * The range of the graph.\n */\n range: [x: Range, y: Range];\n /**\n * How far apart the tick marks on the axes are in the x and y\n * directions.\n */\n step: [x: number, y: number];\n /**\n * How far apart the grid lines are in the x and y directions.\n */\n gridStep: [x: number, y: number];\n /**\n * How far apart the snap-to points are in the x and y directions.\n */\n snapStep: [x: number, y: number];\n /**\n * An error message to display in the graph area, or true if the\n * graph is valid.\n */\n valid: true | string;\n /**\n * The background image to display in the graph area and its properties.\n */\n backgroundImage: PerseusImageBackground;\n\n /**\n * The type of markings to display on the graph.\n * - axes: shows the axes without the gride lines\n * - graph: shows the axes and the grid lines\n * - grid: shows only the grid lines\n * - none: shows no markings\n */\n markings: MarkingsType;\n /**\n * Whether to show the protractor on the graph.\n */\n showProtractor: boolean;\n /**\n * Whether to show tooltips on the graph.\n */\n showTooltips: boolean;\n\n onChange: (arg1: Partial<Props>) => void;\n};\n\ntype State = {\n isExpanded: boolean;\n labelsTextbox: ReadonlyArray<string>;\n labelLocation: AxisLabelLocation;\n gridStepTextbox: [x: number, y: number];\n snapStepTextbox: [x: number, y: number];\n stepTextbox: [x: number, y: number];\n rangeTextbox: [x: Range, y: Range];\n backgroundImage: PerseusImageBackground;\n};\n\nclass InteractiveGraphSettings extends React.Component<Props, State> {\n _isMounted = false;\n\n bgUrlRef = React.createRef<HTMLInputElement>();\n labelXRef = React.createRef<HTMLInputElement>();\n labelYRef = React.createRef<HTMLInputElement>();\n\n static stateFromProps(props: Props) {\n return {\n labelsTextbox: props.labels,\n labelLocation: props.labelLocation,\n gridStepTextbox: props.gridStep,\n snapStepTextbox: props.snapStep,\n stepTextbox: props.step,\n rangeTextbox: props.range,\n // Shallow-copied clone\n backgroundImage: {...props.backgroundImage},\n };\n }\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n isExpanded: true,\n ...InteractiveGraphSettings.stateFromProps(props),\n };\n }\n\n static defaultProps = {\n box: [\n interactiveSizes.defaultBoxSizeSmall,\n interactiveSizes.defaultBoxSizeSmall,\n ],\n labels: [\"$x$\", \"$y$\"],\n labelLocation: \"onAxis\",\n range: [\n [-10, 10],\n [-10, 10],\n ],\n step: [1, 1],\n gridStep: [1, 1],\n snapStep: [1, 1],\n valid: true,\n backgroundImage: defaultBackgroundImage,\n markings: \"graph\",\n showProtractor: false,\n showTooltips: false,\n };\n\n componentDidMount() {\n // TODO(scottgrant): This is a hack to remove the deprecated call to\n // this.isMounted() but is still considered an anti-pattern.\n this._isMounted = true;\n\n this.changeGraph = _.debounce(this.changeGraph, 300);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (\n !_.isEqual(this.props.labels, nextProps.labels) ||\n !_.isEqual(this.props.labelLocation, nextProps.labelLocation) ||\n !_.isEqual(this.props.gridStep, nextProps.gridStep) ||\n !_.isEqual(this.props.snapStep, nextProps.snapStep) ||\n !_.isEqual(this.props.step, nextProps.step) ||\n !_.isEqual(this.props.range, nextProps.range) ||\n !_.isEqual(this.props.backgroundImage, nextProps.backgroundImage)\n ) {\n this.setState(InteractiveGraphSettings.stateFromProps(nextProps));\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n change: ChangeFn = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n changeBackgroundUrl = (e) => {\n // Only continue on blur or \"enter\"\n if (e.type === \"keypress\" && e.key !== \"Enter\") {\n return;\n }\n\n const setUrl = (url, width: number, height: number) => {\n // Shallow-copied clone\n const image = {...this.props.backgroundImage};\n image.url = url;\n image.width = width;\n image.height = height;\n this.setState(\n {\n backgroundImage: image,\n },\n this.changeGraph,\n );\n };\n\n const url = this.bgUrlRef.current?.value;\n if (url) {\n Util.getImageSize(url, (width, height) => {\n if (this._isMounted) {\n setUrl(url, width, height);\n }\n });\n } else {\n setUrl(null, 0, 0);\n }\n };\n\n renderLabelChoices = (choices) => {\n return choices.map((nameAndValue) => (\n <option key={nameAndValue[1]} value={nameAndValue[1]}>\n {nameAndValue[0]}\n </option>\n ));\n };\n\n validRange = (range) => {\n const numbers = _.every(range, function (num) {\n return _.isFinite(num);\n });\n if (!numbers) {\n return \"Range must be a valid number\";\n }\n if (range[0] >= range[1]) {\n return \"Range must have a higher number on the right\";\n }\n return true;\n };\n\n validateStepValue = (settings) => {\n const {step, range, name, minTicks, maxTicks} = settings;\n\n const nSteps = numSteps(range, step);\n if (nSteps < minTicks) {\n return (\n name +\n \" is too large, there must be at least \" +\n minTicks +\n \" ticks.\"\n );\n }\n if (nSteps > maxTicks) {\n return (\n name +\n \" is too small, there can be at most \" +\n maxTicks +\n \" ticks.\"\n );\n }\n return true;\n };\n\n validSnapStep = (step, range) => {\n return this.validateStepValue({\n step: step,\n range: range,\n name: \"Snap step\",\n minTicks: 5,\n maxTicks: 60,\n });\n };\n\n validGridStep = (step, range) => {\n return this.validateStepValue({\n step: step,\n range: range,\n name: \"Grid step\",\n minTicks: 3,\n maxTicks: 60,\n });\n };\n\n validStep = (step, range) => {\n return this.validateStepValue({\n step: step,\n range: range,\n name: \"Step\",\n minTicks: 3,\n maxTicks: 20,\n });\n };\n\n validBackgroundImageSize = (image) => {\n // Ignore empty images\n if (!image.url) {\n return true;\n }\n\n const validSize = image.width <= 450 && image.height <= 450;\n\n if (!validSize) {\n return \"Image must be smaller than 450px x 450px.\";\n }\n return true;\n };\n\n validateGraphSettings = (range, step, gridStep, snapStep, image) => {\n const self = this;\n let msg;\n const goodRange = _.every(range, function (range) {\n msg = self.validRange(range);\n return msg === true;\n });\n if (!goodRange) {\n return msg;\n }\n const goodStep = _.every(step, function (step, i) {\n msg = self.validStep(step, range[i]);\n return msg === true;\n });\n if (!goodStep) {\n return msg;\n }\n const goodGridStep = _.every(gridStep, function (gridStep, i) {\n msg = self.validGridStep(gridStep, range[i]);\n return msg === true;\n });\n if (!goodGridStep) {\n return msg;\n }\n const goodSnapStep = _.every(snapStep, function (snapStep, i) {\n msg = self.validSnapStep(snapStep, range[i]);\n return msg === true;\n });\n if (!goodSnapStep) {\n return msg;\n }\n const goodImageSize = this.validBackgroundImageSize(image);\n if (goodImageSize !== true) {\n msg = goodImageSize;\n return msg;\n }\n return true;\n };\n\n changeLabel = (i, e) => {\n const val = e.target.value;\n const labels = this.state.labelsTextbox.slice();\n labels[i] = val;\n this.setState({labelsTextbox: labels}, this.changeGraph);\n };\n\n changeRange = (i, values) => {\n const ranges = this.state.rangeTextbox.slice();\n ranges[i] = values;\n const step = this.state.stepTextbox.slice();\n const gridStep = this.state.gridStepTextbox.slice();\n const snapStep = this.state.snapStepTextbox.slice();\n const scale = Util.scaleFromExtent(ranges[i], this.props.box[i]);\n if (this.validRange(ranges[i]) === true) {\n step[i] = Util.tickStepFromExtent(ranges[i], this.props.box[i]);\n\n const gridStepValue = Util.gridStepFromTickStep(step[i], scale);\n if (gridStepValue) {\n gridStep[i] = gridStepValue;\n }\n\n snapStep[i] = gridStep[i] / 2;\n }\n this.setState(\n {\n stepTextbox: step as [number, number],\n gridStepTextbox: gridStep as [number, number],\n snapStepTextbox: snapStep as [number, number],\n rangeTextbox: ranges as [[number, number], [number, number]],\n },\n this.changeGraph,\n );\n };\n\n changeStep = (step) => {\n this.setState({stepTextbox: step}, this.changeGraph);\n };\n\n changeSnapStep = (snapStep) => {\n this.setState({snapStepTextbox: snapStep}, this.changeGraph);\n };\n\n changeGridStep = (gridStep) => {\n this.setState(\n {\n gridStepTextbox: gridStep,\n snapStepTextbox: _.map(gridStep, function (step) {\n return step / 2;\n }) as [number, number],\n },\n this.changeGraph,\n );\n };\n\n changeGraph = () => {\n const labels = this.state.labelsTextbox;\n const labelLocation = this.state.labelLocation;\n const range = _.map(this.state.rangeTextbox, function (range) {\n return _.map(range, Number);\n });\n const step = _.map(this.state.stepTextbox, Number);\n const gridStep = this.state.gridStepTextbox;\n const snapStep = this.state.snapStepTextbox;\n const image = this.state.backgroundImage;\n\n // validationResult is either:\n // true -> the settings are valid\n // a string -> the settings are invalid, and the explanation\n // is contained in the string\n // TODO(aria): Refactor this to not be confusing\n const validationResult = this.validateGraphSettings(\n range,\n step,\n gridStep,\n snapStep,\n image,\n );\n\n if (validationResult === true) {\n // either true or a string\n this.change({\n valid: true,\n labels: labels,\n labelLocation: labelLocation,\n range: range,\n step: step,\n gridStep: gridStep,\n snapStep: snapStep,\n backgroundImage: image,\n });\n } else {\n this.change({\n valid: validationResult, // a string message, not false\n });\n }\n };\n\n render() {\n return (\n <>\n <Heading\n title=\"Common Graph Settings\"\n isOpen={this.state.isExpanded}\n isCollapsible={true}\n onToggle={() =>\n this.setState({isExpanded: !this.state.isExpanded})\n }\n />\n {this.state.isExpanded && (\n <View>\n <div className=\"graph-settings\">\n <div className=\"perseus-widget-row\">\n <LabeledRow label=\"Label Location\">\n <ButtonGroup\n value={this.props.labelLocation}\n allowEmpty={false}\n buttons={[\n {\n value: \"onAxis\",\n content: \"On Axis\",\n },\n {\n value: \"alongEdge\",\n content: \"Along Graph Edge\",\n },\n ]}\n onChange={this.change(\"labelLocation\")}\n />\n </LabeledRow>\n </div>\n\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n <LabeledRow label=\"x Label\">\n <input\n type=\"text\"\n className=\"graph-settings-axis-label\"\n ref={this.labelXRef}\n onChange={(e) =>\n this.changeLabel(0, e)\n }\n value={\n this.state.labelsTextbox[0] ||\n \"\"\n }\n />\n </LabeledRow>\n </div>\n <div className=\"perseus-widget-right-col\">\n <LabeledRow label=\"y Label\">\n <input\n type=\"text\"\n className=\"graph-settings-axis-label\"\n ref={this.labelYRef}\n onChange={(e) =>\n this.changeLabel(1, e)\n }\n value={\n this.state.labelsTextbox[1] ||\n \"\"\n }\n />\n </LabeledRow>\n </div>\n </div>\n\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n <LabeledRow label=\"x Range\">\n <RangeInput\n value={this.state.rangeTextbox[0]}\n onChange={(vals) =>\n this.changeRange(0, vals)\n }\n allowPiTruncation={true}\n />\n </LabeledRow>\n </div>\n <div className=\"perseus-widget-right-col\">\n <LabeledRow label=\"y Range\">\n <RangeInput\n value={this.state.rangeTextbox[1]}\n onChange={(vals) =>\n this.changeRange(1, vals)\n }\n allowPiTruncation={true}\n />\n </LabeledRow>\n </div>\n </div>\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n <LabeledRow label=\"Tick Step\">\n <RangeInput\n value={this.state.stepTextbox}\n onChange={this.changeStep}\n allowPiTruncation={true}\n />\n </LabeledRow>\n </div>\n <div className=\"perseus-widget-right-col\">\n <LabeledRow label=\"Grid Step\">\n <RangeInput\n value={this.state.gridStepTextbox}\n onChange={this.changeGridStep}\n allowPiTruncation={true}\n />\n </LabeledRow>\n </div>\n </div>\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n <LabeledRow label=\"Snap Step\">\n <RangeInput\n value={this.state.snapStepTextbox}\n onChange={this.changeSnapStep}\n allowPiTruncation={true}\n />\n </LabeledRow>\n </div>\n </div>\n <div className=\"perseus-widget-row\">\n <LabeledRow label=\"Markings:\">\n <ButtonGroup\n value={this.props.markings}\n allowEmpty={false}\n buttons={[\n {value: \"axes\", content: \"Axes\"},\n {value: \"graph\", content: \"Graph\"},\n {value: \"grid\", content: \"Grid\"},\n {value: \"none\", content: \"None\"},\n ]}\n onChange={this.change(\"markings\")}\n />\n </LabeledRow>\n </div>\n <div className=\"perseus-widget-left-col\">\n <Checkbox\n label=\"Show tooltips\"\n checked={this.props.showTooltips}\n onChange={(value) => {\n this.change({showTooltips: value});\n }}\n />\n </div>\n </div>\n\n <LabeledRow\n label=\"Background image URL:\"\n style={styles.resetSpaceTop}\n >\n <input\n type=\"text\"\n className={css(styles.backgroundUrlInput)}\n ref={this.bgUrlRef}\n value={this.state.backgroundImage.url || \"\"}\n onChange={(e) => {\n // Shallow-copied clone\n const image = {\n ...this.props.backgroundImage,\n };\n image.url = e.target.value;\n this.setState({backgroundImage: image});\n }}\n onKeyPress={this.changeBackgroundUrl}\n onBlur={this.changeBackgroundUrl}\n />\n <InfoTip>\n <p>\n Create an image in graphie, or use the\n &quot;Add image&quot; function to create a\n background.\n </p>\n </InfoTip>\n </LabeledRow>\n\n <View style={styles.protractorSection}>\n <View style={styles.checkboxRow}>\n <Checkbox\n label=\"Show protractor\"\n checked={this.props.showProtractor}\n onChange={(value) => {\n this.change({showProtractor: value});\n }}\n style={styles.resetSpaceTop}\n />\n </View>\n {this.props.showProtractor && (\n <Banner\n layout=\"floating\"\n text=\"The protractor is not accessible. Please consider an alternate approach.\"\n kind=\"warning\"\n />\n )}\n </View>\n </View>\n )}\n </>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n resetSpaceTop: {\n marginTop: 0,\n },\n backgroundUrlInput: {\n border: `1px solid ${color.offBlack32}`,\n borderRadius: spacing.xxxSmall_4,\n padding: spacing.xxxSmall_4,\n },\n checkboxRow: {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginBottom: spacing.xSmall_8,\n },\n protractorSection: {\n marginTop: spacing.xSmall_8,\n borderTop: `1px solid ${color.offBlack16}`,\n paddingTop: spacing.xSmall_8,\n paddingBottom: spacing.xSmall_8,\n borderBottom: `1px solid ${color.offBlack16}`,\n },\n});\n\nexport default InteractiveGraphSettings;\n","import {components} from \"@khanacademy/perseus\";\nimport {addStyle, View} from \"@khanacademy/wonder-blocks-core\";\nimport {Spring, Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport Pill from \"@khanacademy/wonder-blocks-pill\";\nimport Switch from \"@khanacademy/wonder-blocks-switch\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelSmall} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport Heading from \"../../../components/heading\";\n\nconst {InfoTip} = components;\nconst StyledUl = addStyle(\"ul\");\n\ntype Attribute = {\n name: string;\n value: string;\n};\n\ntype AttributeMap = {\n roleOrTag: string;\n className: string;\n attributes: Array<Attribute>;\n};\n\n// Exported for testing\nexport function getAccessibilityAttributes(graphId: string): AttributeMap[] {\n const elementArias: Array<AttributeMap> = [];\n\n // TODO(nisha): Change this to use ref after the graph has a non-string\n // ref and the InteractiveGraph component forwards refs.\n const container = document.getElementById(graphId);\n\n if (!container) {\n return elementArias;\n }\n\n // Traverse through all the children of the container and\n // collect the aria-labels and aria-descriptions.\n container.querySelectorAll(\"*\").forEach((element) => {\n // List to return with all the aria-labels and aria-descriptions.\n const elementAttributes: Array<Attribute> = [];\n\n const ariaLabel = element.getAttribute(\"aria-label\");\n const ariaDescribedby = element.getAttribute(\"aria-describedby\");\n\n if (ariaLabel) {\n // Add the aria-label to the front of the array so\n // it shows up first for this element in the tree.\n elementAttributes.unshift({\n name: \"label\",\n value: ariaLabel,\n });\n }\n if (ariaDescribedby) {\n // Aria-description is a space-separated list of ids.\n // Use the ids to get the actual description strings.\n const descriptions = ariaDescribedby.split(/ +/);\n for (const description of descriptions) {\n const descriptionString =\n document.getElementById(description)?.textContent;\n\n if (descriptionString) {\n elementAttributes.push({\n name: \"description\",\n value: descriptionString,\n });\n }\n }\n }\n\n // Only push the element to the list if it has aria-labels\n // or aria-descriptions.\n if (elementAttributes.length > 0) {\n elementArias.push({\n roleOrTag:\n element.getAttribute(\"role\") ||\n element.tagName.toLowerCase(),\n // Use the last class in the list of classes to avoid the\n // prepend classes that are not relevant, such as the\n // obscured inline styles.\n className:\n element.classList[element.classList.length - 1] || \"\",\n attributes: elementAttributes,\n });\n }\n });\n\n return elementArias;\n}\n\ntype Props = {\n elementArias: Array<AttributeMap>;\n showTags: boolean;\n};\n\nfunction SRTree(props: Props) {\n const {elementArias, showTags} = props;\n\n // Each list item of this ordered list is the role/rag of the element\n // followed by an unordered list of its aria attributes.\n return (\n <ol style={{listStyle: \"revert\", marginLeft: 8}}>\n {elementArias.map((aria, index) => (\n <li key={index}>\n {showTags && (\n <Pill\n size=\"small\"\n kind=\"success\"\n style={styles.smallSpaceRight}\n >\n {aria.roleOrTag}\n </Pill>\n )}\n {aria.className}\n <StyledUl style={styles.indentListLeft}>\n {aria.attributes.map((value, index) => (\n <li key={index}>\n <Pill\n size=\"small\"\n kind={\n value.name === \"label\"\n ? \"info\"\n : \"neutral\"\n }\n style={styles.smallSpaceRight}\n >\n {value.name}\n </Pill>\n {value.value}\n </li>\n ))}\n </StyledUl>\n </li>\n ))}\n </ol>\n );\n}\n\nfunction InteractiveGraphSRTree({\n // The graph whos accessibility tree we want to display.\n // This is necessary when there are multiple graphs on the editor\n // page, such as when there are also hints.\n graphId,\n correct,\n fullGraphAriaLabel,\n fullGraphAriaDescription,\n lockedFigures,\n}) {\n const [isExpanded, setIsExpanded] = React.useState(true);\n const [showTags, setShowTags] = React.useState(false);\n const [elementArias, setElementArias] = React.useState<AttributeMap[]>([]);\n const switchId = React.useId();\n\n // Update the tree when the graph is updated.\n React.useEffect(() => {\n setElementArias(getAccessibilityAttributes(graphId));\n }, [\n // Update the tree when the \"correct preview\" graph is updated.\n correct,\n fullGraphAriaLabel,\n fullGraphAriaDescription,\n graphId,\n lockedFigures,\n ]);\n\n return (\n <>\n <Heading\n title=\"Screen reader tree\"\n isOpen={isExpanded}\n onToggle={setIsExpanded}\n isCollapsible={true}\n />\n {isExpanded && (\n <>\n <View style={[styles.row, styles.tagSwitch]}>\n <Switch\n id={switchId}\n checked={showTags}\n onChange={setShowTags}\n />\n <Strut size={spacing.xSmall_8} />\n <LabelSmall tag=\"label\" htmlFor={switchId}>\n Show HTML roles/tags\n </LabelSmall>\n <Spring />\n <InfoTip>\n This screen reader tree shows the ARIA labels and\n descriptions for elements within the \"correct\n answer\" Interactive Graph widget displayed above.\n </InfoTip>\n </View>\n <SRTree elementArias={elementArias} showTags={showTags} />\n </>\n )}\n </>\n );\n}\n\nconst styles = StyleSheet.create({\n smallSpaceRight: {\n marginRight: spacing.xxSmall_6,\n },\n indentListLeft: {\n listStyle: \"revert\",\n marginLeft: spacing.small_12,\n },\n tagSwitch: {\n marginTop: spacing.xSmall_8,\n marginBottom: spacing.xSmall_8,\n },\n row: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n});\n\nexport default InteractiveGraphSRTree;\n","import {OptionItem, SingleSelect} from \"@khanacademy/wonder-blocks-dropdown\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nconst SegmentCountSelector = ({\n numSegments = 1,\n onChange,\n}: {\n numSegments?: number;\n onChange: (numSegments: number) => void;\n}) => (\n <SingleSelect\n key=\"segment-select\"\n selectedValue={`${numSegments}`}\n // Never uses placeholder, always has value\n placeholder=\"\"\n onChange={(newValue) => {\n const num = +newValue;\n onChange(num);\n }}\n style={styles.singleSelectShort}\n >\n {_.range(1, 7).map((n) => (\n <OptionItem\n key={n}\n value={`${n}`}\n label={`${n} segment${n > 1 ? \"s\" : \"\"}`}\n />\n ))}\n </SingleSelect>\n);\n\nconst styles = StyleSheet.create({\n singleSelectShort: {\n // Non-standard spacing, but it's the smallest we can go\n // without running into styling issues with the dropdown.\n height: 26,\n },\n});\n\nexport default SegmentCountSelector;\n","/**\n * Dropdown for selecting a locked figure to add to an interactive graph.\n * Locked figures are elements (points, segmeents, etc.) that are not\n * interactive, just present in the graph's background.\n *\n * Used in the interactive graph editor's locked figures section.\n */\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {ActionItem, ActionMenu} from \"@khanacademy/wonder-blocks-dropdown\";\nimport {spacing, color} from \"@khanacademy/wonder-blocks-tokens\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport type {LockedFigureType} from \"@khanacademy/perseus-core\";\n\ntype Props = {\n id: string;\n onChange: (value: LockedFigureType) => void;\n};\n\nconst LockedFigureSelect = (props: Props) => {\n const {id, onChange} = props;\n\n const figureTypes: ReadonlyArray<LockedFigureType> = [\n \"point\",\n \"line\",\n \"vector\",\n \"ellipse\",\n \"polygon\",\n \"function\",\n \"label\",\n ];\n\n return (\n <View style={styles.container}>\n <ActionMenu\n menuText=\"Add locked figure\"\n style={styles.addElementSelect}\n >\n {figureTypes.map((figureType) => (\n <ActionItem\n key={`${id}-${figureType}`}\n label={figureType}\n onClick={() => onChange(figureType)}\n />\n ))}\n </ActionMenu>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n marginTop: spacing.xSmall_8,\n },\n addElementSelect: {\n backgroundColor: color.fadedBlue8,\n borderRadius: spacing.xxxSmall_4,\n },\n});\n\nexport default LockedFigureSelect;\n","import {TextField} from \"@khanacademy/wonder-blocks-form\";\nimport * as React from \"react\";\n\nimport type {PropsFor} from \"@khanacademy/wonder-blocks-core\";\n\n/**\n * This is a custom text field of type=\"number\" for use in Perseus Editors.\n *\n * This component makes it so that\n * 1. the text field's input number updates on scroll without\n * scrolling the page.\n * 2. the input is controlled as long as it does not have focus.\n * While it is focused, it becomes editable and emits onChange\n * events. This is useful to make sure that input behavior\n * remains predictable, rather than possibly having the cursor\n * jump around uenxpectedly.\n *\n * NOTE 1: Native HTML number inputs do not update the number value on scroll,\n * they only scroll the page. Inputs in React do NOT work this way (explanation\n * here: https://stackoverflow.com/a/68266494). By default, scrolling on a\n * focused number input in React causes BOTH the input value to change AND\n * the page to scroll. The behavior in this component is an improvement on\n * the React behavior, but it's the opposite of the native HTML behavior.\n *\n * NOTE 2: Firefox seems to have a custom override for input scroll. Even\n * with this stopPropogation, Firefox matches the native HTML behavior.\n */\nconst ScrolllessNumberTextField = (props: PropsFor<typeof TextField>) => {\n const {value, onChange, ...restOfProps} = props;\n const [focused, setFocused] = React.useState(false);\n const [wipValue, setWipValue] = React.useState(\"\");\n\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => {\n const ref = inputRef.current;\n\n // stopPropogation makes it so that the page scroll event is not\n // triggered when the input is focused and the user scrolls.\n // The input value will still change on scroll.\n const ignoreScroll = (e) => {\n e.stopPropagation();\n };\n\n ref?.addEventListener(\"wheel\", ignoreScroll);\n\n return () => {\n ref?.removeEventListener(\"wheel\", ignoreScroll);\n };\n }, [inputRef]);\n\n return (\n <TextField\n {...restOfProps}\n type=\"number\"\n value={focused ? wipValue : value}\n onChange={(newValue) => {\n setWipValue(newValue);\n onChange(newValue);\n }}\n onFocus={(e) => {\n setWipValue(value);\n setFocused(true);\n\n props.onFocus?.(e);\n }}\n onBlur={(e) => {\n setFocused(false);\n\n props.onBlur?.(e);\n }}\n ref={inputRef}\n />\n );\n};\n\nexport default ScrolllessNumberTextField;\n","import {angles} from \"@khanacademy/kmath\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelMedium} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport ScrolllessNumberTextField from \"./scrollless-number-text-field\";\n\nconst {convertDegreesToRadians, convertRadiansToDegrees} = angles;\n\ntype Props = {\n angle: number;\n onChange: (angle: number) => void;\n};\n\nconst AngleInput = (props: Props) => {\n const {angle, onChange} = props;\n\n const [angleInput, setAngleInput] = React.useState(\n convertRadiansToDegrees(angle).toString(),\n );\n\n function handleAngleChange(newValue) {\n // Update the local state (update the input field value).\n setAngleInput(newValue);\n\n // If the new value is not a number, don't update the props.\n // If it's empty, keep the props the same value instead of setting to 0.\n if (isNaN(+newValue) || newValue === \"\") {\n return;\n }\n\n // Update the graph.\n onChange(convertDegreesToRadians(newValue));\n }\n\n return (\n <LabelMedium tag=\"label\" style={styles.row}>\n angle (degrees)\n <Strut size={spacing.xxSmall_6} />\n <ScrolllessNumberTextField\n value={angleInput}\n onChange={handleAngleChange}\n style={styles.textField}\n />\n <Strut size={spacing.xxSmall_6} />\n </LabelMedium>\n );\n};\n\nconst styles = StyleSheet.create({\n row: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n textField: {\n width: spacing.xxxLarge_64,\n },\n});\n\nexport default AngleInput;\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {color as wbColor, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelMedium} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport ScrolllessNumberTextField from \"./scrollless-number-text-field\";\n\nimport type {Coord} from \"@khanacademy/perseus\";\nimport type {StyleType} from \"@khanacademy/wonder-blocks-core\";\n\ntype Props = {\n coord: [number, number];\n labels?: [string, string];\n error?: boolean;\n style?: StyleType;\n onChange: (newCoord: Coord) => void;\n};\n\nconst CoordinatePairInput = (props: Props) => {\n const {coord, labels, error, style, onChange} = props;\n\n // Keep track of the coordinates via state as the user is editing them,\n // before they are updated in the props as a valid number.\n const [coordState, setCoordState] = React.useState([\n // Using strings to make it easier to work with the text fields.\n coord[0].toString(),\n coord[1].toString(),\n ]);\n\n // Update the local state when the props change. (Such as when the graph\n // type is changed, and the coordinates are reset.)\n React.useEffect(() => {\n setCoordState([coord[0].toString(), coord[1].toString()]);\n }, [coord]);\n\n function handleCoordChange(newValue, coordIndex) {\n // Update the local state (update the input field value).\n const newCoordState = [...coordState];\n newCoordState[coordIndex] = newValue;\n setCoordState(newCoordState);\n\n // If the new value is not a number, don't update the props.\n // If it's empty, keep the props the same value instead of setting to 0.\n if (isNaN(+newValue) || newValue === \"\") {\n return;\n }\n\n // Update the props (update the graph).\n const newCoords = [...coord] satisfies [number, number];\n newCoords[coordIndex] = +newValue;\n onChange(newCoords);\n }\n\n return (\n <View style={[styles.row, style]}>\n <LabelMedium tag=\"label\" style={styles.row}>\n {labels ? labels[0] : \"x coord\"}\n\n <Strut size={spacing.xxSmall_6} />\n <ScrolllessNumberTextField\n value={coordState[0]}\n onChange={(newValue) => handleCoordChange(newValue, 0)}\n style={[\n styles.textField,\n error ? styles.errorField : undefined,\n ]}\n />\n </LabelMedium>\n <Strut size={spacing.medium_16} />\n\n <LabelMedium tag=\"label\" style={styles.row}>\n {labels ? labels[1] : \"y coord\"}\n\n <Strut size={spacing.xxSmall_6} />\n <ScrolllessNumberTextField\n value={coordState[1]}\n onChange={(newValue) => handleCoordChange(newValue, 1)}\n style={[\n styles.textField,\n error ? styles.errorField : undefined,\n ]}\n />\n </LabelMedium>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n row: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n textField: {\n width: spacing.xxxLarge_64,\n },\n errorField: {\n borderColor: wbColor.red,\n backgroundColor: wbColor.fadedRed8,\n },\n});\n\nexport default CoordinatePairInput;\n","import {AccordionSection} from \"@khanacademy/wonder-blocks-accordion\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {color, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport type {StyleType} from \"@khanacademy/wonder-blocks-core\";\n\ntype Props = {\n animated?: boolean;\n children: React.ReactNode | React.ReactNode[];\n header: string | React.ReactElement;\n expanded?: boolean;\n containerStyle?: StyleType;\n panelStyle?: StyleType;\n onToggle?: (expanded: boolean) => void;\n};\n\nconst PerseusEditorAccordion = (props: Props) => {\n const {\n animated,\n children,\n header,\n expanded,\n containerStyle,\n panelStyle,\n onToggle,\n } = props;\n\n return (\n <View\n // More specificity so that we can override the default\n // .heading > h2 > .header styles from the articles.less\n // file (which is imported in perseus-renderer.less).\n className=\"perseus-editor-accordion\"\n >\n <AccordionSection\n animated={animated}\n expanded={expanded}\n onToggle={onToggle}\n style={[styles.container, containerStyle]}\n headerStyle={styles.accordionHeader}\n header={header}\n >\n <View style={[styles.accordionPanel, panelStyle]}>\n {children}\n </View>\n </AccordionSection>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: color.fadedBlue8,\n marginTop: spacing.xSmall_8,\n },\n accordionHeader: {\n padding: spacing.small_12,\n // Don't move the dropdown caret.\n paddingInlineEnd: 0,\n // Fixed height so the addition of the color swatch doesn't\n // change the height of the header when toggling.\n height: spacing.xxLarge_48,\n },\n accordionPanel: {\n paddingTop: spacing.xxSmall_6,\n paddingBottom: spacing.xxxSmall_4,\n paddingLeft: spacing.small_12,\n paddingRight: spacing.small_12,\n },\n});\n\nexport default PerseusEditorAccordion;\n","import {\n lockedFigureColors,\n type LockedFigureColor,\n} from \"@khanacademy/perseus-core\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {color as wbColor, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\ntype Props = {\n color: LockedFigureColor;\n filled?: boolean;\n decorative?: boolean;\n};\n\nconst ColorSwatch = (props: Props) => {\n const {color, filled = true, decorative = false} = props;\n\n return (\n <View\n aria-label={\n // Don't include an aria label for decorative circles.\n !decorative\n ? `${color}, ${filled ? \"filled\" : \"open\"}`\n : undefined\n }\n style={[\n styles.colorSwatch,\n {\n border: `4px solid ${lockedFigureColors[color]}`,\n backgroundColor: filled\n ? lockedFigureColors[color]\n : wbColor.white,\n },\n ]}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n colorSwatch: {\n // Add a white outline so that the color swatch is visible when\n // the dropdown option is highlighted with its blue background.\n outline: `2px solid ${wbColor.offWhite}`,\n borderRadius: \"50%\",\n width: spacing.large_24,\n height: spacing.large_24,\n },\n});\n\nexport default ColorSwatch;\n","import {lockedFigureColors} from \"@khanacademy/perseus-core\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {OptionItem, SingleSelect} from \"@khanacademy/wonder-blocks-dropdown\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelMedium} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport ColorSwatch from \"./color-swatch\";\n\nimport type {LockedFigureColor} from \"@khanacademy/perseus-core\";\nimport type {StyleType} from \"@khanacademy/wonder-blocks-core\";\n\nconst possibleColors = Object.keys(lockedFigureColors) as LockedFigureColor[];\n\ntype Props = {\n selectedValue: LockedFigureColor;\n style?: StyleType;\n onChange: (newColor: LockedFigureColor) => void;\n};\n\nconst ColorSelect = (props: Props) => {\n const {selectedValue, style, onChange} = props;\n\n return (\n <View style={[styles.row, style]}>\n <LabelMedium tag=\"label\" style={styles.row}>\n color\n <Strut size={spacing.xxSmall_6} />\n <SingleSelect\n selectedValue={selectedValue}\n // TODO(LEMS-2656): remove TS suppression\n onChange={onChange as any}\n // Placeholder is required, but never gets used.\n placeholder=\"\"\n >\n {possibleColors.map((colorName) => (\n <OptionItem\n key={colorName}\n value={colorName}\n label={colorName}\n leftAccessory={\n <ColorSwatch\n color={colorName}\n decorative={true}\n />\n }\n />\n ))}\n </SingleSelect>\n </LabelMedium>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n row: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n // Set minWidth to \"auto\" to prevent the component from bleeding\n // into the margins. (minWidth is 0 by default.)\n minWidth: \"auto\",\n },\n});\n\nexport default ColorSelect;\n","import {\n lockedFigureColors,\n lockedFigureFillStyles,\n} from \"@khanacademy/perseus-core\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {color as wbColor, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport type {\n LockedFigureColor,\n LockedFigureFillType,\n} from \"@khanacademy/perseus-core\";\n\ntype Props = {\n color: LockedFigureColor;\n fillStyle: LockedFigureFillType;\n strokeStyle: \"solid\" | \"dashed\";\n};\n\nconst EllipseSwatch = (props: Props) => {\n const {color, fillStyle, strokeStyle} = props;\n\n return (\n <View\n aria-label={`${color}, stroke ${strokeStyle}, fill ${fillStyle}`}\n style={[\n styles.container,\n {\n border: `4px ${strokeStyle} ${lockedFigureColors[color]}`,\n },\n ]}\n >\n <View\n style={[\n styles.innerCircle,\n {\n backgroundColor: lockedFigureColors[color],\n opacity:\n fillStyle === \"white\"\n ? 0\n : lockedFigureFillStyles[fillStyle],\n },\n ]}\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n // Add a white outline so that the color swatch is visible when\n // the dropdown option is highlighted with its blue background.\n outline: `2px solid ${wbColor.offWhite}`,\n borderRadius: \"50%\",\n width: spacing.xLarge_32,\n height: spacing.large_24,\n backgroundColor: wbColor.white,\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n innerCircle: {\n width: 28,\n height: 20,\n borderRadius: \"50%\",\n },\n});\n\nexport default EllipseSwatch;\n","import {OptionItem, SingleSelect} from \"@khanacademy/wonder-blocks-dropdown\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelMedium} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\ntype StyleOptions = \"solid\" | \"dashed\";\ntype Props = {\n selectedValue: StyleOptions;\n onChange: (newValue: StyleOptions) => void;\n};\n\nconst LineStrokeSelect = (props: Props) => {\n const {selectedValue, onChange} = props;\n\n return (\n <LabelMedium tag=\"label\" style={styles.lineStrokeSelect}>\n stroke\n <Strut size={spacing.xxxSmall_4} />\n <SingleSelect\n selectedValue={selectedValue}\n onChange={onChange as any}\n // Placeholder is required, but never gets used.\n placeholder=\"\"\n >\n <OptionItem value=\"solid\" label=\"solid\" />\n <OptionItem value=\"dashed\" label=\"dashed\" />\n </SingleSelect>\n </LabelMedium>\n );\n};\n\nconst styles = StyleSheet.create({\n lineStrokeSelect: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n // Allow truncation, stop bleeding over the edge.\n minWidth: 0,\n },\n});\n\nexport default LineStrokeSelect;\n","import {components} from \"@khanacademy/perseus\";\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {TextArea} from \"@khanacademy/wonder-blocks-form\";\nimport {Spring, Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {color, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelMedium, LabelXSmall} from \"@khanacademy/wonder-blocks-typography\";\nimport pencilCircle from \"@phosphor-icons/core/regular/pencil-circle.svg\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nconst {InfoTip} = components;\n\ntype Props = {\n ariaLabel: string | undefined;\n /**\n * The async function that generates the prepopulated aria label\n * for the locked figure with math details converted to spoken words.\n */\n getPrepopulatedAriaLabel: () => Promise<string>;\n onChangeProps: (props: {ariaLabel?: string | undefined}) => void;\n};\n\nfunction LockedFigureAria(props: Props) {\n const {ariaLabel, getPrepopulatedAriaLabel, onChangeProps} = props;\n const id = React.useId();\n const ariaLabelId = `aria-label-${id}`;\n\n const [loading, setLoading] = React.useState(false);\n\n return (\n <View>\n <Strut size={spacing.xSmall_8} />\n <View style={styles.row}>\n <LabelMedium tag=\"label\" htmlFor={ariaLabelId}>\n Aria label\n </LabelMedium>\n <Spring />\n <InfoTip>\n Aria label is used by screen readers to describe content to\n users who may be visually impaired. <br />\n <br />\n Populating this field will make it so that users can use a\n screen reader to navigate to this point and hear the\n description.\n <br />\n <br />\n If you leave this field blank, the point will be hidden from\n screen readers. Users will not be able to navigate to this\n point using a screen reader.\n </InfoTip>\n </View>\n <Strut size={spacing.xxSmall_6} />\n <LabelXSmall style={styles.caption}>\n The figure is hidden from screen readers if this field is left\n blank.\n </LabelXSmall>\n <Strut size={spacing.xxSmall_6} />\n <TextArea\n id={ariaLabelId}\n value={loading ? \"Loading...\" : ariaLabel ?? \"\"}\n onChange={(newValue) => {\n onChangeProps({\n // Save as undefined if the field is empty.\n ariaLabel: newValue || undefined,\n });\n }}\n placeholder=\"Ex. Point at (x, y)\"\n rows={1}\n resizeType=\"vertical\"\n />\n\n <Button\n kind=\"tertiary\"\n startIcon={pencilCircle}\n style={styles.button}\n onClick={() => {\n setLoading(true);\n getPrepopulatedAriaLabel().then((ariaLabel) => {\n setLoading(false);\n onChangeProps({ariaLabel});\n });\n }}\n >\n Auto-generate\n </Button>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n row: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n button: {\n alignSelf: \"start\",\n },\n caption: {\n color: color.offBlack64,\n },\n});\n\nexport default LockedFigureAria;\n","/**\n * The part of a locked figure settings panel that contains actions\n * for this panel and its associated locked figure, including\n * the delete button.\n */\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport IconButton from \"@khanacademy/wonder-blocks-icon-button\";\nimport {Spring} from \"@khanacademy/wonder-blocks-layout\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport caretDoubleDownIcon from \"@phosphor-icons/core/bold/caret-double-down-bold.svg\";\nimport caretDoubleUpIcon from \"@phosphor-icons/core/bold/caret-double-up-bold.svg\";\nimport caretDownIcon from \"@phosphor-icons/core/bold/caret-down-bold.svg\";\nimport caretUpIcon from \"@phosphor-icons/core/bold/caret-up-bold.svg\";\nimport trashIcon from \"@phosphor-icons/core/bold/trash-bold.svg\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport type {LockedFigureType} from \"@khanacademy/perseus-core\";\n\nexport type LockedFigureSettingsMovementType =\n | \"back\"\n | \"backward\"\n | \"forward\"\n | \"front\";\n\ntype Props = {\n figureType: LockedFigureType;\n onMove?: (movement: LockedFigureSettingsMovementType) => void;\n onRemove: () => void;\n};\n\nconst LockedFigureSettingsActions = (props: Props) => {\n const {figureType, onMove, onRemove} = props;\n\n return (\n <View style={styles.container}>\n <Button\n startIcon={trashIcon}\n aria-label={`Delete locked ${figureType}`}\n onClick={onRemove}\n kind=\"tertiary\"\n style={styles.deleteButton}\n >\n Delete\n </Button>\n\n {onMove && (\n <>\n <Spring />\n\n <IconButton\n icon={caretDoubleUpIcon}\n size=\"small\"\n aria-label={`Move locked ${figureType} to the back`}\n onClick={() => onMove(\"back\")}\n style={styles.iconButton}\n />\n <IconButton\n icon={caretUpIcon}\n size=\"small\"\n aria-label={`Move locked ${figureType} backward`}\n onClick={() => onMove(\"backward\")}\n style={styles.iconButton}\n />\n <IconButton\n icon={caretDownIcon}\n size=\"small\"\n aria-label={`Move locked ${figureType} forward`}\n onClick={() => onMove(\"forward\")}\n style={styles.iconButton}\n />\n <IconButton\n icon={caretDoubleDownIcon}\n size=\"small\"\n aria-label={`Move locked ${figureType} to the front`}\n onClick={() => onMove(\"front\")}\n style={styles.iconButton}\n />\n </>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n width: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n marginTop: spacing.xxxSmall_4,\n },\n deleteButton: {\n // Line up the delete icon with the rest of the content.\n marginInlineStart: -spacing.xxxSmall_4,\n },\n iconButton: {\n // Reset the margin because the icon buttons\n // overlap each other otherwise.\n margin: 0,\n },\n});\n\nexport default LockedFigureSettingsActions;\n","/**\n * LockedLabelSettings is a component that allows the user to edit the\n * settings of specifically a locked label on the graph within the\n * Interactive Graph widget.\n *\n * Used in the interactive graph editor's locked figures section.\n */\nimport {components} from \"@khanacademy/perseus\";\nimport {\n lockedFigureColors,\n type LockedLabelType,\n} from \"@khanacademy/perseus-core\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {OptionItem, SingleSelect} from \"@khanacademy/wonder-blocks-dropdown\";\nimport {TextField} from \"@khanacademy/wonder-blocks-form\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {spacing, color as wbColor} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelLarge, LabelMedium} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport CoordinatePairInput from \"../../../components/coordinate-pair-input\";\nimport PerseusEditorAccordion from \"../../../components/perseus-editor-accordion\";\n\nimport ColorSelect from \"./color-select\";\nimport LockedFigureSettingsActions from \"./locked-figure-settings-actions\";\n\nimport type {LockedFigureSettingsMovementType} from \"./locked-figure-settings-actions\";\nimport type {StyleType} from \"@khanacademy/wonder-blocks-core\";\n\nconst {InfoTip} = components;\n\nexport type Props = LockedLabelType & {\n /**\n * Called when the props (coord, color, etc.) are updated.\n */\n onChangeProps: (newProps: Partial<LockedLabelType>) => void;\n\n // Movement props. Used for standalone label actions.\n // Not used within other locked figure settings.\n /**\n * Called when a movement button (top, up, down, bottom) is pressed.\n * This is also used to indicate that this LockedLabelSettings component\n * is for a standalone label, not part of a larger locked figure.\n */\n onMove?: (movement: LockedFigureSettingsMovementType) => void;\n /**\n * Called when the delete button is pressed.\n */\n onRemove: () => void;\n\n // Accordion props. Used for standalone labels for the expand/collapse\n // button functionality. Not used within other locked figure settings.\n /**\n * Whether this accordion is expanded.\n */\n expanded?: boolean;\n /**\n * Called when the accordion is expanded or collapsed.\n */\n onToggle?: (expanded: boolean) => void;\n\n // Container style for the accordion.\n containerStyle?: StyleType;\n};\n\nexport default function LockedLabelSettings(props: Props) {\n const {\n type,\n coord,\n color,\n size,\n text,\n expanded,\n onChangeProps,\n onMove,\n onRemove,\n onToggle,\n containerStyle,\n } = props;\n\n return (\n <PerseusEditorAccordion\n expanded={expanded}\n onToggle={onToggle}\n header={\n <View style={[styles.row, styles.accordionHeaderContainer]}>\n <LabelLarge>\n Label ({coord[0]}, {coord[1]})\n </LabelLarge>\n <Strut size={spacing.xSmall_8} />\n {text !== \"\" && (\n <LabelLarge\n style={[\n {\n backgroundColor: wbColor.white,\n color: lockedFigureColors[color],\n },\n styles.accordionHeader,\n ]}\n >\n {text}\n </LabelLarge>\n )}\n </View>\n }\n containerStyle={containerStyle}\n >\n {/* Coord settings */}\n <CoordinatePairInput\n coord={coord}\n onChange={(newCoords) => {\n onChangeProps({coord: newCoords});\n }}\n style={styles.spaceUnder}\n />\n\n {/* Text settings */}\n <View style={styles.row}>\n <LabelMedium\n tag=\"label\"\n style={[styles.row, styles.spaceUnder, {flexGrow: 1}]}\n >\n text\n <Strut size={spacing.xSmall_8} />\n <TextField\n value={text}\n placeholder=\"ex. $x^2$ or $\\frac{1}{2}$\"\n onChange={(newValue) =>\n onChangeProps({\n text: newValue,\n })\n }\n />\n </LabelMedium>\n <InfoTip>\n Surround your text with $ for TeX.\n <br />\n Example: {`This circle has radius $\\\\frac{1}{2}$ units.`}\n <br />\n <br />\n It is important to use TeX when appropriate for\n accessibility. The above example would be read as &quot;This\n circle has radius one-half units&quot; by screen readers.\n </InfoTip>\n </View>\n\n <View style={styles.row}>\n <ColorSelect\n selectedValue={color}\n onChange={(newColor) => {\n onChangeProps({color: newColor});\n }}\n style={styles.spaceUnder}\n />\n <Strut size={spacing.medium_16} />\n\n {/* Size settings */}\n <LabelMedium tag=\"label\" style={styles.row}>\n size\n <Strut size={spacing.xSmall_8} />\n <SingleSelect\n selectedValue={size}\n // TODO(LEMS-2656): remove TS suppression\n onChange={\n ((newValue: \"small\" | \"medium\" | \"large\") =>\n onChangeProps({\n size: newValue,\n })) as any\n }\n // Placeholder is required, but never gets used since\n // we have a label for the select.\n placeholder=\"\"\n >\n <OptionItem value=\"small\" label=\"small\" />\n <OptionItem value=\"medium\" label=\"medium\" />\n <OptionItem value=\"large\" label=\"large\" />\n </SingleSelect>\n </LabelMedium>\n </View>\n\n {/* Actions */}\n <LockedFigureSettingsActions\n figureType={type}\n onMove={onMove}\n onRemove={onRemove}\n />\n </PerseusEditorAccordion>\n );\n}\nconst styles = StyleSheet.create({\n accordionHeaderContainer: {\n // Stop the label summary from wrapping.\n whiteSpace: \"nowrap\",\n },\n accordionHeader: {\n padding: spacing.xxxSmall_4,\n marginInlineEnd: spacing.xSmall_8,\n borderRadius: spacing.xxxSmall_4,\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n },\n row: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n // Allow truncation, stop bleeding over the edge.\n minWidth: 0,\n },\n spaceUnder: {\n marginBottom: spacing.xSmall_8,\n },\n});\n","import {SpeechRuleEngine} from \"@khanacademy/mathjax-renderer\";\nimport {mathOnlyParser} from \"@khanacademy/perseus\";\nimport {\n type LockedEllipseType,\n type LockedFigure,\n type LockedFigureColor,\n type LockedFigureFillType,\n type LockedFigureType,\n type LockedFunctionType,\n type LockedLabelType,\n type LockedLineType,\n type LockedPointType,\n type LockedPolygonType,\n type LockedVectorType,\n type LockedLineStyle,\n} from \"@khanacademy/perseus-core\";\nimport {UnreachableCaseError} from \"@khanacademy/wonder-stuff-core\";\n\nconst DEFAULT_COLOR = \"grayH\";\n\nexport function getDefaultFigureForType(type: \"point\"): LockedPointType;\nexport function getDefaultFigureForType(type: \"line\"): LockedLineType;\nexport function getDefaultFigureForType(type: \"vector\"): LockedVectorType;\nexport function getDefaultFigureForType(type: \"ellipse\"): LockedEllipseType;\nexport function getDefaultFigureForType(type: \"polygon\"): LockedPolygonType;\nexport function getDefaultFigureForType(type: \"function\"): LockedFunctionType;\nexport function getDefaultFigureForType(type: \"label\"): LockedLabelType;\nexport function getDefaultFigureForType(type: LockedFigureType): LockedFigure;\nexport function getDefaultFigureForType(type: LockedFigureType): LockedFigure {\n switch (type) {\n case \"point\":\n return {\n type: \"point\",\n coord: [0, 0],\n color: DEFAULT_COLOR,\n filled: true,\n };\n case \"line\":\n return {\n type: \"line\",\n kind: \"line\",\n points: [\n getDefaultFigureForType(\"point\"),\n {\n ...getDefaultFigureForType(\"point\"),\n coord: [2, 2],\n },\n ],\n color: DEFAULT_COLOR,\n lineStyle: \"solid\",\n showPoint1: false,\n showPoint2: false,\n };\n case \"vector\":\n return {\n type: \"vector\",\n points: [\n [0, 0],\n [2, 2],\n ],\n color: DEFAULT_COLOR,\n };\n case \"ellipse\":\n return {\n type: \"ellipse\",\n center: [0, 0],\n radius: [1, 1],\n angle: 0,\n color: DEFAULT_COLOR,\n fillStyle: \"none\",\n strokeStyle: \"solid\",\n };\n case \"polygon\":\n return {\n type: \"polygon\",\n points: [\n [0, 2],\n [-1, 0],\n [1, 0],\n ],\n color: DEFAULT_COLOR,\n showVertices: false,\n fillStyle: \"none\",\n strokeStyle: \"solid\",\n };\n case \"function\":\n return {\n type: \"function\",\n color: DEFAULT_COLOR,\n strokeStyle: \"solid\",\n equation: \"x^2\",\n domain: [-Infinity, Infinity],\n directionalAxis: \"x\",\n };\n case \"label\":\n return {\n type: \"label\",\n coord: [0, 0],\n text: \"label\",\n color: DEFAULT_COLOR,\n size: \"medium\",\n };\n default:\n throw new UnreachableCaseError(type);\n }\n}\n\nexport function generateLockedFigureAppearanceDescription(\n color: LockedFigureColor,\n strokeStyle: LockedLineStyle = \"solid\",\n fill?: LockedFigureFillType,\n) {\n const convertedColor = color === \"grayH\" ? \"gray\" : color;\n\n switch (fill) {\n case \"none\":\n return `. Appearance ${strokeStyle} ${convertedColor} border, with no fill.`;\n case \"white\":\n return `. Appearance ${strokeStyle} ${convertedColor} border, with a white fill.`;\n case \"solid\":\n case \"translucent\":\n return `. Appearance ${strokeStyle} ${convertedColor} border, with a ${fill} ${convertedColor} fill.`;\n case undefined:\n return `. Appearance ${strokeStyle} ${convertedColor}.`;\n default:\n throw new UnreachableCaseError(fill);\n }\n}\n\n/**\n * Given a string that may contain math within TeX represented by $...$,\n * returns the spoken math equivalent using the SpeechRuleEngine.\n * Exported for testing.\n *\n * Example: \"Circle with radius $\\frac{1}{2}$\" ==> \"Circle with radius one half\"\n */\nexport async function generateSpokenMathDetails(mathString: string) {\n const engine = await SpeechRuleEngine.setup(\"en\");\n let convertedSpeech = \"\";\n\n // All the information we need is in the first section,\n // whether it's typed as \"blockmath\" or \"paragraph\"\n const parsedContent = mathOnlyParser(mathString);\n\n // If it's a paragraph, we need to iterate through the sections\n // to look for individual math blocks.\n for (const piece of parsedContent) {\n switch (piece.type) {\n case \"math\":\n convertedSpeech += engine.texToSpeech(piece.content);\n break;\n case \"specialCharacter\":\n // We don't want the backslash from special character\n // to show up in the generated aria label.\n convertedSpeech +=\n piece.content.length > 1\n ? piece.content.slice(1)\n : piece.content;\n break;\n default:\n convertedSpeech += piece.content;\n break;\n }\n }\n\n return convertedSpeech;\n}\n\n/**\n * Take an array of LockedLabelType object and joins the text of each label\n * with a comma and space in between. The text of each label is converted to\n * spoken math using the SpeechRuleEngine.\n */\nexport async function joinLabelsAsSpokenMath(\n labels: LockedLabelType[] | undefined,\n): Promise<string> {\n if (!labels || labels.length === 0) {\n return \"\";\n }\n\n const spokenLabelPromises = labels.map((label) => {\n return generateSpokenMathDetails(label.text);\n });\n\n const spokenLabels = await Promise.all(spokenLabelPromises);\n\n return ` ${spokenLabels.join(\", \")}`;\n}\n\n// TODO(LEMS-2616): Stop using this mock in tests once we update the\n// speech rule engine to read locale data from local files.\n/**\n * Non-async mocked version of joinLabelsAsSpokenMath for tests.\n */\nexport function mockedJoinLabelsAsSpokenMathForTests(\n labels: LockedLabelType[] | undefined,\n) {\n if (!labels || labels.length === 0) {\n return Promise.resolve(\"\");\n }\n\n // Mock this so that each label's text says \"spoken\" before it.\n const jointMock = labels.map((input) => ` spoken ${input.text}`).join(\",\");\n return Promise.resolve(jointMock);\n}\n\nexport function mockedGenerateSpokenMathDetailsForTests(mathString: string) {\n return Promise.resolve(`spoken ${mathString}`);\n}\n","import {angles} from \"@khanacademy/kmath\";\nimport {components} from \"@khanacademy/perseus\";\nimport {lockedFigureFillStyles} from \"@khanacademy/perseus-core\";\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {OptionItem, SingleSelect} from \"@khanacademy/wonder-blocks-dropdown\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {spacing, color as wbColor} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelMedium, LabelLarge} from \"@khanacademy/wonder-blocks-typography\";\nimport plusCircle from \"@phosphor-icons/core/regular/plus-circle.svg\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport AngleInput from \"../../../components/angle-input\";\nimport CoordinatePairInput from \"../../../components/coordinate-pair-input\";\nimport PerseusEditorAccordion from \"../../../components/perseus-editor-accordion\";\n\nimport ColorSelect from \"./color-select\";\nimport EllipseSwatch from \"./ellipse-swatch\";\nimport LineStrokeSelect from \"./line-stroke-select\";\nimport LockedFigureAria from \"./locked-figure-aria\";\nimport LockedFigureSettingsActions from \"./locked-figure-settings-actions\";\nimport LockedLabelSettings from \"./locked-label-settings\";\nimport {\n generateLockedFigureAppearanceDescription,\n generateSpokenMathDetails,\n getDefaultFigureForType,\n joinLabelsAsSpokenMath,\n} from \"./util\";\n\nimport type {LockedFigureSettingsCommonProps} from \"./locked-figure-settings\";\nimport type {\n Coord,\n LockedFigureFillType,\n LockedEllipseType,\n LockedFigureColor,\n LockedLabelType,\n} from \"@khanacademy/perseus-core\";\n\nconst {convertRadiansToDegrees} = angles;\nconst {InfoTip} = components;\n\nexport type Props = LockedFigureSettingsCommonProps &\n LockedEllipseType & {\n /**\n * Called when the props (coords, color, etc.) are updated.\n */\n onChangeProps: (newProps: Partial<LockedEllipseType>) => void;\n };\n\nconst LockedEllipseSettings = (props: Props) => {\n const {\n center,\n radius,\n angle,\n color,\n labels,\n ariaLabel,\n fillStyle,\n strokeStyle,\n expanded,\n onToggle,\n onChangeProps,\n onMove,\n onRemove,\n } = props;\n\n /**\n * Generate the prepopulated aria label for the ellipse,\n * with the math details converted into spoken words.\n */\n async function getPrepopulatedAriaLabel() {\n // Ensure negative values are read correctly within aria labels.\n const visiblelabel = await joinLabelsAsSpokenMath(labels);\n const spokenCenterX = await generateSpokenMathDetails(`$${center[0]}$`);\n const spokenCenterY = await generateSpokenMathDetails(`$${center[1]}$`);\n const spokenRotation = await generateSpokenMathDetails(\n `$${convertRadiansToDegrees(angle)}$`,\n );\n\n const isCircle = radius[0] === radius[1];\n let str = \"\";\n\n if (isCircle) {\n str += `Circle${visiblelabel} with radius ${radius[0]}`;\n } else {\n str += `Ellipse${visiblelabel} with x radius ${radius[0]} and y radius ${radius[1]}`;\n }\n\n str += `, centered at ${spokenCenterX} comma ${spokenCenterY}`;\n\n if (!isCircle && angle !== 0) {\n str += `, rotated by ${spokenRotation} degrees`;\n }\n\n const ellipseAppearance = generateLockedFigureAppearanceDescription(\n color,\n strokeStyle,\n fillStyle,\n );\n str += ellipseAppearance;\n return str;\n }\n\n function handleCenterChange(newCoord: Coord) {\n const xOffset = newCoord[0] - center[0];\n const yOffset = newCoord[1] - center[1];\n\n const newProps: Partial<LockedEllipseType> = {\n center: newCoord,\n };\n\n // Update the coord by the same amount as the point for all labels\n newProps.labels = labels?.map((label) => ({\n ...label,\n coord: [label.coord[0] + xOffset, label.coord[1] + yOffset],\n }));\n\n onChangeProps(newProps);\n }\n\n function handleColorChange(newValue: LockedFigureColor) {\n const newProps: Partial<LockedEllipseType> = {\n color: newValue,\n };\n\n // Update the color of the all labels to match the point\n newProps.labels = labels?.map((label) => ({\n ...label,\n color: newValue,\n }));\n\n onChangeProps(newProps);\n }\n\n function handleLabelChange(\n updatedLabel: Partial<LockedLabelType>,\n labelIndex: number,\n ) {\n if (!labels) {\n return;\n }\n\n const updatedLabels = [...labels];\n updatedLabels[labelIndex] = {\n ...labels[labelIndex],\n ...updatedLabel,\n };\n\n onChangeProps({labels: updatedLabels});\n }\n\n function handleLabelRemove(labelIndex: number) {\n if (!labels) {\n return;\n }\n\n const updatedLabels = labels.filter((_, index) => index !== labelIndex);\n\n onChangeProps({labels: updatedLabels});\n }\n\n return (\n <PerseusEditorAccordion\n expanded={expanded}\n onToggle={onToggle}\n header={\n // Summary: Ellipse, center, radius, color (opacity, dashed)\n <View style={styles.row}>\n <LabelLarge>{`Ellipse (${center[0]}, ${center[1]}), radius ${radius[0]}, ${radius[1]}`}</LabelLarge>\n <Strut size={spacing.xSmall_8} />\n <EllipseSwatch\n color={props.color}\n fillStyle={fillStyle}\n strokeStyle={strokeStyle}\n />\n </View>\n }\n >\n {/* Center point */}\n <View style={styles.row}>\n <CoordinatePairInput\n coord={center}\n style={styles.spaceUnder}\n onChange={handleCenterChange}\n />\n <View style={styles.spaceUnder}>\n <InfoTip>\n The coordinates for the center of the ellipse.\n </InfoTip>\n </View>\n </View>\n\n {/* Radius */}\n <CoordinatePairInput\n coord={radius}\n labels={[\"x radius\", \"y radius\"]}\n style={styles.spaceUnder}\n onChange={(newCoords: Coord) =>\n onChangeProps({radius: newCoords})\n }\n />\n\n {/* Angle */}\n <AngleInput\n angle={angle}\n onChange={(newAngle: number) =>\n onChangeProps({angle: newAngle})\n }\n />\n <Strut size={spacing.xSmall_8} />\n\n <View style={[styles.row, styles.spaceUnder]}>\n {/* Color */}\n <ColorSelect\n selectedValue={color}\n onChange={handleColorChange}\n />\n <Strut size={spacing.medium_16} />\n\n {/* Fill opacity */}\n <LabelMedium\n tag=\"label\"\n style={[styles.row, styles.truncatedWidth]}\n >\n fill\n <Strut size={spacing.xxSmall_6} />\n <SingleSelect\n selectedValue={fillStyle}\n // TODO(LEMS-2656): remove TS suppression\n onChange={\n ((value: LockedFigureFillType) =>\n onChangeProps({fillStyle: value})) as any\n }\n // Placeholder is required, but never gets used.\n placeholder=\"\"\n >\n {Object.keys(lockedFigureFillStyles).map((option) => (\n <OptionItem\n key={option}\n value={option}\n label={option}\n />\n ))}\n </SingleSelect>\n </LabelMedium>\n </View>\n\n {/* Stroke style */}\n <LineStrokeSelect\n selectedValue={strokeStyle}\n onChange={(value) => onChangeProps({strokeStyle: value})}\n />\n\n {/* Aria label */}\n <Strut size={spacing.small_12} />\n <View style={styles.horizontalRule} />\n <LockedFigureAria\n ariaLabel={ariaLabel}\n getPrepopulatedAriaLabel={getPrepopulatedAriaLabel}\n onChangeProps={(newProps) => {\n onChangeProps(newProps);\n }}\n />\n\n {/* Visible Labels */}\n <Strut size={spacing.xxxSmall_4} />\n <View style={styles.horizontalRule} />\n <Strut size={spacing.small_12} />\n <LabelMedium>Visible labels</LabelMedium>\n {labels?.map((label, labelIndex) => (\n <LockedLabelSettings\n {...label}\n key={labelIndex}\n expanded={true}\n onChangeProps={(newLabel) => {\n handleLabelChange(newLabel, labelIndex);\n }}\n onRemove={() => {\n handleLabelRemove(labelIndex);\n }}\n containerStyle={styles.labelContainer}\n />\n ))}\n <Button\n kind=\"tertiary\"\n startIcon={plusCircle}\n onClick={() => {\n const newLabel = {\n ...getDefaultFigureForType(\"label\"),\n coord: [\n center[0],\n // Additional vertical offset for each\n // label so they don't overlap.\n center[1] - (labels?.length ?? 0),\n ],\n // Default to the same color as the ellipse\n color: color,\n } satisfies LockedLabelType;\n\n onChangeProps({\n labels: [...(labels ?? []), newLabel],\n });\n }}\n style={styles.addButton}\n >\n Add visible label\n </Button>\n\n {/* Actions */}\n <LockedFigureSettingsActions\n figureType={props.type}\n onMove={onMove}\n onRemove={onRemove}\n />\n </PerseusEditorAccordion>\n );\n};\n\nconst styles = StyleSheet.create({\n row: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n spaceUnder: {\n marginBottom: spacing.xSmall_8,\n },\n truncatedWidth: {\n // Allow truncation, stop bleeding over the edge.\n minWidth: 0,\n },\n addButton: {\n alignSelf: \"start\",\n },\n labelContainer: {\n backgroundColor: wbColor.white,\n },\n horizontalRule: {\n height: 1,\n backgroundColor: wbColor.offBlack16,\n },\n});\n\nexport default LockedEllipseSettings;\n","import {\n lockedFigureColors,\n type LockedFigureColor,\n} from \"@khanacademy/perseus-core\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {color as wbColor, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\ntype Props = {\n color: LockedFigureColor;\n lineStyle: \"solid\" | \"dashed\";\n};\n\nconst LineSwatch = (props: Props) => {\n const {color, lineStyle} = props;\n\n return (\n <View style={styles.container}>\n <View\n aria-label={`${color}, ${lineStyle}`}\n style={[\n styles.lineSwatch,\n {\n border: `5px ${lineStyle} ${lockedFigureColors[color]}`,\n },\n ]}\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: wbColor.white,\n justifyContent: \"center\",\n padding: spacing.xSmall_8,\n borderRadius: spacing.xxxSmall_4,\n },\n lineSwatch: {\n width: 40,\n },\n});\n\nexport default LineSwatch;\n","const examples: {[k: string]: string[]} = {\n linear: [\"x + 5\", \"1/2x - 2\"],\n polynomial: [\"1/2x^2 + 3x - 4\", \"(1/3)x^3 - 2x^2 + 3x - 4\"],\n trigonometric: [\"sin(x) * 3\", \"arctan(2x) + 4\"],\n};\n\nexport default examples;\n","/**\n * LockedFunctionSettings is a component that allows the user to edit the\n * settings of specifically a locked function on the graph.\n *\n * Used in the interactive graph editor's locked figures section.\n */\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {OptionItem, SingleSelect} from \"@khanacademy/wonder-blocks-dropdown\";\nimport {TextField} from \"@khanacademy/wonder-blocks-form\";\nimport IconButton from \"@khanacademy/wonder-blocks-icon-button\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {color, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelLarge, LabelMedium} from \"@khanacademy/wonder-blocks-typography\";\nimport copyIcon from \"@phosphor-icons/core/assets/regular/copy.svg\";\nimport autoPasteIcon from \"@phosphor-icons/core/assets/regular/note-pencil.svg\";\nimport plusCircle from \"@phosphor-icons/core/regular/plus-circle.svg\";\nimport {StyleSheet, css} from \"aphrodite\";\nimport * as React from \"react\";\nimport {useEffect, useId, useState} from \"react\";\n\nimport PerseusEditorAccordion from \"../../../components/perseus-editor-accordion\";\n\nimport ColorSelect from \"./color-select\";\nimport LineStrokeSelect from \"./line-stroke-select\";\nimport LineSwatch from \"./line-swatch\";\nimport LockedFigureAria from \"./locked-figure-aria\";\nimport LockedFigureSettingsActions from \"./locked-figure-settings-actions\";\nimport examples from \"./locked-function-examples\";\nimport LockedLabelSettings from \"./locked-label-settings\";\nimport {\n generateLockedFigureAppearanceDescription,\n getDefaultFigureForType,\n joinLabelsAsSpokenMath,\n} from \"./util\";\n\nimport type {LockedFigureSettingsCommonProps} from \"./locked-figure-settings\";\nimport type {\n LockedFigureColor,\n LockedFunctionType,\n LockedLabelType,\n} from \"@khanacademy/perseus-core\";\n\nexport type Props = LockedFunctionType &\n LockedFigureSettingsCommonProps & {\n /**\n * Called when the props (points, color, etc.) are updated.\n */\n onChangeProps: (newProps: Partial<LockedFunctionType>) => void;\n };\n\nconst LockedFunctionSettings = (props: Props) => {\n const {\n color: lineColor,\n strokeStyle,\n equation,\n directionalAxis,\n domain,\n ariaLabel,\n onChangeProps,\n onMove,\n onRemove,\n } = props;\n const labels = props.labels ?? [];\n const equationPrefix = directionalAxis === \"x\" ? \"y=\" : \"x=\";\n const lineLabel = `Function (${equationPrefix}${equation})`;\n\n // Tracking the string value of domain/range constraints to handle interim state of\n // entering a negative value, as well as representing Infinity as an empty string.\n // This variable is used when specifying the values of the input fields.\n const getDomainStringValues = (domain): [string, string] => {\n return [\n Number.isFinite(domain[0]) ? domain[0].toString() : \"\",\n Number.isFinite(domain[1]) ? domain[1].toString() : \"\",\n ];\n };\n\n const [domainEntries, setDomainEntries] = useState(\n getDomainStringValues(domain),\n );\n\n const [exampleCategory, setExampleCategory] = useState(\"\");\n\n useEffect(() => {\n // \"useEffect\" used to maintain parity between domain/range constraints and their string representation.\n setDomainEntries(getDomainStringValues(domain));\n }, [domain]);\n\n /**\n * Generate the prepopulated aria label for the function,\n * with the math details converted into spoken words.\n */\n async function getPrepopulatedAriaLabel() {\n const visiblelabel = await joinLabelsAsSpokenMath(labels);\n\n let str = `Function${visiblelabel} with equation ${equationPrefix}${equation}`;\n\n // Add the domain/range constraints to the aria label\n // if they are not the default values.\n if (Number.isFinite(domain[0]) || Number.isFinite(domain[1])) {\n str += `, domain from ${domain[0]} to ${domain[1]}`;\n }\n\n const functionAppearance = generateLockedFigureAppearanceDescription(\n lineColor,\n strokeStyle,\n );\n str += functionAppearance;\n\n return str;\n }\n\n // Generic function for handling property changes (except for 'domain/range')\n function handlePropChange(property: string, newValue: string) {\n const updatedProps: Partial<LockedFunctionType> = {};\n updatedProps[property] = newValue;\n onChangeProps(updatedProps);\n }\n\n /*\n Reason for having a separate 'propChange' function for 'domain/range':\n Domain/Range entries are optional. Their default value is +/- Infinity.\n Since input fields that are empty evaluate to zero, there needs to be\n dedicated code to convert empty to Infinity.\n */\n function handleDomainChange(limitIndex: number, newValueString: string) {\n const newDomainEntries: [string, string] = [...domainEntries];\n newDomainEntries[limitIndex] = newValueString;\n setDomainEntries(newDomainEntries);\n const newDomain: [min: number, max: number] = [...domain];\n\n let newValue = parseFloat(newValueString);\n if (newValueString === \"\" && limitIndex === 0) {\n newValue = -Infinity;\n } else if (newValueString === \"\" && limitIndex === 1) {\n newValue = Infinity;\n }\n newDomain[limitIndex] = newValue;\n onChangeProps({domain: newDomain});\n }\n\n const exampleCategories = Object.keys(examples);\n const exampleCategorySelected = exampleCategory !== \"\";\n const exampleContent = exampleCategorySelected\n ? examples[exampleCategory]\n : [\"Select category to see example equations\"];\n\n function handleColorChange(newValue: LockedFigureColor) {\n const newProps: Partial<LockedFunctionType> = {\n color: newValue,\n };\n\n // Update the color of all the labels to match the point\n newProps.labels = labels.map((label) => ({\n ...label,\n color: newValue,\n }));\n\n onChangeProps(newProps);\n }\n\n function handleLabelChange(\n updatedLabel: Partial<LockedLabelType>,\n labelIndex: number,\n ) {\n const updatedLabels = [...labels];\n updatedLabels[labelIndex] = {\n ...labels[labelIndex],\n ...updatedLabel,\n };\n\n onChangeProps({labels: updatedLabels});\n }\n\n function handleLabelRemove(labelIndex: number) {\n const updatedLabels = labels.filter((_, index) => index !== labelIndex);\n\n onChangeProps({labels: updatedLabels});\n }\n\n return (\n <PerseusEditorAccordion\n expanded={props.expanded}\n onToggle={props.onToggle}\n header={\n <View style={styles.row}>\n <LabelLarge style={styles.accordionHeader}>\n {lineLabel}\n </LabelLarge>\n <Strut size={spacing.xSmall_8} />\n <LineSwatch color={lineColor} lineStyle={strokeStyle} />\n </View>\n }\n >\n <View style={[styles.row, styles.spaceUnder]}>\n {/* Line color settings */}\n <ColorSelect\n selectedValue={lineColor}\n onChange={handleColorChange}\n />\n <Strut size={spacing.small_12} />\n\n {/* Line style settings */}\n <LineStrokeSelect\n selectedValue={strokeStyle}\n onChange={(newValue) => {\n handlePropChange(\"strokeStyle\", newValue);\n }}\n />\n </View>\n\n <View style={[styles.row, styles.rowSpace]}>\n {/* Directional axis (x or y) */}\n <SingleSelect\n selectedValue={directionalAxis}\n onChange={(newValue) => {\n handlePropChange(\"directionalAxis\", newValue);\n }}\n aria-label=\"equation prefix\"\n style={[styles.dropdownLabel, styles.axisMenu]}\n // Placeholder is required, but never gets used.\n placeholder=\"\"\n >\n <OptionItem value=\"x\" label=\"y =\" />\n <OptionItem value=\"y\" label=\"x =\" />\n </SingleSelect>\n <Strut size={spacing.xSmall_8} />\n {/* Equation entry */}\n <TextField\n type=\"text\"\n aria-label=\"equation\"\n value={equation}\n onChange={(newValue) => {\n handlePropChange(\"equation\", newValue);\n }}\n style={[styles.textField]}\n />\n </View>\n\n {/* Domain/Range restrictions */}\n <View style={[styles.row, styles.rowSpace]}>\n <LabelMedium\n tag=\"label\"\n style={[styles.dropdownLabel, styles.domainMin]}\n >\n {\"domain min\"}\n\n <Strut size={spacing.xxSmall_6} />\n <TextField\n type=\"number\"\n style={styles.domainMinField}\n value={domainEntries[0]}\n onChange={(newValue) => {\n handleDomainChange(0, newValue);\n }}\n />\n </LabelMedium>\n <Strut size={spacing.medium_16} />\n <LabelMedium\n tag=\"label\"\n aria-label=\"domain max\"\n style={[styles.dropdownLabel, styles.domainMax]}\n >\n {\"max\"}\n\n <Strut size={spacing.xxSmall_6} />\n <TextField\n type=\"number\"\n style={styles.domainMaxField}\n value={domainEntries[1]}\n onChange={(newValue) => {\n handleDomainChange(1, newValue);\n }}\n />\n </LabelMedium>\n </View>\n\n {/* Examples */}\n <PerseusEditorAccordion\n header={<LabelLarge>Example Functions</LabelLarge>}\n expanded={false}\n containerStyle={styles.exampleWorkspace}\n panelStyle={styles.exampleAccordionPanel}\n >\n <LabelMedium tag=\"label\" style={styles.dropdownLabel}>\n {\"Choose a category\"}\n <Strut size={spacing.xxSmall_6} />\n <SingleSelect\n selectedValue={exampleCategory}\n onChange={setExampleCategory}\n placeholder=\"examples\"\n >\n {exampleCategories.map((category) => {\n return (\n <OptionItem\n key={category}\n value={category}\n label={category}\n />\n );\n })}\n </SingleSelect>\n </LabelMedium>\n {exampleCategorySelected && (\n <ul className={css(styles.exampleContainer)}>\n {exampleContent.map((example, index) => (\n <ExampleItem\n key={index}\n category={exampleCategory}\n example={example}\n index={index}\n pasteEquationFn={handlePropChange}\n />\n ))}\n </ul>\n )}\n </PerseusEditorAccordion>\n\n {/* Aria label */}\n <Strut size={spacing.small_12} />\n <View style={styles.horizontalRule} />\n <LockedFigureAria\n ariaLabel={ariaLabel}\n getPrepopulatedAriaLabel={getPrepopulatedAriaLabel}\n onChangeProps={(newProps) => {\n onChangeProps(newProps);\n }}\n />\n\n {/* Visible Labels */}\n <Strut size={spacing.xxxSmall_4} />\n <View style={styles.horizontalRule} />\n <Strut size={spacing.small_12} />\n <LabelMedium>Visible labels</LabelMedium>\n {labels.map((label, labelIndex, allLabels) => (\n <LockedLabelSettings\n key={labelIndex}\n {...label}\n expanded={true}\n onChangeProps={(newLabel) => {\n handleLabelChange(newLabel, labelIndex);\n }}\n onRemove={() => {\n handleLabelRemove(labelIndex);\n }}\n containerStyle={styles.labelContainer}\n />\n ))}\n <Button\n kind=\"tertiary\"\n startIcon={plusCircle}\n onClick={() => {\n const newLabel = {\n ...getDefaultFigureForType(\"label\"),\n // Vertical offset for each label so they\n // don't overlap.\n coord: [0, -labels.length],\n // Default to the same color as the function\n color: lineColor,\n } satisfies LockedLabelType;\n\n onChangeProps({\n labels: [...labels, newLabel],\n });\n }}\n style={styles.addButton}\n >\n Add visible label\n </Button>\n\n {/* Actions */}\n <LockedFigureSettingsActions\n figureType={props.type}\n onMove={onMove}\n onRemove={onRemove}\n />\n </PerseusEditorAccordion>\n );\n};\n\ntype ItemProps = {\n category: string;\n example: string;\n index: number;\n pasteEquationFn: (property: string, newValue: string) => void;\n};\n\nconst ExampleItem = (props: ItemProps): React.ReactElement => {\n const {category, example, index, pasteEquationFn} = props;\n const exampleId = useId();\n\n return (\n <li key={`${category}-${index}`} className={css(styles.exampleRow)}>\n <IconButton\n icon={autoPasteIcon}\n aria-label=\"paste example\"\n aria-describedby={exampleId}\n onClick={() => pasteEquationFn(\"equation\", example)}\n size=\"medium\"\n style={styles.copyPasteButton}\n />\n <IconButton\n icon={copyIcon}\n aria-label=\"copy example\"\n aria-describedby={exampleId}\n onClick={() => navigator.clipboard.writeText(example)}\n size=\"medium\"\n style={styles.copyPasteButton}\n />\n <Strut size={spacing.xxxSmall_4} />\n <View style={styles.exampleContent} id={exampleId}>\n {example}\n </View>\n </li>\n );\n};\n\nconst styles = StyleSheet.create({\n accordionHeader: {\n textOverflow: \"ellipsis\",\n // A maximum width needs to be specified in order for the ellipsis to work.\n // The 64px in the calculation accounts for the line swatch (56px) and the preceding strut (8px).\n // Margin and padding won't work here because they would create space between the header text and the swatch.\n maxWidth: \"calc(100% - 64px)\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n },\n axisMenu: {\n minWidth: \"auto\",\n },\n copyPasteButton: {\n flexShrink: \"0\",\n margin: \"0 2px\",\n },\n domainMin: {\n justifyContent: \"space-between\",\n // The 'width' property is applied to the label, which wraps the text and the input field.\n // The width of the input fields (min/max) should be the same (to have a consistent look),\n // so the following calculation distributes the space accordingly.\n // For the \"domain/range min\" block, the text is 82.7px, and the strut is 6px (88.7px total).\n // The \"domain/range max\" block is 30.23px, and the strut is 6px (36.23px total).\n // The calculation takes the remain space after the text & struts (141px total) are removed,\n // and divides it between the two input fields equally.\n // The calculation reads: \"Take 1/2 of the non-text space, and add the required space for this label's text\"\n width: \"calc(((100% - 141px) / 2) + 88.7px)\",\n textWrap: \"nowrap\",\n },\n domainMinField: {\n width: \"calc(100% - 88.7px)\", // make room for the label\n },\n domainMax: {\n // See explanation for \"domainMin\" for the calculation below.\n width: \"calc(((100% - 141px) / 2) + 36.2px)\",\n },\n domainMaxField: {\n width: \"calc(100% - 36.2px)\", // make room for the label\n },\n dropdownLabel: {\n alignItems: \"center\",\n display: \"flex\",\n },\n exampleAccordionPanel: {\n alignItems: \"start\",\n paddingBottom: \"12px\",\n flexDirection: \"row\",\n flexWrap: \"wrap\",\n },\n exampleContainer: {\n background: \"white\",\n border: `1px solid ${color.fadedOffBlack16}`,\n borderRadius: \"4px\",\n flexGrow: \"1\",\n listStyleType: \"none\",\n // Nothing special about the maxHeight value,\n // just a good height to partially show a 3rd example in the list\n // to hint at scrollable content.\n maxHeight: \"88px\",\n margin: \"8px 0 0 0\",\n overflowY: \"scroll\",\n padding: \"4px 12px 4px 4px\",\n },\n exampleContent: {\n fontFamily: `\"Lato\", sans-serif`,\n flexGrow: \"1\",\n color: color.offBlack,\n },\n exampleRow: {\n alignItems: \"center\",\n display: \"flex\",\n flexDirection: \"row\",\n minHeight: \"44px\",\n },\n exampleWorkspace: {\n background: color.white50,\n },\n rowSpace: {\n marginTop: spacing.xSmall_8,\n },\n row: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n textField: {\n flexGrow: \"1\",\n },\n\n // Label settings styles\n addButton: {\n alignSelf: \"start\",\n },\n horizontalRule: {\n height: 1,\n backgroundColor: color.offBlack16,\n },\n labelContainer: {\n backgroundColor: color.white,\n },\n});\n\nexport default LockedFunctionSettings;\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport Switch from \"@khanacademy/wonder-blocks-switch\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelMedium} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\nimport {useId} from \"react\";\n\nimport type {StyleType} from \"@khanacademy/wonder-blocks-core\";\n\ntype Props = {\n label: string;\n checked: boolean;\n style?: StyleType;\n onChange: (newValue: boolean) => void;\n};\n\nconst LabeledSwitch = (props: Props) => {\n const {checked, label, style, onChange} = props;\n\n const switchId = useId();\n return (\n <View style={[styles.row, style]}>\n <Switch id={switchId} checked={checked} onChange={onChange} />\n <Strut size={spacing.xSmall_8} />\n <LabelMedium tag=\"label\" htmlFor={switchId}>\n {label}\n </LabelMedium>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n row: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n});\n\nexport default LabeledSwitch;\n","/**\n * LockedPointSettings is a component that allows the user to edit the\n * settings of specifically a locked point on the graph.\n *\n * Used in the interactive graph editor's locked figures section.\n */\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {spacing, color as wbColor} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelLarge, LabelMedium} from \"@khanacademy/wonder-blocks-typography\";\nimport plusCircle from \"@phosphor-icons/core/regular/plus-circle.svg\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport CoordinatePairInput from \"../../../components/coordinate-pair-input\";\nimport PerseusEditorAccordion from \"../../../components/perseus-editor-accordion\";\n\nimport ColorSelect from \"./color-select\";\nimport ColorSwatch from \"./color-swatch\";\nimport LabeledSwitch from \"./labeled-switch\";\nimport LockedFigureAria from \"./locked-figure-aria\";\nimport LockedFigureSettingsActions from \"./locked-figure-settings-actions\";\nimport LockedLabelSettings from \"./locked-label-settings\";\nimport {\n generateSpokenMathDetails,\n generateLockedFigureAppearanceDescription,\n getDefaultFigureForType,\n joinLabelsAsSpokenMath,\n} from \"./util\";\n\nimport type {LockedFigureSettingsMovementType} from \"./locked-figure-settings-actions\";\nimport type {LockedLabelType, LockedPointType} from \"@khanacademy/perseus-core\";\n\nexport type Props = LockedPointType & {\n /**\n * Optional label for the point to display in the header summary.\n * Defaults to \"Point\".\n */\n headerLabel?: string;\n /**\n * Whether the extra point settings are toggled open.\n */\n showPoint?: boolean;\n /**\n * Optional error message to display.\n */\n error?: string | null;\n /**\n * Called when the extra settings toggle switch is changed.\n */\n onTogglePoint?: (newValue) => void;\n /**\n * Called when the props (coords, color, etc.) are updated.\n */\n onChangeProps: (newProps: Partial<LockedPointType>) => void;\n\n // Accordion props\n /**\n * Whether this accordion is expanded.\n */\n expanded?: boolean;\n /**\n * Called when the accordion is expanded or collapsed.\n */\n onToggle?: (expanded: boolean) => void;\n\n // Movement props, used for standalone locked points\n // (not defining locked points within locked lines).\n /**\n * Called when the point is moved.\n */\n onMove?: (movement: LockedFigureSettingsMovementType) => void;\n /**\n * Called when the point is removed.\n */\n onRemove?: () => void;\n};\n\nconst LockedPointSettings = (props: Props) => {\n const {\n headerLabel,\n coord,\n color: pointColor,\n filled = true,\n labels,\n ariaLabel,\n onChangeProps,\n onMove,\n onRemove,\n // defining point props\n showPoint,\n error,\n expanded,\n onTogglePoint,\n onToggle,\n } = props;\n\n const isDefiningPoint = !onMove && !onRemove;\n\n /**\n * Get a prepopulated aria label for the point, with the math\n * details converted into spoken words.\n *\n * If the point has no labels, the aria label will just be\n * \"Point at (x, y)\".\n *\n * If the point has labels, the aria label will be\n * \"Point label1, label2, label3 at (x, y)\".\n */\n async function getPrepopulatedAriaLabel() {\n const visiblelabel = await joinLabelsAsSpokenMath(labels);\n // Ensure negative values are read correctly within aria labels.\n const spokenX = await generateSpokenMathDetails(`$${coord[0]}$`);\n const spokenY = await generateSpokenMathDetails(`$${coord[1]}$`);\n\n let str = `Point${visiblelabel} at ${spokenX} comma ${spokenY}`;\n\n const pointAppearance =\n generateLockedFigureAppearanceDescription(pointColor);\n str += pointAppearance;\n\n return str;\n }\n\n function handleColorChange(newValue) {\n const newProps: Partial<LockedPointType> = {\n color: newValue,\n };\n\n // Update the color of the all labels to match the point\n if (labels) {\n newProps.labels = labels.map((label) => ({\n ...label,\n color: newValue,\n }));\n }\n\n onChangeProps(newProps);\n }\n\n function handleCoordChange(newCoord) {\n const xOffset = newCoord[0] - coord[0];\n const yOffset = newCoord[1] - coord[1];\n\n const newProps: Partial<LockedPointType> = {\n coord: newCoord,\n };\n\n // Update the coord by the same amount as the point for all labels\n if (labels) {\n newProps.labels = labels.map((label) => ({\n ...label,\n coord: [label.coord[0] + xOffset, label.coord[1] + yOffset],\n }));\n }\n\n onChangeProps(newProps);\n }\n\n function handleLabelChange(\n updatedLabel: Partial<LockedLabelType>,\n labelIndex: number,\n ) {\n if (!labels) {\n return;\n }\n\n const updatedLabels = [...labels];\n updatedLabels[labelIndex] = {\n ...labels[labelIndex],\n ...updatedLabel,\n };\n\n onChangeProps({labels: updatedLabels});\n }\n\n function handleLabelRemove(labelIndex: number) {\n if (!labels) {\n return;\n }\n\n const updatedLabels = labels.filter((_, index) => index !== labelIndex);\n\n onChangeProps({labels: updatedLabels});\n }\n\n return (\n <PerseusEditorAccordion\n expanded={expanded}\n onToggle={onToggle}\n containerStyle={\n isDefiningPoint ? styles.definingContainer : undefined\n }\n panelStyle={isDefiningPoint ? styles.definingPanel : undefined}\n header={\n // Summary: Point, coords, color (filled/open)\n <View style={styles.row}>\n <LabelLarge>{`${headerLabel || \"Point\"} (${coord[0]}, ${coord[1]})`}</LabelLarge>\n <Strut size={spacing.xSmall_8} />\n <ColorSwatch color={pointColor} filled={filled} />\n </View>\n }\n >\n <CoordinatePairInput\n coord={coord}\n style={styles.spaceUnder}\n onChange={handleCoordChange}\n error={!!error}\n />\n\n {/* Toggle switch */}\n {onTogglePoint && (\n <LabeledSwitch\n label=\"show point on graph\"\n checked={!!showPoint}\n style={showPoint && styles.spaceUnder}\n onChange={onTogglePoint}\n />\n )}\n\n {/* Toggleable section */}\n {(!isDefiningPoint || showPoint) && (\n <>\n <ColorSelect\n selectedValue={pointColor}\n onChange={handleColorChange}\n style={styles.spaceUnder}\n />\n <LabeledSwitch\n label=\"open point\"\n checked={!filled}\n onChange={(newValue) => {\n onChangeProps({filled: !newValue});\n }}\n />\n </>\n )}\n\n {!isDefiningPoint && (\n <>\n <Strut size={spacing.small_12} />\n <View style={styles.horizontalRule} />\n\n <LockedFigureAria\n ariaLabel={ariaLabel}\n getPrepopulatedAriaLabel={getPrepopulatedAriaLabel}\n onChangeProps={(newProps) => {\n onChangeProps(newProps);\n }}\n />\n </>\n )}\n\n {/* Visible labels */}\n <Strut size={spacing.xxxSmall_4} />\n <View style={styles.horizontalRule} />\n <Strut size={spacing.small_12} />\n <LabelMedium>Visible labels</LabelMedium>\n {labels?.map((label, labelIndex) => (\n <LockedLabelSettings\n {...label}\n key={labelIndex}\n containerStyle={\n !isDefiningPoint && styles.lockedPointLabelContainer\n }\n expanded={true}\n onChangeProps={(newLabel) => {\n handleLabelChange(newLabel, labelIndex);\n }}\n onRemove={() => {\n handleLabelRemove(labelIndex);\n }}\n />\n ))}\n <Button\n kind=\"tertiary\"\n startIcon={plusCircle}\n onClick={() => {\n const newLabel = {\n ...getDefaultFigureForType(\"label\"),\n // Place the label at the same position\n // as the point. Add a small offset to\n // avoid crowding.\n coord: [\n coord[0] + 0.5,\n // Additional offset for each label so\n // they don't overlap.\n coord[1] - 1 * (labels?.length ?? 0),\n ],\n // Default to the same color as the point\n color: pointColor,\n } satisfies LockedLabelType;\n\n onChangeProps({\n labels: [...(labels ?? []), newLabel],\n });\n }}\n style={styles.addButton}\n >\n Add visible label\n </Button>\n\n {onRemove && (\n <LockedFigureSettingsActions\n figureType={props.type}\n onMove={onMove}\n onRemove={onRemove}\n />\n )}\n </PerseusEditorAccordion>\n );\n};\n\nconst styles = StyleSheet.create({\n definingContainer: {\n marginTop: spacing.xSmall_8,\n marginBottom: 0,\n marginLeft: -spacing.xxxSmall_4,\n marginRight: -spacing.xxxSmall_4,\n backgroundColor: wbColor.white,\n },\n definingPanel: {\n // Need more space since we don't have the actions' margins.\n paddingBottom: spacing.xxSmall_6,\n },\n // A regular point (NOT a defining point) has label\n // accordions with white backgrounds.\n lockedPointLabelContainer: {\n backgroundColor: wbColor.white,\n },\n row: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n spaceUnder: {\n marginBottom: spacing.xSmall_8,\n },\n addButton: {\n alignSelf: \"start\",\n },\n horizontalRule: {\n height: 1,\n backgroundColor: wbColor.offBlack16,\n },\n});\n\nexport default LockedPointSettings;\n","/**\n * LockedLineSettings is a component that allows the user to edit the\n * settings of specifically a locked line on the graph.\n *\n * Used in the interactive graph editor's locked figures section.\n */\nimport {vector as kvector} from \"@khanacademy/kmath\";\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {OptionItem, SingleSelect} from \"@khanacademy/wonder-blocks-dropdown\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {color as wbColor, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelMedium, LabelLarge} from \"@khanacademy/wonder-blocks-typography\";\nimport plusCircle from \"@phosphor-icons/core/regular/plus-circle.svg\";\nimport {StyleSheet} from \"aphrodite\";\nimport {vec} from \"mafs\";\nimport * as React from \"react\";\n\nimport PerseusEditorAccordion from \"../../../components/perseus-editor-accordion\";\n\nimport ColorSelect from \"./color-select\";\nimport LineStrokeSelect from \"./line-stroke-select\";\nimport LineSwatch from \"./line-swatch\";\nimport LockedFigureAria from \"./locked-figure-aria\";\nimport LockedFigureSettingsActions from \"./locked-figure-settings-actions\";\nimport LockedLabelSettings from \"./locked-label-settings\";\nimport LockedPointSettings from \"./locked-point-settings\";\nimport {\n generateLockedFigureAppearanceDescription,\n generateSpokenMathDetails,\n getDefaultFigureForType,\n joinLabelsAsSpokenMath,\n} from \"./util\";\n\nimport type {LockedFigureSettingsCommonProps} from \"./locked-figure-settings\";\nimport type {Coord} from \"@khanacademy/perseus\";\nimport type {\n LockedFigure,\n LockedFigureColor,\n LockedLabelType,\n LockedLineType,\n LockedPointType,\n} from \"@khanacademy/perseus-core\";\n\nconst lengthZeroStr = \"The line cannot have length 0.\";\n\nexport type Props = LockedLineType &\n LockedFigureSettingsCommonProps & {\n /**\n * Called when the props (points, color, etc.) are updated.\n */\n onChangeProps: (newProps: Partial<LockedFigure>) => void;\n };\n\nconst LockedLineSettings = (props: Props) => {\n const {\n kind,\n points,\n color: lineColor,\n lineStyle = \"solid\",\n showPoint1,\n showPoint2,\n labels,\n ariaLabel,\n onChangeProps,\n onMove,\n onRemove,\n } = props;\n const [point1, point2] = points;\n\n const capitalizeKind = kind.charAt(0).toUpperCase() + kind.slice(1);\n const lineLabel = `${capitalizeKind} (${point1.coord[0]},\n ${point1.coord[1]}), (${point2.coord[0]}, ${point2.coord[1]})`;\n\n // Check if the line has length 0.\n const isInvalid = kvector.equal(point1.coord, point2.coord);\n /**\n * Generate a prepopulated aria label for the line, with the math\n * details converted into spoken words.\n */\n async function getPrepopulatedAriaLabel() {\n const visiblelabel = await joinLabelsAsSpokenMath(labels);\n const point1VisibleLabel = await joinLabelsAsSpokenMath(point1.labels);\n const point2VisibleLabel = await joinLabelsAsSpokenMath(point2.labels);\n // Ensure negative values are read correctly within aria labels.\n const spokenPoint1X = await generateSpokenMathDetails(\n `$${point1.coord[0]}$`,\n );\n const spokenPoint1Y = await generateSpokenMathDetails(\n `$${point1.coord[1]}$`,\n );\n const spokenPoint2X = await generateSpokenMathDetails(\n `$${point2.coord[0]}$`,\n );\n const spokenPoint2Y = await generateSpokenMathDetails(\n `$${point2.coord[1]}$`,\n );\n\n let str = `${capitalizeKind}${visiblelabel} from point${point1VisibleLabel} at ${spokenPoint1X} comma ${spokenPoint1Y} to point${point2VisibleLabel} at ${spokenPoint2X} comma ${spokenPoint2Y}`;\n\n const lineAppearance = generateLockedFigureAppearanceDescription(\n lineColor,\n lineStyle,\n );\n str += lineAppearance;\n\n return str;\n }\n\n function handleChangePoint(\n newPointProps: Partial<LockedPointType>,\n index: 0 | 1,\n ) {\n const newPoints = [...points] as [LockedPointType, LockedPointType];\n newPoints[index] = {\n ...points[index],\n ...newPointProps,\n };\n\n // Update labels to be centered between the two points,\n // retaining existing offset.\n const oldMidpoint = vec.midpoint(points[0].coord, points[1].coord);\n const newMidpoint = vec.midpoint(\n newPoints[0].coord,\n newPoints[1].coord,\n );\n const offset: Coord = [\n newMidpoint[0] - oldMidpoint[0],\n newMidpoint[1] - oldMidpoint[1],\n ];\n const newLabels = labels?.map((label, labelIndex) => ({\n ...label,\n coord: [\n label.coord[0] + offset[0],\n label.coord[1] + offset[1],\n ] satisfies Coord,\n }));\n\n onChangeProps({\n points: newPoints,\n labels: newLabels,\n });\n }\n\n function handleColorChange(newColor: LockedFigureColor) {\n const newLabels = labels?.map((label) => ({\n ...label,\n color: newColor,\n }));\n\n onChangeProps({\n color: newColor,\n // Keep the line's points' colors in sync with the line color.\n points: [\n {\n ...point1,\n color: newColor,\n labels: point1.labels?.map((label) => ({\n ...label,\n color: newColor,\n })),\n },\n {\n ...point2,\n color: newColor,\n labels: point2.labels?.map((label) => ({\n ...label,\n color: newColor,\n })),\n },\n ],\n // Keep the line's labels' colors in sync with the line color.\n labels: newLabels,\n });\n }\n\n function handleLabelChange(\n updatedLabel: Partial<LockedLabelType>,\n labelIndex: number,\n ) {\n if (!labels) {\n return;\n }\n\n const updatedLabels = [...labels];\n updatedLabels[labelIndex] = {\n ...labels[labelIndex],\n ...updatedLabel,\n };\n\n onChangeProps({labels: updatedLabels});\n }\n\n function handleLabelRemove(labelIndex: number) {\n if (!labels) {\n return;\n }\n\n const updatedLabels = labels.filter((_, index) => index !== labelIndex);\n\n onChangeProps({labels: updatedLabels});\n }\n\n return (\n <PerseusEditorAccordion\n expanded={props.expanded}\n onToggle={props.onToggle}\n header={\n <View style={styles.row}>\n <LabelLarge>{lineLabel}</LabelLarge>\n <Strut size={spacing.xSmall_8} />\n <LineSwatch color={lineColor} lineStyle={lineStyle} />\n </View>\n }\n >\n {/* Line kind settings */}\n <LabelMedium tag=\"label\" style={[styles.row, styles.spaceUnder]}>\n kind\n <Strut size={spacing.xxxSmall_4} />\n <SingleSelect\n selectedValue={kind}\n // TODO(LEMS-2656): remove TS suppression\n onChange={\n ((value: \"line\" | \"segment\" | \"ray\") =>\n onChangeProps({kind: value})) as any\n }\n // Placeholder is required, but never gets used.\n placeholder=\"\"\n >\n <OptionItem value=\"line\" label=\"line\" />\n <OptionItem value=\"ray\" label=\"ray\" />\n <OptionItem value=\"segment\" label=\"segment\" />\n </SingleSelect>\n </LabelMedium>\n\n <View style={styles.row}>\n {/* Line color settings */}\n <ColorSelect\n selectedValue={lineColor}\n onChange={handleColorChange}\n />\n <Strut size={spacing.small_12} />\n\n {/* Line style settings */}\n <LineStrokeSelect\n selectedValue={lineStyle}\n onChange={\n ((value: \"solid\" | \"dashed\") =>\n onChangeProps({lineStyle: value})) as any\n }\n />\n </View>\n\n {/* Points error message */}\n {isInvalid && (\n <LabelMedium style={styles.errorText}>\n {lengthZeroStr}\n </LabelMedium>\n )}\n\n {/* Defining points settings */}\n <LockedPointSettings\n headerLabel=\"Point 1\"\n expanded={true}\n showPoint={showPoint1}\n error={isInvalid ? lengthZeroStr : null}\n {...point1}\n onTogglePoint={(newValue) =>\n onChangeProps({showPoint1: newValue})\n }\n onChangeProps={(newProps) => handleChangePoint(newProps, 0)}\n />\n <LockedPointSettings\n headerLabel=\"Point 2\"\n expanded={true}\n showPoint={showPoint2}\n error={isInvalid ? lengthZeroStr : null}\n {...point2}\n onTogglePoint={(newValue) =>\n onChangeProps({showPoint2: newValue})\n }\n onChangeProps={(newProps) => handleChangePoint(newProps, 1)}\n />\n\n {/* Aria label */}\n <Strut size={spacing.small_12} />\n <View style={styles.horizontalRule} />\n <LockedFigureAria\n ariaLabel={ariaLabel}\n getPrepopulatedAriaLabel={getPrepopulatedAriaLabel}\n onChangeProps={(newProps) => {\n onChangeProps(newProps);\n }}\n />\n\n {/* Visible labels */}\n <Strut size={spacing.xxxSmall_4} />\n <View style={styles.horizontalRule} />\n <Strut size={spacing.small_12} />\n <LabelMedium>Visible labels</LabelMedium>\n\n {labels?.map((label, labelIndex) => (\n <LockedLabelSettings\n {...label}\n key={labelIndex}\n expanded={true}\n onChangeProps={(newLabel) => {\n handleLabelChange(newLabel, labelIndex);\n }}\n onRemove={() => {\n handleLabelRemove(labelIndex);\n }}\n containerStyle={styles.labelContainer}\n />\n ))}\n <Button\n kind=\"tertiary\"\n startIcon={plusCircle}\n onClick={() => {\n // Additional vertical offset for each label so\n // they don't overlap.\n const offsetPerLabel: vec.Vector2 = [0, -1];\n const labelLocation = vec.add(\n vec.scale(offsetPerLabel, labels?.length ?? 0),\n vec.midpoint(points[0].coord, points[1].coord),\n );\n\n const newLabel = {\n ...getDefaultFigureForType(\"label\"),\n coord: labelLocation,\n // Default to the same color as the line\n color: lineColor,\n } satisfies LockedLabelType;\n\n onChangeProps({\n labels: [...(labels ?? []), newLabel],\n });\n }}\n style={styles.addButton}\n >\n Add visible label\n </Button>\n\n {/* Actions */}\n <LockedFigureSettingsActions\n figureType={props.type}\n onMove={onMove}\n onRemove={onRemove}\n />\n </PerseusEditorAccordion>\n );\n};\n\nconst styles = StyleSheet.create({\n row: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n spaceUnder: {\n marginBottom: spacing.xSmall_8,\n },\n errorText: {\n color: wbColor.red,\n },\n addButton: {\n alignSelf: \"start\",\n },\n horizontalRule: {\n height: 1,\n backgroundColor: wbColor.offBlack16,\n },\n labelContainer: {\n backgroundColor: wbColor.white,\n },\n});\n\nexport default LockedLineSettings;\n","import {\n lockedFigureColors,\n lockedFigureFillStyles,\n} from \"@khanacademy/perseus-core\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {color as wbColor, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport type {\n LockedFigureColor,\n LockedFigureFillType,\n} from \"@khanacademy/perseus-core\";\n\ntype Props = {\n color: LockedFigureColor;\n fillStyle: LockedFigureFillType;\n strokeStyle: \"solid\" | \"dashed\";\n};\n\nconst PolygonSwatch = (props: Props) => {\n const {color, fillStyle, strokeStyle} = props;\n\n return (\n <View\n aria-label={`${color}, stroke ${strokeStyle}, fill ${fillStyle}`}\n style={[\n styles.container,\n {\n border: `4px ${strokeStyle} ${lockedFigureColors[color]}`,\n },\n ]}\n >\n <View\n style={[\n styles.innerSquare,\n {\n backgroundColor: lockedFigureColors[color],\n opacity:\n fillStyle === \"white\"\n ? 0\n : lockedFigureFillStyles[fillStyle],\n },\n ]}\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n // Add a white outline so that the color swatch is visible when\n // the dropdown option is highlighted with its blue background.\n outline: `2px solid ${wbColor.offWhite}`,\n width: spacing.large_24,\n height: spacing.large_24,\n backgroundColor: wbColor.white,\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n innerSquare: {\n width: 20,\n height: 20,\n },\n});\n\nexport default PolygonSwatch;\n","import {\n lockedFigureFillStyles,\n type Coord,\n type LockedFigureFillType,\n type LockedPolygonType,\n type LockedFigureColor,\n type LockedLabelType,\n} from \"@khanacademy/perseus-core\";\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {OptionItem, SingleSelect} from \"@khanacademy/wonder-blocks-dropdown\";\nimport IconButton from \"@khanacademy/wonder-blocks-icon-button\";\nimport {Spring, Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {spacing, color as wbColor} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelLarge, LabelMedium} from \"@khanacademy/wonder-blocks-typography\";\nimport arrowFatDown from \"@phosphor-icons/core/regular/arrow-fat-down.svg\";\nimport arrowFatLeft from \"@phosphor-icons/core/regular/arrow-fat-left.svg\";\nimport arrowFatRight from \"@phosphor-icons/core/regular/arrow-fat-right.svg\";\nimport arrowFatUp from \"@phosphor-icons/core/regular/arrow-fat-up.svg\";\nimport minusCircle from \"@phosphor-icons/core/regular/minus-circle.svg\";\nimport plusCircle from \"@phosphor-icons/core/regular/plus-circle.svg\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport CoordinatePairInput from \"../../../components/coordinate-pair-input\";\nimport PerseusEditorAccordion from \"../../../components/perseus-editor-accordion\";\n\nimport ColorSelect from \"./color-select\";\nimport LabeledSwitch from \"./labeled-switch\";\nimport LineStrokeSelect from \"./line-stroke-select\";\nimport LockedFigureAria from \"./locked-figure-aria\";\nimport LockedFigureSettingsActions from \"./locked-figure-settings-actions\";\nimport LockedLabelSettings from \"./locked-label-settings\";\nimport PolygonSwatch from \"./polygon-swatch\";\nimport {\n generateLockedFigureAppearanceDescription,\n generateSpokenMathDetails,\n getDefaultFigureForType,\n joinLabelsAsSpokenMath,\n} from \"./util\";\n\nimport type {LockedFigureSettingsCommonProps} from \"./locked-figure-settings\";\n\nexport type Props = LockedFigureSettingsCommonProps &\n LockedPolygonType & {\n /**\n * Called when the props (coords, color, etc.) are updated.\n */\n onChangeProps: (newProps: Partial<LockedPolygonType>) => void;\n };\n\nconst LockedPolygonSettings = (props: Props) => {\n const {\n points,\n color,\n showVertices,\n fillStyle,\n strokeStyle,\n labels,\n ariaLabel,\n expanded,\n onToggle,\n onChangeProps,\n onMove,\n onRemove,\n } = props;\n\n /**\n * Generate the prepopulated aria label for the polygon,\n * with the math details converted into spoken words.\n */\n async function getPrepopulatedAriaLabel() {\n const visiblelabel = await joinLabelsAsSpokenMath(labels);\n\n let str = `Polygon${visiblelabel} with ${points.length} sides, vertices at `;\n\n // Add the coordinates of each point to the aria label\n const pointsList = await Promise.all(\n points.map(async ([x, y]) => {\n // Ensure negative values are read correctly within aria labels.\n const spokenX = await generateSpokenMathDetails(`$${x}$`);\n const spokenY = await generateSpokenMathDetails(`$${y}$`);\n return `${spokenX} comma ${spokenY}`;\n }),\n );\n str += pointsList.join(\", \");\n\n const polygonAppearance = generateLockedFigureAppearanceDescription(\n color,\n strokeStyle,\n fillStyle,\n );\n str += polygonAppearance;\n return str;\n }\n\n function handleColorChange(newValue: LockedFigureColor) {\n const newProps: Partial<LockedPolygonType> = {\n color: newValue,\n };\n\n // Update the color of the all labels to match the point\n newProps.labels = labels?.map((label) => ({\n ...label,\n color: newValue,\n }));\n\n onChangeProps(newProps);\n }\n\n function handlePolygonMove(movement: \"up\" | \"down\" | \"left\" | \"right\") {\n switch (movement) {\n case \"up\":\n onChangeProps({\n points: points.map(([x, y]) => [x, y + 1]),\n labels: labels?.map((label) => ({\n ...label,\n coord: [label.coord[0], label.coord[1] + 1],\n })),\n });\n break;\n case \"down\":\n onChangeProps({\n points: points.map(([x, y]) => [x, y - 1]),\n labels: labels?.map((label) => ({\n ...label,\n coord: [label.coord[0], label.coord[1] - 1],\n })),\n });\n break;\n case \"left\":\n onChangeProps({\n points: points.map(([x, y]) => [x - 1, y]),\n labels: labels?.map((label) => ({\n ...label,\n coord: [label.coord[0] - 1, label.coord[1]],\n })),\n });\n break;\n case \"right\":\n onChangeProps({\n points: points.map(([x, y]) => [x + 1, y]),\n labels: labels?.map((label) => ({\n ...label,\n coord: [label.coord[0] + 1, label.coord[1]],\n })),\n });\n break;\n }\n }\n\n function handleLabelChange(\n updatedLabel: Partial<LockedLabelType>,\n labelIndex: number,\n ) {\n if (!labels) {\n return;\n }\n\n const updatedLabels = [...labels];\n updatedLabels[labelIndex] = {\n ...labels[labelIndex],\n ...updatedLabel,\n };\n\n onChangeProps({labels: updatedLabels});\n }\n\n function handleLabelRemove(labelIndex: number) {\n if (!labels) {\n return;\n }\n\n const updatedLabels = labels.filter((_, index) => index !== labelIndex);\n\n onChangeProps({labels: updatedLabels});\n }\n\n return (\n <PerseusEditorAccordion\n expanded={expanded}\n onToggle={onToggle}\n header={\n // Summary: Polygon, number of sides, style swatch\n <View style={styles.row}>\n <LabelLarge>{`Polygon, ${points.length} sides`}</LabelLarge>\n <Strut size={spacing.xSmall_8} />\n <PolygonSwatch\n color={color}\n fillStyle={fillStyle}\n strokeStyle={strokeStyle}\n />\n </View>\n }\n >\n <View style={[styles.row, styles.spaceUnder]}>\n {/* Color */}\n <ColorSelect\n selectedValue={color}\n onChange={handleColorChange}\n />\n <Strut size={spacing.medium_16} />\n\n {/* Fill opacity */}\n <LabelMedium\n tag=\"label\"\n style={[styles.row, styles.truncatedWidth]}\n >\n fill\n <Strut size={spacing.xxSmall_6} />\n <SingleSelect\n selectedValue={fillStyle}\n // TODO(LEMS-2656): remove TS suppression\n onChange={\n ((value: LockedFigureFillType) =>\n onChangeProps({fillStyle: value})) as any\n }\n // Placeholder is required, but never gets used.\n placeholder=\"\"\n >\n {Object.keys(lockedFigureFillStyles).map((option) => (\n <OptionItem\n key={option}\n value={option}\n label={option}\n />\n ))}\n </SingleSelect>\n </LabelMedium>\n </View>\n\n {/* Stroke style */}\n <LineStrokeSelect\n selectedValue={strokeStyle}\n onChange={(value) => onChangeProps({strokeStyle: value})}\n />\n\n {/* Show vertices switch */}\n <LabeledSwitch\n label=\"show vertices\"\n checked={showVertices}\n onChange={(newValue: boolean) =>\n onChangeProps({showVertices: newValue})\n }\n style={styles.spaceUnder}\n />\n\n <PerseusEditorAccordion\n header={<LabelLarge>Points</LabelLarge>}\n expanded={true}\n containerStyle={styles.pointAccordionContainer}\n panelStyle={styles.pointAccordionPanel}\n >\n {points.map((point, index) => {\n const pointLabel = String.fromCharCode(65 + index);\n\n return (\n <View\n key={`locked-polygon-point-index-${index}`}\n style={[styles.row, styles.spaceUnder]}\n >\n {/* Give the points alphabet labels */}\n <LabelLarge>{`${pointLabel}:`}</LabelLarge>\n <Strut size={spacing.medium_16} />\n <CoordinatePairInput\n coord={point}\n labels={[\"x\", \"y\"]}\n onChange={(newValue: Coord) => {\n const newPoints = [...points];\n newPoints[index] = newValue;\n props.onChangeProps({points: newPoints});\n }}\n />\n {\n // Only show the minus (delete) buttons if there are\n // more than 3 points. 3 points is the minimum number\n // of points for a polygon (triangle).\n points.length > 3 && (\n <IconButton\n aria-label={`Delete polygon point ${pointLabel}`}\n icon={minusCircle}\n color=\"destructive\"\n onClick={() => {\n const newPoints = [...points];\n newPoints.splice(index, 1);\n props.onChangeProps({\n points: newPoints,\n });\n }}\n style={styles.icon}\n />\n )\n }\n </View>\n );\n })}\n <View style={[styles.row, styles.polygonActionsContainer]}>\n <Button\n kind=\"tertiary\"\n startIcon={plusCircle}\n onClick={() => {\n props.onChangeProps({\n points: [...points, [0, 0]],\n });\n }}\n >\n Add point\n </Button>\n\n <Spring />\n\n {/* Buttons to move the entire polygon */}\n <View style={styles.movementButtonsContainer}>\n <IconButton\n aria-label=\"Move polygon up\"\n style={styles.iconButton}\n size=\"small\"\n icon={arrowFatUp}\n onClick={() => handlePolygonMove(\"up\")}\n />\n <View style={styles.row}>\n <IconButton\n aria-label=\"Move polygon left\"\n style={styles.iconButton}\n size=\"small\"\n icon={arrowFatLeft}\n onClick={() => handlePolygonMove(\"left\")}\n />\n <IconButton\n aria-label=\"Move polygon down\"\n style={styles.iconButton}\n size=\"small\"\n icon={arrowFatDown}\n onClick={() => handlePolygonMove(\"down\")}\n />\n <IconButton\n aria-label=\"Move polygon right\"\n style={styles.iconButton}\n size=\"small\"\n icon={arrowFatRight}\n onClick={() => handlePolygonMove(\"right\")}\n />\n </View>\n </View>\n </View>\n </PerseusEditorAccordion>\n\n {/* Aria label */}\n <Strut size={spacing.small_12} />\n <View style={styles.horizontalRule} />\n <LockedFigureAria\n ariaLabel={ariaLabel}\n getPrepopulatedAriaLabel={getPrepopulatedAriaLabel}\n onChangeProps={(newProps) => {\n onChangeProps(newProps);\n }}\n />\n\n {/* Visible Labels */}\n <Strut size={spacing.xxxSmall_4} />\n <View style={styles.horizontalRule} />\n <Strut size={spacing.small_12} />\n <LabelMedium>Visible labels</LabelMedium>\n {labels?.map((label, labelIndex) => (\n <LockedLabelSettings\n {...label}\n key={labelIndex}\n expanded={true}\n onChangeProps={(newLabel) => {\n handleLabelChange(newLabel, labelIndex);\n }}\n onRemove={() => {\n handleLabelRemove(labelIndex);\n }}\n containerStyle={styles.labelContainer}\n />\n ))}\n <Button\n kind=\"tertiary\"\n startIcon={plusCircle}\n onClick={() => {\n const newLabel = {\n ...getDefaultFigureForType(\"label\"),\n coord: [\n points[0][0],\n // Additional vertical offset for each\n // label so they don't overlap.\n points[0][1] - (labels?.length ?? 0),\n ],\n // Default to the same color as the ellipse\n color: color,\n } satisfies LockedLabelType;\n\n onChangeProps({\n labels: [...(labels ?? []), newLabel],\n });\n }}\n style={styles.addButton}\n >\n Add visible label\n </Button>\n\n {/* Actions */}\n <LockedFigureSettingsActions\n figureType={props.type}\n onMove={onMove}\n onRemove={onRemove}\n />\n </PerseusEditorAccordion>\n );\n};\n\nconst styles = StyleSheet.create({\n row: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n pointAccordionContainer: {\n backgroundColor: wbColor.white,\n },\n pointAccordionPanel: {\n alignItems: \"start\",\n },\n icon: {\n marginInlineStart: spacing.xxxSmall_4,\n },\n polygonActionsContainer: {\n width: \"100%\",\n },\n iconButton: {\n margin: 0,\n },\n movementButtonsContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n minWidth: \"fit-content\",\n },\n spaceUnder: {\n marginBottom: spacing.xSmall_8,\n },\n truncatedWidth: {\n // Allow truncation, stop bleeding over the edge.\n minWidth: 0,\n },\n\n // Styles for the visible labels section\n addButton: {\n alignSelf: \"start\",\n },\n labelContainer: {\n backgroundColor: wbColor.white,\n },\n horizontalRule: {\n height: 1,\n backgroundColor: wbColor.offBlack16,\n },\n});\n\nexport default LockedPolygonSettings;\n","/**\n * LockedVectorSettings is a component that allows the user to edit the\n * settings of specifically a locked vector on the graph.\n *\n * Used in the interactive graph editor's locked figures section.\n */\nimport {vector as kvector} from \"@khanacademy/kmath\";\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {spacing, color as wbColor} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelLarge, LabelMedium} from \"@khanacademy/wonder-blocks-typography\";\nimport plusCircle from \"@phosphor-icons/core/regular/plus-circle.svg\";\nimport {StyleSheet} from \"aphrodite\";\nimport {vec} from \"mafs\";\nimport * as React from \"react\";\n\nimport CoordinatePairInput from \"../../../components/coordinate-pair-input\";\nimport PerseusEditorAccordion from \"../../../components/perseus-editor-accordion\";\n\nimport ColorSelect from \"./color-select\";\nimport LineSwatch from \"./line-swatch\";\nimport LockedFigureAria from \"./locked-figure-aria\";\nimport LockedFigureSettingsActions from \"./locked-figure-settings-actions\";\nimport LockedLabelSettings from \"./locked-label-settings\";\nimport {\n generateLockedFigureAppearanceDescription,\n generateSpokenMathDetails,\n getDefaultFigureForType,\n joinLabelsAsSpokenMath,\n} from \"./util\";\n\nimport type {LockedFigureSettingsCommonProps} from \"./locked-figure-settings\";\nimport type {\n Coord,\n LockedFigure,\n LockedFigureColor,\n LockedLabelType,\n LockedVectorType,\n} from \"@khanacademy/perseus-core\";\n\nconst lengthErrorMessage = \"The vector cannot have length 0.\";\n\nexport type Props = LockedVectorType &\n LockedFigureSettingsCommonProps & {\n /**\n * Called when the props (points, color, etc.) are updated.\n */\n onChangeProps: (newProps: Partial<LockedFigure>) => void;\n };\n\nconst LockedVectorSettings = (props: Props) => {\n const {\n points,\n color: lineColor,\n labels,\n ariaLabel,\n onChangeProps,\n onMove,\n onRemove,\n } = props;\n const [tail, tip] = points;\n const lineLabel = `Vector (${tail[0]}, ${tail[1]}), (${tip[0]}, ${tip[1]})`;\n\n // Check if the line has length 0.\n const isInvalid = kvector.equal(tail, tip);\n\n /**\n * Generate the prepopulated aria label for the vector,\n * with the math details converted into spoken words.\n */\n async function getPrepopulatedAriaLabel() {\n const visiblelabel = await joinLabelsAsSpokenMath(labels);\n // Ensure negative values are read correctly within aria labels.\n const spokenTailX = await generateSpokenMathDetails(`$${tail[0]}$`);\n const spokenTailY = await generateSpokenMathDetails(`$${tail[1]}$`);\n const spokenTipX = await generateSpokenMathDetails(`$${tip[0]}$`);\n const spokenTipY = await generateSpokenMathDetails(`$${tip[1]}$`);\n\n let str = `Vector${visiblelabel} from ${spokenTailX} comma ${spokenTailY} to ${spokenTipX} comma ${spokenTipY}`;\n\n const vectorAppearance =\n generateLockedFigureAppearanceDescription(lineColor);\n str += vectorAppearance;\n\n return str;\n }\n\n function handleChangePoint(newCoord: Coord | undefined, index: 0 | 1) {\n if (typeof newCoord !== \"undefined\") {\n const newPoints = [...points] satisfies [tail: Coord, tip: Coord];\n newPoints[index] = [...newCoord];\n\n // Update labels to match the new points\n const oldMidpoint = vec.midpoint(tail, tip);\n const newMidpoint = vec.midpoint(newPoints[0], newPoints[1]);\n const offset = vec.sub(newMidpoint, oldMidpoint);\n const newLabels = labels?.map((label) => ({\n ...label,\n coord: vec.add(label.coord, offset),\n }));\n\n onChangeProps({\n points: newPoints,\n labels: newLabels,\n });\n }\n }\n\n function handleColorChange(newColor: LockedFigureColor) {\n const newProps: Partial<LockedVectorType> = {\n color: newColor,\n };\n\n // Update the color of the all labels to match the point\n newProps.labels = labels?.map((label) => ({\n ...label,\n color: newColor,\n }));\n\n onChangeProps(newProps);\n }\n\n function handleLabelChange(\n updatedLabel: Partial<LockedLabelType>,\n labelIndex: number,\n ) {\n if (!labels) {\n return;\n }\n\n const updatedLabels = [...labels];\n updatedLabels[labelIndex] = {\n ...labels[labelIndex],\n ...updatedLabel,\n };\n\n onChangeProps({labels: updatedLabels});\n }\n\n function handleLabelRemove(labelIndex: number) {\n if (!labels) {\n return;\n }\n\n const updatedLabels = labels.filter((_, index) => index !== labelIndex);\n\n onChangeProps({labels: updatedLabels});\n }\n\n return (\n <PerseusEditorAccordion\n expanded={props.expanded}\n onToggle={props.onToggle}\n header={\n <View style={styles.row}>\n <LabelLarge>{lineLabel}</LabelLarge>\n <Strut size={spacing.xSmall_8} />\n <LineSwatch color={lineColor} lineStyle=\"solid\" />\n </View>\n }\n >\n <View style={[styles.row, styles.spaceUnder]}>\n {/* Line color settings */}\n <ColorSelect\n selectedValue={lineColor}\n onChange={handleColorChange}\n />\n </View>\n\n {/* Zero length error message */}\n {isInvalid && (\n <LabelMedium style={styles.errorText}>\n {lengthErrorMessage}\n </LabelMedium>\n )}\n\n {/* Coordinates */}\n <PerseusEditorAccordion\n expanded={true} // Initial state is expanded\n containerStyle={styles.container}\n panelStyle={styles.accordionPanel}\n header={\n <View style={styles.row}>\n <LabelLarge>{`Tail (${tail[0]}, ${tail[1]})`}</LabelLarge>\n </View>\n }\n >\n <CoordinatePairInput\n coord={tail}\n error={isInvalid}\n onChange={(newProps) => {\n handleChangePoint(newProps, 0);\n }}\n />\n </PerseusEditorAccordion>\n\n <PerseusEditorAccordion\n expanded={true} // Initial state is expanded\n containerStyle={styles.container}\n panelStyle={styles.accordionPanel}\n header={\n <View style={styles.row}>\n <LabelLarge>{`Tip (${tip[0]}, ${tip[1]})`}</LabelLarge>\n </View>\n }\n >\n <CoordinatePairInput\n coord={tip}\n error={isInvalid}\n onChange={(newProps) => {\n handleChangePoint(newProps, 1);\n }}\n />\n </PerseusEditorAccordion>\n\n {/* Aria label */}\n <Strut size={spacing.small_12} />\n <View style={styles.horizontalRule} />\n <LockedFigureAria\n ariaLabel={ariaLabel}\n getPrepopulatedAriaLabel={getPrepopulatedAriaLabel}\n onChangeProps={(newProps) => {\n onChangeProps(newProps);\n }}\n />\n\n {/* Visible labels */}\n <Strut size={spacing.xxxSmall_4} />\n <View style={styles.horizontalRule} />\n <Strut size={spacing.small_12} />\n <LabelMedium>Visible labels</LabelMedium>\n {labels?.map((label, labelIndex) => (\n <LockedLabelSettings\n {...label}\n key={labelIndex}\n expanded={true}\n onChangeProps={(newLabel) => {\n handleLabelChange(newLabel, labelIndex);\n }}\n onRemove={() => {\n handleLabelRemove(labelIndex);\n }}\n containerStyle={styles.labelContainer}\n />\n ))}\n <Button\n kind=\"tertiary\"\n startIcon={plusCircle}\n onClick={() => {\n // Additional vertical offset for each label so\n // they don't overlap.\n const offsetPerLabel: vec.Vector2 = [0, -1];\n const labelLocation = vec.add(\n vec.scale(offsetPerLabel, labels?.length ?? 0),\n vec.midpoint(tail, tip),\n );\n\n const newLabel = {\n ...getDefaultFigureForType(\"label\"),\n coord: labelLocation,\n // Default to the same color as the vector\n color: lineColor,\n } satisfies LockedLabelType;\n\n onChangeProps({\n labels: [...(labels ?? []), newLabel],\n });\n }}\n style={styles.addButton}\n >\n Add visible label\n </Button>\n\n {/* Actions */}\n <LockedFigureSettingsActions\n figureType={props.type}\n onMove={onMove}\n onRemove={onRemove}\n />\n </PerseusEditorAccordion>\n );\n};\n\nconst styles = StyleSheet.create({\n accordionPanel: {\n paddingBottom: spacing.medium_16,\n },\n container: {\n marginTop: spacing.xSmall_8,\n marginBottom: 0,\n marginLeft: -spacing.xxxSmall_4,\n marginRight: -spacing.xxxSmall_4,\n backgroundColor: wbColor.white,\n },\n errorText: {\n color: wbColor.red,\n marginTop: spacing.xSmall_8,\n },\n row: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n addButton: {\n alignSelf: \"start\",\n },\n horizontalRule: {\n height: 1,\n backgroundColor: wbColor.offBlack16,\n },\n labelContainer: {\n backgroundColor: wbColor.white,\n },\n});\n\nexport default LockedVectorSettings;\n","/**\n * LockedFigureSettings takes in a figure and renders the\n * respective settings for that figure type.\n *\n * Used in the interactive graph editor's locked figures section.\n */\n\nimport {UnreachableCaseError} from \"@khanacademy/wonder-stuff-core\";\nimport * as React from \"react\";\n\nimport LockedEllipseSettings from \"./locked-ellipse-settings\";\nimport LockedFunctionSettings from \"./locked-function-settings\";\nimport LockedLabelSettings from \"./locked-label-settings\";\nimport LockedLineSettings from \"./locked-line-settings\";\nimport LockedPointSettings from \"./locked-point-settings\";\nimport LockedPolygonSettings from \"./locked-polygon-settings\";\nimport LockedVectorSettings from \"./locked-vector-settings\";\n\nimport type {Props as LockedEllipseProps} from \"./locked-ellipse-settings\";\nimport type {LockedFigureSettingsMovementType} from \"./locked-figure-settings-actions\";\nimport type {Props as LockedFunctionProps} from \"./locked-function-settings\";\nimport type {Props as LockedLabelProps} from \"./locked-label-settings\";\nimport type {Props as LockedLineProps} from \"./locked-line-settings\";\nimport type {Props as LockedPointProps} from \"./locked-point-settings\";\nimport type {Props as LockedPolygonProps} from \"./locked-polygon-settings\";\nimport type {Props as LockedVectorProps} from \"./locked-vector-settings\";\n\nexport type LockedFigureSettingsCommonProps = {\n // Movement props\n /**\n * Called when a movement button (top, up, down, bottom) is pressed.\n */\n onMove: (movement: LockedFigureSettingsMovementType) => void;\n /**\n * Called when the delete button is pressed.\n */\n onRemove: () => void;\n\n // Accordion props\n /**\n * Whether this accordion is expanded.\n */\n expanded?: boolean;\n /**\n * Called when the accordion is expanded or collapsed.\n */\n onToggle?: (expanded: boolean) => void;\n};\n\n// Union this type with other locked figure types when they are added.\ntype Props = LockedFigureSettingsCommonProps &\n (\n | LockedPointProps\n | LockedLineProps\n | LockedEllipseProps\n | LockedVectorProps\n | LockedPolygonProps\n | LockedFunctionProps\n | LockedLabelProps\n );\n\nconst LockedFigureSettings = (props: Props) => {\n switch (props.type) {\n case \"point\":\n return <LockedPointSettings {...props} />;\n case \"line\":\n return <LockedLineSettings {...props} />;\n case \"vector\":\n return <LockedVectorSettings {...props} />;\n case \"ellipse\":\n return <LockedEllipseSettings {...props} />;\n case \"polygon\":\n return <LockedPolygonSettings {...props} />;\n case \"function\":\n return <LockedFunctionSettings {...props} />;\n case \"label\":\n return <LockedLabelSettings {...props} />;\n default:\n throw new UnreachableCaseError(props);\n }\n};\n\nexport default LockedFigureSettings;\n","/**\n * LockedFiguresSection is a section of the InteractiveGraphEditor that allows\n * the user to add and remove locked figures from the graph. It includes\n * the dropdown for adding figures as well as the settings for each figure.\n */\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\nimport {useId} from \"react\";\n\nimport Heading from \"../../../components/heading\";\n\nimport LockedFigureSelect from \"./locked-figure-select\";\nimport LockedFigureSettings from \"./locked-figure-settings\";\nimport {getDefaultFigureForType} from \"./util\";\n\nimport type {LockedFigureSettingsMovementType} from \"./locked-figure-settings-actions\";\nimport type {Props as InteractiveGraphEditorProps} from \"../interactive-graph-editor\";\nimport type {LockedFigure, LockedFigureType} from \"@khanacademy/perseus-core\";\n\ntype Props = {\n figures?: Array<LockedFigure>;\n onChange: (props: Partial<InteractiveGraphEditorProps>) => void;\n};\n\nconst LockedFiguresSection = (props: Props) => {\n // Keep track of all figures' accordions' expanded states for the\n // expand/collapse all button. Set the whole array to false initially.\n const collapsedStateArray = Array((props.figures ?? []).length).fill(false);\n const [expandedStates, setExpandedStates] =\n React.useState(collapsedStateArray);\n\n const [isExpanded, setIsExpanded] = React.useState(true);\n\n const uniqueId = useId();\n const {figures, onChange} = props;\n\n function addLockedFigure(newFigure: LockedFigureType) {\n const lockedFigures = figures || [];\n const newProps = {\n lockedFigures: [\n ...lockedFigures,\n getDefaultFigureForType(newFigure),\n ],\n };\n onChange(newProps);\n setExpandedStates([...expandedStates, true]);\n }\n\n function moveLockedFigure(\n index: number,\n movement: LockedFigureSettingsMovementType,\n ) {\n // Don't allow moving the first figure up or the last figure down.\n if (index === 0 && (movement === \"back\" || movement === \"backward\")) {\n return;\n }\n if (\n figures &&\n index === figures.length - 1 &&\n (movement === \"front\" || movement === \"forward\")\n ) {\n return;\n }\n\n const lockedFigures = figures || [];\n const newFigures = [...lockedFigures];\n const newExpandedStates = [...expandedStates];\n\n // First, remove the figure from its current position\n // in the figures array and the expanded states array.\n const [removedFigure] = newFigures.splice(index, 1);\n newExpandedStates.splice(index, 1);\n\n // Then, add it back in the new position. Add \"true\" to the\n // expanded states array for the new position (it must already\n // be open since the button to move it is being pressed from there).\n switch (movement) {\n case \"back\":\n newFigures.unshift(removedFigure);\n newExpandedStates.unshift(true);\n break;\n case \"backward\":\n newFigures.splice(index - 1, 0, removedFigure);\n newExpandedStates.splice(index - 1, 0, true);\n break;\n case \"forward\":\n newFigures.splice(index + 1, 0, removedFigure);\n newExpandedStates.splice(index + 1, 0, true);\n break;\n case \"front\":\n newFigures.push(removedFigure);\n newExpandedStates.push(true);\n break;\n }\n onChange({lockedFigures: newFigures});\n setExpandedStates(newExpandedStates);\n }\n\n function removeLockedFigure(index: number) {\n // eslint-disable-next-line no-alert\n if (window.confirm(\"Are you sure you want to delete this figure?\")) {\n const lockedFigures = figures || [];\n onChange({\n lockedFigures: [\n ...lockedFigures.slice(0, index),\n ...lockedFigures.slice(index + 1),\n ],\n });\n\n // Update expanded states\n const newExpandedStates = [...expandedStates];\n newExpandedStates.splice(index, 1);\n setExpandedStates(newExpandedStates);\n }\n }\n\n function changeProps(\n index: number,\n // Omit the type from the figure props so it doesn't think\n // we're trying to pass in the props for the wrong type.\n figureProps: Omit<Partial<LockedFigure>, \"type\">,\n ) {\n const lockedFigures = figures || [];\n const newFigures = {\n lockedFigures: [\n ...lockedFigures.slice(0, index),\n {\n ...lockedFigures[index],\n ...figureProps,\n },\n ...lockedFigures.slice(index + 1),\n ],\n };\n onChange(newFigures);\n }\n\n function toggleExpanded(newValue: boolean) {\n setExpandedStates(Array(figures?.length).fill(newValue));\n }\n\n const allCollapsed = expandedStates.every((value) => !value);\n const buttonLabel = allCollapsed ? \"Expand all\" : \"Collapse all\";\n const showExpandButton = !!figures?.length;\n\n return (\n <>\n <Heading\n title=\"Locked Figures\"\n isOpen={isExpanded}\n onToggle={() => setIsExpanded(!isExpanded)}\n isCollapsible={true}\n />\n {isExpanded && (\n <View>\n {figures?.map((figure, index) => {\n return (\n <LockedFigureSettings\n key={`${uniqueId}-locked-${figure}-${index}`}\n expanded={expandedStates[index]}\n onToggle={(newValue) => {\n const newExpanded = [...expandedStates];\n newExpanded[index] = newValue;\n setExpandedStates(newExpanded);\n }}\n {...figure}\n onChangeProps={(newProps) =>\n changeProps(index, newProps)\n }\n onMove={(movement) =>\n moveLockedFigure(index, movement)\n }\n onRemove={() => removeLockedFigure(index)}\n />\n );\n })}\n <View style={styles.buttonContainer}>\n <LockedFigureSelect\n id={`${uniqueId}-select`}\n onChange={addLockedFigure}\n />\n <Strut size={spacing.small_12} />\n {showExpandButton && (\n <Button\n kind=\"secondary\"\n onClick={() => toggleExpanded(allCollapsed)}\n style={styles.button}\n >\n {buttonLabel}\n </Button>\n )}\n </View>\n </View>\n )}\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n buttonContainer: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n button: {\n marginTop: spacing.xSmall_8,\n flexGrow: 1,\n },\n});\n\nexport default LockedFiguresSection;\n","import {angles, vector as kvector} from \"@khanacademy/kmath\";\nimport {\n getAngleCoords,\n getCircleCoords,\n getLineCoords,\n getLinearSystemCoords,\n getPointCoords,\n getPolygonCoords,\n getQuadraticCoords,\n getSegmentCoords,\n getSinusoidCoords,\n} from \"@khanacademy/perseus\";\nimport {UnreachableCaseError} from \"@khanacademy/wonder-stuff-core\";\n\nimport type {StartCoords} from \"./types\";\nimport type {Range, PerseusGraphType, Coord} from \"@khanacademy/perseus-core\";\n\nconst {getClockwiseAngle} = angles;\n\nexport function getStartCoords(graph: PerseusGraphType): StartCoords {\n if (\"startCoords\" in graph) {\n return graph.startCoords;\n }\n return undefined;\n}\n\nexport function getDefaultGraphStartCoords(\n graph: PerseusGraphType,\n range: [x: Range, y: Range],\n step: [x: number, y: number],\n): StartCoords {\n switch (graph.type) {\n case \"linear\":\n case \"ray\":\n return getLineCoords(\n {...graph, startCoords: undefined},\n range,\n step,\n );\n case \"segment\":\n return getSegmentCoords(\n {...graph, startCoords: undefined},\n range,\n step,\n );\n case \"linear-system\":\n return getLinearSystemCoords(\n {...graph, startCoords: undefined},\n range,\n step,\n );\n case \"circle\":\n const startCoords = getCircleCoords({\n ...graph,\n startCoords: undefined,\n });\n const radius = kvector.length(\n kvector.subtract(startCoords.radiusPoint, startCoords.center),\n );\n return {center: startCoords.center, radius};\n case \"sinusoid\":\n return getSinusoidCoords(\n {...graph, startCoords: undefined},\n range,\n step,\n );\n case \"quadratic\":\n return getQuadraticCoords(\n {...graph, startCoords: undefined},\n range,\n step,\n );\n case \"point\":\n return getPointCoords(\n {...graph, startCoords: undefined},\n range,\n step,\n );\n case \"polygon\":\n return getPolygonCoords(\n {...graph, startCoords: undefined},\n range,\n step,\n );\n case \"angle\":\n return getAngleCoords({\n graph: {...graph, startCoords: undefined},\n range,\n step,\n });\n default:\n return undefined;\n }\n}\n\nexport const getSinusoidEquation = (startCoords: [Coord, Coord]) => {\n // Get coefficients\n // It's assumed that p1 is the root and p2 is the first peak\n const p1 = startCoords[0];\n const p2 = startCoords[1];\n\n // Resulting coefficients are canonical for this sine curve\n const amplitude = p2[1] - p1[1];\n const angularFrequency = Math.PI / (2 * (p2[0] - p1[0]));\n const phase = p1[0] * angularFrequency;\n const verticalOffset = p1[1];\n\n return (\n \"y = \" +\n amplitude.toFixed(3) +\n \"sin(\" +\n angularFrequency.toFixed(3) +\n \"x - \" +\n phase.toFixed(3) +\n \") + \" +\n verticalOffset.toFixed(3)\n );\n};\n\nexport const getQuadraticEquation = (startCoords: [Coord, Coord, Coord]) => {\n const p1 = startCoords[0];\n const p2 = startCoords[1];\n const p3 = startCoords[2];\n\n const denom = (p1[0] - p2[0]) * (p1[0] - p3[0]) * (p2[0] - p3[0]);\n if (denom === 0) {\n // Many of the callers assume that the return value is always defined.\n return \"Division by zero error\";\n }\n const a =\n (p3[0] * (p2[1] - p1[1]) +\n p2[0] * (p1[1] - p3[1]) +\n p1[0] * (p3[1] - p2[1])) /\n denom;\n const b =\n (p3[0] * p3[0] * (p1[1] - p2[1]) +\n p2[0] * p2[0] * (p3[1] - p1[1]) +\n p1[0] * p1[0] * (p2[1] - p3[1])) /\n denom;\n const c =\n (p2[0] * p3[0] * (p2[0] - p3[0]) * p1[1] +\n p3[0] * p1[0] * (p3[0] - p1[0]) * p2[1] +\n p1[0] * p2[0] * (p1[0] - p2[0]) * p3[1]) /\n denom;\n\n return (\n \"y = \" + a.toFixed(3) + \"x^2 + \" + b.toFixed(3) + \"x + \" + c.toFixed(3)\n );\n};\n\nexport const getAngleEquation = (\n startCoords: [Coord, Coord, Coord],\n allowReflexAngles: boolean = false,\n) => {\n const vertex = startCoords[1];\n\n // Get the angle in degrees and round it to the nearest whole number\n const roundedAngle = getClockwiseAngle(\n startCoords,\n allowReflexAngles,\n ).toFixed(0);\n return `${roundedAngle}\\u00B0 angle at (${vertex[0]}, ${vertex[1]})`;\n};\n\nexport const shouldShowStartCoordsUI = (\n graph: PerseusGraphType,\n isStatic?: boolean,\n) => {\n // We don't show the start coords UI for static graphs, since\n // the coords shown for this are determined by the coords on the\n // \"correct\" graph. The start coords would not be used here.\n if (isStatic) {\n return false;\n }\n\n switch (graph.type) {\n case \"point\":\n return graph.numPoints !== \"unlimited\";\n case \"polygon\":\n return (\n graph.numSides !== \"unlimited\" &&\n graph.snapTo !== \"angles\" &&\n graph.snapTo !== \"sides\"\n );\n case \"none\":\n return false;\n case \"angle\":\n case \"circle\":\n case \"linear\":\n case \"linear-system\":\n case \"quadratic\":\n case \"ray\":\n case \"segment\":\n case \"sinusoid\":\n return true;\n default:\n throw new UnreachableCaseError(graph);\n }\n};\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {color, font, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {\n BodyMonospace,\n LabelLarge,\n LabelMedium,\n} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport CoordinatePairInput from \"../../../components/coordinate-pair-input\";\n\nimport {getAngleEquation} from \"./util\";\n\nimport type {Coord} from \"@khanacademy/perseus\";\n\ntype AngleCoords = [Coord, Coord, Coord];\n\ntype Props = {\n startCoords: AngleCoords;\n allowReflexAngles?: boolean;\n onChange: (startCoords: AngleCoords) => void;\n};\n\nconst StartCoordsAngle = (props: Props) => {\n const {startCoords, allowReflexAngles, onChange} = props;\n return (\n <>\n {/* Current equation */}\n <View style={styles.equationSection}>\n <LabelMedium>Starting equation:</LabelMedium>\n <BodyMonospace style={styles.equationBody}>\n {getAngleEquation(startCoords, allowReflexAngles)}\n </BodyMonospace>\n </View>\n\n {/* Points UI */}\n <View style={styles.tile}>\n <LabelLarge>Point 1:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={startCoords[0]}\n labels={[\"x\", \"y\"]}\n onChange={(value) =>\n onChange([value, startCoords[1], startCoords[2]])\n }\n />\n </View>\n <View style={styles.tile}>\n <LabelLarge>Vertex:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={startCoords[1]}\n labels={[\"x\", \"y\"]}\n onChange={(value) =>\n onChange([startCoords[0], value, startCoords[2]])\n }\n />\n </View>\n <View style={styles.tile}>\n <LabelLarge>Point 2:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={startCoords[2]}\n labels={[\"x\", \"y\"]}\n onChange={(value) =>\n onChange([startCoords[0], startCoords[1], value])\n }\n />\n </View>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n tile: {\n backgroundColor: color.fadedBlue8,\n marginTop: spacing.xSmall_8,\n padding: spacing.small_12,\n borderRadius: spacing.xSmall_8,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n equationSection: {\n marginTop: spacing.small_12,\n },\n equationBody: {\n backgroundColor: color.fadedOffBlack8,\n border: `1px solid ${color.fadedOffBlack32}`,\n marginTop: spacing.xSmall_8,\n paddingLeft: spacing.xSmall_8,\n paddingRight: spacing.xSmall_8,\n fontSize: font.size.xSmall,\n },\n});\n\nexport default StartCoordsAngle;\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {color, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelLarge} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport CoordinatePairInput from \"../../../components/coordinate-pair-input\";\nimport ScrolllessNumberTextField from \"../../../components/scrollless-number-text-field\";\n\nimport type {Coord} from \"@khanacademy/perseus\";\n\ntype CircleCoords = {\n center: Coord;\n radius: number;\n};\n\ntype Props = {\n startCoords: CircleCoords;\n onChange: (startCoords: CircleCoords) => void;\n};\n\nconst StartCoordsCircle = (props: Props) => {\n const {startCoords, onChange} = props;\n\n const [radiusState, setRadiusState] = React.useState(\n startCoords.radius.toString(),\n );\n\n // Update the local state when the props change. (Specifically, when\n // the radius is reset from the \"Use default start coordinates\" button.)\n React.useEffect(() => {\n setRadiusState(startCoords.radius.toString());\n }, [startCoords.radius]);\n\n function handleRadiuschange(newValue: string) {\n // Update the local state to update the input field.\n setRadiusState(newValue);\n\n // Assume the user is in the middle of typing. Don't update\n // the props until they've finished typing a valid number.\n if (isNaN(+newValue) || newValue === \"\" || +newValue === 0) {\n return;\n }\n\n // Update the props (update the graph).\n onChange({\n center: startCoords.center,\n radius: parseFloat(newValue),\n });\n }\n\n return (\n <View style={styles.tile}>\n {/* Center */}\n <View style={styles.row}>\n <LabelLarge>Center:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={startCoords.center}\n labels={[\"x\", \"y\"]}\n onChange={(coord) =>\n onChange({center: coord, radius: startCoords.radius})\n }\n />\n </View>\n <Strut size={spacing.small_12} />\n\n {/* Radius */}\n <LabelLarge tag=\"label\" style={styles.row}>\n Radius:\n <Strut size={spacing.small_12} />\n <ScrolllessNumberTextField\n value={radiusState}\n onChange={handleRadiuschange}\n style={styles.textField}\n />\n </LabelLarge>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n tile: {\n backgroundColor: color.fadedBlue8,\n marginTop: spacing.xSmall_8,\n padding: spacing.small_12,\n borderRadius: spacing.xSmall_8,\n },\n row: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n textField: {\n width: spacing.xxxLarge_64,\n },\n});\n\nexport default StartCoordsCircle;\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {color, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelLarge} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport CoordinatePairInput from \"../../../components/coordinate-pair-input\";\n\nimport type {CollinearTuple} from \"@khanacademy/perseus-core\";\n\ntype Props = {\n startCoords: CollinearTuple;\n onChange: (startCoords: CollinearTuple) => void;\n};\n\nconst StartCoordsLine = (props: Props) => {\n const {startCoords, onChange} = props;\n\n return (\n <>\n <View style={styles.tile}>\n <LabelLarge>Point 1:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={startCoords[0]}\n labels={[\"x\", \"y\"]}\n onChange={(value) => onChange([value, startCoords[1]])}\n />\n </View>\n <View style={styles.tile}>\n <LabelLarge>Point 2:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={startCoords[1]}\n labels={[\"x\", \"y\"]}\n onChange={(value) => onChange([startCoords[0], value])}\n />\n </View>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n tile: {\n backgroundColor: color.fadedBlue8,\n marginTop: spacing.xSmall_8,\n padding: spacing.small_12,\n borderRadius: spacing.xSmall_8,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n});\n\nexport default StartCoordsLine;\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelLarge} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport CoordinatePairInput from \"../../../components/coordinate-pair-input\";\nimport PerseusEditorAccordion from \"../../../components/perseus-editor-accordion\";\n\nimport type {CollinearTuple} from \"@khanacademy/perseus-core\";\n\ntype Props = {\n type: \"linear-system\" | \"segment\";\n startCoords: CollinearTuple[];\n onChange: (startCoords: CollinearTuple[]) => void;\n};\n\nconst StartCoordsMultiline = (props: Props) => {\n const {startCoords, type, onChange} = props;\n\n const graphName = type === \"segment\" ? \"Segment\" : \"Line\";\n\n return (\n <>\n {startCoords.map((coordPair, i) => (\n <PerseusEditorAccordion\n key={`segment-${i}-start-coords`}\n header={<LabelLarge>{`${graphName} ${i + 1}`}</LabelLarge>}\n expanded={true}\n >\n <View style={styles.nestedTile}>\n <LabelLarge>Point 1:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={coordPair[0]}\n labels={[\"x\", \"y\"]}\n onChange={(value) => {\n const newCoords = [...startCoords];\n newCoords[i] = [value, coordPair[1]];\n onChange(newCoords);\n }}\n />\n </View>\n <View style={styles.nestedTile}>\n <LabelLarge>Point 2:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={coordPair[1]}\n labels={[\"x\", \"y\"]}\n onChange={(value) => {\n const newCoords = [...startCoords];\n newCoords[i] = [coordPair[0], value];\n onChange(newCoords);\n }}\n />\n </View>\n </PerseusEditorAccordion>\n ))}\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n nestedTile: {\n paddingBottom: spacing.small_12,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n});\n\nexport default StartCoordsMultiline;\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {color, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelLarge} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport CoordinatePairInput from \"../../../components/coordinate-pair-input\";\n\nimport type {Coord} from \"@khanacademy/perseus\";\n\ntype Props = {\n startCoords: ReadonlyArray<Coord>;\n onChange: (startCoords: ReadonlyArray<Coord>) => void;\n};\n\nconst StartCoordsPoint = (props: Props) => {\n const {startCoords, onChange} = props;\n\n return (\n <>\n {startCoords.map((coord, index) => {\n return (\n <View key={index} style={styles.tile}>\n <LabelLarge>{`Point ${index + 1}:`}</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={coord}\n labels={[\"x\", \"y\"]}\n onChange={(newCoord) => {\n const newStartCoords = [...startCoords];\n newStartCoords[index] = newCoord;\n onChange(newStartCoords);\n }}\n />\n </View>\n );\n })}\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n tile: {\n backgroundColor: color.fadedBlue8,\n marginTop: spacing.xSmall_8,\n padding: spacing.small_12,\n borderRadius: spacing.xSmall_8,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n});\n\nexport default StartCoordsPoint;\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {color, font, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {\n BodyMonospace,\n LabelLarge,\n LabelMedium,\n} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport CoordinatePairInput from \"../../../components/coordinate-pair-input\";\n\nimport {getQuadraticEquation} from \"./util\";\n\nimport type {Coord} from \"@khanacademy/perseus\";\n\ntype Props = {\n startCoords: [Coord, Coord, Coord];\n onChange: (startCoords: [Coord, Coord, Coord]) => void;\n};\n\nconst StartCoordsQuadratic = (props: Props) => {\n const {startCoords, onChange} = props;\n\n return (\n <>\n {/* Current equation */}\n <View style={styles.equationSection}>\n <LabelMedium>Starting equation:</LabelMedium>\n <BodyMonospace style={styles.equationBody}>\n {getQuadraticEquation(startCoords)}\n </BodyMonospace>\n </View>\n\n {/* Points UI */}\n <View style={styles.tile}>\n <LabelLarge>Point 1:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={startCoords[0]}\n labels={[\"x\", \"y\"]}\n onChange={(value) =>\n onChange([value, startCoords[1], startCoords[2]])\n }\n />\n </View>\n <View style={styles.tile}>\n <LabelLarge>Point 2:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={startCoords[1]}\n labels={[\"x\", \"y\"]}\n onChange={(value) =>\n onChange([startCoords[0], value, startCoords[2]])\n }\n />\n </View>\n <View style={styles.tile}>\n <LabelLarge>Point 3:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={startCoords[2]}\n labels={[\"x\", \"y\"]}\n onChange={(value) =>\n onChange([startCoords[0], startCoords[1], value])\n }\n />\n </View>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n tile: {\n backgroundColor: color.fadedBlue8,\n marginTop: spacing.xSmall_8,\n padding: spacing.small_12,\n borderRadius: spacing.xSmall_8,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n equationSection: {\n marginTop: spacing.small_12,\n },\n equationBody: {\n backgroundColor: color.fadedOffBlack8,\n border: `1px solid ${color.fadedOffBlack32}`,\n marginTop: spacing.xSmall_8,\n paddingLeft: spacing.xSmall_8,\n paddingRight: spacing.xSmall_8,\n fontSize: font.size.xSmall,\n },\n});\n\nexport default StartCoordsQuadratic;\n","import {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {color, font, spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {\n BodyMonospace,\n LabelLarge,\n LabelMedium,\n} from \"@khanacademy/wonder-blocks-typography\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport CoordinatePairInput from \"../../../components/coordinate-pair-input\";\n\nimport {getSinusoidEquation} from \"./util\";\n\nimport type {Coord} from \"@khanacademy/perseus\";\n\ntype SinusoidCoords = [Coord, Coord];\n\ntype Props = {\n startCoords: SinusoidCoords;\n onChange: (startCoords: SinusoidCoords) => void;\n};\n\nconst StartCoordsSinusoid = (props: Props) => {\n const {startCoords, onChange} = props;\n\n return (\n <>\n {/* Current equation */}\n <View style={styles.equationSection}>\n <LabelMedium>Starting equation:</LabelMedium>\n <BodyMonospace style={styles.equationBody}>\n {getSinusoidEquation(startCoords)}\n </BodyMonospace>\n </View>\n\n {/* Points UI */}\n <View style={styles.tile}>\n <LabelLarge>Point 1:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={startCoords[0]}\n labels={[\"x\", \"y\"]}\n onChange={(value) => onChange([value, startCoords[1]])}\n />\n </View>\n <View style={styles.tile}>\n <LabelLarge>Point 2:</LabelLarge>\n <Strut size={spacing.small_12} />\n <CoordinatePairInput\n coord={startCoords[1]}\n labels={[\"x\", \"y\"]}\n onChange={(value) => onChange([startCoords[0], value])}\n />\n </View>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n tile: {\n backgroundColor: color.fadedBlue8,\n marginTop: spacing.xSmall_8,\n padding: spacing.small_12,\n borderRadius: spacing.xSmall_8,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n equationSection: {\n marginTop: spacing.small_12,\n },\n equationBody: {\n backgroundColor: color.fadedOffBlack8,\n border: `1px solid ${color.fadedOffBlack32}`,\n marginTop: spacing.xSmall_8,\n paddingLeft: spacing.xSmall_8,\n paddingRight: spacing.xSmall_8,\n fontSize: font.size.xSmall,\n },\n});\n\nexport default StartCoordsSinusoid;\n","import {vector as kvector} from \"@khanacademy/kmath\";\nimport {\n getAngleCoords,\n getCircleCoords,\n getLineCoords,\n getLinearSystemCoords,\n getPointCoords,\n getPolygonCoords,\n getQuadraticCoords,\n getSegmentCoords,\n getSinusoidCoords,\n} from \"@khanacademy/perseus\";\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport {View} from \"@khanacademy/wonder-blocks-core\";\nimport {Strut} from \"@khanacademy/wonder-blocks-layout\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport arrowCounterClockwise from \"@phosphor-icons/core/bold/arrow-counter-clockwise-bold.svg\";\nimport * as React from \"react\";\n\nimport Heading from \"../../../components/heading\";\n\nimport StartCoordsAngle from \"./start-coords-angle\";\nimport StartCoordsCircle from \"./start-coords-circle\";\nimport StartCoordsLine from \"./start-coords-line\";\nimport StartCoordsMultiline from \"./start-coords-multiline\";\nimport StartCoordsPoint from \"./start-coords-point\";\nimport StartCoordsQuadratic from \"./start-coords-quadratic\";\nimport StartCoordsSinusoid from \"./start-coords-sinusoid\";\nimport {getDefaultGraphStartCoords} from \"./util\";\n\nimport type {StartCoords} from \"./types\";\nimport type {PerseusGraphType, Range} from \"@khanacademy/perseus-core\";\n\ntype Props = PerseusGraphType & {\n range: [x: Range, y: Range];\n step: [x: number, y: number];\n allowReflexAngles?: boolean;\n onChange: (startCoords: StartCoords) => void;\n};\n\nconst StartCoordsSettingsInner = (props: Props) => {\n const {type, range, step, allowReflexAngles, onChange} = props;\n\n switch (type) {\n // Graphs with startCoords of type CollinearTuple\n case \"linear\":\n case \"ray\":\n // Gets the startCoords from props if they're passed in,\n // otherwise calculates the default startCoords.\n const linearCoords = getLineCoords(props, range, step);\n return (\n <StartCoordsLine\n startCoords={linearCoords}\n onChange={onChange}\n />\n );\n // Graphs with startCoords of type CollinearTuple[]\n case \"linear-system\":\n case \"segment\":\n const multiLineCoords =\n // Gets the startCoords from props if they're passed in,\n // otherwise calculates the default startCoords.\n type === \"segment\"\n ? getSegmentCoords(props, range, step)\n : getLinearSystemCoords(props, range, step);\n return (\n <StartCoordsMultiline\n type={type}\n startCoords={multiLineCoords}\n onChange={onChange}\n />\n );\n case \"circle\":\n const circleCoords = getCircleCoords(props);\n const radius = kvector.length(\n kvector.subtract(circleCoords.radiusPoint, circleCoords.center),\n );\n return (\n <StartCoordsCircle\n startCoords={{center: circleCoords.center, radius}}\n onChange={onChange}\n />\n );\n case \"sinusoid\":\n const sinusoidCoords = getSinusoidCoords(props, range, step);\n return (\n <StartCoordsSinusoid\n startCoords={sinusoidCoords}\n onChange={onChange}\n />\n );\n case \"quadratic\":\n const quadraticCoords = getQuadraticCoords(props, range, step);\n return (\n <StartCoordsQuadratic\n startCoords={quadraticCoords}\n onChange={onChange}\n />\n );\n // Graphs with startCoords of type ReadonlyArray<Coord>\n case \"point\":\n case \"polygon\":\n const pointCoords =\n type === \"point\"\n ? getPointCoords(props, range, step)\n : getPolygonCoords(props, range, step);\n return (\n <StartCoordsPoint\n startCoords={pointCoords}\n onChange={onChange}\n />\n );\n case \"angle\":\n const angleCoords = getAngleCoords({graph: props, range, step});\n return (\n <StartCoordsAngle\n startCoords={angleCoords}\n allowReflexAngles={allowReflexAngles}\n onChange={onChange}\n />\n );\n default:\n return null;\n }\n};\n\nconst StartCoordsSettings = (props: Props) => {\n const {range, step, onChange} = props;\n const [isOpen, setIsOpen] = React.useState(true);\n\n return (\n <View>\n {/* Heading for the collapsible section */}\n <Heading\n isCollapsible={true}\n title=\"Start coordinates\"\n isOpen={isOpen}\n onToggle={() => setIsOpen(!isOpen)}\n />\n\n {/* Start coordinates main UI */}\n {isOpen && (\n <>\n {/* Start coordinates input */}\n <StartCoordsSettingsInner {...props} />\n\n {/* Button to reset to default */}\n <Strut size={spacing.small_12} />\n <Button\n startIcon={arrowCounterClockwise}\n kind=\"tertiary\"\n size=\"small\"\n onClick={() => {\n onChange(\n getDefaultGraphStartCoords(props, range, step),\n );\n }}\n >\n Use default start coordinates\n </Button>\n </>\n )}\n </View>\n );\n};\n\nexport default StartCoordsSettings;\n","import {vector as kvector} from \"@khanacademy/kmath\";\nimport {\n components,\n containerSizeClass,\n getInteractiveBoxFromSizeClass,\n InteractiveGraphWidget,\n interactiveSizes,\n Util,\n} from \"@khanacademy/perseus\";\nimport {\n type LockedFigure,\n type PerseusImageBackground,\n type PerseusInteractiveGraphWidgetOptions,\n type PerseusGraphType,\n type MarkingsType,\n type InteractiveGraphDefaultWidgetOptions,\n type AxisLabelLocation,\n interactiveGraphLogic,\n} from \"@khanacademy/perseus-core\";\nimport {Id, View} from \"@khanacademy/wonder-blocks-core\";\nimport {OptionItem, SingleSelect} from \"@khanacademy/wonder-blocks-dropdown\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport {LabelSmall} from \"@khanacademy/wonder-blocks-typography\";\nimport {UnreachableCaseError} from \"@khanacademy/wonder-stuff-core\";\nimport {StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\nimport invariant from \"tiny-invariant\";\nimport _ from \"underscore\";\n\nimport {parsePointCount} from \"../../util/points\";\n\nimport GraphPointsCountSelector from \"./components/graph-points-count-selector\";\nimport GraphTypeSelector from \"./components/graph-type-selector\";\nimport {InteractiveGraphCorrectAnswer} from \"./components/interactive-graph-correct-answer\";\nimport InteractiveGraphDescription from \"./components/interactive-graph-description\";\nimport InteractiveGraphSettings from \"./components/interactive-graph-settings\";\nimport InteractiveGraphSRTree from \"./components/interactive-graph-sr-tree\";\nimport SegmentCountSelector from \"./components/segment-count-selector\";\nimport LabeledRow from \"./locked-figures/labeled-row\";\nimport LockedFiguresSection from \"./locked-figures/locked-figures-section\";\nimport StartCoordsSettings from \"./start-coords/start-coords-settings\";\nimport {getStartCoords, shouldShowStartCoordsUI} from \"./start-coords/util\";\n\nimport type {APIOptionsWithDefaults} from \"@khanacademy/perseus\";\nimport type {PropsFor} from \"@khanacademy/wonder-blocks-core\";\n\nconst {InfoTip} = components;\nconst InteractiveGraph = InteractiveGraphWidget.widget;\n\ntype InteractiveGraphProps = PropsFor<typeof InteractiveGraph>;\n\nconst POLYGON_SIDES = _.map(_.range(3, 13), function (value) {\n return (\n <OptionItem\n key={`polygon-sides-${value}`}\n value={`${value}`}\n label={`${value} sides`}\n />\n );\n});\n\ntype Range = [min: number, max: number];\ntype PerseusGraphTypePolygon = Extract<PerseusGraphType, {type: \"polygon\"}>;\ntype PerseusGraphTypeAngle = Extract<PerseusGraphType, {type: \"angle\"}>;\n\nexport type Props = {\n apiOptions: APIOptionsWithDefaults;\n\n /**\n * The labels for the x and y axes.\n */\n labels: ReadonlyArray<string>;\n /**\n * Specifies the location of the labels on the graph. default: \"onAxis\".\n * - \"onAxis\": Labels are positioned on the axis at the right (x) and top (y) of the graph.\n * - \"alongEdge\": Labels are centered along the bottom (x) and left (y) edges of the graph.\n * The y label is rotated. Typically used when the range min is near 0 with longer labels.\n */\n labelLocation?: AxisLabelLocation;\n /**\n * The range of the graph in the x and y directions.\n */\n range: [x: Range, y: Range];\n /**\n * How far apart the tick marks on the axes are in the x and y\n * directions.\n */\n step: [x: number, y: number];\n /**\n * How far apart the grid lines are in the x and y directions.\n */\n gridStep: [x: number, y: number];\n /**\n * How far apart the snap-to points are in the x and y directions.\n */\n snapStep: [x: number, y: number];\n /**\n * The size of the graph in pixels.\n */\n box: [x: number, y: number];\n\n /**\n * An error message to display in the graph area, or true if the\n * graph is valid.\n */\n valid: true | string;\n /**\n * The background image to display in the graph area and its properties.\n */\n backgroundImage: PerseusImageBackground;\n /**\n * The type of markings to display on the graph.\n * - graph: shows the axes and the grid lines\n * - grid: shows only the grid lines\n * - none: shows no markings\n */\n markings: MarkingsType;\n /**\n * Whether to show the protractor on the graph.\n */\n showProtractor: boolean;\n /**\n * Whether to show tooltips on the graph.\n * (Currently not used, but will be in the future.)\n */\n showTooltips: boolean;\n /**\n * The current correct answer for the graph. Updated by this component\n * when the graph is changed.\n *\n * Note that the \"Correct answer:\" textbox is not an interactive\n * element. Instead, it is a representation of the correct answer based\n * on the state of the interactive graph previewed at the bottom of the\n * editor page.\n */\n // TODO(LEMS-2344): make the type of `correct` more specific\n correct: PerseusGraphType;\n /**\n * The locked figures to display in the graph area.\n * Locked figures are graph elements (points, lines, line segmeents,\n * etc.) that are locked in place and not interactive.\n */\n lockedFigures?: Array<LockedFigure>;\n // Aria-label for the full graph area. Short title for the graph.\n fullGraphAriaLabel?: string;\n // Aria-description for the graph area. Longer description of the graph.\n // Note that the `aria-description` property is not supported well,\n // so this description will be hidden in a DOM element whose ID will\n // then be referenced by the graph's `aria-describedby` property.\n fullGraphAriaDescription?: string;\n\n /**\n * The graph to display in the graph area.\n */\n graph: InteractiveGraphProps[\"graph\"];\n onChange: (props: Partial<Props>) => void;\n // Whether the graph has been set to static mode.\n // Graphs in static mode are not interactive, and their coords are\n // set to those of the \"correct\" graph in the editor.\n static?: boolean;\n};\n\n/**\n * An editor for the InteractiveGraph widget, which allows the user to\n * specify the graph's properties and the correct answer.\n *\n * Used in the exercise editor.\n */\nclass InteractiveGraphEditor extends React.Component<Props> {\n static widgetName = \"interactive-graph\";\n displayName = \"InteractiveGraphEditor\";\n className = \"perseus-widget-interactive-graph\";\n\n static defaultProps: InteractiveGraphDefaultWidgetOptions & {\n valid: true | string;\n } = {\n ...interactiveGraphLogic.defaultWidgetOptions,\n valid: true,\n };\n\n changeStartCoords = (coords) => {\n if (!this.props.graph?.type) {\n return;\n }\n\n const graph = {\n ...this.props.graph,\n startCoords: coords,\n };\n this.props.onChange({graph: graph});\n };\n\n // serialize() is what makes copy/paste work. All the properties included\n // in the serialization json are included when, for example, a graph\n // is copied from the question editor and pasted into the hint editor\n // (double brackets in the markdown).\n serialize(): PerseusInteractiveGraphWidgetOptions {\n const json = _.pick(\n this.props,\n \"step\",\n \"backgroundImage\",\n \"markings\",\n \"labels\",\n \"labelLocation\",\n \"showProtractor\",\n \"showTooltips\",\n \"range\",\n \"gridStep\",\n \"snapStep\",\n \"lockedFigures\",\n \"fullGraphAriaLabel\",\n \"fullGraphAriaDescription\",\n );\n\n // eslint-disable-next-line react/no-string-refs\n const graph = this.refs.graph;\n if (graph) {\n // @ts-expect-error TS2339 Property 'getUserInput' does not exist on type 'ReactInstance'. Property 'getUserInput' does not exist on type 'Component<any, {}, any>'.\n const correct = graph && graph.getUserInput();\n _.extend(json, {\n graph: {\n type: correct.type,\n startCoords:\n this.props.graph && getStartCoords(this.props.graph),\n },\n correct: correct,\n });\n\n _.each(\n [\n \"allowReflexAngles\",\n \"angleOffsetDeg\",\n \"numPoints\",\n \"numSides\",\n \"numSegments\",\n \"showAngles\",\n \"showSides\",\n \"snapTo\",\n \"snapDegrees\",\n ],\n function (key) {\n if (_.has(correct, key)) {\n // @ts-expect-error - TS2339 - Property 'graph' does not exist on type 'Pick<any, \"step\" | \"range\" | \"backgroundImage\" | \"snapStep\" | \"labels\" | \"showTooltips\" | \"markings\" | \"gridStep\" | \"showProtractor\">'.\n json.graph[key] = correct[key];\n }\n },\n );\n }\n // @ts-expect-error TS2739 Type 'Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, \"step\" | \"gridStep\" | \"snapStep\" | \"backgroundImage\" | \"markings\" | \"labels\" | ... 5 more ... | \"range\">' is missing the following properties from type 'PerseusInteractiveGraphWidgetOptions': graph, correct\n return json;\n }\n\n getSaveWarnings = () => {\n const issues: Array<any | string> = [];\n\n // A locked line on the graph cannot have length 0.\n for (const figure of this.props.lockedFigures ?? []) {\n if (\n figure.type === \"line\" &&\n kvector.equal(figure.points[0].coord, figure.points[1].coord)\n ) {\n issues.push(\"The line cannot have length 0.\");\n }\n }\n\n // Do not save a unlimited polygon that is open (coords is null).\n if (\n this.props.graph?.type === \"polygon\" &&\n this.props.graph.numSides === \"unlimited\" &&\n this.props.graph.coords === null\n ) {\n issues.push(\"Polygon must be closed.\");\n }\n\n return issues;\n };\n\n render() {\n let graph;\n let equationString;\n\n const gridStep =\n this.props.gridStep ||\n Util.getGridStep(\n this.props.range,\n this.props.step,\n interactiveSizes.defaultBoxSize,\n );\n const snapStep =\n this.props.snapStep || Util.snapStepFromGridStep(gridStep);\n\n const sizeClass = containerSizeClass.SMALL;\n if (this.props.valid === true) {\n const correct = this.props.correct;\n\n // TODO(aria): send these down all at once\n const graphProps = {\n ref: \"graph\",\n box: this.props.box,\n range: this.props.range,\n labels: this.props.labels,\n labelLocation: this.props.labelLocation,\n step: this.props.step,\n gridStep: gridStep,\n snapStep: snapStep,\n graph: correct,\n backgroundImage: this.props.backgroundImage,\n markings: this.props.markings,\n showProtractor: this.props.showProtractor,\n showTooltips: this.props.showTooltips,\n lockedFigures: this.props.lockedFigures,\n fullGraphAriaLabel: this.props.fullGraphAriaLabel,\n fullGraphAriaDescription: this.props.fullGraphAriaDescription,\n trackInteraction: function () {},\n onChange: ({graph: newGraph}: InteractiveGraphProps) => {\n let correct = this.props.correct;\n // TODO(benchristel): can we improve the type of onChange\n // so this invariant isn't necessary?\n invariant(newGraph != null);\n if (correct.type === newGraph.type) {\n correct = mergeGraphs(correct, newGraph);\n } else {\n // Clear options from previous graph\n correct = newGraph;\n }\n this.props.onChange({\n correct: correct,\n graph: this.props.graph,\n });\n },\n } as const;\n\n graph = (\n // There are a bunch of props that renderer.jsx passes to widgets via\n // getWidgetProps() and widget-container.jsx that the editors don't\n // bother passing.\n // @ts-expect-error - TS2769 - No overload matches this call.\n <InteractiveGraph\n {...graphProps}\n containerSizeClass={sizeClass}\n apiOptions={{\n ...this.props.apiOptions,\n isMobile: false,\n }}\n />\n );\n // TODO(kevinb): Update getEquationString to only accept the data it actually\n // needs to compute the equation string.\n // @ts-expect-error - TS2345 - Argument of type '{ readonly ref: \"graph\"; readonly box: any; readonly range: any; readonly labels: any; readonly step: any; readonly gridStep: any; readonly snapStep: any; readonly graph: any; readonly backgroundImage: any; ... 6 more ...; readonly onChange: (newProps: Pick<...> & ... 1 more ... & InexactPartial<...>) => void; }' is not assignable to parameter of type 'Props'.\n equationString = InteractiveGraph.getEquationString(graphProps);\n } else {\n graph = <div className=\"perseus-error\">{this.props.valid}</div>;\n }\n\n return (\n <Id>\n {(graphId) => (\n <View>\n <LabeledRow label=\"Answer type:\">\n <GraphTypeSelector\n graphType={\n this.props.graph?.type ??\n InteractiveGraph.defaultProps.graph.type\n }\n // TODO(LEMS-2656): remove TS suppression\n onChange={\n ((\n type: Required<InteractiveGraphProps>[\"graph\"][\"type\"],\n ) => {\n this.props.onChange({\n graph: {type},\n correct: {type},\n });\n }) as any\n }\n />\n </LabeledRow>\n <InteractiveGraphDescription\n ariaLabelValue={this.props.fullGraphAriaLabel ?? \"\"}\n ariaDescriptionValue={\n this.props.fullGraphAriaDescription ?? \"\"\n }\n onChange={this.props.onChange}\n />\n <InteractiveGraphCorrectAnswer\n id={graphId}\n equationString={equationString}\n >\n {graph}\n </InteractiveGraphCorrectAnswer>\n {this.props.correct?.type === \"point\" && (\n <LabeledRow label=\"Number of Points:\">\n <GraphPointsCountSelector\n numPoints={this.props.correct?.numPoints}\n onChange={(points) => {\n this.props.onChange({\n correct: {\n type: \"point\",\n numPoints: points,\n },\n graph: {\n type: \"point\",\n numPoints: points,\n },\n });\n }}\n />\n </LabeledRow>\n )}\n {this.props.correct?.type === \"angle\" && (\n <>\n <View style={styles.row}>\n <Checkbox\n label={\n <LabelSmall>\n Show angle measures\n </LabelSmall>\n }\n checked={\n // Don't show indeterminate checkbox state\n !!this.props.correct?.showAngles\n }\n onChange={(newValue) => {\n if (\n this.props.graph?.type ===\n \"angle\"\n ) {\n invariant(\n this.props.correct.type ===\n \"angle\",\n `Expected graph type to be angle, but got ${this.props.correct.type}`,\n );\n this.props.onChange({\n correct: {\n ...this.props.correct,\n showAngles: newValue,\n },\n graph: {\n ...this.props.graph,\n showAngles: newValue,\n },\n });\n }\n }}\n />\n <InfoTip>\n <p>\n Displays the interior angle\n measures.\n </p>\n </InfoTip>\n </View>\n <View style={styles.row}>\n <Checkbox\n label={\n <LabelSmall>\n Allow reflex angles\n </LabelSmall>\n }\n checked={\n // Don't show indeterminate checkbox state\n !!this.props.correct\n ?.allowReflexAngles\n }\n onChange={(newValue) => {\n invariant(\n this.props.correct.type ===\n \"angle\",\n `Expected graph type to be angle, but got ${this.props.correct.type}`,\n );\n invariant(\n this.props.graph?.type ===\n \"angle\",\n `Expected graph type to be angle, but got ${this.props.graph?.type}`,\n );\n\n const update = {\n allowReflexAngles: newValue,\n };\n\n this.props.onChange({\n correct: {\n ...this.props.correct,\n ...update,\n },\n graph: {\n ...this.props.graph,\n ...update,\n },\n });\n }}\n />\n <InfoTip>\n <p>\n Allow students to be able to create\n reflex angles.\n </p>\n </InfoTip>\n </View>\n </>\n )}\n {this.props.correct?.type === \"polygon\" && (\n <>\n <LabeledRow label=\"Number of sides:\">\n <SingleSelect\n key=\"polygon-select\"\n selectedValue={\n this.props.correct?.numSides\n ? `${this.props.correct.numSides}`\n : \"3\"\n }\n placeholder=\"\"\n onChange={(newValue) => {\n invariant(\n this.props.graph?.type ===\n \"polygon\",\n );\n const updates = {\n numSides:\n parsePointCount(newValue),\n coords: null,\n startCoords: undefined,\n // reset the snap for UNLIMITED, which\n // only supports \"grid\"\n // From: D6578\n snapTo: \"grid\",\n } as const;\n\n this.props.onChange({\n correct: {\n ...this.props.correct,\n ...updates,\n },\n graph: {\n ...this.props.graph,\n ...updates,\n },\n });\n }}\n style={styles.singleSelectShort}\n >\n {[\n ...POLYGON_SIDES,\n <OptionItem\n key=\"unlimited\"\n value=\"unlimited\"\n label=\"unlimited sides\"\n />,\n ]}\n </SingleSelect>\n </LabeledRow>\n <LabeledRow label=\"Snap to:\">\n <SingleSelect\n selectedValue={\n this.props.correct?.snapTo || \"grid\"\n }\n // Never uses placeholder, always has value\n placeholder=\"\"\n onChange={(newValue) => {\n invariant(\n this.props.correct.type ===\n \"polygon\",\n `Expected correct answer type to be polygon, but got ${this.props.correct.type}`,\n );\n invariant(\n this.props.graph?.type ===\n \"polygon\",\n `Expected graph type to be polygon, but got ${this.props.graph?.type}`,\n );\n\n const updates = {\n snapTo: newValue as PerseusGraphTypePolygon[\"snapTo\"],\n coords: null,\n } as const;\n\n this.props.onChange({\n correct: {\n ...this.props.correct,\n ...updates,\n },\n graph: {\n ...this.props.graph,\n ...updates,\n },\n });\n }}\n style={styles.singleSelectShort}\n >\n <OptionItem value=\"grid\" label=\"grid\" />\n {this.props.correct?.numSides !==\n \"unlimited\" && (\n <OptionItem\n value=\"angles\"\n label=\"interior angles\"\n />\n )}\n {this.props.correct?.numSides !==\n \"unlimited\" && (\n <OptionItem\n value=\"sides\"\n label=\"side measures\"\n />\n )}\n </SingleSelect>\n <InfoTip>\n <p>\n These options affect the movement of\n the vertex points. The grid option\n will guide the points to the nearest\n half step along the grid.\n </p>\n <p>\n The interior angle and side measure\n options guide the points to the\n nearest whole angle or side measure\n respectively.\n </p>\n </InfoTip>\n </LabeledRow>\n <View style={styles.row}>\n <Checkbox\n label={\n <LabelSmall>\n Show angle measures\n </LabelSmall>\n }\n checked={\n // Don't show indeterminate checkbox state\n !!this.props.correct?.showAngles\n }\n onChange={() => {\n if (\n this.props.graph?.type ===\n \"polygon\"\n ) {\n invariant(\n this.props.correct.type ===\n \"polygon\",\n `Expected graph type to be polygon, but got ${this.props.correct.type}`,\n );\n this.props.onChange({\n correct: {\n ...this.props.correct,\n showAngles:\n !this.props.correct\n .showAngles,\n },\n graph: {\n ...this.props.graph,\n showAngles:\n !this.props.graph\n .showAngles,\n },\n });\n }\n }}\n />\n <InfoTip>\n <p>\n Displays the interior angle\n measures.\n </p>\n </InfoTip>\n </View>\n <View style={styles.row}>\n <Checkbox\n label={\n <LabelSmall>\n Show side measures\n </LabelSmall>\n }\n checked={\n // Don't show indeterminate checkbox state\n !!this.props.correct?.showSides\n }\n onChange={() => {\n if (\n this.props.graph?.type ===\n \"polygon\" &&\n this.props.correct.type ===\n \"polygon\"\n ) {\n this.props.onChange({\n correct: {\n ...this.props.correct,\n showSides:\n !this.props.correct\n .showSides,\n },\n graph: {\n ...this.props.graph,\n showSides:\n !this.props.graph\n .showSides,\n },\n });\n }\n }}\n />\n <InfoTip>\n <p>Displays the side lengths.</p>\n </InfoTip>\n </View>\n </>\n )}\n {this.props.correct?.type === \"segment\" && (\n <LabeledRow label=\"Number of segments:\">\n <SegmentCountSelector\n numSegments={\n this.props.correct?.numSegments\n }\n onChange={(sides) => {\n this.props.onChange({\n correct: {\n type: \"segment\",\n numSegments: sides,\n coords: null,\n },\n graph: {\n type: \"segment\",\n numSegments: sides,\n },\n });\n }}\n />\n </LabeledRow>\n )}\n {this.props.graph?.type &&\n shouldShowStartCoordsUI(\n this.props.graph,\n this.props.static,\n ) && (\n <StartCoordsSettings\n {...this.props.graph}\n range={this.props.range}\n step={this.props.step}\n onChange={this.changeStartCoords}\n />\n )}\n <InteractiveGraphSRTree\n graphId={graphId}\n correct={this.props.correct}\n fullGraphAriaLabel={this.props.fullGraphAriaLabel}\n fullGraphAriaDescription={\n this.props.fullGraphAriaDescription\n }\n lockedFigures={this.props.lockedFigures}\n />\n <InteractiveGraphSettings\n box={getInteractiveBoxFromSizeClass(sizeClass)}\n range={this.props.range}\n labels={this.props.labels}\n labelLocation={this.props.labelLocation}\n step={this.props.step}\n gridStep={gridStep}\n snapStep={snapStep}\n valid={this.props.valid}\n backgroundImage={this.props.backgroundImage}\n markings={this.props.markings}\n showProtractor={this.props.showProtractor}\n showTooltips={this.props.showTooltips}\n onChange={this.props.onChange}\n />\n {this.props.correct.type === \"polygon\" && (\n <LabeledRow label=\"Student answer must\">\n <SingleSelect\n selectedValue={\n this.props.correct.match || \"exact\"\n }\n onChange={(newValue) => {\n invariant(\n this.props.correct.type ===\n \"polygon\",\n `Expected graph type to be polygon, but got ${this.props.correct.type}`,\n );\n const correct = {\n ...this.props.correct,\n // TODO(benchristel): this cast is necessary\n // because \"exact\" is not actually a valid\n // value for `match`; a value of undefined\n // means exact matching. The code happens\n // to work because \"exact\" falls through\n // to the correct else branch when scoring\n match: newValue as PerseusGraphTypePolygon[\"match\"],\n };\n this.props.onChange({correct});\n }}\n // Never uses placeholder, always has value\n placeholder=\"\"\n style={styles.singleSelectShort}\n >\n <OptionItem\n value=\"exact\"\n label=\"match exactly\"\n />\n <OptionItem\n value=\"congruent\"\n label=\"be congruent\"\n />\n <OptionItem\n value=\"approx\"\n label=\"be approximately congruent\"\n />\n <OptionItem\n value=\"similar\"\n label=\"be similar\"\n />\n </SingleSelect>\n\n <InfoTip>\n <ul>\n <li>\n <p>\n <b>Match Exactly:</b> Match\n exactly in size, orientation,\n and location on the grid even if\n it is not shown in the\n background.\n </p>\n </li>\n <li>\n <p>\n <b>Be Congruent:</b> Be\n congruent in size and shape, but\n can be located anywhere on the\n grid.\n </p>\n </li>\n <li>\n <p>\n <b>\n Be Approximately Congruent:\n </b>{\" \"}\n Be exactly similar, and\n congruent in size and shape to\n within 0.1 units, but can be\n located anywhere on the grid.{\" \"}\n <em>\n Use this with snapping to\n angle measure.\n </em>\n </p>\n </li>\n <li>\n <p>\n <b>Be Similar:</b> Be similar\n with matching interior angles,\n and side measures that are\n matching or a multiple of the\n correct side measures. The\n figure can be located anywhere\n on the grid.\n </p>\n </li>\n </ul>\n </InfoTip>\n </LabeledRow>\n )}\n {this.props.correct.type === \"angle\" && (\n <LabeledRow label=\"Student answer must\">\n <SingleSelect\n selectedValue={\n this.props.correct.match || \"exact\"\n }\n onChange={(newValue) => {\n this.props.onChange({\n correct: {\n ...this.props.correct,\n // TODO(benchristel): this cast is necessary\n // because \"exact\" is not actually a valid\n // value for `match`; a value of undefined\n // means exact matching. The code happens\n // to work because \"exact\" falls through\n // to the correct else branch when scoring\n match: newValue as PerseusGraphTypeAngle[\"match\"],\n },\n });\n }}\n // Never uses placeholder, always has value\n placeholder=\"\"\n style={styles.singleSelectShort}\n >\n <OptionItem\n value=\"exact\"\n label=\"match exactly\"\n />\n <OptionItem\n value=\"congruent\"\n label=\"be congruent\"\n />\n </SingleSelect>\n <InfoTip>\n <p>\n Congruency requires only that the angle\n measures are the same. An exact match\n implies congruency, but also requires\n that the angles have the same\n orientation and that the vertices are in\n the same position.\n </p>\n </InfoTip>\n </LabeledRow>\n )}\n <LockedFiguresSection\n figures={this.props.lockedFigures}\n onChange={this.props.onChange}\n />\n </View>\n )}\n </Id>\n );\n }\n}\n\n// Merges two graphs that have the same `type`. Properties defined in `b`\n// overwrite properties of the same name in `a`. Throws an exception if the\n// types are different or not recognized.\nfunction mergeGraphs(\n a: PerseusGraphType,\n b: PerseusGraphType,\n): PerseusGraphType {\n if (a.type !== b.type) {\n throw new Error(\n `Cannot merge graphs with different types (${a.type} and ${b.type})`,\n );\n }\n switch (a.type) {\n case \"angle\":\n invariant(b.type === \"angle\");\n return {...a, ...b};\n case \"circle\":\n invariant(b.type === \"circle\");\n return {...a, ...b};\n case \"linear\":\n invariant(b.type === \"linear\");\n return {...a, ...b};\n case \"linear-system\":\n invariant(b.type === \"linear-system\");\n return {...a, ...b};\n case \"none\":\n invariant(b.type === \"none\");\n return {...a, ...b};\n case \"point\":\n invariant(b.type === \"point\");\n return {...a, ...b};\n case \"polygon\":\n invariant(b.type === \"polygon\");\n return {...a, ...b};\n case \"quadratic\":\n invariant(b.type === \"quadratic\");\n return {...a, ...b};\n case \"ray\":\n invariant(b.type === \"ray\");\n return {...a, ...b};\n case \"segment\":\n invariant(b.type === \"segment\");\n return {...a, ...b};\n case \"sinusoid\":\n invariant(b.type === \"sinusoid\");\n return {...a, ...b};\n default:\n throw new UnreachableCaseError(a);\n }\n}\n\nconst styles = StyleSheet.create({\n singleSelectShort: {\n // Non-standard spacing, but it's the smallest we can go\n // without running into styling issues with the dropdown.\n height: 26,\n },\n row: {\n flexDirection: \"row\",\n marginTop: spacing.xSmall_8,\n alignItems: \"center\",\n },\n});\n\nexport default InteractiveGraphEditor;\n","// TODO: use WB colors\nexport const gray98 = \"#FAFAFA\";\nexport const gray95 = \"#F0F1F2\";\nexport const gray85 = \"#D6D8DA\";\nexport const gray76 = \"#BABEC2\";\nexport const gray68 = \"#888D93\";\nexport const gray41 = \"#626569\";\nexport const gray17 = \"#21242C\";\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\n/**\n * DEPRECATED: Use <TextField> from ./text-field.jsx instead.\n *\n * This component wraps an <input> in a <form> to make it easier to add an\n * `onSubmit` handler. In practice though this can complicate things because\n * each field is in it's own form which is not how forms should be structured.\n * If you need to handle `onSubmit`, please use <TextField> directly with your\n * own <form> that wraps all text fields in the form.\n **/\nimport {color, color as WBColor} from \"@khanacademy/wonder-blocks-tokens\";\nimport {StyleSheet, css} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport {gray41} from \"../styles/global-colors\";\n\nimport type {components} from \"@khanacademy/perseus\";\n\ntype Props = {\n // This id is used to tie the input field to the label that describes it.\n // TODO(diedra): Instead of passing in this id to connect the label and input\n // field, we should pass in the label for the input field and place it\n // inside the <form>.\n id?: string;\n testId?: string;\n type?: string;\n name?: string;\n readOnly?: boolean;\n value?: string | ReadonlyArray<string> | number | undefined;\n placeholder?: string;\n // https://reactjs.org/docs/uncontrolled-components.html#default-values\n defaultValue?: string | number | ReadonlyArray<string> | undefined;\n disabled?: boolean;\n autoFocus?: boolean;\n maxLength?: number;\n invalid?: \"true\" | \"false\";\n // styling\n // This prop is passed directly to <input>. This is incorrect since HTML\n // tags don't know what to do with an aphrodite which is typed as:\n // {\n // _len: number,\n // _name: string,\n // _definition: CSSProperties,\n // }\n // TODO(WB-1026): Update StyleType to reflect the aphrodite type\n // TODO(FEI-3282): Update uses of StyleType in webapp to be correct\n style?: React.CSSProperties | undefined;\n className?: string;\n width?: number | string;\n grow?: boolean | number;\n shrink?: boolean | number;\n // HACK(mattmorgan) to enforce WB LabelMedium-like styles on this older\n // component.\n labelMediumInputText?: boolean;\n icon?: React.ReactElement<React.ComponentProps<typeof components.Icon>>;\n leftSideIcon?: boolean;\n backgroundColor?: string;\n focusBorderColor?: string;\n borderColor?: string;\n color?: string;\n // events\n onSubmit?: (arg1: React.ChangeEvent<HTMLInputElement>) => unknown;\n onBlur?: (arg1: React.ChangeEvent<HTMLInputElement>) => unknown;\n onFocus?: (arg1: React.ChangeEvent<HTMLInputElement>) => unknown;\n onChange?: (arg1: React.ChangeEvent<HTMLInputElement>) => unknown;\n onClick?: (arg1: React.MouseEvent<HTMLInputElement>) => unknown;\n onKeyPress?: (arg1: React.KeyboardEvent<HTMLInputElement>) => unknown;\n onKeyDown?: (arg1: React.KeyboardEvent<HTMLInputElement>) => unknown;\n // aria\n [\"aria-label\"]?: string;\n [\"aria-describedby\"]?: string | undefined;\n};\n\ntype State = {\n focused: boolean;\n};\n\ntype PropsWithForwardRef = Props & {\n forwardedRef: React.ForwardedRef<HTMLInputElement>;\n};\n\nclass FormWrappedTextField extends React.Component<PropsWithForwardRef, State> {\n state = {\n focused: false,\n };\n\n handleBlur = (e: React.ChangeEvent<HTMLInputElement>) => {\n const {onBlur} = this.props;\n onBlur?.(e);\n\n this.setState({focused: false});\n };\n\n handleFocus = (e: React.ChangeEvent<HTMLInputElement>) => {\n const {onFocus} = this.props;\n onFocus?.(e);\n\n this.setState({focused: true});\n };\n\n disableDefault = (e: Event) => {\n e.preventDefault();\n };\n\n render() {\n const {\n forwardedRef,\n width,\n grow,\n shrink,\n icon,\n backgroundColor,\n focusBorderColor,\n borderColor,\n color,\n onSubmit,\n leftSideIcon,\n id,\n testId,\n type,\n labelMediumInputText,\n ...allProps\n } = this.props;\n const {focused} = this.state;\n\n const extraStyles: any = {};\n const spanStyle = [styles.input, styles.container];\n\n if (width) {\n extraStyles.width = width;\n }\n\n if (grow) {\n extraStyles.flexGrow = grow === true ? 1 : grow;\n }\n\n if (shrink || shrink === 0) {\n extraStyles.flexShrink = shrink === true ? 0 : shrink;\n }\n\n if (backgroundColor) {\n extraStyles.backgroundColor = backgroundColor;\n } else {\n spanStyle.push(styles.defaultBackground);\n }\n\n // Add text color if specified.\n if (color) {\n extraStyles.color = color;\n }\n\n const borderColorStyle = focused\n ? focusBorderColor || WBColor.blue\n : borderColor || WBColor.offBlack16;\n extraStyles.border = `1px solid ${borderColorStyle}`;\n\n const wrappedIcon = icon && (\n <span className={css(styles.icon)}>{icon}</span>\n );\n\n const inputBase = labelMediumInputText\n ? styles.labelMediumInputBase\n : styles.inputBase;\n\n // TODO(diedra): The label for the input field should be here inside of\n // the form.\n return (\n <form\n className={css(...spanStyle)}\n style={extraStyles}\n // @ts-expect-error - TS2322 - Type '((arg1: ChangeEvent<HTMLInputElement>) => unknown) | ((e: Event) => void)' is not assignable to type 'FormEventHandler<HTMLFormElement> | undefined'.\n onSubmit={onSubmit || this.disableDefault}\n >\n {leftSideIcon && wrappedIcon}\n <input\n {...allProps}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n type={type}\n className={css(inputBase)}\n ref={forwardedRef}\n id={id}\n data-testid={testId}\n />\n {!leftSideIcon && wrappedIcon}\n </form>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n inputBase: {\n background: \"inherit\",\n border: \"none\",\n\n // TODO: can we use WB typography?\n fontFamily: \"inherit\",\n fontSize: 15,\n lineHeight: \"22px\",\n\n outline: \"none\",\n \"::placeholder\": {\n color: gray41,\n },\n width: \"100%\",\n color: \"inherit\",\n marginBottom: 0,\n paddingLeft: 0,\n boxShadow: \"none\",\n padding: 0, // override Chrome's stylesheet\n margin: 0, // override Safari's stylesheet\n },\n // HACK(mattmorgan) to enforce WB LabelMedium-like styles on this older\n // component.\n labelMediumInputBase: {\n background: \"inherit\",\n border: \"none\",\n outline: \"none\",\n \"::placeholder\": {\n color: gray41,\n },\n width: \"100%\",\n fontWeight: \"normal\",\n fontFamily: \"Lato, san-serif\",\n fontSize: \"16px\",\n lineHeight: \"20px\",\n },\n input: {\n height: 40,\n borderRadius: 4,\n boxSizing: \"border-box\",\n padding: \"8px 10px\",\n },\n container: {\n display: \"inline-flex\",\n alignItems: \"center\",\n marginBottom: 0,\n },\n defaultBackground: {\n backgroundColor: color.white,\n },\n icon: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n});\n\nexport default React.forwardRef<HTMLInputElement, Props>((props, ref) => (\n <FormWrappedTextField {...props} forwardedRef={ref} />\n));\n","/**\n * A generic link that removes common link styles.\n *\n * This is useful for wrapping many child components in a link and making sure\n * that \"link\" styles don't get applied to all you content.\n */\nimport {StyleSheet, css} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport type {CSSProperties} from \"aphrodite\";\n\n// TODO(diedra): This is terrible! If we don't have a href for a link, it should\n// be a button instead. We just need to make sure we override the default browser\n// button styling (backgroundColor, border, and padding).\nconst DEFAULT_HREF = \"javascript:void(0)\";\n\ntype DefaultProps = {\n element: React.ElementType;\n // Whether the link should appear in a 'highlighted' state. In\n // practice, this will apply the same styles that are applied on-hover.\n highlighted: boolean;\n href: string;\n // Pass through styles but also add our own to normalize\n style: CSSProperties | Array<CSSProperties>;\n};\n\ntype Props = DefaultProps & {\n children?: React.ReactNode;\n // An additional class name to add. This is supported so-as to allow\n // Perseus to add class-based styles to links when using this\n // component as its base link class.\n className?: string;\n // Additional direct styles to add.\n inlineStyles?: {\n [key: string]: any;\n };\n // Optional referrer query parameter to add to the end of the URL, used\n // for analytics purposes.\n referrer?: string;\n // A target window to open a link in\n target?: string;\n // The relationship between the linked page and the current page.\n // Mostly used to prevent abuse from linked sites.\n rel?: string;\n // The data-testid attribute\n testId?: string;\n // Specify either an HTML tag (like \"a\") or a React component (like\n // React Router's `Link`) to be used as the underlying element.\n\n onClick?: (e: React.MouseEvent) => unknown;\n onMouseOver?: (e: React.MouseEvent) => unknown;\n onMouseLeave?: (e: React.MouseEvent) => unknown;\n onMouseEnter?: (e: React.MouseEvent) => unknown;\n onBlur?: (e: React.SyntheticEvent) => unknown;\n onFocus?: (e: React.SyntheticEvent) => unknown;\n onKeyDown?: (e: React.KeyboardEvent) => unknown;\n [\"aria-label\"]?: string;\n [\"aria-selected\"]?: boolean;\n [\"aria-current\"]?: boolean;\n role?: \"tab\";\n title?: string;\n id?: string;\n tabIndex?: number;\n};\n\n/**\n * A wrapper that creates an anchor tag with normalized styles\n */\nclass Link extends React.Component<Props> {\n static defaultProps: DefaultProps = {\n highlighted: false,\n href: DEFAULT_HREF,\n style: [] as Array<CSSProperties>,\n element: \"a\",\n };\n\n render(): React.ReactNode {\n const {\n children,\n className,\n highlighted,\n href,\n inlineStyles,\n referrer,\n style,\n target,\n testId,\n element,\n ...otherProps\n } = this.props;\n\n // We need to make sure the hash goes at the end of the <a>'s href, so\n // we'll split for now and re-add after potentially adding ?ref=\n // Even though we have defined a default prop for href, if href is\n // set to null, we will still get the null, so we need to handle that.\n const [hrefWithoutHash, hash] = href ? href.split(\"#\") : [DEFAULT_HREF];\n let url = hrefWithoutHash;\n\n if (referrer) {\n if (url.indexOf(\"?\") > -1) {\n url += \"&ref=\" + referrer;\n } else {\n url += \"?ref=\" + referrer;\n }\n }\n\n if (hash) {\n url += \"#\" + hash;\n }\n\n const delegatedStyles = [\n styles.link,\n highlighted && styles.highlighted,\n ];\n\n if (Array.isArray(style)) {\n delegatedStyles.push(...style);\n } else {\n delegatedStyles.push(style);\n }\n\n const delegatedClassName = className ? \" \" + className : \"\";\n\n // When passing an anchor tag, we want to use the native `href`.\n // ReactRouter links, though, need a special `to` prop instead.\n const urlProp = element === \"a\" ? {href: url} : {to: url};\n\n // When the link is set to open in a new window, we want to append\n // some `rel` attributes. This is to ensure that the links we're\n // sending folks to can't hijack the existing page.\n // More info: https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/\n //\n // If `rel` is already defined, we assume the caller knows what they're\n // doing. In the future, we may wish to check what keywords are passed,\n // and add in `noopener` and `noreferrer`.\n let rel = otherProps.rel;\n if (target === \"_blank\" && !rel) {\n rel = \"noopener noreferrer\";\n }\n\n return React.createElement(\n element,\n {\n \"data-testid\": testId,\n ...otherProps,\n ...urlProp,\n className: css(...delegatedStyles) + delegatedClassName,\n style: inlineStyles,\n target,\n rel,\n },\n children,\n );\n }\n}\n\nconst styles = StyleSheet.create({\n link: {\n // Remove the gray background color from active links in IE 10\n // https://necolas.github.io/normalize.css/3.0.2/normalize.css\n backgroundColor: \"transparent\",\n color: \"inherit\",\n textDecoration: \"none\",\n \":hover\": {\n textDecoration: \"underline\",\n },\n },\n highlighted: {\n textDecoration: \"underline\",\n },\n});\n\nexport default Link;\n","/**\n * Controlled list of answer choices, handles adding and removing answers.\n */\n\nimport {components, bodyXsmallBold} from \"@khanacademy/perseus\";\nimport {StyleSheet, css} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport FormWrappedTextField from \"../../components/form-wrapped-text-field\";\nimport Link from \"../../components/link\";\nimport {gray17} from \"../../styles/global-colors\";\n\nconst {Icon} = components;\n\ntype AddAnswerProps = {\n // Callback to add new answer choice.\n onClick: () => void;\n};\n\ntype AnswerProps = {\n // The answer string, can be plain text or a TeX expression.\n answer: string;\n // Callback for when an answer is changed.\n onChange: (answer: string) => void;\n // Callback to remove answer from list of choices.\n onRemove: () => void;\n};\n\ntype AnswerChoicesProps = {\n // The list of possible answers in a specific order.\n choices: ReadonlyArray<string>;\n // Callback for when answers change.\n onChange: (choices: ReadonlyArray<string>) => void;\n};\n\nconst addIcon = {\n path: \"M11 11V7a1 1 0 0 1 2 0v4h4a1 1 0 0 1 0 2h-4v4a1 1 0 0 1-2 0v-4H7a1 1 0 0 1 0-2h4zm1 13C5.373 24 0 18.627 0 12S5.373 0 12 0s12 5.373 12 12-5.373 12-12 12zm0-2c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z\",\n width: 24,\n height: 24,\n} as const;\n\nconst removeIcon = {\n path: \"M12 24C5.373 24 0 18.627 0 12S5.373 0 12 0s12 5.373 12 12-5.373 12-12 12zm0-2c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10zm-5-9a1 1 0 0 1 0-2h10a1 1 0 0 1 0 2H7z\",\n width: 24,\n height: 24,\n} as const;\n\nconst DraggableGripIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <filter\n id=\"draggable-grip-shadow\"\n width=\"112.5%\"\n height=\"116.7%\"\n x=\"-6.2%\"\n y=\"-8.3%\"\n filterUnits=\"objectBoundingBox\"\n >\n <feGaussianBlur\n in=\"SourceAlpha\"\n stdDeviation=\".5\"\n result=\"shadowBlurInner\"\n />\n\n <feOffset in=\"shadowBlurInner\" dy=\"1\" result=\"shadowOffsetInner\" />\n\n <feComposite\n in=\"shadowOffsetInner\"\n in2=\"SourceAlpha\"\n k2=\"-1\"\n k3=\"1\"\n operator=\"arithmetic\"\n result=\"shadowInnerInner\"\n />\n\n <feColorMatrix\n in=\"shadowInnerInner\"\n values=\"0 0 0 0 0.129411765 0 0 0 0 0.141176471 0 0 0 0 0.17254902 0 0 0 0.2 0\"\n />\n </filter>\n\n <path\n d=\"M1 4a1 1 0 1 1 0-2h14a1 1 0 0 1 0 2H1zm0 10a1 1 0 0 1 0-2h14a1 1 0 0 1 0 2H1zm0-5a1 1 0 1 1 0-2h14a1 1 0 0 1 0 2H1z\"\n fill={gray17}\n filter=\"url(#draggable-grip-shadow)\"\n />\n </svg>\n);\n\n/**\n * A button link to add a new answer.\n */\nconst AddAnswer = ({onClick}: AddAnswerProps): React.ReactElement => (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events, jsx-a11y/anchor-is-valid -- TODO(LEMS-2871): Address a11y error\n <Link\n className={css(styles.addAnswer, editorStyles.addAnswer)}\n onClick={onClick}\n >\n <Icon icon={addIcon} size={24} />\n <div className={css(styles.spacer)} />\n Add an answer choice\n </Link>\n);\n\n/**\n * An answer item in the choices list.\n *\n * TODO(michaelpolyak): Implement answer reordering, CP-117\n */\nconst Answer = ({\n answer,\n onChange,\n onRemove,\n}: AnswerProps): React.ReactElement => (\n <li className={css(styles.answer)}>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events, jsx-a11y/anchor-is-valid -- TODO(LEMS-2871): Address a11y error, TODO(LEMS-2871): Address a11y error */}\n <Link onClick={onRemove}>\n <Icon icon={removeIcon} size={24} color=\"#D92916\" />\n </Link>\n\n <div className={css(styles.spacer)} />\n\n <FormWrappedTextField\n grow={1}\n onChange={(e) => onChange(e.target.value)}\n value={answer}\n />\n\n <div className={css(styles.spacer)} />\n\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid -- TODO(LEMS-2871): Address a11y error */}\n <Link\n style={[styles.disabled]}\n title=\"Answer reordering is not implemented.\"\n >\n <DraggableGripIcon />\n </Link>\n </li>\n);\n\n/**\n * The list of choices, handles adding, removing and reording of answers.\n */\nconst AnswerChoices = ({\n choices,\n onChange,\n}: AnswerChoicesProps): React.ReactElement => (\n <div>\n <div className={css(styles.title)}>Answer Choices</div>\n\n <ul className={css(styles.answers)}>\n {choices.map((answer, index) => (\n <Answer\n answer={answer}\n // TODO(michaelpolyak): When answer reording is implemented,\n // key by index may not re-render correctly, CP-117\n key={index}\n // Update answer for choice.\n onChange={(answer) =>\n onChange([\n ...choices.slice(0, index),\n answer,\n ...choices.slice(index + 1),\n ])\n }\n // Remove answer from choices.\n onRemove={() =>\n onChange([\n ...choices.slice(0, index),\n ...choices.slice(index + 1),\n ])\n }\n />\n ))}\n </ul>\n\n <AddAnswer\n // Append a new empty answer to choices.\n onClick={() => onChange([...choices, \"\"])}\n />\n </div>\n);\n\nconst styles = StyleSheet.create({\n title: {\n ...bodyXsmallBold,\n\n marginBottom: 6,\n\n color: gray17,\n },\n\n answers: {\n marginTop: 12,\n marginBottom: 12,\n },\n\n answer: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n\n \":not(:first-child)\": {\n marginTop: 12,\n },\n },\n\n addAnswer: {\n ...bodyXsmallBold,\n\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n\n color: \"#1865f2\",\n },\n\n spacer: {\n width: 16,\n },\n\n disabled: {\n cursor: \"not-allowed\",\n },\n});\n\nconst editorStyles = StyleSheet.create({\n addAnswer: {\n \":link\": {\n color: \"#1865f2\",\n },\n },\n});\n\nexport default AnswerChoices;\n","/**\n * Add hover behavior to another component.\n *\n * This component provides hover and focus status updates in a consistent way\n * across desktop and mobile.\n *\n * For advice on when to use this component instead of Button, see README.md.\n *\n * Many mobile browsers treat :hover as sticky which results in buttons looking\n * pressed even when the user has lifted their finger. This component ensures\n * that when user lifts their finger the hover state is removed.\n *\n * We also chnage how the focus state works. Browsers immediately set the\n * focus state as soon as you click on a button. This component only sets the\n * focus state when a user starts navigating between elements via keybaord.\n *\n * HoverBehavior accepts a function as 'children' which is passed state and\n * an object containing event handlers. The 'children' function should return\n * an React Element of some sort.\n *\n * Example:\n *\n * class MyButtonLikeComponent extends React.Component {\n * render(): React.Node {\n * return <HoverBehavior\n * disabled={this.props.disabled}\n * onClick={this.handleClick}\n * >\n * {({hovered}, handlers) =>\n * <RoundRect\n * textcolor='white'\n * backgroundColor={hovered ? 'red' : 'blue'}/>}\n * {...handlers}\n * >\n * {this.props.children}\n * </RoundRect>\n * }\n * </HoverBehavior>\n * }\n * }\n *\n * This follows a pattern call 'Function as Child Components':\n * https://medium.com/merrickchristensen/function-as-child-components-5f3920a9ace9#.sw0jiio8b\n */\nimport * as React from \"react\";\n\ntype Handlers = {\n onBlur: () => unknown;\n onClick: (e: React.MouseEvent) => unknown;\n onFocus: () => unknown;\n onMouseDown: () => unknown;\n onMouseEnter: () => unknown;\n onMouseLeave: () => unknown;\n onTouchStart: () => unknown;\n onTouchEnd: () => unknown;\n};\n\ntype State = {\n focused: boolean;\n hovered: boolean;\n};\n\ntype Props = {\n children?: (state: State, handlers: Handlers) => React.ReactElement;\n disabled?: boolean;\n onClick?: (e: React.MouseEvent) => unknown;\n startHovered: boolean;\n shouldUpdate: () => boolean;\n};\n\nexport default class HoverBehavior extends React.Component<Props, State> {\n // @ts-expect-error - TS2564 - Property 'focusFlag' has no initializer and is not definitely assigned in the constructor.\n focusFlag: boolean;\n // @ts-expect-error - TS2564 - Property 'waitingForClick' has no initializer and is not definitely assigned in the constructor.\n waitingForClick: boolean;\n\n static defaultProps: {\n shouldUpdate: () => boolean;\n startHovered: boolean;\n } = {\n startHovered: false,\n shouldUpdate: () => true,\n };\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n focused: false,\n hovered: props.startHovered,\n };\n }\n\n handleClick: (e: React.MouseEvent) => void = (e: React.MouseEvent) => {\n if (!this.props.disabled) {\n if (this.props.shouldUpdate()) {\n this.waitingForClick = false;\n }\n if (this.props.onClick && !this.props.disabled) {\n this.props.onClick(e);\n }\n }\n };\n\n handleMouseEnter: () => void = () => {\n if (\n !this.props.disabled &&\n this.props.shouldUpdate() &&\n !this.waitingForClick\n ) {\n this.setState({hovered: true});\n }\n };\n\n handleMouseLeave: () => void = () => {\n if (\n !this.props.disabled &&\n this.props.shouldUpdate() &&\n !this.waitingForClick\n ) {\n this.setState({hovered: false});\n }\n };\n\n handleTouchStart: () => void = () => {\n if (!this.props.disabled && this.props.shouldUpdate()) {\n this.setState({hovered: true});\n }\n };\n\n handleTouchEnd: () => void = () => {\n if (!this.props.disabled && this.props.shouldUpdate()) {\n this.setState({hovered: false});\n this.waitingForClick = true;\n }\n };\n\n handleMouseDown: () => void = () => {\n if (!this.props.disabled && this.props.shouldUpdate()) {\n this.setState({focused: false});\n this.focusFlag = true;\n }\n };\n\n handleBlur: () => void = () => {\n if (!this.props.disabled && this.props.shouldUpdate()) {\n this.setState({focused: false});\n }\n };\n\n handleFocus: () => void = () => {\n if (!this.props.disabled && this.props.shouldUpdate()) {\n if (this.focusFlag) {\n this.focusFlag = false;\n } else {\n this.setState({focused: true});\n }\n }\n };\n\n render(): React.ReactNode {\n const handlers = {\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onMouseDown: this.handleMouseDown,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd,\n } as const;\n\n const {children} = this.props;\n return children?.(this.state, handlers) || null;\n }\n}\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\n/**\n * Reusable checkbox component.\n **/\nimport {color} from \"@khanacademy/wonder-blocks-tokens\";\nimport {css, StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport {gray41, gray68} from \"../styles/global-colors\";\n\nimport HoverBehavior from \"./hover-behavior\";\n\ntype CheckboxProps = {\n // Whether or not the checkbox is checked. The parent responsible for\n // responding to onChange events and updating this prop appropriately.\n checked: boolean;\n // When disable the checkbox will appear faded out and will not\n // respond to events and cannot be tabbed to.\n disabled?: boolean;\n // Appear as if disabled but allow it to respond to events and be\n // tabbed to.\n // This allows us to hook alternate responses into clicking on a\n // disabled checkbox.\n appearDisabled?: boolean;\n // Called when the value has changed.\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n tabIndex?: number | string;\n style?: {\n marginTop: number;\n };\n // For e2e test\n dataTestId?: string;\n // Unique identifier for this checkbox.\n id?: string;\n};\n\nconst borderRadius = 4;\n\n// NOTE(jangmi): Checkbox may have `onChange` depends on circumstances but lack\n// of onChange causes Dev only alert so we provide the no op func as default\n// to prevent that.\nconst onChangeCheckboxNoop = (event: React.ChangeEvent<HTMLInputElement>) => {};\n\nexport default class Checkbox extends React.Component<CheckboxProps> {\n static defaultProps: {\n checked: boolean;\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n } = {\n checked: false,\n onChange: onChangeCheckboxNoop,\n };\n\n render(): React.ReactNode {\n const {\n checked,\n disabled,\n appearDisabled,\n onChange,\n tabIndex,\n style,\n dataTestId,\n id,\n } = this.props;\n\n const checkedColor = gray41;\n\n return (\n <HoverBehavior>\n {({focused}, handlers) => (\n <div\n {...handlers}\n className={css(\n styles.container,\n focused && styles.focused,\n )}\n style={style}\n data-testid={dataTestId}\n data-checked={checked}\n >\n <svg\n className={css(\n styles.svg,\n (disabled || appearDisabled) && styles.disabled,\n )}\n width={sizeWithPadding}\n height={sizeWithPadding}\n /* pad the viewbox to avoid bad clipping when zooming */\n viewBox={`-${padding} -${padding}\n ${sizeWithPadding} ${sizeWithPadding}`}\n >\n <g fill=\"none\" fillRule=\"evenodd\">\n {checked && (\n <g>\n <rect\n fill={checkedColor}\n width={size}\n height={size}\n x=\"0\"\n y=\"0\"\n rx={borderRadius}\n />\n <path\n fill={color.white}\n stroke={color.white}\n d=\"M4.98 7.41a0.58.58 0 1 0-0.81.81L6.47\n 10.53c0.23.23.59.23.81\n 0l4.55-4.55a0.58.58 0 0\n 0-0.81-0.81L6.88 9.31 4.98 7.41z\"\n />\n </g>\n )}\n {!checked && (\n <rect\n fill={color.white}\n stroke={gray68}\n width={size - 2 * padding}\n height={size - 2 * padding}\n x={padding}\n y={padding}\n rx=\"4\"\n strokeWidth={borderWidth}\n />\n )}\n </g>\n </svg>\n <input\n type=\"checkbox\"\n id={id}\n checked={checked}\n className={css(\n styles.checkbox,\n disabled && styles.defaultCursor,\n )}\n disabled={disabled}\n onChange={onChange}\n // @ts-expect-error - TS2322 - Type 'string | number | undefined' is not assignable to type 'number | undefined'.\n tabIndex={tabIndex}\n />\n </div>\n )}\n </HoverBehavior>\n );\n }\n}\n\nconst size = 16;\nconst padding = 0.5;\nconst borderWidth = 1;\nconst sizeWithPadding = size + 2 * padding;\n\nconst styles = StyleSheet.create({\n container: {\n position: \"relative\",\n display: \"inline-block\",\n verticalAlign: \"middle\",\n lineHeight: 0,\n borderRadius: borderRadius,\n width: sizeWithPadding,\n height: sizeWithPadding,\n flexShrink: 0,\n },\n focused: {\n \"::before\": {\n content: '\"\"',\n position: \"absolute\",\n top: -2,\n right: -2,\n bottom: -2,\n left: -2,\n borderRadius: borderRadius + 2,\n backgroundColor: \"lightblue\", // TODO(kevinb) get real focus ring\n },\n },\n svg: {\n position: \"absolute\",\n left: 0,\n top: 0,\n },\n checkbox: {\n appearance: \"none\",\n opacity: 0,\n position: \"absolute\",\n top: padding,\n width: size,\n height: size,\n margin: 0,\n outline: \"none\",\n cursor: \"pointer\",\n },\n disabled: {\n opacity: 0.5,\n },\n defaultCursor: {\n cursor: \"default\",\n },\n});\n","/**\n * Controlled component to display and change widget options.\n */\n\nimport {bodyXsmallBold} from \"@khanacademy/perseus\";\nimport {StyleSheet, css} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport Checkbox from \"../../components/checkbox\";\nimport {gray17} from \"../../styles/global-colors\";\n\ntype PreferredPopoverDirection = \"NONE\" | \"UP\" | \"DOWN\" | \"LEFT\" | \"RIGHT\";\n\ntype Props = {\n // Whether multiple answer choices may be selected for markers.\n multipleAnswers: boolean;\n // Whether to hide answer choices from user instructions.\n hideChoicesFromInstructions: boolean;\n\n preferredPopoverDirection: PreferredPopoverDirection;\n // Callback for when widget options change.\n onChange: (options: {\n multipleAnswers?: boolean;\n hideChoicesFromInstructions?: boolean;\n preferredPopoverDirection?: PreferredPopoverDirection;\n }) => void;\n};\n\nconst Behavior = ({\n multipleAnswers,\n hideChoicesFromInstructions,\n preferredPopoverDirection,\n onChange,\n}: Props): React.ReactElement => (\n <div>\n <div className={css(styles.title)}>Behavior</div>\n\n <ul>\n <li className={css(styles.option)}>\n <Checkbox\n checked={multipleAnswers}\n onChange={() =>\n onChange({multipleAnswers: !multipleAnswers})\n }\n />\n\n <span className={css(styles.label)}>\n Allow multiple answers per marker\n </span>\n </li>\n\n <li className={css(styles.option)}>\n <Checkbox\n checked={hideChoicesFromInstructions}\n onChange={() =>\n onChange({\n hideChoicesFromInstructions:\n !hideChoicesFromInstructions,\n })\n }\n />\n\n <span className={css(styles.label)}>\n Do not display answer choices in instructions\n </span>\n </li>\n\n <li className={css(styles.option)}>\n <span className={css(styles.label)}>\n Preferred pop-over direction\n </span>\n <select\n value={preferredPopoverDirection}\n onChange={(e) => {\n onChange({\n preferredPopoverDirection: e.target\n .value as PreferredPopoverDirection,\n });\n }}\n >\n <option value=\"NONE\"> No Preference </option>\n <option value=\"UP\"> Up </option>\n <option value=\"DOWN\"> Down </option>\n <option value=\"LEFT\"> Left </option>\n <option value=\"RIGHT\"> Right </option>\n </select>\n </li>\n </ul>\n </div>\n);\n\nconst styles = StyleSheet.create({\n title: {\n ...bodyXsmallBold,\n\n marginBottom: 6,\n\n color: gray17,\n },\n\n option: {\n display: \"flex\",\n\n padding: \"6px 0\",\n },\n\n label: {\n // TODO: could we use WB typography?\n fontFamily: \"inherit\",\n fontSize: 15,\n lineHeight: 1.25,\n\n marginLeft: 16,\n\n color: gray17,\n },\n});\n\nexport default Behavior;\n","export function focusWithChromeStickyFocusBugWorkaround(element: Element) {\n // NOTE(marksandstrom) Chrome sticky focus bug.\n //\n // There is a bug in Chrome related to sticky positioning and\n // focus: When a child of an element with sticky positioning is\n // focused with the focus() method, the scrollable area\n // containing that element will scroll to the top (even though\n // the element is already visble on the page). For a dropdown\n // this means that the area will be scrolled to the top when\n // the user interacts with the dropdown (since we actively\n // manage dropdown header and option focus for keyboard users).\n //\n // To work around this bug the `preventScroll` focus option is\n // used.\n //\n // Using `focusOptions` is an experimental browser feature\n // \"that should not be used in production code\". However, since\n // Chrome is the only browser we support that exhibits this\n // buggy behavior and using `focusOptions` works around the\n // bug, it is perfectly reasonable to use the feature in this\n // case. We are not relying on the effect of the\n // `preventScroll` option otherwise.\n //\n // focusOptions documentation:\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus\n //\n // Note that there could be cases where we want default focus() behavior.\n // One that comes to mind is a dropdown with a long list of options that\n // might be rendered off screen when opened. With this workaround the\n // selected option would not be scrolled into view if the option is near\n // the end of the list. We're not aware of any uses of the dropdown where\n // this is an issue, however, so there isn't currently a way to out of the\n // `preventScroll` behavior.\n\n // @ts-expect-error - TS2339 - Property 'focus' does not exist on type 'Element'.\n element.focus({preventScroll: true});\n}\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\n/**\n * The Option is an item to be used in the Select components and the\n * derivations such as MultiSelect, CheckList, and CheckBoxList. Also includes\n * OptionGroup which is an internal component used in the dropdowns to house\n * a list of options.\n **/\nimport {components} from \"@khanacademy/perseus\";\nimport {css, StyleSheet} from \"aphrodite\";\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\n\nimport {gray17, gray76, gray95} from \"../styles/global-colors\";\n\nimport {focusWithChromeStickyFocusBugWorkaround} from \"./util\";\n\nconst {Icon} = components;\n\nconst findAndFocusElement = (component?: Element | null) => {\n const DOMNode: Element | Text | null | undefined =\n ReactDOM.findDOMNode(component);\n const button = DOMNode as HTMLInputElement;\n // @ts-expect-error - TS2774 - This condition will always return true since this function is always defined. Did you mean to call it instead?\n if (button.focus) {\n focusWithChromeStickyFocusBugWorkaround(button);\n }\n};\n\ntype Props = {\n // The value to use when the option is selected\n value: string;\n // The display of the option\n children?: React.ReactNode;\n // Is the current option selected?\n selected?: boolean;\n // Is the current option disabled?\n disabled?: boolean;\n // An event when an option is clicked\n onClick?: () => void;\n // An optional function to call when the dropdown should close\n // Only relevant if the Option is inside of a dropdown menu\n onDropdownClose?: () => void;\n // An optional value to override the focus styling of an option.\n // Use caution when using this - keyboard users need to know what they're\n // focused on in order to interact with the product!\n hideFocusState?: boolean;\n // An optional test id that can be used to identify this Option in automated tests.\n testId?: string;\n // Text to provide for assistive tech users\n ariaLabel?: string;\n};\n\nconst check = `M10,3.8C10,4,9.9,4.2,9.8,4.3L5.1,8.9L4.3,9.8C4.2,9.9,4,10,3.8,10\n S3.5,9.9,3.4,9.8L2.5,8.9L0.2,6.6C0.1,6.5,0,6.3,0,6.2s0.1-0.3,0.2-0.4\n l0.9-0.9c0.1-0.1,0.3-0.2,0.4-0.2s0.3,0.1,0.4,0.2l1.9,1.9l4.2-4.2c0.1\n -0.1,0.3-0.2,0.4-0.2c0.2,0,0.3,0.1,0.4,0.2l0.9,0.9C9.9,3.5,10,3.7,\n 10,3.8z`;\n\nconst optionHeight = 30;\n\nclass Option extends React.Component<Props> {\n // @ts-expect-error - TS2564 - Property 'node' has no initializer and is not definitely assigned in the constructor.\n node: HTMLDivElement;\n\n handleKeyDown(event: any): void {\n const {onDropdownClose} = this.props;\n const pressedKey = event.key;\n const focusedElement = event.target;\n\n if (pressedKey === \"ArrowDown\" && focusedElement.nextSibling) {\n event.preventDefault();\n focusedElement.nextSibling.focus();\n }\n if (pressedKey === \"ArrowUp\" && focusedElement.previousSibling) {\n event.preventDefault();\n focusedElement.previousSibling.focus();\n }\n if (\n pressedKey === \"ArrowUp\" &&\n !focusedElement.previousSibling &&\n onDropdownClose\n ) {\n event.preventDefault();\n onDropdownClose();\n }\n if (\n (pressedKey === \"Escape\" || pressedKey === \"Tab\") &&\n onDropdownClose\n ) {\n onDropdownClose();\n }\n }\n\n render(): React.ReactNode {\n const {\n selected,\n value,\n onClick,\n children,\n disabled,\n hideFocusState,\n testId,\n ariaLabel,\n } = this.props;\n\n return (\n <button\n // @ts-expect-error - TS2322 - Type 'HTMLButtonElement | null' is not assignable to type 'HTMLDivElement'.\n ref={(node) => (this.node = node)}\n value={value}\n role=\"menuitemradio\"\n aria-checked={selected}\n className={css(\n styles.notAButton,\n disabled && styles.cursorDefault,\n hideFocusState && styles.noFocus,\n )}\n // @ts-expect-error - TS2322 - Type '(value: string) => void' is not assignable to type 'MouseEventHandler<HTMLButtonElement>'.\n onClick={(value: string) => {\n if (!disabled && onClick) {\n // @ts-expect-error - TS2554 - Expected 0 arguments, but got 1.\n onClick(value);\n }\n }}\n // @ts-expect-error - TS2322 - Type '(event: KeyboardEvent) => void' is not assignable to type 'KeyboardEventHandler<HTMLButtonElement>'.\n onKeyDown={(event: KeyboardEvent) => this.handleKeyDown(event)}\n aria-disabled={disabled}\n aria-label={ariaLabel}\n data-testid={testId}\n >\n <span\n className={css(\n styles.option,\n selected && styles.optionSelected,\n disabled && styles.optionDisabled,\n )}\n >\n {children}\n {selected && (\n <span className={css(styles.check)}>\n <Icon icon={check} />\n </span>\n )}\n </span>\n </button>\n );\n }\n}\n\n// TODO(kevinb):\n// - keep the the option group within the page bounds\n// - do we really want to dismiss this on scroll\n// - how does the drop down interact with tooltips? what's the z-index order?\nclass OptionGroup extends React.Component<{\n // An event when an option is selected\n onSelected: (value: string) => void;\n // The list of options to display\n children?: Array<React.ReactElement<React.ComponentProps<typeof Option>>>;\n // The currently selected options\n selectedValues: Array<string>;\n // An override to skip the bit of top/bottom spacing around the group\n noMargin?: boolean;\n // An optional function to call when the dropdown should close\n onDropdownClose?: () => void;\n // An optional value to override the focus styling of an option.\n // Use caution when using this - keyboard users need to know what\n // they're focused on in order to interact with the product!\n hideFocusState?: boolean;\n}> {\n // @ts-expect-error - TS2564 - Property 'focusedElement' has no initializer and is not definitely assigned in the constructor.\n focusedElement: Element;\n\n componentDidMount() {\n if (this.focusedElement) {\n findAndFocusElement(this.focusedElement);\n }\n }\n\n render(): React.ReactNode {\n const {\n children,\n onSelected,\n selectedValues,\n noMargin,\n onDropdownClose,\n hideFocusState,\n } = this.props;\n\n return (\n <div\n // @ts-expect-error - TS2322 - Type 'Window | null' is not assignable to type 'Top<string | number> | undefined'.\n style={{top}}\n className={css(\n styles.optionGroup,\n noMargin && styles.optionGroupNoMargin,\n )}\n >\n {React.Children.map(children, (child, index) => {\n // @ts-expect-error - TS2532 - Object is possibly 'undefined'.\n const selected = selectedValues.includes(child.props.value);\n\n const reference =\n selected || index === 0\n ? (node: Element) => (this.focusedElement = node)\n : null;\n\n // @ts-expect-error - TS2769 - No overload matches this call.\n return React.cloneElement(child, {\n // @ts-expect-error - TS2532 - Object is possibly 'undefined'.\n ...child.props,\n key: index,\n selected: selected,\n // @ts-expect-error - TS2532 - Object is possibly 'undefined'.\n onClick: () => onSelected(child.props.value),\n ref: reference,\n onDropdownClose: onDropdownClose,\n hideFocusState: hideFocusState,\n });\n })}\n </div>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n optionGroup: {\n margin: \"4px 0\",\n },\n optionGroupNoMargin: {\n margin: 0,\n },\n option: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingLeft: 32,\n paddingRight: 32,\n height: optionHeight,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n color: gray17,\n userSelect: \"none\",\n\n \":hover\": {\n backgroundColor: gray95,\n },\n },\n optionSelected: {\n backgroundColor: gray95,\n color: \"#11ACCD\",\n },\n optionDisabled: {\n color: gray76,\n \":hover\": {\n backgroundColor: \"transparent\",\n },\n },\n check: {\n position: \"absolute\",\n left: 11,\n },\n notAButton: {\n backgroundColor: \"transparent\",\n border: \"none\",\n display: \"block\",\n padding: 0,\n margin: 0,\n width: \"100%\",\n // <button> uses user agent stylesheet over inherit so we need to set\n // it explicitly.\n font: \"inherit\",\n },\n noFocus: {\n outline: \"none\",\n },\n cursorDefault: {\n cursor: \"default\",\n },\n});\n\nexport {OptionGroup};\nexport default Option;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\n/* eslint-disable react/no-unsafe */\n/**\n * Controlled editor image marker on the question image.\n *\n * Allows to select which label choices are the answers for each marker, using\n * the dropdown component.\n */\n\nimport {StyleSheet, css} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport Option, {OptionGroup} from \"../../components/dropdown-option\";\nimport FormWrappedTextField from \"../../components/form-wrapped-text-field\";\nimport {gray17, gray85, gray98} from \"../../styles/global-colors\";\n\nimport type {PerseusLabelImageWidgetOptions} from \"@khanacademy/perseus-core\";\n\ntype Props = PerseusLabelImageWidgetOptions[\"markers\"][number] & {\n // The list of possible answer choices.\n choices: PerseusLabelImageWidgetOptions[\"choices\"];\n // Callback for when any of the marker props are changed.\n onChange: (\n marker: PerseusLabelImageWidgetOptions[\"markers\"][number],\n ) => void;\n // Callback to remove marker from the question image.\n onRemove: () => void;\n};\n\ntype State = {\n // Whether answer choices dropdown is shown, controlled by the user clicking\n // on the marker icon.\n showDropdown: boolean;\n};\n\nexport default class Marker extends React.Component<Props, State> {\n _marker: HTMLElement | null | undefined;\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n showDropdown: false,\n };\n }\n\n componentDidMount() {\n document.addEventListener(\"click\", this.handleClick, true);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n const {answers} = this.props;\n\n // Exclude those answers that are no longer present in choices.\n const filteredAnswers = answers.filter((answer) =>\n nextProps.choices.includes(answer),\n );\n\n if (JSON.stringify(answers) !== JSON.stringify(filteredAnswers)) {\n // Update marker on the next frame when these props take affect.\n // TODO(jeff, CP-3128): Use Wonder Blocks Timing API\n // eslint-disable-next-line no-restricted-syntax\n setTimeout(() => this.updateMarker({answers: filteredAnswers}));\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener(\"click\", this.handleClick, true);\n }\n\n openDropdown() {\n this.setState({showDropdown: true});\n }\n\n updateMarker(props: any) {\n const {answers, label, onChange, x, y} = this.props;\n\n onChange({\n answers,\n label,\n x,\n y,\n // Overwrite with updated prop(s).\n ...props,\n });\n }\n\n handleClick: (e: MouseEvent) => void = (e: MouseEvent) => {\n const {showDropdown} = this.state;\n\n if (this._marker === e.target) {\n this.setState({showDropdown: !showDropdown});\n } else if (showDropdown) {\n // Close dropdown if click event was registered anywhere outside it.\n if (this._marker && !this._marker.contains(e.target as any)) {\n // Ensure other listeners are not triggered on click event that\n // closes the dropdown. A specific case this addresses is when\n // user clicks on question image to close dropdown, a new marker\n // will be created, this is bad for usability.\n e.stopPropagation();\n\n this.setState({showDropdown: false});\n }\n }\n };\n\n handleLabelChange: (e: React.ChangeEvent<HTMLInputElement>) => void = (\n e,\n ) => {\n this.updateMarker({label: e.target.value});\n };\n\n handleSelectAnswer: (toggleAnswer: string) => void = (\n toggleAnswer: string,\n ) => {\n let {answers} = this.props;\n\n if (answers.includes(toggleAnswer)) {\n answers = answers.filter((answer) => answer !== toggleAnswer);\n } else {\n answers = [...answers, toggleAnswer];\n }\n\n this.updateMarker({answers});\n };\n\n render(): React.ReactNode {\n const {answers, choices, label, onRemove, x, y} = this.props;\n\n const {showDropdown} = this.state;\n\n return (\n <div\n className={css(\n styles.marker,\n answers.length > 0 && styles.markerWithAnswers,\n showDropdown && styles.markerSelected,\n )}\n ref={(node) => (this._marker = node)}\n style={{\n left: `${x}%`,\n top: `${y}%`,\n }}\n title={\n \"Click to select marker answers or to delete marker. \" +\n \"Repositioning marker is not implemented.\"\n }\n >\n {showDropdown && (\n <div>\n <div\n className={css(\n styles.dropdownBody,\n styles.dropdownPositionWithArrow,\n )}\n >\n <Option value=\"\" onClick={() => onRemove()}>\n Delete marker\n </Option>\n\n <hr className={css(styles.dividerHorizontal)} />\n\n <OptionGroup\n onSelected={this.handleSelectAnswer}\n // TODO(WB-1096): make selectedValues immutable in wonder-blocks\n // @ts-expect-error - TS2769 - No overload matches this call.\n selectedValues={answers}\n >\n {choices.map((choice) => (\n <Option key={choice} value={choice}>\n {choice}\n </Option>\n ))}\n </OptionGroup>\n\n <div className={css(styles.labelContainer)}>\n <FormWrappedTextField\n placeholder=\"ARIA label (for screen readers)\"\n onChange={this.handleLabelChange}\n value={label}\n width=\"100%\"\n />\n </div>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n marker: {\n position: \"absolute\",\n\n boxSizing: \"content-box\",\n\n width: 16,\n height: 16,\n marginLeft: -8,\n marginTop: -8,\n\n cursor: \"pointer\",\n\n background:\n \"linear-gradient(to bottom, rgba(33, 36, 44, 0.2), rgba(33, 36, 44, 0.5))\",\n\n border: \"solid 2px #ffffff\",\n borderRadius: 16,\n\n boxShadow: \"0 2px 10px 0 rgba(33, 36, 44, 0.1)\",\n },\n\n markerSelected: {\n width: 28,\n height: 28,\n marginLeft: -12,\n marginTop: -12,\n\n border: \"none\",\n borderRadius: 28,\n\n // Render selected marker border as inset.\n \"::before\": {\n content: \"''\",\n display: \"block\",\n\n width: 20,\n height: 20,\n marginLeft: 2,\n marginTop: 2,\n\n border: \"solid 2px #ffffff\",\n borderRadius: 20,\n },\n },\n\n markerWithAnswers: {\n background: \"#1865f2\",\n },\n\n dropdownPositionWithArrow: {\n // Position dropdown to the top right of the marker.\n left: 46,\n bottom: -12,\n\n // With an arrow pointing left towards the marker.\n \"::before\": {\n content: \"''\",\n display: \"block\",\n position: \"absolute\",\n\n width: 0,\n height: 0,\n left: -16,\n bottom: 8,\n\n borderRight: `solid 16px ${gray98}`,\n borderTop: \"solid 16px transparent\",\n borderBottom: \"solid 16px transparent\",\n },\n },\n\n labelContainer: {\n padding: 4,\n },\n\n dividerHorizontal: {\n height: 0,\n margin: 0,\n\n border: `solid ${gray85}`,\n borderWidth: \"0 0 1px\",\n\n boxShadow: \"none\",\n },\n\n // TODO (josh): This should probably be its own component, rather than\n // sharing styles this way.\n dropdownBody: {\n position: \"absolute\",\n border: \"solid 1px rgba(0, 0, 0, 0.1)\",\n zIndex: 1000,\n color: gray17,\n backgroundColor: gray98,\n borderRadius: 4,\n maxHeight: 320,\n cursor: \"pointer\",\n },\n});\n","/**\n * Controlled component to display question image and create markers to\n * label image with answers from list of choices.\n */\n\nimport {Util, Dependencies, bodyXsmallBold} from \"@khanacademy/perseus\";\nimport {StyleSheet, css} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport {gray17, gray68} from \"../../styles/global-colors\";\n\nimport Marker from \"./marker\";\n\nimport type {PerseusLabelImageWidgetOptions} from \"@khanacademy/perseus-core\";\n\ntype Props = {\n // The list of possible answers in a specific order.\n choices: ReadonlyArray<string>;\n // The question image properties.\n imageUrl: string;\n imageWidth: number;\n imageHeight: number;\n // The list of markers placed on the question image.\n markers: PerseusLabelImageWidgetOptions[\"markers\"];\n // Callback for when any of markers change.\n onChange: (markers: PerseusLabelImageWidgetOptions[\"markers\"]) => void;\n};\n\nexport default class QuestionMarkers extends React.Component<Props> {\n _markers: Array<Marker | null | undefined> = [];\n\n openDropdownForMarkerIndices(indices: ReadonlyArray<number>) {\n // Open answer selection dropdown for each of the specified markers.\n indices.forEach((index) => {\n if (this._markers[index]) {\n this._markers[index]?.openDropdown();\n }\n });\n }\n\n handleImageDoubleClick: (e: React.MouseEvent) => void = (\n e: React.MouseEvent,\n ) => {\n e.preventDefault();\n\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n\n // Calculate marker position on the question image as percentage offset\n // rounded to one decimal place.\n const x =\n Math.round(((e.clientX - rect.left) / rect.width) * 1000) / 10;\n const y =\n Math.round(((e.clientY - rect.top) / rect.height) * 1000) / 10;\n\n const {markers, onChange} = this.props;\n\n // Add the new marker to the end of the list.\n onChange([\n ...markers,\n {\n answers: [],\n label: \"\",\n x,\n y,\n },\n ]);\n };\n\n render(): React.ReactNode {\n const {choices, imageUrl, imageWidth, imageHeight, markers, onChange} =\n this.props;\n\n const staticUrl = Dependencies.getDependencies().staticUrl;\n\n // TODO(michaelpolyak): If a Graphie image is specified, only its SVG\n // layer will be rendered, as when rendering the full Graphie its\n // dynamic content may overflow the widget editor, CP-253\n return (\n <div>\n <div className={css(styles.title)}>Markers</div>\n\n <div className={css(styles.subtitle)}>\n {imageUrl ? (\n <span>\n Double-click on the image to add a marker.\n <br />\n <br />\n Markers are read by screen readers in the order that\n you add them here, so add in a logical order for the\n learner (e.g. sequentially, clockwise). You can test\n order by using keyboard tabbing.\n </span>\n ) : (\n \"Upload an image to place markers.\"\n )}\n </div>\n\n {imageUrl && (\n <div\n className={css(styles.markersCanvas)}\n style={{\n maxWidth: imageWidth,\n maxHeight: imageHeight,\n }}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- TODO(LEMS-2871): Address a11y error */}\n <img\n alt=\"\"\n className={css(styles.image)}\n src={staticUrl(Util.getRealImageUrl(imageUrl))}\n onDoubleClick={this.handleImageDoubleClick}\n />\n\n {markers.map((marker, index) => (\n <Marker\n {...marker}\n choices={choices}\n key={`${marker.x}.${marker.y}`}\n // Update marker in the list.\n onChange={(marker) =>\n onChange([\n ...markers.slice(0, index),\n marker,\n ...markers.slice(index + 1),\n ])\n }\n // Remove marker from the list.\n onRemove={() =>\n onChange([\n ...markers.slice(0, index),\n ...markers.slice(index + 1),\n ])\n }\n ref={(node) => (this._markers[index] = node)}\n />\n ))}\n </div>\n )}\n </div>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n title: {\n ...bodyXsmallBold,\n\n marginBottom: 6,\n\n color: gray17,\n },\n\n subtitle: {\n // TODO: can we use WB typography?\n fontFamily: \"inherit\",\n fontSize: 12,\n lineHeight: \"14px\",\n\n marginBottom: 12,\n\n color: gray68,\n },\n\n markersCanvas: {\n position: \"relative\",\n\n border: \"solid 1px rgba(33, 36, 44, 0.16)\",\n },\n\n image: {\n // This makes `markersCanvas` have the same height as the image,\n // enabling to place markers precisely as they're positioned using\n // percentage offsets.\n display: \"block\",\n\n // Contain question image to the widget editor.\n maxWidth: \"100%\",\n },\n});\n","/**\n * Controlled component for selecting the question image, for answer labeling.\n */\n\nimport {bodyXsmallBold} from \"@khanacademy/perseus\";\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport {StyleSheet, css} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport FormWrappedTextField from \"../../components/form-wrapped-text-field\";\nimport {gray17} from \"../../styles/global-colors\";\n\ntype Props = {\n // Callback for when image URL is changed.\n onChange: (url: string) => void;\n // The selected image URL.\n url: string;\n};\n\nconst SelectImage = ({onChange, url}: Props): React.ReactElement => (\n <div>\n <div className={css(styles.title)}>Image</div>\n\n <div className={css(styles.components)}>\n <FormWrappedTextField\n placeholder=\"URL\"\n grow={1}\n onChange={(e) => onChange(e.target.value)}\n value={url}\n />\n\n <div className={css(styles.spacer)} />\n\n <Button\n // TODO(michaelpolyak): Design calls for uploading an image from\n // the widget. This functionality already exists in\n // `perseus-one-package/item-controls.jsx`, it's not obvious if\n // it can be triggered from within the widget, or requires\n // a similar implementation locally, in which case consider\n // refactoring `perseus-admin-package/image-upload-dialog.jsx`\n // as common utility, CP-118\n disabled={!url}\n aria-label={\n url\n ? \"\"\n : \"Not implemented. Use the 'Add Image' button in \" +\n \"the editor to upload image, then copy the URL here.\"\n }\n onClick={() => onChange(\"\")}\n style={styles.btn}\n >\n {url ? \"Remove\" : \"Upload\"}\n </Button>\n </div>\n </div>\n);\n\nconst styles = StyleSheet.create({\n title: {\n ...bodyXsmallBold,\n\n marginBottom: 6,\n\n color: gray17,\n },\n\n components: {\n display: \"flex\",\n },\n\n spacer: {\n width: 16,\n },\n\n btn: {\n minWidth: 90,\n },\n});\n\nexport default SelectImage;\n","/**\n * Direct image labeling widget editor.\n *\n * Label on image widget enables creating more natural, conceptual questions\n * that involve the use of images, and enable learners to demonstrate their\n * knowledge by directly interacting with the image.\n */\n\nimport {EditorJsonify, Util} from \"@khanacademy/perseus\";\nimport {labelImageLogic} from \"@khanacademy/perseus-core\";\nimport {StyleSheet, css} from \"aphrodite\";\nimport * as React from \"react\";\n\nimport FormWrappedTextField from \"../components/form-wrapped-text-field\";\n\nimport AnswerChoices from \"./label-image/answer-choices\";\nimport Behavior from \"./label-image/behavior\";\nimport QuestionMarkers from \"./label-image/question-markers\";\nimport SelectImage from \"./label-image/select-image\";\n\nimport type {\n PerseusLabelImageWidgetOptions,\n LabelImageDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\n\ntype Props = {\n // List of answer choices to label question image with.\n choices: ReadonlyArray<string>;\n // The question image properties.\n imageAlt: string;\n imageUrl: string;\n imageWidth: number;\n imageHeight: number;\n // The list of label markers on the question image.\n markers: PerseusLabelImageWidgetOptions[\"markers\"];\n // Whether multiple answer choices may be selected for markers.\n multipleAnswers: boolean;\n // Whether to hide answer choices from user instructions.\n hideChoicesFromInstructions: boolean;\n // Callback for when a widget prop is changed.\n onChange: (options: any) => void;\n};\n\nclass LabelImageEditor extends React.Component<Props> {\n _questionMarkers: QuestionMarkers | null | undefined;\n\n static defaultProps: LabelImageDefaultWidgetOptions =\n labelImageLogic.defaultWidgetOptions;\n\n static widgetName = \"label-image\" as const;\n\n componentDidUpdate(prevProps: Props) {\n const coordsToMarkers: Record<string, any> = {};\n\n prevProps.markers.forEach(\n (marker) => (coordsToMarkers[`${marker.x}.${marker.y}`] = marker),\n );\n\n // Find the newly added marker indices.\n const newIndices = this.props.markers\n .map((marker, index) =>\n // eslint-disable-next-line no-prototype-builtins\n coordsToMarkers.hasOwnProperty(`${marker.x}.${marker.y}`)\n ? -1\n : index,\n )\n .filter((index) => index !== -1);\n\n // Automatically reveal their dropdowns as a prompt to the content\n // creator to select answers and set the ARIA label.\n if (newIndices.length && this._questionMarkers) {\n this._questionMarkers.openDropdownForMarkerIndices(newIndices);\n }\n }\n\n getSaveWarnings: () => ReadonlyArray<any | string> = () => {\n const {choices, imageAlt, imageUrl, markers} = this.props;\n\n const warnings: Array<string> = [];\n\n if (choices.length < 2) {\n warnings.push(\"Question requires at least two answer choices\");\n }\n\n if (!imageUrl) {\n warnings.push(\"Image is not specified for question\");\n } else if (!imageAlt) {\n warnings.push(\"Question image has no alt text\");\n }\n\n if (!markers.length) {\n warnings.push(\"Question has no markers, to label answers on image\");\n } else {\n let numNoAnswers = 0;\n let numNoLabels = 0;\n\n for (const marker of markers) {\n if (!marker.answers.length) {\n numNoAnswers++;\n }\n\n if (!marker.label) {\n numNoLabels++;\n }\n }\n\n if (numNoAnswers) {\n warnings.push(\n `Question has ${numNoAnswers} markers with no ` +\n \"answers selected\",\n );\n }\n\n if (numNoLabels) {\n warnings.push(\n `Question has ${numNoLabels} markers with no ` +\n \"ARIA label\",\n );\n }\n }\n\n return warnings;\n };\n\n serialize(): any {\n return EditorJsonify.serialize.call(this);\n }\n\n handleImageChange: (url: string) => void = (url: string) => {\n this.props.onChange({\n imageUrl: url,\n // Initially reset image size when URL is changed so it can be later\n // measured.\n imageWidth: 0,\n imageHeight: 0,\n });\n\n if (url) {\n Util.getImageSize(url, (width, height) => {\n this.props.onChange({\n /**\n * Sending `imageUrl` up again\n * (even though we did so at the beginning of handleImageChange)\n * because we ran into a race condition (LEMS-2583) where\n * `imageUrl` was getting set to an empty string if measuring\n * happened too fast.\n */\n imageUrl: url,\n imageWidth: width,\n imageHeight: height,\n });\n });\n }\n };\n\n handleAltChange: (alt: string) => void = (alt: string) => {\n this.props.onChange({imageAlt: alt});\n };\n\n handleChoicesChange: (choices: ReadonlyArray<string>) => void = (\n choices: ReadonlyArray<string>,\n ) => {\n this.props.onChange({choices});\n };\n\n handleMarkersChange: (\n markers: PerseusLabelImageWidgetOptions[\"markers\"],\n ) => void = (markers: PerseusLabelImageWidgetOptions[\"markers\"]) => {\n this.props.onChange({markers});\n };\n\n handleBehaviorChange: (options?: any) => void = (options: any) => {\n this.props.onChange(options);\n };\n\n render(): React.ReactNode {\n const {\n choices,\n imageAlt,\n imageUrl,\n imageWidth,\n imageHeight,\n markers,\n multipleAnswers,\n hideChoicesFromInstructions,\n } = this.props;\n\n const imageSelected = imageUrl && imageWidth > 0 && imageHeight > 0;\n\n return (\n <div>\n <SelectImage onChange={this.handleImageChange} url={imageUrl} />\n\n <div className={css(styles.smallSpacer)} />\n\n {imageSelected && (\n <FormWrappedTextField\n placeholder=\"Alt text (for screen readers)\"\n onChange={(e) => this.handleAltChange(e.target.value)}\n value={imageAlt}\n width=\"100%\"\n />\n )}\n\n <div className={css(styles.largeSpacer)} />\n\n <QuestionMarkers\n choices={choices}\n imageUrl={imageSelected ? imageUrl : \"\"}\n imageWidth={imageWidth}\n imageHeight={imageHeight}\n markers={markers}\n onChange={this.handleMarkersChange}\n ref={(node) => (this._questionMarkers = node)}\n />\n\n <div className={css(styles.largeSpacer)} />\n\n <AnswerChoices\n choices={choices}\n onChange={this.handleChoicesChange}\n />\n\n <div className={css(styles.largeSpacer)} />\n\n <Behavior\n preferredPopoverDirection=\"NONE\"\n multipleAnswers={multipleAnswers}\n hideChoicesFromInstructions={hideChoicesFromInstructions}\n onChange={this.handleBehaviorChange}\n />\n </div>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n largeSpacer: {\n height: 32,\n },\n\n smallSpacer: {\n height: 16,\n },\n});\n\nexport default LabelImageEditor;\n","/* eslint-disable react/forbid-prop-types */\nimport {components} from \"@khanacademy/perseus\";\nimport {\n matcherLogic,\n type MatcherDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nconst {InfoTip, TextListEditor} = components;\n\ntype Props = any;\n\nclass MatcherEditor extends React.Component<Props> {\n static propTypes = {\n left: PropTypes.array,\n right: PropTypes.array,\n labels: PropTypes.array,\n orderMatters: PropTypes.bool,\n padding: PropTypes.bool,\n };\n\n static widgetName = \"matcher\" as const;\n\n static defaultProps: MatcherDefaultWidgetOptions =\n matcherLogic.defaultWidgetOptions;\n\n onLabelChange: (\n arg1: number,\n arg2: React.ChangeEvent<HTMLInputElement>,\n ) => void = (index, e) => {\n const labels = _.clone(this.props.labels);\n labels[index] = e.target.value;\n this.props.onChange({labels: labels});\n };\n\n getSaveWarnings: () => ReadonlyArray<string> = () => {\n if (this.props.left.length !== this.props.right.length) {\n return [\n \"The two halves of the matcher have different numbers\" +\n \" of cards.\",\n ];\n }\n return [];\n };\n\n serialize: any = () => {\n return _.pick(\n this.props,\n \"left\",\n \"right\",\n \"labels\",\n \"orderMatters\",\n \"padding\",\n );\n };\n\n render(): React.ReactNode {\n return (\n <div className=\"perseus-matcher-editor\">\n <div>\n {\" \"}\n Correct answer:{\" \"}\n <InfoTip>\n <p>\n Enter the correct answers here. The preview on the\n right will show the cards in a randomized order,\n which is how the student will see them.\n </p>\n </InfoTip>\n </div>\n <div className=\"perseus-clearfix\">\n <TextListEditor\n options={this.props.left}\n onChange={(options, cb) => {\n this.props.onChange({left: options}, cb);\n }}\n layout=\"vertical\"\n />\n <TextListEditor\n options={this.props.right}\n onChange={(options, cb) => {\n this.props.onChange({right: options}, cb);\n }}\n layout=\"vertical\"\n />\n </div>\n <span>\n {\" \"}\n Labels:{\" \"}\n <InfoTip>\n <p>These are entirely optional.</p>\n </InfoTip>\n </span>\n <div>\n <input\n type=\"text\"\n defaultValue={this.props.labels[0]}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.onLabelChange.bind(this, 0)}\n />\n <input\n type=\"text\"\n defaultValue={this.props.labels[1]}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.onLabelChange.bind(this, 1)}\n />\n </div>\n <div>\n <Checkbox\n label=\"Order of the matched pairs matters:\"\n checked={this.props.orderMatters}\n onChange={(value) => {\n this.props.onChange({orderMatters: value});\n }}\n />\n <InfoTip>\n <p>\n With this option enabled, only the order provided\n above will be treated as correct. This is useful\n when ordering is significant, such as in the context\n of a proof.\n </p>\n <p>\n If disabled, pairwise matching is sufficient. To\n make this clear, the left column becomes fixed in\n the provided order and only the cards in the right\n column can be moved.\n </p>\n </InfoTip>\n </div>\n <div>\n <Checkbox\n label=\"Padding:\"\n checked={this.props.padding}\n onChange={(value) => {\n this.props.onChange({padding: value});\n }}\n />\n <InfoTip>\n <p>\n Padding is good for text, but not needed for images.\n </p>\n </InfoTip>\n </div>\n </div>\n );\n }\n}\n\nexport default MatcherEditor;\n","import {\n components,\n Changeable,\n EditorJsonify,\n MatrixWidget,\n} from \"@khanacademy/perseus\";\nimport {getMatrixSize, matrixLogic} from \"@khanacademy/perseus-core\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport Editor from \"../editor\";\n\nimport type {MatrixDefaultWidgetOptions} from \"@khanacademy/perseus-core\";\n\nconst {RangeInput} = components;\nconst Matrix = MatrixWidget.widget;\n\n// Really large matrices will cause issues with question formatting, so we\n// have to cap it at some point.\nconst MAX_BOARD_SIZE = 6;\n\ntype Props = any;\n\nclass MatrixEditor extends React.Component<Props> {\n static propTypes = {\n ...Changeable.propTypes,\n matrixBoardSize: PropTypes.arrayOf(PropTypes.number).isRequired,\n answers: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n prefix: PropTypes.string,\n suffix: PropTypes.string,\n cursorPosition: PropTypes.arrayOf(PropTypes.number),\n };\n\n static widgetName = \"matrix\" as const;\n\n static defaultProps: MatrixDefaultWidgetOptions =\n matrixLogic.defaultWidgetOptions;\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n onMatrixBoardSizeChange: (arg1: [number, number]) => void = (range) => {\n const matrixSize = getMatrixSize(this.props.answers);\n if (range[0] !== null && range[1] !== null) {\n range = [\n Math.round(Math.min(Math.max(range[0], 1), MAX_BOARD_SIZE)),\n Math.round(Math.min(Math.max(range[1], 1), MAX_BOARD_SIZE)),\n ];\n const answers = _(Math.min(range[0], matrixSize[0])).times(\n (row) => {\n return _(Math.min(range[1], matrixSize[1])).times((col) => {\n return this.props.answers[row][col];\n });\n },\n );\n this.props.onChange({\n matrixBoardSize: range,\n answers: answers,\n });\n }\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const matrixProps = _.extend(\n {\n numericInput: true,\n onBlur: () => {},\n onFocus: () => {},\n trackInteraction: () => {},\n },\n this.props,\n );\n return (\n <div className=\"perseus-matrix-editor\">\n <div className=\"perseus-widget-row\">\n {\" \"}\n Max matrix size:{\" \"}\n <RangeInput\n value={this.props.matrixBoardSize}\n onChange={this.onMatrixBoardSizeChange}\n format={this.props.labelStyle}\n useArrowKeys={true}\n />\n </div>\n <div className=\"perseus-widget-row\">\n <Matrix {...matrixProps} />\n </div>\n <div className=\"perseus-widget-row\">\n {\" \"}\n Matrix prefix:{\" \"}\n <Editor\n // eslint-disable-next-line react/no-string-refs\n ref=\"prefix\"\n apiOptions={this.props.apiOptions}\n content={this.props.prefix}\n widgetEnabled={false}\n onChange={(newProps) => {\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({prefix: newProps.content});\n }}\n />\n </div>\n <div className=\"perseus-widget-row\">\n {\" \"}\n Matrix suffix:{\" \"}\n <Editor\n // eslint-disable-next-line react/no-string-refs\n ref=\"suffix\"\n apiOptions={this.props.apiOptions}\n content={this.props.suffix}\n widgetEnabled={false}\n onChange={(newProps) => {\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({suffix: newProps.content});\n }}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default MatrixEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\nimport {components, Changeable, EditorJsonify} from \"@khanacademy/perseus\";\nimport {measurerLogic} from \"@khanacademy/perseus-core\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport type {MeasurerDefaultWidgetOptions} from \"@khanacademy/perseus-core\";\n\nconst {InfoTip, NumberInput, RangeInput} = components;\n\nconst defaultImage = {\n url: null,\n top: 0,\n left: 0,\n} as const;\n\ntype Props = any;\n\nclass MeasurerEditor extends React.Component<Props> {\n static widgetName = \"measurer\" as const;\n\n static propTypes = {\n ...Changeable.propTypes,\n box: PropTypes.arrayOf(PropTypes.number),\n image: PropTypes.shape({\n url: PropTypes.string,\n top: PropTypes.number,\n left: PropTypes.number,\n }),\n showProtractor: PropTypes.bool,\n showRuler: PropTypes.bool,\n rulerLabel: PropTypes.string,\n rulerTicks: PropTypes.number,\n rulerPixels: PropTypes.number,\n rulerLength: PropTypes.number,\n };\n\n static defaultProps: MeasurerDefaultWidgetOptions =\n measurerLogic.defaultWidgetOptions;\n\n className = \"perseus-widget-measurer\";\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n _changeUrl: (arg1: React.ChangeEvent<HTMLInputElement>) => void = (e) => {\n this._changeImage(\"url\", e.target.value);\n };\n\n _changeTop: (arg1: any) => void = (newTop) => {\n this._changeImage(\"top\", newTop);\n };\n\n _changeLeft: (arg1: any) => void = (newLeft) => {\n this._changeImage(\"left\", newLeft);\n };\n\n _changeImage: (arg1: string, arg2: any) => void = (subProp, newValue) => {\n const image = _.clone(this.props.image);\n image[subProp] = newValue;\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 2.\n this.change(\"image\", image);\n };\n\n renderLabelChoices: (\n arg1: ReadonlyArray<[string, string]>,\n ) => ReadonlyArray<React.ReactElement<React.ComponentProps<\"option\">>> = (\n choices,\n ) => {\n return _.map(choices, function (nameAndValue) {\n const [name, value] = nameAndValue;\n return (\n <option key={value} value={value}>\n {name}\n </option>\n );\n });\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const image = _.extend({}, defaultImage, this.props.image);\n\n return (\n <div className=\"perseus-widget-measurer\">\n <div>Image displayed under protractor and/or ruler:</div>\n <div>\n URL:{\" \"}\n <input\n type=\"text\"\n className=\"perseus-widget-measurer-url\"\n // eslint-disable-next-line react/no-string-refs\n ref=\"image-url\"\n defaultValue={image.url}\n onChange={this._changeUrl}\n />\n <InfoTip>\n <p>\n Create an image in graphie, or use the &quot;Add\n image&quot; function to create a background.\n </p>\n </InfoTip>\n </div>\n {image.url && (\n <div className=\"perseus-widget-row\">\n <label className=\"perseus-widget-left-col\">\n Pixels from top:{\" \"}\n <NumberInput\n placeholder={0}\n onChange={this._changeTop}\n value={image.top}\n useArrowKeys={true}\n />\n </label>\n <label className=\"perseus-widget-right-col\">\n Pixels from left:{\" \"}\n <NumberInput\n placeholder={0}\n onChange={this._changeLeft}\n value={image.left}\n useArrowKeys={true}\n />\n </label>\n </div>\n )}\n <div>\n Containing area [width, height]:{\" \"}\n <RangeInput\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"box\")}\n value={this.props.box}\n useArrowKeys={true}\n />\n </div>\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n <Checkbox\n label=\"Show ruler\"\n checked={this.props.showRuler}\n onChange={(value) => {\n this.props.onChange({showRuler: value});\n }}\n />\n </div>\n <div className=\"perseus-widget-right-col\">\n <Checkbox\n label=\"Show protractor\"\n checked={this.props.showProtractor}\n onChange={(value) => {\n this.props.onChange({showProtractor: value});\n }}\n />\n </div>\n </div>\n {this.props.showRuler && (\n <div>\n <div>\n <label>\n {\" \"}\n Ruler label:{\" \"}\n <select\n onChange={(e) =>\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 2.\n this.change(\n \"rulerLabel\",\n e.target.value,\n )\n }\n value={this.props.rulerLabel}\n >\n <option value=\"\">None</option>\n <optgroup label=\"Metric\">\n {this.renderLabelChoices([\n [\"milimeters\", \"mm\"],\n [\"centimeters\", \"cm\"],\n [\"meters\", \"m\"],\n [\"kilometers\", \"km\"],\n ])}\n </optgroup>\n <optgroup label=\"Imperial\">\n {this.renderLabelChoices([\n [\"inches\", \"in\"],\n [\"feet\", \"ft\"],\n [\"yards\", \"yd\"],\n [\"miles\", \"mi\"],\n ])}\n </optgroup>\n </select>\n </label>\n </div>\n <div>\n <label>\n {\" \"}\n Ruler ticks:{\" \"}\n <select\n onChange={(e) =>\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 2.\n this.change(\n \"rulerTicks\",\n +e.target.value,\n )\n }\n value={this.props.rulerTicks}\n >\n {_.map([1, 2, 4, 8, 10, 16], function (n) {\n return (\n <option key={n} value={n}>\n {n}\n </option>\n );\n })}\n </select>\n </label>\n </div>\n <div>\n <label>\n Ruler pixels per unit:{\" \"}\n <NumberInput\n placeholder={40}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"rulerPixels\")}\n value={this.props.rulerPixels}\n useArrowKeys={true}\n />\n </label>\n </div>\n <div>\n <label>\n Ruler length in units:{\" \"}\n <NumberInput\n placeholder={10}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"rulerLength\")}\n value={this.props.rulerLength}\n useArrowKeys={true}\n />\n </label>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default MeasurerEditor;\n","import {components, Changeable, EditorJsonify} from \"@khanacademy/perseus\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\n\nconst {NumberInput, TextInput} = components;\n\ntype Props = any;\n\nclass MoleculeWidgetEditor extends React.Component<Props> {\n static propTypes = {\n ...Changeable.propTypes,\n rotationAngle: PropTypes.number,\n smiles: PropTypes.string,\n };\n\n static widgetName = \"molecule-renderer\" as const;\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n updateMolecule: (arg1: string) => void = (newValue) => {\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({smiles: newValue});\n };\n\n updateRotation: (arg1: string) => void = (newValue) => {\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({rotationAngle: newValue});\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n return (\n <div>\n <div>\n {/* TODO(colin): instead of nbsp hacks, use styles to get\n the spacing right. */}\n <label>\n SMILES:&nbsp;\n <TextInput\n onChange={this.updateMolecule}\n value={this.props.smiles}\n />\n </label>\n </div>\n <div>\n <label>\n Rotation (deg):&nbsp;\n <NumberInput\n onChange={this.updateRotation}\n value={this.props.rotationAngle}\n />\n </label>\n </div>\n </div>\n );\n }\n}\n\nexport default MoleculeWidgetEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\nimport {number as knumber} from \"@khanacademy/kmath\";\nimport {components, EditorJsonify} from \"@khanacademy/perseus\";\nimport {\n numberLineLogic,\n type NumberLineDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport type {Changeable} from \"@khanacademy/perseus\";\n\nconst {ButtonGroup, InfoTip, NumberInput, RangeInput} = components;\n\ntype Range = [number, number];\n\nconst bound = (x: number, gt: number, lt: number): number =>\n Math.min(Math.max(x, gt), lt);\n\nconst EN_DASH = \"\\u2013\";\n\ntype Props = {\n range: number[];\n\n labelRange: ReadonlyArray<number>;\n labelStyle: string;\n labelTicks: boolean;\n\n divisionRange: ReadonlyArray<number>;\n numDivisions: number;\n snapDivisions: number;\n\n tickStep: number;\n correctRel: \"lt\" | \"gt\" | \"le\" | \"ge\" | \"eq\";\n correctX: number;\n initialX: number;\n isTickCtrl?: boolean;\n\n static?: boolean;\n showTooltips: boolean;\n} & Changeable.ChangeableProps;\n\nclass NumberLineEditor extends React.Component<Props> {\n static widgetName = \"number-line\" as const;\n\n static defaultProps: NumberLineDefaultWidgetOptions =\n numberLineLogic.defaultWidgetOptions;\n\n onRangeChange: (arg1: Range) => void = (range) => {\n // Changing the range constrains the initial position, as well as the\n // position of the answer and labels. Atm, it just marks them as\n // invalid and prevents the number line from showing; it was annoying\n // to change it for them, because if they're typing in fractions,\n // it registers one-at-a-time and messes things up.\n this.props.onChange({range: range});\n };\n\n onLabelRangeChange: (arg1: number, arg2: number) => void = (i, num) => {\n let labelRange = this.props.labelRange.slice();\n const otherNum = labelRange[1 - i];\n\n if (num == null || otherNum == null) {\n labelRange[i] = num;\n } else {\n // If both labels have values, this updates the \"appropriate\" one.\n // It enforces that the position of the left label <= right label.\n // If left otherwise, it makes certain aspects of validation hard.\n labelRange = [Math.min(num, otherNum), Math.max(num, otherNum)];\n }\n\n this.props.onChange({labelRange: labelRange});\n };\n\n onDivisionRangeChange: (arg1: Range) => void = (divisionRange) => {\n let numDivisions = this.props.numDivisions;\n numDivisions = bound(numDivisions, divisionRange[0], divisionRange[1]);\n this.props.onChange({\n divisionRange: divisionRange,\n numDivisions: numDivisions,\n });\n };\n\n onNumChange: (\n arg1: \"correctX\" | \"initialX\" | \"snapDivisions\",\n arg2: number,\n ) => void = (key, value) => {\n const opts: Record<string, any> = {};\n opts[key] = value;\n this.props.onChange(opts);\n };\n\n onNumDivisionsChange: (arg1: number) => void = (numDivisions) => {\n const divRange = this.props.divisionRange.slice();\n\n // Don't allow a fraction for the number of divisions\n numDivisions = _.isFinite(numDivisions) ? Math.round(numDivisions) : 0;\n\n // Don't allow negative numbers for the number of divisions\n numDivisions = numDivisions < 0 ? numDivisions * -1 : numDivisions;\n\n // If the number of divisions isn't blank, update the number line\n if (numDivisions) {\n // Constrain numDivisions to be within the allowed range\n numDivisions = Math.min(\n divRange[1],\n Math.max(divRange[0], numDivisions),\n );\n\n this.props.onChange({\n tickStep: null,\n divisionRange: divRange,\n numDivisions: numDivisions,\n });\n }\n };\n\n onTickStepChange: (arg1: number) => void = (tickStep) => {\n this.props.onChange({\n numDivisions: null,\n tickStep: tickStep,\n });\n };\n\n onChangeRelation: (arg1: React.ChangeEvent<HTMLInputElement>) => void = (\n e,\n ) => {\n const value = e.target.value;\n this.props.onChange({\n correctRel: value,\n isInequality: value !== \"eq\",\n });\n };\n\n onLabelStyleChange: (arg1: any) => void = (labelStyle) => {\n this.props.onChange({\n labelStyle: labelStyle,\n });\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const range = this.props.range;\n const labelRange = this.props.labelRange;\n const divisionRange = this.props.divisionRange;\n\n range[0] = +range[0];\n range[1] = +range[1];\n\n const width = range[1] - range[0];\n const numDivisions = this.props.numDivisions;\n const snapDivisions = this.props.snapDivisions;\n const tickStep = this.props.tickStep;\n const isTickCtrl = this.props.isTickCtrl;\n\n let step;\n if (!isTickCtrl) {\n // this will help constrain the answer to what is reachable\n step = tickStep\n ? tickStep / snapDivisions\n : width / numDivisions / snapDivisions;\n } else {\n // but if tickCtrl is on, the range of what is reachable is\n // rather large, and it becomes obnoxious to check for this\n step = null;\n }\n\n const labelStyleEditorButtons = [\n {\n value: \"decimal\",\n content: \"0.75\",\n title: \"Decimals\",\n },\n {\n value: \"improper\",\n content: \"\\u2077\\u2044\\u2084\",\n title: \"Improper fractions\",\n },\n {\n value: \"mixed\",\n content: \"1\\u00BE\",\n title: \"Mixed numbers\",\n },\n {\n value: \"non-reduced\",\n content: \"\\u2078\\u2044\\u2084\",\n title: \"Non-reduced\",\n },\n ];\n\n return (\n <div className=\"perseus-widget-number-line-editor\">\n <div className=\"perseus-widget-row\">\n Correct x{\" \"}\n <select\n value={this.props.correctRel}\n // @ts-expect-error - TS2322 - Type '(arg1: ChangeEvent<HTMLInputElement>) => void' is not assignable to type 'ChangeEventHandler<HTMLSelectElement>'.\n onChange={this.onChangeRelation}\n aria-label=\"Select relationship\"\n >\n <option value=\"eq\" aria-label=\"Equal\">\n =\n </option>\n <option value=\"lt\" aria-label=\"Less than\">\n &lt;\n </option>\n <option value=\"gt\" aria-label=\"Greater than\">\n &gt;\n </option>\n <option value=\"le\" aria-label=\"Less than or equal\">\n &le;\n </option>\n <option value=\"ge\" aria-label=\"Greater than or equal\">\n &ge;\n </option>\n </select>{\" \"}\n <NumberInput\n value={this.props.correctX}\n format={this.props.labelStyle}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.onNumChange.bind(this, \"correctX\")}\n checkValidity={(val) =>\n val >= range[0] &&\n val <= range[1] &&\n (!step ||\n knumber.isInteger((val - range[0]) / step))\n }\n placeholder=\"answer\"\n size=\"normal\"\n useArrowKeys={true}\n />\n <InfoTip>\n <p>\n This is the correct answer. The answer is validated\n (as right or wrong) by using only the end position\n of the point and the relation (=, &lt;, &gt;, &le;,\n &ge;).\n </p>\n </InfoTip>\n </div>\n\n <div className=\"perseus-widget-row\">\n {this.props.static ? (\n <label>\n {/* Don't display initial position input in\n static mode since it isn't used. */}\n Range:\n </label>\n ) : (\n <label>\n Position:{\" \"}\n <NumberInput\n value={this.props.initialX}\n format={this.props.labelStyle}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.onNumChange.bind(\n this,\n \"initialX\",\n )}\n placeholder={range[0]}\n checkValidity={(val) => {\n return val >= range[0] && val <= range[1];\n }}\n useArrowKeys={true}\n />\n {\" \\u2208 \"}\n </label>\n )}\n\n <RangeInput\n value={range}\n onChange={this.onRangeChange}\n format={this.props.labelStyle}\n useArrowKeys={true}\n />\n <InfoTip>\n <p>\n This controls the initial position of the point\n along the number line and the\n <strong>range</strong>, the position of the\n endpoints of the number line. Setting the range\n constrains the position of the answer and the\n labels.\n </p>\n <p>\n In static mode, the initial position of the point is\n determined by Correct x instead of position.\n </p>\n </InfoTip>\n </div>\n <div className=\"perseus-widget-row\">\n <div className=\"perseus-widget-left-col\">\n Labels:{\" \"}\n <NumberInput\n value={labelRange[0]}\n placeholder={range[0]}\n format={this.props.labelStyle}\n checkValidity={(val) =>\n val >= range[0] && val <= range[1]\n }\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.onLabelRangeChange.bind(this, 0)}\n useArrowKeys={true}\n />\n <span> &amp; </span>\n <NumberInput\n value={labelRange[1]}\n placeholder={range[1]}\n format={this.props.labelStyle}\n checkValidity={(val) =>\n val >= range[0] && val <= range[1]\n }\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.onLabelRangeChange.bind(this, 1)}\n useArrowKeys={true}\n />\n <InfoTip>\n <p>\n This controls the position of the left / right\n labels. By default, the labels are set by the\n range <br />\n <strong>Note:</strong> Ensure that the labels\n line up with the tick marks, or it may be\n confusing for users.\n </p>\n </InfoTip>\n </div>\n </div>\n <div className=\"perseus-widget-row\">\n Style:{\" \"}\n <ButtonGroup\n allowEmpty={false}\n value={this.props.labelStyle}\n buttons={labelStyleEditorButtons}\n onChange={this.onLabelStyleChange}\n />\n <InfoTip>\n <p>\n This controls the styling of the labels for the two\n main labels as well as all the tick mark labels, if\n applicable. Your choices are decimal, improper\n fractions, mixed fractions, and non-reduced\n fractions.\n </p>\n </InfoTip>\n </div>\n <div className=\"perseus-widget-row\">\n {!this.props.static && (\n <div className=\"perseus-widget-left-col\">\n <Checkbox\n label=\"Show tick controller\"\n checked={this.props.isTickCtrl}\n onChange={(value) => {\n this.props.onChange({isTickCtrl: value});\n }}\n />\n </div>\n )}\n <div className=\"perseus-widget-right-col\">\n <Checkbox\n label=\"Show label ticks\"\n checked={this.props.labelTicks}\n onChange={(value) => {\n this.props.onChange({labelTicks: value});\n }}\n />\n </div>\n </div>\n\n <div className=\"perseus-widget-row\">\n {!this.props.static && (\n <Checkbox\n label=\"Show tooltips\"\n checked={this.props.showTooltips}\n onChange={(value) => {\n this.props.onChange({showTooltips: value});\n }}\n />\n )}\n </div>\n <div className=\"perseus-widget-row\">\n {isTickCtrl && (\n <span>\n <label>\n Start num divisions at{\" \"}\n <NumberInput\n value={this.props.numDivisions || null}\n format=\"decimal\"\n onChange={this.onNumDivisionsChange}\n checkValidity={(val) => {\n return (\n val >= divisionRange[0] &&\n val <= divisionRange[1]\n );\n }}\n placeholder={width / this.props.tickStep}\n useArrowKeys={true}\n />\n </label>\n <InfoTip>\n <p>\n This controls the number (and position) of\n the tick marks. The number of divisions is\n constrained to\n {\" \" +\n divisionRange[0] +\n EN_DASH +\n divisionRange[1]}\n .\n <br />\n <strong>Note:</strong> The user will be able\n to specify the number of divisions in a\n number input.\n </p>\n </InfoTip>\n </span>\n )}\n {!isTickCtrl && (\n <span>\n <label>\n Num divisions:{\" \"}\n <NumberInput\n value={this.props.numDivisions || null}\n format=\"decimal\"\n onChange={this.onNumDivisionsChange}\n checkValidity={(val) => {\n return (\n val >= divisionRange[0] &&\n val <= divisionRange[1]\n );\n }}\n placeholder={width / this.props.tickStep}\n useArrowKeys={true}\n />\n </label>{\" \"}\n <label>\n or tick step:{\" \"}\n <NumberInput\n value={this.props.tickStep || null}\n format={this.props.labelStyle}\n onChange={this.onTickStepChange}\n checkValidity={(val) => {\n return val > 0 && val <= width;\n }}\n placeholder={\n width / this.props.numDivisions\n }\n useArrowKeys={true}\n />\n </label>\n <InfoTip>\n <p>\n This controls the number (and position) of\n the tick marks; you can either set the\n number of divisions (2 divisions would split\n the entire range in two halves), or the tick\n step (the distance between ticks) and the\n other value will be updated accordingly.{\" \"}\n <br />\n <strong>Note:</strong> There is no check to\n see if labels coordinate with the tick\n marks, which may be confusing for users if\n the blue labels and black ticks are\n off-step.\n </p>\n </InfoTip>\n </span>\n )}\n </div>\n <div className=\"perseus-widget-row\">\n <label>\n Snap increments per tick:{\" \"}\n <NumberInput\n value={snapDivisions}\n checkValidity={(val) => val > 0}\n format={this.props.labelStyle}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.onNumChange.bind(\n this,\n \"snapDivisions\",\n )}\n useArrowKeys={true}\n />\n </label>\n <InfoTip>\n <p>\n This determines the number of different places the\n point will snap between two adjacent tick marks.{\" \"}\n <br />\n <strong>Note:</strong>Ensure the required number of\n snap increments is provided to answer the question.\n </p>\n </InfoTip>\n </div>\n </div>\n );\n }\n}\n\nexport default NumberLineEditor;\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport {KhanMath} from \"@khanacademy/kmath\";\nimport {\n components,\n Changeable,\n EditorJsonify,\n Util,\n PerseusI18nContext,\n} from \"@khanacademy/perseus\";\nimport {\n numericInputLogic,\n type MathFormat,\n type NumericInputDefaultWidgetOptions,\n type PerseusNumericInputWidgetOptions,\n} from \"@khanacademy/perseus-core\";\nimport Button from \"@khanacademy/wonder-blocks-button\";\nimport Pill from \"@khanacademy/wonder-blocks-pill\";\nimport {LabelLarge} from \"@khanacademy/wonder-blocks-typography\";\nimport trashIcon from \"@phosphor-icons/core/bold/trash-bold.svg\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport Heading from \"../components/heading\";\nimport PerseusEditorAccordion from \"../components/perseus-editor-accordion\";\nimport Editor from \"../editor\";\n\nimport type {APIOptionsWithDefaults} from \"@khanacademy/perseus\";\nimport type {ClickableRole} from \"@khanacademy/wonder-blocks-clickable\";\nimport type {StyleType} from \"@khanacademy/wonder-blocks-core\";\nimport type {\n PillSize,\n PillKind,\n} from \"@khanacademy/wonder-blocks-pill/dist/components/pill\";\n\ntype ChangeFn = typeof Changeable.change;\n\nconst {InfoTip, NumberInput, TextInput} = components;\nconst {firstNumericalParse} = Util;\n\nconst answerFormButtons = [\n {title: \"Integers\", value: \"integer\", content: \"6\"},\n {title: \"Decimals\", value: \"decimal\", content: \"0.75\"},\n {title: \"Proper fractions\", value: \"proper\", content: \"\\u2157\"},\n {\n title: \"Improper fractions\",\n value: \"improper\",\n content: \"\\u2077\\u2044\\u2084\",\n },\n {title: \"Mixed numbers\", value: \"mixed\", content: \"1\\u00BE\"},\n {title: \"Numbers with \\u03C0\", value: \"pi\", content: \"\\u03C0\"},\n];\n\nconst initAnswer = (status: string) => {\n return {\n value: null,\n status: status,\n message: \"\",\n simplify: \"required\",\n answerForms: [],\n strict: false,\n maxError: null,\n };\n};\n\n// The \"static\" property is not used in this widget (per the type definition comments)\ntype Props = Omit<PerseusNumericInputWidgetOptions, \"static\"> & {\n onChange: (results: any) => any;\n apiOptions?: APIOptionsWithDefaults;\n};\n\ntype State = {\n lastStatus: string;\n showAnswerDetails: boolean[];\n showSettings: boolean;\n showAnswers: boolean;\n};\n\nclass NumericInputEditor extends React.Component<Props, State> {\n static contextType = PerseusI18nContext;\n declare context: React.ContextType<typeof PerseusI18nContext>;\n\n static widgetName = \"numeric-input\";\n static displayName = \"NumericInputEditor\";\n\n static defaultProps: NumericInputDefaultWidgetOptions =\n numericInputLogic.defaultWidgetOptions;\n\n constructor(props: Props) {\n super(props);\n this.state = {\n lastStatus: \"wrong\",\n showAnswerDetails: Array(this.props.answers.length).fill(true),\n showSettings: true,\n showAnswers: true,\n };\n }\n\n change: ChangeFn = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n onToggleAnswers = (answerIndex: number) => {\n const showAnswerDetails = this.state.showAnswerDetails.slice();\n showAnswerDetails[answerIndex] = !showAnswerDetails[answerIndex];\n this.setState({showAnswerDetails: showAnswerDetails});\n };\n\n onToggleAnswerForm = (answerIndex: number, answerForm) => {\n let answerForms: string[] = [\n ...(this.props.answers[answerIndex][\"answerForms\"] ?? []),\n ];\n const formSelected = answerForms.includes(answerForm);\n if (!formSelected) {\n answerForms.push(answerForm);\n } else {\n answerForms = answerForms.filter((form) => form !== answerForm);\n }\n const updateFn = this.updateAnswer(answerIndex, \"answerForms\");\n if (updateFn) {\n updateFn(answerForms);\n }\n };\n\n onToggleHeading = (accordionName: string) => {\n return () => {\n const toggleName = `show${accordionName}`;\n const newState = {...this.state};\n newState[toggleName] = !newState[toggleName];\n this.setState(newState);\n };\n };\n\n onTrashAnswer = (choiceIndex) => {\n if (choiceIndex >= 0 && choiceIndex < this.props.answers.length) {\n const answers = this.props.answers.slice(0);\n answers.splice(choiceIndex, 1);\n this.props.onChange({answers: answers});\n }\n };\n\n onSpace = (e, callback, ...args) => {\n if (e.key === \" \") {\n e.preventDefault(); // prevent page shifting\n callback.apply(this, args);\n }\n };\n\n onStatusChange = (choiceIndex) => {\n const statuses = [\"wrong\", \"ungraded\", \"correct\"];\n const answers = this.props.answers;\n const i = statuses.indexOf(answers[choiceIndex].status);\n const newStatus = statuses[(i + 1) % statuses.length];\n\n this.updateAnswer(choiceIndex, {\n status: newStatus,\n simplify: newStatus === \"correct\" ? \"required\" : \"accepted\",\n });\n };\n\n onEvaluationChange = (choiceIndex, newStatus) => {\n this.updateAnswer(choiceIndex, {\n status: newStatus,\n simplify: newStatus === \"correct\" ? \"required\" : \"accepted\",\n });\n };\n\n updateAnswer = (choiceIndex, update) => {\n if (!_.isObject(update)) {\n return _.partial(\n (choiceIndex, key, value) => {\n const update: Record<string, any> = {};\n update[key] = value;\n this.updateAnswer(choiceIndex, update);\n },\n choiceIndex,\n update,\n );\n }\n\n let answers = [\n // Have to do this to remove the `readonly` state from the prop\n ...this.props.answers,\n ];\n\n // Don't bother to make a new answer box unless we are editing the last\n // one.\n // TODO(oliver): This might not be necessary anymore.\n if (choiceIndex === answers.length) {\n const lastAnswer: any = initAnswer(this.state.lastStatus);\n answers = answers.concat(lastAnswer);\n }\n\n answers[choiceIndex] = _.extend({}, answers[choiceIndex], update);\n this.props.onChange({answers: answers});\n };\n\n addAnswer = () => {\n const lastAnswer: any = initAnswer(this.state.lastStatus);\n const answers = this.props.answers.concat(lastAnswer);\n const showAnswerDetails = this.state.showAnswerDetails.concat(true);\n this.setState({showAnswerDetails: showAnswerDetails});\n this.props.onChange({answers: answers});\n };\n\n getSaveWarnings = () => {\n // Filter out all the empty answers\n const warnings = [];\n // TODO(emily): This doesn't actually work, because the value is either\n // null or undefined when undefined, probably.\n if (_.contains(_.pluck(this.props.answers, \"value\"), \"\")) {\n // @ts-expect-error - TS2345 - Argument of type 'string' is not assignable to parameter of type 'never'.\n warnings.push(\"One or more answers is empty\");\n }\n this.props.answers.forEach((answer, i) => {\n const formatError =\n answer.strict &&\n (!answer.answerForms || answer.answerForms.length === 0);\n if (formatError) {\n warnings.push(\n // @ts-expect-error - TS2345 - Argument of type 'string' is not assignable to parameter of type 'never'.\n `Answer ${i + 1} is set to string format ` +\n \"matching, but no format was selected\",\n );\n }\n });\n return warnings;\n };\n\n serialize = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render() {\n const answers = this.props.answers;\n const commonOptionProps: {\n size: PillSize;\n role: ClickableRole;\n style: StyleType;\n } = {\n size: \"medium\",\n role: \"radio\",\n style: {marginRight: \"8px\"},\n };\n\n const SettingOption = (props: {\n kind: \"accent\" | \"transparent\";\n role?: \"radio\" | \"checkbox\";\n ariaLabel?: string;\n onClick: () => void;\n children: any;\n }): React.ReactElement => {\n const {kind, onClick, ariaLabel, children} = props;\n const role = props.role ?? \"radio\";\n const pillProps = {\n ...commonOptionProps,\n \"aria-label\": ariaLabel,\n kind: kind satisfies PillKind,\n role: role satisfies ClickableRole,\n onClick: onClick,\n };\n return <Pill {...pillProps}>{children}</Pill>;\n };\n\n const RadioOption = (props: {\n answerIndex: number;\n answerProperty: string;\n value: string | boolean;\n onClick?: () => void;\n children: any;\n }): React.ReactElement => {\n const {answerIndex, answerProperty, value, children} = props;\n const isSelected = answers[answerIndex][answerProperty] === value;\n const kind = isSelected ? \"accent\" : \"transparent\";\n const newState = {};\n newState[answerProperty] = value;\n const onClick =\n props.onClick ??\n (() => {\n this.updateAnswer(answerIndex, newState);\n });\n\n return (\n <SettingOption kind={kind} onClick={onClick}>\n {children}\n </SettingOption>\n );\n };\n\n const unsimplifiedAnswers = (i: any) => (\n <fieldset className=\"perseus-widget-row unsimplified-options\">\n {answers[i][\"status\"] !== \"correct\" && (\n <>\n <legend className=\"inline-options\">\n Unsimplified answers are irrelevant for this status\n </legend>\n </>\n )}\n {answers[i][\"status\"] === \"correct\" && (\n <>\n <legend className=\"inline-options\">\n Unsimplified answers are\n </legend>\n <span className=\"tooltip-for-legend\">\n <InfoTip>\n <p>\n Normally select \"ungraded\". This will give\n the user a message saying the answer is\n correct but not simplified. The user will\n then have to simplify it and re-enter, but\n will not be penalized. (5th grade and after)\n </p>\n <p>\n Select \"accepted\" only if the user is not\n expected to know how to simplify fractions\n yet. (Anything prior to 5th grade)\n </p>\n <p>\n Select \"wrong\" <em>only</em> if we are\n specifically assessing the ability to\n simplify.\n </p>\n </InfoTip>\n </span>\n <br />\n <RadioOption\n answerIndex={i}\n answerProperty=\"simplify\"\n value=\"required\"\n >\n Ungraded\n </RadioOption>\n <RadioOption\n answerIndex={i}\n answerProperty=\"simplify\"\n value=\"optional\"\n >\n Accepted\n </RadioOption>\n <RadioOption\n answerIndex={i}\n answerProperty=\"simplify\"\n value=\"enforced\"\n >\n Wrong\n </RadioOption>\n </>\n )}\n </fieldset>\n );\n\n const suggestedAnswerTypes = (i: any) => (\n <>\n <div className=\"perseus-widget-row\">\n {/* eslint-disable-next-line jsx-a11y/label-has-associated-control -- TODO(LEMS-2871): Address a11y error */}\n <label>Possible answer formats&ensp;</label>\n <InfoTip>\n <p>\n Formats will be autoselected for you based on the\n given answer; to show no suggested formats and\n accept all types, simply have a decimal/integer be\n the answer. Values with &pi; will have format \"pi\",\n and values that are fractions will have some subset\n (mixed will be \"mixed\" and \"proper\"; improper/proper\n will both be \"improper\" and \"proper\"). If you would\n like to specify that it is only a proper fraction\n (or only a mixed/improper fraction), deselect the\n other format. Except for specific cases, you should\n not need to change the autoselected formats.\n </p>\n <p>\n To restrict the answer to <em>only</em> an improper\n fraction (i.e. 7/4), select the improper fraction\n and toggle \"strict\" to true. This <b>will not</b>{\" \"}\n accept 1.75 as an answer.{\" \"}\n </p>\n <p>\n Unless you are testing that specific skill, please\n do not restrict the answer format.\n </p>\n </InfoTip>\n <br />\n {answerFormButtons.map((format) => {\n const isSelected = answers[i][\"answerForms\"]?.includes(\n format.value as MathFormat,\n );\n const kind = isSelected ? \"accent\" : \"transparent\";\n const onClick = () => {\n this.onToggleAnswerForm(i, format.value);\n };\n\n return (\n <SettingOption\n key={format.value}\n ariaLabel={format.title}\n kind={kind}\n role=\"checkbox\"\n onClick={onClick}\n >\n {format.content}\n </SettingOption>\n );\n })}\n </div>\n <fieldset className=\"perseus-widget-row\">\n <legend>Answer formats are: </legend>\n <RadioOption\n answerIndex={i}\n answerProperty=\"strict\"\n value={false}\n >\n Suggested\n </RadioOption>\n <RadioOption\n answerIndex={i}\n answerProperty=\"strict\"\n value={true}\n >\n Required\n </RadioOption>\n </fieldset>\n </>\n );\n\n const inputSize = (\n <fieldset className=\"perseus-widget-row\">\n <legend className=\"inline-options\">Width: </legend>\n <Pill\n {...commonOptionProps}\n kind={\n this.props.size === \"normal\" ? \"accent\" : \"transparent\"\n }\n onClick={() => {\n this.change(\"size\")(\"normal\");\n }}\n >\n Normal (80px)\n </Pill>\n <Pill\n {...commonOptionProps}\n kind={\n this.props.size === \"small\" ? \"accent\" : \"transparent\"\n }\n onClick={() => {\n this.change(\"size\")(\"small\");\n }}\n >\n Small (40px)\n </Pill>\n <InfoTip>\n <p>\n Use size \"Normal\" for all text boxes, unless there are\n multiple text boxes in one line and the answer area is\n too narrow to fit them.\n </p>\n </InfoTip>\n </fieldset>\n );\n\n const rightAlign = (\n <fieldset className=\"perseus-widget-row\">\n <legend className=\"inline-options\">Alignment: </legend>\n <Pill\n {...commonOptionProps}\n kind={this.props.rightAlign ? \"transparent\" : \"accent\"}\n onClick={() => {\n this.props.onChange({rightAlign: false});\n }}\n >\n Left\n </Pill>\n <Pill\n {...commonOptionProps}\n kind={this.props.rightAlign ? \"accent\" : \"transparent\"}\n onClick={() => {\n this.props.onChange({rightAlign: true});\n }}\n >\n Right\n </Pill>\n </fieldset>\n );\n\n const labelText = (\n <>\n <div className=\"perseus-widget-row\">\n {/* eslint-disable-next-line jsx-a11y/label-has-associated-control -- TODO(LEMS-2871): Address a11y error */}\n <label>Aria label</label>\n <InfoTip>\n <p>\n Text to describe this input. This will be shown to\n users using screenreaders.\n </p>\n </InfoTip>\n </div>\n <TextInput\n labelText=\"aria label\"\n value={this.props.labelText}\n onChange={this.change(\"labelText\")}\n />\n </>\n );\n\n const coefficientCheck = (\n <fieldset className=\"perseus-widget-row\">\n <legend className=\"inline-options\">Number style: </legend>\n <Pill\n {...commonOptionProps}\n kind={this.props.coefficient ? \"transparent\" : \"accent\"}\n onClick={() => {\n this.props.onChange({coefficient: false});\n }}\n >\n Standard\n </Pill>\n <Pill\n {...commonOptionProps}\n kind={this.props.coefficient ? \"accent\" : \"transparent\"}\n onClick={() => {\n this.props.onChange({coefficient: true});\n }}\n >\n Coefficient\n </Pill>\n <InfoTip>\n <p>\n A coefficient style number allows the student to use -\n for -1 and an empty string to mean 1.\n </p>\n </InfoTip>\n </fieldset>\n );\n\n const instructions = {\n wrong: \"(address the mistake/misconception)\",\n ungraded: \"(explain in detail to avoid confusion)\",\n correct: \"(reinforce the user's understanding)\",\n } as const;\n\n const generateInputAnswerEditors = () =>\n answers.map((answer, i) => {\n const editor = (\n <Editor\n apiOptions={this.props.apiOptions}\n content={answer.message || \"\"}\n placeholder={\n \"Why is this answer \" +\n answer.status +\n \"?\\t\" +\n instructions[answer.status]\n }\n widgetEnabled={false}\n onChange={(newProps) => {\n if (\"content\" in newProps) {\n this.updateAnswer(i, {\n message: newProps.content,\n });\n }\n }}\n />\n );\n const statusProper =\n answer.status.charAt(0).toUpperCase() +\n answer.status.slice(1);\n const answerFormat = (answer.answerForms || []).at(-1);\n const answerString = KhanMath.toNumericString(\n answer.value ?? 0,\n answerFormat,\n );\n const answerRangeText = answer.maxError\n ? `± ${KhanMath.toNumericString(answer.maxError, answerFormat)}`\n : \"\";\n const answerHeading =\n answer.value === null\n ? \"New Answer\"\n : `${statusProper} answer: ${answerString} ${answerRangeText}`;\n\n return (\n <div className=\"perseus-widget-row answer-option\" key={i}>\n <PerseusEditorAccordion\n animated={true}\n expanded={this.state.showAnswerDetails[i]}\n onToggle={() => {\n this.onToggleAnswers(i);\n }}\n header={<LabelLarge>{answerHeading}</LabelLarge>}\n >\n <div\n className={\n \"input-answer-editor-value-container\" +\n (answer.maxError ? \" with-max-error\" : \"\")\n }\n >\n {/* eslint-disable-next-line jsx-a11y/label-has-associated-control -- TODO(LEMS-2871): Address a11y error */}\n <label>User input:</label>\n <NumberInput\n value={answer.value}\n className=\"numeric-input-value\"\n placeholder=\"answer\"\n format={_.last(answer.answerForms || [])}\n onFormatChange={(newValue, format) => {\n // NOTE(charlie): The mobile web expression\n // editor relies on this automatic answer\n // form resolution for determining when to\n // show the Pi symbol. If we get rid of it,\n // we should also disable Pi for\n // NumericInput and require problems that\n // use Pi to build on Expression.\n // Alternatively, we could store answers\n // as plaintext and parse them to determine\n // whether or not to reveal Pi on the\n // keypad (right now, answers are stored as\n // resolved values, like '0.125' rather\n // than '1/8').\n let forms;\n if (format === \"pi\") {\n forms = [\"pi\"];\n } else if (format === \"mixed\") {\n forms = [\"proper\", \"mixed\"];\n } else if (\n format === \"proper\" ||\n format === \"improper\"\n ) {\n forms = [\"proper\", \"improper\"];\n }\n this.updateAnswer(i, {\n value: firstNumericalParse(\n newValue,\n this.context.strings,\n ),\n answerForms: forms,\n });\n }}\n onChange={(newValue) => {\n this.updateAnswer(i, {\n value: firstNumericalParse(\n newValue,\n this.context.strings,\n ),\n });\n }}\n />\n <span className=\"max-error-plusmn\">\n &plusmn;\n </span>\n <NumberInput\n className=\"max-error-input-value\"\n placeholder={0}\n value={answers[i][\"maxError\"]}\n format={_.last(answer.answerForms || [])}\n onChange={this.updateAnswer(i, \"maxError\")}\n />\n </div>\n <fieldset className=\"perseus-widget-row\">\n <legend className=\"inline-options\">\n Status:\n </legend>\n <RadioOption\n answerIndex={i}\n answerProperty=\"status\"\n value=\"correct\"\n onClick={() => {\n this.onEvaluationChange(i, \"correct\");\n }}\n >\n Correct\n </RadioOption>\n <RadioOption\n answerIndex={i}\n answerProperty=\"status\"\n value=\"wrong\"\n onClick={() => {\n this.onEvaluationChange(i, \"wrong\");\n }}\n >\n Wrong\n </RadioOption>\n <RadioOption\n answerIndex={i}\n answerProperty=\"status\"\n value=\"ungraded\"\n onClick={() => {\n this.onEvaluationChange(i, \"ungraded\");\n }}\n >\n Ungraded\n </RadioOption>\n </fieldset>\n {unsimplifiedAnswers(i)}\n <div className=\"perseus-widget-row\">\n (Articles only) Message shown to user:\n </div>\n {editor}\n {suggestedAnswerTypes(i)}\n <Button\n startIcon={trashIcon}\n aria-label={`Delete ${answerHeading}`}\n className=\"delete-item-button\"\n onClick={() => {\n this.onTrashAnswer(i);\n }}\n kind=\"tertiary\"\n >\n Delete\n </Button>\n </PerseusEditorAccordion>\n </div>\n );\n });\n\n return (\n <div className=\"perseus-input-number-editor\">\n <Heading\n title=\"General Settings\"\n isCollapsible={true}\n isOpen={this.state.showSettings}\n onToggle={this.onToggleHeading(\"Settings\")}\n />\n <div\n className={`perseus-editor-accordion-container ${this.state.showSettings ? \"expanded\" : \"collapsed\"}`}\n >\n <div className=\"perseus-editor-accordion-content\">\n {inputSize}\n {rightAlign}\n {coefficientCheck}\n {labelText}\n </div>\n </div>\n <Heading\n title=\"Answers\"\n isCollapsible={true}\n isOpen={this.state.showAnswers}\n onToggle={this.onToggleHeading(\"Answers\")}\n />\n <div\n className={`perseus-editor-accordion-container ${this.state.showAnswers ? \"expanded\" : \"collapsed\"}`}\n >\n <div className=\"perseus-editor-accordion-content\">\n {generateInputAnswerEditors()}\n <Button kind=\"tertiary\" onClick={this.addAnswer}>\n Add new answer\n </Button>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default NumericInputEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\n/* eslint-disable react/forbid-prop-types */\nimport {components} from \"@khanacademy/perseus\";\nimport {\n ordererLogic,\n type OrdererDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nconst {InfoTip, TextListEditor} = components;\n\nconst NORMAL = \"normal\";\nconst AUTO = \"auto\";\nconst HORIZONTAL = \"horizontal\";\nconst VERTICAL = \"vertical\";\n\ntype Props = any;\n\nclass OrdererEditor extends React.Component<Props> {\n static propTypes = {\n correctOptions: PropTypes.array,\n otherOptions: PropTypes.array,\n height: PropTypes.oneOf([NORMAL, AUTO]),\n layout: PropTypes.oneOf([HORIZONTAL, VERTICAL]),\n onChange: PropTypes.func.isRequired,\n };\n\n static widgetName = \"orderer\" as const;\n\n static defaultProps: OrdererDefaultWidgetOptions =\n ordererLogic.defaultWidgetOptions;\n\n onOptionsChange: (\n arg1: \"correctOptions\" | \"otherOptions\",\n arg2: any,\n arg3: any,\n ) => any = (whichOptions, options, cb) => {\n const props: Record<string, any> = {};\n props[whichOptions] = _.map(options, function (option) {\n return {content: option};\n });\n this.props.onChange(props, cb);\n };\n\n onLayoutChange: (arg1: React.ChangeEvent<HTMLInputElement>) => void = (\n e,\n ) => {\n this.props.onChange({layout: e.target.value});\n };\n\n onHeightChange: (arg1: React.ChangeEvent<HTMLInputElement>) => void = (\n e,\n ) => {\n this.props.onChange({height: e.target.value});\n };\n\n serialize: () => any = () => {\n // We combine the correct answer and the other cards by merging them,\n // removing duplicates and empty cards, and sorting them into\n // categories based on their content\n const options = _.chain(_.pluck(this.props.correctOptions, \"content\"))\n .union(_.pluck(this.props.otherOptions, \"content\"))\n .uniq()\n .reject(function (content) {\n return content === \"\";\n })\n .sort()\n .sortBy(function (content) {\n if (/\\d/.test(content)) {\n return 0;\n }\n if (/^\\$?[a-zA-Z]+\\$?$/.test(content)) {\n return 2;\n }\n return 1;\n })\n .map(function (content) {\n return {content: content};\n })\n .value();\n\n return {\n options: options,\n correctOptions: this.props.correctOptions,\n otherOptions: this.props.otherOptions,\n height: this.props.height,\n layout: this.props.layout,\n };\n };\n\n render(): React.ReactNode {\n return (\n <div className=\"perseus-widget-orderer\">\n <div>\n {\" \"}\n Correct answer:{\" \"}\n <InfoTip>\n <p>\n Place the cards in the correct order. The same card\n can be used more than once in the answer but will\n only be displayed once at the top of a stack of\n identical cards.\n </p>\n </InfoTip>\n </div>\n <TextListEditor\n options={_.pluck(this.props.correctOptions, \"content\")}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.onOptionsChange.bind(this, \"correctOptions\")}\n layout={this.props.layout}\n />\n\n <div>\n {\" \"}\n Other cards:{\" \"}\n <InfoTip>\n <p>Create cards that are not part of the answer.</p>\n </InfoTip>\n </div>\n <TextListEditor\n options={_.pluck(this.props.otherOptions, \"content\")}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={this.onOptionsChange.bind(this, \"otherOptions\")}\n layout={this.props.layout}\n />\n\n <div>\n <label>\n {\" \"}\n Layout:{\" \"}\n <select\n value={this.props.layout}\n // @ts-expect-error - TS2322 - Type '(arg1: ChangeEvent<HTMLInputElement>) => void' is not assignable to type 'ChangeEventHandler<HTMLSelectElement>'.\n onChange={this.onLayoutChange}\n >\n <option value={HORIZONTAL}>Horizontal</option>\n <option value={VERTICAL}>Vertical</option>\n </select>\n </label>\n <InfoTip>\n <p>\n Use the horizontal layout for short text and small\n images. The vertical layout is best for longer text\n (e.g. proofs).\n </p>\n </InfoTip>\n </div>\n <div>\n <label>\n {\" \"}\n Height:{\" \"}\n <select\n value={this.props.height}\n // @ts-expect-error - TS2322 - Type '(arg1: ChangeEvent<HTMLInputElement>) => void' is not assignable to type 'ChangeEventHandler<HTMLSelectElement>'.\n onChange={this.onHeightChange}\n >\n <option value={NORMAL}>Normal</option>\n <option value={AUTO}>Automatic</option>\n </select>\n </label>\n <InfoTip>\n <p>\n Use &quot;Normal&quot; for text,\n &quot;Automatic&quot; for images.\n </p>\n </InfoTip>\n </div>\n </div>\n );\n }\n}\n\nexport default OrdererEditor;\n","import {components, Changeable, EditorJsonify} from \"@khanacademy/perseus\";\nimport {passageLogic} from \"@khanacademy/perseus-core\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport Editor from \"../editor\";\n\nimport type {PassageDefaultWidgetOptions} from \"@khanacademy/perseus-core\";\n\nconst {InfoTip} = components;\n\ntype Props = any;\n\nclass PassageEditor extends React.Component<Props> {\n static propTypes = {\n ...Changeable.propTypes,\n passageTitle: PropTypes.string,\n passageText: PropTypes.string,\n footnotes: PropTypes.string,\n showLineNumbers: PropTypes.bool,\n };\n\n static widgetName = \"passage\" as const;\n\n static defaultProps: PassageDefaultWidgetOptions =\n passageLogic.defaultWidgetOptions;\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n const passageEditor = (\n <Editor\n // eslint-disable-next-line react/no-string-refs\n ref=\"passage-editor\"\n apiOptions={this.props.apiOptions}\n content={this.props.passageText}\n widgetEnabled={false}\n placeholder=\"Type passage here...\"\n onChange={(newProps) => {\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({passageText: newProps.content});\n }}\n showWordCount={true}\n />\n );\n const footnotesEditor = (\n <Editor\n // eslint-disable-next-line react/no-string-refs\n ref=\"passage-footnotes-editor\"\n apiOptions={this.props.apiOptions}\n content={this.props.footnotes}\n widgetEnabled={false}\n placeholder=\"Type footnotes here...\"\n onChange={(newProps) => {\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({footnotes: newProps.content});\n }}\n />\n );\n return (\n <div className=\"perseus-widget-passage-editor\">\n <div className=\"perseus-widget-row\">\n <Checkbox\n label=\"Show line numbers\"\n checked={this.props.showLineNumbers}\n onChange={(value) => {\n this.props.onChange({showLineNumbers: value});\n }}\n />\n </div>\n <div>\n Passage title:\n <InfoTip>\n <p>\n An optional title that will appear directly above\n the passage in the same font style. (E.g. Passage 1)\n </p>\n </InfoTip>\n <div>\n <input\n type=\"text\"\n defaultValue={this.props.passageTitle}\n onChange={(e) => {\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({passageTitle: e.target.value});\n }}\n />\n </div>\n </div>\n <div>\n Passage Text:\n {passageEditor}\n </div>\n <div>\n Footnotes:\n <InfoTip>\n <p>\n To add footnotes, add ^ characters where they belong\n in the passage. Then, add ^ in the footnotes area to\n reference the footnotes in the passage.\n </p>\n </InfoTip>\n {footnotesEditor}\n </div>\n </div>\n );\n }\n}\n\nexport default PassageEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\nimport {components, Changeable, EditorJsonify} from \"@khanacademy/perseus\";\nimport {passageRefLogic} from \"@khanacademy/perseus-core\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\n\nimport type {PassageRefDefaultWidgetOptions} from \"@khanacademy/perseus-core\";\n\nconst {InfoTip, NumberInput, TextInput} = components;\n\ntype Props = any;\n\nclass PassageRefEditor extends React.Component<Props> {\n static propTypes: Props = {\n ...Changeable.propTypes,\n passageNumber: PropTypes.number,\n referenceNumber: PropTypes.number,\n summaryText: PropTypes.string,\n };\n\n static widgetName = \"passage-ref\" as const;\n\n static defaultProps: PassageRefDefaultWidgetOptions =\n passageRefLogic.defaultWidgetOptions;\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n return (\n <div>\n <div>\n <label>\n {\"Passage Number: \"}\n <NumberInput\n value={this.props.passageNumber}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"passageNumber\")}\n />\n </label>\n </div>\n <div>\n <label>\n {\"Reference Number: \"}\n <NumberInput\n value={this.props.referenceNumber}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"referenceNumber\")}\n />\n </label>\n </div>\n <div>\n <label>\n {\"Summary Text: \"}\n <TextInput\n value={this.props.summaryText}\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n onChange={this.change(\"summaryText\")}\n />\n <InfoTip>\n <p>\n Short summary of the referenced section. This\n will be included in parentheses and quotes\n automatically.\n </p>\n <p>Ex: The start ... the end</p>\n </InfoTip>\n </label>\n </div>\n </div>\n );\n }\n}\n\nexport default PassageRefEditor;\n","import {Changeable, EditorJsonify} from \"@khanacademy/perseus\";\nimport {\n passageRefTargetLogic,\n type PassageRefTargetDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\ntype Props = any;\n\nclass PassageRefTargetEditor extends React.Component<Props> {\n static propTypes = {\n ...Changeable.propTypes,\n content: PropTypes.string,\n };\n\n static widgetName = \"passage-ref-target\" as const;\n\n static defaultProps: PassageRefTargetDefaultWidgetOptions =\n passageRefTargetLogic.defaultWidgetOptions;\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n handleContentChange: (arg1: React.ChangeEvent<HTMLInputElement>) => void = (\n e,\n ) => {\n // @ts-expect-error - TS2554 - Expected 3 arguments, but got 1.\n this.change({content: e.target.value});\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n return (\n <div>\n Content:\n <input\n type=\"text\"\n value={this.props.content}\n onChange={this.handleContentChange}\n />\n </div>\n );\n }\n}\n\nexport default PassageRefTargetEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\nimport {makeSafeUrl} from \"@khanacademy/perseus\";\nimport {\n phetSimulationLogic,\n type PerseusPhetSimulationWidgetOptions,\n type PhetSimulationDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\nimport {LabeledTextField} from \"@khanacademy/wonder-blocks-form\";\nimport {spacing} from \"@khanacademy/wonder-blocks-tokens\";\nimport * as React from \"react\";\n\ntype Props = PhetSimulationDefaultWidgetOptions & {\n onChange: (arg1: {\n url?: Props[\"url\"];\n description?: Props[\"description\"];\n }) => void;\n};\n\nclass PhetSimulationEditor extends React.Component<Props> {\n static defaultProps: PhetSimulationDefaultWidgetOptions =\n phetSimulationLogic.defaultWidgetOptions;\n\n static widgetName = \"phet-simulation\" as const;\n\n serialize(): PerseusPhetSimulationWidgetOptions {\n return {\n url: this.props.url,\n description: this.props.description,\n };\n }\n\n getSaveWarnings: () => ReadonlyArray<string> = () => {\n if (makeSafeUrl(this.props.url, \"en\") === null) {\n return [\"Please enter a URL from the PhET domain.\"];\n }\n return [];\n };\n\n render(): React.ReactNode {\n return (\n <div>\n <LabeledTextField\n label={\"URL\"}\n value={this.props.url}\n onChange={(url: string) => this.props.onChange({url})}\n style={{\n marginBottom: spacing.large_24,\n }}\n />\n <LabeledTextField\n label={\"Description\"}\n value={this.props.description}\n onChange={(description: string) =>\n this.props.onChange({description})\n }\n />\n </div>\n );\n }\n}\n\nexport default PhetSimulationEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\n/* eslint-disable react/no-unsafe */\nimport {number as knumber} from \"@khanacademy/kmath\";\nimport {components, PlotterWidget, Util} from \"@khanacademy/perseus\";\nimport {plotterLogic, plotterPlotTypes} from \"@khanacademy/perseus-core\";\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport _ from \"underscore\";\n\nimport BlurInput from \"../components/blur-input\";\n\nimport type {APIOptions} from \"@khanacademy/perseus\";\nimport type {\n PerseusPlotterWidgetOptions,\n PlotterDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\n\nconst {InfoTip, NumberInput, RangeInput, TextListEditor} = components;\nconst Plotter = PlotterWidget.widget;\n\nconst STARTING = \"starting\";\nconst CORRECT = \"correct\";\n\nconst editingStates = [STARTING, CORRECT];\ntype EditingState = (typeof editingStates)[number];\n\n// Return a copy of array with length n, padded with given value\nfunction padArray(array: any, n, value: any) {\n const copy = _.clone(array);\n copy.length = n;\n for (let i = array.length; i < n; i++) {\n copy[i] = value;\n }\n return copy;\n}\n\nconst editorDefaults = {\n scaleY: 1,\n maxY: 10,\n snapsPerLine: 2,\n} as const;\n\ntype Props = {\n apiOptions: APIOptions;\n type: PerseusPlotterWidgetOptions[\"type\"];\n labels: Array<string>;\n categories: ReadonlyArray<string | number>;\n scaleY: number;\n maxY: number;\n snapsPerLine: number;\n picSize: number;\n picBoxHeight: number;\n picUrl: string;\n plotDimensions: ReadonlyArray<number>;\n labelInterval: number;\n starting: ReadonlyArray<number>;\n correct: ReadonlyArray<number>;\n static: boolean;\n onChange: any;\n};\n\ntype State = {\n editing: EditingState;\n pic: any;\n loadedUrl: string | null;\n minX: number | null;\n maxX: number | null;\n tickStep: number | null;\n};\n\nconst formatNumber = (num) => \"$\" + knumber.round(num, 2) + \"$\";\n\nclass PlotterEditor extends React.Component<Props, State> {\n static widgetName = \"plotter\" as const;\n\n static defaultProps: PlotterDefaultWidgetOptions =\n plotterLogic.defaultWidgetOptions;\n\n state: State = {\n editing: this.props.static ? STARTING : CORRECT,\n pic: null,\n loadedUrl: null,\n minX: null,\n maxX: null,\n tickStep: null,\n };\n\n // TODO(jangmi, CP-3288): Remove usage of `UNSAFE_componentWillMount`\n UNSAFE_componentWillMount() {\n this.fetchPic(this.props.picUrl);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: any) {\n this.fetchPic(nextProps.picUrl);\n\n if (nextProps.static) {\n this.setState({\n editing: \"starting\",\n });\n }\n }\n\n fetchPic: (arg1: string) => any = (url) => {\n if (this.state.loadedUrl !== url) {\n const pic = new Image();\n pic.src = url;\n pic.onload = () => {\n this.setState({\n pic: pic,\n loadedUrl: url,\n });\n };\n }\n };\n\n handleChangeTickStep: (arg1: number) => void = (value) => {\n this.setState({\n tickStep: value,\n });\n };\n\n handleChangeRange: (arg1: [number, number]) => void = (newValue) => {\n this.setState({\n minX: newValue[0],\n maxX: newValue[1],\n });\n };\n\n changeLabelInterval: (arg1: number) => void = (value) => {\n this.props.onChange({\n labelInterval: value,\n });\n };\n\n handlePlotterChange: (arg1: any) => void = (newProps) => {\n const props: Record<string, any> = {};\n props[this.state.editing] = newProps.values;\n this.props.onChange(props);\n };\n\n changeType: (arg1: any) => void = (type) => {\n let categories;\n if (type === \"histogram\") {\n // Switching to histogram, add a label (0) to the left\n // @ts-expect-error - TS2769\n categories = [formatNumber(0)].concat(this.props.categories);\n this.props.onChange({type: type, categories: categories});\n } else if (this.props.type === \"histogram\") {\n // Switching from histogram, remove a label from the left\n categories = this.props.categories.slice(1);\n this.props.onChange({type: type, categories: categories});\n } else {\n this.props.onChange({type: type});\n }\n\n if (categories) {\n // eslint-disable-next-line react/no-string-refs\n const node = ReactDOM.findDOMNode(this.refs.categories);\n // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.\n node.value = categories.join(\", \");\n }\n };\n\n changeLabel: (arg1: number, arg2: any) => void = (i, e) => {\n const labels = _.clone(this.props.labels);\n labels[i] = e.target.value;\n this.props.onChange({labels: labels});\n };\n\n changePicUrl: (arg1: string) => void = (value) => {\n // We don't need the labels and other data in the plotter, so just\n // extract the raw image and use that.\n // TODO(emily): Maybe indicate that such a change has happened?\n const url = Util.getRealImageUrl(value);\n\n this.props.onChange({picUrl: url});\n };\n\n changeCategories: (arg1: any) => void = (categories) => {\n let n = categories.length;\n if (this.props.type === \"histogram\") {\n // Histograms with n labels/categories have n - 1 buckets\n n--;\n }\n const value = this.props.scaleY;\n\n this.props.onChange({\n categories: categories,\n correct: padArray(this.props.correct, n, value),\n starting: padArray(this.props.starting, n, value),\n });\n };\n\n changeScale: (arg1: any) => void = (e) => {\n const oldScale = this.props.scaleY;\n const newScale = +e.target.value || editorDefaults.scaleY;\n\n const scale = function (value: any) {\n return (value * newScale) / oldScale;\n };\n\n const maxY = scale(this.props.maxY);\n\n this.props.onChange({\n scaleY: newScale,\n maxY: maxY,\n correct: _.map(this.props.correct, scale),\n starting: _.map(this.props.starting, scale),\n });\n\n // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.\n ReactDOM.findDOMNode(this.refs.maxY).value = maxY; // eslint-disable-line react/no-string-refs\n };\n\n changeMax: (arg1: any) => void = (e) => {\n this.props.onChange({\n maxY: +e.target.value || editorDefaults.maxY,\n });\n };\n\n changeSnaps: (arg1: any) => void = (e) => {\n this.props.onChange({\n snapsPerLine: +e.target.value || editorDefaults.snapsPerLine,\n });\n };\n\n changeEditing: (arg1: EditingState) => void = (editing) => {\n this.setState({editing: editing});\n };\n\n setCategoriesFromScale: () => void = () => {\n const scale = this.state.tickStep || 1;\n const min = this.state.minX || 0;\n const max = this.state.maxX || 0;\n const length = Math.floor((max - min) / scale) * scale;\n\n let categories;\n if (this.props.type === \"histogram\" || this.props.type === \"dotplot\") {\n // Ranges for histogram and dotplot labels should start at zero\n categories = _.range(0, length + scale, scale);\n } else {\n categories = _.range(scale, length + scale, scale);\n }\n\n categories = _.map(categories, (num) => num + min);\n categories = _.map(categories, formatNumber);\n\n this.changeCategories(categories);\n\n // eslint-disable-next-line react/no-string-refs\n const node = ReactDOM.findDOMNode(this.refs.categories);\n\n // @ts-expect-error - TS2531 - Object is possibly 'null'. | TS2339 - Property 'value' does not exist on type 'Element | Text'.\n node.value = categories.join(\", \");\n };\n\n serialize: () => any = () => {\n const json = _.pick(\n this.props,\n \"correct\",\n \"starting\",\n \"type\",\n \"labels\",\n \"categories\",\n \"scaleY\",\n \"maxY\",\n \"snapsPerLine\",\n \"labelInterval\",\n );\n\n if (this.props.type === \"pic\") {\n // @ts-expect-error - TS2339 - Property 'picUrl' does not exist on type 'Pick<Readonly<any> & Readonly<{ children?: ReactNode; }>, \"type\" | \"correct\" | \"labels\" | \"categories\" | \"starting\" | \"scaleY\" | \"maxY\" | \"snapsPerLine\" | \"labelInterval\">'.\n json.picUrl = this.props.picUrl;\n }\n\n return json;\n };\n\n render(): React.ReactNode {\n const setFromScale = _.contains(\n [\"line\", \"histogram\", \"dotplot\"],\n this.props.type,\n );\n const canChangeSnaps = !_.contains([\"pic\", \"dotplot\"], this.props.type);\n const props = {\n trackInteraction: () => {},\n ...this.props,\n } as const;\n\n return (\n <div className=\"perseus-widget-plotter-editor\">\n <div>\n Chart type:{\" \"}\n {plotterPlotTypes.map((type) => {\n return (\n <label key={type}>\n <input\n type=\"radio\"\n name=\"chart-type\"\n checked={this.props.type === type}\n onChange={_.partial(this.changeType, type)}\n />\n {type}\n </label>\n );\n }, this)}\n </div>\n <div>\n Labels:{\" \"}\n {[\"x\", \"y\"].map((axis, i) => {\n return (\n <label key={axis}>\n {axis + \":\"}\n <input\n type=\"text\"\n onChange={_.partial(this.changeLabel, i)}\n defaultValue={this.props.labels[i]}\n />\n </label>\n );\n }, this)}\n </div>\n\n {setFromScale && (\n <div className=\"set-from-scale-box\">\n <span className=\"categories-title\">\n Set Categories From Scale\n </span>\n <div>\n <label>\n Tick Step:{\" \"}\n <NumberInput\n placeholder={1}\n useArrowKeys={true}\n value={this.state.tickStep}\n onChange={this.handleChangeTickStep}\n />\n </label>\n <InfoTip>\n <p>The difference between adjacent ticks.</p>\n </InfoTip>\n </div>\n <div>\n <label>\n Range:{\" \"}\n <RangeInput\n placeholder={[0, 10]}\n useArrowKeys={true}\n value={[this.state.minX, this.state.maxX]}\n onChange={this.handleChangeRange}\n />\n </label>\n </div>\n <div>\n <button onClick={this.setCategoriesFromScale}>\n Set Categories{\" \"}\n </button>\n </div>\n </div>\n )}\n <div>\n <label>\n Label Interval:{\" \"}\n <NumberInput\n useArrowKeys={true}\n value={this.props.labelInterval}\n onChange={this.changeLabelInterval}\n />\n </label>\n <InfoTip>\n <p>\n Which ticks to display the labels for. For instance,\n setting this to &quot;4&quot; will only show every\n 4th label (plus the last one)\n </p>\n </InfoTip>\n </div>\n {this.props.type === \"pic\" && (\n <div>\n <label>\n Picture:{\" \"}\n <BlurInput\n className=\"pic-url\"\n value={this.props.picUrl}\n onChange={this.changePicUrl}\n />\n <InfoTip>\n <p>\n Use the default picture of Earth, or insert\n the URL for a different picture using the\n &quot;Add image&quot; function.\n </p>\n </InfoTip>\n </label>\n {this.state.pic &&\n this.state.pic.width !== this.state.pic.height && (\n <p className=\"warning\">\n <b>Warning</b>: You are using a picture\n which is not square. This means the image\n will get distorted. You should probably crop\n it to be square.\n </p>\n )}\n </div>\n )}\n <div>\n <label>\n Categories:{\" \"}\n <TextListEditor\n // eslint-disable-next-line react/no-string-refs\n ref=\"categories\"\n layout=\"horizontal\"\n options={this.props.categories}\n onChange={this.changeCategories}\n />\n </label>\n </div>\n <div>\n <label>\n Scale (y):{\" \"}\n <input\n type=\"text\"\n onChange={this.changeScale}\n defaultValue={this.props.scaleY}\n />\n </label>\n </div>\n <div>\n <label>\n Max y:{\" \"}\n <input\n type=\"text\"\n // eslint-disable-next-line react/no-string-refs\n ref=\"maxY\"\n onChange={this.changeMax}\n defaultValue={this.props.maxY}\n />\n </label>\n </div>\n {canChangeSnaps && (\n <div>\n <label>\n Snaps per line:{\" \"}\n <input\n type=\"text\"\n onChange={this.changeSnaps}\n defaultValue={this.props.snapsPerLine}\n />\n </label>\n <InfoTip>\n <p>\n Creates the specified number of divisions\n between the horizontal lines. Fewer snaps\n between lines makes the graph easier for the\n student to create correctly.\n </p>\n </InfoTip>\n </div>\n )}\n <div>\n Editing values:{\" \"}\n {editingStates.map((editing) => (\n <label key={editing}>\n <input\n type=\"radio\"\n disabled={\n editing === CORRECT && this.props.static\n }\n checked={\n this.props.static\n ? editing === STARTING\n : this.state.editing === editing\n }\n onChange={(e) => this.changeEditing(editing)}\n />\n {editing}\n </label>\n ))}\n <InfoTip>\n <p>\n Use this toggle to switch between editing the\n correct answer (what the student will be graded on)\n and the starting values (what the student will see\n plotted when they start the problem). Note: These\n cannot be the same.\n </p>\n <p>\n In static mode, the starting values are rendered out\n to the displayed widget.\n </p>\n </InfoTip>\n </div>\n {/* @ts-expect-error - TS2769 */}\n <Plotter\n {...props}\n starting={this.props[this.state.editing]}\n onChange={this.handlePlotterChange}\n />\n </div>\n );\n }\n}\n\nexport default PlotterEditor;\n","/**\n * This editor is for embedding Khan Academy Python programs.\n */\nimport {components, Changeable} from \"@khanacademy/perseus\";\nimport {pythonProgramLogic} from \"@khanacademy/perseus-core\";\nimport * as React from \"react\";\n\nimport type {\n PerseusPythonProgramWidgetOptions,\n PythonProgramDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\n\nconst {NumberInput, TextInput} = components;\n\ntype Props = Changeable.ChangeableProps & {\n programID: string;\n height: number;\n};\n\nexport function validateOptions(\n height: Props[\"height\"],\n programID: Props[\"programID\"],\n): ReadonlyArray<string> {\n const errors: Array<string> = [];\n\n if (programID === \"\") {\n errors.push(\"The program ID is required.\");\n }\n\n if (!Number.isInteger(height) || height < 1) {\n errors.push(\"The height must be a positive integer.\");\n }\n\n return errors;\n}\n\n/**\n * This is the main editor for this widget, to specify all the options.\n */\nclass PythonProgramEditor extends React.Component<Props> {\n static widgetName = \"python-program\" as const;\n\n static defaultProps: PythonProgramDefaultWidgetOptions =\n pythonProgramLogic.defaultWidgetOptions;\n\n change: (...args: ReadonlyArray<unknown>) => any = (...args) => {\n // @ts-expect-error - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.\n return Changeable.change.apply(this, args);\n };\n\n serialize(): PerseusPythonProgramWidgetOptions {\n return {\n programID: this.props.programID,\n height: this.props.height,\n };\n }\n\n getSaveWarnings: () => ReadonlyArray<string> = () => {\n return validateOptions(this.props.height, this.props.programID);\n };\n\n render(): React.ReactNode {\n return (\n <div>\n <label>\n User Program ID:{\" \"}\n <TextInput\n value={this.props.programID}\n onChange={this.change(\"programID\")}\n placeholder=\"123\"\n />\n </label>\n <br />\n <label>\n Height:{\" \"}\n <NumberInput\n value={this.props.height}\n onChange={this.change(\"height\")}\n placeholder=\"400\"\n />\n </label>\n </div>\n );\n }\n}\n\nexport default PythonProgramEditor;\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport {\n components,\n BaseRadio,\n Changeable,\n iconTrash,\n} from \"@khanacademy/perseus\";\nimport {radioLogic, deriveNumCorrect} from \"@khanacademy/perseus-core\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport Editor from \"../../editor\";\nimport {iconPlus} from \"../../styles/icon-paths\";\n\nimport type {APIOptions} from \"@khanacademy/perseus\";\nimport type {\n PerseusRadioWidgetOptions,\n PerseusRadioChoice,\n RadioDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\n\nconst {InlineIcon} = components;\n\ntype Contentful = {content?: string};\ntype ChoiceEditorProps = {\n apiOptions: APIOptions;\n choice: PerseusRadioChoice;\n showDelete: boolean;\n onClueChange: (newProps: Contentful) => void;\n onContentChange: (newProps: Contentful) => void;\n onDelete: () => void;\n};\n\nclass ChoiceEditor extends React.Component<ChoiceEditorProps> {\n render(): React.ReactNode {\n const checkedClass = this.props.choice.correct\n ? \"correct\"\n : \"incorrect\";\n let placeholder = \"Type a choice here...\";\n\n if (this.props.choice.isNoneOfTheAbove) {\n placeholder = this.props.choice.correct\n ? \"Type the answer to reveal to the user...\"\n : \"None of the above\";\n }\n\n const editor = (\n <Editor\n // eslint-disable-next-line react/no-string-refs\n ref=\"content-editor\"\n apiOptions={this.props.apiOptions}\n content={this.props.choice.content || \"\"}\n widgetEnabled={false}\n placeholder={placeholder}\n disabled={\n this.props.choice.isNoneOfTheAbove &&\n !this.props.choice.correct\n }\n onChange={this.props.onContentChange}\n />\n );\n\n const clueEditor = (\n <Editor\n // eslint-disable-next-line react/no-string-refs\n ref=\"clue-editor\"\n apiOptions={this.props.apiOptions}\n content={this.props.choice.clue || \"\"}\n widgetEnabled={false}\n placeholder={`Why is this choice ${checkedClass}?`}\n onChange={this.props.onClueChange}\n />\n );\n\n const deleteLink = (\n <a\n className=\"simple-button orange delete-choice\"\n href=\"#\"\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n this.props.onDelete();\n }}\n title=\"Remove this choice\"\n >\n <InlineIcon {...iconTrash} />\n </a>\n );\n\n return (\n <div className=\"choice-clue-editors\">\n <div className={`choice-editor ${checkedClass}`}>{editor}</div>\n <div className=\"clue-editor\">{clueEditor}</div>\n {this.props.showDelete && deleteLink}\n </div>\n );\n }\n}\n\ntype RadioEditorProps = {\n apiOptions: APIOptions;\n countChoices: boolean;\n choices: ReadonlyArray<PerseusRadioChoice>;\n displayCount: number;\n randomize: boolean;\n hasNoneOfTheAbove: boolean;\n multipleSelect: boolean;\n deselectEnabled: boolean;\n static: boolean;\n} & Changeable.ChangeableProps;\n\nclass RadioEditor extends React.Component<RadioEditorProps> {\n static widgetName = \"radio\" as const;\n\n static defaultProps: RadioDefaultWidgetOptions =\n radioLogic.defaultWidgetOptions;\n\n change: (...args: ReadonlyArray<unknown>) => any = (...args) => {\n // @ts-expect-error - TS2345 - Argument of type 'readonly unknown[]' is not assignable to parameter of type 'any[]'.\n return Changeable.change.apply(this, args);\n };\n\n onMultipleSelectChange: (arg1: any) => any = (allowMultiple) => {\n allowMultiple = allowMultiple.multipleSelect;\n\n const numCorrect = _.reduce(\n this.props.choices,\n function (memo, choice) {\n return choice.correct ? memo + 1 : memo;\n },\n 0,\n );\n\n if (!allowMultiple && numCorrect > 1) {\n const choices = _.map(this.props.choices, function (choice) {\n return _.defaults(\n {\n correct: false,\n },\n choice,\n );\n });\n this.props.onChange({\n multipleSelect: allowMultiple,\n choices: choices,\n });\n } else {\n this.props.onChange({\n multipleSelect: allowMultiple,\n });\n }\n };\n\n onCountChoicesChange: (arg1: any) => void = (count) => {\n count = count.countChoices;\n this.props.onChange({countChoices: count});\n };\n\n onChange: (arg1: any) => void = ({checked}) => {\n const choices = this.props.choices.map((choice, i) => {\n return {\n ...choice,\n correct: checked[i],\n content:\n choice.isNoneOfTheAbove && !checked[i]\n ? \"\"\n : choice.content,\n };\n });\n\n this.props.onChange({\n choices: choices,\n numCorrect: deriveNumCorrect({\n ...this.props,\n choices,\n // When deriving numCorrect, we don't want to pass the current value,\n // as it has changed.\n numCorrect: undefined,\n }),\n });\n };\n\n onContentChange: (arg1: any, arg2: any) => void = (\n choiceIndex,\n newContent,\n ) => {\n const choices = this.props.choices.slice();\n choices[choiceIndex] = _.extend({}, choices[choiceIndex], {\n content: newContent,\n });\n this.props.onChange({choices: choices});\n };\n\n onClueChange(choiceIndex: number, newClue: string): void {\n const choices = this.props.choices.slice();\n choices[choiceIndex] = _.extend({}, choices[choiceIndex], {\n clue: newClue,\n });\n if (newClue === \"\") {\n delete choices[choiceIndex].clue;\n }\n this.props.onChange({choices: choices});\n }\n\n onDelete: (arg1: number) => void = (choiceIndex) => {\n const choices = this.props.choices.slice();\n const deleted = choices[choiceIndex];\n\n choices.splice(choiceIndex, 1);\n\n this.props.onChange({\n choices: choices,\n hasNoneOfTheAbove:\n this.props.hasNoneOfTheAbove && !deleted.isNoneOfTheAbove,\n });\n };\n\n addChoice: (arg1: boolean, arg2: any) => void = (noneOfTheAbove, e) => {\n e.preventDefault();\n\n const choices = this.props.choices.slice();\n const newChoice: PerseusRadioChoice = {\n isNoneOfTheAbove: noneOfTheAbove,\n content: \"\",\n };\n const addIndex =\n choices.length - (this.props.hasNoneOfTheAbove ? 1 : 0);\n\n choices.splice(addIndex, 0, newChoice);\n\n this.props.onChange(\n {\n choices: choices,\n hasNoneOfTheAbove:\n noneOfTheAbove || this.props.hasNoneOfTheAbove,\n },\n () => {\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'refs' does not exist on type 'ReactInstance'.\n this.refs[`choice-editor${addIndex}`].refs[\n \"content-editor\"\n ].focus();\n },\n );\n };\n\n setDisplayCount: (arg1: number) => void = (num) => {\n this.props.onChange({displayCount: num});\n };\n\n focus: () => boolean = () => {\n // eslint-disable-next-line react/no-string-refs\n // @ts-expect-error - TS2339 - Property 'refs' does not exist on type 'ReactInstance'.\n this.refs[\"choice-editor0\"].refs[\"content-editor\"].focus();\n return true;\n };\n\n getSaveWarnings: () => ReadonlyArray<string> = () => {\n if (!_.some(_.pluck(this.props.choices, \"correct\"))) {\n return [\"No choice is marked as correct.\"];\n }\n return [];\n };\n\n serialize(): PerseusRadioWidgetOptions {\n const {\n choices,\n randomize,\n multipleSelect,\n countChoices,\n displayCount,\n hasNoneOfTheAbove,\n deselectEnabled,\n } = this.props;\n\n return {\n choices,\n randomize,\n multipleSelect,\n countChoices,\n displayCount,\n hasNoneOfTheAbove,\n deselectEnabled,\n numCorrect: deriveNumCorrect({\n ...this.props,\n // When deriving numCorrect, we don't want to pass the current value,\n // as it has changed.\n numCorrect: undefined,\n }),\n };\n }\n\n render(): React.ReactNode {\n const numCorrect = _.reduce(\n this.props.choices,\n function (memo, choice) {\n return choice.correct ? memo + 1 : memo;\n },\n 0,\n );\n return (\n <div>\n <div className=\"perseus-widget-row\">\n <a\n href={\n // This is an editor component, not user-facing.\n \"https://docs.google.com/document/d/1frZf7yrWVWb1n4tVjqlzqVUiv1pn4cZXbxgP62-JDBY/edit#heading=h.8ng1isya19nu\"\n }\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n Multiple choice style guide\n </a>\n <br />\n <div className=\"perseus-widget-left-col\">\n <Checkbox\n label=\"Multiple selections\"\n checked={this.props.multipleSelect}\n onChange={(value) => {\n this.onMultipleSelectChange({\n multipleSelect: value,\n });\n }}\n />\n </div>\n <div className=\"perseus-widget-right-col\">\n <Checkbox\n label=\"Randomize order\"\n checked={this.props.randomize}\n onChange={(value) => {\n this.props.onChange({randomize: value});\n }}\n />\n </div>\n {this.props.multipleSelect && (\n <div className=\"perseus-widget-left-col\">\n <Checkbox\n label=\"Specify number correct\"\n checked={this.props.countChoices}\n onChange={(value) => {\n this.onCountChoicesChange({\n countChoices: value,\n });\n }}\n />\n </div>\n )}\n </div>\n\n <BaseRadio\n multipleSelect={this.props.multipleSelect}\n countChoices={this.props.countChoices}\n numCorrect={numCorrect}\n editMode={true}\n labelWrap={false}\n apiOptions={this.props.apiOptions}\n reviewMode={false}\n choices={this.props.choices.map((choice, i) => {\n return {\n content: (\n <ChoiceEditor\n ref={`choice-editor${i}`}\n apiOptions={this.props.apiOptions}\n choice={choice}\n onContentChange={(newProps) => {\n if (newProps.content != null) {\n this.onContentChange(\n i,\n newProps.content,\n );\n }\n }}\n onClueChange={(newProps) => {\n if (newProps.content != null) {\n this.onClueChange(\n i,\n newProps.content,\n );\n }\n }}\n onDelete={() => this.onDelete(i)}\n showDelete={this.props.choices.length >= 2}\n />\n ),\n isNoneOfTheAbove: choice.isNoneOfTheAbove,\n checked: choice.correct,\n } as any;\n }, this)}\n onChange={this.onChange}\n />\n\n <div className=\"add-choice-container\">\n <a\n className=\"simple-button orange\"\n href=\"#\"\n // eslint-disable-next-line react/jsx-no-bind\n onClick={this.addChoice.bind(this, false)}\n >\n <InlineIcon {...iconPlus} /> Add a choice{\" \"}\n </a>\n\n {!this.props.hasNoneOfTheAbove && (\n <a\n className=\"simple-button\"\n href=\"#\"\n // eslint-disable-next-line react/jsx-no-bind\n onClick={this.addChoice.bind(this, true)}\n >\n <InlineIcon {...iconPlus} /> None of the above{\" \"}\n </a>\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default RadioEditor;\n","/* eslint-disable @khanacademy/ts-no-error-suppressions */\n/* eslint-disable react/forbid-prop-types */\nimport {components} from \"@khanacademy/perseus\";\nimport {\n sorterLogic,\n type SorterDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\nimport {Checkbox} from \"@khanacademy/wonder-blocks-form\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nconst {InfoTip, TextListEditor} = components;\n\nconst HORIZONTAL = \"horizontal\";\nconst VERTICAL = \"vertical\";\n\ntype Props = any;\n\nclass SorterEditor extends React.Component<Props> {\n static propTypes = {\n correct: PropTypes.array,\n layout: PropTypes.oneOf([HORIZONTAL, VERTICAL]),\n padding: PropTypes.bool,\n };\n\n static widgetName = \"sorter\" as const;\n\n static defaultProps: SorterDefaultWidgetOptions =\n sorterLogic.defaultWidgetOptions;\n\n onLayoutChange: (arg1: React.ChangeEvent<HTMLInputElement>) => void = (\n e,\n ) => {\n this.props.onChange({layout: e.target.value});\n };\n\n serialize: (arg1: any) => void = () => {\n return _.pick(this.props, \"correct\", \"layout\", \"padding\");\n };\n\n render(): React.ReactNode {\n const editor = this;\n\n return (\n <div>\n <div>\n {\" \"}\n Correct answer:{\" \"}\n <InfoTip>\n <p>\n Enter the correct answer (in the correct order)\n here. The preview on the right will have the cards\n in a randomized order, which is how the student will\n see them.\n </p>\n </InfoTip>\n </div>\n <TextListEditor\n options={this.props.correct}\n // eslint-disable-next-line react/jsx-no-bind\n onChange={function (options, cb) {\n editor.props.onChange({correct: options}, cb);\n }}\n layout={this.props.layout}\n />\n <div>\n <label>\n {\" \"}\n Layout:{\" \"}\n <select\n value={this.props.layout}\n // @ts-expect-error - TS2322 - Type '(arg1: ChangeEvent<HTMLInputElement>) => void' is not assignable to type 'ChangeEventHandler<HTMLSelectElement>'.\n onChange={this.onLayoutChange}\n >\n <option value={HORIZONTAL}>Horizontal</option>\n <option value={VERTICAL}>Vertical</option>\n </select>\n </label>\n <InfoTip>\n <p>\n Use the horizontal layout for short text and small\n images. The vertical layout is best for longer text\n and larger images.\n </p>\n </InfoTip>\n </div>\n <div>\n <Checkbox\n label=\"Padding:\"\n checked={this.props.padding}\n onChange={(value) => {\n this.props.onChange({padding: value});\n }}\n />\n <InfoTip>\n <p>\n Padding is good for text, but not needed for images.\n </p>\n </InfoTip>\n </div>\n </div>\n );\n }\n}\n\nexport default SorterEditor;\n","import {components, TableWidget, Util} from \"@khanacademy/perseus\";\nimport {\n tableLogic,\n type TableDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport Editor from \"../editor\";\n\nconst {InfoTip, NumberInput} = components;\nconst Table = TableWidget.widget;\n\ntype Props = any;\n\nclass TableEditor extends React.Component<Props> {\n static propTypes = {\n rows: PropTypes.number,\n columns: PropTypes.number,\n headers: PropTypes.arrayOf(PropTypes.string),\n answers: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n };\n\n static widgetName = \"table\" as const;\n\n static defaultProps: TableDefaultWidgetOptions =\n tableLogic.defaultWidgetOptions;\n\n numberOfColumns = React.createRef<components.NumberInput>();\n\n focus: () => void = () => {\n this.numberOfColumns.current?.focus();\n };\n\n onSizeInput: (arg1: number, arg2: number) => void = (\n numRawRows,\n numRawColumns,\n ) => {\n let rows = +numRawRows || 0;\n let columns = +numRawColumns || 0;\n rows = Math.min(Math.max(1, rows), 30);\n columns = Math.min(Math.max(1, columns), 6);\n const oldColumns = this.props.columns;\n const oldRows = this.props.rows;\n\n const answers = this.props.answers;\n // Truncate if necessary; else, append\n if (rows <= oldRows) {\n answers.length = rows;\n } else {\n _(rows - oldRows).times(function () {\n answers.push(Util.stringArrayOfSize(oldColumns));\n });\n }\n\n function fixColumnSizing(array: any) {\n // Truncate if necessary; else, append\n if (columns <= oldColumns) {\n array.length = columns;\n } else {\n _(columns - oldColumns).times(function () {\n array.push(\"\");\n });\n }\n }\n\n const headers = this.props.headers;\n fixColumnSizing(headers);\n _.each(answers, fixColumnSizing);\n\n this.props.onChange({\n rows: rows,\n columns: columns,\n answers: answers,\n headers: headers,\n });\n };\n\n serialize: () => any = () => {\n const json = _.pick(this.props, \"headers\", \"rows\", \"columns\");\n\n return _.extend({}, json, {\n answers: _.map(this.props.answers, _.clone),\n });\n };\n\n render(): React.ReactNode {\n return (\n <div>\n <div className=\"perseus-widget-row\">\n <label>\n Number of columns:{\" \"}\n <NumberInput\n ref={this.numberOfColumns}\n value={this.props.columns}\n onChange={(val) => {\n if (val) {\n this.onSizeInput(this.props.rows, val);\n }\n }}\n useArrowKeys={true}\n />\n </label>\n </div>\n <div className=\"perseus-widget-row\">\n <label>\n Number of rows:{\" \"}\n <NumberInput\n // eslint-disable-next-line react/no-string-refs\n ref=\"numberOfRows\"\n value={this.props.rows}\n onChange={(val) => {\n if (val) {\n this.onSizeInput(val, this.props.columns);\n }\n }}\n useArrowKeys={true}\n />\n </label>\n </div>\n <div>\n {\" \"}\n Table of answers:{\" \"}\n <InfoTip>\n <p>\n The student has to fill out all cells in the table.\n For partially filled tables create a table using the\n template, and insert text input boxes as desired.\n </p>\n </InfoTip>\n </div>\n <div>\n {/* @ts-expect-error - TS2769 - Type '{ headers: any; answers: any; onChange: any; apiOptions: any; editableHeaders: true; onFocus: () => void; onBlur: () => void; trackInteraction: () => void; Editor: typeof Editor; }' is missing the following properties from type 'Pick<Readonly<Props>, \"trackInteraction\" | \"onChange\" | \"Editor\" | \"widgetId\" | \"alignment\" | \"static\" | \"problemNum\" | \"keypadElement\" | \"questionCompleted\" | ... 5 more ... | \"containerSizeClass\">': widgetId, alignment, static, problemNum, and 4 more.*/}\n <Table\n headers={this.props.headers}\n answers={this.props.answers}\n onChange={this.props.onChange}\n apiOptions={this.props.apiOptions}\n editableHeaders={true}\n onFocus={() => {}}\n onBlur={() => {}}\n trackInteraction={() => {}}\n Editor={Editor}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default TableEditor;\n","import {components, Changeable, EditorJsonify} from \"@khanacademy/perseus\";\nimport {\n videoLogic,\n type VideoDefaultWidgetOptions,\n} from \"@khanacademy/perseus-core\";\nimport PropTypes from \"prop-types\";\nimport * as React from \"react\";\nimport _ from \"underscore\";\n\nimport BlurInput from \"../components/blur-input\";\n\nconst {InfoTip} = components;\n\nconst KA_VIDEO_URL = /khanacademy\\.org\\/.*\\/v\\/(.*)$/;\n\n/**\n * Turns Khan Academy URLs into the KA slugs, if possible. Any other URLs are\n * returned unchanged.\n */\nfunction getSlugFromUrl(url: string) {\n const match = KA_VIDEO_URL.exec(url);\n if (match) {\n return match[1];\n }\n return url;\n}\n\ntype Props = any;\n\n/**\n * This is the main editor for this widget, to specify all the options.\n */\nclass VideoEditor extends React.Component<Props> {\n static propTypes = {\n ...Changeable.propTypes,\n location: PropTypes.string,\n onChange: PropTypes.func,\n };\n\n static widgetName = \"video\" as const;\n\n static defaultProps: VideoDefaultWidgetOptions =\n videoLogic.defaultWidgetOptions;\n\n _handleUrlChange: (arg1: string) => void = (url) => {\n this.props.onChange({location: getSlugFromUrl(url)});\n };\n\n change: (arg1: any, arg2: any, arg3: any) => any = (...args) => {\n return Changeable.change.apply(this, args);\n };\n\n serialize: () => any = () => {\n return EditorJsonify.serialize.call(this);\n };\n\n render(): React.ReactNode {\n return (\n <div>\n <label>\n KA Video Slug:{\" \"}\n <BlurInput\n value={this.props.location}\n style={{width: 290}}\n onChange={this._handleUrlChange}\n />\n <InfoTip>\n KA video URLs will be converted to just the slug.\n </InfoTip>\n </label>\n </div>\n );\n }\n}\n\nexport default VideoEditor;\n","import CategorizerEditor from \"./widgets/categorizer-editor\";\nimport CSProgramEditor from \"./widgets/cs-program-editor\";\nimport DefinitionEditor from \"./widgets/definition-editor\";\nimport DeprecatedStandinEditor from \"./widgets/deprecated-standin-editor\";\nimport DropdownEditor from \"./widgets/dropdown-editor\";\nimport ExplanationEditor from \"./widgets/explanation-editor\";\nimport ExpressionEditor from \"./widgets/expression-editor\";\nimport GradedGroupEditor from \"./widgets/graded-group-editor\";\nimport GradedGroupSetEditor from \"./widgets/graded-group-set-editor\";\nimport GrapherEditor from \"./widgets/grapher-editor\";\nimport GroupEditor from \"./widgets/group-editor\";\nimport IframeEditor from \"./widgets/iframe-editor\";\nimport ImageEditor from \"./widgets/image-editor\";\nimport InputNumberEditor from \"./widgets/input-number-editor\";\nimport InteractionEditor from \"./widgets/interaction-editor\";\nimport InteractiveGraphEditor from \"./widgets/interactive-graph-editor/interactive-graph-editor\";\nimport LabelImageEditor from \"./widgets/label-image-editor\";\nimport MatcherEditor from \"./widgets/matcher-editor\";\nimport MatrixEditor from \"./widgets/matrix-editor\";\nimport MeasurerEditor from \"./widgets/measurer-editor\";\nimport MoleculeEditor from \"./widgets/molecule-editor\";\nimport NumberLineEditor from \"./widgets/number-line-editor\";\nimport NumericInputEditor from \"./widgets/numeric-input-editor\";\nimport OrdererEditor from \"./widgets/orderer-editor\";\nimport PassageEditor from \"./widgets/passage-editor\";\nimport PassageRefEditor from \"./widgets/passage-ref-editor\";\nimport PassageRefTargetEditor from \"./widgets/passage-ref-target-editor\";\nimport PhetSimulationEditor from \"./widgets/phet-simulation-editor\";\nimport PlotterEditor from \"./widgets/plotter-editor\";\nimport PythonProgramEditor from \"./widgets/python-program-editor\";\nimport RadioEditor from \"./widgets/radio/editor\";\nimport SorterEditor from \"./widgets/sorter-editor\";\nimport TableEditor from \"./widgets/table-editor\";\nimport VideoEditor from \"./widgets/video-editor\";\n\nexport default [\n CategorizerEditor,\n CSProgramEditor,\n DefinitionEditor,\n DropdownEditor,\n ExplanationEditor,\n ExpressionEditor,\n GradedGroupEditor,\n GradedGroupSetEditor,\n GrapherEditor,\n GroupEditor,\n IframeEditor,\n ImageEditor,\n InputNumberEditor,\n InteractionEditor,\n InteractiveGraphEditor,\n LabelImageEditor,\n MatcherEditor,\n MatrixEditor,\n MeasurerEditor,\n MoleculeEditor,\n NumberLineEditor,\n NumericInputEditor,\n OrdererEditor,\n PassageEditor,\n PassageRefEditor,\n PassageRefTargetEditor,\n PhetSimulationEditor,\n PlotterEditor,\n PythonProgramEditor,\n SorterEditor,\n TableEditor,\n VideoEditor,\n RadioEditor,\n DeprecatedStandinEditor,\n];\n","export {libVersion} from \"./version\";\n\nexport {default as ArticleEditor} from \"./article-editor\";\nexport {default as DeviceFramer} from \"./components/device-framer\";\nexport {default as ViewportResizer} from \"./components/viewport-resizer\";\nexport {default as ArticleDiff} from \"./diffs/article-diff\";\nexport {default as ItemDiff} from \"./diffs/item-diff\";\nexport {default as EditorPage} from \"./editor-page\";\nexport {default as Editor} from \"./editor\";\nexport {default as IframeContentRenderer} from \"./iframe-content-renderer\";\nexport {default as ContentPreview} from \"./content-preview\";\n\nimport \"./styles/perseus-editor.less\";\n\n// eslint-disable-next-line import/order\nimport {Widgets, widgets} from \"@khanacademy/perseus\";\nimport AllEditors from \"./all-editors\";\n\nWidgets.registerEditors(AllEditors);\nWidgets.registerWidgets(widgets);\n\nWidgets.replaceDeprecatedWidgets();\nWidgets.replaceDeprecatedEditors();\n\nexport {AllEditors, widgets};\n"],"names":["libName","libVersion","addLibraryVersionToPerseusDebug","devices","PHONE","TABLET","DESKTOP","lintGutterWidth","perseusFrameBorderWidth","SCREEN_SIZES","phone","width","height","framedWidth","tablet","desktop","DeviceFramer","children","deviceType","nochrome","scale","React","useMemo","withChromeStyle","backgroundColor","overflow","color","textAlign","border","margin","zoom","createElement","key","style","className","_extends","JsonEditor","Component","constructor","props","state","getInitialState","handleBlur","bind","handleChange","handleKeyDown","currentValue","JSON","stringify","value","valid","UNSAFE_componentWillReceiveProps","nextProps","shouldReplaceContent","_","isEqual","parse","setState","e","cursorPos","target","selectionStart","v","textBefore","substring","textAfter","length","selectionEnd","preventDefault","nextString","json","isString","onChange","_unused","_unused2","render","classes","onKeyDown","onBlur","displayName","defaultProps","InlineIcon","components","SectionControlButton","icon","onClick","title","Clickable","role","hideDefaultFocusRing","styles","button","hovered","focused","pressed","StyleSheet","create","gold","paddingRight","paddingLeft","paddingBottom","chemParse","tokens","stateMachine","str","expectedLoc","loc","start","i","text","tex","texify","go","mhchemParser","input","undefined","buffer","replace","lastInput","watchdog","output","machine","stateMachines","t","transitions","iterateTransitions","matches","patterns","match_","pattern","task","iA","action_","o","actions","type_","option","concatArray","nextState","revisit","remainder","toContinue","a","b","Array","isArray","iB","push","empty","else","else2","space","space$","x","x$","i$","letters","digits","m","match","splice","substr","findObserveGroups","_9","operator","arrowUpDown","CMT","orbital","others","oxidation$","amount","amount2","formula$","uprightEntities","begExcl","begIncl","endIncl","endExcl","beg2Excl","beg2Incl","end2Incl","end2Excl","combine","_match","indexOf","_findObserveGroups","endChars","braces","charAt","endMatchBegin","endMatchEnd","match1","group2","matchRet","join","mm","p","q","d","rm","text_","insert","p1","p2","copy","ret","bond","k","kind_","ce","n","createTransitions","stateArray","split","concat","patternArray","j","r","rd","dq","D","qd","as","tmp","dType","isAfterD","c1","c2","c3","c4","hyphenFollows","sb","comma","withSpace","entityFollows","rdt","rq","rqt","color1","color2","pq","f","bd","oxidation","pu","enumber","trim","md","mq","b5","cdot","mrm","reverse","isInner","res","cee","inputi","_go2","_goInner","buf","_getBond","c","b6","arrow","_getArrow","_getOperator","katex","__defineMacro","context","consumeArgs","DragTarget","dragHover","handleDrop","handleDragEnd","handleDragOver","handleDragLeave","handleDragEnter","stopPropagation","onDrop","shouldDragHighlight","opacity","_this$props","component","forwardProps","_objectWithoutPropertiesLoose","_excluded","Object","assign","onDragEnd","onDragOver","onDragEnter","onDragLeave","iconChevronRight","path","iconCircleArrowDown","iconCircleArrowUp","iconDesktop","iconMobilePhone","iconPlus","iconTablet","_upgradeWidgetInfo","filteredProps","omit","WIDGET_PROP_DENYLIST","upgradeWidgetInfoToLatestVersion","WidgetEditor","_props$widgetIsOpen","widget","_toggleWidget","showWidget","_handleWidgetChange","newProps","cb","silent","_this$widget$current$","_this$widget$current","newWidgetInfo","widgetInfo","options","current","serialize","_setStatic","static","_handleAlignmentChange","newAlignment","currentTarget","alignment","getSaveWarnings","_this$widget$current2","issuesFunc","type","graded","version","widgetIsOpen","createRef","Ed","Widgets","getEditor","supportedAlignments","apiOptions","showAlignmentOptions","CoreWidgetRegistry","getSupportedAlignments","supportsStaticMode","href","id","iconChevronDown","LabeledSwitch","label","checked","map","iconTrash","onRemove","ref","switchProps","useId","Fragment","htmlFor","Strut","size","spacing","xxSmall_6","Switch","WidgetSelect","args","widgetType","shouldComponentUpdate","widgets","getPublicWidgets","orderedWidgetNames","sortBy","keys","name","addWidgetString","disabled","ToggleableCaret","iconStyle","isExpanded","expanded","collapsed","PhosphorIcon","caretRight","transition","transform","TexErrorView","showErrors","handleToggleTexErrors","errorList","View","errorContainer","errorExplanation","index","error","math","message","fontSize","padding","cursor","display","flexDirection","alignItems","borderTop","widgetPlaceholder","widgetRegExp","rWidgetSplit","RegExp","shortcutRegexp","ENDS_WITH_A_PARAGRAPH","TRAILING_NEWLINES","LEADING_NEWLINES","commafyInteger","toString","makeEndWithAParagraphIfNecessary","content","test","exec","newlines","slice","makeStartWithAParagraphAlways","IMAGE_REGEX","allMatches","regex","result","imageUrlsFromContent","capture","Editor","lastUserValue","deferredChange","widgetIds","underlay","textarea","textAreaValue","_handleWidgetEditorChange","_handleWidgetEditorRemove","confirm","re","_sizeImages","imageUrls","images","pick","newImageUrls","filter","url","each","Util","getImageSize","clone","imageUploader","dataTransfer","files","imageUrl","getData","newContent","origContent","chain","file","sentinel","uniqueId","reject","isNull","tap","fileAndSentinel","clearTimeout","setTimeout","editorChangeDelay","_handleKeyDown","word","getWordBeforeCursor","string","toLowerCase","getAllWidgetTypes","matchingWidgets","_addWidgetToContent","pos","end","_maybeCopyWidgets","selectedText","widgetNames","syntax","rWidgetParts","widgetData","localStorage","perseusLastCopiedText","perseusLastCopiedWidgets","Log","log","_maybePasteWidgets","widgetJSON","lastCopiedText","textToBePasted","originalEvent","clipboardData","safeWidgetMapping","_safeWidgetNameMapping","safeWidgetData","data","entries","newWidgets","extend","safeText","completeWidget","expectedCursorPosition","moveCursor","widgetTypes","uniq","existingWidgets","safeWidgetNums","existingWidget","max","Math","widgetName","oldContent","cursorRange","_Widgets$getEditor","allWidgetIds","num","widgetNum","reduce","currentNum","otherId","otherType","otherNum","widgetContent","isBlock","getDefaultAlignment","prelude","postlude","newPrelude","newPostlude","getVersion","_addWidget","focus","addTemplate","templateType","template","snowman","PerseusError","Errors","InvalidInput","metadata","focusAndMoveToEnd","intersection","refs","warnings","issues","issue","flatten","keepDeletedWidgets","contains","componentDidMount","$","on","componentDidUpdate","prevProps","setSelectionRange","document","execCommand","componentWillUnmount","getWidgetEditor","pieces","underlayPieces","widgetsDropDown","templatesDropDown","widgetsAndTemplates","wordCountDisplay","katexErrorList","showWordCount","numChars","PerseusMarkdown","characterCount","numWords","floor","widgetEnabled","ast","traverseContent","node","preprocessTex","renderToString","colorIsTextColor","duplicate","insertTemplateString","immutableWidgets","widgetNodes","values","completeTextarea","placeholder","textareaWrapper","contentWithoutWidgets","noPrompt","noWidgets","warningStyle","warnNoPrompt","warnNoWidgets","nextIframeID","requestIframeData","updateIframeHeight","window","iframeDataStore","addEventListener","event","callback","lintWarnings","IframeContentRenderer","_frame","container","_isMounted","_lastData","_lastHeight","iframeID","_prepareFrame","sendNewData","seamless","datasetValue","_this$container$curre2","_this$container$curre","removeChild","frame","src","datasetKey","dataset","String","lintGutter","appendChild","contentWindow","postMessage","HUD","ArticleEditor","highlightLint","_handleJsonChange","newJson","_handleEditorChange","sections","_sections","_updatePreviewFrames","mode","section","_apiOptionsForSection","forEach","sectionIndex","editor","ApiOptions","defaults","isArticle","useNewStyles","linterContext","contentType","paths","contentPaths","legacyPerseusLint","_renderEditor","sectionImageUploadGenerator","float","_handleAddSectionAfter","_handleMoveSectionLater","_handleMoveSectionEarlier","msg","_handleRemoveSection","_renderIframePreview","_renderAddSection","_renderLinterHUD","enabled","isMobile","screen","previewURL","_renderPreviewMode","newSection","Internal","NotAllowed","multiLine","ButtonGroup","ViewportResizer","phoneButtonContents","tabletButtonContents","desktopButtonContents","allowEmpty","buttons","onViewportSizeChanged","clonePath","newPos","removeEmpty","array","escapeHTML","s","Diff","ignoreWhitespace","prototype","diff","oldString","newString","removed","added","tokenize","newLen","oldLen","maxEditLength","bestPath","oldPos","extractCommon","editLength","diagonalPath","basePath","addPath","removePath","canAdd","canRemove","pushComponent","last","equals","left","right","reWhitespace","CharDiff","WordDiff","WordWithSpaceDiff","CssDiff","LineDiff","retLines","lines","line","lastLine","JSDiff","diffChars","oldStr","newStr","diffWords","diffWordsWithSpace","diffLines","diffCss","createPatch","fileName","oldHeader","newHeader","pop","contextLines","entry","eofNL","curRange","isLast","isLastOfType","oldRangeStart","newRangeStart","oldLine","newLine","prev","apply","contextSize","min","applyPatch","uniDiff","diffstr","remEOFNL","addEOFNL","meh","unshift","oldlength","oldlines","newlength","convertChangesToXML","changes","change","convertChangesToDMP","splitDiff","diffEntries","currentLine","isNewline","newEntry","statusFor","chunk","splitUpChunk","status","mapcat","lst","fn","ArrayDiff","jsdiff","elem","flattenChunks","chunks","stringArrayDiff","diffResult","flattened","before","after","SvgImage","BEFORE","AFTER","imagesInString","classFor","ifAdded","ifRemoved","ImageDiffSide","classNames","image","propTypes","PropTypes","arrayOf","shape","isRequired","TextDiff","handleExpand","diffed","beforeImages","afterImages","renderedLines","contents","side","lineNum","changed","lineClass","UNCHANGED","CHANGED","ADDED","REMOVED","valueEntry","objectEntry","beforeKeys","isObject","afterKeys","union","performDiff","any","child","indentationFromDepth","depth","DiffSide","showKey","propKey","number","bool","oneOf","CollapsedRow","self","clear","func","DiffEntry","expand","propertyDeleted","propertyAdded","propertyChanged","hasChildren","leftClass","dark","rightClass","shownChildren","select","ImageWidgetDiff","beforeSrc","backgroundImage","afterSrc","objectOf","WidgetDiff","filterWidgetInfo","filteredWidgetInfo","_widgetInfo$static","RendererDiff","_before$widgets","_after$widgets","showSeparator","textDiff","widgetsDiff","beforeWidgets","includes","afterWidgets","_before$widgets2","_after$widgets2","_before$widgets$widge","_before$widgets3","_after$widgets$widget","_after$widgets3","rendererProps","ArticleDiff","_stateFromProps","sectionCount","times","oneOfType","itemProps","question","answerArea","hints","ItemDiff","hintCount","extras","InfoTip","HintEditor","_this$editor$current","_this$editor$current2","_this$editor$current3","showTitle","itemId","showMoveButtons","partial","onMove","isFirst","showRemoveButton","CombinedHintEditor","updatePreview","_this$frame$current","shouldBold","hint","bold","_this$editor$current4","_this$editor$current5","_this$editor$current6","CombinedHintsEditor","handleHintChange","serializeHint","handleHintRemove","handleHintMove","dir","addHint","hintElems","ItemExtrasEditor","ItemExtras","shouldShowFinancialCalculatorOptions","financialCalculatorMonthlyPayment","financialCalculatorTotalAmount","financialCalculatorTimeToPayOff","ItemExtraCheckbox","infoTip","calculator","newCheckedState","indent","periodicTable","periodicTableWithKey","zTable","tTable","chi2Table","checkbox","indented","Checkbox","marginInlineStart","large_24","ITEM_DATA_VERSION","itemDataVersion","ItemEditor","questionEditor","itemExtrasEditor","updateProps","triggerPreviewUpdate","newData","handleEditorChange","handleItemExtrasChange","_this$questionEditor$","_this$questionEditor$2","_this$itemExtrasEdito","EditorPage","_this$props$widgetsAr","renderer","itemEditor","hintsEditor","toggleJsonMode","jsonMode","toChange","changeJSON","gradeMessage","wasAnswered","widgetsAreOpen","updateRenderer","_this$itemEditor$curr","_this$itemEditor$curr2","hasEditor","developerMode","touch","previewDevice","deviceBasedApiOptions","getApiOptions","customKeypad","item","initialHintsVisible","device","reviewMode","_this$itemEditor$curr3","_this$hintsEditor$cur","issues1","issues2","_this$itemEditor$curr4","_this$hintsEditor$cur2","ClassNames","MOBILE","marginBottom","onPreviewDeviceChange","ContentPreview","i18n","usePerseusI18n","gutter","StatefulKeypadContextProvider","KeypadContext","Consumer","setKeypadActive","keypadElement","setKeypadElement","Renderer","strings","MobileKeypad","onAnalyticsEvent","Promise","resolve","onDismiss","onElementMounted","xxxSmall_4","containerType","containerName","marginRight","TextListEditor","Categorizer","CategorizerWidget","CategorizerEditor","_args","Changeable","EditorJsonify","call","randomizeItems","categories","cat","layout","items","first","trackInteraction","categorizerLogic","defaultWidgetOptions","BlurInput","_this$input$current","DEFAULT_WIDTH","DEFAULT_HEIGHT","PairEditor","PairsEditor","_args2","handlePairChange","pairIndex","pair","pairs","lastPair","editors","KA_PROGRAM_URL","isolateProgramID","programUrl","CSProgramEditor","_args3","_handleSettingsChange","settings","_handleProgramIDChange","programID","isDevServer","InitialRequestUrl","Dependencies","getDependencies","host","origin","baseUrl","getJSON","done","programInfo","programType","userAuthoredContentType","fail","jqxhr","textStatus","TransientService","cause","loggedMetadata","showEditor","showButtons","csProgramLogic","TextInput","DefinitionEditor","rel","togglePrompt","definition","has","definitionLogic","DeprecatedStandinEditor","DropdownEditor","onVisibleLabelChange","visibleLabel","onAriaLabelChange","ariaLabel","onPlaceholderChange","onCorrectChange","choiceIndex","choices","choice","correct","onContentChange","addChoice","blankChoice","removeChoice","ReactDOM","findDOMNode","dropdownGroupName","LabelLarge","LabelMedium","TextField","checkedClass","dropdownLogic","ExplanationEditor","showPrompt","hidePrompt","explanation","object","explanationLogic","obj","merge","arguments","source","prop","dispatch","arr","lens","ops","_wrapped","thaw","freeze","lensArr","_zoomStack","wrapped","get","deZoom","set","mod","newObj","monocle","shortLens","oldProps","del","val","newArr","SortableArea","_dragItems","dragging","onDragStart","_setDragEvents","startIndex","onReorder","enterIndex","newComponents","verified","verify","_listenEvent","setData","_cancelEvent","querySelectorAll","oldItems","newItems","dragItem","removeEventListener","sortables","SortableItem","area","draggable","handleDragStart","nativeEvent","effectAllowed","dragState","css","sortableListItem","buttonSetsList","parseAnswerKey","Number","parseInt","_makeNewKey","answerForms","usedKeys","ans","ExpressionEditor","hasCorrect","some","form","considered","ix","expression","KAS","functions","parsed","simplify","expr","isSimplified","_newEmptyAnswerForm","newKey","newAnswer","handleRemoveForm","updatedAnswerForms","handleReorder","handleButtonSet","changingName","buttonSetNames","buttonSets","handleToggleDiv","keep","remove","handleTexInsert","handleFunctions","functionsInternal","isTruthy","changeExpressionWidget","answerForm","updateAnswerForm","extraKeys","deriveExtraKeys","restProps","changeSimplify","changeForm","changeConsidered","changeTimes","answerOptions","expressionProps","buttonsVisible","widgetId","AnswerOption","onDelete","onChangeSimplify","onChangeForm","onChangeConsidered","sortable","buttonSetChoices","isBasic","HeadingSmall","paddedY","LabeledTextField","HeadingXSmall","Button","expressionLogic","findNextIn","deleteFocused","handleImSure","handleCancelDelete","handleDelete","toggleConsidered","newVal","PerseusExpressionAnswerFormConsidered","removeButton","small_12","light","answerStatusCss","answerStatus","answerStatusWrong","answerStatusCorrect","answerStatusUngraded","answerOption","answerHandle","answerBody","Expression","paddedX","buttonRow","xSmall_8","paddingTop","borderRadius","background","borderRight","minWidth","userSelect","fadedRed16","fadedGreen16","fadedBlue16","GradedGroupEditor","hintEditor","handleAddHint","_this$hintEditor$curr","handleRemoveHint","_this$hintEditor$curr2","marginTop","hintsTitle","gradedGroupLogic","fontWeight","GradedGroupSetEditor","_editors","gradedGroups","renderGroups","group","el","setArrayItem","addGroup","groups","UNSAFE_componentWillMount","gradedGroupSetLogic","list","RangeInput","defaultBackgroundImage","numSteps","range","step","GraphSettings","changeBackgroundUrl","changeGraph","changeGridStep","changeLabel","changeRange","changeRulerLabel","changeRulerTicks","changeSnapStep","changeStep","stateFromProps","debounce","labels","gridStep","snapStep","labelsTextbox","gridStepTextbox","snapStepTextbox","stepTextbox","rangeTextbox","rulerLabel","rulerTicks","setUrl","renderLabelChoices","validRange","numbers","every","isFinite","validateStepValue","minTicks","maxTicks","nSteps","validSnapStep","validGridStep","validStep","validBackgroundImageSize","validSize","validateGraphSettings","goodRange","goodStep","goodGridStep","goodSnapStep","goodImageSize","ranges","scaleFromExtent","box","tickStepFromExtent","gridStepFromTickStep","validationResult","KhanMath","roundTo","TeX","editableSettings","vals","markings","showTooltips","onKeyPress","showRuler","showProtractor","interactiveSizes","defaultBoxSizeSmall","MultiButtonGroup","Grapher","GrapherWidget","chooseType","defaultPlotProps","getEquationString","typeToButton","GrapherUtil","GrapherEditor","handleAvailableTypesChange","newAvailableTypes","graph","newType","availableTypes","sizeClass","containerSizeClass","SMALL","equationString","graphProps","plot","_newProps$plot","getInteractiveBoxFromSizeClass","CoreGrapherUtil","allTypes","grapherLogic","GroupEditor","groupLogic","IframeEditor","handleSettingsChange","allowFullScreen","allowTopNavigation","iframeLogic","INTERNALLY_HOSTED_DOMAINS","INTERNALLY_HOSTED_URL_RE","captionAlignments","ImageEditor","backgroundImageError","_renderRowForLabel","coordinates","onCoordinateChange","verticalAlign","onAlignmentChange","removeLabel","labelIndex","newCoordinates","onUrlChange","getImageSizeModern","onRangeChange","newRange","imageSettings","isLabeledSVG","alt","caption","backgroundImageErrorText","imageLogic","InputNumberEditor","handleAnswerChange","firstNumericalParse","inexact","maxError","answerType","rightAlign","answerTypeOptions","inputNumberAnswerTypes","visibility","defaultValue","contextType","PerseusI18nContext","inputNumberLogic","ElementContainer","toggle","show","initiallyVisible","onUp","onDown","COLORS","KhanColors","BLACK","BLUE","GREEN","PINK","PURPLE","RED","GRAY","LIGHT_COLORS","LIGHT_BLUE","LIGHT_ORANGE","LIGHT_PINK","LIGHT_GREEN","LIGHT_PURPLE","LIGHT_RED","ColorPicker","colors","lightColors","DashPicker","MathquillInput","mathFieldWrapperRef","useRef","mathFieldInstance","locale","useMathInputI18n","useEffect","createMathField","baseConfig","handlers","edit","mathField","latex","upOutOf","typedText","outerWrapper","borderStyle","borderWidth","borderColor","offBlack50","white","NumberInput","FunctionEditor","funcName","rangeMin","rangeMax","strokeDasharray","strokeWidth","LabelEditor","coordX","coordY","ArrowPicker","LineEditor","startX","startY","endX","endY","arrows","ConstraintEditor","propName","constraint","snap","constraintFn","constraintXMin","constraintXMax","constraintYMin","constraintYMax","MovableLineEditor","startSubscript","endSubscript","MovablePointEditor","varSubscript","ParametricEditor","y","PointEditor","RectangleEditor","unescapeMathMode","InteractionEditor","usedVarSubscripts","_getAllVarSubscripts","elements","usedFunctionNames","_getAllFunctionNames","_updateGraphProps","tickStep","_addNewElement","elementType","newElement","random","nextSubscript","nextLetter","fromCharCode","charCodeAt","_deleteElement","element","without","_moveElementUp","newElements","_moveElementDown","where","interactionLogic","UNLIMITED","parsePointCount","points","isNaN","GraphPointsCountSelector","numPoints","SingleSelect","selectedValue","newValue","singleSelectShort","OptionItem","GraphTypeSelector","graphType","Heading","isOpen","isCollapsible","onToggle","notClickable","heading","marginInline","offBlack8","justifyContent","InteractiveGraphCorrectAnswer","LabelXSmall","offBlack64","BodyMonospace","paddingInline","InteractiveGraphDescription","ariaLabelValue","ariaDescriptionValue","setIsOpen","useState","tag","fullGraphAriaLabel","spaceAbove","TextArea","rows","resizeType","fullGraphAriaDescription","LabeledRow","labelSide","row","LabelSmall","spaceEnd","spaceStart","marginInlineEnd","InteractiveGraphSettings","labelLocation","bgUrlRef","labelXRef","labelYRef","_this$bgUrlRef$curren","nameAndValue","gridStepValue","allowPiTruncation","resetSpaceTop","backgroundUrlInput","protractorSection","checkboxRow","Banner","kind","offBlack32","offBlack16","borderBottom","StyledUl","addStyle","getAccessibilityAttributes","graphId","elementArias","getElementById","elementAttributes","getAttribute","ariaDescribedby","descriptions","description","_document$getElementB","descriptionString","textContent","roleOrTag","tagName","classList","attributes","SRTree","showTags","listStyle","marginLeft","aria","Pill","smallSpaceRight","indentListLeft","InteractiveGraphSRTree","lockedFigures","setIsExpanded","setShowTags","setElementArias","switchId","tagSwitch","Spring","SegmentCountSelector","numSegments","LockedFigureSelect","figureTypes","ActionMenu","menuText","addElementSelect","figureType","ActionItem","fadedBlue8","ScrolllessNumberTextField","restOfProps","setFocused","wipValue","setWipValue","inputRef","ignoreScroll","onFocus","convertDegreesToRadians","convertRadiansToDegrees","angles","AngleInput","angle","angleInput","setAngleInput","handleAngleChange","textField","xxxLarge_64","CoordinatePairInput","coord","coordState","setCoordState","handleCoordChange","coordIndex","newCoordState","newCoords","errorField","medium_16","wbColor","red","fadedRed8","PerseusEditorAccordion","animated","header","containerStyle","panelStyle","AccordionSection","headerStyle","accordionHeader","accordionPanel","paddingInlineEnd","xxLarge_48","ColorSwatch","filled","decorative","colorSwatch","lockedFigureColors","outline","offWhite","possibleColors","ColorSelect","colorName","leftAccessory","EllipseSwatch","fillStyle","strokeStyle","innerCircle","lockedFigureFillStyles","xLarge_32","LineStrokeSelect","lineStrokeSelect","LockedFigureAria","getPrepopulatedAriaLabel","onChangeProps","ariaLabelId","loading","setLoading","startIcon","pencilCircle","then","alignSelf","LockedFigureSettingsActions","trashIcon","deleteButton","IconButton","caretDoubleUpIcon","iconButton","caretUpIcon","caretDownIcon","caretDoubleDownIcon","LockedLabelSettings","accordionHeaderContainer","spaceUnder","flexGrow","newColor","whiteSpace","textOverflow","DEFAULT_COLOR","getDefaultFigureForType","lineStyle","showPoint1","showPoint2","center","radius","showVertices","equation","domain","Infinity","directionalAxis","UnreachableCaseError","generateLockedFigureAppearanceDescription","fill","convertedColor","generateSpokenMathDetails","mathString","engine","SpeechRuleEngine","setup","convertedSpeech","parsedContent","mathOnlyParser","piece","texToSpeech","joinLabelsAsSpokenMath","spokenLabelPromises","spokenLabels","all","LockedEllipseSettings","visiblelabel","spokenCenterX","spokenCenterY","spokenRotation","isCircle","ellipseAppearance","handleCenterChange","newCoord","xOffset","yOffset","handleColorChange","handleLabelChange","updatedLabel","updatedLabels","handleLabelRemove","newAngle","truncatedWidth","horizontalRule","newLabel","labelContainer","plusCircle","_labels$length","addButton","LineSwatch","lineSwatch","examples","linear","polynomial","trigonometric","LockedFunctionSettings","_props$labels","lineColor","equationPrefix","lineLabel","getDomainStringValues","domainEntries","setDomainEntries","exampleCategory","setExampleCategory","functionAppearance","handlePropChange","property","updatedProps","handleDomainChange","limitIndex","newValueString","newDomainEntries","newDomain","parseFloat","exampleCategories","exampleCategorySelected","exampleContent","rowSpace","dropdownLabel","axisMenu","domainMin","domainMinField","domainMax","domainMaxField","exampleWorkspace","exampleAccordionPanel","category","exampleContainer","example","ExampleItem","pasteEquationFn","allLabels","exampleId","exampleRow","autoPasteIcon","copyPasteButton","copyIcon","navigator","clipboard","writeText","maxWidth","flexShrink","textWrap","flexWrap","fadedOffBlack16","listStyleType","maxHeight","overflowY","fontFamily","offBlack","minHeight","white50","LockedPointSettings","headerLabel","pointColor","showPoint","onTogglePoint","isDefiningPoint","spokenX","spokenY","pointAppearance","definingContainer","definingPanel","lockedPointLabelContainer","lengthZeroStr","LockedLineSettings","point1","point2","capitalizeKind","toUpperCase","isInvalid","kvector","equal","point1VisibleLabel","point2VisibleLabel","spokenPoint1X","spokenPoint1Y","spokenPoint2X","spokenPoint2Y","lineAppearance","handleChangePoint","newPointProps","newPoints","oldMidpoint","vec","midpoint","newMidpoint","offset","newLabels","_point1$labels","_point2$labels","errorText","offsetPerLabel","add","PolygonSwatch","innerSquare","LockedPolygonSettings","pointsList","polygonAppearance","handlePolygonMove","movement","pointAccordionContainer","pointAccordionPanel","point","pointLabel","minusCircle","polygonActionsContainer","movementButtonsContainer","arrowFatUp","arrowFatLeft","arrowFatDown","arrowFatRight","lengthErrorMessage","LockedVectorSettings","tail","tip","spokenTailX","spokenTailY","spokenTipX","spokenTipY","vectorAppearance","sub","LockedFigureSettings","LockedFiguresSection","_props$figures","collapsedStateArray","figures","expandedStates","setExpandedStates","addLockedFigure","newFigure","moveLockedFigure","newFigures","newExpandedStates","removedFigure","removeLockedFigure","changeProps","figureProps","toggleExpanded","allCollapsed","buttonLabel","showExpandButton","figure","newExpanded","buttonContainer","getClockwiseAngle","getStartCoords","startCoords","getDefaultGraphStartCoords","getLineCoords","getSegmentCoords","getLinearSystemCoords","getCircleCoords","subtract","radiusPoint","getSinusoidCoords","getQuadraticCoords","getPointCoords","getPolygonCoords","getAngleCoords","getSinusoidEquation","amplitude","angularFrequency","PI","phase","verticalOffset","toFixed","getQuadraticEquation","p3","denom","getAngleEquation","allowReflexAngles","vertex","roundedAngle","shouldShowStartCoordsUI","isStatic","numSides","snapTo","StartCoordsAngle","equationSection","equationBody","tile","fadedOffBlack8","fadedOffBlack32","font","xSmall","StartCoordsCircle","radiusState","setRadiusState","handleRadiuschange","StartCoordsLine","StartCoordsMultiline","graphName","coordPair","nestedTile","StartCoordsPoint","newStartCoords","StartCoordsQuadratic","StartCoordsSinusoid","StartCoordsSettingsInner","linearCoords","multiLineCoords","circleCoords","sinusoidCoords","quadraticCoords","pointCoords","angleCoords","StartCoordsSettings","arrowCounterClockwise","InteractiveGraph","InteractiveGraphWidget","POLYGON_SIDES","InteractiveGraphEditor","changeStartCoords","coords","_this$props$graph","_this$props$graph2","_this$props$lockedFig","getUserInput","getGridStep","defaultBoxSize","snapStepFromGridStep","newGraph","invariant","mergeGraphs","Id","_this$props$graph$typ","_this$props$graph3","_this$props$fullGraph","_this$props$fullGraph2","_this$props$correct","_this$props$correct2","_this$props$correct3","_this$props$correct4","_this$props$correct5","_this$props$correct6","_this$props$correct7","_this$props$correct8","_this$props$correct9","_this$props$correct10","_this$props$correct11","_this$props$correct12","_this$props$correct13","_this$props$correct14","_this$props$graph12","showAngles","_this$props$graph4","_this$props$graph5","_this$props$graph6","update","_this$props$graph7","updates","_this$props$graph8","_this$props$graph9","_this$props$graph10","showSides","_this$props$graph11","sides","interactiveGraphLogic","Error","gray98","gray95","gray85","gray76","gray68","gray41","gray17","FormWrappedTextField","handleFocus","disableDefault","forwardedRef","grow","shrink","focusBorderColor","onSubmit","leftSideIcon","testId","labelMediumInputText","allProps","extraStyles","spanStyle","defaultBackground","borderColorStyle","WBColor","blue","wrappedIcon","inputBase","labelMediumInputBase","lineHeight","boxShadow","boxSizing","forwardRef","DEFAULT_HREF","Link","highlighted","inlineStyles","referrer","otherProps","hrefWithoutHash","hash","delegatedStyles","link","delegatedClassName","urlProp","to","textDecoration","Icon","addIcon","removeIcon","DraggableGripIcon","viewBox","filterUnits","in","stdDeviation","dy","in2","k2","k3","AddAnswer","addAnswer","editorStyles","spacer","Answer","answer","AnswerChoices","answers","bodyXsmallBold","HoverBehavior","focusFlag","waitingForClick","handleClick","shouldUpdate","handleMouseEnter","handleMouseLeave","handleTouchStart","handleTouchEnd","handleMouseDown","startHovered","onMouseDown","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","onChangeCheckboxNoop","appearDisabled","tabIndex","dataTestId","checkedColor","svg","sizeWithPadding","fillRule","rx","stroke","defaultCursor","position","top","bottom","appearance","Behavior","multipleAnswers","hideChoicesFromInstructions","preferredPopoverDirection","focusWithChromeStickyFocusBugWorkaround","preventScroll","findAndFocusElement","DOMNode","check","optionHeight","Option","onDropdownClose","pressedKey","focusedElement","nextSibling","previousSibling","selected","hideFocusState","notAButton","cursorDefault","noFocus","optionSelected","optionDisabled","OptionGroup","onSelected","selectedValues","noMargin","optionGroup","optionGroupNoMargin","Children","reference","cloneElement","Marker","_marker","showDropdown","updateMarker","handleSelectAnswer","toggleAnswer","filteredAnswers","openDropdown","marker","markerWithAnswers","markerSelected","dropdownBody","dropdownPositionWithArrow","dividerHorizontal","zIndex","QuestionMarkers","_markers","handleImageDoubleClick","rect","getBoundingClientRect","round","clientX","clientY","markers","openDropdownForMarkerIndices","indices","_this$_markers$index","imageWidth","imageHeight","staticUrl","subtitle","markersCanvas","getRealImageUrl","onDoubleClick","SelectImage","btn","LabelImageEditor","_questionMarkers","imageAlt","numNoAnswers","numNoLabels","handleImageChange","handleAltChange","handleChoicesChange","handleMarkersChange","handleBehaviorChange","coordsToMarkers","newIndices","hasOwnProperty","imageSelected","smallSpacer","largeSpacer","labelImageLogic","MatcherEditor","onLabelChange","orderMatters","matcherLogic","Matrix","MatrixWidget","MAX_BOARD_SIZE","MatrixEditor","onMatrixBoardSizeChange","matrixSize","getMatrixSize","col","matrixBoardSize","matrixProps","numericInput","format","labelStyle","useArrowKeys","prefix","suffix","cursorPosition","matrixLogic","defaultImage","MeasurerEditor","_changeUrl","_changeImage","_changeTop","newTop","_changeLeft","newLeft","subProp","rulerPixels","rulerLength","measurerLogic","MoleculeWidgetEditor","updateMolecule","smiles","updateRotation","rotationAngle","bound","gt","lt","EN_DASH","NumberLineEditor","onLabelRangeChange","labelRange","onDivisionRangeChange","divisionRange","numDivisions","onNumChange","opts","onNumDivisionsChange","divRange","onTickStepChange","onChangeRelation","correctRel","isInequality","onLabelStyleChange","snapDivisions","isTickCtrl","labelStyleEditorButtons","correctX","checkValidity","knumber","isInteger","initialX","labelTicks","numberLineLogic","answerFormButtons","initAnswer","strict","NumericInputEditor","onToggleAnswers","answerIndex","showAnswerDetails","onToggleAnswerForm","_this$props$answers$a","formSelected","updateFn","updateAnswer","onToggleHeading","accordionName","toggleName","newState","onTrashAnswer","onSpace","onStatusChange","statuses","newStatus","onEvaluationChange","lastAnswer","lastStatus","pluck","formatError","showSettings","showAnswers","commonOptionProps","SettingOption","_props$role","pillProps","RadioOption","_props$onClick","answerProperty","isSelected","unsimplifiedAnswers","suggestedAnswerTypes","_answers$i$answerForm","inputSize","labelText","coefficientCheck","coefficient","instructions","wrong","ungraded","generateInputAnswerEditors","_answer$value","statusProper","answerFormat","at","answerString","toNumericString","answerRangeText","answerHeading","onFormatChange","forms","numericInputLogic","NORMAL","AUTO","HORIZONTAL","VERTICAL","OrdererEditor","onOptionsChange","whichOptions","onLayoutChange","onHeightChange","correctOptions","otherOptions","sort","ordererLogic","PassageEditor","passageEditor","passageText","footnotesEditor","footnotes","showLineNumbers","passageTitle","passageLogic","PassageRefEditor","passageNumber","referenceNumber","summaryText","passageRefLogic","PassageRefTargetEditor","handleContentChange","passageRefTargetLogic","PhetSimulationEditor","makeSafeUrl","phetSimulationLogic","Plotter","PlotterWidget","STARTING","CORRECT","editingStates","padArray","editorDefaults","scaleY","maxY","snapsPerLine","formatNumber","PlotterEditor","editing","pic","loadedUrl","minX","maxX","fetchPic","Image","onload","handleChangeTickStep","handleChangeRange","changeLabelInterval","labelInterval","handlePlotterChange","changeType","changePicUrl","picUrl","changeCategories","starting","changeScale","oldScale","newScale","changeMax","changeSnaps","changeEditing","setCategoriesFromScale","setFromScale","canChangeSnaps","plotterPlotTypes","axis","plotterLogic","validateOptions","errors","PythonProgramEditor","pythonProgramLogic","ChoiceEditor","isNoneOfTheAbove","clueEditor","clue","onClueChange","deleteLink","showDelete","RadioEditor","onMultipleSelectChange","allowMultiple","multipleSelect","numCorrect","memo","onCountChoicesChange","count","countChoices","deriveNumCorrect","deleted","hasNoneOfTheAbove","noneOfTheAbove","newChoice","addIndex","setDisplayCount","displayCount","newClue","randomize","deselectEnabled","BaseRadio","editMode","labelWrap","radioLogic","SorterEditor","sorterLogic","Table","TableWidget","TableEditor","numberOfColumns","_this$numberOfColumns","onSizeInput","numRawRows","numRawColumns","columns","oldColumns","oldRows","stringArrayOfSize","fixColumnSizing","headers","editableHeaders","tableLogic","KA_VIDEO_URL","getSlugFromUrl","VideoEditor","_handleUrlChange","location","videoLogic","MoleculeEditor","registerEditors","AllEditors","registerWidgets","replaceDeprecatedWidgets","replaceDeprecatedEditors"],"mappings":"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"}